Corporate Directory Service (CDS)

Introduction:

Our experience has proved numerous times that in a middle or large organization identity management can easily become a nightmare. Administrators and system integrators have to keep the user / employee information in many different systems synchronized and users have no access to full and up to date contact information in an easy way. CDS is aiming to solve these problems. Since enterprises differ significantly in the way the handle their identity management (both as organizational structure and other backoffice solutions employed), we at NG Systems provide custom modifications to the basic CDS code base, in order to provide the customer with seamless integration and a helpful and useful solution. This way clients can specify their particular requirements from the system and receive a solution especially tailored for their needs, developed on top of the robust CDS code base and thus customers get the maximum value for their money!
The fact that CDS can be accessed directly from the Cisco IP phones standing on each employee's desk makes it very popular and useful. Our clients have told us that after its integration CDS has become one of the most commonly used applications in their organizations, which alone speaks of the platform's qualities, performance and usefullness...

Main features:

The main features of CDS include:

  • Provides a convenient web interface to contact information within the organization

  • Exports the contact information also as an XML service, directly available on employees' Cisco IP phones

  • CDS's web interface also has a convenient "Quick / Live search" functionality, which displays matching results as the user is typing the search terms, implemented using AJAX Web 2.0 technologies

  • Keeps a consolidated employee contact information database, merging data from many different source

  • Can synchronize its database (either automatically in a periodical fasion or manually) with:

    • - The DC Directory Service LDAP server shipped with some versions of Cisco Call Manager

    • - Microsoft Active Directory

    • - Other sources such as IBM's Lotus Domino

  • Once CDS has merged the contact information in a full, up to date and consolidated database, it can in turn synchronize the account information in other systems developed by NG Systems:

    • - CDS can keep the VoiceClerk account database up to date with a single click

    • - CDS can syncronize the Corporate Call Recorder's DB too

  • CDS supports arbitrary complex and deep organizational hierarchies (branches, sub-divisions etc), organized in a tree-like fasion

  • CDS is robust and easy to modify to fit the customer's needs

Product details:

Certainly some of the most useful, front-end, user facing features of CDS are related to the convenient interface it exports for access to contact information for the employees of a given organization. Since all conceptual entities (employees, groups, divisions etc) are designed as RESTful resources (see the Technical details section), each resource can have different representations (e.g.HTML page, XML, JSON and others). CDS fascilitates this technology to export two different interfaces to contact information:

  • - a web interface accessible via a web browser

  • - an XML interface for direct access by Cisco IP phones

Here are some screenshots of the main screens of CDS as it looked during its test-drive intergation in DSK Bank (the web site design is trivial to customize and can be easily tweaked to meet customer preferences):
CDS web interface main screen:
CDS web interface main screen
Hierarchical view of the organizational structure:
CDS web interface hierarchical view
And here is how the Cisco IP phone interface looks:
The IP phone search form:
CDS IP phone interface search
And the results:
CDS IP phone interface results

While the user interfaces are certainly useful and are the most frequently accessed part of the application, some of the main solution advantages are related to its capabilities to synchronize its employee database with numerous, different sources and build a full and consolidated contact information database. Not only that CDS can synchronize its own database with other sources, but it can also keep the databases of other NG Systems products updated. Here is a diagram of an example integration of CDS: CDS deployment diagram Depicted in the above diagram is an example integration of CDS, where it builds its consolidated contact information database using MS Active Directory and a Cisco Call Manager as data sources. Having the central user DB built, CDS exports 2 interfaces to the database: a web interface and an XML interface for Cisco IP phones. In the lower part of the diagram, you can see the configured integrations with VoiceClerk and Corporate Call Recorder. These integrations allow CDS to synchronize the VoiceClerk or CCR databases with up to date account information from its central user DB.
The synchronization processes are implemented using a background job processor (with a persistent database backed job queue, which supports job schedulling, priorities and many other functionalities). This way the user doesn't need to wait for a slow web request to finish, but can simply commit the job to the background processor and leave it do its job, while continuing her work. The synchronization job is executed in the background thus avoiding the need to lock an application server process for a long time, while the synchronization is taking place. The user can always check the synchronization interface to see the job's progress and status (the progress bar is dynamically updated, using an interactive AJAX technique):
CDS synchronization interface

Technical details:

CDS - like all other web applications developed by NG Systems - is implemented using the robust and innovative Ruby On Rails web development framework. CDS is developed using the REST design phylosophy. This means - among other things - that other representations of the contact information are trivial to develop (e.g.a JSON interface for integration with other customer systems). Another huge advantage of REST is that using it developers can define inter-resource associations and aggregations. For example, Extension is defined as a sub-resource of the Employee resource, thus reflecting the business logic that an extension (phone) belongs to an employee. This not only mirrors the associations between business objects, as they are stored in the relational database, but also exposes the resources with meaningful and pretty URLs like:

/employees/__employee_id__/extensions/__extension_id/ (e.g. /employees/21/extensions/1/)

Also like all other NG Systems solutions, CDS is deployed and runs on recent UNIX and GNU/Linux operating systems.
CDS uses a dedicated background job processing subsystem (based on DelayedJob) to handle the time consuming synchronization requests. This subsystem implements a database backed persistent job queue. When the user clicks on the "synchronize" link a background job is committed to the queue (and stored in the DB). When the job processor notices that a new job has been inserted into the database queue, it instantiates a worker class to perform the job. The processor supports schedulling of jobs for later or regular execution, priorities, progress reporting etc.
In order to make the CDS integration process as quick and easy as possible without any modification of customer infrastructure and make the system most useful, CDS integrates with many and different sources of contact information, usually using the LDAP protocol, but can also synchronize with employee databases of different types (e.g.RDBMS).

Links and documentation:

  • You can download a system description of CDS (in Bulgarian):here

  • A useful article on REST in Ruby On Rails from IBM DeveloperWorks can be found: here

  • Light Directory Access Protocol (LDAP) is the industry standard protocol for identity and account information management. It is used by numerous products among which MS Active Directory, IBM Lotus Domino and others. You can find more information on LDAP here