AquaLogic IDK Traffic Analysis

Development, Portal Server by matt on October 16th, 2007 1 Comment

This post is a little more technical than we usually write about in the blog, but it was an interesting exercise that I thought was worth sharing.

The IDK, or AquaLogic Interaction Development Kit allows remote code to load and manipulate ALUI objects. This is done primarily via SOAP calls to the WS API Server. For a deeper dive, check out Ross Brodbeck’s How does the IDK Work? blog.

The neat thing about the IDK’s API is that the SOAP calls are abstracted out for you, so you don’t need to worry about the implementation details. You just need your remote code to be able to connect to the WS API server. Ignorance is not always bliss, though; if you are accessing Collab or Publisher objects, the code also needs direct access to running instances of Collab and Publisher.

This isn’t particularly earth-shattering, but in distributed environments, or, say, environments where your remote servers have host names that are in HOST files rather than DNS entries, you could have problems with remotely executed code. Another possible trouble point is if you use the serverconfig.xml hack to load balance your servers; the IDK on a remote server won’t be able to resolve those host names.

Technical network traces after the jump…

Simple code used to test these network connections:

IRemoteSession session = RemoteSessionFactory.getExplicitLoginContext(new URL
("http://localhost:9999/ptapi/services/QueryInterfaceAPI"), "administrator","");
ICollaborationFactory collabFactory = session.getCollaborationFactory();
IProjectManager projManager = collabFactory.getProjectManager();
IProject project = projManager.getProject(13);

The first line creating the session invokes two calls to the WS Server:

SOAPAction: "urn:plumtree-com:QueryInterfaceAPI.queryInterface"... 

and:

SOAPAction: "urn:plumtree-com:SessionAPI.login"

Then, when the call is made in the code to get the specific project, one call is made to the WS Server:

SOAPAction: "urn:plumtree-com:QueryInterfaceAPI.queryInterfaceUUID"

… and in the response for that call, the WS server sends the Collab API URL:

<queryInterfaceUUIDReturn xsi:type="xsd:string">http://winxp-vm:11930/collab/</queryInterfaceUUIDReturn>

Finally, the IDK makes a SOAP call directly to the Collab Server at /collab/services/CollaborationProjectAPI:

SOAPAction: "getProject"

One Response to “AquaLogic IDK Traffic Analysis”

  1. [...] / PRC makes remote SOAP calls to the WS API server in the portal stack. The WS API server (and, in some cases, Collaboration Server or Publisher Server) are the services that actually do the heavy lifting, [...]

Leave a Reply

You must be logged in to post a comment.