Pregunta

Tengo un proyecto comming mi manera: dispositivos con su propio sistema escrito en C, y una aplicación de Windows para su control administrativo (envío de configuración, recuperar los datos registrados a partir de dispositivos, el seguimiento del estado del dispositivo). Tengo flexibilidad en la elección de lo que la tecnología Voy a usar. Los requisitos son bastante difusa en este momento por lo que debe ser algo flexible. El protocolo de comunicación primario es TCP. Podemos utilizar los puertos COM como una opción de mantenimiento, cuando la comunicación normal falla debido a algún fallo de funcionamiento de la red, por ejemplo.

Estoy pensando en el uso de un servicio WCF como un "proxy" entre la aplicación y los dispositivos. App envía datos al servicio, servicio procesa los datos y envía los paquetes TCP a dispositivos (datos en paquetes son comprensibles por los dispositivos), dispositivos reaccionan envían paquetes TCP de nuevo a servicio WCF que a su vez envía procesa el mensaje a la aplicación. ¿Esto uso de WCF tiene ningún sentido?

WCF se puede acceder fácilmente desde webapp lo que además de la aplicación normal de las ventanas que pudimos hacer nuestro sistema más atractivo con él, pero ¿merece la pena? ¿Qué opinas, para sus comentarios, por favor:)

¿Fue útil?

Solución

Como lo entiendo, usted está considerando una arquitectura de sistemas con tres elementos. Una aplicación de Windows, un conjunto de dispositivos, y luego un servicio adicional que actuaría como un proxy o intermediario, la intermediación de la comunicación entre los dos.

Primera pregunta: ¿hay alguna razón la aplicación de gestión no puede conectarse a los dispositivos en sí? La aplicación Windows que se utiliza para la gestión debe ser capaz de abrir un socket para los dispositivos, la misma facilidad que otra aplicación podría. ¿Por qué no? Creo que otra manera de pedir esto es, ¿Cuál es la justificación para introducir el corredor, el tercer elemento, en la arquitectura? ¿Hay alguna asincronía se quiere introducir? ¿Es una cuestión de escala - tal vez el número de dispositivos es tan grande que desea una aplicación separada para gestionar las comunicaciones a todos ellos, en lugar de conectar directamente a partir de una aplicación con una interfaz de usuario. ¿Es una cuestión de topología de la red? Antes de considerar lo que la tecnología a utilizar en el corredor, en primer lugar decidir lo que es apremiante que lo incluya un corredor en la arquitectura.

Suponiendo que existe una buena justificación para el tercer elemento, entonces se puede considerar la cuestión de si WCF es la tecnología de comunicaciones adecuado para ese elemento. Ciertamente entre 2 aplicaciones basadas en Windows, WCF va a funcionar bien. Si están en la misma máquina se puede utilizar un nombre tuberías de unión y obtener muy buenos Potencia para la comunicación local. Si estas dos aplicaciones se distribuyen en diferentes máquinas de Windows que puede utilizar TCP para, de nuevo, muy buen rendimiento en la comunicación de red.

También desea considerar la conexión entre el corredor y los dispositivos. WCF puede interconectar con sistemas no WCF. Usted tendría que escribir algunas extensiones en el lado de WCF, para interconectarse con un sistema existente. Pero es posible y yo diría que un caso de uso casi la corriente principal de WCF. Ver este Q para más información sobre este tema .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top