Alfresco is a global leader in Enterprise Content and document management. It is an awesome software used by organizations of all sizes to manage their internal documents, images and other digital resources. This is common knowledge and you probably know.
What is NOT common knowledge is that you can utilize Alfresco for a cloud SaaS based products and earn some money on SaaS marketplaces!
This trick is for organizations that are not able to fully utilize their Alfresco instances, or organizations that are experts in SaaS and Alfresco can want to start a business using and Alfresco based product.
What Are SaaS Marketplaces and Why Should I Know About Them?
Cloud SaaS marketplaces are mainly B2B marketplaces that connect small cloud-based product sellers with prospective buyers. Every organization has requirements for a cloud-based software solution. But not all have the budget and development capabilities for buying a full-fledged pre-packaged SaaS solution. For example, Sharepoint Online cloud solution with a 10 user subscription would cost around $1200 per year. Add in the custom solution development costs and you get an overall bill that goes out of range for most startups. And even then, they don’t actually need all the features available. For example, their data won’t go in 100s of GBs as provided by the cloud host.
A marketplace connects SaaS-based software developers who can provide a similar out-of-the-box solution, with customers who need such solutions. Most such solutions are relatively cheaper than the full-fledged solution and usually, have open source technologies like Alfresco in the backend.
Alfresco Based SaaS Products
The SaaS marketplaces have products of all types, some quite generic and some very niche targeted. Many of them are customized versions of the pre-packaged software. However, even among them, Alfresco based solutions dominates the niche related to document management and custom cloud storage.
So how to go about creating such a product for yourself?
I am not going to sugarcoat it, developing such type of SaaS marketplace products are not easy to build. They come with their own set of problems especially in handling multi-tenancy, client specific customizations, and of course, security.
The process start by of course installing and configuring an Alfresco instance on your servers. If you are going to use Alfresco cloud then you would be only configuring it. Some of these SaaS marketplaces usually come with their own set of APIs but most would require you to create a web script that they would host in their system. This web script would handle most events that are generated at the marketplace and inform Alfresco instance about these events. By events here is mean end-user create subscription requests like creating a subscription, cancel, pause, resume, upgrade, downgrade, add-ons etc. This script would also be authenticating the User from SaaS marketplace side.
We register this webscript in Alfresco. Upon receiving these requests, Alfresco will modify the Alfresco users, which are the end-clients in this case, and modify their accessibility as per the events received.
Once we handle all the subscription related events and assigned corresponding permission to the users then next is to handle User Login in Alfresco. The best scenario is to automate the process and for custom client requirements, you can create manually.
To achieve this, the best option is to write a public web script at the shared end, which should be mapped to our service URL at the SaaS provider’s end, and whenever a user launches our service from the SaaS dashboard, our web script will trigger the OAuth Mechanisms. This will, in turn, ask the user for the permissions and once they get approved and checkout, the user gets logged into the Alfresco system. Similarly, on logout from the Alfresco, the user gets the log-out from the SAAS provider.
What the user do once he is in Alfresco or what exactly he see there, would what will define your product so I won’t go into that detail.
— cscottward (@cscottward) February 3, 2016
Some More Thoughts
Now it’s not necessary that you have to give your user access to the Alfresco instance. You can create a whole custom solution around it and only use its awesome features for the document management part. Or you can customize the Alfresco so that your product stands out from the rest. Both cases require good Alfresco knowhow, most specifically about the multi-tenancy in Alfresco. Check out this page to know more about Alfresco Multi-tenancy. http://docs.alfresco.com/5.1/concepts/mt-intro.html