2012-02-12 18 views
7

¿Hay un marco similar a OSGi que se basa en C/C++? Tengo un montón de código heredado en C/C++ que sería demasiado caro para ser portado a Java.¿Existe una alternativa no Java a OSGi?

+1

Una opción es usar OSGi en Java * y * usar su código C/C++, por ejemplo, a través de SWIG, JNA o JNI. –

+0

Los marcos OSGi son compatibles con las bibliotecas JNI, incluida su actualización descargándolas y recargando según sea necesario. –

+1

Aunque es fácil usar JNI y libs nativos con OSGi, tiene un gran inconveniente. Si, por alguna razón, el código nativo falla, la máquina virtual completa también se bloquea. Esta podría ser una razón para no usar JNI. Una solución que use algo como Apache Celix con servicios remotos podría ser más útil en tal caso. – Alexander

Respuesta

6

Aquí es una lista de OSGi-como marcos de C/C++ que sé de (y las que aún se activa):

  • Apache Celix [Idioma: C, Licencia: Licencia Apache 2.0]
  • SOF [ idioma: C++, Licencia: Desconocido]
  • CTK [idioma: C++, Licencia: Apache License 2.0]
  • nOSGi [idioma: C++, Licencia: GPLv3]
  • Poco OSP [Idioma: C++, Licencia: Comercial]

Este blog post da una visión general de alto nivel sobre estos marcos.

+0

. Esperaba que nOSGI se basara en .NET ... –

1

Dado que OSGi es hoy en día un ecosistema completo con muchos estándares, subestándares, etc., la respuesta estricta es: no, porque depende de muchas cosas específicas de Java (bytecode, classloading, recolección de basura, ...) que no son parte de C/C++ y que ni siquiera se pueden simular, especialmente para el código heredado.

Pero si nos dice en qué partes de OSGi está interesado y especialmente qué partes considera que no son relevantes para su código, pueden surgir respuestas.

Mientras tanto se puede navegar por algunas otras preguntas similares sobre este sitio o utilice la búsqueda:

+0

Otra pregunta similar, con respuestas, se puede encontrar aquí: http://stackoverflow.com/questions/7069144/how-to-compose-osgi-based-project-with-c-based-project – Alexander

3

Tenga una mirada en Apache Celix, que le da un marco de módulo similar a OSGi para C, combinado con interoperabilidad C/Java a través del mecanismo de Servicios Remotos de OSGi.

+0

Una de las cosas que (Apache Celix) están investigando actualmente, es cómo extender Celix para que también sea posible usar C++ de forma natural. Actualmente, Celix solo se centra en C. – Alexander

Cuestiones relacionadas