As an open source project, DotNetNuke is available under an enterprise friendly BSD license. Since the license has no usage restrictions, there has never been any requirement for managing license restrictions in the core platform. However, as a web application framework, DotNetNuke has an advanced extensibility model which allows third party features to integrate seamlessly with the base platform. And while some of these third party features are offered under an open source license, there is also a rapidly evolving commercial ecosystem of products being offered under traditional software licensing models.
In simple terms a software license is an agreement where the owner of a piece of software grants permission for others to use the software under very specific conditions. In a commercial model, the license generally needs to be purchased for a fee. Once a license has been acquired, the vendor is then obligated to deliver a version of the software which provides the functionality specified in the license agreement. This is typically done by providing the software on physical media, providing an ability to download the software electronically, or by providing an "activation key" which transforms a limited trial version into a fully working product. Once this process is complete, the challenge for the software vendor is how to enforce the usage restrictions in the license agreement. Most vendors would prefer to rely on a simple "trust" model, where the responsibility for adhering to licensing terms is passed on to the customer. The model requires very little administration; however, it does have the risk of being significantly abused, resulting in lost revenue or even worse implication for the vendor. To mitigate this risk, most vendors generally try to employ some additional techniques for enforcing the conditions in their license.
As part of our ongoing efforts to provide more services for the DotNetNuke ecosystem, we have been gathering feedback and conducting business analysis on how we can assist developers with their commercial licensing needs. The following information represents the set of high level requirements we have gathered on this topic thus far.
Licensing technology needs to integrate seamlessly with the base platform, without extra configuration or environmental constraints. It needs to be reliable and robust. It needs to work in a disconnected manner with no external dependencies which could impose network latency, performance, security, or privacy implications. It needs to work in an Internet as well as an Intranet scenario. It needs to be simple for the developer to integrate with their products and administrate.
Licensing technology needs to be available to individual software developers. It should not require them to bundle their products with other third party products. Brand identity is a very tanglible asset which consumers use to identify quality and value; therefore, developers work hard to build their brand and create recognition and loyalty. Bundling generally leads to brand dilution and other issues based on association.
Licensing technology needs to provide access to customer information. Customer data is an essential business asset which ultimately becomes part of the valuation of any successful software company. It provides the business intelligence necessary to identify trends in your customers and potential deficiencies in your products. It also provides the direct communication which allows you to provide a high level of support, pursue inside sales opportunities, and cultivate relationships and loyalty.
Licensing technology needs to be flexible. Developers require a high level of control so they can adapt their business model to the evolving needs of their customers. A high level of control also provides the ability to automate administrative tasks and deliver real-time solutions. Dependence on a third party can be a significant business risk if not properly mitigated, as it introduces another point of failure which is outside of your immediate control. In addition, developers need to be wary of long term commitments, exclusivity, or other restrictive business tactics which can affect their future opportunities.
In general, DotNetNuke's approach is to provide value added tools and guidance which help developers create solutions to complex problems. At this time, there are a number of areas that we have identified where we can provide assistance to developers. One minor enhancement which is now in scope is to provide unique identifiers at the portal and host level which developers can rely on for generating localized activation keys. In addition, we will include a standard uasability mechanism where customers can enter their activation keys within DotNetNuke, as well as a secure data store and API which developers can use to save and retrieve these keys. In terms of generating keys and validating them within your products, we are in active discussions with a number of highly reputable component vendors who already possess enterprise-grade licensing technology with a long distinguished track record. Our goal is to work with these vendors to create an affordable, robust solution for DotNetNuke developers.
Our current plans are to release these new services in the first part of 2007. We truly want this to be a collaborative effort so we will be working closely with our Benefactor community and Review Program participants. We anticipate that the feedback, suggestions, and beta testing we get from this highly focussed group will ensure an optimal solution for the entire community.