alfresco architecture
DESCRIPTION
TRANSCRIPT
By : Noushad [email protected]
© 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
© 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
© 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.
© 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
© 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
© 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
© 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.
© 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
© 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
© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018
Alfresco
Alfresco ComponentsAlfresco Components - Spring Framework
© 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
© 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'
© 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
© 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
© 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.
© 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.
© 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
© 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
© BPA Technologies Incbpatech.com | [email protected] | 510-713-1018
EclipseA typical Eclipse screen.A typical Eclipse screen.
© 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
© 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.
© 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
© 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
© BPA Technologies IncBpatech.com | [email protected] | 510-713-1018
Thank You