Más contenido relacionado La actualidad más candente (20) Similar a FATC UK - Real time collaborative Flex apps (20) Más de Michael Chaize (20) FATC UK - Real time collaborative Flex apps1. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Introduction to real-time collaboration with LiveCycle
Michaël CHAIZE - Flash Platform Evangelist
2. ©2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Feel free to contact me
2
Michaël Chaize
Flash Platform Evangelist
My blog: www.RIAgora.com
@mchaize
3. ©2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
RIA and technical challenges
• Better response time
• Light bandwidth
• Less load on the server side
• Less tests on the client side
Web 1.0 application Rich Internet Application
<page>
<page>
<page>
<page>
<page>
<page>
<page>
<application>
<data>
SERVER SERVER
CLIENT CLIENT
5. AdobeEvent.java
JAVA VALUE OBJECT
int idEvent
int idUser
String evtName
String evtCity
String evtCountry
int evtAudience
int evtDate
EventService.java
JAVA SERVICE CLASS
List getEvents()
AdobeEvent getEvent(idEvent)
AdobeEvent getEventbyIDUser(idUser)
List getActivityByuser()
boolean update(event)
boolean remove(event)
boolean deleteEvent(event)
AdobeActivityEvent.java
JAVA VALUE OBJECT
int idUser
String userName
int nbEvents
TABLES
DATABASE
adobeusers
adobevents
listEvents.jsp
JAVA SERVER PAGE
<activity>
<adobeEvent>
</adobeEvent>
<adobeEvent>
</adobeEvent>
</activity>
7. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
LiveCycle Data Services ES
LiveCycle Data Services is a set of Java EE
components and APIs used to:
Create data-intensive RIAs with less code, less risk, and
accelerated time to market due to an innovative client-
server programming model
Integrate RIAs with existing applications, back-end data,
and JEE infrastructure
Easily integrate RIAs with LiveCycle document and
process services
Enable collaboration, offline AIR and real-time data
streaming applications to be built in a scalable and
reliable manner with robust publish and subscribe
messaging
Generate PDF documents from RIAs that include
graphical assets
LiveCycle Data Services ES
Data Management
RPC Services
Messaging
Service
Adapters
Data Synchronization
Off-line Applications
Data Paging
Web Service
HTTP Service
Remote Object Service
Publish & Subscribe
Collaboration
Real Time Data Push
Proxy Service
Web-tier Compiler
Portal Deployment
RIA-PDF Generation
LiveCycle
ColdFusion
Hibernate
SQL
JMS
Java
Custom…
8. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Blaze DS
BlazeDS is a set of Java EE components
and APIs, and a subset of LiveCycle Data
Services:
- Free and open source.
- High performance data transfer for more responsive
applications using AMF
- Real-time server push over standard HTTP
- Full pub/sub messaging that extends existing
messaging infrastructure
LiveCycle Data Services ES
Data Management
RPC Services
Messaging
Service
Adapters
Data Synchronization
Off-line Applications
Data Paging
Web Service
HTTP Service
Remote Object Service
Publish & Subscribe
Collaboration
Real Time Data Push
Proxy Service
Web-tier Compiler
Portal Deployment
RIA-PDF Generation
LiveCycle
ColdFusion
Hibernate
SQL
JMS
Java
Custom…
9. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
LCDS.war
! Structure of the WAR file:
! +WEB-INF/classes To place your Java classes
! +WEB-INF/lib Hosts the JAVA libraries of LCDS
! +WEB-INF/flex Hosts the XML configuration files
! Remoting-config.xml Destinations to Java classes for remoting
! Messaging-config.xml Destinations for messaging
! Data-Management-config.xml Destinations to Java assemblers
! Proxy-config.xml Destinations to HTTP services
! Services-config.xml Channels configurations
A file named « LCDS.war » is provided to start your Flex/Java projects.
10. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Java and ActionScript value objects
Java VO ActionScript VO
11. 2008 Adobe Systems Incorporated. All Rights Reserved.
Flex/Java classic architecture
UI LAYER
SERVER
PRESENTATION
/SERVICES/DAO
LAYER
DATABASE/
STORAGE LAYER
LiveCycle Data Services
Java servlet container (tomcat, WAS…)
JDBC
Web browser
JAVA classes/services
Webapp (WAR)
RPC services Messaging Data Mgt
WSDL
AMF over HTTPs
JAVA <-> AMF
EventService.java public getEvents()
13. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Channels
Flex client
Servlet-based endpoints
AMF Endpoint
HTTPEndpoint
StreamingAMFEndpoint
NIO-based endpoints
NIOAMFEndpoint
NIOHTTPEndpoint
RTMPEndpoint
MessageBrokerServlet
Socket Server (LCDS only)
Message
Broker
Remoting
HTTPProxy
Message
Data Management
14. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Publish/Subscribe Messaging
Message
Service
LiveCycle DS / Blaze DS
Endpoint
Publisher
Subscriber
!RTMP
!AMF
!HTTP
!Client A
!Client B
!Client C
16. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Data Push - Messaging
Message
Services
LiveCycle DS / Blaze DS
Adapter Y
Adapter X
Messaging
System Y
Messaging
System X
Endpoint
JMS
Provider
JMS Adapter
Publisher
Subscriber
!RTMP
!AMF
!HTTP
19. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Data Management Services
LiveCycle Data Services
Data
Service
DAO
Object
Adapter
Hibernate
Adapter
JDBC
Adapter
Hibernate
RDBMS
CFC
Adapter ColdFusion
Endpoint
Client A
Client B
Client C
20. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Data Management Benefits
1. Automatic Client to Middle-Tier Synchronization
! Change Tracking
! Automatic invocation of remote services
2. Highlander Principle: there is only one instance of a given entity in
memory at any given time
3. Conflict resolution
4. Offline Synchronization (thanks to Adobe AIR)
5. Lazy loading
6. Paging
7. Cross-client synchronization
23. 2010 Adobe Systems Incorporated. All Rights Reserved. 23
LCCS SDK Offers Both High-Level Components and Foundation
Classes
High-level
Components
Foundation Classes
Pods
RTC UI Components
Shared Managers Shared Model
Session
(Connection, Authentication, Reconnect/Failover, RMI Routing)
Audio Pub / SubWebcam Pub / Sub File Pub / Sub Shared Cursors
Users AV Streams
Files Room
Pub / Sub Messaging + Permissions
Shared Collection Baton
Shared Property UserQueue
Roster WhiteBoard Chat FileShare Note WebCam
24. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Server Integration
! Create and Delete Rooms
! Manage your Users’ Authentication
! Publish and Subscribe to Messages
! Variety of different Languages (some donated by our
users, tx!):
Java PHP ColdFusion
Ruby C#Python Groovy
25. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Applications Templates and Provisioning
! Only OWNERs can add new nodes, meaning new collaborative capabilities to a
room.
! We want to be able to spawn rooms on the fly (from our servers).
! But we don’t want our users to come in as OWNERs to set up the collaborative
capabilities! That’s too much power!
! What we want is to set it up so that new rooms come with the collaborative
capabilities we want, pre-installed.
! That’s why we have application templates!
26. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
External Authentication
Your Server
Your
Client
LiveCycle Collaboration
Service
Token
Token
Login / Session
Token Fetch
28. ©2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Feel free to contact me
28
Michaël Chaize
Flash Platform Evangelist
My blog: www.RIAgora.com
@mchaize