High-Level Architecture - Alfresco Content Services - 23.4 - 23.4 - Ready - Alfresco - external

Alfresco Content Services

Platform
Alfresco
Product
Alfresco Content Services
Release
23.4
License

Before we get into details, let’s start by looking at Content Services from a high level. Traditionally there has always been a few well known components defining Content Services. The following diagram illustrates the main components that the Content Services consists of. The Platform, the User Interfaces (UI), and the Search engine. These components are implemented as separate web applications:

The diagram of the main components of the Alfresco Content Services high-level architecture

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, such as classification and versioning. Traditionally this component is also referred to as the Repository. There are several so called extension points that can be used to build customizations for the platform, they are usually deployed as AMP or JAR modules.

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 (for more information on Alfresco Share, see Alfresco Share). There is also a newer UI called Digital Workspace (see the Digital Workspace documentation), based on the Alfresco Application Development Framework (ADF), it’s also deployed as a WAR. The user interfaces makes it easy for users to manage their sites, folders, documents, users and so on.

Alfresco Share also provides several extension points that can be used to build customizations for that user interface, they are also deployed as AMP or JAR modules. If you want to extend the Digital Workspace UI JSON files are used.

The Alfresco Search Services functionality is implemented on top of Apache Solr and provides the indexing of all content, which enables powerful search functionality. Search is delivered as the solr.war web application. There are also mobile clients that will access the content via ReST APIs provided by the platform. For more information on Search Services, see the Alfresco Search Services documentation.

Most Content Services projects will implement a domain specific web client based on ADF. It gives you full freedom to design a content and process web client supporting exactly the use cases needed by the domain. Giving the end-users the best possible experience.

The Platform and UI components run in the same Apache Tomcat web application server, which is Java based. So if you are a Java developer you feel quite at home working with Content Services, even through it is possible to work with other languages when implementing external extensions.

The Search component runs in its own Jetty web application server. The Platform is usually also integrated with a Directory Server (LDAP) to be able to sync users and groups with Content Services. And most installations also integrates with an SMTP server so the Platform can send emails, such as site invitations.

Extensions to the repository , such as a domain specific content model, and extensions to the UI, such as forms to support custom types, has traditionally been done with Alfresco Modules Packages (AMP) and later on as JARs. For more information on AMP, see Extension Packaging (Modules). These are running in the same process as the repository. This changes with version 7 of Content Services where out-of-process extensions are possible as we will see.