Now when we got an idea of how the Content Services architecture looks like on a high level, it’s time to go more into detail about the software architecture for the latest Content Services version:
We can see that there are a number of components that we did leave out in the simplified diagram. The main component that we did not talk about is the Alfresco Transform Service, which consist of a router and a number of so called T-Engines. It’s used to transform an uploaded document into different formats depending on what it should be used for, such as thumbnail, preview, text for indexing etc. For more information on Alfresco Transform Service, see the Alfresco Transform Service documentation.
Another important component is the Alfresco Sync Service that is used by the Alfresco Desktop Sync clients. They enable you to work with the repository content from for example Windows Explorer instead of any of the web user interfaces. For more information on Alfresco Sync Service and Alfresco Desktop Sync, see the Alfresco Sync Service and Alfresco Desktop Sync documentation.
It might come as a surprise, when you install Content Services an instance of Apache ActiveMQ server is also installed. It’s an integral part Content Services and sits as a message broker between the Repository and several other components:
- Transformation Service: receives messages about transformations that have been requested by the repository.
- Sync Service: receives messages about folder and document changes in the repository
- External extensions: maybe the most important addition to Content Services version 7 is that it is now possible to build out-of-process extensions. These extensions listen to the repository events and then execute code depending on what happened in the repository, such as file uploaded, folder created etc.
The Content Services system is implemented in Java, which means that it can run on most servers that can run the Java Standard Edition. The platform components have been implemented using the Spring framework, which provides the ability to modularize functionality, such as versioning, security, and rules. The platform provides a scripting environment to simplify adding new functionality and developing new programming interfaces. This portion of the architecture is known as Web Scripts and can be used for both data and presentation services. The lightweight architecture is easy to download, install, and deploy.
For more information about the internals of the Platform, and specifically the content repository, see the Key Concepts. After that read more about the extension points.
Content Services provides a number of extension points (for more information on extension points, see Extension Points Overview) that will allow you to customize the management of content specific to your domain. These extensions points can be divided into platform extensions and user interface extensions:
- Platform Architecture
- Web UI Architecture
- Digital Workspace extension points. For more information, see the Build extensions section of the Alfresco Digital Workspace documentation