O più completamente "Quali sono i trade-off e le domande che dovrebbero essere sollevate quando si tenta di decidere la struttura del bundle di un'applicazione OSGi?"
I nostri bundle OSGi esistenti tendevano a essere piuttosto grassi: fondamentalmente un bundle API e un bundle di implementazione, ma con molte funzionalità. Ciò ha dei vantaggi in termini di complessità del progetto e di costruzione, ma forse non ci dà tutta la riusabilità e la flessibilità che desideriamo.
Quindi, in un recente progetto, abbiamo intenzionalmente creato fasci piuttosto sottili. Abbiamo fatto una panoramica su questo AM e ci siamo chiesti se fossimo andati troppo oltre. In questo servizio abbastanza piccolo avevamo 7 bundle, molti dei quali avevano solo 1 dominio. La domanda sollevata era "Questo è quasi come se stessimo guidando verso un pacchetto per pacchetto, ma noi abbiamo classi e pacchetti già nella lingua, stiamo andando troppo oltre con la nostra granularità del bundle?"
Per renderlo concreto, questo è un servizio Web che esegue un calcolo sui risultati aggregati di altre query Web (in particolare, eseguiamo query su una serie di database astronomici per oggetti in una determinata area e quindi filtriamo i risultati in base alle nostre i propri criteri e quindi stimiamo una probabilità di un'osservazione adeguata in base ai risultati filtrati). Abbiamo finito con 7 bundle, che sembrano molto per quello che è essenzialmente "un servlet che esegue un calcolo."
Tale granularità è molto buona (molta flessibilità in fase di esecuzione) o cattiva (eccessivamente complicata)? Come possiamo sviluppare la nostra intuizione sulla granularità "giusta" dei nostri bundle OSGi?