The Open Client object model is the basis for defining an Open Client interface using the Open Client Proxy Generator. (For information on ProxyGen, see OpenEdge Development: Open Client Introduction and Programming). This object model includes the following types of objects, each of which is represented on the AppServer by specific ABL constructs:
AppObject — A single collection of external procedures that can include both persistent and non-persistent procedures, each of which can be invoked from the client application using an Open Client method or Web service operation
SubAppObjects — Additional collections of external procedures that can include both persistent and non-persistent procedures, each of which can be invoked from the client application using an Open Client method or Web service operation
ProcObjects — Any persistent, single-run, or singleton procedures included in an AppObject or SubAppObject that provide one or more internal procedures or user-defined functions, each of which can be invoked from the client application using an Open Client method or Web service operation
These Open Client objects support each session model differently, and the choice of operating mode (hence, session model) affects the client programming required to access the AppServer procedures.
ProxyGen relies on the procedure prototypes of the application service to allow you to define the Open Client objects for an Open Client interface. The AppServer procedures themselves contain no code that is specific to the supported clients.