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!

Remoting Channel Concepts

This section describes Channels.

Remoting Channel Concepts

Channels transport messages between Applications across remoting boundaries e.g. AppDomains, Processes and Machines. These crossings include both inbound and outbound. A channel can listen on an endpoint for inbound messages or send to an endpoint for outbound messages or both. This provides an extensibility point in the NGWS runtime to plug in a wide range protocols, even though the NGWS runtime may not be at the other end of the channel. NGWS runtime objects can be used to expose and represent a wide and rich set of semantics and entities. The Channel provides the extensibility point to convert the messages to and from the specific protocols.

Channels must expose the IChannel interface, which provides informational properties such as the ChannelName, ChannelPriority and MimeType. Channels are registered via ChannelServices.RegisterChannel. Channels can also be loaded from the Remoting Configuration. See Remoting Configuration for details.

If there are NGWS runtimes at both ends of the channel, then a "Session" is created between the two ends, in order to connect the client and sever sink chains on either side of the boundary together. The client part of the channel is located at the end of Client context sink chain. The server part of the channel is located at the start of the Server context sink chain. Messages are delivered to the client channel via the IMessageSink interface, travel through the channel and are received by the server channel. The server channel delivers the message to the first server context sink.

Remoting Channel Properties Concepts

Channels Properties are used to configure the channel at execution time. Channel Messages Sinks can expose the IDictionary interface. See the Remoting Security section for details on how to use properties for security purposes.

Standard Channel Properties

The following are channel properties that all channel expose.

Name Example Description
ChannelPriority   Priority of the channel
ChannelName http

tcp

Name of the channel
MimeType text/xml

bin/bin

Mime type the channel uses.

Channels and Configuration

Channel Sinks

HTTP Channel

Key Points

HTTP Channel Sender Sink

Key Points

HTTP Channel Receiver Sink - Generic

Key Points

HTTP Channel Receiver - TCP Receiver

Key Points

e.g.

http://www.contoso.com:8080/media/../

http://www.contoso.com:8081/media/../

e.g.

http://111.222.233.123:8080/media/../

http://111.222.233.123:8081/media/../

HTTP Channel Receiver - ASP+ Receiver

Key Points

HTTP Channel Sink Sender Properties

Name Example Description
UserName joe Username uses for Web Security.
Password secret Password used for Web Security
Domain   Domain used for Web Security. Optional
PreAuthenticate True If true, send the credentials on the first request.
URL http://. . . Complete URI for the proxy.
ProxyName myproxy The name of the HTTP Proxy
ProxyPort 80 The proxy port number.

HTTP Channel Receiver Properties

Name Example Description
Host localhost

server.domain.com

The hostname of the receiver
Ports 80;8080 The ports the Channel can listen on

HTTP Channel Configuration

See the Remoting Configuration Section for details.

HTTP Channel Security

Key Points

See the Remoting Security Section for more details.

HTTP Channel Compatiblity

HTTP Channel is compliant with SOAP 1.1

TCP Channel

Key Points

TCP Channel Sender Sink

Key Points

TCP Channel Receiver Sink

Key Points

e.g.

tcp://www.contoso.com:8080/../

tcp://www.contoso.com:8081/../

e.g.

tcp://111.222.233.123:8080/..

tcp://111.222.233.123:8081/..

TCP Channel Sink Sender Properties

Name Example Description
URL tcp://host/. . . Complete URI the proxy.

TCP Channel Receiver Properties

Name Example Description
Host localhost

server.domain.com

The hostname of the receiver
Ports 9000;9010 The ports the Channel can listen on

TCP Channel Configuration

See the Remoting Configuration Section for details.

TCP Channel Security