Java client classesDeveloped client-side Java API to handle all communications with Directory Services server. Transparency is the key when it comes to client-server model API's. To accomplish the notion of transparent operations our first step was to determine all possible uses other teams would be expecting our API to perform, and then implement this list of functionalities in a generalized accessor method style. In practice it was found that we were unable to preempt all of our fellow teams and were forced to make changes to the API. These changes were however rather small and involved only adding conference support methods, and the credential verification method. The API was designed with the idea of treating the information stored in the Directory Services database as if it were on a local disk. The API user is never required to perform any type of network or socket manipulation outside of specifying the address and port number of the Directory Services server. This abstraction of treating the database as if it were local aids in the ease of use and ease of learning for the API user. As per a request of the Signalling team, most of the Java API was ported to C++ for use on the gateway system. To provide ease of testing and a useful interface to interact with the more complex functionalities we've implemented, namely the "filters", we developed a GUI. The GUI also provides the only interface, of our group at this time, capable of manipulating the full functionality involved with "filters". |
We specified a grammar for serializing Directory Service information for storage and transport purposes. This grammar, defined in detail in section six of this report, has retained the property of being composed entirely of human readable ASCII text. Before any work on developing the server application and client API, the grammar was solidified based on the information available to us at the time. The following notions influenced the development of the grammar.
We implemented our server in C++ on Solaris 2.6. Transactions with the server are characterized by a one-line request followed by a one-line response using TCP. The server parses commands, performs user authentication and policy checks, and ultimately performs the required database operation. The server uses gdbm as its database backend. For simplicity of database locking, the server runs in a single process and is not multithreaded.
Tag | Description | Example |
---|---|---|
ip | An ip address or FQDN plus a port number. | ip!127.0.0.1:1234 , ip!foo.bar.org:31415 |
pots | A telephone number. | pots!2540001 |
roam | Expands to the user's current roaming address, if the roaming address is defined and not expired. | roam! |
user | Specifies the owner of a conference. | user!joe |
Browsing support In order to support users who are seeking parties or conferences to call, the directory service provides functions for listing all parties and conferences in the database.