2. Revisión
• ¿Cuáles son las salidas del diseño arquitectónico?
• ¿Cuál es el propósito del diseño arquitectónico?
• ¿Cuáles son las ventajas o propósitos del diseño
arquitectónico?
• ¿Grafique a grandes rasgos el Proceso de diseño
arquitectónico?
• ¿Descomposición Modular?
• ¿Formas de organización para sistemas distribuidos?
• ¿Formas de descomposición modular?
3. Arquitecturas de Sistemas distribuidos
• Características (Coulouris, 2001):
– Compartición de recursos: hardware y software de una red
– Apertura: Abiertos con protocolos estándar,
interoperabilidad
– Concurrencia: De procesos en un recurso
– Escalabilidad: Capacidad de incrementar nuevos recursos
y demandas
– Tolerancia a defectos: Independencia de componentes,
fallo total solo si falla la red.
4. Arquitecturas de Sistemas distribuidos
• Desventajas:
– Complejidad: Más difíciles de entender y probar, cambios
pequeños pueden afectar al todo.
– Seguridad: Acceso a varios computadores la red puede
tener ruido.
– Manejabilidad: Requiere más esfuerzo para gestionar y
mantener, los defectos de una máquina pueden
propagarse a otras máquinas con otras consecuencias.
– Impredecibilidad: Las respuestas de cada componente
pueden ser impredecibles ya que son afectados por varios
factores.
Reto diseñar software y hardware para maximizar sus
características y minimizar sus desventajas.
5. Arquitecturas de Sistemas distribuidos
Tipos:
– Arquitecturas multiprocesador
– Arquitectura cliente-servidor
– Arquitectura de objetos distribuidos
Otras:
– Peer to peer
– Orientadas a servicios
Un sistema distribuidos requiere de un software que
pueda gestionar las partes llamado middleware se
ubica entre los componentes del sistema distribuido.
6. Arquitecturas de Sistemas distribuidos
• Arquitecturas multiprocesador: Procesos que
pueden ejecutarse en procesadores diferentes bajo el
control de un despachador.
7. Arquitecturas de Sistemas distribuidos
• Arquitectura cliente-servidor: Basada en patrones de
comportamiento (cliente y servidor) para los procesos lógicos no
computadores físicos;
La más simple de dos capas que pueden ser de dos tipos:
– Modelo de cliente ligero (thin-client) todo el procesamiento y gestión de
datos se lleva a cabo en el servidor, el cliente simplemente es responsable
de la presentación.
– Modelo de cliente rico (fat-client) el servidor solamente es responsable de la
gestión de los datos, el cliente implementa la lógica de aplicación y las
interacciones con el usuario.
Cliente-servidor de tres capas:
– Presentación
– Aplicación
– Datos
8. Arquitecturas de Sistemas distribuidos
• Arquitecturas objetos distribuidos: Pensar en
objetos que pueden distribuirse en varias computadores
de una red y comunicarse a través de middleware.
Ventajas: abierto, flexible, escalable posibilidad de
reconfiguración
9. CORBA
Middleware, Intermediario de peticiones de
objetos. Se requiere middleware a dos niveles:
– Nivel de comunicación lógica: funcionalidades que
permite a los objetos intercambiar datos y controlar la
información sobre diferentes computadores –
estándares CORBA y COM.
– Nivel de componentes: proporciona una base para
desarrollar componentes compatibles – estándares
como CORBA, EJB o Active X.
CORBA (Common Object Request Broker
Architecture) desarrollado por OMG (Object
Management Group).
10. CORBA
Propone Object Management Architectura una
arquitectura formada por varios componentes:
– Objetos de aplicación propios.
– Objetos estándar para un dominio especifico.
– Servicios fundamentales para computación distribuida
como gestión de seguridad y directorios.
– Facilidades horizontales como interfaz de usuarios,
gestión del sistema y otras.
11. CORBA
Los cuatro elementos principales para los
estándares CORBA son:
– Modelos de objetos para objetos de aplicación donde
un objeto CORBA es una encapsulación de un estado
con un lenguaje neutral bien definido IDL (Interface
Definition Language).
– Un intermediario de peticiones de objetos ORB que
gestiona peticiones para servicios de objetos –
localiza el servicio, prepara la petición, envía la
petición y devuelve el resultado.
– Un conjunto de servicios generales que serán
requeridos por muchas aplicaciones distribuidas.
12. CORBA
– Conjunto de componentes comunes construidos
sobre estos servicios básicos que pueden ser
requeridos por las aplicaciones.
13. CORBA
• Un objeto es una encapsulación de atributos y
servicios. Los objetos CORBA además incluyen
una interfaz con atributos y operaciones del
objeto.
• Identificador denominado IOR (referencia de
objeto interoperable).
• El ORB gestiona la comunicación entre los
objetos, estos no necesitan conocer la localización
de los objetos ni detalles de su implementación.
• IDL aísla los objetos del ORB lo que garantiza la
transparencia.
14. Computación distribuida interorganizacional
Proporciona mejores condiciones para aplicar
estándares locales y procesos operacionales.
Disponibilidad de modelos más recientes de
computación distribuida que permiten computación
distribuida interorganizacional que
intraorgranizacional.
• Computación peer to peer (p2p).
• Sistemas orientados a servicios.
15. Computación peer to peer
Son sistemas descentralizados en los que los cálculos
pueden llevarse a cabo en cualquier nodo de la red y,
al menos en principio no se hace distinción entre
clientes y servidores.
Su fin, aprovechar la ventaja de la potencia
computacional y disponibilidad de almacenamiento a
través de una red de computadoras.
En una arquitectura descentralizada los nodos no son
simplemente elementos funcional, sino también
interruptores que encaminan los datos y señales.
Altamente tolerante a fallos y tolerante a nodos
desconectados.
16. Sistemas orientados a servicios
El desarrollo de la WWW trajo consigo que los clientes
tuvieses acceso a servidores remotos situados fuera
de las organizaciones, si éstas ubicaban su
información en HTML entonces esta podía ser
accedida por estas computadores; el acceso podría
ser por navegador y el acceso a almacenes de
información por otros programas.
Para solucionar este problema se propuso la noción de
un servicio web – que permite a las organizaciones
hacer accesible la información a otros programas
definiendo y publicando una interfaz de servicio web
independiente de la aplicación que lo ogrede o lo
utiliza.
17. Sistemas orientados a servicios
Los tres estándares fundamentales que permiten la
comunicación de servicios web son:
• SOAP (Simple Object Access Protocol) Define una
organización para intercambio de datos estructurados
entre servicios web.
• WSDL (Web Services Description Language).
Define cómo puede presentarse las interfaces de los
servicios web.
• UDDI (Universal Description, Discovery and
Integration) define como puede organizarse la
información de descripción de servicios.