US20070033395A1 - Method and system for hierarchical license servers - Google Patents
Method and system for hierarchical license servers Download PDFInfo
- Publication number
- US20070033395A1 US20070033395A1 US11/195,314 US19531405A US2007033395A1 US 20070033395 A1 US20070033395 A1 US 20070033395A1 US 19531405 A US19531405 A US 19531405A US 2007033395 A1 US2007033395 A1 US 2007033395A1
- Authority
- US
- United States
- Prior art keywords
- license
- server
- mini
- computer
- servers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000004044 response Effects 0.000 claims abstract description 5
- 230000015654 memory Effects 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2145—Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
Definitions
- the field of the invention relates generally to computer systems and more particularly relates to a method and system for hierarchical license servers.
- a computer implemented method comprises receiving license requests from a plurality of clients.
- the license requests are serviced using a plurality of mini servers, each mini server serving licenses to a client of the plurality of clients in response to a license request of the license requests.
- a primary license server provides the licenses to the plurality of mini servers.
- FIG. 1 illustrates a block diagram of an exemplary software license management systems, according to one embodiment of the present invention
- FIG. 2 illustrates an exemplary computer architecture for use with the present system, according to one embodiment of the invention
- FIG. 3 illustrates a block diagram of an exemplary license server hierarchy, according to one embodiment of the present invention
- FIG. 4 illustrates a block diagram of an exemplary license server hierarchy 400 with mini-server groups, according to one embodiment of the present invention
- FIG. 5 illustrates a block diagram of an exemplary license borrowing system 500 , according to one embodiment of the present invention
- FIG. 6 illustrates a block diagram of a license server hierarchy 600 having a vendor controlled license server, according to one embodiment of the present invention
- FIG. 7 illustrates a block diagram of an exemplary redundant server architecture 700 , according to one embodiment of the present invention.
- FIG. 8 illustrates a block diagram of an exemplary redundant server architecture 800 having a dongle 830 , according to one embodiment of the present invention
- FIG. 9 illustrates a block diagram of an exemplary redundant server architecture having a vendor license server, according to one embodiment of the present invention.
- FIG. 10 illustrates a block diagram of an exemplary redundant server architecture having a redundant vendor server group, according to one embodiment of the present invention
- FIG. 11 illustrates a block diagram of an exemplary redundant server architecture having a redundant vendor server group and a redundant customer license server group, according to one embodiment of the present invention.
- FIG. 12 illustrates a flow chart of an exemplary process for hierarchical license serving, according to one embodiment of the present invention.
- a computer implemented method comprises receiving license requests from a plurality of clients.
- the license requests are serviced using a plurality of mini servers, each mini server serving licenses to a client of the plurality of clients in response to a license request of the license requests.
- a primary license server provides the licenses to the plurality of mini servers.
- the present invention also relates to apparatus for performing the operations herein.
- This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
- Back-end refers to a server, computer or system under the control or otherwise authorized by a software Vendor to receive and process information received from a Customer of its usage of software licensed to the Customer by the Vendor.
- File refers to what is generally understood as a computer file, but as used here also includes any system for storing and retrieving digital data, inclusive of database managers, registries, directories and data objects.
- Front-end refers to a server, computer or system under the control or otherwise authorized by a Customer to execute, manage and/or report usage of software licensed to the Customer.
- “License applet” means a mini server loaded on a client system to support borrowed licenses.
- Mini server means the server at the customer's site that connects to the primary license server and is the central point for all clients to connect to and check out licenses.
- Principal license server means the server at the customer's site, that may be under the customer's control. It will perform some or all of the following actions depending on the configuration:
- “Secondary server” means a license server in a redundant server configuration that is not allowed to grant licenses because it is only a mirror of the master server.
- Server means a computer process that other computer applications, operating systems, system software or compute services interact with.
- server as used in the terms “client-server”, “multi-tier computing”, “3-tier computing”, network services or web services are included.
- Vendor means a licensor of licensed software including its copyright owner and other parties granted a right by the copyright owner to sell or otherwise distribute licenses to Customers to use the licensed software.
- Vendor license server means the server that resides at the vendor's site and is responsible for maintaining all the licenses for a given customer.
- FIG. 1 illustrates a block diagram of an exemplary software license management system, according to one embodiment of the present invention.
- license management systems it is to be appreciated that other systems employing the various teachings herein may also be used to practice the various aspects of the present invention, and as such, are considered to be within its full scope.
- System 100 includes a front-end server 101 (also known as a primary license server) that is configurable to control usage of licensed software, and optionally, may also securely communicate with a back-end server 102 (also known as a vendor license server) available at a designated destination, such as via a direct dial-up telephone number, an Internet Uniform Resource Locator (URL), an email address or other networking address.
- the licensed software application is operative on various front-end computers (also known as clients) connected in a network 107 , including the front-end server 101 and other computers represented as computers 104 - 106 .
- System 100 represents one of many license management configurations, where clients 104 - 106 connect directly to the primary license server 101 to obtain licenses.
- Primary license server 101 includes license management software.
- the network 107 may be a Local Area Network (LAN), Wide Area Network (WAN), Virtual Private Network (VPN), or other network that is managed or otherwise controlled by a customer of the licensed software.
- a communication medium 103 such as the Internet, a private network or a direct dial-up connection.
- secure transmission of messaging is preferably performed, for example, using the Secure Sockets Layer protocol (SSL), and a Virtual Private Network (VPN).
- SSL Secure Sockets Layer protocol
- VPN Virtual Private Network
- any one or more of the front-end computers represented by front-end computers 104 - 106 on the network 107 may be configured, instead of or in addition to the front-end server 101 , to control usage of its licensed software and/or the licensed software of other such computers, generate e-mail messages, and securely transmit the e-mail messages to the back-end server 102 .
- the term “front-end server” is understood to also include such front-end computers when performing such functions.
- the front-end server 101 may also be so configured.
- the back-end server 102 is configured to receive, authenticate, and process license management messages, the e-mail messages, and deliver the e-mail messages to the end recipient that could be an individual or software entity, such as business operations software.
- business operations software include enterprise resource planning software (ERP), e-commerce software (such as those used for performing transactions over the Internet), customer relationship management software (CRM), and sales force automation software (SFA).
- FIG. 2 illustrates an exemplary computer architecture for use with the present system, according to one embodiment of the invention.
- Computer architecture 200 can be used to implement both front-end computers (clients) 104 - 106 , front-end servers 101 , and back-end servers 102 of FIG. 1 .
- One embodiment of architecture 200 comprises a system bus 220 for communicating information, and a processor 210 coupled to bus 220 for processing information.
- Architecture 200 further comprises a random access memory (RAM) or other dynamic storage device 225 (referred to herein as main memory), coupled to bus 220 for storing information and instructions to be executed by processor 210 .
- Main memory 225 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 210 .
- Architecture 200 also may include a read only memory (ROM) and/or other static storage device 226 coupled to bus 220 for storing static information and instructions used by processor 210 .
- ROM read only memory
- a data storage device 227 such as a magnetic disk or optical disc and its corresponding drive may also be coupled to computer system 200 for storing information and instructions.
- Architecture 200 can also be coupled to a second I/O bus 250 via an I/O interface 230 .
- a plurality of I/O devices may be coupled to I/O bus 250 , including a display device 243 , an input device (e.g., an alphanumeric input device 242 and/or a cursor control device 241 ). For example, web pages and business related information may be presented to the user on the display device 243 .
- the communication device 240 allows for access to other computers (servers or clients) via a network.
- the communication device 240 may comprise a modem, a network interface card, a wireless network interface or other well known interface device, such as those used for coupling to Ethernet, token ring, or other types of networks.
- FIG. 3 illustrates a block diagram of an exemplary license server hierarchy 300 according to one embodiment of the present invention.
- License server hierarchy 300 includes a top-level primary license server 301 that reads license files and maintains the list of all licenses; mini-servers 310 - 313 serve the licenses to client applications; and clients 304 - 309 that are connected to the mini-servers 310 - 313 .
- the primary license server 301 starts up it will read the license files and maintain the list of all available licenses.
- the primary license server 301 then waits for mini-servers 310 - 313 to connect to it. Since primary license server 301 reads the license files it will need to be licensed to run on a particular host. Additionally if the customer so desires, the primary license server 301 will be able to serve licenses to clients 304 - 309 directly.
- each mini-server 310 - 313 will connect to the primary license server 301 to register its presence within the hierarchy 300 .
- the primary license server 301 may issue, depending on its configuration, some portion of the total licenses available for a given feature to the requesting mini-server 310 - 313 . These licenses will be held in memory in the mini server 310 - 313 so that they can be handed out to client applications as needed.
- a mini server for example mini server 313
- Each mini server 310 - 313 updates the primary license server 301 regularly with usage information so the primary license server 301 can log it and track which clients 304 - 309 are connected to which mini server 310 - 313 .
- licenses are checked out constantly. In one embodiment, so that the network is not flooded with usage data relating to the checked-out licenses, the usage data is batched, compressed, and then sent to the primary license server 301 . Since the mini servers 310 - 313 communicate through the primary license server 301 the mini servers 310 - 313 do not need to communicate with each other. This allows the customers to maintain discrete networks but still maintain a single primary license server 301 .
- hierarchy 300 may be adapted to include redundant mini severs. If a mini server, for example mini server 312 , goes down the clients, for example clients 306 - 308 connected to it will be able to connect to another mini server, for example, mini server 311 to obtain a license.
- a mini server for example mini server 312
- goes down the clients for example clients 306 - 308 connected to it will be able to connect to another mini server, for example, mini server 311 to obtain a license.
- Primary license server 301 updates each mini server 310 - 313 with information about the other mini servers.
- Each mini server 310 - 313 in-turn updates its clients 304 - 309 with the information about the other mini servers 310 - 313 .
- a client 304 - 309 can automatically switch to another mini server 310 - 313 .
- the client 304 - 309 will cache the information about the other mini servers 310 - 313 so that the next time it starts up it can find an alternate mini server if it's preferred mini server is unavailable.
- a mini server 310 - 313 when a mini server 310 - 313 loses its connection to a primary license server 301 it may be configured to perform the following actions:
- mini servers 310 - 313 do not read license files they do not need to be licensed to a specific host. This allows the customer to run any number of mini servers 310 - 313 it desires.
- a vendor may license the primary license server 301 such that it will only allow a specified number of mini-servers to connect to it.
- a primary license server 301 maintains usage data so it can track which clients 304 - 309 are connected to which mini server 310 - 313 .
- a client for example client 306
- the client 306 switches from mini server 312 to another mini server, for example mini server 311 because mini server 312 is no longer responding
- the client 306 transmits a message to the new mini server 311 that it lost its connection to the previous mini server 312 .
- This information is then sent to the Primary license server 301 .
- the primary license server 301 knows that it can remove this license from the disconnected mini server 312 and release it to the next mini server 311 .
- the period of time that the primary license server 301 holds on to the licenses for the disconnected mini server 312 is determined by the vendor with the license they grant to the primary license server. This may be the same amount of time the mini server is allowed to serve licenses without a connection to its primary license server 301 .
- the present method and system allow for load balancing among mini-servers 310 - 313 .
- the usage information that the primary license server 301 maintains is used to determine the load on each of the mini servers 310 - 313 . This allow the primary license server to determine how to balance the client load on each of the mini servers 310 - 313 .
- the primary license server 301 determines that a mini server is at its maximum load, for example mini-server 312 , it will send instructions to the mini-server 312 to re-direct clients 306 - 308 to another mini server, for example mini server 311 .
- the maximum load may be based upon different indicators, some of which are listed here:
- FIG. 4 illustrates a block diagram of an exemplary license server hierarchy 400 with mini-server groups, according to one embodiment of the present invention.
- License server hierarchy 400 includes mini server groups 410 and 420 ; mini servers 411 , 412 , 421 , 422 ; and clients 404 - 409 .
- the customer may configure mini servers 411 - 412 , 421 - 422 into logical groups, for example California group 410 and UK group 420 .
- the customer configures the primary license server 401 to define the maximum and minimum number of licenses allowed in any given group 410 , 420 over some period of time. For example, if there is a company that has offices in California and the UK it makes sense to allocate most of the licenses to the UK during working hours there and then to allocate most of the licenses to California during working hours there. According to one embodiment, clients 404 - 409 are able to redirect to another mini server in the same group.
- group identifiers are used for the mini servers 411 , 412 , 421 , 422 .
- the primary license server 401 only redirects clients, for example 404 - 406 to another mini server in the same group, for example mini server 412 in group 410 .
- the local administrator has the ability to configure the group information and load balancing between mini servers 411 , 412 , 421 , 422 .
- FIG. 5 illustrates a block diagram of an exemplary license borrowing system 500 , according to one embodiment of the present invention.
- a license borrowing mechanism is needed when a client, for example laptop 504 , disconnects from the primary license server, such as primary license server 501 .
- License borrowing system 500 includes a primary license server 501 , clients 505 , 506 , and a laptop 504 .
- Laptop 504 includes a license server applet 507 , secure storage 508 , and a client application 509 that requires a license from primary license server 501 .
- the license applet 507 requests a borrowed license from either a mini server or primary server 501 , depending on what it is connected to.
- the license applet 507 caches this license in an encrypted file or other secure storage 508 .
- the client application 509 runs it requests a license from the local license server, in this case the server applet 507 .
- the mini server transmits this usage information to the primary server, such as primary license server 501 , so that if there is a server failure somewhere the borrow information is saved. Additionally, this allows the borrowed license to be returned to any mini server.
- a client 504 maintains a constant borrowed license for some specified period of time. The vendor's licensing of the primary server 501 determines things like this along with the maximum and minimum borrow periods.
- FIG. 6 illustrates a block diagram of a license server hierarchy 600 having a vendor controlled license server, according to one embodiment of the present invention.
- Hierarchy 600 includes clients 604 - 609 , mini servers 611 - 614 , customer primary license server 601 , and a vendor controlled license server 602 connected by the Internet 603 .
- the vendor license server 602 is under the control of the vendor. Whether the vendor license server 602 is at the vendor's site or not is unimportant.
- the primary license server 601 at the customer's site will connect to and retrieve its licenses from the vendor license server 602 .
- the primary server 601 at the customer's site caches licenses in an encrypted file or other secure storage.
- the primary license server 601 can continue to serve licenses for some period of time.
- the customer's primary server 601 is unable to fulfill license requests if it is not in communication with the vendor license server 602 for some period of time specified by the vendor.
- a vendor controlled license server 602 provides numerous benefits for the vendor. For example:
- a vendor controlled license server 602 provides numerous benefits for the customer as well. For example:
- FIG. 7 illustrates a block diagram of an exemplary redundant server architecture 700 , according to one embodiment of the present invention.
- Redundant servers may be dongle based, a 3-server redundancy scheme, redundancy with a connection to a vendor license server, or other similar redundancy mechanisms.
- Redundant server architecture 700 includes three redundant servers 721 - 723 , connected to mini servers 711 - 714 that are connected to clients 704 - 709 .
- redundant servers 720 start up they exchange information with each other.
- mini severs 711 - 714 or clients 704 - 709 connect to one of these redundant servers 720 they are given all the information about all possible redundant servers 720 along with the current master license server 721 . If a mini server 711 - 714 or client 704 - 709 is not currently connected to the master license server 721 it will be redirected to the master license server 721 .
- only the master license server 721 distributes licenses.
- the secondary license servers 721 - 723 are regularly updated by the master license server 721 to mirror the current state of master license server 721 . If master license server 721 crashes then the remaining secondary license servers 712 - 713 negotiate between themselves to determine which will be the new master license server. If the master license server 721 goes down or loses communication, then a client 704 - 709 or mini server 711 - 714 having detected the lost connection to the master server 721 redirects traffic to one of the secondary license servers 722 - 723 , such that license checkouts continue uninterrupted.
- Architecture 700 includes three primary license servers 720 , of which one is designated the master license server 721 and the other two are the secondary mirrored license servers 722 - 723 .
- the license issued by the vendor includes the host ids from all three license servers 720 .
- At least two of the three redundant servers 720 must be running and communicating with each other to serve licenses to the mini servers 711 - 714 or clients 704 - 709 .
- FIG. 8 illustrates a block diagram of an exemplary redundant server architecture 800 having a dongle 830 , according to one embodiment of the present invention.
- a dongle 830 a customer can run any number of primary license servers 821 - 823 where only the server with the dongle 830 is the master license server 821 and distributes licenses to the mini servers 811 - 814 or clients 804 - 809 .
- the other secondary license servers 822 - 823 act as mirrors of the master license server 821 and do not grant licenses.
- a mini server 811 - 814 or client 804 - 809 loses its connection to the master license server 821 with the dongle 830 , it connects to one of the secondary license servers 822 - 823 .
- the redundant server configuration they may allow a secondary license server 822 - 823 without the dongle 830 to server licenses for some short period of time to allow the dongle 830 to be moved without interruption in service.
- the secondary license server for example server 822
- the secondary license server becomes the new master and communicates that information to the other secondary servers, for example server 823 . Since the new master 822 was mirrored from the original master 821 it has all the connection and usage information.
- the new master 822 can connect to each mini server 811 - 814 to tell it which server is the new master.
- FIG. 9 illustrates a block diagram of an exemplary redundant server architecture 900 having a vendor license server 931 , according to one embodiment of the present invention.
- Redundant server architecture 900 includes vendor controlled license server 931 , redundant server group 920 , mini servers 911 - 914 , and clients 904 - 909 .
- the vendor controlled license server 931 and redundant server group 920 are connected via the Internet 940 .
- Architecture 900 is similar to architecture 800 that uses a dongle.
- Primary master license server 921 downloads licenses from the vendor license server 931 and any number of secondary mirrored servers at the customer's site. If the master license server 921 goes down then one of the secondary license servers 922 becomes the master and connects to the vendor license server 931 to verify the licenses and then grants license requests.
- the master license server 921 may be granted a license by the vendor license server 931 to run for some period of time if it loses communication with the vendor license server 931 .
- FIG. 10 illustrates a block diagram of an exemplary redundant server architecture 1000 having a redundant vendor server group 1030 , according to one embodiment of the present invention.
- Architecture 1000 includes redundant vendor server group 1030 , customer primary license server 1021 , mini servers 1011 - 1014 , and clients 1004 - 1009 .
- the redundant server group 1030 is connected to the customer primary server 1021 via the Internet 1040 .
- Redundant vendor server group 1030 includes one master vendor license server 1031 that fulfills requests from a customer primary license server 1021 and some number of mirrored secondary vendor license servers 1032 - 1033 .
- the vendor maintains multiple redundant servers 1032 - 1033 to guarantee uptime to its customers. Since the vendor secondary license servers 1022 - 1023 are under the control of the vendor, a redundant vendor server group 1030 is easier to maintain than maintaining redundant servers at a customer site.
- a customer primary license server 1021 loses its connection to the vendor master license server 1031 it connects to the vendor's secondary license server (for example vendor secondary license server 1032 ) to continue issuing licenses.
- FIG. 11 illustrates a block diagram of an exemplary redundant server architecture 1100 having a redundant vendor server group 1130 and a redundant customer license server group 1120 , according to one embodiment of the present invention.
- architecture 1100 illustrates the master customer license server 1121 of a primary redundant server group 1120 configuration communicating with a vendor master license server 1131 of the vendor redundant server group 1130 .
- mini servers 1111 - 1114 there are a number of methods that allow a client, such as clients 1104 - 1109 to find the various mini servers (for example mini servers 1111 - 1114 ) and for the mini servers (e.g., mini servers 1111 - 1114 ) to find the primary master license server (for example, primary master license server 1121 ).
- primary master license server for example, primary master license server 1121
- a license server as described above may be implemented as a network appliance.
- the hierarchical servers described above allow for a network appliance to be used as the primary or a mini server.
- the network appliance is an embedded LINUX box, for example perhaps with a web interface for configuration.
- the encrypted licenses would be stored in flash RAM making it much harder for a hacker to see what is going on. The customer does not need to do anything with license files or license servers. Just “plug and play”.
- a license server network appliance is pre-loaded with the necessary licenses.
- the licensing appliance is used as a secure primary license server. When shipped from the vendor it knows the address of the vendor's license server and when booted up it automatically connects to the vendor license server and downloads the licenses. The customer uses the web interface to manually configure the licenses or connect to the vendor's license server. A few appliances are plugged into a network to act as load balanced mini servers.
- FIG. 12 illustrates a flow chart of an exemplary process 1200 for hierarchical license serving, according to one embodiment of the present invention.
- Process 1200 allows for vendor controlled license servers to provide licenses to a plurality of customer primary license servers.
- the licenses are sent from the plurality of customer primary license servers to a plurality of mini servers.
- a mini-server receives a request for a license from a client.
- the request is served by the mini server by providing the client with the license.
- 1240 )
Abstract
Description
- The field of the invention relates generally to computer systems and more particularly relates to a method and system for hierarchical license servers.
- Generally, when software is sold, the purchaser is granted a license to use the software. Such a license imposes restrictions on the number of computers that can be used simultaneously, the term of use, the number of users allowed to use the software simultaneously in the case of a multi-user system, etc.
- In recent years, however, illegal use of software beyond the restrictions imposed by license has become an object of public concern. For example, most software on the market permits only one computer to run the software, in a clause of the license. However, if the software has no illegal use prevention function incorporated therein, the software can readily be used on numerous computers.
- Various techniques have therefore been developed to prevent illegal use of software. Some of such techniques use computer-specific identification information. Commercial software that is licensed using capacity-related metrics often includes or operates with validation systems that validate whether the software is running in environments which are compliant with current licensing terms and conditions. The commercial software may use a commercially available software application known in the art as a “license manager,” such as ISOGON'S IFOR or Macrovision's FLEX-LM, that uses a “license key” to unlock at least one component of the commercial software. Some electronic form of the license, typically, is evaluated and a license key is provided for the validation system to audit and control the commercial software in accordance with the commercial software licensing terms and conditions.
- As license management software permeates throughout enterprises, existing license server architectures and topographies have failed to meet the demands.
- A method and system for hierarchical license servers is disclosed. According to one embodiment, a computer implemented method comprises receiving license requests from a plurality of clients. The license requests are serviced using a plurality of mini servers, each mini server serving licenses to a client of the plurality of clients in response to a license request of the license requests. A primary license server provides the licenses to the plurality of mini servers.
- The above and other preferred features, including various novel details of implementation and combination of elements, will now be more particularly described with reference to the accompanying drawings and pointed out in the claims. It will be understood that the particular methods and circuits described herein are shown by way of illustration only and not as limitations. As will be understood by those skilled in the art, the principles and features described herein may be employed in various and numerous embodiments without departing from the scope of the invention.
- The accompanying drawings, which are included as part of the present specification, illustrate the presently preferred embodiment of the present invention and together with the general description given above and the detailed description of the preferred embodiment given below serve to explain and teach the principles of the present invention.
-
FIG. 1 illustrates a block diagram of an exemplary software license management systems, according to one embodiment of the present invention; -
FIG. 2 illustrates an exemplary computer architecture for use with the present system, according to one embodiment of the invention; -
FIG. 3 illustrates a block diagram of an exemplary license server hierarchy, according to one embodiment of the present invention; -
FIG. 4 illustrates a block diagram of an exemplarylicense server hierarchy 400 with mini-server groups, according to one embodiment of the present invention; -
FIG. 5 illustrates a block diagram of an exemplarylicense borrowing system 500, according to one embodiment of the present invention; -
FIG. 6 illustrates a block diagram of alicense server hierarchy 600 having a vendor controlled license server, according to one embodiment of the present invention; -
FIG. 7 illustrates a block diagram of an exemplaryredundant server architecture 700, according to one embodiment of the present invention; -
FIG. 8 illustrates a block diagram of an exemplaryredundant server architecture 800 having adongle 830, according to one embodiment of the present invention; -
FIG. 9 illustrates a block diagram of an exemplary redundant server architecture having a vendor license server, according to one embodiment of the present invention; -
FIG. 10 illustrates a block diagram of an exemplary redundant server architecture having a redundant vendor server group, according to one embodiment of the present invention; -
FIG. 11 illustrates a block diagram of an exemplary redundant server architecture having a redundant vendor server group and a redundant customer license server group, according to one embodiment of the present invention; and -
FIG. 12 illustrates a flow chart of an exemplary process for hierarchical license serving, according to one embodiment of the present invention. - A method and system for hierarchical license servers is disclosed. According to one embodiment, a computer implemented method comprises receiving license requests from a plurality of clients. The license requests are serviced using a plurality of mini servers, each mini server serving licenses to a client of the plurality of clients in response to a license request of the license requests. A primary license server provides the licenses to the plurality of mini servers.
- In the following description, for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the various inventive concepts disclosed herein. However, it will be apparent to one skilled in the art that these specific details are not required in order to practice the various inventive concepts disclosed herein.
- Some portions of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
- It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
- The present invention also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
- The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
- As used herein, the following terms shall have the following meanings without regard to its upper or lower case usage.
- “Back-end” refers to a server, computer or system under the control or otherwise authorized by a software Vendor to receive and process information received from a Customer of its usage of software licensed to the Customer by the Vendor.
- “Customer” means a licensee of licensed software.
- “File” refers to what is generally understood as a computer file, but as used here also includes any system for storing and retrieving digital data, inclusive of database managers, registries, directories and data objects.
- “Front-end” refers to a server, computer or system under the control or otherwise authorized by a Customer to execute, manage and/or report usage of software licensed to the Customer.
- “License applet” means a mini server loaded on a client system to support borrowed licenses.
- “Master server” refers to the only license server in a redundant server configuration that is allowed to grant license requests. Should this master fail then the other redundant servers will negotiate to determine which one becomes the new master.
- “Mini server” means the server at the customer's site that connects to the primary license server and is the central point for all clients to connect to and check out licenses.
- “Primary license server” means the server at the customer's site, that may be under the customer's control. It will perform some or all of the following actions depending on the configuration:
- It is the central point for all mini servers to connect to and make licensing requests.
- Connects to the license server at the vendor site (if it exists) to retrieve the licenses.
- Read the local license files.
- Serve licenses to client applications.
- “Secondary server” means a license server in a redundant server configuration that is not allowed to grant licenses because it is only a mirror of the master server.
- “Server” means a computer process that other computer applications, operating systems, system software or compute services interact with. Within this definition, server as used in the terms “client-server”, “multi-tier computing”, “3-tier computing”, network services or web services are included.
- “Vendor” means a licensor of licensed software including its copyright owner and other parties granted a right by the copyright owner to sell or otherwise distribute licenses to Customers to use the licensed software.
- “Vendor license server” means the server that resides at the vendor's site and is responsible for maintaining all the licenses for a given customer.
-
FIG. 1 illustrates a block diagram of an exemplary software license management system, according to one embodiment of the present invention. In addition to license management systems, it is to be appreciated that other systems employing the various teachings herein may also be used to practice the various aspects of the present invention, and as such, are considered to be within its full scope. - System 100 includes a front-end server 101 (also known as a primary license server) that is configurable to control usage of licensed software, and optionally, may also securely communicate with a back-end server 102 (also known as a vendor license server) available at a designated destination, such as via a direct dial-up telephone number, an Internet Uniform Resource Locator (URL), an email address or other networking address. The licensed software application is operative on various front-end computers (also known as clients) connected in a
network 107, including the front-end server 101 and other computers represented as computers 104-106. System 100 represents one of many license management configurations, where clients 104-106 connect directly to theprimary license server 101 to obtain licenses.Primary license server 101 includes license management software. - The
network 107 may be a Local Area Network (LAN), Wide Area Network (WAN), Virtual Private Network (VPN), or other network that is managed or otherwise controlled by a customer of the licensed software. Communication between the front-end server 101, which preferably resides at a location designated or authorized by the customer of the licensed software, and the back-end server 102, which preferably resides at a location designated or authorized by a vendor of the licensed software, is performed through acommunication medium 103, such as the Internet, a private network or a direct dial-up connection. In the case of the Internet, secure transmission of messaging is preferably performed, for example, using the Secure Sockets Layer protocol (SSL), and a Virtual Private Network (VPN). - Alternatively, any one or more of the front-end computers represented by front-end computers 104-106 on the
network 107 may be configured, instead of or in addition to the front-end server 101, to control usage of its licensed software and/or the licensed software of other such computers, generate e-mail messages, and securely transmit the e-mail messages to the back-end server 102. Accordingly, as used herein and in the following claims, the term “front-end server” is understood to also include such front-end computers when performing such functions. In addition to certain of the front-end computers being configured to run the licensed application software, the front-end server 101 may also be so configured. - The back-
end server 102 is configured to receive, authenticate, and process license management messages, the e-mail messages, and deliver the e-mail messages to the end recipient that could be an individual or software entity, such as business operations software. Examples of such business operations software include enterprise resource planning software (ERP), e-commerce software (such as those used for performing transactions over the Internet), customer relationship management software (CRM), and sales force automation software (SFA). -
FIG. 2 illustrates an exemplary computer architecture for use with the present system, according to one embodiment of the invention.Computer architecture 200 can be used to implement both front-end computers (clients) 104-106, front-end servers 101, and back-end servers 102 ofFIG. 1 . One embodiment ofarchitecture 200 comprises a system bus 220 for communicating information, and aprocessor 210 coupled to bus 220 for processing information.Architecture 200 further comprises a random access memory (RAM) or other dynamic storage device 225 (referred to herein as main memory), coupled to bus 220 for storing information and instructions to be executed byprocessor 210.Main memory 225 also may be used for storing temporary variables or other intermediate information during execution of instructions byprocessor 210.Architecture 200 also may include a read only memory (ROM) and/or otherstatic storage device 226 coupled to bus 220 for storing static information and instructions used byprocessor 210. - A
data storage device 227 such as a magnetic disk or optical disc and its corresponding drive may also be coupled tocomputer system 200 for storing information and instructions.Architecture 200 can also be coupled to a second I/O bus 250 via an I/O interface 230. A plurality of I/O devices may be coupled to I/O bus 250, including adisplay device 243, an input device (e.g., analphanumeric input device 242 and/or a cursor control device 241). For example, web pages and business related information may be presented to the user on thedisplay device 243. - The
communication device 240 allows for access to other computers (servers or clients) via a network. Thecommunication device 240 may comprise a modem, a network interface card, a wireless network interface or other well known interface device, such as those used for coupling to Ethernet, token ring, or other types of networks. -
FIG. 3 illustrates a block diagram of an exemplarylicense server hierarchy 300 according to one embodiment of the present invention.License server hierarchy 300 includes a top-level primary license server 301 that reads license files and maintains the list of all licenses; mini-servers 310-313 serve the licenses to client applications; and clients 304-309 that are connected to the mini-servers 310-313. When the primary license server 301 starts up it will read the license files and maintain the list of all available licenses. In one embodiment, the primary license server 301 then waits for mini-servers 310-313 to connect to it. Since primary license server 301 reads the license files it will need to be licensed to run on a particular host. Additionally if the customer so desires, the primary license server 301 will be able to serve licenses to clients 304-309 directly. - According to one embodiment, on start-up each mini-server 310-313 will connect to the primary license server 301 to register its presence within the
hierarchy 300. The primary license server 301 may issue, depending on its configuration, some portion of the total licenses available for a given feature to the requesting mini-server 310-313. These licenses will be held in memory in the mini server 310-313 so that they can be handed out to client applications as needed. When a mini server, for examplemini server 313, runs out of licenses it requests more from the primary license server 301. If the primary license server 301 does not have any licenses available it will request that one of the other mini servers 310-312 return some number of un-used licenses. If there are no un-used licenses in any of the mini servers 310-312 then the checkout request from the client, such asclient 309, may fail. The checkout request may also be queued, and processed at a later time. - Each mini server 310-313 updates the primary license server 301 regularly with usage information so the primary license server 301 can log it and track which clients 304-309 are connected to which mini server 310-313. In some configurations, licenses are checked out constantly. In one embodiment, so that the network is not flooded with usage data relating to the checked-out licenses, the usage data is batched, compressed, and then sent to the primary license server 301. Since the mini servers 310-313 communicate through the primary license server 301 the mini servers 310-313 do not need to communicate with each other. This allows the customers to maintain discrete networks but still maintain a single primary license server 301.
- According to another embodiment,
hierarchy 300 may be adapted to include redundant mini severs. If a mini server, for examplemini server 312, goes down the clients, for example clients 306-308 connected to it will be able to connect to another mini server, for example,mini server 311 to obtain a license. - Primary license server 301 updates each mini server 310-313 with information about the other mini servers. Each mini server 310-313 in-turn updates its clients 304-309 with the information about the other mini servers 310-313. In case of a mini server 310-313 crash, or other failure, a client 304-309 can automatically switch to another mini server 310-313. The client 304-309 will cache the information about the other mini servers 310-313 so that the next time it starts up it can find an alternate mini server if it's preferred mini server is unavailable.
- Depending on the license issued by the vendor, when a mini server 310-313 loses its connection to a primary license server 301 it may be configured to perform the following actions:
- Continue serving currently connected clients 304-309 but not allow new license requests.
- Continue serving its allocation of licenses for some period of time.
- Quit and force clients 304-309 to connect to another mini server 310-313.
- Quit and force clients 304-309 to quit.
- Since the mini servers 310-313 do not read license files they do not need to be licensed to a specific host. This allows the customer to run any number of mini servers 310-313 it desires. In an alternate embodiment, a vendor may license the primary license server 301 such that it will only allow a specified number of mini-servers to connect to it.
- A primary license server 301 maintains usage data so it can track which clients 304-309 are connected to which mini server 310-313. When a client, for
example client 306, switches frommini server 312 to another mini server, for examplemini server 311 becausemini server 312 is no longer responding, theclient 306 transmits a message to the newmini server 311 that it lost its connection to the previousmini server 312. This information is then sent to the Primary license server 301. At this point the primary license server 301 knows that it can remove this license from the disconnectedmini server 312 and release it to the nextmini server 311. The period of time that the primary license server 301 holds on to the licenses for the disconnectedmini server 312 is determined by the vendor with the license they grant to the primary license server. This may be the same amount of time the mini server is allowed to serve licenses without a connection to its primary license server 301. - The present method and system allow for load balancing among mini-servers 310-313. The usage information that the primary license server 301 maintains is used to determine the load on each of the mini servers 310-313. This allow the primary license server to determine how to balance the client load on each of the mini servers 310-313. When the primary license server 301 determines that a mini server is at its maximum load, for
example mini-server 312, it will send instructions to the mini-server 312 to re-direct clients 306-308 to another mini server, for examplemini server 311. - Depending on the configuration, the maximum load may be based upon different indicators, some of which are listed here:
-
- The maximum number of licenses the mini server 310-313 is configured for.
- The number of license requests per second the mini server 310-313 is handling
- An even division of the load between all mini servers 310-313.
- Placement of the mini servers 310-313 in order so that all clients 304-309 are directed to the first mini server in the list until it has reached it's maximum load and then direct clients 304-309 to the next mini server, whether logical or physical.
- Time of day.
A local administrator may configure these parameters.
-
FIG. 4 illustrates a block diagram of an exemplarylicense server hierarchy 400 with mini-server groups, according to one embodiment of the present invention.License server hierarchy 400 includesmini server groups mini servers example California group 410 andUK group 420. - This provides a number of additional capabilities. The customer configures the
primary license server 401 to define the maximum and minimum number of licenses allowed in any givengroup - Regarding load balancing as described above, group identifiers are used for the
mini servers primary license server 401 only redirects clients, for example 404-406 to another mini server in the same group, for examplemini server 412 ingroup 410. The local administrator has the ability to configure the group information and load balancing betweenmini servers -
FIG. 5 illustrates a block diagram of an exemplarylicense borrowing system 500, according to one embodiment of the present invention. A license borrowing mechanism is needed when a client, forexample laptop 504, disconnects from the primary license server, such asprimary license server 501.License borrowing system 500 includes aprimary license server 501,clients laptop 504.Laptop 504 includes alicense server applet 507,secure storage 508, and aclient application 509 that requires a license fromprimary license server 501. When a request to borrow a license occurs, thelicense applet 507 requests a borrowed license from either a mini server orprimary server 501, depending on what it is connected to. Thelicense applet 507 caches this license in an encrypted file or othersecure storage 508. When theclient application 509 runs it requests a license from the local license server, in this case theserver applet 507. - If a license is borrowed from a mini server, the mini server transmits this usage information to the primary server, such as
primary license server 501, so that if there is a server failure somewhere the borrow information is saved. Additionally, this allows the borrowed license to be returned to any mini server. In another embodiment, aclient 504 maintains a constant borrowed license for some specified period of time. The vendor's licensing of theprimary server 501 determines things like this along with the maximum and minimum borrow periods. -
FIG. 6 illustrates a block diagram of alicense server hierarchy 600 having a vendor controlled license server, according to one embodiment of the present invention.Hierarchy 600 includes clients 604-609, mini servers 611-614, customer primary license server 601, and a vendor controlledlicense server 602 connected by theInternet 603. Thevendor license server 602 is under the control of the vendor. Whether thevendor license server 602 is at the vendor's site or not is unimportant. The primary license server 601 at the customer's site will connect to and retrieve its licenses from thevendor license server 602. - Depending on the vendor's licensing configuration, the primary server 601 at the customer's site caches licenses in an encrypted file or other secure storage. In event of a loss of communication between the primary server 601 and the
vendor license server 602, the primary license server 601 can continue to serve licenses for some period of time. The customer's primary server 601 is unable to fulfill license requests if it is not in communication with thevendor license server 602 for some period of time specified by the vendor. - A vendor controlled
license server 602 provides numerous benefits for the vendor. For example: -
- the vendor has full control over the issuance and storage of licenses;
- customers do not see a text version of the license, minimizing customer license tampering;
- hackers are deterred from creating counterfeit licenses;
- licenses can be revoked if the vendor misses a payment;
- a reduced support load for license administration at the customer site;
- re-hosting the primary license server 601 is facilitated; and
- full-feature usage information is available to the vendor, including usage based licensing and secure billing.
- A vendor controlled
license server 602 provides numerous benefits for the customer as well. For example: -
- the customer need not worry about license management including license keys or license files;
- re-hosting the primary license server 601 is facilitated;
- problems with redundant servers are alleviated;
- license retrieval is automated so that if a feature is requested by a client that the primary server 601 does not know about, the primary server 601 can contact the
vendor server 602 and download the feature.
-
FIG. 7 illustrates a block diagram of an exemplaryredundant server architecture 700, according to one embodiment of the present invention. Redundant servers may be dongle based, a 3-server redundancy scheme, redundancy with a connection to a vendor license server, or other similar redundancy mechanisms.Redundant server architecture 700 includes three redundant servers 721-723, connected to mini servers 711-714 that are connected to clients 704-709. Whenredundant servers 720 start up they exchange information with each other. As mini severs 711-714 or clients 704-709 connect to one of theseredundant servers 720 they are given all the information about all possibleredundant servers 720 along with the current master license server 721. If a mini server 711-714 or client 704-709 is not currently connected to the master license server 721 it will be redirected to the master license server 721. - According to one embodiment, only the master license server 721 distributes licenses. The secondary license servers 721-723 are regularly updated by the master license server 721 to mirror the current state of master license server 721. If master license server 721 crashes then the remaining secondary license servers 712-713 negotiate between themselves to determine which will be the new master license server. If the master license server 721 goes down or loses communication, then a client 704-709 or mini server 711-714 having detected the lost connection to the master server 721 redirects traffic to one of the secondary license servers 722-723, such that license checkouts continue uninterrupted.
-
Architecture 700 includes threeprimary license servers 720, of which one is designated the master license server 721 and the other two are the secondary mirrored license servers 722-723. The license issued by the vendor includes the host ids from all threelicense servers 720. At least two of the threeredundant servers 720 must be running and communicating with each other to serve licenses to the mini servers 711-714 or clients 704-709. -
FIG. 8 illustrates a block diagram of an exemplaryredundant server architecture 800 having adongle 830, according to one embodiment of the present invention. With the use of a dongle 830 a customer can run any number of primary license servers 821-823 where only the server with thedongle 830 is themaster license server 821 and distributes licenses to the mini servers 811-814 or clients 804-809. The other secondary license servers 822-823 act as mirrors of themaster license server 821 and do not grant licenses. - If a mini server 811-814 or client 804-809 loses its connection to the
master license server 821 with thedongle 830, it connects to one of the secondary license servers 822-823. Depending on how the vendor licenses the redundant server configuration they may allow a secondary license server 822-823 without thedongle 830 to server licenses for some short period of time to allow thedongle 830 to be moved without interruption in service. - When the
dongle 830 is connected to one of the secondary license servers 822-823 the secondary license server, forexample server 822, becomes the new master and communicates that information to the other secondary servers, forexample server 823. Since thenew master 822 was mirrored from theoriginal master 821 it has all the connection and usage information. Thenew master 822 can connect to each mini server 811-814 to tell it which server is the new master. -
FIG. 9 illustrates a block diagram of an exemplaryredundant server architecture 900 having a vendor license server 931, according to one embodiment of the present invention.Redundant server architecture 900 includes vendor controlled license server 931,redundant server group 920, mini servers 911-914, and clients 904-909. The vendor controlled license server 931 andredundant server group 920 are connected via theInternet 940.Architecture 900 is similar toarchitecture 800 that uses a dongle. Primarymaster license server 921 downloads licenses from the vendor license server 931 and any number of secondary mirrored servers at the customer's site. If themaster license server 921 goes down then one of thesecondary license servers 922 becomes the master and connects to the vendor license server 931 to verify the licenses and then grants license requests. Themaster license server 921 may be granted a license by the vendor license server 931 to run for some period of time if it loses communication with the vendor license server 931. -
FIG. 10 illustrates a block diagram of an exemplaryredundant server architecture 1000 having a redundantvendor server group 1030, according to one embodiment of the present invention.Architecture 1000 includes redundantvendor server group 1030, customerprimary license server 1021, mini servers 1011-1014, and clients 1004-1009. Theredundant server group 1030 is connected to thecustomer primary server 1021 via theInternet 1040. Redundantvendor server group 1030 includes one master vendor license server 1031 that fulfills requests from a customerprimary license server 1021 and some number of mirrored secondary vendor license servers 1032-1033. - The vendor maintains multiple redundant servers 1032-1033 to guarantee uptime to its customers. Since the vendor secondary license servers 1022-1023 are under the control of the vendor, a redundant
vendor server group 1030 is easier to maintain than maintaining redundant servers at a customer site. When a customerprimary license server 1021 loses its connection to the vendor master license server 1031 it connects to the vendor's secondary license server (for example vendor secondary license server 1032) to continue issuing licenses. -
FIG. 11 illustrates a block diagram of an exemplaryredundant server architecture 1100 having a redundantvendor server group 1130 and a redundant customerlicense server group 1120, according to one embodiment of the present invention. Unlikearchitecture 1000 ofFIG. 10 that shows a singleprimary server 1021 connected to the vendor master license server 1031 of theredundant server group 1030,architecture 1100 illustrates the mastercustomer license server 1121 of a primaryredundant server group 1120 configuration communicating with a vendormaster license server 1131 of the vendorredundant server group 1130. - There are a number of methods that allow a client, such as clients 1104-1109 to find the various mini servers (for example mini servers 1111-1114) and for the mini servers (e.g., mini servers 1111-1114) to find the primary master license server (for example, primary master license server 1121). The following are examples of methods:
-
- The client is configured with the necessary information to find the mini servers.
- A broadcast message is sent that the server replies to.
- Directory services on Windows.
- Hard coding a default host name, such as ‘licenseserver’ to look for in the absence of other configuration information. The customer can setup a DNS entry for this on their network. The host name is configurable by the vendor.
- The primary server is configured to be the repository of all configuration and address information.
- For the client the primary server sends the information about all the mini servers. The client caches this information for later use.
- For the mini servers the primary servers are configured to know about all the mini servers used so that the primary server connects to the mini servers. The primary server sends the information about all the other mini servers to the connected mini server. This method allows the customer to manage its configuration as only one system is configured.
- Dynamic redirection, such that if a client connects to a primary or mini server, either of the servers may redirect the client to another server. Additionally a mini server will be able to re-direct a client at any time during a session. Redirection allows support of the graceful shutdown of a mini server as well as load balancing.
- According to one embodiment, a license server as described above may be implemented as a network appliance. The hierarchical servers described above allow for a network appliance to be used as the primary or a mini server. The network appliance is an embedded LINUX box, for example perhaps with a web interface for configuration. The encrypted licenses would be stored in flash RAM making it much harder for a hacker to see what is going on. The customer does not need to do anything with license files or license servers. Just “plug and play”.
- A license server network appliance is pre-loaded with the necessary licenses. The licensing appliance is used as a secure primary license server. When shipped from the vendor it knows the address of the vendor's license server and when booted up it automatically connects to the vendor license server and downloads the licenses. The customer uses the web interface to manually configure the licenses or connect to the vendor's license server. A few appliances are plugged into a network to act as load balanced mini servers.
-
FIG. 12 illustrates a flow chart of anexemplary process 1200 for hierarchical license serving, according to one embodiment of the present invention.Process 1200 allows for vendor controlled license servers to provide licenses to a plurality of customer primary license servers. (1210) The licenses are sent from the plurality of customer primary license servers to a plurality of mini servers. (1220) A mini-server receives a request for a license from a client. (1230) The request is served by the mini server by providing the client with the license. (1240) - A method and system for hierarchical license servers has been disclosed. Although the present methods and systems have been described with respect to specific examples and subsystems, it will be apparent to those of ordinary skill in the art that it is not limited to these specific examples or subsystems but extends to other embodiments as well.
Claims (18)
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/195,314 US20070033395A1 (en) | 2005-08-02 | 2005-08-02 | Method and system for hierarchical license servers |
JP2008525152A JP2009503737A (en) | 2005-08-02 | 2006-08-01 | Method and system for hierarchical license server |
CA002617246A CA2617246A1 (en) | 2005-08-02 | 2006-08-01 | A method and system for hierarchical license servers |
AU2006275448A AU2006275448A1 (en) | 2005-08-02 | 2006-08-01 | A method and system for hierarchical license servers |
PCT/US2006/030089 WO2007016624A2 (en) | 2005-08-02 | 2006-08-01 | A method and system for hierarchical license servers |
EP06789190A EP1913456A4 (en) | 2005-08-02 | 2006-08-01 | A method and system for hierarchical license servers |
CNA200680028275XA CN101233470A (en) | 2005-08-02 | 2006-08-01 | Method and system for hierarchical license servers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/195,314 US20070033395A1 (en) | 2005-08-02 | 2005-08-02 | Method and system for hierarchical license servers |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070033395A1 true US20070033395A1 (en) | 2007-02-08 |
Family
ID=37709346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/195,314 Abandoned US20070033395A1 (en) | 2005-08-02 | 2005-08-02 | Method and system for hierarchical license servers |
Country Status (7)
Country | Link |
---|---|
US (1) | US20070033395A1 (en) |
EP (1) | EP1913456A4 (en) |
JP (1) | JP2009503737A (en) |
CN (1) | CN101233470A (en) |
AU (1) | AU2006275448A1 (en) |
CA (1) | CA2617246A1 (en) |
WO (1) | WO2007016624A2 (en) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060179058A1 (en) * | 2005-02-04 | 2006-08-10 | Charles Bram | Methods and systems for licensing computer software |
US20090048691A1 (en) * | 2007-08-16 | 2009-02-19 | Honeywell International Inc. | Embedded building conroller with stored software license information |
US20090055835A1 (en) * | 2007-08-20 | 2009-02-26 | Telefonaktiebolaget Lm Ericsson (Publ) | System and Method for Managing License Capacity in a Telecommunication Network |
US20090161548A1 (en) * | 2007-12-24 | 2009-06-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and Apparatus for Event Distribution in Messaging Systems |
US20090177698A1 (en) * | 2008-01-09 | 2009-07-09 | Microsoft Corporation | Client Access License Tracking Mechanism |
US20090210923A1 (en) * | 2008-02-19 | 2009-08-20 | Jogand-Coulomb Fabrice E | Personal license server and methods for use thereof |
US20100167765A1 (en) * | 2008-12-31 | 2010-07-01 | Sybase | System and Method For Enhanced Application Server |
US20100167764A1 (en) * | 2008-12-31 | 2010-07-01 | Sybase | System and Method For Message-Based Conversations |
US20100169947A1 (en) * | 2008-12-31 | 2010-07-01 | Sybase, Inc. | System and method for mobile user authentication |
US20100229225A1 (en) * | 2009-03-05 | 2010-09-09 | Sybase, Inc. | System and method for second factor authentication |
JP2012098762A (en) * | 2010-10-29 | 2012-05-24 | Ricoh Co Ltd | License management system, function provider, license management method, and license management program |
CN103098065A (en) * | 2010-09-16 | 2013-05-08 | 株式会社理光 | License install support system, license install support method |
US20130144742A1 (en) * | 2011-12-05 | 2013-06-06 | Sap Ag | User license usage verification |
US20140068041A1 (en) * | 2012-09-06 | 2014-03-06 | Eric T. Obligacion | Team processing using dynamic licenses |
US20140130024A1 (en) * | 2012-11-08 | 2014-05-08 | International Business Machines Corporation | Automatic License Entitlement Calculation |
US8725645B1 (en) | 2013-01-04 | 2014-05-13 | Cetrus LLC | Non-invasive metering system for software licenses |
US8904174B2 (en) | 2011-03-22 | 2014-12-02 | International Business Machines Corporation | System, method and computer program product for product license management |
JP2015510634A (en) * | 2012-01-27 | 2015-04-09 | マイクロソフト コーポレーション | Application licensing using sync providers |
US20150242599A1 (en) * | 2014-02-26 | 2015-08-27 | Schlumberger Technology Corporation | Cluster license server |
US9336368B2 (en) | 2010-09-16 | 2016-05-10 | Ricoh Company, Ltd. | License install support system, license install support method |
CN110175036A (en) * | 2019-04-08 | 2019-08-27 | 北京深思数盾科技股份有限公司 | The upgrade method and device of soft-lock license |
US11576310B2 (en) * | 2018-08-31 | 2023-02-14 | Agritainer, Llc | Systems and methods for efficient fogponic agriculture |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4791400B2 (en) * | 2007-03-27 | 2011-10-12 | 富士通株式会社 | Local start determination program, local start determination device, and local start determination method |
JP4533935B2 (en) * | 2008-01-22 | 2010-09-01 | 日立ソフトウエアエンジニアリング株式会社 | License authentication system and authentication method |
JP5177852B2 (en) * | 2008-01-23 | 2013-04-10 | Necインフロンティア株式会社 | License key sharing method and license key sharing system |
US7506038B1 (en) | 2008-05-29 | 2009-03-17 | International Business Machines Corporation | Configuration management system and method thereof |
JP5458535B2 (en) * | 2008-09-12 | 2014-04-02 | 株式会社リコー | Device, license management method, program, and license management system |
ES2853200T3 (en) * | 2009-05-29 | 2021-09-15 | Alcatel Lucent | System and procedure to access private digital content |
WO2015063936A1 (en) * | 2013-10-31 | 2015-05-07 | 株式会社島津製作所 | Software license management method and system |
JP6208645B2 (en) * | 2014-09-30 | 2017-10-04 | 富士通エフ・アイ・ピー株式会社 | License management method and license management system |
JP6304153B2 (en) * | 2015-07-13 | 2018-04-04 | 京セラドキュメントソリューションズ株式会社 | License management system and license management method |
JP6166758B2 (en) * | 2015-09-30 | 2017-07-19 | 株式会社電通国際情報サービス | Information processing system, information processing method, and information processing program |
CN109840402B (en) * | 2018-12-19 | 2021-11-23 | 北京百度网讯科技有限公司 | Privatization service authorization management method and device, computer equipment and storage medium |
CN111970319A (en) * | 2020-06-22 | 2020-11-20 | 联想(北京)有限公司 | Distribution control method of software License and network equipment |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5023907A (en) * | 1988-09-30 | 1991-06-11 | Apollo Computer, Inc. | Network license server |
US5260999A (en) * | 1991-06-28 | 1993-11-09 | Digital Equipment Corporation | Filters in license management system |
US5579222A (en) * | 1991-11-27 | 1996-11-26 | Intergraph Corporation | Distributed license administration system using a local policy server to communicate with a license server and control execution of computer programs |
US5754763A (en) * | 1996-10-01 | 1998-05-19 | International Business Machines Corporation | Software auditing mechanism for a distributed computer enterprise environment |
US5758069A (en) * | 1996-03-15 | 1998-05-26 | Novell, Inc. | Electronic licensing system |
US5790664A (en) * | 1996-02-26 | 1998-08-04 | Network Engineering Software, Inc. | Automated system for management of licensed software |
US6023766A (en) * | 1997-02-14 | 2000-02-08 | Fujitsu Limited | Software license control system and software license control equipment |
US6189146B1 (en) * | 1998-03-18 | 2001-02-13 | Microsoft Corporation | System and method for software licensing |
US20010013024A1 (en) * | 2000-02-08 | 2001-08-09 | Yoshinori Takahashi | Apparatus and method for managing software licenses and storage medium storing a program for managing software licenses |
US20020069172A1 (en) * | 2000-09-15 | 2002-06-06 | Barry Omshehe | Method and system for administering a concurrent user licensing agreement on a manufacturing/process control information portal server |
US20030084306A1 (en) * | 2001-06-27 | 2003-05-01 | Rajasekhar Abburi | Enforcement architecture and method for digital rights management system for roaming a license to a plurality of user devices |
US6574612B1 (en) * | 1999-02-19 | 2003-06-03 | International Business Machines Corporation | License management system |
US20040010471A1 (en) * | 2002-07-09 | 2004-01-15 | Rohan Lenard | Multi-site software license balancing |
US20040193544A1 (en) * | 2003-03-31 | 2004-09-30 | Sridhar Varadarajan | System and method maximizing video license utilization using billboard services |
US6842896B1 (en) * | 1999-09-03 | 2005-01-11 | Rainbow Technologies, Inc. | System and method for selecting a server in a multiple server license management system |
US20050187957A1 (en) * | 2004-02-20 | 2005-08-25 | Michael Kramer | Architecture for controlling access to a service by concurrent clients |
US20060085350A1 (en) * | 2004-09-28 | 2006-04-20 | Siemens Information And Communication Networks, Inc. | Enterprise-wide flexible software licensing model |
US20060248017A1 (en) * | 2005-04-28 | 2006-11-02 | Macrovision Corporation | Distributed license management |
US7260557B2 (en) * | 2003-02-27 | 2007-08-21 | Avaya Technology Corp. | Method and apparatus for license distribution |
US7269848B2 (en) * | 2003-05-02 | 2007-09-11 | Texas Instruments Incorporated | Method and system for access to development environment of another in a secure zone |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69228350T2 (en) * | 1991-05-08 | 1999-09-23 | Digital Equipment Corp | ADMINISTRATIVE INTERFACE AND FORMAT FOR LICENSE MANAGEMENT SYSTEM |
US5905860A (en) * | 1996-03-15 | 1999-05-18 | Novell, Inc. | Fault tolerant electronic licensing system |
JP3665460B2 (en) * | 1997-12-05 | 2005-06-29 | 富士通株式会社 | Route selection system, method, and recording medium by response time tuning of distributed autonomous cooperation type |
JP4040234B2 (en) * | 2000-03-27 | 2008-01-30 | ローム株式会社 | Network system |
JP2003323224A (en) * | 2002-04-30 | 2003-11-14 | Daikin Ind Ltd | System and method for license management, apparatus and method for information processing, and program |
-
2005
- 2005-08-02 US US11/195,314 patent/US20070033395A1/en not_active Abandoned
-
2006
- 2006-08-01 CN CNA200680028275XA patent/CN101233470A/en active Pending
- 2006-08-01 AU AU2006275448A patent/AU2006275448A1/en not_active Abandoned
- 2006-08-01 CA CA002617246A patent/CA2617246A1/en not_active Abandoned
- 2006-08-01 EP EP06789190A patent/EP1913456A4/en not_active Withdrawn
- 2006-08-01 JP JP2008525152A patent/JP2009503737A/en active Pending
- 2006-08-01 WO PCT/US2006/030089 patent/WO2007016624A2/en active Application Filing
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5023907A (en) * | 1988-09-30 | 1991-06-11 | Apollo Computer, Inc. | Network license server |
US5260999A (en) * | 1991-06-28 | 1993-11-09 | Digital Equipment Corporation | Filters in license management system |
US5579222A (en) * | 1991-11-27 | 1996-11-26 | Intergraph Corporation | Distributed license administration system using a local policy server to communicate with a license server and control execution of computer programs |
US5790664A (en) * | 1996-02-26 | 1998-08-04 | Network Engineering Software, Inc. | Automated system for management of licensed software |
US5758069A (en) * | 1996-03-15 | 1998-05-26 | Novell, Inc. | Electronic licensing system |
US5754763A (en) * | 1996-10-01 | 1998-05-19 | International Business Machines Corporation | Software auditing mechanism for a distributed computer enterprise environment |
US6023766A (en) * | 1997-02-14 | 2000-02-08 | Fujitsu Limited | Software license control system and software license control equipment |
US6189146B1 (en) * | 1998-03-18 | 2001-02-13 | Microsoft Corporation | System and method for software licensing |
US6574612B1 (en) * | 1999-02-19 | 2003-06-03 | International Business Machines Corporation | License management system |
US6842896B1 (en) * | 1999-09-03 | 2005-01-11 | Rainbow Technologies, Inc. | System and method for selecting a server in a multiple server license management system |
US20010013024A1 (en) * | 2000-02-08 | 2001-08-09 | Yoshinori Takahashi | Apparatus and method for managing software licenses and storage medium storing a program for managing software licenses |
US20020069172A1 (en) * | 2000-09-15 | 2002-06-06 | Barry Omshehe | Method and system for administering a concurrent user licensing agreement on a manufacturing/process control information portal server |
US20030084306A1 (en) * | 2001-06-27 | 2003-05-01 | Rajasekhar Abburi | Enforcement architecture and method for digital rights management system for roaming a license to a plurality of user devices |
US20040010471A1 (en) * | 2002-07-09 | 2004-01-15 | Rohan Lenard | Multi-site software license balancing |
US7260557B2 (en) * | 2003-02-27 | 2007-08-21 | Avaya Technology Corp. | Method and apparatus for license distribution |
US20040193544A1 (en) * | 2003-03-31 | 2004-09-30 | Sridhar Varadarajan | System and method maximizing video license utilization using billboard services |
US7269848B2 (en) * | 2003-05-02 | 2007-09-11 | Texas Instruments Incorporated | Method and system for access to development environment of another in a secure zone |
US20050187957A1 (en) * | 2004-02-20 | 2005-08-25 | Michael Kramer | Architecture for controlling access to a service by concurrent clients |
US20060085350A1 (en) * | 2004-09-28 | 2006-04-20 | Siemens Information And Communication Networks, Inc. | Enterprise-wide flexible software licensing model |
US20060248017A1 (en) * | 2005-04-28 | 2006-11-02 | Macrovision Corporation | Distributed license management |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060179058A1 (en) * | 2005-02-04 | 2006-08-10 | Charles Bram | Methods and systems for licensing computer software |
US20090048691A1 (en) * | 2007-08-16 | 2009-02-19 | Honeywell International Inc. | Embedded building conroller with stored software license information |
US9147049B2 (en) | 2007-08-16 | 2015-09-29 | Honeywell International Inc. | Embedded building conroller with stored software license information |
US20090055835A1 (en) * | 2007-08-20 | 2009-02-26 | Telefonaktiebolaget Lm Ericsson (Publ) | System and Method for Managing License Capacity in a Telecommunication Network |
US20090161548A1 (en) * | 2007-12-24 | 2009-06-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and Apparatus for Event Distribution in Messaging Systems |
US7817544B2 (en) * | 2007-12-24 | 2010-10-19 | Telefonaktiebolaget L M Ericcson (Publ) | Methods and apparatus for event distribution in messaging systems |
US20090177698A1 (en) * | 2008-01-09 | 2009-07-09 | Microsoft Corporation | Client Access License Tracking Mechanism |
US10354255B2 (en) | 2008-01-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Client access license tracking mechanism |
CN101952832A (en) * | 2008-02-19 | 2011-01-19 | 桑迪士克公司 | Personal license server and methods for use thereof |
US20090210923A1 (en) * | 2008-02-19 | 2009-08-20 | Jogand-Coulomb Fabrice E | Personal license server and methods for use thereof |
US8561130B2 (en) * | 2008-02-19 | 2013-10-15 | Sandisk Technologies Inc. | Personal license server and methods for use thereof |
US9788205B2 (en) | 2008-12-31 | 2017-10-10 | Sybase, Inc. | System and method for second factor authentication |
US20100167765A1 (en) * | 2008-12-31 | 2010-07-01 | Sybase | System and Method For Enhanced Application Server |
US9306747B2 (en) | 2008-12-31 | 2016-04-05 | Sybase, Inc. | System and method for second factor authentication |
US20100169947A1 (en) * | 2008-12-31 | 2010-07-01 | Sybase, Inc. | System and method for mobile user authentication |
US20100167764A1 (en) * | 2008-12-31 | 2010-07-01 | Sybase | System and Method For Message-Based Conversations |
US9100222B2 (en) | 2008-12-31 | 2015-08-04 | Sybase, Inc. | System and method for mobile user authentication |
US9209994B2 (en) | 2008-12-31 | 2015-12-08 | Sybase, Inc. | System and method for enhanced application server |
US8903434B2 (en) | 2008-12-31 | 2014-12-02 | Sybase, Inc. | System and method for message-based conversations |
US8380989B2 (en) * | 2009-03-05 | 2013-02-19 | Sybase, Inc. | System and method for second factor authentication |
US20100229225A1 (en) * | 2009-03-05 | 2010-09-09 | Sybase, Inc. | System and method for second factor authentication |
CN103098065A (en) * | 2010-09-16 | 2013-05-08 | 株式会社理光 | License install support system, license install support method |
US9336368B2 (en) | 2010-09-16 | 2016-05-10 | Ricoh Company, Ltd. | License install support system, license install support method |
JP2012098762A (en) * | 2010-10-29 | 2012-05-24 | Ricoh Co Ltd | License management system, function provider, license management method, and license management program |
US8904174B2 (en) | 2011-03-22 | 2014-12-02 | International Business Machines Corporation | System, method and computer program product for product license management |
US20130144742A1 (en) * | 2011-12-05 | 2013-06-06 | Sap Ag | User license usage verification |
JP2015510634A (en) * | 2012-01-27 | 2015-04-09 | マイクロソフト コーポレーション | Application licensing using sync providers |
US10057370B2 (en) * | 2012-09-06 | 2018-08-21 | Unisys Corporation | Team processing using dynamic licenses |
US20140068041A1 (en) * | 2012-09-06 | 2014-03-06 | Eric T. Obligacion | Team processing using dynamic licenses |
US20140130024A1 (en) * | 2012-11-08 | 2014-05-08 | International Business Machines Corporation | Automatic License Entitlement Calculation |
US8856757B2 (en) * | 2012-11-08 | 2014-10-07 | International Business Machines Corporation | Automatic license entitlement calculation |
US8856758B2 (en) * | 2012-11-08 | 2014-10-07 | International Business Machines Corporation | Automatic license entitlement calculation |
US20140129282A1 (en) * | 2012-11-08 | 2014-05-08 | International Business Machines Corporation | Automatic License Entitlement Calculation |
US8725645B1 (en) | 2013-01-04 | 2014-05-13 | Cetrus LLC | Non-invasive metering system for software licenses |
US20150242599A1 (en) * | 2014-02-26 | 2015-08-27 | Schlumberger Technology Corporation | Cluster license server |
US11576310B2 (en) * | 2018-08-31 | 2023-02-14 | Agritainer, Llc | Systems and methods for efficient fogponic agriculture |
CN110175036A (en) * | 2019-04-08 | 2019-08-27 | 北京深思数盾科技股份有限公司 | The upgrade method and device of soft-lock license |
CN110175036B (en) * | 2019-04-08 | 2020-10-09 | 北京深思数盾科技股份有限公司 | Upgrading method and device for soft lock permission |
Also Published As
Publication number | Publication date |
---|---|
WO2007016624A2 (en) | 2007-02-08 |
JP2009503737A (en) | 2009-01-29 |
AU2006275448A1 (en) | 2007-02-08 |
EP1913456A4 (en) | 2011-03-09 |
EP1913456A2 (en) | 2008-04-23 |
WO2007016624A3 (en) | 2007-10-25 |
CA2617246A1 (en) | 2007-02-08 |
CN101233470A (en) | 2008-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070033395A1 (en) | Method and system for hierarchical license servers | |
US6067582A (en) | System for installing information related to a software application to a remote computer over a network | |
CN102947797B (en) | The online service using directory feature extending transversely accesses and controls | |
US8620817B2 (en) | Method and system for creating license management in software applications | |
US8254579B1 (en) | Cryptographic key distribution using a trusted computing platform | |
US7996687B2 (en) | Product for providing a scalable trusted platform module in a hypervisor environment | |
US7707248B2 (en) | Credit-based peer-to-peer storage | |
US20060294580A1 (en) | Administration of access to computer resources on a network | |
US8311225B2 (en) | Scalable key archival | |
US20050289072A1 (en) | System for automatic, secure and large scale software license management over any computer network | |
US8131830B2 (en) | System and method for providing support services using administrative rights on a client computer | |
US20040039705A1 (en) | Distributing a software product activation key | |
JP2004110646A (en) | License issuance server, processor, software execution management device, license issuance method and license issuance program | |
KR20140116166A (en) | Application licensing using sync providers | |
US20090222926A1 (en) | Software license management system that functions in a disconnected or intermittently connected mode | |
JP2005166052A (en) | System for transferring standby resource entitlement | |
US7657945B2 (en) | Systems and arrangements to adjust resource accessibility based upon usage modes | |
CN110199283A (en) | For the system and method that authentication platform is trusted in network function virtualized environment | |
KR102175317B1 (en) | Virtual Desktop Infrastructure | |
JP4802105B2 (en) | Information network operating method and system for content publication | |
US20060075103A1 (en) | Systems, methods, and media for providing access to clients on a network | |
US20150296051A1 (en) | Methods, remote access systems, client computing devices, and server devices for use in remote access systems | |
JP2008176749A (en) | Id lending device, id lending program, and id lending method | |
US20060206923A1 (en) | Method and system for self-encrypting key identification | |
WO2001071638A1 (en) | An internet storage service system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MACROVISION CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MACLEAN, KIRK A.;REEL/FRAME:016828/0646 Effective date: 20050802 |
|
AS | Assignment |
Owner name: BANK OF MONTREAL, AS AGENT, ILLINOIS Free format text: SECURITY AGREEMENT;ASSIGNOR:ACRESSO SOFTWARE INC.;REEL/FRAME:020741/0288 Effective date: 20080401 |
|
AS | Assignment |
Owner name: ACRESSO SOFTWARE INC., ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MACROVISION CORPORATION;REEL/FRAME:020817/0960 Effective date: 20080401 |
|
AS | Assignment |
Owner name: FLEXERA SOFTWARE, INC., ILLINOIS Free format text: CHANGE OF NAME;ASSIGNOR:ACRESSO SOFTWARE INC.;REEL/FRAME:023565/0861 Effective date: 20091009 Owner name: FLEXERA SOFTWARE, INC.,ILLINOIS Free format text: CHANGE OF NAME;ASSIGNOR:ACRESSO SOFTWARE INC.;REEL/FRAME:023565/0861 Effective date: 20091009 |
|
AS | Assignment |
Owner name: FLEXERA SOFTWARE, INC. (F/K/A ACRESSO SOFTWARE INC Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF MONTREAL, AS AGENT;REEL/FRAME:025668/0070 Effective date: 20101222 |
|
AS | Assignment |
Owner name: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT, UNITED Free format text: SECURITY AGREEMENT;ASSIGNOR:FLEXERA SOFTWARE, INC.;REEL/FRAME:025675/0840 Effective date: 20110120 |
|
AS | Assignment |
Owner name: FLEXERA SOFTWARE LLC, ILLINOIS Free format text: CERTIFICATE OF CONVERSION;ASSIGNOR:FLEXERA SOFTWARE, INC.;REEL/FRAME:026994/0341 Effective date: 20110929 |
|
AS | Assignment |
Owner name: FLEXERA SOFTWARE, INC., ILLINOIS Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL;ASSIGNOR:BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT;REEL/FRAME:027004/0601 Effective date: 20110930 |
|
AS | Assignment |
Owner name: BANK OF MONTREAL, AS COLLATERAL AGENT, ILLINOIS Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:FLEXERA SOFTWARE LLC;REEL/FRAME:027021/0054 Effective date: 20110930 Owner name: BANK OF MONTREAL, AS COLLATERAL AGENT, ILLINOIS Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:FLEXERA SOFTWARE LLC;REEL/FRAME:027022/0202 Effective date: 20110930 |
|
AS | Assignment |
Owner name: FLEXERA SOFTWARE LLC, ILLINOIS Free format text: RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 027022/0202;ASSIGNOR:BNAK OF MONTREAL, AS COLLATERAL AGENT;REEL/FRAME:030081/0156 Effective date: 20130313 |
|
AS | Assignment |
Owner name: BANK OF MONTREAL, AS COLLATERAL AGENT, ILLINOIS Free format text: AMENDED AND RESTATED PATENT SECURITY AGREEMENT;ASSIGNOR:FLEXERA SOFTWARE LLC;REEL/FRAME:030111/0362 Effective date: 20130313 |
|
AS | Assignment |
Owner name: FLEXERA SOFTWARE LLC, ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF MONTREAL;REEL/FRAME:032581/0652 Effective date: 20140402 Owner name: JEFFERIES FINANCE LLC, NEW YORK Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:FLEXERA SOFTWARE LLC;REEL/FRAME:032590/0805 Effective date: 20140402 Owner name: JEFFERIES FINANCE LLC, NEW YORK Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:FLEXERA SOFTWARE LLC;REEL/FRAME:032590/0617 Effective date: 20140402 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: FLEXERA SOFTWARE LLC, ILLINOIS Free format text: TERMINATION OF 1ST LIEN SECURITY INTEREST RECORDED AT REEL/FRAME 032590/0617;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:045447/0894 Effective date: 20180226 Owner name: FLEXERA SOFTWARE LLC, ILLINOIS Free format text: TERMINATION OF 2ND LIEN SECURITY INTEREST RECORDED AT REEL/FRAME 032590/0805;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:045447/0842 Effective date: 20180226 |