Figure 1: Application Center MMC snap-in with a routing cluster configured. |
CLB is based on the fact that there is one computer or a cluster of computers that receive a request for an object. This server or cluster is called the COM+ routing cluster. It forwards requests to other servers within a COM+ application cluster. The COM+ application cluster is the group of servers that are configured to service requests from a routing cluster. To create a COM+ routing cluster, the Microsoft Management Console (MMC) snap-in for Application Center provides a wizard that steps you through the process. Figure 1 displays a routing cluster called ZodiacCluster in the tree view on the left
In Application Center, the SCM is extended to inspect an ordered list of servers in the COM+ application cluster. This ordered list is maintained by the COMLB service. The listing of servers is maintained in shared memory between the SCM and the COMLB services. In order to keep the listing of servers accurate and determine which server has the lightest load, the COMLB services uses the stub objects in COM+ to intercept the calls and perform some pre and post processing. In MTS, the stub was used to determine how many instances of a class were active.
Once the server has been chosen from the order lists of servers in the shared memory, the COM+ routing server SCM forwards the activation request to the other server's SCM. If the instantiation of the object fails, the COM+ routing server moves to the next server in a round-robin algorithm and continues until a valid interface pointer is returned to the client. From this point, all communication will occur directly between the client and the server that handled the request.
Issues with Application CenterOne problem that arises with CLB is that the configuration of the components must be the same on all of the servers within the application cluster. If one of the servers has a different configuration, random results may occur. If one component was set with a different security setting on servers in the application cluster, users may be able to run the application if the CLB server forwards a request to a server that allows them access, but other times it may forward the request to a server that denies them access. These types of random results would be difficult to track down. To solve this, Microsoft has added tools in Application Center to give administrators the ability to easily deploy applications across multiple computers.
The other issue that arises is performance. By moving the components to another computer throughput will decline. This is true whenever calls are made over a network instead of calling and out-of-process or in-process component on the same server. Initial test show that an out-of-process component on the same server is three times faster then calls to another box and an in-process component on the same server is five times faster. This needs to be considered when you are planning the architecture for your Web site. If throughput is the most critical factor in your Web site, CLB is not the technology for you.
CLB is an extremely useful technology for building highly scalable applications and providing availability to your application servers. It provides the mechanism to route client requests to the least busy server, which results in a quick response time to client applications. This mechanism of finding the least busy server and forwarding requests to other servers is built directly into the COM SCM and a new service called COMLB.
Previous Page: Introduction |
.