1. Technical Field
The present invention relates in general to the field of computers, and in particular to client computers on a network. Still more particularly, the present invention relates to a method and system for restricting a download of software from a server to a client computer based on a real-time physical location of the client computer.
2. Description of the Related Art
There are two principal methods used to load software into a computer. The first requires the user to purchase the software that is on a transportable medium such as a compact disk read only memory (CD-ROM) or floppy disk. The CD-ROM or floppy disk is inserted into the appropriate drive of the computer, which loads the software into system memory for execution, and optionally, into the computer's local hard disk drive for later use. While some such software has code that allows the software to be run for a limited number of times or for a limited period of time, typically the loaded software can be run as often and as long as the user desires.
The second method of loading software into a computer involves downloading the software over a network, such as the Internet, from an application server to a client computer on which the software will run. As with software loaded from a CD-ROM or floppy disk, the software may have an unlimited use and lifetime, or may be limited by code in the software according to the terms of the purchase agreement. The software may be downloadable to a storage medium such as a writeable CD-ROM, digital video disk (DVD), floppy magnetic disk, hard drive, etc. Alternatively, the software may be downloadable only to the client computer's system memory, thus giving the application server additional control over where, when and how the software is used and by whom.
In either method, the capability of the software may depend on updates, patches or additional licensing fees mandated by an application vendor.
With an external network, such as the Internet, a client computer may be anywhere in the world. This situation makes security issues regarding the software that may be run a complex issue. For example, current United States laws prohibit the exportation of 128-bit bulk encryption programs, but not 56-bit bulk encryption programs. This prohibition applies not only to software on CD-ROM's and other loadable media, but also to that which is downloaded from an application server. The problem for the software supplier, then, is knowing when a download is authorized to a particular client, who may be in a foreign country whose security interests are adverse to those of the United States, and thus making the download an illegal exportation.
Similarly, there are certain areas within a domestic facility where the owner of the facility restricts software use. For example, certain enterprises may have a policy that certain proprietary software is allowed to download and run only in certain areas of the enterprise campus, such as within a research laboratory, in order to protect the intellectual property of the enterprise.
Therefore, there is a need for a method and system that permits software to be downloaded from an application server for execution on a client computer only if the client computer is in an authorized physical location, whether that area be a particular country, state, city or building/room.
The present invention is thus directed to a method and system for managing a download of software from an application server to a client computer depending on a physical location of the client computer. The client computer transmits a real-time Global Position System (GPS) coordinate to the application server. This location is then compared to a list of authorized location ranges associated with the requested application. If the client computer is located within an authorized location range, the application server then downloads the application to the client computer. If the client computer is not within an authorized area, then the software is not allowed to be downloaded.
The above, as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further purposes and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, where:
With reference now to the figures and, in particular, to
Also connected to system bus 108 are system memory 110 and input/output (I/O) bus bridge 112. I/O bus bridge 112 couples I/O bus 114 to system bus 108, relaying and/or transforming data transactions from one bus to the other. Peripheral devices such as nonvolatile storage 116, which may be a hard disk drive, floppy drive, a compact disk read-only memory (CD-ROM), a digital video disk (DVD) drive, or the like, and input device 118, which may include a conventional mouse, a trackball, or the like, is connected to I/O bus 114. Client computer 100 connects with network 120 via a network interface card (NIC) 126 as shown.
GPS (Global Positioning System) receiver 122 detects signals from the Global Positioning System, which is an array of satellites that orbit the Earth making it possible for ground receivers to pinpoint a geographic location. The location accuracy is anywhere from 100 to 10 meters for most equipment, and in a preferred embodiment is accurate to within one (1) meter. As known to those skilled in the art of GPS technology, multiple GPS satellites, owned and operated by the U.S. Department of Defense but available for general use around the world, are in orbit at 10,600 miles above the Earth. The satellites are spaced so that from any point on Earth, at least four satellites will be above the horizon. Each satellite contains a computer, an atomic clock, and a radio. With an understanding of its own orbit and the clock, each satellite continually broadcasts its position and time. GPS receiver 122 triangulates the position of computer 100, either using the computing power of processor 102 or a dedicated processor (not shown) within GPS receiver 122, by obtaining bearings from multiple satellites. The result is provided in the form of a geographic position—longitude and latitude. In a preferred embodiment, an additional satellite's signal is received to compute the altitude as well as the geographic position of computer 100.
Network 120 may be the Internet, an enterprise confined intranet, an extranet, or any other network system known to those skilled in the art of computers.
Application server 124 also includes (not shown) processing units and integral units, similar to those shown for client computer 100. Although application server 124's name implies that it serves applications, it is understood that application server 124 may serve (download) any type of software to a client computer via a network connection.
The exemplary embodiment shown in
Referring now to
Multiple applications 208a-c are depicted within application server software 200. Such applications may include word processors, spreadsheets, graphics, programs, games or the like, but more significantly include security sensitive applications, such as bulk encryption programs or other programs that contain proprietary programming code or sensitive data (enterprise trade secrets or national security secrets). Each application 208 contains or is associated with a corresponding list of approved locations 210, which describe the geographical locations in which the associated application is authorized to run. Thus, list 210a contains a range of GPS coordinates in which the client computer must physically be located in order to permit application 208a to be downloaded to the client computer.
With reference now to
If the client computer is in a location where the first application is authorized to run (query block 310), then the first application is downloaded to the client computer from the application server (block 308).
If a determination was made at decision block 310 that the client computer was not in an authorized location to download and run the requested first application, a query (query block 314) is made as to whether an alternate version of the requested first application is available. For example, the first application may have been a 128-bit bulk encryption program, and an alternate application may be a 56-bit bulk encryption program. If such an alternate program is available, then the client computer requests that alternate program (block 316), and the application server determines if the client computer is authorized to download the alternate program from the application server based on the client computer's physical location (blocks 306 and 310). The process continues until an alternate version of the application is located that is authorized to be downloaded to the client computer's current physical location (block 308), or else the process ends without an application being loaded and run. Alternatively, the application server can sua sponte offer an alternative program that the application server has already determined is authorized for downloading to the client computer's present location.
While authorized location list 210 has been describe above as relating to GPS signals, list 210 may contain alternative coordinate listings supplied to application server 124, including a coordinate supplied by an enterprise defined system. That is, an enterprise may have a coordinate location identifier supplied by a local transmission system. Referring then to
Alternatively, location service 204 may be structured such that the presence or lack of a GPS or other location signal being detected by a client computer either enables or prohibits the loading of an application. Thus, an application may be constructed such that if the GPS receiver 122 does not detect a GPS signal, then it is presumed that the client computer 410 is in a secure location, and the application may be downloaded. In an alternative embodiment of the present invention, the application will download only with the detection of a GPS or other location signal.
It should be understood that at least some aspects of the present invention may alternatively be implemented in a program product. Programs defining functions on the present invention can be delivered to a data storage system or a computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g., CD-ROM), writable storage media (e.g., a floppy diskette, hard disk drive, read/write CD ROM, optical media), and communication media, such as computer and telephone networks including Ethernet. It should be understood, therefore in such signal-bearing media when carrying or encoding computer readable instructions that direct method functions in the present invention, represent alternative embodiments of the present invention. Further, it is understood that the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.
While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.