Pregunta

Tenemos un dispositivo integrado que necesita interactuar con un sistema de software empresarial.

El sistema empresarial actualmente utiliza muchos mecanismos diferentes para la comunicación entre sus componentes: ODBC, RPC, protocolo propietario sobre TCP / IP, y se está moviendo a los servicios web implementados en .Net.

El dispositivo integrado funciona como * nix, por lo que estamos analizando cuál es el mejor mecanismo de interacción.

Los requisitos para la comunicación son:

  • Debe ejecutarse sobre TCP / IP.
  • También debe ejecutarse a través de RS-232 o USB.
  • debe ser seguro (por ejemplo, HTTPS o SSL).
  • Debe ser capaz de transferir ~ 32MB de datos.

    Nuestra mejor opción actual es gSOAP .

    ¿Alguien por ahí en SO-land tiene alguna otra sugerencia?

    Editar: la respuesta de Steven me dio la mayoría de los nuevos punteros. ¡Gracias a todos!

        
  • ¿Fue útil?

    Solución

    Puede definir los servicios RESTful utilizando HTTPS (que utiliza TCP / IP por definición) y es capaz de transferir cualquier cantidad de datos.

    La ventaja de REST sobre SOAP es que REST es más simple. Puede usar JSON en lugar de XML, que es más simple.

    Tiene menos sobrecarga que el protocolo SOAP.

    Otros consejos

    ¿No puedes usar SSL a través de TCP?

    Si tiene algún tipo de * nix (¿puedo adivinar? Es QNX o Linux incorporado, ¿verdad?) debería funcionar prácticamente de forma directa a través de Ethernet, USB y RS232. Mantenlo simple.

    32mb es un montón de memoria para esta tarea. Asignaría entre 2 y 4 mb de memoria para redes y amp; cifrado (código + datos).

    No está muy claro por qué desea vincular esto con un protocolo de llamada a procedimiento remoto como SOAP. ¿Hay otros requisitos que no mencionas?

    Sin embargo, en general, este tipo de cosas se maneja muy fácilmente utilizando los servicios normales basados ??en la web. Puedes obtener procesadores http muy ligeros escritos en C; vea este artículo de Wikipedia para ver las comparaciones de varios de ellos. Entonces una interfaz REST funcionará bien. También hay interfaces de red que tratan el USB como una conexión TCP.

    Si debe poder ejecutarse sobre RS232, es posible que desee buscar en otra parte; En ese caso, algo como sftp podría hacerlo mejor. O escriba un protocolo simple de capa de aplicación que pueda ejecutar sobre una conexión encriptada.

    Si va a conectar su aplicación mediante RS232, asumo que usará PPP para conectar el dispositivo a Internet. Sin embargo, la cantidad de datos que está proponiendo transferir es algo preocupante. La mayoría de las conexiones RS232 están limitadas a 115200 baudios, lo cual, ignorando la sobrecarga requerida para el encuadre TCP / IP / PPP, producirá una tasa de transferencia de como máximo 11,000 bytes por segundo. Esto implica que tomará un mínimo de aproximadamente 2800 segundos o 46 minutos para realizar cualquier transferencia que desee.

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