|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present invention relates generally to a computer system having a
hierarchically layered communications subsystem utilizing the Open System
Interconnections (OSI) model. More particularly, the present invention
relates to an object-oriented model for representing the OSI layers and
communications network topology and for defining the communications
subsystem configuration database.
The use of computer network systems for processing and transmitting data is
well known in the prior art. A typical computer network system consists of
at least one host computer running under some type of operating system,
communication controllers or subsystems, communications media and a
plurality of end users, terminals, printers, displays, for example. The
host computer is connected, via communications media, to either a
communication controller or an end user terminal. The communication
controller interfaces with other communication controllers or end user
terminals via communications media. The communications media may be
telephone lines or microwave digital transmission channels via satellite,
for example.
Maekawa et al, "Operating Systems-Advanced Concepts", copyright 1987 by The
Benjamin/Cummings Publishing Co., pp. 177-206, define a distributed or
networked system as a collection of independent computers and a
communication facility therebetween for exchanging messages. Since such
systems typically do not utilize shared memory, they must rely upon
message passing as the basis for distributed operation and
synchronization.
When computers or processes communicate by exchanging messages, there must
be a set of established rules or protocols to govern the manner in which
communication is allowed to take place. As Maekawa et al point out,
various levels of protocols are required, for example, to ensure that
buffer capacities are not exceeded and that messages are not lost.
In an attempt to standardize network architecture, the International
Organization for Standardization (ISO) has adopted an architectural model
referred to as "Open Systems Interconnections" (OSI). Reference should be
made to the ISO International Standard 7498 relating to a model of OSI
architecture. According to the standard, an "open system" represents a
network as a hierarchical structure of "layers" of functions, each "layer"
providing a collection of related functions that can be accessed and used
by the "layer" above it in the hierarchy. Also, an "open systems
interconnections" refers to a set of protocols used for communications
between two or more open systems.
The ISO standard OSI model delineates seven layers (as shown in FIG. 3).
These include from top to bottom, an application layer 7, a presentation
layer 6, a session layer 5, a transport layer 4, a network layer 3, a
data-link layer 2 and a physical layer 1.
It is usual for some of the layers to be combined or eliminated as a
function of the application served. For example, layers 1-3 can be folded
into a communications layer including the transmission of raw bit streams,
the electrical cooperation between send and receive points, automatic
error detection and recovery, and any packet and routing management
requirements. Also, layers 6 and 7 may be folded together as a single
applications layer in that they focus on the presentation and use of
information. The functions of the session and transport layers are to
provide connections (sessions) between specific pairs of processes (one in
each layered subsystem) on one hand, and reliable host CPU-to-CPU
communications on the other hand. Relatedly, the communications layer is
usually implemented in hardware, whereas the application and intermediate
layers, as now defined, are software implemented.
OSI, as a multiple layer architecture, establishes reliable communications
among processes and guarantees that messages are received in the same
order in which they are sent. In OSI, each layer may be viewed as a
service provider. That is, it provides services to the layer, or user
above it, in order to allow that user to communicate with its peer at
another node. A layer provides these services by establishing a connection
with the next lower layer in the hierarchy until it reaches the bottom or
physical communication layer. At this point, a message is impressed upon
the physical path, the network, to its destination. At the destination
node, the same process is repeated but in reverse order.
The passage of messages vertically down the layers at an originating host
computer, the transmission horizontally over the physical path or layer to
the target computer, and the vertical processing up the target host are
well described in the prior art. Most of the problems addressed by the
prior art have been of the communications variety emphasizing the
horizontal or peer-coupled aspects. These include the establishment of a
session, routing and maintaining synchronization in the presence of noise
or variable bandwidth. Illustratively, reference should be made to
Barzilai et al, U.S. Pat. No. 4,736,369, "Adaptive Session-level Pacing",
issued Apr. 5, 1988. Additional, Carpenter et al, U.S. Pat. No. 5,003,470,
"Method for Tying and Untying Path Access in a CPU-Based, Layered
Communications System", issued Mar. 26, 1991 is illustrative of a
computer-implemented method for maintaining the integrity of ties
connecting control blocks within each layer of a layered communication
subsystem.
Typically, since they provide for vendor independent, any-to-any
connectivity, open communications networks such as OSI are particularly
difficult to configure. The ISO architecture and standards that embody
this open philosophy of connectivity provide a greater amount of
flexibility than can be found in proprietary standards. The amount of
configuration data required by the implementation and consequently needed
to be input by the end-user can therefore be quite complex and voluminous.
Thus, defining and building an adequate database for configuration of the
communications network becomes expensive and time consuming, often
requiring the services of a programmer to complete.
SUMMARY OF THE INVENTION
It is accordingly a principal object of the present invention to provide an
object-oriented, hierarchical model of a computer system OSI network which
defines a database for configuration of that OSI network and provides a
tool for an end-user to enter required data in the database.
It should be recalled that the OSI network is structured as a hierarchy of
layers wherein each layer comprises a bevy of functions, the
interrelations between the layers and the layer functions being defined by
the hierarchical structure. Each layer is relatively independent of the
other layers and may be viewed as providing one or more functional
services to the layer above it in the hierarchy. Thus, modification or
replacement of an implementation of one layer can be accomplished without
major impact on the enclosing layers as long as the newly implemented
layer delivers the same functional service to the layer above and calls
out the functional service of the layer below. While this hierarchical
structure is transparent to the end-user, a knowledge of the hierarchy and
function relationships between the layers is required to define the
configuration database.
It is accordingly another object of the present invention to provide an
object-oriented, hierarchical model of an OSI network wherein a set of
rules for entering and maintaining a configuration database preserves the
hierarchy and interrelationship between the layers and the functions
defined therein.
These and other objects of the present invention are accomplished by an OSI
configuration database subsystem which implements an object-oriented,
hierarchical paradigm for the configuration of computer communications
systems in an open networking environment. In accordance with the
principles of the present invention, the OSI configuration database
subsystem comprises a user interface, a command processing means, a
command execution means and database server means coupling the
configuration database subsystem to storage means for storing the
configuration database. The object-oriented, hierarchical model provides a
hierarchical representation of a corresponding layered computer system
communications subsystem (such as shown in FIG. 2) in which various
functions are defined for each layer and which have a defined functional
relationship with functions defined for at least one layer above or below
a function's associated layer. While some functions may be associated with
several layers, generally the functional relationship is based upon the
services provided by a particular layer to the layers above or below as a
message progresses vertically up or down through the layers while being
passed between sending and receiving computers. The object-oriented,
hierarchical model comprises a plurality of object classes, each object
class being associated with a corresponding function associated with one
or more layers in a layered OSI communications subsystem, a hierarchical
relationship being defined between the plurality of object classes which
represents and preserves the functional relationship between the
associated corresponding functions defined for each layer in the layered
OSI communications subsystem. Each object class comprises at least one
object, each object being described by one or more attributes associated
with that object class.
The OSI configuration database subsystem implements the object-oriented
configuration model with a consistent set of commands for each of the
object classes. In a preferred embodiment five basic commands, add,
change, display, remove and list are defined, as applicable, for each
object class. The command parameters correspond to the object class's
attributes. Users can use the commands interactively, or in a program, to
manipulate specific objects within the configuration database. When the
commands are processed by the OSI configuration database subsystem,
validation checks are completed at several stages prior to the data being
stored in the configuration database and retrieved for use by the OSI
communications subsystem. The validity checks provide enforcement of the
hierarchical relationships between the various object classes and insure
that the consistency and integrity of the configuration database is
maintained.
Object classes group configuration data into more logical, pictorial and
user-understandable modules. The object classes have clearly defined
interrelationships which make it easier for a novice user to gain an
overall understanding of the OSI communications subsystem configuration
and the required configuration data and information.
Definition of object classes allow the end-user to build configuration
databases for actual networks using only those objects that are needed,
i.e. only the information that is required for configuration is requested
and used. Additionally, the object classes are defined so that a user does
not have to specify the same data more than once.
The use of an object-oriented model easily accommodates extensions to add
new features and capabilities. Objects and attributes can be added to
existing object classes without impacting other object classes. New object
classes can be defined when new functions or features are added to the
communications subsystem. Similarly, object classes can be deleted when no
other object classes are dependent on them or when the associated,
corresponding communications function becomes obsolete. Since each object
class represents a tangible entry within the communications network,
object class definitions are easily and naturally extendable to graphical
user interfaces. Also, the object class definitions are easily extended to
distributed and centralized configuration models. By defining new actions,
i.e., commands, on the object classes, such as import/export commands,
objects can be moved around to other systems, or put into distributed or
central directories.
The object-oriented, hierarchical model approach to communications network
configuration, and the object classes defined therein for the OSI
networking environment, are abstract in nature and can be implemented in
any OSI network implementation. Since all OSI implementations must, by
definition, inter-operate with each other, they all must support the same
or similar functions and therefore the same or similar object classes as
defined by the present invention can be utilized in other OSI
implementations. Since the ISO OSI communications model architecture is
one of the most general and flexible of the networking architectures in
use today, many of the concepts and object classes defined by the present
invention are also valid in any open networking environment.
The object-oriented, hierarchical paradigm of the present invention defines
23 object classes corresponding to the ISO OSI communications model
architecture which systematically organizes the configuration data in a
manner that makes it more understandable and easier to use by an end-user.
It is easily extendable to new OSI communications and networking functions
and adaptable to graphical user interfaces. Additionally, because of its
generality and abstractness, the object-oriented, hierarchical model of
the present invention can potentially be adopted by OSI vendors and the
standards committees for use in OSI communications network configuration
and can also be incorporated within already established OSI protocols such
as OSI System Management standards (ISO 9595) and OSI Directory standards
(ISO 9594/CCITT X.500).
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, features and advantages of the present
invention will be apparent from the following detailed description of the
preferred embodiments of the invention, reference being made to the
accompanying drawings, in which like reference numerals indicate like
parts and in which:
FIG. 1 is a conceptual block diagram illustrating an overview of a computer
network incorporating the object-oriented, hierarchical model and a
Configuration Database Support subsystem according to the principles of
the present invention;
FIG. 2 is a block diagram illustrating a three-layer model network
architecture;
FIG. 3 is a diagram illustrating the seven-layer OSI OSI Reference Model
network architecture as incorporated in FIG. 1;
FIG. 4 is a diagram illustrating the object class hierarchy for
connection-mode OSI network services according to the principles of the
present invention;
FIG. 5 is a diagram illustrating the object class hierarchy for
connectionless-mode OSI network services according to the principles of
the present invention;
FIG. 6 is a block diagram illustrating the structure of the Configuration
Database Support subsystem shown in FIG. 1;
FIG. 7 is a block diagram illustrating the structure of the Database Server
Process shown in FIG. 6; and
FIG. 8 is a diagram illustrating a flow chart of the configuration database
creation and maintenance process.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring now to FIG. 1, a conceptual block diagram illustrating a computer
network utilizing an open system interconnects (OSI) communications
architecture and incorporating an object-oriented, hierarchical model and
configuration database support subsystem according to the principles of
the present invention is shown. The term computer network is generally
accepted to mean an interconnected collection of autonomous computers or
machines. As shown in FIG. 1, in any network 10 there exists a collection
of computers 11, 15, 17, 19 intended for running user, i.e., application,
programs. Typically, these computers are referred to as "hosts", although,
alternatively, they may be referred to as "local" and "remote". The hosts
are connected by a communication subnet or transmission system 13 which
carries messages from host to host. Broadly speaking, there are two
general types of designs for the communication subnet 13: a connection
oriented or point-to-point channel (CONS) or a connectionless or broadcast
channel (CLNS).
Modern computer networks are designed in a highly structured manner. To
reduce the design complexity, most networks are organized as a series of
vertical layers or levels, each one built upon its predecessor. The number
of layers, the name of each layer and the function of each layer differ
from network to network and may differ from computer to computer on a
network. However, in all networks, the purpose of each layer is to offer
certain services to the higher layers, shielding those layers from the
details of how the offered services are actually implemented.
Referring now also to FIG. 2, a three-layer model comprising a
communication device 35, an operating system layer 37 and an application
layer 39 is shown. Layer N on one host carries on a conversation with
layer N on another host. The rules and conventions used in this
conversation are collectively referred to as the layer n protocol. The set
of layers and protocols is referred to as the network architecture. The
entities comprising the corresponding layers on different hosts are
referred to as peer processes. In other words, it is the peer processes
that communicate using the protocol. Each pair of layers is separated by
an interface. The interface defines which primitive operations and
services the lower layer offers to the upper layer. In turn, each layer
performs a specific collection of well understood functions.
In reality, no data are directly transferred from layer N on one host to
layer N on another host (except at the lowest layer, i.e., the physical or
subnet layer). Instead, rather, each layer passes data and control
information to the layer immediately below it, until the lowest layer is
reached. At the lowest layer, the communication device layer 35, there is
physical communication with the other host, as opposed to the virtual
communication between the hosts at the higher layers. In FIG. 2, virtual
communication is indicated by dotted lines and physical communication by
solid lines.
Referring now to FIG. 3 and with continuing reference to FIG. 1, a
seven-layer ISO OSI reference model for a computer network architecture is
illustrated. As previously mentioned, several of the layers can be banded
together without violating the principle of layered communications. That
principle is that each layer constitutes a set of functions invoked by
so-called primitives which are executable independent of other layers,
although they are run in a predetermined order. Some of the functions may
invoke functions residing in adjacent layers. That is, a function at layer
N may call a function in layer N-1. The interface between two layers can
be mandated through a service access point. Each host, host A 11, for
example, on the network comprises a local or user application 21 coupled
to a communications support subsystem 23 which is, in turn, coupled to the
subnet 13. The communications support subsystem 23 is implemented by the
host 11 operating system to provide a runtime environment in which the
functions constituting the layers may be executed. For example, the
functions constituting the layers may be implemented in a finite state
machine. That is, a typical layer associates a state transition table and
a number of connections at a layer interface. When a layer is invoked to
perform a function for a particular connection, it will take the current
state, request input a state transition table to find the software or
hardware to process the request. The execution of the ascertained function
changes the state of the connection and the layer, and may produce an
output.
Illustratively, suppose host A 11 desired to send a message M to host B 15
over the OSI system having three layers; namely an application layer 39,
an intermediate layer 37 and a communications layer 35 (as shown in FIG.
2). As each process constituting a successive layer is called, it operates
upon the message, Thus, for a message M generated by the application layer
39, the intermediate layer 37 alters the message to become k1(M). Next,
the communications layer 35, in turn, modifies the result to become
k2(k1(M)). The composite message is sent over the subnet 13 and is
received by the destination or target computer, host B 15 as k2(k1(M)).
Since the composite is decomposed in inverse layer order, it is arguably
demonstrated that each layer communicates with its peer. Thus, the
intermediate layer at host A sends the message k1(M) to the intermediate
layer at host B, while the application layer at host B is the only layer
in receipt of the pristine original message M.
With continuing reference to FIG. 3, a more technical example illustrates
virtual communication from the bottom layer 1 to the top layer 7 of the
seven-layer OSI network architecture. A message, m, is produced by a
process running in application layer 7. The message is passed from layer 7
to the presentation layer 6 according to the definition of the layer 6/7
interface. In this example, layer 6 transforms the message in certain
ways, e.g., text compression, and passes the new message , M, to the
session layer 5 across the layer 5/6 interface. Layer 5 may not modify the
message but may simply regulate the direction of flow, for example. In
like fashion, the message, M, is passed from layer to layer in descending
order, each layer in turn performing work or executing some function as
required to complete the communication of the message m from host A to
host B. The tasks assigned to the various layers may include breaking up
the message into smaller units and adding control headers including
control information such as sequence numbers, to allow the peer process at
the target host to get the pieces back together in the right order. In
turn, the message is passed to the bottom or physical layer 1 for physical
transmission over the subnet 13. At the receiving or target host the
message moves upward, from layer to layer, with headers, etc., being
stripped off as it progresses.
The relation between the virtual and actual communication, i.e., the peer
process abstraction, and the difference between protocols and interfaces
is crucial to the operation of an OSI network. For example, communication
between corresponding layers, layer N, in a pair of hosts may have to take
place when no common language exists between the two hosts. In this
example, the layers below layer N in both of the hosts will have to
perform the necessary translation to enable the two layer to communicate.
Other issues such as data speed capabilities, message length and
error-detection and correction codes, for example, must also be accounted
for in different hosts on the network. Additionally, all parameters,
including the address and physical route the message must take, must be
specified for a particular message to be communicated between two or more
particular hosts.
The process of setting up, i.e., designating, the tasks which must be
accomplished by the various functions at their respective layers or levels
in the OSI network to communicate a message from an application 21 in host
A 11 to a remote application 33 at host B 15 is referred to as configuring
the network. The configuration of the OSI network must be setup each time
a message is sent. Typically, because of the complexity of most OSI
networks, the configuration data for a host is maintained in a database,
database 29, for example, and retrieved dynamically as required during the
communication process. Typically, the configuration database is created
and the required data is entered into the database when the OSI system is
installed on a computer. Also, the configuration database must be
maintained and amended as the capabilities of the network change and
features are added or deleted.
With continuing reference to FIG. 1, a computer or host, host A 11, for
example, comprises at least one user or local application 21 coupled to a
communications support subsystem 23 which, in turn, couples the host to
the subnet 13 via line 24. Line 24 implements the physical or bottom layer
1 of the OSI network and may comprise a two-wire cable or telephone line,
for example. An OSI configuration database subsystem 20 according to the
principles of the present invention comprises a user interface 25, coupled
to a configuration support module 27 and, in turn, a configuration
database 29 coupled to the configuration support module 27. The
configuration support module 27 implements an object-oriented,
hierarchical representation of the OSI layered network as implemented in
the communications support subsystem 23 and various rule sets supporting
that representation thus allowing the database subsystem 20 to provide a
user tool for initially building and dynamically maintaining the
configuration database 29. The configuration database 29 is also coupled
to the communications support subsystem 23 to provide configuration data
in real time as required for the various communications functions
implemented therein to operate.
Referring now also to FIGS. 4 and 5, a graphical illustration of an
object-oriented, hierarchical model for a layered OSI network according to
the principles of the present invention is shown. FIG. 4 illustrates the
structure 40 for a connectionless or broadcast network while FIG. 5
illustrates the structure 50 for a connection-oriented network. Typically,
prior art configuration schemes are based on editable files or a task
oriented approach. The object-oriented, hierarchical model of the present
invention comprises a set of object classes arranged in a hierarchical,
functional relationship corresponding to the layered relationship of the
OSI/Communications network implemented by the communications support
subsystem 23. An object class closely represents something that is
tangible within the network. Examples of `things` that are physically
tangible within a network are lines and routes or a software routine that
provides data compression. There are also logical `things` within a
network that can be represented using object classes, the quality of
service provided by a network route, for example. While object classes
generally correspond to the various functions defined at the different
layers of the OSI network, a particular object class may include several
functions spanning two or more layers in the network structure, or a
particular function may be represented in several object classes. For
example, the Application Mode object class (APPM) 41 defines the
presentation layer 6 and the session layer 5 services to be used by a
local application and is functional subordinate to the Application Entity
(APPE) 43 object class which defines the local applications available for
use at the application layer 7. Object classes provide the user with a set
of building blocks that are logical and modular and provide a graphical
presentation of the OSI network configuration data which aids the user in
organizing and comprehending the configuration data. An object describes a
specific instance of a particular object class, and comprises of a group
of configuration parameters called attributes. Objects of the same object
class have the same attributes. The class of objects defined by a
particular object class can be easily extended by adding new attributes or
deleting obsolete attributes.
Once the object classes for the OSI network have been defined, the
inter-dependencies among the object classes are specified to form the
hierarchical relationship. The hierarchical model provides logical
topology for the OSI communications network as perceived from an
application. The hierarchical model allows `higher` level objects in the
hierarchy to refer to object classes that are `lower` in the hierarchy.
This means that the higher level objects have as their attributes, lower
level object classes. In this manner, the object classes can be linked
together to build arbitrarily large and complex networks, using only those
`pieces` (object classes) that are required for a particular
communications network. The hierarchical model allows sharing of
configuration data between higher level objects of lower level objects,
i.e., several higher level objects can point to the same lower level
object. This facilitates multiplexing and sharing of resources that is
fundamental to all communications networking protocols.
Once the object class inter-dependencies and hierarchy are specified, the
object class attributes are defined. The attributes are simply the
configuration parameters that need to be specified for each of the object
classes. Appendix A attached hereto lists the attributes for each object
class defined corresponding to the OSI/communications network for the
preferred embodiment.
To allow a user to create, build and maintain the configuration database,
object classes and the attributes associated with those object classes are
required to be manipulated. Operations or actions defined on object
classes can be as limited or far ranging as necessary. In the preferred
embodiment, the configuration support module 27 implements the following 5
basic operations:
ADD--Add a new object of a particular object class;
CHANGE--Change one or more attributes of an existing object;
DISPLAY--Display an existing object on a display means;
REMOVE--Remove an existing object from a specified object class;
LIST--Display a list of all the objects of a particular object class.
Other operations can be defined to provide additional features and
capabilities for manipulation of the configuration database, export and
import operations for moving objects of a particular object class between
object classes and/or network systems. By defining the object classes,
operations are conceptually easy to define, and once defined, are
consistent for object classes and objects within an object class. This
consistency simplifies the process for a user to learn and become
efficient in manipulating the existing configuration data, as well as
future extensions to the configuration database.
The configuration support module 27 also implements a set of validation
rules defined for the object-oriented, hierarchical model which are
required to be enfo | | |