Un bean enterprise è un insieme di classi e interfacce JavaTM che implementano la specifica EJB (Enterprise JavabeansTM). Questa specifica è una parte di J2EE (Java 2 Platform, Enterprise Edition). J2EE è un insieme di tecnologie Java standardizzate che estendono J2SE (Java 2 Standardized Platform, Standard Edition). La specifica J2EE include, tra le altre, le seguenti tecnologie:
Le applicazioni scritte utilizzando le specifiche J2EE sono facili da distribuire su qualunque server che fornisce supporto J2EE, ad esempio IBMR WebSphereR Application Server.
L'ultima versione della specifica EJB è la 2.1. Il workbench supporta più versioni della specifica EJB, comprese la 1.1, la 2.0 e la 2.1. Nel workbench verranno segnalati riferimenti ai differenti livelli di specifica. Ad esempio, quando si crea un nuovo bean di entità CMP (container-managed), è possibile selezionare la 'versione CMP' di 1.x o 2.x, che corrispondono, rispettivamente, alle versioni EJB 1.1 o 2.0/2.1.
Per ulteriori informazioni sulle tecnologie J2EE ed, consultare i seguenti siti Web:
Ulteriori informazioni sull'uso di tali tecnologie sono reperibili anche nei seguenti argomenti del Centro informazioni:
La specifica EJB definisce quanto segue:
Un'applicazione enterprise può essere installata ed eseguita su server EJB (noti anche come Enterprise Java Server), come quello fornito da WebSphere. Il compito del server è quello di fornire un contenitore EJB in cui eseguire i bean enterprise. Il server EJB e il contenitore operano insieme per fornire i seguenti servizi:
Le applicazioni client non accedono direttamente ai bean enterprise. Infatti, vengono fornite interfacce che elencano i metodi dei bean enterprise disponibili per il client. Il contenitore fornisce l'implementazione delle interfacce nel bean enterprise.
Esistono tre tipi di bean enterprise: bean di sessione, bean di entità e bean basati sui messaggi. Di solito, una tipica applicazione EJB comprende diversi bean di entità più bean di sessione o basati sui messaggi.
I bean di entità vengono utilizzati per rappresentare e interagire con le tabelle dei database relazionali. Normalmente, un bean di entità rappresenta un riga di una tabella di database e le colonne della tabella corrispondono ai campi del bean. La persistenza dati indica la memorizzazione permanente dei dati in un database o in un altro formato. I contenitori EJB possono gestire la persistenza per un bean di entità (persistenza gestita dal contenitore o CMP) oppure può gestire la propria persistenza (persistenza gestita dal bean o BMP).
I bean di sessione vengono utilizzati per interagire con i bean di entità. Di solito, forniscono un processo complessivo oppure un flusso di lavoro per un'applicazione client. I bean di sessione possono essere senza stato (non è stato salvato alcun dato) oppure con stato (sono stati salvati alcuni dati). Di solito, un'applicazione client interagisce con bean di sessione, che a loro volta interagiscono con bean di entità.
I bean basati sui messaggi forniscono un mezzo di comunicazione per le applicazioni che desiderano accedere ai bean di entità. Possono essere utilizzati allo stesso modo dei bean di sessione. La differenza primaria consiste nel modo in cui vengono richiamati. I bean di sessione (e quelli di entità) vengono richiamati in maniera sincrona; i bean basati sui messaggi, invece, vengono richiamati in maniera asincrona. Una chiamata sincrona a un bean di sessione significa richiamare direttamente il bean di sessione. Una chiamata asincrona a un bean basato sui messaggi significa inviare un messaggio per il quale è in ascolto i bean basato sui messaggi. JMS (Java Messaging Service) è il mezzo di comunicazione indicato per le funzioni di messaggistica.
Ulteriori informazioni sui tipi di bean sono disponibili nel centro informazioni in Architettura EJB.
Un bean enterprise contiene le seguenti classi e interfacce:
Le interfacce componente locale e remota vengono utilizzate dalle applicazioni per accedere ai bean enterprise. Queste interfacce elencano i metodi della logica di business disponibili in un bean enterprise. Un bean enterprise può disporre di un'interfaccia remota o di un'interfaccia locale oppure di entrambe.
Le prestazioni sono migliori quando si accede a un bean enterprise utilizzando l'interfaccia locale invece dell'interfaccia remota perché:
L'interfaccia locale è stata aggiunta alla specifica EJB 2.0 per migliorare le prestazioni. Una pratica di progettazione consigliata prevede l'inserimento dei bean di entità in un aspetto sessione, in modo che i client accedano ai bean di sessione in remoto, ma che il bean di sessione acceda la bean di entità in locale. Questa pratica consente l'accesso remoto dai client e garantisce al tempo stesso prestazioni migliori.
L'interfaccia home di un bean di entità viene utilizzato dalle applicazioni client per accedere al bean enterprise, ma i metodi disponibili attraverso questa interfaccia sono metodi del ciclo di vita, inclusi i metodi per cercare, creare e rimuovere i bean di entità nei contenitori EJB. Le interfacce home possono essere remote o locali.
Le classi di bean enterprise contengono la logica business dell'applicazione enterprise. I metodi nelle interfacce espongono i metodi corrispondenti nella classe bean alle applicazioni client.
Una chiave primaria è un ID univoco che viene associato a una voce specifica nel database. Ad esempio, se si dispone di un database di dipendenti, ciascun dipendente dispone di un ID dipendente univoco. Ciascuna istanza della classe delle chiavi primarie corrispondono a uno degli ID univoci nel database.
La specifica J2EE definisce i file e della struttura di directory di un'applicazione enterprise. Inoltre, specifica i tipi di file .war, .ear e .jar, ciascun tipo utilizzato per scopi specifici.
Un file EAR (Enterprise Archive) è il tipo di pacchetto per un'applicazione enterprise. Contiene file WAR e file JAR, nonché un descrittore di distribuzione applicazione (application.xml) che contiene metadati relativi all'applicazione enterprise.
Un file WAR (Web Archive) contiene file per un'applicazione Web, come immagini, file HTML, servlet e JSP. Contiene anche metadati sotto forma di un descrittore di distribuzione Web (web.xml).
I file JAR (Java Archives) contengono classi Java. Nelle applicazioni EJB, i file JAR possono contenere moduli EJB oppure possono contenere un'applicazione client EJB.
I moduli EJB contengono i bean enterprise, più i metadati che includono un descrittore di distribuzione EJB (ejb-jar.xml). I moduli EJB distribuiti in WebSphere Application Server possono contenere anche metadati che descrivono le estensioni specifiche WebSphere e informazioni di binding. Un'applicazione client EJB contiene i programmi Java utilizzati per accedere un'applicazione EJB, più un descrittore di distribuzione client (application-client.xml).
Tipo di file | Significato | Tipo di applicazione | Descrittore di distribuzione |
---|---|---|---|
.ear | Enterprise Archive | enterprise | application.xml |
.war | Web Archive | Web | web.xml |
.jar | Java Archive | EJB Client EJB |
ejb-jar.xml application-client.xml |
L'editor visivo utilizza UML (Unified Modeling Language) per rappresentare rappresentare la struttura e il progetto di classi e interfacce Java, compresi i componenti EJB, da un punto di vista visivo. Fornisce i meccanismi per mostrare le relazioni tra le classi, nonché il flusso di lavoro. Utilizzando gli strumenti UML nel workbench, sarà possibile editare visivamente le classi e le interfacce Java o gli altri componenti EJB. È possibile avviare la creazione di un componente EJB direttamente da un diagramma classi. Il codice indicato viene generato e reso visivamente nel diagramma classi, pronto per l'editazione. Modificando un diagramma classi UML, viene modificato il codice evidenziato. Le modifiche al codice evidenziato vengono riportate anche nel diagramma classi UML.
Nel workbench, un diagramma classi UML viene memorizzato come file con l'estensione .dnx.
UML 2 è una specifica di standard fornita da OMG (Object Management Group). Il sito Web OMG fornisce anche un'introduzione all'UML.
Il Centro informazioni fornisce informazioni dettagliate sui seguenti argomenti:
A questo punto, è possibile iniziare l'Esercizio 1.2: Preparazione dello spazio di lavoro.