I necesita crear un sistema que comprende de 2 componentes:servidor de inserción vs extracción de cliente para la topología agente y el servidor
un único servidor que los datos de proceso y almacena. También envía periódicamente actualizaciones a los agentes
Múltiples agentes que están instalados en puntos finales remotos. Estos recogen datos en (a menudo, pero no siempre) las operaciones de larga ejecución, y estos datos tiene que llegar al servidor
estoy usando C# .NET, y lo ideal sería que desea utilizar una comunicación que cumplen las normas método (es decir, uno que también podría funcionar teóricamente con Java, ya que también podemos usar agentes de Java en el futuro). ¿Hay alguna alternativa a los servicios web? ¿Cuáles son mis opciones?
La forma en que veo que tengo 3 opciones utilizando servicios web, y han hecho las siguientes observaciones:
- Extracción de cliente
- No se abra el puerto requerido en el agente, ya que actúa como una cliente
- tendría que consultar al servidor de actualizaciones
- Server push
- puerto abierto en el agente, ya que actúa como un servidor
- Server debe sondear agentes para resultados
- híbrido
- puerto abierto en el agente, ya que actúa como tanto un cliente y un servidor
- Sin sondeo; servidor empuja actualizaciones cuando sea necesario, el cliente envía los resultados cuando estén disponibles
El 'híbrido' (donde los agentes son tanto el cliente y servidor parece la opción obvia - pero esta aplicación normalmente se instala en entornos empresariales y gubernamentales, y estoy preocupado que pueden tener un problema con la apertura de un puerto en el agente. soy insistir demasiado en esto?
¿hay otras ventajas y desventajas que he perdido a cabo?
Oh, sí, sobre el puerto: creo que la mayoría de los administradores de red se darían cuenta de que las comunicaciones de red que se originan en cualquiera de los puntos finales cantidad de riesgo, y permitir puertos de apertura en los agentes si eso conduce a las arquitecturas más limpias. Solo amenazan con hacer un túnel a través del puerto 80, y creo que comprenderán que tener sus propios puertos es un beneficio. :) – sarnold
Heh, por mucho que me gustaría también, no creo que NIST sea demasiado feliz si dijera eso :) – Cocowalla
Además, solo tienes un nodo que necesitas mantener constantemente "activo" para el sistema para seguir trabajando Es más fácil volver a conectar un cliente de extracción muerto una vez que está solucionado que lidiar con un cliente push muerto. –