In WebFOCUS Maintain applications, application modules can be partitioned (logically or physically separated from each other). The following types of application modules can be characterized and uniquely identified:
Often, what logic actually ends up implemented in any of these areas can defy or contradict the original definition of the actual type of module in which it resides. It is important to adhere to partitioning guidelines. The objective of partitioning is to insert separators between different functional parts of the application, so that each of these functional parts can be run-time optimized by a server or servers and shared between functions, where possible. Application partitioning prevents a monolithic platform, which can never be best optimized for presentation logic or database logic.
Presentation logic and database logic pertain to the two main sections of code that make up the Maintain portion of any given application. The assumption is that at run time, these two sections of code will reside and execute on two different physical Maintain servers. The server running the presentation logic will have no access to the DBMS that the application is using. In addition, the server running the presentation logic will have a binding relationship with the web server (or HTTP server) and be optimized in this direction.
Conversely, the server running the database logic will have no access to the web server, but will have a binding relationship with the DBMS. In this way, the two servers can be tuned and appropriately supported with hardware as required.
The EXECed procedures can also run on the database logic platform server. This is often sufficient in terms of performance and resource utilization. However, it is sometimes warranted to replicate the database logic platform server to create a new server dedicated to EXEC/TABLE-based reports. The server used for EXECs can also be used for the real reporting portion of the application, which is more tuned for longer running and large retrieval procedures.