You are on page 1of 17

Alfresco Architecture

What is Content Management System?


Different types of CMS
Features of CMS
Alfresco
Alfresco Architecture
Alfresco Web Architecture
Components
Alfresco Repository Foundation Services
API Support
What is Content Management
System (CMS)?
A Content Management System (CMS) is a computer application used to
create, edit, manage, search and publish various kinds of digital media and
electronic text.

CMSs are frequently used for storing, controlling, versioning, and publishing
industry-specific documentation such as news articles, operators' manuals,
technical manuals, sales guides, and marketing brochures.

The CMS may include following contents to be managed :


Computer files
Images
Audio/Video files
Electronic Documents
Web Contents
Alfresco
What is Alfresco?

Alfresco is an open source Enterprise Content Management system.

It's primarily implemented in Java, suited to a number of environments


including J2EE and brings together the best of other open source projects
in order to provide a complete set of Content Management solutions.

It is not tied to any particular web browser, operating system, application


server or database.
Alfresco
Alfresco concentrates on content management in areas like

Document Management
Records Management
Image Management
Web Content Management
Alfresco
Ease on Alfresco use

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
Alfresco
Alfresco architecture :
Based on Java platform (Version 1.5 onwards)

Spring framework used for dependency injection & cross cutting aspects
Security enforcement
Multilingual functionalities on content and metadata.

Alfresco has used OSS components and integrated them with Spring
Full text indexing ~ Lucene
database independence/persistence layer ~ Hibernate
Web pages generation and navigation ~ JSF
Document transformation, Meta data extraction ~ Imagic, Openoffice
Templating ~ FreeMarker, XSLT
Workflow ~ JBPM
Scripting ~ Rhino Server Side JavaScript, PHP integration on Server
side and client side
Alfresco

Alfresco Architecture :

Internal API structure


The API is structured around services
Service = lowest API level you should interact with Node Service,
FileFolder Service, Authentication Service.
Alfresco
Alfresco Web Architecture.
Application server houses both the Alfresco Application & Alfresco
Repository.

Storage of data and content is provided by persistent back-ends such as a


database or file system
Alfresco Web Architecture

Alfresco Web Architecture

The Alfresco Repository provides a set of reusable cross-cutting Content


Management services such as content storage, query, versioning and
content transformation.

These services may be utilized by multiple applications

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
Alfresco
Alfresco Components - Spring Framework
Alfresco Web Architecture

Spring Framework

The public interface point is the Alfresco Repository Foundation Services.


Each service is exposed as a Java Interface to which a Repository client
can bind and invoke without knowledge of its underlying implementation.
implementation

A Service Registry lists the available services. Behind services are the
implementation of components. Each service and component is configured
via the Spring framework in XML configuration or 'context' files.

These services may be utilized by multiple applications

o The configuration and binding of the Alfresco Repository Foundation


Services are defined in the Spring file 'public-services-context.xml'

bpatech.com | info@bpatech.com | 510-713-1018


Alfresco Web Architecture

'public-services-context.xml'

<beans>
<!-- Service Registry -->

<bean id="ServiceRegistry"
class="org.alfresco.repo.service.ServiceDescriptorRegistry" />.
/>

<!-- Descriptor Service -->

<bean id="DescriptorService"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">

<value>org.alfresco.service.descriptor.DescriptorService</value>
</property>.
Alfresco Web Architecture

Spring Framework

! Simplifies architecture implementation


! Core foundation of Alfresco architecture
! Components are
Declaratively configured and bound together
! Spring AOP allows for
No implementation pollution
! Resources are abstracted (e.g. Database)
Alfresco Repository
Foundation
Key Foundation Services Services
Alfresco Repository is responsible for the storage and retrieval of content

The following 3 services makes the base:


Node Service
Content Service
Search Service
Alfresco Protocol stack
Key Protocols roles.
Alfresco Repository supports a variety of communication protocols
The following 3 services makes the base:
CIFS (Common Internet File System)
WebDAV(Web based Distributed Authoring and Versioning)
FTP
Alfresco Embedded APIs
Key API.
Alfresco Repository provides the following APIs.
Java Content Repository (JCR) API
Web Services
Application Architecture

Existing components can be replaced


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

You might also like