The present invention generally relates to establishing, verifying, and managing computer software access rights. More specifically, the present invention relates to creating and managing electronic proof of entitlements to computer software.
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware, such as semiconductors and circuit boards, and software, also known as computer programs. As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated and complex computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are dramatically more powerful than just a few years ago.
Commercial software programs are typically licensed to customers in return for a license fee. These license fees can be many thousands of dollars per year for complex software designed to perform mission critical tasks. When significant license fees are involved, both customers and commercial software developers are keenly interested in ensuring that the customer pays for no more or no less than what they should.
Many licenses, particularly those directed at more expensive software packages, state that the customer can use the program at a specified level, such as on a single machine with two central processing units. Traditionally, customers documented their entitlement to use a program and developers verified that the customer had the right to use those programs through a printed document called a Proof of Entitlement (“PoE”). These PoE's are typically distributed to a customer with their initial software program purchase, or by the purchase of additional entitlement, and describes product information and the quantity of entitlement purchased. The PoE's may sometimes supplemented with a serial number that the customer is required to enter into their system at initial program load.
With increasing use of server virtualization, managing these certificates has become significant problem. Unlike the past when hardware upgrades were a relatively rare event, today's virtualized servers are designed to allow customers to easily transfer workloads from one system to another and/or to change the capacity of their existing servers. Unfortunately, customers must often locate the PoE documents for follow-on software release upgrades and/or to substantiate current entitlement for additional entitlement purchases. Failure to produce the original PoE may result in a customer having to purchase a product or upgrade at a non-discounted price. In certain instances, the current PoE must be destroyed when a new PoE is shipped.
Without a way to allow customers to more easily document proof of entitlement, the promise of virtualization may never be fully achieved.
The present invention provides electronic proof of entitlements (“ePoEs”) and an ePoE management system with the ability to create entitlement record based on customer entitlement purchase, to update elements of the entitlement entity based on entitlement owner authority, and to transfer entitlements to other computer system, both intra-organization and inter-organization. The ePoEs in some embodiments are retained and maintained in an Intemet-accessible license management database that can be used by customers via web-based support tools to access, view, print, transfer and update the ePoEs. These ePoEs may also be used by software vendor to verify entitlement for software upgrades and process purchases of additional entitlement.
One aspect of the present invention is a method for managing entitlements to computer software, comprising receiving an request from a customer for entitlement to use a computer software product on one or more computer platforms, generating an electronic proof of entitlement containing a key that enables use of the computer software product only on the specified one or more computer platforms, and providing access to the electronic proof of entitlement from a customer facility. Another aspect of the present invention is a method for deploying computing infrastructure, comprising integrating computer readable code into a computing system, wherein the code in combination with the computing system is capable of performing a method for managing entitlements to computer software comprising receiving an request from a customer for entitlement to use a computer software product on one or more computer platforms, generating an electronic proof of entitlement containing a key that enables use of the computer software product only on the specified one or more computer platforms, and providing access to the electronic proof of entitlement from a customer facility. Yet another aspect of the present invention is a computer program product comprising a program configured to perform a method for managing entitlements to computer software and a computer readable signal bearing media bearing the program. The program in these embodiments causes the computer to receive a request from a customer for entitlement to use a computer software product on one or more computer platforms, generate an electronic proof of entitlement containing a key that enables use of the computer software product only on the specified one or more computer platforms, and provide access to the electronic proof of entitlement from a customer facility.
The present invention and its ePoE management system provides numerous advantages over conventional, physical PoE systems. For example, each ePoE record created is unique world-wide, and is created for the specific customer ordering the software program product for use on a specific machine as part of the software manufacturing and delivery process. The ePoE record may be accessed by the customer purchasing the software product over the Internet, may be aggregated across hardware owned by that customer, and is accessible by the system vendor for use in software maintenance upgrades.
a-4c depict one embodiment of customer license agent access and registration system.
a-5d depict one embodiment of an electronic proof of entitlement management user interface.
In operation, the ePoE management system 100 embodiment in
The system vendor in this embodiment provides the CLA's with a web-based application. Once registered with the system vendor via the common registration tool (described in more detail with reference to
If the WWKMS 138 determined at flow 204 that this is the first time the CLA has accessed the ePoE management system 100, the WWKMS 138 asks the CLA to enter information at block 210 sufficient to verify that the CLA is an authorized agent of the customer. In this embodiment, the authorization information comprises the vendor's customer identification number 117 for the CLA's organization, at least one order number previously placed by that customer. At block 211, the WWKMS 138 verifies that the designated customer had previously placed the designated order for delivery to the designated country. This checkpoint is desirable to ensure that the CLA is part of the designated customer organization. At block 212, the WWKMS 138 determines whether the combination of order number and customer number has been used more than once previously to register a new CLA. This checkpoint is desirable to avoid misusage of the underlying data. If the checkpoints performed at blocks 211 and 212 are both successful, the WWKMS 138 logs the information used to give access to the ePoE system at block 213. The WWKMS 138 then allows the newly authorized CLA to view, print, update, and transfer ePoE(s) 139 for the registered country, customer, and machines. For embodiments that use enterprise customer numbers 190, the WWKMS 138 may further allow the CLA to validate that the ePoE-owning customer number is listed under the enterprise customer number 190 in the LMS database 136 at block 214, and if this relationship exists, to remove the ePoE from a specific hardware serial number 118 in the LMS database 136 and add the ePoE 139 to the transferee serial number 118n in the LMS database 136 at block 214. If either of the checkpoints performed at blocks 211 and 212 are unsuccessful, the WWKMS 138 prompts the CLA to contact the system vendor and then locks the web id. In some embodiments, the WWKMS 138 may also allow a limited number of retries (not shown).
a-4c depict one embodiment of a CLA access and registration system 400. The CLA uses this web page to generate a CLA profile, which allows the CLA to access the entitlement records and software keys for the customer number for which the software product was manufactured and to whom it was shipped. Once the registration is complete, the CLA will be known to the vendor by their web identifier and authenticated by their password. This registration system 400 comprises a profile summary page 401, a login page 402, and a create profile page 404. The profile summary page 401 contains links and fields that allow the CLA to specify their desired language 410, to sign into an existing account 412 (see
a-5d illustrates one embodiment of an ePoE management user interface 500. This interface 500 comprises a selection page 502, an information page 504, a management page 506, and a transfer page 507. The selection page displays a list 510 of ePoE's 139a-139n the CLA can manage, sorted by customer number 117 and hardware serial number 118. Selecting one or more of the ePoEs 139 from the selection page brings and hitting the view button 512 brings up an associated ePoE information page 504 The information page 504 contains information from the ePoE(s), including a product ID field 520 contain the product identifier 160, a product name field 521 containing the product name 162, a version field 522 containing the product version 163, a quantity field 523 containing the amount of purchased entitlement, a customer number field 524 containing the customer number 117 that purchased the enfitlement, a machine type/serial number field 525 containing the hardware serial number 118 for the customer system 102 on which the product is currently installed or on which it will be installed, and a proof number 526 containing a worldwide unique proof number assigned to this record. Selecting one of the ePoEs 139 from the selection page 502 and hitting the transfer button 514 bring up the transfer page 507, which comprises a destination customer number field 530 and a destination machine serial number field 532 in which the CLA can identify the customer system 102n to which the entitlement(s) 139 should be transferred.
One feature and advantage of the embodiment described with reference to
This computing system 600 embodiment comprises a plurality of central processing units 610a-610d (herein generically referred to as a processor 610 or a CPU 610) connected to a main memory unit 612, a mass storage interface 614, a terminal/display interface 616, a network interface 618, and an input/output (“I/O”) interface 620 by a system bus 622. The mass storage interfaces 614, in turn, connect the system bus 622 to one or more mass storage devices, such as a direct access storage device 640 or a readable/writable optical disk drive 642. The network interfaces 618 allow the computer system 600 to communicate with other computing systems 600 over the communications medium 606. The main memory unit 612 in this embodiment also comprises an operating system 624, a plurality of application programs 626 and some program data 628.
The computing system 600 in this embodiment is a general-purpose computing device. Accordingly, the CPU's 610 may be any device capable of executing program instructions stored in the main memory 612 and may themselves be constructed from one or more microprocessors and/or integrated circuits. In this embodiment, the computing system 600 contains multiple processors and/or processing cores, as is typical of larger, more capable computer systems; however, in other embodiments the computing systems 600 may comprise a single processor system and/or a single processor designed to emulate a multiprocessor system.
When the computing system 600 starts up, the associated processor(s) 610 initially execute the program instructions that make up the operating system 624, which manages the physical and logical resources of the computer system 600. These resources include the main memory 612, the mass storage interface 614, the terminal/display interface 616, the network interface 618, and the system bus 622. As with the processor(s) 610, some computer system 600 embodiments may utilize multiple system interfaces 614, 616, 618, 620, and busses 622, which in turn, may each include their own separate, fully programmed microprocessors.
The system bus 622 may be any device that facilitates communication between and among the processors 610; the main memory 612; and the interfaces 614, 616, 618, 620. Those skilled in the art will appreciate that the system bus 622 may be a relatively simple, single bus structure that provides a direct communication path among the system bus 622 (as depicted in
The main memory 612 and the mass storage devices 640 work cooperatively in this to store the operating system 624, the application programs 626, and the program data 628. In this embodiment, the main memory 612 is a random-access semiconductor device capable of storing data and programs. Although
Although the operating system 624, the application programs 626, and the program data 628 are illustrated as being contained within the main memory 612, some or all of them may be physically located on different computer systems and may be accessed remotely, e.g., via the network 106, in some embodiments. Thus, while the operating system 624, the application programs 626, and the program data 628 are illustrated as being contained within the main memory 612, these elements are not necessarily all completely contained in the same physical device at the same time, and may even reside in the virtual memory of other computer systems 600.
The system interface units 614, 616, 618, 620 support communication with a variety of storage and I/O devices. The mass storage interface unit 614 supports the attachment of one or more mass storage devices 640, which are typically rotating magnetic disk drive storage devices, although they could alternatively be other devices, including arrays of disk drives configured to appear as a single large storage device to a host and/or archival storage media, such as hard disk drives, tape (e.g., mini-DV), writeable compact disks (e.g., CD-R and CD-RW), digital versatile disks (e.g., DVD, DVD-R, DVD+R, DVD+RW, DVD-RAM), holography storage systems, blue laser disks, IBM Millipede devices and the like.
The terminal/display interface 616 is used to directly connect one or more display units 680 to the computer system 600. These display units 680 may be non intelligent (i.e., dumb) terminals, such as a cathode ray tube, or may themselves be fully programmable workstations used to allow IT administrators and users to communicate with the computing system 600. Note, however, that while the interface 616 is provided to support communication with one or more displays 680, the computer systems 600 does not necessarily require a display 680 because all needed interaction with users and other processes may occur via network interface 618.
The computing system 600 in
The network 106 may be any suitable network or combination of networks and may support any appropriate protocol suitable for communication of data and/or code to/from multiple computing systems 600. Accordingly, the network interfaces 618 can be any device that facilitates such communication, regardless of whether the network connection is made using present day analog and/or digital techniques or via some networking mechanism of the future. Those skilled in the art will appreciate that many different network and transport protocols can be used to implement the communication medium 106. The Transmission Control Protocol/Internet Protocol (“TCP/IP”) suite contains suitable network and transport protocols.
The embodiments described with reference to
One exemplary computing system 600, particularly suitable for use as a customer system 102 and/or an ePoE management system 104 is an eServer iSeries computer running the i5/OS multitasking operating system, both of which are produced by International Business Machines Corporation of Armonk, N.Y. However, those skilled in the art will appreciate that the methods, systems, and apparatuses of the present invention apply equally to any computing system 600 and operating system combination, regardless of whether one or both of the computer systems 600 are complicated multi user computing apparatuses, a single workstations, lap-top computers, mobile telephones, personal digital assistants (“PDAs”), video game systems, or the like.
Although the present invention has been described in detail with reference to certain examples thereof, it may be also embodied in other specific forms without departing from the essential spirit or attributes thereof. For example, those skilled in the art will appreciate that the present invention is capable of being distributed as a program product in a variety of forms, and applies equally regardless of the particular type of tangible, computer-readable signal bearing medium used to actually carry out the distribution. Examples of suitable tangible, computer-readable signal bearing media include, but are not limited to: (i) non-writable storage media (e.g., read only memory devices (“ROM”), CD-ROM disks readable by a CD drive, and Digital Versatile Disks (“DVDs”) readable by a DVD drive); (ii) writable storage media (e.g., floppy disks readable by a diskette drive, CD-R and CD-RW disks readable by a CD drive, random access memory (“RAM”), and hard disk drives); and (iii) communications media (e.g., computer networks, such as those implemented using “Infiniband”or IEEE 802.3x “Ethernet” specifications; telephone networks, including cellular transmission networks; and wireless networks, such as those implemented using the IEEE 802.11x, IEEE 802.16, General Packet Radio Service (“GPRS”), Family Radio Service (“FRS”), and Bluetooth specifications). Those skilled in the art will appreciate that these embodiments specifically include computer software downloaded over the Internet.
Embodiments of the present invention may also be delivered as part of a service engagement with a client corporation, nonprofit organization, government entity, internal organizational structure, or the like. Aspects of these embodiments may include configuring a computer system to perform, and deploying software, hardware, and web services that implement, some or all of the methods described herein. Aspects of these embodiments may also include analyzing the client's operations, creating recommendations responsive to the analysis, building systems that implement portions of the recommendations, integrating the systems into existing processes and infrastructure, metering use of the systems, allocating expenses to users of the systems, and billing for use of the systems. This service engagement may be directed at providing both end-to-end ePoE services, to providing only the back-end ePoE services, or some combination thereof. Accordingly, these embodiments may further comprise receiving charges from other entities and associating that charge with users of the ePoE management system 100.
The various software components illustrated in
The accompanying figures and this description depicted and described embodiments of the present invention, and features and components thereof. Those skilled in the art will appreciate that any particular program nomenclature used in this description was 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. Thus, for example, the routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, module, object, or sequence of instructions could have been referred to as a “program”, “application”, “server”, or other meaningful nomenclature. Indeed, other alternative hardware and/or software environments may be used without departing from the scope of the invention. Therefore, it is desired that the embodiments described herein be considered in all respects as illustrative, not restrictive, and that reference be made to the appended claims for determining the scope of the invention.