0910 cagliari- spring surf and cmis - the dynamic duo

Post on 13-May-2015

3.484 views 1 download

Tags:

Transcript of 0910 cagliari- spring surf and cmis - the dynamic duo

Spring Italian ConferenceCagliari, September 4th 2010

1

Gabriele ColumbroSenior Solutions Engineer, Alfresco EMEA

gabriele.columbro@alfresco.com

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

34

Thanks!

Gabriele Columbro twitter: @mindthegabz

http://www.mindthegab.comgabriele.columbro@alfresco.com