开发者

Low speed network with high risk of disconnection

I have some computers on a network, the network is somehow serial, I mean computers are connected to each other via radio transmitters and in a line, if a radio transmitter goes off or开发者_如何学Python face some problems other computers are not accessible. the architecture would be something like this:

RT = radio transmitters

Computer#1<-RT#1->Computer#2<-RT#2->Computer#3<-RT#3->....<-RT#(N-1)->Computer#N

Distances between computers are about 20 to 30 kilometers and network speed varies between 0 and 10Kbps. computers are running windows XP and a very high loaded program (2GB of ram, 90% CPU Usage) are always running on them, all computers IP addresses are known and static.

I'm going to write a program which is going to run on every computer and get commands or packages to run or install and update on that computer. because of the low speed network and high risk of disconnection sending data between computers should have resume capability. the question is how should I implement that? using .NET remoting or use simple network sockets and TCP? which one is better? feel free to explain your suggestion or approaches you think suites this solution.


Have a read up on UUCP, historically the solution to this problem and configuration.


How about adding a new system which will behave as a server. This system will host a service(and perhaps a database) that will control all the operations on the network. As all the IP addresses are static they can easily be tracked and re-tracked in case of disconnections.

For large transmissions you can compress and split packages and send them separately. In case of a failure the transmission will restart from the broken packet. With a separate server all these statistics can easily be maintained and traffic can be controlled accordingly.

The clients can even ping the server for pending commands/upgrades in case of low CPU load.

With WCF it is possible to do bidirection/duplex transmissions.

What You Need To Know About One-Way Calls, Callbacks, And Events

WCF Duplex Messaging


I used to develop on a terrible connection.

I had packets returning literally hours (3-6 hours IIRC) later.

Thanks goodness that contract is over :)

Have fun! I feel your pain.


You could use a framework like NServiceBus that is based on messaging, and then abstract your programs from the connections themselves.

The system can allow "repeat until success" messaging with a buffer somewhere along the line, and you won't need to worry about too much low level stuff.

http://www.nservicebus.com/

I'm not sure if it allows large data transfer, but check it out for the commands

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜