VARYING OF MESSAGE ENCODING

Abstract
Embodiments described herein provide a user with the ability to vary the encoding of a message object rather than being bound to a specific one, e.g., the text encoding for SOAP messaging. Accordingly, a message encoding factory is provided that is responsible for mapping a message object (e.g., SOAP Infoset) into raw octets suitable for wire transmission. By encapsulating the notion of a message encoder factory abstractly, embodiments allow users to vary the encoding of an Infoset without varying the programming model (or any other aspect of the system that uses message). In other words, embodiments herein separate the transport (e.g., TCP, HTTP, etc.) from the encoding, which allows users to use any number of encoding mechanisms-even their own proprietary ones.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:



FIG. 1 illustrates a distributed system configured to utilize an open-ended object model in accordance with example embodiments;



FIG. 2A illustrates the use of a message contract to create a general message object in accordance with example embodiments;



FIG. 2B illustrates using a message formatter for communication with a service operation in accordance with example embodiments;



FIG. 3 illustrates a flow diagram for a method of using a single message object to create message instances of multiple messaging formats in accordance with example embodiments;



FIGS. 4A and 4B illustrate flow diagrams for methods of simultaneously exposing a message infoset as both an XML view and a Type view in accordance with example embodiments;



FIG. 5 illustrates a flow diagram for a method of indexing headers for a SOAP message as an array in accordance with example embodiments;



FIGS. 6A and 6B illustrate flow diagrams for methods of efficiently processing a SOAP message by attaching thereto properties representing processing state for portions of the message in accordance with example embodiments;



FIG. 7 illustrates a flow diagram for a method of formatting a layout of a message object using a message contract in accordance with example embodiments;



FIG. 8 illustrates a flow diagram for a method of creating an instance of a message object by using a message contract in accordance with example embodiments;



FIG. 9 illustrates a flow diagram for a method of automatically creating a NPDL contract in accordance with example embodiments; and



FIG. 10 illustrates a flow diagram for a method of determining a type of encoding to use for a SOAP message in accordance with example embodiments.


Claims
  • 1. In a distributed messaging system, a method of determining a type of encoding to use for a SOAP message, without requiring only a text-based encoding, the method comprising: receiving a SOAP message typically bound to a text-based transport encoding for communicating between two endpoints;selecting an encoding type from a plurality of encodings based on a program, configuration setting, or both; andencoding the SOAP message with the selected encoding for transferring over a communication channel.
  • 2. The method of claim 1, wherein the plurality of encodings include text-based, binary, MTOM, or a proprietary encoding.
  • 3. The method of claim 2, wherein the proprietary encoding encodes the SOAP message into an alternative message format other than SOAP.
  • 4. The method of claim 3, wherein the alternative message format is SMTP or MSMQ.
  • 5. The method of claim 1, further comprising: based on the selected encoding, automatically selecting a transport from a plurality of transports for transferring the SOAP message.
  • 6. The method of claim 5, wherein the selection of the transport is further based on a priority ranking set for each of the plurality of transport settings or by a default setting.
  • 7. The method of claim 5, wherein the plurality of transports include at least two of TCP/IP, HTTP, UDP, or a proprietary transport.
  • 8. In a distributed messaging system, a computer program product for implementing a method of determining a type of encoding to use for a SOAP message, without requiring only a text-based encoding, the computer program product comprising one or more computer readable media having stored thereon computer executable instructions that, when executed by a processor, can cause the distributed messaging system to perform the following: receive a SOAP message typically bound to a text-based transport encoding for communicating between two endpoints;select an encoding type from a plurality of encodings based on a program, configuration setting, or both; andencode the SOAP message with the selected encoding for transferring over a communication channel.
  • 9. The computer program product of claim 8, wherein the plurality of encodings include text-based, binary, MTOM, or a proprietary encoding.
  • 10. The computer program product of claim 9, wherein the proprietary encoding encodes the SOAP message into an alternative message format other than SOAP.
  • 11. The computer program product of claim 10, wherein the alternative message format is SMTP or MSMQ.
  • 12. The computer program product of claim 8, further comprising executable instructions that when executed cause the distributed messaging system to perform the following: based on the selected encoding, automatically select a transport from a plurality of transports for transferring the SOAP message.
  • 13. The computer program product of claim 12, wherein the selection of the transport is further based on a priority ranking set for each of the plurality of transport settings or by a default setting.
  • 14. The method of claim 12, wherein the plurality of transports include at least two of TCP/IP, HTTP, UDP, or a proprietary transport.
Provisional Applications (2)
Number Date Country
60764127 Jan 2006 US
60764306 Feb 2006 US