WO1991005417A1 - Pipes logical network - Google Patents

Pipes logical network Download PDF

Info

Publication number
WO1991005417A1
WO1991005417A1 PCT/US1990/005572 US9005572W WO9105417A1 WO 1991005417 A1 WO1991005417 A1 WO 1991005417A1 US 9005572 W US9005572 W US 9005572W WO 9105417 A1 WO9105417 A1 WO 9105417A1
Authority
WO
WIPO (PCT)
Prior art keywords
kernel
area
resource
network
kernels
Prior art date
Application number
PCT/US1990/005572
Other languages
French (fr)
Inventor
Daniel R. Gregerson
David R. Farrell
Original Assignee
Peerlogic, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peerlogic, Inc. filed Critical Peerlogic, Inc.
Publication of WO1991005417A1 publication Critical patent/WO1991005417A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass

Definitions

  • remote information processing and storage resources such as processors, disks, printers and fileservers. If an ap ⁇ plication is accessing a resource that is not located in the same machine in which the application is executing, such a resource is termed as remote resource.
  • a resource could be an executable software code.
  • these resources are directly or indirectly con ⁇ nected using heterogeneous or homogeneous communications networks and are managed by different computer operating systems. Access to these resources requires mapping all the syntactical and semantical differences among different networks and operating systems.
  • Locating a resource requires understanding the naming convention for the particular protocl, which is generally based upon the underlying topology. Keeping track of a resource thus requires constant information flow between application and resource.
  • the application task is complicated if the underlying transport and the session mechanism are based upon different communication protocols. If this is the case, the application is responsible for providing the necessary mapping for the syntax, semantics and timing of the protocols.
  • the application and the resource are not using the services of the same operating system, the situation is further complicated.
  • To access a disk managed by Microsoft DOS environment by an applica- tion running under UNIX environment requires that the ap ⁇ plication fully understand the details of both environ- ments and the differences between them.
  • the ap ⁇ plication is responsible for providing all the required syntactical and semantical mapping between the two operat- ing systems.
  • the application is also responsible for managing any timing dependent behavior of the system.
  • UNIX is a multi-user system with no built-in sup ⁇ port for real time applications. The response time of the UNIX will depend upon the mixture of the applications be ⁇ ing executed under UNIX.
  • RPC allow an application to access a remote resource; but accessing a resource is only part of the problem.
  • the IEEE Token Passing Ring generates a logical ring over a bus topology, this logical ring provides only a subset of the services and functions of data link layer as specified by the ISO/OSI model; see the ISO International Standard 7498 discussed above.
  • the PLN system is capable of dynamic reconfiguration, which means that the application is free to define the size of the Area, resources that can be ac- Waitd in each Area, and the access mode of the resources.
  • the size of an Area means the number of machines located in that Area.
  • PLN is reconfigured and the faulty segment is isolated from the healthy system.
  • Each application is free to define a maximum number of resources and machines in an Area, a maximum number of sessions that can be opened with a resource, a maximum number of Areas in a Group, a maximum number of Groups in a Domain, and a maximum number of Domain in a Network.
  • applications are free to build logical network suitable to their specific requirements.
  • the contemporary communication networks are mixture of error free and error prone networks.
  • PLN provides a unified error free communication network to the applications. If the underlying physical communication network is error free, then the PLN will take advantage of this built-in error free characteristic of the network. On the other hand, if the underlying com ⁇ munication network is error prone, the PLN adds necessary functionality to convert the network into an error free network.
  • the PLN system comprises a fault- tolerant network, in that if a transient failure occurs in the PLN, the PLN makes enough attempts to restore the original state of the system.
  • An example of a transient failure is loss of a message, in which case the PLN will retransmit the same message.
  • Another possibility is that of a machine going down for a short time. In this case, PLN will start an special process that will let the machine to be again connected with PLN. In case of permanent failure of a machine, PLN is automatically reconfigured.
  • PLN also provides a consisten communication network by automatically keeping track of all the resources located in the network. The status of the resources within an Area is known to all the machines in that Area. If a machines goes down, all the other machines in that Area will mark the resources belonging to the faulty machines as invalid.
  • the PLN also provides for definite time resolu- tion of failures. Since status of the resources is continuously monitored, any failure in the PLN will be known. Upon detection of a failure, the recovery mechanism is immediately activated. The mechanism guarantees that a reported failure will be resolved within a prespecified definite time. If the faulty segment of the PLN recovers with this time, the original state of the PLN will be restored. Otherwise, PLN will be reconfigured.
  • Figure 1 shows a standard communication network to which the logical network of the present invention may be applied.
  • FIG 2 is a block diagram of a logical network (referred to herein as a PIPES Logical Network, or PLN) which is generated by the system of the present invention.
  • Figure 3 is a diagram of the three logical lay- ers of the invention.
  • FIGS 4 and 5 are diagrams of structures developed by the system of the invention.
  • Figure 6 is a diagram showing logical topology of an area of the invention.
  • Figure 7 is an illustration of the routing of a message in the system of the invention.
  • Figure 8 is an illustration of the process of reformation of an area after removal of a kernel.
  • Figures 9-13 are keys to symbols used in Figures 14-69.
  • Figures 14-22 are login state diagrams pertain ⁇ ing to a preferred embodiment of the invention.
  • Figures 23-34 show the login process of the invention.
  • Figures 35-38 show the process by which a local node of the invention determines its ends.
  • Figures 39-44 show the anneal process of the invention.
  • Figures 45-49 are PAPI kernel state diagrams pertaining to a preferred embodiment of the invention.
  • Figures 50-69 are PAPI state diagrams of the invention.
  • the present invention is directed to a PIPES logical network which solves the problems and has the advantages discussed above.
  • the systems of the invention are described below and in the manuals entitled: (1) "PIPESTM User's Guide”; (2) “PIPES API 'PAPI'* Programmer's Reference”; (3) “PIPES API 'LAPI'/Low Level API Version 1.0 (Draft Manual)”; and (4) "Distributed Ap ⁇ plications and PIPES/A Discussion Paper", all by The Lambda Group, and all of which are submitted herewith and are incorporated herein by reference.
  • resource is very broad, and may be an information display, an application as defined above, a processing element, a storage element such as a disk drive or other memory, or other elements to be accessed by a user. Often a resource will reside in a machine.
  • Figure 1 shows a typical communication network (which is an integrated services digital network, or
  • ISDN in which a resource is located by its machine name, its network name, and its internetwork name.
  • a "name" in this context can mean any alphanumeric string.
  • the system of the invention builds a logical network on top of a physical network.
  • the gateways may be dedicated computers, and are used only between two differ ⁇ ent networks. (Between similar networks, bridges are used. )
  • the token ring in Figure 1 may be the IEEE Token Ring.
  • Figure 2 shows the topological structure of the PLN.
  • a resource is identified by its Resource name, Machine name, Area name, Group name, Domain name and a Network name.
  • an Area is a set of Machines
  • a Group is a set of Areas
  • a Domain is a set of Groups
  • a Network is a set of Domains.
  • PAPI is essentially a set of functions written in ANSI C. These functions are used to access the services offered and are discussed separately.
  • the Kernel is the part of software according to the invention
  • the Kernel utilizes the transport layer as a reliable transport mechanism to access the remote resources; thus, the transport in the preferred embodiment comprises software which provides reliable, error-free communication from kernel to kernel in different computers, and constitutes the invention's interface with the physical network.
  • the PLN construction process begins when the invention is installed in a computer.
  • a newly installed Kernel begins broadcasting its presence.
  • the transport Layer of the PIPES provides a service in which a message is transmitted which is listened by all the Kernels in an Area. This mechanism is called the broadcast mechanism.
  • the broadcast message contains a Resource Control Block (RGB) describing the new Kernel.
  • RGB Resource Control Block
  • the Kernel is the only Kernel active at that moment, the Kernel will establish its own Area and will periodically broadcast its presence. This message is broadcasted periodically, so that if a new Kernel is installed then the new Kernel can determine that a Kernel already exists.
  • Kernel when a Kernel is installed and another Kernel is already active, a two Kernel ilrea is formed.
  • this two Kernel Area one Kernel will periodically broadcast its presence in the Area, and may be referred to as the "Head of the Area.”
  • the other Kernel will act as a "Tail of the Area.”
  • the Tail of the Area monitors the messages broadcasted by the newly installed Kernels within that Area.
  • a third Kernel If a third Kernel is then installed, it will broadcast its presence in the Area. This third Kernel will be logically connected with this Area as follows: if the third Kernel responds to the messages broadcasted by the Head of the Area, it will be selected as a new Head of the Area ( Figure 4); however, if the Tail of the Area responds to the third Kernel, the Third Kernel will be added as a Tail of the Area ( Figure 5). It is possible that the third Kernel might respond to the Head of the Area and the -10-
  • Tail might respond to the third Kernel. This situation might result in the the new Kernel being added as Head and Tail at a same time. Therefore, a mechanism is provided by the invention which detects this situation when it 5 arises, so that the newly added kernel is added only as Head or Tail, and not both.
  • Figure 6 indicates the logical topology of an Area.
  • a Kernel to Kernel session exists between its right and left neighbors. Once a session is established the control messages are exchanged so that the
  • Control Messages in a network are used to update
  • control message are also used for establishing and de-establishing connections between peer communicating entities.
  • 35 message is received by all the machines or by only a few machines.
  • the message is transmitted to each machine separately.
  • the drawback of this approach is that the transmitting machine is tied up for the duration of the transmission of this control message. And, if this machine has a resource that is being accessed by the rest of the machines, then the whole network will be blocked and overall performance of the network will be degraded. Since broadcast messages are periodically transmitted between each machine and the rest of the machines, such blocking may occur frequently.
  • PLN control message delivery In PLN control message delivery according to the invention, all the Kernels in an Area with the exception of Head and Tail are connected (in session) with right and left neighbors (Kernels). This double coupling is superior to the one that is supported by the IEEE Token Passing Bus protocol mentioned above, where the nodes are only coupled with one neighbor. Coupling a Kernel with its right and left neighbor allows two kernels to detect a failure when a failure occurs. This allows a faster detection of the failure in the logical network.
  • the right session is called Call Session (CS) and the left session is called Listen Session (LS) ( Figure 6).
  • CS Call Session
  • LS Listen Session
  • a control message such as addition of the resource is placed on CS by the originating Kernel.
  • the same message will be received at the LS by the right neighbor of the originating Kernel.
  • the right neighbor will place the message on its CS without processing.
  • the Tail of the Area will receive this message. Since the Tail has no-CS, the message is reflected back.
  • this message will be received at the CS of all the Kernels where it i ⁇ processed and placed on the LS side.
  • the message propagates throughall the Kernels and arrives at the Head of the Area. Upon arrival at the Head of the Area, the message is reflected back again.
  • the message will finally be received on the LS side by the originating Kernel, where it will be discarded.
  • Figure 7 illustrate ⁇ thi ⁇ sequence.
  • the PLN Control Message delivery Technique resolves the problems caused by the earlier techniques. It does not occupy the transmitting machine for a long duration, and it provides guaranteed delivery of control messages.
  • the invention provides two mechanisms to provide an access to a resource located in PLN, designated
  • IntraArea Resource Access means that an application executing in an Area wants to access a resource within that Area. Since the statuses of all the resources are stored in every machine, the access to these resources is fast, which improves the overall performance of the system.
  • the application simply searches its list of RCBs to find a re ⁇ ource located in it ⁇ Area. If an RCB is there that matches the type of the resource the applica- tion is looking for, then the application requests a ses ⁇ sion with the resource. (All the required information to access a resource are stored in the corresponding RCB.) This request message is passed on to the resource, using the transport layer of the invention. The resource may accept or reject this request. If the request is ac ⁇ cepted, the accepted message is passed on by the Kernel to the application and a logical full duplex connection is established between the application and resource. Once the session is established, the application and resource can communicate.
  • the invention does not maintain the resource information that is not within the Area, thus reducing the amount of memory required for resource information stor ⁇ age, and also reducing the overhead involves in maintain- ing these information. Therefore, an InterArea Resource Access requires sending an inquiry message to other areas locating the resource and then establishing the connec ⁇ tion. While the session is in progress, the resource status i ⁇ continuously updated.
  • Heads of Areas are connected to generate a Group.
  • a Group has a Group Head and a Group Tail.
  • Group Heads are connected together to generate a Domain.
  • a Domain has a Domain Head and Domain Tail.
  • Domain Heads are connected together to Generate a Network and a Network has a Network Head and a Network Tail. This Philosophy will be extended as the Network grows.
  • PAPI solves the problems caused by the operating system dependencies.
  • PAPI is a set of functions which is writ ⁇ ten in C language and is consistent for all operating sy ⁇ tems.
  • the unified functions of the invention that can be called from a high level language such as C or PASCAL are:
  • InitPIPESAPI initializes the application program's access to the underlying Kernel.
  • TermPIPESAPI terminates the application program's access to the underlying Kernel.
  • AddResource advertises the availability of a resource within an Area.
  • RemoveResource advertises that a previ ⁇ ously added resource is removed.
  • AllocateSession establishes a reliable, point-to-point, full duplex connection between two communicating entities.
  • DeallocateSession de-establishes a previ ⁇ ously established connection.
  • SendMessage sends a message from a com- municating entity to other communicating enti ⁇ ties.
  • ReceiveMessage receives a message from a communicating entity.
  • ScheduleTimeProces ⁇ activates an applica- tion specified process after a pre-specified time expires.
  • ScheduleOSProcess allows an application to execute a remote or local process.

Abstract

In a PIPES logical network, each resource is accessable by other resources by means of an address which includes the names of the accessed resource, the machine in which the accessed resource is located, the area in which the accessed machine is located, the group in which the accessed area is located, and the domain in which the accessed group is located.

Description

PIPES Logical Network
Background of the Invention With recent advances in information processing technology, it has become possible to access the remote information processing and storage resources such as processors, disks, printers and fileservers. If an ap¬ plication is accessing a resource that is not located in the same machine in which the application is executing, such a resource is termed as remote resource. For instance, a resource could be an executable software code. Generally, these resources are directly or indirectly con¬ nected using heterogeneous or homogeneous communications networks and are managed by different computer operating systems. Access to these resources requires mapping all the syntactical and semantical differences among different networks and operating systems.
For example, suppose an application executing in a computer network needs to access a remote resource in another computer network. Also, assume that the applica¬ tion has access to the services and functions offered by the ISO session layer. In this case, the application is responsible for both locating the resource (since the resource needs to be -located before a session can be established with it) and keeping track of the resource. The resource status is continuously monitored so that ap¬ plication can take corrective action in case the resource fails. A discussion of ISO standards is found in ISO
International Standard 7498/Information Processing Systems/Open System Interconnection, Basic Reference Model, International Organization for standardization, Geneva, Oct. 1983. Other background information may be found in the following references: IEEE Standard 802.3, CSMA/CD Access Method and Physical Layer Specifications, IEEE project 802, Local Area Network Standards, IEEE NewYork, July 1983; Draft E, IEEE Standard 802.5, Token Ring Access Method and Physical Layer Specifications, IEEE Project 802, Local Area Network Standards, IEEE, NewYork, Aug. 1984; and IEEE Standard 802.4 Token Passing Bus Ac¬ cess Method and Physical Layer Specifications, IEEE Project 802, Local Area Network Standard, IEEE, NewYork NewYork. Each of the foregoing references is incorporated herein by reference. Locating a resource requires understanding the naming convention for the particular protocl, which is generally based upon the underlying topology. Keeping track of a resource thus requires constant information flow between application and resource. The application task is complicated if the underlying transport and the session mechanism are based upon different communication protocols. If this is the case, the application is responsible for providing the necessary mapping for the syntax, semantics and timing of the protocols.
If the application and the resource are not using the services of the same operating system, the situation is further complicated. For example, to access a disk managed by Microsoft DOS environment by an applica- tion running under UNIX environment requires that the ap¬ plication fully understand the details of both environ- ments and the differences between them. Again, the ap¬ plication is responsible for providing all the required syntactical and semantical mapping between the two operat- ing systems. The application is also responsible for managing any timing dependent behavior of the system. For example, UNIX is a multi-user system with no built-in sup¬ port for real time applications. The response time of the UNIX will depend upon the mixture of the applications be¬ ing executed under UNIX. These complexities arise because the communication networks and operating systems are not designed for distributed applications, and because the communication networks and operating systems were developed without compatibility considerations.
Several products available in the marketplace— such as Novell Netware, Microsoft LAN Manager, and SUN
RPC—allow an application to access a remote resource; but accessing a resource is only part of the problem. Ad¬ ditional difficulties arise from the fact that the ap¬ plications are not capable of generating their own small logical network. Although the IEEE Token Passing Ring- generates a logical ring over a bus topology, this logical ring provides only a subset of the services and functions of data link layer as specified by the ISO/OSI model; see the ISO International Standard 7498 discussed above. An additional problem iε that the applications must understand the complex topological structure of the under¬ lying transport system.
Summary of the Invention It is therefore a fundamental object of the present invention to resolve the problems discussed above, and to improve the performance of distributed applica¬ tions. The invention resolves these problems by building a reconfigurable logical network that is based upon a simple hierarchical structure.
It is an object of the invention to provide a logical network which has particular advantages over physical communication networks, including the distinct advantage of being dynamically configurable. It is another object of the invention to provide an error-free computer communication network for applica- tion developers, whether or not the underlying physical communication network is an error-prone communication network.
It is a further object of the invention to provide such a network which is inherently fault-tolerant. It is another object of the invention to provide such a network which gives a consistent view of the resources to its applications, which use PLN as a transport mechanism. Yet another object of the invention is to provide a logical network in which all topological changes and failures are resolved within a definite time. In ad¬ dition, resource information is distributed and fully replicated; that is, resource information is stored in every machine of the area in which the resource is located.
The PLN system is capable of dynamic reconfiguration, which means that the application is free to define the size of the Area, resources that can be ac- cessed in each Area, and the access mode of the resources. In this context, the size of an Area means the number of machines located in that Area. In case of a failure, PLN is reconfigured and the faulty segment is isolated from the healthy system. Each application is free to define a maximum number of resources and machines in an Area, a maximum number of sessions that can be opened with a resource, a maximum number of Areas in a Group, a maximum number of Groups in a Domain, and a maximum number of Domain in a Network. Thus, applications are free to build logical network suitable to their specific requirements.
The contemporary communication networks are mixture of error free and error prone networks. PLN, however, provides a unified error free communication network to the applications. If the underlying physical communication network is error free, then the PLN will take advantage of this built-in error free characteristic of the network. On the other hand, if the underlying com¬ munication network is error prone, the PLN adds necessary functionality to convert the network into an error free network.
In addition, the PLN system comprises a fault- tolerant network, in that if a transient failure occurs in the PLN, the PLN makes enough attempts to restore the original state of the system. An example of a transient failure is loss of a message, in which case the PLN will retransmit the same message. Another possibility is that of a machine going down for a short time. In this case, PLN will start an special process that will let the machine to be again connected with PLN. In case of permanent failure of a machine, PLN is automatically reconfigured.
PLN also provides a consisten communication network by automatically keeping track of all the resources located in the network. The status of the resources within an Area is known to all the machines in that Area. If a machines goes down, all the other machines in that Area will mark the resources belonging to the faulty machines as invalid.
The PLN also provides for definite time resolu- tion of failures. Since status of the resources is continuously monitored, any failure in the PLN will be known. Upon detection of a failure, the recovery mechanism is immediately activated. The mechanism guarantees that a reported failure will be resolved within a prespecified definite time. If the faulty segment of the PLN recovers with this time, the original state of the PLN will be restored. Otherwise, PLN will be reconfigured.
In the PLN, resource information is distributed and fully replicated. Each machine "knows" the current status of all the resources located in its Area. This status is continuously updated using session oriented control messages.
Additional objects and advantages of the present logical network over prior designs will appear in the course of the following discussion.
Brief Description of the Drawings
Figure 1 shows a standard communication network to which the logical network of the present invention may be applied.
Figure 2 is a block diagram of a logical network (referred to herein as a PIPES Logical Network, or PLN) which is generated by the system of the present invention. Figure 3 is a diagram of the three logical lay- ers of the invention.
Figures 4 and 5 are diagrams of structures developed by the system of the invention.
Figure 6 is a diagram showing logical topology of an area of the invention. Figure 7 is an illustration of the routing of a message in the system of the invention.
Figure 8 is an illustration of the process of reformation of an area after removal of a kernel.
Figures 9-13 are keys to symbols used in Figures 14-69.
Figures 14-22 are login state diagrams pertain¬ ing to a preferred embodiment of the invention.
Figures 23-34 show the login process of the invention. Figures 35-38 show the process by which a local node of the invention determines its ends.
Figures 39-44 show the anneal process of the invention.
Figures 45-49 are PAPI kernel state diagrams pertaining to a preferred embodiment of the invention. Figures 50-69 are PAPI state diagrams of the invention.
Description of the Preferred Embodiments The present invention is directed to a PIPES logical network which solves the problems and has the advantages discussed above. The systems of the invention are described below and in the manuals entitled: (1) "PIPES™ User's Guide"; (2) "PIPES API 'PAPI'* Programmer's Reference"; (3) "PIPES API 'LAPI'/Low Level API Version 1.0 (Draft Manual)"; and (4) "Distributed Ap¬ plications and PIPES/A Discussion Paper", all by The Lambda Group, and all of which are submitted herewith and are incorporated herein by reference. It should be noted that each of these four publications constitutes copyrighted material of The Lambda Group, and should not be reproduced without the respective copyright notices appearing thereon. Also describing the system of the invention is the document entitled PIPES Technical Overview, which is submitted herewith as Appendix A, as well as the pseudocode (i.e. standard non-coded English) descriptions of routines for implementing the logical network of the invention submitted herewith as Appendix B. In the course of the following discussion, the term application generally refers to a computer program which is not part of an operating system of a processor. The term "machine" means any machine, such as a computer, which can process and store information. The term "resource" is very broad, and may be an information display, an application as defined above, a processing element, a storage element such as a disk drive or other memory, or other elements to be accessed by a user. Often a resource will reside in a machine.
Figure 1 shows a typical communication network (which is an integrated services digital network, or
ISDN), in which a resource is located by its machine name, its network name, and its internetwork name. A "name" in this context can mean any alphanumeric string. The system of the invention builds a logical network on top of a physical network. In Figure 1, the gateways may be dedicated computers, and are used only between two differ¬ ent networks. (Between similar networks, bridges are used. ) The token ring in Figure 1 may be the IEEE Token Ring.
Figure 2 shows the topological structure of the PLN. In the PLN architecture, a resource is identified by its Resource name, Machine name, Area name, Group name, Domain name and a Network name. In this context, an Area is a set of Machines; a Group is a set of Areas; a Domain is a set of Groups; and a Network is a set of Domains. As shown in Figure 3, the invention is im¬ plemented in three distinct layers: PAPI, Kernel and Transport. PAPI is essentially a set of functions written in ANSI C. These functions are used to access the services offered and are discussed separately. The Kernel is the part of software according to the invention
(constructed pursuant to the flow charts of the drawings herein) which implements the PAPI functions, and is responsible for: structuring the PLN over an underlying physical network; for reconfiguration of the network in case of failure in the system; and for maintenance of the status of all the resources in the system. The Kernel utilizes the transport layer as a reliable transport mechanism to access the remote resources; thus, the transport in the preferred embodiment comprises software which provides reliable, error-free communication from kernel to kernel in different computers, and constitutes the invention's interface with the physical network.
In order to structure the PLN over a physical network, all three layers of the invention shown in Figure 3 are installed in every Machine that is a part of PLN. All the required hardware and software should already be active before the invention is loaded in a machine. In the following section we will describe how an Area in the PLN will be generated. Similar philosophy will be used to build the Group, Domain and Network of the PLN.
Structuring An Area
The PLN construction process begins when the invention is installed in a computer. A newly installed Kernel begins broadcasting its presence. (The transport Layer of the PIPES provides a service in which a message is transmitted which is listened by all the Kernels in an Area. This mechanism is called the broadcast mechanism. ) The broadcast message contains a Resource Control Block (RGB) describing the new Kernel. In case the Kernel is the only Kernel active at that moment, the Kernel will establish its own Area and will periodically broadcast its presence. This message is broadcasted periodically, so that if a new Kernel is installed then the new Kernel can determine that a Kernel already exists. On the other hand, when a Kernel is installed and another Kernel is already active, a two Kernel ilrea is formed. In this two Kernel Area, one Kernel will periodically broadcast its presence in the Area, and may be referred to as the "Head of the Area." The other Kernel will act as a "Tail of the Area." The Tail of the Area monitors the messages broadcasted by the newly installed Kernels within that Area.
If a third Kernel is then installed, it will broadcast its presence in the Area. This third Kernel will be logically connected with this Area as follows: if the third Kernel responds to the messages broadcasted by the Head of the Area, it will be selected as a new Head of the Area (Figure 4); however, if the Tail of the Area responds to the third Kernel, the Third Kernel will be added as a Tail of the Area (Figure 5). It is possible that the third Kernel might respond to the Head of the Area and the -10-
Tail might respond to the third Kernel. This situation might result in the the new Kernel being added as Head and Tail at a same time. Therefore, a mechanism is provided by the invention which detects this situation when it 5 arises, so that the newly added kernel is added only as Head or Tail, and not both.
The addition of the new Kernel is conveyed to all the Kernels in the Area, and the resources contained in the newly added Kernel are updated in all the Kernels
10 within the Area.
Figure 6 indicates the logical topology of an Area. In this topology, a Kernel to Kernel session exists between its right and left neighbors. Once a session is established the control messages are exchanged so that the
15 every Kernel has a consistent view of the resources in an Area.
Control Message Flow
Control Messages in a network are used to update
20 the status of the resources and to collect statistics about the network performance. The control message are also used for establishing and de-establishing connections between peer communicating entities.
To transmit a message between only two com-
25 municating entities, there is not much choice. Most of the time, these messages are transmitted using point to point link. But transmitting control message between one communicating entity and a group of other communicating entities presents a greater number of choices.
30 In the broadcast technique of the invention, a message is broadcast on the network and is listened to by all the machines in that network. This technique is economical because only one transmission is required. However, the transmitting entity does not know whether the
35 message is received by all the machines or by only a few machines. In the guaranteed delivery technique of the invention, the message is transmitted to each machine separately. The drawback of this approach is that the transmitting machine is tied up for the duration of the transmission of this control message. And, if this machine has a resource that is being accessed by the rest of the machines, then the whole network will be blocked and overall performance of the network will be degraded. Since broadcast messages are periodically transmitted between each machine and the rest of the machines, such blocking may occur frequently.
In PLN control message delivery according to the invention, all the Kernels in an Area with the exception of Head and Tail are connected (in session) with right and left neighbors (Kernels). This double coupling is superior to the one that is supported by the IEEE Token Passing Bus protocol mentioned above, where the nodes are only coupled with one neighbor. Coupling a Kernel with its right and left neighbor allows two kernels to detect a failure when a failure occurs. This allows a faster detection of the failure in the logical network. The right session is called Call Session (CS) and the left session is called Listen Session (LS) (Figure 6).
A control message such as addition of the resource is placed on CS by the originating Kernel. The same message will be received at the LS by the right neighbor of the originating Kernel. The right neighbor will place the message on its CS without processing. Finally, the Tail of the Area will receive this message. Since the Tail has no-CS, the message is reflected back. Now, this message will be received at the CS of all the Kernels where it iε processed and placed on the LS side. The message propagates throughall the Kernels and arrives at the Head of the Area. Upon arrival at the Head of the Area, the message is reflected back again. The message will finally be received on the LS side by the originating Kernel, where it will be discarded. Figure 7 illustrateε thiε sequence. The PLN Control Message delivery Technique resolves the problems caused by the earlier techniques. It does not occupy the transmitting machine for a long duration, and it provides guaranteed delivery of control messages.
Resource Access
The invention provides two mechanisms to provide an access to a resource located in PLN, designated
IntraArea Resource Access and InterArea Resource Access. IntraArea Resource Access means that an application executing in an Area wants to access a resource within that Area. Since the statuses of all the resources are stored in every machine, the access to these resources is fast, which improves the overall performance of the system. The application simply searches its list of RCBs to find a reεource located in itε Area. If an RCB is there that matches the type of the resource the applica- tion is looking for, then the application requests a ses¬ sion with the resource. (All the required information to access a resource are stored in the corresponding RCB.) This request message is passed on to the resource, using the transport layer of the invention. The resource may accept or reject this request. If the request is ac¬ cepted, the accepted message is passed on by the Kernel to the application and a logical full duplex connection is established between the application and resource. Once the session is established, the application and resource can communicate.
InterArea Resource Access
The invention does not maintain the resource information that is not within the Area, thus reducing the amount of memory required for resource information stor¬ age, and also reducing the overhead involves in maintain- ing these information. Therefore, an InterArea Resource Access requires sending an inquiry message to other areas locating the resource and then establishing the connec¬ tion. While the session is in progress, the resource status iε continuously updated.
Referring to Figures 4-8, Heads of Areas are connected to generate a Group. A Group has a Group Head and a Group Tail. Group Heads are connected together to generate a Domain. A Domain has a Domain Head and Domain Tail. Domain Heads are connected together to Generate a Network and a Network has a Network Head and a Network Tail. This Philosophy will be extended as the Network grows.
While PLN solves the problems caused by the dif- ferences in the communication protocols, PAPI solves the problems caused by the operating system dependencies. As stated earlier, PAPI is a set of functions which is writ¬ ten in C language and is consistent for all operating syεtems. The unified functions of the invention that can be called from a high level language such as C or PASCAL are:
InitPIPESAPI TermPIPESAPI AddResource
RemoveResource AllocateSession DeallocateSession GetResourcelnformation SendMessage
ReceiveMessage
ScheduleTimeProcess
ScheduleOSProcess
These functions have the following operations: InitPIPESAPI initializes the application program's access to the underlying Kernel.
TermPIPESAPI terminates the application program's access to the underlying Kernel. AddResource advertises the availability of a resource within an Area.
RemoveResource advertises that a previ¬ ously added resource is removed.
AllocateSession establishes a reliable, point-to-point, full duplex connection between two communicating entities.
DeallocateSession de-establishes a previ¬ ously established connection.
SendMessage sends a message from a com- municating entity to other communicating enti¬ ties.
ReceiveMessage receives a message from a communicating entity.
ScheduleTimeProcesε activates an applica- tion specified process after a pre-specified time expires.
ScheduleOSProcess allows an application to execute a remote or local process.
The current implementation of PIPES works with most popular NETBIOS or IPX compatible local area networks including Novell Netware, 3COM 3Plus, Ungermann-Bass Net/ One, AT&T StarLAN, IBM Network Program, and Banyan VINES. It will be understood from the foregoing descriprion that many variations may be made on the present invention without departing from the scope thereof.

Claims

We claim:
1. A topology of a PIPES logical network, including: at least one machine in an area and having at least one resource? at least one such area in a group; and at least one such group in a domain; wherein each resource is accessable by other resources by means of an address which includes the names of each of the accessed resource, the machine in which the accessed resource is located, the area in which the ac¬ cessed machine is located, the group in which the accessed area is located, and the domain in which the accessed group is located.
2. A method of structuring an area of a logical network, including the steps of: broadcasting from a first kernel in a first computer; receiving the first kernel broadcast at a second kernel in a second computer; establishing the first kernel as the head of the area and the second kernel as the tail of the area, with both the first and second kernels broadcasting their pres¬ ence; adding a third kernel to the area; receiving at the third kernel the broadcasts from at least one of the first and second kernels; establiεhing the third kernel as the head of the area if it received the broadcast only from the first kernel; establiεhing the third kernel as the tail of the area if it received the broadcast only from the second kernel; establishing the third kernel as either the head or the tail of the area if it received the broadcasts from both the first and second kernels; and carrying out the above steps relating to adding a kernel to the area for additional kernels.
3. A method for transmitting a control mesεage throughout a network which includes a plurality of kernels, wherein each kernel is logically connected to two other kernels, including the steps of: transmitting the message from a first kernel to a second kernel connected thereto; retransmitting the message from the second kernel to a third kernel connected thereto; and repeating the retransmitting step for each kernel in the network until each kernel has received and transmitted the control message twice, except for two kernels which are head and tail kernels, respectively, which form ends of the network and each of which receives and transmits the control mesεage only once.
4. A method of acceεεing resources of machines in an area of a network, including the stepε of: retaining information in a given machine relat- ing to each resource in the area in each machine in the area; retaining information relating to resources not in the area only for a period of time during which the given machine access the resource.
PCT/US1990/005572 1989-09-29 1990-09-28 Pipes logical network WO1991005417A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41500089A 1989-09-29 1989-09-29
US415,000 1989-09-29

Publications (1)

Publication Number Publication Date
WO1991005417A1 true WO1991005417A1 (en) 1991-04-18

Family

ID=23643933

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1990/005572 WO1991005417A1 (en) 1989-09-29 1990-09-28 Pipes logical network

Country Status (2)

Country Link
AU (1) AU6519890A (en)
WO (1) WO1991005417A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
US7310684B2 (en) 2004-05-21 2007-12-18 Bea Systems, Inc. Message processing in a service oriented architecture
US7774485B2 (en) 2004-05-21 2010-08-10 Bea Systems, Inc. Dynamic service composition and orchestration
US8301687B2 (en) 2009-03-31 2012-10-30 Software Ag Systems and/or methods for standards-based messaging
US8996394B2 (en) 2007-05-18 2015-03-31 Oracle International Corporation System and method for enabling decision activities in a process management and design environment

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4556974A (en) * 1983-10-07 1985-12-03 Honeywell Inc. Method for passing a token in a local-area network
US4649535A (en) * 1985-05-13 1987-03-10 General Electric Company Method and apparatus for maintaining a dynamic logical ring in a token passing LAN
US4682326A (en) * 1985-11-27 1987-07-21 General Electric Company Method and apparatus for maintaining a dynamic logical ring in a token passing lan
US4689786A (en) * 1985-03-21 1987-08-25 Apple Computer, Inc. Local area network with self assigned address method
US4725834A (en) * 1984-02-27 1988-02-16 American Telephone And Telegraph Company, At&T Bell Laboratories Reliable broadcast protocol for a token passing bus network
US4745598A (en) * 1985-11-27 1988-05-17 General Electric Company Method and apparatus for maintaining a dynamic logical ring in a token passing LAN
US4777595A (en) * 1982-05-07 1988-10-11 Digital Equipment Corporation Apparatus for transferring blocks of information from one node to a second node in a computer network
US4789982A (en) * 1986-01-27 1988-12-06 Codenoll Technology Corporation Method for implementing a token passing ring network on a bus network
US4797881A (en) * 1987-03-12 1989-01-10 Sytek, Inc. Bridge system for connecting networks
US4811334A (en) * 1986-07-01 1989-03-07 U.S. Philips Corp. Method of operation of a nodal telephone and data communication network to provide specific facilities in changeable domains of the network
US4930123A (en) * 1988-03-04 1990-05-29 Nec Corporation Method for controlling address parameters for interconnecting lan and ISDN

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4777595A (en) * 1982-05-07 1988-10-11 Digital Equipment Corporation Apparatus for transferring blocks of information from one node to a second node in a computer network
US4556974A (en) * 1983-10-07 1985-12-03 Honeywell Inc. Method for passing a token in a local-area network
US4725834A (en) * 1984-02-27 1988-02-16 American Telephone And Telegraph Company, At&T Bell Laboratories Reliable broadcast protocol for a token passing bus network
US4689786A (en) * 1985-03-21 1987-08-25 Apple Computer, Inc. Local area network with self assigned address method
US4649535A (en) * 1985-05-13 1987-03-10 General Electric Company Method and apparatus for maintaining a dynamic logical ring in a token passing LAN
US4682326A (en) * 1985-11-27 1987-07-21 General Electric Company Method and apparatus for maintaining a dynamic logical ring in a token passing lan
US4745598A (en) * 1985-11-27 1988-05-17 General Electric Company Method and apparatus for maintaining a dynamic logical ring in a token passing LAN
US4789982A (en) * 1986-01-27 1988-12-06 Codenoll Technology Corporation Method for implementing a token passing ring network on a bus network
US4811334A (en) * 1986-07-01 1989-03-07 U.S. Philips Corp. Method of operation of a nodal telephone and data communication network to provide specific facilities in changeable domains of the network
US4797881A (en) * 1987-03-12 1989-01-10 Sytek, Inc. Bridge system for connecting networks
US4930123A (en) * 1988-03-04 1990-05-29 Nec Corporation Method for controlling address parameters for interconnecting lan and ISDN

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
US5812768A (en) * 1992-10-30 1998-09-22 Software Ag System for allocating adaptor to server by determining from embedded foreign protocol commands in client request if the adapter service matches the foreign protocol
US7310684B2 (en) 2004-05-21 2007-12-18 Bea Systems, Inc. Message processing in a service oriented architecture
US7774485B2 (en) 2004-05-21 2010-08-10 Bea Systems, Inc. Dynamic service composition and orchestration
US8996394B2 (en) 2007-05-18 2015-03-31 Oracle International Corporation System and method for enabling decision activities in a process management and design environment
US8301687B2 (en) 2009-03-31 2012-10-30 Software Ag Systems and/or methods for standards-based messaging

Also Published As

Publication number Publication date
AU6519890A (en) 1991-04-28

Similar Documents

Publication Publication Date Title
US7016946B2 (en) Method and system for establishing a quorum for a geographically distributed cluster of computers
TW432328B (en) Methods and apparatus for dynamic internet server selection
US8145789B1 (en) Method providing a single console control point for a network device cluster
CA2205725C (en) Preventing conflicts in distributed systems
US5778185A (en) Method for finding a resource in a scalable distributed computing environment
US6976080B1 (en) Multiple-protocol communication subsystem controller
US6633909B1 (en) Notification method that guarantees a system manager discovers an SNMP agent
US6950820B2 (en) Maintaining consistency of a global resource in a distributed peer process environment
JP2004519024A (en) System and method for managing a cluster containing multiple nodes
JPH07117933B2 (en) Automatic configuration control device and method
JP3557405B2 (en) Protocol information management of interface hierarchical network between dedicated networks
EP3716067B1 (en) Query proxy for delivery of dynamic system state
US6957254B1 (en) Method and apparatus for reaching agreement between nodes in a distributed system
WO1991005417A1 (en) Pipes logical network
US20030145050A1 (en) Node self-start in a decentralized cluster
US6675259B2 (en) Method and apparatus for validating and ranking disk units for switching
Gray Network services in systems network architecture
Cisco CiscoWorks Blue Native Service Point for SOLVE:Netmaster Release Notes, 2.0.1
Cisco CiscoWorks Blue Native Service Point for SOLVE:Netmaster Release Notes, 2.0.1
Cisco CiscoWorks Blue Native Service Point for SOLVE:Netmaster Release Notes, 2.0.1
Cisco CiscoWorks Blue Native Service Point for SOLVE:Netmaster Release Notes Service Upgrade from 2.0 to 2.0.1
Cisco CiscoWorks Blue Native Service Point for SOLVE:Netmaster Release Notes Service Upgrade from 2.0 to 2.0.1
Cisco CiscoWorks Blue Native Service Point for SOLVE:Netmaster Release Notes Service Upgrade from 2.0 to 2.0.1
Cisco CiscoWorks Blue Native Service Point for SOLVE:Netmaster Release Notes Service Upgrade from 2.0 to 2.0.1
Cisco Native Service Point for SOLVE:Netmaster Service Upgrade

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AT AU BB BG BR CA CH DE DK ES FI GB HU JP KP KR LK LU MC MG MW NL NO RO SD SE SU

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BF BJ CF CG CH CM DE DK ES FR GA GB IT LU ML MR NL SE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: CA