IP Library › Granted Patent US 8,533,357
Granted Patent B2
US 8,533,357 · App. 11/003,847 · Granted Sep 10, 2013

Mechanism for binding a structured data protocol to a protocol offering up byte streams

Inventors: Kenneth D. Wolf (Seattle, WA); Michael Steven Vernal (Seattle, WA); Christopher G. Kaler (Sammamish, WA); Elliot Lee Waingold (Seattle, WA); Erik Bo Christensen (Seattle, WA); Jeffrey C. Schlimmer (Redmond, WA); Martin James Gudgin (Sale, GB); Siddhartha Puri (Sammamish, WA)
Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,533,357
App. No.
11/003,847
Granted
Sep 10, 2013
Kind
B2
Abstract

A mechanism for sending structured data using a corresponding byte stream. Upon accessing structured data such as a Simple Object Access Protocol (SOAP) envelope, a byte stream is generated. The byte stream includes bytes that represent the structured data, as well as a collection of bytes that represents properties about the byte stream such as, for example, a mode of communication. The byte stream may then be passed to a communication module (e.g., a TCP or Named Pipes module) capable of receiving and transmitting the byte stream.

Claims (62)

1. In a network environment that includes a first computing system communicatively couplable to a second computing system, a method of the first computing system sending first structured data via a first byte stream and second structured data via a second byte stream to the second computing system, the method comprising the following:

an act of accessing the first structured data, wherein the meaning of the first structured data is implied at least in part by the position of data within the structure, for transmission to the second computing system;

an act of generating the first byte stream including a first plurality of bytes that collectively represent one or more properties of the first byte stream and a second plurality of bytes that collectively represent the first structured data, wherein the first plurality of bytes comprises:

one or more bytes defining a first communications mode record, wherein the first communications mode record defines a mode of communication for the first byte stream, and wherein the first communications mode record specifies one of a simplex mode and a duplex mode; and

one or more bytes defining an encoding field, wherein the encoding field defines an encoding format for the first structured data, and wherein the meaning of the first structured data is implied at least in part by the position of the data within the structure, the encoding field allowing a single address to be used for different encodings;

an act of generating the second byte stream that comprises one or more bytes defining a second communications mode record, wherein the second communications mode record specifies one of a simplex mode and a duplex mode, and wherein the second communications mode record of the second byte stream specifies a different communication mode than the first communications mode record of the first byte stream;

an act of passing the first byte stream to a network address at the second computing system; and

an act of passing the second byte stream to the network address at the second computing system, wherein the first byte stream and the second byte stream are passed to the network address via different communication modes.

2. The method in accordance with claim 1 , wherein the act of accessing the first structure data comprising the following:

an act of the first computing system itself generating the first structured data.

3. The method in accordance with claim 1 , wherein the act of accessing the first structure data comprising the following:

an act of the first computing system receiving the first structured data from another computing system.

4. The method in accordance with claim 1 , wherein the first structured data includes XML.

5. The method in accordance with claim 1 , wherein the first structured data is a SOAP envelope.

6. The method in accordance with claim 5 , wherein the first byte stream and the second byte stream are passed via a Named Pipes communication connection.

7. The method in accordance with claim 5 , wherein the first byte stream and the second byte stream are passed via a Transmission Control Protocol (TCP) communication connection.

8. The method in accordance with claim 5 , wherein the first byte stream and the second byte stream are passed via a User Datagram Protocol (UDP) communication connection.

9. The method in accordance with claim 1 , wherein the first byte stream and the second byte stream are passed via a Named Pipes communication connection.

10. The method in accordance with claim 1 , wherein the first byte stream and the second byte stream are passed via a Transmission Control Protocol (TCP) communication connection.

11. The method in accordance with claim 1 , wherein the first byte stream and the second byte stream are passed via a User Datagram Protocol (UDP) communication connection.

12. The method in accordance with claim 1 , wherein the first byte stream and the second byte stream are passed via a Microsoft Message Queue (MSMQ) communication connection.

13. The method in accordance with claim 1 , wherein the one or more properties of the first byte stream includes a target destination Uniform Resource Identifier (URI).

14. The method in accordance with claim 1 , the method further comprising the following:

an act of receiving a third byte stream from the second computing system, the third byte stream including a third plurality of bytes that collectively represent one or more properties of the third byte stream, and a fourth plurality of bytes that collectively represent third structured data; and

an act of recovering the third structured data from the third byte stream.

15. A computer memory having instructions stored thereon for use in a network environment that includes a first computing system and a second computing system, wherein upon execution by one or more processors the instructions implement a method of the first computing system sending first structured data via a first byte stream to the second computing system and receiving second structured data via a second byte stream from the second computing system, the method comprising the following:

an act of accessing the first structured data, wherein the meaning of the first structured data is implied at least in part by the position of data within the structure, for transmission to the second computing system;

an act of generating the first byte stream including a first plurality of bytes that collectively represent one or more properties of the first byte stream and a second plurality of bytes that collectively represent the first structured data, wherein the first plurality of bytes comprises:

one or more bytes defining a first communications mode record, wherein the first communications mode record defines a mode of communication for the first byte stream, and wherein the communications mode record specifies one of a simplex mode and a duplex mode; and

one or more bytes defining an encoding field, wherein the encoding field defines an encoding format for the first structured data, wherein the encoding field allows a single address to be used for different encodings;

an act of passing the first byte stream to a network address at the second computing system; and

an act of receiving the second byte stream from the network address at the second computing system, wherein the second byte stream comprises one or more bytes defining a second communications mode record, wherein the second communications mode record of the second byte stream specifies a different communication mode than the first communications mode record of the first byte stream, and wherein the first byte stream is passed to the network address and the second byte stream is received from the network address via different communication modes.

16. The computer memory in accordance with claim 15 , the act of accessing the first structure data comprising the following:

an act of the first computing system itself generating the first structured data.

17. The computer memory in accordance with claim 15 , wherein the first structured data includes XML.

18. The computer memory in accordance with claim 15 , wherein the first structured data is a SOAP envelope.

19. The computer memory in accordance with claim 18 , wherein a communication connection between the first computing system and the second computing system is Named Pipes.

20. The computer memory in accordance with claim 18 , wherein a communication connection between the first computing system and the second computing system is Transmission Control Protocol (TCP).

21. The computer memory in accordance with claim 18 , wherein a communication connection between the first computing system and the second computing system is User Datagram Protocol (UDP).

22. The computer memory in accordance with claim 15 , wherein a communication connection between the first computing system and the second computing system is Named Pipes.

23. The computer memory in accordance with claim 15 , wherein a communication connection between the first computing system and the second computing system is Transmission Control Protocol (TCP).

24. The computer memory in accordance with claim 15 , wherein a communication connection between the first computing system and the second computing system is User Datagram Protocol (UDP).

25. The computer memory in accordance with claim 15 , wherein a communication connection between the first computing system and the second computing system is Microsoft Message Queue (MSMQ).

26. The computer memory in accordance with claim 15 , wherein the one or more properties of the first byte stream include a representation of a target destination Uniform Resource Identifier (URI).

27. The computer memory in accordance with claim 15 , the method further comprising the following:

an act of recovering the second structured data from the second byte stream.

28. The computer memory in accordance with claim 15 , wherein the computer memory comprises non-volatile memory.

29. The computer memory in accordance with claim 15 , wherein the computer memory comprises system memory.

30. In a network environment comprising a first computing system and a second computing system, a method for sending a first byte stream representing first structured data and a second byte stream representing second structured data from the first computing system to the second computing system, the method comprising:

generating a first byte stream representing the first structured data, wherein the first byte stream comprises one or more bytes defining a first communications mode record that specifies a mode of communication for the first byte stream, and wherein the first communications mode record specifies one of a simplex mode and a duplex mode;

generating a second byte stream representing the second structured data, wherein the second byte stream comprises one or more bytes defining a second communications mode record, wherein the second communications mode record specifies a mode of communication for the second byte stream, and wherein the second communications mode record specifies a different communication mode than the first communications mode record;

transmitting the first byte stream to a network address at the second computing system; and

transmitting the second byte stream to the network address at the second computing system, wherein first byte stream and the second byte stream are transmitted to the network address via different communication modes.

31. The method of claim 30 , wherein the first byte stream further comprises one or more bytes defining a first encoding field, and wherein the first encoding field defines an encoding format for the first structured data.

32. The method of claim 31 , wherein the second byte stream further comprises one or more bytes defining a second encoding field, and wherein the second encoding field defines an encoding format for the second structured data.

33. The method of claim 32 , wherein the second encoding field is different from the first encoding field.

34. The method of claim 30 , wherein the first structured data comprises XML.

35. The method of claim 30 , wherein the first structured data is a SOAP envelope.

36. The method of claim 30 , wherein a communication connection between the first computing system and the second computing system is Named Pipes.

37. The method of claim 30 , wherein a communication connection between the first computing system and the second computing system is Transmission Control Protocol (TCP).

38. The method of claim 30 , wherein a communication connection between the first computing system and the second computing system is User Datagram Protocol (UDP).

39. The method of claim 30 , wherein a communication connection between the first computing system and the second computing system is Microsoft Message Queue (MSMQ).

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAMES OF INVENTORS MICHAEL STEVEN VERNAL, ELLIOT LEE WAINGOLD, ERIK BO CHRISTENSEN AND MARTIN JAMES GIDGIN PREVIOUSLY RECORDED ON REEL 015855 FRAME 0256. ASSIGNOR(S) HEREBY CONFIRMS THE ENTIRE AND EXCLUSIVE RIGHT, TITLE AND INTEREST IN THE INVENTION AND APPLICATION (AND APPLICATION DERIVATIVES). Recorded Nov 22, 2005
From: WOLF, KENNETH D.; VERNAL, MICHAEL STEVEN; KALER, CHRISTOPHER G.; WAINGOLD, ELLIOT LEE; CHRISTENSEN, ERIK BO; SCHLIMMER, JEFFREY C.; GUDGIN, MARTIN JAMES; PURI, SIDDHARTHA
To: MICROSOFT CORPORATION
Reel/Frame 016809/0583 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2005
From: WOLF, KENNETH D.; VERNAL, MICHAEL S.; KALER, CHRISTOPHER G.; WAINGOLD, ELLIOT L.; CHRISTENSEN, ERIK B.; SCHLIMMER, JEFFREY C.; GUDGIN, MARTIN; PURI, SIDDHARTHA
To: MICROSOFT CORPORATION
Reel/Frame 015855/0256 →
Continuity (1)
Related Publication 20060133427A1 · Jun 22, 2006