Instrucciones de la herramienta: Modelado del diseño de una aplicación J2EE en Rational Rose
En esta directriz de herramientas se describe la forma en que utilizar Rational Rose para modelar el diseño de una aplicación J2EE.
Herramienta: Rational Rose
Relaciones
Elementos relacionados
Descripción principal

Objetivo

También se diseñarán componentes J2EE dentro de la infraestructura de J2EE, representándolas en Rose como clases y clases de colaboración.  

En general, una aplicación J2EE utiliza los servicios de una base de datos relacional. En este caso, se diseña un modelo de datos de la base de datos que se representa en Rose mediante el Modelador de datos.  

Hay que seguir los pasos que se indican a continuación para modelar una aplicación J2EE en Rose:

Consulte la sección Concepto: visión general de Java 2 Platform Enterprise Edition (J2EE) para obtener más información sobre J2EE.  

Consulte la sección Concepto: desarrollo de soluciones de componente para conocer una visión general sobre el desarrollo basado en componentes mediante la plataforma J2EE.

Vea también:

Configuración de Rational Rose para el proyecto J2EE

Configure Rational Rose tal como se describe en la sección Guía de herramientas: configuración de Rational Rose para un proyecto.

Además, será necesario habilitar el complemento de Rose Java y configurar valores específicos del proyecto.

Consulte la sección icono de libro de ayuda Rose Java > Cómo > Establecer propiedades de proyecto en la ayuda en línea de Rational Rose para obtener información detallada sobre la forma en que configurar Rose Java.

Organización del modelo de diseño

Creación de paquetes y capas en el modelo de diseño

La sección Guía de herramientas: gestión del modelo de diseño mediante Rational Rose describe la forma en que crear paquetes y capas en el Producto de trabajo: modelo de diseño, empezando con la plantilla de modelo de RUP que proporciona Rose. Esta plantilla proporciona un esquema del modelo de diseño, con lugares a completar con los tipos de paquete, subsistemas y diagramas que se deberían crear durante las actividades de diseño (Tarea: diseño de guiones de uso, Tarea: diseño de clases y Tarea: subsystem_design_real-time_design).    

Véase también:

Observe que la estructura del paquete en el Producto de trabajo: modelo de diseño no tiene por qué coincidir con la estructura del paquete en el Producto de trabajo: modelo de implementación. Cuando se realiza ingeniería directa con las clases Java, es la estructura del paquete en el modelo de implementación la que determina la estructura del paquete de las clases Java que se generan.

icono de publicación de ayuda  Para obtener más información sobre los paquetes, consulte el tema Paquetes en la ayuda en línea de Rational Rose.

Adición de paquetes de lenguaje Java

Hay que añadir los paquetes de lenguaje Java para Java y J2EE, de forma que se proporcionen los servicios de la plataforma, denominada la "capa de sistema". Estos paquetes se utilizan al crear sus propias clases en el modelo; por ejemplo, si una clase define una operación que devuelve el tipo Java String, entonces en el modelo debe estar presente el paquete de lenguaje Java java.lang que contiene la clase String.

Consulte la ayuda en línea de Rational Rose para obtener información más detalles:

  • icono de publicación de ayuda Rose Java > Conceptos > Utilización de infraestructuras de Java.

  • icono de publicación de ayuda  Rose Java > Cómo > Carga de bibliotecas de clases Java en un modelo.

Adición de paquetes de esquemas

El paquete de esquemas contiene el diseño de las tablas de la base de datos en la aplicación. Consulte la sección Guía de herramientas: diseño y modelado de bases de datos utilizando Rational Rose para obtener más información.

Modelado de clases Java y JavaBeans

Esta sección no cubre la forma en que modelar EJB (consulte la sección Modelado de EJB) o la forma en que modelar clases de presentación como, por ejemplo, páginas HTML y JSP (consulte la sección Modelado de la capa de presentación).

Proporciona información sobre la forma en que modelar las restantes clases Java y JavaBeans (como por ejemplo, las clases de utilidad) tal como lo haría con cualquier aplicación Java. Para obtener información más detallada, consulte:

Modelado de EJB

Consulte la sección Directriz: Enterprise JavaBean (EJB) para obtener más información sobre EJB.

A continuación se presenta un resumen de los pasos a realizar para modelar un EJB en Rose:

Creación de un subsistema para los EJB

En general, los EJB se agrupan en subsistemas de diseño.  

Los subsistemas de diseño se utilizan para encapsular el comportamiento dentro de un "paquete", que proporciona interfaces formales y explícitas, y que (por convención) no expone ninguno de sus contenidos internos.  

Consulte la sección Guía de herramientas: gestión de subsistemas mediante Rational Rose para obtener información detallada sobre la forma en que crear subsistemas de diseño.

Determinación del tipo de EJB y sus mecanismos de persistencia

Antes de poder crear el EJB en Rose, hay que decidir que tipo de EJB será; bean de entidad, bean de sesión o bean controlado por mensajes. En el caso de un bean de entidad, hay que elegir si su persistencia estará gestionada por bean o por contenedor. En el caso de un bean de sesión, hay que elegir si el bean será con estado o sin estado.

Consulte la sección Directriz: Enterprise JavaBean (EJB) para obtener más información.

Utilización de Rose Java para crear clases de EJB

Rose Java proporciona un conjunto de diálogos para crear y mantener clases EJB en Rose.

  icono de publicación de ayuda  Para obtener más información, consulte el tema Rose Java > Cómo > Trabajar con EJB y servlets en la ayuda en línea de Rational Rose.  

Con Rose Java podrá realizar las tareas que se indican a continuación.

  • Crear un nuevo EJB desde el principio.

  • Convertir una clase existente en el modelo en un EJB. Rose Java convierte la clase existente en una interfaz EJB remota y crea nuevas clases para la clase de bean y la interfaz inicial.  

  • Añadir métodos de buscador al EJB.

  • Actualizar la interfaz inicial con todos los métodos de buscador o ciclo de vida que se hayan definido en la clase de implementación de bean.

  • Actualizar las propiedades de clase de EJB (como el nombre de la interfaz inicial), propiedades de persistencia (como las que indican si es gestionada por bean o gestionada por contenedor) y propiedades del descriptor de despliegue (como los campos gestionados por contenedor o entradas de entorno).

Un bean de sesión o de entidad creado con Rose Java está compuesto por los elementos que se indican a continuación.

  • Clase de interfaz inicial.

  • Clase de interfaz remota.

  • Clase de bean.

  • Propiedades que define el descriptor de despliegue EJB genérico, ejb-jar.xml, almacenadas como propiedades de la clase de bean del EJB.

  • Las operaciones y los atributos que la especificación EJB requiere (como los métodos de devolución de llamada) se habrán creado en la clase de bean, la interfaz remota y la interfaz inicial.

Estas clases que el programa de utilidad EJB de Rose Java crea, se modelan de acuerdo a la correlación que se define en la JSR-000026 UML/EJB Mapping Specification en el estándar de Sun. icono de libro de ayuda Para obtener más información, consulte el tema Rose Java > Conceptos > Acerca del soporte para Java 2 Platform, Enterprise Edition (J2EE) en la ayuda en línea de Rational Rose.  

Visite la página http://java.sun.com/ para obtener más información sobre las especificaciones 1.1 y 2.0 de EJB y siga los enlaces Docs & Training > Java 2 Platform, Enterprise Edition > Enterprise JavaBeans Specification.

Definición de operaciones y atributos

Después de haber creado las clases EJB, se pueden añadir las operaciones (como métodos empresariales) y los atributos que se desee.

Rose Java proporciona un conjunto de diálogos para crear y mantener clases EJB en Rose.

 icono de publicación de ayuda  Consulte el tema Rose Java > Cómo > Trabajar con EJB y servlets > Adición de métodos a una clase de bean en la ayuda en línea de Rational Rose.

Consulte las siguientes secciones para obtener más información sobre la forma en que definir operaciones y atributos:

Modelado de clases: relaciones

Los diagramas de clases se crean como parte de la Tarea: diseño de clases, en que se modelan las relaciones (como las relaciones de asociaciones, dependencias y herencia) entre las clases.

La plantilla del modelo de RUP (Rational Unified Process) de Rose, que se proporciona con Rose, proporciona una esquema como punto de inicio para los diagramas de clases que se deberían crear.

Consulte la sección Tarea: diseño de clases para obtener más información sobre la forma en que modelar las relaciones entre clases.

Modelado de clases: interacciones

Como parte de la Tarea: diseño de guiones de uso se crean mensajes en diagramas de secuencias, que a continuación se utilizan para describir las interacciones entre los objetos de diseño. Cree un conjunto de diagramas de secuencias para describir el flujo de sucesos principal y alternativo para cada realización de guiones de uso en el modelo de diseño.  

El diagrama de secuencias sirve a un diseñador EJB para:

  • Determinar las operaciones y argumentos de operación de las clases involucradas en la interacción.

  • Documentar las operaciones que la clase llamará durante una interacción.

  • Documentar lo que un objeto realiza cuando recibe un mensaje, por ejemplo, adjuntando un script al mensaje. icono de publicación de ayuda  Para obtener más información, consulte el tema de ayuda Rational Rose > Cómo > Crear y trabajar en un modelo > Utilización de scripts en diagramas de secuencias.

Véase también:

Modelado de la persistencia de EJB

Un EJB de entidad representa la vista orientada a objetos de los datos persistentes de una aplicación. El modelar una clase EJB como una entidad y señalar la clase como persistente quiere decir que el Rol: diseñador de base de datos tendrá que correlacionar el objeto EJB en el modelo de datos en la Tarea: diseño de base de datos.

El Rol: diseñador de base de datos crea el modelo de datos de la aplicación como parte de la Tarea: diseño de base de datos.

Rose proporciona soporte para el diseño de bases de datos con la herramienta Modelador de datos de Rational Rose, que permite transformar clases persistentes en el modelo de objetos en un modelo de datos, y viceversa.

La correlación entre clases en el modelo de objetos y tablas en el modelo de datos se documenta en el campo Correlacionado desde de la especificación Rose de la tabla del modelo de datos.

Consulte también la sección Producto de trabajo: modelo de datos y Directriz: modelo de datos para obtener más información.

Consulte la sección Guía de herramientas: diseño y modelado de bases de datos mediante el Modelador de datos de Rational Rose para obtener información detallada sobre el Modelador de datos de Rose.

Consideraciones de modelado para los EJB de sesión

Los beans de sesión tienen la posibilidad de leer o escribir datos persistentes; consulte la sección Directriz: diseño de Enterprise JavaBeans (EJB): acceso directo frente a EJB de entidad.  

En este tipo de situación se utilizarían clases DAO (Data Access Object) para aislar los detalles de acceso y conexión a la base de datos de los EJB mediante la interfaz javax.sql.  

Consideraciones de modelado para los EJB de entidad gestionados por bean

Los beans de entidad gestionados por bean leen y escriben en las tablas de la base de datos utilizando la API JDBC. Utilice las clases DAO para aislar los detalles de acceso y conexión a la base de datos del EJB mediante la interfaz javax.sql.  

Consideraciones de modelado para los EJB de entidad gestionados por contenedor

No es necesario diseñar clases DAO para los EJB de entidad gestionados por contenedor, puesto que es el contenedor EJB el que gestiona su persistencia.

Modelado de transacciones

Las transacciones definen un conjunto de operaciones indivisibles; o se ejecutan todas, o no se ejecuta ninguna. En el contexto de la persistencia, una transacción define un conjunto de cambios en un conjunto de objetos que como ya se ha indicado, o se ejecutan todos, o no se ejecuta ninguno. Las transacciones proporcionan coherencia y garantizan que los conjuntos de objetos pasan de un estado coherente a otro que también lo es.

Consulte la sección Concepto: visión general de Java 2 Platform Enterprise Edition (J2EE): gestión de transacciones para obtener una visión general de la gestión de transacciones.

El modelado de transacciones EJB se describe en la sección Tarea: diseño de guiones de uso - Modelado de transacciones. En el momento de la implementación hay que decidir, de acuerdo al modelo de diseño, si hay que demarcar las transacciones con declaraciones; en el descriptor de despliegue, definiendo el atributo de transacción de un método EJB como Required, RequiresNew, NotSupported, Supports, Mandatory o Never o bien mediante programación con la API de transacciones de Java.

Modelado de la seguridad

Como parte del diseño, hay que determinar si es posible manejar la seguridad en forma de declaraciones, con roles de seguridad y permisos de método en el descriptor de despliegue o mediante programación con las API de seguridad de J2EE.

Utilice los diagramas de secuencias para considerar los escenarios de seguridad. Si es necesario, realice anotaciones en los diagramas de secuencias para documentar los requisitos de seguridad.

Consulte la sección Concepto: visión general de Java 2 Platform Enterprise Edition (J2EE) - Gestión de seguridad para obtener una visión general sobre la gestión de seguridad.

Componentes EJB de ingeniería directa

Las clases Java de los EJB se generan mediante ingeniería directa con Rose Java, tal como se describe en la sección Guía de herramientas: generación de elementos desde un modelo mediante Rational Rose. El descriptor de despliegue EJB, ejb-jar.xml, se generará de forma automática como resultado de la ingeniería directa sobre la clase del bean de EJB.

Cómo revertir la ingeniería de EJB

Con Rose Java se puede revertir la ingeniería de un EJB existente, tal como se describe en la sección Guía de herramientas: revertir la ingeniería de código mediante Rational Rose. Hay que revertir la ingeniería de un archivo .jar que contenga las clases EJB y el descriptor de despliegue, de forma que Rose Java pueda determinar las relaciones entre las clases (por ejemplo, qué clase es la interfaz inicial) mediante ingeniería inversa.  

Modelado de la capa de interfaz de usuario

Hay que modelar la capa de interfaz de usuario de una aplicación J2EE de la misma forma en que se haría con cualquier otra aplicación web. En general, las clases de análisis con el estereotipo <<boundary>> son candidatas para clases y colaboraciones de clase en la capa de interfaz de usuario. Las clases de límites se pueden implementar como, por ejemplo, páginas JSP, servlets, páginas HTML o clientes Java autónomos, dependiendo del diseño.

Para obtener más información, consulte: 

Actividades relacionadas:

Véase también:

Ingeniería directa e inversa de clases de presentación

Se puede realizar ingeniería directa e inversa sobre las clases de presentación. Rose Java da soporte a:

  • Revertir la ingeniería de una aplicación web (.war). icono de libro de ayuda Para obtener más información, consulte el tema Rose Java > Cómo > Revertir ingeniería de Fuente Java a Rose en la ayuda en línea de Rational Rose.

  • Crear una nueva clase de servlet completada con los métodos apropiados. icono de publicación de ayuda Para obtener más información, consulte el tema Rose Java > Cómo > Trabajar con EJB y servlets en la ayuda en línea de Rational Rose.