A treasure trove of functionality

Microsoft is doing everything it can to make sure that Windows 2000 (Win2K) Server is successful immediately. Although the skeptical Gartner Group advises clients to wait until 2000 before deploying the new OS, Microsoft plans to lure customers to migrate by making popular applications work well under Win2K Server. One of these applications is a new version of Exchange Server. The messaging system's next major functionality release—code-named Platinum—will run only on Win2K Server. Microsoft hasn't set a firm date for releasing Platinum, but Platinum will come out after Win2K Server.

Platinum will be the most strategic and far-reaching Exchange release since Exchange Server 4.0 debuted in 1996. Exchange Server 5.0 and Exchange Server 5.5 built on the base that Exchange Server 4.0 established. They enhanced and embellished Exchange Server 4.0, but they retained the Exchange Server 4.0 kernel. In contrast, Platinum will include major changes to some of Exchange Server's crucial components. To help you plan for the Platinum-upgrade decision, I'll tell you about some of Platinum's most significant developments.

Goals for Platinum
Microsoft is developing Platinum with four major goals. First, Microsoft wants Exchange Server to be a good Win2K Server citizen and share as many components with the OS as possible. This goal is strategic—it keeps the product in line with Microsoft's overall development plans, which rely on Win2K.

Second, Microsoft plans to make Platinum's code base scale from small servers to ISPs. The next Exchange Server release will supposedly handle organizations ranging from Small Business Server (SBS) configurations that support five users to ISPs that serve millions of users. The largest Exchange Server systems today support 3000 mailboxes, so enabling one Platinum server to support tens of thousands of mailboxes will require extensive changes throughout the product.

Third, Microsoft wants the next Exchange Server to be a better platform for collaboration than previous versions have been. Even the most ardent Exchange admirer must admit that the product's public folders haven't been as successful as Microsoft claimed they would be. To continue to be competitive, Exchange Server needs to evolve to support all the many types of collaboration. Finally, Microsoft wants to incorporate new technologies into Exchange Server, adding support for features such as unified messaging (voicemail) and online conferencing.

Some of Microsoft's goals for Platinum address long-standing customer demands. Other goals, such as the product's dependence on Win2K, are architectural. Still other goals establish a base from which Exchange Server can develop over the next 3 years. Compare Exchange Server 4.0 with Exchange Server 5.5. Their bases are similar, but the end products are very different. Platinum is beginning a similar evolutionary cycle.

Exchange and AD
The most obvious manifestation of Platinum's integration with Win2K Server is Microsoft's integration of the Exchange Directory into Active Directory (AD). In Platinum, all the mailboxes, custom recipients, servers, sites, and other objects that the Directory currently holds will move into the AD store. This change will provide many benefits, including letting administrators manage most of their computing infrastructure's data in one database.

Another benefit is that Exchange Server's use of AD will eliminate record duplication. For example, many companies create Windows NT groups to manage access to resources, then duplicate those groups in Exchange distribution lists. In AD, groups have email addresses, so you can use a group as you would use a distribution list; this functionality will reduce the time you spend setting up and maintaining distribution lists.

AD references objects through globally unique IDs (GUIDs), which don't depend on the object's location within the directory, so you can move objects in the AD store without deleting and recreating them. Therefore, integrating the Exchange Directory into the AD store will eliminate many day-to-day management tasks that the Directory requires, such as moving users or distribution lists between containers. AD reduces network traffic because it replicates data at the attribute level rather than the object level. And AD lets you customize your directory—you can add directory attributes that are unique to your enterprise.

Platinum servers and their clients will access a Global Catalog on a domain controller to validate objects such as email addresses that users enter in message headers. Details about how Messaging API (MAPI) clients will access Global Catalogs aren't firm, but Microsoft will probably release service packs or patches for clients such as Outlook 98 and Outlook 2000 to let those clients bypass Exchange's Directory Service (DS) and directly access the nearest Global Catalog. In addition, any client (e.g., Outlook Express) that supports Lightweight Directory Access Protocol (LDAP) will be able to use that protocol to access a Global Catalog. Older MAPI clients for which patches aren't available will be able to use a proxy pass-through service to access a Global Catalog via a Platinum server. Therefore, you'll be able to deploy Platinum and AD without upgrading clients. When you finish upgrading your server infrastructure to Platinum, you'll be able to use a service pack or a new release of Outlook to upgrade clients at your convenience.

Administration of some basic Exchange components will change in Platinum to match administration of those components' Win2K counterparts. Mailboxes will still reside in the Information Store (IS), but you will manage them as user objects in the AD store. After you install Platinum, the AD store will include property-sheet extensions to user objects. These extensions let you work with messaging-specific information, such as email addresses. Some Exchange terminology will change, too. Distribution lists will become groups. Custom recipients will become contacts. And an Exchange site will become a routing group. Other systems will see a Platinum server as part of a site if they view the server through Exchange Server 5.x, but they will see the server as part of a routing group if they view it through AD.

Administrators aren't going to move their organizations to Platinum overnight, so interoperability between AD and older versions of Exchange Server will be crucial to Platinum upgrades. The Active Directory Connector will provide the necessary communication between Platinum and previous versions of Exchange Server. The connector is already available as part of the Win2K Release Candidate 0 (RC0) beta; it is similar to the directory replication connectors you use to set up directory replication between Exchange sites today. (For information about establishing directory replication connectors, see "Exchange Directory Replication," November 1998.) The Active Directory Connector uses LDAP for bidirectional replication between the Exchange Directory and the AD store, keeping the directories synchronized until you upgrade the organization's last Exchange Server 5.x machine to Platinum. Because the Active Directory Connector uses LDAP, you'll have to use an Exchange Server 5.5 system as a bridgehead to the connector; Exchange Server 4.0 and Exchange Server 5.0 don't support read/write access to directory objects via LDAP.

You'll do yourself a favor if you upgrade your older servers to Exchange Server 5.5, Service Pack 2 (SP2) now. This upgrade will make your systems Year 2000 (Y2K)-compliant and will establish a firm base for your eventual upgrade to Platinum. In addition, you can prepare for AD deployment by populating the Exchange Directory with user properties such as phone numbers and locations. When you install AD, you'll be able to synchronize the Exchange Directory and the AD store; therefore, you'll have to update only one directory.

Integrated Management
Because Platinum will store all its objects neatly in the AD store, the software won't need the Microsoft Exchange Administrator program. Platinum will replace Exchange Administrator with a set of snap-ins for the Microsoft Management Console (MMC). You'll also be able to access management objects through scripts that leverage a set of new management objects that the Collaboration Data Objects (CDO) interface exposes.

You'll use Platinum's set of MMC snap-ins to manage Exchange organization, server, and user objects. These snap-ins will simplify the development of Exchange Server administration tools. If the Exchange development team doesn't create the features you want, third-party vendors (or even your company's programmers) will be able to develop snap-ins that provide the management functionality you need.

Also, Platinum's new system of administration will let you assign different snap-ins to different users, so that some administrators can manage only mailboxes and others can manage only routing and connectors. This approach is much more granular than Exchange Administrator's "when you're in, you have access to everything" approach. Granular administration meets the needs of enterprises in which different people are responsible for different parts of the messaging system.

Managers of large IT departments will appreciate Exchange's use of the MMC, because the MMC's common user interface (UI) for all snap-in administration tools makes learning an organization's applications easier for new systems administrators. Employees will deal with a common UI in administering many Win2K applications; therefore, they'll learn their jobs faster and be less likely to make mistakes such as erroneously deleting mailboxes.

Scaling to Millions
Making Exchange Server scale from small systems to massive servers will require Microsoft to create one code base for the application. Today, Exchange Server and Microsoft Commercial Internet System (MCIS—an email product for ISPs) use separate code bases. However, Microsoft wants to sell the same messaging product to all its customers, so the company has integrated the MCIS and Exchange development groups. The combined team is evaluating what it needs to do to the Exchange Server code to support the type of load that ISP mail servers generate. Microsoft's goal in this integration is to merge MCIS techniques for supporting huge user loads with Exchange Server's many features to achieve the best of both messaging worlds.

MCIS is heavily influencing Platinum's scalability. An obvious example of this influence is that Platinum's storage and content engines will be able to run on separate servers. You'll be able to configure Platinum as a set of front-end and back-end servers. Users will connect to the front-end servers, which will be virtually addressable. The front-end servers will refer the users to the back-end servers, which will host the user mailboxes. This configuration will let you plug in new servers as messaging traffic increases. Platinum will let you choose between running all its components on one Win2K server and creating a distributed configuration of servers that work together to process mail.

Massive Updates to the IS
The IS is the heart of Exchange Server. Microsoft is making major changes to the IS so that Platinum can meet the company's scalability goals.

Multiple databases. Platinum will let administrators split the IS into multiple databases. In Exchange Server 5.5, the IS holds data in two databases, priv.edb (which holds user mailboxes) and pub.edb (which holds public folders). On large servers that run Exchange Server 5.5, Enterprise Edition (Exchange Server 5.5/E), the databases can grow to massive sizes; their only size limitation is the amount of disk space you attach to the server. Most systems administrators become nervous when a database grows larger than 100GB. Backing up such large files in a reasonable length of time is challenging, and channeling all user activity to two databases on one disk volume creates the potential for I/O bottlenecks. In addition, the databases represent a potential single point of failure for every user on an Exchange network. If the IS has a problem, everyone who uses that Exchange Server system stops working. Fanatical attention to backups and a focus on managing I/O activity are two prerequisites for successful management of large Exchange Server 5.5 systems.

Platinum's IS process will be able to manage one or more instances of the Jet database engine, and each Jet instance will use a different set of transaction logs. One Jet instance will be able to split transactions across multiple databases, much like store.exe processes manage transactions for both the private and public ISs today. Microsoft refers to each Jet instance in Platinum as an Information Storage Group (ISG). Each ISG will manage as many as six databases, and one Platinum server will handle as many as 15 ISGs. Therefore, Platinum will increase the number of databases each server can support to 90. (This number might change before Platinum ships.)

If this change sounds outrageous, keep in mind that Platinum's definition of a server is much different from Exchange Server 5.5's definition. The Platinum architecture lets you build a virtual server from a family of back-end and front-end computers. Platinum servers that host tens of databases will probably be virtual servers that spread the databases across multiple machines. Running multiple databases across multiple sets of transaction logs (which you'll need to do to scale Platinum to support tens of thousands of users on one server or cluster) will make daily operations such as backup more complex. However, Platinum's support for multiple databases will improve the product's scalability even on single-system servers, because if you spread the IS across several databases, you'll be able to spread the IS's I/O load across multiple volumes.

Running multiple databases and transaction logs will also improve the IS's resilience. If you have a problem with one database, you will be able to stop the ISG, restore the database, and replay transactions from the associated set of logs without taking the other databases or transaction logs offline. Your recovery operations will affect only the users of the database under repair. For this reason, administrators of large servers will probably move quickly to create and use multiple databases. Suppose a Platinum server that serves 3000 users uses 10 ISGs and allocates 300 users to each ISG. Also suppose that each ISG uses a database that resides on a separate disk volume. If a disk problem occurs, the problem affects only 300 users. In addition, because the databases are smaller than one database serving all 3000 users would be, backups and restores require much less time.

The BLOB store. In Platinum, the IS will be able to handle increasingly large messages and attachments. The Exchange Server 5.5 IS runs on a database engine that organizes information in 4KB pages. The engine works well for text documents, but it struggles with files such as audio or video clips. Such files are usually much larger than text messages or Microsoft Word attachments. Streaming these files' data to clients is usually more appropriate than fetching 4KB pages, which are often not contiguous in the database.

Platinum will eliminate this inefficiency of retrieving audio and video attachments by using Super Long Value files, repositories that support streaming access. The Platinum IS will hold three types of files: .edb (mail database) files, .log (transaction log) files, and .slm (Super Long Value) files. The .slm files will manipulate binary large objects (BLOBs) to let clients receive audio or video data from a Platinum server in a continuous stream. Users can begin using the data before they receive the end of the file.

Accommodating Internet protocols. Rich Text Format (RTF) is the standard format for messages today, but MIME is becoming more pervasive. Microsoft needs to move away from RTF and use MIME as its default storage format, but such a move isn't as easy as it sounds. Switching database schemas and formats is easy if a product has a small customer base or before the product ships. But because of the size of Exchange Server's customer base, Microsoft must evolve gracefully from RTF to MIME rather than requiring all current customers to restructure their ISs.

Platinum's .slm files will store messages that clients such as Outlook Express generate in MIME format. Clients will be able to fetch MIME content directly from the .slm file, but if a MAPI client changes the content, the IS will convert the data and move it into an .edb file. This conversion process will be transparent to end users. In MAPI environments, most user data will remain in RTF. Platinum will store RTF content in the database's .edb files, and the .edb files will continue to hold indexed information such as message headers.

Other changes. The IS also includes tactical changes. To compete with Lotus Notes, Platinum's IS will provide security at the row (item) level rather than at the folder level. Because of this change, you'll be able to place access controls on individual documents. Platinum will also let you overwrite deleted IS pages with zeros if you're concerned about the security threat of files that users have deleted but that the IS hasn't overwritten. Platinum's IS will support aggregated and calculated columns to help application development.

A Close Relationship with IIS
A Platinum change that results from Microsoft's focus on scalability and on integrating Exchange Server with Win2K Server is the messaging system's close partnership with Internet Information Server (IIS). Until now, Exchange Server has used IIS only to let browsers access Exchange via Outlook Web Access (OWA—for information about this process, see "Connecting Web Clients to Exchange," September 1997). However, Platinum will use IIS's high-performance protocol access stacks to serve clients that use IMAP4, POP3, HTTP, NNTP, or SMTP. The IS handles those protocols directly in Exchange Server 5.5.

Figure 1 illustrates how the IS and IIS will divide responsibilities in Platinum. MAPI service will remain embedded in the IS as the access protocol for clients such as Outlook 98, but all other client access to the IS will go through IIS. By using shared memory to move data between the two processes, Platinum's epoxy layer will minimize the overhead that communication between the IS and IIS processes incurs. According to Platinum's developers, these interprocess transfers consume less than 1 percent of the overhead of a typical context switch and reduce performance only slightly. Microsoft says performance improvements elsewhere in Platinum will more than make up for this loss. Keeping as much processing as possible within the IS to minimize context switching is obviously attractive. However, this change is necessary for Platinum to let you set aside some servers to do nothing but handle mailbox storage and other servers to deal with content access and conversion.

This greater integration of the IS with IIS is laudable, but it will have negative side effects. Many Exchange Server systems that didn't previously require IIS will have to run the software. In addition, forcing so many applications to work together might make debugging problems more challenging in Platinum.

Server Events
Exchange Server 5.5 supports folder-based event handling. You can write Visual Basic Script (VBScript) code to test for and react to events that occur in Exchange folders (e.g., adds, deletes, changes, timed events). However, you can go only so far with code that links to events that occur inside folders. Platinum will support centrally managed server events to help developers integrate their products more tightly with Exchange Server. These server events will be both synchronous and asynchronous, and multiple levels of the product—including the IS and messaging transports—will expose them. Server events occur throughout the Platinum code base, and crucial sections of the code, such as message routing, use them.

Developers will be able to write scripts in VBScript, JavaScript, Java, and C++ to react to Platinum server events. Microsoft has put a lot of effort into simplifying application developers' attempts to leverage Exchange through CDO, an OLE DB 2.5 new provider that enables access to Platinum data. I expect these Platinum developments to result in an explosion in third-party extensions for Exchange.

Virus checkers are an obvious example of products that developers will use to track Platinum events, because virus checkers will be able to call their code before messages appear in a mailbox. Other applications that will benefit from the central management of server events include gateways for rewriting message headers to specific formats, unsolicited commercial email (UCE) prevention code, code that verifies the progression of workflow items, and software that ensures that users don't send messages to large distribution lists.

Microsoft based Exchange Server 4.0's interoperability with other messaging systems on an X.400 Message Transfer Agent (MTA). The MTA is a crucial Exchange Server component, because it controls the flow of messages into and out of a server through the variety of connectors available for Exchange Server. The MTA certainly works, and its throughput and resilience have improved in each Exchange Server release since version 4.0. However, X.400 is no longer the flavor of the month, and Microsoft has decided to include in Platinum an SMTP MTA that will work alongside the X.400 MTA.

Before you faint at the prospect of Microsoft changing such an important component of the messaging system, you need to understand two facts. First, the original MTA is not going away. It will remain in Exchange Server to control X.400, Microsoft Mail, Lotus cc:Mail, Lotus Notes, and IBM PROFS and SNADS connectors. Keeping the original MTA saves Microsoft from rewriting existing connectors for the new MTA.

Second, the SMTP MTA will not be just a modified version of today's Internet Mail Service (IMS). The SMTP MTA will be new code, the origins of which lie in MCIS. The SMTP MTA will be faster and more robust than the IMS. And the new MTA will introduce adaptive routing to replace the somewhat static Gateway Address Routing Table (GWART) that the X.400 MTA uses. Every time two Exchange servers connect, they will exchange encoded information to update each other about the network's current status before exchanging messages. The encoded information will represent routing data, and if the servers' data differs, they will interrogate each other before deciding how to route mail. If this scheme works, Platinum servers will be able to reconfigure routing if a server along a route becomes unavailable.

Better Web Access
OWA saves administrators from configuring MAPI profiles on PCs, lets UNIX workstations and OS/2 systems connect to Exchange Server systems, and lets roving users access their mail even if the local PC doesn't run a MAPI client. But OWA isn't a full-featured client. It's slow, it imposes a heavy load on servers, and it doesn't scale well. Microsoft needs to seriously reform OWA before the application can deliver all the MAPI client features through a browser.

For Platinum, Microsoft is totally rewriting browser support and basing that support on HTTP-Distributed Authoring and Versioning (DAV) and Extensible Markup Language (XML—for more information about XML, see Ken Spencer, "Using XML to Build Internet Solutions," April 1999). HTTP-DAV provides new methods, or verbs, that let browsers access and manipulate the properties of documents and file operations such as move and copy. Platinum will use XML as the request and response format for communication between browsers and servers. Platinum's kernel will perform much of the messaging system's core rendering activity, which will solve many of Exchange Server's performance problems. Platinum will download less data to the browser, so the UI will be snappier, especially through Internet Explorer (IE) 5.0. Microsoft is also working to make Platinum support older browsers such as IE 3.0; older browsers won't be as graphically rich as IE 5.0, but their Platinum interface will be more than acceptable.

However, Microsoft can't solve all of OWA's problems through fancy rendering engines or code in active pages; Exchange Server must become more Web-aware. Microsoft has risen to the challenge of improving Exchange Server's OWA support by implementing a URL-addressable namespace for objects that Platinum manages. The next Exchange Server will let you address a mailbox, folder, or individual item through a URL. For instance, I will be able to give my inbox a URL of http://mail/ex-server/tonyr/inbox. (In this example, ex-server is the name of the Platinum server, and tonyr is the mailbox's alias.) In previous versions of Exchange Server, users can navigate public folders in OWA via URLs, but this functionality requires programmers to struggle with horrible GUIDs. Platinum will let you publish human-friendly URLs to point to any folder or document, and anyone will be able to navigate directly to that object, as long as the administrator has provided the necessary access control. This advance will make public folders much more inviting repositories for distributing information inside and outside the company.

The net effect of Microsoft's changes to the IS and OWA is that OWA will impose less strain on servers when the servers provide content to browsers. From a user perspective, browsing the IS via OWA will be faster, and administrators will be able to make the OWA UI look better because of the new customization capabilities.

Microsoft has promised that Platinum will provide better support for clustering. If this clustering works, the configuration will deliver a higher degree of resilience for Exchange Server systems. If you allocate a separate set of logs to each node in a Platinum cluster, a failure of one cluster node will affect only the users of that node's database, and those users will continue working as soon as you move their database to another node in the cluster. Exchange Server clustering is currently expensive and complex to configure, so any improvement Platinum makes in this space will be worthwhile, especially if Platinum runs concurrently on both nodes in a cluster.

Fundamental Change
Although Platinum is scheduled to ship after Win2K Server ships, the new OS includes some Platinum code. The Exchange group is responsible for providing Win2K Server with basic SMTP and NNTP functionality and with CDO for Windows NT Server (CDONTS), the API that lets programmers call SMTP and NNTP features from code. However, you'll be able to run Exchange Server 5.5 on Win2K Server, so you don't have to rush to include Platinum as part of your Win2K planning. Alternatively, you won't have to deploy Win2K throughout your network to move your messaging systems to Platinum. Only the servers that host Platinum will have to run Win2K if you decide to upgrade to the new version of Exchange Server.

Because Exchange contributes more than any other BackOffice product to Microsoft's revenue stream, the Exchange development team wants to make Platinum a killer application for Win2K Server. The team is expending an enormous amount of effort to make sure Platinum exploits the new OS.

However, making the next functionality release of a successful product dependent on a new OS could cause Microsoft trouble. Win2K Server includes all sorts of neat features that Exchange Server can exploit, but do those features provide consumers with a compelling reason to upgrade? Many companies have found that the combination of NT 4.0 and Exchange Server 5.5 provides a secure, stable, and scalable solution that meets their messaging needs.

Platinum is a very different beast from the Exchange Server you know today. The product's development isn't complete enough for anyone to know whether the fundamental changes it includes will make it a better messaging solution than its predecessors. Early tests indicate that Platinum will improve Exchange Server's scalability, robustness, and manageability, but an accurate assessment of the product's value will require testing in production environments. I'm optimistic that Microsoft has listened to its customers and understands how Exchange Server 5.5 needs to improve. I hope the company will successfully incorporate into Platinum the changes customers have been asking for.