Upload
gabriele-columbro
View
3.485
Download
1
Tags:
Embed Size (px)
Citation preview
Spring Italian ConferenceCagliari, September 4th 2010
1
Gabriele ColumbroSenior Solutions Engineer, Alfresco EMEA
Content applications with
Spring Surf & Chemistry OpenCMIS
2
Agenda
● Intro
● Spring Webscripts and Spring Surf
● CMIS made easy with OpenCMIS
● Demo: Surf OpenCMIS powered webapp
● Project Roadmaps
● Conclusions and Q/A
3
Spring Italian ConferenceCagliari, September 4th 2010
3
Spring Surf and OpenCMIS
Introduction
4
Who we are?
● Alfresco is leading the open source ECM● Document / Records Management finally accessible● Collaboration made easy● And ... Web Content Management, Image Management, Digital Asset
Management, * Content Management● 5 years old, alive and kicking
(biggest private open source company)
● Gabriele Columbro● Senior Solution Engineer for Alfresco EMEA● Since 4 years in Amsterdam● Open source enthusiast and committer for
• Apache Chemistry• Spring Surf• Alfresco
● Ahhh...and a Maven freak :)
5
Surf in Cagliari? :)
6
Got content?
7
What are you going to do with it?
● Write it● Editors● Business representatives● UCG (User Generated Content)
● Process it● Transformations● Business processes● Branding
● Store it● Data vs metadata● Structured and unstructured● Archival and categorization
● But who cares about content which nobody will read? :)
● So fundamental step is...
4
...Delivery!!!
9
ECM and Content Delivery
● ECM Trends in last 3 years● Standardization with CMIS● Commoditization of the cloud● Everything is content!
● Content Delivery trends● Socialization of content ( 2 way channels )● Write once --> Deliver Everywhere (Servlet, Portlet, OpenSocial, etc.)● Lightweight frameworks
● Alfresco in 2007 was offering a JSF client● Hard to customize and not easily remotable● Hardcore java skills required --> rapid application development● Alfresco community demands a new way to deliver content
● Idea: Tailor make a content delivery framework for Alfresco● Component based page composition● Open Source● Open Standards based● Scriptable and extensible
10
Spring Italian ConferenceCagliari, September 4th 2010
10
Spring Surf and OpenCMIS
Spring Webscripts and Surf
11
Genesis of a framework
● 2007 ● Alfresco 2.1 introduces Alfresco Web Scripts
• Micro MVC ReST framework• Scriptable - Control in JS or Java• Templates in Freemarker
● Started development on so called Alfresco Web Framework based on Web Scripts
● 2008● Alfresco Web Framework is completed● AWF renamed to Alfresco Surf● Alfresco Share (Alfresco collaboration interface) is based con Alfresco Surf
● 2009● First contacts between Alfresco and Spring Source● Alfresco Webscripts and Surf integrated with Spring MVC● Alfresco Surf and Webscripts contributed as Spring Webscripts and Spring Surf
● 2010● 3 Milestones released (latest 1.0.0-M3)
12
Spring Web Scripts
13
Anatomy of a webscript
Description document
An xml file which describes the Web script's properties, for example its URI and HTTP method
binding. The name of this file must comply with the Web Script Framework as follows:-
<web script id>.<http method>.desc.xml
For example: foo.get.desc.xml
Controller script
A JavaScript file which contains the logic of the Web script. Its output on execution is a model to
render in the response template. The name of this file must comply with the Web script
Framework as follows:-
<web script id>.<http method>.js
For example: foo.get.js
Response template
A FreeMarker template which renders the output response. The template has access to the model
generated by the controller script, and the Web script's invocation context.The name of this file
must comply with the Web script Framework as follows:-
<web script id>.<http method>.<format>.ftl
For example: foo.get.html.ftl
14
Java Backed Webscripts
15
Spring Surf
● What Spring Surf is?1. A set of Spring MVC View Resolvers
• Page, Component (Webscript)• You can add your favorite Controller
2. A page composition framework• Modeling standard component based web engineering concepts• Pages, Templates, regions, components
3. Advanced remoting facilities• Modeling standard component based web engineering concepts1. Pages, Templates, regions, components
● A set of developer productivity tools• Spring Tool Suite integration1. Spring Roo extensions• Self documentation for Webscripts and Surf
1. What Spring Surf is NOT?● A Spring MVC controller (all in the view)1. Alfresco specific ● Being bought by Oracle :)
16
Spring Surf Page composition
17
Spring Surf Remoting
18
Spring Surf Developer Tools
•Spring Roo Plugin for Surf•Command line scaffolding for Surf•Surf sites, pages, components•Web Scripts and CRUD operations•SpringSource Tool Suite•Plugin for Surf•Surf Application wizards•Maven Plugins•Documentation Generation•Maven Build Scripts•http://maven.alfresco.com•Javascript and Freemarkereditors•Platform•Spring Roo 1.0.2•Spring Framework 3.0.1
19
And the content?
● Where can we “suck” content from?● Obviously Alfresco (pre-configured endpoint)● Any source for which we configured a triplet
[authenticator, connector, endpoint]
● CMIS offers a new way to look at Content Repositories● CMIS is the SQL for content management● All major ECM vendors are implementing CMIS
• Alfresco / Sharepoint / Documentum / Filenet / Oracle● Most open source delivery frameworks are riding the CMIS horse
• Drupal / Liferay / Django / Joomla ● But how can we have Surf and Webscripts speak CMIS?
● Apache Chemistry OpenCMIS is the answer!
20
Spring Italian ConferenceCagliari, September 4th 2010
20
Spring Surf and OpenCMIS
CMIS made easy with OpenCMIS
21
CMIS who?
● CMIS stands for “Content Management Interoperability Services”● 1.0 OASIS standard in April 2010● Standard domain model and services for content management● Cross-language, cross-protocol, cross-vendor
• Atom (pub) binding• SOAP binding• (v2) JSON browser binding
● CMIS use cases● Federation ● Migration● Transparent content delivery ● Mash up
● Content applications in a write once / use everywhere fashion
● Test it on: http://cmis.alfresco.com
22
Chemistry OpenCMIS
● Fully fledged Java Implementation for the CMIS standard● API for client applications (AtomPub & SOAP)● Server bindings for server implementors● TCK for server validation● Caching and session management
● Based on a lightweight technology stack● StAX (Streaming API for XML)● Apache CXF for webservices● Build by Apache Maven
● State of the art ● Contributed to Apache by Alfresco / SAP / OpenText in early 2010● 5 committers from Alfresco● Merged with existing Chemistry codebase● Approaching 0.1 release (if I find some time :) )
● Allow developers to focus on the Content Domain Model!
23
CMIS Domain Model
24
Spring CMIS application browser
● OpenCMIS integrated in the Webscripts runtime● Offers a sample CMIS powered Surf Webscripts based application● Developed by Alfresco ● Allows remote multi repository access
● Features● Technology independent repository browsing● Content and metadata access● Federated search● Embeddable and extensible
● How can you use it?● Check out the Spring Surf Sandbox (
https://anonsvn.springframework.org/svn/se-surf/trunk/sandbox)● Wait for next Surf release :)● Check out the demo!
25
Spring Italian ConferenceCagliari, September 4th 2010
25
Spring Surf and OpenCMIS
Demo: Spring Surf CMIS powered webapp
26
Demo objectives
● Demo the spring-cmis-application-browser● Familiarize with STS Surf Add-on● Generate a sample Surf application
LocalAlfresco
8080
cmis.alfresco.com
80
Spring CMIS
Browser8081
Favourite CMIS server
27
Surf Demo App
28
Spring Italian ConferenceCagliari, September 4th 2010
28
Spring Surf and OpenCMIS
Project roadmaps
29
Spring Surf work in progress
● Spring CMIS browser productized and fully Surf integrated
● Stabilization and 1.0 final release● Additional runtime integrations (using Spring
WebRequest)● Spring MVC Portlet (DEV_SPRING_PORTLET branch)● Open Social?
● Samples and documentation● Alfresco WCM Quickstart
Fully fledged WCM quick start application using Surf and Alfrescohttp://wiki.alfresco.com/wiki/WCM_Quick_Start_Developer_Guide
● Alfresco Web EditorSurf based in context content editor
30
OpenCMIS approaching release
● OpenCMIS community growing● Server and client implementations complete● 0.1-RC1 rejected by Apache Incubator
(for legal packaging issues)● 0.1-RC2 undergoing
● Legal issues fixed● Apache mentors validating packages● Mid sept
31
Spring Italian ConferenceCagliari, September 4th 2010
31
Spring Surf and OpenCMIS
Conclusions and Q/A
32
Got Questions?
33
References
● Alfresco● OpenCMIS● Spring Surf● WCM QuickStart● Spring CMIS browser