Understanding and Deploying LDAP Directory Services > 20. Developing New Applications > Tools for Developing LDAP Applications |
Tools for Developing LDAP ApplicationsIn this section, we examine some different categories of SDKs and scripting tools that can be used to develop LDAP applications. Chapter 12, "Choosing Directory Products," and the "Further Reading" section near the end of this chapter include pointers to more-detailed information on all the kinds of tools we mention. Directory software vendors encourage developers to write LDAP directory-enabled applications, so many of these tools can even be freely down loaded from the Internet and used at no cost. LDAP software development tools that can be used to write directory-enabled applications can be organized into four categories:
Practically speaking, your choice of LDAP software development tools is constrained by the programming languages you are comfortable using. That aside, the most important criteria for choosing a tool are its quality and its documentation. You should examine several tools to see which package you like best before you choose. LDAP SDKsLDAP SDKs provide complete, high-performance, native access to all the features of LDAP. The application programming interfaces (APIs) they provide conform closely to the C or Java LDAP API specifications being developed by the Internet Engineering Task Force (IETF). At the time of this writing, the programming languages directly supported are limited to C, C++, and Java. However, most of the other programming languages that are widely used, such as Microsoft Visual Basic, can call C or Java APIs. An LDAP SDK is a good choice if the application you need to LDAP-enable is written in one of the supported languages. The most widely known and used examples of these SDKs are the free Directory SDKs that Netscape produces. These and some of the other SDKs based on the original University of Michigan LDAP are even available in source code form for porting to your favorite platform or enhancing as needed. LDAP Scripting Components for JavaScript and PerlThe ability to access LDAP directories from interpreted languages such as JavaScript and Perl is typically provided by a component that extends the language in some way. For JavaScript, this is accomplished by directly calling Java LDAP SDK classes or through a JavaScript implemented on top of a Java LDAP SDK. For Perl, a language extension module such as PerLDAP is commonly used. These tools are a natural choice if you prefer to use a scripting language to develop your applications. Even if that is not the case, consider invoking an interpreted language (such as Perl) outside of your compiled application code. Development and debugging time would likely be much less than if you developed your application using C, C++, or Java code. Of course, if your performance requirements are high, the overhead of invoking an external interpreter makes this option less attractive. LDAP Command-Line ToolsSome vendors provide a set of command-line tools that provide access to LDAP directories. These tools are useful for simple LDAP integration tasks , especially those for which performance isn't critical. LDAP command-line tools are good choices for batch-oriented applications as well. The LDAP command-line tools can be called from a variety of languages, including compiled languages such as C++, Windows NT command language, any UNIX shell scripting language, and Perl. Netscape provides command-line tools with its Directory SDKs and its Directory Server product. The University of Michigan LDAP release also includes a set of command-line tools, although they are not as full-featured as the Netscape tools. Directory-Agnostic SDKsYour remaining choice is to use an SDK that provides access to a variety of directory and directory-like data sources (including LDAP). We use the term directory-agnostic to describe these SDKs. Examples include Microsoft's Active Directory Services Interface (ADSI) and JavaSoft's Java Naming and Directory Interface (JNDI). Access to a variety of data sources is accomplished by providing a common, directory-independent API for application programmers to use. The SDK is internally designed and constructed so that a variety of directory service modules can be plugged in beneath the API. A good example of this kind of SDK architecture is JNDIs, which is illustrated in Figure 20.11. Figure 20.11 JavaSoft's JNDI architecture.One of these directory-agnostic SDKs may be a good choice if your application needs access to directory services other than LDAP. The main disadvantages of these SDKs are that they do not provide full access to LDAP's capabilities and that they do not evolve as fast as the SDKs that are focused purely on LDAP. Other disadvantages include increased overhead and code size as a result of the extra layers and directory service modules included. In the case of ADSI, it may be difficult to call the SDK functions from existing applications that are not based on Microsoft's Common Object Model (COM).
|
Index terms contained in this sectionADSIapplication development applications developing 2nd directory-agnostic SDKs 2nd LDAP command-line tools 2nd LDAP scripting components 2nd LDAP SDKs COM (Common Object Model) Common Object Model (COM) developing applications 2nd directory-agnositc SDKs 2nd LDAP command-line tools 2nd LDAP scripting components 2nd LDAP SDKs directories applications developing 2nd 3rd 4th 5th 6th 7th 8th 9th directory-agnostic SDKs developing applications 2nd JavaScript Java LDAP scripting component application development 2nd JNDI application development LDAP command-line tools developing applications 2nd LDAP scripting components developing applications 2nd LDAP SDKs developing applications Perl PerlDAP scripting component application development 2nd scripting components developing software 2nd SDKs developing software directory-agnostic 2nd software applications developing 2nd 3rd 4th 5th tools application development directory-agnostic SDKs 2nd LDAP command-line 2nd developing applications 2nd directory-agnostic SDKs 2nd LDAP command-line tools 2nd LDAP scripting components 2nd LDAP SDKs |
2002, O'Reilly & Associates, Inc. |