Alfresco Repository Overview by Rivet Logic
-
Upload
govindbirajdar -
Category
Documents
-
view
30 -
download
2
Transcript of Alfresco Repository Overview by Rivet Logic
Alfresco Repository ArchitectureOverview
12 March 2008
Presented by:
Sumer Jabri
Rivet Logic Corporation
1800 Alexander Bell Drive
Suite 400
Reston, VA 20191
Ph: 703.234.7761 Fax: 703.234.7711
2March 11, 07
Presentation Overview
! Motivation
– Get a high-level architectural overview of Alfresco’s
content repository
! Scope
– Positioning
– Technology Overview
– Services and Components
– Programmatic APIs
– Repository Protocols
– Alfresco-based Content Rich Application
Considerations
3March 11, 07
Technology Overview
! Alfresco
– Built using best of breed OSS projects
– Provides complete set of content management
solutions
– Not tied to a specific operating system, web browser,
application server, nor database
4March 11, 07
The Four Big Areas of Content Management
Records ManagementContent
Repository
Document ManagementWeb Content Management
ImageManagement
5March 11, 07
Alfresco as an ECM Solution
Full-text Indexes& Categories
Storage
MetadataDBMS
App Server
Message
System
Integration
Virtual File
System
WebDAV
CIFS
FTP
Content
Repository
Business
Process
Engine
CRM
Web Services
Portal Server
Knowledge
Portals
High
Availability
Hot
Standby
6March 11, 07
Out of the Box
! Out of the box, Alfresco
– Deploys as a complete working content management
application
– Runs like a typical web application
~ Application server
! User interface
! Repository
~ Persistent back-end
! Database
! File system
~ Any number of web browsers
! No client installation costs
7March 11, 07
Out of the Box Installation
! App server houses– Alfresco application
– Alfresco repository
! Alfresco repository– Reusable, cross-cutting, content
management services~ Content storage
~ Query
~ Versioning
~ Transformation
! Architecture is– Open
– Modular~ Components can be used in isolation or
together
! Support for– DM - Document Management
– RM - Records Management
– WCM - Web Content Management~ Currently only uses subset of repository
services
~ Adds complex layering and versioningsupport for sophisticated web production
8March 11, 07
Services and Components
! Alfresco Repository is composed of
– Services
~ Interface entry point for a client to bind to and use
– Components
~ Implementation black box
~ Provides specific capabilities
9March 11, 07
Architecture Advantages
! Existing components can be replaced
– Better implementation
– Better integration with existing environment
– No impact to clients
! Remove unnecessary features
– Lighter, possibly faster Alfresco
10March 11, 07
Spring Framework
! Simplifies architecture implementation
! Core foundation of Alfresco architecture
! Components are
– Declaratively configured and bound together
! Spring AOP allows for
– Adding transactions and security to components
declaratively
– No implementation pollution
! Resources are abstracted (e.g. Database)
11March 11, 07
Programmatic APIs
! Alfresco provides three primary APIs
– Repository Foundation Services
~ Local Java interfaces covering all capabilities
~ Ideal for embedding the repository
– JCR
~ Standard Java API (JSR-170)
– Web Services
~ Remote access and binding to any client environment (Java,
.NET, PHP, Ruby)
12March 11, 07
Repository Foundation Services [1/3]
! Repository Foundation Services
– Public interface point
– Services are Java interfaces
– Client isn't aware ofimplementation
– Services registry lists availableservices
! Components
– Provide implementation
– Configured using Spring~ XML Context files
~ Foundation services areconfigured and bound in“public-services-context.xml”
13March 11, 07
Repository Foundation Services [2/3]
! Repository foundation services
– Lowest level public interface
– Provide access to all repository capabilities
– Client binds to services using
~ Service registry
~ Spring dependency injection (if Spring aware)
– Client must be running within same JVM (embed
Alfresco)
– Enforce transactions and security policies
~ Declaratively specified and enforced using Spring AOP
~ Every service in Alfresco is transactional and secure
14March 11, 07
Repository Foundation Services [3/3]
! Repository foundation services (cont'd)
– All public entry points go through this layer
~ Web services
~ JCR
– Common scheme for extending the repository
~ Component configuration
~ Additional components and services
~ Externalized extensions
! Automatically plugged-in
! Core repository can be upgraded independently
15March 11, 07
Key Foundation Services [1/4]
! Repository is about storage and retrieval of
content
! In Alfresco, this is accomplished using
– Node
– Content
– Index/Search
16March 11, 07
Key Foundation Services [2/4]
! Node
– Provides meta-data
~ Name, date, author, etc.
! Not the same as meta-data supplied via WCM’s web-forms
– Provides structure
~ Relationship to other nodes (file/folder model)
! Content
– Actual stored information
~ Word document, JPG image, etc.
! Index/Search
– Indexing information allows retrieval of meta-data
and content
17March 11, 07
Key Foundation Services [3/4]
! Repository storage and retrieval is provided by
– Node Service
– Content Service
– Search Service
! These three services form the core
– Nearly all foundation services and clients go through
these
18March 11, 07
Key Foundation Services [4/4]
! Meta-data is stored in thedatabase
– Transaction support
– Scalability
– Administration capabilities
! Content is stored in the filesystem
– Allows for very large content
– Random access
– Streaming
– Options for different storagedevices
! Built upon strong OSS projects– Hibernate
– Lucene
19March 11, 07
Content Domain Foundation Services
! All services are implemented using the same
component architecture
– Transactional
– Secure
– Configured using Spring
! Services include
– WCM’s AVM services, Meta-data extraction, Content
Transformation, Templating, Classification,
Versioning, Locking, Content Modeling, Image
Manipulation, Work-flow, Import and Export,
Permissions, …
20March 11, 07
Repository Protocols [1/2]
! Alfresco repository supports
– CIFS (Common Internet File System)
– WebDAV (Web Distributed Authoring and Versioning)
– FTP
! These protocols are exposed for content
management
– Limited to files and folders
– Described by the default content model and
derivatives
21March 11, 07
Repository Protocols [2/2]
! Protocol components are Spring configured
! Protocol components are built on top of the repository
foundation services
22March 11, 07
Triggers and Stored Procedures
! Rules
– Get initiated based on a trigger, and conditions
~ Trigger examples: Inbound, outbound
~ Condition examples: Item matches a MIME type
! Actions
– Examples: Move, copy, apply aspect
– Compound actions are a series of actions wrapped
together into one action
! Policies
– Are similar to events
– Allow model specific behavior to be injected
23March 11, 07
Content Rich Application Considerations [1/2]
! Content Model
– Custom meta-data
~ Properties, indexing, multi-valued
~ Compound documents
– Associations and structure
– Meta-data constraints
– Model specific automatic behaviors
– Custom meta-data extractors, content transformers,
actions, and conditions
24March 11, 07
Content Rich Application Considerations [2/2]
! Repository Structure
– Space (folder) hierarchy
~ Spaces as content packages
– Space rules to automate:
~ Meta-data extraction
~ Content arrangement
~ Naming-convention enforcement
~ Content type specialization
~ Content MIME-type transformation
~ Etc.
25March 11, 07
Real-World Examples
! Content Model– Custom spaces with meta-data as content packages
– Custom content items with multi-valued content property
~ Multi-page scanned document
– Associations between documents and various renditions ofthose documents (e.g. XML <-> PDF)
! Repository Structure– Space (folder) hierarchy
~ …/YYYY/MM/DD/Package/…
! Custom meta-data for a package includes a Package Id derived fromcontent
! Facilitates rapid package search and retrieval
~ …/Package/Sub-Package/item
! Naming convention enforced for certain types/spaces
~ …/DropZone/ (CIFS mapped)
! Automatic meta-data extraction, content type specialization, andcontent arrangement (into packages)
26March 11, 07
Questions?
! Questions?