2009-08-31 15 views
8

Sono nuovo alla programmazione con OSGI. Qualcuno può fornirmi un esempio funzionante di un'invocazione del servizio osgi client/server.Esempio di funzionamento per un servizio OSGI remoto

Ho cercato di ottenere questo risultato per le ultime 2 settimane senza alcun successo.

Il mio servizio è stato scoperto ed eseguito da un'istanza di eclissi nella stessa macchina, ma quando provo la stessa cosa da un'altra macchina fallisce.

Qualsiasi aiuto sarà apprezzato.

Grazie.

risposta

8

Nella piattaforma OSGi (Versione 4 Versione 4.1) i servizi rilevati tramite il registro del servizio OSGi sono servizi locali disponibili solo all'interno di un'unica istanza di framework OSGi (cioè singola JVM). Non è possibile aspettarsi di eseguire un servizio OSG in esecuzione su un altro computer.

Se si desidera chiamare i servizi OSGi su più istanze framework (cioè più JVM/più macchine), è necessario dare un'occhiata alle Specifiche OSGi distribuite (RFC 119) che faranno parte di upcoming OSGi specification (Versione 4 Versione 4.2) con CXF come reference implementation.

Aggiornamento: Un altro modo per chiamare i servizi OSGi remoti è utilizzare R-OSGi. È un middleware che fornisce un modo quasi trasparente per accedere ai servizi su piattaforme OSGi remote.

+0

La pagina CXF ha un sacco di campioni nella parte inferiore della pagina. – SteveD

2

A meno che non stiate giocando con le implementazioni OSGi distribuite di CXF o di Eclipse, non vi è nulla che si riferisca al servizio di remoting in OSGi. Dovresti essere in grado di fare qualsiasi lavoro di implementazione remota tra 2 processi basati su OSGi.

Quello che dirò è che probabilmente avrete problemi con il programma di caricamento di classi se provate a usare RMI o uno qualsiasi dei modelli RPC disponibili nel servizio remoto di Spring. Questo è risolvibile, ma richiede una buona conoscenza dei caricatori OSGi e di classe.

Il codice funziona se lo si esegue all'esterno di OSGi? Stai usando un firewall? È possibile eseguire qualsiasi servizio di rete sul PC che sia visibile ad altri PC sulla rete?

Come descritto, il problema sembra più correlato alla rete rispetto a OSGi.

Inoltre, non hai menzionato che errore si ottiene quando si esegue su diversi PC.

3

I servizi OSGi sono intra-vm, non inter-vm, a meno che non si aggiunga la distribuzione in alto.

Si potrebbe voler guardare Brian's tutorial che fa un buon lavoro di mostrare come i servizi OSGi possono essere esportati e utilizzare ECF per eseguire la distribuzione remota. C'è un bel po 'di bundle coinvolti, ma fa un buon lavoro nel spiegarlo.

1

La piattaforma Riena della fondazione eclipse fornisce OSGi remote services pubblicando i servizi come endpoint del servizio Web.

1

Forse le risposte dovrebbero essere aggiornate, poiché non sono più valide.

Ora c'è servizi remoti OSGi disponibili È possibile leggere su di esso nel OSGi Enterprice Specification capitolo 100. Ci sono due implementaions principali: Eclipse ECF e Apache CXF.C'è un buon esempio per ECF here

Problemi correlati