SlideShare a Scribd company logo
By : Noushad K [email_address]
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  bpatech.com |  [email_address]  | 510-713-1018  What is Eclipse? Plug-in Development in Eclipse – a  practical hand
What is Content Management System (CMS)? bpatech.com |  [email_address]  | 510-713-1018  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 bpatech.com |  [email_address]  | 510-713-1018  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 bpatech.com |  [email_address]  | 510-713-1018  Alfresco concentrates on content management in areas like Document Management Records Management Image Management  Web Content Management
Alfresco bpatech.com |  [email_address]  | 510-713-1018  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 bpatech.com |  [email_address]  | 510-713-1018  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 bpatech.com |  [email_address]  | 510-713-1018  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 bpatech.com |  [email_address]  | 510-713-1018  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 bpatech.com |  [email_address]  | 510-713-1018  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 Web Architecture
Alfresco bpatech.com |  [email_address]  | 510-713-1018  Alfresco Components  - Spring Framework
Alfresco – Web Architecture bpatech.com |  [email_address]  | 510-713-1018  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 . 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 The configuration and binding of the Alfresco Repository Foundation Services are defined in the Spring file 'public-services-context.xml'   Spring Framework
Alfresco – Web Architecture bpatech.com |  [email_address]  | 510-713-1018  <beans> <!-- Service Registry --> <bean id=&quot;ServiceRegistry&quot;  class=&quot;org.alfresco.repo.service.ServiceDescriptorRegistry&quot; /> . <!-- Descriptor Service --> <bean id=&quot;DescriptorService&quot; class=&quot;org.springframework.aop.framework.ProxyFactoryBean&quot;> <property name=&quot;proxyInterfaces&quot;> <value>org.alfresco.service.descriptor.DescriptorService</value> </property>…. 'public-services-context.xml'
Alfresco – Web Architecture bpatech.com |  [email_address]  | 510-713-1018  ! 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 Framework
Alfresco – Repository Foundation Services bpatech.com |  [email_address]  | 510-713-1018  Alfresco 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 Services
Alfresco – Protocol stack bpatech.com |  [email_address]  | 510-713-1018  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.
Alfresco – Embedded API’s bpatech.com |  [email_address]  | 510-713-1018  Alfresco Repository provides the following APIs. Java Content Repository (JCR) API  Web Services  Key API.
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_address]  | 510-713-1018
Eclipse bpatech.com |  [email_address]  | 510-713-1018  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 Introduction
Eclipse bpatech.com |  [email_address]  | 510-713-1018  A typical Eclipse screen.
Eclipse bpatech.com |  [email_address]  | 510-713-1018  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-ins
Eclipse bpatech.com |  [email_address]  | 510-713-1018  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 World&quot;);  } }  Lets 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.
Eclipse bpatech.com |  [email_address]  | 510-713-1018  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-in
Eclipse bpatech.com |  [email_address]  | 510-713-1018  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.  Creating the plug-in project
Thank You Bpatech.com |  [email_address]  | 510-713-1018

More Related Content

ODP
Introduction au Cloud computing
PDF
Présentation des services AWS
PDF
Aws Elastic Block Storage
PDF
Cisco sddc solution 소개
PPTX
[総まとめ] 量子コンピュータに関する課題研究.pptx
PDF
Trend micro deep security
PPTX
vmware_cloud_foundation_on_vxrail_technical_customer_presentation.pptx
PDF
Sécurité des réseaux
Introduction au Cloud computing
Présentation des services AWS
Aws Elastic Block Storage
Cisco sddc solution 소개
[総まとめ] 量子コンピュータに関する課題研究.pptx
Trend micro deep security
vmware_cloud_foundation_on_vxrail_technical_customer_presentation.pptx
Sécurité des réseaux

Similar to Alfresco Architecture (20)

PPTX
Alfresco overview EDM
PDF
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
PPTX
Intro to Alfresco for Developers
PDF
Spring In Alfresco Ecm
PDF
BP-5 Application Lifecycle Management
PDF
Developer’s intro to the alfresco platform
PPTX
Building Content-Rich Java Apps in the Cloud with the Alfresco API
PPTX
Relational Won't Cut It: Architecting Content Centric Apps
PPT
Intro To Alfresco Part 1
PDF
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
PDF
Springinalfrescoecm 090629053231-phpapp02
PDF
2140 api developer-student-guide
PPT
Empowering Next Generation Media
PPT
2 Magma Introduction
PPT
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
PPT
Alfresco As SharePoint Alternative - Architecture Overview
PPTX
Standard Application Lifecycle Management as Community (and Enterprise) ecosy...
PPT
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]
PDF
The ECM world from the point of view of Alfresco - Linux Day 2013 - Rome
PPT
2009-04-21 - Alfresco and Maven NXP case study
Alfresco overview EDM
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Intro to Alfresco for Developers
Spring In Alfresco Ecm
BP-5 Application Lifecycle Management
Developer’s intro to the alfresco platform
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Relational Won't Cut It: Architecting Content Centric Apps
Intro To Alfresco Part 1
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
Springinalfrescoecm 090629053231-phpapp02
2140 api developer-student-guide
Empowering Next Generation Media
2 Magma Introduction
Alfresco In An Hour - Document Management, Web Content Management, and Collab...
Alfresco As SharePoint Alternative - Architecture Overview
Standard Application Lifecycle Management as Community (and Enterprise) ecosy...
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]
The ECM world from the point of view of Alfresco - Linux Day 2013 - Rome
2009-04-21 - Alfresco and Maven NXP case study
Ad

Recently uploaded (20)

PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
MYSQL Presentation for SQL database connectivity
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Cloud computing and distributed systems.
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Modernizing your data center with Dell and AMD
PPT
Teaching material agriculture food technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Encapsulation theory and applications.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
NewMind AI Monthly Chronicles - July 2025
MYSQL Presentation for SQL database connectivity
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Cloud computing and distributed systems.
The AUB Centre for AI in Media Proposal.docx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Modernizing your data center with Dell and AMD
Teaching material agriculture food technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Chapter 3 Spatial Domain Image Processing.pdf
Understanding_Digital_Forensics_Presentation.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Encapsulation theory and applications.pdf
cuic standard and advanced reporting.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Ad

Alfresco Architecture

  • 1. By : Noushad K [email_address]
  • 2. 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 bpatech.com | [email_address] | 510-713-1018 What is Eclipse? Plug-in Development in Eclipse – a practical hand
  • 3. What is Content Management System (CMS)? bpatech.com | [email_address] | 510-713-1018 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
  • 4. Alfresco bpatech.com | [email_address] | 510-713-1018 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.
  • 5. Alfresco bpatech.com | [email_address] | 510-713-1018 Alfresco concentrates on content management in areas like Document Management Records Management Image Management Web Content Management
  • 6. Alfresco bpatech.com | [email_address] | 510-713-1018 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
  • 7. Alfresco bpatech.com | [email_address] | 510-713-1018 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
  • 8. Alfresco bpatech.com | [email_address] | 510-713-1018 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.
  • 9. Alfresco bpatech.com | [email_address] | 510-713-1018 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
  • 10. Alfresco – Web Architecture bpatech.com | [email_address] | 510-713-1018 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 Web Architecture
  • 11. Alfresco bpatech.com | [email_address] | 510-713-1018 Alfresco Components - Spring Framework
  • 12. Alfresco – Web Architecture bpatech.com | [email_address] | 510-713-1018 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 . 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 The configuration and binding of the Alfresco Repository Foundation Services are defined in the Spring file 'public-services-context.xml' Spring Framework
  • 13. Alfresco – Web Architecture bpatech.com | [email_address] | 510-713-1018 <beans> <!-- Service Registry --> <bean id=&quot;ServiceRegistry&quot; class=&quot;org.alfresco.repo.service.ServiceDescriptorRegistry&quot; /> . <!-- Descriptor Service --> <bean id=&quot;DescriptorService&quot; class=&quot;org.springframework.aop.framework.ProxyFactoryBean&quot;> <property name=&quot;proxyInterfaces&quot;> <value>org.alfresco.service.descriptor.DescriptorService</value> </property>…. 'public-services-context.xml'
  • 14. Alfresco – Web Architecture bpatech.com | [email_address] | 510-713-1018 ! 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 Framework
  • 15. Alfresco – Repository Foundation Services bpatech.com | [email_address] | 510-713-1018 Alfresco 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 Services
  • 16. Alfresco – Protocol stack bpatech.com | [email_address] | 510-713-1018 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.
  • 17. Alfresco – Embedded API’s bpatech.com | [email_address] | 510-713-1018 Alfresco Repository provides the following APIs. Java Content Repository (JCR) API Web Services Key API.
  • 18. 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_address] | 510-713-1018
  • 19. Eclipse bpatech.com | [email_address] | 510-713-1018 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 Introduction
  • 20. Eclipse bpatech.com | [email_address] | 510-713-1018 A typical Eclipse screen.
  • 21. Eclipse bpatech.com | [email_address] | 510-713-1018 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-ins
  • 22. Eclipse bpatech.com | [email_address] | 510-713-1018 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 World&quot;); } } Lets 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.
  • 23. Eclipse bpatech.com | [email_address] | 510-713-1018 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-in
  • 24. Eclipse bpatech.com | [email_address] | 510-713-1018 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. Creating the plug-in project
  • 25. Thank You Bpatech.com | [email_address] | 510-713-1018

Editor's Notes