Intro to Alfresco for Developers
Upcoming SlideShare
Loading in...5
×
 

Intro to Alfresco for Developers

on

  • 7,693 views

Extremely high-level overview of some of the major components and sub-systems of the Alfresco platform for content management. Delivered to the Red Hat Summit/JBoss World Campground session on ...

Extremely high-level overview of some of the major components and sub-systems of the Alfresco platform for content management. Delivered to the Red Hat Summit/JBoss World Campground session on 5/4/2011.

Statistics

Views

Total Views
7,693
Views on SlideShare
5,151
Embed Views
2,542

Actions

Likes
7
Downloads
361
Comments
0

24 Embeds 2,542

http://ecmarchitect.com 2231
http://cloud.feedly.com 199
http://www.newsblur.com 35
http://feed.webphp.com.br 19
http://www.feedspot.com 18
http://newsblur.com 8
http://reader.aol.com 6
http://pairmasts2.rssing.com 4
http://translate.googleusercontent.com 3
http://twitter.com 2
http://ecmarchitect.com. 2
http://inoreader.com 2
http://yoleoreader.com 2
http://localhost 1
http://www.kmarchitect.com 1
http://www.linkedin.com 1
https://twitter.com 1
http://us-w1.rockmelt.com 1
http://www.sitespoweredbydrupal.com 1
http://www.goread.io 1
http://trentboeschen.com 1
http://www.onlydoo.com 1
http://kmarchitect.com 1
http://rss.chrisegner.net 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Intro to Alfresco for Developers Intro to Alfresco for Developers Presentation Transcript

  • A Developer’s Intro to the Alfresco Platform
    JBoss World 2011
  • Agenda
    Extremely High-Level Alfresco Overview
    Alfresco Architecture
    Alfresco Development Model
    Alfresco User Interface
    Alfresco App Examples
  • Extremely high-level overview
    source: flyfshrmn98
  • Alfresco Overview
    Alfresco is an Enterprise Content Management platform
    Can manage any kind of file
    Stores the file and metadata about the file
    Metadata model is extensible
    All content and metadata is searchable
    Files can be secured to specific users and groups
  • Alfresco Overview (Cont’d)
    Provides versioning and check-in/check-out
    Has a built-in workflow engine
    Can be accessed through a browser or from desktop applications via CIFS, WebDAV, FTP, IMAP, etc.
    Community Edition (Community supported)
    Enterprise Edition (Alfresco supported for a paid subscription)
  • Origins
    Founded in 2005
    John Newton
    Founding developer of Ingres
    Co-founded Documentum
    John Powell
    COO of Business Objects
    President of Oracle UK
    Lots of Engineers from Documentum, Interwoven, Vignette
    Assembled from Open Source components
  • Core Products
    Repository
    Explorer Client
    Share Client
    Web Content Management
    Records Management
  • Add-ons
    WCM QuickStart
    Sharepoint integration
    Google Docs integration
    Facebook integration
    Plus many add-ons and extensions available from the community
    Alfresco Forge
    Google Code
    Github
    Alfresco Wiki
    Alfresco Community Committer Program (ACCP)
  • What can I do with it?
    Out-of-the-box
    Document Management
    Web Content Management
    Team/Project Collaboration
    Records Management
    Imaging/Digital Asset Management
    Sharepoint Replacement
    Custom content-centric applications
    Lots of options here
    API’s discussed later
    Source: craigrodway
  • Obtaining Alfresco
    Requirements
    An operating system that can run Java
    A servletcontainer such as Tomcat or JBoss
    A Hibernate-compliant database
    Where to get it
    Alfresco home page
    Public SVN for Community source
    Alfresco Customer/Partner site for Enterprise binaries
    Private SVN for Enterprisesource
  • Obtaining Alfresco (cont’d)
    Distribution
    Repository (bundled with Tomcat or WAR-only)
    Includes Alfresco Explorer and Alfresco Share
    SDK
    WCM add-on
    WCM FSR deployment process
    Source includes all of the above
  • Installing Alfresco
    Alfresco deploys as a web application
    Alfresco-Tomcat bundle
    Unzip, update the startup script (if needed) and run
    If no specific database is provided, an embedded database will be used
    Alfresco WAR file
    Deploys like any other WAR
    By default, looks for MySQL db alfresco/alfresco
  • Alfresco Architecture
    source: philromans
  • High-level Architecture
    Plus:
    • IMAP
    • SharePoint
  • High-level Custom Front-End
    Alfresco
    Surf
    Drupal
  • Spring Surf Framework
  • Spring Surf’s Two-Tier MVC Architecture
    Presentation Tier
    Dispatcher
    Spring
    FreeMarker
    Web Scripts
    Surf
    REST
    Repository Tier
    Model ObjectsPagesTemplatesComponentsThemesAssociations
    Connectors
    JSON
    JSON
    Web ScriptsRepositoryCMISSocialUI
    Content GraphDocumentsFoldersAssociationsAspects
  • The Beauty of
    Fast, flexible, modular user interface
    Presentation Tier
    REST
    SOAP
    Open, scalable repository, metadata, versioning, workflow
    Content Services Tier
    ?
    ?
    Enterprise Apps Tier
  • Major Sub-systems
    Authentication
    Workflow
    JBossjBPM
    Scheduler
    Auditing
    Renditions
    ImageMagick
    OpenOffice
    Email
  • High-level development model
    Source: thomas hawk
  • Data Modeling
    Repository is a collection of nodes
    Everything is a node, nodes are typed
    Content Model is expressed in XML
    Cold-deploy most common, hot deploy possible
    Types, aspects, properties, associations, constraints
    Hierarchical
    Types inherit from super types
  • Forms/UI Config
    Forms are modeled in XML
    Form Service
    Processes and persists form data
    Filters for intercepting form data before and after form submit
    RESTful API for retrieving form model as JSON
  • Form Config Example
    <field id=”sc:itemShortDescription" label-id="label.shortDescription" description-id="description.shortDescription" set="header" mandatory="true”>
    <control template="controls/textfield.ftl”>
    <control-param name="maxLength">100</control-param>
    </control>
    </field>
    <field id=”sc:itemSku" label-id="label.sku" description-id="description.sku" set="header" />
    <field id=”sc:solutionSections" label-id="label.solutionSections” description-id="description.solutionSections" set="sections”>
    <control template="/org/alfresco/components/form/controls/sc-association.ftl”>
    <control-param name="showTargetLink">true</control-param>
    <control-param name="allowOtherAssocs">false</control-param>
    </control>
    </field>
  • Queries
    Alfresco isn't relational
    Lucene
    CMIS queries (SQL-like)
    Xpath
    Apache Solr Coming Soon!
    SQL
  • Security - Authentication
    Spring Security Framework (ACEGI) under the covers
    Alfresco can handle it or pass it off to others
    ActiveDirectory
    LDAP
    Kerberos
    NTLM
    SSO
    Custom
    Source: rooreynolds
  • Security - Authorization
    Users & Groups
    Access Control Lists
    Permissions
    Hierarchical
  • What is the Web Script Framework?
    Web Script Framework used to declare a URL, bind it to logic, provide views
    Model-View-Controller pattern
    Controller implemented in JavaScript or Java
    Views implemented in FreeMarker
    Deployed to the repository or the classpath
    Part of the Spring Surf Projecthttp://springsurf.org/
  • What is Spring Surf?
    Web application development framework built on web scripts
    Essentially web scripts++
    Page definition
    Declarative handshakes to HTTP end points
    Page, page type, and object dispatching
    Includes built-in hooks for talking to Alfresco and loading objects from the repository
  • What is CMIS?
    OASIS standard
    Alfresco, IBM, Microsoft, Oracle, FileNet support
    Alfresco was first to production with CMIS
    Two parts
    Interoperability through standard SOAP and Atom Pub bindings
    SQL-based query language for rich content repositories
    New JSON binding coming soon
  • What is CMIS? (Cont’d)
    Think of it as a language-independent, repository-independent API for content management
    CRUD functions for nodes
    Check-in/check-out
    Associations
    Permissions (Access Control Lists)
    Policies
    Queries
    Repository traversal
  • Demo/Code
  • For More Information…
    Alfresco Community
    http://www.alfresco.org
    Alfresco Forums
    http://forums.alfresco.com
    Alfresco Wiki
    http://wiki.alfresco.com
    Alfresco Blogroll
    http://blogs.alfresco.com/planet/
    ECM Architect
    http://ecmarchitect.com
  • Thank you!
    Tweet me with questions/feedback @jeffpotts01