As noted in previous sections, the most fundamental choice for setting up and programming an AppServer is the operating mode you want to use. The operating mode determines the session model that the AppServer and its application service must support. The session model, in turn, determines certain requirements for programming any AppServer client application. It also determines how the OpenEdge Web Services Adapter (WSA) or the OpenEdge Adapter for Sonic ESB® manages any OpenEdge Web services that an AppServer supports.
The session model represents a set of standard criteria that determine how an AppServer can interact with its clients as an application service or as a Web service, and it determines some fundamental features of the entire application. The AppServer supports two different session models, distinguished by the following criteria:
Session-managed — The client sends its requests and receives the responses over a persistent connection to a single AppServer that supports the connected client. Requests from the same client can only be handled sequentially (single-threaded) by the AppServer both as an application service and as a Web service. The AppServer operating modes that support session-managed applications include:
Session-free — The client sends its requests and receives its responses from one or more AppServers that maintain no connections with their clients. All requests from any and all clients are managed in parallel (multi-threaded) whether the requests are for an application service or a Web service. For direct clients of session-free AppServers (application services), the request management function resides in the client session. For clients of OpenEdge Web services, the AppServer request management resides in the Web Services (or Sonic ESB) Adapter. The only AppServer operating mode that supports session-free applications is the state-free operating mode.
As described previously (see
Understanding AppServer operating modes), you might have to program an application differently for it to work in a different AppServer operating mode. However, the differences between the two basic session models that AppServer operating modes support affect application design at such a fundamental level that OpenEdge provides explicit support for these session models in various phases of application development and administration. This is especially true for the handling of context management and asynchronous requests. So, for example, when defining a Web service or binding client sessions to an application service, OpenEdge requires you to specify the session model in order to manage the Web service or client binding properly.