next up previous
Next: 3.1.2 Backend Server Scalability Up: 3.1 Scalability Previous: 3.1 Scalability

3.1.1 WWW User Scalability

The number of WWW users connected concurrently to our information system is not predictable and varies from time to time. In addition, the collections of integrated BES on the client-side should be customizable by each user. We therefore propose a multi-tier client-server architecture with the standardized message bus between client and application server, as described in Section 2. By decoupling the clients from the backend servers, the application server in the middle tier manages the overall workload in a controlled manner:

  • The size of each pool of application objects is determined by a configurable value. If the number of active requests exceeds the number of application objects in a pool, a client request is blocked until one of the stateless application objects is ready for processing the request. This allocation strategy guarantees that there is a well-defined number of concurrent application objects which in turn determine the maximum workload the BES are exposed to. The upper bound is independent of the overall number of concurrent WWW users. In addition, the statelessness of application objects results in a constant number of allocated objects in memory regardless of the actual workload.
  • Since the presence of only one application server is a potential bottleneck within the system, we have introduced the concept of interconnected groups of application servers to our middleware. Thereby, one dedicated instance of the group serves primarily as a message router, in order to balance the load among the remaining group of application servers appropriately. Since such routing objects are specialized application objects which forward messages to specified locations, the entire set of application management functionalities apply to them. Various sophisticated routing strategies can be implemented in order to fulfill potential load-balancing requirements because application objects can be configured at run-time.
The message bus provides an uniformly accessible communication channel which is completely independent from any specific collection of BES representation at the client-side. Therefore, the interaction of multiple applications through dedicated application protocols which are wrapped in messages, makes no assumptions about the communication-related code of applications apart from the common message bus interface. This scalable approach enables the access to any collection of BES representations at the client-side.


next up previous
Next: 3.1.2 Backend Server Scalability Up: 3.1 Scalability Previous: 3.1 Scalability

Ralf-Dieter Schimkat
Thu Dec 9 14:08:00 GMT+1 1999