SlideShare une entreprise Scribd logo
1  sur  78
Télécharger pour lire hors ligne
Après-midi
 technique Adobe

 Comment améliorer la
 communication entre une
 application RIA et votre SI




                                                        1
2006 Adobe Systems Incorporated. All Rights Reserved.
Agenda

          Rappels sur l’offre Adobe Flex
          Flex et les appels standards du web
                   Flex et le HTTPRequest
                   Flex et l’appel de WebService
          Communication entre Flex et les serveurs d’applications Java
                   Différences entre Blaze DS et LiveCycle DS
                   Flex et le Remoting, et architecture
                   Flex et les techniques de messaging
                   Le Data Management
          Services additionnels
                   Architecture: Sécurité, Cluster
                   Génération d’un PDF avec LCDS
                   Appel d’un service documentaire LiveCycle.
                   AIR




                                                                 2
2008 Adobe Systems Incorporated. All Rights Reserved.
Rappels sur l’offre
    Adobe Flex




                                                           33
                                                           
2006 Adobe Systems   Incorporated. All Rights Reserved.
Quatre générations d’applications d’Entreprise




       Global
                                                                                                  2004


                                          WEB APPLICATIONS                                               RICH INTERNET
                                                                                                          APPLICATIONS
        REACH




                                                                                 1998
         




                                                                         1992

       Local
                                               MAINFRAME                                                       DESKTOP



                                    Server Interaction                                                   Client Interaction
                                                                                          RICH




                                                                                                                                ®




                                                                                  4
    Copyright 2008   Adobe Systems Incorporated. All rights reserved.
Challenges techniques de la RIA

                          Web 1.0 application                                                                    Rich Internet Application

                                                                                                          •   Améliorer les temps de réponses
                                                                                                          •   Alléger la bande passante
                                                                                                          •   Décharger le serveur
                                                                                                          •   Diminuer les tests


                                                                                           <page>

                                                                                         <page>

                                                                                  <page>


                                                                          <page>                                                          <data>


                                                                  <page>

                                                          <page>


                                                    <page>
                                                                                                                              <application>




                                                                                                                                                     ®




Copyright 2008   Adobe Systems Incorporated. All rights reserved. Adobe confidential.               5
                                                                                                     5
                                                                                                     
Trois technologies Open Source d’Adobe pour les RIA

                        FLASH PLAYER                                                         FLEX 3 SDK                   LIVECYCLE DATA SERVICES




     Flash Player 9                                                                Gratuit, framework open source       LiveCycle Data Services
     12 ans d’existence                                                            Flex Builder basé sur Eclipse         Data intensive applications
     98% des PC équipés                                                            Framework MVC                         Meilleures perfs du marché
     Langage objet AS3                                                             Accessibilité, Test unitaire, Debug   Remoting architecture
     AVM2 JIT Compiler                                                             Component based programming           Messaging and Data Push
     Open Source: Tamarin                                                          Dévelopment rapide                    Data Management Services
                                                                                                                         Offline synchronization




                                                                                                                                                       ®




Copyright 2008   Adobe Systems Incorporated. All rights reserved. Adobe confidential.             6
                                                                                                   6
                                                                                                   
Adobe Flex Lineup

                                          Adobe®                               Adobe®
                                          Flex™ SDK 3                          Flex™ Builder™ 3

                                           MXML and ActionScript 3.0           Standard Edition

                                           Framework and Class Library         Visual Layout


                                           Command-line Compiler               Code Hinting


                                                                                Debugging

             Adobe® LiveCycle®                                                 Skinning & Styling
             Data Services ES


   Data Management                                         Messaging          Professional Edition

   Web-Tier Compiler                                       RPC Services       Charting Components


   RIA-PDF Creation                                        Service Adapters   Advanced DataGrid / OLAP


   Portal Deployment                                       Proxy Service      Performance Profiling




2008 Adobe Systems Incorporated. All Rights Reserved.
Fonctionnement et déploiement

     Flex Builder IDE                               Browser

 Flex SDK                                           Flash Player
   MXML       ActionScript

     Flex Class Library      SOAP          HTTP/S             AMF/S        RTMP/S


                              Web Server
        Compile
                             XML/HTTP
                                                              LC Data Services
                             REST
                             SOAP Web Services          J2EE Application Server

                             Existing Applications & Infrastructure
Ressources pour apprendre Flex

          Site web de référence:

                                                           http://www.flex.org
          Tutoriaux et vidéos techniques:

                                                  http://developer.adobe.com
          Ateliers gratuits de formation sur 1 jour:

                                                           http://www.baao.com

          Blog pour se tenir informé de l’actualité Adobe France, tutoriaux, slides:

                             http://codemoiunmouton.wordpress.com



                                                                   9
2008 Adobe Systems Incorporated.   All Rights Reserved.
Flex et les appels
    standards du web
    HTTPRequest, WebService




                                                           1
                                                           10
                                                           0
2006 Adobe Systems   Incorporated. All Rights Reserved.
HTTPRequest: le standard du web

          Appel d’un script sur une URL qui retourne du texte (print)
          Si la réponse est en XML, les composants Flex l’interprête nativement
          Déclaration par un tag <mx:HTTPService>. La méthode send() lance une requête HTTP sur l’url
           spécifiée.


          Si la requête ne passe pas par un proxy:
                   useProxy = false
                   HTTP GET, POST

          Si la requête passe par un proxy:
                   useProxy = true
                   HTTP GET, POST, HEAD, OPTIONS, TRACE & DELETE




                                                        11
2008 Adobe Systems Incorporated. All Rights Reserved.
HTTPRequest par l’exemple




                                                        12
2008 Adobe Systems Incorporated. All Rights Reserved.
WebService: le standard du web

          Une application Flex peut interagir avec des Webservices qui définissent leurs
           interfaces en document:
                   Web Services Description Language 1.1 (WSDL 1.1)
          Du coup, une application Flex accède à un webService par une URL.
          Une application Flex supporte les requêtes et les réponses SOAP
          Flex Builder dispose d’un outil d’introspection de WSDL qui génère automatiquement
           un proxy AS3.




                                                        13
2008 Adobe Systems Incorporated. All Rights Reserved.
WebService: le standard du web




                                                        14
2008 Adobe Systems Incorporated. All Rights Reserved.
Crossdomain.xml

    Le Flash Player applique des règles de sécurité pour accéder à des données.
    Une application Flex peut accéder aux sources de données qui sont sur le même domaine que le
    fichier SWF.
    Cependant une application Flex ne peut accéder à des sources de données situées dans un
    domaine différent, sauf si le domaine lui en donne la permission. Pour cela, il faut déployer un
    fichier crossdomain.xml à la racine du domaine.


    <?xml version=quot;1.0quot;?>
    <!DOCTYPE cross-domain-policy SYSTEM
    quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtdquot;>
    <cross-domain-policy>
       <allow-access-from domain=quot;*.monserveur.comquot;/>
    </cross-domain-policy>


    Exemple: http://www.yahoo.com/crossdomain.xml




                                                        15
2008 Adobe Systems Incorporated. All Rights Reserved.
Les projets autres que J2EE



    Flex et PHP :                                            Flex et .Net:




    Flex et Coldfusion:                                      Flex et Ruby:




                                                        16
2008 Adobe Systems Incorporated. All Rights Reserved.
Deux approches dans le développement Client/Server

     Couplage faible: Protocoles basés sur le Document(XML, SOAP, …)
             Langage neutre, facile à débugger et documenter
             Le parsing et le formatage du code est plus difficile à maintenir (de + en + complexe)
             Le temps de traitement augmente avec l’augmentation de la complexité
             Il est plus simple de développement indépendamment le client du serveur

     Couplage fort: Protocoles basés sur un modèle Objet (RMI, AMF, …)
             Difficile de changer de langage
             Plus rapide pour le client et le serveur, diminution de la bande passante
             Plus simple de partager du code ou d’utiliser de la génération automatique de code basée
              sur le modèle
             Meilleure gestion de la complexité du modèle (scalabilité)
             Moins de design de code, moins de dépendance sur le format qui transite
             Manipulation du client et du serveur en parallèle pour rafraichir en même temps les deux
              parties


                                                           1
                                                           7
2005 Adobe Systems   Incorporated. All Rights Reserved.
Flex et les serveurs
    d’application Java
    Remoting, Messaging et Data
    Management




                                                           1
                                                           18
                                                           8
2006 Adobe Systems   Incorporated. All Rights Reserved.
LiveCycle Data Services ES

                                                              LiveCycle Data Services ES
LiveCycle Data Services est un ensemble de                                                Service
                                                             Data Management
composants J2Ee et d’API utilisés pour:                      Data Synchronization
                                                                                          Adapters
                                                                                          LiveCycle
                                                             Off-line Applications
    Créer des RIA qui manipulent énormément de
                                                                 Data Paging           ColdFusion
     données avec un minimum de code, et accélérer
     la mise en production en programmant sur un                RPC Services
                                                                                          Hibernate
     modèle client-serveur.                                      Web Service

                                                                 HTTP Service              SQL
    Intégrer une RIA avec des applications existantes
                                                             Remote Object Service
     de l’infrastructure J2EE.                                                              JMS
                                                                 Messaging
    Intégrer facilement des RIA avec des processus
                                                                                            Java
     documentaires LiveCycle.                                 Publish & Subscribe

                                                                 Collaboration
    Développer des application collaboratives, gérer         Real Time Data Push
                                                                                          Custom…

     la synchronisation offline, gérer le temps réel.
                                                                       Proxy Service
    Générer des PDF à la demande qui intègrent des                  Web-tier Compiler
     éléments graphiques.
                                                                    Portal Deployment

                                                                    RIA-PDF Generation




                                                        19
2008 Adobe Systems Incorporated. All Rights Reserved.
Qu’est ce que BlazeDS?

BlazeDS est un sous-ensemble Open Source                                  BlazeDS
                                                                                          Service
(LGPL) de LCDS. C’est une solution de Remoting               Data Management             Adapters
et de HTTP messaging.                                        Data Synchronization
                                                                                         LiveCycle
                                                             Off-line Applications
 Gratuit et Open Source                                         Data Paging             ColdFusion

 Ouverture du format d’échange de données AMF3                 RPC Services             Hibernate
  (Action Message Format)                                        Web Service
 Technologie de messaging sur le standard HTTP                  HTTP Service               SQL
  (équivalent de Comet)                                      Remote Object Service
                                                                                            JMS
 Builds certifiées, support entreprise disponible (LC
                                                                 Messaging
  Community Edition)
                                                              Publish & Subscribe           Java
                                                                 Collaboration
                                                                                         Custom…
                                                              Real Time Data Push

                                                                       Proxy Service
                                                                     Web-tier Compiler
                                                                    Portal Deployment
                                                                    RIA-PDF Generation



                                                        20
2008 Adobe Systems Incorporated. All Rights Reserved.
LCDS.war

Un fichier LCDS.war est fourni pour démarrer vos projets Flex / Java.

    Structure du WAR:
           +WEB-INF/classes                            Pour placer ses classes Java


           +WEB-INF/lib                                Contient les librairies Java de LCDS


           +WEB-INF/flex                               Contient les fichiers XML de configuration
                  Remoting-config.xml                  Destinations vers les classes Java
                  Messaging-config.xml                 Destinations pour le messaging
                  Data-Management-config.xml           Destinations vers les assemblers
                  Proxy-config.xml                     Destinations vers les services HTTP
                  Services-config.xml                  Configuration des canaux




                                                        21
2008 Adobe Systems Incorporated. All Rights Reserved.
Plateformes supportées

    Windows 2000 and Vista, x86, x64
    Windows 2003 x86, x64, IPF
    Solaris 9 and 10 SPARC
    RedHat Linux AS 4 and 5, x86, x64
    Suse Enterprise Linux 9 and 10, x86, x64
    Suse Enterprise Linux 9 and 10, zSeries (with IBM WebSphere only)
    IBM AIX 5.3, PPC (with IBM WebSphere only)
    HP-UX 11i v3 IPF, PA/RISC (with BEA Weblogic only)




                                                        22
2008 Adobe Systems Incorporated. All Rights Reserved.
Serveurs d’applications supportés

    Apache Tomcat 6.0.x
    JBoss Application Server 4.2.2 4.0.3 SP1+, 4.2.x
    BEA Weblogic 9 and 10
    IBM WebSphere Application Server 6.1.x
    Fujitsu Interstage 9
    Hitachi Cosminexus 7
    NEC WebOTX                                              JDK supportés
    Oracle 10G AS (10.1.3)                                     Sun JDK 5
    SAP NetWeaver CE 7.1 SP3                                   BEA JRockit 5
    Adobe JRun 4 Updater 7                                     IBM JDK 5



                                                        23
2008 Adobe Systems Incorporated. All Rights Reserved.
Remoting
           Demonstration




                                                           2
                                                           24
                                                           4
2006 Adobe Systems   Incorporated. All Rights Reserved.
Créez une classe Java




                                                        25
2008 Adobe Systems Incorporated. All Rights Reserved.
remoting-config.xml

    Les destinations pour le remoting pointent directement sur les classes Java
     en utilisant un « adapter » préconfiguré sur le serveur (java-object) et un
     canal de communication (my-amf)
    Chaque destination pointe sur une seule classe Java
<destination id=“SimpleJavaService”>
     <properties>
                      <source>NoidaTraining.SimpleJavaService</source>
                      <scope>application</scope>
     </properties>
</destination>

     NB: Vous n’avez pas besoin de redémarrer le serveur après avoir modifié les fichiers de configuration de LCDS




                                                            26
2008 Adobe Systems Incorporated. All Rights Reserved.
Précisions sur le <scope>

<destination id=“SimpleJavaService”>
     <properties>
                      <source>NoidaTraining.SimpleJavaService</source>
                      <scope>application</scope>
     </properties>
</destination>

request - un nouvel objet pour chaque appel de méthode (par défaut)
session - les objets restent disponibles le temps de la session cliente
application – les objets restent disponibles pendant toute la durée de vie de
  l’application web




                                                          27
2008 Adobe Systems Incorporated. All Rights Reserved.
<mx:RemoteObject>




                                                        28
2008 Adobe Systems Incorporated. All Rights Reserved.
Multiple Event Handlers

    Pour un même service Java, je peux gérer plusieurs méthodes.




                                                        29
2008 Adobe Systems Incorporated. All Rights Reserved.
Appel asynchrone et utilisation du token

    Lorsqu’on appelle une méthode, je rajoute un attribut à l’opération

                      var remoteFn:AbstractOperation = remoteObject.getOperation(quot;loginquot;);
                      var call : AsyncToken = remoteFn.send();
                      call.someAttr = “Aquot;;


    Lorsque je gère le retour, je teste l’attribut:

                       if (event.token.someAttr == “A”) {
                             …
                      } else {
                             …
                      }



2008 Adobe Systems Incorporated. All Rights Reserved.
Echange de données entre Java and ActionScript




                                                        31
2008 Adobe Systems Incorporated. All Rights Reserved.
Java Value Object




                                                        32
2008 Adobe Systems Incorporated. All Rights Reserved.
ActionScript Value Object




                                                        33
2008 Adobe Systems Incorporated. All Rights Reserved.
Architecture n-tiers avec Remoting




2008 Adobe Systems Incorporated. All Rights Reserved.
Advanced Concepts - Remote Object

    Scope et attribute-id pour gérer des composants
           Scope: request, session, application – contrôle de cycle de vie de votre remote object
           Attribute-id: stock le composant sous ce nom dans le ServletContext ou la HTTPSession pour le partager avec une JSP ou
            d’autres destinations

    FlexFactory: interface pour Spring
           Exemple de configuration:
                   <destination name=“SpringComponent”>
                      <properties>
                              <factory>spring</factory>
                              <source>MySpringComponentId</source>
                      </properties>
                   </destination>

    FlexSession
           Obtenue à partir de FlexContext
           Utilise HTTPSession if vous êtes sur HTTP, émule les fonctionnalités d’une session HTTP pour le RTMP

    [Transient] metadata
           Propriété pour l’ActionScript (annotation) qui ne sera pas sérialiser pour le serveur




                                                                     35
2008 Adobe Systems Incorporated. All Rights Reserved.
Mapping personnalisé entre ActionScript et Java

    Si les mécanismes standards de sérialisation et de désérialisation de données
     entre ActionScript (client) et Java (server) ne sont pas satisfaisants:


           Vous pouvez implémenter l’interface ActionScript sur le client grâce à
            flash.utils.Iexternalizable


           Vous pouvez créer la correspondance Java et écrire votre propre schéma
            de sérialisation avec java.io.Externalizable




2008 Adobe Systems Incorporated. All Rights Reserved.
Messaging




                                                        3
                                                        37
                                                        7
2006 Adobe Systems Incorporated. All Rights Reserved.
Publish/Subscribe Messaging




                                                        Livecycle Data Services


   Client A



                                                                              Message
                                                         Endpoint
                                                                               Service

   Client B




                                 RTMP
   Client C
                                 AMF                                    Publisher
                                 HTTP                                   Subscriber




                                                                    38
2008 Adobe Systems Incorporated. All Rights Reserved.
Demo: Chat




                                                        39
2008 Adobe Systems Incorporated. All Rights Reserved.
messaging-config.xml

Ajout de la destination “chat


      <destination id=“chat”>
                      <adapter ref=“actionscript”>
     </destination>


L’adapter ActionScript n’est utilisé que pour les applications qui n’utilisent que
   des clients Flex. C’est l’adapter par défaut.


L’adapter JMS permet à des clients Flex et Java de communiquer.




                                                        40
2008 Adobe Systems Incorporated. All Rights Reserved.
Publier un Message

    Déclaration d’un tag Producer
     <mx:Producer id=quot;producerquot; destination=quot;chatquot;/>


    Envoyer le message

        public function send():void
        {
            var message:AsyncMessage = new AsyncMessage();
            message.header.userId = userId.text;
            message.body = msg.text;
            producer.send(message);
        }




                                                        41
2008 Adobe Systems Incorporated. All Rights Reserved.
S’abonner à une Destination

    Déclarer un Consumer
     <mx:Consumer id=quot;consumerquot; destination=quot;chat“
     message=quot;messageHandler(event)quot;/>


    Gérer la réception de messages
     public function messageHandler(event:MessageEvent):void
     {
            log.text += event.message.header.userId + quot;: quot; + event.message.body.msg + quot;nquot;;
     }

    S’abonner aux messages
     consumer.subscribe();
Exemple: www.toutracker.org


                                                        42
2008 Adobe Systems Incorporated. All Rights Reserved.
Messaging - Data Push




                                                        LiveCycle Data Services

                                                                                                     Messaging
                                                                                       Adapter X
                                                                                                     System X



                                                                            Message                  JMS
                                                         Endpoint                      JMS Adapter
                                                                            Services                 Provider



                                                                                                     Messaging
                                                                                       Adapter Y
                                                                                                     System Y



                                 RTMP

                                 AMF                                    Publisher
                                 HTTP                                   Subscriber




                                                                    43
2008 Adobe Systems Incorporated. All Rights Reserved.
Déclaration de la destination « feed »

             <destination id=quot;feedquot;>
                   <properties>
                       <network>
                          <session-timeout>0</session-timeout>
                       </network>
                       <server>
                          <max-cache-size>1000</max-cache-size>
                          <message-time-to-live>0</message-time-to-live>
                          <durable>false</durable>
                       </server>
                   </properties>
                </destination>




                                                        44
2008 Adobe Systems Incorporated. All Rights Reserved.
Classe Java qui génère et envoie un message sur « feed » 1/2




                                                        45
2008 Adobe Systems Incorporated. All Rights Reserved.
Classe Java qui génère et envoie un message sur « feed » 2/2




                                                        46
2008 Adobe Systems Incorporated. All Rights Reserved.
Les Channels dans LiveCycle Data Services ES




                                                        47
2008 Adobe Systems Incorporated. All Rights Reserved.
Quels canaux utiliser pour le temps réel ? (BlazeDS)



          Channel                                  Description                Les Plus               Les Moins


                                                Poll ~ 1 min                                    Poll roundtrip overhead
          AMF
                                              Server parks poll          Works with firewalls
       Long Polling                                                                             Servlet API blocking IO
                                             until data available

                                                                                                  HTTP proxies can
                                                 Server pushes           No polling overhead
                                                                                                 swallow messages
    Streaming AMF                              infinite messages
                                                                                                Servlet API blocking
                                                 (HTTP Chunk)            Works with firewalls
                                                                                                         IO

       AMF                                       Messages/
                                                                         Works with firewalls
   Simple polling                             request/response
 Piggyback Enabled                              piggybacking




                                                                    48
2008 Adobe Systems Incorporated. All Rights Reserved.
Quels canaux utiliser pour le temps réel ? (LCDS)


             Channel                                Description                     Les Plus                 Les Moins


                 RTMP
  (in a ChannelSet with fallback to                     Single duplex        Immediate notification       Non standard port
   NIO AMFChannel configured to                          connection          when a client is closed      blocked by firewalls
             Long Poll)


                                                                             Better scalability and no
             NIO AMF                           Uses an NIO server and
                                                                             configured upper bound      Requires more network
           Long Polling                         minimal HTTP stack
                                                                               on no. of parked poll         configuration
            (no fallback)                         1000s of clients
                                                                                     requests

     NIO Streaming AMF                                                       Better scalability and no
                                               Uses an NIO server and
 (in a ChannelSet followed by                                                configured upper bound
                                                minimal HTTP stack                                          Same as above
the polling AMFChannel below                                                     on the number of
                                                  1000s of clients
          for fallback)                                                       streaming connections


           NIO AMF                             Uses an NIO server and
        Simple polling                          minimal HTTP stack                Same as above             Same as above
      Piggyback Enabled                           1000s of clients

                                                                        49
2008 Adobe Systems Incorporated. All Rights Reserved.
Data Management
             Demonstration




                                                           5
                                                           50
                                                           0
2006 Adobe Systems   Incorporated. All Rights Reserved.
Travailler avec des données:
Le mode traditionnel du HTML (page)

                                                                Persistence Solutions:
                                                                Hibernate
                                                                JDOs
                                                                EJB 3
                                                                Others…


                                                        data                            data



    Le client est souvent utiliser pour capturer de la données et l’affichage
    Le client ne conserve pas une version de la donnée
    Pas de réelle manipulation de données côté client
    Les données doivent être snchronisées entre le middle-tier et la base




                                                          51
2008 Adobe Systems Incorporated. All Rights Reserved.
Le modèle de la RIA




                  data                                 data         data




    Le client possède une version de la donnée
    Manipulation riche des données côté client
    La donnée doit être synchronisée entre le tiers client, le middle-tier ET entre
     le middle-tier et la base




                                                          52
2008 Adobe Systems Incorporated. All Rights Reserved.
L’approche RPC




                                                             RPC

                                                             Services

                  data                                                  data

     Responsabilité du développeur:
          Notifier les changements - flags (create, update, delete)
          Maintenir une version originelle de la donne pour
           appliquer une stratégie de locking
          Créer des Remote Procedure Calls pour créer, mettre à
           jour et effacer des enregistrements
          Identifier et gérer les conflits / les appels concurrents




                                                                    53
2008 Adobe Systems Incorporated. All Rights Reserved.
L’approche de LiveCycle Data Services




                                                        Data

                                                        Service

                  data                                              data

     Client-Side API:
          Flags changes (create, update, delete)
          Maintient une version d’origine de la donnée pour
           appliquer la stratégie de locking
          Envoie une liste de changement à LCDS dans un groupe
           de messages
          Gère les conflits, les accès concurrents




                                                                54
2008 Adobe Systems Incorporated. All Rights Reserved.
L’approche de LiveCycle Data Services




                                                                              Object

                                                            Data             Hibernate

                                                            Service          JDBC

                                                                              ColdFusion
                  data                                                                                     data
                                                                              Custom

                                                        Data Service:
                                                               Désérialise la liste des changements qui proviennent du
                                                                client
                                                               Sérialise les données avant de les données au client
                                                               Passe la liste des changement au bon adapter
                                                               Notifie les clients qui sont abonnés à la destination
                                                        Adapter:
                                                               Effectue les changements
                                                               Identifie les conflits
                                                               Passe les résultats à Data Services



                                                                    55
2008 Adobe Systems Incorporated. All Rights Reserved.
Data Services


                                                        LiveCycle Data Services



                                                                                         JDBC
                                                                                                     RDBMS
Client A                                                                                Adapter




                                                                               Data      Object
                                                            Endpoint                                 DAO
                                                                               Service   Adapter


Client B
                                                                                         Hibernate
                                                                                                     Hibernate
                                                                                         Adapter




                                                                                         CFC
Client C                                                                                Adapter     ColdFusion




                                                                          56
2008 Adobe Systems Incorporated. All Rights Reserved.
La résolution de conflits

    Les conflits interviennent quand différents clients essayent de mettre à jour
     la même donnée en même temps.
    Le nombre de conflits dans une application dépend de la stratégie de
     locking (concurrency level) implémentée dans l’application.
    LCDS n’impose pas de stratégie de locking, vous pouvez même choisir de ne
     pas gérer les conflits.
    Vous êtes libre d’estimer ce que représente un conflit par rapport au
     contexte de votre application.
    LCDS prévient les clients quand un conflit a lieu en envoyant une
     DataSyncException.
    Côté client, LCDS fournit une API sophistiquée pour résoudre les conflits. Un
     événement est dispatché en cas de conflit.




2008 Adobe Systems Incorporated. All Rights Reserved.
Concepts avancés - Data Management Services

    Paging


    Managed associations
           Supports replicating general object graphs from server to client (with cycles)
           Tracks changes to relationships and pushes them to the server
           Ensures a single instance of the client object for each id
           Optionally associations can be “lazy” – referenced item is fetched as needed


    Writing custom assemblers
           Implement these methods: getItem, createItem, updateItem, deleteItem, fill, count
           Source to HibernateAssembler is included




                                                        58
2008 Adobe Systems Incorporated. All Rights Reserved.
Le code côté client Flex

  <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?>
  <mx:Application xmlns:mx=quot;http://www.macromedia.com/2005/mxmlquot;
    creationComplete=quot;initApp()quot;>
  <mx:Script>
        public var ds:DataService;
        [Bindable]
        public var contacts:ArrayCollection;
        public function initApp() {
         contacts = new ArrayCollection();
         ds = new DataService(quot;contactquot;);
         ds.fill(contacts);
        }
  </mx:Script>
  <mx:DataGrid dataProvider=quot;{contacts}quot; editable=quot;true“/>
  </mx:Application>

                                                        59
2008 Adobe Systems Incorporated. All Rights Reserved.
Data management-confis.xml

    <destination id=quot;contactquot;>
         <adapter ref=quot;java-daoquot; />
         <properties>
           <metadata>
             <identity property=quot;contactIdquot;/>
           </metadata>
            <server>
               <assembler>
                <class>samples.contact.ContactAssembler</class>
               </assembler>
               <fill-method>
                 <name>loadContacts</name>
               </fill-method>
               <sync-method>
                 <name>syncContacts</name>
               </sync-method>
            </server>
         </properties>
   </destination>



                                                        60
2008 Adobe Systems Incorporated. All Rights Reserved.
ContactAssembler.java

   public class ContactAssembler {
       public List loadContacts() {
         ContactDAO dao = new ContactDAO();
         return dao.getContacts();
       }
       public List syncContacts(List changes) {
         Iterator iterator = changes.iterator();
         ChangeObject co;
         while (iterator.hasNext()) {
            co = (ChangeObject) iterator.next();
            if (co.isCreate()) {
               // invoke logic to create item
            } else if (co.isUpdate()) {
                // invoke logic to update item
            } else if (co.isDelete()) {
               // invoke logic to delete item
            }
         }
         return changes;
       }
   }

                                                        61
2008 Adobe Systems Incorporated. All Rights Reserved.
Clustering




                                                        6
                                                        62
                                                        2
2006 Adobe Systems Incorporated. All Rights Reserved.
Implémentation du clustering

    In-built software clustering
    Basé sur Jgroups


    Support du Load Balancing Hardware (out-of-the-box)
    Support de clusters horizontaux et verticaux
    Les destinations diffusent leurs disponibilités et les endpoints accessibles
     dans le cluster
    Les destinations de messaging et de data services diffusent les messages ou
     les changements aux destinations correspondantes sur les autres serveurs
     du cluster.




                                                        63
2008 Adobe Systems Incorporated. All Rights Reserved.
En résumé …



                                                        Failover     Messaging State Replication


Proxy Service                                             OUI                   NON


Remoting Service                                          OUI                   NON


Message Service                                           OUI                   OUI


Data Management Service                                   OUI                   OUI




                                                                64
2008 Adobe Systems Incorporated. All Rights Reserved.
Sécurité




                                                           6
                                                           65
                                                           5
2006 Adobe Systems   Incorporated. All Rights Reserved.
Glossaire


                                                                                   Destination


    MSG                                                 Channel        Endpoint    Destination


                                                                                   Destination


     MSG                                                Channel        Endpoint    Destination


                                                                                   Destination

                                       https://monserveur:443/messagebroker/amfsecure


                                                                  66
2008 Adobe Systems Incorporated. All Rights Reserved.
Securiser le canal RTMP

        <channel-definition id=quot;my-rtmps“
          class=quot;mx.messaging.channels.SecureRTMPChannelquot;>
            <endpoint uri=quot;rtmps://{server.name}:2099“
                class=quot;flex.messaging.endpoints.SecureRTMPEndpointquot;/>
                      <properties>
                                <idle-timeout-minutes>30</idle-timeout-minutes>
                      <keystore-
            file>C:/somedir/flex/dataservices/apps/j2ee/dev/WEBINF/flex/keys/server.key
            store</keystore-file>
                                <keystore-password>password</keystore-password>
                      </properties>
        </channel-definition>




2008 Adobe Systems Incorporated. All Rights Reserved.
Securiser le canal RTMP

    Vous pouvez aussi spécifier un autre algorithme que celui proposé par
     défaut par la JVM quand on active le SSL.


<algorithm>Default</algorithm> pour explicitement utiliser celui proposé par
  défaut par la JVM.
<algorithm>SunX509</algorithm> pour utiliser celui de SUN.


<algorithm>IbmX509</algorithm> pour utiliser celui d’IBM.


De même, il exite les canaux secureAMF et le secureHTTP tous deux basés sur HTTPS




2008 Adobe Systems Incorporated. All Rights Reserved.
Sécuriser les endpoints HTTP et RTMP

    Vous pouvez aussi protéger l’accès aux endpoints des canaux HTTP- et RTMP- :


        <whitelist>
              <ip-address-pattern>237.*</ip-address-pattern>
              <ip-address>10.132.64.63</ip-address>
        </whitelist>


        <blacklist>
              <ip-address>10.60.147.*</ip-address>
              <ip-address-pattern>10.132.17.5[0-9]{1,2}</ip-address-pattern>
        </blacklist>




2008 Adobe Systems Incorporated. All Rights Reserved.
Sécuriser des endpoints via JAAS

    Par les contraintes de sécurité web basée sur JAAS
        <destination id=“sampleJaasServicequot;>
        ……………………..
            <security>
                      <security-constraint>
                                <auth-method>Custom</auth-method>
                                <roles>
                                                 <role>roDestUser</role>
                                </roles>
                      </security-constraint>
            </security>
        </destination>




2008 Adobe Systems Incorporated. All Rights Reserved.
Invocation de services sécurisés

    Sécurisation de la communication Flex <-> LCDS :
        var employeeHTTP:HTTPService = new HTTPService();
        employeeHTTP.destination = quot;SecureDestquot;;
        employeeHTTP.setCredentials(quot;myUserNamequot;, quot;myPasswordquot;);
        empoyeeHTTP.send({param1: 'foo'});


    Sécurisation d’un proxy:
        <destination id=quot;samplesProxyquot;>
            <channels>
                      <channel ref=quot;samples-amfquot;/>
            </channels>
            <properties>
                   <url>http://someserver/SecureService.jsp</url>
                   <remote-username>johndoe</remote-username>
                   <remote-password>opensaysme</remote-password>
            </properties>
        </destination>


2008 Adobe Systems Incorporated. All Rights Reserved.
Les bonus
  Génération de PDF, invocation
  de LiveCycle ES, AIR…




                                                           7
                                                           72
                                                           2
2006 Adobe Systems   Incorporated. All Rights Reserved.
Conclusion




                                                           7
                                                           73
                                                           3
2006 Adobe Systems   Incorporated. All Rights Reserved.
Pour aller plus loin…

            Récupérer sur le site d’Adobe LiveCycle Data Services:
                          Installation automatique de lcds-samples
                          Installation du 30mins Test Drive avec toutes les sources


            Retrouvez les slides sur le blog « Code moi un mouton »


            Nos emails :
                          Bertrand Collard:               bcollard@adobe.com
                          Michael Chaize:                 mchaize@adobe.com




                                                               74
2006 Adobe Systems   Incorporated. All Rights Reserved.
Le QUIZZ !!!




                Que doit-on modifier si l’on
                 souhaite utiliser un autre
                 canal de communication pour
                 le RemoteObject entre
                 l’application Flex et LCDS ?


                                                        75
2008 Adobe Systems Incorporated. All Rights Reserved.
Le QUIZZ !!!




                Que doit-on mettre en place
                 pour accéder à un webService
                 externe à l’entreprise?



                                                        76
2008 Adobe Systems Incorporated. All Rights Reserved.
Le QUIZZ !!!




                Comment Adobe a
                 implémenté le support du
                 clustering dans LCDS ?



                                                        77
2008 Adobe Systems Incorporated. All Rights Reserved.
2008 Adobe Systems Incorporated. All Rights Reserved.

Contenu connexe

Tendances

Blu age@md day2011
Blu age@md day2011Blu age@md day2011
Blu age@md day2011MDDAY11
 
Presentation Jaspersoft 4.0 par l'éditeur - Bénéfices et fonctionnalités
Presentation Jaspersoft 4.0 par l'éditeur - Bénéfices et fonctionnalitésPresentation Jaspersoft 4.0 par l'éditeur - Bénéfices et fonctionnalités
Presentation Jaspersoft 4.0 par l'éditeur - Bénéfices et fonctionnalitésALTIC Altic
 
Windows 8: votre poste de travail réinventé
Windows 8: votre poste de travail réinventéWindows 8: votre poste de travail réinventé
Windows 8: votre poste de travail réinventéMicrosoft France
 
3_ CFT &amp; les plates-formes d\'intégration à base d\'ESB
3_ CFT &amp; les plates-formes d\'intégration à base d\'ESB3_ CFT &amp; les plates-formes d\'intégration à base d\'ESB
3_ CFT &amp; les plates-formes d\'intégration à base d\'ESBJean-Claude Bellando
 
6_ Extension_portail_pour Transfer CFT
6_ Extension_portail_pour Transfer CFT6_ Extension_portail_pour Transfer CFT
6_ Extension_portail_pour Transfer CFTJean-Claude Bellando
 

Tendances (7)

Présentation Flex Mobile
Présentation Flex MobilePrésentation Flex Mobile
Présentation Flex Mobile
 
Blu age@md day2011
Blu age@md day2011Blu age@md day2011
Blu age@md day2011
 
Chame RIA
Chame RIAChame RIA
Chame RIA
 
Presentation Jaspersoft 4.0 par l'éditeur - Bénéfices et fonctionnalités
Presentation Jaspersoft 4.0 par l'éditeur - Bénéfices et fonctionnalitésPresentation Jaspersoft 4.0 par l'éditeur - Bénéfices et fonctionnalités
Presentation Jaspersoft 4.0 par l'éditeur - Bénéfices et fonctionnalités
 
Windows 8: votre poste de travail réinventé
Windows 8: votre poste de travail réinventéWindows 8: votre poste de travail réinventé
Windows 8: votre poste de travail réinventé
 
3_ CFT &amp; les plates-formes d\'intégration à base d\'ESB
3_ CFT &amp; les plates-formes d\'intégration à base d\'ESB3_ CFT &amp; les plates-formes d\'intégration à base d\'ESB
3_ CFT &amp; les plates-formes d\'intégration à base d\'ESB
 
6_ Extension_portail_pour Transfer CFT
6_ Extension_portail_pour Transfer CFT6_ Extension_portail_pour Transfer CFT
6_ Extension_portail_pour Transfer CFT
 

En vedette

Web Standards Seminar 2006
Web Standards Seminar 2006Web Standards Seminar 2006
Web Standards Seminar 2006Taeyoung Yoon
 
Fun with PostgreSQL User Groups
Fun with PostgreSQL User GroupsFun with PostgreSQL User Groups
Fun with PostgreSQL User GroupsSelena Deckelmann
 
Larsine
LarsineLarsine
Larsineeka
 
«Зачем», «что» и «как» в исследовании коллокаций.
«Зачем», «что» и «как» в исследовании коллокаций. «Зачем», «что» и «как» в исследовании коллокаций.
«Зачем», «что» и «как» в исследовании коллокаций. Lidia Pivovarova
 
JAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardJAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardMichael Chaize
 
No Such Thing As Social Products
No Such Thing As Social ProductsNo Such Thing As Social Products
No Such Thing As Social ProductsJon Gatrell
 
La1 Comp Ethic
La1 Comp EthicLa1 Comp Ethic
La1 Comp EthicCma Mohd
 
Participación da muller no ámbito tecnolóxico. Perspectiva dende as Titulació...
Participación da muller no ámbito tecnolóxico. Perspectiva dende as Titulació...Participación da muller no ámbito tecnolóxico. Perspectiva dende as Titulació...
Participación da muller no ámbito tecnolóxico. Perspectiva dende as Titulació...AGESTIC - Asociación Gallega Empresas TIC
 
Michael
MichaelMichael
Michaeleka
 
Charles Chaplin
Charles ChaplinCharles Chaplin
Charles ChaplinXar Li
 
Blade Runner Presentation
Blade Runner PresentationBlade Runner Presentation
Blade Runner PresentationRudy Garns
 

En vedette (18)

Web Standards Seminar 2006
Web Standards Seminar 2006Web Standards Seminar 2006
Web Standards Seminar 2006
 
大家行01
大家行01大家行01
大家行01
 
Fun with PostgreSQL User Groups
Fun with PostgreSQL User GroupsFun with PostgreSQL User Groups
Fun with PostgreSQL User Groups
 
Larsine
LarsineLarsine
Larsine
 
«Зачем», «что» и «как» в исследовании коллокаций.
«Зачем», «что» и «как» в исследовании коллокаций. «Зачем», «что» и «как» в исследовании коллокаций.
«Зачем», «что» и «как» в исследовании коллокаций.
 
大家行05
大家行05大家行05
大家行05
 
JAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardJAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboard
 
Pitchtraining voor studievereniging WATT
Pitchtraining voor studievereniging WATTPitchtraining voor studievereniging WATT
Pitchtraining voor studievereniging WATT
 
Noches Griegas
Noches GriegasNoches Griegas
Noches Griegas
 
No Such Thing As Social Products
No Such Thing As Social ProductsNo Such Thing As Social Products
No Such Thing As Social Products
 
Slieveleague
SlieveleagueSlieveleague
Slieveleague
 
La1 Comp Ethic
La1 Comp EthicLa1 Comp Ethic
La1 Comp Ethic
 
Participación da muller no ámbito tecnolóxico. Perspectiva dende as Titulació...
Participación da muller no ámbito tecnolóxico. Perspectiva dende as Titulació...Participación da muller no ámbito tecnolóxico. Perspectiva dende as Titulació...
Participación da muller no ámbito tecnolóxico. Perspectiva dende as Titulació...
 
Binecuvantare
BinecuvantareBinecuvantare
Binecuvantare
 
Michael
MichaelMichael
Michael
 
Charles Chaplin
Charles ChaplinCharles Chaplin
Charles Chaplin
 
Blade Runner Presentation
Blade Runner PresentationBlade Runner Presentation
Blade Runner Presentation
 
Ybp Netwerken Op Internet
Ybp Netwerken Op InternetYbp Netwerken Op Internet
Ybp Netwerken Op Internet
 

Similaire à Adobe LiveCycle Data Services

Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...
Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...
Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...Agence du Numérique (AdN)
 
Presentation Ai3 Journée Web Agency
Presentation Ai3   Journée Web AgencyPresentation Ai3   Journée Web Agency
Presentation Ai3 Journée Web Agencyxavier.raymond
 
Friday Web 16 01 2009
Friday Web 16 01 2009Friday Web 16 01 2009
Friday Web 16 01 2009Arnaud_Pukan
 
Manage Traceability with Apache Atlas flexible metadata repository.
Manage Traceability with Apache Atlas flexible metadata repository.Manage Traceability with Apache Atlas flexible metadata repository.
Manage Traceability with Apache Atlas flexible metadata repository.OW2
 
CDAP, la boîte à outil pour concevoir vos applications Big Data
CDAP,  la boîte à outil pour concevoir vos applications Big DataCDAP,  la boîte à outil pour concevoir vos applications Big Data
CDAP, la boîte à outil pour concevoir vos applications Big DataSynaltic Group
 
Quand il y a des clients riches dans l'Air (RIA et Adobe Flex)
Quand il y a des clients riches dans l'Air (RIA et Adobe Flex)Quand il y a des clients riches dans l'Air (RIA et Adobe Flex)
Quand il y a des clients riches dans l'Air (RIA et Adobe Flex)Camille Roux
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications WebSylvain Maret
 
Data Manager : une interface au service du Soft Tagging
Data Manager : une interface au service du Soft Tagging Data Manager : une interface au service du Soft Tagging
Data Manager : une interface au service du Soft Tagging AT Internet
 
Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008Association Paris-Web
 
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?Nicole Sullivan
 
Témoignage client ProxiAD
Témoignage client ProxiADTémoignage client ProxiAD
Témoignage client ProxiADEclipseDayParis
 
15h30 societe generale_mathieu_renault.ppt (lecture seule)
15h30 societe generale_mathieu_renault.ppt (lecture seule)15h30 societe generale_mathieu_renault.ppt (lecture seule)
15h30 societe generale_mathieu_renault.ppt (lecture seule)stephanfrancois
 
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...Jean-Michel Bouffard
 
Meetup Geneve Monitoring -TCS Performance et monitoring
Meetup Geneve Monitoring -TCS Performance et monitoringMeetup Geneve Monitoring -TCS Performance et monitoring
Meetup Geneve Monitoring -TCS Performance et monitoringOPEN-IT SERVICES
 
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...Niji
 
Retour d'expérience sur les wikis en entreprise
Retour d'expérience sur les wikis en entrepriseRetour d'expérience sur les wikis en entreprise
Retour d'expérience sur les wikis en entrepriseBernard Paques
 
Aperçu de java EE 5
Aperçu de java EE 5Aperçu de java EE 5
Aperçu de java EE 5Quentin Adam
 
Applications Web En Entreprise Avec Ruby On Rails Benefices Et Limitations Gu...
Applications Web En Entreprise Avec Ruby On Rails Benefices Et Limitations Gu...Applications Web En Entreprise Avec Ruby On Rails Benefices Et Limitations Gu...
Applications Web En Entreprise Avec Ruby On Rails Benefices Et Limitations Gu...Fred de Villamil
 

Similaire à Adobe LiveCycle Data Services (20)

Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...
Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...
Saas, WebApps, WebTop, ... Mythes et réalités sur les "Web Applications" pour...
 
Presentation Ai3 Journée Web Agency
Presentation Ai3   Journée Web AgencyPresentation Ai3   Journée Web Agency
Presentation Ai3 Journée Web Agency
 
Intro Aquarium Paris Printemps 2009
Intro Aquarium Paris Printemps 2009Intro Aquarium Paris Printemps 2009
Intro Aquarium Paris Printemps 2009
 
Friday Web 16 01 2009
Friday Web 16 01 2009Friday Web 16 01 2009
Friday Web 16 01 2009
 
Manage Traceability with Apache Atlas flexible metadata repository.
Manage Traceability with Apache Atlas flexible metadata repository.Manage Traceability with Apache Atlas flexible metadata repository.
Manage Traceability with Apache Atlas flexible metadata repository.
 
CDAP, la boîte à outil pour concevoir vos applications Big Data
CDAP,  la boîte à outil pour concevoir vos applications Big DataCDAP,  la boîte à outil pour concevoir vos applications Big Data
CDAP, la boîte à outil pour concevoir vos applications Big Data
 
Quand il y a des clients riches dans l'Air (RIA et Adobe Flex)
Quand il y a des clients riches dans l'Air (RIA et Adobe Flex)Quand il y a des clients riches dans l'Air (RIA et Adobe Flex)
Quand il y a des clients riches dans l'Air (RIA et Adobe Flex)
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications Web
 
Data Manager : une interface au service du Soft Tagging
Data Manager : une interface au service du Soft Tagging Data Manager : une interface au service du Soft Tagging
Data Manager : une interface au service du Soft Tagging
 
Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008Performance Web côté client - Daspet / Sullivan - Paris Web 2008
Performance Web côté client - Daspet / Sullivan - Paris Web 2008
 
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?
 
Témoignage client ProxiAD
Témoignage client ProxiADTémoignage client ProxiAD
Témoignage client ProxiAD
 
15h30 societe generale_mathieu_renault.ppt (lecture seule)
15h30 societe generale_mathieu_renault.ppt (lecture seule)15h30 societe generale_mathieu_renault.ppt (lecture seule)
15h30 societe generale_mathieu_renault.ppt (lecture seule)
 
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...
 
Meetup Geneve Monitoring -TCS Performance et monitoring
Meetup Geneve Monitoring -TCS Performance et monitoringMeetup Geneve Monitoring -TCS Performance et monitoring
Meetup Geneve Monitoring -TCS Performance et monitoring
 
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...
[Webinar Niji] Performance web & mobile : Automatisez les tests pour ne pas r...
 
Stratégie Logicielle Sun Aquarium Paris
Stratégie Logicielle Sun Aquarium ParisStratégie Logicielle Sun Aquarium Paris
Stratégie Logicielle Sun Aquarium Paris
 
Retour d'expérience sur les wikis en entreprise
Retour d'expérience sur les wikis en entrepriseRetour d'expérience sur les wikis en entreprise
Retour d'expérience sur les wikis en entreprise
 
Aperçu de java EE 5
Aperçu de java EE 5Aperçu de java EE 5
Aperçu de java EE 5
 
Applications Web En Entreprise Avec Ruby On Rails Benefices Et Limitations Gu...
Applications Web En Entreprise Avec Ruby On Rails Benefices Et Limitations Gu...Applications Web En Entreprise Avec Ruby On Rails Benefices Et Limitations Gu...
Applications Web En Entreprise Avec Ruby On Rails Benefices Et Limitations Gu...
 

Plus de Michael Chaize

Typography on the Web - FITC Amsterdam 2015
Typography on the Web - FITC Amsterdam 2015Typography on the Web - FITC Amsterdam 2015
Typography on the Web - FITC Amsterdam 2015Michael Chaize
 
FITC Amsterdam 2015 - keynote-adobe - We are mutants
FITC Amsterdam 2015 -  keynote-adobe - We are mutantsFITC Amsterdam 2015 -  keynote-adobe - We are mutants
FITC Amsterdam 2015 - keynote-adobe - We are mutantsMichael Chaize
 
Multimania - Web Design Trends
Multimania - Web Design TrendsMultimania - Web Design Trends
Multimania - Web Design TrendsMichael Chaize
 
Feweb - Adobe et le Web Design
Feweb - Adobe et le Web DesignFeweb - Adobe et le Web Design
Feweb - Adobe et le Web DesignMichael Chaize
 
FITC 2014 Amsterdam - Adobe Apps for Web Designers in 2014
FITC 2014 Amsterdam - Adobe Apps for Web Designers in 2014FITC 2014 Amsterdam - Adobe Apps for Web Designers in 2014
FITC 2014 Amsterdam - Adobe Apps for Web Designers in 2014Michael Chaize
 
Adobe gaming flash gamm michael
Adobe gaming flash gamm michaelAdobe gaming flash gamm michael
Adobe gaming flash gamm michaelMichael Chaize
 
Max2013 rejected apps presentation
Max2013   rejected apps presentationMax2013   rejected apps presentation
Max2013 rejected apps presentationMichael Chaize
 
Oop2012 mobile workshops
Oop2012 mobile workshopsOop2012 mobile workshops
Oop2012 mobile workshopsMichael Chaize
 
Oop2012 keynote Design Driven Development
Oop2012 keynote Design Driven DevelopmentOop2012 keynote Design Driven Development
Oop2012 keynote Design Driven DevelopmentMichael Chaize
 
Flex presentation for Paris Android User group PAUG
Flex presentation for Paris Android User group PAUGFlex presentation for Paris Android User group PAUG
Flex presentation for Paris Android User group PAUGMichael Chaize
 
Xplatform mobile development
Xplatform mobile developmentXplatform mobile development
Xplatform mobile developmentMichael Chaize
 
One backend multiple Screens
One backend multiple ScreensOne backend multiple Screens
One backend multiple ScreensMichael Chaize
 
Flash camp portugal - Let's talk about Flex baby
Flash camp portugal - Let's talk about Flex babyFlash camp portugal - Let's talk about Flex baby
Flash camp portugal - Let's talk about Flex babyMichael Chaize
 
Back From MAX in London for CQ5 users
Back From MAX in London for CQ5 usersBack From MAX in London for CQ5 users
Back From MAX in London for CQ5 usersMichael Chaize
 
Enterprise Flex applications on tablet devices
Enterprise Flex applications on tablet devicesEnterprise Flex applications on tablet devices
Enterprise Flex applications on tablet devicesMichael Chaize
 
Pocket agile challenge adobe mobile v1.0.pptx
Pocket agile   challenge adobe mobile v1.0.pptxPocket agile   challenge adobe mobile v1.0.pptx
Pocket agile challenge adobe mobile v1.0.pptxMichael Chaize
 
Adobe et la stratégie multi-écrans
Adobe et la stratégie multi-écransAdobe et la stratégie multi-écrans
Adobe et la stratégie multi-écransMichael Chaize
 
Breizh camp adobe flex et les mobiles
Breizh camp   adobe flex et les mobilesBreizh camp   adobe flex et les mobiles
Breizh camp adobe flex et les mobilesMichael Chaize
 

Plus de Michael Chaize (20)

Typography on the Web - FITC Amsterdam 2015
Typography on the Web - FITC Amsterdam 2015Typography on the Web - FITC Amsterdam 2015
Typography on the Web - FITC Amsterdam 2015
 
FITC Amsterdam 2015 - keynote-adobe - We are mutants
FITC Amsterdam 2015 -  keynote-adobe - We are mutantsFITC Amsterdam 2015 -  keynote-adobe - We are mutants
FITC Amsterdam 2015 - keynote-adobe - We are mutants
 
Multimania - Web Design Trends
Multimania - Web Design TrendsMultimania - Web Design Trends
Multimania - Web Design Trends
 
Feweb - Adobe et le Web Design
Feweb - Adobe et le Web DesignFeweb - Adobe et le Web Design
Feweb - Adobe et le Web Design
 
FITC 2014 Amsterdam - Adobe Apps for Web Designers in 2014
FITC 2014 Amsterdam - Adobe Apps for Web Designers in 2014FITC 2014 Amsterdam - Adobe Apps for Web Designers in 2014
FITC 2014 Amsterdam - Adobe Apps for Web Designers in 2014
 
Adobe gaming flash gamm michael
Adobe gaming flash gamm michaelAdobe gaming flash gamm michael
Adobe gaming flash gamm michael
 
Max2013 rejected apps presentation
Max2013   rejected apps presentationMax2013   rejected apps presentation
Max2013 rejected apps presentation
 
Oop2012 mobile workshops
Oop2012 mobile workshopsOop2012 mobile workshops
Oop2012 mobile workshops
 
Oop2012 keynote Design Driven Development
Oop2012 keynote Design Driven DevelopmentOop2012 keynote Design Driven Development
Oop2012 keynote Design Driven Development
 
Montpellier - Flex UG
Montpellier - Flex UGMontpellier - Flex UG
Montpellier - Flex UG
 
Flex presentation for Paris Android User group PAUG
Flex presentation for Paris Android User group PAUGFlex presentation for Paris Android User group PAUG
Flex presentation for Paris Android User group PAUG
 
Xplatform mobile development
Xplatform mobile developmentXplatform mobile development
Xplatform mobile development
 
One backend multiple Screens
One backend multiple ScreensOne backend multiple Screens
One backend multiple Screens
 
Flash camp portugal - Let's talk about Flex baby
Flash camp portugal - Let's talk about Flex babyFlash camp portugal - Let's talk about Flex baby
Flash camp portugal - Let's talk about Flex baby
 
Back From MAX in London for CQ5 users
Back From MAX in London for CQ5 usersBack From MAX in London for CQ5 users
Back From MAX in London for CQ5 users
 
Flex mobile for JUG
Flex mobile for JUGFlex mobile for JUG
Flex mobile for JUG
 
Enterprise Flex applications on tablet devices
Enterprise Flex applications on tablet devicesEnterprise Flex applications on tablet devices
Enterprise Flex applications on tablet devices
 
Pocket agile challenge adobe mobile v1.0.pptx
Pocket agile   challenge adobe mobile v1.0.pptxPocket agile   challenge adobe mobile v1.0.pptx
Pocket agile challenge adobe mobile v1.0.pptx
 
Adobe et la stratégie multi-écrans
Adobe et la stratégie multi-écransAdobe et la stratégie multi-écrans
Adobe et la stratégie multi-écrans
 
Breizh camp adobe flex et les mobiles
Breizh camp   adobe flex et les mobilesBreizh camp   adobe flex et les mobiles
Breizh camp adobe flex et les mobiles
 

Adobe LiveCycle Data Services

  • 1. Après-midi technique Adobe Comment améliorer la communication entre une application RIA et votre SI 1 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 2. Agenda  Rappels sur l’offre Adobe Flex  Flex et les appels standards du web  Flex et le HTTPRequest  Flex et l’appel de WebService  Communication entre Flex et les serveurs d’applications Java  Différences entre Blaze DS et LiveCycle DS  Flex et le Remoting, et architecture  Flex et les techniques de messaging  Le Data Management  Services additionnels  Architecture: Sécurité, Cluster  Génération d’un PDF avec LCDS  Appel d’un service documentaire LiveCycle.  AIR 2 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 3. Rappels sur l’offre Adobe Flex 33  2006 Adobe Systems Incorporated. All Rights Reserved.
  • 4. Quatre générations d’applications d’Entreprise  Global 2004  WEB APPLICATIONS RICH INTERNET APPLICATIONS REACH 1998  1992  Local  MAINFRAME  DESKTOP Server Interaction Client Interaction  RICH ® 4 Copyright 2008 Adobe Systems Incorporated. All rights reserved.
  • 5. Challenges techniques de la RIA Web 1.0 application Rich Internet Application • Améliorer les temps de réponses • Alléger la bande passante • Décharger le serveur • Diminuer les tests <page> <page> <page> <page> <data> <page> <page> <page> <application> ® Copyright 2008 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 5 5 
  • 6. Trois technologies Open Source d’Adobe pour les RIA FLASH PLAYER FLEX 3 SDK LIVECYCLE DATA SERVICES Flash Player 9 Gratuit, framework open source LiveCycle Data Services 12 ans d’existence Flex Builder basé sur Eclipse Data intensive applications 98% des PC équipés Framework MVC Meilleures perfs du marché Langage objet AS3 Accessibilité, Test unitaire, Debug Remoting architecture AVM2 JIT Compiler Component based programming Messaging and Data Push Open Source: Tamarin Dévelopment rapide Data Management Services Offline synchronization ® Copyright 2008 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 6 6 
  • 7. Adobe Flex Lineup Adobe® Adobe® Flex™ SDK 3 Flex™ Builder™ 3 MXML and ActionScript 3.0 Standard Edition Framework and Class Library Visual Layout Command-line Compiler Code Hinting Debugging Adobe® LiveCycle® Skinning & Styling Data Services ES Data Management Messaging Professional Edition Web-Tier Compiler RPC Services Charting Components RIA-PDF Creation Service Adapters Advanced DataGrid / OLAP Portal Deployment Proxy Service Performance Profiling 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 8. Fonctionnement et déploiement Flex Builder IDE Browser Flex SDK Flash Player MXML ActionScript Flex Class Library SOAP HTTP/S AMF/S RTMP/S Web Server Compile XML/HTTP LC Data Services REST SOAP Web Services J2EE Application Server Existing Applications & Infrastructure
  • 9. Ressources pour apprendre Flex  Site web de référence: http://www.flex.org  Tutoriaux et vidéos techniques: http://developer.adobe.com  Ateliers gratuits de formation sur 1 jour: http://www.baao.com  Blog pour se tenir informé de l’actualité Adobe France, tutoriaux, slides: http://codemoiunmouton.wordpress.com 9 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 10. Flex et les appels standards du web HTTPRequest, WebService 1 10 0 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 11. HTTPRequest: le standard du web  Appel d’un script sur une URL qui retourne du texte (print)  Si la réponse est en XML, les composants Flex l’interprête nativement  Déclaration par un tag <mx:HTTPService>. La méthode send() lance une requête HTTP sur l’url spécifiée.  Si la requête ne passe pas par un proxy:  useProxy = false  HTTP GET, POST  Si la requête passe par un proxy:  useProxy = true  HTTP GET, POST, HEAD, OPTIONS, TRACE & DELETE 11 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 12. HTTPRequest par l’exemple 12 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 13. WebService: le standard du web  Une application Flex peut interagir avec des Webservices qui définissent leurs interfaces en document:  Web Services Description Language 1.1 (WSDL 1.1)  Du coup, une application Flex accède à un webService par une URL.  Une application Flex supporte les requêtes et les réponses SOAP  Flex Builder dispose d’un outil d’introspection de WSDL qui génère automatiquement un proxy AS3. 13 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 14. WebService: le standard du web 14 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 15. Crossdomain.xml Le Flash Player applique des règles de sécurité pour accéder à des données. Une application Flex peut accéder aux sources de données qui sont sur le même domaine que le fichier SWF. Cependant une application Flex ne peut accéder à des sources de données situées dans un domaine différent, sauf si le domaine lui en donne la permission. Pour cela, il faut déployer un fichier crossdomain.xml à la racine du domaine. <?xml version=quot;1.0quot;?> <!DOCTYPE cross-domain-policy SYSTEM quot;http://www.adobe.com/xml/dtds/cross-domain-policy.dtdquot;> <cross-domain-policy> <allow-access-from domain=quot;*.monserveur.comquot;/> </cross-domain-policy> Exemple: http://www.yahoo.com/crossdomain.xml 15 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 16. Les projets autres que J2EE Flex et PHP : Flex et .Net: Flex et Coldfusion: Flex et Ruby: 16 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 17. Deux approches dans le développement Client/Server  Couplage faible: Protocoles basés sur le Document(XML, SOAP, …)  Langage neutre, facile à débugger et documenter  Le parsing et le formatage du code est plus difficile à maintenir (de + en + complexe)  Le temps de traitement augmente avec l’augmentation de la complexité  Il est plus simple de développement indépendamment le client du serveur  Couplage fort: Protocoles basés sur un modèle Objet (RMI, AMF, …)  Difficile de changer de langage  Plus rapide pour le client et le serveur, diminution de la bande passante  Plus simple de partager du code ou d’utiliser de la génération automatique de code basée sur le modèle  Meilleure gestion de la complexité du modèle (scalabilité)  Moins de design de code, moins de dépendance sur le format qui transite  Manipulation du client et du serveur en parallèle pour rafraichir en même temps les deux parties 1 7 2005 Adobe Systems Incorporated. All Rights Reserved.
  • 18. Flex et les serveurs d’application Java Remoting, Messaging et Data Management 1 18 8 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 19. LiveCycle Data Services ES LiveCycle Data Services ES LiveCycle Data Services est un ensemble de Service Data Management composants J2Ee et d’API utilisés pour: Data Synchronization Adapters LiveCycle Off-line Applications  Créer des RIA qui manipulent énormément de Data Paging ColdFusion données avec un minimum de code, et accélérer la mise en production en programmant sur un RPC Services Hibernate modèle client-serveur. Web Service HTTP Service SQL  Intégrer une RIA avec des applications existantes Remote Object Service de l’infrastructure J2EE. JMS Messaging  Intégrer facilement des RIA avec des processus Java documentaires LiveCycle. Publish & Subscribe Collaboration  Développer des application collaboratives, gérer Real Time Data Push Custom… la synchronisation offline, gérer le temps réel. Proxy Service  Générer des PDF à la demande qui intègrent des Web-tier Compiler éléments graphiques. Portal Deployment RIA-PDF Generation 19 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 20. Qu’est ce que BlazeDS? BlazeDS est un sous-ensemble Open Source BlazeDS Service (LGPL) de LCDS. C’est une solution de Remoting Data Management Adapters et de HTTP messaging. Data Synchronization LiveCycle Off-line Applications  Gratuit et Open Source Data Paging ColdFusion  Ouverture du format d’échange de données AMF3 RPC Services Hibernate (Action Message Format) Web Service  Technologie de messaging sur le standard HTTP HTTP Service SQL (équivalent de Comet) Remote Object Service JMS  Builds certifiées, support entreprise disponible (LC Messaging Community Edition) Publish & Subscribe Java Collaboration Custom… Real Time Data Push Proxy Service Web-tier Compiler Portal Deployment RIA-PDF Generation 20 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 21. LCDS.war Un fichier LCDS.war est fourni pour démarrer vos projets Flex / Java.  Structure du WAR:  +WEB-INF/classes Pour placer ses classes Java  +WEB-INF/lib Contient les librairies Java de LCDS  +WEB-INF/flex Contient les fichiers XML de configuration  Remoting-config.xml Destinations vers les classes Java  Messaging-config.xml Destinations pour le messaging  Data-Management-config.xml Destinations vers les assemblers  Proxy-config.xml Destinations vers les services HTTP  Services-config.xml Configuration des canaux 21 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 22. Plateformes supportées  Windows 2000 and Vista, x86, x64  Windows 2003 x86, x64, IPF  Solaris 9 and 10 SPARC  RedHat Linux AS 4 and 5, x86, x64  Suse Enterprise Linux 9 and 10, x86, x64  Suse Enterprise Linux 9 and 10, zSeries (with IBM WebSphere only)  IBM AIX 5.3, PPC (with IBM WebSphere only)  HP-UX 11i v3 IPF, PA/RISC (with BEA Weblogic only) 22 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 23. Serveurs d’applications supportés  Apache Tomcat 6.0.x  JBoss Application Server 4.2.2 4.0.3 SP1+, 4.2.x  BEA Weblogic 9 and 10  IBM WebSphere Application Server 6.1.x  Fujitsu Interstage 9  Hitachi Cosminexus 7  NEC WebOTX JDK supportés  Oracle 10G AS (10.1.3)  Sun JDK 5  SAP NetWeaver CE 7.1 SP3  BEA JRockit 5  Adobe JRun 4 Updater 7  IBM JDK 5 23 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 24. Remoting Demonstration 2 24 4 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 25. Créez une classe Java 25 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 26. remoting-config.xml  Les destinations pour le remoting pointent directement sur les classes Java en utilisant un « adapter » préconfiguré sur le serveur (java-object) et un canal de communication (my-amf)  Chaque destination pointe sur une seule classe Java <destination id=“SimpleJavaService”> <properties> <source>NoidaTraining.SimpleJavaService</source> <scope>application</scope> </properties> </destination> NB: Vous n’avez pas besoin de redémarrer le serveur après avoir modifié les fichiers de configuration de LCDS 26 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 27. Précisions sur le <scope> <destination id=“SimpleJavaService”> <properties> <source>NoidaTraining.SimpleJavaService</source> <scope>application</scope> </properties> </destination> request - un nouvel objet pour chaque appel de méthode (par défaut) session - les objets restent disponibles le temps de la session cliente application – les objets restent disponibles pendant toute la durée de vie de l’application web 27 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 28. <mx:RemoteObject> 28 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 29. Multiple Event Handlers  Pour un même service Java, je peux gérer plusieurs méthodes. 29 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 30. Appel asynchrone et utilisation du token  Lorsqu’on appelle une méthode, je rajoute un attribut à l’opération var remoteFn:AbstractOperation = remoteObject.getOperation(quot;loginquot;); var call : AsyncToken = remoteFn.send(); call.someAttr = “Aquot;;  Lorsque je gère le retour, je teste l’attribut: if (event.token.someAttr == “A”) { … } else { … } 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 31. Echange de données entre Java and ActionScript 31 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 32. Java Value Object 32 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 33. ActionScript Value Object 33 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 34. Architecture n-tiers avec Remoting 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 35. Advanced Concepts - Remote Object  Scope et attribute-id pour gérer des composants  Scope: request, session, application – contrôle de cycle de vie de votre remote object  Attribute-id: stock le composant sous ce nom dans le ServletContext ou la HTTPSession pour le partager avec une JSP ou d’autres destinations  FlexFactory: interface pour Spring  Exemple de configuration: <destination name=“SpringComponent”> <properties> <factory>spring</factory> <source>MySpringComponentId</source> </properties> </destination>  FlexSession  Obtenue à partir de FlexContext  Utilise HTTPSession if vous êtes sur HTTP, émule les fonctionnalités d’une session HTTP pour le RTMP  [Transient] metadata  Propriété pour l’ActionScript (annotation) qui ne sera pas sérialiser pour le serveur 35 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 36. Mapping personnalisé entre ActionScript et Java  Si les mécanismes standards de sérialisation et de désérialisation de données entre ActionScript (client) et Java (server) ne sont pas satisfaisants:  Vous pouvez implémenter l’interface ActionScript sur le client grâce à flash.utils.Iexternalizable  Vous pouvez créer la correspondance Java et écrire votre propre schéma de sérialisation avec java.io.Externalizable 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 37. Messaging 3 37 7 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 38. Publish/Subscribe Messaging Livecycle Data Services Client A Message Endpoint Service Client B RTMP Client C AMF Publisher HTTP Subscriber 38 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 39. Demo: Chat 39 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 40. messaging-config.xml Ajout de la destination “chat <destination id=“chat”> <adapter ref=“actionscript”> </destination> L’adapter ActionScript n’est utilisé que pour les applications qui n’utilisent que des clients Flex. C’est l’adapter par défaut. L’adapter JMS permet à des clients Flex et Java de communiquer. 40 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 41. Publier un Message  Déclaration d’un tag Producer <mx:Producer id=quot;producerquot; destination=quot;chatquot;/>  Envoyer le message public function send():void { var message:AsyncMessage = new AsyncMessage(); message.header.userId = userId.text; message.body = msg.text; producer.send(message); } 41 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 42. S’abonner à une Destination  Déclarer un Consumer <mx:Consumer id=quot;consumerquot; destination=quot;chat“ message=quot;messageHandler(event)quot;/>  Gérer la réception de messages public function messageHandler(event:MessageEvent):void { log.text += event.message.header.userId + quot;: quot; + event.message.body.msg + quot;nquot;; }  S’abonner aux messages consumer.subscribe(); Exemple: www.toutracker.org 42 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 43. Messaging - Data Push LiveCycle Data Services Messaging Adapter X System X Message JMS Endpoint JMS Adapter Services Provider Messaging Adapter Y System Y RTMP AMF Publisher HTTP Subscriber 43 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 44. Déclaration de la destination « feed » <destination id=quot;feedquot;> <properties> <network> <session-timeout>0</session-timeout> </network> <server> <max-cache-size>1000</max-cache-size> <message-time-to-live>0</message-time-to-live> <durable>false</durable> </server> </properties> </destination> 44 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 45. Classe Java qui génère et envoie un message sur « feed » 1/2 45 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 46. Classe Java qui génère et envoie un message sur « feed » 2/2 46 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 47. Les Channels dans LiveCycle Data Services ES 47 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 48. Quels canaux utiliser pour le temps réel ? (BlazeDS) Channel Description Les Plus Les Moins Poll ~ 1 min Poll roundtrip overhead AMF Server parks poll Works with firewalls Long Polling Servlet API blocking IO until data available HTTP proxies can Server pushes No polling overhead swallow messages Streaming AMF infinite messages Servlet API blocking (HTTP Chunk) Works with firewalls IO AMF Messages/ Works with firewalls Simple polling request/response Piggyback Enabled piggybacking 48 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 49. Quels canaux utiliser pour le temps réel ? (LCDS) Channel Description Les Plus Les Moins RTMP (in a ChannelSet with fallback to Single duplex Immediate notification Non standard port NIO AMFChannel configured to connection when a client is closed blocked by firewalls Long Poll) Better scalability and no NIO AMF Uses an NIO server and configured upper bound Requires more network Long Polling minimal HTTP stack on no. of parked poll configuration (no fallback) 1000s of clients requests NIO Streaming AMF Better scalability and no Uses an NIO server and (in a ChannelSet followed by configured upper bound minimal HTTP stack Same as above the polling AMFChannel below on the number of 1000s of clients for fallback) streaming connections NIO AMF Uses an NIO server and Simple polling minimal HTTP stack Same as above Same as above Piggyback Enabled 1000s of clients 49 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 50. Data Management Demonstration 5 50 0 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 51. Travailler avec des données: Le mode traditionnel du HTML (page) Persistence Solutions: Hibernate JDOs EJB 3 Others… data data  Le client est souvent utiliser pour capturer de la données et l’affichage  Le client ne conserve pas une version de la donnée  Pas de réelle manipulation de données côté client  Les données doivent être snchronisées entre le middle-tier et la base 51 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 52. Le modèle de la RIA data data data  Le client possède une version de la donnée  Manipulation riche des données côté client  La donnée doit être synchronisée entre le tiers client, le middle-tier ET entre le middle-tier et la base 52 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 53. L’approche RPC RPC Services data data Responsabilité du développeur:  Notifier les changements - flags (create, update, delete)  Maintenir une version originelle de la donne pour appliquer une stratégie de locking  Créer des Remote Procedure Calls pour créer, mettre à jour et effacer des enregistrements  Identifier et gérer les conflits / les appels concurrents 53 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 54. L’approche de LiveCycle Data Services Data Service data data Client-Side API:  Flags changes (create, update, delete)  Maintient une version d’origine de la donnée pour appliquer la stratégie de locking  Envoie une liste de changement à LCDS dans un groupe de messages  Gère les conflits, les accès concurrents 54 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 55. L’approche de LiveCycle Data Services Object Data Hibernate Service JDBC ColdFusion data data Custom Data Service:  Désérialise la liste des changements qui proviennent du client  Sérialise les données avant de les données au client  Passe la liste des changement au bon adapter  Notifie les clients qui sont abonnés à la destination Adapter:  Effectue les changements  Identifie les conflits  Passe les résultats à Data Services 55 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 56. Data Services LiveCycle Data Services JDBC RDBMS Client A Adapter Data Object Endpoint DAO Service Adapter Client B Hibernate Hibernate Adapter CFC Client C Adapter ColdFusion 56 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 57. La résolution de conflits  Les conflits interviennent quand différents clients essayent de mettre à jour la même donnée en même temps.  Le nombre de conflits dans une application dépend de la stratégie de locking (concurrency level) implémentée dans l’application.  LCDS n’impose pas de stratégie de locking, vous pouvez même choisir de ne pas gérer les conflits.  Vous êtes libre d’estimer ce que représente un conflit par rapport au contexte de votre application.  LCDS prévient les clients quand un conflit a lieu en envoyant une DataSyncException.  Côté client, LCDS fournit une API sophistiquée pour résoudre les conflits. Un événement est dispatché en cas de conflit. 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 58. Concepts avancés - Data Management Services  Paging  Managed associations  Supports replicating general object graphs from server to client (with cycles)  Tracks changes to relationships and pushes them to the server  Ensures a single instance of the client object for each id  Optionally associations can be “lazy” – referenced item is fetched as needed  Writing custom assemblers  Implement these methods: getItem, createItem, updateItem, deleteItem, fill, count  Source to HibernateAssembler is included 58 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 59. Le code côté client Flex <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?> <mx:Application xmlns:mx=quot;http://www.macromedia.com/2005/mxmlquot; creationComplete=quot;initApp()quot;> <mx:Script> public var ds:DataService; [Bindable] public var contacts:ArrayCollection; public function initApp() { contacts = new ArrayCollection(); ds = new DataService(quot;contactquot;); ds.fill(contacts); } </mx:Script> <mx:DataGrid dataProvider=quot;{contacts}quot; editable=quot;true“/> </mx:Application> 59 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 60. Data management-confis.xml <destination id=quot;contactquot;> <adapter ref=quot;java-daoquot; /> <properties> <metadata> <identity property=quot;contactIdquot;/> </metadata> <server> <assembler> <class>samples.contact.ContactAssembler</class> </assembler> <fill-method> <name>loadContacts</name> </fill-method> <sync-method> <name>syncContacts</name> </sync-method> </server> </properties> </destination> 60 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 61. ContactAssembler.java public class ContactAssembler { public List loadContacts() { ContactDAO dao = new ContactDAO(); return dao.getContacts(); } public List syncContacts(List changes) { Iterator iterator = changes.iterator(); ChangeObject co; while (iterator.hasNext()) { co = (ChangeObject) iterator.next(); if (co.isCreate()) { // invoke logic to create item } else if (co.isUpdate()) { // invoke logic to update item } else if (co.isDelete()) { // invoke logic to delete item } } return changes; } } 61 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 62. Clustering 6 62 2 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 63. Implémentation du clustering  In-built software clustering  Basé sur Jgroups  Support du Load Balancing Hardware (out-of-the-box)  Support de clusters horizontaux et verticaux  Les destinations diffusent leurs disponibilités et les endpoints accessibles dans le cluster  Les destinations de messaging et de data services diffusent les messages ou les changements aux destinations correspondantes sur les autres serveurs du cluster. 63 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 64. En résumé … Failover Messaging State Replication Proxy Service OUI NON Remoting Service OUI NON Message Service OUI OUI Data Management Service OUI OUI 64 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 65. Sécurité 6 65 5 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 66. Glossaire Destination MSG Channel Endpoint Destination Destination MSG Channel Endpoint Destination Destination https://monserveur:443/messagebroker/amfsecure 66 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 67. Securiser le canal RTMP <channel-definition id=quot;my-rtmps“ class=quot;mx.messaging.channels.SecureRTMPChannelquot;> <endpoint uri=quot;rtmps://{server.name}:2099“ class=quot;flex.messaging.endpoints.SecureRTMPEndpointquot;/> <properties> <idle-timeout-minutes>30</idle-timeout-minutes> <keystore- file>C:/somedir/flex/dataservices/apps/j2ee/dev/WEBINF/flex/keys/server.key store</keystore-file> <keystore-password>password</keystore-password> </properties> </channel-definition> 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 68. Securiser le canal RTMP  Vous pouvez aussi spécifier un autre algorithme que celui proposé par défaut par la JVM quand on active le SSL. <algorithm>Default</algorithm> pour explicitement utiliser celui proposé par défaut par la JVM. <algorithm>SunX509</algorithm> pour utiliser celui de SUN. <algorithm>IbmX509</algorithm> pour utiliser celui d’IBM. De même, il exite les canaux secureAMF et le secureHTTP tous deux basés sur HTTPS 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 69. Sécuriser les endpoints HTTP et RTMP  Vous pouvez aussi protéger l’accès aux endpoints des canaux HTTP- et RTMP- : <whitelist> <ip-address-pattern>237.*</ip-address-pattern> <ip-address>10.132.64.63</ip-address> </whitelist> <blacklist> <ip-address>10.60.147.*</ip-address> <ip-address-pattern>10.132.17.5[0-9]{1,2}</ip-address-pattern> </blacklist> 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 70. Sécuriser des endpoints via JAAS  Par les contraintes de sécurité web basée sur JAAS <destination id=“sampleJaasServicequot;> …………………….. <security> <security-constraint> <auth-method>Custom</auth-method> <roles> <role>roDestUser</role> </roles> </security-constraint> </security> </destination> 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 71. Invocation de services sécurisés  Sécurisation de la communication Flex <-> LCDS : var employeeHTTP:HTTPService = new HTTPService(); employeeHTTP.destination = quot;SecureDestquot;; employeeHTTP.setCredentials(quot;myUserNamequot;, quot;myPasswordquot;); empoyeeHTTP.send({param1: 'foo'});  Sécurisation d’un proxy: <destination id=quot;samplesProxyquot;> <channels> <channel ref=quot;samples-amfquot;/> </channels> <properties> <url>http://someserver/SecureService.jsp</url> <remote-username>johndoe</remote-username> <remote-password>opensaysme</remote-password> </properties> </destination> 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 72. Les bonus Génération de PDF, invocation de LiveCycle ES, AIR… 7 72 2 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 73. Conclusion 7 73 3 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 74. Pour aller plus loin…  Récupérer sur le site d’Adobe LiveCycle Data Services:  Installation automatique de lcds-samples  Installation du 30mins Test Drive avec toutes les sources  Retrouvez les slides sur le blog « Code moi un mouton »  Nos emails :  Bertrand Collard: bcollard@adobe.com  Michael Chaize: mchaize@adobe.com 74 2006 Adobe Systems Incorporated. All Rights Reserved.
  • 75. Le QUIZZ !!!  Que doit-on modifier si l’on souhaite utiliser un autre canal de communication pour le RemoteObject entre l’application Flex et LCDS ? 75 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 76. Le QUIZZ !!!  Que doit-on mettre en place pour accéder à un webService externe à l’entreprise? 76 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 77. Le QUIZZ !!!  Comment Adobe a implémenté le support du clustering dans LCDS ? 77 2008 Adobe Systems Incorporated. All Rights Reserved.
  • 78. 2008 Adobe Systems Incorporated. All Rights Reserved.