A Multi-Dimensional Model for Electronic Representation of Software Licenses
Original Publication Date: 2002-Sep-30
Included in the Prior Art Database: 2003-Jun-21
A multi-dimensional data model is disclosed to represent the information related to software licenses in such a way that each characteristic of software licensing is described with an independent “license policy”, and different license policies can be combined together in a powerful and flexible way. The major advantage of this model is that a software licensing system becomes able to manage a large number of license types with a minimum degree of complexity. Many license management tools exist today for the purpose of determining whether the usage of a licensed software product is within the scope of a given license agreement. Each one of these tools has to deal with the complex issue of classifying the license types and metrics that must be considered when controlling usage of a software product. Different license management tools solve this common problem with different ways of classifying licenses, but all of them share the common limitation of a modeling structure that often increases significantly the degree of complexity of the license management logic as the number of the supported license types grows. The proposed idea is to define a set of independent policies that combined together give a unique representation of any possible license type. The major characteristic of these policies is the independence of each one of them from the others, so that any combination is valid to obtain a specific behavior. License policies actually isolate independent characteristics of license management, defining a multi-dimensional space where each license is a specific point that can be determined as a combination of values, one for each existing dimension (i.e. for each policy). Each time that a new license type is found that cannot be represented in this multi-dimensional space, a new independent policy must be added to cover the new license type, together with all the other license types that are added this way to the existing model. The number of license types than can be described by this model grows exponentially with the number of the independent policies included in the model, while the degree of complexity in the logic to be developed for a license manager grows only linearly with the number of policies. The advantage of this approach is the possibility to implement an apparatus to manage the licensing logic (i.e. a license manager) that must deal only with a set of independent license policies without the need for managing systematically each one of the license types that can be represented as a combination of values on the given policies. Since the policies are independent, the license manager must only implement the logic related to each policy independently, making the source code easier to build and maintain. Also, all the combinations of policies are valid and possible, and the model is extremely clear and does not present any kind of confusing exception to the user.