Tenemos una biblioteca con una lógica muy compleja implementado en C. Tiene una interfaz de línea de comandos con argumentos no demasiado complejas basadas en cadenas. Para acceder a esto, nos gustaría envolver la biblioteca para que se pueda acceder con simple RPC XML o incluso con llamadas HTTP POST directas.Cómo envolver una biblioteca de C, de manera que pueda ser llamado desde un servicio web
Tener un poco de experiencia con Java, mi primera idea sería
- Wrap la biblioteca en JNI/JNA
- Uso Una pila WS delgada y un motor servlet
- solicitudes de proxy a través de Apache para el servlet motor
Creo que ya debería haber algo simple que se pueda utilizar, así que estoy publicando esta pregunta aquí. Una solución tiene los siguientes requisitos
- Se debe poder desplegarse a una distribución Linux actual, preferiblemente ya está disponible a través de la gestión de paquetes
- Debe integrarse con un servidor web estándar (como en mi ejemplo Apache)
- Pequeño cambios en la interfaz de la biblioteca debe ser manejable
- de extremo a extremo (HTTP-WS-biblioteca-WS-HTTP) la solución no debería incurrir demasiado trabajo, pero la fiabilidad es muy importante
Como alternativa a la propuesta de JNI/JNA, Creo que en el C# mundo no debería ser demasiado difícil escribir un servicio web y llamar a esto no administrado módulo código, pero espero que alguien me puede dar algunas indicaciones que sean viables en lo que respecta a los requisitos.
He votado todas las buenas respuestas, pero esta es la ruta que realmente tomamos. Gracias, Bob. – Kariem