alfresco architecture

25
By : Noushad K [email protected]

Upload: noushad-kabeer

Post on 07-Nov-2014

6.789 views

Category:

Technology


13 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Alfresco Architecture

By : Noushad [email protected]

Page 2: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco Architecture Eclipse & Plug-in Development

• 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 Eclipse?• Plug-in Development in Eclipse

– a practical hand

Page 3: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

What is Content Management System (CMS)?

A A Content Management SystemContent Management System ( (CMSCMS) is a computer application used to ) is a computer application used to create, edit, manage, search and publish various kinds of digital media and create, edit, manage, search and publish various kinds of digital media and electronic text.electronic text.

CMSsCMSs are frequently used for are frequently used for storingstoring, , controllingcontrolling, , versioningversioning, and , and publishingpublishing industry-specific documentation such as news articles, operators' manuals, industry-specific documentation such as news articles, operators' manuals, technical manuals, sales guides, and marketing brochures. technical manuals, sales guides, and marketing brochures.

TheThe CMS CMS may include following contents to be may include following contents to be managedmanaged : : Computer filesComputer files ImagesImages Audio/Video filesAudio/Video files Electronic DocumentsElectronic Documents Web ContentsWeb Contents

Page 4: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco

What is Alfresco?What is Alfresco?

Alfresco is an Alfresco is an open sourceopen source Enterprise Content Management system. Enterprise Content Management system.

It's primarily It's primarily implemented in Javaimplemented in Java, suited to a number of environments , suited to a number of environments including J2EE and brings together the best of other open source projects including J2EE and brings together the best of other open source projects in order to provide a complete set of Content Management solutions.in order to provide a complete set of Content Management solutions.

It is It is not tied to not tied to any particular web browser, operating system, application any particular web browser, operating system, application server or database.server or database.

Page 5: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco

Alfresco concentrates on content management in areas likeAlfresco concentrates on content management in areas like

Document ManagementDocument Management Records ManagementRecords Management Image Management Image Management Web Content ManagementWeb Content Management

Page 6: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco

Ease on Alfresco useEase 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

Page 7: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco Alfresco architecture :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

Page 8: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco

Alfresco Architecture :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.

Page 9: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco Alfresco Web Architecture.Alfresco Web Architecture.

Application serverApplication server houses both the Alfresco Application & Alfresco houses both the Alfresco Application & Alfresco Repository.Repository.

Storage of data and content is provided by Storage of data and content is provided by persistent back-endspersistent back-ends such as a such as a databasedatabase or or file systemfile system

Page 10: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco – Web Architecture

The The Alfresco RepositoryAlfresco Repository provides a set of provides a set of reusable reusable cross-cutting Content cross-cutting Content Management services such as content storage, query, versioning and Management services such as content storage, query, versioning and content transformation. content transformation.

These services may be utilized by multiple applicationsThese services may be utilized by multiple applications

Support forSupport for DM - Document ManagementDM - Document Management RM - Records ManagementRM - Records Management WCM - Web Content ManagementWCM - Web Content Management ~ Currently only uses subset of repository services~ Currently only uses subset of repository services

~ Adds complex layering and versioning support for ~ Adds complex layering and versioning support for sophisticated web production sophisticated web production

Alfresco Web ArchitectureAlfresco Web Architecture

Page 11: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco

Alfresco ComponentsAlfresco Components - Spring Framework

Page 12: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco – Web Architecture

The public interface point is the Alfresco Repository Foundation Services. The public interface point is the Alfresco Repository Foundation Services. Each service is exposed as a Java Interface to which a Repository client Each service is exposed as a Java Interface to which a Repository client can bind and invoke without knowledge of its underlying implementationcan bind and invoke without knowledge of its underlying implementation.

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

These services may be utilized by multiple applicationsThese services may be utilized by multiple applications

o The configuration and binding of the Alfresco Repository The configuration and binding of the Alfresco Repository Foundation Services are defined in the Spring file 'public-services-Foundation Services are defined in the Spring file 'public-services-context.xml'context.xml'

Spring FrameworkSpring Framework

Page 13: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco – Web Architecture

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

<bean id="ServiceRegistry" <bean id="ServiceRegistry" class="org.alfresco.repo.service.ServiceDescriptorRegistry" />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>….

'public-services-context.xml''public-services-context.xml'

Page 14: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco – Web Architecture

! 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)

Spring FrameworkSpring Framework

Page 15: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco – Repository Foundation ServicesAlfresco Repository is responsible for the storage and retrieval of content

The following 3 services makes the base: Node Service Content Service Search Service

Key Foundation ServicesKey Foundation Services

Page 16: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco – Protocol stack

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

Key Protocols – roles.Key Protocols – roles.

Page 17: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Alfresco – Embedded API’s

Alfresco Repository provides the following APIs. Java Content Repository (JCR) API Web Services

Key API.Key API.

Page 18: Alfresco Architecture

© BPA Technologies Inc

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

bpatech.com | [email protected] | 510-713-1018

Page 19: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Eclipse

Eclipse is an open platform Designed to be easily and infinitely extensible by third parties Eclipse is written in the Java™ programming language…

JFace - a UI toolkit that provides helper classes for developing UI features

SWT - is an open source widget toolkit for Java designed to provide efficient, portable access to the user-interface facilities of the operating systems

What is Eclipse? – An IntroductionWhat is Eclipse? – An Introduction

Page 20: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

EclipseA typical Eclipse screen.A typical Eclipse screen.

Page 21: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Eclipse

The Eclipse platform is structured around the concept of plug-ins. Plug-ins are structured bundles of code and/or data that contribute

function to the system

The Java development tools (JDT)- implement a full featured Java development environment

The Plug-in Developer Environment (PDE)- adds specialized tools that streamline the development of plug-ins and extensions

Eclipse and Plug-insEclipse and Plug-ins

Page 22: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Eclipse

Problem : Lets think we have a plain Java code to say a greeting

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); }}

Lets delve into plug-insLets delve into plug-ins

Solution Tip : Since we want to say hello to the world, we need to figure out how to extend the workbench to include our greeting.

Page 23: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Eclipse

Think of the workbench window as a frame that presents various visual parts

These parts fall into two major categories: views and editors

Views provide information about some object that the user is working with in the workbench. Views often change their content as the user selects different objects in the workbench

The plug-in org.eclipse.ui.workbench defines most of the public interfaces that make up the workbench API

HelloWorld Plug-inHelloWorld Plug-in

Page 24: Alfresco Architecture

© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018

Eclipse

Problem : Lets think we have a plain Java code to say a greeting

i. Open the New Project... wizard (File > New > Project...) and choose Plug-in Project from the Plug-in Development category and click Next.

ii. Enter Plug-in details such as Name, Source folder, Plug-in Properties.

Creating the plug-in projectCreating the plug-in project

Page 25: Alfresco Architecture

© BPA Technologies IncBpatech.com | [email protected] | 510-713-1018

Thank You