Try OpenEdge Now
skip to main content
Open Client Introduction and Programming
Overview : Accessing AppServer functionality : The object model : Object relationships
 
Object relationships
In an Open Client application, you create an AppObject first, to establish a connection to an AppServer (session-managed) or application service (session-free). Then you can create SubAppObjects (through the associated AppObject) and ProcObjects (through an associated AppObject or SubAppObject). You use a special Class Factory method to create a SubAppObject or ProcObject. A proxy or SOAP Web Service definition comprises one AppObject and all SubAppObjects and ProcObjects that share the same AppServer connection.
Although there is a creation hierarchy among the different types of proxy objects, there is no functional hierarchy. All objects share the AppServer connection with equal status. Objects can be released (have their context removed from client memory) in any order, with no effect on objects still in use. The AppServer (session-managed) or application service (session-free) connection remains intact until the last object using it is released.
The following table summarizes how each type of proxy object encapsulates and accesses AppServer functionality.
Table 1. Types of proxy objects
This type of proxy object . . .
Provides this functionality . . .
AppObject
*A connection to an AppServer (session-managed) or application service (session-free)
*Application methods that execute ABL non-persistent procedure files
*Class factory methods that create SubAppObjects
*Class factory methods that create ProcObjects
*(Java Only) A special class factory method that creates a built-in ProcObject for accessing a remote SmartDataObject as an extended JDBC 2 ResultSet
SubAppObject
*A shared AppServer (session-managed) or application service (session-free) connection through an AppObject
*Application methods that execute ABL non-persistent procedure files
*Class factory methods that create ProcObjects
*(Java Only) A special class factory method that creates a built-in ProcObject for accessing a remote SmartDataObject as an extended JDBC 2 ResultSet
ProcObject
*A shared AppServer (session-managed) or application service (session-free) connection through an AppObject
*Execution of a remote ABL persistent, single-run, or singleton procedure
*Application methods that execute ABL internal procedures and user-defined functions
In addition to the functionality described in the above table, each object type from the Open Client object model provides a set of common methods for run-time management of the object and its application service connection.