Ejercicio 3.6: Modelado del subpaquete de componentes EJB

En este ejercicio se modela el subpaquete de diseño de implementación de ejb. Este subpaquete modela la capa Enterprise Java Beans (EJB) que contiene los modelos de dominio que hacen que los datos sean persistentes para la aplicación. La capa EJB implementa la lógica empresarial para la capa itso.ad.business.

El subpaquete de diseño de implementación de ejb se divide en los tres subpaquetes que se indican en la tabla siguiente:

Paquete Descripción
model Este subpaquete describe las clases de dominio que representan los datos de la aplicación persistentes. El subpaquete model contiene las clases Customer y Account que se han definido en el modelo de análisis.
to Este subpaquete contiene los objetos de transferencia que abstraen la información entre las capas de diseño del modelo. Los objetos de transferencia son interfaces que han implementado las clases Customer y Account.
facade Este subpaquete contiene la implementación de la lógica empresarial para el sistema de banca en línea de PiggyBank. La fachada de sesión contiene la clase PiggyBankController que define las tareas de funcionamiento como por ejemplo, las operaciones Visualizar saldo, Transferir dinero y Hacer efectivo un cheque que se describen en el modelo de guiones de uso de PiggyBank.

En este ejercicio se crean las clases EJB de dominio Customer y Account y sus interfaces. Las interfaces IAccount e ICustomer se crean en el paquete framework.

Modelado de enterprise beans de dominio (domain)

Los enterprise beans Customer y Account forman el dominio del modelo de diseño de PiggyBank y se utilizan para hacer que los datos de la aplicación sean persistentes. Las clases Customer y Account derivan de las dos clases que ha identificado en el modelo de análisis PiggyBank.Diagrama de dominio original en el que se muestran las clases Account y Customer. El modelo de diseño PiggyBank no contiene clases Check y Transfer persistentes. Puesto que al realizar el diseño se ha decidido que los datos de transferencia o cheque no sean persistentes, no es necesario crear objetos empresariales Transfer y Check persistentes.

Para modelar Customer de EJB:
  1. En la vista Explorador de modelos, expanda Modelo de diseño IT empresarial y Diseños de implementación de PiggyBank.
  2. Pulse el botón derecho del ratón sobre el subpaquete itso.ad.business y, a continuación, pulse Añadir UML > Paquete.
  3. Denomine el paquete como model.
  4. En la vista Explorador de modelos, efectúe una doble pulsación en Principal.
  5. En el editor de diagramas, denomine el diagrama como model - Modelo de entidad persistente (EJB).
  6. En la Paleta, efectúe una doble pulsación en Clase y denomínela como Customer.

Para modelar los parámetros de la clase Customer:
  1. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase Customer y, a continuación, pulse Añadir UML > Atributo.
  2. Denomine el atributo como name.
  3. En la vista Propiedades, pulse Seleccionar tipo.
  4. En la ventana Seleccionar elemento, pulse String.
  5. Añada otro atributo a la clase Customer de tipo String denominado customerId.
  6. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase Customer y, a continuación, pulse Añadir UML > Operación.
  7. Denomine la operación como getData.
  8. En la vista Propiedades, pulse Establecer tipo de retorno.
  9. En la ventana Seleccionar elemento, expanda itso.ad.business y framework y, en el subpaquete interfaces.to pulse ICustomerTO.

Ha creado el EJB de entidad Customer. El diagrama debe presentar un aspecto similar al de la figura siguiente:

El cliente EJB.

Para modelar Account de EJB:
  1. En la Paleta, efectúe una doble pulsación en Clase y denomínela como Account.
  2. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase Account y, a continuación, pulse Añadir UML > Atributo.
  3. Denomine el atributo como balance.
  4. En la vista Propiedades, pulse Seleccionar tipo.
  5. En la ventana Seleccionar elemento, pulse Integer.
  6. Añada un atributo de tipo String a la clase Account denominado accountNumber.
  7. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase Account y, a continuación, pulse Añadir UML > Operación.
  8. Denomine la operación como getData.
  9. En la vista Propiedades, pulse Establecer tipo de retorno.
  10. En la ventana Seleccionar elemento, expanda itso.ad.business y framework y, en el subpaquete interfaces.to, pulse IAccountTO.
  11. En la Paleta, pulse Asociación.
  12. En el editor de diagramas, pulse la clase Customer y arrástrela a la clase Account.
  13. En el editor de diagramas, pulse la relación.
  14. En la vista Propiedades, en el campo Multiplicidad de cuentas, teclee *.

Ha creado el diagrama Modelo EJB de entidad persistente. Observe que las operaciones getData de los enterprise beans Customer y Account devuelven las interfaces de objetos de transferencia que ha creado en el ejercicio anterior. El diagrama debe presentar un aspecto similar al de la figura siguiente:

La relación de Customer y Account EJB.

Modelado de los enterprise beans de objetos de transferencia

Los enterprise beans de objetos de transferencia se utilizan para transferir datos entre las capas del modelo de diseño de PiggyBank. PiggyBankEJBCustomerTO y PiggyBankEJBAccountTO implementan las interfaces ICustomer e IAccount que se definen en la capa de componentes de la infraestructura.

Para modelar PiggyBankEJBCustomerTO:
  1. En la vista Explorador de modelos, expanda Modelo de diseño IT empresarial y Diseños de implementación de PiggyBank.
  2. Pulse el botón derecho del ratón sobre el subpaquete itso.ad.business y, a continuación, pulse Añadir UML > Paquete.
  3. Denomine el paquete como to.
  4. En la vista Explorador de modelos, efectúe una doble pulsación en Principal.
  5. En el editor de diagramas, añada el título interfaces.to - Implementaciones de objetos de transferencia.
  6. En la Paleta, efectúe una doble pulsación en Clase y denomine la clase como PiggyBankEJBCustomerTO.

Para modelar los parámetros de la interfaz PiggyBankEJBCustomerTO:
  1. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase PiggyBankEJBCustomerTO y, a continuación, pulse Añadir UML > Atributo.
  2. Denomine el atributo como id.
  3. En la vista Propiedades, pulse Seleccionar tipo.
  4. En la ventana Seleccionar elemento, pulse Integer.
  5. Añada otro atributo a la clase PiggyBankEJBCustomerTO de tipo String denominado name.
  6. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase PiggyBankEJBCustomerTO y, a continuación, pulse Añadir UML > Operación.
  7. Denomine la operación como PiggyBankEJBCustomerTO ( newId, newName ).
  8. En la vista Propiedades de la página Parámetros, pulse el campo Tipo del parámetro newId y cambie el tipo de parámetro por String.
  9. Pulse el campo Tipo del parámetro newName y cambie el tipo de parámetro por String.
Ha modelado el enterprise bean PiggyBankEJBCustomerTO. PiggyBankEJBCustomerTO contiene un único constructor que crea instancias de la clase dado un nombre e ID de cliente. Ahora debe modelar la relación entre el enterprise bean PiggyBankEJBCustomerTO y la interfaz ICustomerTO.

Para modelar la relación de implementación:
  1. En la vista Explorador de modelos, expanda Modelo de diseño IT empresarial, Diseños de implementación de PiggyBank, itso.ad.business y framework.
  2. En el subpaquete interfaces.to, pulse la clase ICustomerTO y arrástrela al interior del diagrama.
  3. En la Paleta, pulse Implementaciones.
  4. En el editor de diagramas, pulse la clase PiggyBankEJBCustomerTO y arrástrela a la interfaz ICustomerTO.

El diagrama debe presentar un aspecto similar al de la figura siguiente:

EJB de PiggyBankEJBCustomerTO.

Para modelar PiggyBankEJBAccountTO:
  1. En la Paleta, efectúe una doble pulsación en Clase y denomine la clase como PiggyBankEJBAccountTO.
  2. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase PiggyBankEJBAccountTO y, a continuación, pulse Añadir UML > Atributo.
  3. Denomine el atributo como balance.
  4. En la vista Propiedades, pulse Seleccionar tipo.
  5. En la ventana Seleccionar elemento, pulse Integer.
  6. Añada otro atributo de tipo String a la clase PiggyBankEJBAccountTO denominado number.
  7. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase PiggyBankEJBAccountTO y, a continuación, pulse Añadir UML > Operación.
  8. Denomine la operación como PiggyBankEJBAccountTO ( newAccountNumber, newBalance ).
  9. En la vista Propiedades de la página Parámetros, pulse el campo Tipo del parámetro newAccountNumber y cambie el tipo de parámetro por String.
  10. Pulse el campo Tipo del parámetro newBalance y cambie el tipo de parámetro por Integer.
Ha modelado el enterprise bean PiggyBankEJBAccountTO. PiggyBankEJBAccountTO contiene un único constructor que crea instancias de la clase dato un saldo y un número de cuenta. Ahora debe modelar la relación entre el enterprise bean PiggyBankEJBAccountTO y la interfaz IAccountTO.

Para modelar la relación de implementación:
  1. En la vista Explorador de modelos, expanda Modelo de diseño IT empresarial, Diseños de implementación de PiggyBank, itso.ad.business y framework.
  2. En el subpaquete interfaces.to, pulse la clase IAccountTO y arrástrela al interior del diagrama.
  3. En la Paleta, pulse Implementaciones.
  4. En el editor de diagramas, pulse la clase PiggyBankEJBAccountTO y arrástrela a la interfaz IAccountTO.

El diagrama debe presentar un aspecto similar al de la figura siguiente:

Los objetos PiggyBankEJBCustomerTO y PiggyBankEJBAccountTO

Modelado del enterprise bean de fachada (facade)

El componente de fachada separa los datos de la aplicación persistentes de la lógica empresarial. La clase PiggyBankController, que deriva de las clases de control que se han identificado en el modelo de análisis de PiggyBank, define el enterprise bean de fachada.

Para modelar la clase PiggyBankController:
  1. En la vista Explorador de modelos, expanda Modelo de diseño IT empresarial y Diseños de implementación de PiggyBank.
  2. En el subpaquete itso.ad.business, pulse el botón derecho del ratón sobre el paquete ejb y, a continuación, pulse Añadir UML > Paquete.
  3. Denomine el nuevo paquete como facade.
  4. En la vista Explorador de modelos, efectúe una doble pulsación en el diagrama Principal y añada el título facade - Fachada de sesión (Bean sin estado EJB) en modelo.
  5. En la Paleta, efectúe una doble pulsación en Clase y denomine la interfaz como PiggyController.

Para modelar la operación cashCheck:
  1. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase PiggyBankController y, a continuación, pulse Añadir UML > Operación.
  2. Denomine la operación como cashCheck ( accountToCredit, checkAmount, checkReference ).
  3. En la vista Propiedades de la página Parámetros, pulse el campo Tipo del parámetro accountToCredit y cambie el tipo de parámetro por String.
  4. Pulse el campo Tipo del parámetro checkAmount y cambie el tipo de parámetro por Integer.
  5. Pulse el campo Tipo del parámetro checkReference y cambie el tipo de parámetro por String.

Para modelar la operación getAccountByCustomerId:
  1. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase PiggyBankController y, a continuación, pulse Añadir UML > Operación.
  2. Denomine la operación como getAccountByCustomerId ( customerId ).
  3. En la vista Propiedades de la página Parámetros, pulse el campo Tipo del parámetro customerId y cambie el tipo de parámetro por String.
  4. En la vista Propiedades de la página General, pulse Establecer tipo de retorno.
  5. En la ventana Seleccionar elemento, expanda itso.ad.business y framework y, en el paquete interfaces.to, pulse IAccountTO.
  6. En la vista Propiedades de la página General, seleccione el recuadro de selección Ordenado y deseleccione el recuadro de selección Exclusivo.
  7. Deseleccione el recuadro de selección Exclusivo.
  8. En la página Avanzadas, junto a Multiplicidad, pulse el campo Valor y, a continuación, pulse 1..*.

Para modelar la operación getBalance:
  1. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase PiggyBankController y, a continuación, pulse Añadir UML > Operación.
  2. Denomine la operación como getBalance ( accountNumber, customerId ).
  3. En la vista Propiedades de la página Parámetros, pulse el campo Tipo del parámetro accountNumber y cambie el tipo de parámetro por String.
  4. Pulse el campo Tipo del parámetro customerId y cambie el tipo de parámetro por String.
  5. En la vista Propiedades de la página General, pulse Establecer tipo de retorno.
  6. En la ventana Seleccionar elemento, pulse Integer.

Para modelar la operación getCustomerById:
  1. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase PiggyBankController y, a continuación, pulse Añadir UML > Operación.
  2. Denomine la operación como getCustomerById ( customerId ).
  3. En la vista Propiedades de la página Parámetros, pulse el campo Tipo del parámetro customerId y cambie el tipo de parámetro por String.
  4. En la vista Propiedades de la página General, pulse Establecer tipo de retorno.
  5. En la ventana Seleccionar elemento, expanda itso.ad.business y framework y, en el paquete interfaces.to, pulse ICustomerTO.

Para modelar la operación transfer:
  1. En el editor de diagramas, pulse el botón derecho del ratón sobre la clase PiggyBankController y, a continuación, pulse Añadir UML > Operación.
  2. Denomine la operación como transfer ( amountToTransfer, creditAccountNr, customerId, debitAccountNr ).
  3. En la vista Propiedades de la página Parámetros, pulse el campo Tipo del parámetro amountToTransfer y cambie el tipo de parámetro por Integer.
  4. Pulse el campo Tipo del parámetro creditAccountNr y cambie el tipo de parámetro por String.
  5. Pulse el campo Tipo del parámetro customerId y cambie el tipo de parámetro por String.
  6. Pulse el campo Tipo del parámetro debitAccountNr y cambie el tipo de parámetro por String.

Ha modelado la fachada de la capa de componentes de itso.ad.business. El diagrama debe presentar un aspecto similar al de la figura siguiente:

La clase PiggyBankController contiene la implementación de fachada de la capa de diseño itso.ad.business de PiggyBank.
Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2004, 2005. Todos los derechos reservados.