|
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.
|
|
|