The present disclosure generally relates to computers and computer applications, and more particularly, to systems and processes for maintaining application and other entitlements.
Most commercial and government organizations depend heavily upon computers. A software or hardware failure can pose a serious hardship to an organization. Problems stemming from such system failures can be exacerbated where license keys and other entitlement data are involved.
Entitlement data generally includes data used to validate and enable computer applications. A system administrator initially installs the entitlement data received from different application providers onto select system servers. For example, the administrator enters license keys into the appropriate applications and subsequently maintains updates and renewals that concern the entitlement data.
After a system failure, the administrator reinstalls and verifies entitlement assignments. Such reconstitution processes can present organizational and time challenges to administrators. For example, the administrator may have to contact multiple application providers to reacquire the requisite license keys. Even during times of normal operation, the management of entitlement data can be complex and burdensome to administrators. For example, the addition of a hardware device can result in a need to update a license key and other entitlement data.
There is consequently a need for a more effective manner of managing entitlement data.
The present disclosure provides an apparatus, program product and method of managing entitlement data. The method includes storing entitlement data received from a plurality of application providers and receiving inventory data associated with at least one of a networked computing device and an application executable on the networked computing device. The method further includes enabling delivery of the entitlement data to the networked computing device according to the inventory data.
According to another aspect of an embodiment, an apparatus includes a memory configured to store entitlement data received from a plurality of application providers. At least a portion of the entitlement data is configured to enable an application executable on a networked computing device. The memory is further configured to store inventory data associated with the networked computing device. The apparatus further includes program code resident within the memory and a processor in communication with the memory. The processor is configured to execute the program code to enable delivery of the entitlement data to the networked computing device according to the inventory data.
According to another aspect of an embodiment, a program product includes program code configured to receive entitlement data from a plurality of application providers. At least a portion of the entitlement data is configured to enable an application executable on a networked computing device. The program code is further configured to enable delivery of the entitlement data to the networked computing device according to inventory data associated with the networked inventory device. The program product further includes a computer readable medium bearing the program code.
According to another aspect of an embodiment, an apparatus includes a plurality of application provider computers each including entitlement data configured to enable at least one of a plurality of applications. The apparatus further includes a client computer having inventory data and an application. The apparatus further includes a central server computer configured to monitor the inventory data and to receive the entitlement data from the plurality of application providers. The central server computer is further configured to enable delivery of stored entitlement data configured to enable the application from the central server computer to the networked computing device.
According to an aspect of an embodiment, license keys and entitlement information from various application providers may be managed identically, leading to increased efficiency and other economies. Notifications to customers and application providers concerning entitlement renewal may be automated. During a recovery, a replacement (e.g., DASD replacement), or a hardware migration scenario, entitlement information and license keys may be automatically restored to their previous state, or the entitlement data and license keys may be regenerated and reapplied. Keys for service terms, hardware upgrades and other changes may be automatically validated.
These and other advantages and features that characterize an embodiment of the invention are set forth in the claims annexed hereto and forming a further part hereof. However, for a better understanding of the invention, and of the advantages and objectives attained through its use, reference should be made to the Drawings and to the accompanying descriptive matter in which there are described exemplary embodiments of the invention.
Aspects of the present invention may include a central server and repository to manage application entitlement data by storing entitlement data received from a plurality of application providers. Inventory data, such as installation and operational status data associated with a client computing device or with an application executable on the client computing device, may be automatically and periodically monitored. Installation data may generally include indicate whether or not entitlement data is installed, when it was installed, and a specific level (i.e., version/release and fix level) of the software or firmware that is installed. The central server and repository may thus be aware of the operational status of the hardware and software included within the client computing system.
When there is a detected change to the inventory data, such as an addition of a computing device or an application user, the central server may prompt the appropriate application provider to update the entitlement data. The application provider may provide the updated entitlement data based on the change to the central server and repository. The central server and repository may then make the updated entitlement data available to be imported automatically by the client computing device. The entitlement management process may occur without requiring client interaction or knowledge. According to an embodiment, an application provider may automate the entitlement management process using web services and APIs provided by the central server and repository.
Aspects may provide a central server and repository configured to store details of the customer inventory and to automatically manage entitlement data associated with the inventory. Each application component may be associated with entitlement data provided by an application provider to the central server and repository. The entitlement data is made available by the central server and repository to the client. The client may map applications to specific hardware assets. If application entitlements and license keys are based on hardware assets, the client may then import the entitlement data into the applications installed on a client server.
According to a particular embodiment, an application provider may provide entitlement data to the central server and repository after a purchase of an application. The entitlement data may be stored in a repository with other entitlement data previously provided by the same and other application providers. The same commercial entity that manages the central server and repository may also provide applications to the client. In another example, the commercial entity that manages the central server and repository may also monitor the inventory data of the client networked computing device. The entitlement data may provide a trigger mechanism to automatically fulfill and install the application.
Turning now to the Drawings, wherein like numbers denote like elements throughout the several views,
The central server and repository computer 102 may be configured to monitor via communications link 114 inventory data associated with the networked computing device 104. For example, the central server and repository computer 102 may monitor an operational status, e.g., installation data, associated with a hardware or software component of the networked computing device 104. Installation data may relate to a hardware configuration, a number of application users, an installed application, a host name, an IP address, a serial number, and a number of processors, among other data. The central server and repository computer 102 may further be configured to receive entitlement data via communication links 118, 122 from both of the application provider computers 106, 108. The entitlement data may be used to enable an application resident on the networked computing device 104.
The entitlement data may include a license key, or a product key, used to enable the application. The license key may include a specific software-based key used to identify that a copy of an application is an original. License keys typically include a sequence of alphanumeric or binary characters. The sequence may be manipulated using a mathematical formula in order to match results to an expected value. The entitlement data may further include entitlement information. Entitlement information may include information in electronic form that demonstrates that a user has purchased an application, e.g., registration information. Entitlement information may also include maintenance and license term information.
The central server and repository computer 102 may further be configured to enable delivery via a communications link 116 of the stored entitlement data to the networked computing device 104. For example, the central server and repository computer 102 may grant permissions or otherwise facilitate the importation of the entitlement data by the networked computer device 104.
The inventory data may include a serial number or other hardware identification data, as well as an operational status of a hardware or application component. For example, inventory data may indicate whether a hardware or software component has been added, removed, or failed. In a particular embodiment, the inventory data may include data used to monitor the operating status, e.g., installation data, of the networked computing device 104. A commercial entity tasked with maintaining the hardware and software of the networked computing device 104 may monitor the inventory data as part of maintaining operation of the networked computing device 104.
For example, when a fault occurs on the networked computing device 104, program code executing on either or both the networked computing device 104 and the central server and repository 102 may automatically gather operational status data associated with the fault. The central server and repository 102 may analyze the inventory data to provide a solution to the user, such as fault recovery data, at the networked computing device 104.
Other inventory data may include an assignment of an entitlement to a hardware component, an application, or a user. For example, an administrator at the networked computing device 104 may assign entitlement data to an application resident on the networked computing device 104. The serial number or other application product identifier may be communicated using the link 114 to the central server and repository 102, along with other inventory data. Some or all of the inventory data communicated via the link 114 to the central server and repository 102 may be forwarded using a link 120, 124 to the application provider 106, 108 associated with the entitlement data.
The networked computing device 104 may include a standalone computing device or a networked plurality of computers. Similarly, the central server and repository 102 may include a computer, a computer system or other programmable electronic device. Moreover, each computer 102, 104 may be implemented using one or more networked computers, e.g., in a cluster or other distributed computing system. In the alternative, each computer 102, 104 may be implemented within a single computer or other programmable electronic device.
For example, the central server and repository 102 may automatically make entitlements available to applications on the networked computing device 104 in response to a detected system fault. A networked computing device 104 may further automatically reacquire entitlement data after a hardware migration or DASD replacement associated with the networked computing device 104. The central server and repository 102 may access the centrally managed entitlement data 110 and the monitored inventory data 112 to restore the state of the entitlements to that of the pre-fault state. In one example, the application provider may regenerate entitlement data for the networked computing device to automatically reacquire.
The central server 202 typically comprises a central processing unit, or processor 216, that includes at least one microprocessor coupled to a memory 218. The central server 202 may be similar to the central server and repository 102 of
The central server 202 also typically receives a number of inputs and outputs for communicating information externally. To interface with a user or operator, the computer 202 typically includes a user interface 222 incorporating one or more user input devices (e.g., a keyboard, a mouse, a trackball, a joystick, a touchpad, and/or a microphone, etc.) and a display (e.g., a CRT monitor, an LCD display panel, and/or a speaker, etc.) User input may also be received via another computer or terminal.
For additional storage, the central server 202 may also include one or more mass storage devices 220, such as a floppy or other removable disk drive, a hard disk drive, a direct access storage device (DASD), an optical drive (a CD drive, a DVD drive, etc.), and/or a tape drive, among others. Furthermore, the central server 202 may include a network interface 224 with one or more networks 212 (e.g., a local area network, a wide area network, a wireless network, and/or the Internet, etc.) to permit the communication of information with other computers and electronic devices. It should be appreciated that the central server 202 typically includes suitable analog and/or digital interfaces between the processor 202 and each of the components 218, 220, 222 and 224 as is well known in the art. Other hardware environments are contemplated within the context of the invention.
The central server 202 may operate under the control of an operating system 226 and may execute or otherwise rely upon various computer software applications, components, programs, objects, modules, data structures, etc., as will be described in greater detail below. Moreover, various applications, components, programs, objects, modules, etc. may also execute on one or more processors in another computer coupled to the central server 202 via the network 212, e.g., in a distributed or client-server computing environment, whereby the processing required to implement the functions of a computer program may be allocated to multiple computers over a network.
As shown in
A provider interface 254 may allow an application provider 232, 234 to access entitlement data associated with the application provider 232, 234. For example, an application provider 232, 234 may be allowed to view and modify entitlement assignments, e.g., to update what entitlement data has been assigned to which application. The provider interface 254 may further restrict access of an application provider 232, 234 to their own data.
A transaction algorithm 256 may receive and process information associated with inventory or entitlement updates, such as an acquisition of an application by a client computer 214, 230. The transaction algorithm 256 may use such information to update the inventory data 244.
The memory 218 also includes an inventory repository 242. The inventory repository 242 may maintain inventory data 244. Examples of inventory data 242 may include a hardware identifier, such as a serial number. Other examples of inventory data 242 may relate to a network, as well as features and capabilities of the platform. The inventory data 242 may further include a status of the networked computing device, an application, or a user assigned to the application or the networked computing device. Inventory data may also include assignment information associating the entitlement data with the application, a user, or the networked computing device.
A monitor algorithm 246 may monitor the inventory data 262, 272 of the client computers 214, 230. For example, the monitor algorithm 246 may determine the operational status of a hardware or software component of the client computers 214, 230. The monitor algorithm 246 may send notifications back to an application provider 232, 234 in response to a change in client inventory data 262, 272. A similar or complimentary monitor algorithm (not shown) may be present on the client computers 214, 230.
A renewal algorithm 250 may automatically determine a renewal status associated with an entitlement. For example, the renewal algorithm 250 may determine if an entitlement is nearly ready for renewal. The renewal algorithm 250 may initiate communications to one or both of a client computer 214, 230 and an application provider computer 232, 234 regarding the renewal status associated with the entitlement. Where so configured, the renewal algorithm 250 may additionally or alternatively reinstate a license or renew an expired license.
A compliance algorithm 248 may be executed by the processor 216 to verify the accuracy of entitlement allocation. For example, the compliance algorithm 248 may compare a total number of applications to which license keys should be allocated to the actual number of entitlement licenses assigned. Where no match is determined, an administrator, a client computer 214, 230, or an application provider 232, 234 may be automatically notified to address the entitlement discrepancy.
An assignment algorithm 252 may be executed by the processor 216 to determine to what application, computing device or user the entitlement data has been assigned. For example, entitlement data may be imported by a client computer 214, 230. The entitlement data may be unassigned at the time the entitlement data arrives at the client computer 214, 230. An administrator at the client computer 214, 230 may assign the entitlement data to inventory data associated with an application, a computing device, or a user. The assignment algorithm 252 may retrieve or otherwise facilitate communication of the inventory data 244, including the assignment information, to the central server computer 202. For example, the inventory data 244 may include a serial number or other data associated with an assignment of a license key. The assignment algorithm 252 may initiate communication of the inventory data 244 from the central server 202 to an application provider 232, 234. The application provider 232, 234 may update entitlement records using the inventory data 244. Entitlement data 236 updated by the application provider 232, 234 may be available for download to the client computer 214 from the central server 202.
The client computer 214 may be similar to the networked computing device 104 of
The application provider computer 232 may include entitlement data 280 provided to the central server 202 for enabling an application 260, 270 of a client computer 214, 230. The application provider computer 232 may also include inventory data 282 enabled by the entitlement data 280 and associated with the inventory data 262 of the client computer 214, 230 or the application 260, 270. In another embodiment, the application provider computer 232 may have no inventory data and may alternatively access inventory data 244 on the central server 202. The application provider computer 234 may similarly include entitlement data 284 and inventory data 286.
In general, the routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions, or even a subset thereof, will be referred to herein as “algorithms,” “program code,” or simply “programs.” Program code typically comprises one or more instructions that are resident at various times in various memory and storage devices in a computer. When read and executed by one or more processors in a computer, the instructions cause that computer to perform the steps used to execute steps or elements of a particular embodiment.
Moreover, while aspects of the invention have and hereinafter will be described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that embodiments of the invention apply equally regardless of the particular type of computer readable media used to actually carry out the distribution. Examples of computer readable media comprise, but are not limited to tangible, recordable type storage media. Examples of tangible, recordable type media include volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, magnetic tape, and optical disks (CD-ROMs, DVDs, etc.).
In addition, various program code described hereinafter may be identified based upon the application within which it is implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
Furthermore, given the typically endless number of manners in which computer programs may be organized into routines, procedures, methods, modules, objects, and the like, as well as the various manners in which program functionality may be allocated among various software layers that are resident within a typical computer (e.g., operating systems, libraries, API's, applications, applets, etc.), it should be appreciated that the invention is not limited to the specific organization and allocation of program functionality described herein.
Those skilled in the art will recognize that the exemplary environments illustrated in
In the logic diagram 300, the logical block 306 above dashed line 302 may correspond to application provider processes and components, such as may be associated with the application providers 232, 234 of
A logical block 306 corresponding to an application provider computer may create an entitlement data file. The logical block 306 may further send via a logical link 322 entitlement data to a logical block 308. The logical block 308 corresponds to an entitlement warehouse. For example, the application provider 234 of
The logical block 308 may correspond to an entitlement warehouse. For example, the logical block 308 may be similar to the entitlement data 236 stored at the central server 202 of
The logical block 310 may correspond to Internet web identities associated with users. Users may be assigned to a networked computing device or an application associated with the entitlement data. Administrator may be added, changed and removed post setup. The data associated with the logical block 310 may be included within the inventory data 244 of
The logical block 312 may correspond to an inventory repository. For example, the logical block 312 may be similar to the inventory repository 242 of
The logical block 314 may represent installation preparation processes. Entitlement data may not be specific to a server. An administrator at the networked computing device may execute a “Prep for Install” function. The function may map the entitlement data to a specific server from the logical block 308 that represents the entitlement warehouse. The function may further store the mapped assignment within the logical block 312 corresponding to inventory data. For example, the client computer 214 of
The logical block 314 may additionally prompt the logical block 316 associated with set-up and configuration. Processes associated with the logical block 314 may execute a “Set-up and Configuration Wizard” function. The function may retrieve inventory data and entitlement data associated with a networked computing device. For example, the function may monitor or otherwise determine the operational status of a hardware or software component of a client computer. The determined inventory data may be communicated to a central server.
The function may configure the application on the networked computing device based on the entitlement data. For example, the client computer 214 of
The logical block 318 may correspond to components and processes associated with the installation of the application. For example, the application 260 of
The logical block 320 may represent post-installation components and processes. For example, the logical block 320 may manage updating the central server with regard to any updates concerning additional applications and may automatically check for updated entitlement data available from the central server. For example, updates regarding the installed status and installation data may be accomplished. In another example, the client computer 214 of
A logical link 338 may include processes associated with transitioning to the post-installation state. A logical link 340 may include processes enabling the client computer to use a deep link connection to receive entitlement data directly from the application provider. For example, a license key required for an application may be unavailable from the entitlement data 236 stored on the central server 202 of
The client demographic information 402 may generally include information related to the client, such as a user operating client computer 214 of
The application provider information 404 may generally include information related to an application provider, such as the application provider 232 of
The networked computing device information 406 may generally include information related to a networked computing device, such as the client computer 214 of
The application license information 408 may generally include information relating to an application license purchased by an operator of a networked computing device, such as the client computer 214 of
The application information 410 may generally include information related to an application configured to be executed by a networked computing device, such as the application 260 of
The operational status information 412 may generally include installation or diagnostic data regarding a networked computing device, an application resident on the networked computing device, or a user assigned to the networked computing device, such as the client computer 214 of
Entitlement data may be received, at 504. For example, the central server 202 of
An entitlement object may be created, at 506. For example, the central server 202 of
An entitlement transfer may be enabled, at 508. For example, the central server 202 of
The entitlement data may be unassigned when it is transferred to the networked computing device. For example, an administrator at the networked computing device may assign the entitlement data as desired to a computing device or user(s). In another example, the networked computing device, itself, may automatically assign the entitlement data. The assignment information may be received, at 510. For example, the central server 202 of
The entitlement data may be stored in association with the inventory data, at 512. For example, the central server 202 of
Access may be permitted to the entitlement data, at 514. For example, the central server 202 of
The inventory data may be monitored, at 516. For example, the central server 202 of
Monitoring may continue until a change in the inventory data is detected, at 518. For example, software executing on either or both the client computer 214 and the central server 202 of
When a change is detected, the inventory repository may be updated, at 520. For example, the central server 202 of
The entitlement data may be updated, at 522. For example, the central server 202 of
The transfer of the updated entitlement data may be enabled, at 508. For example, the central server 202 of
Turning to the flow chart, the method 600 includes storing entitlement data received from a plurality of application providers, at 602. For example, the central server 202 of
Inventory data associated with a networked computing device or an application executable on the networked computing device may be received, at 604. For example, the central server 202 of
The inventory data may be automatically stored, at 606. For example, the central server 202 of
The networked computing device may be automatically monitored for a change in the inventory data, at 608. For example, a monitoring algorithm 246 executing on either or both the client computer 214 and the central server 202 of
The inventory data may be automatically updated, at 610. For example, the central server 202 of
The delivery of the entitlement data to the networked computing device may be enabled according to the inventory data, at 612. For example, entitlement information and a license key may be made ready for delivery in accordance with received inventory data. The inventory data may indicate that an application (enabled by the entitlement data) has been added. The application may be automatically fulfilled based on the entitlement data. For example, when the entitlement data is assigned to a server, and the server retrieves the entitlement, the application may be automatically retrieved. For example, an application may be automatically retrieved from an application repository.
The compliance of the entitlement data may be validated, at 614. For example, the compliance algorithm 248 of
Renewal information associated with the entitlement data may be managed, at 616. For example, the renewal algorithm 250 of
An application provider or a user of an application may be notified of a renewal status associated with the entitlement data, at 618. For example, the renewal algorithm 250 of
While the present invention has been illustrated by a description of various embodiments and while these embodiments have been described in considerable detail, it is not the intention of the Applicants to restrict, or, in any way limit the scope of the appended claims to such detail. The invention in its broader aspects is therefore not limited to the specific details, representative apparatus and method, and illustrative example shown and described. Accordingly, departures may be made from such details without departing from the scope of Applicants' general inventive concept.
The present application claims priority to U.S. Provisional Patent Application No. 61/073,967 filed on Jun. 19, 2008 and entitled “CENTRALLY MANAGED SOFTWARE INVENTORY AND ENTITLEMENT.”
Number | Date | Country | |
---|---|---|---|
61073967 | Jun 2008 | US |