NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

Messages, Channels and SOAP

Applications communicate using messages with NGWS runtime remoting providing the transport and encoding of these messages between AppDomains. NGWS runtime remoting Channels transport messages between Applications with NGWS runtime serialization formatters encoding and decoding the messages. Messages can have a number of patterns, with one way and request response as some of most common patterns.

HTTP Channel

The HTTP Channel by default uses the SOAP protocol to transport XML messages between Applications. SOAP is an industry protocol designed to transport XML messages over a number of protocols. The SOAP specification uses the HTTP protocol as an example to demonstrate protocol bindings. The SOAP specification also specifies how SOAP messages can be bound to other protocols.

NGWS runtime remoting Channels can use pluggable NGWS runtime serialization formatters to encode and decode messages. The HTTP Channel encodes SOAP messages using the NGWS runtime Serialization SOAP Formatter. The HTTP Channel can use any NGWS runtime Serialization Formatter e.g. NGWS runtime Serialization Binary Formatter. By specifying the mime type on the channel, 3rd party formatters that have been written can be plugged in.

Figure: Applications communicating using SOAP through the HTTP Channel

TCP Channel

The TCP Channel by default uses plain sockets to transport Binary messages. The TCP Channel encodes Binary messages using the NGWS runtime Serialization Binary Formatter. Just like the HTTP Channel, the TCP can use any NGWS runtime Serialization Formatter e.g. NGWS runtime Serialization SOAP Formatter. 3rd party formatters can also be used by specifying the mime type on the channel. The TCP Channel can be used for fast communication between servers of a farm, but NOT for Internet.

Channels can be either be specified in the NGWS runtime remoting Configuration or they be loaded with APIs.