The following diagram illustrates the idea that can be thought of as consisting of three main components, Platform, User Interface (UI), and Search. These components are implemented as separate web applications:
The main component is called the Platform and is implemented in the alfresco.war web application. It provides the repository where content is stored plus all the associated content services. Alfresco Share provides a web client interface (that is a User Interface, UI) for the repository and is implemented as the share.war web application. Share makes it easy for users to manage their sites, documents, users and so on. The search functionality is implemented on top of Apache Solr 4 and provides the indexing of all content, which enables powerful search functionality. Besides the web clients accessing the Repository via Share there are also mobile clients that will access the content via REST APIs provided by the platform.
If we dive deeper into the platform (packaged in alfresco.war) we will see that it also supports workflow in the form of the embedded Activiti Workflow Engine. The platform is usually also integrated with a Directory Server (LDAP) to be able to sync users and groups with Alfresco Community Edition. And most installations also integrates with an SMTP server so the Platform can send emails, such as site invitations.
For more information about the internals of the Platform, and specifically the content repository, see the concepts section.
Besides Share there are also many other clients that can connect to the repository, including any CMIS-compatible client, and via the Microsoft SharePoint protocol any SharePoint client. Enterprise to Cloud Sync can synchronize content between an on-premise installation of and in the Cloud, under user control.
The following diagram illustrates this extended architecture:
Note that content metadata is stored in a relational database system such as PostgreSQL, MySQL, Oracle, and so on. The content itself is stored on the file system (or other storage system such as Amazon S3).
Alfresco provides a number of extension points to allow you to customize it. These extensions points have various formats, but include:
- Platform extension points and detailed architecture
- Share extension points and detailed architecture
- Platform integration points and detailed architecture
The links in the list above provide further information on each of these topics.