Está en la página 1de 24

Sistemas Distribuidos

Redes e interconexión de redes

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

Guía de Conceptos – Material Básico pág. 1


Sistemas Distribuidos – Unidad II

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.

Los sistemas distribuidos están construidos en bases a modelo establecidos en la arquitectura


de sistemas. La implementación de estos modelos se corresponde con las características de
la organización en donde se encuentran funcionado.

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.

Guía de Conceptos – Material Básico pág. 2


Sistemas Distribuidos – Unidad II

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

Computadora y Hardware de red

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)

Guía de Conceptos – Material Básico pág. 3


Sistemas Distribuidos – Unidad II

El middleware es fundamental para:


- Migrar las aplicaciones monolíticas basadas en mainframes a aplicaciones
Cliente/Servidor
- Soportar la comunicación entre procesos a través de plataformas heterogéneas

Los servicios del middleware proporcionan un conjunto de Interfaces de Programas de


Aplicación (API) más funcional que el sistema operativo y los servicios de red para permitir a
una aplicación:

- Localización transparente a través de la red, proporcionando interacción con otra


aplicación o servicio
- Ser independiente de los servicios de red
- Ser fiable y disponible
- Ser escalable, en el sentido de poder aumentar su capacidad sin pérdida de
funcionalidad

Las aplicaciones middleware realizan las siguientes


funciones:
•Ocultar la distribución: el middleware maneja el hecho de que una
aplicacion este compuesta de muchas partes interconectadas ejecutandose
en ubicaciones distribuidas.
•Ocultar la heterogeneidad: el middleware oculta o hace transparente al
usuario diversas plataformas de sistemas operativos, protocolos de
comunicación y dispositivos hardware.
•Proveer interfaces uniformes y estándares de alto nivel: tanto a los
desarrolladores como a los integradores de aplicaciones, de tal manera que
las aplicaciones sean fácilmente desarrolladas, reusadas, transportadas y
puedan interoperar correctamente.
•Suministrar un conjunto de servicios comunes: para realizar varias
actividades de propósito general con el fin de evitar la duplicación de
esfuerzos y facilitar la colaboración entre aplicaciones.

Dentro de los principales servicios que se pueden ofrecer con


una plataforma middleware se encuentran los siguientes:

•Administración de Objetos: soporta desde simples tipos de datos hasta


grandes volúmenes de información.
•Administración de Documentos: usa el servicio de administración de
objetos y además nombra y organiza documentos. Soporta el lenguaje de
fórmulas (lenguaje de script para construir aplicaciones de usuarios)
•Seguridad: soporta encriptación, firmas digitales y control de acceso
discrecional
•Indexamiento: suministra acceso indexado tanto a resúmenes como a
contenidos completos de documentos. Opera con herramientas de
recuperación basadas en contenido y descriptores de documentos.
•Mensajería: soporta direccionamiento y transporte de correos, incluyendo
direccionamientos a grupos de nombres y nombres jerárquicamente
organizados.
•Eventos: soporta notificación dinámica a través de mensajes de correo o
registro de bitácora (log).
•Registro (logging): para auditar eventos.
•Nombrado: soporta enlaces Cliente/Servidor y lo integra con servicios de
transporte y seguridad.
•Administración del Sistema: soporta control de administración desde
consolas remotas

Guía de Conceptos – Material Básico pág. 4


Sistemas Distribuidos – Unidad II

El middleware está compuesto de agentes de software que generalmente actúan entre el


sistema operativo y las aplicaciones, con la finalidad de proveer comunicación entre diferentes
aplicaciones en un sistema distribuido.

Las funciones que realiza el middleware dentro


un cluster de servidores en un Datacenter son:
•Una interfaz única de acceso al sistema: la cual genera la sensación al
usuario de que utiliza una única computadora muy potente.
•Herramientas para la optimización y mantenimiento del sistema:
migración de procesos, checkpoint-restart (congelar uno o varios procesos,
mudarlos de servidor y continuar su funcionamiento en el nuevo host),
balanceo de carga, tolerancia a fallos, etc.
•Escalabilidad: debe poder detectar automáticamente nuevos servidores
conectados al cluster para proceder a su utilización.

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

Entre las principales ventajas que se obtienen al utilizar el middleware se encuentran:

- Simplifica el proceso de desarrollo de aplicaciones al independizar los entornos


propietarios
- Permite la interconectividad de los diferentes Sistemas de Información de una
organización
- Proporciona mayor control del negocio al poder contar con información procedente de
distintas plataformas sobre el mismo soporte
- Facilita el desarrollo de sistemas complejos con diferentes tecnologías y arquitecturas
- Dentro de los inconvenientes más importantes se destacan la mayor carga de
máquina necesaria para que puedan funcionar.
Los sistemas middleware tienen un amplio rango de aplicaciones, de los cuales se describirán
los más importantes:

Guía de Conceptos – Material Básico pág. 5


Sistemas Distribuidos – Unidad II

Migración de los Sistemas Host.


Reingeniería de Aplicaciones
Toda aplicación empresarial debería diseñarse en base a módulos intermedios middleware
encargados de la comunicación entre la computadora personal y el host. Con el uso de
middleware se puede desarrollar una aplicación sin tener en cuenta los futuros cambios
tecnológicos que puedan sufrir los sistemas host. Si el sistema host cambia, o las aplicaciones
de host se migran a plataformas de computadoras personales, todo lo que se necesita es un
nuevo módulo middleware. La interfaz de usuario, la lógica y el código interno permanecen
sin cambios. Por ejemplo, si el equipo lógico del sistema host se traslada desde el mainframe
a una base de datos de plataforma PC ejecutándose en un servidor de archivos, sólo hay que
sustituir el módulo de middleware de forma que realice llamadas SQL.

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 orientada a objetos distribuidos


El concepto de middleware permite también independizar los servicios proporcionados por
diferentes objetos que se encuentran en una red proporcionando una red de objetos
independientes e interconectados entre sí.

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.

Guía de Conceptos – Material Básico pág. 6


Sistemas Distribuidos – Unidad II

I LUSTRACIÓN 3: A SPECTOS DE DISEÑO DE UNA ARQUITECTURA DISTRIBUIDA

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.

Capacidad de Respuesta (Responsiveness)


- Se requiere rapidez y consistencia en las interfaces.
- Cuando se habla de un servicio remoto, la velocidad tiene que ver con la carga y
prestación del servidor y los retardos de todos los componentes.
- Para obtener buenos tiempos de respuesta, los sistemas deben estar compuestos de
pocas capas de software y la cantidad de datos transferidos entre el cliente/ servidor
debe ser pequeña.

Balance de Carga Computacional


- Permitir que las aplicaciones y los procesos de servicio evolucionen concurrentemente
sin competir por los mismos recursos y explotar los recursos computacionales
disponibles.
- El uso de varias computadoras para alojar un único servicio.

Guía de Conceptos – Material Básico pág. 7


Sistemas Distribuidos – Unidad II

- En algunos casos, el balance de cargas puede implicar mover el trabajo parcialmente


completado como carga a una computadora alternativa.

Calidad de Servicio (Quality of Service – QoS)


- Propiedades no funcionales: fiabilidad, seguridad, prestaciones.
- La facilidad de adaptación para adecuar configuraciones variables de sistema y
disponibilidad.
- Algunas aplicaciones mantienen datos críticos en el tiempo, flujos de datos que
precisan ser procesados o transferidos de un proceso a otro.
- Implica un requisito para que el sistema proporcione recursos garantizados de
computación y comunicación que sean suficientes para permitir a las aplicaciones
finalizar cada tarea a tiempo.
- Cada recurso crítico debe reservarse para las aplicaciones que requieren QoS y
deben ser los gestores de los recursos los que proporcionen las garantías.
- Las solicitudes de reserva se pueden rechazar.

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

Guía de Conceptos – Material Básico pág. 8


Sistemas Distribuidos – Unidad II

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

El término Cliente/Servidor fue utilizado inicialmente en los ‘80s para denominar


computadoras personales (PCs / Personal Computers) en una red. El modelo Cliente/Servidor
es una arquitectura de software que posee una infraestructura modular basada en mensajes
para mejorar la usabilidad, flexibilidad, interoperabilidad y escalabilidad en comparación con
los modelos centralizados.

Un cliente se define como un "solicitador de servicios" y un servidor se define como un


"proveedor de servicios”. En el entorno Cliente/Servidor el cliente está relacionado con las
funciones de presentación de datos junto con actividades lógicas de validación y verificación

Guía de Conceptos – Material Básico pág. 9


Sistemas Distribuidos – Unidad II

local, mientras que el servidor desarrolla actividades relacionadas con búsqueda y


recuperación de resultados en sus bases de datos.

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:

- Mantener y procesar todo el diálogo con el usuario


- Manejo de pantallas
- Menús e interpretación de comandos
- Entrada de datos y validación
- Procesamiento de ayudas y recuperación de errores

El servidor por su parte se caracteriza por cumplir con las siguientes funciones:

- Acceso, almacenamiento y organización de datos


- Actualización de datos almacenados
- Administración de recursos compartidos
- Ejecución de toda la lógica para procesar una transacción
- Procesamiento común de elementos del servidor (datos, capacidad de CPU,
almacenamiento en disco, capacidad de impresión, manejo de memoria y
comunicación)

El modelo Cliente/Servidor asigna roles diferentes a los dos procesos que colaboran:

- El servidor interpreta el papel de proveedor de servicio, esperando de forma pasiva la


llegada de peticiones
- El cliente invoca determinadas peticiones al servidor y aguarda sus respuestas

Desde una concepción simple, el modelo Cliente/Servidor proporciona una abstracción


eficiente para facilitar servicios de red. Muchos servicios de la Internet dan soporte a
aplicaciones Cliente/Servidor, por ejemplo: HTTP, DNS, FTP, etc.

Guía de Conceptos – Material Básico pág. 10


Sistemas Distribuidos – Unidad II

El empleo de la arquitectura Cliente/Servidor se basa en las siguientes características:

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

• El servidor es un especialista, cuando se le entrega un mensaje solicitando un servicio, el determina cómo


conseguir hacer el trabajo. Los servidores se pueden actualizar sin afectar a los clientes en tanto que la interfaz
pública de mensajes que se utilice por ambos lados permanezca sin cambiar

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

Intercambios basados en mensajes

• Los clientes y servidores son procesos débilmente acoplados que pueden intercambiar solicitudes de servicios y
respuestas utilizando mensajes

Modularidad, diseño extensible

• El diseño modular de una aplicación Cliente/Servidor permite que la aplicación sea tolerante a fallos

Guía de Conceptos – Material Básico pág. 11


Sistemas Distribuidos – Unidad II

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.

- Independencia de la plataforma: el software Cliente/Servidor ideal es independiente


del hardware o sistemas operativos, permitiendo al programador mezclar plataformas
de clientes y servidores. El entorno de explotación de clientes y servidores puede ser
sobre diferentes plataformas, con el fin de optimizar el tipo de trabajo que cada uno
desempeña

- Código reutilizable: la implementación de un mismo servicio puede utilizarse en


varios servidores.

- Escalabilidad: los sistemas Cliente/Servidor pueden ser escalados horizontal o


verticalmente. El escalado horizontal significa añadir o eliminar estaciones clientes
con un ligero impacto en el rendimiento mientras que el escalado vertical significa la
migración a una máquina servidora más grande y rápida o la incorporación de nuevas
máquinas servidoras.

- Separación de la funcionalidad del Cliente/Servidor: el modelo Cliente/Servidor es


una relación entre procesos que se ejecutan en la misma o en máquinas separadas.
Un proceso servidor es un proveedor de servicios. Un cliente es un consumidor de
servicios. El modelo cliente servidor proporciona una clara separación de funciones.

- Recursos compartidos: un servidor puede proporcionar servicios a muchos clientes


al mismo tiempo, y regular el acceso de éstos a un conjunto de recursos compartidos.

Guía de Conceptos – Material Básico pág. 12


Sistemas Distribuidos – Unidad II

I LUSTRACIÓN 6: C ARACTERÍSTICAS P OSITIVAS Y N EGATIVAS - C LIENTE /S ERVIDOR

Permite tener una El congestionamiento de la red


centralización del control: los ha sido siempre el principal
accesos, recursos y la integridad problema en el paradigma de
de los datos son controlados por Cliente/Servidor. Si una gran
el servidor de tal manera que un cantidad de clientes envían
programa cliente defectuoso o no peticiones simultáneamente
autorizado no pueda dañar el hacia el mismo servidor, puede
sistema. Esta centralización hace ser que cause muchos
más sencilla la tarea de poner al problemas para éste (a mayor
día datos u otros recursos (mejor número de clientes, más
que en las redes P2P) problemas para el servidor).
Mientras que en las redes P2P
Ofrece alta escalabilidad: como cada nodo en la red hace
permite aumentar la capacidad también de servidor, cuantos
de clientes y servidores por
Principales características positivas

más nodos hay, mejor es el


separado. Cualquiera de sus ancho de banda que se tiene.
elementos puede ser aumentado
(o mejorado) en cualquier El paradigma de
momento, o pueden añadirse Cliente/Servidor clásico no
nuevos nodos a la red (clientes tiene la robustez de una red
y/o servidores) P2P. Cuando un servidor está
caído, las peticiones de los

Principales características negativas


Soporta fácil mantenimiento: clientes no pueden ser
como las funciones y satisfechas. En la mayor parte de
responsabilidades están redes P2P, los recursos están
distribuidas entre varios generalmente distribuidos en
computadoras independientes; varios nodos de la red. Aunque
se puede reemplazar, reparar, algunos salgan o abandonen la
actualizar, o incluso trasladar un descarga; otros pueden todavía
servidor, mientras que los acabar de descargar
clientes que lo acceden no se consiguiendo datos del resto de
ven afectados por ese cambio (o los nodos en la red.
se afectarán mínimamente). Esta
independencia de los cambios El software y el hardware de
también se conoce como un servidor son generalmente
encapsulación. muy determinantes. Un
hardware regular de una
Existencia de tecnologías computadora personal puede no
maduras, suficientemente poder servir a cierta cantidad de
desarrolladas, diseñadas para el clientes. Normalmente se
paradigma de Cliente/Servidor necesita software y hardware
que nos aseguran la seguridad específico, sobre todo en el lado
en las transacciones, la del servidor, para satisfacer el
amigabilidad del interfaz, y la trabajo. Por supuesto, esto
facilidad de empleo. aumentará el costo.
El cliente no tiene los mismos
recursos que puede tener el
servidor. Por ejemplo, si la
aplicación es una Web, no
podemos escribir en el disco
duro del cliente o imprimir
directamente sobre las
impresoras sin sacar antes la
ventana previa de impresión de
los navegadores.

Guía de Conceptos – Material Básico pág. 13


Sistemas Distribuidos – Unidad II

I LUSTRACIÓN 7: T IPOS DE SERVIDORES

Los Servidores de archivos: los clientes hacen solicitudes de archivos


principales al servidor y esto representa una forma de compartir archivos en
tipos de una red (repositorios de documentos, imágenes, programas, etc.)
servidores
encontrados Servidores de bases de datos: las aplicaciones del cliente
mandan solicitudes SQL al servidor. El servidor devuelve el
en la resultado de la consulta
arquitectura
Cliente/Servi Servidores de transacciones: el cliente invoca procedimientos
dor son: remotos o transacciones (conjunto de instrucciones SQL) sobre la
base de datos.

Servidores groupware: intercambio de información


semiestructurada: texto, imágenes, u otros.

Servidores de aplicaciones web: los clientes solicitan información


Web a los servidores. La solicitud es por nombre y el protocolo es
HTTP. Hay objetos web y toda clase de aplicaciones nuevas.

Otros tipos de arquitecturas


Arquitectura Cliente-Cola-Cliente
En la arquitectura Cliente/Servidor clásica uno de los puntos terminales de comunicación
debe actuar como un servidor; la arquitectura Cliente-Cola- Cliente habilita a todos los nodos
para actuar como clientes simples, mientras que el servidor actúa como una cola que va
capturando las peticiones de los clientes. Esto implica que este proceso debe pasar sus
peticiones a otro por medio de una cola. Por ejemplo, para consultar una base de datos,
entonces, el segundo proceso conecta con la base de datos, elabora la petición, la pasa a la
base de datos, etc.). Esto simplifica grandemente la implementación de software.

La arquitectura P2P originalmente se basó en el concepto Cliente-Cola-Cliente.

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:

Guía de Conceptos – Material Básico pág. 14


Sistemas Distribuidos – Unidad II

I LUSTRACIÓN 8: C ONFIGURACIONES DE RE DES SE TIENEN TRES TIPOS DE NODOS

Clientes:

• que interactuan con los usuarios finales.

Servidores de aplicación:

• que procesan los datos para los clientes.

Servidores de la base de datos:

• que almacenan los datos para los 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)

Guía de Conceptos – Material Básico pág. 15


Sistemas Distribuidos – Unidad II

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

Redes de Área Metropolitana (Metropolitan Area Network -


MAN)
Una red MAN se extiende, por lo general, por toda una ciudad.

Redes de Área Amplia (Wide Área Ne twork - WAN)


Una red WAN permite intercomunicar computadoras en un área geográfica muy extensa.
Abarcan un país o un continente.

Guía de Conceptos – Material Básico pág. 16


Sistemas Distribuidos – Unidad II

Redes de Área Personal (Personal Area Network - PAN)


Son las redes de corto alcance y generalmente de uso doméstico o personales basadas en
tecnologías como Bluetooth

Redes Inalámbricas (Wireless Network)


Se incluyen las redes que operan sin cables mediante tecnologías como las de Wi-Fi, Wi-
Max, etc., y las que igualmente son utilizadas en las redes PAN También pueden utilizarse
en una oficina como una red inalámbrica de área local (Wireless LAN - WLAN) o bien en una
más extensa (Wireless MAN - WMAN)

Redes Privadas Virtuales (Virtual Private Network - VPN)


Como un tipo especial de redes, utilizadas de manera corporativa a manera de una Red
Virtual del tipo LAN (VLAN) o a través túneles en la Internet para establecer comunicaciones
más seguras entre dos o más puntos.

Componentes redes y de interconexión de


redes
Para que las redes se puedan conectar entre sí y formar interredes, es necesario disponer de
componentes de conexión y de interconexión.
A continuación, se mencionan los dispositivos más utilizados:
✓ Pasarelas (Gateways)
También son conocidos como convertidores de protocolos
✓ Encaminadores (Routers)
Los routers direccionan los paquetes de data entre las redes. Ellos identifican la dirección de
red de la computadora de destino, y entonces determinan la ruta más eficiente para
transmitirle los datos
✓ Puentes (Bridges)
Facilitan el acceso entre sistemas o entornos que utilizan distintos protocolos de
comunicación
✓ Puentes/Encaminadores (Bridge/Router- Brouters
Es un encaminador de un único protocolo o multiprotocolo que en algunas ocasiones actúa
como puente
✓ Concentradores (Hubs)
Conecta las computadoras en una configuración de red tipo estrella para que ellas puedan
intercambiar información
Tienen varios puertos disponibles, cada uno conectado a un nodo único a través de esta
interconexión de los nodos
✓ Conmutadores (Switches)
Sirven para direccionar en una red, el flujo de información de un nodo a otro y son utilizados
en una red de área local
✓ Repetidores (Repeaters)
Son dispositivos activos de solamente dos puertas que permiten interconectar dos medios de
comunicación con el objeto de amplificar y reformar los pulsos constituyentes de la señal que
va por un cable para que esta no se degrade

Guía de Conceptos – Material Básico pág. 17


Sistemas Distribuidos – Unidad II

✓ Tarjeta de Interfaz de Red (Network Interface Card - NIC)


Es la interface entre la computadora y la red.

Protocolos
Conjunto de reglas o especificaciones encargadas de administrar todos los aspectos
relacionados a la transmisión de los datos.

Familia de protocolos TCP/IP


La familia de los Protocolos de Control de Transmisión (Transmision Control Protocol) y
Protocolo Internet (Internet Protocol) está compuesta de cinco niveles: Físico, Enlace de
Datos, Red, Transporte y Aplicación.
TCP/IP es un protocolo jerárquico compuesto por módulos interactivos y en donde cada uno
de ellos proporciona una función específica, pero que no son necesariamente independientes
entre sí.
En la siguiente tabla se pueden ver algunos de los protocolos más utilizados y los servicios
que ofrecen.
T ABLA 1: P ROTOCOLOS MÁS UTILIZADOS DE FAMILIA TCP/IP

Protocolos Servicios
Internet Protocol (IP) Entrega de paquetes

Internet Control Message Protocol


Control de transmisión de mensajes de error
(ICMP)

Address Resolution Protocol (ARP) Mapeo de direcciones IP a direcciones físicas

Reverse Address Resolution Protocol Mapeo de direcciones físicas a direcciones


(RARP) IP

Transmission Control Protocol (TCP) Entrega confiable de mensajes entre nodos

Entrega no confiable de paquetes y sin conexión


User Datagram Protocol (UDP)
entre nodos

File Transfer Protocol (FTP) Transferencia de archivos

Telnet Emulación de terminal

El Protocolo Internet - (Internet Protocol - IP)


Las funciones principales del IP son el direccionamiento de los datagramas de información y
la administración del proceso de fragmentación de dichos datagramas.
El datagrama es la unidad de transferencia que el protocolo IP utiliza. Algunas veces se
denomina Datagrama Internet o Datagrama IP.

Guía de Conceptos – Material Básico pág. 18


Sistemas Distribuidos – Unidad II

Las principales características de este protocolo son:


- Es no orientado a conexión
- Transmisión en unidades denominadas datagramas
- Sin corrección de errores, ni control de congestión
- No garantiza la entrega en secuencia
- La entrega del datagrama en IP no está garantizada porque ésta se puede retrasar
- Encamina los mensajes
- IP no contiene suma de verificación para el contenido de datos del datagrama,
solamente para la información del encabezado

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:

I LUSTRACIÓN 9: C LASES DE DIRECCIONES IP

Guía de Conceptos – Material Básico pág. 19


Sistemas Distribuidos – Unidad II

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

Modelo Estándar de Referencia OSI


OSI (Open Systems Interconnection) es el nombre del modelo de referencia de una
arquitectura de capas para redes de computadoras y sistemas distribuidos que ha propuesto
la Organización Estándar Internacional (ISO) como estándar de interconexión de sistemas
abiertos.
Este modelo surge de la necesidad de ofrecer una estandarización en los elementos que
participan en la solución del problema de comunicación entre equipos de cómputo de
diferentes fabricantes.

Capas del modelo OSI


Está basado en capas y es un modelo de referencia descriptivo. Es decir, es un marco de
referencia para la definición de arquitecturas de interconexión de sistemas de
comunicaciones.

Guía de Conceptos – Material Básico pág. 20


Sistemas Distribuidos – Unidad II
I LUSTRACIÓN 10: C APAS DEL M ODELO OSI

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.

Guía de Conceptos – Material Básico pág. 21


Sistemas Distribuidos – Unidad II

Objetos distribuidos e invocación remota


En una arquitectura de objetos distribuidos, los componentes fundamentales del sistema son
objetos que proporcionan una interfaz a un conjunto de servicios que ellos suministran. Otros
objetos realizan llamadas a estos servicios sin hacer distinción lógica entre un cliente (el que
recibe el servicio) y un servidor (el que provee el servicio).
En una arquitectura de objetos distribuidos, los objetos se distribuyen a través de varias
computadoras en una red y comunicarse a través del middleware.
Este middleware proporciona un conjunto de servicios que permiten la comunicación entre
objetos y el que estos puedan ser añadidos o eliminados del sistema.
Cada objeto representa un componente lógico y los componentes lógicos están
interconectados mediante invocaciones remotas.
Este estilo y el estilo de la arquitectura por capas son los más usados en sistemas distribuidos
de gran escala.
Una aproximación más general al diseño de sistemas distribuidos es eliminar la distinción
entre cliente y servidor y diseñar la arquitectura del sistema como una arquitectura de objetos
distribuidos.

Las ventajas del modelo de objetos distribuidos son:


- Los objetos que proporcionan servicios pueden ejecutarse sobre cualquier nodo de la
red. No será necesario decidir con anticipación dónde se situará la lógica de la
aplicación
- Es una arquitectura muy abierta que permite añadir nuevos recursos muy fácilmente
- Mayor flexibilidad y escalabilidad debido a que se pueden crear diferentes instancias
del sistema proporcionando los mismos servicios por objetos diferentes.
- Es posible reconfigurar el sistema de forma dinámica mediante la migración de objetos
a través de la red.

Método de Invocación Remota - (Remóte


Method Invocation - RMI)
El RMI se basa en la implementación del formulario de petición y de la información del
producto como objetos. Utilizando este método los objetos pueden ser transportados entre el
cliente y el servidor.
Utilizando RMI se obtienen los siguientes beneficios:
- El programador no tiene que manejar flujos de byte
- Se pueden utilizar objetos de cualquier tipo
- Se pueden invocar llamadas a métodos en objetos situados en otra computadora sin
tener que desplazarlos a la computadora que realiza la invocación

Los clientes RMI interaccionan con los objetos remotos por medio de interfaces. Nunca
interaccionan directamente con las clases que implementan estas interfaces.

Guía de Conceptos – Material Básico pág. 22


Sistemas Distribuidos – Unidad II

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.

Guía de Conceptos – Material Básico pág. 23

También podría gustarte