a-b illustrate embodiments of a system that may be used to implement the present invention.
a-b illustrate alternate embodiments of transferring the independent software product from the seller to the customer once the license has been established.
In the inventive system and method for automatically detecting licensed computer products, a product management database stores contract data indicating a customer and one or more computer products licensed to the customer by a license holder. A customer site is automatically checked for present computer products owned by the license holder to determine whether there are discrepancies between the licensed computer products and the present computer products.
For convenience, throughout the specification, with reference to one embodiment, software products will be referred to. However, the applicability of the invention to licensed hardware as well as to licensed software should be understood. Accordingly, throughout the description and claims, “computer products” refers to either hardware or software.
The controller/processor 110 may be any programmed processor known to one of skill in the art. However, the decision support method can also be implemented on a general-purpose or a special purpose computer, a programmed microprocessor or microcontroller, peripheral integrated circuit elements, an application-specific integrated circuit or other integrated circuits, hardware/electronic logic circuits, such as a discrete element circuit, a programmable logic device, such as a programmable logic array, field programmable gate-array, or the like. In general, any device or devices capable of implementing the decision support method as described herein can be used to implement the decision support system functions of this invention.
The memory 120 may include volatile and nonvolatile data storage, including one or more electrical, magnetic or optical memories such as a RAM, cache, hard drive, CD-ROM drive, tape drive or removable storage disk. The memory may have a cache 125 to speed access to specific data.
The Input/Output interface 150 may be connected to one or more input devices that may include a keyboard, mouse, pen-operated touch screen or monitor, voice-recognition device, or any other device that accepts input. The Input/Output interface 150 may also be connected to one or more output devices, such as a monitor, printer, disk drive, speakers, or any other device provided to output data.
The network interface 160 may be connected to a communication device, modem, network interface card, a transceiver, or any other device capable of transmitting and receiving signals over a network. The components of the computer system 100 may be connected via an electrical bus 170, for example, or linked wirelessly.
Client software and databases for implementing the invention may be accessed by the controller/processor 110 from memory 120 or through the database interface 140, and may include, for example, database applications, word processing applications, the client side of a client/server application such as a billing system, as well as components that embody the decision support functionality of the present invention. The computer system 100 may implement any operating system, such as various versions of Windows™ or UNIX, for example. Client and server software for implementing the invention may be written in any programming language, such as ABAP, C, C++, Java or Visual Basic, for example.
a-b illustrate embodiments of a system that may be used to implement the present invention. A terminal 210 operated by a customer may access an onsite license server 220. The onsite license server 220 may then access a seller license server 230 via a portal based communication network 240. The seller license server 230 may be running a license manager 250 to store representations of independent software products that may be stored at a software download center 260. These representations may include such data as descriptions of the individual software products, pricing for the individual software products, licensing associated with the individual software products, historical data, future planned upgrades, specifications on how to use the individual software products, the seller's representative responsible for oversight of the software product, or any other information associated with the software product. The license manager 250 may provide all functionality necessary for a licensee to select and license various software applications. The download center 260 may provide all functionality necessary to transfer software applications to the terminal 210. The license manager 250 may track the user terminal's licenses to use the independent software products and control a customer's ability to use software products. The license manager 250 may also control access to the individual software products stored at the software download center 260.
In one embodiment, the download center 260 may include a remote system tracking software application when the customer downloads the licensed products to the user terminal 210. This remote system tracking software application may connect with the server 220 to create a session with the license manager 250, communicating with the license manager once an audit has been performed upon the user terminal 210. Alternatively, the license manager 250 may audit the user terminal 210 each time the customer attempts to download a software product from the download center 260. In one embodiment, tracking functionality may be included as a class in each of the software products.
a illustrates a simple customer environment. One customer license server may be connected to a set of one or more terminals. The terminals 210 may house the software, and the server 220 may house the licenses. Alternately, the software and the licenses may reside within the same machine. In one embodiment, a seller runs the application from the customer license server 220. The customer license server 220 may scan the connected terminals 210 for software covered by the seller's license. The customer license server 220 may connect with the seller licensing server to get any appropriate software applications based on the licenses on the server not present at the customer site. These software applications may be downloaded and installed on customer terminals 210.
b illustrates a complex customer environment. In a complex customer environment, the customer site may have multiple license servers 220, spread across the world and interconnected with the corporate or a leased network, with a set of terminals 210 connected to each customer license server 220. The terminals 210 may house the software, and the server 220 may house the licenses. Alternatively, the software and the licenses may reside within the same machine. In one embodiment, a seller runs the application from the customer license server 220. The customer license server 220 may scan the connected terminals 210 for software covered by the seller's license. The customer license server 220 may connect with the seller licensing server to get any appropriate software applications based on the licenses on the server not present at the customer site. These software applications may be downloaded and installed on customer terminals 210.
a illustrates one embodiment of transferring the independent software product from the seller to the customer once the license has been established. A user terminal 210 may send a request 410 for inoperable versions to the download center 260. Inoperable versions will not execute properly without some further step being taken by the user, such as the use of a version key. The download center 260 may send a release 420 of the inoperable versions to the user terminal 210. These inoperable versions may then be installed 430 in the terminal 210. The license manager 250 may send a version key 440 to the user terminal 210 once a license between the customer operating the user terminal 210 and the seller operating the server 420 has been established. The version key may be time limited so that the software only works during the time of the license. In one embodiment, the inoperable versions are binaries, and the keys for unlocking the inoperable binaries are binary keys. Here, “binaries” may refer to the working components of the software product. Alternatively, the versions may refer to text files, data files, or other types of software products.
b illustrates an alternate embodiment of transferring the independent software product from the seller to the customer once the license has been established. A user terminal 210 sends a request 450 for the operable versions to the license manager 250. Operable versions do not require a further step being taken by the user in order to execute properly. The license manager 240 forwards the request 460 to the user terminal 210 once a license between the customer operating the user terminal 210 and the seller operating the seller license server 230 has been established. The download center 260 sends a release 470 of the operable versions to the user terminal 210. The operable versions may be time limited so that the software only works during the time of the license. These operable versions may then be installed 480 in the terminal 210. Other systems, that allow controlled access to the software system and take into account licensing provisions, may also be used for distributing the software.
As noted previously, the foregoing description of embodiments of the invention pertained to licenses for software products. However, those skilled in the art will understand that, using the invention, it also is possible to track licenses for hardware products as well. A customer would not download hardware products, and hardware products would not be made available in the license manager. However, the inventive method would access a customer site and identify the hardware in use at that site, per the unique IDs that hardware has (be it a computer, a peripheral, or the like). In this manner, it is possible to check a license or lease for a hardware product to see whether the license or lease is current, or whether the customer site properly has the licensed/leased hardware product installed there. The license manager, and tracking software at the customer site, would work similarly to what has been described with respect to the software product embodiment to identify hardware at the site. The user at the site would be offered hardware upgrades, for example, if new hardware became available, or would be advised to renew a license or lease of a hardware product installed at the site.
In the above description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention can be practiced without these specific details.