Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guía de Conceptos
Unidad II
Sistemas Distribuidos – Unidad II
Contenido
INTRODUCCIÓN ................................................................................................................................... 2
ARQUITECTURA DE SISTEMAS .............................................................................................................. 3
ESTRUCTURA DE CAPAS DE SOFTWARE ............................................................................................ 3
MIDDLEWARE ................................................................................................................................. 3
MIGRACIÓN DE LOS SISTEMAS HOST. REINGENIERÍA DE APLICACIONES ............................................. 6
INTERCONECTIVIDAD................................................................................................................... 6
ARQUITECTURA ORIENTADA A OBJETOS DISTRIBUÍDOS .................................................................. 6
ARQUITECTURA CLIENTE/SERVIDOR ............................................................................................. 6
MODELOS ARQUITECTÓNICOS ......................................................................................................... 6
PRODUCTIVIDAD (THROUGHPUT) ................................................................................................. 7
CAPACIDAD DE RESPUESTA (RESPONSIVENESS) .......................................................................... 7
BALANCE DE CARGA COMPUTACIONAL ........................................................................................ 7
CALIDAD DE SERVICIO (QUALITY OF SERVICE – QOS) .................................................................. 8
MODELOS DE SISTEMAS...................................................................................................................... 8
PUNTO A PUNTO - (PEER TO PEER - P2P) ........................................................................................ 8
CARACTERÍSTICAS GENERALES ................................................................................................... 9
CLIENTE/SERVIDOR ........................................................................................................................ 9
OTROS TIPOS DE ARQUITECTURAS ..................................................................................................... 14
ARQUITECTURA CLIENTE-COLA-CLIENTE ....................................................................................... 14
ARQUITECTURA MULTICAPAS ........................................................................................................ 14
MODELOS ESPECÍFICOS DE ARQUITECTURAS...................................................................................... 15
MODELO DE INTERACCIÓN............................................................................................................. 15
MODELO DE FALLOS ..................................................................................................................... 16
MODELO DE SEGURIDAD ............................................................................................................... 16
INTERCONEXIÓN DE REDES ............................................................................................................... 16
TIPOS DE REDES MÁS UTILIZADOS .................................................................................................. 16
COMPONENTES REDES Y DE INTERCONEXIÓN DE REDES ................................................................. 17
PROTOCOLOS............................................................................................................................... 18
FAMILIA DE PROTOCOLOS TCP/IP ............................................................................................. 18
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ............................................................................. 22
MÉTODO DE INVOCACIÓN REMOTA - (REMÓTE METHOD INVOCATION - RMI).................................... 22
BIBLIOGRAFÍA ................................................................................................................................... 23
Introducción
En la Unidad II estaremos desarrollando lecturas y actividades relacionadas a las redes, tipos
de redes y los protocolos de internet y como se comunican entre los objetos distribuidos.
Lectura básica que nos orientaran para que luego podamos presentar esquemas de
componentes de un sistema distribuido y la construcción de manual de protocolos de internet.
Existen muchas clases de arquitecturas y algunas de ellas son: por capas, orientadas a
objetos, orientadas a los datos, orientadas a eventos, de sistemas o de distribución,
centralizadas, descentralizadas, descentralizadas estructuradas y no estructuradas,
descentralizadas híbridas, autonómicas; entre otras.
Arquitectura de sistemas
Estructura de capas de software
El nivel de hardware y las capas más bajas de software se denomina, a menudo, plataforma
para sistemas distribuidos y aplicaciones.
I LUSTRACIÓN 1: C APAS DE SERVICIO DE SOFTWARE Y HARDWARE
Aplicación de servicios
Middleware
PLATAFORMA
Sistema Operativo
Middleware
En un Sistema Distribuido, el middleware (lógica de la mediación) es un software de
conectividad que permite ofrecer un conjunto de servicios que hacen posible el
funcionamiento de aplicaciones distribuidas sobre plataformas heterogéneas. Funciona como
una capa de abstracción de software distribuida que se sitúa entre las capas de aplicaciones
de servicios y las capas del sistema operativo y de la computadora y del hardware de red.
I LUSTRACIÓN 2: E L PAPEL DEL MIDDLEWARE EN LA ARQUITECTURA C LIENTE /S ERVIDOR
(Stallings, 2005)
Existen diversos tipos de middleware, como, por ejemplo: CORBA, MOSIX, OpenMOSIX,
Condor, OpenSSI; entre otros.
El middleware recibe los trabajos entrantes al cluster y los redistribuye de manera que el
proceso se ejecute más rápido y el sistema no sufra sobrecargas en un servidor. Esto se
realiza mediante políticas definidas en el sistema (automáticamente o por un administrador)
que le indican dónde y cómo debe distribuir los procesos, por un sistema de monitorización,
el cual controla la carga de cada CPU y la cantidad de procesos en él.
El middleware también debe poder migrar procesos entre servidores con distintas finalidades:
- Balancear la carga: si un servidor está muy cargado de procesos y otro está ocioso,
pueden transferirse procesos a este último para liberar de carga al primero y optimizar
el funcionamiento
- Mantenimiento de servidores: si hay procesos corriendo en un servidor que necesita
mantenimiento o una actualización, es posible migrar los procesos a otro servidor y
proceder a desconectar del cluster al primero
- Priorización de trabajos: en caso de tener varios procesos corriendo en el cluster,
pero uno de ellos de mayor importancia que los demás, puede migrarse este proceso
a los servidores que posean más o mejores recursos para acelerar su procesamiento
Interconectividad
Uno de los usos más importantes de las herramientas de middleware es la de facilitar la
interconectividad de los diferentes sistemas de una organización integrando las diferentes
islas de información departamentales.
Arquitectura cliente/servidor
La utilización de middleware permite desarrollar aplicaciones en arquitectura cliente/servidor
independizando los servidores y clientes, facilitando la interrelación entre ellos y evitando
dependencias de tecnologías propietarias.
Modelos arquitectónicos
"Un modelo arquitectónico de un sistema distribuido simplifica y abstrae las funciones de los
componentes individuales de dicho sistema”. (Coulouris, 2012).
Es importante destacar los requisitos que deben ser tenidos en cuenta para los diseños de
las arquitecturas distribuidas.
Productividad
Balance de Carga
Prestaciones
Calidad de
Computacional Servicio
Capacidad de
Respuesta
Entre estos requisitos de diseño tenemos cuatro aspectos más importantes junto con sus
características:
Productividad (Throughput)
- Una medida más es la productividad, la rapidez a la que se realiza el trabajo
computacional.
- Depende de las velocidades de procesos de los clientes y los servidores, así como de
las tasas de transferencia.
- La productividad de las capas de software es muy importante, así como la red.
Modelos de Sistemas
Punto a punto - (Peer to Peer - P2P)
Una arquitectura de red P2P es aquella que no necesita de recursos dedicados, como es un
servidor de archivos, además cualquier equipo (host) puede compartir sus recursos con otros
sistemas en la red.
Es decir, en este tipo de redes, un mismo equipo puede funcionar como cliente y como
servidor, ya sea haciendo peticiones de dato o bien, sirviéndola.
I LUSTRACIÓN 4: R ED P UNTO A P UNTO
Características generales
- El código en los procesos parejos o iguales mantiene la consistencia de los recursos
y sincroniza las acciones a nivel de la aplicación cuando es necesario
- En general n procesos parejos podrán interactuar entre ellos, dependiendo el patrón
de comunicación de los requisitos de la aplicación
- La eliminación del proceso servidor reduce los retardos de comunicación entre
procesos al acceder a objetos locales
- Se puede implementar con un proceso de aplicación en cada sitio y que se basa en
capas de middleware para realizar notificación de eventos y comunicación a grupos
para indicar a todos los procesos de la aplicación de los cambios
- Proporciona a los usuarios de objetos distribuidos una respuesta interactiva mejor que
la que se puede obtener con una arquitectura basada en servidor
Cliente/Servidor
I LUSTRACIÓN 5: M ODELO C LIENTE /S ERVIDOR
Desde un punto de vista más técnico los clientes (o programas que representan entidades
que necesitan servicios) y los servidores (o programas que proporcionan servicios) son
objetos separados y se comunican a través de una red de comunicaciones para realizar una
o varias tareas de forma conjunta.
De manera más detallada, el cliente se caracteriza por desarrollar las siguientes funciones:
El servidor por su parte se caracteriza por cumplir con las siguientes funciones:
El modelo Cliente/Servidor asigna roles diferentes a los dos procesos que colaboran:
Protocolos asimetricos
• Hay una relación muchos a uno entre los clientes y un servidor. Los clientes siempre inician un diálogo mediante
la solicitud de un servicio. Los servidores esperan pasivamente por las solicitudes de los clientes,
Encapsulación de servicios
Integridad
• El código y los datos de un servidor se mantienen centralizados, lo que origina que el mantenimiento sea más
barato y la protección de la integridad de datos compartidos. Al mismo tiempo, los clientes mantienen su
independencia y autonomía
Transparencia de localización
• El servidor es un proceso que puede residir en la misma máquina que el cliente u otra una máquina diferente de
la red. El software Cliente/Servidor habitualmente oculta la localización de un servidor a los clientes mediante la
redirección de servicios. Un programa puede actuar tanto como cliente, como servidor o como cliente y servidor
simultáneamente
• Los clientes y servidores son procesos débilmente acoplados que pueden intercambiar solicitudes de servicios y
respuestas utilizando mensajes
• El diseño modular de una aplicación Cliente/Servidor permite que la aplicación sea tolerante a fallos
En sistemas tolerantes a fallos, los fallos pueden ocurrir sin causar la caída de la aplicación
completa.
En una aplicación Cliente/Servidor tolerante a fallos, uno o más servidores pueden fallar sin
parar el sistema total mientras que los servicios proporcionados por los servidores caídos
estén disponibles en otros servidores activos
Otra ventaja de la modularidad es que una aplicación Cliente/Servidor puede responder
automáticamente al incremento o decremento de la carga del sistema mediante la
incorporación o eliminación de uno o más servicios o servidores.
Arquitectura Multicapas
Esta arquitectura genérica tiene dos tipos de nodos en la red: clientes y servidores.
Se refieren algunas veces como arquitectura de dos niveles o dos capas. En algunas
configuraciones de redes se tienen tres tipos de nodos:
Clientes:
Servidores de aplicación:
Modelos específicos de
arquitecturas
El modelo arquitectónico define la forma en la que los componentes interactúan entre ellos,
sus roles funcionales y el patrón de comunicación. Asimismo, cómo se asignan los nodos en
la red para la distribución de los datos y de toda la carga computacional.
Todas las arquitecturas comparten algunas propiedades fundamentales y procesos que se
comunican por paso de mensajes a través de una red de computadoras, pero existen algunos
tipos de arquitecturas que corresponden a unos modelos específicos.
Modelo de Interacción
Este modelo debe definir y clasificar la comunicación entre elementos del sistema.
Respecto a la interacción, los sistemas distribuidos deben tener en cuenta que:
- Hay limitaciones debidas a la comunicación
- Es imposible predecir el retraso con el que llega un mensaje
- Es imposible tener una noción global de tiempo
- La ejecución es no determinista y difícil de depurar
- Existe un retardo entre el envío de un mensaje y su recepción (latencia)
- La información que puede transmitirse en un intervalo de tiempo
- Hay variación (fluctuación) del tiempo invertido en repartir una serie de mensajes
- Cada computadora tiene su propio reloj interno (reloj local) para marcas de tiempo en
los procesos locales
- Tasa de deriva de reloj
- Dos tipos de modelo de interacción (síncrono y asíncrono)
Modelo de Fallos
Este modelo debe definir y clasificar los fallos que pueden darse en el sistema. Se debe
prestar especial atención a lo siguiente:
→ Estudio de las causas posibles de fallo de manera a comprender sus consecuencias
→ Tipo de fallo según la entidad
• Fallos de proceso
• Fallos de comunicación
→ Tipo de fallo según el problema
• Fallos por omisión
• Fallos arbitrarios
• Fallos de temporización
• Fallo por omisión en procesos
• Fallo del procesamiento
• Detección del fallo por timeouts (síncrono)
• Fallo-parada
Modelo de Seguridad
Este modelo debe definir y clasificar los tipos de ataque que pueden afectar al sistema.
La seguridad en un sistema distribuido se basa en la seguridad de los procesos y canales
utilizados, entendida como seguridad de objetos almacenados e invocados por los procesos
y trasmitidos a través de los canales.
La seguridad se logra mediante un sistema de derechos de acceso y distintos tipos de
autoridad.
Interconexión de redes
Tipos de redes más utilizados
Redes de Área Local (Local Area Network - LAN)
Una red LAN es un conjunto de elementos físicos y lógicos que proporcionan interconexión
entre dispositivos en un área privada y restringida como una oficina, un edificio o todo un
campus
Protocolos
Conjunto de reglas o especificaciones encargadas de administrar todos los aspectos
relacionados a la transmisión de los datos.
Protocolos Servicios
Internet Protocol (IP) Entrega de paquetes
Direccionamiento IP
El protocolo TCP/IP utiliza una dirección de 32 bits para identificar una máquina y la red a la
cual está conectada. El NIC (Centro de Información de Red) asigna las direcciones IP (o
Internet), aunque si una red no está conectada a la Internet, dicha red puede determinar su
propio sistema de numeración.
Existen cuatro formatos para la dirección IP, cada uno de los cuales se utiliza dependiendo
del tamaño de la red. Los cuatro formatos son conocidos como clases: Clase A hasta Clase
D (aunque se ha añadido la Clase E para un uso específico).
Estas clases se pueden ver en la figura siguiente:
La clase se identifica mediante las primeras secuencias de bits, a partir de los 3 primeros bits
(de orden más alto).
Protocolo IP versión 6
Surgió como consecuencia de la limitación que ofrece la IP versión 4 debido a su capacidad
de direccionamiento de 32 bits.
Entre sus objetivos principales figuraba un espacio de direcciones que no se agote en poco
tiempo, mejoras de seguridad y permitir la compatibilidad del nuevo protocolo con el viejo.
Las ventajas que ofrece la IP versión 6 sobre la versión 4 son: Espacio de direcciones
ampliado a 128 bits
- Mecanismo de transporte mejorado
- Asignación dinámica de direcciones
- Aumento de la flexibilidad en el direccionamiento
- Mejora en el tráfico especializado en tiempo real
Capa 7
Nivel de Aplicación
Es el nivel que está en contacto directo con los programas o aplicaciones informáticas de las estaciones y contiene los servicios de comunicación más
utilizados Ej. transferencia de archivos, el correo electrónico, etc.
Capa 6
Nivel de Presentación
Controla el significado de la información que se transmite, lo que permite la traducción de los datos entre las estaciones. P.ej si una estación trabaja con un
código concreto y la estación del otro extremo maneja otro, este nivel es el encargado de realizar esta conversión. Para conversaciones confidenciales,
también codifica y encripta los datos.
Capa 5
Nivel de Sesión
Establece sesiones (conexiones) de comunicación entre los dos extremos para el transporte de datos. A diferencia del nivel de transporte, a este nivel se
proporcionan algunos servicios mejorados, como la reanudación de la conversación después de un fallo en la red o una interrupción, etc.
Capa 4
Nivel de Transporte
Es el nivel más bajo que tiene independencia total del tipo de red utilizada y su función básica es tomar los datos procedentes del nivel de sesión y pasarlos
a la capa de red, asegurando que lleguen correctamente al nivel de sesión del otro extremo. La conexión es de extremo a extremo, ya que no se establece
ninguna conversación con los niveles de transporte de todas las máquinas intermedias.
Capa 3
Nivel de Red
Se ocupa de determinar cuál es la mejor ruta por la que enviar la información. La capa de red debe controlar también la congestión de la red, intentando
repartir la carga lo más equilibrada posible entre las distintas rutas. También a este nivel se realiza gran parte del trabajo de convertir y adaptar los
mensajes que circulan entre redes heterogéneas. La unidad mínima de información que se transfiere a este nivel se llama “paquete.”
Capa 2
Nivel de Enlace
Detectar y corregir todos los errores que se produzcan en la línea de comunicación. También se encarga de controlar que un emisor rápido no sature a un
receptor lento, ni se pierdan datos innecesariamente. Este nivel se encarga de repartir su utilización entre las estaciones. La unidad mínima de datos que se
transfiere entre entidades pares a este nivel se llama “trama” o marco.
Capa 1
Nivel Físico
Donde se da la transmisión de dígitos binarios por un canal de comunicación. Aquí las consideraciones de diseño tienen mucho que ver con las interfaces
mecánica, eléctrica y de procedimientos y con el medio de transmisión físico que está bajo la capa física.
Los clientes RMI interaccionan con los objetos remotos por medio de interfaces. Nunca
interaccionan directamente con las clases que implementan estas interfaces.
Bibliografía
- Comer, D. (1997). Redes de Computadoras. Internet e Interredes. 1ra, Edición.
Prentice Hall. México
- Coulouris, G. (2012). Sistemas Distribuidos. Conceptos y Diseño. 5ta. Edición.
Addison-Wesley. México
- Forouzan, B. (2002). Transmisión de datos y redes de comunicación. 2da. Edición. Mc
Graw Hill. Madrid.
- Perpinan, A. (2004).Administración de Redes GNU/Linux. Guía de estudio hacia una
capacitación segura. Fundación Código Libre Dominicana. Disponible en:
http://www.codigolibre.org
- Tanenbaum, A. (2012). Redes de Computadoras. 5ta. Edición. Pearson. México.