Abstract:
A method, with a corresponding system and computer program product, for directing access to a server data processing system The method includes storing a first uniform resource locator and a associated with a first network address, where the first network address corresponds to a primary server data processing system and storing a second uniform resource locator and associated with a second network address, where the second network address corresponds to a disaster recovery server data processing system. The method also includes returning the first network address in response to calls for the first uniform resource locator when the primary server data processing system is operating normally and returning the second network address in response to calls for the first uniform resource locator when the primary server data processing system is unavailable (i.e., in the event of a “disaster”).

Description:
TECHNICAL FIELD OF THE INVENTION  
       [0001]     The present invention is directed, in general, to networked data processing systems, and in particular to networked data processing system disaster recovery activities.  
       BACKGROUND OF THE INVENTION  
       [0002]     Businesses rely on data processing systems to manage a wide range of internal and external functions, including accounting and inventory functions, data management functions, and many others. Further, many of these systems must be available to be accessed over local or wide-area data processing system networks, including both private networks and public networks such as the internet.  
         [0003]     In the event of a “disaster,” which can include both actual natural disasters and other events, a primary system may be “down” or otherwise unavailable, which can be costly and damaging. In response, many businesses and other enterprises maintain “disaster recovery” systems or environments, which can include redundant systems that provide some or all of the functions of the primary systems, and typically include full backups of all the data available to the primary systems. In this way, in the event of a disaster, users can transition to the disaster recovery environment until the primary system can be restored, thus minimizing lost productivity.  
         [0004]     Unfortunately, there is currently no uniform and reliable way for a user to effectively contact the disaster recovery environment in the event of a disaster, and no standard and effective way for the disaster recovery system to be tested on a routine basis without disrupting operation of the primary system. There is, therefore, a need in the art for a system and method for uniform disaster recovery system access.  
       SUMMARY OF THE INVENTION  
       [0005]     Various embodiments include a method and corresponding systems and computer program products, for directing access to a server data processing system. The method includes storing a first uniform resource locator associated with a first network address, where the first network address corresponds to a primary server data processing system and storing a second uniform resource locator associated with a second network address, where the second network address corresponds to a disaster recovery server data processing system. The method also includes returning the first network address in response to calls for the first uniform resource locator when the primary server data processing system is operating normally and returning the second network address in response to calls for the first uniform resource locator when the primary server data processing system is unavailable (i.e. In the event of a “disaster”). For purpose of testing, an alternative method includes returning the second network address in response to calls for the second uniform resource locator while the primary server data processing system is operating normally.  
         [0006]     The foregoing has outlined rather broadly the features and technical advantages of the present invention so that those skilled in the art may better understand the detailed description of the invention that follows. Additional features and advantages of the invention will be described hereinafter that form the subject of the claims of the invention. Those skilled in the art will appreciate that they may readily use the conception and the specific embodiment disclosed as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. Those skilled in the art will also realize that such equivalent constructions do not depart from the spirit and scope of the invention in its broadest form.  
         [0007]     Before undertaking the DETAILED DESCRIPTION OF THE INVENTION below, it may be advantageous to set forth definitions of certain words or phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, whether such a device is implemented in hardware, firmware, software or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, and those of ordinary skill in the art will understand that such definitions apply in many, if not most, instances to prior as well as future uses of such defined words and phrases.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]     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, wherein like numbers designate like objects, and in which:  
         [0009]      FIG. 1  depicts a block diagram of a data processing system in which a preferred embodiment can be implemented;  
         [0010]      FIG. 2  depicts a data processing system network in which an embodiment of the present disclosure can be implemented; and  
         [0011]      FIG. 3  depicts a flowchart of a process in accordance with a preferred embodiment.  
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0012]      FIGS. 1 through 3 , discussed below, and the various embodiments used to describe the principles of the present invention in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the invention. Those skilled in the art will understand that the principles of the present invention may be implemented in any suitably arranged device. The numerous innovative teachings of the present application will be described with particular reference to the presently preferred embodiment.  
         [0013]      FIG. 1  depicts a block diagram of a data processing system in which a preferred embodiment can be implemented. The data processing system depicted includes a processor  102  connected to a level two cache/bridge  104 , which is connected in turn to a local system bus  106 . Local system bus  106  may be, for example, a peripheral component interconnect (PCI) architecture bus. Also connected to local system bus in the depicted example are a main memory  108  and a graphics adapter  110 .  
         [0014]     Other peripherals, such as local area network (LAN)/Wide Area Network/Wireless (e.g. WiFi) adapter  112 , may also be connected to local system bus  106 . Expansion bus interface  114  connects local system bus  106  to input/output (I/O) bus  116 . I/O bus  116  is connected to keyboard/mouse adapter  118 , disk controller  120 , and I/O adapter  122 .  
         [0015]     Also connected to I/O bus  116  in the example shown is audio adapter  124 , to which speakers (not shown) may be connected for playing sounds. Keyboard/mouse adapter  118  provides a connection for a pointing device (not shown), such as a mouse, trackball, trackpointer, etc.  
         [0016]     Those of ordinary skill in the art will appreciate that the hardware depicted in  FIG. 1  may vary for particular. For example, other peripheral devices, such as an optical disk drive and the like, also may be used in addition or in place of the hardware depicted. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present invention.  
         [0017]     A data processing system in accordance with a preferred embodiment of the present invention includes an operating system employing a graphical user interface. The operating system permits multiple display windows to be presented in the graphical user interface simultaneously, with each display window providing an interface to a different application or to a different instance of the same application. A cursor in the graphical user interface may be manipulated by a user through the pointing device. The position of the cursor may be changed and/or an event, such as clicking a mouse button, generated to actuate a desired response.  
         [0018]     One of various commercial operating systems, such as a version of Microsoft Windows™, a product of Microsoft Corporation located in Redmond, Wash. may be employed if suitably modified. The operating system is modified or created in accordance with the present invention as described.  
         [0019]      FIG. 2  depicts a data processing system network in which an embodiment of the present disclosure can be implemented.  FIG. 2  depicts client data processing system  210 , domain name server (DNS)  220 , server data processing system  230 , and disaster-recovery (DR) server data processing system  240 , all connected to communicate with network  250 . Network  250  can be implemented using any known public or private data processing system network, or can be more than one network configured to communicate with each other, and can include the Internet. Each of the data processing systems  210 ,  220 ,  230 , and  240  can be implemented, for example, as in data processing system  100 , or can be modified as required for each particular implementation, as known to those of skill in the art, so long as they each can perform the respective functions as described herein.  
         [0020]     In this exemplary embodiment, client data processing system  210  is a data processing system connected to communicate with network  250 , and thereby to communicate with various other network-connected systems. Data processing system  210  preferably includes a browser such as MICROSOFT INTERNET EXPLORER.  
         [0021]     DNS  220 , in this example, is a domain name server system. Although only one block is used here to represent DNS  220 , those of skill in the art will recognize that domain name resolution processes will often involve multiple different servers, such as a local DNS server, a root server, a top level domain name server, etc., all of which act together to resolve domain names and uniform resource locators (URLs) into the corresponding internet protocol (IP) addresses. The conventional processes for such a resolution are well known to those of skill in the art, and so to simplify the illustration of  FIG. 2 , only a single block for DNS  220  is shown.  
         [0022]     Server data processing system  230  can represent any server system or a combination of multiple systems that deliver data or other services over the network  250 . DR server data processing system  240 , as used in this example, is preferably a fully redundant backup system or systems to server data processing system  230  that is capable of delivering or performing some or all of the same services as server data processing system  230  in the event that server data processing system is unavailable over network  250 .  
         [0023]     According to various disclosed embodiments, DNS  220  includes one or more DNS entries in a storage  225  indicating the URL addresses and corresponding IP addresses for server data processing system  230 , which will be referred to herein as production URLS. Further, DNS  220  includes one or more secondary URLs, referred to herein as disaster recovery URLS or DR URLs, corresponding to the production URLS, that indicate instead the IP address(es) of DR server data processing system  240 .  
         [0024]     By defining corresponding production URLs and DR URLs in the DNS  220  to point to the IP addresses of the server data processing system  230  and DR server data processing system  240 , respectively, users can be assured of a means for readily contacting the DR server data processing system  240  for either testing purposes or in the event that server data processing system  230  is unavailable. DNS  220  is preferably configured to return the IP address of the server data processing system  230  in response to calls for the production URL when the server data processing system is operating normally, to return the IP address of the server data processing system  240  in response to calls for the production URL when the server data processing system  230  is unavailable. For purpose of testing, preferably, the DR URL in the DNS  220  points to the IP addresses of the DR server data processing system  240  whether or not the server data processing system  230  is operating normally.  
         [0025]     Preferably, there will be two URLs defined in the DNS for each server system instead of one, i.e., a DR URL and a production URL, to point to a DR IP address and production IP address respectively.  
         [0026]     For purposes of testing the DR server data processing system  240 , the DR URL can be used (as described above). In the event of a “disaster”, including unavailability of server data processing system  230 , the DNS entry in DNS  220  for production URL should be updated to point to the IP address of the DR data processing server  240  for seamless replacement. The DNS  220  can store the IP address of the DR data processing server  240  associated with the production URL when the server data processing system  230  is unavailable.  
         [0027]     In various embodiments, the DR URL has a standard naming convention where the term “DR” is placed in front of the production URL to form the DR URL. For example, if a production URL has been defined as http://example.com then the DR URL is preferably defined as http://dr.example.com, using “dr” as the subdomain. Note that a standard internet web URL such as http://dr.example.com, the hierarchical order of the five elements is com (generic top-level domain)—example (second-level domain)—dr (subdomain). In preferred embodiments, for a server located at URL http://example.com, the corresponding DR URL will include the dr subdomain as http://dr.example.com.  
         [0028]     Of course, the DR URL can be any suitable URL and achieve the same result, including a DR URL formed by modifying or changing the production URL by adding another word or character in front of the production URL. So long as the DR URL points to the DR server data processing system, it will still achieve the same result. However, the use of a consistent naming convention for DR URLs as described above will encourage a smooth transition to the DR servers in the event that becomes necessary. In some embodiments, particularly when a uniform naming convention is used for the DR server, the DNS server can associate the production URL with both the network address of the production server and the network address of the DR server, and automatically redirect calls to the DR server when the production server is unavailable or when the DR URL or URL subdomain is used.  
         [0029]      FIG. 3  depicts a flowchart of a process in accordance with a preferred embodiment.  
         [0030]     A first URL, preferably the production URL, is assigned to a server data processing system (step  305 ). The first URL is stored together with a first network address corresponding to the server data processing system (step  310 ). In a preferred embodiment, the URL and the first network address are stored in a DNS server, and the first network address is an IP address. Preferably the server data processing system is a production data processing system as described above.  
         [0031]     A second URL, preferably the DR URL, is assigned to a DR server data processing system (step  315 ), which preferably is a backup system for some of all of the functions of the server data processing system. The second URL is stored together with a second network address corresponding to the DR server data processing system (step  320 ). In a preferred embodiment, the DR URL and second network address are stored in a DNS server, and the second network address is an IP address.  
         [0032]     Preferably, as described above, the second URL is substantially similar to the first URL, with a “dr” subdomain indicator indicating it is the URL address for the disaster recovery system.  
         [0033]     If the server data processing system is operating normally (step  325 ), then calls to the first URL are directed to the first network address (step  330 ). If the production server data processing system is unavailable, e.g., in the event of a “disaster,” then calls to the first URL are directed to the second network address (step  335 ). One way in which this can be implemented is by updating the DNS record associated with the first URL to indicate the second network address.  
         [0034]     Those skilled in the art will recognize that, for simplicity and clarity, the full structure and operation of all data processing systems suitable for use with the present invention is not being depicted or described herein. Instead, only so much of a data processing system as is unique to the present invention or necessary for an understanding of the present invention is depicted and described. The remainder of the construction and operation of data processing system  100  may conform to any of the various current implementations and practices known in the art.  
         [0035]     It is important to note that while the present invention has been described in the context of a fully functional system, those skilled in the art will appreciate that at least portions of the mechanism of the present invention are capable of being distributed in the form of a instructions contained within a machine usable medium in any of a variety of forms, and that the present invention applies equally regardless of the particular type of instruction or signal bearing medium utilized to actually carry out the distribution. Examples of machine usable mediums include: nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs), and transmission type mediums such as digital and analog communication links.  
         [0036]     Although an exemplary embodiment of the present invention has been described in detail, those skilled in the art will understand that various changes, substitutions, variations, and improvements of the invention disclosed herein may be made without departing from the spirit and scope of the invention in its broadest form.  
         [0037]     None of the description in the present application should be read as implying that any particular element, step, or function is an essential element which must be included in the claim scope: THE SCOPE OF PATENTED SUBJECT MATTER IS DEFINED ONLY BY THE ALLOWED CLAIMS. Moreover, none of these claims are intended to invoke paragraph six of 35 USC §112 unless the exact words “means for” are followed by a participle.