Platform integrations are external additions to the Alfresco Platform. These are generally clients that leverage the Alfresco platform and they include mobile clients, remote services and client applications. The reasons why you would decide to develop an integration instead of using Alfresco Share or any other embedded extension, are related to the ability to: integrate the services available with Alfresco into yours, customize application and services, merge different sources into one single point of contact, use different devices and technology to access to your content.
Below a list of cases where the remote integration approach, makes more sense:
- Enterprise Application Integration (EAI): providing existing enterprise applications with content management functionality - for example, a CRM system that needs to store and retrieve documents in a central repository.
- WCM integration: providing files and images to a web content management system.
- Mashup: a web application that uses content from many different sources and that also needs to display some file and folder information.
- Custom UIs: this is the use case when the Share UI deviates too much from what the solution requires, so it makes more sense to build a new content management client from scratch.
- Mobile clients: such as iOS and Android applications that manage content.
As you probably know, Alfresco Platform is composed by different layers, developed specifically to accomplish to a logical function. The so called Alfresco Repository, core of the Platform itself, is the layer that aggregates numerous APIs, Services, and Protocols and exposes them over internet. The Alfresco Repository layer is the only host of integration points that can be used to integrate web clients, desktop clients, enterprise services, and applications with Alfresco.
The API that is mostly used for platform integrations, is of course the REST API. Sometimes the invocation of the REST API is hidden, such as when working with a Java CMIS client using the OpenCMIS Java library. Other times we might build on the Aikau development framework, which provides content management widgets and services so we don't have to start from scratch. But even Aikau calls the REST API under the hood. The good news is that the REST API lets you access content in an on-premise Alfresco repository as well as Alfresco in the Cloud.