the ecm world from the point of view of alfresco - linux day 2013 - rome
TRANSCRIPT
The ECM world from the point of view of Alfresco
You may remember me● Open Source ECM Specialist at Sourcesence
● Author and Technical Reviewer at Packt Publishing○ Alfresco 3 Web Services (2010)○ GateIn Cookbook (2012)
● Alfresco Community (nickname OpenPj)○ Alfresco Wiki Gardener○ Global Moderator of the italian forum○ Top 10 supporter (english and italian)
● PMC Member and Mentor at the Apache Software Foundation○ Mentor for the Google Summer Of Code 2013
● JBoss Community○ Content editor for jboss.org○ Project Leader and Committer for PortletSwap (JBoss Portal)
Overview● What is Enterprise Content Management (ECM)?
○ Java Content Repository (JCR)
● What is Alfresco?○ Architecture○ Spaces and Rules○ RESTful API
● Demo
● Resources
Enterprise Content Management
Enterprise content management (ECM) is a formalized means of
organizing and storing an organization's documents, and other
content, that relate to the organization's processes. The term
encompasses strategies, methods, and tools used throughout the
lifecycle of the content.
Wikipediahttp://en.wikipedia.org/wiki/Enterprise_content_management
What is a repository?● contents are kept is an organized way
○ ER model is the old way ○ Node graph is the new way
■ properties (metadata)■ associations■ renditions
● is from Latin repositorium○ table of service○ vessel○ chamber ○ where to keep and find your things!!!
Enterprise Content Management
RepositoryStorage
Enterprise services
Public API
Users + groups
(LDAP, IDM)
WorkflowEngine
ECM
What is a repository? - You use it!!!● Some simple examples:
○ SMTP servers○ Google Drive○ Dropbox
● Some Open Source repository implementations:○ exoJCR○ Apache JackRabbit
● Some Open Source ECM systems for critical usage:○ Alfresco○ Nuxeo○ Hippo
What is a repository? - Decoration
Repository
apply metadata retrieve content using
metadata
Query Languages:CMIS
JCR SQLXPath
LuceneFull Text (Google style)
CMISJCR
RESTSOAPIMAP
EMAILFTP
Indexes
What is a repository? - Architecture
APIs (CMIS, REST, FTP, WebDAV, IMAP)
Model
Content Store+
IndexesDatabase
Storage
What is a repository? - Model
● different point of view of how managing data○ no more Relational databases (ER)
● based on the JCR Repository Model (JSR-283)○ workspaces○ identifiers○ users ○ nodes and node types (contents)
■ properties and property types■ associations (shared nodes)
What is a repository? - Model
● A node is a generic content stored in a repository○ type○ properties○ associations○ binary streams (optional)
■ renditions■ text document■ Video■ Image
What is a repository? - Graph
Node
Properties (metadata):
- name- description- mimetype- tags- categories
Binary 1 Binary 2 Binary 3
Renditions
Type
What is a repository? - JCR Model
Workspace 1
Workspace 2
Workspace 3
Repository
A BC
Root node
D E G
Why use a repository?● you can scale out easily
● storing very large amounts of data
● storing simple data structures, such as simple JSON
● looking up data by keys rather than using queries
● searching for data based upon relevance
● evolving schemas and/or data structures
● caching data in-memory for performance
Alfresco● Open Source ^__^● Community Edition
○ new features○ wide community support
● Enterprise Edition○ supported with SLA○ complete release test
● Cloud-ready● Collaboration● CMIS
Alfresco
JVM
Alfresco Storage Architecture
Alfresco
Database File SystemBinari
File SystemIndici
Alfresco - Concepts
● Aspects○ an aspect is a tag that can decorate contents
■ adding new properties■ adding new behaviors (trigger)
● WebScripts○ create your own REST API
● Collaboration & Security
Alfresco - Concepts - Spaces● Spaces
○ contains contents○ rules for executing actions
■ event■ actions
Alfresco - Concepts - Spaces● Spaces can be used for implementing a specific ECM
design pattern such as Drop Zones
DEMO
Resources
Homepage:http://www.alfresco.com
Wiki:http://wiki.alfresco.com
Documentation:http://docs.alfresco.com
Thank you for your attention!
Questions?
http://www.open4dev.com