Scopo
Si progetteranno anche componenti J2EE nel framework J2EE, rappresentandoli in Rose come classi e collaborazioni di
classi.
In generale, un'applicazione J2EE utilizza i servizi di un database relazioni. Si progetta un modello dati per il
database, rappresentandolo in Rose mediante Rose Data Modeler.
Per modellare un'applicazione J2EE in Rose, eseguire le seguenti operazioni:
Per maggiori informazioni su J2EE, vedere il Concetto: Panoramica di J2EE (Java 2 Platform Enterprise Edition).
Per una panoramica dello sviluppo basato sui componenti utilizzando la piattaforma J2EE, vedere il Concetto: Sviluppo di soluzioni componente .
Vedere anche:
Impostare Rational Rose come descritto nella Guida al tool: Impostazione di Rational Rose per un progetto.
Inoltre, occorrerà abilitare il componente aggiuntivo Rose Java e configurare impostazioni specifiche al progetto.
Per informazioni dettagliate sulla configurazione di Rose Java, vedere Rose Java > Come >
impostare le proprietà del progetto nella guida on line di Rational Rose.
La Guida al tool: Gestione del modello Progettazione mediante Rational
Rose descrive come creare pacchetti e livelli nel Prodotto di lavoro: Modello Progettazione partendo dal modello di
procedura RUP fornito con Rose. Questo modello di procedura fornisce una struttura del modello Progettazione, che
include segnaposto relativi ai tipi di pacchetti, sottosistemi e diagrammi da creare nel corso delle attività di
progettazione del Compito: Progettazione del caso d'uso, Compito: Progettazione della classe e Compito: subsystem_design_real-time_design).
Vedere anche:
Notare che la struttura del pacchetto nel Prodotto di lavoro: modello Progettazione non deve corrispondere a
quella del pacchetto nel Prodottodi lavoro: modello Implementazione. Nel forward engineering
delle classi Java è la struttura del pacchetto nel modello Implementazione a determinare quella del pacchetto delle
classi Java prodotte.
Per ulteriori informazioni sui pacchetti, consultare l'argomento Pacchetto nella guida on line di Rational
Rose.
Si devono aggiungere i pacchetti con linguaggio Java per Java e J2EE se si vogliono ottenere i servizi della
piattaforma J2EE, definita ?system layer?. Questi pacchetti sono utilizzati quando si creano le classi di un modello;
ad esempio, se una classe definisce un'operazione che restituisce il tipo Java String, il pacchetto con linguaggio Java
java.lang che contiene lo String di classe deve essere presente nel modello.
Per i dettagli, si rimanda agli argomenti della guida on line di Rational Rose:
Il pacchetto con diagrammi contiene la struttura delle tabelle di database presenti nell'applicazione. Vedere la
Guida al tool: Progettazione e modellazione di database utilizzando
Rational Rose Data Modeler per maggiori informazioni.
Questa sezione non descrive come modellare EJB (vedere Modellazione di EJB) né classi di
presentazione, come pagine HTML o JSP (consultare Modellazione del livello di
presentazione).
Fornisce invece informazioni sulla modellazione dei rimanenti bean Java e classi Java (es. le classi di utilità) come
avviene per ogni applicazione Java. Per i dettagli, leggere:
Per ulteriori dettagli, leggere la Linea guida: EJB (Enterprise JavaBean).
Si riepilogano di seguito le fasi da eseguire per modellare un EJB in Rose:
In generale, gli EJB sono raggruppati in sottosistemi di progettazione.
I sottosistemi di progettazione vengono utilizzati per inserire un comportamento in un "pacchetto", che fornisce
interfacce esplicite e formali e che (per convenzione) non mostra nessuno dei componenti interni.
Vedere la Guida al tool: Gestione di sottosistemi mediante Rational Rose per i
dettagli su come creare sottosistemi di progettazione.
Prima di creare un EJB in Rose, occorre decidere su quale tipo di EJB si troverà - bean di entità, di sessione o basati
sui messaggi. In un bean di entità la scelta è fra la persistenza gestita dal contenitore e quella gestita dal bean. In
un bean di sessione si deve scegliere se il bean deve essere stateful o stateless.
Consultare la Linea guida: EJB (Enterprise JavaBean).
Rose Java fornisce una serie di dialoghi per creare e mantenere classi EJB in Rose.
Per maggiori informazioni, fare riferimento all'argomento Rose Java > Come > lavorare con
gli EJB e i servlet nella guida on line di Rational Rose.
Rose Java viene utilizzato per:
-
creare un nuovo EJB partendo dall'inizio
-
trasformare una classe esistente nel modello in un EJB Rose Java, che converte la classe esistente
nell'interfaccia remota EJB e crea nuove classi relative all'interfaccia home e alla classe di bean
-
aggiungere metodi di ricerca a EJB
-
aggiornare l'interfaccia home con ciclo di vita e metodi di ricerca definiti nella classe di implementazione
del bean
-
aggiornare le proprietà di classe di EJB (come il nome dell'interfaccia home), di persistenza (se per esempio è
gestito dal bean oppure dal contenitore) e quelle del descrittore di distribuzione (come i campi gestiti dal
contenitore o voci dell'ambiente).
Un bean di entità o di sessione creato mediante Rose Java consiste in:
-
classe di interfaccia home
-
classe di interfaccia remota
-
classe di bean
-
proprietà che definiscono il descrittore di distribuzione EJB generico ejb-jar.xml, memorizzate come proprietà
della classe di bean EJB
-
operazioni ed attributi richiesti dalla specifica di EJB (come metodi callback) che saranno stati creati
nell'interfaccia home, nell'interfaccia remota e nella classe di bean
Le classi create dall'utilità EJB Rose Java sono modellate secondo la mappatura definita nello standard Sun
JSR-000026 UML/EJB Mapping Specification. Per ulteriori informazioni, fare riferimento
all'argomento Rose Java > Concetti > Informazioni sul supporto per J2EE (Java 2 Platform, Enterprise
Edition) nella guida on line di Rational Rose.
Per i dettagli sulle specifiche EJB 1.1 o 2.0, visitare il sito http://java.sun.com/ e seguire i collegamenti a Docs & Training > Java 2 Platform,
Enterprise Edition > Enterprise JavaBeans Specification.
Una volta create le classi EJB, è possibile aggiungere operazioni (come metodi di business) e attributi.
Rose Java fornisce una serie di dialoghi per creare e mantenere classi EJB in Rose.
Leggere l'argomento Rose Java > Come > lavorare con gli EJB e i servlet >
Aggiunta di metodi a una classe di bean nella guida on line di Rational Rose.
Per maggiori dettagli sulla definizione di operazioni ed attributi, consultare:
Vengono creati diagrammi di classe come parte del Compito:
Progettazione di classe, nei quali si modellano le relazioni (come le associazioni, le dipendenze e i rapporti di
ereditarietà) tra classi.
Il modello di procedura Rational Unified Process Rose, fornito con Rose, offre una struttura come punto di partenza per
creare diagrammi di classe.
Consultare il Compito: Progettazione di classe per ulteriori informazioni sulla
modellazione di relazioni tra classi.
All'interno del Compito: Progettazione del caso d'uso si creano messaggi su diagrammi
di sequenza, che verranno poi utilizzati per descrivere le interazioni tra oggetti di progettazione. Creare una serie
di diagrammi di sequenza per descrivere i flussi di eventi principali ed alternativi per ciascuna realizzazione del
caso d'uso del modello Progettazione.
Come fa un progettista di EJB, utilizzare un diagramma di sequenza per:
-
determinare le operazioni e gli argomenti di operazione delle classi coinvolte nell'interazione
-
descrivere le operazioni che saranno chiamate da una classe nel corso di un'interazione
-
descrivere cosa fa un oggetto quando riceve un messaggio, ad esempio allegando uno script al messaggio. Per ulteriori dettagli, fare riferimento all'argomento Rational Rose > Come >
Creare e lavorare in un modello > Utilizzando script su diagrammmi di sequenza.
Vedere anche:
Un'entità EJB è una vista object-oriented sui dati permanenti dell'applicazione. La modellazione di una classe
EJB come entità e il fatto di evidenziarla come Permanente indicano che il Ruolo:
Progettista di database dovrà associare l'oggetto EJB al modello
dati nel corso del Compito: Progettazione di database.
Il Ruolo: Progettista di database crea il modello dati dell'applicazione
all'interno del Compito: Progettazione di database.
Rose fornisce un supporto per la progettazione di database con il tool Rational Rose Data Modeler, che consente di
trasformare le classi permanenti nel modello oggetto in modello dati e viceversa.
La mappatura di classi del modello oggetto nelle tabelle del modello dati viene documentata nel campo Mapped
From della specifica Rose di tabella del modello dati.
Vedere anche il Prodotto di lavoro: Modello dati e la Linea guida: Modello dati
Per informazioni dettagliate su Rose Data Modeler, consultare la Guida al tool: Progettazione e modellazione di database mediante Rational
Rose Data Modeler.
Modellazione di considerazioni per EJB di sessione
I bean di sessione possono leggere o scrivere dati permanenti; vedere la Linea guida: Progettazione di EJB (Enterprise JavaBean), per le differenze tra
accesso diretto ed EJB di entità.
In una situazione come questa è preferibile utilizzare classi DAO (Data Access Object) per isolare i dettagli relativi
all'accesso e alla connessione di database EJB mediante l'interfaccia javax.sql.
Modellazione di considerazioni per EJB di entità gestiti dal bean
I bean di entità gestiti da bean leggono e redigono tabelle database mediante l'API JDBC. Utilizzare classi DAO per
isolare i dettagli relativi all'accesso e alla connessione di database EJB mediante l'interfaccia javax.sql.
Modellazione di considerazioni per EJB di entità gestiti dal contenitore
Non occorre progettare classi DAO per EJB di entità gestiti dal contenitore poiché la persistenza è gestita dal
contenitore EJB.
Le transazioni definiscono una serie di chiamate di operazione atomiche- o sono tutte eseguite o nessuna di esse
viene eseguita. Nell'ambito della persistenza, una transazione definisce una serie di cambiamenti ad un insieme di
oggetti che, di nuovo, sono tutti eseguiti o per niente eseguiti. Le transazioni consentono congruenza, assicurando che
le serie di oggetti si spostino da una stato coerente ad un altro.
Vedere il Concetto: Panoramica di J2EE (Java 2 Platform Enterprise Edition) - Gestione della
transazione per una panoramica dell'argomento.
Modellare le transazioni EJB come descritto nel Compito:
Progettazione del caso d'uso - Modellazione di transazioni. Al momento dell'implementazione, in funzione del
modello Progettazione, si decide se demarcare le transazioni in modo chiaro - nel descrittore di distribuzione,
definendo l'attributo di transazione di un metodo EJB come Required, RequiresNew, NotSupported, Supports, Mandatory, o
Never - oppure in modo programmatico mediante l'API Java Transaction.
All'interno della progettazione, determinare quando è effettivamente possibile gestire la sicurezza dell'applicazione,
mediante ruoli di sicurezza e autorizzazioni di metodo all'interno del descrittore di distribuzione EJB o in modo
programmatico con API di sicurezza J2EE.
Utilizzare diagrammi di sequenza per esaminare scenari di sicurezza. Se necessario, annotare i diagrammi di sequenza
per descrivere i requisiti di sicurezza.
Vedere il Concetto: Panoramica di J2EE (Java 2 Platform Enterprise Edition) - Gestione della
sicurezza per una panoramica sulla gestione della sicurezza.
Vengono generate classi Java di EJB con il forward engineering utilizzando Rose Java, come descritto nella Guida al tool: Creazione di elementi da un modello mediante Rational
Rose. Il descrittore di distribuzione ejb-jar.xml sarà automaticamente generato come risultato del forward
engineering della classe di bean di EJB.
Si può eseguire il reverse engineering di un EJB esistente con Rose Java, come descritto nella Guida al tool: Reverse-Engineering del codice mediante Rational Rose.
Si deve eseguire il reverse engineering di un file .jar che contiene le classi EJB e il descrittore di distribuzione,
affinché Rose Java possa determinare la relazione tra le classi (ad esempio, qual è l'interfaccia home) sui cui si
esegue il reverse engineering.
Modellare il livello di interfaccia utente di un'applicazione J2EE come per un'applicazione Web. In generale, le classi
di analisi stereotipate <<boundary>> sono candidate per classi e collaborazioni di classi nel livello di
interfaccia utente. Le classi di boundary possono essere implementate, per esempio, come pagine JSP, servlet, pagine
HTML o client Java autonomi, a seconda della progettazione.
Per ulteriori delucidazioni, vedere:
Attività correlate:
Vedere anche:
Forward e Reverse Engineering di classi di presentazione
Si possono eseguire il forward e il reverse engineering di classi di presentazione. Rose Java supporta:
-
Il reverse engineering di un'applicazione Web (.war). Per ulteriori informazioni, fare
riferimento a Rose Java > Come > Eseguire il Reverse Engineering da Java Source a Rose
nella guida on line Rational Rose.
-
La creazione di un nuova classe di servlet con i metodi appropriati. Per maggiori delucidazioni,
consultare l'argomento Rose Java > Come > Lavorare con gli EJB e i servlet nella guida on line di
Rational Rose.
|