spring in alfresco ecm

32
Spring in Alfresco ECM A success story

Upload: piergiorgio-lucidi

Post on 13-May-2015

6.473 views

Category:

Technology


2 download

DESCRIPTION

This presentation was shown at Spring Framework Meeting 2009 in Cagliari (Sardinia - Italy). http://www.jugsardegna.org/vqwiki/jsp/Wiki?27giugno2009 Abstract: Alfresco is the leading open source enterprise content management system and two of the most appreciated aspects of Alfresco are: the wide customization model and the high quality of source code. Alfresco is strongly based on Spring Framework and thanks to this adoption we can find many ways to extend and inject our components. In this presentation will be shown many ways to extend Alfresco features and interfaces using Spring application context configuration.

TRANSCRIPT

Page 1: Spring In Alfresco Ecm

Spring in Alfresco ECMA success story

Page 2: Spring In Alfresco Ecm

About me

Open Source Product Specialistcontent managementsystem integrationweb / portal

Alfresco ECM

Certified Alfresco TrainerForum supporter (en, it)

JBoss Portal

Forum supporter

Contributions DbDep Plugin

Apache IvyApache Maven

CMIS PortletProject Leader - JBoss WikiCommitter - JBoss LabsAffiliate Partner at PacktEditor at oneOpenSource.it

Page 3: Spring In Alfresco Ecm

Agenda

1. ECM in the real world2. Alfresco ECM3. Spring in Alfresco

Page 4: Spring In Alfresco Ecm

ECM=Enterprise Content Management

AIIM Definition (Association for Information and Image Management)Enterprise Content Management embodies the technologies used to capture, manage, store, preserve and deliver content and documents related to organizational processes.

WikipediaA system for organizing and facilitating collaborative creation of documents and other contentAble to monitor content through its lifecycle, and track changes to content, and users of the contentSometimes a web application used for managing websites and web contentIn many cases, content management systems require special client software for editing and constructing articles

Page 5: Spring In Alfresco Ecm

ECM architecture - step 1

Page 6: Spring In Alfresco Ecm

ECM architecture - step 2

Page 7: Spring In Alfresco Ecm

What is Alfresco

Centralized Repository / Services Interfaces

Alfresco Web Client (JSF Client)FTP/WebDAV/CIFS (network share)Office 2003/7 Plug-in + SharePoint ProtocolCMIS (Content Management Interoperability Services)Web Services APIJCR API

Authentication and Security

Alfresco managed accountsLDAP, OpenLDAP, Apache DS Active DirectoryKerberos

Page 8: Spring In Alfresco Ecm

What is Alfresco

Standard JEE Applicationbased on Spring Framework

Easily Extendable FreemarkerJavaScriptWeb ServicesWeb Scripts (REST)Java APIPlug in new technology through Spring

Business Processe Orchestration

Simple WorkflowAdvanced – based on jBPM

Page 9: Spring In Alfresco Ecm

Alfresco - software architecture

Page 10: Spring In Alfresco Ecm

Alfresco - software architecture

Page 11: Spring In Alfresco Ecm

Alfresco - Spring conventions

Foundation Repository ServicesPublic Services

Springbean IDs begin with uppercase letter Private Components

Springbean IDs begin with lowercase letterApplication context = Spring contextSpring AOPSpring Security (ex Acegi)

Page 12: Spring In Alfresco Ecm

Alfresco - web.xml

Page 13: Spring In Alfresco Ecm

Alfresco - web-application-context.xml

Page 14: Spring In Alfresco Ecm

Alfresco - application-context.xml

Page 15: Spring In Alfresco Ecm

Alfresco - Foundation Services APITransaction-aware (more methods invocation)A unique API defined by a Spring Context for

Application interfacesWS APICMIS APIJCR APIWebScript API

JavaScript Server Side (Mozilla Rhino)Virtual File Systems

CIFSFTPSharePoint Protocol

Page 16: Spring In Alfresco Ecm

Alfresco - Foundation Services API

To create your own Alfresco extension get a service using ServiceRegistry provided by Alfrescouse Spring getBean() methodeach component can be injected using IoC

public setterXML bean ref

Page 17: Spring In Alfresco Ecm

Alfresco - public-services-context.xml

Page 18: Spring In Alfresco Ecm

Alfresco - content-services-context.xml

Page 19: Spring In Alfresco Ecm

Alfresco - contentService (Spring bean)

Page 20: Spring In Alfresco Ecm

Alfresco - RoutingContentService.java

Page 21: Spring In Alfresco Ecm

Alfresco - RoutingContentService.java

Page 22: Spring In Alfresco Ecm

Alfresco - Spring Configuration Filescustom-repository-context.xml

Page 23: Spring In Alfresco Ecm

Alfresco - Configuration Files example

Page 24: Spring In Alfresco Ecm

Alfresco - Configuration Files example

Page 25: Spring In Alfresco Ecm

Alfresco - Configuration Files example

Page 26: Spring In Alfresco Ecm

Alfresco - Spring AOP Proxies

ProxyFactoryBeandefine an array of interfaces implemented by targetdefine a list of advisors (interceptor names)

ordering is significantthe first interceptor will be the first to be able to intercept the method call

Page 27: Spring In Alfresco Ecm

Alfresco - Spring AOP - Advisor

An advisor is based on these components:Pointcuts

WHERE Advice

ACTION

Page 28: Spring In Alfresco Ecm

Alfresco - Spring AOP - Pointcuts

Page 29: Spring In Alfresco Ecm

Alfresco - Spring AOP Proxies

Page 30: Spring In Alfresco Ecm

Alfresco - Spring Security (ex Acegi)

Authentication management forLDAPHTTPNTLMX509RESTPluggable IoC XML

Page 31: Spring In Alfresco Ecm

Alfresco - Spring Security (ex Acegi)

Page 32: Spring In Alfresco Ecm

Thank youMy website:

http://www.open4dev.com