Unlocking the Commercial Potential in your Dynamics CRM Applications Licensing, packaging & protecting your software A Software Potential Solution Overview InishTech 2012. All Rights Reserved. Reproduction or distribution other than for intended purposes is prohibited, without the prior written consent of InishTech. InishTech is a trade name of Inish Technology Ventures Limited, a company registered in Ireland, company registration number: 469127. All other marks are the property of their respective owners.
Introduction Cloud computing changes the software business utterly. Software is no longer software. Instead, like everything else in the cloud, it s a service. No part of the software business remains untouched by this. In a sense, CRM was the first application that moved to the cloud with the arrival of salesforce.com in the late 1990 s. In the intervening years, this vibrant subsector of the software industry has remained at the center of the action in the shift to a cloud computing model. The transition is by no means complete, but with most of the largest providers of CRM now pursuing a cloud first strategy, it s only a matter of time before fat client / on premise CRM becomes redundant. CRM Software to the Cloud This shift of platform-style applications like CRM to the cloud has implications for the extended ecosystem of ISVs, application developers and software solution providers in and around the CRM space. The importance being placed on cloud development platforms like Windows Azure and force.com indicates how significant this shift is for 3rd party application developers. The cloud signifies a further hybridization of the software business, with every possible software delivery variation possible, from old style fat client desktop software all the way through to pure cloud services. Nowhere is this more apparent that within the Microsoft Dynamics CRM community where the catalyst has been the introduction of CRM 2011, commonly known as CRM Online. Dynamics CRM Online is a significant and positive development for Microsoft ISV partners. Developers building applications that work with Dynamics are no longer confined to basic customizations like plug-ins and workflows. They now have the capability to deliver rich hybrid solutions, comprising of SaaS components that leverage and extend the core CRM functionality e.g. into web based self-service portals. Dynamics ISVs can continue to leverage the positive aspects of an on-premise deployment (e.g. control and security) without exposing themselves to the traditional on-premise downside (i.e. cost and maintenance). The cloud opens up a much larger addressable market for add-on applications certainly extending far beyond the traditional target market of large organizations. It opens up the small and mid-size enterprise market, but also allows for the delivery of tailored, customer-centric solutions for vertical / niche markets. The Cloud Challenge Delivering a software solution through the cloud is very different to deploying on-premise, in several practical and important ways. While most of the focus for the ISV will naturally gravitate towards the difference in architecting and engineering the solution for the cloud, this invariably misses the fact that the cloud also means a fundamental rethink of the commercial model for software. Monetization, licensing and protecting your IP has become a whole lot more complicated. The cloud might present a huge business opportunity, but to properly exploit that opportunity requires an appreciation of, and a strategy for overcoming the following non-trivial challenges: Distribution Often a transition to a hybrid / cloud model means there is no longer a single, neatly understood deployment process, together with a diminished role for the technical delivery team. How will you get your software into the hands of your customers? The growth of new channels like marketplaces and app stores, the need for online tenant activation all of this means your licensing and provisioning becomes more complex. Packaging With on-premise software, particularly high value applications, you can usually configure to order. But how do you do that in the cloud - where you have a one-size-fits-all, single instance, multi-tenant solution? How can you flexibly configure features and packages for diverse use cases like free trials, promotions, basic and premium editions? And how do you seamlessly upgrade and downgrade customers? Licensing Models building for the cloud also means selling for the cloud. Customers will demand more variety, more choice and more flexibility in how they use and pay for your software. You must support a range of different licensing models in your business and how to handle this in the application itself. Usage & consumption many SaaS business models are based on a pay-as-you-go or pay-per-use principles. That means your cloud software needs to be able to cater for usage and / or consumption-led charging. The opportunity for a service provider to be learning from usage and consumption patterns in the SaaS world is such that being able to measure and meter is an important pre-requisite for cloud success. Protection For many applications, it will continue to be vitally important to ensure that physically distributed components are copy protected and secured against tampering and reverse engineering. It is these monetization challenges, which are increasingly a factor for ISVs building CRM applications for the cloud that Software Potential seeks to address.
The Software Potential Solution Software Potential from InishTech is a cloud based service that enables vendors of CRM solutions to unlock the commercial potential in their applications through licensing, monetization, packaging, protection and analytics. Software Potential can be used both for SaaS components and also for deployed on-premise components, giving you the assurance of a total solution for your hybrid application. A typical Microsoft Dynamics CRM solution will be based around the reference architecture shown below. Third party plugin software is clearly shown in the red box. The Software Potential licensing solution for CRM comprises of the following: Software Potential SaaS Licensing Service which the solution vendor uses for all his product and edition management, as well as all the license & activation management required for the solution; Software Potential Runtime Components which are packaged and deployed with the ISV s solution assemblies, either in the cloud or on premise, to execute protected code and enforce licensing; Software Potential provides the following services, via portal pages or web service APIs Product Management: ISV defines products, versions and editions for his solution, based on different combinations of licensable features. License Management: ISV creates, issues and manages licenses for customer deployments of his application; these can be deployed on-premise or in the cloud; Activation Management: ISV can support connected and disconnected activation of his software, depending on connectivity available on his customer sites. Also can offer managed and unmanaged trials and upgrade programs. Analytics: ISV can monitor, analyse and report on licensing, activation and usage of his solution, across products, versions and editions. The Software Potential runtime component, SP Agent for CRM, is seamlessly integrated and packaged with the ISV s software assemblies as part of the code protection step during the build process. This step, which is typically carried out on each release of the product, is automated via integration with the automated build environment such that protection and licensing processes are transparent to the developers and to the end customer.
During the code mapping & protection process, various methods in the assembly source code are securely associated with product features, as defined by the product manager. Whenever an attempt is made to execute such a licensed method, the SP Agent will check to see if the required feature is available in a locally available license store. If the features is available then the method is executed as normal; if not the Agent throws a NotLicensedException which must be handled in the plugin e.g. to display an appropriate licensing message to the end user. To get an initial license the end user enters an Activation Key (provided by the ISV) via some UI element e.g. a form on a custom entity. The Agent will automatically connect to the Software Potential service to activate the key and then download and install the required license file. The protected solution is deployed as normal together with the SP Agent components. In the case of plugins the SP Agent DLLs merged into the overall vendor plugin so that solution deployment is unchanged. The solution only needs to communicate with Software Potential for license activations; this includes the initial activation and any subsequent reactivations required e.g. for renewable, subscription licenses. All subsequent license checks etc. are performed locally. Licensing & Protecting a Plug-in Assembly The process of licensing plug-in assembly code is simple and straight forward for all involved - the Product Manager, Developer, Sales Person, and most importantly, the customer or end user of the CRM solution. How it Works for Product Managers The first and most important step is to define a product for your plugin, comprising Name, Description and licensable Features. It is possible to subsequently create new versions of the product at which time features can be added or removed to reflect changed functionality etc. Additionally one can create one or more Editions of the product for sale, each of which can have different subsets of the product features, as well as time and usage limitations. For example one edition might be a 30 Day trial license where some or all features expire at the end of the trail period; another might be a Standard Monthly Subscription with all the standard features included but which is renewed monthly. The product definition only needs to be updated when new versions are released that contain new licensable features. New editions can be created as required by the changing business needs. How it Works for Developers Once a product has been defined the process of protecting and licensing of CRM solution components is very straightforward and is designed to be automated as part of the build process. Using Visual Studio the vendor creates a CRM plugin as normal, comprising one or more.net assemblies, which can be deployed to a CRM instance, on its own or as part of a larger managed solution.
The SP Code Protector utility, when integrated with Visual Studio, can automatically both protect and license code within a plugin assembly. To enable protection and licensing, the developer declaratively selects the methods in the assembly to be protected by adding licensing attributes to each in the source code. Then it is simply a matter of setting a compilation flag in the relevant.csproj/vb.proj file to turn on protection for a debug or release build. Depending on the user experience required it may be necessary to build some UI to handle license management e.g. to enable entering of Activation Keys, display of installed licenses etc. Finally, the SP Agent for CRM assemblies needs to be included as part of the CRM plugin. As a plugin can only comprise one DLL, it is necessary to IL merge the required Agent DLLs with the outputs of the plugin project. How it works for Users of Solution The user downloads and installs the CRM solution, in an organization within an on-premise or Online instance. The user is then prompted for the Activation Key provided by the ISV to activate the software. Under the hood the SP Agent for CRM connects with Software Potential to activate and download the appropriate license file, which is then used by the Agent to control usage of the plugin. Renewals of subscription licenses are handled automatically by the Agent without the need for user interaction. Summary If you are building applications around Microsoft Dynamics CRM, Software Potential can help you to commercialize your software from the start through the provision of an easy-to-use, easy-to-implement web service that allows you to properly control and manage all of your software packaging, licensing and protection requirements. The 4 key benefits which you get from using Software Potential are as follows: Licensing Offer, enforce and manage any commercial licensing model for your software Packaging Create software editions dynamically, independent of the engineering team Protection Protect your software from reverse engineering and the threat of misuse Analytics Learn how your customers are using your software About Software Potential Software Potential from InishTech is an innovative cloudbased service that enables you to unlock the commercial potential in your software. With licensing, packaging, code protection and usage analytics all combined into an easyto-use SaaS service, you can manage and control your software in the marketplace like never before. Founded in 2009 and based in Dublin Ireland, InishTech's vision is to help software developers unlock the commercial potential in their software. The company is privately held, with the major shareholders being the founders, private investors, Enterprise Ireland and Microsoft Corp. With several hundred customer tenants depending on the Software Potential cloud service to protect and license thousands of applications in the marketplace, InishTech is an international leader in the field of software licensing and an innovator in the shift to licensing from the cloud.