SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
MTC3


Flex – Alfresco Integration


         Case Study
Flex - Alfresco
• Goal : provide a Flex-based client to access
  Alfresco content repository
• Why:
  • Improve user experience by delivering an easily
    cutomizable and highly-interactive interface
  • Seemless integration in the user desktop
  • Cross-platform
• How :
  • First approach uses custom Java services
  • Second one uses Alfresco WebScripts (REST)
Standard Alfresco Architecture
               Web Browser



 Alfresco Server

           Web client application


            Alfresco Repository



          Storage

                          File
              DB         System
1
Flex / Alfresco Architecture
                     Flex Client

                           AMF / HTTP

Alfresco Server
         LiveCycle Data Services
                    Service
                     Service


     Alfresco Repository
               Foundation API


          Storage

                            File
               DB          System
1
                       Flex client

         Flex Client




• Implemented using the
    Cairngorm micro-architecture
  • Uses serializable ActionScript objects (DTOs) that
    hold document meta-data
  • Access Java service through a RemoteObject (async
    RPC)
  • Borrows several components from the Flex
    community (multiple file upload, searchbox, …)
1
                   Serialization
• LiveCycle Data Services is Adobe server-side
  component that allows communication between
  Flex client and Java application
  • Java serializable pojos are mapped to ActionScript
    objects (using annotations in ActionScript)
  • Serialization mechanism uses the AMF over HTTP
    protocol (binary)
  • Flex RemoteObject access Java services (pojos)
    using configured destinations in LC DS
• In the future : replace the LiveCycle DS
  component with Adobe BlazeDS open-source
  alternative
1
                   Java services
• Java services
  • Are just plain java objects
  • Use the Alfresco Foundation API to authenticate and
    manipulate the repository (store, create, search
    documents)
  • Can access services and beans defined in Spring
  • A Java Adapter has been created to :
        demarcate transaction on operations annotated with Spring
      Transaction annotation
        re-authenticate user on each subsequent service request
      (using the initial ticket returned by the authentication
      process)
2
              Flex / Alfresco Architecture
                                              Flex Client

                                                    HTTP

                      Alfresco Server
                              Alfresco Repository
Web
script
         Create and publish          Web Script Platform

                                        Foundation API



                                   Storage

                                                     File
                                        DB          System
2
                Flex / Alfresco
• Flex client
  • Uses HTTPService instead of RemoteObject
• Web Scripts
  • Are written in JavaScript
  • Can be registered at runtime
  • Can return HTML, ATOM, XML, RSS, JSON,
    CSV, … (using Freemarker templates)
• LiveCycle Data Services and custom Java
  services are no longer needed
Comparison
• First version
   • - More complex deployment (LC Data Services, custom Java services)
   • - Less productive :
            must maintain DTOs in Java/AS and Java services
            each service change requires re-deployment / server restart
   • + More efficient
   • Requires knowledge of Flex, Java and Alfresco Foundation API
• Second version
   •   + Easily deployable (no server-side component)
   •   + Quickly implemented using JavaScript
   •   - hard to debug JavaScript (logging required)
   •   - Restricted to the functions exposed by the JavaScript engine unless …
   •   + Can be implemented in Java to have access to the Foundation API
   •   Requires knowledge of Flex, JavaScript (basic), Alfresco JavaScript
       API, Freemarker template
Conclusions
• Several options to create an Alfresco client:
   • Protocols : FTP, WebDAV, CIFS
   • APIs:
          Web Services
          Web Scripts
          Custom solution that uses the Alfresco Foundation API directly
• Next Step : create an AIR application to leverage
  integration with user’s desktop
   • Drag-n-Drop documents (inbound/outbound)
   • Access file system
   • Embedded SQL DB to provide ‘offline’ functions ?
• Even further : a Silverlight / JavaFX client ?

Contenu connexe

Tendances

Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...Alfresco Software
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for DevelopersJeff Potts
 
Replacing Your Shared Drive with Alfresco - Open Source ECM
Replacing Your Shared Drive with Alfresco - Open Source ECMReplacing Your Shared Drive with Alfresco - Open Source ECM
Replacing Your Shared Drive with Alfresco - Open Source ECMAlfresco Software
 
Mule compatible technologies
Mule compatible technologiesMule compatible technologies
Mule compatible technologieshimajareddys
 
Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco One (Enterprise) vs Alfresco Community 2014Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco One (Enterprise) vs Alfresco Community 2014Toni de la Fuente
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1WSO2
 
Cloud Development with Camel and Amazon Web Services
Cloud Development with Camel and Amazon Web ServicesCloud Development with Camel and Amazon Web Services
Cloud Development with Camel and Amazon Web ServicesRobin Howlett
 
How to build a custom stack with WSO2 carbon
How to build a custom stack with WSO2 carbon How to build a custom stack with WSO2 carbon
How to build a custom stack with WSO2 carbon WSO2
 
WSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
WSO2 API Manager Reference Architecture for Pivotal Cloud FoundryWSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
WSO2 API Manager Reference Architecture for Pivotal Cloud FoundryImesh Gunaratne
 
Wso2 con eu 2016 an introduction to the wso2 integration platform by chanak...
Wso2 con eu 2016   an introduction to the wso2 integration platform by chanak...Wso2 con eu 2016   an introduction to the wso2 integration platform by chanak...
Wso2 con eu 2016 an introduction to the wso2 integration platform by chanak...Chanaka Fernando
 
Whitebase : Assault Carrier for Micro-Services
Whitebase : Assault Carrier for Micro-ServicesWhitebase : Assault Carrier for Micro-Services
Whitebase : Assault Carrier for Micro-ServicesJaewoo Ahn
 
Scalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 CarbonScalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 CarbonWSO2
 
Web Server - Internet Applications
Web Server - Internet ApplicationsWeb Server - Internet Applications
Web Server - Internet Applicationssandra sukarieh
 

Tendances (20)

Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
 
Intro to Alfresco for Developers
Intro to Alfresco for DevelopersIntro to Alfresco for Developers
Intro to Alfresco for Developers
 
Replacing Your Shared Drive with Alfresco - Open Source ECM
Replacing Your Shared Drive with Alfresco - Open Source ECMReplacing Your Shared Drive with Alfresco - Open Source ECM
Replacing Your Shared Drive with Alfresco - Open Source ECM
 
Mule compatible technologies
Mule compatible technologiesMule compatible technologies
Mule compatible technologies
 
Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco One (Enterprise) vs Alfresco Community 2014Alfresco One (Enterprise) vs Alfresco Community 2014
Alfresco One (Enterprise) vs Alfresco Community 2014
 
Camel Based Development Application
Camel Based Development ApplicationCamel Based Development Application
Camel Based Development Application
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1
 
Diablo keystone
Diablo keystoneDiablo keystone
Diablo keystone
 
Rest
RestRest
Rest
 
Cloud Development with Camel and Amazon Web Services
Cloud Development with Camel and Amazon Web ServicesCloud Development with Camel and Amazon Web Services
Cloud Development with Camel and Amazon Web Services
 
How to build a custom stack with WSO2 carbon
How to build a custom stack with WSO2 carbon How to build a custom stack with WSO2 carbon
How to build a custom stack with WSO2 carbon
 
WSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
WSO2 API Manager Reference Architecture for Pivotal Cloud FoundryWSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
WSO2 API Manager Reference Architecture for Pivotal Cloud Foundry
 
What's New in WildFly 9?
What's New in WildFly 9?What's New in WildFly 9?
What's New in WildFly 9?
 
Wso2 esb
Wso2 esbWso2 esb
Wso2 esb
 
Wso2 con eu 2016 an introduction to the wso2 integration platform by chanak...
Wso2 con eu 2016   an introduction to the wso2 integration platform by chanak...Wso2 con eu 2016   an introduction to the wso2 integration platform by chanak...
Wso2 con eu 2016 an introduction to the wso2 integration platform by chanak...
 
Web servers
Web serversWeb servers
Web servers
 
Storage and Alfresco
Storage and AlfrescoStorage and Alfresco
Storage and Alfresco
 
Whitebase : Assault Carrier for Micro-Services
Whitebase : Assault Carrier for Micro-ServicesWhitebase : Assault Carrier for Micro-Services
Whitebase : Assault Carrier for Micro-Services
 
Scalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 CarbonScalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 Carbon
 
Web Server - Internet Applications
Web Server - Internet ApplicationsWeb Server - Internet Applications
Web Server - Internet Applications
 

Similaire à Flex alfresco

Developer’s intro to the alfresco platform
Developer’s intro to the alfresco platformDeveloper’s intro to the alfresco platform
Developer’s intro to the alfresco platformAlfresco Software
 
Alfresco Day Roma 2015: Platform Update
Alfresco Day Roma 2015: Platform UpdateAlfresco Day Roma 2015: Platform Update
Alfresco Day Roma 2015: Platform UpdateAlfresco Software
 
Springinalfrescoecm 090629053231-phpapp02
Springinalfrescoecm 090629053231-phpapp02Springinalfrescoecm 090629053231-phpapp02
Springinalfrescoecm 090629053231-phpapp02ECNU
 
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
201511 -  Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...201511 -  Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...Symphony Software Foundation
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Nicole Szigeti
 
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)Kai Wähner
 
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + DemoAlfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + DemoAlfresco Software
 
Streaming the platform with Confluent (Apache Kafka)
Streaming the platform with Confluent (Apache Kafka)Streaming the platform with Confluent (Apache Kafka)
Streaming the platform with Confluent (Apache Kafka)GiuseppeBaccini
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 
Alfresco Web Content Management Roadmap - 3.2 and Beyond
Alfresco Web Content Management Roadmap - 3.2 and BeyondAlfresco Web Content Management Roadmap - 3.2 and Beyond
Alfresco Web Content Management Roadmap - 3.2 and BeyondAlfresco Software
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfJeff Smith
 

Similaire à Flex alfresco (20)

Developer’s intro to the alfresco platform
Developer’s intro to the alfresco platformDeveloper’s intro to the alfresco platform
Developer’s intro to the alfresco platform
 
Flex Rails Pres
Flex Rails PresFlex Rails Pres
Flex Rails Pres
 
Spring In Alfresco Ecm
Spring In Alfresco EcmSpring In Alfresco Ecm
Spring In Alfresco Ecm
 
Alfresco Day Roma 2015: Platform Update
Alfresco Day Roma 2015: Platform UpdateAlfresco Day Roma 2015: Platform Update
Alfresco Day Roma 2015: Platform Update
 
Springinalfrescoecm 090629053231-phpapp02
Springinalfrescoecm 090629053231-phpapp02Springinalfrescoecm 090629053231-phpapp02
Springinalfrescoecm 090629053231-phpapp02
 
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
201511 -  Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...201511 -  Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
Cfalfresco
CfalfrescoCfalfresco
Cfalfresco
 
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
 
OUGF - OSGi / Flex
OUGF - OSGi / FlexOUGF - OSGi / Flex
OUGF - OSGi / Flex
 
OUGF OSGi/Flex
OUGF OSGi/FlexOUGF OSGi/Flex
OUGF OSGi/Flex
 
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + DemoAlfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
Alfresco Day Brussels 2016 - Alfresco One Product Suite Update + Demo
 
Streaming the platform with Confluent (Apache Kafka)
Streaming the platform with Confluent (Apache Kafka)Streaming the platform with Confluent (Apache Kafka)
Streaming the platform with Confluent (Apache Kafka)
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 
Alfresco Web Content Management Roadmap - 3.2 and Beyond
Alfresco Web Content Management Roadmap - 3.2 and BeyondAlfresco Web Content Management Roadmap - 3.2 and Beyond
Alfresco Web Content Management Roadmap - 3.2 and Beyond
 
Elements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdfElements_Architecture_and_Technology.pdf
Elements_Architecture_and_Technology.pdf
 

Flex alfresco

  • 1. MTC3 Flex – Alfresco Integration Case Study
  • 2. Flex - Alfresco • Goal : provide a Flex-based client to access Alfresco content repository • Why: • Improve user experience by delivering an easily cutomizable and highly-interactive interface • Seemless integration in the user desktop • Cross-platform • How : • First approach uses custom Java services • Second one uses Alfresco WebScripts (REST)
  • 3. Standard Alfresco Architecture Web Browser Alfresco Server Web client application Alfresco Repository Storage File DB System
  • 4. 1 Flex / Alfresco Architecture Flex Client AMF / HTTP Alfresco Server LiveCycle Data Services Service Service Alfresco Repository Foundation API Storage File DB System
  • 5. 1 Flex client Flex Client • Implemented using the Cairngorm micro-architecture • Uses serializable ActionScript objects (DTOs) that hold document meta-data • Access Java service through a RemoteObject (async RPC) • Borrows several components from the Flex community (multiple file upload, searchbox, …)
  • 6. 1 Serialization • LiveCycle Data Services is Adobe server-side component that allows communication between Flex client and Java application • Java serializable pojos are mapped to ActionScript objects (using annotations in ActionScript) • Serialization mechanism uses the AMF over HTTP protocol (binary) • Flex RemoteObject access Java services (pojos) using configured destinations in LC DS • In the future : replace the LiveCycle DS component with Adobe BlazeDS open-source alternative
  • 7. 1 Java services • Java services • Are just plain java objects • Use the Alfresco Foundation API to authenticate and manipulate the repository (store, create, search documents) • Can access services and beans defined in Spring • A Java Adapter has been created to : demarcate transaction on operations annotated with Spring Transaction annotation re-authenticate user on each subsequent service request (using the initial ticket returned by the authentication process)
  • 8. 2 Flex / Alfresco Architecture Flex Client HTTP Alfresco Server Alfresco Repository Web script Create and publish Web Script Platform Foundation API Storage File DB System
  • 9. 2 Flex / Alfresco • Flex client • Uses HTTPService instead of RemoteObject • Web Scripts • Are written in JavaScript • Can be registered at runtime • Can return HTML, ATOM, XML, RSS, JSON, CSV, … (using Freemarker templates) • LiveCycle Data Services and custom Java services are no longer needed
  • 10. Comparison • First version • - More complex deployment (LC Data Services, custom Java services) • - Less productive : must maintain DTOs in Java/AS and Java services each service change requires re-deployment / server restart • + More efficient • Requires knowledge of Flex, Java and Alfresco Foundation API • Second version • + Easily deployable (no server-side component) • + Quickly implemented using JavaScript • - hard to debug JavaScript (logging required) • - Restricted to the functions exposed by the JavaScript engine unless … • + Can be implemented in Java to have access to the Foundation API • Requires knowledge of Flex, JavaScript (basic), Alfresco JavaScript API, Freemarker template
  • 11. Conclusions • Several options to create an Alfresco client: • Protocols : FTP, WebDAV, CIFS • APIs: Web Services Web Scripts Custom solution that uses the Alfresco Foundation API directly • Next Step : create an AIR application to leverage integration with user’s desktop • Drag-n-Drop documents (inbound/outbound) • Access file system • Embedded SQL DB to provide ‘offline’ functions ? • Even further : a Silverlight / JavaFX client ?