Book Review: Novell's NDS Developer's Guide
Articles and Tips: tip
Novell Developer Information
01 Apr 1999
Novell's NDS Developer's Guide was written by programmers for programmers. Every application programming interface (API) to Novell Directory Services (NDS) that Novell offers is represented in the book by a select engineer who is involved in the development of the given API. Each chapter presents sample code that will help programmers at any level of expertise as they begin to program to NDS. No matter what platforms or languages you use to program in you will find the information you need to get started quickly.
The guide is divided into two major parts. Part I includes an introductory chapter and five chapters describing the high-level interfaces to NDS. These interfaces do some of the programming work for you so you do not have to worry about some of the more tedious tasks necessary to interface with NDS. The interfaces covered in Part I are ActiveX Controls, Delphi, JavaBeans, the NDS ODBC Driver for generating reports, and Scripting.
Part II covers what are called system programming interfaces and starts off with the lower level cross-platform C language interface, followed by the Lightweight Directory Access Protocol (LDAP), NetBasic, Java Naming and Directory Interface (JNDI), and Active Directory Service Interfaces (ADSI). The final two chapters show you how to extend Novell's NetWare Administrator utility and how to extend Novell's ConsoleOne utility to manage, query and manipulate your NDS enabled applications.
The first chapter of the guide gives an overview of some of the concepts of a "directory" and why it is important to consider using NDS to make your applications more valuable and better integrated with the internet. It describes some of the services and utilities produced by Novell that already use NDS and it gives a few examples of other partners who have developed applications to use NDS.
Chapter 2 explains some of the principles of a directory and describes the fundamental features and terminology that will help you be conversant in future NDS discussions. Not far into the chapter you are introduced to the ActiveX controls that have been developed for NDS followed by more detailed explanations of how to use the controls. Microsoft VisualBasic is the programming tool used however any Windows development environment can be used. One interesting feature at the end of this chapter is it shows how to use a file to automate creation of users of the network.
The Delphi chapter not only helps you get started using Novell's ActiveX controls with Delphi but also gives a few examples of programming to the lower level NDS APIs. This gives you more flexibility in your programming projects.
The chapter on JavaBeans briefly introduces JavaBeans then goes into a practical presentation of logging into an NDS tree and performing a wide variety of NDS functions. It shows how to read, list, and modify objects in the tree and how to perform other queries as well as how to handle specific programming scenarios.
Chapter 5 is the only chapter other than the introduction that does not need sample code. This chapter describes how to use Open Database Connectivity (ODBC) to access the NDS directory as a data repository. It defines the relationship between ODBC, NDS and Sequenced Query language (SQL) and details the setup and general database query functions that can be performed with the ODBC driver.
Chapter 7 does an excellent job of taking you from start to finish in developing an NDS enabled application. The sample code developed for this chapter is a functional example of sharing browser bookmarks. This is a good choice because it not only shows you how to access and update the NDS Directory but it also deals with security, access control and expanding the NDS Schema.
Since this is a low level interface to NDS all the issues from buffer setup and management through adding and storing attribute values to the NDS Directory are covered. There is an extra bonus at the end of the chapter that shows how Novell's Catalog Services might be used to accelerate NDS performance.
The LDAP chapter is straightforward in presenting LDAP principles and how to setup the LDAP environment. The basic LDAP operations are covered which include search, modify, add and delete.
If you want to develop applications that run on the NetWare server platform you might want to consider using NetBasic. Chapter 9 explains some of the NetBasic fundamentals, tells how to run NetBasic scripts on the NetWare console, and explains some script programming fundamentals. It talks about the NetWare Modular Extension (NMX) model and its value in allowing scripts to dynamically load libraries on demand. It then details some of the NetWare NDS NMX library functions and other directory-related NMX library functions. A few fun example applications are used to show you how it all works.
In keeping with the principle of write-once-run-anywhere JavaSoft developed JNDI to provide a naming-system neutral interface for naming and directory access. Chapter 10 covers JNDI fundamentals and details associated classes, methods and interfaces. The end of the chapter tells how to deal with the problem that you need a context to get a context.
Chapter 11 describes the ADSI model then gives examples of how to use it. It clarifies the intricacies of the interface between ADSI and NDS and gives examples of how to browse an NDS tree and manage the schema.
Once you have built an NDS application it becomes necessary to manage the associated objects and attributes that your application uses or has created. Chapter 12 helps you learn how to build a snap-in that will extend the functionality of Novell's NWAdmin utility. This chapter appears to cover everything you need to know about building, integrating and enhancing your snap-in.
Regardless of the kind of application you are developing you should take a look at the chapter on Extending ConsoleOne. ConsoleOne is the foundation for the next generation of GUI utilities for Novell's management products. Chapter 13 describes the ConsoleOne environment and details how to program a snap-in for it. A brief description of how to interface to the NDS namespace concludes the chapter.
* Originally published in Novell AppNotes
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.