cancel
Showing results for 
Search instead for 
Did you mean: 

Arcitectural discussion: how to integrate documents from multiple different systems into Alfresco

huima
Champ in-the-making
Champ in-the-making
Hi all,

this is a thread to share your experiences in real life what architectural designs and options you have witnessed and implemented in organisations on how to integrate documents / document flow from multiple different systems into Alfresco.

What we are doing is essentially using Alfresco as a content hub in an organisation and publishing documents from different system silos into one ECM-platform.

The best scenario in perfect world would be:

Applications <—> ESB <—> Alfresco

All the integration logic and transformations would be on one platform and people managing it would stay in control of the flow of information. But due to limitations in technical capabilities in integration platform we have - we are currently doing integrations different ways.

1) Bulk imports ( so not 'integration' per se ) for large batches of one off transfers with Alfresco bulk import tools

2) Webscript based APIs that applications ( or in this case an ESB ) can call to push files into Alfresco with metadata via http post

3) Custom filesystem based integration script, where custom import script reads xml-file for metadata info and accesses referenced binary files through shared NFS drive then importing those files and metadata into the Alfresco repository

Number 1 and number 3 both go around ESB as the platform is currently constrained and can't process files in large batches. Naturally this means that integration logic and responsibilities get easily divided into multiple places, which is less that ideal.

Our goals with different architectural choises and solutions has been to create solution, where team managing Alfresco ECM system has been and can retain the control over how and where imports happen as they will also know the data model and solution dependencies best.

1) In bulk imports different metadata mappings prepare and filter metadata to be used in in-place-imports. Alfresco team knows best how to prepare the metadata correctly.

2) Webscripts based APIs decouple systems that publish documents and metadata from the actual data model and repository structure. Alfresco team can adjust API implementations if datamodel or repository structures change.

3) Custom import scripts have the integration logic in them and actually do the work that should be closer to the integration platform – or actually fully responsibility of integration platform


In some distant – but hopefully not too distant – future the integration platform gets technical constraints removed and gets also CMIS capability, so that custom import scripts could be migrated fully to functionalities in the integration platform.

Now, for the discussion and sharing ideas.

What kind of architectures you have built or witnessed, what has been thinking behind those choises and what have you learned from those experiences. Alfresco is so versatile system that there is no one right way to do things, so in that sense it would be interesting to share these different approaches and ideas behind those decisions.

Looking forward hearing your thoughts.


1 REPLY 1

mitpatoliya
Star Collaborator
Star Collaborator
Hi Heimo,

The central here is to use Alfresco as central ECM platform where all the different department of organization and most of the applications of organization will be using alfresco for managing their documents.

First three steps you had mentioned are generally part of initial adaptation where we move all contents from different platforms like share drive to the alfresco. this could be consider as migration and if it is one time job we can go for any one of the option and ideally it should be.

Now once we have all the contents inside alfresco we could either create wrapper on top of alfresco which would act as connector for all other applications to interact with alfresco. It could be simple Spring Remote service,SOAP or REST based service.
The other option to consider is to consume out of box webscripts provided by alfresco in case we could have many touch points to alfresco repository and our operations are not limited to minimum CRUD operations.The issue with this approach is we will not be having common connector which could be used by all applications.

Now as far as using Alfresco directly is concern we can customize alfresco share interface.
We can integrate it with Liferay,Drupal etc…
We can create any Web application on top of Alfresco.