** 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) concurrent.
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 Grid-friendly.
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 technical issues.