March 21, 2005
The Path to Grid-Friendly Software Licensing
** The views and opinions expressed herein are strictly those of the
author and do not necessarily reflect those of Micron Technology Inc.
or its subsidiaries or affiliates
Grid computing, coupled with companies' ongoing market pressure to
reduce operating costs, is changing the way IT applications are run.
However, current software licensing methods may restrict the ability to
leverage applications with the flexibility that the Grid can provide.
This article reviews several licensing schemes in terms of their
Grid-friendliness and suggests minor changes to licensing models to
better promote Grid usage.
A Review of Licensing Models
Three fundamental licensing models that warrant coverage in any
discussion of Grid computing are: 1) user-based, 2) host-based and 3)
User-based licensing associates a license with a named user. Typically,
named users can upgrade their systems and re-install the software
without further involvement of the supplier (i.e., nothing special
about a particular machine, like its name or ID, enables or disables
the software from operating). In some cases, it is acceptable for these
users to have such licensed software installed on more than one machine
(e.g., work and home, desktop and laptop, etc.) based on the concept
that they can only use a single copy at any given time.
The extreme case of this licensing model is that an application could
be available on any host (machine), but is only usable by a finite
number of licensed users. One can think of this as a "don't care where,
but who" scheme. An advantage is that a named user always has access to
the application because nobody else can use it. On the other hand, the
license is wasted when the named user is away, for example, on vacation.
Host-based licensing has an opposite focus from user-based licensing.
One can think of this as a "don't care who, but where" model.
Host-based licenses can either be floating (run on any host) or locked
(tied to a specific machine by name or ID). An advantage of this
approach is that many users can share a license (e.g., in a training
lab or on a shared workstation). A disadvantage is that many licenses
can go unused.
Concurrent licensing draws on parts of the two previous schemes. One
can think of this approach as "don't care who or where, but how many."
Concurrent licensing models generally involve the use of a license
server to keep track of how many licenses are available to be checked
out. Generally, a cost will be associated with running such a license
server. However, this cost is more than offset by the reduced number of
licenses required because this scheme promotes maximal sharing of a
license among a group of users. While this approach can facilitate "any
time, anywhere" access to a minimally sufficient number of licenses,
some vendors artificially limit licenses to a set of nodes or
geographical region (i.e., subnet, etc.). These vendors often will
allow wider geographical use for an extra fee.
A Changing Computing Landscape
Not too long ago, computing environments were quite static. The user
interface consisted of a personal desktop running client-server
software connected to back-end systems located in a basement machine
room. Today, the use of laptops is on the rise, and employees are
increasingly working at home and on the go. On the back end, big iron
typically talked to other big iron. More recently, much of the big iron
is being replaced by a lot of little iron, but everything is still
statically configured: a named machine gets a bunch of software
installed based on its role.
In forward-looking companies, however, Grid computing technologies and
the continual focus on reducing costs have driven hardware
virtualization and consolidation efforts to support greater application
portability, reliability and scalability. Many companies are migrating
much of their computing infrastructure to a small number of super data
centers; maybe one per continent. The transaction that used to run in
the basement may now run one or more time zones away.
In some cases, companies may choose to run their applications on
someone else's computers. Sun Microsystems recently announced a program
to provide CPU cycles by the hour. The bottom line is that the day is
rapidly approaching when applications -- both user-facing and
back-office -- will run anywhere. The location and association between
an application and the hardware on which it runs will be very dynamic.
One may run an application from a box in Austin, Texas, on Monday and
the same application from a box in Singapore on Thursday.
Grid-Friendly Software Licensing
While today's Grid-enabled infrastructure supports most of what is
discussed above, we're still a few years from seeing widespread
availability of Grid-enabled software as the industry sorts out all the
standards and value propositions. What is Grid-enabled software?
Grid-enabled software actively discovers and utilizes a Grid to improve
efficiency, reliability and scalability. As the industry goes along the
path to Grid-enabled software, perhaps it should consider an interim
step to Grid-friendly software.
The goal of Grid-friendly software is simple: don't do anything to
interfere with a Grid execution model. While there are a few technical
considerations for Grid-friendly software, the focus of this article is
on licensing. Consider how the three licensing models can become more
The Grid supports location- (i.e., machine) independent application
execution. User-based licensing models could better support this
flexibility through a replicated or centralized table of authorized
users. Users should be able to run a local copy of "their" software in
the morning (maybe a lightweight trial run) and a remote copy via the
Grid in the afternoon (a CPU-intensive run that has been matched to a
beefy machine, for example). The FlexLM license management system from
Macrovision is one tool that supports such an execution model.
The Grid also supports the matching of jobs to machines based on job
requirements and machine capabilities. Most Grids can publish arbitrary
machine capabilities such as a list of available software. Host-based
licensing models can be effectively leveraged on the Grid by such an
automated discovery. For example, if a company has purchased 1,000
copies of an application, and 450 are actively being used, the Grid can
automatically process a queue of work with the remaining 550 copies.
Application providers that use host-based licensing could explicitly
state that this use model is acceptable in their licensing agreements.
Perhaps the greatest power of Grids lies in their ability to easily run
many jobs in parallel. Concurrent licensing models readily support Grid
execution because they generally use a centralized license server.
However, usage-based (utility) models would support Grid execution more
flexibly and provide better license utilization. For example, if a
company was licensed for the concurrent use of 10 copies of software,
it could obviously run 10 instances 24 hours in a day for a total of
240 instance-hours. But, on another day, it should be able to run 24
instances for 10 hours. This is also the best model for
externally-hosted applications that are run via an Application Service
Provider (ASP). Interestingly, the FlexLM license management system
mentioned above supports such a licensing model today.
Please don't make price an issue. Some vendors might want to charge
more for the ability to use their application in a Grid. To the extent
that customers are just using an off-the-shelf application on the Grid,
charging more is not justified. The customers are simply leveraging the
investment in their IT infrastructure more wisely. In some cases, when
specific functionality is built into the software to explicitly
leverage Grid capabilities (like automatically parallelizing tasks
perhaps), a price uplift might be justified -- but now we're talking
Grid-enabled software, not just Grid-friendly software.
It's no longer about location, location, location. From the section on
the changing computing landscape, it should be clear that applications
increasingly are run independently from user and data location.
Licensing schemes that restrict (or charge extra for) use based on
geography are antiquated and artificially restrict the way companies
must do business to compete in today's global market.
While the thrust of this article is directed at software suppliers, the
Grid community is not without involvement. The ability to match jobs to
computing resources should be enhanced to support matching on arbitrary
resource constraints. Today, the Grid throttles the number of active
jobs based on the number of available machines to run those jobs. It
would be nice to be able to throttle the active jobs based on some
other constraint such as the number of available licenses or the number
of available database connections. One Grid computing software vendor,
Platform Computing, offers a product called License Scheduler that can
manage job deployment based on license resource availability.
We are entering a new era in location-independent computing flexibility
brought forth by Grid technology and driven by a business focus on
reduced cost and increased efficiency. While Grid technologies are
fairly mature in their ability to match application requirements to
compute nodes, perform data transfer, and start and manage remote
applications, the applications themselves are not very Grid-friendly.
This article suggests the most expeditious path to fully-Grid-enabled
applications is for application vendors to first address
Grid-unfriendly licensing models and then address the associated