Abstract:
A system and methods are disclosed for preventing computers in a network from concurrently processing a task, where the task can be successfully processed by only one computer in the network at a time. The system comprises a plurality of computers connected to the network and a locking device connected to the network, wherein the locking device uses a password change system to control which computer in the network is able to process the task.

Description:
TECHNICAL FIELD  
         [0001]    The technical field is mutual exclusion lock implementation for a computer network.  
         BACKGROUND  
         [0002]    In a computer network there are occasions when two or more computers in the network inadvertently attempt to complete the same task, such as operating a software application or processing data, at the same time. However, in situations where the task can be correctly performed by only one computer at a time, deleterious results may ensue from having two or more computers in the network processing or attempting to process the same task. In order to avoid this problem, computer systems commonly employ mutual exclusion locks.  
           [0003]    One application of mutual exclusion lock implementation is high availability environments for computer networks. In a high availability environment, it is often critical that a software application operating on the computer network be operational at all times. In such cases, if one computer in the network is running the application and subsequently fails, then another computer in the network takes over and runs the application. However, a significant problem arises when another computer in the network attempt to take over and run the application concurrently with the first computer. This scenario has serious potential for corrupting databases.  
           [0004]    One solution to this problem is to use a disk drive accessible to each computer in the network and an algorithm that runs through a series of reads and writes on the disk drive. The algorithm eventually yields which computer in the network will run the application. Another solution involves the use of an external computer. In the specific case of two computers A and B competing to run the application, a third computer arbitrates between the two competing computers. If both computer A and B are alive, they contact the third computer, which will then determine which computer will run the application. However, these current methods may be economically unacceptable and may require a network configuration that is undesirable or require additional hardware.  
           [0005]    Accordingly, a need exists for an alternate system and method for mutual exclusion lock implementation that may be used in a variety of applications that is relatively inexpensive and simple.  
         SUMMARY  
         [0006]    A system is disclosed for preventing computers in a network from concurrently processing a task, where the task can be successfully processed by only one computer in the network at a time. The system comprises a plurality of computers connected to the network and a locking device connected to the network, wherein the locking device uses a password change system to control which computer in the network is able to process the task.  
           [0007]    A method is disclosed for preventing a second computer from concurrently operating a software application already operating on a first computer. A first password is assigned to the first computer and a second password is assigned to the second computer, and a locking device password is assigned to a locking device, the first computer and the second computer. The method comprises detecting a failure of the first computer by the second computer, supplying the locking device password and the second password from the second computer to the locking device, comparing the locking device password and a currently existing password of the locking device and changing the currently existing password of the locking device to the second password if the locking device password matches the currently existing password of the locking device, whereby the second computer operates the software application exclusively in the network.  
           [0008]    A method is disclosed for preventing computers in a network from concurrently processing a task, where the task can be successfully processed by only one computer in the network at a time. The method comprises acquiring a locking device if a first password of a computer in the network matches a currently existing password of the locking device, whereby the computer is able to process the task exclusively in the network, or denying acquisition of the locking device if the first password does not match the currently existing password of the locking device. 
       
    
    
     DESCRIPTION OF THE DRAWINGS  
       [0009]    The detailed description will refer to the following drawings, wherein like numerals refer to like elements, and wherein:  
         [0010]    [0010]FIG. 1 illustrates one embodiment of a computer network with a high availability environment;  
         [0011]    [0011]FIG. 2 is a flow chart illustrating how a computer acquires a locking device utilizing a password change system in the computer network of FIG. 1; and  
         [0012]    [0012]FIG. 3 is a flow chart illustrating a release of the locking device after the locking device has been acquired.  
     
    
     DETAILED DESCRIPTION  
       [0013]    [0013]FIG. 1 illustrates one embodiment of a computer network  100  in a high availability environment. Only two computers are shown, but it is understood that more computers may be included in the computer network  100 . A first computer  105  and a second computer  110  are connected to each other by a communication link  115 . Both computers  105 ,  110  are connected to a locking device  120  by communication links  125 ,  130 , respectively. The communication links  115 ,  125 ,  130  may be physical links, such as conventional land-based copper lines or fiber optic cables, or the communication links may be wireless links. The two computers  105 ,  110  communicate with each other through communication link  115 , and engage and communicate with the locking device  120  through the communication links  125 ,  130 , respectively. The locking device  120  has a locking device password that can be changed. The two computers  105 ,  110  are each assigned their own unique passwords as well as the locking device password so that each computer in the computer network  100  possesses two passwords. The two computers  105 ,  110  may be ordinary personal computer systems or computer server systems, or a combination of a personal computer system and a computer server system, that are each capable of operating software applications and communicating with entities within the computer network  100 .  
         [0014]    The locking device  120  controls access for operating a software application on the computer network  100  through a password change system, which is described below in FIG. 2. One function of the locking device  120  is to allow any one computer in the computer network  100  to operate the software application, while excluding any other computers in the computer network  100  from operating the software application on a concurrent basis. If the computers in the computer network  100  are in communication with each other, an intelligent agreement can be made as to which computer will run the application. However, if the computers lose communication with each other, the locking device  120  is needed to resolve which computer should run the application. The locking device  120  may be one of a number of commonly available devices that allow passwords to be set and changed. For example, the locking device  120  may be a hardware firewall device that is connected to the computer network  100 .  
         [0015]    Each computer in the computer network  100  is capable of engaging the locking device  120  and supplying the unique password of that computer and the locking device password to the locking device  120 . The locking device  120  compares the supplied locking device password from the computer with a currently existing password of the locking device  120 . If the passwords match, the computer supplies its unique password to the locking device  120  and the currently existing password of the locking device  120  is changed to the unique password of the computer. The computer has acquired the locking device  120  after the currently existing password of the locking device  120  has been changed to the unique password of the computer. This change of the currently existing password of the locking device  120  is atomic with respect to the matching of the supplied locking device password with the currently existing password of the locking device  120 . In other words, the matching of the passwords instantaneously results in a change of the currently existing password of the locking device  120  to the unique password of the computer. Once a computer in the computer network  100  has acquired the locking device  120 , it maintains its status of having acquired the locking device  120 , or holds the locking device  120 , until the computer experiences failure or releases the locking device  120 . A computer holding the locking device  120  will normally release the locking device  120  when all computers in the computer network  100  are able to communicate with each other.  
         [0016]    In some unusual events, such as the destruction of a computer holding the locking device  120 , it will be impossible for the destroyed computer to release the locking device  120 . This requires a special administrative action to clear the locking device  120 , and make it available to other computers in the computer network  100 . For example, if any computer in the computer network  100  holding the locking device  120  experiences permanent failure, the currently existing password of the locking device  120  is cleared and changed to the locking device password. The currently existing password of the locking device  120  may be cleared, for example, by a surviving computer that is selected by a manager of the computer network  100 . The manager initiates the clearing process in a selected surviving computer after a permanent failure of the computer holding the locking device  120  is detected. The manager may detect a permanent failure of the computer by physically inspecting the computer for indications that it is no longer operating properly. The manager may be, for example, a human administrator. The selected surviving computer may, for example, clear the currently existing password of the locking device  120  by supplying the password of each computer in the computer network  100  to the locking device  120  until the currently existing password of the locking device  120  is matched. Upon matching the currently existing password of the locking device  120 , the selected surviving computer may change the currently existing password of the locking device  120  to the locking device password. This enables the locking device  120  to be acquired by any computer.  
         [0017]    In one embodiment, the first computer  105  initially operates the software application on an exclusive basis in the computer network  100 . The initial state of the locking device  120  is available, such that any computer in the computer network  100  other than the first computer  105  may acquire the locking device  120 . Since the computers in the computer network  100  are in communication with each other, the locking device 120  is not initially held by any computer. In this case, the currently existing password of the locking device  120  is the locking device password. In a high availability environment, if the first computer  105  experiences failure, or appears to experience failure from the perspective of the second computer  110 , the second computer  110  will detect a failure in the first computer  110  and will attempt to acquire the locking device  120  in order to take over the operation of the software application. If the first computer  105  has not failed but the communication link  115  is broken or interrupted, the computer  105  will also compete to acquire the locking device  120 . Only one of the computers  105  and  110  will succeed in acquiring the locking device  120  based on priority in time. The computer which successfully acquires the locking device  120  runs the software application.  
         [0018]    The locking device  120  is acquired using the method illustrated by the flowchart  200  of FIG. 2. For example, it is possible that the second computer  110  succeeds in acquiring the locking device  120  before the first computer  105 . In this situation, the computer  110  engages the locking device  120  through communication link  130  and supplies the locking device password and its unique password to the locking device  120 , step  205 . If the locking device password matches the currently existing password of the locking device  120 , step  210 , then the currently existing password of the locking device  120  is changed to the unique password of the computer  110 , step  215 . The locking device  120  reports to the computer  110  that the currently existing password of the locking device  120  has been matched, step  225 . The computer  105 , which has also competed for the locking device  120 , will be denied access by the locking device  120  since the computer  110  acquires the locking device  120  first. The supplied locking device password supplied by the computer  105  to the locking device  120  will not match the currently existing password of the locking device  120  (i.e. the unique password of the computer  110 ), and the computer  105  will not be permitted to operate the software application. Upon denial of access, the locking device  120  reports to the computer  105  that the currently existing password of the locking device  120  has not been matched, step  220 . The computer that first successfully acquires the locking device  120  will operate the software application exclusively.  
         [0019]    After acquiring the locking device  120 , and upon resumption of communication between all computers in the computer network  100 , the locking device  120  may be released by the method illustrated by the flow chart  300  of FIG. 3. For example, the second computer  110  may engage the locking device  120  through communication link  130  and supply the unique password of the second computer  110 , step  305 . The unique password of the second computer  110  will match the currently existing password of the locking device  120 , step  310 , because the second computer  110  holds the locking device  120 . The currently existing password of the locking device  120  is then changed to the locking device password, step  315 . Any other computer in the computer network  100  may acquire the locking device  120  since each computer is assigned and is capable of supplying the locking device password along with its own unique password.  
         [0020]    It is understood that this embodiment may be applied not only to high availability environments in computer networks, but also to other situations that would benefit from mutual exclusion lock implementation. In these situations, computers in a computer network  100  are not backing each other up as in the case for high availability, but are independent components in the computer network  100  that have access to the same task or resource. If one of the computers is processing the task, the other computers in the computer network  100  are prevented from concurrently processing the same task by the locking device  120  that uses a password change system. The computer acquiring the locking device  120  is able to process the task exclusively in the network. The locking device  120  may be acquired and released according to the methods illustrated in FIGS. 2 and 3, respectively. Therefore, the locking device  120  controls which computer in the network is able to utilize the resource or process the task at a given time.  
         [0021]    While the present invention has been described in connection with an exemplary embodiment, it will be understood that many modifications will be readily apparent to those skilled in the art, and this application is intended to cover any variations thereof.