Guida al tool: Modellazione della progettazione di un'applicazione J2EE in Rational Rose
Questa guida al tool descrive come utilizzare Rational Rose per modellare la progettazione di un'applicazione J2EE.
Strumento: Rational Rose
Relazioni
Elementi correlati
Descrizione principale

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 per il progetto J2EE

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 icona della guida Rose Java > Come > impostare le proprietà del progetto nella guida on line di Rational Rose.

Organizzazione del modello Progettazione

Creazione di pacchetti e livelli nel modello Progettazione

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.

icona della guida  Per ulteriori informazioni sui pacchetti, consultare l'argomento Pacchetto nella guida on line di Rational Rose.

Aggiunta di pacchetti con linguaggio Java

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:

  • icona della guida Rose Java > Concetti > Utilizzo di framework Java

  • icona della guida  Rose Java > Come > Caricare librerie di classe Java in un modello

Aggiunta di pacchetto con diagrammi

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.

Modellazione di bean Java e classi Java

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:

Modellazione di EJB

Per ulteriori dettagli, leggere la Linea guida: EJB (Enterprise JavaBean).

Si riepilogano di seguito le fasi da eseguire per modellare un EJB in Rose:

Creazione di un sottosistema di progettazione per EJB

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.

Determinazione del tipo di EJB e del meccanismo di persistenza

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).

Utilizzo di Rose Java nella creazione di classi EJB

Rose Java fornisce una serie di dialoghi per creare e mantenere classi EJB in Rose.

  icona della guida  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 Specificationicona della guida 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.

Definizione di operazioni ed attributi

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.

  icona della guida  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:

Modellazione delle classi:  relazioni

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.

Modellazione delle classi:  Interazioni

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. icona della guida  Per ulteriori dettagli, fare riferimento all'argomento Rational Rose > Come > Creare e lavorare in un modello > Utilizzando script su diagrammmi di sequenza.

Vedere anche:

Modellazione della persistenza EJB

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.

Modellazione delle transazioni

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.

Modellare la sicurezza

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.

Forward Engineering di componenti EJB

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.

Reverse Engineering 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. 

Modellazione del livello di interfaccia utente

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). icona della guida 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. icona della guida Per maggiori delucidazioni, consultare l'argomento Rose Java > Come > Lavorare con gli EJB e i servlet nella guida on line di Rational Rose.