blob: 449016d66ef688718ed636732a8ba76e8e99891a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<author email="akarasulu@apache.org">Alex Karasulu</author>
<title>ApacheDS - Features</title>
</properties>
<body>
<section name="Server's Features">
<p>
The Apache Directory Server is an embeddable LDAP server implemented in
pure Java. It has several features that make it unique amoung LDAP
servers. These features are described below:
</p>
<ul>
<li>
Designed as an LDAP and X.500 experimentation platform. Plugable
components and subsystems make ApacheDS extremely modular and ideal
for experiments with various aspects of the LDAP protocol.
</li>
<li>
The server's frontend is completely separable from its backend and
vice-versa making it very flexible for implementing virtual
directories, proxy servers and gateways to X.500.
</li>
<li>
Several backends can be implemented and plugged into the server's
partition nexus. The server supports a BTree based partition out of
the box but any backing store can be used to implement a partition so
long as it conforms to interfaces.
</li>
<li>
The server exposes aspects of administration via a special system
backend. LDAP can be used to manage these concerns through the
system naming context at <code>ou=system</code>.
</li>
<li>
Java based triggers and stored procedures are being implemented.
</li>
<li>
Both the backend subsystem and the frontend are separable and
independently embeddable.
</li>
<li>
The server contains a server side JNDI LDAP provider as the facade
for the entire backend subsystem. JNDI operations are directly
translated by this provider into operations against the nexus and the
target partitions storing server entries.
</li>
<li>
The server will use JNDI as the data access API for stored procedures.
This will make stored procedures functional within and outside of the
server without requiring recompilation.
</li>
<li>
The server's networking code, MINA, Multipurpose Infrastructure for
Network Applications was designed for pluggable protocol providers,
of all sorts and not just LDAP. MINA gives ApacheDS the ability to
handle large amounts of concurrency.
</li>
<li>
The server uses the Snickers tools and APIs for ASN.1 BER encoding and
decoding. These tools are designed for a very small encoding and
decoding footprint as well as for use in non-blocking servers. The
chunking nature of the BER codec makes the server very efficient while
handling encoding and decoding making it more resistant to DoS
attacks. This layer is also pluggable with a new experimental Twix
provider which is much more efficient. Of course there is the
unsupported Snacc4J provider which is no longer maintained.
</li>
</ul>
</section>
</body>
</document>