For an Open Client proxy or a SOAP Web service definition, all three types of objects—AppObject, SubAppObject, and ProcObject—encapsulate functionality as object methods. All these methods are callable by Open Clients and Web service clients. Only the ProcObject, however, always requires a persistent session context in which to make its methods available.
When you choose external procedures to include in an AppObject or a SubAppObject, you must clearly understand the intent of each procedure—those intended to be called by methods and those intended to be accessed via ProcObjects. Any procedure designed to run as persistent, single-run, or singleton is typically mapped as a ProcObject. ProcObject definitions never stand alone but always must be included as part of an AppObject or a SubAppObject definition in the Open Client interface.
Also, for every Open Client object you define, ProxyGen defines a set of common methods for managing that object. Most of these built-in methods do not execute procedures in the AppServer application; however, the client application must use these methods to create and manage the objects according to their Open Client object relationships. Depending on the session model and the object type, this management can have an impact on client and AppServer performance.
For more information on how these built-in methods work with each object type, see ProgrammingConcepts and OpenEdge Development: Java Open Clients, OpenEdge Development: .NET Open Clients, or OpenEdge Development: Web Services.