Abstract:
The present method for authorizing a substitute software license server allows the software provider to approve the temporarily usage of the customer&#39;s substitute license server to process application file usage requests when the host license server fails. The host license server is assigned a unique host identification for authorizing simultaneous usage of a plurality of application files having the same host identification, thus preventing a substitute license server from authorizing usage of the plurality of application files without obtaining host identification. A software provider server connected to the substitute license server via a network connection downloads a temporary identification and application files having the temporary identification to the substitute license server to allow the substitute license server to process the application file usage requests that are received by the substitute license controller.

Description:
FIELD OF THE INVENTION  
         [0001]    The invention relates to software licensing, and in particular to a system for authorizing a redundant software license server to process software license requests in the event of primary software license server failure.  
         PROBLEM  
         [0002]    It is a problem in the software field to prevent the unavailability of necessary application files from decreasing employee productivity while also allowing the business to purchase and concurrently use more than one copy of the application files. A number of software publishers license software files under a pricing model wherein a customer purchases the right to concurrently use a predetermined number of copies. Software files that are sold for concurrent use are often delivered with license management software installed on a license server, from which the customer requests software licenses. The licensing management software ensures that the customer does not use more software licenses than they have purchased and are entitled to use. A problem arises when the software license management system fails.  
           [0003]    Effective management of multiple copies of application files presents a major dilemma for computer site administrators and software application publishers. The focus of control for managing multiple copies of an application file or application file software license is the physical location of the application file or the program disk. The details of controlling physical access and the degree of inconvenience vary, but in a world of hard disks, networks, file servers and electronic email, management based on controlled distribution is intrinsically impractical or even impossible. Without any practical tools, site administrators are forced to rely on redundant license management systems at each site.  
           [0004]    The primary reason a company purchases hardware and software is to improve employee productivity and to enable employees to do things they could not do otherwise. Reduced productivity because users need to wait for software licenses to be available is a very real cost. These costs can delay product development or manufacture and reduce customer and employee satisfaction. It is a problem if the license server at one location fails, resulting in no software licenses available and thus, a reduction in productivity.  
           [0005]    A solution to the problem is to break the software licenses into sets and provide each site with its own license server, licensing management software and a subset of software licenses. User equipment is configured to request a software license from one of the multiple license servers. Using this solution, users at each site contact their local license server first. If the license server does not have a license available, the user is required to request a license from another server across the WAN. Using this solution, when one server fails, then only the subset of software licenses allocated to the failed license server are unavailable. However, the user has no way of knowing which license server has a software license available. The problem is exasperated when additional sites are added, providing fewer software licenses at each site and additional sites to contact to request a software license. It is also a problem when the number of software licenses available at the other sites is not sufficient to meet the demand, again, reducing productivity.  
           [0006]    A solution to the problem is implemented by FLEXIm, from GLOBEtrotter Software, Inc., in San Jose, Calif. This solution is based on providing three license servers each having a unique host identification and including the unique host identifiers of all three of the license servers in a license file. The three license servers are interconnected and track the number of software licenses that are available within the system. When one of the license servers is disconnected from the other license servers, the disconnected license server is not permitted to distribute software licenses. The connected license servers continue to receive software license requests, grant software licenses and track the number of software licenses that are available within the system and the number of software licenses that were granted by the disconnected license server. This solution prevents distribution of more software licenses than are purchased. It also provides a method for continuing to monitor the number of software licenses granted by the disconnected license server, thus allowing all of the software licenses to be granted. A problem occurs when a second of the three license servers fails or is disconnected, resulting in no software licenses being available.  
           [0007]    For these reasons, a need exists for a software license management system to allow an alternative computer device having the required software license management software to manage software licenses when the license server fails.  
         SOLUTION  
         [0008]    The present method for authorizing a substitute software license server overcomes the problems outlined above and advances the art by allowing the customer or the license server to gain approval from the software provider to temporarily authorize a substitute license server to process user requests.  
           [0009]    The present method for authorizing a substitute software license server is intended for use by a business operating a license server running a license management software wherein the license server is assigned a host identification. The plurality of software licenses are also assigned the same host identification and only a license server having the matching host identification may authorize use of the plurality of copies of the application file. In response to an application file usage request, the license server checks the number of application file usage requests authorized and the number of software licenses available. If the number of application file usage requests authorized is less than the number of software licenses, the usage request is authorized.  
           [0010]    When the license server fails, application file usage requests are not processed. The present method for authorizing a substitute software license server allows the customer to contact the software provider to request authorization to utilize a substitute license server for processing the application file usage requests. The substitute license server may be any computer system meeting the requirements of the license management software. The software provider downloads the necessary application software to the substitute license server and authorized substitution for a period of time. When the time period expires, the substitute license server discontinues processing the application file usage requests.  
           [0011]    In an alternative embodiment, the registered substitute license server is connected to the customer network. The substitute license server contacts the software provider and requests authorization to process application file use requests. After checking the registration, the software provider downloads the necessary application software to the substitute license server and authorized substitution for a period of time. When the time period expires, the substitute license server discontinues processing the application file usage requests. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0012]    [0012]FIG. 1 is a block diagram of a network utilizing a primary software license server;  
         [0013]    [0013]FIG. 2 is a flow diagram of a method of processing application file usage requests in accordance with the present method for authorizing a substitute software license server;  
         [0014]    [0014]FIG. 3 is a flow diagram of a manual process for authorization of a substitute software license server in accordance with the present method for authorizing a substitute software license server; and  
         [0015]    [0015]FIG. 4 is a flow diagram of an automatic process for authorization of a substitute software license server in accordance with the present method for authorizing a substitute software license server. 
     
    
     DETAILED DESCRIPTION  
       [0016]    The authorization of redundant software license management servers summarized above and defined by the enumerated claims may be better understood by referring to the following detailed description, which should be read in conjunction with the accompanying drawings. This detailed description of the preferred embodiment is not intended to limit the enumerated claims, but to serve as a particular example thereof. In addition, the phraseology and terminology employed herein is for the purpose of description, and not of limitation.  
         [0017]    A number of software providers license software files under a pricing model wherein a customer purchases the right to concurrently use a predetermined number of copies. Software files that are sold for concurrent usage are often delivered with license management software installed on a license server, from which users request software licenses. The licensing management software ensures that the customer does not use more licenses than they have purchased and are entitled to use.  
         [0018]    Network Configuration—FIG. 1:  
         [0019]    A software license network  100  configuration includes a software license server  140  for controlling software license distribution and a plurality of workstations having computers  130 - 133  on which to execute the software file as illustrated in FIG. 1. The software license server  140  and the plurality of workstations  130 - 133  are linked together via a communication channel such as local area network (LAN) for requesting and allocating application file usage. The software license server  140  includes a processor for executing a software license management application required to process usage requests and to authorize concurrent usage of a corresponding application file when a software license is available. License server  140  also includes a memory for storing software license file and application file allocation data. The software license network is configured to provide a method for multiple workstations  130 - 133  to concurrently use a predetermined number application files corresponding to the predetermined number of software licenses. The software license network  100  may also include a network server  120  used by the plurality of workstations to store and retrieve data files.  
         [0020]    While the network configuration just described includes a plurality of workstations, the term workstation used throughout the following description is for illustration only and it is understood that a server or other type of computer may be substituted. Similarly, the phrase “application file” refers generally to a feature or a single file which could contain an application file including one or more features that may be individually turned on or off with a license and is not limited to a single feature or a single application file.  
         [0021]    In the example illustrated in FIG. 1, three licensed copies of the application file are available for concurrent usage by four users at the four workstations. The license server  140  receives application file usage requests from the users at the four workstations  130 - 133 . If a software license is available, the user is authorized a concurrent application file usage allowing the user to access and use the corresponding application file. When the number of software licenses allocated for concurrent usage equals the predetermined number of software licenses available, subsequent application file usage requests are denied. Three copies of the application file may be running on any of the four computers  130 - 133  on the network, as long as the number of concurrently running copies of the application file does not exceed the number of floating licenses purchased, three software licenses in this example.  
         [0022]    Each software license server  140  is assigned a unique host identifier allowing the software license provider to control the number of software licenses available at the particular software license server. The software file residing in the license server memory  140  includes the predetermined number of software licenses and the unique host identification of the license server on which it is installed. The license server  140  accessing the license file must be assigned the same unique host identification. A problem occurs when the host identification of the license server does not match the host identification within the license file, the license server is not authorize to access the license file for processing usage requests. Thus, when a license server fails, an alternative license server can not be substituted. Instead, usage requests for concurrent usage of the application file are denied. Likewise, as users terminate usage of an application file, usage of the application file is not available to other users.  
         [0023]    Software License Server Operation  
         [0024]    Referring to the operational flow diagram of FIG. 2, the license server receives application file usage requests in step  210  from the plurality of users connected to the network. In response to a user request, in step  212  the license server checks the license file to determine the number of software licenses available and the number of concurrent users authorized. In step  214  the processor executing the software license management application compares the host identification of the license server processing the usage request and the host identification within the license file. If the host identifications match in step  216 , the license server is authorized to process the user request. In step  218 , the license server determines the availability of a software license. If a software license is available in step  218 , concurrent usage is authorized in step  222 . When the number of concurrent application file users equals the number of software licenses available, the usage request is denied in step  220  until one of the concurrent users terminates usage of a copy of the application file.  
         [0025]    When a license server fails, the operator may substitute a backup license server. However, if the host identifications do not match in step  216 , the license server is not authorized to process the user request. Thus, the license server that is installed to ensure that the customer does not use more software licenses than they have purchased and are entitled to use, blocks usage of all of the software licenses. The present method for authorizing a substitute software license server overcomes the problem by allowing the customer or the license server to gain approval from the software provider to temporarily authorize a substitute license server to process user requests.  
         [0026]    Manual Substitute License Server Authorization—FIG. 3:  
         [0027]    The present method for authorizing a substitute software license server allows a customer to contact the software provider in step  312  to request permission to temporarily authorize a substitute license server to process application usage requests when the host license server fails in step  310 . The software provider may require the substitute license server to be registered prior to the request. The software provider may request information in step  314  including the host identification and the expected duration of time for which the substitution is sought. In step  316  the substitute license server communicates with the software provider server via a secure communication channel to request authorization in step  318  to process application file requests. If the substitute license server is not registered with the software provider, the substitute license server may not be authorized in step  324  and therefore does not have permission to process user application file requests and the substitution request is denied in step  322 .  
         [0028]    If the substitute license server is registered with the software provider, the substitute license server is authorized in step  320  to process application file usage requests in step  324 . Prior to processing the plurality of application file usage requests, the software provider server downloads the license management software and a substitute license file in step  323  to the substitute license server. The substitute license file may include a temporary identification and a plurality of software licenses having the temporary identification. Since the identification of the substitute license server matches the software license identification, the substitute license server is allowed to authorize concurrent usage of the corresponding application files. The substitute license server continues to process application file usage requests until the time period for which the substitute license server is authorized expires in step  326 , at which time the substitute license server discontinues processing application file usage requests in step  328 .  
         [0029]    Automatic Substitute License Server Authorization—FIG. 4:  
         [0030]    In an alternative embodiment, the software license management application includes a process for contacting the software provider to request permission to temporarily authorize the substitute license server to process application usage requests when the host license server fails. The substitute license server may be connected to the network and periodically query the host license server to ensure that the host license server is operational. If the query is not responded to, in this alternative embodiment, the registered substitute license server contacts the software provider in step  412 . If the registered substitute license server is not connected to the network, the customer may, in response to failure of the host license server in step  410 , connect the substitute license server and initiate communication in step  412  between the substitute license server and the software provider.  
         [0031]    The software provider may request information in step  414  including the host identification and the expected duration for which the substitution is sought. In step  416  the substitute license server communicates with the software provider server via a secure communication channel to request permission in step  418  to process application file requests. If the substitute license server is not registered with the software provider, the substitute license server is not authorized in step  424  and therefore does not have permission to process user application file requests and the substitution request is denied in step  422 .  
         [0032]    If the substitute license server is registered with the software provider, the substitute license server is authorized in step  420  to process user application file requests in step  424 . Prior to processing the plurality of application file usage requests, the software provider server downloads the license management software and a substitute license file in step  323  to the substitute license server. The substitute license server continues to process application file usage requests in step  424  until the time period for which the substitute license server is authorized expires in step  426 , at which time the substitute license server discontinues processing application file usage requests in step  428 .  
         [0033]    The present method for authorizing a substitute software license server allows a customer to register a substitute license server to prevent having periods of downtime where application file usage requests, and therefore application file usage, is not available. Thus increasing user productivity by providing an alternative license server to process application file usage requests when the host license server fails. The software provider may allow the user to take advantage of the present method for authorizing a substitute software license server as a feature that is purchased by the customer. As a paid for feature, only those license servers having the feature activated may take advantage of requesting authorization of a substitute license server.  
         [0034]    As to alternative embodiments, those skilled in the art will appreciate that the present method for authorizing a substitute software license server has been described authorizing a substitute license server. The substitute license server may be any computer system meeting the system requirements of the license management software to be utilized as a substitute.  
         [0035]    Software license management systems having redundant license servers may also utilize from the present method for authorizing a substitute software license server. In a redundant software license server system, when one of the software license servers fails, application file usage requests directed to that particular license server are not processed, thus not authorizing additional users. A redundant software license system utilizing the present method for authorizing a substitute software license server may connect a substitute license server and request authorization to process application usage requests.  
         [0036]    Substitution for a failed license server is particularly useful in fragmented software license systems having multiple license servers wherein each license server authorizes usage of a subset of the plurality of software licenses. When a license server fails, the subset of software licenses available for authorization by the failed license server is not available for authorizing application file usage requests, thus the customer is unable to authorize usage of the total number of software license that the customer paid for.  
         [0037]    The present method for authorizing a substitute software license server is also useful for a small business that does not have multiple license servers authorizing application file use. In this environment, the customer may substitute any computer system meeting the requirements of the license management software for the failed software license server. Thus reducing cost to the customer and improving productivity by reducing downtime.  
         [0038]    Alternative embodiments will occur to those skilled in the art. Although the present method for authorizing a substitute software license server has been described and illustrated for a network configuration having one software license server, two or more software license servers may be concurrently operating within the same network. Similarly, although embodiments were described and illustrated wherein the software license server authorized the usage of an application file corresponding to the software license, the software license server may authorize concurrent usage of one or more features or the application file may contain one or more features that are independently authorized by a software license. Such variations and alternatives are contemplated, and can be made without departing from the spirit and scope of the invention claimed in the appended claims.  
         [0039]    It is apparent that there has been described a method for authorizing a substitute software license server that fully satisfies the objects, aims, and advantages set forth above. While the authorization of redundant software license server method has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications, and/or variations can be devised by those skilled in the art in light of the foregoing description. Accordingly, this description is intended to embrace all such alternatives, modifications and variations as fall within the spirit and scope of the appended claims.