Try OpenEdge Now
skip to main content
Application Migration and Development Guide
Application Development with PAS for OpenEdge : PAS for OpenEdge and Client Interaction : Choosing the application model : Making the final choice
 
Making the final choice
As an aid to choosing an application model, the following table shows major points of comparison between the session-free and session-managed models.
Table 11. Session-free and session-managed models compared
Point comparison
Session-free
Session-managed
Business application programming model
Every business application or SOAP Web service request is independent of every other request. No client or session context is maintained between the client and the servers involved in the requests.
The use of RUN PERSISTENT to instantiate remote persistent procedures is not recommended. Instead, use the SINGLE-RUN or SINGLETON option (supported for ABL clients only). REST Web services implicitly instantiate procedure objects using the SINGLE-RUN or SINGLETON option, as part of defining them.
The use of connection-based interfaces (SubAppObjects and ProcObjects) is not recommended.
Any Connect or Disconnect event procedures in the PAS for OpenEdge configuration do not execute when the client connects or disconnects (respectively) from the PAS for OpenEdge instance.
Every business application or SOAP Web service request is associated with a single connected client and PAS for OpenEdge server. Client and session context can be maintained across client requests. Note that for a SOAP Web service, both the Web service client and the Web service must maintain awareness of the connection using SOAP headers. The client developer must program the handling of these headers in the client application.
Any Connect or Disconnect event procedures in the PAS for OE configuration execute as the client connects and disconnects (respectively) from the PAS for OpenEdge instance.
Client Compatibility
Compatible with all ABL, REST, and SOAP Web service clients.
Compatible with all ABL and SOAP Web service clients.
Communications between client and server
Clients of the PAS for OpenEdge instance exchange messages transparently with multiple ABL sessions that the session manager provides from its session pool.
These multiple ABL sessions handle all client requests in parallel, depending on the server resources available.
Each client creates a separate and exclusive connection over which all messages are exchanged with one or more ABL sessions that the session manager provides from its session pool until the connection is terminated. This connection handles each client request in sequence, executing each request only after the previous request from the client has completed.
Thus, if your application requires the application server to manage context for its clients, choose the session-managed application model. Also, if you are exposing an existing business application that relies on a specific application model as a SOAP Web service,, you must continue to use that application model for the Web service unless you make the necessary changes in the application to use the other application model.
Note: If you expose the application as a REST Web service, you must ensure that the application uses the session-free model.
If your application requires no context management on the application server, you can choose the session-free application model. For an existing session-managed business application that meets these requirements (maintains no context), you can immediately change the application model to session-free with no code changes, thus converting the entire application with potentially greater performance benefits.
If you can use the session-free application model, it has the following advantages over the session-managed model:
*Both the business application and SOAP Web services scale much more readily compared to session-managed.
*The programming model for session-free applications—for both the business application and for the client application can be simpler than for session-managed applications, especially if the relative order of responses to requests does not matter and context management is minimal or non-existent.
For more information on programming:
*Session-free and session-managed business applications, see Programming the Progress Application Server for OpenEdge.
*Session-free and session-managed ABL clients, see Programming ABL Client Applications.
*Session-free and session-managed Open Clients, see OpenEdge Development: Open Client Introduction and Programming.
*Session-free and session-managed Web service clients of OpenEdge SOAP Web services, see OpenEdge Development: Web Services.
Whatever application model your business application supports, you must also perform these tasks for a SOAP Web service:
*Specify the same application model for any SOAP service definition based on the same business application. For more information on specifying the application model for a SOAP Web service definition using ProxyGen, see OpenEdge Development: Open Client Introduction and Programming.
*Manage the SOAP Web service through the OpenEdge Explorer or OpenEdge Management, or using the command-line tools, according to the same model. For more information on managing SOAP Web services for a given application model, see the sections on Web service management and deployment.