Pariiamo ora di sviluppo per componenti.

Partiamo con alcuni design pattern per gestire le dipendenze per poi passare ad un modello per lo sviluppo per componenti, ovvero EJB 3.0, che è uno standard implementato in framework come Glassfish che verrà usato spesso negli esempi presenti nelle slide e nel materiale del corso.

Con sviluppo per componenti si parla di uno sviluppo che ci permette di creare unità, i componenti, di cui si può fare indipendentemente il deployment, senza quindi dipendenze statiche ma con dipendenze che possono essere soddisfatte a runtime nell’ambiente di esecuzione.

Gestione delle dipendenze

Parliamo quindi nel dettaglio dei pattern di gestione delle dipendenze.

Un aspetto chiave è il decoupling, ovvero rendere indipendenti le componenti da deployare anche se a runtime tali componenti devono comunque interagire. Non si parla quindi della rimozione della dipendenza funzionale ma si ha una soddisfazione dinamica (a runtime) delle dipendenze tramite linking di diverse componenti per differenti sistemi, senza che queste interferiscano con il deployment.

Si hanno quindi alcuni design pattern per gestire le dipendenze dinamicamente (su slide anche esempi con diagrammi UML):

Si raggiunge quindi un ottimo livello di astrazione.

EJB 3.0

Vediamo quindi un modello di sviluppo per componenti Java: EJB 3.0, uno standard implementato in molti framework.

Tra i framework principali che implementano questo standard abbiamo:

Si hanno varie tecnologie come EJB, ogni tecnologia con il suo modello, ciclo di vita dei componenti, servizi. EJB comunque include tanti servizi, fornendo un supporto completo, ma si hanno framework che supportano solo sottoinsiemi degli stessi (tra questi troviamo anche Spring).

In generale all’interno di applicazioni EJB troviamo, lato server-side e component-model: