Alfresco licensing terms | new module source code sharing conditions
I'd like to ask a few questions about the Alfresco licensing terms, conditions of sharing the source code of new modules (presumably, new modules that I'd write for the Alfresco platform), the possibility of modifying the source code of some of the already existing Alfresco modules (i.e. if I purchase a module, would I be able to further modify its source code to extend the functionality) etc.
1Information about the licensing terms of Alfresco Enterprise:
ADoes Alfresco provide source codes for purchased modules?
BMay the source code for new modules be further modified (if so, under what conditions)?
CIf we write code for new modules for the Alfresco platform, may we sell them under license without the need to share the source code for the modules (what are the conditions in this regard)?
2What are the differences between the Enterprise and Community versions (in terms of system CORE and API)?
3What are the differences between the BPM Enterprise and Activity versions (in terms of CORE system and API)?
4Where could we download the Alfresco Enterprise extension modules to be installed for the Enterprise TRIAL and Community versions (is it possible at all)?
5Are there any differences in the installation process for Enterprise and Community edition modules?
6May the modules written for the Enterprise version be run/installed on the Community version and vice versa?
1) a) Source code for modules is not always available on a source project level or as a source attachment in an artifact repository but as far as I know, source code for a commercial-only module can be requested via Alfresco Support as a paying customer
1) b) Details would have to be inquired via Alfresco Legal as license / subscription agreements for the commercial product are not publicly available. In general though it is highly unlikely that you would be allowed to modify the modules and still be within the confines of the support aspect of the subscription agreement. Most definitely you would not be allowed to distribute modified code. And in general, you should not need to modify the source - using extensions mechanisms will almost always allow you to achieve necessary customisations without all the hassle of checking legal conditions.
1) c) If you write new modules for the Alfresco platform, you can put them under any license you want. The Alfresco core (the open source bit of the product) is based on LGPL, and its conditions (or lack thereof) for linked software apply.
2) Virtually no differences with regards to core and API. Enterprise provides some added functionality typically only necessary in, well, "enterprise" scenarios, e.g. scalability (clustering, transformation), support of commercial databases, content encryption at rest, optional integration modules systems like SalesForce, Outlook, S3, yada, yada... The scope of most modules / functionalities is easily googleable / available on docs.alfresco.com.
3) Activiti as an open source project is primarily the core workflow engine library and, in the newer versions, a simple modeller application / the whole Activiti cloud bit. Alfresco Process Services has so far been a productised application built around the open source projects, again with added functionality, an enhanced modelling palette, support for commercial databases...
4) Contact Alfresco Sales to get additional support for your trial, including access to any modules you need to include in that trial to be able to make a purchasing decision. Those modules are not available for just anyone to willy nilly play with them - Alfresco wants to be involved in the process to make sure you are doing a proper trial and are not going to make a decision based on issues you encounter due to lack of knowledge about the product / guidance / support.
5) No differences regarding module installation.
6) Modules written for Community can generally be run without issue on Enterprise, since they are based on the common core. Modules written for Enterprise may not be compatible with Community, either technically or license-wise - it all depends on who has created the module in question, how much of Enterprise-specific code is referenced / depended upon, and what the business / legal terms of the module licenses are.