Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Page images | Web History | Sign in

Patents

  
[merged small][merged small][graphic][merged small][merged small][merged small][table][merged small][table][graphic][merged small][merged small][merged small][merged small][merged small][merged small][merged small]
[merged small][merged small][merged small][graphic]
[graphic]

1 2

method and apparatus for improved interprocess mes

METHOD AND APPARATUS FOR ROUTING sage switching between a sender process and a plurality

MESSAGES TO PROCESSES IN A COMPUTER of receiver processes.
SYSTEM

5 SUMMARY OF THE INVENTION

This is a continuation of application Ser. No. It is therefore an object of the present invention to

07/627,735, filed Dec. 14, 1990, now abandoned. improve interprocess message switching between a

BACKGROUND OF THE INVENTION sender process and a plurality of receiver processes,

particularly switching of request and notice messages.

1. Field of the Invention 10 it is another object of the present invention that reThe present invention relates to the field of computer quest messages may be observed as well as handled, and

systems. In particular, the present invention is a method notice messages may be handled as well as observed, and apparatus for interprocess message switching be- It is another object of the present invention that retween a sender process and a plurality of receiver pro- quest md notice messages may be sent by sender processes- 15 cesses without having to know the identity of the re

2. Art Background ceiver processes.

Conventional interprocess communication facilities It is object of the nt invention ^ re_ provide the capabilityr of handling few messagetypes or t ^ notice messages may be sent by sender promethods of message distribution Typ1Cal faculties sup- cesses t0 non.executing as well as executing receiver port pomt-to-pomt distribution of request messages and 20 Drocesses

multicast distribution of notice messages between pro- Thgje ... m b ^ ... and

cesses A process is an instance of a program, an execu - m for mt ocess messa switching between a sender

able file, m the process of execution A request is a call $ ^ a ^ *f receivere ses of the

for one process o act for^another. A request is usually * t embodiment of the

delivered point-to-point, that is to one process (called 25 _ , . / r . . .

the request handler), or is returned as undeliverable. A method comPf*s the steP* of registenng the receiver

request entails a reply message from the request handler Processes wth ^ apparatus, Meeting the registered

to the request sender. The reply indicates the results of 'fem\r Processes t0 receive messaf* receivedfrom

the request. A notice is an announcement by one pro- the sender process, queuing copies of the received mes

cess that an event has occurred. A notice is usually 30 for the selected receiver processes, executmg or

multicasted and is delivered to a set of processes (called non-executing disposing the received messages, signd

observers). A notice entails no reply from the observer the *|ected receiver processes regarding the avad

and produces no effect on the sender, even if the notice of tfae <lueued usages, and dehvenng the

is undeliverable. A process may act as a sender, a han- <lueued messages when requested by the signaled re

dler or an observer at different points during its execu- 35 celver processes. The apparatus comprises various

tjon means for accomplishing the steps of registering, select

The conventional point-to-point distribution of re- mS> queuing, signaling, and delivering,

quests and the multicast distribution of notices have at For disposing the received messages, the preferred

least two shortcomings: embodiment of the method further comprises the steps

(1) the strict dichotomy between request and notice is 40 of registering the sender process, discarding notice mesinflexible, a request cannot be observed and a notice sages and replying to request messages. Likewise, the cannot be handled- apparatus further comprises various means for accom

(2) the sender is burdened with identifying the mes- plishing the steps of discarding and replying.

sage receivers. F°r replying to request messages with no selected These shortcomings have hindered the development 45 handler processes, the preferred embodiment of the of cooperative multiprocess applications, especially in a method further comprises the steps of updating the networked environment. For instance, a notice may request messages with the results, selecting the regisneed to be handled in addition to being observed. In the tered observer processes to receive the reply messages, case where a process announces that it has created an queuing copies of the reply messages for the sender object by sending a notice, a file containing a count of 50 process and the selected observer processes, executing these objects should be updated as a result of the notice. and non-executing, signaling the sender process and the To ensure the count is incremented once, one process executing selected observer processes regarding the should handle the notice while other interested pro- availability of the queued reply messages, and delivercesses can observe it. Under the conventional interpro- ing the queued reply messages when requested by the cess communication facilities, the updating of the count 55 signaled sender/observer processes. Similarly, the appacannot be achieved with a single notice because there is ratus further comprises various means for accomplishno guarantee that exactly one process will update the ing the steps of updating, selecting, signaling and delivcount. A second example is where one process might ering.

keep a log of the requests made by other processes, for For replying to request messages with selected han

the purpose of allowing the other processes to review 60 dler processes, the preferred embodiment of the method

or re-execute requests. A process that can observe re- further comprises the steps of queuing an additional

quest messages can easily accomplish the task of re- copy of each of the request messages pending results,

viewing or re-executing the request. Finally, the dy- and dequeuing the result pending request messages

namic nature of processes makes it difficult for a sender upon receipt of the results from the handler processes,

process to know which processes should receive a mes- 65 prior to the steps of updating, selecting, signaling, and

sage. delivering described above. Similarly, the apparatus

As will be described, the present invention over- further comprises various means for accomplishing the

comes the disadvantages of the prior art, and provides a steps of queuing and dequeuing.

3 4

Registration of the receiver processes comprises reg- Further, the manipulations performed are often re

istering message patterns, signaling ways and program ferred to in terms, such as adding or comparing, which

type identifiers. Registration of the sender process com- are commonly associated with mental operations per

prises registering signaling ways. Receiver and sender formed by a human operator. No such capability of a

processes may register dynamically at their initializa- 5 human operator is necessary, or desirable in most cases,

tion or some later points during their execution. in any of the operation described herein which form

Messages comprise a plurality of message attributes part of the present invention; the operations are madescribing the messages. Message attributes comprise a chine operations. Useful machines for performing the message identifier, a message class and a message state. operations of the present invention include general purMessage classes comprise "request" and "notice". Mes- 10 pose digital computers or other similar devices. In all sage states comprise "created", "sent", "handled", cases, it should be borne in mind that the distinction "queued", "started" and "failed". between the method operations in operating a computer

Selection comprises selecting at most one handler and the method of computation itself. The present inprocess and any number of observer processes for each vention relates to method steps for operating a cornmessage. Both handler processes and observer pro- 15 puter in processing electrical or other (e.g. mechanical, cesses are selected regardless of message class. Both chemical) physical signals to generate other desired executing as well as non-executing processes are se- physical signals.

lected. Processes are selected by matching message The present invention also relates to apparatus for

attributes. Matchings are performed against the regis- performing these operations. This apparatus may be

tered message patterns and message patterns within 20 specially constructed for the required purposes or it

message signatures contained in the program type defi- may comprise a general purpose computer as selec

nitions. tively activated or re-configured by a computer pro

T,„„„„rT,,„,T ^,T„ . gram stored in the computer. The algorithms presented

BRIEF DESCRIPTION OF THE DRAWINGS ferein m nQt entirelyPrelated t0 ^ particmar com.

FIG. 1 is a block diagram illustrating the apparatus of 25 puter or other apparatus. In particular, various general

the present invention for interprocess message switch- purpose machines may be used with programs written

ing between a sender process and a plurality of receiver in accordance with the teaching herein, or it may prove

processes. more convenient to construct more specialized appara

FIG. 2 is a block diagram illustrating exemplary re- tus to perform the required method steps. The required

gistrations containing exemplary message patterns, sig- 30 structure for a variety of these machines will appear

naling way and program type identifier, and exemplary from the description given below.

gS^tJelSnti^ DETAILED r^CMPTION OF THE message signatures, used by the apparatus of the present

invention. 35 A method and apparatus for interprocess message

FIG. 3 illustrates exemplary message attributes used switching having particular application for switching

by the apparatus of the present invention for describing messages between a sender process and a plurality of

the messages. receiver processes being executed by one or more com

FIG. 4 illustrates the routing of a request message in puters on a network is disclosed. In the following de

the preferred embodiment of the present invention. 40 scription for purposes of explanation, specific numbers,

FIG. 5 illustrates the routing of a notice message in materials and configurations are set forth in order to

the preferred embodiment of the present invention. provide a thorough understanding of the present inven

FIG. 6 is a state diagram showing exemplary states of tion. However, it will be apparent to one skilled in the

the apparatus for interprocess message switching of the art that the present invention may be practiced without

present invention during its operation. 45 the specific details. In other instances, well known sys

-T__. . „TT^ „r^, ,„T^T , tems are shown in diagrammatical or block diagram

NOTATIONS AND NOMENCLATURE form m Qrder nQt tQ the present mventio* m.

The detailed description which follows are presented necessarily, largely in terms of algorithms and symbolic representa- nvcpvrcw tions of operations on data bits within a computer mem- 50 UViiKVlfcW ory. These algorithmic descriptions and representations Referring now to FIG. 1, a block diagram of the are the means used by those skilled in the data process- preferred embodiment of the apparatus for interprocess ing arts to most effectively convey the substance of message switching of the present invention 10 is shown, their work to others skilled in the art. The apparatus 10 is shown in the context of a plurality

An algorithm is here, and generally, conceived to be 55 of computers 30, 40, 50 connected to a network 60. The a self-consistent sequence of steps leading to a desired network of computers 30,40,50 comprises a plurality of result. These steps are those that require physical ma- sender processes 42 and a plurality of receiver processes nipulations of physical quantities. Usually, though not 52, 54, sending messages 64-67 to each other. The renecessarily, these quantities take the form of electrical ceiver processes 52, 54 comprise handler processes 52 or magnetic signals capable of being stored, transferred, 60 and observer processes 54. The messages 64-67 corncombined, compared, and otherwise manipulated. It prise request messages 64, notice messages 65, results 66 proves convenient at times, principally for reasons of and reply messages 67.

common usage, to refer to these signals as bits, values, The preferred embodiment of the apparatus for interelements, symbols, objects, characters, terms, numbers, process message switching of the present invention 10 or the like. It should be borne in mind, however, that all 65 comprises a registering means 12 comprising an interthese and similar terms are to be associated with the face (not shown) for receiving registrations 62 as inputs appropriate physical quantities and are merely conve- from the processes 42,52, 54, a selecting means 14 comment labels applied to these quantities. prising an interface (not shown) for receiving messages

« PreviousContinue »