2010-10-31 9 views
15

Qualcuno ha distribuito un'applicazione aziendale in OSGi e l'ha trovato utile?Qualcuno ha trovato OSGi utile nelle applicazioni aziendali?

Sono in grado di vedere i vantaggi, la modularità forzata, le definizioni di buona dipendenza ecc. Ma questi sembrano essere principalmente miglioramenti relativi alla costruzione.

Qualcuno ha trovato utile sostituire dinamicamente un modulo esistente? Tendiamo a suddividere la nostra domanda per processo e, a essere onesti, non è così difficile avviare una nuova istanza dell'app con le librerie aggiornate. OSGi sarebbe utile per questo?

Quanto è affidabile la sostituzione di un modulo? Mi sembra che se hai un processo molto impegnativo con un sacco in corso, la sostituzione di un modulo in esecuzione è piena di pericoli.

+0

Buona domanda +1 – Ramp

risposta

9

ho appena bloggato sul perché we didn't go with OSGi

In poche parole, credo che le fondamenta della OSGi sono solide, ma non è stato costruito per lo sviluppo di applicazioni di massa. Introduce l'attrito nel processo di sviluppo/implementazione che è già pieno di sfide. Mi piacerebbe vedere le specifiche delle specifiche OSGi focalizzarsi maggiormente sul personaggio utente/sviluppatore di OSGi per renderlo invisibile al processo di sviluppo. Inoltre sono sconvolto che la JVM non abbia ancora uno standard di modulo trasparente.

+1

Non so che sono completamente d'accordo con tutto ciò che stai dicendo, ma comunque fai dei buoni punti. (+1) – javamonkey79

7

La maggior parte delle nostre applicazioni sono applicazioni Web.

Abbiamo un client thick OSGi che raccoglie informazioni biometriche. Fotografie e impronte digitali attraverso la scansione delle impronte digitali, al momento.

Il vantaggio di OSGi è che è possibile aggiornare i plug-in da un sito Web centrale anziché utilizzare un processo di disinstallazione/installazione. Il nostro grosso cliente si troverà in oltre 100 località negli Stati Uniti, quindi questo è stato importante per noi.

+0

È possibile aggiornare il client mentre è in esecuzione e più pertinente - vero? – Fortyrunner

+0

Il client deve essere in esecuzione per eseguire l'aggiornamento. Il processo di aggiornamento è parte del client. Detto questo, consigliamo di non fare nient'altro con il cliente durante un aggiornamento. Il nostro client è un Eclipse RCP e ci sono alcune modifiche che possono essere apportate "al volo" e alcune modifiche che non possono essere apportate. Per la nostra applicazione, non valeva la pena di capire quali cambiamenti erano quali. –

4

Lavoro in un ambiente di telecomunicazioni. Qualcosa come OSGi sarà molto utile per noi. Distribuiamo applicazioni a clienti che non possono andare offline senza subire un impatto sulle entrate. Elaborano migliaia di chiamate al secondo. Al momento, devono fare gli aggiornamenti nella loro finestra di manutenzione per prendere nuove correzioni o aggiornamenti.

Se siamo in grado di fornire correzioni e miglioramenti come una distribuzione a caldo, sarà di grande beneficio. Ma naturalmente c'è un fattore di rischio e sforzi di prova extra con test del traffico simulato prima che possiamo farlo.

OSGi non è solo per gli aggiornamenti dinamici, è utile per le cose come il controllo delle versioni per assicurare che la versione giusta venga selezionata in un ambiente complesso.

Stiamo iniziando a esaminare OSGi, pubblicherò aggiornamenti se trovo qualcosa di più interessante.


+0

Questo è il tipo di caso d'uso che ho immaginato. Sarei interessato a sapere se qualcuno lo sta effettivamente utilizzando in una delle situazioni e quanto sia facile da amministrare. – Fortyrunner

3

Lo stiamo utilizzando in una grande telecom. Lo abbiamo in produzione per 2 anni e continuiamo ad aggiungere pacchetti ora abbiamo circa 110 pacchetti.

I ragazzi dell'operazione sono contenti per il buon controllo che questi danno loro: possono iniziare a fermare le singole funzionalità e monitorarle. In teoria, potremmo anche distribuire a caldo una nuova versione in produzione, ma nella realtà usiamo questa funzione solo quando facciamo test e preprod.

nostra vasta architettura di pennello si basa su questo: http://servicemix.apache.org/home.html

Il nostro problema principale è sempre cercare di utilizzare framework Java standard all'interno OSGi. Il secondo problema è la gestione dell'importazione/esportazione del pacchetto stesso. Stiamo usando il plugin Maven.

Nel complesso siamo contenti di questa scelta, ma è necessario considerare 2 elementi: 1. siete disposti a combattere con qualsiasi framework java che si desidera aggiungere? 2. Sei abbastanza disciplinato da non rovinare la tua dipendenza?

Problemi correlati