What is Alfresco?
Alfresco is an open source ECM (Enterprise Content Management) system that allows an enterprise to manage all its content and provides services and controls to enable the same. It is used to implement solutions like Document Management(DM), Web Content Management(WCM), and Digital Asset Management(DAM)
Alfresco is completely written in Java and therefore runs on virtually any environment that could run Java Enterprise Edition. In fact Alfresco’s default installation includes Tomcat 7 server for quick setup and testing. The core is built on Spring platform, providing modular functionality like versioning, security and rules.
Alfresco system is composed of the following components.
- Repository – Core system
- Share – Web based client
- Solr4 – Search and indexing
Lets look at these briefly
Also referred to as the Server, it comprises a content repository and value added services for building ECM solutions. It provides the following categories of services built upon the content repository:
– Content services
– Control services
– Collaboration services
It supports numerous protocols for client communication like HTTP and REST for programmatic access and CIFS, FTP, WebDAV, IMAP and Microsoft SharePoint for application access.
This is a web based client built entirely with Alfresco webscript technology. Alfresco webscript is very similar to REST API calls, but with added hooks to Alfresco deployment and file system model. That would be a separate topic for a future post. Alfresco Share provides content management capabilities with a very simple unobtrusive user interface. It includes tools to search and browse the repository, view content, support for sites, collaboration tools like wiki etc.
Alfresco Share is deployed as its own app in the application server, and could also be deployed in its own separate server instance from the Alfresco content application server. Basically Alfresco Repo(Repository) can be deployed in a single tomcat server instance and Alfresco Share can be deployed in another tomcat instance in the same physical machine or a completely different machine. It is worthwhile to note that Alfresco Share does use Alfresco Webscripts and REST API calls to talk to the Repo.
As of Alfresco 5 Solr4 is the default search platform for searching within the Alfresco repository. Solr4 is an opensource enterprise search platform that uses lucene as indexing and search engine. Solr4 is written in Java and runs as a standalone search server. Alfresco sends HTTP and XML input to Solr and searches for content. Solr updates the indexes and returns search results in XML or JSON format.
Solr4 is the default mechanism for new installations installed with the Setup wizard. And Solr4 server is supported only when running in a Tomcat application server. If Alfresco is running in any other server other than Tomcat, then you have to install Tomcat for Solr to work.
In future posts we would be looking at more features of Alfresco including creating content models, Alfresco Activiti integration, Maven project setup, search optimization, etc.