NET Remoting Bidirectional TCP CHANNEL

zhaozj2021-02-16  103

.NET Remoting Bidirectional TCP Channel

by: Ingo Rammer READ THIS FIRST: 09/03/2002 This channel is an early preview It contains highly un-optimized and un-scalable code to just prove my concept of a bidirectional channel I released it early to see if people are.. interested in a channel like this and to see if others will join me in adding features. Both is definitely true. Josh Prismon is currently working on turning my horrible socket code into something scaleable and I will also change the header serialization format to further increase its . performance Please check back in a week or two to download a more usable and scaleable version of this channel Summary:. Yes, you can download and develop with this channel now No, you will not be happy if you deploy it now.. THE PACKAGE CURRENTLY LOOKING At Contains a Bidirectional TCP Transport Channel for .NET Remoting.

This channel aims to solve several problems related to events, callbacks and client-side sponsors when Remoting is used with clients behind NATs or Firewalls. Normally, with the built-in TcpChannel, Remoting tries to open a secondary connection from the server to the client whenever any of these features are used. This is a) necessary due to the TcpChannel's internal mode of operation in terms of "hard" request / response RPC and is b) problematic because normally, firewalls or NATs will not allow this secondary connection to Be opened.

.........................

This is possible, because the channel internally works in an asynchronous, message oriented fashion so that request and response can share the same connection with a number of different simultanous requests and responses. The same connection will also be re-used for server-to- Client Callback Requests and The Client's Response.download Information

CVS module name: bidirectionaltcpchannelcvs web: http://soap.4s4c.com/cvsweb/cvswweb.cgi/bidirectionaltcpchannel/download: bidirectionaltcpchannel.zip (66 kB)

USAGE

You Can Register this Channel on the client side with?

And On The Server Side with

The Urls for your Objects Have to look like "Bidirtcp: //

:

/

", for example" bidirtcp: //127.0.0.1: 9999 / testobj.rem ".

Please Note: Hostnames Are Not Yet Supported In The Urls, please uses IP Addresses in this First Preview Release.

Known Issues

Needs support for automatic client reconnection include a server side timeout. Whenever the TCP connection drops due to network outages, the server should assign a grace period to the client. The server will in this case simply cache the event for some amount of time (like 10 seconds) and if the client reconnects during this time, no data is lost and no exception is thrown It only works with IP addresses in the configuration file It should however also support hostnames Performance:.?.?.? Too many new Threads. Will port to threepool usage lat

Internals

As soon as a process is started, a GUID is assigned to it. Whenever a TCP connection is established, the two peers' GUIDS are exchanged. From this point on, the endpoint identifier is the GUID. When the client later passes an object to . the server (callback interface or delegate), this GUID will be part of the dynamically generated ObjRef which contains the endpoint URLs for this object If the server now calls this object, it will not see a URI like tcp: // somehost: 1234 / URI / to / your / object (which would trigger the creation of a new connection from server to client) but instead at BidirTcpGuid:. // b28c92ed-d4b9-4fa6-a248-f5362caec380 The server will then check its connection table and retrieve the connection which corresponds to the GUID b28c92ed-d4b9-4fa6-a248-f5362caec380 to send the reply The most important part is that the complete processing model for the underlying TCP connection has been changed:. whereas the "normal" TcpChannel uses a request / Response Style Connection Oriented PROT ocol, the BidirTcpChannel uses a message oriented protocol with correlation IDs to find matching request and response messages. That's somehow the only way things like this will work when you have only one connection available. However, this also means that this channel is not your average Remoting Channel and if it's the first one for you to oud. But trust me, normal channel;

Q: IS this Web Service or GXA Related? A: NO, NOT AT All. It's Completely Non-Gxa, Non-WebService and Will Not Cooperate in Any Way with any ws- * specification. It's purely for applications where you use .net At The Client and Server Side.

Q: IS this thing supported in any Way? A: No. But please send feedback to me at rammer@sycom.at and i'll try to? Work ON Your Issues WHENEVER I GET TIME TO DO SO: CAN i Use IT IN Commercial Production Applications? A: YES. But With Warranty Or Support. Please see the license Which IS Printed Below and which can be found in the source code files.

Q: Is this channel from Microsoft? A: No. It's been development solely by an independent development.

Q: Can We Hire You as a consultant? A: GLAD you asked ;-)

I'm consultant, author, speaker, trainer and developer -. Mainly for distributed .NET applications I'm available for technical and architectural consulting ,? on-site training and development throughout Europe.?

If you currently look at developing a distributed .NET application, think about designing / implementing an application framework, or just like what you see here and think that you need a hardcore .NET person on your project, please do not hesitate to contact me At rammer@sycom.at.

My services include: custom training, design, prototyping & architectural review I'm not normally available for long term project development But if you are working on something exceptionally interesting - who knows ;-)..?

Q: What's the license of this component A:? This component is covered by a liberal BSD / X11 style open source license It therefore allows you to modify, share, use (even in commercial applications) this channel without any warranty and on your. OWN RISK. You HOWEVER MUST NOT Remove The Copyright Statement.The Complete License Can Be Found Here.

Q: Can this channelware? A: yes. The x11 license we use is compatible with the GPL.

Documentation

转载请注明原文地址:https://www.9cbs.com/read-10532.html

New Post(0)