Simultaneous API exposure for messages
First Claim
1. A method, performed in a distributed messaging system, of simultaneously exposing a message infoset as both an XML view, which allows the message infoset to be accessed as XML data, and a Typed view, which allows the message infoset to be accessed as a typed data object, such that at least a portion of the message infoset can be written using an XML API, through which the message infoset is accessed as a typed data object, and read using a Typed API, through which the message infoset is accessed as XML data, in order to efficiently process values of the message infoset, the method comprising:
- receiving an XML message infoset comprising a SOAP object written using the XML API, the message infoset including a common set of XML headers that each enclose a value, the XML headers being exposed as both XML and typed properties such that the value enclosed by each XML header is simultaneously exposed as both an XML view and a Typed view such that at least a portion of the XML message infoset can be accessed using the XML API and the Typed API in order to efficiently process values of the message infoset wherein the XML message infoset is accessible by;
creating a common language infrastructure object, using the XML API, by;
(1) identifying an index to the header using an XML name encapsulating the value of the header;
(2) retrieving an XML dictionary reader specific to the header that includes a read operation; and
(3) passing the header to the read operation for creating a typed representation of the header; and
by;
directly accessing the value using the Typed API as if the value were the value of a typed property of a Common Language Infrastructure object without first identifying an index of the XML header or creating an XMLReader for the XML header; and
retrieving the values using the Typed API, which can access the typed properties without regard to how the message infoset is encoded using XML.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments described herein provide for a message object that simultaneously exposes an XML view and Type view for a message infoset. In this embodiment, interaction with a message can occur using either an XML or Type application program interface (API), which are synced. More specifically, embodiments herein provide or expose a common set of headers (e.g., SOAP headers) as “typed” properties (e.g., CLR properties), which allow for getting and/or setting a value thereof. In other words, the Type API reads/writes values for typed properties without regard to how the message is encoded with XML. Moreover, the two APIs are synced such that a value can be set using one API and retrieved using the other. For example, an XML API may be used as a writing mechanism for interacting with a value, while the Type API can read that same value, and vise-versa.
-
Citations
9 Claims
-
1. A method, performed in a distributed messaging system, of simultaneously exposing a message infoset as both an XML view, which allows the message infoset to be accessed as XML data, and a Typed view, which allows the message infoset to be accessed as a typed data object, such that at least a portion of the message infoset can be written using an XML API, through which the message infoset is accessed as a typed data object, and read using a Typed API, through which the message infoset is accessed as XML data, in order to efficiently process values of the message infoset, the method comprising:
-
receiving an XML message infoset comprising a SOAP object written using the XML API, the message infoset including a common set of XML headers that each enclose a value, the XML headers being exposed as both XML and typed properties such that the value enclosed by each XML header is simultaneously exposed as both an XML view and a Typed view such that at least a portion of the XML message infoset can be accessed using the XML API and the Typed API in order to efficiently process values of the message infoset wherein the XML message infoset is accessible by; creating a common language infrastructure object, using the XML API, by; (1) identifying an index to the header using an XML name encapsulating the value of the header; (2) retrieving an XML dictionary reader specific to the header that includes a read operation; and (3) passing the header to the read operation for creating a typed representation of the header; and
by;directly accessing the value using the Typed API as if the value were the value of a typed property of a Common Language Infrastructure object without first identifying an index of the XML header or creating an XMLReader for the XML header; and retrieving the values using the Typed API, which can access the typed properties without regard to how the message infoset is encoded using XML. - View Dependent Claims (2, 9)
-
-
3. A method, performed in a distributed messaging system, of simultaneously exposing a message infoset as both an XML view, which allows the message infoset to be accessed as XML data, and a Typed view, which allows the message infoset to be accessed as a typed data object, such that at least a portion of the message infoset can be written using a Typed API, through which the message infoset is accessed as a typed data object, and read using an XML API, through which the message infoset is accessed as XML data, in order to efficiently process values of the message infoset, the method comprising:
-
creating an XML message infoset comprising a SOAP object that includes a common set of XML headers that each enclose a value, the XML headers being exposed as both XML and typed properties such that the value enclosed by each XML header is simultaneously exposed as both an XML view and a Typed view such that at least a portion of the message infoset can be accessed using a Typed API and using an XML API in order to efficiently process values of the message infoset, wherein the value enclosed by each XML header is written to the XML header by; directly writing the value using the Typed API as if the XML header were an object in an implementation of the Common Language Infrastructure, wherein the value of each XML header is written using the Typed API; and retrieving the values using the XML API, which reads the XML headers by; (1) identifying an index to the header using an XML name encapsulating the value of the header; (2) retrieving an XML dictionary reader specific to the header that includes a read operation; and (3) passing the header to the read operation for creating a typed representation of the header. - View Dependent Claims (4, 5)
-
-
6. In a distributed messaging system, a computer program product comprising:
-
one or more computer storage media, wherein the computer storage media excludes signals, having stored thereon computer executable instructions that, when executed by a processor, cause the distributed messaging system to perform steps for simultaneously exposing a message infoset, comprising a SOAP message, as both an XML view, which allows the message infoset to be accessed as XML data, and a Typed view, which allows the message infoset to be accessed as a typed data object, such that at least a portion of the message infoset can be written using a Typed API, through which the message infoset is accessed as a typed data object, and read using an XML API, through which the message infoset is accessed as XML data, in order to efficiently process values of the message infoset, the steps comprising; creating an XML message infoset that includes a common set of XML headers that each enclose a value, the XML headers being exposed as both XML and typed properties such that the value enclosed by each XML header is written to the XML header by; directly writing the value using the Typed API as if the XML header were an object in an implementation of the Common Language Infrastructure, wherein the value of each XML header is written using the Typed API; and retrieving the values using the XML API, which reads the XML headers by; (1) identifying an index to the header using an XML name encapsulating the value of the header; (2) retrieving an XML dictionary reader specific to the header that includes a read operation; and (3) passing the header to the read operation for creating a typed representation of the header. - View Dependent Claims (7, 8)
-
Specification