Rafael Luis Granados La Paz

Despliegue y puesta en funcionamiento de componentes software. IFCT0609


Скачать книгу

lenguaje de programación).

264111.png

      Ejemplos: UML 2.0

      En UML 2.0, un componente es una unidad modular de un sistema, con una interfaz bien definida que proporciona (y requiere) servicios a través de interfaces (puertos).

264337.png

      Como se comentó previamente el enlace se lleva a cabo a través de conectores, pudiendo ser de dos tipos:

      ilst1Conectores de delegación: se representan por una flecha. En una composición de componentes indican el uso de servicios dentro del componente compuesto. El sentido hacia el cual apunta la flecha señala la dirección de la comunicación. Si la interfaz proporcionada es ofrecida por un componente interno, la flecha va del puerto al componente. En caso contrario (el componente interno demanda la interfaz) la flecha va del componente al puerto.

      ilst1Conector de ensamblado: se representa por un “lollipop” (semicírculo) unido a un “socket” (círculo). Es usado para unir componentes a través de sus interfaces.

      Sabiendo lo anterior, una representación de una composición de un componente en UML quedaría de la siguiente forma:

264456.png

      De la imagen anterior se deduce:

      ilst1El elemento compuesto está formado por dos componentes básicos (Componente A y Componente B). Ambos componentes están unidos a través de sus respectivas interfaces haciendo uso de un socket y un lollipop.

      ilst1El componente compuesto tiene dos puertos, cada uno con su correspondiente conector.

      ilst1Los dos puertos anteriores están unidos con los componentes a través de conectores de delegación.

iApl

      Aplicación práctica

      Le piden en su empresa crear un componente “Tienda Online” usando UML 2.0. Para ello le proponen usar los siguientes componentes:

265666.png

      El componente final deberá tener dos puertos que representarán el servicio requerido (en la forma de acceso por parte del cliente) y el servicio proporcionado (a través de un pedido realizado).

      SOLUCIÓN

      Inicialmente se crea un componente llamado TiendaOnline en el que se introducirán los tres componentes anteriores. Estos tres componentes se enlazarán a través de sus interfaces mediante los conectores de ensamblado, quedando los conectores de delegación como unión con los puertos del componente final.

265421.png

iAct

      Actividades

      1.Represente un Componente C que se nutra del Componente A y proporcione una nueva interfaz.

      2.3.Diseño con repositorio solo para el depósito de componentes

      A continuación se presenta la segunda categoría. La idea es disponer de un repositorio en el cual almacenar los componentes. Se ofrecerán ejemplos con .NET, EJB, CCM y servicios web.

      Tipos de contenedores

      En esta categoría la composición solo puede darse durante la fase de diseño. Los componentes base pueden ser depositados dentro de un repositorio, sin posibilidad de ser retirados del mismo puesto que no tendrían razón de ser en el exterior. Respecto a los componentes resultantes de una composición, no podrán ser depositados en dicho repositorio.

266041.png

      Durante la fase de despliegue no hay posibilidad de composición. De esta manera, la composición del componente instanciado durante la fase de ejecución coincidirá con la propuesta en la fase de diseño. Normalmente, en los modelos encuadrados dentro de esta categoría es necesario un contenedor que proporcione el marco para la correcta ejecución del sistema. Los contenedores más típicos se enumeran a continuación:

      ilst1Contenedor EJB.

      ilst1CLR.

      ilst1Contenedor CCM.

      En los siguientes puntos se expondrán las tecnologías que hacen uso de los contenedores previamente mencionados.

      Ejemplo con EJB

      El componente EJB (Enterprise Java Beans) es una clase Java que es controlada y almacenada por un contenedor EJB.

iDef

      Definición

      Contenedor EJB

      Es un contenedor especial proporcionado por un servidor J2EE. Controla la ejecución de los beans y maneja, entre otros, seguridad, servicio de nombres, transacciones y conectividad remota.

      La clase Java que da lugar al componente EJB (de aquí en adelante bean) consta de dos interfaces: la interfaz home y la interfaz remota. La primera representa los métodos básicos del bean relacionados con su ciclo de vida (el método de creación, por ejemplo), mientras que la segunda hace pública toda la funcionalidad propia del bean. Estas dos interfaces son las que deben ser llamadas para establecer contacto con el bean.

      PersonaHome

       +create( dni: String, nombre String) : Persona

      Persona

       +getPersonaNombre() : String

       +setPersonaNombre( nombre: String )

       >….

      PersonaBean

       +dni : String

       +nombre : String

       ….

       +ejbCreate(dni: String, nombre String) : Persona

       +getPersonaNombre() : String

       +setPersonaNombre( nombre: String )

       ….

      Ejemplo de bean con las interfaces home y remoto

      En cuanto a los tipos de beans pueden establecerse tres categorías dependiendo de su papel dentro del sistema:

      ilst1Beans de entidad (Entity Beans): representan los datos a almacenar (en una base de datos, por ejemplo) en forma de objeto. Son persistentes, es decir, los datos permanecen una vez se termine la ejecución del sistema.