U.S. patent application number 09/766652 was filed with the patent office on 2002-06-27 for data model for automated server configuration.
Invention is credited to Ferguson, Glenn, Poskanzer, Harold, Suorsa, Raymond.
Application Number | 20020082821 09/766652 |
Document ID | / |
Family ID | 24808946 |
Filed Date | 2002-06-27 |
United States Patent
Application |
20020082821 |
Kind Code |
A1 |
Ferguson, Glenn ; et
al. |
June 27, 2002 |
Data model for automated server configuration
Abstract
The present invention is directed to a data model. The data
model allows for modeling of all information relating to a computer
network to be conveniently stored in a database in a manner which
minimizes the effort associated with the addition of new devices to
the network and maximizes software code reuse. The information
relating to the network that may be modeled in the data model of
the present invention include: software information, configuration
information, monitoring information, hardware information, domain
name server (DNS) information, network information, and information
regarding queues that may be used by business logic, or intelligent
agents in accessing and maintaining various portions of the
network.
Inventors: |
Ferguson, Glenn; (San Jose,
CA) ; Suorsa, Raymond; (Los Gatos, CA) ;
Poskanzer, Harold; (Palo Alto, CA) |
Correspondence
Address: |
BURNS DOANE SWECKER & MATHIS L L P
POST OFFICE BOX 1404
ALEXANDRIA
VA
22313-1404
US
|
Family ID: |
24808946 |
Appl. No.: |
09/766652 |
Filed: |
January 23, 2001 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09766652 |
Jan 23, 2001 |
|
|
|
09699353 |
Oct 31, 2000 |
|
|
|
Current U.S.
Class: |
703/22 |
Current CPC
Class: |
H04L 43/065 20130101;
H04L 41/0856 20130101; H04L 63/101 20130101; H04L 41/024 20130101;
H04L 41/0806 20130101; H04L 43/0817 20130101; H04L 43/00 20130101;
H04L 63/105 20130101; H04L 61/00 20130101; H04L 61/45 20220501 |
Class at
Publication: |
703/22 |
International
Class: |
G06F 009/45 |
Claims
What is claimed is:
1. A queues data model for interacting with intelligent agents that
perform tasks on a computer network by relating a list of tasks to
be performed by the intelligent agents with specific agent commands
and agent command outputs, said data model comprising: a plurality
of agent queues entities that represent a list of tasks to be
performed by the intelligent agents on a computer network; a
plurality of agent queues commands entities that relate the
plurality of agent queues entities with specific agent commands and
agent command outputs; a plurality of agent command output entities
that represent the agent command outputs; and a plurality of agent
commands entities that represent the specific agent commands to be
executed by the intelligent agents.
2. The data model of claim 1, further comprising: a plurality of
agent queue mutex entities that serve as a locking mechanism to
prevent an agent from attempting to execute commands on a busy
device until the device is no longer busy.
3. The data model of claim 1, further comprising: a plurality of
agent command mutex entities that serve as a locking mechanism for
preventing an agent from executing more than a single queue at a
given time.
4. A data model for relating commands and command outputs of
intelligent agents of a computer network with queues associated
with the intelligent agents, comprising: a plurality of agent queue
command entities for relating agent queues to agent commands and
agent command outputs; a plurality of agent queues entities
representing said agent queues, which are a list of tasks to be
completed by an intelligent agent on a computer network; a
plurality of agent command output entities representing said agent
command outputs; and a plurality of agent commands entities
representing said agent commands.
5. The data model of claim 4, wherein the agents are prevented from
executing more than a single queue at a given time by a plurality
of agent command mutex entities, and wherein the agents are
prevented from executing queues on devices that are already busy,
thereby preventing a device from executing more than a single queue
at a given time.
6. A queues data model for characterizing the interaction of queues
entities, comprising: a plurality of agent queues entities; a
plurality of agent queue commands entities; a plurality of agent
command output entities; a plurality of agent commands entities;
and a plurality of agent command text entities.
7. The data model of claim 6, further comprising a plurality of
agent queue mutex entities that serve as a locking mechanism by
signalling to agents that a particular device is currently
busy.
8. The data model of claim 6, further comprising a plurality of
agent command mutex entities that serve as a locking mechanism to
prevent an agent from attempting to accomplish more than one task
at a time.
9. The data model of claim 6, wherein said agent queues entities is
used to indicate to agents a list of tasks to be performed and may
optionally relate to multiple agent queues entities and may relate
to said agent queue commands entities by a one-to-many
relationship.
10. The data model of claim 6, wherein said agent queue commands
entities relate to said agent queues entities and said agent
commands in many-to-one relationships and to said agent command
output entities in a one-to-many relationship.
11. The data model of claim 6, wherein said agent command text
entities relate to said agent commands entities by a many-to-one
relationship.
Description
BACKGROUND
[0001] The present invention is directed to the provisioning, or
configuration, of servers and other devices that provide support
for sites that are hosted on the Internet, intranets, and other
communication networks. More particularly, the present invention is
directed to a data model which can be implemented using a database
and which serves as a repository for information pertinent to the
provisioning or configuration, of devices on a communications
network.
[0002] The growing popularity and increasing accessibility of the
Internet has resulted in its becoming a major source of
information, as well as a vehicle for inter-party transactions, in
a variety of environments. For instance, a number of different
types of entities, from government agencies to school systems to
organized groups, host Internet and/or intranet websites that
provide informational content about themselves and topics related
to their interests. Similarly, commercial enterprises employ
websites to disseminate information about their products or
services, as well as conduct commercial transactions, such as the
buying and selling of goods. To support these activities, each
website requires an infrastructure that stores the information
provided by that site, responds to user requests for the
information, and conducts other types of transactions appropriate
to the site. A significant component of this infrastructure is a
web server, which receives requests for information, retrieves it
from the appropriate sources, and provides it to the requester.
Websites which provide more complex services, such as online
ordering, may also include application servers to support these
additional functions.
[0003] In the case of relatively small entities, the infrastructure
to support a website may be as simple as a single server, or even a
portion of a server. Conversely, a large, popular website that
consists of several thousand pages of information and that is
accessed quite frequently may require numerous web servers to
provide the necessary support. Similarly, websites for commercial
entities, via which transactional operations are conducted, may
employ multiple application servers to support transactions with a
large number of customers at one time.
[0004] The present invention is particularly directed to a data
model which supports a website by facilitating provisioning of the
servers, allowing appropriate software necessary for the site to be
identified, located, and transferred to a server, and generally
defining all aspects of the network. Such provisioning initially
occurs when the website is first launched. Thereafter, there may be
a need for further provisioning, particularly in the case of a
successful website, when additional servers must be added to
support increased traffic, which requires accurate modeling of all
aspects of the network. In another instance, provisioning of the
servers may be required as part of a disaster recovery operation,
for example a sudden interruption in power, an attack by a hacker,
or corruption of stored software and/or data. In such an instance,
it would be necessary to have an accurate model of all aspects of
the server to allow for accurate reproduction of the server in need
of recovery.
[0005] The provisioning of a server or other device that supports
the operation of a website involves several discrete steps. First,
the appropriate operating system software must be loaded onto the
device, followed by networking software that enables the device to
communicate over a network. Thereafter, software applications that
are required to support the particular site are loaded, such as
database software for retrieving web pages, credit card processing
software, order processing software, etc. Finally, the content
associated with the individual pages of the website must be loaded.
The order in which these various components are loaded onto the
server can be quite critical, to ensure compatibility of the
various programs with one another.
[0006] In the past, the provisioning of web servers was often
carried out manually. In other words, each item of software was
individually loaded onto the server by a person having
responsibility for that task. One problem with such an approach is
the fact that it consumes a significant amount of time. For a
relatively large site that is supported by multiple servers, the
provisioning could take several hours or days to be completed,
thereby delaying the time before the site can be launched and/or
upwardly scaled to accommodate increasing traffic. Another, and
perhaps more significant, limitation associated with the manual
provisioning of devices is the lack of repeatability in the
software configurations. More particularly, whenever manual
operations are involved in the installation of software, there is
always the possibility of human error, such as the failure to
install one of the required components, or the loading of the
various items of software in the wrong order. Each of these types
of errors can result in misoperation or total failure of the
website, and can be extremely time consuming to discover and
correct.
[0007] To overcome some of these limitations, various techniques
have been developed which permit software to be automatically
deployed to computers. However, these techniques are limited in the
types of environments in which they can be utilized. For example,
in an enterprise where all of the users interact with the same
legacy applications, a "cookie cutter" type of approach can be used
to deploy the software. In this approach, every computer can have
the same, standard configuration. Once the configuration has been
developed, therefore, it can be packaged into a fixed format, and
automatically disseminated to all of the appropriate computers.
[0008] However, this type of automated deployment is not effective
for situations in which computers, such as servers, need to be
customized to accommodate the individual requirements of varied
users. One example of such a situation is a data center which may
house the infrastructure for hundreds of different websites. The
hardware and software requirements for these sites will vary among
each site. For instance, different website developers may employ
different platforms for the sites, thereby necessitating various
combinations of operating systems and application programs on the
servers of the respective sites. Furthermore, different types of
equipment may be utilized for the sites, thereby adding to the
complexity of the provisioning process. In some cases, the same
site may require a variety of different hardware devices, operating
systems and application programs to handle all of the different
services provided by that site. Known approaches to automate
software deployment are not adapted to the needs of these types of
situations. Rather, because of the flexibility that is required to
accommodate a different configuration of hardware and/or software
for each site, manual provisioning is still being practiced to a
large extent, with all of its attendant disadvantages.
[0009] It is desirable, therefore, to provide a data model to
support the automated provisioning of servers and other devices
that support various types of services, such as the hosting of an
Internet or intranet website. Such a data model should exhibit
sufficient flexibility to accommodate the differing needs of the
providers of such services, while maintaining repeatability, and
hence reliability, in the provisioning process.
SUMMARY
[0010] In accordance with the present invention, the foregoing
objectives are achieved by way of a data model to support the
automated provisioning of servers and other devices that support
various types of services, such as hosting of an Internet or
intranet website. This data model provides relationships between
various software, configuration, monitoring, hardware, network,
domain name server (DNS), and queues entities. By representing the
model in an entity relationship form, the present invention
facilitates allowing access to and configuration of each aspect of
a database which implements the model and thus, to each aspect of
the network. This, in turn, allows for automated provisioning by
devices located remotely on the network with which the data model
of the present invention is associated.
[0011] The central database which implements the data model of the
present invention contains all information that is relevant to the
provisioning of devices contained on the network. This information
includes information regarding the hardware devices used on the
network, the software components that make up the various software
roles installed on a device, logical network information such as IP
addresses, configuration information of the various software,
hardware, and network components, domain name information, and the
like. Additionally, information regarding monitoring status of the
network, and devices contained thereon is provided for.
Additionally, an interface for various network agents associated
with each host on the network for reporting configuration regarding
devices connected to the network, reporting version information,
upgrading software contained thereon, and so forth, is provided
for.
[0012] According to exemplary embodiments of the present invention,
the data model allows for modeling of all information relating to a
computer network to be conveniently stored in a database in a
manner which minimizes the effort associated with the addition of
new devices to the network and maximizes software code reuse. This
is accomplished by designing a model wherein each of the model's
entities interrelate and are characterized by variable sets which
provide enough specificity to accurately characterize the network
(or portion thereof) that the model is intended to capture. At the
same time, however, these entities and their respective variables
are sufficiently generic to readily permit the addition of, e.g.,
new software, new hardware devices, new monitoring techniques and
equipment, new configurations, etc., without requiring the
rewriting of software code which relies upon the model and the
database implementation thereof. Moreover, the schema described
herein facilitate the reuse of existing software code to interact
with the database model regarding newly added software, hardware,
configurations, etc. by virtue of this design aspect of the
model.
[0013] Various segments of models according to exemplary
embodiments of the present invention are separately
implementable.
[0014] These and other features of the present invention are
explained in greater detail hereinafter with reference to an
exemplary embodiment of the invention illustrated in the
accompanying drawings, wherein like components are designated by
like reference numerals.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] FIG. 1 is block diagram of one embodiment of the hardware
configuration for website hosting.
[0016] FIG. 2 is a block diagram of services associated with a
network, in connection with one embodiment of the present
invention.
[0017] FIG. 3 is a block diagram of a website maintenance system,
associated with one embodiment of the present invention.
[0018] FIG. 4 is a block diagram of roles used in connection with
one embodiment of the present invention.
[0019] FIG. 5 is a role-centric entity relationship diagram, used
in connection with one embodiment of the present invention.
[0020] FIG. 6 is a service-centric entity relationship diagram,
used in connection with one embodiment of the present
invention.
[0021] FIG. 7 is a block diagram illustrating the relationship
between various elements of one embodiment of the present
invention.
[0022] FIG. 8 is a block diagram illustrating the relationship
between various elements of one embodiment of the present
invention.
[0023] FIG. 9 is a block diagram illustrating the relationship
between units, bundles, and roles, in accordance with one
embodiment of the present invention.
[0024] FIG. 10 is an entity relationship diagram illustrating the
relationship between units, roles, and packages, in accordance with
one embodiment of the present invention.
[0025] FIG. 11 is an entity relationship diagram illustrating the
relationship between various aspects of the data model, in
accordance with one embodiment of the present invention.
[0026] FIG. 12 is an entity relationship diagram illustrating the
relationship between various entities relating to software within
the data model of one embodiment of the present invention.
[0027] FIG. 13 is an entity relationship diagram illustrating the
relationship between various entities relating to configuration
within the data model of one embodiment of the present
invention.
[0028] FIG. 14 is an entity relationship diagram illustrating the
relationship between various entities relating to monitoring within
the data model of one embodiment of the present invention.
[0029] FIG. 15 is an entity relationship diagram illustrating the
relationship between various entities relating to hardware within
the data model of one embodiment of the present invention.
[0030] FIG. 16 is an entity relationship diagram illustrating the
relationship between various entities relating to DNS capabilities
within the data model of one embodiment of the present
invention.
[0031] FIG. 17 is an entity relationship diagram illustrating the
relationship between various entities relating to network within
the data model of one embodiment of the present invention.
[0032] FIG. 18 is an entity relationship diagram illustrating the
relationship between various entities relating to queues within the
data model of one embodiment of the present invention.
DETAILED DESCRIPTION
[0033] To facilitate an understanding of the principles of the
present invention, it is described hereinafter with reference to
its application in a specific embodiment. Specifically, the data
model of the present invention will be described within the context
of a database which implements the model, which database is used in
a computer network for the automated provisioning, and remote
configuration and maintenance, of multiple computer devices
connected to the network. It will be appreciated, however, that the
implementation of the invention that is described hereinafter is
merely exemplary, and that the invention can find practical
application in any environment where it is desirable to model a
database associated with a server on a computer network of any
kind.
[0034] FIG. 1 illustrates, in block diagram form, the hardware
configuration of one embodiment of the present invention. In FIG.
1, a typical, three-tier web hosting system 100, which may be
implemented using the data model of the present invention, is
illustrated. Therein, databases 102A, 102B are accessible to the
web servers 104A, 104B, and the application servers 106A, 106B of
the three-tier web hosting system 100 illustrated in FIG. 1. In the
three-tier system 100 illustrated in FIG. 1, redundancy is used,
whereby a duplicate web server 104B, application server 106B, and
database 102B are each used as backups for the primary web server
104A, application server 106A, and database 102A, respectively.
[0035] Each of the web servers receives and handles requests
received by way of a network. Requests received by way of such a
network may require functionality from various applications. When
this is the case, the web server 104A, 104B forwards the requests
to the application server 106A, 106B, which may then process the
application, and also has access to the database 102A, 102B. The
application server 106A, 106B may, therefore, require information
regarding software, configuration, monitoring, hardware, the
network, DNS, or queues, which may be contained within the database
102A, 102B. This information is modeled by one embodiment of the
present invention to allow for rapid and convenient access by the
application server 106A, 106B to this information contained within
the database 102A, 102B.
[0036] Network requests are received by the web server 104A, 104B
by way of a firewall 108, and are distributed by the load balancer
110. The firewall 108 provides security from any malicious network
forces outside the local access of the three-tier web hosting
system, 100. Any remote host, or agent, which is outside the
locality of the three-tier web hosting system 100 may be required
to authenticate itself to the firewall 108 in order to access,
maintain, monitor, or reconfigure the web server 104A, 104B, the
application server 106A, 106B, or the database 102A, 102B. The load
balancer 110 distributes the network transactions received by way
of the firewall 108.
[0037] It should be noted that a common practice is to insert an
additional firewall between the application servers 106A, 106B and
the databases 102A, 102B. While many people feel that this provides
additional security, this redundancy is often not required if the
firewall 108 is correctly configured. However, it should be noted
that the present invention could be utilized in a system wherein a
second firewall is used between the application servers 106A, 106B,
and the databases 102A, 102B. The three-tier web hosting system 100
illustrated in FIG. 1 is a robust architecture, which is suitable
for use in almost any business situation. Thus, the data model of
the present invention finds utility in almost any business
situation.
[0038] FIG. 2 is a block diagram illustrating the relationship of
various services provided by a web hosting system in which the
present invention can be implemented. The relationship model 200
illustrated in FIG. 2 comprises a variety of functional components,
which relate to a web server 202, and an application server 204
connected to a network, such as the Internet 205. Functions
relating to the web server 202 and the application server 204
include a software maintenance component 206, and a monitoring
component 208. As illustrated by the bi-directional arrows in FIG.
2, the web server 202 and application server 204 may access
information, and functionality, possessed by the software
maintenance component 206 and the monitoring component 208.
Likewise, the software maintenance component 206 and monitoring
component 208 may provide the web server 202 and application server
204 with information, and may access information contained on the
servers 202, 204.
[0039] The web server 202, which is in communication with the
application server 204, may request functionality to be performed
by various applications. This functionality may be subdivided into
two categories: website content and personalized information.
Website content is represented by the content feed component 210,
and personalized information is represented by the personalization
component 212, which are both in communication with the application
server. Both the content feed component 210 and the personalization
component 212 may be monitored by the monitoring component 208, and
may receive software maintenance support from the software
maintenance component 206. The manner in which the monitoring
component 208, the software maintenance component 206, the network
205, the hardware devices 202, 204, and the configuration
components 210, 212 are related is defined by the data model of the
present invention.
[0040] According to an embodiment of the present invention, the web
server 202 may comprise a layer 7 proxy server. The monitoring
component 208 monitors the status of the hardware components, such
as the web server 202 and application server 204, and monitors the
content feed 210 and the personalization component 212. In response
to this monitoring, the web server 202 or application server 204
may request the software maintenance component 206 to provide
maintenance, which may be in the form of software updates, to any
of the hardware components 202, 204, the content feed component
210, or the personalization component 212. The content feed
component 210 may communicate any information which is fed into the
system 200, while the personalization component 212 provides data
and information that is specific to a particular site hosted by a
web server, or layer 7 proxy server 202. One example of information
that is fed into the system 200 by way of the content feed
component 210 is streaming data from an external source, such as
stock market ticker data.
[0041] In FIG. 3, a system 300 is illustrated, which is suitable
for automated provisioning, remote access and maintenance of
network devices. Another system in which models according to the
present invention can be implemented is described in U.S. patent
application Ser. No. ______, entitled "AUTOMATED PROVISIONING
FRAMEWORK FOR INTERNET SITE SERVERS" to Raymond Suorsa et al. filed
on an even date herewith, the disclosure of which is incorporated
here by reference. A database 302 can be used to implement the data
model according to exemplary embodiments of the present invention.
This database 302 may reside on any large scale storage device. For
example, suitable storage devices upon which the database
associated with the data model of the present invention may be
stored include redundant array of independent disks (RAID) systems,
such as those provided by EMC Corporation of Hopkinton, Mass., or
other similar devices. This database 302 may be accessed by the
various agents 304A, 304B, 304C, whose level of access may be
determined by a hierarchy of trust component 306. Additionally, a
user interface 308 may be provided for the convenience of a user in
accessing information contained within the database 302, or
software contained within the software file system 310. The
determination of the level of access granted by the user interface
308 is made by the hierarchy of trust component 306. Access
determination information is stored by the access determination
component 312, which is accessible by way of database 302. This is
accomplished by using a hierarchical file structure in which
specific access is determined and operated only to those users to
whom it should be granted. This is accomplished by user
authentication via a lightweight directory access protocol (LDAP)
server that authenticates users within particular domain names that
map to specific customer accounts. The hierarchy of trust component
306 interprets the data related to it from the database 302, and
communicates this data, or the interpretation thereof to the
various agents 304A, 304B, 304C, and/or the user interface 308.
[0042] In FIG. 4, a block diagram of a customer role package 400 is
illustrated. Such customer role packages are used to provide
repeatability, and eliminate the need for manual configuration by
designating software components to be installed on a particular
device connected to a network. Roles as illustrated in FIG. 4
define the functionality of device, and may be considered to define
the role, or part, the device is to play within the network.
[0043] In one embodiment of the invention, the software components
to be installed (i.e., the customer role package 400) are divided
into three types of software roles that are related to the
frequency with which they are likely to change or be upgraded.
These roles include an application role 402, a customer code role
404, and an operating system (OS) role 406. The OS role 406
contains the software that has the lowest probability of being
changed during the life cycle of the particular device on which it
is installed. This role consists of the OS of the device, plus
other general software, such as the intelligent agents 304A, 304B,
304C, illustrated in FIG. 3. The customer code role 404 contains
content specific to, and provided by, a customer, and therefore
contains software that can change on a regular basis for a website
or other network site. Examples of software contained within the
customer code role 404 might include hypertext markup language
(HTML) pages, Java server pages (JSP), active server pages (ASP),
image files, and other content that is regularly updated by a
website host. The application role 402 consists of software
components that change relatively infrequently when compared to
software of the customer code role 404, but perhaps more often than
software contained within the OS role 406. The hierarchical
structure of such a customer role package 400 is described
hereinafter in connection with FIG. 9.
[0044] An entity relationship diagram of a role-centric network
model 500 is illustrated in FIG. 5. The role-centric model 500 is
used for relating devices 502 connected to a network to software
roles 504. This is accomplished by way of a role instance 506,
which is used as a place holder for devices until a device 502 is
present, and connected to the network by way of which the role 504
may communicate the software contained therein to the devices 502.
This role-centric model 500 allowed for a role instance 506 that
reserved IP addresses, or other network addresses, and allowed for
general network configuration without the devices being attached to
the network. Thus, the IP addresses used by the various devices
connected to the network may be maintained, and need not be
reassigned each time a device is reconnected to the network at a
different location.
[0045] Entity relationship diagrams, such as the entity
relationship diagram of the role-centric model 500, show the
relationship between various entities, which are represented by
rectangular blocks and labeled to indicate their significance
connected by way of connection lines. Each connection line has a
single connection on one end and multiple connections on the
opposite end, indicating a one-to-many relationship. This means
that a single entity is related to multiple entities on the end of
the connection line having multiple connections. Thus, the devices
entity 502 relates to the role instance entity 506 in a one-to-many
fashion, meaning that each device entity 502 is directly related to
many role instance entities 506. Additionally, the role entity 504
is related to the role instance entity 506 in a one-to-many
relationship. Hence, each role entity 504 is related to multiple
role instances 506.
[0046] FIG. 6 illustrates an improved approach to the traditional
role-centric network model approach illustrated in FIG. 5. In FIG.
6, a service-centric network model 600 that allows one to monitor
service information related to devices 602 associated with a
computer network is shown. This type of model is accomplished, as
illustrated in the entity relationship diagram of FIG. 6, by
relating devices entities 602 to service instance entities 604 in a
one-to-many relationship. The service instance entities 604 are
then related to services 606 in a many-to-one relationship. The
services entity 606 is related to the roles entity 608 in a
one-to-many relationship. The service instance entities 604 act as
a relationship table between the devices 602 and the services 606.
The advantages of the service-centric model 600, which is employed
by one embodiment of the present invention include all of the
advantages of the role-centric model 500, illustrated in FIG. 5, as
the network may be configured using place holders instead of
devices connected to the network. The service-centric model has the
additional advantage of relating the roles to services, which are
an important quantity for customers to monitor and configure. An
embodiment of the present invention utilizes a service-centric
model, such as the one illustrated in FIG. 6.
[0047] The block diagram in FIG. 7 illustrates a service-centric
concept, relating services 702 to various other quantities
associated with the network that in accordance with an embodiment
of the present invention. The services 702 are centrally related to
each of: the devices 704, the configuration component 706 of the
network, the monitoring 708 of the network, hardware, and software,
and the software 710, such as the OS software, packages, and roles
hereinbefore described. By way of the service-centric system
illustrated in FIG. 7, the monitoring component 708 may monitor the
software component, ensuring that each of the software roles is
properly maintained, and up to date.
[0048] FIG. 8 illustrates a similar configuration, wherein services
are centrally related to a configuration component 706, a
monitoring component 708, and software 710. However, the
service-centric relationship illustrated in FIG. 8 differs from the
one illustrated in FIG. 7 in that the services 702 are not related
directly to devices. Rather, the services 702 are related directly
to a service instance 802, which allows for the configuration of an
IP address by a configuration device. This service instance 802 is
related to devices 804 upon which an IP is configured. Thus,
although the services 702 in FIG. 8 are not directly related to
devices, as is the case in FIG. 7, in FIG. 8, the services 702 are
related to a service instance 802 which allows for the
configuration of IP addresses until a device 804 may be configured
with an IP address, and acts as a place holder for devices to be
connected and utilize the IP addresses.
[0049] FIG. 9 illustrates the hierarchy of individual software
roles. Role 902 of FIG. 9 comprises a combination of software
bundles and units. The software units 904, 906, 908 each comprise
multiple software installation packages. One example of such
software installation packages that may be contained within units
904, 906, 908 includes software bundles for the Linux OS, such as
Redhat package manager (RPM) files. Such packages would be saved in
a file having a name using the extension RPM, such as
file_x.rpm.
[0050] Several units, such as units 904, 906, make up a bundle,
910. In addition, a bundle 912 may be made up of a combination of
units, such as unit 908, and other bundles, such as bundle 910.
These bundles are then combined into a role, such as role 902. This
role 902 is stored as a list of packages, such as RPMs, to be
installed on a device, and the order in which those packages are to
be installed. These roles may, therefore, be used to rebuild a
machine automatically, should a critical failure occur. Also, the
role 902 illustrated in FIG. 9 may comprise a customer role
package, such as the package 400 illustrated in FIG. 4, which
contains three roles: the application role 402, the customer code
role 404, and the OS role 406.
[0051] FIG. 10 illustrates the same relationships shown in FIG. 9
in the form of an entity relationship diagram. In FIG. 10, roles
entities 1002 are related to units entities 1004 and packages
entities 1006. These three groups of entities are related by way of
two relationship tables 1008, 1010. The roles entities 1002
represent a role, such as role 902 of FIG. 9, or a group of roles.
These roles entities 1002 are made up of multiple units entities
1004, which represent units, such as units 904, 906, 908 of FIG. 9.
This is illustrated by the one-to-many relationship between the
units entities 1004 and the relationship table 1008, which is
related in a one-to-many relationship with the relationship table
1010. This relationship table 1010 is related to the roles entities
1002 in a many-to-one relationship. Thus, the roles represented by
the roles entities 1002 may be made up of multiple units, which are
represented by the units entities 1004. Additionally, the units
represented by the units entities 1004 may be made up of multiple
packages, such as the RPMs discussed above. These packages are
represented by the packages entities 1006, which are related in a
one-to-many relationship with the relationship table 1008 which is
in turn related to the units entities 1004 in a many-to-one
relationship. The packages 1006 are illustrated as having a
one-to-many relationship with other packages, which indicates that
any single package may contain multiple packages.
[0052] The relationship diagram illustrated in FIG. 10 is a
particularly useful way to illustrate the relationship between the
various components of a data model. As can be seen, much
information can be gleaned from the entity relationship diagram of
FIG. 10, and less space is required to express the same idea
illustrated in FIG. 9. The entity relationship diagram also allows
for convenient access to each aspect of the database being modeled
for quick, accurate, and repeatable configuration of that
database.
[0053] An entity relationship diagram of the data model according
to one embodiment of the present invention is illustrated in FIG.
11. In FIG. 11, the data model 1100 is represented as having
multiple entities related to one another. Each of these entities
illustrated in FIG. 11 represents a group of entities and therefore
FIG. 11 represents the data model on a macro level only. Each of
the entities represented in the data model 1100 of FIG. 11 is
broken into its components, and illustrated in more detail in
subsequent figures, which are denoted in FIG. 11.
[0054] The data model 1100 in FIG. 11 relates the following
entities: software 1102, configuration 1104, monitoring 1106,
hardware 1108, DNS 1110, network 1112, and queues 1114. The
software entities 1102 represent various software packages to be
installed in devices, applications, and operating system software
of the various network devices. The software entities 1102 are
directly related to the configuration entities 1104, the hardware
entities 1108, and the network entities 1112. As shown in FIG. 11,
the software entities 1102 have an optional many-to-one
relationship with the hardware entities 1108, and shares a
combination of many-to-one and one-to-many relationships with both
the configuration entities 1104 and the network entities 1112.
[0055] As described above, the configuration entities 1104 are
related to the software entities 1102 with a many-to-one and
one-to-many relationship, and similarly share a many-to-one and
one-to-many relationships with the hardware entities 1108.
Additionally, the configuration entities are related to the
monitoring entities 1106 in a one-to-many relationship. The
configuration entities 1104 relate to both the DNS entities 1110
and the network entities 1112 in a many-to-one relationship. The
relationship with the DNS entities 1110 is optional, as indicated
by the broken line connecting the configuration entities 1104 and
the DNS entities 1110. These configuration entities 1104 represent
the configuration of various network addresses, software packages,
and device addresses.
[0056] The monitoring entities 1106 are related to the
configuration entities 1104 as described above, and to the hardware
entities 1108 in many-to-one relationships. The monitoring entities
1106 monitor the status and condition of entities within the
configuration entities group 1104 and the hardware entities group
1108.
[0057] The hardware entities 1108 represent multiple hardware
devices in communication with a network. These entities are related
to the software entities 1102 in an optional one-to-many
relationship, and as described above to the monitoring entities
1106 in a one-to-many relationship. Additionally, as described
above, the hardware entities 1108 are related in both a many-to-one
and one-to-many relationship with the configuration entities
1104.
[0058] The DNS entities 1110 represent all DNS transfers, queries,
entries, configurations, and posts. They are optionally related to
the configuration entities 1104 in a one-to-many relationship, and
to the network entities 1112 in an optional many-to-one
relationship.
[0059] The network entities 1112 are related to the software
entities 1102 in a combination of many-to-one and one-to-many
relationships, and to the configuration entities 1104 in a
one-to-many relationship. Additionally, the network entities 1112
are optionally related to the DNS entities 1110 in a one-to-many
relationship.
[0060] A group of entities called the queues entities 1114 are also
illustrated in the database model 1100 of FIG. 11. However, the
queues entities are not illustrated as having a direct relationship
with any of the other entities of this model 1100. A relationship
between the queues entities 1114 and the other entities within the
data model 1100 is created by either business logic contained
outside of the data model, or by intelligent agents, such as the
agents 304A, 304B, 304C illustrated in FIG. 3. This type of
relationship will be described hereinafter with greater detail.
[0061] FIGS. 12-18 illustrate in greater detail the entities of the
data model 1100 illustrated in FIG. 11. In each of these figures,
multiple entities that make up the entities represented in FIG. 11,
will be shown as entity relationship diagrams. In this type of
diagram, the one-to-many or many-to-one relationships between the
entities will be illustrated in the same manner as in FIG. 11.
Optional relationships will be illustrated by way of broken lines.
Connections to entities within other groups of entities (i.e.
written other entities of the data model 1100 in FIG. 11), will be
indicated by lines at the edge of the page with a designation
indicating the figure upon which those relationships are
continued.
[0062] Each of the entities contained within FIGS. 12-18 have a set
of variables associated with them, specific values of which
characterize instances of each of the entities and their
functionalities. These variables will be described hereinafter in
tables. In these tables identifying variables associated with each
entity, a variable name, variable definition, variable type, and an
indication regarding whether the variable is required by the entity
or optional to the entity will be given. Those skilled in the art
will appreciate that the reference herein to "required" or
"optional" with respect to the individual variables in each table
is purely exemplary and that, in other exemplary embodiments which
are not explicitly described herein, the status of these variables
as "required" or "optional" may change. Additionally, an indication
of the primary key of each entity of each variable set will be
given by an asterisk immediately following the variable name. In
some cases, multiple primary keys will be indicated. Generally, the
primary key of a particular entity must be contained within each of
the entities to which that entity relates and is the main variable
associated with the entity. When the primary key of an entity is
contained within another entity to which the first entity relates,
it acts as a type of pointer, referring to the first entity.
[0063] Software 1102
[0064] In FIG. 12, a detailed entity relationship diagram of the
software entities 1102 is illustrated. Each of the entities within
this diagram interrelate and are characterized by variable sets
which provide enough specificity to accurately characterize the
software portion of the network that the model is intended to
capture. At the same time, however, these entities and their
respective variables are sufficiently generic to readily permit the
addition of, e.g., new software packages, without requiring the
rewriting of software code which relies upon the model and the
database implementation thereof.
[0065] Units Entities 1202
[0066] The units entities 1202 represent the software units
described in connection with FIG. 10. The variable set associated
with the units entities 1202 is set forth below in Table 1.
1TABLE 1 VARIABLE SET OF UNITS ENTITIES 1202 VARIABLE VARIABLE
REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL UNIT_ID* Unit
identification Number R number ACCT_ID Account identification
Number R number PLATFORM_ID Platform identification Number O number
UNIT_NAME Unit name Character R UNIT_TYPE Unit type Character R
UNIT_VERSION Unit version Number R UNIT_DESC Unit description
Character O UNIT_LOC Unit location Character R CREATED_BY Created
by Character R CREATE_DT Create date Date R MODIFIED_BY Modified by
Character O MODIFIED_DATE Date modified Date O INSTALL_FLAGS
Installation flags Character O REMOVE_FLAGS Remove flags Character
O
[0067] The units entities 1202 relate to unit monitor types
entities 1204, unit contents entities 406, application role units
1208, unit packages entities 1212, account role units entities
1214, device pool role units entities 1216 and one-to-many
relationships. The one-to-many relationship between the units
entities 1202 and the unit conflicts entities 1206 includes dual
one-to-many relationships. Also, the units entities 1202 may be
related by the many-to-one relationship 1238 illustrated in FIG. 12
with entities within the network entities 1112 which is illustrated
in detail in FIG. 17. Specifically, the units entities 1202 is
related by this many-to-one relationship with the accounts entities
1702 of FIG. 17. An optional many-to-one relationship may exist
between units entities 1202 and the platforms entities 1210.
[0068] Unit Monitor Types Entities 1204
[0069] The unit monitor types entities 1204 indicate the type of
monitoring associated with the units related to the unit entities
1202. The variable set associated with the unit monitor types
entities 1204 is set forth below in Table 2.
2TABLE 2 VARIABLE SET OF MONITOR TYPES ENTITIES 1204 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL UNIT_ID* Unit
identification Number R number MONITOR_TYPE Monitor type Character
R MONITOR_NAME* Monitor name Character R START_LOC Start location
Character O STOP_LOC Stop location Character O
[0070] As mentioned above, the unit monitor types entities 1204
relates to the units entities 1202 in a many-to-one
relationship.
[0071] Unit Conflicts Entities 1206
[0072] The unit conflicts entities 1206 are used to identify any
potential conflicts between units related to the units entities
1202. The variable set associated with the unit conflicts entities
1206 is set forth below in Table 3.
3TABLE 3 VARIABLE SET OF UNIT CONFLICTS ENTITIES 1206 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL UNIT_ID Unit
identification Number R number CON- Conflicting unit Number R
FLICTING_UNIT_ID identification number CONFLICT_DESC Conflict
Character O description
[0073] As previously mentioned, the unit conflicts entities 1206
relate to the units entities 1202 in dual many-to-one
relationships.
[0074] Application Role Units Entities 1208
[0075] The application role units entities 1208 relate application
roles entities 1236 with units entities 1202, much in the same
manner that roles are related to units in the relationships
described in connection with FIG. 10. The variable set associated
with the application role units entities 1208 is set forth below in
Table 4.
4TABLE 4 VARIABLE SET OF APPLICATION ROLE UNITS ENTITIES 1208
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
APP_ROLE_ID* Application role Number R identification number
UNIT_ID* Unit identification Number R number INSTALL_ORDER
Installation order Number R DATE_CREATED Date control Date O
CREATED_BY Created by Character O
[0076] The application role units entities 1208 relate to the units
entities 1202 in a many-to-one relationship, as discussed above.
Additionally, the application role units entities 1208 relate to
the application roles entities 1236 in a many-to-one
relationship.
[0077] Platforms Entities 1210
[0078] Platforms entities 1210 indicate the platforms of the
various computer devices connected to the network, upon which the
units, packages, and roles run. The variable set associated with
the platforms entities 1210 is set forth below in Table 5.
5TABLE 5 VARIABLE SET OF PLATFORMS ENTITIES 1210 VARIABLE VARIABLE
REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL PLATFORM_ID* Platform
identi- Number R fication number PLATFORM_NAME Platform name
Character R PLATFORM-DESC Platform description Character O
[0079] The platforms entities 1210 may have multiple optional
one-to-many relationships with other entities illustrated in FIG.
12. These entities with which the platforms entities 1210 may be
related in an optional one-to-many relationship include the units
entities 1202, as previously discussed, the account roles entities
1224, and the application roles entities 1236. Additionally, the
platforms entities 1210 relates in a many-to-one fashion with the
device pool roles entities 1218 and the packages entities 1220.
[0080] Unit Packages Entities 1212
[0081] The unit packages entities 1212 serve to relate the units
represented by the units entities 1202 with the packages
represented by the packages entities 1220, in much the same manner
as described in connection with FIG. 10. The variable set
associated with the unit packages entities 1212 is set forth below
in Table 6.
6TABLE 6 VARIABLE SET OF UNIT PACKAGES ENTITIES 1212 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL PKG_ID*
Package identification Number R number UNIT_ID* Unit identification
Number R number INSTALL_ORDER Installation order Number R
EFF_BEG_DT* Effective beginning Date R date EFF_END_DT Effective
ending date Date O
[0082] The unit package entities 1212 have many-to-one
relationships with the units entities 1202, as previously
discussed, and the packages entities 1220.
[0083] Account Role Units Entities 1214
[0084] Account role units entities 1214 are used in relating the
units represented by the units entities 1202 with the account roles
of the account roles entities 1224 in a similar manner as described
in FIG. 10 using relational tables. The variable set associated
with the account role units entities 1214 is set forth below in
Table 7.
7TABLE 7 VARIABLE SET OF ACCOUNT ROLE UNITS ENTITIES 1214 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL ACCT_ROLE_ID*
Account role Number R identification number UNIT_ID* Unit Number R
identification number INSTALL_ORDER Installation order Number R
DATE-CREATED Date created Date R CREATED_BY Created by Character
R
[0085] The account role units entities 1214 have many-to-one
relationships with the unit entities 1202, as previously indicated,
and the account roles entities 1224.
[0086] Device Pool Role Units Entities 1216
[0087] The device pool role units entities 1216 serve to relate
devices contained in device pools, which are associated with the
device pool roles entities 1218, with the various software units
associated with the units entities 1202 that are necessary to
properly configure the devices. The variable set associated with
the device pool role units entities 1216 is set forth below in
Table 8.
8TABLE 8 VARIABLE SET OF DEVICE POOL ROLE UNITS ENTITIES 1216
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DEVICE_POOL_ID* Device pool identi- Number R fication number
UNIT_ID* Unit identification Number R number INSTALL_ORDER
Installation order Number R DATE-CREATED Date created Date O
CREATED_BY Created by Character O
[0088] The device pool role units 1216 have many-to-one
relationships with the units entities 1202, as previously
indicated, and the device pool roles entities 1218.
[0089] Device Pool Roles Entities 1218
[0090] Device pool poles entities 1218 relate the device pool
packages, the device roles, and the platforms of the various
devices with the device pool role units associated with the device
pool role units entities 1216. The variable set associated with the
device pool roles entities 1218 is set forth below in Table 9.
These variables relate to the device pool role, or the software
associated with a particular device pool. Thus, the variable
STATUS, indicated below in Table 9, may indicate the status of a
device role.
9TABLE 9 VARIABLE SET OF DEVICE POOL ROLES ENTITIES 1218 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DEVICE_POOL-ID* Device pool Number R identification number
PLATFORM_ID Platform Number R identification number
DEVICE_POOL_NAME Device pool Character R name STATUS Device pool
Character R role status DEVICE_POOL_DESC Device pool Character O
description DEVICE_POOL_ROLE.sub.-- Device pool Number R VERSION
role version EFF_BEG_DT Effective Date R beginning date CREATED_BY
Created by Character R CREATE_DT Date created Date R VISIBLE
Visibility Character O
[0091] The device pool roles entities 1218 are related to the
device pool role units entities 1216 in a one-to-many relationship
as previously discussed. Also, the device pool roles entities 1218
are related to the platforms entities 1210 in a many-to-one
relationship, as previously discussed. In addition to these
relationships, the device pool roles entities 1218 are related to
the device roles entities 1226, and the device pool packages
entities 1234 in one-to-many relationships.
[0092] Packages Entities 1220
[0093] The packages entities 1220 represent the various software
packages, such as those described in connection with FIG. 10. The
variable set associated with the packages entities 1220 is set
forth below in Table 10.
10TABLE 10 VARIABLE SET OF PACKAGES ENTITIES 1220 VARIABLE VARIABLE
REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL PKG_ID* Package
identification Number R number PLATFORM_ID Platform identification
Number R number ACCT_ID Account identification Number R number
PKG_NAME Package name Character R PKG_TYPE Package type Character R
PKG_VERSION Package version Number R PKG_DESC Package description
Character O EFF_BEG_DT Effective beginning date Date R CREATED_BY
Created by Character R CREATE_DT Date created Date R
[0094] The packages entities 1220 are related to the platforms
entities 1210 in a many-to-one relationship, and the unit packages
entities 1212 in a one-to-many relationship, as discussed above.
Additionally, the packages entities 1220 is related to the account
packages of entities 1222, the included packages entities 1230, the
application packages entities 1232, and the device pool packages
1234 in one-to-many relationships. The relationship between the
packages entities 1220 and the included packages entities 1230 is a
dual one-to-many relationship. Also, the packages entities 1220 are
related by way of the many-to-one relationship 1240 to an entity
within the network entities 1112 shown in FIG. 17. Specifically,
the packages entities 1220 relates to the accounts entities 1702 of
FIG. 17 by way of a many-to-one relationship 1214.
[0095] Account Packages Entities 1222
[0096] The account packages entities 1222 serves to relate the
packages entities 1220 with the account roles entities 1224, in a
manner similar to the manner in which packages are related to roles
in FIG. 10. The variable set associated with the account packages
entities 1222 is set forth below in Table 11.
11TABLE 11 VARIABLE SET OF ACCOUNT PACKAGES ENTITIES 1222 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL ACCT_ROLE_ID*
Account role Number R identification number PKG_ID* Package
identification Number R number INSTALL_ORDER Installation order
Number R EFF_BEG_DT* Effective Date R beginning date EFF_END_DT
Effective ending date Date O
[0097] The account packages entities 1222 relate to the packages
entities 1220 as previously described, and the account roles
entities 1224 in many-to-one relationships.
[0098] Account Roles Entities 1224
[0099] The account roles entities 1224 represent the various
software roles associated with particular customer accounts. The
variable set associated with the account roles entities 1224 is set
forth below in Table 12. These variables relate to the account
roles, or software packages for each account. For example, the
STATUS variable may indicate the status of an account role as
active, inactive, deprecated, experimental, and so forth.
12TABLE 12 VARIABLE SET OF ACCOUNT ROLES ENTITIES 1224 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL ACCT_ROLE_ID*
Account role Number R identification number ACCT_ID Account Number
R identification number ACCT_ROLE_NAME Account role Character R
name STATUS Account role Character R status ACCT_ROLE_VERSION
Account role Number R version ACCT_ROLE_DESC Account role Character
O description EFF_BEG_DT Effective Date R beginning date CREATED_BY
Created by Character R CREATE_DT Date created Date R PLATFORM_ID
Platform Number O identification number
[0100] As previously mentioned, the account roles entities 1224
relates in one-to-many relationships with the account role units
entities 1214 and the account packages entities 1222. Also, as
previously described, the account roles entities 1224 may
optionally relate to the platforms entities 1210 in a many-to-one
relationship. The account roles entities 1224 may also optionally
relate to the device roles entities 1226 in a one-to-many
relationship. The account roles entities 1224 may also relate, by
way of a many-to-one relationship 1242, to an entity within the
network entities 1112 illustrated in FIG. 17. Specifically, the
account roles entities 1224 relates to the account entities 1702
illustrated in FIG. 17 by way of a many-to-one relationship
1242.
[0101] Device Roles Entities 1226
[0102] The device roles entities 1226 represent the various
software roles associated with each device connected to the
network. The variable set associated with the device roles entities
1226 is set forth below in Table 13.
13TABLE 13 VARIABLE SET OF DEVICE ROLES ENTITIES 1226 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID Device
identi- Number O fication number DVC_ROLE_ID* Device role Number R
identification number CUST_TIER_ID Customer tier Number O
identification number DEVICE_POOL_ID Device pool Number R
identification number ACCT_ROLE_ID Account role Number O
identification number APP_ROLE_ID Application role Number O
identification number DVC_ROLE_NAME Device role name Character R
STATUS Device role status Character R EFF_BEG_DT Effective
beginning Date R date CREATED_BY Created by Character R CREATE_DT
Date created Date R
[0103] As mentioned before, the device roles entities 1226 relate
to the device pool roles entities 1218, and optionally to the
account roles entities 1224 in many-to-one relationships. The
device roles entities also has optional many-to-one relationships
with the application roles entities 1236, the customer tiers
entities 1708 of FIG. 17 by way of relationship 1246, and the
devices entities 1512 of FIG. 15 by way of relationship 1248. The
device roles entities 1226 also relates in dual one-to-many and a
single many-to-one relationship with elements of the configuration
entities 1104 illustrated in FIG. 13. Specifically, the device
roles entities 1226 relate to the device role configuration
entities 1320 of FIG. 13 and the device role IP host entities 1308
of FIG. 13 in one-to-many relationships 1256, 1260, respectively.
The device roles entities 1226 also relates to the status entities
1322 of FIG. 13 by a many-to-one relationship 1258.
[0104] Dependent Roles Entities 1228
[0105] The dependent roles entities 1228 relate to the application
roles represented by the application roles entities 1236. The
dependent roles entities 1228 serve to identify various application
roles that are dependent upon other roles, and to describe this
dependency. The variable set associated with the dependent roles
entities 1228 is set forth below in Table 14.
14TABLE 14 VARIABLE SET OF DEPENDENT ROLES ENTITIES 1228 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL APP_ROLE_ID
Application role Number R identification number
DEPENDENT_UPON.sub.-- Dependent upon Number R ROLE_ID role number
DEPENDENCY_DESC Description of Character R dependency
[0106] The dependent roles entities relate in dual many-to-one
relationships with the application roles entities 1236.
[0107] Included Packages Entities 1230
[0108] The included packages entities 1230 is related to the
packages entities 1220 and identifies packages that are included
within a particular installation package, and the order in which it
is to be installed. The variable set associated with the included
packages entities 1230 is set forth below in Table 15.
15TABLE 15 VARIABLE SET OF INCLUDED PACKAGES ENTITIES 1230 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL PKG_ID*
Package identi- Number R fication number INCLUDED_PKG_ID* Included
package Number R identification number INSTALL_ORDER Installation
order Number R EFF_BEG_DT Effective Date R beginning date
EFF_END_DT Effective Date O ending date
[0109] The included packages 1230 are related to the packages
entities 1220 in dual many-to-one relationships, as described
above.
[0110] Application Packages Entities 1232
[0111] The application packages entities 1232 relates the packages
represented by the packages entities 1220 and the application roles
represented by the application roles entities 1236. The
relationship of the roles in packages is similar to the manner in
which the roles in packages are related in FIG. 10. The variable
set associated with the application packages entities 1232 is set
forth below in Table 16.
16TABLE 16 VARIABLE SET OF APPLICATION PACKAGES ENTITIES 1232
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
APP_ROLE_ID* Application role Number R identification number
PKG_ID* Package identification Number R number INSTALL_ORDER
Installation order Number R EFF_BEG_DT Effective Date R beginning
date EFF_END_DT Effective Date O ending date
[0112] The application packages entities 1232 relate to the
packages entities 1220 as previously described, and the application
roles entities 1236 in many-to-one relationships.
[0113] Device Pool Packages Entities 1234
[0114] The device pool packages entities 1234 serve to relate the
device pool roles represented by the device pool roles entities
1218 with the packages represented by the packages entities 1220.
This occurs in a similar manner as described in connection with
FIG. 10. The variable set associated with the device pool packages
entities 1234 is set forth below in Table 17.
17TABLE 17 VARIABLE SET OF DEVICE POOL PACKAGES ENTITIES 1234
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DEVICE_POOL_ID* Device pool identi- Number R fication number
PKG_ID* Package identi- Number R fication number INSTALL_ORDER
Installation order Number R EFF_BEG_DT Effective Date R beginning
date EFF_END_DT Effective Date O ending date
[0115] The device pool packages entities 1234 relate to the
packages entities 1220 on the device pool roles entities 1218 in
many-to-one relationships, as described above.
[0116] Application Roles Entities 1236
[0117] The application roles entities 1236 represent the various
application software roles. The variable set associated with the
application roles entities 1236 is set forth below in Table 18.
These variables relate to the application role. For example, the
STATUS variable may give an indicator that an application role is
active, inactive, experimental, deprecated, supported, unsupported,
and so forth.
18TABLE 18 VARIABLE SET OF APPLICATION ROLES ENTITIES 1236 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL APP_ROLE_ID*
Application role Number R identification number ROLE_NAME Role name
Character R ROLE_DESC Role description Character R APP_ROLE_VERSION
Application role Number R version EFF_BEG_DT Effective Date R
beginning date STATUS Application role Character R status
CREATED_BY Created by Character R CREATE_DT Date created Date R
PLATFORM_ID Platform identi- Number O fication number SRVC_ID
Service identi- Number O fication number
[0118] As previously described, the application roles entities 1236
relates in a one-to-many relationship with the application role
units entities 1208, the application packages entities 1232, and
optionally the device roles entities 1226. Additionally, the
application roles entities 1236, as indicated above, relates to the
dependent roles entities 1228 in dual one-to-many relationships.
The application roles entities 1236 also optionally relates in a
many-to-one relationship with the platforms entities 1210. In
addition to these relationships previously described, the
application roles entities 1236 relates in a one-to-many
relationship 1244 with the data center tiers 1724 of FIG. 7. The
application roles entities 1236 also relates in a one-to-many
relationship 1254 with the role configurations entities 1316 of
FIG. 13. The application roles entities 1236 also relates to the
status entities 1322 of FIG. 13, and optionally to the services
entities 1314 of FIG. 13 by way of many-to-one relationships 1252,
1250, respectively.
[0119] Multiple entities within the software entities 1102 relate
to entities illustrated in various other figures. For example, the
relationships 1238, 1240, 1242, 1244, 1246 relate to various
entities within the network entities 1112, which is illustrated in
FIG. 17. These relationships have been labeled in FIG. 17 to
indicate the direct relationship between entities of the software
entities 1102 in FIG. 12 and the network entities 1112 in FIG. 17.
Additionally, an optional relationship 1248 with the hardware
entities 1108, which is illustrated in FIG. 15, is also indicated.
Further, the relationships 1250, 1252, 1254, 1256, 1258 relate to
entities within the configuration entities 1104, which is
illustrated in FIG. 13.
[0120] CONFIGURATION 1104
[0121] The entities of the configuration entities 1104 are
illustrated in FIG. 13. These configuration entities 1104 represent
various configuration information relating to software, hardware,
the network, and the like. Those entities which are not illustrated
as having a direct relationship with any of the other entities are
used by business logic, or intelligent agents, for various
purposes. Like the software entities from FIG. 12, each of the
entities within this diagram interrelate and are characterized by
variable sets which provide enough specificity to accurately
characterize the software portion of the network that the model is
intended to capture. At the same time, however, these entities and
their respective variables are sufficiently generic to readily
permit the addition of, e.g., new configurations, without requiring
the rewriting of software code which uses the model and the
database implementation thereof.
[0122] Manufacturing Model Entities 1302
[0123] The manufacturing model entities 1302 is used to identify a
manufacturing model identification number, manufacturing name,
model name, and manufacturing model description. For example, if a
Sun Spore 5 server is used by the present invention, the
manufacturer name would be Sun, and the model name would be Spore
5. The description could be any indication that it is a server. The
variable set associated with the manufacturing model entities 1302
is set forth below in Table 19.
19TABLE 19 VARIABLE SET OF MANUFACTURING MODEL ENTITIES 1302
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
MFG_MODEL_ID* Manufacturing Number R model identi- fication number
MFG Manufacturing Character R name MODEL Model name Character R
MFG_MODEL_DESC Manufacturing Character O model description
[0124] The manufacturing model entities 1302 does not directly
relate to any of the other entities illustrated in FIG. 13. This
group of entities 1302 is used by business logic associated with
the present invention to determine manufacturer name, model name,
and manufacturer description for each of the devices used on the
network associated with the present invention.
[0125] Component Objects Entities 1304
[0126] The component objects entities 1304 provide an indication of
what table a particular value is stored in. For example, a location
of the table in which values relating to the specific hardware or
software object may be obtained by way of the component object
entities 1304. The variable set associated with the component
objects entities 1304 is set forth below in Table 20.
20TABLE 20 VARIABLE SET OF COMPONENT OBJECTS ENTITIES 1304 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL TABLE_NAME*
Table name Character R ID_NAME Identification Character R name
SEQUENCE_NAME Sequence name Character O FATHER_ID_NAME Father
identi- Character O fication name AUTOGENERATE_ID Autogenerate
Character R identification
[0127] The component objects entities 1304 does not directly relate
to any of the entities illustrated in FIG. 13. This group of
entities 1304 is used by business logic associated with the present
invention to determine which tables should be used to look up
values relating to specific objects on the network associated with
the present invention. The objects whose values may be found by way
of the component objects entities 1304 may be hardware objects or
software objects.
[0128] Conduits Entities 1306
[0129] The conduits entities 1306 relate to the devices of the
network associated with the present invention. These conduits
entities 1306 relate to conduits by which information may be passed
through a firewall. In essence, the conduits through a firewall
constitute holes through a firewall by which devices may
communicate from outside of the firewall to devices contained
within the firewall. Thus, the conduits entities 1306 define the
source and destination addresses that involved in communications
across the firewall. The present invention also maintains a
history, which records all of the traffic across the firewall. The
variable set associated with the conduits entities 1306 is set
forth below in Table 21.
21TABLE 21 VARIABLE SET OF CONDUITS ENTITIES 1306 VARIABLE VARIABLE
REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID* Device
identification Number R number SOURCE* Source Character R
DESTINATION* Destination Character R PORT Port Number O PROTOCOL
Protocol Character R CONDUIT_DESC Conduit description Character
O
[0130] The conduits entities 1306 relate to the devices entities
1512 of FIG. 15 in a many-to-one relationship 1332.
[0131] Device Role IP Host Entities 1308
[0132] The device role IP host entities 1308 act a place holder for
the various devices of the network, and allow IP addresses to be
assigned without having a specific device connected to the network.
The IP addresses of the devices used on the network associated with
the present invention may be of a physical type or a logical type.
This means that the IP address may physically relate to the
specific device connected to the network, or may be a logical IP
address, which does not correspond to the actual physical IP
address, but relates the same device. The variable set associated
with the device role IP host entities 1308 is set forth below in
Table 22.
22TABLE 22 VARIABLE SET OF DEVICE ROLE IP HOST ENTITIES 1308
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DVC_ROLE_ID Device role identifi- Number R cation number
IP_ADDRESS* IP address Character R INTERFACE.sub.-- Interface slot
Character O SLOT INTERFACE_IP.sub.-- Interface IP type Character R
TYPE HOST_NAME Host name Character O DNS_HOST-ID DNS Host
identifica- Number O tion number EFF_END_DT Effective ending date
Date O EFF_BEG_DT Effective beginning Date R date
[0133] The device role IP host entities 1308 relates to the
interface IP type entities 1310 in a many-to-one relationship.
Also, as previously discussed, the device role IP host entities
1308 relates to the device roles entities 1226 of FIG. 12 in a
many-to-one relationship 1260. The device role IP host also relates
in a many-to-one relationship 1340 to the IP addresses entities
1730 of FIG. 17. The device role IP host entities 1308 may
optionally relate to the DNS hosts entities 1604 of FIG. 16 in a
many-to-one relationship 1336.
[0134] Interface IP Type Entities 1310
[0135] The interface IP type entities 1310 indicate the type of
interface associated with each IP address. The variable set
associated with the interface IP type entities 1310 is set forth
below in Table 23.
23TABLE 23 VARIABLE SET OF INTERFACE IP TYPE ENTITIES 1310 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
INTERFACE_IP.sub.-- Interface IP type Character R TYPE*
INTERFACE_IP.sub.-- Interface IP type Character R TYPE-DESC
description
[0136] The interface IP type entities 1310 is related to the device
role IP host entities 1308 in a one-to-many relationship.
[0137] Virtual IPs Entities 1312
[0138] The virtual IPs entities 1312 relate to virtual IP
addresses, which allow for virtual IP addressing, and allow for
multiple machines to have the same IP address, or group of
addresses mapped to them by way of a load balancer. A variable
called STICKY may be set to require that each time a specific
device accesses an IP address it is mapped to the same server by
the load balancer. This "sticky" routing allows cookies to be used
that were placed on the device by that server. The variable set
associated with the virtual IPs entities 1312 is set forth below in
Table 24.
24TABLE 24 VARIABLE SET OF VIRTUAL IPS ENTITIES 1312 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID Device
identification Number R number IP_ADDRESS* IP address Character R
STICKY Sticky routing Character R ALGORITHM.sub.-- Algorithm type
Character O TYPE
[0139] The virtual IPs entities 1312 relates to the VIP groups
entities 1424 of FIG. 14 in a one-to-many relationship 1328, the
devices entities 1512 of FIG. 15 in a many-to-one relationship
1330, and to the IP addresses entities 1730 of FIG. 17 in a
many-to-one relationship 1338.
[0140] Services Entities 1314
[0141] The services entities 1314 relate application roles to
services for the convenience of users and network customers. This
allows a customer to view and configure application roles in terms
of services offered, which is a useful quality to customers. The
variable set associated with the services entities 1314 is set
forth below in Table 25.
25TABLE 25 VARIABLE SET OF SERVICES ENTITIES 1314 VARIABLE VARIABLE
REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL SRVC_ID* Service
identification num- Number R ber SRVC_NAME Service name Character R
SRVC_DESC Service description Character O
[0142] The services entities 1314 may optionally relate to the
application roles entities 1236 of FIG. 12 in a one-to-many
relationship 1250, as discussed above.
[0143] Role Configurations Entities 1316
[0144] The role configurations entities 1316 relate to the actual
configurations of software roles. These role configuration
associated with the configurations entities 1316 may include such
information as the types of components to be used, such as specific
memory types, CPU types, video card types. Also, the quantity of
components to be used may be indicated, along with the component
size and type. For example, if an Intel processor is used as a CPU,
the quantity may be designated as two or three, and so on depending
upon the number of the processor occupied by a particular customer.
The component size associated with such a CPU would be expressed in
megahertz, indicating the processing scheme. The configuration type
would be expressed in a brand name, or perhaps a minimum
specification requirement. The variable set associated with the
role configurations entities 1316 is set forth below in Table
26.
26TABLE 26 VARIABLE SET OF ROLE CONFIGURATIONS ENTITIES 1316
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
APP_ROLE_ID* Application role iden- Number R tification number
COMPNT_TYPE* Component type Character R QUANTITY Quantity Number R
COMPNT_SIZE Component size Character O CONFIG_TYPE Configuration
type Character R
[0145] The role configuration entities 1316 relate to the component
type entities 1324 in a many-to-one relationship, and, as
previously discussed, the application roles entities 1236 of FIG.
12 in a many-to-one relationship 1254.
[0146] Device Roles History Entities 1318
[0147] The device roles history entities 1318 is a history of all
roles executed by a particular device. That is, the history of all
software that has ever been employed by a specific device is
indicated in the device roles history entities 1318. Thus, many of
the entries within the device roles history entries 1318 are
similar to those of the device roles entities 1226. The variable
set associated with the device roles history entities 1318 is set
forth below in Table 27.
27TABLE 27 VARIABLE SET OF DEVICE ROLES HISTORY ENTITIES 1318
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DVC_ROLE_ID Device role identifica- Number O tion number
CUST_TIER_ID Customer tier identifi- Number O cation number
DEVICE_POOL.sub.-- Device pool identifica- Number O ID tion number
ACCT_ROLE_ID Account role identifi- Number O cation number
APP_ROLE_ID Application role iden- Number O tification number
DVC_ROLE.sub.-- Device role profile Number O PROFILE_ID
identification number DVC_ROLE.sub.-- Device role name Character O
NAME DVC_ROLE.sub.-- Device role beginning Date R BEG_DT date
DVC_ROLE.sub.-- Device role ending Date R END_DT date
[0148] The device roles history entities 1318 cannot relate
directly to any other entities illustrated on FIG. 13. The
information contained within these entities 1318 is used by
business logic associated with the present invention. The type of
operation that may be performed by business logic using the device
roles history entities 1318 may include, for example, a software
rollback when software contained on a particular device has
failed.
[0149] Device Role Configuration Entities 1320
[0150] The device role configuration entities 1320 relate to the
configuration of various software roles. These device role
configuration entities 1320 are a way in which generic name-value
pairs may be defined, which are associated with device roles of the
present invention. One instance in which this might be used is if a
particular device has four processors, but a particular customer is
only paid to use two processors of that server, a name-value pair
may be used to indicate these specific device role configurations.
Thus, a generic keyname may be generated associated with the two
processors that have been paid for by a customer. The values
associated with the name-value pair for which the name is expressed
in the device role configuration entities 1320 is expressed within
the device role configuration values entities 1326. The variable
set associated with the device role configuration entities 1320 is
set forth below in Table 28.
28TABLE 28 VARIABLE SET OF DEVICE ROLE CONFIGURATION ENTITIES 1320
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DVC_ROLE_ID Device role identifica- Number R tion number KEY_NAME
Key name Character R DVC_ROLE.sub.-- Device role configur- Number R
CONFIG_ID* ation identification number
[0151] The device role configuration entities 1320 is related to a
device role configuration values entities 1326 in a one-to-many
relationship, and to the device roles entities 1226 of FIG. 12 in a
many-to-one relationship 1256.
[0152] Status Entities 1322
[0153] The status entities 1322 provide status reports regarding
various software and hardware configurations. The variable set of
the status entities 1322 is set forth below in Table 29.
29TABLE 29 VARIABLE SET OF STATUS ENTITIES 1322 VARIABLE VARIABLE
REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL STATUS* Status
Character R STATUS_DESC Status description Character R
[0154] The status entities 1322 relate to the application roles
entities 1236, and the device roles entities 1226, both of FIG. 12,
in one-to-many relationships 1252, 1258, respectively. Also, the
status entities 1322 relate to the devices entities 1512 of FIG. 15
in a one-to-many relationship 1324.
[0155] Component Type Entities 1324
[0156] The component type entities 1324 is related to the various
types of components associated with the devices of the network. The
variable set associated with the component type entities 1324 is
set forth below in Table 30.
30TABLE 30 VARIABLE SET OF COMPONENT TYPE ENTITIES 1324 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL COMPNT_TYPE*
Component type Character R COMPNT_TYPE.sub.-- Component type de-
Character R DESC scription
[0157] The component type entities 1324 relate to the role
configurations entities 1316 in a one-to-many relationship.
[0158] Device Role Configuration Values Entities 1326
[0159] The device role configuration values entities 1326 relate to
values associated with the role configurations, which are
represented by the device role configuration entities 1320. The
device role configuration values 1326 are the value portion of the
main-value pair associated with the device roles, for which the
names are expressed within the device role configuration entities
1320, as previously described. The variable set associated with the
device role configuration values entities 1326 is set forth below
in Table 31.
31TABLE 31 VARIABLE SET OF DEVICE ROLE CONFIGURATION VALUES
ENTITIES 1326 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE
OPTIONAL DVC_ROLE.sub.-- Device role configura- Number R CONFIG_ID*
tion identification number CONFIG_VALUE Configuration value
Character R TEXT_ORDER* Text order Number R
[0160] The device role configuration values entities 1326 relate to
the device role configuration entities 1320 in a many-to-one
relationship.
[0161] As discussed in connection with FIG. 12, the various
entities within the configuration entities 1104 of FIG. 13 are
related to entities within the software entities 1102 of FIG. 12.
The relationships 1250, 1252, 1254, 1256, 1258, 1260 are indicated
as continuing on FIG. 12. Additionally, relationship 1328 is
continued on FIG. 14, relationships 1330, 1332, 1334 are continued
on FIG. 15, optional relationship 1336 may be continued on FIG. 16,
and relationships 1338, 1340 are continued on FIG. 17. Each of
these relationships is designated with the same numeral in the
figure in which it continues, and illustrates the entity with which
it relates directly.
[0162] Monitoring 1106
[0163] The entities of the monitoring entities 1106 are illustrated
in FIG. 14 and an entity relationship diagram form. These entities
relate to components that maintain the network and various hardware
and software components of the networks, as well as configuration
information. As with the aforementioned entities, the monitoring
entities are described in terms of specific interrelations and are
characterized by variable sets which provide enough specificity to
accurately characterize the software portion of the network that
the model is intended to capture. At the same time, however, these
entities and their respective variables are sufficiently generic to
readily permit the addition of, e.g., new monitoring functions,
without requiring the rewriting of software code which relies upon
the model and the database implementation thereof.
[0164] Autonomous System Map Entities 1402
[0165] The autonomous system map entities are used to create an
autonomous system map of the entire system associated with the
present invention. The variable set associated with the autonomous
system map entities 1402 is set forth below in Table 32.
32TABLE 32 VARIABLE SET OF AUTONOMOUS SYSTEM MAP ENTITIES 1402
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
AS_MAP_ID* Autonomous system Number R map identification number
AS_NUM Autonomous system Number O number AS_DESCRIPTOR Autonomous
system Character O description AS_NAME Autonomous system Character
O name CREATE_DT Date created Date R CREATED_BY Created by
Character R MODIFIED_DT Date modified Date O MODIFIED_BY Modified
by Character O
[0166] The autonomous system map entities 1402 of the monitoring
entities 1106 illustrated in FIG. 14 are not directly related to
any other entities of FIG. 14. However, the information contained
within the autonomous system map entities 1402 is used by business
logic and intelligent agents network in ascertaining system map
information regarding the network of the present invention.
[0167] Device Request Classes Entities 1404
[0168] The device request classes entities 1404 are used to relate
device classes, and requests associated with those devices. The
device classes associated with the device request classes entities
may include a particular group of devices, such as load balancers,
routers, or servers. The variable set associated with the device
request classes entities 1404 is set forth below in Table 33.
33TABLE 33 VARIABLE SET OF DEVICE REQUEST CLASSES ENTITIES 1404
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DVC_ID* Device identification Number R number REQUEST.sub.--
Request class identifi- Number R CLASS_ID* cation number
POLL_FREQUEN- Poll frequency of class Number R CY
[0169] The device request classes entities 1404 are related in a
many-to-one relationship with the request class entities 1406. The
device request classes entities portion of four are related in a
many-to-one relationship 1428 with the devices entities 1512 of
FIG. 15.
[0170] Request Class Entities 1406
[0171] The request class entities 1406 may be optionally related to
request class variables entities 1408. The request class entities
1406 define suitable names for device classes used in connection
with the present invention. The variable set associated with the
request class entities 1406 is set forth below in Table 34.
34TABLE 34 VARIABLE SET OF REQUEST CLASS ENTITIES 1406 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL REQUEST.sub.--
Request class identifica- Number R CLASS_ID* tion number
REQUEST.sub.-- Request class name Character R CLASS_NAME
[0172] The request class entities 1406 may be optionally related to
the request class variables entities 1408 in a one-to-many
relationship.
[0173] Request Class Variables Entities 1408
[0174] The request class variables entities 1408 act as a
relationship table between the request class entities 1406 and the
SNMP variable entities 1420. The request class variables entities
identify all variables collected for specific request class, and
identify a foreign key to the request class table which relates the
request classes to SNMP variables within the SNMP variable entities
1420. The variable set associated with the request class variables
entities 1408 is set forth below in Table 35.
35TABLE 35 VARIABLE SET OF REQUEST VARIABLES ENTITIES 1408 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL REQUEST.sub.--
Request class variable Number R CLASS_VAR_ID* identification number
REQUEST_ Request class identifi- Number O CLASS-ID cation number
SNMP_VAR_ID SNMP variable identi- Number O fication number
[0175] The request class variables entities 1408 may be optionally
related in many-to-one relationships with the request class
entities 1406, as discussed above, and to the SNMP variables
entities 1420.
[0176] Manager Applications Entities 1410
[0177] The manager applications entities 1410 is a list of internal
applications that defines all applications allowed to communicate
with devices and access these devices, such as software
applications. The variable set associated with the manager
applications entities 1410 is set forth below in Table 36.
36TABLE 36 VARIABLE SET OF MANAGER APPLICATIONS ENTITIES 1410
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
MGR_APP_ID* Manager application Number R identification number
APP_NAME Application name Character R CREATE_DT Dated created Date
R MODIFIED_DT Date modified Date O MODIFIED_BY Modified by
Character O
[0178] The manager applications entities 1410 are related to the
monitor ACLs entities 1412 and the device application configuration
entities 1414.
[0179] Monitor ACLs Entities 1412
[0180] The monitor ACLs entities 1412 allows for monitoring of
access control list (ACLs) associated with devices of the present
invention. The variable set associated with the monitor ACLs
entities 1412 is set forth below in Table 37.
37TABLE 37 VARIABLE SET OF MONITOR ACLS ENTITIES 1412 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL MON_ACL_ID*
Monitor ACL identifi- Number R cation number MGR_APP_ID Monitor
application Number R identification number SET_NAME Set name
Character O SET_NUM Set number Number O CREATE_DT Date created Date
O MODIFIED_DT Date modified Date O MODIFIED_BY Modified by
Character O
[0181] The monitor ACLs entities 1412 are related to the manager
applications entities 1410 in a many-to-one relationship, as
discussed above. The monitor ACLs entities 1412 are also related to
the device ACLs entities 1418 and the ACL entries entities 1422 in
one-to-many relationships.
[0182] Device Application Configuration Entities 1414
[0183] The device application configuration entities 1414 relate
devices with manager applications, and provide a mechanism whereby
the configuration of device applications may be monitored. The
device application configuration entities 1414 are a name-value
pair for device applications configured on the network. A date or
text value may be entered and associated with the devices,
depending upon the specific device type. The variable set
associated with the device application configuration entities 1414
is shown below in Table 38.
38TABLE 38 VARIABLE SET OF DEVICE APPLICATION CONFIGURATION
ENTITIES 1414 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE
OPTIONAL DVC_ID* Device identification Number R number MGR_APP_ID*
Manager application Number R identification number CREATE_DT Date
created Date R CONFIG_TXT.sub.-- Configuration text Character O VAL
value CONFIG_DT.sub.-- Configuration date Date O VAL value
CONFIG_NAME* Configuration name Character R CREATED_BY Created by
Character R
[0184] The device application configuration entities is related in
many-to-one relationships with the manager applications entities
1410, as previously discussed, and with the devices entities 1512
of FIG. 15 by way of relationship 1430.
[0185] Device Authorization Entities 1416
[0186] The device authorization entities 1416 are used for
authorizing use of devices by way of user names, passwords, and the
like. The device authorization entities 1416 describe specific
device authorizations required by the simple network management
protocol (SNMP), used in connection with one embodiment of the
present invention. The device authorization entities 1416 allow for
current and future, or next values, of user names and passwords to
be read, written, and trapped (having an alert sent regarding an
erroneous user name or password). The variable set associated with
the device authorization entities 1416 is set forth below in Table
39.
39TABLE 39 VARIABLE SET OF DEVICE AUTHORIZATION ENTITIES 1416
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DVC_AUTH_ID* Device authorization Number R identification number
DVC_ID Device identification Number R number MGR_APP_ID Manager
Application Number R identification number USERNAME User name
Character O VIEW_PASSWD View password Character O ENABLE PASSWD
Enable password Character O CURR_Vl_READ Read current value
Character O CURR_Vl.sub.-- Write current value Character O WRITE
CURR_Vl_TRAP Send alert for current Character O value NEXT_Vl_READ
Read next value Character O NEXT_Vl_WRITE Write next value
Character O NEXT_Vl_TRAP Send alert for next Character O value
CREATE_DT Date created Date O MODIFIED_DT Date modified Date O
MODIFIED_BY Modified by Character O
[0187] The device authorization entities 1416 relate to the device
ACLs entities 1418 in a one-to-many relationship and to the devices
entities 1512 of FIG. 15 in a many-to-one relationship 1426.
[0188] Device ACLs Entities 1418
[0189] The device ACLs entities 1418 are used to provide the device
authorizations entities 1416 with the correct access control lists
(ACLs). The variable set associated with the device ACLs entities
1418 is set forth below in Table 40.
40TABLE 40 VARIABLE SET OF DEVICE ACLS ENTITIES 1418 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL MON_ACL_ID*
Monitor ACL identifi- Number R cation number DVC_AUTH_ID* Device
Authorization Number R identification number MODIFIED_DT Date
modified Date O MODIFIED_BY Modified by Character O
[0190] The device ACLs entities 1418 are related to the monitor
ACLs entities 1412 and the device authorizations entities 1416 in
many-to-one relationships, as previously discussed.
[0191] SNMP Variables Entities 1420
[0192] The SNMP variables entities 1420 provide information
regarding variables associated with the simple network management
protocol (SNMP) associated with the devices connected to the
network of the present invention. Generally, standard SNMP
variables are assigned to specific devices or objects and a unique
object identification must be determined for internal purposes. The
variable set associated with the SNMP variables entities 1420 is
set forth below in Table 41.
41TABLE 41 VARIABLE SET OF SNMP VARIABLES ENTITIES 1420 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL SNMP_VAR_ID*
SNMP Variable Identi- Number R fication Number DOTTED _OID
Character R VAR_NAME Variable name Identi- Character R fication
Number
[0193] The SNMP variables entities 1420 may optionally be related
to the request class variables entities 1408 in a one-to-many
relationship.
[0194] ACL Entries Entities 1422
[0195] The ACL entries entities 1422 relate to the entries on the
access control lists associated with the various devices connected
to the network of the present invention. The variable set
associated with the ACL entries entities 1422 is set forth below in
Table 42.
42TABLE 42 VARIABLE SET OF ACL ENTRIES ENTITIES 1422 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL MON_ACL_ID*
Monitor ACL identifi- Number R cation number PERMISSION* Permission
Character R IP_ADDRESS* IP Address Character R NET MASK Net Mask
Name Character O TCPIP_PORT TCP/IP Character O
[0196] ACL entries entities 1422 is related in a many-to-one
relationship with the monitor ACLs entities 1412.
[0197] VIP Groups Entities 1424
[0198] The Virtual IP (VIP) groups entities 1424 relate to devices
grouped into VIP groups. The VIP groups entities 1424 are used by
load balancers within the system to route single IP addresses to
multiple servers by way of VIP mapping. An interface identification
number is provided, and an interface port may be specified. The
variable set associated with the VIP groups entities 1424 is shown
below in Table 43.
43TABLE 43 VARIABLE SET OF GROUPS ENTITIES 1424 VARIABLE VARIABLE
REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL VIP_GROUP_ID* VIP group
Identifica- Number R tion Number VIP_IP_AD- VIP IP address
Character R DRESS GROUP_NAME Group name Character O VIP_PORT VIP
port Character O IF_IP_ID Interface IP Identifi- Number R cation
number IF_PORT Interface port Character O
[0199] The VIP groups entities 1424 are related to the virtual IPs
entities 1312 of FIG. 13 in a many-to-one relationship 1428, and to
the interface IPs entities 1524 of FIG. 15.
[0200] Various relationships 1426, 1428, 1430, 1432 in FIG. 14 are
indicated as relating entities within the monitoring entities 1106,
with entities illustrated on FIG. 15, associated with the hardware
entities 1108. Additionally, as discussed in connection with FIG.
13, the relationship 1328 from FIG. 13 relates to the VIP groups
elements 1424, as shown in FIG. 14.
[0201] Hardware 1108
[0202] The entities illustrated in FIG. 15 are part of the hardware
entities 1108, and are illustrated in entity relationship diagram
form. Each of these entities is described below. Each of the
entities within this diagram interrelate and are characterized by
variable sets which provide enough specificity to accurately
characterize the hardware portion of the network that the model is
intended to capture. At the same time, however, these entities and
their respective variables are sufficiently generic to readily
permit the addition of, e.g., new hardware devices, without
requiring the rewriting of software code which relies upon the
model and the database implementation thereof and permitting the
reuse of existing software code to interact with the database model
regarding the newly added hardware device.
[0203] Memory Components Entities 1502
[0204] The memory components entities 1502 describe various memory
components of the devices related to the device entities 1512. The
variable set associated with the memory components entities 1502 is
set forth below in Table 44.
44TABLE 44 VARIABLE SET OF MEMORY COMPONENTS ENTITIES 1502 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID Device
Identification Number R Number MEM_COMPT.sub.-- Memory Component
Number R ID* Identification Number QUANTITY Quantity of memory
Character R components MEM_TYPE Memory type Character R
MEM_LOCATION Memory location Character O EFF_BEG_DT Effective
beginning Date R date EFF_END_DT Effective ending date Date O
[0205] The memory components entities 1502 relates to the devices
entities 1512 in a many-to-one relationship.
[0206] Storage Components Entities 1504
[0207] The storage components entities 1504 relate to the storage
components of devices associated with the devices entities 1512.
The variable set associated with the storage components entities
1504 is set forth below in Table 45.
45TABLE 45 VARIABLE SET OF STORAGE COMPONENTS ENTITLES 1504
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DVC_ID Device Number R STOR_COMPNT.sub.-- Storage Component Number
R ID* identification number STOR_MEDIA Storage media Character R
STOR_TYPE Storage type Character R STOR_MFG Storage Manufacturer
Character O STOR_MODEL Storage model Character O STOR_CAP Storage
capacity Character O STOR_DRIVE Storage drive Character R
EFF_BEG_DT Effective beginning Date R date EFF_END_DT Effective
ending date Date O
[0208] The storage components entities 1504 relate to the devices
entities 1512 in a many-to-one relationship.
[0209] Bus Components Entities 1506
[0210] The bus components entities 1506 are related to the bus
components of the devices represented by the devices entities 1512.
The variable set associated with the bus components entities 1506
is set forth below in Table 46.
46TABLE 46 VARIABLE SET OF BUS COMPONENTS ENTITIES 1506 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID Device
identification Number R number BUS_COMPNT.sub.-- Bus component
identi- Number R ID* fication number BUS_TYPE Bus type Character R
BUS_DVC_ID Bus device identifica- Character O tion BUS_DVC.sub.--
Bus device vendor Character O VENDOR BUS_DVC.sub.-- Bus device
class Character O CLASS BUS_DVC.sub.-- Bus device version Character
O VERSION BUS_ID Bus identification Character R EFF_BEG_DT
Effective beginning Date R date EFF_END_DT Effective ending date
Date O
[0211] The bus components entities 1506 relate to the devices
entities 1512 in a many-to-one relationship.
[0212] Interface Components Entities 1508
[0213] The interface components entities 1508 relate to interface
components contained within interface cards of the devices
represented by the devices entities 1512. The variable set
associated with the interface components entities 1508 is set forth
below in Table 47.
47TABLE 47 VARIABLE SET OF COMPONENTS ENTITIES 1508 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL IF_CARD_ID
Interface card identifi- Number R cation number IF_COMPNT_ID*
Interface component Number R identification number IF_TYPE
Interface type Character R HW_ADDR Hardware address Character O
IF_SPEED Interface speed Character O EFF_BEG_DT Effective beginning
Date R date EFF_END_DT Effective ending date Date O IF_ALIAS
Interface alias Character O IF_DESC Interface descriptor Character
O IF_INDEX Interface index Number O
[0214] The interface components entities 1508 relate to the
interface cards entities 1510 and the interface type entities 1514
in many-to-one relationships. Also, the interface components
interface 1508 relate to the subinterfaces entities 1520 in a
one-to-many relationship.
[0215] Interface Cards Entities 1510
[0216] The interface cards entities 1510 relate to the interface
cards contained within the devices represented by the devices
entities 1512. The variable set associated with the interface cards
entities 1510 is set forth below in Table 48.
48TABLE 48 VARIABLE SET OF INTERFACE CARDS ENTITIES 1510 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID Device
identification Number R number IF_CARD_ID* Interface card identifi-
Number R cation number CARD_IND Card index number Number O
CARD_SER.sub.-- Card serial number Number O NUM SLOT Slot Character
O CPU_SPEED CPU processing speed Character O MEM_QUANT Memory
quantity Character O EFF_BEG_DT Effective beginning Date R date
DRAM_MB Amount of DRAM in Number O MB CONTAINED_BY Contained by
Number O
[0217] The interface cards entities 1510 relate to the devices
entities 1512 in a many-to-one relationship.
[0218] Devices Entities 1512
[0219] The devices entities 1512 relate to the various devices
connected to the network associated with the present invention.
Multiple variables are for defining devices and communication with
the network associated with the present invention. For example,
information such as device and manufacturer identifications, serial
numbers, device types, status, and other similar descriptions are
provided for, along with other convenient variables, such as a flag
which indicates whether a device should be monitored or not. The
MONITOR_FLG variable may be used in the future to determine the
level of monitoring that should be performed for each device
identified within the device's entities 1512. The variable set
associated with the devices entities 1512 is set forth below in
Table 49.
49TABLE 49 VARIABLE SET OF DEVICES ENTITIES 1512 VARIABLE VARIABLE
REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID* Device
identification Number R number MID Manufacturer identifi- Character
O cation SERIAL _NUM Serial Number Character O DVC_TYPE Device type
Character R STATUS Device Status Character R DVC_MFG Device
Manufacturer Character O DVC_MODEL Device Model Character O
CHASSIS_SER.sub.-- Chassis serial number Character O NUM
LOOPBACK_IP Loopback IP address Character O SYS_NAME System name
Character O SYS_DESC System description Character O SYS_OBJ_ID
System Object identi- Character O fication SYS_LOC System location
Character O SNMPV2C.sub.-- SNMP v. 2c capability Character O
CAPABLE SNMPV3.sub.-- SNMP v. 3 capability Character O CAPABLE
OS_VER OS version Character O EFF_BEG_DT Effective beginning Date R
date DVC_DESC Device description Character O DISCOVER_DT Discover
date Date R NOTES notes Character O SNMP_SYS_LOC SNMP system
location Character O MONITOR_FLG Monitor flag Character O
[0220] The device's entities 1512 relates to the memory components
entities 1502, the storage components entities 1504, the bus
components entities 1506, the interface cards entities 1510, the
device console entities 1516, and the CPU components entities 1518
in one-to-many relationships. The devices entities 1512 also relate
to the device authorizations entities 1416 in a one-to-many
relationship 1426, the device request classes entities 1404 in a
one-to-many relationship 1428, and the device application
configuration entities 1414 in a one-to-many relationship 1430, all
of which entities are illustrated in FIG. 14. Additionally, the
devices entities 1512 relate to the virtual IPS entities 1312 in a
one-to-many relationship 1330, the conduits entities 1306 in a
one-to-many relationship 1332, the status entities 1322 in a
many-to-one relationship 1324, all of which are illustrated in FIG.
13. Also, the devices entities may optionally be related in a
one-to-many relationship 1248 to the device roles 1226 of FIG.
12.
[0221] Interface Type Entities 1514
[0222] The interface type entities 1514 relate to the type of
interface achieved through the interface components represented by
the interface components entities 1508. The variable set associated
with the interface type entities 1514 is set forth below in Table
50.
50TABLE 50 VARIABLE SET OF INTERFACE TYPE ENTITIES 1514 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL INT_TYPE*
Interface type Character R INT_TYPE_DESC Interface type descrip-
Character R tion
[0223] The interface type entities 1514 relate to the interface
components entities 1508 in a one-to-many relationship.
[0224] Device Console Entities 1516
[0225] The device console entities 1516 relate to consoles that may
be attached to devices represented by the device entities 1512. The
consoles may be for the convenience of a user in accessing
information contained within the devices, or by accessing the
network by way of the devices. The variable set associated with the
device console entities 1516 is set forth below in Table 51.
51TABLE 51 VARIABLE SET OF DEVICE CONSOLE ENTITIES 1516 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID Device
identi- Number R fication number CONSOLE_IP* Console IP address
Character R CONSOLE_HOST.sub.-- Console host name Character R NAME
PORT port number Number O PHONE_NUM Phone number Character O
EFF_BEG_DT Effective beginning Date R date
[0226] The device console entities 1516 relate to the device
entities 1512 in a many-to-one relationship, as previously
mentioned.
[0227] CPU Components Entities 1518
[0228] The CPU components entities 1518 relate to the various
components of the CPUs of the devices which are represented by the
device entities 1512. The CPU components entities 1518 have a
series of variables associated therewith indicate information
regarding the type of CPU, the speed, the family, the model, the
slot, and other such information, which may be necessary in
provisioning servers, to ensure that software is installed can be
adequately handled by the CPU on a particular device. The variable
set associated with the CPU components entities 1518 is set forth
below in Table 52.
52TABLE 52 VARIABLE SET OF CPU COMPONENTS ENTITIES 1518 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID Device
identi- Number R fication number CPU_COMPNT_ID* CPU Component
Number R identification number CPU_FAM CPU Family Character R
CPU_SPEED CPU processing Character O speed CPU_VEND CPU vendor
Character O CPU_MODEL CPU model Character O CACHE SIZE cache size
Character O CPU_SLOT CPU slot Character R STEPPING CPU versioning
Character O EFF_BEG_DT Effective beginning Date R date EFF_END_DT
Effective ending Date O date STATUS CPU status Character O
[0229] The CPU components entities 1518 relate to the devices
entities 1512 in a many-to-one relationship, as previously
mentioned.
[0230] SUB Interfaces Entities 1520
[0231] The SUB interfaces 1520 relate the interface components of
the interface components entities 1508 with the interface IP
addresses of the interface IPs entities 1524. These SUB interfaces
entities 1520 may be used with asynchronous transfer mode (ATM)
frame relay systems, for example. The variable set associated with
the SUB interfaces entities 1520 is set forth below in Table
53.
53TABLE 53 VARIABLE SET OF SUB INTERFACES ENTITIES 1520 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL SUB_IF_ID* SUB
interface Number R identification number IF_COMPNT_ID Interface
component Number R identification number CIR_ID Circuit
identification Number O number VCI Virtual channel Character O
identifier VPI Virtual path Character O identifier TX_BNDWDTH
Transit bandwidth Character O RX_BNDWDTH Receive bandwidth
Character O EFF_BEG_DT Effective beginning Date R date
[0232] The SUB interfaces entities 1320 is related to the interface
components entities 1508 in a many-to-one relationship, and to the
interface IPs 1524 in a one-to-many relationship. The SUB
interfaces entities 1520 may also be optionally related to the
circuits entities 1522 in a many-to-one relationship.
[0233] Circuits Entities 1522
[0234] The circuits entities 1522 may be use to optionally relate
to the SUB interfaces entities 1520. These entities 1522 allow for
specific identification of the circuits associated with the SUB
interfaces and the interface components, and the type and
description of the circuits. The variable set associated with the
circuits entities 1522 is set forth below in Table 54.
54TABLE 54 VARIABLE SET OF CIRCUITS ENTITIES 1522 VARIABLE
REQUIRED/ VARIABLE VARIABLE DEFINITION TYPE OPTIONAL CIR_ID*
Circuit identification number Number R CIR_TYPE Circuit type
Character R CIR_DESC Circuit description Character O
[0235] The circuits entities 1522 may optionally relate to the SUB
interfaces entities 1520 in a one-to-many relationship.
[0236] Interface IPs Entities 1524
[0237] The interface IPs entities 1524 may be used to relate the
SUB interfaces represented by the SUB interfaces entities 1520 with
VIP groups of the VIP groups entities 1424 shown in FIG. 14. The
variable set associated with the interface IPs entities 1524 is set
forth below in Table 55.
55TABLE 55 VARIABLE SET OF INTERFACE IPS ENTITIES 1524 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL IF_IP_ID*
Interface IP Number R identification number IP_ADDRESS IP address
Character R SUB_IF_ID SUB interface Number R identification number
NETMASK Net Mask Character O EFF_BEG_DT Effective beginning date
Date R PRIMARY_IF Primary interface Character O
[0238] The interface IPs entities 1524 relates to the SUB
interfaces entities 1520 in a many-to-one relationship and to the
VIP groups entities 1424 of FIG. 14 in a one-to-many relationship
1432.
[0239] As indicated previously in connection with FIGS. 12-14,
various relationships 1248, 1330, 1332, 1334, 1426, 1428, 1430,
1432 are directly related to entities within the hardware 1108
illustrated in FIG. 15 from these other figures representing the
software 1102, the configuration 1104, and the monitoring 1106.
[0240] DNS 1110
[0241] The entities illustrated in FIG. 16 are part of the DNS
entities 1110. The DNS entities 1110 relate to the assignment of
DNS domain names. These entities are related in an entity
relationship diagram fashion.
[0242] DNS Configuration Entities 1602
[0243] The DNS configuration entities 1602 allow for the
translation of DNS names to DNS values, and may be used by the
business logic associated with the network of the present
invention. These DNS names and values may be translated into
addresses related to various network hosts. The variable set
associated with the DNS configuration entities 1602 is set forth
below in Table 56.
56TABLE 56 VARIABLE SET OF DNS CONFIGURATION ENTITIES 1602 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL NAME Name
Character R VALUE Value Character R
[0244] The DNS configuration entities 1602 are illustrated in FIG.
16 as having no direct relationship with any of the other entities
illustrated therein. The values contained within the DNS
configuration entities 1602 are used by business logic associated
with the present invention, which is able to query the DNS
configuration entity 1602 to relate between the entries of the
name-value pairer associated with these entities 1602.
[0245] DNS Hosts Entities 1604
[0246] The DNS host entities 1604 relate to DNS hosts associated
with the present invention. The DNS host entities 1604 provide for
a unique manner in which multiple DNS hosts may be identified.
Using multiple DNS hosts provided customer with a more efficient
DNS service. For example, if a primary DNS host is not able to
handle a request within a predefined time, the expire time set on a
second DNS may lapse, causing the secondary DNS to handle the
pending request. This is also known as a time to live (TTL). The
variable set associated with the DNS hosts entities 1604 are
indicated below in Table 57.
57TABLE 57 VARIABLE SET OF DNS HOSTS ENTITIES 1604 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DNS_HOST_ID*
DNS Host identi- Number R fication number DOMAIN_ID Domain identi-
Number R fication number DVC_HOST_TYPE Device host type Character O
HOST_NAME Host name Character R DNS_HOST_DATA DNS Host Data
Character R DNS_HOST_TYPE DNS Host type Character R EXPIRE Time
until expire Number O EFF_BEG_DT Effective Date R beginning date
MODIFIED_BY Modified by Character O
[0247] The DNS hosts entities 1604 are related to the DNS domains
entities 1616, and the DNS host types entities 1606 in many-to-one
relationships. The DNS host types entities 1606 in many-to-one
relationships, the DNS hosts entities 1604 may optionally be
related to the device role IP host entities 1308 illustrated in
FIG. 3 in a one-to-many relationship 1336.
[0248] DNS Host Types Entities 1606
[0249] The DNS host types entities 1606 indicate the types of DNS
hosts associated with the DNS hosts entities 1604. The variable set
associated with the DNS hosts types entities 1606 is set forth
below in Table 58.
58TABLE 58 VARIABLE SET OF DNS HOST TYPES ENTITIES 1606 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DNS_HOST_TYPE*
DNS Host type Character R DNS_HOST_TYPE.sub.-- DNS Host type
Character O DESC description
[0250] The DNS host types entities 1606 are related to the DNS
hosts entities 1604 in a one-to-many relationship.
[0251] DNS ACLs Entities 1608
[0252] The DNS ACLs entities 1608 relate to the access control
lists associated with various DNS. The variable set associated with
the DNS ACLs entities 1608 is set forth below in Table 59.
59TABLE 59 VARIABLE SET OF DNS ACLS ENTITIES 1608 VARIABLE VARIABLE
REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL ACL_ID* ACL
identification number Number R ACL_DESC ACL Description Character O
ACL_NAME ACL Name Character R
[0253] The DNS ACLs entities 1608 are related to the DNS ACL
entries entities 1610, the DNS allow transfers entities 1612, and
the DNS allow queries entities 1618 in one-to-many
relationships.
[0254] DNS ACL Entries Entities 1610
[0255] The DNS ACL entries entities 1610 relate to the ACL entries
for the DNS. The variable set associated with the DNS ACL entries
entities 1610 is set forth below in Table 60.
60TABLE 60 VARIABLE SET OF DNS ACL ENTRIES ENTITIES 1610 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL ACL_ENTRY_ID
ACL entry Number R identification number NET Net Character R MASK
Mask Character O ACL_ID ACL Number R identification number
[0256] The DNS ACL entries entities are related to the DNS ACLs
entities 1608 in a many-to-one relationship, as previously
mentioned.
[0257] DNS Allow Transfers Entities 1612
[0258] The DNS allow transfers entities 1612 is used to determine
whether or not DNS transfers may take place between given DNs
domains according to the ACLs of the DNS ACLs entities 1608. The
variable set associated with the DNS allow transfers entities 1612
is set forth below in Table 61.
61TABLE 61 VARIABLE SET OF DNS ALLOW TRANSFERS ENTITIES 1612
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DOMAIN_ID* Domain identifica- Number R tion number ACL_ID* ACL
identification Number R number TRANSFER_DESC Transfer description
Character O EFF_BEG_DT Effective beginning Date R date
[0259] The DNS allow transfers entities 1612 are related to the DNS
ACLs entities 1608 and the DNS domains entities 1616 in many-to-one
relationships.
[0260] DNS Domain Types Entities 1614
[0261] The DNS domain types entities 1614 relate to the types of
DNS domains associated with the DNS domain entities 1616. The
variable set associated with the DNS domain types entities 1614 is
set forth below in Table 62.
62TABLE 62 VARIABLE SET OF DNS DOMAIN TYPES ENTITIES 1614 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DNS_DOMAIN_TYPE* DNS Domain Character R type DOMAIN_TYPE_DESC
Domain type Character O description
[0262] The DNS domain types entities 1614 relate to the DNS domain
entities 1614 in a one-to-many relationship.
[0263] DNS Domain Entities 1616
[0264] The DNS domain entities 1616 relate to the various DNS
domains associated with devices connected to the network of the
present invention. The variables associated with the DNS domain
entities 1616 relate to domains maintained by a host, in accordance
with an embodiment of the present invention. A DNS term "SOA" or
start of authority, is used to define several variables. For
example, a serial variable is given, which indicates the revision
number of the DNS file used to look up domain names. A refresh rate
is set, which may be adjusted according to the speed with which the
DNS file is updated on a primary DNS, to control how often a
secondary DNS updates its DNS file. Also, an expire time, which
indicates the time that a secondary DNS will wait until taking over
a domain name request may be set. A minimum cash time for a
particular entry, and a name server are provided for variables of
the DNS domain entity 1616. Also, an admnistrative contact e-mail
address is provided for each domain. A retry variable may also be
provided whereby after a certain amount of time, or a certain
amount of attempts, a DNS must assume the role of the primary DNS.
A rebuilt date is given, whereby the system, or agents of the
system, know that if this date is changed, then the server needs to
rebuild. One of the advantages of the present invention is that DNS
entries are not created in the DNS server, but rather are contained
within a separate database with specific forms that define
acceptable DNS entries. The variable set associated with the DNS
domain entities 1616 is set forth below in Table 63.
63TABLE 63 VARIABLE SET OF DNS DOMAINS ENTITIES 1616 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DOMAIN_ID*
Domain identifi- Number R cation number DNS_DOMAIN_TYPE DNS Domain
Character R type DOMAIN_NAME Domain name Character R SOA_SERIAL
Start of authority Character R serial SOA_REFRESH Start of
authority Character R refresh SOA_EXPIRE Start of authority
Character R expire SOA_MIN Start of authority Character R minimum
SOA_NS Start of authority Character R name server SOA_EMAIL Start
of authority Character R e-mail contact SOA_RETRY Start of
authority Character R retry times MOD_DT Date modified Date O
MOD_BY Modified by Character O REBUILD_DT Rebuild date Date O
ACCT_ID Account identifi- Number O cation number EFF_BEG_DT
Effective Date R Beginning date
[0265] A DNS domain entities 1616 are related in many-to-one
relationships with the DNS domain types entities 1614, as
previously discussed, and the DNS domain masters entities 1620.
Additionally, the DNS domains entities 1616 relate to the DNS hosts
entities 1604, the DNS allow transfers entities 1612, and the DNS
queries entities 1618 in one-to-many relationships. Also, the DNS
domains entities 1616 may optionally relate to the accounts
entities 1702 of the network entities 1112, illustrated in FIG. 17,
in a many-to-one relationship 1624.
[0266] DNS Allow Queries Entities 1618
[0267] The DNS allow queries entities 1618 assist in determining
whether or not queries may be allowed between certain DNS domains,
according to the DNs ACLs of the DNS ACLs entities 1608. The
variable set associated with the DNS allow queries entities 1618 is
set forth below in Table 64.
64TABLE 64 VARIABLE SET OF DNS ALLOW QUERIES ENTITIES 1618 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DOMAIN_ID*
Domain identification Number R number ACL_ID* ACL identification
Number R number QUERY_DESC Query description Character O EFF_BEG_DT
Effective beginning date Date R
[0268] The DNS allow queries entities 1618 related to the DNS ACLs
entities 1608 and the DNS domains entities 1616 in many-to-one
relationships.
[0269] DNS Domain Masters Entities 1620
[0270] The DNS domain masters entities 1620 relates the DNS domain
of the DNS domain entities 1616 with the DNS master IPs of the DNS
master IPs entities 1622. The variable set associated with the DNS
domain masters entities 1620 is set forth below in Table 65.
65TABLE 65 VARIABLE SET OF DNS DOMAIN MASTERS ENTITIES 1620
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DOMAIN_ID* Domain identi- Number R fication number DNS_MASTER_IP_ID
DNS Master IP Number R identification number EFF_BEG_DT Effective
Date R beginning date
[0271] The DNS domain masters entities 1620 are related to the DNS
domains entities 1616 in a one-to-many relationship, and to the DNS
master IPs entities 1622 in a many-to-one relationship.
[0272] DNS Master IPs Entities 1622
[0273] The DNS master IPs entities 1622 relate to the DNS master IP
addresses of the devices on the network associated with the present
invention. The variable set associated with the DNS master IPs
entities 1622 is set forth below in Table 66.
66TABLE 66 VARIABLE SET OF DNS MASTER IPS ENTITIES 1622 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DNS_MASTER_IP_ID* DNS master IP Number R identification number
IP_ADDR IP address Character R MASTER_DESC Master Character O
description
[0274] The DNS master IPs entities 1622 relate to the DNS domain
masters entities 1620 in a one-to-many relationship.
[0275] The relationship 1336 is between the DNS host entities 1604
and an entity illustrated in FIG. 13, within the configuration
entities 1104. Additionally, the relationship 1624 relates the DNS
domain entities 1616 with an entity in FIG. 17 of the network
entities 1112.
[0276] Network 1112
[0277] The entities illustrated in an entity relationship diagram
in FIG. 17 form part of the network entities 1112. The Network
entities 1112 define various aspects of the network with which the
present invention may be used. Each of these entities is described
below.
[0278] Accounts Entities 1702
[0279] The accounts entities 1702 relate directly to customer
network accounts. The variable set associated with the accounts
entities 1702 is set forth below in Table 67.
67TABLE 67 VARIABLE SET OF ACCOUNTS ENTITIES 1702 VARIABLE VARIABLE
REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL ACCT_ID* Account
identification Number R number ACCT_NAME Account name Character R
DISPLAY_NAME Display name Character O STATUS Status Character R
LOG_HOST Host name for web Character O logs AUTH_DOMAIN
Authentication Character O Domain
[0280] The accounts entities 1702 relate to the account
configuration entities 1704 and the customer tiers entities 1708 in
one-to-many relationships. Additionally, as previously indicated,
the accounts entities 1702 relate to the units entities 1202, the
packages entities 1240, and the account roles entities 1224 of FIG.
12, in one-to-many relationships. Also, the accounts entities 1702
may optionally be related in a one-to-many relationship 1624 with
the DNS hosts entities 1604 of FIG. 16.
[0281] Account Configuration Entities 1704
[0282] The account configuration entities 1704 relate to the
configuration of the accounts associated with the account entities
1702. The variable set associated with the account configuration
entities 1704 is set forth below in Table 68.
68TABLE 68 VARIABLE SET OF ACCOUNT CONFIGURATION ENTITIES 1704
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
ACCT_10 Account identifi- Number R cation number KEY_NAME Key name
Character R ACCT_CONFIG_ID* Account config- Number R uration
identifi- cation number
[0283] The account configuration entities 1704 relate to the
accounts entities 1702 in a many-to-one relationship.
[0284] Account Configuration Values Entities 1706
[0285] The account configuration values entities 1706 indicate
various values associated with the configuration of various
accounts related to the account configuration entities 1704. The
variable set associated with the account configuration values
entities 1706 is set forth below in Table 69.
69TABLE 69 VARIABLE SET OF ACCOUNT CONFIGURATION VALUES ENTITIES
1706 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
ACCT_CONFIG_ID* Account config- Number R uration identifi- cation
number CONFIG_VALUE Configuration Character R value TEXT_ORDER*
Text Order of Number R configuration value chunk
[0286] The account configuration values entities 1706 relate to the
account configuration entities 1704 in many-to-one
relationships.
[0287] Customer Tiers Entities 1708
[0288] The customer tiers entities 1708 relate to various customer
tiers, whereby customers may receive, and have access to, specific
services associated with specific tiers. For example, a specific
customer may desire to distribute his webhosting servers to
multiple data centers. Therefore, the variables associated with the
Customer tiers entities 1708 may indicate a data center or
identification number, which informs one as to the location of the
customer tier represented by the customer tier entity 1708. Also, a
flag may be set to indicate whether or not monitoring is desired or
needed within that particular network. The variable set associated
with the customer tiers entities 1708 is illustrated below in Table
70.
70TABLE 70 VARIABLE SET OF CUSTOMER TIERS ENTITIES 1708 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL CUST_TIER_ID*
Customer tier identi- Number R fication number ACCT_ID Account
identi- Number R fication number DATA_CENTER_ID Data center identi-
Number R fication number MONITOR_FLG Monitor Flag Character O
[0289] The customer tiers entities 1708 relate to the accounts
entities 1702, as previously discussed, and the data centers
entities 1716, in many-to-one relationships. The customer tiers
entities 1708 also relate to the VLAM compartments entities 1714 in
a one-to-many relationship.
[0290] Data Center Configuration Values Entities 1710
[0291] The data center configuration values entities 1710 relate to
the configuration values associated with the data center
configuration, which are associated with the data center
configuration entities 1712. The variables associated with the data
center configuration values entities 1710 are the value portion of
a name-value pair relating to the data center. Thus, a
configuration value, associated with such a name-value pair is
given by the data center configuration values entities 1710. The
variable set associated with the data center configuration values
entities 1710 is set forth below in Table 71.
71TABLE 71 VARIABLE SET OF DATA CENTER CONFIGURATION VALUES
ENTITIES 1710 VARIABLE REQUIRED/ VARIABLE VARIABLE DEFINITION TYPE
OPTIONAL DATA_CENTER_CONFIG_ID* Data center configuration Number R
identification number CONFIG_VALUE Configuration values Character R
TEXT_ORDER* Text Order Number R
[0292] The data center configuration values entities 1710 relate to
the data center configuration entities 1712 in a many-to-one
relationship.
[0293] Data Center Configuration Entities 1712
[0294] The data center configuration entities 1712 relate to the
configuration of specific data centers that house specific servers,
and other network equipment associated with services of the various
customer tiers. The data center configuration entities 1712 form
the name portion of the name-value pair associated with the data
center configuration values entities 1710. Thus, a key name, which
serves as the name in the name-value pair. The variable set
associated with the data center configuration entities 1712 is set
forth below in Table 72.
72TABLE 72 VARIABLE SET OF DATA CENTER CONFIGURATION ENTITIES 1712
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
DATA_CENTER_ID Data Center iden- Number R tification number
KEY_NAME Key Name Character R DATA_CENTER_ID* Data center iden-
Number R tification number
[0295] The data center configuration entities 1712 relate to the
data centers entities 1716 in a many-to-one relationship.
[0296] VLAN Compartments Entities 1714
[0297] The VLAN compartments entities 1714 are used to relate the
customer tiers of the customer tiers entities 1708 with various
VLAN IP pools of the VLAN IP pools entities 1722. The variable set
associated with the VLAN compartments entities 1714 is set forth
below in Table 73.
73TABLE 73 VARIABLE SET OF VLAN COMPARTMENTS ENTITIES 1714 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL VLAN_COMP_ID*
VLAN Compart- Number R ment identification number CUST_TIER_ID
Customer tier identi- Number R fication number COMP_NAME
Compartment name Character R STATUS VLAN status Character R
ASSIGN_DT Assign Date Date O
[0298] The VLAN compartments entities relate to the customer tiers
entities 708 in a many-to-one relationship as previously discussed,
also, the VLAN compartments entities 1714 relate to the VLAN IP
pools 1722 in a one-to-many relationship.
[0299] Data Centers Entities 1716
[0300] The data centers entities 1716 relate to various data
centers in which server equipment, and other network devices are
housed. The data centers entities 1716 contain variables that
describe various aspects of the data centers to which these
entities 1716 relate. For example, a DNS sequence is given, which
is a sequential number, that is used in an algorithm to provide a
next random DNS name. Generally, the DNS names used by each of the
data center entitties 1716 contain the name of the data center
therein, with which they most closely relate, and therefore there
is no conflict of DNS names between data centers. Additionally, a
mask may be given that indicates how a particular server may be
located by way of parsing the location of its rack. The variable
set associated with the data centers entities 1716 is set forth
below in Table 74.
74TABLE 74 VARIABLE SET OF DATA CENTERS ENTITIES 1716 VARIABLE
DEFINI- VARIABLE REQUIRED/ VARIABLE TION TYPE OPTIONAL
DATA_CENTER_ID* Data Center Number R identification number
DATA_CENTER_NAME Data Center Character R name DNS_SUBDOMAIN DNS
sub- Character O domain DNS_SEQUENCE DNS Character O sequence for
name generation DISPLAY_NAME DNS name Character O displayed
RACK_LOCATION_MASK Rack loca- Character O tion mask
[0301] The data center entities 1716 relate to the customer tiers
entities 1708 and the data center configuration entities 1712 in
one-to-many relationships.
[0302] Site Configuration Entities 1718
[0303] The site configuration entities 1718 relate to a
configuration of various data center sites. The site configuration
entities 1718 is a name-value pairer that may be used for any
convenient purpose, such as accounting, data center, maintenance,
device configuration, and the like. This relationship table may be
used by way of business logic associated with the present
invention, or with agents residing on particular devices connected
to the network. The variable set associated with the site
configuration entities 1718 is set forth below in Table 75.
75TABLE 75 VARIABLE SET OF SITE CONFIGURATION ENTITIES 1718
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
PARAM_NAME* Parameter name Character R PARAM_VALUE Parameter value
Character O
[0304] The site configuration entities 1718 illustrated in FIG. 17
is not directly related to the entities illustrated in the same
figure. However, the values contained therein may relate to other
entities illustrated in FIG. 17, and may be used by business logic
associated with the present invention, or by intelligent agents of
the system.
[0305] Device Pool VLAN Platforms Entities 1720
[0306] The device pool VLAN platforms entities 1720 relate to
platforms of the device pool within the VLAN. That is, the device
pool VLAN platforms entities 1720 is used to relate a base OS to
the VLAN with which a particular device is associated. The variable
set associated with the device pool VLAN platforms entities 1720 is
set forth below in Table 76.
76TABLE 76 VARIABLE SET OF DEVICE POOL VLAN PLATFORMS ENTITIES 1720
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
VLAN_POOL_ID VLAN pool identifica- Number R tion number PLATFORM_ID
Platform identifica- Number R tion number
[0307] The device pool VLAN platforms entities 1720 relate to the
VLAN IP pools entities in a many-to-one relationship.
[0308] VLAN IP pools Entities 1722
[0309] The VLAN IP pools entities 1722 relate to IP pools of the
VLAN, which are associated with the VLAN compartments of the
customer tiers that are associated with the customer tiers entities
1708. The variable set associated with the VLAN IP pools entities
1722 is set forth below in Table 77.
77TABLE 77 VARIABLE SET OF VLAN IP POOLS ENTITIES 1722 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL VLAN_POOL_ID*
VLAN pool Number R identification number POOL_TYPE Pool type
Character R VLAN_POOL_NAME VLAN pool name Character R GATEWAY_IP
Gateway IP address Character R NETMASK_IP Network IP address
Character R BROADCAST_IP Broadcast IP Character R address SUBNET
Subnet Character R DHCP_GATEWAY DHCP Gateway Character O NIS_DOMAIN
Network informa- Character O tion services domain YP_SERVER Yellow
pages Character O server NTP_SERVER Network time Character O
protocol server DOMAIN Domain Character O SUB_TYPE Network sub-type
Character R POOL_DESC Pool description Character O VLAN_NAME VLAN
name Character O VLAN_COMP_ID VLAN com- Number R ponent identifica-
tion number CIDR Classless inter- Number R domain routing
[0310] The VLAN IP pools entities 1722 relate to the VLAN
compartments 1714 in a many to one relationship, and to the device
pool VLAN platforms 1720 in a one to many relationship, as
previously described. Also, the VLAN IP pools entities 1722 relate
to the IP addresses entities 1730 in a one to many relationship,
and the VLAN subtype entities 1728 in a many to one
relationship.
[0311] Data Center Tiers Entities 1724
[0312] The data center tiers entities 1724 relate to a specific
group of services, or tiers, associated with the data centers,
which are represented by the data centers entities 1716. The
variable set associated with the data center tiers entities 1724 is
set forth below in Table 78.
78TABLE 78 VARIABLE SET OF DATA CENTER TIERS ENTITIES 1724 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DCT_ID* Data
center tier Number R identification number DATA_CENTER_ID Data
center identifi- Number R cation number APP_ROLE_ID Application
role Number R identification number TIER_NAME Tier name Character
R
[0313] The data center tiers entities 1724 relate to the data
centers entities 1716 in a many to one relationship, as previously
explained. The data center tiers entities 1724 also relate to the
application rules entities 1236, illustrated in FIG. 12, in a many
to one relationship 1244.
[0314] VLAN Pool Type Entities 1726
[0315] The VLAN pool type entities 1726 define the various valid
types of VLANs for use on the network associated with the present
invention. The variable set associated with the VLAN pool type
entities is set forth below in Table 79.
79TABLE 79 VARIABLE SET OF VLAN POOL TYPE ENTITIES 1726 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL POOL_TYPE*
Pool type Character R POOL_TYPE_DESC Pool type Character O
description GEN_DHCP Generate DHCP Character R
[0316] The VLAN pool type entities 1726 are not illustrated as
directly relating to any entities within FIG. 17. However, the
variables stored within the VLAN pool type entities 1726 are used
by the logic associated with the present invention for determining
the valid types of VLANs that may be used with the present
invention.
[0317] VLAN SUB Type Entities 1728
[0318] The VLAN SUB type entities 1728 are used to relate to the
VLAN IP pools, which are represented by the VLAN IP pools entities
1722. The VLAN SUB type entities 1728 define valid VLAN types, or
types in which VLANs may be used. Some examples might include
development, quality assurance, production, and the like. The VLAN
subtype entities 1728 relate to the VLAN IP pools 1722 in a one to
many relationship, as previously described. The variable set of the
VLAN SUB type entities 1728 is shown below in Table 80.
80TABLE 80 VARIABLE SET OF VLAN SUB TYPE ENTITIES 1728 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL SUB_TYPE* Type
of VLAN Character R SUB_TYPE_DESC VLAN type descrip- Character O
tion
[0319] IP Address Entities 1730
[0320] The IP address entities 1730 relate to the IP addresses of
the network associated with the present invention. The variable set
associated with the IP address entities 1730 is shown below in
Table 81.
81 VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
IP_ADDRESS* IP Address Character R VLAN_POOL_ID VLAN Pool Number R
identification number STATUS Device status Character R
GEN_HOST.sub.-- Character O NAME
[0321] The IP address entities 1730 relate to the VLAN IP pools
1722 in a many to one relationship, as previously discussed. Also,
the IP addresses entities 1730 relate to the virtual IPs entities
1312, and the device role IP host entities 1308 by one to many
relationships, 1338, 1340, respectively
[0322] VLAN CIDR Reserve Entities 1732
[0323] The VLAN CIDR reserve entities 1732 is related to the
classless inter-domain routing (CIDR) of the VLAN associated with
the present invention. The VLAN CIDR reserve entities indicates the
CIDR number used for the network, and the number of addresses that
are reserved and that are available for dynamic assignment as DHCP
generated addresses. The variable set associated with the VLAN CIDR
entities 1732 is set forth below in Table 82.
82TABLE 82 VARIABLE SET OF VLAN CIDR RESERVE ENTITIES 1732 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL CIDR CIDR
Number R NTWK_RSV.sub.-- Network Number R CNT reserve count
DHCP_RSV_CNT DHCP Number R reserve count
[0324] The VLAN CIDR reserve entities 1732 is illustrated in FIG.
17 as not directly relating to any of the other entities. These
entities 1732 are used by the business logic of the present
invention to determine the number of network addresses that may be
reserved, and the number that may be generated as DHCP generated
addresses for a given network or subnetwork.
[0325] Queues 1114
[0326] The entities illustrated in the entity relationship diagram
of FIG. 18 form the queues entities 1114. These entities are
described in detail below. These entities are not directly related
to the entities of the rest of the data model 1100 shown in FIG. 11
but rather are used by agents of specific devices connected to the
network in performing various tasks. These tasks are represented in
queues, which may be executed in a specific, given order.
[0327] Agent Queues Entities 1802
[0328] The agent queues entities 1802 queues entities are
essentially a list of tasks to be performed by an intelligent agent
operating on a device connected to the network, which is associated
with the present invention. The variable set of agent queues
entities 1802 is shown below in Table 83.
83TABLE 83 VARIABLE SET OF AGENT QUEUES ENTITIES 1802 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
AGENT_QUEUE.sub.-- Agent Queue Number R ID* identification number
DVC_ID Device Number R identification number AGENT_QUEUE.sub.--
Agent Queue Name Character R NAME ACTIVE Active Character R STATE
State Character R HALT_ON.sub.-- Halton error Character R ERROR
PREDICATED_ID Pedicated Number O identification number IP_ADDRESS
IP address Character R MODIFIED_DT Date modified Date O CREATE_DT
Date created Date R FIRST_POKE.sub.-- Date of Date O DT first
poke
[0329] The agent queues entities 1802 is illustrated as having a
one to many relationship with the agent queue commands entities
1804. The agent queues entities 1802 may also have an optional one
to many relationship with other agent queues, as illustrated by the
broken line in FIG. 18.
[0330] Agent Queue Commands Entities 1804
[0331] The agent queue commands entities 1804 serves to relate the
agent queues entities 1802 with specific agent commands and agent
command outputs. The variable set of agent queue commands entities
1804 is shown below in Table 84.
84TABLE 84 VARIABLE SET OF AGENT QUEUE COMMANDS ENTITIES 1804
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
AGENT_QUEUE.sub.-- Agent Queue Number R COM_ID* Command
identification number AGENT_QUEUE.sub.-- Agent Queue Number R ID
identification number AGENT_COM.sub.-- Agent Command Number R ID
identification number COM_ORDER Command Order Number R ACTIVE Agent
Active Character R STATE Agent State Character R START_TIME Start
time Date O END_TIME End time Date O
[0332] The agent queue commands entities 1804 are related to the
agent queues entities 1802, as previously discussed, and the agent
commands 1808 in many to one relationships. Also, the agent queue
commands entities 1804 are related to the agent command output
entities 1806 in a one to many relationship.
[0333] Agent Command Output Entities 1806
[0334] The agent command output entities 1806 relate to the output
of specific commands to agents of the present invention. The
variable set of agent command output entities 1806 is shown below
in Table 85.
85TABLE 85 VARIABLE SET OF AGENT COMMAND OUTPUT ENTITIES 1806
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
AGENT_QUEUE.sub.-- Agent Queue Number R COM_ID* Command
identification number TEXT_ORDER* Text order Number R OUTPUT_TEXT
Output text Character R CREATE_DT Date created Date R
[0335] The agent command output entities 1806 relate to the agent
queue commands entities 1804 in a many to one relationship.
[0336] Agent Commands Entities 1808
[0337] The agent commands entities 1808 represent specific commands
to be executed by agents associated with the present invention. The
variable set of agent commands entities 1808 is shown below in
Table 86.
86TABLE 86 VARIABLE SET OF AGENT COMMANDS ENTITIES 1808 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
AGENT_COM.sub.-- Agent command Number R ID* identification number
COM_TYPE Command type Character R COM_NAME Command name Character O
EFF_BEG_DT Effective Date R beginning date EFF_END_DT Effective
Date O ending date
[0338] The agent commands entities 1808 relate to the agent queue
commands entities 1804, as previously indicated, and the agent
command text entities 1810, in one to many relationships.
[0339] Agent Command Text Entities 1810
[0340] The agent command text entities 1810 represents specific
text associated with the agent commands, which are represented by
the agent command entities 1808. Additionally, an order of the text
may be given, thereby allowing the agent to determine the order of
the text to be executed. The variable set of agent command text
entities 1810 is shown below in Table 87.
87TABLE 87 VARIABLE SET OF AGENT COMMAND TEXT ENTITIES 1810
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
AGENT_COM.sub.-- Agent Command Number R ID* identification number
COM_TEXT Command text Character R TEXT_ORDER* Text order Number
R
[0341] The agent command text entities 1810 relate to the agent
commands entities 1808 in a many to one relationship.
[0342] Agent Queue Mutex Entities 1812
[0343] The agent queue mutex entities 1812 serves as a locking
device, which signals to an agent at a particular device is
currently busy, and prevents the agent from executing a second
queue on that device until the device is not busy. The variable set
of agent queue mutex entities 1812 is shown below in Table 88.
88TABLE 88 VARIABLE SET OF AGENT QUEUE MUTEX ENTITIES 1812 VARIABLE
VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL DVC_ID* Device
Number R identification number
[0344] The agent queue mutex entities 1812 do not relate directly
to any of the entities illustrated in FIG. 18, but rather are
either queried by the agents with which they are associated, or
broadcast information to those agents.
[0345] Agent Command Mutex Entities 1814
[0346] The agent command mutex entities 1814 serve as a locking
device whereby only a single agent queue may be executed by the
agent at any given time. This prevents an agent from attempting to
accomplish more than one task at a single time. The variable set of
agent command mutex entities 1814 is shown below in Table 89.
89TABLE 89 VARIABLE SET OF AGENT COMMAND MUTEX ENTITIES 1814
VARIABLE VARIABLE REQUIRED/ VARIABLE DEFINITION TYPE OPTIONAL
AGENT_QUEUE.sub.-- Agent Queue Number R ID* identification
number
[0347] The agent command mutex entities 1814 do not relate directly
to any of the entities illustrated in FIG. 18, but rather are
either queried by the agents with which they are associated, or
broadcast information to those agents.
[0348] The foregoing description has been provided in the context
of one data model used in connection with one provisioning network
that may be used to control devices at one data center. It will be
appreciated that such a network can be part of a larger network
which controls devices at several data centers. The data model
entities would merely need to be expanded to include networks
located offsite. Hence, if an entity has its website infrastructure
apportioned over several data centers, the provisioning operations
can be coordinated amongst the various centers by using the data
model of the present invention.
[0349] From the foregoing, therefore, it can be seen that the
present invention provides a data model for use in system for the
automated provisioning of devices which constitute the
infrastructure of a website, such as servers. Two significant
advantages provided by the data model are flexibility and the
repeatability of the results that are obtained. The flexibility
permits the varied needs of different websites to be readily
accommodated, and thereby avoids the limitation of having to
configure the architecture of every site the same way. The
repeatability ensures that every server will have the proper set of
software components once it has been provisioned, and thereby be
ready to operate immediately. In addition to these features, the
automated provisioning that is provided through this system
achieves a significant time savings, enabling the entire process to
be accomplished in substantially less than one hour for each
device.
[0350] It will be appreciated by those of ordinary skill in the art
that the present invention can be embodied in other forms without
departing from the spirit or essential characteristics thereof. For
instance, while an exemplary embodiment of the invention has been
described in the context provisioning website servers in a data
center, it will be appreciated that the principles underlying the
invention can be applied in any environment where computing devices
need to be configured and/or updated on a relatively large scale.
The foregoing description is therefore considered to be
illustrative, and not restrictive. The scope of the invention is
indicated by the following claims, and all changes that come within
the meaning and range of equivalents are therefore intended to be
embraced therein.
* * * * *