Antes de elegir una técnica, debe caracterizar la comunicación de acuerdo con su rendimiento, granularidad, latencia y criticidad.
Rendimiento: ¿cuántos datos por unidad de tiempo necesitará para moverse? El rango de valores posibles es tan amplio que las aplicaciones con la tasa más baja y la tasa más alta casi no tienen nada en común.
Granularidad: ¿qué tan grandes son los mensajes? ¿Cuántos datos necesita la aplicación receptora antes de poder usar el mensaje?
Latencia: cuando una aplicación envía un mensaje, ¿qué tan pronto debe verla la otra aplicación? ¿Qué tan rápido desea que la aplicación receptora reaccione a la aplicación de envío?
Criticidad: ¿por cuánto tiempo puede dejarse sin atender un mensaje recibido antes de que sea invadido por un mensaje posterior? (Esto generalmente no es importante a menos que el rendimiento sea alto y el almacenamiento de mensajes sea limitado.)
Una vez que haya respondido a estas preguntas, puede comenzar a preguntar acerca de la mejor tecnología para su situación particular.
-Al.
Lo siento por mi ignorancia, pero ¿qué es el bloqueo y el bloqueo? Nunca me he encontrado con estos términos, incluso después de la programación de más de 15 años. De hecho, nunca me he encontrado con un requisito así hasta la fecha. Esta es la primera vez que un cliente solicita una instalación que permita que nuestras aplicaciones que se ejecutan en diferentes PC se comuniquen e intercambien datos entre ellas. En realidad estaba planeando adoptar DCOM, pero el hecho es que usar COM en Delphi es puro Pain en ... –
He tenido experiencias realmente malas con DCOM desde el MIDAS original, que usaba DCOM como el transporte predeterminado. Si decide probarlo, investigue primero. El bloqueo de llamadas detiene la ejecución del código hasta que la llamada ha finalizado. Para aplicaciones interactivas, estas se deben usar en hilos. Las llamadas sin bloqueo devuelven el control de inmediato y le notifican con un evento cuando la llamada se haya completado. Ambos tienen sus ventajas y desventajas. –
COM en Delphi es probablemente la forma más fácil de usar COM, pero generalmente no es la mejor manera de trabajar en una red. El bloqueo y el no bloqueo se relacionan con la forma en que el sistema operativo maneja el hilo que inicia la E/S (una secuencia o proceso bloqueado no se ejecutará hasta que se desbloquee). El bloqueo de E/S hace que el programador del sistema operativo no programe el subproceso hasta que se complete la E/S. La E/S sin bloqueo no bloquea el hilo, el hilo sigue en ejecución, pero necesita utilizar una devolución de llamada o un sondeo u otro mecanismo para notificar su finalización. –