LiveCycle Data Services features

The following figure shows the main features of LiveCycle Data Services:

LiveCycle Data Services core features

The LiveCycle Data Services core features include the RPC services, Message Service, and Data Management Service.

RPC services

The Remote Procedure Call (RPC) services are designed for applications in which a call and response model is a good choice for accessing external data. RPC services let a client application make asynchronous requests to remote services that process the requests and then return data directly to the client. You can access data through client-side RPC components that include HTTP GET or POST (HTTP services), SOAP (web services), or Java objects (remote object services).

Use RPC components when you want to provide enterprise functionality, such as proxying of service traffic from different domains, client authentication, whitelists of permitted RPC service URLs, server-side logging, localization support, and centralized management of RPC services. LiveCycle Data Services lets you use RemoteObject components to access remote Java objects without configuring them as SOAP-compliant web services.

A client-side RPC component calls a remote service. The component then stores the response data from the service in an ActionScript object from which you can easily obtain the data. The client-side RPC components are the HTTPService, WebService, and RemoteObject components.

Note: You can use Flex SDK without the LiveCycle Data Services proxy service to call HTTP services or web services directly. You cannot use RemoteObject components without LiveCycle Data Services or Adobe® ColdFusion®.

For more information, see Using RPC services.

Message Service

The Message Service lets client applications communicate asynchronously by passing messages back and forth through the server. A message defines properties such as a unique identifier, LiveCycle Data Services headers, any custom headers, and a message body.

Client applications that send messages are called message producers. You define a producer in a Flex application by using the Producer component. Client applications that receive messages are called message consumers. You define a consumer in a Flex application by using the Consumer component. A Consumer component subscribes to a server-side destination and receives messages that a Producer component sends to that destination. For more information on messaging, see Using the Message Service.

The Message Service also supports bridging to JMS topics and queues on an embedded or external JMS server by using the JMSAdapter. Bridging lets Flex client applications exchange messages with Java client applications. For more information, see Connecting to the Java Message Service (JMS).

Data Management Service

The Data Management Service lets you create applications that work with distributed data. By using the Data Management Service, you build applications that provide real-time data synchronization, data replication, on-demand data paging, and occasionally connected application services. You can manage large collections of data and nested data relationships, such as one-to-one and one-to-many relationships. You can also use data adapters to integrate with data resources, such as a database.

Note: The Data Management Service is not available in BlazeDS.

A client-side DataService component calls methods on a server-side Data Management Service destination. Use this component to perform activities such as filling client-side data collections with data from remote data sources and synchronizing the client and server versions of data. Changes made to the data at the client side are tracked automatically using property change events.

When the user is ready to submit their changes, the changes are sent to a service running on the server. This service then passes the changes to a server-side adapter, which checks for conflicts and commits the changes. The adapter can be an interface you write, or one of the supplied adapters that work with a standard persistence layer such as SQL or Hibernate. After the changes are committed, the Data Management Service pushes these changes to any other clients looking at the same data.

For more information, see Introducing the Data Management Service.

Service adapters

LiveCycle Data Services lets you access many different persistent data stores and databases including Hibernate, SQL, JMS, and other data persistence mechanisms. A Service Adapter is responsible for updating the persistent data store on the server in a manner appropriate to the specific data store type. The adapter architecture is customizable to let you integrate with any type of messaging or back-end persistence system.

The message-based framework

LiveCycle Data Services uses a message-based framework to send data back and forth between the client and server. LiveCycle Data Services uses two primary exchange patterns between server and client. In the first pattern, the request-response pattern, the client sends a request to the server to be processed. The server returns a response to the client containing the processing outcome. The RPC services use this pattern.

The second pattern is the publish-subscribe pattern where the server routes published messages to the set of clients that have subscribed to receive them. The Message Service and Data Management Service use this pattern to push data to interested clients. The Message Service and Data Management Service also use the request-response pattern to issue commands, publish messages, and interact with data on the server.

Channels and endpoints

To send messages across the network, the client uses channels. A channel encapsulates message formats, network protocols, and network behaviors to decouple them from services, destinations, and application code. A channel formats and translates messages into a network-specific form and delivers them to an endpoint on the server.

Channels also impose an order to the flow of messages sent to the server and the order of corresponding responses. Order is important to ensure that interactions between the client and server occur in a consistent, predictable fashion.

Channels communicate with Java-based endpoints on the server. An endpoint unmarshals messages in a protocol-specific manner and then passes the messages in generic Java form to the message broker. The message broker determines where to send messages, and routes them to the appropriate service destination.

For more information on channels and endpoints, see Client and server architecture.

Channel types

LiveCycle Data Services includes several types of channels, including standard and secure Real Time Messaging Protocol (RTMP) channels and channels that support binary Action Message Format (AMF) and its text-based XML representation called AMFX. AMF and HTTP channels support non-polling request-response patterns and client polling patterns to simulate real-time messaging. The RTMP channels and streaming AMF and HTTP channels provide true data streaming for real-time messaging.

LiveCycle Data Services summary of features

The following table summarizes some of the main features of LiveCycle Data Services:

Feature

Description

Client-server synchronization

Automatic and manual synchronization of a common set of data on multiple clients and server-side data resources. Also supports offline client-side data persistence for occasionally connected clients.

Removes the complexity and potential for error by providing a robust, high-performance data synchronization engine between client and server. It also can easily integrate with existing persistence solutions to provide an end-to-end solution.

Collaboration

Enables a client application to concurrently share data with other clients or servers. This model enables new application concepts like "co-browsing" and synchronous collaboration, which allow users to share experiences and work together in real time.

Data paging

Facilitates the paging of large data sets, enabling developers to focus on core application business logic instead of worrying about basic data management infrastructure.

Data push

Enables data to automatically be pushed to the client application without polling. This highly scalable capability can push data to thousands of concurrent users to provide up-to-the-second views of critical data. Examples include stock trader applications, live resource monitoring, shop floor automation, and more.

Data traffic control

Provides a set of features for managing data traffic, such as data throttling, deserialization validation, reliable messaging, message prioritization, message filtering, and measuring message processing performance.

Model-driven development

Use Adobe application modeling technology to facilitate the development of data-centric applications.

Occasionally connected client

Handles temporary disconnects, ensuring reliable delivery of data to and from the client application. Provides support for the development of offline and occasionally connected applications that run in the browser or on the desktop. LiveCycle Data Services takes advantage of the scalable local SQLite database in AIR to store data, synchronize it back to the server, and rationalize any changes or conflicts.

Portal service integration

Configure a Flex client applications as local portlets hosted on JBoss Portal, Oracle WebLogic Portal, or IBM WebSphere Portal.

Proxy service

Enables communication between clients and domains that they cannot access directly, due to security restrictions, allowing you to integrate multiple services with a single application. By using the Proxy Service, you do not have to configure a separate web application to work with web services or HTTP services.

Publish and subscribe messaging

Provides a messaging infrastructure that integrates with existing messaging systems such as JMS. This service enables messages to be exchanged in real time between browser clients and the server. It allows Flex clients to publish and subscribe to message topics with the same reliability, scalability, and overall quality of service as traditional thick client applications.

RIA-to-PDF generation

Users can generate template-driven PDF documents that include graphical assets from Flex applications, such as graphs and charts. The generated PDF documents can be orchestrated with other LiveCycle services and policy-protected to ensure only authorized access.

Software clustering

Handles failover when using stateful services and non-HTTP channels, such as RTMP, to ensure that Flex applications continue running in the event of server failure. The more common form of clustering using load balancers, usually in the form of hardware, is supported without any feature implementation.