New IPC channel in remoting

Remoting in v2.0 of the framework is introducing a new IPC Channel meant for x-proc communication on the same machine. It is based on named pipes and works on win2k based platforms (win2k, winxp, win2k3). It will provide better performance characteristics than the current TCP channel. It will also provide a way to control access to the underlying pipe, so that the server can limit the access to a specific group. As with the TCP channel it also supports authentication and impersonation of client identities.

Beta 1 build of the framework already has the IPC implementation. Beta 2 might have some changes mainly in performance and security. Switching from TCP / HTTP to IPC on the same machine should be trivial. If anyone has tried it so far and have any feedback, please send it our way.

Comments

  • Anonymous
    October 06, 2004
    The comment has been removed
  • Anonymous
    October 07, 2004
    The comment has been removed
  • Anonymous
    October 13, 2004
    How do you automatically switch between IPC and TCP when communicating with local and remote servers? Is this something I need to take care of in my code, or is there a transparent way in which the remoting framework will automatically switch to a TCP based mechanism when it connects to remote machines?

    My application constantly communicates with a network of servers. So, it would be great if I could just specify TCP as my default remoting channel, while remoting framework will internally switch to IPC when it detects that I am trying to talk to the local machine.
  • Anonymous
    October 13, 2004
    What are the advantages to using named pipes Vs shared memory for communication? Is there any performance benefit there? For example, on dual- or quad- processor machines, I am thinking shared memory may be the fastest IPC mechanism, as opposed to named pipes. I guess, I am just trying to understand the design philosophy of the remoting team in choosing named pipes over shared memory, when implementing the IPC channel for remoting.
  • Anonymous
    October 13, 2004

    auto switching isnt possible. The server actually needs to be listening for IPC requests. You can implement such a scheme on your own by discovering that the server url is on the same machine as using the IPC channel as appropriate.
  • Anonymous
    October 14, 2004

    There are various considerations while writing a channel. They include a balance of performance, scalability and implementation complexity. Performance of a shared memory implementation would be certainly better than named pipes. But issues when synchronizing between between reader/writers could lead to scalibility concerns, especially with multiple clients. Named Pipes provide good mix of both perf and scalability as compared to the TCP channel.