2009-04-21 - Alfresco and Maven NXP case study

20
Enterprise Development with Alfresco and Maven Prepared by [email protected] Hilversum, 21 st April 2009

description

A introduction to Maven based development and lifecycle management for Alfresco architectures, based on the real life case study, NXP, ex Philips semi-conductors, which switched his complete ECM landscape to an open stack.

Transcript of 2009-04-21 - Alfresco and Maven NXP case study

Page 1: 2009-04-21 - Alfresco and Maven NXP case study

Enterprise Development with Alfresco and Maven

Prepared by [email protected]

Hilversum, 21st April 2009

Page 2: 2009-04-21 - Alfresco and Maven NXP case study

A bit of introduction

● Gabriele Columbro

ECM Architect on Alfresco for 2+ years with Sourcesense IT&NL

2nd day in Alfresco as EMEA Field Consultant for Professional Services

● Focus

ECM enterprise integration

Application Development best practices with Apache Maven

● Clients

NXP, GovUnited, Banca Popolare di Milano

Page 3: 2009-04-21 - Alfresco and Maven NXP case study

Why Alfresco?

● Scales to Enterprise Wide Repository● Benchmarks up to 100 million objects● Multi-tenancy and REST front-ends

● Reduces vendor lock-in● Best of breed open source components● Integrate in rather than impose your stack

● Grows outstandingly in feature and support● First CIFS Java implementation● Sharepoint protocol support ● Social collaboration platform

● Biggest Open Source ECM player● 70,000 Community members● 30,000+ Active installations● 75 countries, 20 languages

It’s open source…we can customize it!

Page 4: 2009-04-21 - Alfresco and Maven NXP case study

Alfresco customizations

● Custom Modelling ● Custom content model● Custom space taxonomy

● Custom User capabilities● Custom UI configurations● Custom workflows

● New feature development● Custom webscripts● Custom JSF components● Custom SURF components (as of 3.x)

● Integration with 3rd party products● LDAP/CAS● Liferay

Page 5: 2009-04-21 - Alfresco and Maven NXP case study

Customization packaging

● 2 approaches with different purposes:

● Alfresco extension (WAR):environment dependent builds with core configurations (classpath:alfresco/extension/*)

● Alfresco Module Package (AMP)AMPs should be (almost 100%) :

● mutually non intrusive (software module)

● relocable

● reusable with repository version limitations

● self-contained in (classpath:alfresco/module/*/**)

Page 6: 2009-04-21 - Alfresco and Maven NXP case study

NXP Case study

● 40k employees global semiconductors enterprise disentangling from Philips

● Alfresco as key building block of C3, enterprise content repository for the new redesigned architecture

● Content and code reuse main driver of the C3

● Several parties involved in the huge migration and (up to) 800 customization projects

Page 7: 2009-04-21 - Alfresco and Maven NXP case study

NXP C3 Architecture

● Alfresco as Basic Content Services (Versioning, Editing)

● Alfresco as Advanced Content Management

Page 8: 2009-04-21 - Alfresco and Maven NXP case study

Straighten your processes first

● NXP Goals:● Get to the ultimate single sourcing enterprise content repository

● Have multiple customizations being automatically packaged, tested, released and deployed to application servers

● Manage a reproducible build aware of multiple environments (build and runtime configurations)

● Dependency management versioning and centralized repository

● Early phases (2007)● Multiple parties developing in isolation

● Content silo high risk

● Growing complexity (so TCO) of Alfresco production environment (multiple Alfresco WARs)

● NO design and processes in place for ECM and Application Lifecycle Management (Application Lifecycle

Page 9: 2009-04-21 - Alfresco and Maven NXP case study

Alfresco SDK Enterprise limitations

● Project approach:1. Define ECM processes (ECM Foundation)

2. Define ALM processes (Application Lifecycle Document)

3. Use enabling ALM technologies to support ECM complex architectural integration challenges

● Alfresco SDK Limitations:● The Alfresco SDK + MMT approach would have required a

large amount of scripting and manual configuration

● No explicit support to scale up and cope with enterprise complexity

● Apache Maven was chosen as reference technology for coping with complexity of modern ECM architectures

Page 10: 2009-04-21 - Alfresco and Maven NXP case study

The Idea

Page 11: 2009-04-21 - Alfresco and Maven NXP case study

What is Apache Maven?

● Is the standard de facto in open source Java based application lifecycle management

● Allows to use standard commands to manage all software lifecycle phases from creation to release

● Support project inter-dependencies (and dependency on the officially released Alfresco) and project binary repository

● Maven AMP Plugin● Packages AMPs

● Allows an Extension WAR to depend on AMP (alternative to the MMT, done at build time)

● Real enabler for the growingly complex NXP architecture

Page 12: 2009-04-21 - Alfresco and Maven NXP case study

Maven Enterprise Added value

● Maven Alfresco archetypes● Provide easy project templates to standardize AMPs and Extensions development● Have your project up and running in few standard commands

● Dependency management● You can express your runtime requirements● Enable complex inter-dependent project to be developed in isolation but deployed in integration

● Project inheritance and aggregation● Centralize control of libraries● Centralize environments ● Centralize release/versioning/documentation

● Nexus Enterprise Repository● Searchable repository of your code assets gears reuse● Proxying multiple partners deliverables makes teams distributable

Page 13: 2009-04-21 - Alfresco and Maven NXP case study

Ideas come true

Page 14: 2009-04-21 - Alfresco and Maven NXP case study

NXP Main Benefits

● Lower TCO: ~10 AMPs deployed on 1 Foundation repository

● Fast upgrade with Alfresco versions, rolling out 3.1 in May(SHARE build and SharePoint protocol)

● Multiple parties to cooperate under one standard controlled application development

● Ready to use GA open source AMPs (Alfresco and 3rd party)

● Enforced per project documentation

● Commons reusable model/customizations library

● Automated testing w/Selenium and continuous integration

● Maven integrates with Eclipse, NXP reference IDE

Page 15: 2009-04-21 - Alfresco and Maven NXP case study

The Alfresco community side

● Maven Alfresco Archetypes http://repository.sourcesense.com/maven2-sites/maven-alfresco-archetypes

● Alfresco community versions based project templates● Alfresco Dependencies deployed at http://repository.sourcesense.com/maven2

● Maven AMP Pluginhttp://repository.sourcesense.com/maven2-sites/maven-amp-plugin

● Used to package and depend on AMPs

● First release in July 2007, hype in downloads in January 2009 (contributor of the month)

● Archetype v.3.x already supporting SHARE and centralized dependency control

● Enable your work to be 100% open source ready and contributable!!!

Page 16: 2009-04-21 - Alfresco and Maven NXP case study

Demo

● Run Alfresco in less than 5 minutes:● Open Maven Alfresco Extension Archetype website:

http://repository.sourcesense.com/maven2-sites/maven-alfresco-extension-archetype/

● Run the featured command:

mvn archetype:generate -DarchetypeCatalog=http://repository.sourcesense.com/maven2/archetype-catalog.xml

● As described in the README-m2.txt , run :

MAVEN_OPTS="-Xms256m -Xmx512m -XX:PermSize=128m mvn integration-test

● Point your browser to:

http://localhost:8080/alfresco/faces/jsp/dashboards/container.jsp

● Advantages: standard, reproducible, environment aware, no manual download

Page 17: 2009-04-21 - Alfresco and Maven NXP case study

The power of open source

http://www.mindthegab.com

Page 18: 2009-04-21 - Alfresco and Maven NXP case study

Q/A

● Any question?

Page 19: 2009-04-21 - Alfresco and Maven NXP case study

Conclusions● Maven can be used as glue to scale out enterprise processes by

technologies integration

● Integrators can benefit as well of easy prototyping

● A fool with a tool is still a fool. Focus on your ECM/ALM processes first

● Understand what development approach fits you better (Maven requires expertise but it’s open source)

● Get open source under control a with open source technologies ;)

Page 20: 2009-04-21 - Alfresco and Maven NXP case study

The end!

● References:● Gabriele Columbro:

http://www.mindthegab.com● Sourcesense:

http://www.sourcesense.com● Apache Maven:

http://maven.apache.org● Maven Alfresco support:

http://wiki.alfresco.com/wiki/Managing_Alfresco_Lifecyle_with_Maven● Nxp:

http://www.nxp.com