Alfresco Architecture

7,228 views

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,228
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
382
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide
  • <number><number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • <number>
  • Alfresco Architecture

    1. 1. By : Noushad K noushad@bpatech.com
    2. 2. A lf r e s c o A r c h it e c t u r e E c lip s e & P lu g - in D e v e lo p m e n t • What is Content • What is Eclipse? Management System? • Plug-in Development in Eclipse – a • Different types of CMS practical hand • Features of CMS • Alfresco • Alfresco Architecture • Alfresco Web Architecture • Components • Alfresco Repository Foundation Services • API Support bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    3. 3. W h a t is C o n t e n t Ma n a g e m e n t S ys te m ( C M S )?  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 bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    4. 4. A lf r e s c o  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. bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    5. 5. A lf r e s c o  Alfresco concentrates on content management in areas like  Document Management  Records Management  Image Management  Web Content Management bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    6. 6. A lf r e s c o  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 bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    7. 7. A lf r e s c o  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 bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    8. 8. A lf r e s c o  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. bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    9. 9. A lf r e s c o  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 bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    10. 10. A lf r e s c o – W e b A r c h it e c t u r e  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 bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    11. 11. A lf r e s c o  Alfresco Components - Spring Framework bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    12. 12. A lf r e s c o – W e b A r c h it e c t u r e  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 © BPA Technologies Inc
    13. 13. A lf r e s c o – W e b A r c h it e c t u r e  'public-services-context.xml' <beans> <!-- Service Registry --> <bean id=quot;ServiceRegistryquot; class=quot;org.alfresco.repo.service.ServiceDescriptorRegistryquot; />. /> <!-- Descriptor Service --> <bean id=quot;DescriptorServicequot; class=quot;org.springframework.aop.framework.ProxyFactoryBeanquot;> <property name=quot;proxyInterfacesquot;> <value>org.alfresco.service.descriptor.DescriptorService</value> </property>…. bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    14. 14. A lf r e s c o – W e b A r c h it e c t u r e  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) bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    15. 15. A lf r e s c o – R e p o s it o r y F o u n d a t io n S e r v ic e s Key Foundation 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 bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    16. 16. A lf r e s c o – P r o t o c o l s ta c k 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 bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    17. 17. A lf r e s c o – E m b e d d e d A P I’ s Key API. Alfresco Repository provides the following APIs.  Java Content Repository (JCR) API  Web Services bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    18. 18. A p p lic a t io n A r c h it e c t u r e  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 | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    19. 19. E c lip s e What is Eclipse? – An Introduction  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 bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    20. 20. E c lip s e A typical Eclipse screen. bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    21. 21. E c lip s e Eclipse and Plug-ins  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 bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    22. 22. E c lip s e Lets delve into plug-ins 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(quot;Hello Worldquot;); } } 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. bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    23. 23. E c lip s e HelloWorld Plug-in 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 bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    24. 24. E c lip s e Creating the plug-in project Problem : Lets think we have a plain Java code to say a greeting • Open the New Project... wizard (File > New > Project...) and choose Plug-in Project from the Plug-in Development category and click Next. • Enter Plug-in details such as Name, Source folder, Plug-in Properties. bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc
    25. 25. Thank You Bpatech.com | info@bpatech.com | 510-713-1018 © BPA Technologies Inc

    ×