2010-11-30 12 views
5

Tengo algunas computadoras en una red, la red es de alguna manera serial, quiero decir que las computadoras están conectadas entre sí a través de transmisores de radio y en línea, si un transmisor de radio se apaga o se enfrenta problemas que otras computadoras no son accesibles. la arquitectura sería algo como esto:
transmisores de radio TR =
Computer#1<-RT#1->Computer#2<-RT#2->Computer#3<-RT#3->....<-RT#(N-1)->Computer#NRed de baja velocidad con alto riesgo de desconexión

Las distancias entre los equipos están a punto de 20 a 30 kilómetros, y velocidad de la red varía entre 0 y 10 Kbps. las computadoras están ejecutando Windows XP y un programa muy cargado (2 GB de ram, 90% de uso de CPU) siempre se están ejecutando en ellas, todas las direcciones IP de las computadoras son conocidas y estáticas.

Voy a escribir un programa que se ejecutará en todas las computadoras y obtendré comandos o paquetes para ejecutar o instalar y actualizar en esa computadora. debido a la red de baja velocidad y el alto riesgo de desconexión, el envío de datos entre computadoras debería tener la capacidad de reanudar. la pregunta es ¿cómo debo implementar eso? utilizando .NET remoto o use tomas de red simples y TCP? ¿cuál es mejor? siéntase libre de explicar su sugerencia o los enfoques que piense en esta solución.

+0

son las máquinas en un dominio? Servidores, estaciones de trabajo? – dotnetnate

Respuesta

1

¿Qué le parece agregar un nuevo sistema que se comportará como un servidor. Este sistema alojará un servicio (y tal vez una base de datos) que controlará todas las operaciones en la red. Como todas las direcciones IP son estáticas, se pueden rastrear y volver a rastrear fácilmente en caso de desconexiones.

Para grandes transmisiones puede comprimir y dividir paquetes y enviarlos por separado. En caso de falla, la transmisión se reiniciará desde el paquete roto. Con un servidor separado, todas estas estadísticas se pueden mantener fácilmente y el tráfico se puede controlar en consecuencia.

Los clientes pueden incluso hacer ping al servidor en busca de comandos/actualizaciones pendientes en caso de poca carga de la CPU.

Con WCF es posible realizar transmisiones bidireccionales/dúplex.

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

WCF Duplex Messaging

+0

¡gran idea! tnx –

5

Tener una lectura en UUCP, históricamente la solución a este problema y configuración.

+0

¡Si quiero usar algo como UUCP, usaré .NET remoto! –

+0

@HPT No estoy diciendo que sea una tecnología sorprendente, pero sin duda es una tecnología probada. –

1

Solía ​​desarrollar una conexión terrible.

Tenía paquetes que volvían literalmente horas (3-6 horas IIRC) más tarde.

Gracias a Dios que el contrato ha terminado :)

Que se diviertan! Siento tu dolor.

0

usted podría utilizar un marco como NServiceBus que se basa en la mensajería, y luego abstractas sus programas desde las propias conexiones.

El sistema puede permitir mensajes "repetir hasta el éxito" con un búfer en algún punto de la línea, y no tendrá que preocuparse por demasiadas cosas de bajo nivel.

http://www.nservicebus.com/

No estoy seguro de si se permite la transferencia de datos de gran tamaño, pero echa un vistazo a los comandos

Cuestiones relacionadas