Genuine Channels versus others - GenuineChannels/GenuineChannels GitHub Wiki

By Dmitry Belikov

Genuine Channels vs. Web Services

Historically Web Services has provided interoperability at the expense of performance and simplicity. If you have .NET on both sides, the choice of XML and unidirectional HTTP leads to considerable memory, network and performance problems. With respect to Service Oriented Architecture, Web Services provide only a part of functionality supported by .NET Remoting. For example, .NET Remoting allows to publish services implicitly and supports the leasing concept allowing you to release service resources after all clients have stopped using them.

Genuine Channels provides a rich set of features allowing rapid development of client-server and peer-to-peer solutions. This includes fast bidirectional connections, powerful events with IP Multicasting support, a wide range of security options, complete control over the entire process, and better performance. Genuine Channels provide the same penetration since Genuine HTTP supports web-proxies, even if they require authorization.

Genuine Channels allows you to implement a natural Service Oriented Application. Do not make your business logic a slave to unidirectional and slow links!

Genuine Channels vs. Sockets

Modern client-server and peer-to-peer solutions are based on a Service-Oriented Architecture. The socket interface is based on old streaming technology, which is too inconvenient for the average .NET application. Do you really want to spend your time building the entire infrastructure including the service-consumer concept, connection services, events, and serialization infrastructure? You may be tempted from a technical perspective, but in general, the cost is just too high for most businesses and app developers. The use of sockets is not trivial, especially on the server side. Synchronous approach consumes one thread per client, which is unacceptable. Asynchronous approach is about 2.5 times slower. To make this process more joyful, .NET Socket API conceals several troublesome surprises.

In practice, about 20% of network messages consume 80% of CPU and network resources. If you leverage the .NET Remoting functionality for implementing 80% of your solution that consumes just 20% of resources, you greatly save on time and money. Fortunately, Genuine Channels supports both concepts. You can use low-level, stream-like interfaces and .NET Remoting concurrently, independently and without any drawbacks. As a result, you can reveal all bottlenecks in a prototype and then quickly rewrite them with the help of fast streaming technology.

Genuine Channels has united all the advantages of .NET Remoting and sockets. Genuine Channels enables you to save on time and money during development and use low-level instruments for resolving bottlenecks.