Each AppObject encapsulates a set of business logic deployed at a particular AppServer and establishes a connection to that AppServer (session-managed) or to the application service represented by one or more AppServers accessed from a connection pool (session-free).
Although you can encapsulate an AppServer's entire functionality (application service) within one AppObject, dividing a large AppServer application into one AppObject and several SubAppObjects offers advantages, particularly for session-managed applications. Multiple objects provide better logical organization and separate name spaces for each object. Also, they help avoid the instantiation of large objects that may be slow to load and difficult to maintain.
For session-free applications, it is often best to define the entire application service within the AppObject alone. The behavior of session-free connections makes other types of Open Client objects less useful, and even an obstacle to good session-free application performance, as the following sections describe.