lenguaje de programación).
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).
Como se comentó previamente el enlace se lleva a cabo a través de conectores, pudiendo ser de dos tipos:
Sabiendo lo anterior, una representación de una composición de un componente en UML quedaría de la siguiente forma:
De la imagen anterior se deduce:
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:
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.
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.
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:
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.
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: