PREVIOUS  TABLE OF CONTENTS  NEXT 

Netscape and LDAP

Tom Paquin

Requirements
Just Perl

On January 22, 1998, Netscape announced that the source code for its flagship client software product, Netscape Communicator, would be freely available for modification and redistribution on the Internet. Other programs have been developed using open source models before, but this was the first time a commercial software company allowed broad access to the source code of a major shipping product.

When Communicator was developed solely within Netscape, it was a sizable development effort that required a good deal of coordination to manage. With the release of the Communicator source code, the group of developers working on the code at any one time grows from hundreds to thousands. It may seem that a development effort of this size may be impossible to manage, but successful open source development projects such as Perl, Linux, and Apache have proven that a distributed, loosely organized group of developers can be very effective at developing high-quality software rapidly.

While several factors are required for success, including a compelling need for the software and a good base of code from which to start, the most important is a person or group trusted by the development community to lead and guide the development effort. To fill this role, Netscape created mozilla.org to provide leadership for the Communicator source code. Mozilla.org is responsible for fostering communications among developers, maintaining Communicator source code, and hosting Communicator source code as well as other developer tools on the mozilla.org web site.

Mozilla.org isn't just about Communicator source code. Other developer tools such as source code to the Netscape Directory and Mission Control Console software development kits are also available through mozilla.org. Netscape Directory SDK gives developers the complete set of software libraries, command-line utilities, sample code, and documentation needed to build applications that access networked directory data using the Light-weight Directory Access Protocol (LDAP).

LDAP was developed at the University of Michigan at Ann Arbor in conjunction with the Internet Engineering Task Force, and is the Internet directory protocol for accessing and managing directory services. It is a distributed database application designed to manage the entries and attributes in a directory and makes them available to users and other applications. The Netscape Directory Server is an example of an LDAP-compliant directory service.

For example, you might use a directory service to look up someone's telephone number, or to retrieve a list of email addresses.

An LDAP-enabled server manages and provides information about users and organizational structures, such as groups and departments. Examples of LDAP clients might include the HTTP gateway to the Netscape Directory Server, Netscape Navigator, and Netscape Communicator. The gateway uses the directory service to find, update, and add information about users. The Netscape Directory SDK provides developers with the tools to access the LDAP layer.

Netscape plans to expand the set of tools with the release of PerLDAP source code-Perl modules that allow developers to access and manipulate LDAP-enabled directories quickly and easily. Until now, Perl users would have to write complex Perl code or use C or Java to access LDAP. PerLDAP will increase productivity by abstracting the lower level details of LDAP with an object-oriented Perl interface. You will be able to easily search, add, delete, and update directory entries with minimal knowledge of LDAP. Here's a demonstration of PerLDAP:

#!/usr/bin/perl

use Perldap;

$ldap = new Perldap("mars", "3006",
        "cn=Directory Manager, corp=Corporate Express",
        "administrator");
		
$entry = $ldap->search("corp=Corporate Express",
                       "subtree","objectclass=company");
					   
$ldap->printentry($entry) if $entry;

while ($entry = $ldap->entry) {
    $ldap->printentry($entry);
}

$ldap->close;

This program creates a Perldap object to create a connection to the directory server running on host mars, on port 3006, as cn=Directory Manager, corp=Corporate Express, with administrator as password. Then it searches for all the directory entries where objectclass=company, in the subtree corp=Corporate Express, and prints out the information contained in each entry. Finally, it closes the connection to the directory server.

PerLDAP source code and documentation are available for download on Mozilla.org and CPAN. PerLDAP binaries are also available on Netscape's DevEdge site, http://developer.netscape.com.

The development process for Netscape-branded products in the open source development world is very similar to Netscape's production process today, with one key difference - Netscape is no longer the sole contributor to the Communicator source code. Instead, Netscape will benefit from the best of both worlds, using its own development team to develop new features, while selecting the best enhancements from the open source development to create Netscape-branded versions of software.

__END__


Tom Paquin was a member of the original Netscape Navigator development team and is now a Netscape fellow and the manager and "benevolent dictator" of Netscape's mozilla.org project.
PREVIOUS  TABLE OF CONTENTS  NEXT