2009-08-31 13 views
8

Soy nuevo en la programación con OSGI. ¿Alguien puede proporcionarme un ejemplo práctico de una invocación de servicio cliente/servidor de osgi?Ejemplo de trabajo para un servicio OSGI remoto

He estado tratando de lograr esto durante las últimas 2 semanas sin ningún éxito.

Mi servicio está siendo descubierto y ejecutado por una instancia de eclipse en la misma máquina, pero cuando intento lo mismo desde otra máquina, falla.

Cualquier ayuda será apreciada.

Gracias.

Respuesta

8

En la plataforma OSGi (Versión 4 Versión 4.1) los servicios descubiertos a través del registro de servicios OSGi son servicios locales disponibles solo dentro de la instancia de la infraestructura OSGi única (es decir, una sola JVM). No puede esperar ejecutar un servicio OSGi ejecutándose en una máquina diferente.

Si desea llamar a los servicios OSGi través de varias instancias marco (es decir, varias JVM/múltiples máquinas) usted debe echar un vistazo a Distribuido OSGi especificación (RFC 119) que será parte de upcoming OSGi specification (Versión 4 Versión 4.2) con CXF como reference implementation.

Actualización: Otra forma de llamar a los servicios OSGi remotos es usar R-OSGi. Es un middleware que proporciona una forma casi transparente de acceder a servicios en plataformas OSGi remotas.

+0

La página CXF tiene un grupo de muestras en la parte inferior de la página. – SteveD

2

A menos que esté jugando con distribuciones OSGi distribuidas de CXF o Eclipse, no hay nada relacionado con la comunicación remota en OSGi. Debería poder hacer que cualquier implementación remota funcione entre 2 procesos basados ​​en OSGi.

Lo que voy a decir es que probablemente tengas problemas con el cargador de clases si tratas de usar RMI o cualquiera de los patrones RPC disponibles en el remoto de Spring. Esto es solvente, pero requiere una buena comprensión de OSGi y cargadores de clases.

¿Su código funciona si lo ejecuta fuera de OSGi? ¿Estás usando un firewall? ¿Puede ejecutar cualquier servicio basado en red en su PC que sea visible para otras PC en la red?

Como se describió, el problema parece más relacionado con la red que con OSGi.

Además, no mencionaste qué falla obtienes al ejecutar diferentes PC.

3

Los servicios OSGi son intravm, no entre-vm, a menos que agregue la distribución en la parte superior.

Es posible que desee ver Brian's tutorial que hace un buen trabajo al mostrar cómo se pueden exportar los servicios OSGi y utilizar ECF para realizar la distribución remota. Hay bastantes paquetes involucrados pero él hace un buen trabajo al explicarlo.

1

La plataforma Riena de la base de eclipse proporciona OSGi remote services publicando los servicios como puntos finales de servicio web.

1

Quizás las respuestas se deberían actualizar, ya que ya no son válidas.

Ahora hay servicios remotos de OSGi disponibles Puede leer sobre esto en la Especificación de OSGi Enterprice Capítulo 100. Hay dos implementaciones principales: Eclipse ECF y Apache CXF.Hay un buen ejemplo para ECF here

Cuestiones relacionadas