by Sachin Raut, software engineer, IBM Software Labs. First published by IBM at IBM developerWorks Tivoli (www.ibm.com/developer/tivoli). All rights retained by IBM and the author.
The Directory Services Markup Language v1.0 (DSMLv1) provides a means for representing directory structural information as an XML document.DSMLv2 goes further, providing a method for expressing directory queries and updates and the results of these operations as XML documents.
These XML files can be transported over HTTP to and from a server that interprets and generates them. Thus DSML satisfies the requirements of bridging the LDAP technology with devices and technologies that uses the internet standards. The paper deals with design and implementation of generic gateway server APIs (i.e., the DSML server), which would be helpful for accessing any directory server using the Internet standards.
In the present scenario of Internet, Services have taken the lead and among the various services available, Directory Services have gained enormous importance. At present, Directory Services are being provided using LDAP technology. But, LDAP poses a restriction of usage of these services on all devices especially small source devices. "Directory and Meta Directory services using DSML (DMDSD)" provides access to these services for small source devices-e.g., PDAs. DMDSD provides APIs for small source device applications to access LDAP directories via a SML server. It is the responsibility of the DSML server to interact with the LDAP server and get results. The APIs take care of the interaction between the DSML server and the client applications running on the small source devices.
The wide gap between Lightweight directory access protocol and JFC can only be bridged by adding DSML server between the LDAP server and the generic JFC clients. This article will help the technical audience in designing and implementing the Directory Services Markup Language Server.
Theoretical background for design and implementation of DSML Server
* Lightweight Directory Access Protocol
Directory Access Protocol (DAP) was the first introduction of the line of protocols specifically targeted at management applications and browser applications that provide read/write interactive access to directories. X.500 defined the DAP for clients to use when contacting directory servers. DAP is a heavyweight protocol that runs over a full OSI stack and requires a significant amount of computing resources to run. For overcoming this problem of DAP, LDAP was developed as a front end to X.500, the OSI directory service. LDAP runs directly over TCP and provides most of the functionality of DAP at a much lower cost. LDAP was also created to facilitate the development of X.500 DUAs and use of X.500 for a wide variety of applications.
* Directory Services Markup Language
DSML is a subset of the XML language, which is specifically used to describe operations and data on the LDAP server.DSML v1 was introduced and standardized by OASIS in 1999. The version Directory Services Markup Language (DSMLv1) provides a means for representing directory structural information as an XML document. This did not fulfill the requirements of supporting LDAP specific data and operations.DSMLv2 went further, providing a method for expressing directory queries and updates (and the results of these operations) as XML documents. DSMLv2 documents can be used in a variety of ways. For instance, they can be written to files in order to be consumed and produced by programs, or they can be transported over HTTP to and from a server that interprets and generates them.
* Simple Object Access Protocol
SOAP provides a simple and lightweight mechanism for exchanging structured and typed information between peers in a decentralized, distributed environment using XML. SOAP does not itself define any application semantics such as a programming model or implementation specific semantics; rather it defines a simple mechanism for expressing application semantics by providing a modular packaging model and encoding mechanisms for encoding data within modules. This allows SOAP to be used in a large variety of systems ranging from messaging systems to RPC.
* JNDI (Java Naming and Directory Interface)
The Java Naming and Directory Interface (JNDI) is an application programming interface (API) that provides naming and directory functionality to applications written using the Java programming language. It is defined to be independent of any specific directory service implementation. Thus a variety of directories-new, emerging, and already deployed-can be accessed in a common way.
* DOM (Document Object Model)
The Document Object Model is an API for HTML and XML documents. It does two things for web developers: it provides a structural representation of the document, and it defines the way that that structure is to be accessed from script, allowing you to get at the web page as a structured group of nodes, which we will discuss shortly. Essentially, it connects web pages to scripts or programming languages.
Basic Architecture Diagram and Explanation
The diagram shown below is the data flow diagram i.e. the Basic Architecture diagram that shows the basic components i.e. the DSML client, the DSML server and the LDAP server and a simple interaction between them. |