alfresco-meetup-20070302

advertisement
Alfresco as a platform
Thoughts for discussion | March, 2007
What is a platform?
Set of services that developers can leverage to build
applications
The services that are important vary by solution
User interface/presentation layer
Data model/persistance layer
Library services
Transactions
Security
Workflow/BPM
Integration hooks
Scheduler
Server-side API
Development (config, customize, extend, manage, deploy) model
Solution-specific services such as search, transformation
Marketing guys want to sell platforms
• Infinity: “It's not an automobile, it is a sound studio on wheels.”
2
Platform or not?
These are examples of platforms
• Lotus Notes/Domino
• ATG/Dynamo
• Vignette
• Zope
• Documentum
These are examples of tools, frameworks, and niche
solutions
• LAMP, PHP, Symfony
• J2EE, Tomcat, JBoss, Spring
• Most mid-market ECM solutions
Does it matter?
3
So is Alfresco a platform?
Yes. Alfresco is a platform for content-centric solutions.
It provides all of the services mentioned earlier...
User interface/presentation layer: Spring/MyFaces
Data model/persistance layer: Extensible content model
Library services: Check-in/check-out, versioning
Transactions: Configurable via Spring
Security: Authenticate against LDAP, define custom roles
Workflow/BPM: Simple workflows or embedded JBPM
Integration hooks: Write your own actions or policies that will call
other apps with Java; Other apps integrate with Alfresco via JCR
or Web Services
Scheduler: Leverages Quartz scheduler
Server-side API: Via the Rhino JavaScript engine
Development (config, customize, extend, manage, deploy) model:
Create light extensions through Freemarker, heavier
customizations via Java
Solution-specific services such as search, transformation: Lucene
handles search; Some content Okay,
transformers
OOTB; Addbut for whatprovided
types of solutions?
4
ons for things like records management
Four Alfresco patterns
Straight Alfresco
• Use cases: Typical ECM: Document management, imaging,
records management
• Client: Web client UI is acceptable OOTB or with minor
customizations; Office suites
• Process: Simple to complex processes
• Content: Document-centric
Alfresco as a Repository
• Use cases: NGI applications, portals
• Client: Custom; leverage a framework such as Symfony (PHP),
Liferay (Java), or Jboss Portal (Java)
• Process: Simple to complex; may have integration requirements
• Content: Content-centric
5
Four Alfresco patterns
Alfresco for Traditional WCM
• Use cases: Enable non-technical users to manage mostly static
web sites
• Client: Web client
• Process: Simple
• Content: XML-centric
Alfresco for Dynamic WCM
• Use cases: Enable both technical and non-technical users to work
together to maintain a dynamic web site (application)
• Client: Web client, Eclipse and other tools
• Process: Simple to complex processes
• Content: XML-centric
6
Alfresco anti-patterns
An issue of “could you” versus “should you”
• You could use Alfresco to develop a CRM application but should
you?
Alfresco as the portal or community
• Alfresco is not there yet, but watch for developments in this area
Alfresco as a platform for non-document- or noncontent-centric solutions
• Alfresco is built to handle content, not as a replacement to
Hibernate
Source code management [Brought up by one of the
meet-up participants]
• Until Alfresco supports the SVN protocol, developers probably will
not be willing to give up their current tools to use Alfresco for
source code management
Others?
7
Contact info
Jeff Potts, Optaros
Personal blog: http://ecmarchitect.com
Optaros web site: http://www.optaros.com
8
Download