08otrosc C

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 27

Otros Estilos de Vistas de

Componentes y Conectores
Arquitectura de Software - Otros Estilos de Componentes y Conectores 2

Más Estilos C&C

• Publicador-suscriptor
• Cliente-servidor
• Peer-to-peer
• Procesos comunicantes
Arquitectura de Software - Otros Estilos de Componentes y Conectores 3

Publicador-suscriptor

• Los componentes interactúan a través de


eventos anunciados.
• Las componentes pueden suscribirse a una
serie de eventos.
• La infraestructura de ejecución de un sistema
publicador-suscriptor es responsable de
distribuir los eventos a todos los suscriptores.
• La forma esencial de conector es un bus de
eventos.
• Los componentes publican los eventos en el
bus y el conector los dirige a las componentes
apropiadas.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 4

Elementos, Relaciones y Propiedades

• En un sistema de publicación-suscripción:
– conjunto de procesos independientes
– un proceso reacciona con algún evento generado por el ambiente
– esta reacción puede producir eventos que se publicarán
– como consecuencia, la reacción de una componente puede causar
reacciones en otras componentes a través de los eventos.

• No es posible saber, al desarrollar una componente, cuántos


ni cuáles serán los destinatarios de los eventos que publique.
• Este desacoplamiento inherente maximiza la modificabilidad
de las partes pero dificulta las pruebas.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 5

Invocación Implícita

• Es una forma particular del estilo publicador-suscriptor.


• Las componentes tienen interfaces procedurales, y
cada componente se registra para ciertos eventos
asociándolos con estos procedimientos.
• Cuando se anuncia un evento, se invocan los
procedimientos asociados en el orden determinado por
la infraestructura de ejecución.
• Un ejemplo típico es Visual Basic: se agrega código que
será asociado a determinados eventos preestablecidos.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 6

Otras Formas

• En otras modalidades, es responsabilidad de cada


componente el definir
– el tipo de eventos a los cuales se habrá de reaccionar,
– el orden en que se ejecutarán en caso de ocurrir más de un
evento.

• Estos sistemas suelen ser más complejos pero


también tienen mayor flexibilidad.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 7

Propiedades
• Debe documentarse si durante la ejecución es posible:
– suscribir un nuevo evento
– crear un nuevo tipo de evento
– crear nuevos publicadores de eventos
• Como propiedades de los conectores:
– forma de manejar los eventos publicados
– forma sincrónica o asincrónica
– existencia de prioridades
– orden causal o temporal usado
– confiabilidad de la distribución de eventos
– semántica de los eventos
– otra funcionalidad del conector (e.g. Crear o destruir componentes)
Arquitectura de Software - Otros Estilos de Componentes y Conectores 8

Relación con Otros Estilos

• Un sistema puede verse como un pizarrón sin


persistencia cuando se usa para distribuir mensajes.
• Cuando las componentes operan en distintos threads
de control, el estilo publicador-suscriptor es un
refinamiento del estilo de procesos comunicantes.
• Publicador-suscriptor se combina frecuentement con
el estilo peer-to-peer en el que los procesos
interactúan tanto implícita como explícitamente.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 9

Resumen de Publicador-Suscriptor
Elementos Tipos de componentes: cualquier tipo de componente con
una interfaz que publica y/o suscribe eventos.
Tipos de conectores: publicar-suscribir
Relaciones La relación de vínculo asocia componentes con el conector
publicar-suscribir

Modelo Un sistema de componentes independientes que anuncian


Computacional eventos y reacciones ante otros eventos anunciados

Propiedades Todas las propiedades de C&C y además: qué


componentes anuncian qué eventos, qué componentes
reaccionan con qué eventos y cuándo se permite a una
componente suscribir un evento
Topología Todas las componentes se conectan a un distribuidor de
eventos que puede ser considerado como un conector (un
bus) o bien una componente
Arquitectura de Software - Otros Estilos de Componentes y Conectores 10

Estilo Cliente-Servidor

• En el estilo cliente-servidor, las


componentes interactúan solicitando
servicios de otras componentes.
• La esencia del estilo radica en que la
comunicación se da de a pares y es iniciada
por el cliente.
• Una solicitud de un cliente se relaciona con
un servicio ofrecido por un servidor.
• Los servidores ofrecen uno o más servicios
a través de una o más interfaces.
• Puede haber uno o más servidores dentro
del sistema.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 11

Elementos, Relaciones y Propiedades

• Los tipos de componentes son clientes y servidores.


• El tipo de conector principal es solicitud-respuesta
que se usa para invocar servicios.
• Los servidores tienen interfaces que describen los
servicios ofrecidos.
• Los servidores pueden, a su vez, actuar como
clientes de otros servidores, formando una jerarquía.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 12

Dinámica

• El flujo de control en los sistemas cliente-servidor es


asimétrico.
• En un sistema cliente-servidor puro:
– la acción es iniciada por el cliente solicitando un servicio del servidor
(el cliente debe conocer la identificación del servidor y el servicio
requerido)
– los servidores desconocen sus clientes potenciales, y responden a
quienes los invoquen

• Invocación sincrónica:
– el solicitante del servicio espera o se bloquea hasta que el servicio sea
concluido posiblemente con un resultado devuelto.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 13

Forma especializada: n-tiered

• Estructura:
– los clientes y servidores forman una jerarquía de n
niveles
Aplicación cliente
– los niveles superiores están formados por clientes que
invocan servidores en niveles inferiores


Lógica del negocio
Generalmente se usan en aplicaciones de
procesamiento de información, donde n = 3
– la primera capa es la aplicación cliente Administración de datos

– la segunda incluye los servicios de la lógica del negocio


– la tercera capa incluye la administración de los datos
Arquitectura de Software - Otros Estilos de Componentes y Conectores 14

Propiedades

• Posibilidad de crear dinámicamente clientes y servidores


• Límite al número de clientes que pueden interactuar con
un servidor
• Protocolo de solicitud-respuesta:
– forma de manejar los errores
– inicialización y finalización de las interacciones
– manejo de sesiones
– localización de los servidores
– existencia de middleware
Arquitectura de Software - Otros Estilos de Componentes y Conectores 15

Usos de Cliente-Servidor

• Los sistemas cliente-servidor desacoplan los


prestadores de servicios de los usuarios de estos
servicios.
• Da apoyo a la comprensibilidad y la distribución del
sistema agrupando servicios relacionados.
• La división en clientes y servidores facilita la
estructuración jerárquica permitiendo la escalabilidad
de la performance y la confiabilidad.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 16

Relación con otros estilos

• Cliente-servidor es una generalización de los


llamados a procedimiento/función/método de los
lenguajes de programación.
• Es como peer-to-peer pero asimétrico.
• Los clientes y servidores se agrupan y distribuyen en
distintas máquinas dando lugar a una jerarquía de n-
capas
– n-tier es una especialización de C&C y no un tipo de
arquitectura de capas que es una forma de tipo de vista de
módulos.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 17

Resumen de Cliente-Servidor
Elementos Tipos de componentes: clientes (solicita servicios de otra componente)
y servidores (proporciona servicios a otras componentes)
Tipos de conectores: solicitud/respuesta, invocación asimétrica de un
servicio del servidor por parte de un cliente
Relaciones La relación de vínculo asocia los clientes con el rol de solicitud del
conector y a los servidores con el rol de respuesta del conector, y
determina qué servicios pueden ser invocados por qué cliente
Modelo Los clientes inician la acción solicitando servicios cuando lo requieran
Computacional de los servidores y esperando por los resultados

Propiedades Propiedades de C&C agregando el número y tipo de clientes que


pueden vincularse y propiedades de performance tales como
transacciones por segundo
Topología En general, sin restricciones. Las especializaciones pueden imponer
algunas: número de vínculos a un determinado puerto o rol, posibilidad
de relacionar servidores, capas.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 18

Estilo Peer-to-Peer

• Los componentes interactúan directamente como pares


intercambiando servicios.
• La comunicación es una especie de solicitud/respuesta sin la asimetría
de cliente-servidor
– en principio cualquier componente puede interactuar con cualquier otra
• Los conectores pueden involucrar protocolos complejos bidireccionales
• Típicos sistemas peer-to-peer son los basados en infraestructuras de
objetos distribuidos tales como CORBA, COM+ y Java RMI.
• Un sistema diseñado con un estilo más restrictivo puede aún ser
implementado usando orientación a objetos y una infraestructura de
objetos/componentes distribuidos.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 19

Elementos, Relaciones y Propiedades

• Los típicos elementos son objetos, objetos distribuidos y


clientes.
• El conector principar es invocación-procedimiento.
• La interacción puede ser inciada por cualquiera de las
partes.
• Cada componente tiene interfaces que describen los
servicios que solicitan de otras componentes y los servicios
que ofrecen.
• Las propiedades esenciales son la modificabilidad y la
escalabilidad.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 20

Dinámica

• El flujo de control es simétrico:


– un par inicia la acción para realizar una operación mediante
la cooperación con otros pares y para ello se solicitan
servicios entre ellos.

• La propagación de las invocaciones puede,


eventualmente ser restringida.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 21

Aplicaciones Peer-to-Peer

• El sistema se particiona en áreas de colaboración.


• Esta partición facilita la distribución.
• Los pares interactúan jugando alternativamente roles
de cliente y/o de servidor.
• Esto permite una forma de cliente-servidor con la
información distribuida en varios elementos.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 22

Resumen de Peer-to-Peer
Elementos Tipos de componentes: pares
Tipos de conectores: invocación de procedimiento

Relaciones La relación de vínculo asocia pares con los conectores de


invocación a procedimientos y determina el grafo de
interacciones posibles entre componentes
Modelo Los pares cuentan con interfaces en encapsulan su
Computacional estado. El cómputo se realiza mediante la cooperación
entre pares que solicitan servicios a otros pares.
Propiedades Propiedades de C&C con énfasis en protocolos de
interacción y propiedades orientadas a la performance.
Los vínculos pueden cambiar durante la ejecución.
Topología Puede haber restricciones acerca del número de vínculos a
un cierto puerto o rol. Otras restricciones de visibilidad
pueden imponerse para restringir qué componentes saben
de la existencia de otras componentes.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 23

Estilo de Procesos Comunicantes

• Las componentes son procesos independientes ejecutando


en forma concurrente y comunicándose a través de
variados mecanismos.
• Los conectores pueden ser: sincronización, pasaje de
mensajes, intercambio de datos, inicialización, destrucción,
etc.
• Los procesos comunicantes son frecuentes en grandes
sistemas, e imprescindibles en sistemas distribuidos.
• El estilo de procesos comunicantes ayuda a comprender el
comportamiento asociado a la concurrencia.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 24

Elementos, Relaciones y Propiedades

• Un sistema se representa como un conjunto de


unidades que ejecutan en forma concurrente
conjuntamente con su interacción.
• Una unidad concurrente puede ser una tarea, o
proceso o un thread.
• Los conectores permiten la comunicación de datos
entre las componentes y también su sincronización.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 25

Aplicaciones de Procesos
Comunicantes
• El estilo pone de manifiesto
– qué partes del sistema pueden ejecutarse en paralelo
– qué grupo de componentes conforman un proceso
– threads de control existentes dentro del sistema
• Una vista con este estilo puede usarse para analizar
performance y confiabilidad.
• También es útil en la asignación de componentes a
procesadores.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 26

Relación con otros estilos

• Este estilo es raramente usado en forma pura, sino en


combinación con otros.
• Usos comunes:
– resaltar los threads de control dentro de un sistema cliente-
servidor
– poner un proceso monitor que controle a otros procesos y
reporte el progreso del procesamiento

• El estilo deployment está relacionado en cuanto es


necesario saber cuáles son los threads de control a la
hora de asignar componentes a procesadores.
Arquitectura de Software - Otros Estilos de Componentes y Conectores 27

Resumen de Procesos Comunicantes


Elementos Tipos de componentes: unidades concurrentes tales como tareas,
procesos y threads
Tipos de conectores: intercambio de datos, pasaje de mensajes,
sincronización, control y otros tipos de comunicación
Relaciones La relación de vínculo tal como se define en C&C
Modelo Componentes que ejecutan concurrentemente interactúan a través
Computacional de mecanismos de conexión específicos
Propiedades de Unidad concurrente: preemptability, indica que la ejecución de una
los elementos unidad concurrente puede ser suspendida por otra unidad
concurrente o que la unidad concurrente ejecuta hasta que
suspende voluntariamente su propia ejecución; priordad ,
determinada por la planificación; parámetros temporales, tales
como período o deadline
Intercambio de datos: con buffer, indica que los mensajes se
almacenan si no pueden procesarse inmediatamente, o protocolo,
usado para comunicación
Topología Grafos arbitrarios

También podría gustarte