Introducing Data Services
Adobe Enterprise Platform Data Services for JEE provides
a set of services that lets you connect a client-side application
to server-side data, and pass data among multiple clients connected
to the server. Data Services synchronizes data sharing among clients,
performs data push and data conflict management, and implements
real-time messaging between clients.
A Data Services application consists of two parts: a client-side
application and a server-side J2EE web application. The server-side
web application consists of Java classes.
Data Services features
The Data Services core features include the Remote Procedure
Call (RPC) services, Message Service, Data Management Service, and
Remote Procedure Call (RPC) services
A client-side RPC component calls a remote service. The
component then stores the response data from the service in an object
from which you can easily obtain the data. The client-side RPC components
are the HTTPService, WebService,
and RemoteObject components.
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. Data Services lets you use RemoteObject components
to access remote Java objects without configuring them as SOAP-compliant
Note: You can use Flex SDK without the Data Services
proxy service to call HTTP services or web services directly. You
cannot use RemoteObject components without Data Services or Adobe®
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).
For more information, see Remote Procedure Call Services.
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, 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 an 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 Data Management.
Managed Remoting combines the ease of use of the Remoting
Service with the powerful data processing capabilities of the Data
Management Service. Managed Remoting supports the following features:
Paging, Lazy Loading, Conflict resolution, and data synchronization.
Managed Remoting uses annotations and also provides support for
For more information, see Managed Remoting.
Note: Managed Remoting was added to Data Services 4.6.
Data Services summary of features
The following table summarizes some of the main features
of Data Services:
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
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.
Multiple client support
Supports multiple clients such as Java,
Flex, AIR, HTML 5/JS, Android, and IDevice client applications.
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
Facilitates the paging of large data sets,
enabling developers to focus on core application business logic
instead of worrying about basic data management infrastructure.
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,
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.
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. 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
Portal service integration
Configure a Flex client applications as
local portlets hosted on JBoss Portal, Oracle WebLogic Portal, or
IBM WebSphere Portal.
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.
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 services and policy-protected to ensure only authorized access.
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.
A Data Services client application can be one of the following
A Flex or AIR application
A HTML5/JS Client application
A Java client application
A Flex AIR mobile application
An Android mobile application
An Objective C client application
The following illustration show different client applications
interacting with Data Services.
Client applications use components to communicate with Data Services.
These components include RemoteObject, HTTPService, WebService, Producer, Consumer,
Data Services Reference Information
Data Services offers different APIs that you can use to
create client applications. The following table lists the different
types of Data Services reference documentation and where you can
Reference material for working with the
Data Services Java APIs. You can use the Java APIs to create server-side
logic. As of Data Services 4.6, you can use the Java API to create
a Java client application. (See Creating a Java Desktop application that invokes Data Services.)
can locate the Data Services Java API on the Data Services documentation
Reference material for working with the
Data Services ActionScript API. You can use the ActionScript API
to create Flex client or mobile AIR applications. (See Create mobile and web applications.)
You can locate the Data
Services ActionScript API reference information on the Data Services
documentation web page.
Reference material for working with the
The reference documentation is located in a file
Objective C API
Reference material for working with the
iOS Client SDK. (See Creating Data Services iDevice Applications.)
documentation is located in a file named dataservices-client-iOS.zip.
You can locate this file in the following directory: [Data Services Install location]\resources\client-sdk\iOS
Data Services Development Quick Starts
Data Services supports the following development patterns:
Code-Driven Development - you use Data Service
APIs to create both server-side Java classes and client applications.
Code driven development offers the most flexibility but requires
solid programming knowledge.
Model-Driven Development - you use the Data Services
tooling to create Rich Internet applications. Using Model-driven
development, you do not write data synchronization or persistence
code. Although there is some programming involved, there is less
code when compared to code-driven development.
This section introduces you to Data Service Quick Starts based
on the two development patterns. If you are interested in code-driven
development, then the quick starts specfied in the code-driven quick
starts will interest you. Likewise, if you are interested in creating
a model-driven application, then view the table in the Model-Driven
Quick Starts can help you accelerate your efforts to develop
programs that interact with Data Services. Quick Starts are complete
programs that you can copy and paste into your own projects and
use as a starting point. You can run a Quick Start to see how it
behaves and modify it for your own needs. Before you follow a Quick
Start, it is recommended that you first read Building and deploying Data Services applications
Code-Driven Quick Starts
table lists the code-driven quick starts.
Model-driven Quick Starts
table lists model-driven quick starts.