Similar to our recent post and whitepaper on Documentum and SharePoint integration, this post will present similar options for Alfresco users. We recently posted an example of SharePoint and Alfresco integration in our Learning Zone. This post will present a recap of possible solutions to compare and contrast the alternatives.
Alfresco Access from SharePoint
As we mentioned in a previous post, sometimes users just want a universal search or Google type search. The simple box in SharePoint can often be viewed (sometimes wrongly) as the means to view all content.
Since most users bring their home search experience to work, the desire for one general box for every search scenario from SharePoint is a common request. Users can ask “how come I don’t see my procedure 123XYZ when I type 123XYZ into the box?” While the IT response might be something like: “if you are looking for a procedure, log into Alfresco since approved procedures are located there”, users, particularly SharePoint users, would like to access one system for all searches.
IT needs to be able to respond to the request of users to provide a simple search across both Alfresco and SharePoint from a SharePoint environment. The remainder of this post will compare and contrast some common approaches.
Alfresco Publishing to SharePoint
Another approach highlighted previously has been the ability to “publish” content out of Alfresco or other ECM repositories to a cache. For the cache approach, we have typically implemented OpenMigrate to enable a “publish” job where the approved documents get pushed to another, more subservient read only, repository. If documents are deleted in Alfresco, the publish job would make sure they are removed from the cache as well. Typical scenarios have included publishing metadata to a search platform such as Solr, or to a simple database table.
For SharePoint users, the logical question is why not leverage simply leverage SharePoint storage as a cache and push these documents (or just the approved renditions) to SharePoint. While OpenMigrate does have a SharePoint target adapter, some obvious concerns would include:
- Security – One concern would be making security on the document is tight (read only) since allowing for a document to be deleted/moved or versioned would destroy the referential contact.
- PDF Manipulation – Lots of our clients add dynamic header/footer/signature pages on approved Alfresco documents. This ability would have to be available in SharePoint if this is a requirement.
- User confusion – Users might get confused why some documents they can edit (SharePoint collaboration documents) and some cannot be edited. Also, SharePoint allows for a “Site Search” as well cross-site search. We would anticipate that the cache would be limited to one site which might confuse the users in regards to why the document isn’t available across all searches.
SharePoint Federated Web Part
In reviewing alternatives, one of our clients has successfully developed their own approach leveraging SharePoint’s ability to support the OpenSearch protocol for cross-repository searching as documented in this post.
This approach has a couple of advantages over other approaches:
- Isolation of SharePoint/Alfresco content – Similar to the Indexing Connector, all of the Alfresco content stays in Alfresco.
- Federated Search Performance – Search results are returned from both queries (SharePoint and Alfresco) simultaneously.
- OpenSearch Limitations – specific limitations of the OpenSearch specification around user security and custom meta-data making it the equivalent of a “Google Search”. As we have discussed before, users might as for a “Google Search” but, when pushed, examples like “show me the currently approved SOP for this product” is not a Google search.
- Integration – Some integration needs to be developed to a given cache to provide for OpenSearch connectivity. Alfresco already supports the OpenSearch protocol.
Downside
- As presented in the picture below:
While the results are on the same page, they are not really mixed together. Clients have asked for the ability to sort by column and see all the results in a more tabular format.
SharePoint/Alfresco Integration Approach
One approach we are currently developing would be leveraging Microsoft SharePoint development tools (ASP .Net) combined with our OpenContent web services to build a dual searching application as a web part within SharePoint. Highlights of the approach include:
- Complete leverage of both SharePoint and Alfresco security model
- One Search against both repositories
- Results merged into a table that supports paging, filtering and sorting consistent with SharePoint Lists and Libraries.
- Content streamed from Alfresco repository (or cache) leveraging user’s credentials.
- Ability to add search for specific meta-data across both repositories
Check out our demo in the learning zone . We are looking to add this to our downloadable open source in the near future. Send us an email or post below if you are interested in the beta copy.
What about using CMIS?
Any of these approaches could leverage CMIS to talk to either repository. OpenContent contains CMIS calls in a wrapper as well as additional calls which are not covered by the CMIS spec. This gives us the ability to leverage proprietary features from either repository in an insulated manner.