-
Notifications
You must be signed in to change notification settings - Fork 4
How does GemStone S interchange information with Orbeon Forms (a Java Application) ?
bruno.buzzi edited this page May 25, 2015
·
34 revisions
How does GemStone/S interchange information with Orbeon Forms (a Java Application) ?
In order to integrate GemStone/S with Orbeon Form there are some mandatory fields/component that each Form must have:
Internal Section:
- Component named "k" - used by GemStone/S application to identify the continuation.
- Component named "s" - used by GemStone/S application to identify the session.
- Component named "oop" - used by GemStone/S application to identify the interaction object.
- Component named "uuid" - security token to identify the request.
User Section:
- Component named "username" - to show the GemStone/S app user
- Component named "rol" - to show the roles of the GemStone/S user
- Component named "formId" - to show the form id of the form
Usually a web user is logged in Orbeon Form Process (the BPM application) an from there an Orbeon Form is called. Each Orbeon Form represent a task inside the BPM (Orbeon Form Process which is a GemStone Smalltalk Seaside application). The communication process is the following (blue dotted lines in the picture above):
- The user click inside the BPM to perform a task.
- The GemStone/S application generate a GUI and associate a XML (which contain user data -roles and so on-) with this GUID (this GUID is called token).
- The GemStone/S application then redirect the request to the corresponding Orbeon Form passing the GUID as parameter in the URL {redirect(token) in the picture}.
- The Orbeon Form take the token (GUID) from the url and call a "Security Service" that is hosted by the BPM (GemStone/S application) {callSecurityService(token) in the picture}.
- The GemStone/S application register the call and check if there is any GUID waiting in the Token dictionary (like a HashTable) {registerToken in the picture}.
- If there is GUID waiting then the Service answer the associated XML and remove this entry from the Token dictionary (can no be used anymore). If there is no GUID then answer an empty XML {securityResult(xml)}.
- The Orbeon Form application take the result from the Service and display the XML in the form {securityResult(xml)}. If the XML is empty then the form will not display anything. The XML data is placed in the form components.



