2009-04-21 - Alfresco and Maven NXP case study
-
Upload
gabriele-columbro -
Category
Technology
-
view
1.325 -
download
1
description
Transcript of 2009-04-21 - Alfresco and Maven NXP case study
Enterprise Development with Alfresco and Maven
Prepared by [email protected]
Hilversum, 21st April 2009
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
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!
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
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/*/**)
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
NXP C3 Architecture
● Alfresco as Basic Content Services (Versioning, Editing)
● Alfresco as Advanced Content Management
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
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
The Idea
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
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
Ideas come true
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
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!!!
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
The power of open source
http://www.mindthegab.com
Q/A
● Any question?
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 ;)
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