Eval Now | Sign Up | About Us | Contact

 

"Options"
The Software Licensing Newsletter
Reprise Software
 
October 2007
 
In This Issue
Tradeoffs - JNI vs. pure Java
"Policy in the License"
SiTex Graphics renders its opinion on RLM

For Back Issues of "Options" please click here
 

Reprise Software Quick Links

 
Reprise  Software
www.reprisesoftware.com
info@reprisesoftware.com
  781-837-0884
The October issue of Options, the Software Licensing Newsletter from the folks at Reprise Software, is chock full of new and interesting topics. We hope you find this issue useful and informative. Please feel free to forward this to a friend using the link at the bottom of the page.

Thanks.

 
Software Licensing using Java JNI vs.
"Pure Java"
Tradeoffs
 

RLM's Java client implementation is a thin layer of Java classes over native object code.  Java Native Interface (JNI) is used internally to interface the Java classes in the RLM API to the underlying RLM library.  The native library is packaged as a DLL on Windows, and a shared object in UNIX/Linux.  When we asked our customers who expressed interest in a Java API for RLM whether they would prefer a pure Java implementation or a JNI-based solution, a majority told us that it should "just work", and they didn't care about the underlying technology.  That told us that it was important for RLM Java to do the following:
 
  • Implement complete RLM client functionality
  • Be compatible with and interoperate with other components of RLM, such as license servers, utilities, and license files
  • Leverage the QA infrastructure already developed for RLM, to ensure a high level of product quality
This suggested a native implementation was the preferred solution, for several reasons.  First, some RLM functionality, like determining a host ID, requires the help of system libraries not available to Java code.  In a "pure Java" implementation, some host ID choices would have to be limited.  Second, a "pure Java" environment would place restrictions on license "roaming" or borrowing which requires temporary license data to be written to the local filesystem. Next, interoperability with other parts of RLM is assured with a native implementation since under the hood the code is the same as the native implementation - interoperability happens without having to think about it.  Lastly, by using existing, already-QA'd code, it isn't necessary to build separate QA for Java - the bulk of the code is "pre-QA'd".  If it works in the native implementation, it will "just work" in RLM for Java.

On the other hand, a 100% Java implementation would have the following advantages:
 
  • No "extra baggage" of a DLL or shared object to carry around with the licensed application for each platform
     
  • "Pure Java" just sounds cooler
In the end, we decided that our customers and their customers would be happier with a less "pure" but more functional and reliable product.
 
What do you think?  If you've not yet looked at it, contact us for your RLM eval kit, pull down the RLM implementation for JNI on Windows or Linux, try it out and let us know!
 
We're here to make software licensing easier, more effective and less expensive, for you and for your end customers.  We think you'll agree that RLM for Java JNI does this and welcome your feedback and interest. We'd like your feedback on these issues.  Please feel free to send us a note to info@reprisesoftware.com
 

"The Policy is in the License"
RLM's Simple API Makes Adding Licensing to your Applications Fast and Easy


When developers think about adding a licensing mechanism to their software, they want the licensing software to "do the work" of licensing. They don't want to be in the business of writing special code that handles the various business cases that their license policies are designed to represent.

RLM is designed to allow the software developer to request a license within an application without knowing what kind of policies are present beforehand. He needs to do little to no manipulation of the licensing routines themselves.

With RLM, license policy is largely removed from your application. License policy is defined in the license keys. So, your application requests a license, and the license that is granted is based on what type of license is found in the customer's license pool.  This allows you to address ever-changing business rules by simply varying the type of keys that you issue - not by changing your source code.

Keeping Pandora's Box Closed

Legacy license managers often opened a sort of Pandora's Box by allowing a generic mechanism to store arbitrary information in the key. This proved to be a mistake because it required special programming in your application to retrieve, decode and process the data, and to perform the logic necessary to implement the custom policy that the data in the license string is meant to convey. More importantly, this unfortunate design decision has lead to the proliferation of incomprehensible license strings and unpredictable license behavior across applications and across ISVs. RLM supports new policies not by way of a "catch-all" mechanism, but by enriching the syntax of the license to address new yet generally useful license policy options.  Here are a couple of examples of license policies that are determined solely by the licenses themselves:

Token-Based Licenses

RLM has a simple yet elegant way to define an RLM license in terms of another. It is used in two common ways.

First, it can be used to enable "token-based" pricing models where each of your products checks out a license for itself which also results in license tokens being checked out from a common pool - each product checks out a number of tokens equal to its relative value. Any number and combination of products can be used so long as the maximum number of concurrent tokens in the pool is not exceeded.

This model works especially well for companies that sell suites of related products that are used to various degrees during a project. As the project advances from one phase to another (Design, Test and Simulate), the mix of products used reflects the demands of that phase of the project. So, you don't have to sell a certain number of seats of each product.  You can let the user determine the mix based on his needs.

This model also allows you to introduce new products into your customers easily since the new products consume the same licenses (tokens) that are already installed.
 
The other main use of token-licensing is to enable license alternates. This is the case where you sell a single product that consists of many separately licensable components (product and sub-product model).  If you sell product bundles at a special discounted price, then customers can purchase a combination of both the bundles and the components of the bundles in order to match their requirements. If a component license is unavailable, then a higher priced bundle license, if available, can be checked out to satisfy the request, as a last resort.

A token-based strategy can also address an overdraft situation. In this case, when all the regular licenses are in use, overdraft licenses are consumed instead. If required, the overdraft licenses can have shorter term expiration dates so that they can be used only during a predetermined time window. Remember that overdraft licenses would be reported separately in the report log so that they can be accounted for appropriately.

Remember, no changes to your application are needed to support token-based licensing... "the policy is in the license."
 

 
WAN Licenses - use time zones to increase pricing options

 

 

Your biggest customers usually connect their geographically dispersed sites via a WAN. When they do that, they can potentially share your floating licenses across the globe. For a variety of reasons (exclusive territory assignments, increasing pricing depth, etc), you may want your licenses to be used only within a particular geographical area. With RLM, you can assign a "timezone" keyword to allow use of your software only in those zones. You could charge a higher fee for licenses that cover a wider geographical range, and less for restricted licenses.

Remember again, no changes to your application are needed to support WAN licensing... "the policy is in the license."

For more information on RLM's feature set click here.


 
Leading image rendering company uses RLM to license compute-intensive applications

 
Scott Iverson, President of SiTex Graphics, talks about his company and his reasons for selecting RLM from Reprise Software.

SiTex Graphics develops advanced 3D rendering software used to create visual effects for television and film.  Our AIR rendering software has been used on numerous feature films including the Oscar-winning Happy Feet and the latest installment of the Die Hard series, Live Free or Die Hard.  The computation-heavy, bandwidth-intensive nature of visual effects requires that our customers maximize the use of their rendering licenses. With the tight deadlines imposed by a production environment, AIR is typically run 24/7 on render farms scaling to hundreds of processors.

Below is an example of SiTex Graphic's rendering software at work. Except for the actor, it is a completely CGI rendering of a speeding Mercedes-Benz.

 
 

 
In the beginning SiTex Graphics developed our own licensing manager; but as our customer base grew, we realized we needed a manager that would provide our customers with better performance, manageability, and reliability in a large production environment.  RLM met those requirements, and the outstanding support during our testing phase as well as the affordable pricing made adopting RLM an easy choice. Partnering with Reprise Software has freed us from the increasing demands of developing and maintaining our own license management software, allowing us to focus on improving our primary software products. 

We've appreciated the flexibility of RLM as we have adapted our licensing model to accommodate the spread of multi-core machines.  Our licenses have always allowed multiple processes running on the same machine to share a license.  With multi-core machines we wanted to preserve that behavior while refining the licensing policy to require more than one license for machines with many cores.  RLM provided the necessary flexibility to implement that change out-of-the-box.
 
RLM makes our software even more powerful and effective by providing our customers with the options and information they need to maximize its use. We've been pleased enough with RLM to recommend it to other developers in our area, and they have likewise been impressed with the simplicity, flexibility and affordability of RLM.

For more information about SiTex Graphics, please click here.
 
 

All content copyright (c) 2006-2008 Reprise Software, Inc. All Rights Reserved.
info@reprisesoftware.com 1530 Meridian Avenue, San Jose, CA 95125

Reprise License Manager, OpenUsage, and Transparent License Policy are all trademarks of Reprise Software, Inc.  FLEXlm, FLEXnet, GLOBEtrotter Software and Macrovision are all registered trademarks of Macrovision Corporation.  All other trademarks are property of their respective owners.

Website comments to webmaster@reprisesoftware.com  Last Modified: October, 2008