<?xml version="1.0" encoding="UTF-8"?> | |
<document> | |
<properties> | |
<author email="akarasulu@apache.org">Alex Karasulu</author> | |
<title>LDAP Protocol Provider</title> | |
</properties> | |
<body> | |
<section name="Server's LDAP Protocol Provider"> | |
<subsection name="Provider API"> | |
<p> | |
The network layer regardless of the implementation used (seda, sedang, | |
or mina), defines protocol provider interfaces. Protocol implementors | |
only need to implement these interfaces to plug into these framework | |
implementations. A protocol provider essentially encapsulates the | |
encoding/decoding of messages and request handlers (hooks) for the | |
protocol. The networking code handles the rest to make it all work. | |
</p> | |
<p> | |
The directory server has one or more protocol provider | |
implementations. The primary implementation is for the LDAP protocol. | |
The provider is rather simple in nature and has some unique properties | |
which make it flexible enough to be used as an LDAP proxy server or | |
an X.500 gateway server. | |
</p> | |
</subsection> | |
<subsection name="Design"> | |
<p> | |
The server's LDAP protocol provider translates on the wire LDAP | |
requests into JNDI LDAP operations. Results from JNDI operations are | |
then translated to LDAP responses pushed out on the wire. This thin | |
implementation makes the protocol layer efficient and easy to grasp. | |
</p> | |
<p> | |
The protocol provider is independent of the JNDI provider used. It is | |
however dependent on the LDAP namespace. Hence it can only work with | |
LDAP JNDI providers like the SUN LDAP JNDI provider and the server's | |
JNDI provider. | |
</p> | |
<p> | |
The grunt of the work done by the protocol provider is within the | |
request handlers. There is a request handler for each LDAP request | |
type. | |
</p> | |
</subsection> | |
</section> | |
</body> | |
</document> |