Abstract:
A computer network includes servers, controllers, and a plurality of workstations. The servers and controllers are coupled by Ethernet and secondary communication links. The workstations are serially coupled with the controllers. In this network, each server and controller acts as a failsafe and is adapted to assume the functionality of another server or controller in response to failure in that server or controller. In this manner, the secondary communication link assumes functionality of the Ethernet link in response to failure in the Ethernet link. A method of eliminating interruptions in a computer network due to a single point-of-failure includes assuming functionality of a server or controller by another server or controller in response to failure in the server or controller, and assuming functionality of an Ethernet link by a secondary communication link in response to failure in the Ethernet link.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates generally to computer networks and more specifically relates to a method and apparatus for continuous operation of a point-of-sale system during the occurrence of a single point-of-failure.  
         [0003]     2. Description of the Related Art  
         [0004]     Reliability is paramount in computer network systems, such as point-of-sale systems, which are commonly used in retail sale operations. A primary source of network failure is cable breakage or faulty contacts associated with connectors.  FIG. 1  shows a conventional computer network system, in which a server  10  preferably communicates through an Ethernet hub  12  and a control unit or controller  14  to each of a plurality of workstations  16 A- 16 C. The control unit  14  preferably communicates with the workstations through a transmit path  22  and a receive path  24 . In a point-of-sale system, the workstations  16 A- 16 C are coupled to a monitor  18  and a keyboard or bump bar  20 .  
         [0005]     Data is transmitted from the server  10  to the Ethernet hub  12  and then to the control unit  14 , which outputs the data on the transmit path  22 . The transmit path  22  serially connects each of the plurality of workstations  16 A- 16 C in a daisy-chain configuration. Likewise, data is transmitted from one or more of the plurality of workstations  16 A- 16 C on the receive path  24 , which connects the plurality of workstations  16 A- 16 C to the control unit  14 . The control unit  14  outputs data received from the workstations  16 A- 16 C to the server  10  through the Ethernet hub  12 .  
         [0006]     If there is a break in the transmit path  22 , at for instance point A, workstation  16 C, which is located beyond the break, will not receive information from the control unit  14 . Likewise, if there is a break in the receive path  24 , at for instance point B, neither the control unit  14  nor the server  10  will receive information from workstations  16 A- 16 C. Malfunctions in the server  10 , control unit  14 , and Ethernet link would likely result in even more catastrophic communication failures.  
         [0007]     Accordingly, it is a goal of the method and system in accordance with the present invention to provide uninterrupted access to all workstations in a point-of-sale system despite the occurrence of a single point-of-failure in the network or malfunctions in the server, control unit, and Ethernet link.  
       SUMMARY OF THE INVENTION  
       [0008]     The foregoing goals are satisfied in accordance with the present invention, which, in one embodiment, provides a computer network including a first server, first controller, second server, second controller, and a plurality of workstations. The servers and controllers are coupled to each other through an Ethernet link and one or more secondary communication links. The plurality of workstations are coupled to each other and the controllers in a serial configuration.  
         [0009]     Each of the servers is adapted to assume at least a portion of the functionality of another server in response to a failure in the operation of the other server. Likewise, each of the controllers is adapted to assume at least a portion of the functionality of another controller in response to a failure in the operation of the other controller. The secondary communication link is adapted to assume at least a portion of the functionality of the Ethernet link in response to a failure in the Ethernet link.  
         [0010]     Another embodiment of the present invention provides a method of eliminating interruptions in the operation of a computer network due to a single point-of-failure, which includes providing a first server, coupling a first controller to the first server, and coupling a second server to the first server. The method also includes assuming at least a portion of the functionality of the first server by the second server in response to a failure in the operation of the first server, assuming at least a portion of the functionality of the second server by the first server in response to a failure in the operation of the second server, and coupling a plurality of workstations to each other and the first controller in a serial configuration.  
         [0011]     The method may further include the steps of coupling a second controller to the second server, and coupling the second controller to the first controller. The method may also include assuming at least a portion of the functionality of the first controller by the second controller in response to a failure in the operation of the first controller, assuming at least a portion of the functionality of the second controller by the first controller in response to a failure in the operation of the second controller, and coupling the plurality of workstations being to each other, the first controller, and the second controller in a serial configuration.  
         [0012]     These and other purposes, goals, and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]      FIG. 1  is a block diagram of a conventional point-of-sale computer network system.  
         [0014]      FIG. 2  is a block diagram of a computer network system in accordance with the present invention, which provides continuous operation despite the occurrence of a single point-of-failure in a communication link or malfunctions in major components of the system, such as a server, control unit, or Ethernet link.  
         [0015]      FIG. 3  is a flowchart of a routine to monitor operability of servers in the computer network system in accordance with the present invention.  
         [0016]      FIG. 4  is a flowchart of a routine to monitor operability of controllers or control units in the computer network system in accordance with the present invention.  
         [0017]      FIG. 5  is a flowchart of a routine to monitor operability of an Ethernet link in the computer network system in accordance with the present invention.  
         [0018]      FIG. 6  is a flowchart of a routine to monitor operability of communication links between input/output control units or workstations in the computer network system in accordance with the present invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0019]      FIG. 2  is a block diagram of a preferred embodiment of a computer network system  26  in accordance with the present invention. The system  26  is particularly adapted for use as a point-of-sale system and distributed computer network. An example of a point-of-sale system, for which further detail concerning servers, controllers, and workstations described herein, is disclosed in U.S. patent application Ser. No. 10/714,592 filed on Nov. 14, 2003, which is incorporated herein by reference.  
         [0020]     The computer network system  26  is preferably able to continue to function despite the occurrence of a single point-of-failure in the system. For instance, failure in any one of the components, such as a server  10  or control unit  14 , should not affect normal operation. This is achieved by including a secondary server  28  and a secondary control unit  30 . In addition to connecting the servers  10 ,  28  by an Ethernet link and hub  12 , the controllers or control units  14 ,  30  are also preferably connected to the servers  10 ,  28  by an RS-232, Universal Serial Bus (USB), Bluetooth, infrared, and/or radio frequency communication link  32 ,  34 ,  36 ,  40 . Thus, even if there is a malfunction in the Ethernet link or hub  12 , the system  26  will still preferably be able to continue normal uninterrupted operation.  
         [0021]     Software in the primary server  10  preferably monitors the status of the control units  14 ,  30  in a continuous fashion. If the primary control unit  14  fails, the primary server  10  preferably detects this event and activates the secondary control unit  30 , which will then take control of the network of workstations  16 A- 16 D. If the primary server  10  detects that an Ethernet connection has failed, whether it be the Ethernet hub  12  or link, the primary server  10  preferably begins communication with either control unit  14 ,  30  through at least one of the secondary communication links  32 ,  34 ,  36 ,  40 .  
         [0022]     If the primary server  10  fails or its software crashes, the secondary server  28  preferably detects this event and assumes control over the system  26 . Since the workstations  16 A- 16 D are preferably connected to each of the primary control unit  14  and the secondary control unit  30  in a serial daisy-chain configuration, any single breakage of the cable connections in the workstation network will preferably not affect system operation since data will still be able to reach of the workstations  16 A- 16 D from at least one end of the closed loop path defined by a transmit path  22  and a receive path  24 . When the system  26  detects a single point-of-failure, a warning message is preferably sent to the user to enable repairs to be performed as soon as possible so that the situation can be rectified before a second failure develops.  
         [0023]     As indicated above,  FIG. 2  shows that the Ethernet hub  12  preferably provides an Ethernet link as a primary communication path between the primary server  10 , primary control unit  14 , secondary server  28 , secondary control unit  30 , and a plurality of point-of-sale terminals  42 A- 42 D. Each of the servers  10 ,  28  are also preferably connected by secondary communication links  32 ,  34 ,  36 ,  40 , such as an RS-232, Universal Serial Bus (USB), Bluetooth, infrared, and/or radio frequency communication link. The transmit path  22  preferably originates from a transmit port of the primary control unit  14 , is linked to each of the workstations  16 A- 16 D in a serial daisy-chain configuration, and terminates at a receive port of the secondary control unit  30 . An output port of the secondary control unit  30  is preferably coupled to an input port of the primary control unit  14  through the receive path  24 .  
         [0024]     Despite the “transmit” and “receive” nomenclature, these ports and links are intended to be bidirectional that are preferably implemented in accordance with RS- 485 , but may also include an RS-232, Universal Serial Bus (USB), Bluetooth, infrared, and/or radio frequency communication link. In this way, communication is possible to and from each of the workstations  16 A- 16 D despite the occurrence of a single point-of-failure by transmitting from either the primary control unit  14  or the secondary control unit  30 . Methods and apparatuses for detecting and locating computer network discontinuities may be used in the workstation network, as further disclosed in U.S. patent application Ser. No. ______ filed Aug. 6, 2004, entitled “Diagnostic Method and Apparatus for Detecting and Locating Computer Network Discontinuities”, which is incorporated herein by reference. Each of the workstations  16 A- 16 D is also preferably coupled to a monitor  18  and a bump bar or keyboard  20 .  
         [0025]      FIG. 3  is a flowchart of a preferred routine to monitor operability of the primary and secondary servers in the computer network system in accordance with the present invention. Primary server operation is initiated and/or continued in step  44 , and primary server operability is monitored by the secondary server in step  46 . If there is a primary server failure in step  48 , that failure is reported in step  50  and the operability of the secondary server is determined in step  52 .  
         [0026]     If the secondary server is found to be operational in step  52 , the secondary server operation is initiated in step  54  and its operability is monitored by the primary server, if the primary server is capable of doing so, in step  56 . The operability of the primary server is again verified in step  58  and, if the primary server is operational, the routine returns to step  44  to continue primary server operation. It should also be noted that as long as the primary server remains operational in step  48 , the routine preferably remains in the loop defined by steps  44 ,  46 , and  48 .  
         [0027]     If the primary server is not operational in step  58 , and there is a failure in the secondary server in step  60 , that failure is reported, if possible, in step  62 . If the primary server is operational in step  64 , the routine returns to step  44  to continue primary server operation. However, if the primary server is determined not to be operational in  64 , the primary server failure is reported in step  66  and the routine proceeds to shutdown in step  68 .  
         [0028]     If, in step  52 , the secondary server is determined not to be operational, a secondary server failure is reported, if possible, in step  62  and the routine preferably proceeds to step  64 . It should also be noted that if the secondary server is determined to be operational (without a malfunction or failure) in step  60 , the routine preferably returns to step  54  to continue secondary server operation.  
         [0029]      FIG. 4  is a flowchart of a preferred routine to monitor operability of the controllers or control units in the computer network system in accordance with the present invention. Primary control unit operation is initiated and/or continued in step  70 , and primary control unit operability is monitored by the primary or secondary server in step  72 . If there is a primary control unit failure in step  74 , that failure is reported in step  76  and operability of the secondary control unit is determined in step  78 .  
         [0030]     If the secondary control unit is found to be operational in step  78 , the secondary control unit operation is initiated in step  80  and its operability is monitored by the primary or secondary server in step  82 . The operability of the primary control unit is again verified in step  84  and, if the primary control unit is operational, the routine preferably returns to step  70  to continue primary control unit operation. It should also be noted that as long as the primary control unit remains operational in step  74 , the routine preferably remains in the loop defined by steps  70 ,  72 , and  74 .  
         [0031]     If the primary control unit is found not to be operational in step  84  and there is a failure in the secondary control unit in step  86 , the secondary control unit failure is reported in step  88  and the routine proceeds to step  90 . If the primary control unit is operational in step  90 , the routine preferably returns to step  70  to continue primary control unit operation. However, if the primary control unit is determined not to be operational in  90 , the primary control unit failure is reported in step  92  and the routine proceeds to shutdown in step  94 .  
         [0032]     If, in step  78 , the secondary control unit is determined not to be operational, a secondary control unit failure is reported in step  88  and the routine preferably proceeds to step  90 . It should also be noted that if the secondary control unit is determined to be operational (without a failure or malfunction) in step  86 , the routine preferably returns to step  80  to continue secondary control unit operation.  
         [0033]      FIG. 5  is a flowchart of a preferred routine to monitor operability of the Ethernet and secondary communication links in the computer network system in accordance with the present invention. The secondary communication links are intended to include one or more of an RS-232, Universal Serial Bus (USB), Bluetooth, infrared, and/or radio frequency communication link. Ethernet link operation is initiated and/or continued in step  96 , and Ethernet link operability is monitored by the primary or secondary server in step  98 . If there is an Ethernet link failure in step  100 , that failure is reported in step  102  and the operability of the secondary communication link is determined in step  104 .  
         [0034]     If the secondary communication link is found to be operational in step  104 , the secondary communication link operation is initiated in step  106  and its operability is monitored by the primary or secondary server in step  108 . The operability of the Ethernet link is again verified in step  110  and, if the Ethernet link is operational, the routine preferably returns to step  96  to continue Ethernet link operation. It should also be noted that as long as the Ethernet link remains operational in step  100 , the routine preferably remains in the loop defined by steps  96 ,  98 , and  100 .  
         [0035]     If the Ethernet link is found not to be operational in step  110  and there is a failure in the secondary communication link in step  112 , the secondary communication link failure is reported in step  114 . If the Ethernet link is operational in step  116 , the routine returns to step  96  to continue Ethernet link operation. However, if the Ethernet link is determined not to be operational in  116 , the Ethernet link failure is reported in step  118  and the routine proceeds to shutdown in step  120 .  
         [0036]     If, in step  104 , the secondary communication link is determined not to be operational, a secondary communication link failure is reported in step  114  and the routine preferably continues to step  116 . It should also be noted that if the secondary communication link is determined to be operational (without a failure or malfunction) in step  112 , the routine preferably returns to step  106  to continue secondary communication link operation.  
         [0037]      FIG. 6  is a flowchart of a preferred routine to monitor the operability of the communication link between workstations in the computer network system in accordance with the present invention. Single control unit operation, that is, where communication is primarily relied on by the workstations from either the primary control unit or the secondary control unit is initiated and/or continued in step  122 , and either the primary or secondary control unit monitors operability of the link between the workstations in step  124 .  
         [0038]     If there is a single point-of-failure in the workstation link in step  126 , that failure is reported in  128  and, if not, the routine returns to step  122  to continue single control unit operation. After reporting a failure in step  128 , operability of the primary and secondary controls units is determined in step  130  and, if both are operational, dual control unit operation is initiated in step  132 . In dual control unit operation, communication to the workstations is provided redundantly by both the primary and secondary control units, which ensures that each workstation receives all communication despite the occurrence of a single point-of-failure in the link between workstations.  
         [0039]     Both primary and secondary control units preferably monitor the workstation link in step  134 . If the single point-of-failure in the workstation link is determined to have been successfully repaired or otherwise eliminated in step  136 , the routine preferably returns to step  122  to continue single control unit operation. If the single point-of-failure is determined not to have been successfully repaired or eliminated in step  136 , the routine preferably determines whether there has been a second point-of-failure in step  138  and, if not, returns to continue dual control unit operation in step  132 .  
         [0040]     If a dual communication link failure is determined to have occurred in step  138 , the routine reports the dual workstation link failure in step  140  and proceeds to shutdown in step  142 . If both the primary and secondary master control units are not operational in step  130 , the routine also preferably proceeds to shutdown in step  142 .  
         [0041]     Accordingly, the method and system in accordance with the present invention is able to provide uninterrupted access to all workstations in a point-of-sale system despite the occurrence of a single point-of-failure in the network or malfunctions in the server, control unit, and Ethernet link between workstations.  
         [0042]     Although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be provided therein by one skilled in the art without departing from the scope or spirit of the invention.