Send by reference in a customizable, tag-based protocol
First Claim
Patent Images
1. A message device of sending data by reference through a network, comprising:
- at least one processor;
a local buffer configured to communicate with an external buffer residing in an external message device; and
an RNIC component configured to facilitate transmitting a first tag-based message to the external message device, the first tag-based message including a portion retained by the local buffer and a remaining portion of the first tag-based message, wherein the RNIC component is configured to;
understand remote direct memory access operations of the external message device; and
conduct data transfer from the local buffer to a storage component of the external message device without the message device and the external message device executing copy instructions for the data transfer from the message device to the external message device.
2 Assignments
0 Petitions
Accused Products
Abstract
In various embodiments of the present invention, a customizable, tag-based message is a unit of information transmitted electronically from one device to another that may contain one or more references to one or more pieces of information without the need for these pieces of information to be embedded in the customizable, tag-based message. The customizable, tag-based message can comply with any suitable protocol. One suitable protocol includes a customizable, tag-based protocol, such as SOAP, but other protocols can be used.
7 Citations
22 Claims
-
1. A message device of sending data by reference through a network, comprising:
-
at least one processor; a local buffer configured to communicate with an external buffer residing in an external message device; and an RNIC component configured to facilitate transmitting a first tag-based message to the external message device, the first tag-based message including a portion retained by the local buffer and a remaining portion of the first tag-based message, wherein the RNIC component is configured to; understand remote direct memory access operations of the external message device; and conduct data transfer from the local buffer to a storage component of the external message device without the message device and the external message device executing copy instructions for the data transfer from the message device to the external message device. - View Dependent Claims (2, 3, 4)
-
-
5. A method for facilitating tag-based electronic communications, comprising:
employing a processor to execute computer executable instructions stored on a computer readable storage medium to implement the following acts; transmitting a first tag-based message from a local buffer residing in a local device to an external buffer residing in an external message device, the first tag-based message including a portion retained by the local buffer and a remaining portion of the first tag-based message, wherein the transmitting act includes simultaneously transmitting the remaining portion and a reference to the portion retained by the local buffer to the external message device; receiving a second tag-based message from the external message device, wherein the second tag-based message includes a reference to an external buffer allocated at the external message device and the second tag-based message is an insert request to initiate a transfer of the portion retained at the local buffer of the local device to the external device; and in response to the second tag-based message, transferring the portion retained at the local buffer of the local device to the external message device via an RNIC component, wherein the RNIC component is configured to understand remote direct memory access operations of the external message device; and conduct data transfer directly from the local buffer of the local device to the referenced external buffer of the external message device without requiring processors of the local device or the external message device to execute copy instructions of the data transfer. - View Dependent Claims (6, 7)
-
8. A method implemented by an intermediary for intercepting a first tag-based message from a message sender and forwarding a second tag-based message to a message receiver, the method comprising:
employing a processor to execute computer executable instructions stored on a computer readable storage medium to implement the following acts; intercepting, via an RNIC at the intermediary, the first customizable, tag-based message from the message sender, wherein the first customizable, tag-based message comprises; a Uniform Resource Identifier (URI) of a receiver service within the message receiver; an address of a local buffer within the message sender where a portion of the first tag-based message is retained; and a steering tag for use by an RNIC of the message sender; parsing the first customizable, tag-based message to create a staging buffer; determining that the first customizable, tag-based message is delivering information; transferring the portion of the first tag-based message retained in the local buffer of the message sender to the staging buffer of the intermediary via an RDMA, wherein the RDMA is a transferring mechanism that contains control information pertaining to a remote direct memory access transfer session and is configured to conduct data transfer without requiring the processor of the intermediary or the message sender to execute copy instructions of data transfer; changing the first customizable, tag-based message into the second customizable, tag-based message, wherein the second customizable, tag-based message includes an URI of the staging buffer and a reference to the staging buffer of the intermediary where the portion of the first tag-based message is retained; sending the second customizable, tag-based message to the message receiver; receiving an insert request from the message receiver, wherein the insert request includes a reference to a buffer allocated at the message receiver to initiate a transfer of the portion retained at the staging buffer of the intermediary to the message receiver; and in response to the insert request, transferring the portion retained at the staging buffer of the intermediary to the message receiver via an RNIC component, wherein the RNIC component is configured to; understand remote direct memory access operations of the message receiver; and conduct data transfer directly from the staging buffer of the intermediary to the referenced buffer of the message receiver without requiring processors of the intermediary or the message receiver to execute copy instructions of the data transfer. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
17. A method implemented by a message receiver for receiving a customizable, tag-based message, the method comprising:
employing a processor of the message receiver to execute computer executable instructions stored on a computer readable storage medium to implement the following acts; receiving the customizable, tag-based message from a message sender, the customizable, tag-based message comprising; a steering tag indicative of a physical address of the local buffer of the message sender where a portion of the customizable, tag-based message is retained; and a length tag indicative of the length of the local buffer of the message sender; allocating size of a local buffer within the message receiver for the portion of the customizable, tag-based message retained at the message sender to be transferred; and causing the portion of the customizable, tag-based message retained within the message sender to be transferred to the local buffer of the message receiver via an RDMA, wherein the RDMA is a transferring mechanism that contains control information pertaining to a remote direct memory access transfer session and is configured to conduct data transfer without requiring the processors of the message receiver or the message sender to execute copy instructions of transferring the retained portion of the customizable, tag-based message from the message sender to the message receiver. - View Dependent Claims (18, 19, 20, 21, 22)
Specification