Advanced queuing engine
The Exchange 2003 advanced queuing engine queues messages for each destination and manages those queues. The advanced queuing engine receives a message from Simple Mail Transfer Protocol (SMTP), hands the message to the message categorizer, and receives the message back after the message destination is determined. The advanced queuing engine then queues the message for delivery, takes the next-hop routing information from the routing engine into account, and finally delivers the message either to the local store driver or to the local SMTP stack.
Exchange Interprocess Communication
Exchange Interprocess Communication (ExIPC), also known as Epoxy, is a queuing layer that permits Microsoft Internet Information Services (IIS) and the Inetinfo.exe and Store.exe information store processes to move data back and forth very quickly. This queuing layer achieves the best possible performance between the protocols and the database services on an Exchange 2003 server. Conventional applications require the processor to switch contexts when the processor transfers data between two processes. Epoxy is a high-performance interprocess communication (IPC) between the Inetinfo.exe process and the Store.exe process. Epoxy passes data between two processes at exceptional speeds by using a memory-sharing model that was built from the shared-memory circular-queue model.
Microsoft Exchange Server 5.5 incorporates protocols such as Network News Transfer Protocol (NNTP), Post Office Protocol version 3 (POP3), and Internet Message Access Protocol (IMAP) directly into the Store.exe process to make data transfer very efficient. Exchange 2003 architecture separates the protocols from the database to improve ease of management and to support future architectures.
Installable file system
The
Exchange 2003 installable file system (IFS) is a user-mode and kernel-mode streaming interface that reads and writes directly to the streaming database. The streaming database is also known as the .stm file. IFS permits clients to stream files more efficiently into the .stm file by keeping Internet mail in the native format, for example, Request for Comments (RFC) 822 format or MIME format.
IMAIL
IMAIL is a component of the information store that facilitates the conversion of messages between Internet and MAPI storage formats.
Link state algorithm
The link state algorithm propagates routing status information between Exchange 2003 servers. This algorithm is based on the Open Shortest Path First (OSPF) networking technology protocol. The algorithm transfers link state information between routing groups by using the X-LSA-2 command verb over SMTP and by using a Transmission Control Protocol (TCP) connection to port 691 in a routing group.
Exchange 2003 uses link state routing to determine the best method to send messages between servers based on the current status of messaging connectivity and the cost. In situations where no alternative path for the message exists or where there is an oscillating connection that is intermittently available and unavailable, Exchange�2003 communicates link state information better than earlier versions of Exchange. Specifically, Exchange�2003 reduces link state traffic by trying to determine if the connector state is oscillating or if no alternative path exists. If either of these conditions exists, Exchange suppresses the link state information. Even if no alternative path exists for a link, the link state is shown as available. Exchange 2003 does not change the link state to unavailable if no alternative path exists. Instead, Exchange 2003 queues mail for delivery and sends it when the route becomes available. This enhances performance because it reduces the propagation of link state information.
For oscillating connections, Exchange�2003 reviews the link state queue. If there are multiple conflicting state changes during a specified interval for a connector, the connector is considered an oscillating connection and its link state remains available. It is better to leave an oscillating connector available than to continually change the link state. This reduces the link state traffic that is replicated between servers.
Link state table
The link state table is the in-memory database that each Exchange 2003 server uses to store the link state information that is propagated by the link state algorithm. Exchange uses the link state table to evaluate the most efficient route for a message based on cost and connection availability.
Message categorizer
The message categorizer examines messages that come to an SMTP server and determines what to do with the messages. The messages may be destined for the local information store. The messages may be destined for a remote host by using the message transfer agent (MTA). Or, the messages may be destined for a remote host by using SMTP. The categorizer also handles distribution list (DL) expansion. The categorizer is a plug-in to the advanced queuing engine. The categorizer is essentially a collection of event sinks that perform advanced address resolution on every message that travels through the advanced queuing engine.
Message transfer agent
The message transfer agent (MTA) continues to be an important part of the system in Exchange 2003. The MTA in Exchange 2003 is different in many ways from the MTA in Exchange Server 5.5. With respect to the advanced queuing engine code, the most important update is that the MTA uses calls to the Exchange 2003 routing system instead of relying on the Gateway Address Routing Table (GWART). The GWART uses next-hop routing. Next-hop routing is more likely to loop than the advanced link state routing that the Exchange 2003 routing system uses. In Exchange 2003, the X.400 connector and the other connectors benefit from the same loop-free routing that SMTP uses.
Routing engine
The routing engine is an important part of Exchange 2003. Exchange 2003 adds link-state routing to the advanced queuing architecture by providing accurate next-hop information to the advanced queuing engine. The advanced technology that is used in the routing component minimizes mail loops that occur because of link state changes.
The routing engine uses a variant of Dijkstra's single-source shortest-path algorithm. Dijkstra's algorithm solves the problem of finding the shortest path from a source point in a graph to a destination. If you use the algorithm, you can find the shortest paths from a specified source to all points in a graph in the same time.
Routing group
A routing group is a collection of Exchange 2003 servers that can transfer messaging data to one another in a single hop without using a bridgehead server. Generally, Exchange 2003 servers in a single routing group have resilient high-bandwidth network links between each other. Additionally, a routing group defines public folder access for Microsoft Outlook clients.
Routing group connector
Routing group connectors in Exchange 2003 connect routing groups to one another. A routing group connector is unidirectional and can have separate configuration properties, such as the message types that are permitted over the connection. Routing group connectors use the concept of local bridgeheads and remote bridgeheads to dictate the servers in the routing groups that can communicate over the link. The underlying message transport for a routing group connector is either SMTP or remote procedure call (RPC). The underlying message transport depends on the version of Exchange that uses the connector. A routing group connector that is set up between Exchange 2003 servers or that is set up between Exchange 2003 servers and Microsoft Exchange 2000 Server servers uses SMTP. A routing group connector that is set up between an Exchange 2003 server and an Exchange 5.5 server uses RPC. To the Exchange Server 5.5 computer, the routing group connector is the equivalent of a site connector. Link state information is used to route messages efficiently.
Simple Mail Transfer Protocol
Simple Mail Transfer Protocol (SMTP) is a standards-based protocol that permits different messaging servers to transfer messages between each other. SMTP is defined under RFC 821. SMTP uses simple command verbs for message transport over TCP/IP port 25.
Information store
The information store manages the storage of data. It continues to be referred to as the Messaging Database (MDB), but there are major design changes to the MDB in Exchange 2003 that make it different from the MDB in Exchange 5.5. The changes permit you to have multiple MDBs. The changes also permit you to store data such as e-mail messages, documents, spreadsheets, audio files, and video files in the information store. The message contents are held in an Internet content store in the RFC 822 format. The Internet content file is an .stm file. The information store also contains the .edb file. The .edb file is the property store and holds the header information of the message.
Store driver
The store driver in Exchange 2003 performs the following:
- The store driver delivers inbound messages from the advanced queuing engine to the Exchange 2003 information store for local delivery.
- The store driver submits messages from the information store to the advanced queuing engine for categorization and possibly for outbound delivery.
- The store driver delivers messages from the advanced queuing engine to other non-SMTP gateways.
- The store driver enables an Imsg memory structure that is queued in the advanced queuing engine to be persistent in the information store.
The store driver is made up of two dynamic-link libraries (DLL). One DLL runs in IIS, and the other DLL runs in the information store. The two DLLs use Epoxy to communicate with each other.