|
Claims  |
|
|
What is claimed:
1. An apparatus for pacing data communications transmitted between
communications managers residing on a plurality of hardware platforms of a
distributed heterogeneous communications network, comprising:
a plurality of adjacent communications managers including an origin
communications manager residing on an origin hardware platform a
destination communications manager residing on a destination hardware
platform and at least one intermediate communications manager residing on
an intermediate hardware platform between said origin and destination
communications managers, at least one of said communications managers
having a hardware operating platform different from hardware operating
platforms of all other communications managers;
means, within each prior adjacent communications manager of said plurality
of adjacent communications managers, for appending a pacing request to
information packets being transmitted from said origin communications
manager to said destination communications manager;
a network protocol stack interface, within each prior adjacent
communications manager, for configuring each of said information packets
according to a convention of a network protocol stack between said prior
adjacent communications manager and said next adjacent communications
manager, at least two of said network protocol stacks between adjacent
communications managers being different from one another;
means for transmitting said information packets from said prior adjacent
communications manager to said next adjacent communications manager;
means, within said next adjacent communications manager, for assessing
availability of local resources;
means, within said next adjacent communications manager, for receiving said
information packets from said prior adjacent communications manager;
means, within said next adjacent communications manager, for assessing
pacing requests in each received information packet;
means, within said next adjacent communications manager and responsive to
said pacing requests, for formulating pacing responses indicative of a
desired increase or decrease of transmission of information packets from
said prior adjacent communications manager to said next adjacent
communications manager in accordance with said assessment of local
resources within said next adjacent communications manager;
a network protocol stack interface, within each next adjacent
communications manager, for configuring said pacing response in accordance
with said convention of said network protocol stack between said prior
adjacent communications manager and said next adjacent communications
manager; and
means for transmitting said pacing responses from said next adjacent
communications manager to said prior adjacent communications manager.
2. The apparatus of claim 1, said means for assessing availability of local
resources within said next adjacent communications manager, further
comprising:
means for comparing an amount of available local resources within said next
adjacent communications manager with at least one predetermined threshold.
3. The apparatus of claim 2, said means for comparing further comprising
means for comparing said amount of available of local resources with first
and second predetermined thresholds.
4. A method of pacing data communications transmitted between adjacent
communications managers residing on a plurality of hardware platforms of a
distributed heterogeneous communications network, each communications
manager being connected to a respective plurality of end users,
comprising:
creating information units within an origin communications manager residing
on an origin hardware platform, each information unit including indicia of
a destination communications manager residing on a destination hardware
platform, said origin communications manager, said destination
communications manager and at least one intermediate communications
manager residing on an intermediate hardware platform constituting a chain
of adjacent communications managers;
within each prior adjacent communications manager of said chain of adjacent
communications managers, appending a pacing request to each information
unit indicative of an amount of information to be transmitted to a next
adjacent communications manager of said chain of adjacent communications
managers;
within each prior adjacent communications manager, configuring each of said
information units according to a convention of a network protocol stack
between said prior adjacent communications manager and said next adjacent
communications manager, at least two of said network protocol stacks
between adjacent communications managers being different from one another;
transmitting said information units from said prior adjacent communications
manager to said next adjacent communications manager in accordance with
said convention of said network protocol stack;
assessing availability of local resources within each said next adjacent
communications manager;
receiving said information units from said prior adjacent communications
manager in said next adjacent communications manager;
assessing, within said next adjacent communications manager, pacing
requests appended to each received information unit;
within said next adjacent communications manager, forming pacing responses
in accordance with said pacing requests, each pacing response being
indicative of a required increase or decrease of transmission of
information units from said prior adjacent communications manager to said
adjacent communications manager, in accordance with said assessment of
local resources within said next adjacent communications manager;
within said next adjacent communications manager, configuring said pacing
responses according to said convention of said network protocol stack; and
transmitting said pacing responses from said next adjacent communications
manager to said prior adjacent communications manager.
5. The method of claim 4, further comprising:
assigning a priority designation to each information unit.
6. The method of claim 5, each said next adjacent communications manager
forming said pacing response in accordance with said priority designation.
7. The method of claim 4, further comprising:
transmitting pacing requests from said prior adjacent communications
manager to said next adjacent communications manager without information
units.
8. The method of claim 4, said step of assessing availability of local
resources with each said next adjacent communications manager comprising:
comparing an amount of available local resources within said next adjacent
communications manager with at least one predetermined threshold.
9. The method of claim 8, said comparing step comprising comparing said
amount of available local resources with first and second predetermined
thresholds.
10. The method of claim 4, further comprising:
assessing, within each said next adjacent communications manager, an
intensity of local resource use by other adjacent communications managers;
and
forming and transmitting pacing response to said other adjacent
communications managers according to an intensity of local resource usage. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
The invention relates to a method and apparatus for managing and
facilitating communications in a distributed heterogeneous network.
Information system planners are faced with a wealth of new technology
including powerful processes at every level of the system. Such processes
include, for example, desktop systems, main frame systems, cooperative
processing, graphical user interfaces, distributed data bases and
so-called "open" operating systems, which are just a few of the
technological advances that promise to propel computing even more fully
into the daily activities of people in organizations. The proliferation of
communication networks to connect these processes over the past several
years has increased the potential for users of the information systems to
share information.
Such computer networking resulted in gains in productivity and efficiency,
and networked computer systems provide access to a vast information
repository. Every major hardware and software vendor in the world has
created networked platforms and applications. With such proliferation,
connecting these disparate communication networks and operating platforms
so that they can cooperate and interoperate to allow information in
physically separate networks to be integrated seamlessly has been a
problem.
Corporations are moving rapidly toward implementing large scale strategic
computing systems that integrate all components of an enterprise. These
complex computer systems will be based on networks capable of supporting
large numbers of personal computers, file servers, and multiple links to
disparate main frame systems. Data and processing will be distributed
throughout the network in cooperative processing applications. In
addition, such distributive cooperative processing will allow enterprises
to keep pace with rapid technological change while protecting past
investment in information structure. Enterprise connectivity, transparent
seamless data transfer, and increased transaction processing are just some
of the growing requirements facing modern enterprises.
In conjunction with the increased demand for distributed environments,
there has been an increase in on-line transaction processing. With the
advent of high performance hardware and improved operating systems,
on-line, mission critical applications are being developed and implemented
outside of the main frame environment. It has been projected by the
Vertical Systems Group that local area network originated messages across
Wide Area Network Systems will increase in size 690% (21K to 145K) by 1994
with a corresponding 30% reduction in transport time (1.5 seconds to 1.05
seconds).
In addition to these factors, there is an increasing requirement for
interoperability among various vendor hardware platforms and across unlike
networks. The desire for vendor independence without the associated costs
(both in development and productivity), is driving the support of open
systems and common communication interfaces.
In a traditional environment, applications are forced to perform the
activities that are not only germane to the business needs, but also to
the communications network needs. If an application were viewed as a
column with the user interface at the top of the column, the interface
development at the bottom of the column becomes a customization process
specific to the communications network environment. This customization
inhibits the movement of the application to other environments, and it
limits change to the communications network or operating environment
without impact to the application. Typically, this impact is two-fold,
first the cost of the application rewrite, and second, the cost of
supporting two applications performing the same tasks during cut-over. For
a single platform change in a reasonably-sized environment, hundreds of
applications may be affected, significantly impacting development and
computing resources.
In order to avoid such customization of application, it would be desirable
to have a standard communications network interface independent of the
different types of communications networks used in the system.
SUMMARY OF THE INVENTION
The present invention solves the above-noted problems by providing an
enterprise-wide virtual communications network with seamless access to
applications across multiple communication networks. The present invention
normalizes the application interface to the communications network, thus
relieving the application of performing network-type services, allowing
the application developer to concentrate on the business need and
contributing to making the application portable across multiple
environments which utilize the standard interface.
The present invention can be made to work with all major communications
network architectures worldwide. With the present invention, the benefits
of standard application interfaces, application portability, and virtual
communication networks, can be applied on a global basis, across any
number of disparate systems and architectures with end-to-end network
management capability being provided, independent of the underlying
networks.
The present invention normalizes application interaction with
communications channels through a simplified three-verb interface: SEND,
RECEIVE and STATUS. This allows applications to interact with a single
communications interface, regardless of the number of underlying
communications networks that exist. In addition, selectable levels of
assurance and selectable levels of message priority are provided.
Also according to the present invention, virtual addresses for computing
complexes can be created, and these virtual addresses can then be resolved
to a physical address by an intermediate network node. This provides a
simple, yet effective enterprise-wide scheme for resource management from
within each complex.
The present invention also provides priority queuing, message correlation,
message segmentation and message reassembly.
These features, and others that will become apparent with reference to the
following detailed description, provide several distinct benefits. First,
the interface to applications is normalized across all environments. The
application is not required to compensate for the existing network
services, but instead only needs to interact with the SEND, RECEIVE and
STATUS primitives. The primitives offer parameters for functional
customization of the individual communications managers dependent upon the
user needs, but this does not disrupt the applications in any way.
In addition, the present invention provides seamless, cross-system access
to any user application on the network, and an end user application is no
longer required to know where data and applications reside. The protocol
interface function of the present invention handles the multi-system
access specifics.
Further, because of the ability of the present invention to work across the
major communications networks existing worldwide, it can be ported to any
number of platforms, regardless of their individual communication traits.
This portability of the present invention allows the benefits of the
present invention to be applied to a system or systems of any size.
More particularly, the present invention includes a method and apparatus
for communicating between communications managers of a distributed
heterogeneous network. Within the network, at least one of the
communications managers operates on an operating platform which is
different from the operating platforms of other communications managers in
the heterogeneous network.
To each communications manager are connected a number of end users
including privileged end users and non-privileged end users. The
privileged end users typically perform system management functions and
communicate through the heterogeneous network by use of system management
distribution units, whereas non-privileged end users typically transfer
information or data distribution units between one another.
When sending distribution units, an origin end user transfers the
distribution unit to an origin communications manager along with a
priority designation for the distribution unit and an indication of the
destination end user that is to receive the distribution unit. The
priority designations available to privileged end users for application to
distribution units include all of those available to non-privileged end
users and additional designations of higher priority.
For each distribution unit, the communications manager determines an
adjacent communications manager along a communication path within the
heterogeneous network from the origin end user to the destination end
user. After determining the adjacent communications manager, the
distribution unit is configured according to the conventions of a network
protocol stack existing between the two communications managers.
The distribution units are then transmitted from the origin communications
manager to the adjacent communications manager with system management
distribution units typically being transmitted before any data or
information distribution units.
Within the adjacent communications manager, it is determined whether the
destination end user is connected to the adjacent communications manager.
This can be performed by comparing the identity of the destination
communications manager with the identity of the adjacent communications
manager.
If it is determined that the destination end user is connected to the
adjacent communications manager, the distribution unit is forwarded to
that destination end user. If, on the other hand, it is determined that
the destination communications manager is not the adjacent communications
manager, the adjacent communications manager determines a next adjacent
communications manager along the path to the destination end user, and
configures the distribution unit according to the conventions of a network
protocol stack existing between the adjacent communications manager and
the next adjacent communications manager. This procedure is repeated until
the distribution unit arrives at the end user.
Within each communications manager there exists a management information
base which includes system management information including, for example,
tables used to assess the identity of adjacent communications managers,
indicators of local resource usage, and the like. The management
information base of each communications manager can only be modified by
privileged end users either locally or through system management
distribution units transmitted from remotely located privileged end users.
The present invention also contemplates load distribution among information
processors that share common functions, for example, data base searching
functions. Thus, the information processors which are distributed
throughout the heterogeneous network can be collected into subsets or
complexes of information processors when the information processors within
a complex perform common functions. Each complex is assigned a load
distribution record and is also assigned a virtual communications manager
address.
Then, an origin end user which desires to use the functions common to the
processors in a complex need only indicate the address of the virtual
communications manager in distribution units being transmitted. Then,
within one of the chain of communications managers between the origin
information processor and the information processor which ultimately will
perform the task, the virtual communications manager address is translated
into an actual communications manager address by use of the information in
a load distribution record corresponding to the complex of processors.
Each load distribution record can be adjusted to reconfigure the
distribution of processing load among processors in a complex. In
addition, processors within a complex can themselves be grouped into
subcomplexes, each with virtual communications manager addresses. In other
words, a virtual communications manager address can either be resolved
into an actual communications manager address, or into another virtual
communications manager address.
The pacing of communications between adjacent communications managers is
also contemplated by the present invention. To pace communications, pacing
requests are formulated in a prior adjacent communications manager and
appended to information packets being transmitted to a next adjacent
communications manager. Those pacing requests typically include a request
to increase the amount of information that can be transferred from the
prior adjacent to next adjacent communications manager.
The prior adjacent communications manager then configures the information
packet and pacing request in accordance with a convention of a network
protocol stack existing between the prior adjacent and next adjacent
communications managers. Pacing requests typically call for the increase
in information flow from prior adjacent to next adjacent communications
manager. The information packets with pacing requests are then transmitted
from the prior adjacent to the next adjacent communications manager, and
the next adjacent communications manager determines whether the request to
increase transmission should be honored, or whether transmission should be
reduced, based on availability of local resources. A pacing response is
then formulated and configured according to the conventions of the network
protocol stack existing between the next adjacent and prior adjacent
communications manager, and the pacing response is transferred from next
to prior adjacent communications manager over the network protocol stack.
If local resources are particularly scarce, the pacing response can
indicate that the next adjacent communications manager refuses all
communication from the prior adjacent communications manager, with the
exception of the highest priority system management communications. In
addition, since a particular communications manager can have a number of
adjacent communications manager, a communications manager can apply
different pacing restrictions on different adjacent communications
managers, typically as a function of intensity of use of local resources
by the adjacent communications managers.
The detailed features and functions of the present invention will be more
clearly understood by those skilled in the art with reference to the
drawings and detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a distributed heterogeneous network embodying the communications
manager of the present invention.
FIG. 2 is an exemplary configuration of vendor specific hardware and
software embodying the communications manager of the present invention.
FIG. 3 is a more detailed exemplary configuration of hardware and software
embodying the communications manager of the present invention.
FIG. 4 illustrates the flexibility of the present invention to allow
applications to communicate over various network transport services.
FIG. 5 is a block diagram illustrating the layering of the communications
manager environment according to the present invention.
FIG. 6 is a schematic representation of the major functions of the
communications manager of the present invention connecting end users to
one another.
FIG. 7 is a more detailed schematic representation of the functions of the
communications manager of the present invention.
FIG. 8 is yet another detailed schematic representation of the functions of
the communications manager of the present invention.
FIG. 9 is the data flow through multiple communications managers according
to the present invention.
FIG. 10 is the data flow control from adjacent communications manager to
adjacent communications manager in accordance with the present invention.
FIG. 11 shows the resource management of the communications manager/network
layer of the present invention.
FIG. 12 shows asynchronous traffic flow from one end user to another
according to the present invention.
FIG. 13 shows synchronous traffic flow from one end user to another for a
query according to the present invention.
FIG. 14 shows synchronous traffic flow from one end user to another for a
reply according to the present invention.
FIGS. 15A and 15B illustrate CM to CM protocol flow according to the
present invention.
FIGS. 16A and 16B show query-reply and query-relay/query-reply correlation
flow according to the present invention.
FIG. 17 is an example of a Load Distribution Record (LDR) according to the
present invention.
FIG. 18 is the format of a communications manager Interchange Unit (CMIU)
according to the present invention.
FIG. 19 is a diagram of the CMIU component field introducer according to
the present invention.
FIG. 20 is a diagram of the CMIU element subfield introducer according to
the present invention.
FIG. 21 is a diagram of the CMIU fields and subfields according to the
present invention.
FIGS. 22, 23 and 24 are diagrams of the CMIU Formats 1, 2 and 3 in
accordance with the present invention.
FIG. 25 is a diagram of the CMIU prefix component as used in the present
invention.
FIG. 26 is a diagram of the CMIU transmission services component as used in
the present invention.
FIG. 27 is a diagram of the CMIU control component as used in the present
invention.
FIG. 28 is a diagram of the CMIU environment component as used in the
present invention.
FIG. 29 is a diagram of the CMIU distribution component as used in the
present invention.
FIG. 30 is a diagram of the CMIU response component as used in the present
invention.
FIG. 31 is a diagram of a Systems Management Distribution Unit (SMDU)
component field introducer according to the present invention.
FIG. 32 is a diagram of another SMDU component field introducer according
to the present invention.
FIG. 33 is a diagram of a SMDU element subfield introducer according to the
present invention.
FIG. 34 is a diagram of another SMDU element subfield introducer according
to the present invention.
FIG. 35 is a diagram of SMDU fields and subfields according to the present
invention.
FIG. 36 illustrates the cooperation of local and remote communications
managers.
FIG. 37 illustrates category 1 data exchange.
FIG. 38 illustrates category 2 data exchange.
FIG. 39 illustrates category 3 data exchange.
FIG. 40 illustrates category 4 data exchange.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
A. DEFINITIONS
ACF/NCP--IBM's Advanced Communications Facility/Network Control Program
API--Application Program Interface
APPC--IBM's Advanced Program-to-Program Communications
AS--Application Services
CM--Communications Manager. An application level entity which manages the
common Network Protocol Stack resource on behalf of the other applications
in the invention. Communications between applications residing in separate
physical systems are co-managed by the Communications Manager counterparts
parts residing in the individual systems.
CM#--Communications Manager Number. A unique number assigned to each
Communications Manager by which it is known by all other Communications
Managers.
CMAPI--Communications Manager Applications Program Interface. The command
boundary between the application
and the Communications Manager.
CMIU--Communications Manager Interchange Unit. An envelope which the
Communications Manager appends to a distribution or distribution segment.
DIA--IBM's Document Interchange Architecture
DU--Distribution Unit. Data which the End User has passed to the
Communications Manager for delivery to a counterpart End User.
EU End User. An applications program using the Communications Manager in
order to communicate with a counterpart End User.
EU#--End User Number. A number assigned to each End User within the
network.
GTID--Global Terminal ID
HLH--Host Link Handler
INET--Integrated Network
IRD--Intermediate Routing and Distribution Node
IWS--Intelligent Workstation
LAN--Local Area Network
LCN--Local Computer Network
LDR--Load Distribution Record
LU--Logical Unit within IBM's SNA
MIB--Management Information Base. CM operational data base containing
routing information, CM local data elements and CM activity status.
MPIF--IBM's Multiprocessor Interconnect Facility
MVS IBM's Multiple Virtual Storage
NPH--Network Protocol Header
NPS--Network Protocol Stack. Any set of network transport services which
facilitates the ability of applications to communicate with other
applications.
NPT--Network Protocol Trailer
PSAPI--Protocol Stack Applications Program Interface. The underlying
transport mechanism interface utilized in Communications Manager network
transfers.
SMAP--Systems Management Applications Program. The most significant
privileged End User to be invoked in support of Communications Manager
Management Command type functions. The SMAP is the single focal point
through which to coordinate the management of the Communications Manager
"Virtual Network" environment and resources.
SMAPI--Systems Management Applications Program Interface
SMDU--Systems Management Distribution Unit. A distribution which flows
between partner SMAPs, and which is made up of a series of self-defining
fields that may themselves be broken into self-defining subfields.
SNA--IBM's Systems Network Architecture
SSCP--System Services Control Point within IBM's SNA
TCP/IP--Transmission Control Protocol/Internet Protocol
TCU--Terminal Control Unit
TPF--IBM's Transaction Processing Facility
WANS--Wide Area Network Services
B. DESCRIPTION
1. Introduction
FIG. 1 illustrates, without reference to specific vendor products, a
configuration of the Communications Manager of the present invention. It
illustrates the Communications Manager as a connection facility for
connecting any computing device to any other computing device on a
peer-to-peer basis. FIG. 1 also illustrates that this connection can be
carried over various communications networks. The only restriction to
these connections being that two computing devices that are immediately
adjacent, using the Communications Manager of the present "invention to
communicate with each other, are required to use the same underlying
network.
Referring to FIG. 1, host computers 101 using Communications Managers 102
communicate directly with other host computers 101 over an unspecified
Local Computer Network 103. Host computers 101 using Communications
Managers 104 communicate directly with each other and with computers with
a Unix derivative operating system 106, personal computers 107, mini
computers 108, and an unspecified computing device 109, each with their
own Communications Managers, over an unspecified Wide Area Network 110
through controller 111.
Computer 106 with a Unix derivative operating system using Communications
Manager 112, communicates directly with other computers 113 with Unix
derivative operating systems, personal computers 114, and unspecified
computing devices 116, each with their own Communications Managers, over
an unspecified local area network 117 of bus technology.
Personal computer 107 using Communications Manager 118 communicates
directly with other personal computers 119, and unspecified computing
devices 121, each with their own Communications Managers, over an
unspecified Local Area Network 122 of ring topology.
Minicomputer 108 uses Communications Manager 123 to communicate directly
with personal computers 124 and unspecified computing devices 126, each
with their own Communications Managers, over an unspecified vendor
proprietary network 127.
An unspecified computing device 109 using Communications Manager 128
communicates directly with personal computers 129 and unspecified
computing devices 131, each with their own Communications Managers, over
an unspecified communications network 132.
Finally, FIG. 1 implicitly illustrates that any computer with a
Communications Manager in accordance with the present invention can
communicate with any other computer with a Communications Manager through
the pass-through routing capabilities of the present invention. The
various networks shown generically in FIG. 1 are illustrative of the
networks with which the Communications Manager of the present invention
can be used, and should not be construed to restrict the present invention
to only those networks. The Communications Manager of the present
invention can use any network that can pass data in octet format or that
can simulate passing da | | |