Hola a todos,
No sé si el título del post es el más adecuado, o refleja con precisión lo que quiero hacer. El tema es el siguiente:
Partimos de dos proyectos de aplicación que heredan un proyecto de datos, es decir, ambas aplicaciones comparten datos. Hasta ahí bien, ¿verdad? De momento fácil. Ahora vamos a complicarlo algo más.
Como tengo dos aplicaciones, puedo ejecutarlas ambas por separado y simultáneamente, ¿no? Una aplicación desde un equipo, y la otra desde otro puesto, terminal, equipo, o como queráis. Las dos atacando a un servidor con vServer.
Pues bien, aquí ya empieza a complicarse la cosa y a aparecer el problema que tengo, el cual algunos estarán intuyendo ya.
Si desde un equipo realizo un alta de una ficha, y desde el otro equipo con la otra aplicación abierta, tengo por ejemplo en pantalla una rejilla visualizando todas las fichas de esa tabla, lógicamente el nuevo alta no se verá reflejado a menos que volvamos a lanzar la rejilla nuevamente. Esto en principio tiene fácil solución: si en lugar de lanzar la rejilla con el típico esquema "acción - disparar objetos - búsqueda - rejilla", dispararamos un formulario con un control objeto conteniendo una rejilla, y configurándole un timer, a cada período del timer ejecutaríamos un evento que hiciera un simple "interfaz: recalcular control", y ya lo tendríamos solucionado. Cada X segundos la rejilla se refrescaría apareciendo la nueva ficha.
Pero lo que no me gusta es tener que echar mano del timer por una sencilla razón: el valor del período no siempre resulta fácil de calcular, ya que conceptos como rendimiento y comodidad se ven enfrentados en este contexto. Lo ideal sería coger un valor bajo para el timer, de manera que a cada pocos instantes se refrescara la rejilla, el problema es que esto carga mucho el sistema y la red (peor aún si es en la nube). Si elegimos un valor más alto, podemos resolver el problema de rendimiento pero sin embargo, podríamos encontrarnos en situaciones en que el usuario que ejecuta la aplicación, vamos a llamarla "monitor", podría no estar viendo los datos actualizados en un determinado intervalo de tiempo que no fuera aceptable por exigencias del Sistema de Información. Pensad por un momento en una tienda en la que un cliente llama para preguntar si tienen un pantalón de la marca "X" y talla "Y", al que le responden "sí" cuando hace 5 minutos se vendió la última unidad de este pantalón.
Por consiguiente, mi pregunta es: ¿existe alguna forma de enviar señales entre aplicaciones? ¿O cómo podría refrescarse la rejilla de otra forma que no sea con un timer?
Un saludo.
José Luis.