Try OpenEdge Now
skip to main content
Application Migration and Development Guide
Application Development with PAS for OpenEdge : PAS for OpenEdge and Client Interaction : Understanding application models
 

Understanding application models

The basis of PAS for OpenEdge support for client interaction is the application model, which determines how a PAS for OpenEdge instance processes client requests. The PAS for OpenEdge supports two possible application models, which a client specifies when it connects to a PAS for OpenEdge instance::
*Session-managed — In this application model, by default, the PAS for OpenEdge instance provides an ABL session from a pool of available sessions to execute each request from the connected client. After each client request completes, the instance returns the session to the instance's session pool where it is available to handle requests by other clients. Thus, by default, a session-managed client is not bound to any single PAS for OpenEdge session, and each request over this same client connection can be executed by a different PAS for OpenEdge session. Any context shared between the client and server must be identified and passed between them with each request. Optionally in the session-managed model, either the client or the business application running on the PAS for OpenEdge instance can also bind the client to a single ABL session when the client initially connects, or at any point during the same client connection. This single bound ABL session then executes requests only from the bound client, and can thereby maintain an exclusive client context, either until the client disconnects from the PAS for OpenEdge instance, or until the client or the business application terminates the binding while the client remains connected to the instance. Once an ABL session is unbound from a session-managed client, the PAS for OpenEdge instance returns the session to the instance's session pool where it is again available to handle requests by other clients. In the session-managed model, whether the client is unbound from or bound to a single server session, PAS for OpenEdge guarantees that all requests on the same client connection are executed sequentially with responses returned in the same order as the requests are sent. Session-managed clients can achieve some performance benefits by handling the responses from server requests asynchronously, but responses over the same client connection continue to be returned from the server in the same order as the requests are sent.
*Session-free — In this application model, the PAS for OpenEdge instance provides an ABL session from a pool of available sessions to execute each request from the connected client. After each client request completes, the PAS for OE instance returns the session to the instance's session pool where it is available to handle requests by other clients. Thus, the client is not bound to a single PAS for OE session for the duration of the client connection, and each request over this same client connection can be executed by a different PAS for OpenEdge session. Any context shared between the client and server must be identified and passed between them with each request. In the session-free model, PAS for OpenEdge can execute all client requests in parallel, even for the same client connection, with responses returned to the client as they become available, and not necessarily in the same order as the requests were sent. As a result, session-free clients can achieve additional performance benefits over similar session-managed clients by handling the responses from their server requests asynchronously. Note that while a session-free client can temporarily bind to a single server session, Progress Software does not recommend this practice.
Note that the default application model for a client connection is session-managed, and regardless of the application model, the client can make either synchronous or asynchronous requests to the PAS for OpenEdge instance, which the client manages depending on the application model.
* Application model context management
* Application model performance