Está en la página 1de 37

Módulo II

Redes e interconexión de redes


Contenido 2

Modelos de Sistemas – Interconexión de Redes – Objetos Distribuidos e


Invocación Remota ............................................................................................. 4

Introducción .................................................................................................... 4

Desarrollo ....................................................................................................... 5

Arquitectura de sistemas .................................................................................... 5

Estructura de capas de software .................................................................... 5

Middleware ..................................................................................................... 6

Modelos arquitectónicos ............................................................................... 12

Modelos de Sistemas ................................................................................... 14

Punto a punto - (Peer to Peer – P2P) ....................................................... 14

Cliente/Servidor ......................................................................................... 16

Principales características positivas .......................................................... 20

Principales características negativas ........................................................ 20

1.4.3. Tipos de Servidores ........................................................................ 21

Otros tipos de arquitecturas .......................................................................... 22

Arquitectura Cliente-Cola-Cliente .............................................................. 22

Arquitectura Multicapas ............................................................................. 22

Modelos específicos de arquitecturas .............................................................. 23

Modelo de Interacción .................................................................................. 23

Modelo de Fallos .......................................................................................... 24

Modelo de Seguridad .................................................................................... 24

Interconexión de redes ..................................................................................... 25

Tipos de redes más utilizados ...................................................................... 25

Sistemas Distribuidos
Prof. Rubén Báez
Componentes redes y de interconexión de redes ......................................... 26
3
Protocolos ..................................................................................................... 27

Familia de protocolos TCP/IP .................................................................... 27

El Protocolo Internet - (Internet Protocol - IP) ............................................... 28

Direccionamiento IP ...................................................................................... 29

Protocolo IP versión 6 ................................................................................... 30

Modelo Estándar de Referencia OSI ............................................................ 31

Capas del modelo OSI .................................................................................. 31

Capa 1 – Nivel Físico ................................................................................ 32

Capa 2 – Nivel de Enlace de Datos .......................................................... 32

Capa 3 – Nivel de Red .............................................................................. 33

Capa 4 – Nivel de Transporte ................................................................... 33

Capa 5 – Nivel de Sesión .......................................................................... 34

Capa 6 – Nivel de Presentación ................................................................ 34

Capa 7 – Nivel de Aplicación .................................................................... 34

Objetos distribuidos e invocación remota ......................................................... 35

Método de Invocación Remota - (Remote Method Invocation - RMI) ........ 36

Bibliografía .................................................................................................... 37

Sistemas Distribuidos
Prof. Rubén Báez
Modelos de Sistemas – Interconexión de 4

Redes – Objetos Distribuidos e


Invocación Remota

Introducción

Los Sistemas Distribuidos son bastante complejos en cuanto a su


funcionamiento debido a que están basados en la interconexión de redes de
computadoras. En estas redes pueden surgir innumerables problemas de los
componentes de interconexión, problemas de seguridad, etc.

El correcto diseño de un sistema distribuido basado en modelos y estándares y


su buena administración garantizan en gran parte su buen funcionamiento.

El diseño de los sistemas distribuidos ha ido evolucionando con el tiempo. Tal es


así que se ha llegado a tratar a las redes como objetos que se encuentran

Sistemas Distribuidos
Prof. Rubén Báez
interconectados entre sí y fueron dotados de algoritmos inteligentes para
5
mejorar su rendimiento.

Desarrollo

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.

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.

Sistemas Distribuidos
Prof. Rubén Báez
6
Aplicación de servicios

Middleware

Sistema Operativo

PLATAFORMA
Computadora y Hardware
de red

Figura1. Capas de servicio de software y hardware

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.

Sistemas Distribuidos
Prof. Rubén Báez
7

Figura 2. El papel del middleware en la arquitectura Cliente/Servidor (Stallings, 2005)

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

Sistemas Distribuidos
Prof. Rubén Báez
Las aplicaciones middleware realizan las siguientes funciones:
8
► Ocultar la distribución: el middleware maneja el hecho de que una
aplicación esté compuesta de muchas partes interconectadas
ejecutándose 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

Sistemas Distribuidos
Prof. Rubén Báez
► Mensajería: soporta direccionamiento y transporte de correos, incluyendo
9
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

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 de 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

Sistemas Distribuidos
Prof. Rubén Báez
distribuir los procesos, por un sistema de monitorización, el cual controla la carga
10
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:

Sistemas Distribuidos
Prof. Rubén Báez
Migración de los Sistemas Host. Reingeniería de Aplicaciones
11
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 distribuídos

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í.

Sistemas Distribuidos
Prof. Rubén Báez
Arquitectura cliente/servidor
12
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.

Calidad de
Productividad Servicio

Capacidad de Prestaciones Balance de


Respuesta Carga
Computacional

Figura 3. Aspectos de diseño de una arquitectura distribuida

Entre estos requisitos de diseño tenemos cuatro aspectos más importantes junto
con sus características:

Sistemas Distribuidos
Prof. Rubén Báez
Productividad (Throughput)
13

► 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.
► En algunos casos, el balance de cargas puede implicar mover el trabajo
parcialmente completado como carga a una computadora alternativa.

Sistemas Distribuidos
Prof. Rubén Báez
Calidad de Servicio (Quality of Service – QoS)
14

► 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.

Sistemas Distribuidos
Prof. Rubén Báez
15

Figura 4. Red Punto a Punto

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

Sistemas Distribuidos
Prof. Rubén Báez
Cliente/Servidor 16

Internet

LAN/WAN
Clientes Servidor

Figura 5. Modelo Cliente/Servidor

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 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:

Sistemas Distribuidos
Prof. Rubén Báez
► Mantener y procesar todo el diálogo con el usuario
17
► 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.

El empleo de la arquitectura Cliente/Servidor se basa en las siguientes


características:

► Protocolos asimétricos: hay una relación muchos a uno entre los


clientes y un servidor. Los clientes siempre inician un diálogo mediante la

Sistemas Distribuidos
Prof. Rubén Báez
solicitud de un servicio. Los servidores esperan pasivamente por las
18
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

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

Sistemas Distribuidos
Prof. Rubén Báez
Otra ventaja de la modularidad es que una aplicación Cliente/Servidor puede
19
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.

Sistemas Distribuidos
Prof. Rubén Báez
Principales características positivas 20

► Permite tener una centralización del control: los accesos, recursos y


la integridad de los datos son controlados por el servidor de tal manera
que un programa cliente defectuoso o no autorizado no pueda dañar el
sistema. Esta centralización hace más sencilla la tarea de poner al día
datos u otros recursos (mejor que en las redes P2P)
► Ofrece alta escalabilidad: permite aumentar la capacidad de clientes y
servidores por separado. Cualquiera de sus elementos puede ser
aumentado (o mejorado) en cualquier momento, o pueden añadirse
nuevos nodos a la red (clientes y/o servidores)
► Soporta fácil mantenimiento: como las funciones y responsabilidades
están distribuidas entre varios computadoras independientes; se puede
reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras
que los clientes que lo acceden no se ven afectados por ese cambio (o se
afectarán mínimamente). Esta independencia de los cambios también se
conoce como encapsulación.
► Existencia de tecnologías maduras, suficientemente desarrolladas,
diseñadas para el paradigma de Cliente/Servidor que nos aseguran la
seguridad en las transacciones, la amigabilidad del interfaz, y la facilidad
de empleo.

Principales características negativas

► El congestionamiento de la red ha sido siempre el principal problema


en el paradigma de Cliente/Servidor. Si una gran cantidad de clientes
envían peticiones simultáneamente hacia el mismo servidor, puede ser
que cause muchos problemas para éste (a mayor número de clientes, más
problemas para el servidor). Mientras que en las redes P2P como cada
nodo en la red hace también de servidor, cuantos más nodos hay, mejor
es el ancho de banda que se tiene

Sistemas Distribuidos
Prof. Rubén Báez
► El paradigma de Cliente/Servidor clásico no tiene la robustez de una 21

red P2P. Cuando un servidor está caído, las peticiones de los clientes no
pueden ser satisfechas. En la mayor parte de redes P2P, los recursos
están generalmente distribuidos en varios nodos de la red. Aunque
algunos salgan o abandonen la descarga; otros pueden todavía acabar
de descargar consiguiendo datos del resto de los nodos en la red.
► El software y el hardware de un servidor son generalmente muy
determinantes. Un hardware regular de una computadora personal
puede no poder servir a cierta cantidad de clientes. Normalmente se
necesita software y hardware específico, sobre todo en el lado del
servidor, para satisfacer el trabajo. Por supuesto, esto 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.

1.4.3. Tipos de Servidores

Los principales tipos de servidores encontrados en la arquitectura


Cliente/Servidor son:

► Servidores de archivos: los clientes hacen solicitudes de archivos al


servidor y esto representa una forma de compartir archivos en una red
(repositorios de documentos, imágenes, programas, etc.)
► Servidores de bases de datos: las aplicaciones del cliente mandan
solicitudes SQL al servidor. El servidor devuelve el resultado de la
consulta
► Servidores de transacciones: el cliente invoca procedimientos remotos
o transacciones (conjunto de instrucciones SQL) sobre la base de datos
► Servidores groupware: intercambio de información semiestructurada:
texto, imágenes, u otros

Sistemas Distribuidos
Prof. Rubén Báez
► Servidores de aplicaciones web: los clientes solicitan información Web
22
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:

► Clientes: que interactúan 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.

Sistemas Distribuidos
Prof. Rubén Báez
Modelos específicos de arquitecturas 23

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

Sistemas Distribuidos
Prof. Rubén Báez
► Tasa de deriva de reloj
24
► 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.

Sistemas Distribuidos
Prof. Rubén Báez
La seguridad en un sistema distribuido se basa en la seguridad de los procesos
25
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 Network - WAN)
Una red WAN permite intercomunicar computadoras en un área
geográfica muy extensa. Abarcan un país o un continente
► 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

Sistemas Distribuidos
Prof. Rubén Báez
También pueden utilizarse en una oficina como una red inalámbrica de
26
á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

Sistemas Distribuidos
Prof. Rubén Báez
Tienen varios puertos disponibles, cada uno conectado a un nodo único a
27
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
► 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.

Sistemas Distribuidos
Prof. Rubén Báez
Protocolos Servicios
28

Internet Protocol (IP) Entrega de paquetes

Internet Control Message Protocol (ICMP) Control de transmisión de


mensajes de error

Address Resolution Protocol (ARP) Mapeo de direcciones IP a


direcciones físicas

Reverse Address Resolution Protocol Mapeo de direcciones físicas a


(RARP) direcciones IP

Transmission Control Protocol (TCP) Entrega confiable de mensajes


entre nodos

User Datagram Protocol (UDP) Entrega no confiable de paquetes


y sin conexión entre nodos

File Transfer Protocol (FTP) Transferencia de archivos

Telnet Emulación de terminal

Tabla 1. Protocolos más utilizados de la familia TCP/IP

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.

Sistemas Distribuidos
Prof. Rubén Báez
Las principales características de este protocolo son:
29
► 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:

Figura 6. Clases de direcciones IP

Sistemas Distribuidos
Prof. Rubén Báez
La clase se identifica mediante las primeras secuencias de bits, a partir de los 3
30
primeros bits (de orden más alto).

► Las direcciones de Clase A corresponden a grandes redes que tiene


muchos equipos conectados. Las direcciones en decimal son 1.0.0.0
hasta la 127.255.255.255 (hasta 1.6 millones de hosts por red).
► Las direcciones de Clase B sirven se utilizan para redes de tamaño
intermedio, y el rango de direcciones varía desde el 128.0.0.0 hasta el
191.255.255.255 Esto permite tener 16.320 redes con 65.024 host en
cada una.
► Las direcciones de Clase C tienen sólo utilizan 8 bits para la dirección
local o de anfitrión (host) y 21 bits para red. Las direcciones de esta clase
están comprendidas entre 192.0.0.0 y 223.255.255.255, lo que permite
cerca de 2 millones de redes con 254 hosts cada una.
► Por último, las direcciones de Clase D, que son usadas con fines de
multidifusión (multicast). Cuando se quiere hacer una difusión general a
más de un dispositivo debe usarse esta clase de dirección. El rango es
desde 224.0.0.0 hasta 239.255.255.255.
► Aunque se han definido direcciones de Clase E, aún no son utilizadas. El
rango varía desde 240.0.0.0 hasta el 247.255.255.255.

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.

Sistemas Distribuidos
Prof. Rubén Báez
Las ventajas que ofrece la IP versión 6 sobre la versión 4 son:
31
► 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.

Sistemas Distribuidos
Prof. Rubén Báez
Capa 7 32
Nivel de Aplicación

Capa 6
Nivel de
Presentación

Capa 5
Nivel de Sesión

Capa 4
Nivel de Transporte

Capa 3
Nivel de Red

Capa 2
Nivel de Enlace

Capa 1
Nivel Físico

Figura 7. Modelo de referencia OSI

Capa 1 – Nivel Físico

Esta capa se encarga de las conexiones físicas de la computadora hacia la red,


tanto en el medio físico (cableados: cable coaxial, cable de par trenzado, fibra
óptica y otros tipos de cables; no cableados: radio, infrarrojos, microondas, láser
y otras redes inalámbricas); características del medio (por ejemplo: tipo de cable
o calidad del mismo; tipo de conectores normalizados o en su caso tipo de
antena; etc.) y la forma en la que se transmite la información (codificación de
señal, niveles de tensión/intensidad de corriente eléctrica, modulación, tasa
binaria, etc.).

Capa 2 – Nivel de Enlace de Datos

Esta capa es responsable para garantizar la transferencia fiable de información


a través de un circuito de transmisión de datos. Este nivel, también conocido
como data link level, es el segundo nivel del modelo OSI. Recibe peticiones del
nivel de red y utiliza los servicios del nivel físico.

Sistemas Distribuidos
Prof. Rubén Báez
El objetivo de este nivel es garantizar que la información fluya entre dos
33
máquinas que estén conectadas directamente (servicio orientado a conexión) y
que esta información esté libre de errores.

Capa 3 – Nivel de Red

El objetivo principal de la capa de red es hacer que los datos lleguen desde el
origen al destino, aun cuando entre ambos no exista una conexión directa entre
ambos. Los dispositivos que facilitan tal tarea se denominan encaminadores o
ruteadores (routers) y, en ocasiones también se les conoce como enrutadores.

Además, la capa de red lleva el control de la congestión de red, que es el


fenómeno que se produce cuando una saturación de un nodo tira abajo toda la
red (similar a un atasco en un cruce importante en una ciudad grande). La unidad
de información de la capa 3 se conoce como paquete.

Los routers trabajan en esta capa, aunque también pueden funcionar como
switch de nivel 2 en algunos casos, dependiendo de la función que se le asigne.
Asimismo, los firewalls actúan sobre esta capa principalmente, para descartar
direcciones de máquinas.

En este nivel se realiza el direccionamiento lógico y la determinación de la ruta


de los datos hasta su receptor final.

Capa 4 – Nivel de Transporte

Esta capa del modelo OSI es la que se encarga de la transferencia libre de


errores de los datos entre el emisor y el receptor, aunque no estén directamente
conectados.

Asimismo, también se encarga de mantener el flujo de la red. Es la base de toda


la jerarquía de protocolo. La tarea de esta capa es proporcionar un transporte de
datos confiable y económico de la máquina de origen a la máquina destino,

Sistemas Distribuidos
Prof. Rubén Báez
independientemente de la red de redes física en uno. Sin la capa transporte, el
34
concepto total de los protocolos en capas tendría poco sentido.

Capa 5 – Nivel de Sesión

Esta capa corresponde al quinto nivel del modelo OSI y proporciona los
mecanismos para controlar el diálogo entre las aplicaciones de los sistemas
finales. En la mayoría de casos, los servicios de la capa de sesión son
parcialmente, o incluso, totalmente prescindibles.

Capa 6 – Nivel de Presentación

El objetivo de esta capa es encargarse de la representación de la información,


de manera que aunque distintos equipos puedan tener diferentes
representaciones internas de caracteres (ASCII, Unicode, EBCDIC), números
(little-endian tipo Intel, big-endian tipo Motorola), sonido o imágenes, los datos
lleguen de manera reconocible.

Capa 7 – Nivel de Aplicación

Esta capa ofrece a las aplicaciones (de usuario o no) la posibilidad de acceder a
los servicios de las demás capas y define los protocolos que utilizan las
aplicaciones para intercambiar datos como correo electrónico (POP y SMTP),
gestores de bases de datos y servidor de ficheros (FTP). Existen infinidad de
protocolos como aplicaciones distintas y puesto que continuamente se
desarrollan nuevas aplicaciones el número de protocolos crece sin parar.

Sistemas Distribuidos
Prof. Rubén Báez
Objetos distribuidos e invocación remota 35

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

Sistemas Distribuidos
Prof. Rubén Báez
► Mayor flexibilidad y escalabilidad debido a que se pueden crear diferentes
36
instancias del sistema proporcioando 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 - (Remote 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.

Sistemas Distribuidos
Prof. Rubén Báez
Bibliografía 37

► 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.

Sistemas Distribuidos
Prof. Rubén Báez

También podría gustarte