Two-tiered Logical Architecture

In a two-tiered logical architecture, the data stores communicate through
front-end processes. In the case of Messaging Server, this means MMPs and
MTAs are residing on separate machines from the data store processes.
A two-tiered architecture enables the mail store to offload important and
common tasks and focus on receiving and delivering mail. In the case of Calendar
Server, this means the HTTP service and Administration service reside on a
separate machine from the store processes. In the case of Instant Messaging,
this means the proxy service is residing on a separate machine from the back-end
processes.

There might be some level of cohabitation with other services. For example,
you could have the Calendar store and the Message Store on the same machine.
Similarly, you could have the calendar front end on the MMP machine.

In a two-tiered logical architecture, Directory Server is usually a
complex deployment in its own right, with multi-master and replication to
a set of load-balanced consumer directories.

Figure 5–4 Two-tiered Architecture

In the preceding figure, end-user client programs, such as Outlook and
Messenger Express, form the User Tier. The load balancers form Tier 0. The Calendar
Server, Messaging Server, Instant Messaging, and web proxy front ends form
Tier 1. Finally, the Directory Server, Calendar Server, Messaging Server,
and Instant Messaging back ends form Tier 2. When deploying Communications
Express, you could have Web Server in Tier 2 as well.

A two-tiered architecture enables you to deploy Tier 1 and Tier 2 elements
as separate instances, increasing overall flexibility of design. Additionally,
you enhance system security by assigning discrete functions to individual
instances.

For typical deployments, place the messaging and calendar front ends
within the network Demilitarized Zone (DMZ), connecting to the main messaging and
calendar services through a firewall. This configuration enables you to scale
the system horizontally, as the Tier 1 elements can be scaled independently.
Do not scale these elements beyond the capacity of the back-end servers.

When the front-end elements have reached the capacity of the back-end
servers, you can scale the back-end Tier 2 elements to support more users.
In general, the front end should scale as a function of the traffic. The back
end should be scaled as a function of the number of users.