Scalability

Scalability refers to the ability of a system to cope with growing loads with stable performance by replicating the system's hardware and software components.

As the following diagram illustrates, the OIPA architecture addresses the scalability of the system by allowing the system resources to be scaled up as needed and minimizing contention on the resources that are most likely to become bottlenecks.

Scalability

  • The system performance may be increased by replicating the JVM/Application server instances that serve the user requests. This requires clustering the servers and imposes an additional overhead of the load balancing.
  • It is fairly easy to replicate the application instances, but at some point the database will become a bottleneck. While it is possible to increase the database performance by upgrading the hardware, OIPA tries to increase database performance by optimizing the traffic between the application and the database as much as possible. The generated SQL, returned data sets, databases indexes are analyzed and optimized throughout the design, development, testing and configuration of the OIPA system.
  • Much of the persistent data that rarely change are stored in the distributed Coherence cache that further decreases the load on the database and increases the scalability of the system.

The same scalability approach is applicable to the batch processing performed by the OIPA Cycle components described in the following section.