Understanding LiveCycle Workspace Client-Server Communication

LiveCycle Workspace ES2 is a Flex application that requires Flash Player to run in a browser. It communicates with the LiveCycle Server using Adobe’s Action Message Format v3.0 (AMF3) protocol, which uses XML messages encapsulated in HTTP. It also uses HTTP polling (every 3 seconds) using HTTP Persistent Connections looking for server responses.

For LiveCycle applications with a large number of Workspace users (100s), this HTTP polling behaviour can cause significant load on the server. Many load test tools such as HP LoadRunner do not completely understand AMF3. Those that do (like Borland SilkPerformer) still do not handle HTTP polling well, making load test scripts bloat. Neotys NeoLoad understands AMF3 and handles script bloat caused by HTTP polling.

Browsers also limit the maximum number of simultaneous connections to a particular domain. See this Google Chrome thread for details. To configure this for Internet Explorer, see this Microsoft Knowledge Base article.

For network administrators trying to configure firewall policies or a load-balancer for LiveCycle Workspace ES2, and for QA/QE Engineers trying to load test a Workspace-based LiveCycle application, a detailed understanding of these concepts and protocols are necessary.

As help, here is an excellent MAX 2009 presentation by Adobe’s Mete Atamel available on Adobe TV called “High-Performance Real-Time Messaging with Flex and LiveCycle Data Services”.

In addition to AMF3, this presentation also discusses the concepts of client “channels” and the corresponding server-side “endpoints”. It also discusses Adobe’s less firewall-friendly but faster Real Time Messaging Protocol (RTMP) which is exclusive to LiveCycle Data Services (LCDS). It is not available in the free, open-source version of LCDS (BlazeDS).

Here’s what a LiveCycle Workspace ES2 AMF3 message looks like:

VN:F [1.9.22_1171]
Was this helpful? Please rate the content.
Rating: 0.0/10 (0 votes cast)
This entry was posted in Adobe LiveCycle ES2 (9.0.x), Adobe LiveCycle ES and tagged , , . Bookmark the permalink.

Comments are closed.