Abstract:
A system and method for restoring telephone and data communication services provided by a primary computing resource when such primary computing resource fails, by providing a backup computing resource and restoration software having means which uses a heartbeat and challenge protocol to detect such a failure and to restore such services.

Description:
TECHNICAL FIELD 
     The invention relates generally to communication services and, more particularly, to a system and method for restoring telephone and data communication services after such services have failed. 
     BACKGROUND 
     Typically, telephone and data services rely on computing resources and internal communication resources, such as buses, to control interface devices of telephone switches (e.g., a signaling system 7 (SS7)) , internet protocol (IP) routers, asynchronous transfer mode (ATM) switches, and the like. When such computing resources and internal communications resources fail, then telephone and data services cannot be provided on the interface devices. 
     Therefore, what is needed is a system and method for restoring telephone and data communications services when such computing resources providing such services fail, so that substantially uninterrupted telephone and data services can be provided over interface devices. 
     SUMMARY 
     According to the present invention, telephone and data communication services provided by a primary computing resource are restored when such primary computing resource fails, by providing a backup computing resource and restoration software having control logic which uses a challenge protocol to detect such a failure and to restore such services. The primary and backup computing resources may be located at sites which are separated by substantial distances so that a natural disaster, for example, which destroys one computing resource does not destroy the other computing resource, thereby enabling communication services to be readily restored and to be more reliable. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which: 
     FIG. 1 is a block diagram of a telecommunications system embodying features of the present invention; 
     FIG. 2 is a flow chart illustrating operation of a backup computing resource depicted in FIG. 1; 
     FIG. 3 is a flow chart illustrating operation of a resource lock depicted in FIG. 1; and 
     FIG. 4 is a block diagram of a telecommunications system embodying features of an alternate embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION 
     In the discussion of the FIGURES, the same reference numerals will be used throughout to refer to the same or similar components. In the interest of conciseness, various other components known to the art, such as asynchronous transfer mode (ATM) switches, Internet Protocol (IP) routers, computing resources, and the like, necessary for the operation of a telecommunications network, have not been shown or discussed in detail. 
     Referring to FIG. 1 of the drawings, the reference numeral 100 generally designates a telecommunications system embodying features of the present invention. The system 100 includes a communications network 102, such as a private or public data or voice network, including a Local Area Network (LAN), an ATM switch, an IP router, a communications bus cable, a shelf backplane, and the like, effective for providing reliable transport of control signaling and, optionally, bearer traffic between the interface device 104 and computing resources described below. 
     The communications network 102 is connected through at least one physical interface device 104 to a public network 106, such as a Public Land Mobile Network (PLMN) which may comprise, for example, a conventional telephone, a private branch exchange (PBX) , an access tandem, a personal computer (PC) modem, access to the Internet, or the like. The interface device 104 may comprise, for example, an 802.3 interface, a digital service level zero (DSO) interface, an optical carrier (OC), an Asymmetrical Digital Subscriber Line (ADSL), or the like, which is effective for providing ingress and egress points for both control signaling (e.g., ISDN Primary Rate Interface and Basic Rate Interface (PRI/BRI), Signaling System 7 (SS7), Transmission Control Protocol (TCP), and the like) and payload bearer traffic (e.g., Time Division Multiplexing (TDM), Internet Protocol/Asynchronous Transfer Mode (IP/ATM) data packets, and the like). A resource lock 108, described below, resides on the interface device 104. 
     A first computing resource 110 and a second computing resource 112 are connected to the network 102, the interface device 104, and the resource lock 108 for controlling the interface in a manner described below. The first and second computing resources 110 and 112, respectively, may be located on the same shelf, in the same frame, or anywhere at the same site (i.e., location). Furthermore, the computing resources 110 and 112, as well as the network 102, may also be located at different sites which are separated from one another by distance of about one mile or more, and typically by distance of about ten miles or more and, preferably by distance of about one hundred miles or more. 
     Each of the first and second computing resources 110 and 112, respectively, preferably comprises a conventional computer mainframe, server, or the like, each of which is independently effective for handling protocols or services (e.g., SS7, BRI, TCP, connection setup, authentication, video on-demand, web pages, and the like) provided on the interface device 104. The first and second computing resources 110 and 112, respectively, include first and second memory units 114 and 116, respectively, for storing a copy of restoration software and data (not shown), discussed below. While not shown, the computing resources 110 and 112 also include a number of other components, such as input and output devices, that are considered to be well-known in the art and are therefore not discussed in further detail herein. 
     The restoration software stored in each of the memory units 114 and 116 is configured to keep the two computing resources 110 and 112 synchronized with each other by maintaining at all times substantially the same configuration data (e.g., equipment connectivity, operating parameters, subscriber information, and the like) and selected state information (e.g., interface usage state, call progress state such as calling and called addresses, and the like) in each of the memory units 114 and 116. The restoration software also provides for failure detection and restoration through a protocol comprising a &#34;heartbeat&#34; and a challenge, described further below. 
     In the operation of the system 100 shown in FIG. 1, the first and second computing resources, 110 and 112, respectively, are configured in a manner well known in the art to provide services required on the interface device 104. One of the computing resources 110 or 112 is initially designated by design or by algorithmic selection as a default &#34;primary&#34; computing resource to control and provide preferably all, or alternatively at least a portion, of services required by, the interface device 104. For the purpose of illustration, it will be assumed that the first computing resource 110 is initially designated as the primary computing resource; the second computing resource 112 will then act as a &#34;backup&#34; computing resource to the system 100, as discussed below. An external source, such as a system administrator, provides some state/configuration information, described above, to each of the computing resources 110 and 112, which is stored in the memory units 114 and 116, respectively. The first (primary) computing resource 110 initially controls the interface device 104 and provides all or a portion of the services on the interface device 104 in a manner well known to those skilled in the art. The first (primary) computing resource 110 also sends &#34;heartbeat&#34; signals to the second (backup) computing resource 112 on a predetermined periodic basis, such as every few seconds. optionally, the second (backup) computing resource 110 may also send &#34;heartbeat&#34; signals to the first (primary) computing resource 110 on a predetermined periodic basis to indicate that the second computing resource 112 is available. 
     FIG. 2 is a flow chart illustrating control logic implemented by the second computing resource 112 for operation as a backup computing resource in the foregoing system shown in FIG. 1. As depicted in FIG. 2, at step 200, the second computing resource 112 is powered up and, at step 202, a determination is made whether the second computing resource 112 has received a heartbeat signal from the first computing resource 110 within a predetermined period of time of, for example, about a few seconds. If, in step 202, a determination is made that the second computing resource 112 has received a heartbeat signal from the first computing resource 110 within the predetermined period of time, then step 202 is repeated; otherwise, execution proceeds to step 204. 
     In step 204, the second computing resource 112 sends a challenge signal to the resource lock 108. The resource lock 108 proceeds according to control logic discussed below with respect to FIG. 3. In step 206, a determination is made whether the second (backup) computing resource 112 has received a signal back from the resource lock 108 indicating that the first (primary) computing resource 110 has failed, and directing the second computing resource 112 to be the primary computing resource and, accordingly, to control the interface device 104 and to provide on the interfaces the services required. If, in step 206, the second computing resource 112 does not receive such a signal from the resource lock 108, then execution returns to step 202; otherwise, execution proceeds to step 208. 
     In step 208, the second computing resource 112 takes control of interface device 104 as the primary computing resource, and provides services required on the interface device 104. In step 210, the second computing resource 112, as the primary computing resource, sends periodic heartbeat signals to the first computing resource 110, the new backup computing resource. It is understood that the first computing resource 110 may not receive the heartbeat signals sent by the second computing resource 112 until the operation of the first computing resource 110 is restored. Additionally, the first (primary) computing resource 110 will be prevented from providing services on the interface device 104 by logic programmed into the interface that permits control signals to flow only between the computing resource designated as the primary computing resource and the interface device 104. 
     FIG. 3 is a flow chart illustrating control logic implemented by the resource lock 108 for determining when the acting backup computing resource becomes the acting primary computing resource. Accordingly, in step 300, power is applied to the resource lock 108 and, in step 302, a determination is made whether a challenge signal has been received from the second (backup) computing resource 112 in step 204, described above with respect to FIG. 2. If, in step 302, it is determined that a challenge signal has not been received from the second (backup) computing resource 112 in step 204, then step 302 is repeated; otherwise, execution proceeds to step 304. 
     In step 304, a determination is made whether a primary computing resource, such as the first computing resource 110, exists. If it is determined that a primary computing exists, then execution proceeds to step 306; otherwise, execution proceeds to step 312, discussed below. 
     In step 306, the resource lock 108 forwards the challenge signal to the first (primary) computing resource 110. In step 308, a determination is made whether the first (primary) computing resource 110 has responded to the challenge signal within a predetermined period of time of, for example, about a few seconds. If, in step 308, it is determined that the first (primary) computing resource 110 has responded to the challenge signal within a predetermined period of time, then execution proceeds to step 310; otherwise, execution proceeds to step 312 wherein execution proceeds on the basis that the first (primary) computing resource has failed. In step 310, the resource lock 108 generates a command signal back to the backup computing resource 112 directing it to remain as a backup computing resource. Upon completion of step 310, execution returns to step 302. 
     In step 312, the resource lock 108 generates a signal to the second computing resource 112 directing it to become the primary computing resource and, accordingly, to control the interface device 104, and to provide services required on the interface. In step 314, the resource lock 108 generates a signal to the first computing resource 110 directing it to become the backup computing resource to the interface device 104. Execution may optionally bypass step 314. Upon execution of step 314 or, if step 314 is optionally bypassed, upon execution of step 312, execution returns to step 302. 
     By the use of the present invention as shown in FIGS. 1-3, primary and backup computing resources may be located substantial distances from a network and associated interfaces, so that if one computing resource becomes inoperable due, for example, to natural disaster such as flood, tornado, earthquake, or to manmade causes such as sabotage, accident, or war, then the backup computing resource may continue to provide service through the interface. 
     It is understood that the present invention can take many forms and embodiments. Accordingly, several variations may be made in the foregoing without departing from the spirit or the scope of the invention. For example, the backup computing resource may not be provided with configuration data and state information until the backup computing resource is needed. While such an arrangement would not be quite as responsive as, and therefore have slower recovery times than, the arrangement described above with respect to FIGS. 1-3, it would not demand as much processing time by the backup computing resource during the vast majority of the time that it is in only a standby mode. Furthermore, in many cases, there may be an array of different computing resources available that could provide backup services. By waiting until a primary computing resource fails to provide a backup computing resource with configuration data and state information, greater flexibility would be provided by the array of computing resources, and a decision about which computing resource to use as a backup could be made based on which computing resource is most available when it is needed. 
     In another example, a computing resources may serve as a primary computing resource for one or more of a plurality of interface devices, and as a backup computing resource for one or more other interface devices. 
     In still another example, the resource lock 108 may be physically and/or logically separated from the interface device 104. Accordingly, as exemplified in FIG. 4, the resource lock 108 is positioned between the network 102 and the interface device 104 to filter messages, such as lock challenges and responses, from the interface device, and/or to forward selected messages from the computing resources 110 and 112 to the interface device 104. The interface device 104 may thereby be more isolated from the computing resources and enabled to operate more efficiently as an interface device between the communications network 102 and the public network 106. In addition to the advantages discussed above, the embodiment shown in FIG. 4 is useful for adapting commercial interfaces devices that have no lock, or for implementing interface devices which do not utilize a resource but do require authentication and/or unambiguous control. 
     In still another example, rather than replacing the primary computing resource with the backup computing resource, the processing power of the backup computing resource may also be used to supplement the primary computing resource to thereby improve services provided on the interfaces. 
     In still another example, the system 100 may operate without the heartbeat signal, by configuring the backup computing resource to periodically generate a challenge signal to the resource lock and await a response back. Such a system may be more responsive to failure of a computing resource because it doesn&#39;t wait for some predetermined period of time to first determine that it has not received a heartbeat signal from the primary computing resource before it generates a challenge signal to the resource lock. 
     In still another example, the interface device 104 may comprise multiple interfaces, each of which interfaces may include a lock, each of which locks may have different owners which control the lock. 
     Having thus described the present invention by reference to certain of its preferred embodiments, it is noted that the embodiments disclosed are illustrative rather than limiting in nature and that a wide range of variations, modifications, changes, and substitutions are contemplated in the foregoing disclosure and, in some instances, some features of the present invention may be employed without a corresponding use of the other features. Many such variations and modifications may be considered obvious and desirable by those skilled in the art based upon a review of the foregoing description of preferred embodiments. Accordingly, it is appropriate that the appended claims be construed broadly and in a manner consistent with the scope of the invention.