This invention relates generally to the field of information handling systems and more specifically to provisioning license keys.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems (“information handling systems”). An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
As the ubiquity of information handling systems increases, so does the number of information handling systems used by a particular enterprise. Each information handling system may require a number of firmware, hardware, and software licenses. Managing the volume of licenses may be burdensome and inefficient.
In accordance with certain embodiments of the present disclosure, systems and methods for provisioning license keys are disclosed. The systems and methods may include receiving an entitlement data set from a license manager, the entitlement data set associated with a plurality of entitlements, receiving a host data set from an access controller, the host data set associated with a plurality of components, assigning a subset of the plurality of entitlements based at least on the host data set, communicating a binding data set to the license manager, the binding data set associated with the subset, and communicating a license data set to the access controller, the license data set based at least on the binding data.
For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
For the purposes of this disclosure, an information handling system (“information handling system”) may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system may be a personal computer, a PDA, a consumer electronic device, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system (“IHS”) may include memory, one or more processing resources, such as a central processing unit (CPU) or hardware or software control logic. Additional components or the information handling system may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communication between the various hardware components.
Information handling systems may require a number of licenses in order to take advantage of any associated features. However, managing the licenses for an information handling system (particularly when it is one of a number in an enterprise environment) may be inefficient when done manually. One challenge that may arise in managing the licenses for a particular information handling system may be connectivity to a license management server. It may be inefficient and/or impossible to connect each information handling system to the license management server. It may also increase data security concerns due to an associated inability to establish a secure connection. Further, modern information handling systems may include a number of components with different licenses, increasing the complexity of license management both for initial provisioning and for later servicing. Indeed, licenses may be tied to a particular component identifier and if that component needs to be replaced, the license may need to be reprovisioned.
In some embodiments, system 100 may include one or more host IHS 102 communicatively coupled to one or more provisioning server(s) 104. In the same or alternative embodiments, provisioning server 104 may be further communicatively coupled to license manager 106.
In some embodiments, license manager 106 may be one or more information handling systems located locally and/or remotely from provisioning server 104 and/or host IHS 102. License manager 106 may be configured to securely store license information, including keys, equipment identification data, entitlement data, and other license-related data. In some configurations of system 100, license manager 106 may be configured to securely store licensed-related data for a plurality of provisioning servers 104. For example, license manager 106 may be a cloud-based license management service such as that provided by Dell. License manager 106 may be communicatively coupled to provisioning server 104 via any appropriate communications network. For example, provisioning server 104 and license manager 106 may be configured to communicate via ethernet, cellular, and/or other appropriate communication network. In the same or alternative embodiments, provisioning server 104 and license manager 106 may be configured to communicate with one another via different communication networks.
In some embodiments, provisioning server 104 may be configured to communicate with license manager 106 over a secure connection. Once a secure connection is established, provisioning server 104 may be configured to communicate data to license manager 106 indicating the functions to which provisioning server 104 is allowed to provision (“entitlements”). Provisioning server 104 may be further configured to find and assign those entitlements to a particular host IHS 104 and/or a particular component 110 of host IHS 104. Provisioning server may be further configured to bind those entitlements to a particular host IHS 104 and/or a particular component 110 of host IHS 104 by communicating the device-specific data (e.g., MAC address, SAS address, etc.) to license manager 106. License manager 106 may, in some embodiments, return the license keys associated with the entitlements.
In some embodiments, provisioning server 104 may be further communicatively coupled to host IHS 102. Host IHS 102 may be communicatively coupled to provisioning server 104 via any appropriate communications network. For example, provisioning server 104 and host IHS 102 may be configured to communicate via ethernet, cellular, and/or other appropriate communication network. In the same or alternative embodiments, provisioning server 104 and host IHS 102 may be configured to communicate with one another via different communication networks.
In some embodiments, provisioning server 104 may be configured to communicate with host IHS 102 over a secure connection. For example, this connection may be established during an autodiscovery process. Provisioning server 104 may be further configured to communicate all necessary license keys to host IHS 102 for provisioning.
In some embodiments, host IHS 102 may include one or more network interface(s) (“NI”) 112, access controller 108, and a plurality of components 110. Network interface 112 may be configured to facilitate communication between host IHS 102 and provisioning server 104. For example, network interface 112 may be a network interface card (“NIC”). In other examples, network interface 112 may be hardware, software, firmware, or some combination thereof configured to facilitate communication between host IHS 102 and provisioning server 104.
In some embodiments, network interface 112 may facilitate communication paths between components 110 of host IHS 102 and provisioning server 104, as well as between access controller 108 and provisioning server 104, as described in more detail below and with reference to
As described above, network interface 112 may be configured to facilitate communication between components 110 of host IHS 102 and provisioning server 104. As described in more detail below and with reference to
As described above, network interface 112 may also be configured to facilitate communication between access controller 108 of host IHS 102 and provisioning server 104. As described in more detail below and with reference to
In operation, host IHS 102, provisioning server 104, and license manager 106 may work together to automatically provision the appropriate licenses to host IHS 102 when host IHS 102 is new to system 100. Access controller 108 may be configured to mediate license information gathering and license importation for appropriate components 110 of host IHS 104, as described in more detail below with reference to
In some embodiments, access controller 108 may be configured to receive device-specific data from components 110 and communicate that data to provisioning server 104. In some configurations, the device-specific data may be, for example, the MAC address associated with a particular component 110 of host IHS 102, the SAS address associated with a particular component 110 of host IHS 102, and/or any other appropriate data configured to uniquely identify component 110 of host IHS 102. In some embodiments, obtaining device-specific data may be an automated process. This process may occur regularly at predetermined intervals, on-addition (e.g., when a new component 110 is added to host IHS 102), and/or on-demand. Access controller 108 may be further configured to communicate device-specific data to provisioning server 104.
Provisioning server 104 may then use that device-specific data to find and assign the entitlements that it had received from license manager 106. Provisioning server 104 may then bind the entitlements to the particular host IHS 104 and/or component(s) 110 by communicating the appropriate device-specific data to license manager 106. License manager 106 may then communicate license information to provisioning server 104. For example, license manager 106 may provide license keys for each appropriate host IHS 102 and/or component 110 of host IHS 102 to provisioning server 104. Provisioning server 104 may then import all appropriate licenses to access controller 108 of host IHS 102. Access controller 108 may then import the appropriate license(s) to the associated component 110 of host IHS 102.
Provisioning server 104 may be configured to receive license-related data from license manager 106 and securely and automatically provision the applicable licenses to components 110 via access controller 108.
Provisioning server 104, and license manager 106 may also work together to automatically provision the appropriate licenses to new components of host IHS 102 when an old component is replaced and/or when a new component is added. Access controller 108 may be configured to detect a replacement part as part of its system inventory, as described in more detail below with reference to
Provisioning server 104 may then bind the appropriate entitlements with the new device-specific data and receive the associated license data (e.g., a license key) from license manager 106. Provisioning server 104 may then import the part replacement license to access controller 108, which may then import the appropriate licenses to the appropriate component(s) of host IHS 102.
According to one embodiment, method 200 may begin at step 202 and/or step 206. Teachings of the present disclosure may be implemented in a variety of configurations. As such, the preferred initialization point for method 200 and the order of steps 202-224 comprising method 200 may depend on the implementation chosen.
At step 202, method 200 may establish a secure connection in order to receive the appropriate entitlements, as described in more detail above with reference to
At step 206, method 200 may obtain device-specific data from one or more component(s) 110 of host IHS 104, as described in more detail above with reference to
At step 208, method 200 may automatically establish a secure connection for communicating device-specific data, as described in more detail above with reference to
At step 210, method 200 may request license identifiers, as described in more detail above with reference to
At step 212, method 200 may send license identifiers to provisioning server 104, as described in more detail above with reference to
At step 214, method 200 may use the entitlements returned at step 204 and the license identifiers returned at step 212 to find and assign entitlements, as described in more detail above with reference to
At step 216, method 200 may bind the entitlements, as described in more detail above with reference to
At step 218, method 200 may receive license data, as described in more detail above with reference to
At step 220, method 200 may import all licenses, as described in more detail above with reference to
At step 222, method 200 may provision the appropriate licenses to the associated component(s) 110 of host IHS 104, as described in more detail above with reference to
At step 224, method 200 may wait for part replacement, as described in more detail above with reference to
Although
According to one embodiment, method 300 may begin at step 302. Teachings of the present disclosure may be implemented in a variety of configurations. As such, the preferred initialization point for method 300 and the order of steps 302-33 comprising method 300 may depend on the implementation chosen.
At step 302, method 300 may obtain device-specific data from one or more component(s) 110 of host IHS 104, as described in more detail above with reference to
At step 304, method 300 may detect a new component 110 of host IHS 102, as described in more detail above with reference to
At step 306, method 300 may return device-specific data, as described in more detail above with reference to
At step 308, method 300 may package all applicable device-specific data for communication to provisioning server 104, as described in more detail above with reference to
At step 310, method 300 may automatically establish a secure connection for communicating device-specific data, as described in more detail above with reference to
At step 312, method 300 may announce that a component 110 of host IHS 102 was replaced, as described in more detail above with reference to
At step 314, method 300 may use the entitlements returned at step 304 and the license identifiers returned at step 312 to find and assign entitlements, as described in more detail above with reference to
At step 316, method 300 may bind the entitlements, as described in more detail above with reference to
At step 318, method 300 may receive license data, as described in more detail above with reference to
At step 320, method 300 may import all licenses, as described in more detail above with reference to
At step 322, method 300 may provision the appropriate licenses to the associated component(s) 110 of host IHS 104, as described in more detail above with reference to
Although