System and method for emulating network communications between partitions of a computer system
First Claim
1. A method for communicating between first and second applications executing on respective first and second independent partitions of a partitionable computer system, wherein each of said first and second partitions operates under the control of a separate operating system, and wherein said first and second applications are configured to communicate with each other via a physical network using standard network interfaces without the need for providing an external network connection therebetween;
- said method comprising;
receiving a request made by said first application for establishing a network connection with said second application for sending a message thereto; and
in response to said request, establishing an emulated network connection between said first and said second applications through a shared memory region of the computer system shared by said first and said second partitions, wherein said establishing communication between said first and second applications includes;
creating a data structure in said shared memory region comprising a plurality of data segments for use in sending a message from said first application to said second application, wherein the data structure comprises;
a plurality of data segments, each of the plurality of data segments for storing network message data to be sent from a sending shared memory service provider to a receiving shared memory service provider;
a control segment for controlling reading and writing of data in the plurality of data segments, the control, segment comprising;
a first portion comprising;
a first field for storing an indication of the data segment containing the most recently written network message data; and
a second field for storing an indication of the data segment containing the earliest written, but not read, network message data; and
a plurality of second portions, each Second portion corresponding to one of the plurality of data segments for control of the data segment, each second portion comprising;
a first field for storing an indication of the beginning of network message data within the data segment; and
a second field for storing an indication of the end of network message data within the data segment;
said establishing being such that said emulated network connection permits said first and second applications to communicate with each other via said emulated network connection using standard network interfaces even though there is no physical network therebetween;
said establishing also being such that the receiving of a message by said second application from said first application via said emulated network connection appears to said second application as having been sent via an external physical network even though there is no external physical network, wherein said emulated network connection requested by said first application comprises a network socket connection, and wherein the step of establishing a connection through the shared memory region comprises establishing a connection through the shared memory region that emulates a network socket connection.
11 Assignments
0 Petitions
Accused Products
Abstract
A system and method of emulating network communications between applications executing in different partitions of a partitionable computer system is provided. A connection is established between a first partition and a second partition of a computer system, through a memory region of the computer system shared by both the first partition and the second partition. The connection emulates a network connection. A network message is transmitted from a first application in the first partition using a network application interface and intended for transmission to a second application in the second partition. The network message transmitted by the first application is transmitted to the second application via the connection established through the shared memory region.
115 Citations
34 Claims
-
1. A method for communicating between first and second applications executing on respective first and second independent partitions of a partitionable computer system, wherein each of said first and second partitions operates under the control of a separate operating system, and wherein said first and second applications are configured to communicate with each other via a physical network using standard network interfaces without the need for providing an external network connection therebetween;
- said method comprising;
receiving a request made by said first application for establishing a network connection with said second application for sending a message thereto; and in response to said request, establishing an emulated network connection between said first and said second applications through a shared memory region of the computer system shared by said first and said second partitions, wherein said establishing communication between said first and second applications includes; creating a data structure in said shared memory region comprising a plurality of data segments for use in sending a message from said first application to said second application, wherein the data structure comprises; a plurality of data segments, each of the plurality of data segments for storing network message data to be sent from a sending shared memory service provider to a receiving shared memory service provider; a control segment for controlling reading and writing of data in the plurality of data segments, the control, segment comprising; a first portion comprising; a first field for storing an indication of the data segment containing the most recently written network message data; and a second field for storing an indication of the data segment containing the earliest written, but not read, network message data; and a plurality of second portions, each Second portion corresponding to one of the plurality of data segments for control of the data segment, each second portion comprising; a first field for storing an indication of the beginning of network message data within the data segment; and a second field for storing an indication of the end of network message data within the data segment; said establishing being such that said emulated network connection permits said first and second applications to communicate with each other via said emulated network connection using standard network interfaces even though there is no physical network therebetween; said establishing also being such that the receiving of a message by said second application from said first application via said emulated network connection appears to said second application as having been sent via an external physical network even though there is no external physical network, wherein said emulated network connection requested by said first application comprises a network socket connection, and wherein the step of establishing a connection through the shared memory region comprises establishing a connection through the shared memory region that emulates a network socket connection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- said method comprising;
-
10. A computer readable medium having program code store thereon for communicating between first and second applications executing on respective separate independent partitions of a partitionable computer system, wherein each of said first and second partitions operates under the control of a separate operating system, and wherein said first and second applications are configured to communicate with each other via a physical network using standard network interfaces, and wherein said program code, when executed, causes performance of the following:
-
receiving a request made by said first application for establishing a network connection with said second application for sending a message thereto; and in response to said request, establishing an emulated network connection between said first and said second applications through a shared memory region of the computer system shared by both said first arid second partitions, wherein said establishing communication between said first and second applications includes; creating a data structure in said shared memory region comprising a plurality of data segments for use in sending a message from said first application to said second application, wherein the data structure comprises; a plurality of data segments, each of the plurality of data segments for storing network message data to be sent from a sending shared memory service provider to a receiving shared memory service provider; a control segment for controlling reading and writing of data in the plurality of data segments, the control, segment comprising; a first portion comprising; a first field for storing an indication of the data segment containing the most recently written network message data; and a second field for storing an indication of the data segment containing the earliest written, but not read, network message data; and a plurality of second portions, each Second portion corresponding to one of the plurality of data segments for control of the data segment, each second portion comprising; a first field for storing an indication of the beginning of network message data within the data segment; and a second field for storing an indication of the end of network message data within the data segment; said establishing being such that said emulated network connection permits said first and second applications communicate with each other using standard network interfaces even though there is no physical network therebetween; said establishing also being such tat the receiving of a message by said second application from said first application via said emulated network connection appears to said second application as having been sent via an external physical network even though there is no external physical network, wherein said emulated network connection requested by said first application comprises a network socket connection, and wherein the step of establishing a connection through the shared memory region comprises establishing a connection through the shared memory region that emulates a network socket connection. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system comprising:
-
a plurality of processors, said plurality of processors being configured so as to provide at least first and second separate independent partitions within the computer system, each of said first and second partitions operating under the control of a separate operating system, said first partition providing for executing a first application and said second partition providing for executing a second application, each of said first and second applications being configured to communicate with the other application via a physical network using standard network interfaces; a memory connected to each of the plurality of processors, said memory having defined therein at least one shared memory region to which at least said first and second ones of said partitions have shared access; and means for providing for a program code, executing on each of at least said first partition and said second partition of the computer system, said program code establishing a connection between a said first application on said first partition and said second application on said second partition through the at least one shared memory region, wherein the connection through the shared memory region emulates a network connection requested by one of said applications, such that said first and second applications communicate with each other using standard network interfaces even though there is no physical network therebetween, and also such that the receiving of a message by said second application from said first application appears to said second application as having been sent via an external physical network even though there is no external physical network;
wherein said emulated network connection requested by one of said first application and said second application comprises a network socket connection, and wherein the step of establishing a connection through the shared memory region comprises establishing a connection through the shared memory region that emulates a network socket connectionwherein said program code executing on each of said first and second partitions comprises a shared memory service provider that serves as an interface between a component of the computer system that provides an API through which said first application can make said request for a network connection and the shared memory region of the main memory through which the emulated network connection is established; wherein the shared memory service provider on each of said first and second partitions establishes a data structure in the shared memory region through which data is transferred from that partition to the shared memory service provider on the other partitions. wherein the data structure comprises; a plurality of data segments, each of the plurality of data segments for storing network message data to be sent from a sending shared memory service provider to a receiving shared memory service provider; a control segment for controlling reading and writing of data in the plurality of data segments, the control segment comprising; a first portion comprising; a first field for storing an indication of the data segment containing the most recently written network message data; and a second field for storing an indication of the data segment containing the earliest written, but not read, network message data; and a plurality of second portions, each second portion corresponding to one of the plurality of data segments tin control of the data segment, each second portion comprising; a first field for storing an indication of the beginning of network message data within the data segment; and a second field for storing an indication of the end of network message data within the data segment. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification