Cómo garantizar que un sistema en línea siga funcionando cuando se corta su conexión de red

Store-and-forward es el método estándar para enlaces poco confiables. Desea que su programa principal se envíe a un programa proxy que recopile estas funciones y las ponga en cola.

El proxy luego quiere sondear ocasionalmente la conexión de red. Si la conexión de red no está disponible, no hace nada. Si la conexión está disponible, reenvía tantas funciones como sea posible antes de que la conexión de red se caiga.

De esa manera, no tiene que alterar el programa principal más allá de apuntarlo al proxy (que siempre podrá alcanzar, por lo que nunca causará un bloqueo).

El proxy debe usar cuatro agrupaciones de memoria preasignadas para almacenar funciones. Estos grupos deberían poder almacenar una cantidad de funciones cada uno. Estos tampones deben usarse en pares. Un par se utiliza para recopilar datos del programa, un par se utiliza para escribir en la red. Cuando tenga que cambiar los grupos de recopilación, escriba el que estaba utilizando en el disco. Para los grupos de red, transmite el grupo activo y llena el grupo inactivo desde el disco.

Lo que tienes allí, para cada lectura y escritura, se conoce como un búfer de ping-pong.

Cada búfer tiene que ir a un archivo único, donde se conoce el orden en que se escribieron los archivos. Cuando se lee un archivo y el proxy confirma que se envió correctamente, el archivo se elimina. La operación de lectura siempre va al archivo de búfer restante más antiguo. Esto garantiza que si una transmisión falla por cualquier razón, puede recuperarse.

La razón de la disposición del archivo es que el programa principal puede activar un montón de funciones mientras la red está activa y enviando paquetes. Debe poder recopilar los datos de forma segura y almacenarlos, sea lo que sea que esté haciendo la red. Los archivos distintos aseguran que no está leyendo y escribiendo el mismo archivo al mismo tiempo, lo que nunca termina bien.

Sin conocer la naturaleza de las funciones que desea que realice este sistema y los programas y protocolos involucrados, no puedo dar una respuesta relevante. Solo puedo apoyar a Tony Li al decir que la forma en que te enteras es probarlo .

Leí el comentario. No proporcionó ningún dato relevante que permita responder esta pregunta con precisión. ¿Cuál es la misión / función de esta máquina? ¿Qué sistema operativo está ejecutando? ¿Qué programas / aplicaciones / servicios proporciona esta máquina y a quién? ¿Qué protocolos usan sus programas / servicios para comunicarse con la granja de servidores y con los usuarios? ¿Los usuarios acceden a esta máquina a través de una LAN o de Internet? ¿Los usuarios acceden directamente? Hay más de 100 preguntas, pero entiendes la idea.

Si desea una mejor respuesta, haga una pregunta más detallada.

Jonathan Day da una buena respuesta general para algunos escenarios.

En general, ¿la máquina seguirá funcionando / funcionando sin internet? Claro, a menos que la energía también disminuya. ¿Será capaz de proporcionar cualquier servicio o función que se pretenda proporcionar? Es imposible para nosotros decirlo sin más datos, pero es fácil para usted descubrirlo. Desenchufe el cable ISP.

Eso sonaba lógicamente imposible hasta que leí el comentario.

Así es básicamente cómo funciona el correo electrónico: los mensajes se ponen en cola hasta que la conexión de red al siguiente salto está activa.

No puedo decir cómo hacerlo sin conocer más detalles, y ese no es mi campo de especialización, pero imagino que necesitas un sistema de programación y priorización que decida qué tareas se pueden poner en cola y qué se puede hacer localmente y cuáles son dependiente.

La forma de saber si su sistema funciona es mediante pruebas: desconecte la conexión y vea cómo funciona. Y luego prueba un poco más.