US20120158415A1 - method and system for license server synchronization - Google Patents
method and system for license server synchronization Download PDFInfo
- Publication number
- US20120158415A1 US20120158415A1 US12/972,199 US97219910A US2012158415A1 US 20120158415 A1 US20120158415 A1 US 20120158415A1 US 97219910 A US97219910 A US 97219910A US 2012158415 A1 US2012158415 A1 US 2012158415A1
- Authority
- US
- United States
- Prior art keywords
- server
- capability
- capability response
- licensing
- licensing server
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/18—Legal services; Handling legal documents
- G06Q50/184—Intellectual property management
Abstract
Description
- The field of the invention relates generally to computer systems and more particularly relates to a method and system for license server synchronization.
- Device manufacturers commonly sell products into different markets or price points, though the devices have similar bills of material and/or manufacturing cost. The manufacturer differentiates the devices by the capabilities they offer, for example a device with fewer capabilities may sell for a lower price than the same device with additional or more sophisticated capabilities. Issues arise when customers become interested in upgrading a device for more capabilities. A customer may have initially desired a device with fewer capabilities at the lower price point, and later decided the more sophisticated (and, consequently perhaps, more expensive) suite of capabilities is necessary or preferred. In terms of licensing, rights are defined on a host and licensed software gets tied to a hardware identity, limiting capability upgrade opportunities or hardware substitution.
- Further, a customer may purchase a device through a service provider rather than from a manufacturer. Capabilities are enabled on the device per an agreement with the service provider and the manufacturer. If the customer experiences issues with the device, the manufacturer has no way of knowing what capabilities the device should have enabled because that is handled by the service provider.
- A method and system for license server synchronization are disclosed. According to one embodiment, a computer-implemented method comprises receiving a first capability request from a licensing server, transmitting a first capability response to the licensing server. The licensing server provides a second capability response to a device, and the second capability response is in response to a second capability request sent by the device to the licensing server. The second capability response includes one or more capabilities included in the first capability response. A server synchronization message is received from the licensing server and a request for payment is transmitted to a service provider, wherein the request for payment is generated based on the server synchronization message.
- 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 systems 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 teachings herein.
- 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 an exemplary system level architecture for use with the present system, according to one embodiment. -
FIG. 2 illustrates an exemplary client architecture for use with the present system, according to one embodiment. -
FIG. 3 illustrates an acquisition and deployment process of an embedded regenerative licensing product from a provider to a manufacturer for use with the present system, according to one embodiment. -
FIG. 4 illustrates an exemplary device licensing process for use with the present system, according to one embodiment. -
FIG. 5A illustrates an exemplary online device activation process for use with the present system, according to one embodiment. -
FIG. 5B illustrates an exemplary offline device activation process for use with the present system, according to one embodiment. -
FIG. 6A illustrates an exemplary online device update process for use with the present system, according to one embodiment. -
FIG. 6B illustrates an exemplary offline device update process for use with the present system, according to one embodiment. -
FIG. 7A illustrates an exemplary online device rehost, or transfer of capabilities, process for use with the present system, according to one embodiment. -
FIG. 7B illustrates an exemplary offline device rehost, or transfer of capabilities, process for use with the present system, according to one embodiment. -
FIG. 8 illustrates an exemplary online provisioning process for use with the present system, according to one embodiment. -
FIG. 9 illustrates an exemplary offline provisioning process for use with the present system, according to one embodiment. -
FIG. 10 illustrates an exemplary monetization process for use with the present system, according to one embodiment. -
FIG. 11 illustrates an exemplary server to server synchronization process for use with the present system, according to one embodiment. -
FIG. 12 illustrates an exemplary laptop server synchronization process for use with the present system, according to one embodiment. -
FIG. 13 illustrates an exemplary catastrophic server recovery synchronization process for use with the present system, according to one embodiment. -
FIG. 14 illustrates an exemplary device state restoration process for use with the present system, according to one embodiment. - 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 systems 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 teachings herein.
- A method and system for license server synchronization are disclosed. According to one embodiment, a computer-implemented method comprises receiving a first capability request from a licensing server, transmitting a first capability response to the licensing server. The licensing server provides a second capability response to a device, and the second capability response is in response to a second capability request sent by the device to the licensing server. The second capability response includes one or more capabilities included in the first capability response. A server synchronization message is received from the licensing server and a request for payment is transmitted to a service provider, wherein the request for payment is generated based on the server synchronization message.
- 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.
- 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, random access memories, 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 methods 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.
-
FIG. 1 illustrates an exemplary system level architecture for use with the present system, according to one embodiment. Ahardware manufacturer 101 grants licensing rights to a customer 102 possessing a device such as embeddedsystem 103. The embeddedsystem 103 includes a device and a client architecture made up of a client application, licensing micro-kernel, and service interfaces such as inFIG. 2 described below. - The customer 102, via
web browser 104, accesses acustomer portal 105 hosted by thehardware manufacturer 101. Through thecustomer portal 105 the customer 102 may request capabilities by communicating with the enterprise resource planner (ERP) 106 and pay for the capabilities desired on the customer's embeddedsystem 103. The capabilities desired may be initial functional capabilities for the embeddedsystem 103 and they may also be an upgrade in functionality for an already deployed embeddedsystem 103. TheERP 106 communicates to the entitlement relationship management system (ERMS) 107 the entitlements for the embeddedsystem 103. The customer 102 is then instructed to refresh (or restart or automatically restart after a pre-configured interval based on manufacturer preference) the embeddedsystem 103, and upon reconnection, the embeddedsystem 103 requests instructions from thehardware adapter 111 on theoperations manager 110 regarding what capabilities should exist on the system. - The
hardware adapter 111 responds with a capability response, and the embeddedsystem 103 functions with the appropriate capabilities it is licensed to utilize. Theoperations manager 110 communicates regularly with anoperations database 109 to store and retrieve licensing information. Thehardware adapter 111 is also in communication with an embeddedfulfillments database 112 for storage and retrieval of what capabilities have been fulfilled on a device. Thehardware adapter 111 handles license generation 113 that generates licenses in the binary format accepted by the embeddedsystem 103. This format is different from a regular license file (which may be plain text) or regular activation (xml) formats.Regenerative activation 114 is also handled by thehardware adapter 111, andregenerative activation 114 involves regenerative logic that restores a licensing state. As an example, in a secure re-host scenario (or transfer of capabilities from one device to another), this block verifies that the original device released its capabilities before granting the capabilities to a replacement device. Thehardware adapter 111 also contains an embedded protocol 115 for interfacing with a device or embeddedsystem 103. The embedded protocol 115 decodes and encodes requests and responses based on the protocol defined for the embeddedsystem 103. -
FIG. 2 illustrates an exemplary client architecture for use with the present system, according to one embodiment. A client or thirdparty application integration 201 may include alicensing micro-kernel 202, service interfaces 204, and uses theoperating system 205 andsystem hardware 206. Device activation involves anetwork interface 203 for communication between the embeddedsystem 103 and the provider server. Thenetwork interface 203, in one embodiment, is delivered to the customer by the provider and is overwritten by the customer based on device configurations.Various development tools 207 may also be in place, including in one example a test server or a license conversion utility to assist in development of the license enabled application. In one embodiment, thelicensing micro-kernel 202 is delivered by the provider as pre-built libraries, with services included that can be broken out as separate services such assignature verification 212,license persistence 213, andruntime utilities 214. -
Signature verification 212 is a logical block that verifies signatures on the individual feature lines contained within various license rights.Signature verification 212 assures the authenticity of the feature lines and prevents license tampering.License persistence block 213 securely stores regenerative and trial license rights on an embeddeddevice 103. Regenerative license rights are stored on the device so the capabilities are available in-between regenerations from the management server. Information about trial license rights stored on the embeddedsystem 103 to ensure proper expiration.Runtime utilities 214 represent wrappers around runtime functions, the wrappers are used to provide encapsulation from various implementations of customizable operating systems calls. In one embodiment, thelicensing micro-kernel 202 handles license rights (license right handling 211), and processes and maintains license rights of various models. Some supported license models may includetrials 209, regenerative 208, and node locked 210. Thetrials 209 license model includes license rights available for a specified duration of time. The regenerative 208 license model specializes in the continuous license rights updates from the management server to the embeddedsystem 103. The node locked 210 license model specializes in the license rights locked to a given device or node. Other interfaces forstorage 215, time (verification of a trusted clock 216), system identity 217 verification, and cryptography (crypto provider 218) can be delivered by the provider and overwritten by the customer/manufacturer based on particular device configurations.Storage 215 block stores license rights on the device. - A reference implementation is provided by the provider for the most common embedded operating system, though the manufacturer may way to provide its own implementation to control secure location of the storage and take advantage of the device file system. The trusted clock 216 provides the accurate system time of the device. This helps prevent unauthorized use of expired licenses. The system identity block 217 accesses the device identification. Block 217 uses manufacturer specific implementations because various manufacturers have unique ways of identifying devices. The
crypto provider block 218 handles the cryptography needs of the license-enabled application. -
FIG. 3 illustrates an acquisition and deployment process of an embedded regenerative licensing product from a provider to a manufacturer for use with the present system, according to one embodiment. A device manufacturer requests the embeddedregenerative licensing product 301 from a provider. Upon completing any necessary transaction details, the provider licenses and delivers theproduct 302 to the device manufacturer. The device manufacturer may then embed theproduct 303 on any of its intended devices (in any customized implementation as is possible), and deploy theproduct 304 for use on its devices in the field. -
FIG. 4 illustrates an exemplary device licensing process for use with the present system, according to one embodiment. A customer logs into a portal via web browser 401. A resource planner system then verifies the customer identity and assists in completing apurchase transaction 402. A management server is notified of purchased or otherwise authorized device capabilities for the customer and an associated device. The customer is instructed to refresh the device 403. Upon refresh, the device sends a request to a hardware adapter on the management server for the capabilities it should enable 404. The hardware adapter responds with a capability response to thedevice 405. The device can then be disconnected from the management server and continues to operate with the appropriate capabilities according tolicensing 406. -
FIG. 5A illustrates an exemplary online device activation process for use with the present system, according to one embodiment. A device enabletransaction 502 is initiated from acustomer PC 501 through a customer portal 503. The customer portal continues to pass the enable transaction request to acustomer ERP 505, which in turn notifies acustomer operations manager 507 what capabilities a device is entitled to. Thedevice 510 connects 509 to thehardware adapter 508 to request and receive capabilities. A device capability request, generated ondevice 510, includes the unique identifier fordevice 510 and the time when the last capability response processing took place. The request is encoded and signed so thehardware adapter 508 on theoperations manager 507 can verify the authenticity of the request. Thehardware adapter 508 can match the timestamp included in the device capability request with the capability response it may have generated earlier for thespecific device 510 and derive the device's 510 licensing state. - The
hardware adapter 508 interfaces with thecustomer operations manager 507 for appropriate capability entitlements for thedevice 510. Thehardware adapter 508 communicates 509 a capability response to thedevice 510. Capability responses are generated by thehardware adapter 508 on theoperations manager 507. A capability response contains thehardware device 510 unique identifier, the list of all products and features thedevice 510 is entitled to and the time when the response was generated. The timestamp included in the capability response is universal time. The capability response is also encoded and signed so that thedevice 510 can verify its authenticity. Thedevice 510 will only process a capability response that matches its unique identifier. The timestamp in a capability response is compared to the most recently processed request's timestamp, and thedevice 510 only processes responses that were generated later than the one it has already processed. When thedevice 510 processes a capability response, the information from the response may overwrite licensing information from the previous response. This way the capability response can be used to add new functionality to thedevice 510, or remove or modify existing functionality on thedevice 510. -
FIG. 5B illustrates an exemplary offline device activation process for use with the present system, according to one embodiment. Acustomer PC 511 communicates 512 a device enable request through the customer portal 513. The customer portal 513 continues to pass the enable transaction request to acustomer ERP 514, which in turn communicates anotification 516 to acustomer operations manager 517 indicating what capabilities a device is entitled to. Thecustomer PC 511 also communicates aportal capability request 512 for theoffline device 520 through the customer portal 513 to ahardware adapter 518. Thehardware adapter 518 processes the portal capability request. Unlike a device capability request thehardware adapter 518 cannot make assumptions about thedevice 520 licensing state. Thehardware adapter 518 on thecustomer operations manager 517 communicates 519 with the customer portal 513 to pass a capability response to thePC 511. Thedevice 520 then may be activated using anycommunication 521 mechanism (e.g. a USB storage device, as an example) between thedevice 520 and thePC 511, and no response is necessary after activation. A portal capability request, generated via the portal 513 rather than thedevice 520, includes the unique identifier for thedevice 520. Verification of the portal capability request's authenticity can be limited to portal user name and password protection, in one embodiment. -
FIG. 6A illustrates an exemplary online device update process for use with the present system, according to one embodiment. When a device 607 is online, direct communication 606 may occur between the device 607 and the hardware adapter 605 on the customer operations manager 604. The device 607 sends a device capability request to the hardware adapter 605, and the hardware adapter responds with a capability response. The customer PC 601, customer portal 602, and customer ERP 603, do not need to be involved in the online device 607 update process, according to one embodiment. -
FIG. 6B illustrates an exemplary offline device update process for use with the present system, according to one embodiment. A customer PC 608 communicates 609 through the customer portal 610 a portal capability request. A capability response contains a hardware device unique identifier, the list of all products and features the device is entitled to and the time when the response was generated. The customer portal 610 communicates 612 with the hardware adapter 614 on the customer operations manager 613, passing along the portal capability request. The hardware adapter 614 communicates a capability response 612 back to the customer portal 610 which is then passed back 609 to the customer PC 608. The device 616 can then be updated through any form of communication 615 (e.g. a USB storage device, as an example) between the device 616 and the PC 608. -
FIG. 7A illustrates an exemplary online device rehost, or transfer of capabilities, process for use with the present system, according to one embodiment. Acustomer PC 701requests 702 through thecustomer portal 703 to disable adevice A 711 and to enable adevice B 712. The request is communicated 704 to theERP 705 and the transfer of capabilities information is then passed 706 to thecustomer operations manager 707.Device A 711 communicates 709 with thehardware adapter 708 on thecustomer operations manager 707. Thecommunication 709 involves sending a capability request and receiving a capability response detailing the removal of capabilities on thedevice A 711.Device A 711 completes the disable transaction with a confirmation message to thehardware adapter 720.Device B 712 communicates 710 with thehardware adapter 708 on the customer operations capability response detailing the addition of device capabilities. No confirmation of capabilities received is necessary fromdevice B 712 to thehardware adapter 720.Device B 712 functions with the new capabilities. -
FIG. 7B illustrates an exemplary offline device rehost, or transfer of capabilities, process for use with the present system, according to one embodiment. Acustomer PC 713requests 714 through the customer portal 715 to disable adevice A 725 and to enable adevice B 722. The request is communicated 716 to thecustomer ERP 717 and the transfer of capabilities information is then passed 718 to thecustomer operations manager 719. Thehardware adapter 720 on thecustomer operations manager 719 communicates 721 with the customer portal 715, handling capability requests and sending capability responses detailing the adding and removal of capabilities ondevice A 725 anddevice B 722. In general, the capability response for adding capabilities for device B is generated after the confirmation message is received by the hardware adapter from device A. The customer portal 715relays 714 the capability responses back to thecustomer PC 713. Thecustomer PC 713 responds 724 to a device capability request fromdevice A 725 with a disable capability response, anddevice A 725 completes the disable transaction with a confirmation message to thePC 713. ThePC 713 communicates a capability response detailing the addition ofdevice capabilities 723 todevice B 722. No confirmation of capabilities received is necessary fromdevice B 722.Device B 722 functions with the new capabilities. -
FIG. 8 illustrates an exemplary online provisioning process for use with the present system, according to one embodiment. In this process, a license server is connected to the internet and is able to communicate with an operations server. Aservice provider 803 having alicense server 804 requests capability capacity from amanufacturer 801 having an operations server and/orsoftware 802. Examples of amanufacturer 801 include device manufacturers such as Netgear and Apple. Examples of a service provider include a cable service provider such as Comcast, or a wireless communications provider such as AT&T. The serviceprovider license server 804 thenprovisions 812 its virtual and/or physical appliances (806, 807, 808). Provisioning appliances includes deploying them to customers. Examples of virtual and/or physical appliances (806, 807, 808) include devices having multiple capabilities including gaming devices, video processing devices, base stations, digital cable receivers, routers and smart phones such as iPhones. Theoperations server 802 activates the requested capacity and communicates the active capacity by syncing 813 with theactive license server 809. Active capacity, according to one embodiment, includes available licenses for device capabilities. The capabilities are then activated or deactivated 816 on the appropriate appliances (806, 807, 808) that are all connected to theinternet 810. The activations are synchronized 813 between theoperations server 802 and both theactive license server 809 and thepassive license server 815 so that themanufacturer 801 has information regarding capabilities available to activate on devices or appliances. Theactive license server 809 andpassive license server 815 synchronize 814 for fail-over support of license provisioning, as a result thepassive license server 815 is aware of what licenses have been activated on which devices or appliances. -
FIG. 9 illustrates an exemplary offline provisioning process for use with the present system, according to one embodiment. In this process, a license server is not connected to the internet. Aservice provider 903 having alicense server 904 requests capability capacity from amanufacturer 901 having an operations server and/orsoftware 902. The serviceprovider license server 904 thenprovisions 912 its virtual or physical appliances (906, 907, 908). Provisioning appliances includes deploying them to customers. Theoperations server 902 activates the requested capacity and communicates 913 the active capacity directly to theactive license server 909 and thepassive license server 915. The capabilities are then activated or deactivated 916 on the appropriate appliances (906, 907, 908) that are all connected to thelocal network 910. Theactive license server 909 andpassive license server 915 synchronize 914 for fail-over support of license provisioning, as a result thepassive license server 815 is aware of what licenses have been activated on which devices or appliances. -
FIG. 10 illustrates an exemplary monetization process for use with the present system, according to one embodiment. Adevice manufacturer 1001, for example Netgear, has an operations server includingoperations management software 1002 according to the present system. Thedevice manufacturer 1001 is in communication with aservice provider 1003, for example AT&T, that has alicense server 1004. An AT&T customer has received anappliance 1005 and desires particular capabilities. According to one embodiment, theservice provider 1003 orders a capacity of capabilities to be enabled on multiple customer deployed appliances, and thedevice manufacturer 1001 activates the capacity accordingly and communicates to thelicense server 1004. Thelicense server 1004 communicates with theappliances 1005 so that thelicense server 1004 is aware of deployed capacity. - According to one embodiment, capacity is not activated on the
license server 1004 by themanufacturer 1001. Instead, theappliance 1005 communicates to thelicense server 1004 the deployed capacity (for example, the appliance may have 50 subscribers, or 100 subscribers, or 150 subscribers). Thelicense server 1004 communicates the activated capacity to the manufacturer'sserver 1002 so that themanufacturer 1001 can appropriately invoice or bill theservice provider 1003. This embodiment provides monetization for capability enablement tracking by a device manufacturer enabled viaserver synchronization appliance 1005 needs troubleshooting support from themanufacturer 1001, the manufacturer has theappliance 1005 information and capabilities stored (as opposed to the customer calling theservice provider 1003 and being routed to themanufacturer 1001, and having to provide all hardware information to themanufacturer 1001 for support). -
FIG. 11 illustrates an exemplary server to server synchronization process for use with the present system, according to one embodiment. In this process, a backup server takes over when a main server fails. When devices switch to the backup server, there are not changes in their licensing state because the backup server is synchronized with the main via sync messages. Abackup server 1102 receives aserver sync message 1104 message from amain server 1101. Themain server 1101 receivescapability requests 1106 from a device 1103 and responds withcapability response messages 1107. If themain server 1101 is down for maintenance or fails for any reason, the device 1103 submitscapability requests 1108 to thebackup server 1102 and receivescapability response messages 1109 from thebackup server 1102. -
FIG. 12 illustrates an exemplary laptop server synchronization process for use with the present system, according to one embodiment. This case is applicable when devices are offline. Alaptop server 1202 submits acapability request 1204 to anoperations server 1201 to load up available capacity for a plurality of devices. Thelaptop server 1202 receives acapability response 1205 message and can service adevice 1203. Thedevice 1203 submits acapability request 1206 to thelaptop server 1202 and thelaptop server 1202 responds with acapability response message 1207. Thelaptop server 1202 returns and provides aserver sync message 1208 to theoperations server 1201. -
FIG. 13 illustrates an exemplary catastrophic server recovery synchronization process for use with the present system, according to one embodiment. According to one embodiment, catastrophic failure means that license distribution data cannot be recovered from a first server, but it can be replicated on a second server because licensing state was stored on an operations server. Afirst server 1302 receives acapability response message 1306 in response to acapability request 1305 from anoperations server 1301. Theoperations server 1301 periodically receives from the first server 1302 aserver sync message 1310. If thefirst server 1302 fails for any reason, a second server 1303 is deployed and receives available capability information throughcapability request 1311 to theoperations server 1301 andcapability response 1312 from theoperations server 1301. Theoperations server 1301 receives aserver sync request 1313 from the second server 1303 and responds with aserver sync message 1314. Thedevice 1304 submitscapability requests 1307, 1315 and receivescapability responses -
FIG. 14 illustrates an exemplary device state restoration process for use with the present system, according to one embodiment. A server 1402requests capabilities 1404 from anoperations server 1401 and receives acapabilities response 1405. Adevice 1403requests capabilities 1406 from the server 1402 and receives acapabilities response 1407. Theoperations server 1401 periodically receives from the server 1402 aserver sync message 1409. In the event that thedevice 1403 fails, thedevice 1403 license state can be lost at the moment of failure. Thedevice 1403 gets shipped to the device manufacturer 1410 for repair (or another reason in another scenario), the device state can be restored through acapabilities request 1411 transmitted from thedevice 1403 to theoperations server 1401, and thedevice 1403 receives acapabilities response 1412 from theoperations server 1401 so that it may be shipped back to a customer 1413 in its proper licensing capabilities state. - According to one embodiment, a license server stores information including license rights, devices, and debits of license rights made by devices (what capabilities, when the capabilities were granted and when they expire).
- According to one embodiment, server sync messages can include one or more of the following items:
-
- Message Type
- Message Timestamp (time of message generation)
- Vendor Name
- Server Host Id (type+value)
- Identity Name
- Last Sync Time (timestamp)
- Renew Interval
- Borrow Interval
- List of Devices.
- According to one embodiment, device information can include one or more of the following items:
-
- Device Host Id (type+value)
- Device Type
- Device Name
- Last Update Time (timestamp)
- Server Host Id (type+value)
- Server Name
- Marked For Delete
- List Of Served Features.
- List Of Overage Features.
- According to one embodiment, feature information can include one or more of the following items:
-
- Feature Id
- Feature Name
- Feature Version
- Count
- Expiration.
- A method and system for license server synchronization have been disclosed. It is to be understood that the embodiments described herein are for the purpose of elucidation and should not be considered limiting the subject matter of the present patent. Various modifications, uses, substitutions, combinations, improvements, methods of productions without departing from the scope or spirit of the present invention would be evident to a person skilled in the art.
Claims (16)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/972,199 US20120158415A1 (en) | 2010-12-17 | 2010-12-17 | method and system for license server synchronization |
US14/161,513 US9710809B2 (en) | 2010-12-17 | 2014-01-22 | Method and system for license server synchronization |
US15/620,229 US11468437B2 (en) | 2010-12-17 | 2017-06-12 | Method and system for license server synchronization |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/972,199 US20120158415A1 (en) | 2010-12-17 | 2010-12-17 | method and system for license server synchronization |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/161,513 Continuation US9710809B2 (en) | 2010-12-17 | 2014-01-22 | Method and system for license server synchronization |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120158415A1 true US20120158415A1 (en) | 2012-06-21 |
Family
ID=46235538
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/972,199 Abandoned US20120158415A1 (en) | 2010-12-17 | 2010-12-17 | method and system for license server synchronization |
US14/161,513 Active 2031-09-04 US9710809B2 (en) | 2010-12-17 | 2014-01-22 | Method and system for license server synchronization |
US15/620,229 Active 2033-08-18 US11468437B2 (en) | 2010-12-17 | 2017-06-12 | Method and system for license server synchronization |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/161,513 Active 2031-09-04 US9710809B2 (en) | 2010-12-17 | 2014-01-22 | Method and system for license server synchronization |
US15/620,229 Active 2033-08-18 US11468437B2 (en) | 2010-12-17 | 2017-06-12 | Method and system for license server synchronization |
Country Status (1)
Country | Link |
---|---|
US (3) | US20120158415A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8925110B2 (en) | 2012-01-27 | 2014-12-30 | Microsoft Corporation | Application licensing using sync providers |
US20150242599A1 (en) * | 2014-02-26 | 2015-08-27 | Schlumberger Technology Corporation | Cluster license server |
US9141771B1 (en) * | 2015-03-24 | 2015-09-22 | Flexera Software Llc | Methods and systems for embedded licensing from multiple license sources |
US9710809B2 (en) | 2010-12-17 | 2017-07-18 | Flexera Software Llc | Method and system for license server synchronization |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2930964B1 (en) | 2014-04-09 | 2019-02-27 | Linear Technology Corporation | Hardware-based licensing for wireless networks |
US9602546B2 (en) * | 2015-08-07 | 2017-03-21 | Flexera Software Llc | Accurate license counting in synchronized servers |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6223291B1 (en) * | 1999-03-26 | 2001-04-24 | Motorola, Inc. | Secure wireless electronic-commerce system with digital product certificates and digital license certificates |
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 |
US6587959B1 (en) * | 1999-07-28 | 2003-07-01 | Emc Corporation | System and method for addressing scheme for use on clusters |
US20050005098A1 (en) * | 2003-04-08 | 2005-01-06 | Olivier Michaelis | Associating software with hardware using cryptography |
US20060015502A1 (en) * | 2004-07-19 | 2006-01-19 | Paul Szucs | Method for operating networks of devices |
US20080046961A1 (en) * | 2006-08-11 | 2008-02-21 | Novell, Inc. | System and method for network permissions evaluation |
US7343297B2 (en) * | 2001-06-15 | 2008-03-11 | Microsoft Corporation | System and related methods for managing and enforcing software licenses |
US7376584B1 (en) * | 2001-07-31 | 2008-05-20 | Verizon Corporate Services Group Inc. | Systems and methods for fulfilling orders using location-based abbreviated dialing |
US20080215758A1 (en) * | 2004-08-14 | 2008-09-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method For Software Program Synchronization |
US20090300137A1 (en) * | 2008-05-29 | 2009-12-03 | Research In Motion Limited | Method, system and devices for communicating between an internet browser and an electronic device |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790664A (en) * | 1996-02-26 | 1998-08-04 | Network Engineering Software, Inc. | Automated system for management of licensed software |
US8868914B2 (en) * | 1999-07-02 | 2014-10-21 | Steven W. Teppler | System and methods for distributing trusted time |
US20050160272A1 (en) * | 1999-10-28 | 2005-07-21 | Timecertain, Llc | System and method for providing trusted time in content of digital data files |
US7107462B2 (en) * | 2000-06-16 | 2006-09-12 | Irdeto Access B.V. | Method and system to store and distribute encryption keys |
US7984488B2 (en) * | 2004-04-09 | 2011-07-19 | Microsoft Corporation | Credential roaming in electronic computing systems |
US8103804B2 (en) * | 2008-11-12 | 2012-01-24 | Flexera Software, Inc. | Method and system for embedded regenerative licensing |
US9098677B2 (en) * | 2009-05-19 | 2015-08-04 | Flexera Software Llc | System and method for automated clock wind back recovery |
US20120158415A1 (en) | 2010-12-17 | 2012-06-21 | Flexera Software Inc. | method and system for license server synchronization |
-
2010
- 2010-12-17 US US12/972,199 patent/US20120158415A1/en not_active Abandoned
-
2014
- 2014-01-22 US US14/161,513 patent/US9710809B2/en active Active
-
2017
- 2017-06-12 US US15/620,229 patent/US11468437B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6223291B1 (en) * | 1999-03-26 | 2001-04-24 | Motorola, Inc. | Secure wireless electronic-commerce system with digital product certificates and digital license certificates |
US6587959B1 (en) * | 1999-07-28 | 2003-07-01 | Emc Corporation | System and method for addressing scheme for use on clusters |
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 |
US7343297B2 (en) * | 2001-06-15 | 2008-03-11 | Microsoft Corporation | System and related methods for managing and enforcing software licenses |
US7376584B1 (en) * | 2001-07-31 | 2008-05-20 | Verizon Corporate Services Group Inc. | Systems and methods for fulfilling orders using location-based abbreviated dialing |
US20050005098A1 (en) * | 2003-04-08 | 2005-01-06 | Olivier Michaelis | Associating software with hardware using cryptography |
US20060015502A1 (en) * | 2004-07-19 | 2006-01-19 | Paul Szucs | Method for operating networks of devices |
US20080215758A1 (en) * | 2004-08-14 | 2008-09-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method For Software Program Synchronization |
US20080046961A1 (en) * | 2006-08-11 | 2008-02-21 | Novell, Inc. | System and method for network permissions evaluation |
US20090300137A1 (en) * | 2008-05-29 | 2009-12-03 | Research In Motion Limited | Method, system and devices for communicating between an internet browser and an electronic device |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9710809B2 (en) | 2010-12-17 | 2017-07-18 | Flexera Software Llc | Method and system for license server synchronization |
US11468437B2 (en) | 2010-12-17 | 2022-10-11 | Flexera Software Llc | Method and system for license server synchronization |
US8925110B2 (en) | 2012-01-27 | 2014-12-30 | Microsoft Corporation | Application licensing using sync providers |
US9165332B2 (en) | 2012-01-27 | 2015-10-20 | Microsoft Technology Licensing, Llc | Application licensing using multiple forms of licensing |
US9269115B2 (en) | 2012-01-27 | 2016-02-23 | Microsoft Technology Licensing, Llc | Application licensing using sync providers |
US9384516B2 (en) | 2012-01-27 | 2016-07-05 | Microsoft Technology Licensing, Llc | Licensing for services |
US9406095B2 (en) | 2012-01-27 | 2016-08-02 | Microsoft Technology Licensing, Llc | Application licensing using sync providers |
US9449354B2 (en) | 2012-01-27 | 2016-09-20 | Microsoft Technology Licensing, Llc | Licensing for services |
US9594884B2 (en) | 2012-01-27 | 2017-03-14 | Microsoft Technology Licensing, Llc | Application licensing for devices |
US20150242599A1 (en) * | 2014-02-26 | 2015-08-27 | Schlumberger Technology Corporation | Cluster license server |
US9141771B1 (en) * | 2015-03-24 | 2015-09-22 | Flexera Software Llc | Methods and systems for embedded licensing from multiple license sources |
Also Published As
Publication number | Publication date |
---|---|
US20170344980A1 (en) | 2017-11-30 |
US9710809B2 (en) | 2017-07-18 |
US11468437B2 (en) | 2022-10-11 |
US20140136416A1 (en) | 2014-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11468437B2 (en) | Method and system for license server synchronization | |
US20220329587A1 (en) | Securely provisioning a target device | |
CN106203001B (en) | Use the application license for the person of simultaneously providing | |
US9117055B2 (en) | Method and apparatus for downloading DRM module | |
US20150143539A1 (en) | Method and System for Backing Up and Restoring License | |
CN105812479B (en) | Request method and device and acquisition method and device for use permission | |
US9646332B2 (en) | Secure large volume feature license provisioning system | |
US8863241B2 (en) | System and method for managing usage rights of software applications | |
US20230104292A1 (en) | Vendor software activation using distributed ledger | |
US8103804B2 (en) | Method and system for embedded regenerative licensing | |
CN111984936B (en) | Authorization distribution method, device, server and storage medium | |
US9361435B1 (en) | Multi-tier digital supply chain management | |
US9363081B2 (en) | License administration device and license administration method | |
JP6840861B2 (en) | How to generate and dispose of dynamic virtual cards | |
US20170041346A1 (en) | Accurate license counting in synchronized servers | |
CN117436876A (en) | Data processing method, device, equipment, medium and program product | |
CN114448694A (en) | Service calling method and device based on block chain | |
CN116781387A (en) | Data updating method based on block chain consensus mechanism | |
EP1257943A1 (en) | Softgoods distribution via a network | |
EP2606422A2 (en) | Secure Large Volume Feature License Provisioning System | |
JP2003281298A (en) | User support system, method, program and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT, UNITED Free format text: AFTER-ACQUIRED PATENT SECURITY AGREEMENT (FIRST SUPPLEMENTAL FILING);ASSIGNOR:FLEXERA SOFTWARE, INC.;REEL/FRAME:025903/0655 Effective date: 20110303 |
|
AS | Assignment |
Owner name: FLEXERA SOFTWARE, INC., ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KOKA, VIKRAM;SHVARTS, ANN;REEL/FRAME:026000/0181 Effective date: 20110322 |
|
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: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:FLEXERA SOFTWARE LLC;REEL/FRAME:032590/0617 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 |
|
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 |