Release 10.1A: OpenEdge Development:
Web Services

> ## How object IDs support session models

> Progress 4GL Web services use object IDs to maintain context for clients across multiple operations of a Web service. All session-managed objects and session-free objects, except for session-free AppObjects, require client applications to obtain the object ID from the WSA for each such object when they create it and to send the object ID for the object to the WSA along with each request on that object.

> Note: SubAppObjects and ProcObjects have limited utility in the session-free model and generally should not be defined for session-free Web services. See the "How session models affect Web service objects" section, for more information.

> The WSA creates a unique object ID when ever it instantiates one of these objects at the request of a client when it connects an AppObject to a session-managed Web service or when it creates a SubAppObject or ProcObject for any Web service. The WSA sends this object ID back to the client in a SOAP response header. Once received, 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. The value of this object ID must be identical to the original value returned when the WSA instantiated the object.

> The mechanism used by the client application to retrieve object IDs from the SOAP response and to send 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 you 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.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095