OpenEdge Web services use object IDs to maintain context for clients across multiple operations of a Web service. Session-free AppObjects do not use object IDs. All other Open Client objects use object IDs. These objects require client applications to obtain the object ID from the WSA for each such object when they create it. Each request on the object must send the object's object ID to the WSA.
Note: SubAppObjects and ProcObjects have limited utility in the session-free model and generally should not be defined for session-free Web services. see How session models affect Web service objects, for more information.
The WSA creates a unique object ID whenever it instantiates an appropriate object at the request of a client. The WSA sends this object ID back to the client in a SOAP response header. The client application must send the same object ID to the WSA in the SOAP request header for every operation that it invokes on the specified object.
How a client application retrieves object IDs from the SOAP response and sends object IDs in the SOAP request depends on the client platform. Some platforms handle SOAP header information automatically and transparently to the application program. Others require the client to explicitly obtain the object ID from the SOAP response message and send it in the next appropriate SOAP request message in a manner determined by the client platform.
For session-managed Web services, these object IDs allow each client to maintain communications with its own set of Web service objects, and thus interact with the context maintained by the AppServer for these objects. For session-free Web services, these object IDs allow the use of SubAppObjects and ProcObjects, when it is necessary to do so.