100 likes | 250 Views
Thoughts for discussion | March, 2007. Alfresco as a platform. 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
E N D
Thoughts for discussion | March, 2007 Alfresco as a platform
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.”
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?
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 transformers provided OOTB; Add-ons for things like records management Okay, but for what types of solutions?
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
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
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 non-content-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?
Contact info Jeff Potts, Optaros Personal blog: http://ecmarchitect.com Optaros web site: http://www.optaros.com