To collaborate effectively, users must be able to find other users and information easily. Exchange Server provides a hierarchical directory for this purpose. This directory holds the critical information of an organization, and it can meet the needs of both large and small organizations because it's scalable and easy to manage. Some of the most important features of the Exchange Server directory are described in the following sections.
The Exchange Server directory is implemented using the same database technology as the Exchange Server messaging infrastructure, so the database engine's reliability is high. This reliability guarantees that the directory will always be available to your applications.
The Exchange Server directory is a multimaster, replicated directory. A multimaster directory allows an administrator to make changes to it on any Exchange Server in the organization, changes that Exchange Server then propagates to other servers through replication. A replicated directory is implemented over the messaging infrastructure of Exchange Server, so directory-replicated messages can take advantage of the least-cost routing, failover, and load-balancing features of Exchange Server.
Directory replication in the Exchange Server system is not limited only to server-to-server replication. Exchange Server also supports server-to-client directory replication. By using a feature called the Offline Address Book, Outlook can replicate the Exchange Server directory, or a subset of it, to a user's local machine. This allows a user of your application to address items to other users and to look up detailed directory information, even when the user is working offline.
Exchange Server exposes a number of attributes in the directory that you can customize and. replicate. For example, you could customize the Exchange Server directory with a field named "cost center," and set up a supplies requisition program that dynamically queried the directory for users ordering supplies. Based on what information users entered in the cost center field, the application would update an accounting system so that the cost of supplies are automatically deducted from the cost center. Figure 3-9 shows where you can customize the Exchange Server directory.
The directory has some additional built-in features that you can take advantage of, such as its ability to store all types of information about an organization, including users' office locations, phone numbers, department names, titles—even a user's manager and direct reports. Exchange Server is an ideal "white pages."
Figure 3-9 Customizing attributes in the directory. Your applications can take advantage of these customized attributes.
For workflow applications, a central, hierarchical directory of this kind is crucial. Workflow applications must be able to route items based on an organization's staff structure, which is dynamic. If names of individuals were hard-coded in an application, staffing changes would require the application to be rewritten. With the Exchange Server directory, you can query and dynamically generate employee information.
The Exchange Server directory is not limited to storing information for only one organization. Through the use of custom recipients, the Exchange Server directory can also hold address and organizational information for users from other organizations. The Exchange Server directory exposes the same functionality to these types of directory objects as it does to the standard directory objects. Figure 3-10 shows an example of a custom recipient in the Exchange Server directory.
Any directory object in the Exchange Server system can be secured by using access permissions, which determine who can see particular objects in the directory. For example, an administrator can set the access permissions on the business partner directory entries so that certain workers are denied access. These permissions can be set either per user or per group.
Figure 3-10 A custom recipient in the Exchange Server directory. Recipients can hold organizational information for users outside your current organization.
The Exchange Server directory supports Internet standards such as LDAP version 3. LDAP, which stands for Lightweight Directory Access Protocol, is an adapted subset of the X.500 standard that specifies a common protocol for directory access over TCP/IP. The key benefit of LDAP support in Exchange Server is that any LDAP-compliant client or application can query the Exchange Server directory. LDAP version 3 as implemented in Exchange Server enables you to chain directories together through a feature called referrals. Referrals tell the Exchange Server directory where to look for information that a user is querying for when the directory does not currently possess it. For an application, referrals are crucial since one directory might not contain all the needed information about users and services. Rather, many different directories, which could be hosted on servers in different locations and even in different organizations, might contain pieces of this information.
The Exchange Server directory supports ADSI (Active Directory Services Interface). ADSI is an application programming interface that enables you to modify many different directories using standard protocols. The different directories that ADSI supports are the Active Directory in Microsoft Windows 2000, the Microsoft Windows NT version 4 domain-based directory, any LDAP-compliant directory such as Exchange Server directory, Novell NetWare's NDS Directory, and Novell NetWare Bindery. The ADSI interface abstracts the low-level functions of these directories and exposes a number of objects with which you can write applications. Because ADSI provides COM interfaces that give every directory element a common set of properties, the application can use the same programming interface to connect to directory elements in several directory services. Figure 3-11 shows a diagram of ADSI and the directory services it can access. ADSI is an important technology to learn since it ties all of these disparate directories together with a common programming model, and it is Microsoft's strategic directory programming interface. Chapter 14 demonstrates how to program to an Exchange Server directory using ADSI.
Figure 3-11 ADSI allows you to talk to many different directories, including Exchange Server, using the same interfaces. This access is provided through the different system providers (SPs) in ADSI.