Abstract:
A system and method having multiple instances of polling engines at IP drivers, wherein the multiple polling engines are monitoring to discover the same network scope. The polling engines&#39; polling intervals are staggered so that the polling communications do not unnecessarily clog the network and so that an apparent response time can be realized in the aggregate results of multiple instance polling. Unique IDs are used to differentiate which engine&#39;s status data is being used at any given time, should follow-up be required.

Description:
FIELD OF THE INVENTION  
         [0001]    This invention relates to distributed computing systems and more particularly to a system and method for providing fault tolerance in status and discovery monitoring without unduly burdening the system.  
         BACKGROUND OF THE INVENTION  
         [0002]    Distributed data processing networks may have thousands of nodes, or endpoints, which are geographically dispersed. In such a distributed computing network, the computing environment is optimally managed in a distributed manner with a plurality of computing locations running distributed kernels services (DKS). The managed environment can be logically separated into a series of loosely connected managed regions in which each region has its own management server for managing local resources. The management servers coordinate activities across the network and permit remote site management and operation. Local resources within one region can be exported for the use of other regions in a variety of manners. A detailed discussion of distributed network services can be found in co-pending patent application Ser. No. 09/738,307 filed on Dec. 15, 2000, entitled “METHOD AND SYSTEM FOR MANAGEMENT OF RESOURCE LEASES IN AN APPLICATION FRAMEWORK SYSTEM”, the teachings of which are herein incorporated by reference.  
           [0003]    Realistically, distributed networks can comprise millions of machines (each of which may have a plurality of endpoints) that can be managed by thousands of control machines. As set forth in co-pending U.S. patent application Ser. No. 09/740,088 filed Dec. 18, 2000 and entitled “Method and Apparatus for Defining Scope and for Ensuring Finite Growth of Scaled Distributed Applications”, the teachings of which are hereby incorporated by reference, the distributed control machines run Internet Protocol (IP) Driver Discovery/Monitor Scanners which poll the endpoints and gather and store status data, which is then made available to other machines and applications. Such a distributed networked system must be efficient or else the status communications alone will suffocate the network.  
           [0004]    A network discovery engine for a distributed network comprises at least one IP DRIVER. For vast networks, a plurality of distributed IP drivers are preferably, with each performing status and other communications for a subset of the network&#39;s resources. As discussed in the aforementioned patent applications, carefully defining a driver&#39;s scope assures that status communications are not duplicative.  
           [0005]    While duplication of status and discovery monitoring has been avoided, there is still a need to provide fault tolerance in a distributed scalable application environment. Synchronously managing a single resource in parallel is problematic since a simple redundant discovery/status update is not desirable due to bandwidth, memory and storage limitations in a vast network. In addition, a stand-alone application, such as Netview, which gathers both status and discovery over several different machines can not provide aggregate status from other machines. Furthermore, such a stand-alone application can only provide status at a status interval which is equal to or greater than its longest network call code path. Therefore, if, for example, ping status takes 5 minutes, then the shortest interval that can be promised to customers is 5 minutes (a value which will vary greatly in proportion to the number of endpoints that are being managed).  
           [0006]    It is desirable and an object of the present invention, therefore, to provide a system and method having an improved apparent response time for a network monitor to deliver status and discovery information.  
           [0007]    It is another object of the invention to provide a system and method whereby polling latency for the network can be minimized without adversely affecting bandwidth and storage.  
           [0008]    It is still another object of the present invention to provide a system and method whereby aggregate status from different network machines can be provided at regular, low latency intervals.  
           [0009]    Yet another object of the present invention is to provide a system and method for optimizing polling intervals for a plurality of polling devices to meet quality of service objectives for polling output.  
         SUMMARY OF THE INVENTION  
         [0010]    The foregoing and other objectives are realized by the present invention which provides a system and method having multiple instances of polling engines at IP drivers, wherein the multiple polling engines are monitoring to discover the same network scope. The polling engines&#39; polling intervals are staggered so that the polling communications do not unnecessarily clog the network and so that an apparent response time can be realized in the aggregate results of multiple instance polling. Unique IDs are used to differentiate which engine&#39;s status data is being used at any given time, should follow-up be required.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]    The invention will now be described in greater detail with specific reference to the appended drawings wherein:  
         [0012]    [0012]FIG. 1 provides a schematic representation of a distributed network in which the present invention may be implemented;  
         [0013]    [0013]FIG. 2 provides a schematic representation of the server components which are used for implementing the present invention;  
         [0014]    [0014]FIG. 3 provides a more detailed schematic block diagram of the components of an IP DRIVER for use in the present invention;  
         [0015]    [0015]FIG. 4 provides a block diagram showing the graphical user interface (GUI) for configuring the concurrent staggered poll engine (CSPE) in accordance with the present invention;  
         [0016]    [0016]FIG. 5 is a flowchart depicting a process for configuring IP drivers with coextensive scope as per the present invention; and  
         [0017]    [0017]FIG. 6 is a flowchart depicting a process for implementing monitoring in accordance with the present invention.  
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0018]    The present invention can be implemented in any network with multiple servers and a plurality of endpoints; and is particularly advantageous for vast networks having hundreds of thousands of endpoints and links therebetween. FIG. 1 provides a schematic illustration of a network for implementing the present invention. Among the plurality of servers,  101   a - 101   n  as illustrated, at least one of the servers,  101   a  in FIG. 1, which already has distributed kernel services (DKS) is designated as one of the control servers for the purposes of implementing the invention. A network has many endpoints, with endpoint being defined, for example, as one Network Interface Card (NIC) with one MAC address, IP Address. The control server  101   a  in accordance with the present invention has the components illustrated in FIG. 2 in addition to the distributed kernel services, for providing a method including the steps of: discovering the network topology and physical scope for network devices; regularly updating the status of endpoints using the physical network topology; updating the network topology based on discovery of changes to the network topology; and, providing status input in accordance with a predefined interval.  
         [0019]    As shown in FIG. 2, the server  200  includes the already-available DKS core services at component  201 , which services include the object request broker (ORB)  211 , service manager  221 , and the Administrator Configuration Database  231 , among other standard DKS services. The DKS Internet Protocol Object Persistence (IPOP) Manager  203  provides the functionality for gathering network data, as is detailed in the co-pending patent application entitled “METHOD AND SYSTEM FOR MANAGEMENT OF RESOURCE LEASES IN AN APPLICATION FRAMEWORK SYSTEM”, Serial No. 09/738,307, filed on Dec. 15, 2000, the teachings of which are incorporated by reference herein (Docket AUS9-2000-0699).  
         [0020]    In accordance with the functionality of the DKS IPOP, endpoint data are gathered for use by the DKS Scope Manager  204 , the functions of which are further detailed below. A Network Objects database  213  is provided at the DKS IPOP Manager  203  for storing the information which has been gathered regarding network objects. The DKS IPOP also includes a Physical Network Topology Database  223 . The Physical Network Topology Database will receive input from the inventive Concurrent Staggered Poll Engine (CSPE) which is further detailed below. The CSPE comprises a distributed polling engine made up of a plurality of IP Drivers, such as  202 , which are, as a service of DKS, provided to discover the physical network and to continually update the status thereof. As detailed in the aforementioned patent application, the topology/polling engine can discover the endpoints, the links between endpoints, and the routes comprising a plurality of links, and provide a topology map. Regularly updating the status and topology information will provide a most accurate account of the present conditions in the network.  
         [0021]    As depicted in FIG. 3, the distributed Internet Protocol (IP) Driver Subsystem  300  contains a plurality of components, including one or more IP Drivers  302  ( 202  of FIG. 2). Every IP Driver manages its own “scope”, described in greater detail below. Each IP Driver is assigned to a topology manager within Topology Service  304 , which can serve more than one IP Driver. Topology Service  304  stores topology information obtained from the discovery controller  306  of CSPE  350 . A copy of the topology information may additionally be stored at each local server DKS IPOP (see: storage location  223  of DKS IPOP  203  in FIG. 2 for maintaining attributes of discovered IP objects). The information stored within the Topology Server may include graphs, arcs, and the relationships between nodes as determined by IP Mapper  308 . Users can be provided with a GUI (not shown) to navigate the topology, stored within a database at the Topology Service  304 .  
         [0022]    Discovery controller  306  of CSPE  350  detects IP objects in Physical IP networks  314  and the monitor controller  316  monitors the IP objects. A persistent repository, such as IPOP database  223 , is updated to contain information about the discovered and monitored IP objects. Given the duplicated scope of discovery for the CSPEs at the distributed locations, the IPOP database will be updated at more frequent intervals from other IP Drivers. The IP Driver  302  may use temporary IP data storage component  318  and IP data cache component  320 , as necessary, for caching IP objects or for storing IP objects in persistent repository  223 , respectively. As discovery controller  306  and monitor controller  316  of component  350  perform detection and monitoring functions, events can be written to network event manager application  322  to alert network administrators of certain occurrences within the network, such as the discovery of duplicate IP addresses or invalid network masks.  
         [0023]    External applications/users  324  can be other users, such as network administrators at management consoles, or applications that use IP Driver GUI interfaces  326  to configure IP Driver  302 , manage/unmanage IP objects, and manipulate objects in the persistent repository  223 . Configuration services  328  provide configuration information to IP Driver  302 . IP Driver controller  330  serves as the central control of all other IP Driver components.  
         [0024]    A network discovery engine is a distributed collection of IP Drivers that are used to ensure that operations on IP objects by gateways can scale to a large installation and can provide fault-tolerant operation with dynamic start/stop or reconfiguration of each IP Driver. The IPOP Service manages discovered IP objects. To do so, the IPOP Service uses a distributed system of IPOP  203  with IPOP databases  223  in order to efficiently service query requests by a gateway to determine routing, identity, and a variety of details about an endpoint. The IPOP Service also services queries by the Topology Service in order to display a physical network or map to a logical network, which may be a subnet (or a supernet) of a physical network that is defined programmatically by the Scope Manager, as detailed below. IPOP fault tolerance is also achieved by distribution of IPOP data and the IPOP Service among many endpoint Object Request Brokers (ORBs).  
         [0025]    As taught in the co-pending patent application, one or more IP Drivers can be deployed to provide distribution of IP discovery and promote scalability of IP Driver subsystem services in large networks where a single IP Driver subsystem is not sufficient to discover and monitor all IP objects. However, where the prior approach provided that each IP discovery Driver would perform discovery and monitoring on a collection of IP resources within the driver&#39;s exclusive “physical scope”, the present invention expands a driver&#39;s scope so that multiple IP Drivers monitor/discover the same scope. A driver&#39;s physical scope is the set of IP subnets for which the driver is responsible to perform discovery and monitoring. In the past, network administrators would generally partition their networks into as many physical scopes as were needed to provide distributed discovery and satisfactory performance. Under the present invention, the performance issue is addressed by the staggering of monitoring intervals among multiple IP Drivers having the same scope. Once the scope is defined for each instance of an IP Driver, and the polling interval established with staggered polling so that no two IP Drivers are polling the same endpoint at the same time, each IP Driver will perform its monitoring on its own timetable with its own polling interval. Results of polling, however, will be available far more frequently than any one polling interval, since multiple IP Drivers are providing results at staggered intervals. Therefore, at any given time, a most recent version of polling results will be available. As an example, if a quality of service (QOS) objective is to provide updated status every minute, and the latency for one monitoring cycle is five (5) minutes, then utilizing five (5) IP Drivers in parallel configuration with each IP Driver having coextensive scope will provide updated polling results every minute.  
         [0026]    As taught in the referenced co-pending patent application, a user interface can be provided, such as an administrator console, to write scope information into the Configuration Service. FIG. 4 is a graphical user interface provided for use by a system administrator for configuring IP Drivers with coextensive scope as per the present invention. When a system adminstrator wishes to configure the distributed concurrent staggered poll engine (CSPE), the two critical variables are the IP Driver scope and the QOS polling interval. In order to define the scope, the GUI provides a “DiscoveryPhysicalNetworkButton” which will consult a previously-created topology map to assist in developing the scope information for the IP Drivers. Given the topology, the number of IP Drivers within the mapped network, and the location of those IP Drivers (using the referenced ORB IDs), a system administrator can establish the scope for the IP Drivers as well as the polling interval among the CSPEs that will effectively meet the QOS objectives for updated polling results. The GUI may access CSPE-quantifying software for calculating scope and interval values to be recommended to the system adminstrator, or can provide a “manual override” option for a system administrator to alter the recommended configuration of the monitoring system. For example, the system administrator may choose to override the value of the recommended number of IP Drivers, for example to adjust the number upward in order to exceed performance objectives. Efficient polling will be best achieved with polling of small scope groups of endpoints, so that one objective of the configuration process will be to minimize the scope. The system adminstrator may also choose to override the recommendations for the locations of instances of the CSPE due to specific latency problems or load considerations at one or more particular IP Drivers. It is to be noted that while all CSPE instances will be monitoring the same endpoints, the latency associated with one IP DRIVER versus the latency associated with another IP Driver can differ greatly based on location, load, etc. Therefore, the override option is available to the system administrator.  
         [0027]    [0027]FIG. 5 is a flowchart depicting a process for configuring IP Drivers with coextensive scope as per the present invention. At step  501 , the maximum number of devices is determined. The “maximum number” may represent the exact number of devices presently in the network based on an ongoing dynamic discovery process, or may, for scaleability reasons, represent an expected maximum (i.e., a theoretical limit of the network). Next, at step  502 , the network link speeds between polling engines and devices are calculated to determine an expected polling latency between devices. While actual network link speeds may be stored for links between existing endpoints and existing IP Drivers, some estimating may be desired if one wishes to design toward an expanded network. It is here to be noted that instantiation of more CSPEs can be implemented later to provide for network expansion or to dynamically adjust to changing network speed or congestion. At step  503 , the value of the quality of service (QOS) objective (e.g., polling updates every one minute) is obtained. Once the number of devices, link speeds, and QOS objective are available, a recommended number of needed IP Drivers can be calculated. As set forth in the example above, if a one minute update interval is the QOS objective, then the utilization of 5 IP Drivers each having an expected 5 minute polling latency and operating in staggered fashion at substantially regular start intervals should realize the objective. Once the number of IP Drivers has been calculated at  504 , the stagger poll interval is established at  505  along with the poll time interval for each IP Driver. The coextensive scope is then verified at  506  to assure that no endpoints will be missed in the polling process; and, finally, the IP Drivers are configured at  507  with their scope and polling time intervals.  
         [0028]    [0028]FIG. 6 is a flowchart depicting a process for implementing network monitoring in accordance with the present invention. As the CSPE at each IP Driver begins at  601 , it first checks to determine if the time is equal to its “start to monitor” time (i.e., if a designated interval has elapsed) at  603 . If it is time to begin monitoring, the polling engine starts to loop through all of the endpoints in its defined scope at  605 . For each endpoint, the CSPE records the endpoint status at  607 . If all endpoints have been polled, as determined at  609 , then the polling results are sent to the IPOP ( 203  of FIG. 3) at  610  and the CSPE returns to await the start of its polling interval again at  603 . If not all endpoints have been polled, the CSPE returns to steps  605  and  607  until a determination is made at  609  that all endpoints have been polled. It is to be noted that the distributed polling engine could provide continual input to the IPOP or could have each IP Driver provide its complete polling results upon completion of polling.  
         [0029]    As detailed in the aforementioned co-pending patent application, an IP Driver gets its physical scope configuration information from the Configuration Service. The system administrator with CSPE defines the scopes per distributed IP Driver and stores that information at the Configuration Services for use by the IP Drivers. The scope of the physical network was used by the IP Driver in order to decide whether or not, upon discovery, to add an endpoint to its topology. The physical scope configuration information was previously stored using the following format:  
         [0030]    ScopeID=driverID,anchorname,subnetAddress:subnetMask[:privateNetworkID:privateNetworkName:subnetPriority][, SubnetAddress:subnetMask:privateNetworkID:privateNetworkName:subnetPriority]] 
         [0031]    A difference with the present invention is that the term “scope” has been extended to include two aspects: parallel scope and unique scope. The parallel scope is the monitoring scope, which the unique scope refers to actual scope of control. In addition, a difference with the present invention is that network objects describing both the physical and logical network will now be duplicated in IPOP. IPOP will be able to distinguish between records, however, due to the fact that uniqueness in maintained through the use of scopeID, IP address and Net address. For any updated set of polling results, the IPOP can readily determine the identity of the polling engine which provided the results. The appearance of a single polling entity is maintained for the “outside” world given the fact that all devices/endpoints within the given scope have been polled during the updated time interval.  
         [0032]    The invention has been described with reference to several specific embodiments. One having skill in the relevant art will recognize that modifications may be made without departing from the spirit and scope of the invention as set forth in the appended claims.