Load Balancing the P21 Server Stack into an N-Tier Architecture
Enterprise Resource Planning (ERP) system scalability is always a concern. Your user count grows. The database gets larger. The organization adds branches. As this all snowballs, several interconnected challenges begin to affect an ERP system’s ability to keep up. A central aspect of a company’s overall system performance is the ability to effectively divide user workload when the user count exceeds the capacity of a given application server.
Epicor’s Prophet 21 distribution ERP software is no exception to this general concern, and one significant element of handling performance challenges when scaling your Prophet 21 application relates to load balancing. That said, when understanding how P21 load balancing functions within a P21 installation, it would be helpful to understand some basic application architecture concepts.
A common form of application architecture involves a three-tiered architecture:
- At the lowest level, the database server stores and organizes an application’s data.
- At the highest level, the user interacts with the application through the client user interface, whether browser-based or desktop-deployed.
- The application server is responsible for orchestrating the interaction between the client and the database levels – the business logic at the AppServer level converts requests from the client into commands at the database level.
Epicor’s Kinetic application has such a 3-tiered architecture, going back to the days of its antecedents, E10, Epicor 905, and Epicor Vantage – the Epicor AppServer has long been the hub of Epicor administration. But not all ERP systems had such an architecture. Epicor’s P21 ERP is one such application. Historically, the Epicor Prophet 21 application was a 2-tiered architecture:
- The P21 database stored the application’s data, as is the case with most ERP systems.
- The P21 desktop application functioned both as the user interface and as the source of the Prophet 21 application’s business logic, communicating directly with the Prophet 21 database.
With the more recent versions of the Prophet 21 application and the introduction of the P21 Middleware Server, the P21 ERP application has taken on a more contemporary 3-tiered architecture. The Prophet 21 Middleware Server is essentially an application server layer. The introduction of the P21 application server layer allowed for innumerable capabilities that had been previously unavailable with the P21 desktop application.
One such capability is the P21 API layer. ERP systems normally provide API connectivity at the application server layer – the ERP API functions in the place of a client application, sending requests to the application server. The application server layer interprets these requests as it would a request from an end user client.
The API layer allows for an exponential increase in integration opportunities, enabling a more decoupled hybrid cloud architecture — one where multi-system interactions no longer had to reside at the database level.
The challenges to scaling a P21 ecosystem don’t end with a three-tier server stack.
As user counts increase, the need for additional application servers similarly increases. And with fluctuations in the timing that users access the application, it becomes difficult to manage and balance the user load across the overall environment. This can lead to performance bottlenecks, among other things. Enter P21 load balancing.
A system admin can implement load balancing in one of several forms. Load balancing can occur from within the application itself – the application decides how a given user session will be handled. An admin can also choose to implement load balancing from outside the application, using an external load balancer.
When using an external load balancing appliance to level out your P21 ERP user sessions, the load balancer controls the user flow differently than a traditional 3-tiered application configuration. In such an environment, the client application speaks first to the load balancer, rather than speaking to the middleware server directly. Based in the middleware servers available, and the current load profiles in play, the load balancer guides the client request to the appropriate P21 middleware server.
What makes external load balancing of your P21 environment so helpful is its transparency – the balancing of user load is, in fact, invisible to the end users involved. This allows your P21 administrator to fine-tune performance over time, as load patterns surface.
Better still, the use of an external load balancer adds a layer of security, allowing for identify management, multi-factor authentication, and security group management, to better lock down and secure your P21 enterprise. This abstraction of the application server from the client allows for a truly N-tiered architecture: an architecture that can segregate various interactions with the P21 database, allowing for a diverse orchestration of functionality and capability.
Prophet 21 Performance in Action
EstesGroup provided the infrastructure for the P21 Lake Erie User Group meeting in December of 2022 at the Embassy Suites hotel in the greater Cleveland area. This Epicor Prophet 21 ecosystem included a load balanced P21 middleware server layer. A depiction of the system architecture can be seen in the image below: