• No se han encontrado resultados

10-ConectoresDeSoftware.pdf

N/A
N/A
Protected

Academic year: 2020

Share "10-ConectoresDeSoftware.pdf"

Copied!
42
0
0

Texto completo

(1)

Ingeniería de Software II

Primer Cuatrimestre de 2010

Clase 10: Conectores de Software

(2)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

2

Estructuras de componentes y conectores

Estas estructuras están centradas en procesos que se comunican.

Sus elementos son entidades con manifestación runtime que consumen recursos de ejecución y contribuyen al comportamiento en ejecución del sistema

La configuración del sistema es un grafo conformado por la asociación entre componentes y conectores

Las entidades runtime son instancias de tipos de

(3)
(4)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Componentes

Identificamos componentes con un nombre que nos de una

pista sobre su función

Los componentes son instancias de un tipo de componente

El tipo de componente nos indica las interfaces que provee y

las propiedades requeridas

Muchas veces los tipos de componente son heredados del

estilo

Los componentes tienen puertos que deben encontrarse

(5)

Ambigüedad

C1 invoca a C2? o C2 invoca a C1?

Si C1 llama a C2:

 C1 le pasa datos a C2?, C1 obtiene un resultado de C2?,

C1 causa que C2 se “cargue”?, C2 no puede ejecutar hasta que C1 ejecute?, C1 tiene que esperar que C2 termine?

Si tengo que mostrar flujo de datos: uso dos flechas?, uso

(6)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Conectores

Un conector representa una interacción en tiempo de

ejecución entre dos o más componentes

El tipo de conector indica la cardinalidad (cantidad de

componentes en la interacción), las interfaces que soporta y las propiedades requeridas

El tipo de conector se hereda generalmente del estilo

El conector asume un conjunto de roles dentro de la

(7)

Definiciones

Un conector es un elemento de la arquitectura que

modela:

Interacción entre componentes

Reglas sobre esas interacciones

Hay muchos tipos de conectores, de variada

complejidad

Cada conector provee

“Ductos” para la interacción

(8)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Elementos

Un componente solo se puede conectar con otro

mediante un conector

Un componente puede tener varios

puertos

Punto de entrada/salida de señales o mensajes

desde el componete

Cada puerto tiene su protocolo (orden de

mensajes)

Un conector se conecta a uno o varios puertos

A los puntos de conexión del conector se lo

denomina

rol

. (es la contraparte del puerto)

El conector tiene su protocolo que determina

como interactuan sus diferentes roles.

8

port port

(9)

Ejemplo: Conector Call

(10)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

10

Pipe and Filter

Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

encola desencola

El sensor va enviando las señales que se van encolando hasta que el controlador las va tomando.

-Conector debe definir:

-Protocolo de Cola -Tamaño de la Cola

-Que pasa cuando se llena

-Ignora paquetes?

-Descarta los mas viejos?

(11)

Conectores en arquitectura vs. en implementación

En arquitectura:

 Entidades de “primera clase”

 Tienen identidad

 Describen toda la interacción

 Tienen especificaciones y abstracciones

En implementaciones

 Generalmente sin código dedicado

 Generalmente sin identidad

 Típicamente no son unidades de compilación

 La implementación está distribuida (módulos,

(12)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Beneficios de conectores de “primera clase”

Componentes <> Conectores

 Funcionalidad específica de una aplicación vs.

mecanismos de interacción independientes

Separar computación de interacción

Minimizar interdependencias

Facilitar evolución

 De componentes, conectores

Facilitar heterogeneidad

Facilitar el analisis y testing del sistema

(13)

Algunos puntos clave que involucran conectores

El bloqueo del que invoca esperando la respuesta del

invocado, es decir la necesidad de concurrencia

La conveniencia de hacer esa comunicación implícita o

explícita por razones de flexibilidad

Las necesidades de “anticipación al cambio” en cuanto a

(14)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Roles de conectores

Especificación del protocolo que define sus

propiedades

Tipos de interfaces

Certezas sobre propiedades de la interacción

Reglas sobre órdenes de invocación

(15)

Connectores como comunicadores

Rol principal de un conector

Enviar y recibir información

Soporte para:

Diferentes mecanismos de comunicación

Ej: llamada de procedimiento, acceso a datos

compartidos, pasaje de mensajes

Condiciones sobre la forma de comunicarse/dirección

Ej: pipes

(16)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

16

Conectores como coordinadores

Determina el flujo de control del cómputo

Controla la entrega de información

Separa el control de la computación

Ejemplos

Llamadas a procedimientos

Más complejos: Signals, balanceadores de

(17)

Conectores como conversores

Permiten la interacción de componentes

desarrollados independientemente,

heterogéneos, que no “machean” directamente

Diferente interface/Tipos

Frecuencia

Protocolo de uso

Conversores:

(18)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

18

Connectores como facilitadores

Permiten la interacción de componentes

Ej: Mediaciones

Control de acceso a información compartida

Aseguran el cumplimiento de perfiles de

performance

Ej: balanceo de carga

Schedulling

Mecanismos de sincronización

Monitores

(19)

Tipos de conectores

Llamada a procedimientos

Datos compartidos

Acceso a datos

Evento

Stream

Distributor

(20)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Conectores de llamada a procedimientos

(21)
(22)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

22

Running Example: El aterrizador

lunar

Versión simplificada:

 El piloto controla la tasa de descenso del Apollo Lunar

Lander

Usa una valvula para controlar el motor de descenso

Combustible acotado

La altura y velocidad inicial viene prefijadas

(23)
(24)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

24

Invocación implícita

Anuncio de eventos en vez de invocación de

métodos

Los interesados se registran y asocian metodos a

eventos

El sistema invoca a todos los metodos

registrados de forma implicita

Las interfases de las componentes son metodos y

eventos

Invariante

Los anunciantes no conocen el efecto que

pueden tener los eventos

No se puede asumir nada sobre el

(25)
(26)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Message router

(27)
(28)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

29

Pub-Sub LL

(29)
(30)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

31

Blackboard LL

(31)
(32)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Conectores de Stream

(33)
(34)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Conectores tipo “arbitrators”

(35)
(36)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Conectores tipo “distributor”

(37)

Message router

(38)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

¿Cómo se elige un conector?

Determinar las necesidades de interconexión e interacción

Determinar roles a ser cumplidos por los conectores de

software

 Comunicación, coordinación, conversión, facilitación

Para cada conector

 Determinar su tipo apropiado

 Determinar las dimensiones de interés

 Seleccionar valores para cada dimensión

Para conectores “compuestos”

 Determinar las compatibilidades de conectores

atómicos

(39)

Composición de componentes básicos

En muchos sistemas se requieren conectores que “unan”

varios conectores indivuduales

(40)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

RPC – Combinando Call y Distributor

41

(41)

Composición de componentes básicos

No todos los conectores pueden ser compuestos

 Algunos no pueden operar o son incompatibles

 Todos implican trade-offs

 Ejemplo:

 Pasar parametros por nombre o por referencia a otro

(42)

© Cátedra de Ingeniería de Software II – FCEN – UBA, 2010

Resumen

Puertos

Los conectores permiten separar la computación

de la comunicación.

Pueden ser desde simples llamadas a tener

protocolos muy complejos (ej: P2P)

Consejos:

 Indicar claramente qué puerto se usa cuando se vincula

un componente a un conector

 Explicitar (al menos informalmente) el protocolo de

comunicación del conector

 Explicar que tipo de servicio de interconexion provee el

conector (comunicación, coordinacion, datos, etc)

Referencias

Documento similar

To make the model more tractable, I group the sample of thirty-seven countries into five regions in such a way that countries in the same group share common character- istics

If savings from the merger are large enough, they will outweigh the increase in market power and result in lower prices.. Assessment of

 SecurityRules2CubePermissions and SecurityRules2Dimension- Permissions transformations, which process more complex security rules defined in the conceptual model by using

TEACHER: attributions to the teacher and classroom methodology; DIFFICULTY: attributions to students’ perceived difficulty of the subject; MATH: attributions to the subject’s

L´ opez-Grao, J., Merseguer, J., Campos, J.: From UML activity diagrams to stochastic Petri nets: Application to software performance engineering. G´ omez Mart´ınez, E., Merseguer,

An employee who sleeps 8 hours per night may still have poor sleep quality, preventing the individual from showing up for work at peak performance.. Additionally, sleep hygiene

For a short explanation of why the committee made these recommendations and how they might affect practice, see the rationale and impact section on identifying children and young

Although the Silver Di- chotomy for Borel sets is not provable from ZFC for κ &gt; ω (see Theorem 42 on page 35), it holds when the equivalence relation is an isomorphism relation, if