Channel Types
A Channel is a component at the heart of Remoting SDK, which is the foundation of Data Abstract, that is used to connect your client and server components together.
Channels are generally broken down into the protocols used for the underlying communications. The most widely used in Data Abstract are HTTP
and TCP
, however some less common protocols are also supported.
Each channel based on the HTTP
& TCP
protocols comes in two forms, a basic/plain version and a super
version.
-
Plain versions have a relatively simple logic: The connection is established, the request is sent, and when the answer is received, the connection closes. Plain channels always use one connection (socket) per client.
-
Super channels keep the connection constantly open and reestablish it when it is closed for any reason. The Super channels have some overhead, but provide more functionality (e.g. push notifications) than the simple alternatives. If you you don't need those features, the simple channels have less overhead.
Below is a brief description of each of the commonly available channels used by Relativity.
HTTP Channels
All of these channels are based on the HTTP protocol. They are the most commonly used of the available channels and provides a variety of benefits when used for communication within Data Abstract.
HTTP is the best protocol to use if you have little control over the network infrastructure at the deployment site, and want your clients to easily work on a wide variety of networks. Also standard URLs are used to identify server addresses which makes it easy for the end user to handle addressing.
- Http very basic channel built on the HTTP protocol.
- SuperHttp channel offers the same two-way communication features as the SuperTCP Channel but it works through HTTP, this allows it to pass through strict proxies and firewalls. It has slightly more overhead than the Super TCP Channel though, as it uses two connections to the server.
- HttpSys a simple HTTP server channel based on
http.sys
and the .NET wrapper clases. The advantage of this channel is that the core HTTP processing is done on kernel level, which makes it faster and more reliable; effectively you get the benefits of Microsofts fine tuning without the need of IIS. It is capable of supporting SSL on Windows, Mac and Linux. - SuperHttpSys is the super form of the HttpSys channel, it offers two-way communications features through HTTP which allows it to pass through strict proxies and firewalls. It is capable of supporting SSL on Windows, Mac and Linux.
TCP Channels
These are the channels available based on the TCP protocol, and use a lightweight protocol over raw TCP.
The TCP
channel below is considered legacy and has been superseded by the SuperTcp
channel.
- Tcp a simple TCP-based channel that uses a lightweight protocol over raw TCP, introducing basically zero traffic overhead on top of the transmitted message data. The TCP Channel is the perfect choice when traffic minimization is a must and firewalls are not an issue. It will provide the best possible performance for method calls, in this scenario.
- SuperTcp is a sophisticated and flexible communication channel that uses persistent connections to enable true asynchronous calls and server callbacks. It leverages a custom-defined protocol on top of a raw TCP connection, which allows for advanced features lacking in the more traditional channel types.
Other Channels
These are less common channels based on other things than TCP or HTTP.
- NamedPipe channel provides communication between a client and server using the Windows Named Pipes feature. It is recommended for communications between processes on the same computer, especially when run via separate users. This could be useful, for example for service control. Note that Windows has a set limit for the number of clients that can be connected to a named pipe at once.