| US 7,600,232 B2 | ||
| Inter-process communications employing bi-directional message conduits | ||
| Galen C. Hunt, Bellevue, Wash. (US); James R. Larus, Mercer Island, Wash. (US); Manuel Fahndrich, Seattle, Wash. (US); Edward P. Wobber, Menlo Park, Calif. (US); Martin Abadi, Palo Alto, Calif. (US); and John D. DeTreville, Seattle, Wash. (US) | ||
| Assigned to Microsoft Corporation, Redmond, Wash. (US) | ||
| Filed on Dec. 07, 2004, as Appl. No. 11/7,655. | ||
| Prior Publication US 2006/0123424 A1, Jun. 08, 2006 | ||
| Int. Cl. G06F 3/00 (2006.01); G06F 9/44 (2006.01); G06F 9/46 (2006.01); G06F 13/00 (2006.01) | ||
| U.S. Cl. 719—313 [719/330] | 40 Claims |

| 1. One or more computer storage media having processor-executable instructions that, when executed by a computing device having
a processor and memory communicatively coupled to the processor, configure the computing device to perform acts comprising:
facilitating establishment of a bi-directional message conduit having exactly two endpoints, a first endpoint being directly
connected to and owned by a first software process and a second endpoint being directly connected to and owned by a second
software process, the first software process and the second software process being located within the memory of the computing
device and executed within an operating system of the computing device; and
maintaining the bi-directional message conduit for passing multiple messages via the bi-directional message conduit only between
the first software process and the second software process, wherein:
the passing consists of passing the multiple messages only from one endpoint of the bi-directional message conduit to another
endpoint of the bi-directional message conduit; and
the passing of multiple messages via the bi-directional message conduit is constrained by a processor-readable contract having
information that defines a relationship between the first and second software processes with regard to the bi-directional
message conduit, the information comprising:
a set of message types that are allowed to be sent through the bi-directional message conduit;
a description of allowable sequences of message exchange between the two endpoints of the bi-directional message conduit;
and
an allowed ordering of messages to be sent between the two endpoints of the bi-directional message conduit.
|