MTC3


Flex – Alfresco Integration


         Case Study
Flex - Alfresco
• Goal : provide a Flex-based client to access
  Alfresco content repository
• Why:
  • Improve user exper...
Standard Alfresco Architecture
               Web Browser



 Alfresco Server

           Web client application


       ...
1
Flex / Alfresco Architecture
                     Flex Client

                           AMF / HTTP

Alfresco Server
  ...
1
                       Flex client

         Flex Client




• Implemented using the
    Cairngorm micro-architecture
  ...
1
                   Serialization
• LiveCycle Data Services is Adobe server-side
  component that allows communication be...
1
                   Java services
• Java services
  • Are just plain java objects
  • Use the Alfresco Foundation API to ...
2
              Flex / Alfresco Architecture
                                              Flex Client

                  ...
2
                Flex / Alfresco
• Flex client
  • Uses HTTPService instead of RemoteObject
• Web Scripts
  • Are written...
Comparison
• First version
   • - More complex deployment (LC Data Services, custom Java services)
   • - Less productive ...
Conclusions
• Several options to create an Alfresco client:
   • Protocols : FTP, WebDAV, CIFS
   • APIs:
          Web Se...
Upcoming SlideShare
Loading in...5
×

Flex alfresco

1,083

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,083
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Flex alfresco

  1. 1. MTC3 Flex – Alfresco Integration Case Study
  2. 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. 3. Standard Alfresco Architecture Web Browser Alfresco Server Web client application Alfresco Repository Storage File DB System
  4. 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. 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. 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. 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. 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. 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. 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. 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 ?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×