-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating
Alfresco One 5.x Developer???s Guide - Second Edition
By :
Many of Alfresco's competitors (particularly in the closed-source space) have sprawling footprints composed of multiple, sometimes competing, technologies that have been acquired and integrated over time. Some have undergone massive infrastructure overhauls over the years, resulting in bizarre vestigial tails of sorts. Luckily, Alfresco doesn't suffer from these traits. On the contrary, Alfresco's architecture shows the following characteristics:
Let's look at each of these characteristics, starting with a high-level look at the Alfresco architecture.
The following diagram shows Alfresco's high-level architecture. By the time you finish this book, you'll be intimately familiar with just about every box in the diagram:

The important takeaways at this point are as follows:
The add-ons are pieces of functionality not found in the core Alfresco distribution. If you are working with the binary distribution, it means you'll have additional files to download and install on top of the base Alfresco or Share installation.
Add-ons are provided by Alfresco, third-party software vendors, and members of the Alfresco community such as partners and customers. Alfresco makes several add-on modules available such as Records Management, Google Docs, Office Services or Kofax integration. Members of the Alfresco community create and share add-on modules via the Alfresco add-Ons (https://addons.alfresco.com/), a website set up by Alfresco for that purpose. At the time of writing, this website contains 444 different add-ons compatible with Alfresco Enterprise and/or Community.
One of the reasons Alfresco has been able to create a viable offering so quickly is because it didn't start from scratch. The Alfresco engineers assembled the product from many finer-grained open source components. Why does this matter? First, instead of reinventing the wheel, they used proven components. This saved them time, but it also resulted in a more robust, more standard-based product. Second, it eases the transition for people new to the platform. If a developer already knows Spring, for example, many of the customization concepts are going to be familiar. Alfresco uses Surf, a Spring framework extension for building or extending MVC applications. And besides, as a developer, wouldn't you rather invest your time and effort in learning standard development frameworks rather than proprietary development kits?
The following table lists some of the major open source components used to build Alfresco:
|
Open source component |
Use in Alfresco |
|
Apache Solr (http://lucene.apache.org/solr/) |
Full-text and metadata search |
|
Hibernate (http://www.hibernate.org/) |
Database persistence |
|
FreeMarker (http://freemarker.org/) |
Web script framework views, custom views in the web client, web client dashlets, email templates |
|
Mozilla Rhino JavaScript Engine (http://www.mozilla.org/rhino/) |
Web script framework controllers, server-side JavaScript, actions |
|
OpenSymphony Quartz (http://www.quartz-scheduler.org/) |
Scheduling of asynchronous processes |
|
Spring ACEGI (http://projects.spring.io/spring-security/) |
Security (authorization), roles, and permissions |
|
Apache Axis (http://ws.apache.org/axis/) |
Web services |
|
LibreOffice (http://www.libreoffice.org/) |
Conversion of office documents into PDF |
|
Apache FOP (http://xmlgraphics.apache.org/fop/) |
Transformation of XSL:FO into PDF |
|
Apache POI (http://poi.apache.org/) |
Metadata extraction from Microsoft Office files |
|
Activiti (http://www.activiti.org/) |
Advanced workflow |
|
ImageMagick (http://www.imagemagick.org/) |
Image file manipulation |
|
GhostScript (http://www.ghostscript.com/) |
Image file manipulation |
Does this mean you have to be an expert in all open source components used to build Alfresco to successfully implement and customize the product? Not at all! Developers looking to contribute significant product enhancements to Alfresco or those making major, deep customizations to the product may require experience with a particular component, depending on exactly what they are trying to do. Everyone else will be able to customize and extend Alfresco using basic Java and web application development skills.
Software vendors love buzz words. As new acronyms climb the hype cycle, vendors scramble to figure out how they can at least appear to support the standard or protocol so that the prospective clients can check that box on the Request for proposal (RFP). Commercial open source vendors are still software vendors and thus are no less guilty of this practice. But because open source software is developed in the open by a community of developers, its compliance to standards tends to be more genuine. It makes more sense for an open source project to implement a standard than to go off in some new direction because it saves time. It promotes interoperability with other open source projects, and stays true to what open source is all about--freedom and choice.
Here, are the significant standards and protocols Alfresco supports:
|
Standard/protocol |
Comment |
|
HTTP |
The main protocol used to access Alfresco content repository via for example the Alfresco REST APIs. |
|
CMIS |
CMIS is a standard allowing information sharing between different content management systems. Alfresco supports the version 1.0. and 1.1 of the CMIS standard. |
|
FTP |
Content can be contributed to the repository via FTP. |
|
WebDAV |
WebDAV is an HTTP-based protocol commonly supported by content management vendors. It is one way to make the repository look like a file system. |
|
CIFS |
CIFS allows the repository to be mounted as a shared drive by other machines. As opposed to WebDAV, systems (and people) can't tell the difference between an Alfresco repository mounted as a shared drive through CIFS and a traditional file server. |
|
IMAP |
IMAP protocol is used by any modern email clients. Directly from your client, you can connect to your Alfresco repository. |
|
SMTP |
It is possible to email content into the repository (InboundSMTP). A folder can be dedicated as an email target. |
|
SPP |
Enables Alfresco to act as a Microsoft SharePoint Server. Allows Microsoft Office users to access documents within the Alfresco repository. |
|
Alfresco Office Services |
Using Alfresco Office Services (AOS), you can access your documents directly via all Microsoft Office software. AOS replaces and improves the Microsoft SharePoint protocol available in the previous versions. |
|
SOAP |
The Alfresco Web Services API uses SOAP-based web services. |
|
OpenSearch (http://www.opensearch.org) |
Alfresco repositories can be configured as an OpenSearch data source, which allows Alfresco to participate in federated search queries. |
|
XSLT, XSL:FO |
Web form data can be transformed using XSL 1.0. |
|
LDAP |
Alfresco can authenticate against an LDAP directory or a Microsoft Active Directory server. |
Change the font size
Change margin width
Change background colour