You are on page 1of 26

Alfresco Repository Architecture Overview

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

Presentation Overview
!

Motivation

Get a high-level architectural overview of Alfrescos content repository Positioning Technology Overview Services and Components Programmatic APIs Repository Protocols Alfresco-based Content Rich Application Considerations
2

Scope

March 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

March 11, 07

The Four Big Areas of Content Management


Web Content Management Document Management

Records Management

Content Repository

Image Management

March 11, 07

Alfresco as an ECM Solution


Message System Integration Knowledge Portals
App Server Portal Server Business Process Engine

Web Services
CRM

Virtual File System

FTP

Content Repository

High Availability

CIFS WebDAV Hot Standby

Full-text Indexes & Categories

Storage

Metadata DBMS

March 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 Database File system No client installation costs

Persistent back-end
! !

Any number of web browsers


!

March 11, 07

Out of the Box Installation


!

App server houses


Alfresco application Alfresco repository Reusable, cross-cutting, content management services


~ ~ ~ ~

Alfresco repository

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 versioning support for sophisticated web production

March 11, 07

Services and Components


!

Alfresco Repository is composed of


Services
~

Interface entry point for a client to bind to and use Implementation black box Provides specific capabilities

Components
~ ~

March 11, 07

Architecture Advantages
!

Existing components can be replaced


Better implementation Better integration with existing environment No impact to clients Lighter, possibly faster Alfresco

Remove unnecessary features

March 11, 07

Spring Framework
! ! !

Simplifies architecture implementation Core foundation of Alfresco architecture Components are

Declaratively configured and bound together Adding transactions and security to components declaratively No implementation pollution

Spring AOP allows for


Resources are abstracted (e.g. Database)


March 11, 07 10

Programmatic APIs
!

Alfresco provides three primary APIs

Repository Foundation Services


~ ~

Local Java interfaces covering all capabilities Ideal for embedding the repository Standard Java API (JSR-170) Remote access and binding to any client environment (Java, .NET, PHP, Ruby)

JCR
~

Web Services
~

March 11, 07

11

Repository Foundation Services [1/3]


!

Repository Foundation Services


Public interface point Services are Java interfaces Client isn't aware of implementation Services registry lists available services Provide implementation Configured using Spring
~ ~

Components

XML Context files Foundation services are configured and bound in public-services-context.xml

March 11, 07

12

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

March 11, 07

13

Repository Foundation Services [3/3]


!

Repository foundation services (cont'd)

All public entry points go through this layer


~ ~

Web services JCR Component configuration Additional components and services Externalized extensions
! !

Common scheme for extending the repository


~ ~ ~

Automatically plugged-in Core repository can be upgraded independently

March 11, 07

14

Key Foundation Services [1/4]


!

Repository is about storage and retrieval of content In Alfresco, this is accomplished using

Node Content Index/Search

March 11, 07

15

Key Foundation Services [2/4]


!

Node

Provides meta-data
~

Name, date, author, etc.


!

Not the same as meta-data supplied via WCMs 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


16

March 11, 07

Key Foundation Services [3/4]


!

Repository storage and retrieval is provided by


Node Service Content Service Search Service Nearly all foundation services and clients go through these

These three services form the core

March 11, 07

17

Key Foundation Services [4/4]


!

Meta-data is stored in the database


Transaction support Scalability Administration capabilities

Content is stored in the file system


Allows for very large content Random access Streaming Options for different storage devices Hibernate Lucene

Built upon strong OSS projects


March 11, 07

18

Content Domain Foundation Services


!

All services are implemented using the same component architecture


Transactional Secure Configured using Spring WCMs AVM services, Meta-data extraction, Content Transformation, Templating, Classification, Versioning, Locking, Content Modeling, Image Manipulation, Work-flow, Import and Export, Permissions,

Services include

March 11, 07

19

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

March 11, 07

20

Repository Protocols [2/2]

! !

Protocol components are Spring configured Protocol components are built on top of the repository foundation services

March 11, 07

21

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 Are similar to events Allow model specific behavior to be injected
22

Policies

March 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

March 11, 07

23

Content Rich Application Considerations [2/2]


!

Repository Structure

Space (folder) hierarchy


~

Spaces as content packages Meta-data extraction Content arrangement Naming-convention enforcement Content type specialization Content MIME-type transformation Etc.

Space rules to automate:


~ ~ ~ ~ ~ ~

March 11, 07

24

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 of those documents (e.g. XML <-> PDF) Space (folder) hierarchy
~

Repository Structure

/YYYY/MM/DD/Package/
!

Custom meta-data for a package includes a Package Id derived from content ! Facilitates rapid package search and retrieval Naming convention enforced for certain types/spaces Automatic meta-data extraction, content type specialization, and content arrangement (into packages)
25

~ ~

/Package/Sub-Package/item
!

/DropZone/ (CIFS mapped)


!

March 11, 07

Questions?

Questions?

March 11, 07

26

You might also like