Nuxeo World Session: Successful Deployment of Nuxeo Document Management
RIA front-ends: Flex, GWT integration in Nuxeo
-
Upload
nuxeo -
Category
Technology
-
view
5.706 -
download
3
description
Transcript of RIA front-ends: Flex, GWT integration in Nuxeo
Nuxeo 5.2Nuxeo 5.2RIA technologies and NuxeoRIA technologies and Nuxeo
Thierry Delprat |
RIA and Nuxeo
● Already several client-side technologies● browser based: JSF/Seam and WebEngine● RCP based: Apogee
● Why adding more?● sometimes look&feel is a major issue ● rich and reactive application in a browser● for rich media management● to open Nuxeo platform to new developers● because we wanted to play :)
Adding Flex and GWT
Nuxeo PlatformWCM / WebSites
Hi-productivity contribution
Administration
Business Application
General publicApplication
WebEngineFlex / Air
Eclipse RCP
NXShell
JSF
GWT
DedicatedRIA
Nuxeo 5.2Nuxeo 5.2Google Web ToolkitGoogle Web Toolkit
Thierry Delprat |
Why GWT ?
● To address browser based RIA● rich and reactive application without deployment
● Because GWT looks cool● nice development model● nice widget libs
● Because we are mainly Java developers● no JS developers● no (real) flex developers
GWT strengths
● Very pleasant development model● almost no JavaScript to write● hosted mode for real debugging● efficient UI development model
● Nice widgets libs● Handles transparently multi-browser support● Works well!
GWT weaknesses
● Works in a sandbox● needs to stay in the sandbox
● No real modularity system● everything must be resolved at compile time
● No state management● all the states in handled in the JS VM● browser navigation can kill the app
GWT use cases in Nuxeo EP
● Annotea client● a lot of UI is handled in JS client side● Nuxeo Annotea server expose a native REST API● client needs to manipulate HTML DOM
● Tiling / Annotation client● GWT UI toolkit make it easy to have a rich UI ● Nuxeo Tiling service exposes a native REST API
Annotations/Tiling with GWT
GWT and WebEngine
● WebEngine and GWT play well together● WebEngine provides navigation and pluggability● WebEngine provides REST APIs● GWT provides the widget model
● Use cases● small dedicated UI hosted into a WebEngine page
– users management– specific content browser– ...
Easy RIA with GWT and WebEngine
● nuxeo-gwt-coremake GWT pluggable in Nuxeo
● provide Extension-points to GWT● extensions are resolved/contributed at build time● helpers for JSON and asynchronous requests
● nuxeo-gwt-ui framework for a multi-tabbed editor for Nuxeo Documents
● Layout / Views management● Context management
Nuxeo 5.2Nuxeo 5.2AMF/Flex connectorAMF/Flex connector
Thierry Delprat |
Why a flex connector ?
Flex is well suited for some applications
Rich media applications(ex: eLearning)
Applications where look & feel is capital
(ex : marketing for end users)
Why a Flex connector ?
● Because Flex 3 has become a real platform● Browser techno: Flex● Desktop techno: Air● Developer tools: based on Eclipse● Remoting framework : BlazeDS / AMF
● Because there are a lot of Flex developers
Nuxeo and Flex, how ?
● Access Nuxeo ECM service from a Flex client● via HTTP with simple REST API
– reuse existing REST services– no Flex connector needed
● via AMF– native binary marshalling (fast and efficient)– requires a connector to expose Nuxeo Services via AMF
● let Flex and Air clients● fetch / push documents from Nuxeo● access all Nuxeo services
Nuxeo Flex connector
● AMF provider choice● Exadel/Flamingo AMF connector (used in alpha)
– easy to use– bound to Seam framework– no complete dataservice API– based on GraniteDS code
● GraniteDS– complete data service API– flexible and pluggable
Nuxeo DS – server side connector
● Based on GraniteDS● Expose Seam components via AMF remoting● Expose Runtime service via AMF remoting● Pluggable marshalling
● via NXRuntime Extension points● via GraniteDS pluggable architecture
● Use Seam for state mngt of stateful services
Nuxeo DS – client side
● AS client side library● encapsulates Authentication● encapsulates DocumentModel marshalling
● Several samples code provided● demonstrate basic usage of Nuxeo API via AMF
● Build system integrated with maven
Nuxeo Air Explorer