alfresco overview edm
TRANSCRIPT
NGUYỄN VĂN SANGSKYPE SANG89VH
MAIL [email protected]
FACEBOOK https://www.facebook.com/sang.nguyen.792197
ĐT 01656054323
WEB 123HOIDAP.VN
Hà Nội, 20/01/2015
Alfresco Overview
INTRODUCTION ARCHITECTURAL OVERVIEW THE ALFRESCO CONTENT APPLICATION SERVER THE CONTENT REPOSITORY MODULARITY THROUGH A SPRING FRAMEWORK CONTENT SERVICES APIS EXTENDING ALFRESCO CONTENT MODELING WEB APPLICATION FRAMEWORK
Introduction
• Alfresco is ECM (Enterprise content management)
• Alfresco built a different kind of system using open source development and incorporating open source components, such as Spring, Lucene, Hibernate,jBPM, FreeMarker, and POI.
Introduction
Introduction
• Alfresco Applications two main applications are Alfresco Share and Alfresco Explorer.
– The Alfresco Web Tier and Surf
– Alfresco Programming Models
Introduction
• CONTENT APPLICATIONS
These applications are content-rich and their business processes tend to focus on the creation, management, delivery, access, and use of content. Aside from the major applications of document, image, records, digital asset, and Web content management, there are a number of specific applications and use cases that add value to the enterprise and reduce both cost and waste
Introduction
• Knowledge Management
Web content management is about managing Web sites, managing the content that goes into Web sites (such as HTML and images), and managing the processes of building, testing, and deploying Web sites and content.
Introduction
• Information Publishing
Information publishing is a specialized form of Web content management.
Introduction
• Records Management
Records management is used to control important information that needs to be retained for extended periods of time.
Introduction
• Collaborative Content Development
Many knowledge-oriented business processes rely on content as the container of information captured
and developed as part of the creative process.
Introduction
• Case Management
Case Management is the handling of information related to a case, such as an insurance claim, an investigation, or personnel processing.
Introduction
Architectural Overview
Architectural Overview
• The Alfresco Content Application Server provides the following categories of services
• built upon the content repository:
• ➤ Content services (for example, transformation, tagging, metadata extraction)
• ➤ Control services (for example, workflow, records management, change sets)
• ➤ Collaboration services (for example, social graph, activities, wiki)
THE ALFRESCO CONTENT APPLICATION SERVER
The Content Repository
• ➤ Definition of content structure (modeling)• ➤ Creation, modification, and deletion of content, associated
metadata, and relationships• ➤ Query of content• ➤ Access control on content (permissions)• ➤ Versioning of content• ➤ Content renditions• ➤ Locking• ➤ Events• ➤ Audits• ➤ Import/Export• ➤ Multilingual• ➤ Rules/Actions
The Content Repository
The Content Repository
• The storage engine also exposes query capabilities provided by a custom query engine built on Apache Lucene that supports the following search constructs:
• ➤ Metadata filtering
• ➤ Path matching
• ➤ Full text search
• ➤ Any combination of the above
The Content Repository
Query EngineThe query engine and storage engines are hooked into the transaction and permission support of the infrastructure, thus offering consistent views and permission access. Several query languages are exposed , including native Lucene, XPath, Alfresco FTS (Full Text Search), and CMIS Query Language (with embedded Alfresco FTS).
Modularity through a Spring Framework
• Alfresco employed the Spring framework for its factory, Dependency Injection, and Aspect-Oriented Programming capabilities.
Content Services
• ➤ Content— Advanced content management capabilities
• ➤ Control— Encapsulation of processes
• ➤ Collaboration— Integration of content into social networks
Content Services
• Lifecycle— Management of content state over time• ➤ Transformation— Conversion of content from one type to
another• ➤ Metadata Extraction— Synchronization of document metadata
with node metadata• ➤ Tagging— Arbitrary user-generated tags versus formally defined
classifications• Control services encapsulate processes through which content
flows and comprise the following:• ➤ Workflow— Structured process that include a sequence of
connected steps, often involving human interactions through allocation of tasks
• ➤ Records— File plans, record types, retention and archival policies, disposition, and reporting, all certified to the DOD 5015.2 standard
Content Services
• ➤ Change Set— Working area for making safe content modifications• ➤ Preview— Viewing of content as it should be before publishing• ➤ Deployment: Publishing of content from one environment to another• Collaboration services integrate the production and publishing of content
into social networks:• ➤ Social Graph— Represents people and their relationship to each other,
either directly or indirectly through groups or teams• ➤ Activities— Continuous personalized feed of activities performed by
others in the social graph or by Alfresco• ➤ Wiki— Easy creation and editing of interlinked Web pages• ➤ Blog— Log of regularly maintained entries of commentary, events, and
other material, such as documents and videos• ➤ Discussions— Threaded conversations
APIs
The Alfresco Content Application Server exposes two flavors of API, each of which has been designedfor a specific type of client:➤ Remote API— Used by clients to remotely communicate with the Alfresco Content Application Server — specifically, to treat it as a black box➤ Embedded API— Used by extensions that are registered and executed within the AlfrescoContent Application Server
The Remote API
• The Remote API is the API primarily used when building ECM solutions against the Alfresco Content Application Server. Actually, two styles of Remote API are exposed :
• ➤ Web services— SOAP-based service-oriented interfaces
• ➤ RESTful— HTTP-based resource-oriented interfaces
The Embedded API
• The Embedded API is the API used when developing extensions to the Alfresco Content Application Server. Extensions, which are deployed into the server, are often dependent on existing services provided by the server. Therefore, developers of extensions use the Embedded API to gain access to those services.
The Embedded API
• The Embedded API comes in several forms, where each form is structured for a particular need or kind of extension
• Alfresco Java Foundation API— The set of public Java interfaces exposed by services built into the Alfresco Content Application Server
• ➤ JCR— Standard (JSR-170) set of Java interfaces for interacting with the content repository
• ➤ JavaScript API— An object-oriented view of the Java Foundation API specifically tailored for use in JavaScript
• ➤ FreeMarker API— An object-oriented view of the Java Foundation API specifically tailored for use in FreeMarker templates
• ➤ Content Definition— An API for creating and editing content models
• ➤ Workflow Definition— An API for defining business processes
The Embedded API
The Embedded API
• ➤Alfresco Java Foundation API—The set of public Java interfaces exposed by services built into the Alfresco Content Application Server
• ➤ JCR— Standard (JSR-170) set of Java interfaces for interacting with the content repository
• ➤ JavaScript API— An object-oriented view of the Java Foundation API specifically tailored for use in JavaScript
• ➤ FreeMarker API— An object-oriented view of the Java Foundation API specifically tailored for use in FreeMarker templates
• ➤ Content Definition—An API for creating and editing content models
• ➤ Workflow Definition—An API for defining business processes
• ➤ Web Script— Definition and implementation of a RESTful API
• ➤Action— Encapsulates a process primarily used with rules
• ➤ Transformer— Converts content from one format to another
• ➤ Policy— Event handler registered against an event
• ➤ Service— Encapsulates a set of related features
• ➤ Content Model— Definition of types, aspects, and their relationships
• ➤ Workflow— A business process
CONTENT MODELING
DEPLOYING A CONTENT MODEL
• A content model is defined in its entirety as a single XML document, which must comply with the content metamodel XSD schema provided by the Alfresco content repository. Each model contains a set of related and coherent definitions, and is deployed as a unit.
• Two approaches to deploying a content model into the content repository:Bootstrap and dynamic.
Bootstrap
• A Dictionary Bootstrap component is defined using the following snippet of Spring framework XML
Metamodel XML Schema
WEB APPLICATION FRAMEWORK
• Alfresco are built on Spring Surf
WEB APPLICATION FRAMEWORK
• ➤ Site Dispatcher— Allows you to easily create pages and link them to the overall navigation of the Web site. It also allows you to build pages in a way that promotes reusability so that components do not need to be built more than once.
• ➤ Templates— Allows you to define a page layout once and then reuse it across a large set of pages. You can develop pages using FreeMarker, JSP, HTML, or Java.
• ➤ UI Library— Reusable UI components that can be bound into regions (or slots) within your
• page or template. They consist of back-end application logic and front-end presentation code.
• ➤ Pages— Allows for pages to be rendered in multiple formats, such as print format, PDF, or mobile device.
• ➤ AJAX support— Integration with YUI Library.• ➤ Forms— Rich Forms engine for rendering and collecting data.
WEB APPLICATION FRAMEWORK
Extending Alfresco
• Extending Alfresco with RESTful Services
• Extending Share
Extending Alfresco with RESTful Services
THE WEB SCRIPT FRAMEWORK
THE WEB SCRIPT FRAMEWORK
• ➤ A description document— This describes the URI and HTTP method that will initiate the
Web script. For example, the Web script is given a short name and description, along with
authentication and transactional needs. URI bindings are described as URI templates.
• ➤ An optional controller script— Written in JavaScript, this will do the actual work. For
example, the script may query the Alfresco content repository to build a set of data items,
known as amodel, to render in the response; or for URIs that intend to modify the repository
(hopefully, PUT, POST, and DELETE method bindings), the script may update the Alfresco
repository. The JavaScript has access to the URI query string, Alfresco Content Application
Services, and content repository data entry points.
• ➤ One or more FreeMarker response templates— Known asviews, these will render output in the correct format for your specific needs (for example, HTML, Atom, XML, RSS, JSON,
CSV, or any combination of these). The HTTP response is rendered via one of the supplied
emplates, where the chosen template is based on the required response content type or status
outcome. The template has access to the URI query string, common repository data entry
points, and any data items built by the optional controller script
Extending Share
Extending Share
Extending Alfresco Content Model
• Configure a custom content model• Define and add custom aspect (set of properties)• Define and use your custom content models• Define associated documents for your custom content types• Define constraints for your custom properties• Preview content using custom presentation templates• Enable dynamic customization of models without requiring a restart of the Alfresco server
Extending Alfresco Content Model
Extending Alfresco Content Model
• https://wiki.alfresco.com/wiki/Data_Dictionary_Guide
Implementing Workflow
• Enable simple workflow on documents• Create e-mail templates and set e-mail notifications• Extend workflow with multiple approval steps• Implement advanced workflow using Activiti• Create custom Activiti workflows• Dynamically deploy workflow via the Activiti Console• Create and deploy the workflow task dialog.• Create and deploy the workflow resource bundle• Start Advance Workflow• Assign documents and properties to the workflow• Assign workflow task to the users
Integrating External Applications with Alfresco
• Alfresco Integration Protocols
• Alfresco Web Script framework which provides RESTful web services for integration
• Various application integration examples including Liferay Portal, Drupal CMS, iPhone, and Facebook
• Alfresco Support for CMIS (Content Management Interoperability Service)
Integrating External Applications with Alfresco
Customizing the User Interface
• Configure space portal views• Add custom icons to spaces• Extend the action menu items• Write custom dashlets• Use webscript as dashlets• Write custom templates to preview content• Write custom templates• Write custom JSPs• Integration with external system
Business Process Management
➤ Introducing workflow in Alfresco
➤ Defining a workflow
➤ Creating a process definition
➤ Creating tasks based on the task model
➤ Customizing the workflow behavior
➤ Configuring the Explorer user interface
WORKFLOW IN ALFRESCO
DEFINING A WORKFLOW IN ALFRESCO
A workflow definition comprises aprocess definition,ataskmodel,andsomeuser interface configuration. All three of these components are necessary to build a workflow.➤ Process definition:Specifies the workflow process, defining what human tasks and automated processes to execute, and flow control.➤ Task model:Provides a description of each task in a workflow by defining the various attributes associated with that task. ➤ UI configuration: Allows for customization of the UI component that is used for presenting workflow-related information to the userand taking inputs from the user.
DEFINING A WORKFLOW IN ALFRESCO
DEFINING A WORKFLOW IN ALFRESCO
• A Section is best thought of as a folder with additional metadata and behaviour. Each section is uniquely named within its parent section. Each website has one root section which is the only section whose parent is not another section
• An asset is any piece of content that is placed in a section. An asset doesn't have very much "special" metadata, but does contain summary information about visitor feedback that has been received for that asset such as the number of comments received and the average rating.
DEFINING A WORKFLOW IN ALFRESCO
• Asset Collection: As the name suggests, an asset collection groups together a number of assets. Each asset collection is associated with a particular section and is uniquely named within that section. There are two general types of asset collection: "dynamic" and "static". A dynamic asset collection is configured with a search query that is run periodically. The assets found by the query are placed in the collection. A static asset collection has no search query defined, and contains assets that are placed in it either manually or through some other automated mechanism.
DEFINING A WORKFLOW IN ALFRESCO
• Visitor Feedback is information that has been passed back through a rendered website into the repository. It may be used for numerous purposes, but in the Quick Start example it is used to record comments about an asset and requests from the "Contact us" page. A piece of visitor feedback has a number of generally useful properties such as the name and email address of the person who submitted it, a text property for the message or comment, and an integer property that can be used for ratings. It is also possible to have different categories of visitor feedback.