Using Server Applications

Server applications extend the basic functionality of Microsoft Exchange Server. They can be used to provide a broad range of services, from mail gateways and voice mail to document management, content indexing, and electronic newspapers.

Similar to developing a Microsoft Exchange Client application, you can develop server applications in two ways: as extensions to the Administrator program, or as stand-alone applications.

Administrator Program Extensions

The primary duties of a Microsoft Exchange Server administrator are basic operations such as creating mailboxes, managing the basic components of Microsoft Exchange Server, and managing directory objects. A server application's directory object makes the application visible to the Microsoft Exchange Server Administrator program. Through the Administrator program, administrators manage an application's directory attributes by using its object's property sheet. Property sheets are composed of one or more property pages. You can extend the Administrator program to include custom property pages, and you can add custom property pages by creating Administrator extension DLLs.

You can also create new data fields for a directory object, control these new fields through custom property pages, and manage this application-specific extension data. These custom property pages can be used by administrators to view other data accessible on a Microsoft Exchange Server system, such as data in the information store.

Several sample applications included with the Microsoft Platform SDK illustrate how you can create Administrator extension DLLs that extend the abilities of the Administrator program, including the Queue Viewer (QUEVIEW), the Extension Data Viewer (EXTDATVW), the Sample Mailbox Agent (SMBAGENT), and the Sample Gateway. Extending the Administrator program offers the following centralized administration capabilities:

For more information about developing Administrator program extensions, see the Microsoft Exchange Server documentation in the "Database and Messaging Services" section of the Microsoft Platform SDK.

Server Applications

A server application can be either a mailbox agent, a gateway, or an add-in application, and should be implemented as a service of Windows NT Server. This means that the application is event-driven and can be controlled through the Service Control Manager of Windows NT Server. It can function as an independent process before users log on, and it has an instance name to be used when logging on to MAPI.

When an application runs as a service of Windows NT Server, the Service Control Manager is usually called to find its main function when it starts, to provide its messaging interface, and to tear it down gracefully when it ends. The interface with the Service Control Manager can be handled in two ways: either by using Windows NT Server functions, or by using the Winwrap library functions. The Winwrap library, developed for Microsoft Exchange Server, usually provides a more convenient way to handle the interface between a server application and the Windows NT Service Control Manager.

A server application communicates with Microsoft Exchange Server components through MAPI. This communication includes actions such as using the address book, accessing information stores (including public folders), and transferring messages. Special functions are included with the Microsoft Exchange Server SDK that were developed for communication between server applications and Microsoft Exchange Server. Some of these functions extend MAPI functionality, some enhance debugging capabilities, and others add completely new functionality.

Most server applications are represented in the Microsoft Exchange Server directory as either Mailbox-Agent or Mailbox-Gateway objects. To provide their services, these server applications must communicate with directory objects and information store objects. Additionally, depending on their functionality, many server applications must communicate with the Administrator program as well as with Administrator extensions. A server application is not required to run on the same computer as Microsoft Exchange Server because most server applications use MAPI, which is a remote procedure call (RPC) interface and can therefore be used over a network connection.

For more information about developing Administrator program extensions, see the Microsoft Exchange Server documentation in the "Database and Messaging Services" section of the Microsoft Platform SDK.