Estoy escribiendo un software para un nuevo dispositivo de hardware al que quiero que cualquier tipo de aplicación nueva de terceros pueda acceder si así lo desean.¿Debo usar CORBA, MessagePack RPC o Thrift, o algo completamente diferente?
El software será un proceso nativo (C++) que debería poder ser consultado por juegos de terceros y aplicaciones que quieran admitir el dispositivo de hardware. Esas aplicaciones de terceros también deberían poder recibir eventos del proceso nativo, suscrito. Por lo tanto, aparte del proceso nativo, también proporcionaré bibliotecas de "conectores" a los desarrolladores de terceros, para todas las plataformas/idiomas que puedan elegir (Java, C++, Python, etc.) para incrustarlos en sus aplicaciones para que puedan conectarse fácilmente. al dispositivo sin necesidad de escribir ningún código adicional. Quiero apuntarme a todas las plataformas de SO de escritorio/laptop, y tener una idea bastante buena de las funciones que quiero exponer, pero idealmente no quiero estar demasiado atascado (es decir, quiero que sea elegantemente escalable desde el cliente y el servidor). perspectivas).
Estoy buscando la fiabilidad en el futuro, el rendimiento, la facilidad de mantenimiento en el futuro, y la flexibilidad de idiomas multiplataforma en el futuro, y la facilidad de desarrollo, en ese orden.
¿Qué debo usar?
CORBA, MessagePack-RPC, Thrift, o algo completamente distinto?
(he omitido ICE debido a su licencia)
CORBA es * antiguo *. También es pesado y obsoleto. Es casi seguro que hay una mejor solución. – skaffman
skaffman, los adjetivos antiguo, pesado y obsoleto no me desaniman. La cantidad de memoria por ORB es solo de unos pocos megabytes, lo que puede ser malo para los integrados, pero absolutamente perfecto para las computadoras de escritorio, y el rendimiento es rápido. Me preocupa la velocidad de rendimiento, la flexibilidad multiplataforma, la facilidad de desarrollo, la facilidad de mantenimiento y la fiabilidad en el futuro. Mientras sea el mejor en estos departamentos en general, no importa lo que los demás "piensen" al respecto, ni tampoco tiene que ser "la última moda", ganaría. Solo me pregunto si es lo mejor para lo que estoy haciendo. – Navigateur
Simplemente no podemos responder a una pregunta de este tipo sin conocer sus requisitos, qué software es/hace, el público objetivo, ruta de actualización, plataformas en las que se ejecutará, etc. –