APPARATUS AND METHOD FOR NETWORK DATA MODELING

Abstract: A method and apparatus for modeling the configuration of a complex network is provided. The method consists of providing information about entities that comprise a network, identifying one or more entities as either a node or an edge, defining a set of layers composed of nodes and edges. Each layer has at least one node, wherein any of the nodes or edges may be a member of only one layer. The edges contained within any individual layer must terminate at exactly two nodes that are also contained within that same layer. An apparatus in the form of a computer system is also provided. The computer system has a database that contains the attributes of the specific network entities (be they nodes or edges) and stores them in such a manner that each network entity can be entered only once and only within the framework of the method described herein. The database can be relational, object, or object-relational. Input and output media are also provided to enable a user to load and retrieve information about the network configuration in a convenient manner.

Description: APPARATUS AND METHOD FOR NETWORK DATA MODELING TECHNICAL FIELD OF THE INVENTION The present invention relates generally to networks. More particularly, the present invention relates to an apparatus and method for modeling the physical and the logical configurations of a network. BACKGROUND OF THE INVENTION The definition of a network is a system of interconnected elements. Telecommunications networks can be described in terms of relational databases and object databases. A brief discussion of relation database technology can be found in the "Encyclopedia of Computer Science" Third Edition by Anthony Ralston and Edwin D. Reilly (Van Nostrand Reinhold, New York, 1993) pages 1161-1165. Excerpts from that reference are paraphrased herein for convenience . A relational database is one that is built and operated in accordance with the "relational model of data" proposed by E.F. Codd in his 1970 article entitled "A Relational Model of Data for Large Shared Data Banks," which may be found in Comm. ACM, volume 13, 6, pages 377-387. The Codd model has gained widespread acceptance and has engendered a great deal of additional study covering numerous aspects of database theory and practice. MISSING AT THE TIME OF PUBLICATION Primarily, the relational model provides a simple and intuitive method for defining a database, storing and updating data in it, and submitting queries of arbitrary complexity to it. More important, it provides a firm, sound and consistent foundation for all the other topics that database management systems must commonly embrace, such as security and authorization, database integrity, transaction management, recoverability, and distribution of data. The relational model is founded on the mathematical disciplines of predicate calculus and set theory. All data in a relational database is organized as a set of two- dimensional arrays, or tables . The mathematical term relation occurs in the study of predicate logic but is most commonly used in connection with predicates in exactly two variables. See, for example, E.J. Lemmon, "Beginning Logic" (London: Nelson, 1965) . In the relational model, a predicate in any nonnegative number, n, of variables is considered an n-ary relation. For instance, a ternary (3- ary) relation could be "where did who do what . " An example of a relational table is the common bank check data table, where the verb of the predicates (check written) has become a relation name, and the variables (payor, payee, amount, and date) have become attribute names that are defined in the relational schema of this relation. Normally, there is a set of permissible values for the attribute in question that is part of a domain that underlies the database. A particular instantiation of a predicate in n variables is represented by an n- tuple. There are other common terms in relational database nomenclature, namely: Table for relation; Heading for relational schema; Column (name) for attribute (name) ; Row for (n-) tuple; and Body (or extension) for the set of tuples "in" the relation. There are four important principles in relational database design. First, at each intersection of a row and column, there is exactly one value. This is the principle of first normal form, which is fundamental in the relational model. Second, the order in which the rows are written is unimportant. In other words, the information conveyed, i.e., the proposition formed by the predicate and attributes, is the same regardless of the order or rows. Third, the order in which the columns are written is also unimportant . It is only important to know, for each value in a row, to which column that value pertains, and this is normally achieved by writing the value underneath the name (heading) of the column. Finally, writing the same row more than once is redundant as the relational model prohibits duplicate rows. A relational database is a collection of relations. A relational database schema is a collection of relation schemas, along with a collection of domain definitions, with the possible addition of integrity rules, access authorizations, and so on. A relational database management system (DBMS) must minimally support the definition of domains and relation schemas, the insertion, updating and deletion of tuples, and a relational query language for defining new relations that may be derived from the "base relations" of the database. An example of a relational query language would be the "Structured Query Language" more commonly known by its acronym: SQL. See also, Jeffry D. Ullman, "Principles of Database Systems" 2nd Ed., Computer Science Press (Potomac, Maryland, 1982) and C.J. Date, "An Introduction to Database Systems: Volume I" 5th Ed., "Part III: The Relational Model" (Addison- Wesley, Reading, Massachusetts, 1989) . According to Nikos Drakos of the University of Leeds, an object-oriented database system must satisfy two criteria: it should be a database management system (DBMS), and it should be an object-oriented system, i.e., to the extent possible, it should be consistent with the current set of object-oriented programming languages, such as C++ and Java. The first criterion translates into five features: persistence, secondary storage management, concurrency, recovery and an ad hoc query facility. The second criteria translates into eight features: complex objects, object identity, encapsulation, types or classes, inheritance, overriding combined with late binding, extensibility and computational completeness. The object-oriented model is based on objects, which are structures that combine related code and data. The description of an object is contained in its class declaration. The basic properties of objects are called encapsulation, inheritance and polymorphism. We will use invoices as an example to illustrate these points. Encapsulation means that code and data are packaged together to form objects, and that the implementation of these objects can be hidden from the rest of the program. For instance, a class declaration for an item might look like this: class Item { Private : PtString name; Float purchase_price; PtDate in_service_date; Boolean literal available; Public Virtual float ServiceTime () ; Virtual logical Available (); }; Packaging the code and data together helps clarify the relationships among them but the internal data is hidden from the user and other classes (as per the Private declaration) . The data such as purchase ^ price is not accessed directly except in the functions belonging to the Item class. However, the public part of the class declaration includes functions that use in_service_date . Public functions may be accessed by any function or class. Inheritance is a powerful mechanism that lets a new class to be built using code and data declared in other classes. This allows common features of a set of classes to be expressed in a base class. Suppose we want to add a new class called Switch. All of the code and data defined for Item are still relevant, but we need to add sizing information. We can do this by saying that a Swi tch is an Item that also has a number of ports. In C++ this might look something like this: class Switch : public Item { int number_ports; int ports_in_use; PtString connector_type; public Virtual int OpenPortsO; // number_ports ports_in_use } ; Because we said that Switch is an Item it has all the code and data defined for Item. Suppose you have a variety of Items, but the rules for computing their availability differs. For instance, telecommunications equipment might be available for a given time period whereas a simple cable is either available or not. You still want all Items to have a function called Available() , but instead of one Available() function we now want different functions depending on the class. In C++ this is done with virtual functions. Here is an oversimplified example: class Item { Private : PtString name; Float purchase_price ; PtDate in_service_date; Boolean_literal available; Public Virtual float ServiceTime () ; Virtual boolean literal Available () }; class Switch : public Item { int numberjports; int ports_in_use; PtString connector_type; public Virtual int OpenPortsO; // numberjports ports_in_use Virtual boolean_literal Available (): // date in window? } ; class Cable : public Item { PtString connector_type ; Public Virtual boolean_literal Available (); {TRUE I FALSE} }; A function that calculates the instant availability of an item can ask each item for its availability without knowing how it is computed for that item. This code will, be valid for any Item class--even new classes that are added later! Every object in an object-oriented system has its own identity. This identity does not depend on the values it contains. For example, in C++ the address of an object is used as its object identity. This allows pointer references to establish the relationships among objects. Relationships among objects are generally established using pointers. Container classes can be created to express many to one relationships. For instance, if an invoice has a date, a. customer, and a set of items, we could declare it like this: class Invoice { PtDate date; Customer* customer; set<Item*> items; }; In addition to object databases that are known in the art, there are also object relational databases that combine an object-oriented interface with a relational database backend. Relational database systems revolutionized database management systems in the 1980s, and object oriented programming languages are revolutionizing software development in the 1990s. These systems seem to have complementary strengths. Relational database systems are good for managing large amounts of data; object oriented programming languages are good at expressing complex relationships among objects. Relational database systems are good for data retrieval but provide little support for data manipulation; object oriented programming languages are excellent at data manipulation but provide little or no support for data persistence and retrieval . Many people are trying to combine the two in order to manage large amounts of data with complex relationships. Unfortunately, the relational model and the object model are fundamentally different, and integrating the two is not straightforward. Relational database systems are based on two-dimensional tables in which each item appears as a row. Relationships among the data are expressed by comparing the values stored in these tables. Languages like SQL allow tables to be combined on the fly to express relationships among the data. The object model is based on the tight integration of code and data, flexible data types, hierarchical relationships among data types, and references. Expressing these basic structures in the two- dimensional tables of relational database systems is not trivial, and this is only the first step. The interface between the two systems must correctly handle data manipulation and data retrieval. The semantic mismatch between object oriented programming languages and relational databases has led to the development of object oriented database systems which directly support the object model. Object oriented database systems are usually much simpler to use in object oriented programs . When defining a telecommunications network, the concept of traffic must be considered. Traffic is the flow of information or messages throughout the network. Consequently, a definition of a telecommunications network is a system of interconnected elements linked by facilities (i.e., physical connections) over which traffic will flow. The traffic may be conversations, information, or complex video or audio services. The telecommunications network must also be able to control the interconnected elements. According to the prior art, two distinct types of networks can be identified: the direct connect network and the centralized network. In a direct connect network, each network component is directly connected to every other network component. This arrangement results in a congested and costly network configuration. The direct connection formula is: C = U(U-l) /2 Where: U = Number of Users; C = Number of Connections The advantages of a direct connect network are : Privacy (the customer has complete control over the call (point to point) . The major disadvantages of a direct connect network are expense and complexity. Thus, the invention of the telephone and the capability to communicate via the telephone presented a new challenge, namely: how to allow connection between telephones in different locations without directly wiring the telephones to each other. This problem prompted the invention of the Railroad Network for telecommunications. Theodore Vail was responsible for the telephone network as we know it today. Because of Vail, the early railroads were used as the model for development of a new kind of telephone network - the centralized telephone network. The basic components of the Railroad Network include: A hub (switch); a trunk; a local; and a distribution. The centralized telephone network looks very much like the configuration of a railroad network. Various network components are connected to a centralized point (such as a switch in a central office) which handles switching and routing functions. In the centralized network structure, the functions of control and interconnection (i.e., switching) are primary. Centralized systems are virtually unlimited in how large they can become. Their major advantage is that customers can be interconnected through switching centers for worldwide communications. Additional considerations of the centralized network are: Some loss of control over the call by the customer; the switch controls routing and connection (i.e., if there, is excessive congestion a call may be blocked) ; possible loss of privacy (although there are many safeguards against this) ; location of centralized switching system; and capacity. The telecommunications network is comprised of one or more transmission facilities, a local loop; an IOF (Interoffice Facilities) ; switching systems; and customer premise equipment (CPE) . In its simplest form, a transmission facility is a communication between two end points. This communication path can also be referred to as a channel, a circuit or a trunk. For telephony purposes, the communication path (also known as network facilities) can be classified into two broad categories: Local Loop and Interoffice Facility (IOF) /Trunk. The local loop is a circuit that connects a customer to the telephone network. The local loop also provides the customer with access to the switching system. The term "loop" is derived from the pair of wires that forms the electrical path between the customer and the central office. The local loop is also referred to as the subscriber loop. Typically, the CPE is connected to the central office by means of the drop wire, distribution cable, and feeder cable which are cross-connected at specific points (e.g., terminals or ports) . A Serving Area Interface (SAI) is also known as a B- Box. (cross-connect box) . An SAI includes Interoffice Facilities (IOF) that consist of trunks that connect switching systems. The IOFs can carry multiple transmissions over a single path rather than a single transmission over a single path. Moreover, the IOF has the necessary equipment on each end, and the facility (i.e. cable) itself. Historically, copper cable was the facility used. Today, however, the facility may also be coaxial cable, radio links (microwave), and/or fiber optics. The primary functions of switching systems are to provide call setup and routing; Call supervision; and Customer I.D. and phone numbers. These are accomplished by interconnecting the facilities. Switching systems located at the central office (CO) that are used to provide dial tone and ringing are referred to as end offices or local switches. These switches can also be interconnected with other switches. Another type of switch, tandem, is used as a hub to connect switches and provide routing. (No dial tone is provided to the customer.) There are three components of any transmission system, namely: the transmitter; the receiver; and the communication path. In its simplest form, the CPE or customer premises equipment, is the transmitter and receiver. The media (twisted pair copper, coaxial cable, optical fiber, radio waves) that is connected to the CPE is the path. Many complex networks, and in particular most telecommunication networks, consist of many network layers one within another. Within such networks there exists many levels of configuration information describing the network. This information must be tracked and managed in order to understand the network' s configuration and the interdependence of each network component upon the other components of the network. Tracking such configuration information in a complex telecommunication network is troublesome because, for example, most such networks are composed of large numbers of different types of interconnected, inter-dependent equipment, and, within each type of equipment, there can be equipment supplied by many different manufacturers. In addition, tracking is troublesome because any one service provided by a telecommunication network service provider can involve many different types of equipment and equipment configurations, both physical and logical . In the prior art, databases have been used by network based companies, in particular, telecommunication companies, for tracking the components and configuration of network systems . These databases are structured to track known configuration information within one type of network. Such databases, however, fail to be able to support the introduction of new technologies into their data structures. For example, a database that organizes and tracks private line circuits cannot support or organize information regarding frame relay or IP technologies. In another example, a database capable of tracking the physical and logical connectivity of a network of digital cross-connect switches cannot easily accommodate the structures necessary for the SONET network over which its inter-machine trunk circuits are carried. Thus, with existing modeling techniques, new databases or complex extensions to existing databases are required to support new communication technologies or application specific information. The end result is a series of disjointed databases with multiple appended tables, all of which cannot be operated, managed, or understood by a single individual . Consequently a large team of people and resources are needed to track the network configuration information and the interdependencies between the network components . There is, therefore, a need in the art for a network configuration tracking system that enables one person to identify all of the components of a complex network and to identify the interdependencies within the network. SUMMARY OF THE INVENTION In view of the foregoing and other considerations, the present invention relates to a method and apparatus for modeling a network. The method entails several steps. In one embodiment of the invention, one of the first steps is to provide information about the entities that make up the network. Thereafter, one or more of the entities are identified as either a node or an edge. The edges and nodes are then used to define a set of layers with the condition that each layer consists of at least one node . These nodes and edges can be a member of only one layer. That is, edges that are contained within a layer must terminate at one or more nodes that are also contained within that layer. In another embodiment of the invention, the method further includes the step of classifying one or more relationships between entities in one layer and entities in another layer. In a further embodiment of the invention, the layers are organized in an order, i.e., a layer order. Each layer order is defined as a hierarchy with a postal end and a distal end with the distal end being downward from the postal end. In another further embodiment, a first layer contains a postal node. This postal node is capable of having a distal relationship only with one or more distal nodes that are contained within one or more layers that are distal to the first layer. In yet another embodiment, each distal node may have one and only one relationship with a single postal node. The present invention also relates to a computer system that models a network configuration. The computer system includes a processor, a memory and an input media. The input media is constructed and arranged to enable a user to define a set of layers with one or more nodes and one or more edges. Each layer is defined as having at least one node . These nodes or edges may be a member of only one layer. That is, edges that are contained within a layer must terminate at one or more nodes that are also contained within that layer. The computer system further includes a database. This database is constructed and arranged to contain attributes of the edges and nodes . The database may be a relational database, an object database or an object-relational database. In another embodiment of the present invention, the computer system further includes an output media. The output media is constructed and arranged to display the network configuration to a user. In yet another embodiment, the input media is further constructed and arranged to enable a user to input a query to said database about the network configuration. In another embodiment of the present invention, the computer system is constructed and arranged to enable a user to model any or all network entities that comprise a complete set of complex network configuration information, wherein the ability to model may comprise identifying, classifying, loading, storing, querying, or displaying the network entities. BRIEF DESCRIPTION OF THE DRAWINGS The following drawings form part of the present specification and are included to further demonstrate certain aspects of the present invention. The invention may be better understood by reference to one or more of these drawings in combination with the detailed description of specific embodiments presented herein. Figure la illustrates a node of the present invention; Figure lb illustrates a set of disconnected nodes of the present invention; Figure lc illustrates an edge of the present invention; Figure Id illustrates an edge connecting two nodes of the present invention; Figure le illustrates two disconnected sets of nodes linked together by two edges of the present invention; Figure If illustrates a set of entities of the present invention; Figure lg illustrates a graph of the present invention; Figure lh illustrates a connected containment graph of the present invention; Figure 2a illustrates a top view of a connectivity graph of the present invention; Figure 2b illustrates a side view of the connectivity graph of Figure 2a that forms a layer of the present invention; Figure 3 illustrates a containment graph that identifies relationships between layers of the present invention; Figure 4a illustrates a set of entities having identified hierarchical relationships that form a set of zero or more tree graphs of the present invention; Figure 4b illustrates two sets of entities with relationships there-between of the present invention; Figure 4c illustrates Figure 4b within a connectivity graph of the present invention; Figure 5 illustrates an unorganized set of network information of the present invention; Figure 6 illustrates the separation of the network information of Figure 6 into two sets of entities of the present invention; Figure 7 illustrates the characterization of the network entities of Figure 6 into classes of the present invention; Figure 8 illustrates the classes of Figure 7 with connectivity relationships identified to form layers of related connectivity graphs of the present invention; Figure 9 illustrates the hierarchical relationships of the related connectivity graphs of Figure 8; Figure 10 illustrates containment relationships between the classes of Figure 9; Figure 11 is a flowchart of the method of the present invention; and Figure 12 illustrates an organization of definitional terms of the present invention. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are described in detail in this specification. It should be understood, however, that the description of specific embodiments is not intended to limit the invention to the particular forms disclosed. The intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims. DETAILED DESCRIPTION OF THE INVENTION Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort, even if complex and time-consuming, would be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure. The present invention provides a method and apparatus for modeling network configuration data describing network systems, such as are found in networks in general, and telecommunication networks in particular. The present invention also provides a paradigm for identifying and classifying the entities that make up a complex network into a set of nodes and edges . These nodes and edges are then arranged into connectivity and hierarchical graphs that can be displayed to a user (person) to illustrate the structure and characteristics of the network. The present invention models the network system by storing the network configuration data into databases of related components and then establishing relationships (associations) between individual components across the databases. As used throughout this disclosure, the following terms should be recognized as having the following meanings: Definitions: Attribute: An attribute is a parameter that describes, or partially describes, an entity. Every attribute has an associated attribute name or identifier. Cable: A cable is a type of span that (i) provides a conductive pathway for conducting electromagnetic (including optical) signals between two or more physical ports, or is (ii) a set of two or more related cables that form a connected graph. A cable may, but is not required to, contain one or more circuits. Examples of cables include, but are not limited to coaxial cables, fiber optic cables, metallic cables, and the like. The conductive pathway traversed by radio signals can also be a form of cable. Circuit: A circuit is a type of span that either: (i) provides an information pathway or a signal pathway between two or more logical ports, or (ii) is a set of one or more related circuits that form a connected graph. A circuit may, but is not required to, contain one or more other circuits. Examples of circuits include, but are not limited to, isochronous data circuits, Frame Relay virtual circuits, ATM virtual circuits, carrier circuits, trunk circuits, customer circuits, multi-drop circuits, broadcast circuits, and the like. Complex Network: A complex network is a network that is described and or represented by two or more related simple graphs to describe or to represent the network. Conduit: A conduit is a type of span that either: (i) describes or constrains the route traversed by a cable between two or more locations, or (ii) is a set of one or more related conduits that form a connected graph. A conduit may, but is not required to, contain one or more other conduits. A conduit may, but is not required to, contain one or more cables. Examples of conduits include, but are not limited to, wire wrap bundles, aluminum conduit, cable trays, and the like. Another example of a conduit is a multi-conductor cable where the conductors are differentiated into two or more sets of conductors where each set is associated with a different cable. Another example of a conduit is a right-of-way for buried cable, or any means of expressing the route of a cable. Connectivity: Connectivity is a class that inherits the properties of edges and describes a type of peer relationship between two nodes indicating that the two nodes are physically, or logically attached to each other. Connectivity Graph: A connectivity graph is a graph wherein every relationship (i.e., edge) is of the same connectivity class. Each instance of an edge within the connectivity graph must derive from the same connectivity class. Connectivity Relationship: A connectivity relationship is a type of peer relationship wherein the relationship denotes physical or logical attachment. Containment: Containment is a class that inherits the properties of edges and describes a type of hierarchical relationship between two nodes indicating that a first node A includes within it a second node B. Connected Graph: A connected graph is a type of graph wherein every node belonging to the graph is related to every other node belonging to the same graph through 1) at least one edge, or 2) two or more graphically connected edges . Edge: An edge is a line on a graph drawn between two nodes on the same graph. An edge indicates that a specific (i.e. identified) type of relationship exists between the two nodes on which the edge terminates . Each and every edge identifies a single instance of a relationship class. Entity: An entity is a set of attributes that are uniquely distinguishable from the attributes of any other entity, whether or not the other entity can be described, or partially described, by the same set of attributes. An entity's uniqueness can be fully established by the uniqueness of the value of at least one attribute, or by the uniqueness of the values of any specified combination of attributes. Graph: A graph is a set of zero or more nodes and edges, wherein every edge within the set must be graphically connected to exactly two nodes, and wherein no two edges may be of the same class and also terminate on the same two nodes. Any subset of graphical elements, all belonging to the same graph, also forms a graph, if such a subset would otherwise qualify as a graph. A graph with zero nodes (and, thus, zero edges) is called a null graph. All graphs with one or more nodes are non-null graphs. Graphical Element: A graphical element is either a node or an edge . Graphical Connectivity: Two edges are said to be graphically connected if they terminate on the same node. Hierarchy or Hierarchical Graph: A hierarchy or a hierarchical graph is a graph wherein every relationship (i.e., edge) is of the same hierarchical class. Hierarchical Relationship: A hierarchical relationship is a type of relationship, wherein if a first node A has a hierarchical relationship to a second node B, then the second node B must also have a reciprocal and non-identical relationship to the first node A. A hierarchical relationship can be described as having two directions: postal or distal. If the first node A has a distal relationship with a second node B, then the second node B will be permitted to have a postal relationship that is reciprocal to the first distal relationship with the first node A. A node can have a distal relationship with more than one distal nodes. A node can have a postal " relationship with only one postal node having a reciprocal distal relationship. Layer: A layer is defined as a single connectivity graph. Location: A location is a type of terminator that corresponds to a position in three-dimensional space. Locations may, but are not required to contain certain types of other locations. Locations may, but are not required to, contain certain types of network elements. Examples of locations include, but are not limited to regions, cities, buildings, rooms, telephone poles, racks, shelves, any geographical coordinates, and the like. Logical Port: A logical port is a type of terminator corresponding to a configurable and/or discernable subset of an electrical or electromagnetic (including optical) signal passing through a given physical port. Logical ports may, but are not required to, contain certain types of other logical ports. If a logical port is not contained by another logical port, that logical port must be contained by a physical port . Examples of logical ports include, but are not limited to, all discernable, or configurable portions of a signal associated with a physical port, including portions defined by Frame Relay DLCI's, or ATM VPl/VCI's, one frequency out of a set of frequency multiplexed signals, DS-1 signals that are part of a DS-3, and the like. Network: A network is any set of information that can be organized into a set of one or more terminators and spans and represented as one or more related simple graphs. Network Element: A network element is a type of terminator wherein each such terminator corresponds to an electronic, electrical, or mechanical device, or identifiable portion of a device, that is a component of a network. Network elements may, but are not required to, contain certain types of other network elements. Examples of network elements include, but are not limited to, telephone switches, multiplexers, digital cross-connect switches, fiber optic terminal sets, patch-panels, air conditioners, power supplies, batteries, any identifiable physical subcomponent of a network element, print circuit cards, physical ports, and the like. Node: A node is a graphical element that is depicted as a point on a graph. Graphical Pathway: A graphical pathway is a connected graph containing more than one edge . Peer Relationship: A peer relationship is a relationship, wherein if a first node A has a peer relationship to a second node B, then the second node B must also have the same identical relationship to the first node A. Physical Port: A physical port is a type of network element that is related through a hierarchy to another network element and can be connected to a cable. Examples of physical ports include, but are not limited to, optical connectors, coax connectors, multi-pin connectors, radio or microwave antennas, and the like. Related Graphs: Two simple graphs are said to be related if, and only if, at least one node is an element of both graphs, or if both graphs are related to a common third graph. A set of more than two simple graphs are defined as interrelated if, and only if, any first graph in the set is related to all the other graphs in the set. Relationship: A relationship is an entity whose attributes describe an association between two nodes. Where entities are depicted as nodes on a graph, the relationships are depicted as edges. Ring: A ring is a series of three or more graphically connected edges, all of the same class, wherein the first edge and the last edge in the series are also graphically connected. Simple Graph: A simple graph is defined as a connected graph wherein all of the edges belong to the same class. Span: A span is a class that inherits the properties of nodes. Spans generally include, but are not required to be, all entities that can be associated with bridging the space (whether physical or logical) between terminators. Terminator: A terminator is a class that inherits the properties of nodes. Examples of terminators include, but are not limited to, locations, ports, network elements, and the like. Without limiting the scope of the present invention, the examples in this disclosure of the present invention are described in connection with a network configuration data modeling system and a method for modeling both physical and logical network configurations, including hybrid combinations of the two, and, in particular, for modeling telecommunication networks. The present invention, however, is not limited to the modeling of telecommunication network configurations. The present invention is applicable to the modeling of any type of complex network configuration. Figure 12 illustrates the arrangement of definitions into something akin to an object hierarchy. At the top is the most basic definition, entity 1202. As defined previously, an entity is merely a set of attributes that are uniquely distinguishable from the attributes of any other entity. Below entity 1202, the definitions split into two broad categories: nodes 1204 and edges 1206. Nodes 1204, broadly speaking, pertain to physical elements that make up the complex network. Edges 1206, broadly speaking, pertain to the relationships between nodes for purposes of defining the network information and configuration and displaying such definition to the user. Node objects are instantiated as either terminators 1208 or spans 1210. Just what exactly is a terminator or a span varies from network to network. While something can be classified as a terminator in one network is better classified as a span in another network and vice versa. Edges are instantiated as either containment 1212 or connectivity 1214. As shown in Figure 12, containment 1212 is used to model hierarchical relationships and connectivity 1214 is used to model peer relationships. In the preferred embodiment, containment edges and connectivity edges are mutually exclusive. Most telecommunication networks consist of elements that can have one of three types of relationships: hierarchical; point-to-point; and concatenation. A hierarchical set of network elements would be a network device that contains several sub-systems, where each subsystem contains other sub-components. An example of a hierarchical set of network elements would be a card cage. Card cages contain printed circuit cards . Printer circuit cards in turn contain physical ports. An example of a point-to-point connection would be a cable that connects a physical port on one device to a physical port on another device. An example of a concatenation relationship is the interconnection of a number of shorter circuits to form a more complex circuit that connects multiple locations, network elements, and the like. By tracking all such relationships within a network, a user (person or software program) can determine the impact of a failure of one small piece of equipment (e.g. a physical port) on the customers of the network. Today, the modeling of simple network configuration information has been accomplished by the ad hoc construction of many application specific models. Until the present invention, no model existed where an arbitrary complex network configuration could be decomposed and its components organized into a common data structure regardless of the component type, network service, or application. The method of the preferred embodiment of the present invention is based on the desire to utilize graph theory to describe and to model the configuration data for most (if not all) real-world networks including complex networks. The benefit of such an effort is that the large body of mathematics and computer algorithms -- already developed for use in the field of graph theory -- can then be utilized independent of the particular network application. Unlike the present invention, most prior art general- purpose computer systems and algorithms have been designed to take advantage of information that can be expressed as a single simple graph. However, real-world networks are typically too complex to be represented as a simple graph. Instead, real-world networks must typically be depicted as a diverse and complex set of nodes and edges belonging to many different classes. This diversity and complexity makes it very difficult to design computer systems and algorithms that can deal with the many tasks associated with managing such information. The present invention provides a framework and paradigm for reducing any network to a set of related simple graphs. The method of the present invention set forth can be accomplished in a series of sequential steps or may be employed on a piece-wise or iterative basis. It is a presumption of the present invention that any real-world network can be modeled by reducing the network configuration data to a set of interrelated simple connectivity and hierarchical graphs. The benefit of the application of the method of the present invention is that generic computer systems and algorithms can be utilized to perform many of the tasks associated with managing such network configuration data. The method of the present invention is illustrated in the flowchart of Figure 11 and consists of the following tasks : First, identifying (collecting) all of the relevant network configuration data and grouping the data elements into sets of information called entities, step 1104. Each entity will be identified with at least one node or one edge on one simple connectivity graph in a resulting set of simple connectivity graphs. Second, classifying the entities as either nodes or edges, step 1106. Nodes generally include all entities that can be associated with a component of the network. Edges generally include all entities that can be associated with a relationship between two network components. Edges are depicted as graphical lines connecting the graphical nodes. Each individual entity must be classified as either a node or an edge . Third, subdividing the nodes identified in the previous step into a set of terminators and a set of spans, step 1107. Fourth, grouping the terminators and spans into a plurality of layers, as many as are required to include each terminator and each span into at least one layer, step 1108. It is desirable, but not required, that each terminator and each span appear in only one layer. Fifth, classifying and grouping the nodes into one or more (usually many) simple hierarchical graphs, step 1110. It is desirable, but not required, that any individual node be associated with only one simple hierarchical graph for each class of relationship. Sixth, classifying and grouping the edges into one or more (usually, many) simple hierarchical graphs, step 1112. It is desirable, but not required, that any individual edge be associated with only one simple hierarchical graph for each class of relationship. Upon completing the tasks for an entire network' s configuration data, step 1114, the resulting classified data is easily mapped into almost any form of data repository or database. One consequence -- and benefit -- of rigorously applying the method of the present invention is that the user is unable to include any entity more than once within a layer and/or within a simple hierarchical graph. Having an entity defined more than once is an indication of potential incompleteness in the data collection effort. While such completeness is desirable, it is not required. Example Application of the Method: Telecommunication network configuration data represents one of the most complicated data management problems that exist today and one of the most productive areas for applying the method of the present invention. Figures la through lg illustrate the building blocks for the method and apparatus of the present invention. Figure la shows a single node 12. Figure lb illustrates a set of nodes 12. Figure lc shows an edge 14. Figure Id shows an edge 14 establishing a relationship between two nodes 12. Figure le shows a more complex relationship having two edges 14 that identify a relationship between two sets of nodes 12, respectively. Figure If illustrates a set of network entities 16 such as those shown in Figure le. Figure lg shows a simple graph 18 of the present invention. The graph 18 can illustrate either a connectivity graph or a hierarchical (tree) graph. The direction from the first entity toward the one or more second entities shall be called the forward or downward direction that moves from the postal end toward the distal end. The direction from the one or more second entities toward the first entity shall be referred to as the reverse or upward direction meaning from the distal end toward the postal end. Further, each direction within the hierarchical relationship must be defined in terms of the logical inverse of the other direction. Unless otherwise defined, a single entity can have one and only one reverse hierarchical relationship of the same relationship class. The upward and downward directions mentioned above are merely illustrative of an embodiment of the present invention. Alternate embodiments of the present invention, the directions of the postal and distal relationships can be reoriented in any manner. More complex hierarchies can be formed by combining the graphs depicting one or more simple hierarchies wherein the first entity of one simple hierarchy also belongs to the one or more second entities of another simple hierarchy, where the hierarchical relationships of both simple hierarchies are of the same class. Thus, all hierarchies have an implied layered structure relative to the graph formed by all members of the hierarchy. For example, if a first entity has a forward hierarchical relationship (of class X) to one or more second entities, and any one of the entities within the second layer has the same type of forward hierarchical relationship (i.e. of class X) with one or more third entities, three layers are formed. Hierarchies are depicted by tree graphs . Figure lh shows a hierarchical graph 18h containing a set of nodes 12 in a hierarchical (inverted tree) relationship. The first node 12 (designated "B") is at the topmost postal position. All of the nodes 12 to which the "B" node 12 is connected to lie in a downward or distal direction from the "B" node. In Figure lh, the first set of distal nodes are designated "Bll," "B12," and "B13." In the instance illustrated in Figure lh, the "B13" node 12 itself has a relationship with four nodes 12 designated "B131," "B132," "B133," and "B134." Finally, the "B133" node 12 itself has a relationship with four additional nodes 12 designated "B1331," "B1332," "B1333," and "B1334." Figure 2a shows a connectivity graph 18c containing a set of nodes 12 that are joined by edges 14 to form a simple network configuration. Figure 2b shows a side view of the connectivity graph 18c of Figure 2a. When the connectivity graph 18c, such as the one in Figure 2a, is rotated flat, it is termed a layer 20 as shown in Figure 2b. Figure 3 shows a series of layers 20, each having entities (nodes 12 and edges 14) arranged into three layers 20. As shown in Figure 3, node 12 designated as "B" is in Layer 1, which is in a postal (higher) relationship to Layer 2 and Layer 3. The "B" node 12 has a relationship with three nodes 12 designated "Bll," "B12," and "B13" of Layer 2. Similarly, "B13" node 12 has a relationship with four nodes 12 designated "B131," "B132," "B133," and "B134" of Layer 3. Figure 4a shows a set of network entities 16. A set of zero or more hierarchical graphs 18h can be related to the set of network entities 16 as shown in Figure 4a. Some of the entities within the set of network entities 16 can be identified as relationships that can be included in the hierarchical graph 18h of Figure 4a. Figure 4b shows two sets of network entities 16 (designated "A" and "B" ) wherein one or more entities of set A may have a connectivity relationship 22 with one or more entities of set B. Figure 4c illustrates the network entity sets 16 of Figure 4b wherein one or more entities of set A has a connectivity relationship 22 with one or more entities of set B to form a connectivity graph 18c. Figures 5 through 10 set forth an example application of the present invention for classifying a general set of network configuration data into a set of interrelated graphs . The example begins with the illustration in Figure 5, where the network configuration data for a specific network (i.e. network "XYZ" ) has been collected but no graphical elements have been identified. Figure 5 shows a generic unorganized set of network information 24 designated network "XYZ." Figure 6 shows a set of terminators 16t and a set of spans 16s that comprise part of the network information 24 of Figure 5. Figure 6 illustrates part of the method of the present invention where the various network elements (terminators and spans) are identified and classified. Note in Figure 6 that there may be duplicate elements 26 within both sets 16t and 16s. The duplicate elements 26 must eventually be uniquely classified as either a terminator or a span according to the method of the preferred embodiment of the present invention. The next step in the example is to identify all of the connectivity relationships and form the layers. In order to help the identification effort, the set of terminators 16t and set of spans 16s are further classified into three sub-classes of layers (the geographic, the physical, and the logical layer sub-classes), as shown in Figure 7. The geographic layers consist of location entities and conduits entities. The physical layers consist of network element entities and cable entities. The logical layers consist of logical port entities and circuit entities. Each of the three sub-classes of layers has both terminators (36, 42, 48) and spans (38, 44, 50) . Further, each sub-class contains a set of terminator entities and a set of span entities, as indicated. Alternatively, the network elements are further classified into finer sets 36, 38, 42, 44, 48, and 50. Within each network element sets can be additional subsets such as the physical port entities 16 within set 42. Figure 8 illustrates the element sets of Figure 7 arranged into three layers 30, 32, and 34. Relationships (edges) (40, 46, 52) connect the terminators (36, 42, 48) ■to the spans (38, 44, 50), respectively within the respective layers. As shown in Figure 8, all connectivity relationships are then identified and a set of interrelated connectivity graphs (layers) are formed. Terminator entities in each class may have connectivity relationships with individual span entities, and only span entities, belonging to the same layer. Such connectivity relationships may, or may not, be governed by other class and entity specific connectivity rules. Figure 9 has the elements of Figure 8 with the addition of hierarchical graphs 37, 39, 43, 45, 49, and 51. In Figure 9, all of the hierarchical relationships between the terminators within each layer sub-class, and all spans within each layer sub-class, are identified. Figure 10 has all the elements contained within Figure 9 with the hierarchical relationships (edges) 52, 54, 56, and 58 established among the various entity sets 36, 38, 42, 44, 48, and 50. Here, all of the hierarchical relationships between terminators belonging to different layer subclasses, and between spans belonging to different layer sub-classes, are identified and depicted. Figure 10 is illustrative of a complete set of network configuration information expressed in a set of interrelated graphs. It is desirable for the network configuration information illustrated. in Figure 10 to be displayed to a user and is within the scope and spirit ' of the present invention. Moreover, computer software applications can be written to facilitate the identification, classification and position of the various network entities to develop a network configuration information similar to the one illustrated in Figure 10. The preferred embodiment of the present invention includes computer software working on a suitable computer system that enables a user to identify, to categorize, to classify, to load, to store, to query, and to display any or all of the network entities that comprise the complete network configuration information. Implementation of the Present Invention in an Apparatus: It is useful to store the network configuration in a computer-readable medium. Once loaded into a computer- readable medium, the steps of the method of the present invention may be performed or executed. Computers may be specially programmed to execute or accomplish any or all of the methods of the present invention. Moreover, the storage and analysis of the network can be aided greatly with the use of a database. In the preferred embodiment of the present invention, the implementation of the invention is done on a computer system. The computer system is equipped with a processor having an adequate amount of associated memory in the form of RAM or equivalent, and/or one or more hard disks or other non-volatile media such as CD-ROM, tape or equivalent. In addition, the computer system of the preferred embodiment would have a keyboard and mouse for inputting data as well as a monitor and printer for outputting data. Other input and output media that can load and/or view information from a processor will also be useful with the present invention. The present invention lends itself to implementation on a relational database, an object database, and an object relational database that can be loaded into the computer system described above . Implementation of the present invention on a relational database can be accomplished with a group of data tables within which the element information is stored. Preferably, the tables of the relational database are tailored to the specific entities contained within the network being modeled. It is suggested that the user utilize a relational database that allows for flexible table construction. The table should enable an entity to be stored within one record or tuple. Moreover, the record of that table should allow for the storage of the attributes of the entity. Finally, the record of the table in question should also allow for the storage of a unique value or set of attributes that uniquely identify the specific entity. Usually, in relational databases, this means the use of index keys. Index keys consist of one or more fields within the table and are used by the relational database engine to uniquely identify a specific tuple. Another benefit of keys that are useful and desirable for the present invention is that keys prevent tuples having from having identical keys or, in other words, prevent the same entity from being loaded more than once. Suitable input screens can be constructed to assist the user to identify and classify entities within the network and to load the entity attributes into the relational database. Queries, oftentimes in the form of SQL (Structured Query Language) statements, can be directed against the table within the relational database in order to solicit information regarding the network. The result of the SQL query can be formatted in a variety of formats. For example, the results can be a tabular listing, although more preferably the results would be in the form of a viewable graph. A wide variety of output media and platforms are applicable to the present invention. The SQL query results can be sent to a server, a client, or formatted for viewing by a web browser over the network itself or remotely by, for example, the Internet. The scope and spirit of the invention is not limited by the application of a particular input or output media or platform. Instead, the present invention can be practiced by the use of any media that enables a user to input entities that have been classified and identified uniquely and that allows the user to query the information and allows the user to see the results in a coherent manner. The present invention can also be used with object database. Unlike relational databases which employ tables having records (tuples) for each individual entity and fields that store the specific attributes of those entities, an object database uses classes to define specific kinds of entities. ' The properties of those classes are used to store the attributes of the entity. Unique instances of the classes are created for each individual entity. As is one of the useful features of object databases is that individual instances of any class are provided with a unique object indentifier ("OID") . The OID is unique for any object, not simply for other objects of the same class. Moreover, object databases are also well equipped to handle relationships between objects that can be utilized to help model the associations between entities. As with the relational database, the object database can be queried using SQL or OQL (Object Query Language) in order to solicit information that can be provided to the user. For example, the results can be a tabular listing, although more preferably the results would be in the form of a viewable graph. A wide variety of output media and platforms are applicable to the present invention. The OQL (or SQL or other) query results can be sent to a server, a client, or formatted for viewing by a web browser over the network itself or remotely by, for example, the Internet. The scope and spirit of the invention is not limited by the application of a particular input or output media or platform. Instead, the present invention can be practiced by the use of any media that enables a user to input entities that have been classified and identified uniquely and that allows the user to query the information and allows the user to see the results in a coherent manner. Finally, a relational database/object database hybrid, often referred to as an object-relational database can be utilized by the present. In the context of the present invention, an object-relational database is used so that the network modeling can be designed according to object- oriented methods while the data itself is stored within a relational database (e.g., a set of tables in a database). As is customary in an object-relational database, there is a database mapping scheme employed to translate the object information (class instances and their properties) into a relational database form (tables, tuples, and fields) . The spirit of the present invention encompasses the creation of the object relational mapping scheme, or, in the alternative, a built in mapping scheme or third party mapping program can be employed. As with the relational database and the object database, the object-relational database can be queried using SQL or OQL (Object Query Language) in order to solicit information that can be provided to the user. For example, the results can be a tabular listing, although more preferably the results would be in the form of a viewable graph. A wide variety of output media and platforms are applicable to the present invention. The OQL (or SQL or other) query results can be sent to a server, a client, or formatted for viewing by a web browser over the network itself or remotely by, for example, the Internet. The scope and spirit of the invention is not limited by the application of a particular input or output media or platform. Instead, the present invention can be practiced by the use of any media that enables a user to input entities that have been classified and identified uniquely and that allows the user to query the information and allows the user to see the results in a coherent manner. The preferred embodiment of the present invention is a method for modeling a complex network by following a series of steps. In its simplest form, the first step is to provide information about the entities that comprise the network. This information is typically provided by the person who is modeling the network, i.e., the network modeler (user) . The modeler then identifies each of the entities as either a node or an edge. It should be noted that the identification must be unique. A node cannot be an edge and vise versa. However, an entity can be a node in one model and an edge in another separate model. Next, the user defines a set of layers with the nodes and edges that were identified earlier as being part. of the network. A layer must contain at least one node, although it need not contain any edges. Moreover, a node can only be a member of one layer. Similarly, an edge can be a member of only one layer. If an edge is contained within a layer, that edge must terminate at one or more nodes that are also contained within the same layer that contains the edge. Additional steps may be taken to further define a complex network. For instance, a series of steps can be added to the method of the present invention to provide another dimension to the network model. For instance, the user can identify one or more relationships between one or more entities in a first layer and one or more entities in a second layer. Next, the user can define a set of one or more layers in a hierarchical layer order, the layer order being arranged to have a postal end (nominally at the top) and a distal end (nominally at the bottom) . In the preferred embodiment of the present invention, a postal node within a first layer can have a distal relationship only with one or more distal nodes that are contained within one or more second layers, wherein the second layer is closer to the distal end than the first layer. Finally, the distal nodes can have a postal relationship only with a single postal node. Containment is a class of hierarchical relationships wherein a "container" entity is related to one or more other "content" entities. The content entities are understood to be contained by the container entity. If A, B, and C are entities, and A contains B, and B contains C, then A contains C. Conversely, if A, B, and C are entities, and C is contained by B, and B is contained by A, then C is contained by A. A measure of optimization, and adherence to the paradigm of the present invention, is to reduce the expression of the network to the smallest number of related simple graphs. However, such optimization is not required to practice the present invention. It will be apparent to those of ordinary skill having the benefit of this disclosure that any of the foregoing variations may be implemented by programming one or more suitable general-purpose computers having appropriate hardware. The programming may be accomplished through the use of a program storage device readable by the computer and encoding a program of instructions executable by the computer for performing the operations described above. The program storage device may take the form of, e.g., one or more floppy disks; a CD ROM or other optical disk; a magnetic tape; a read-only memory chip (ROM) ; and other forms of the kind well-known in the art or subsequently developed. The program of instructions may be "object code," i.e., in binary form that is executable more-or-less directly by the computer; in "source code" that requires compilation or interpretation before execution; or in some intermediate form such as partially compiled code. The precise forms of the program storage device and of the encoding of instructions is immaterial here. The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of these teachings. Furthermore, no limitations are intended with regard to the details of construction or design shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought is as set forth in the claims below.

Claims: WHAT IS CLAIMED IS: 1. A method for modeling a complex network, said method comprising the steps of: identifying entities that comprise said network; classifying one or more entities as either a node or an edge; and defining a set of layers with said nodes and said edges, said layer having at least one node, wherein any of said nodes or said edges may be a member of only one layer, and said edges contained within any said layer must terminate at exactly two nodes that are also contained within said layer. 2. A method as in claim 1, said method further comprising the step of: classifying one or more relationships between one or more entities in a first of said layers and one or more entities in one or more distal layers. 3. A method as in claim 2 , said method further comprising the step of: defining a set of one or more layers in a layer order, said layer order having a hierarchy with a postal end and a distal end. 4. A method as in claim 3 , wherein a postal node within a first layer can have a distal relationship only with one or more distal nodes that are contained within one or more distal layers, said distal layer closer to said distal end than said first layer. 5. A method as in claim 4 , wherein said distal nodes can have a postal relationship only with a single postal node . 6. A computer system that models a network configuration, said computer system having a processor and memory, said computer system comprising: input media, said input media constructed and arranged to enable a user to define a set of layers with one or more nodes and one or more edges, said layer having at least one node, wherein any of said nodes or said edges may be a member of only one layer, and said edges contained within any said layer must terminate at exactly two nodes that are also contained within said layer; and a database, said database constructed and arranged to contain attributes of said nodes and said edges. 7. A computer system as in claim 6 wherein said database is a relational database. 8. A computer system as in claim 6 wherein said database is an object database. 9. A computer system as in claim 6 wherein said database is an object-relational database. 10. A computer system as in claim 6, said computer system further comprising: output media, said output media constructed and arranged to display said network configuration to a user. 11. A computer system as in claim 6 wherein said input media is further constructed and arranged to enable a user to input a query to said database about said network configuration. 12. A computer-readable medium encoded with instructions that, when executed by a computer, perform a method in accordance with a specified one of claims 1 through 5. 13. A computer programmed to perform a method in accordance with a specified one of claims 1 through 5. 14. A computer system, said computer system comprising: a processor; a storage medium connected to said processor; wherein said computer system is constructed and arranged to enable a user to model any or all network entities that comprise a complete complex network configuration information according to the method of claim 1. 15. The computer system of claim 14, wherein said ability to model includes the ability for said user to identify said network entities 16. The computer system of claim 14, wherein said ability to model includes the ability for said user to classify said network entities. 17. The computer system of claim 14, wherein said ability to model includes the ability for said user to load said network entities. 18. The computer system of claim 14, wherein said ability to model includes the ability for said user to store said network entities. 19. The computer system of claim 14, wherein said ability to model includes the ability for said user to query said network entities. 20. The computer system of claim 14, wherein said ability to model includes the ability for said user to display said network entities.

Inventors: LINDSEY TERRY P, LINDSEY, TERRY, P.
Applicants: ORILLION INTERNATIONAL INC, ORILLION INTERNATIONAL, INC.
Application year: 2001
Main classification: G06F17
IPC codes: G06F13, H04L12