U1 SDistribuidos
U1 SDistribuidos
U1 SDistribuidos
Contenido
INTRODUCCIÓN ................................................................................................................................... 2
CARACTERIZACIÓN DE LOS SISTEMAS DISTRIBUIDOS ............................................................................. 3
A. INTERNET ............................................................................................................................... 5
B. INTRANETS ............................................................................................................................. 6
C. EXTRANET ............................................................................................................................. 7
D. DISPOSITIVOS MÓVILES ........................................................................................................... 9
PARADIGMAS DE LOS SISTEMAS DISTRIBUIDOS ................................................................................... 10
COMPUTACIÓN EN LA NUBE - CLOUD COMPUTING .......................................................................... 10
VIRTUALIZACIÓN – VIRTUAL MACHINE ............................................................................................ 10
GRILLAS COMPUTACIONALES - GRID COMPUTING ........................................................................... 11
MINERÍA DE DATOS - DATA MINING ................................................................................................ 12
APLICACIONES DE MINERÍA DE DATOS ............................................................................................ 12
DATOS MASIVOS - BIG DATA ......................................................................................................... 14
DESAFÍOS DE LOS SISTEMAS DISTRIBUIDOS .................................................................................... 14
1) HETEROGENEIDAD ............................................................................................................ 14
2) EXTENSIBILIDAD ............................................................................................................... 15
3) SEGURIDAD ...................................................................................................................... 16
4) ESCALABILIDAD ................................................................................................................ 17
5) TRATAMIENTO DE FALLOS.................................................................................................. 17
6) EFICIENCIA ....................................................................................................................... 18
7) CONCURRENCIA ............................................................................................................... 18
8) FLEXIBILIDAD .................................................................................................................... 19
9) FIABILIDAD ....................................................................................................................... 19
10) TRANSPARENCIA........................................................................................................... 19
11) IMPREDECIBILIDAD ........................................................................................................ 20
12) CALIDAD DE SERVICIO ................................................................................................... 20
Introducción
En la Unidad I vamos a conocer los conceptos fundamentales, propiedades y características
de los sistemas distribuidos. De esto analizaremos las principales ventajas y desventajas de
los sistemas distribuidos y las aplicaciones más importantes donde podemos utilizar los
sistemas distribuidos.
Finalmente estaremos conociendo los desafíos que tienen los sistemas distribuidos, entre
ellos: Heterogeneidad, Extensibilidad, Seguridad, Escalabilidad, Tratamiento de fallos,
Eficiencia, Concurrencia, Flexibilidad, Fiabilidad, Transparencia, Impredecibilidad, Calidad de
servicio.
Por lo tanto, de manera general, un Sistema Distribuido es aquel en el que los componentes
localizados en computadoras, conectados en red, comunican y coordinan sus acciones
únicamente mediante el paso de mensajes.
Podemos ver que existen muchas definiciones de lo que representa un Sistema Distribuido.
Así tenemos:
En lo que se refiere a las propiedades básicas de los Sistemas Distribuidos, podemos citar:
- Múltiples procesadores con memoria local
- Interconexión (red de comunicación)
- Estado compartido (para coordinación global)
Estas ventajas serán de mayor o menor grado en función a la complejidad de los sistemas y
las mismas serán tratadas posteriormente.
Las desventajas no siempre se harán presentes en todos los entornos de distribución de datos
e información, sino que dependerá de las aplicaciones y de los servicios que sean utilizados
en un ambiente determinado y se considera que las ventajas superan a las desventajas, si
estas últimas son bien administradas.
En cuanto a sus diversas aplicaciones, se dan en muchos entornos:
- Entornos empresariales: redes corporativas (Intranet - Extranet)
- Computación de alto rendimiento y disponibilidad
- Sistemas distribuidos con bases de datos distribuidas
- Aplicaciones multimedias: videoconferencias, televigilancias
- Entretenimiento y ocio: juegos multiusuarios, videos musicales, películas
- Enseñanzas asistidas por computadoras
- Aplicaciones de control en plantas de producción
- Sistemas de transacciones bancarias
- Sistemas de reservas de líneas aéreas
- Correos electrónicos
- Web semánticas
- Servicio de noticias
todos los tipos. De esta manera y para comprender plenamente a los Sistemas Distribuidos,
vamos a trabajar con los siguientes componentes:
A. Internet
B. Intranet
C. Extranet
D. Dispositivos móviles
A. Internet
La Internet es una amplia colección de redes de computadoras de diferentes tipos que se
encuentran interconectadas.
La Figura 1 muestra una conexión típica a la Internet. Programas ejecutándose en las
computadoras conectadas a ella interactúan mediante paso de mensajes, empleando un
medio común de comunicación.
(Coulouris, 2012)
B. Intranets
Una Intranet es una porción de la Internet que es administrada separadamente y que tiene
un límite que puede ser configurado para hacer cumplir políticas de seguridad local.
Está compuesta de varias redes de área local (Local Area Network - LAN) enlazadas
conjuntamente por conexiones troncales (backbones). Una conexión o red troncal es un
enlace de red con una gran capacidad de transmisión, que puede emplear conexiones de
satélite, cables de fibra óptica y otros circuitos de gran ancho de banda.
La configuración de red de una Intranet particular es responsabilidad de la organización que
la administra y puede variar ampliamente, desde una LAN en un único sitio a un conjunto de
LANs conectadas perteneciendo a ramas de la empresa u otra organización en diferentes
países.
En la Figura 2 se puede ver una Intranet que está conectada a la Internet por medio de un
encaminador (router), lo que permite a los usuarios hacer uso de servicios de otro sitio como
el Web o el correo electrónico. Permite también acceder a los servicios que ella proporciona
a los usuarios de otras Intranets. Muchas organizaciones necesitan proteger sus propios
servicios frente al uso no autorizado por parte de usuarios maliciosos de cualquier lugar.
Las empresas también quieren protegerse a sí mismas de que programas nocivos, como los
virus, entren y ataquen las computadoras de la Intranet y posiblemente destrocen datos
valiosos.
El papel del cortafuegos (firewall) es proteger una Intranet impidiendo que entren o salgan
mensajes no autorizados. Un cortafuegos se implementa filtrando los mensajes que entran o
salen, por ejemplo de acuerdo con su origen o destino. Un cortafuegos podría permitir, por
ejemplo, sólo aquellos mensajes relacionados con el correo electrónico o el acceso web para
entrar o salir de la Intranet que protege.
I LUSTRACIÓN 2: U NA I NTRANET TÍPICA
(Coulouris, 2012)
Los principales temas relacionados con el diseño de componentes para su uso en Intranets
son:
Los cortafuegos
•Tienden a impedir el acceso legitio a servicios, cuando se precisa
compartir recursos entre usuarios externos e internos, los cortafuegos
deben ser completados con el uso de mecanismos de seguridad más
refinados.
C. Extranet
Es una red privada corporativa destinada a compartir determinadas operaciones e
informaciones. Al igual que en la Intranet, emplea para su configuración y funcionamiento los
protocolos de la tecnología de la Internet (Internet Protocol - IP), y se ubica privadamente en
un servidor y a la que tienen acceso únicamente las computadoras autorizadas.
La Extranet es un anexo de la Intranet corporativa, que partiendo de un diseño a medida de
las necesidades de la empresa, habilita una parte de sus materiales para ser utilizada por
personas ajenas a la organización.
Esta red puede emplearse para el intercambio de grandes volúmenes de información y datos
como: catálogos, noticias, formularios, listados, documentación comercial, listas de precios,
argumentación comercial, etc.
Una Extranet es una red de computadoras interconectadas que funciona como la Internet y
que por lo tanto, también utiliza los estándares tecnológicos de la Internet.
El acceso a esa red está restringido a un determinado grupo de empresas y organizaciones
independientes que necesitan trabajar de manera coordinada para ahorrar tiempo y dinero
en sus relaciones de negocio.
Características
Archivos y Documentos Procesos y flujos de Proyectos y Aprendizaje
Red de Computadoras
compartidos trabajos más agiles en colaboración
Aplicación y Funcionamiento
La Extranet permite que personas ajenas a la empresa, como clientes o proveedores puedan
acceder a parte de la Intranet de la organización. Es decir, técnicamente se trata de que el
cortafuego permita también el acceso a usuarios externos, lo que complica los aspectos
relativos a la seguridad. Naturalmente, no tienen acceso a todos los directorios sino sólo a
partes concretas, por ejemplo, se les puede permitir acceso a información sobre los productos
y precios. Pensemos que no siempre interesa que todo el mundo disponga de los precios de
los productos.
Desde el punto de vista de clientes y proveedores una Extranet puede permitir a un proveedor
consultar las existencias en stock de su producto accediendo al sistema de información.
La seguridad en el diseño de la Extranet es fundamental para asegurar:
1. Que los datos confidenciales sigan siendo confidenciales pese a viajar por la red
2. Que sólo las personas autorizadas tengan acceso a la información que se comunican
las distintas empresas participantes en la Extranet.
Ventajas y Servicios
Una empresa podrá ir abriendo sus archivos de información a sus proveedores y clientes, con
el ahorro que esto supone: Consultas on-line de pedidos, de niveles de stock, de productos,
de condiciones de compra/venta, introducción de incidencias, comunicaciones, formación on-
line, etc. Es fundamental señalar que una Extranet al igual que el resto de las aplicaciones
relacionadas con la Internet, se puede implantar de manera modular; se puede y debe
organizar información en módulos e ir colocando esos módulos en la Extranet en función de
los intereses de la empresa.
En la siguiente Tabla se puede observar una comparación entre la Internet, la Intranet y la
Extranet. Estas dos últimas se valen de la Internet para poder funcionar de acuerdo a las
necesidades.
T ABLA 1: C OMPARACIÓN ENTRE INTERNET , I NTRANET Y E XTRANET
ACCESO DE
APLICACIÓN DIRIGIDA A EJEMPLOS Y USOS
INFORMACIÓN
Información de la
Todos pueden acceder
empresa
Usuarios en general ala información.
Internet Servicios y productos.
Clientes Proveedores Contacto con cualquier
Formularios de
persona
contacto
Correo Electrónico.
Comunicación interna Consultas de pedidos
enuna organización. yórdenes de trabajo.
Empleados Áreas Permite el intercambio Notas e informes de
Intranet
internas de laempresa de información entre comunicación interna.
empleados para Respaldo de la
mejorarsu desempeño información
Capacitación
Comunicación con
terceros Transacciones
Clientes Proveedores Comunicación bancarias
Extranet Aliados tecnológicos y restringidapara el e-Commerce
comerciales público en general e- Procuremente-
Acceso de personas Learning
autorizadas
(Moirano, 2005)
D. Dispositivos móviles
Un dispositivo móvil se puede definir como un aparato de pequeño tamaño, con algunas
capacidades de procesamiento, con conexión permanente o intermitente a una red, con
memoria limitada, que ha sido diseñado específicamente para una función, pero que puede
llevar a cabo otras funciones más generales.
Según el tipo de acceso que los Según el tipo de servicio que pueden
clientes o usuarios pueden tener: brindar:
La capa de software (VMM) maneja, gestiona y arbitra los cuatro recursos principales de una
computadora como son: - CPU - Memoria - Red - Almacenamiento.
De esta manera reparte dinámicamente dichos recursos entre todas las máquinas virtuales
definidas en la computadora central. Así ofrece la capacidad de poder contar con varias
computadoras virtuales ejecutándose sobre la misma computadora física.
El término virtualización es antiguo; se usa desde 1960 y ha sido aplicado a diferentes
aspectos y ámbitos de la Informática, desde sistemas computacionales completos, hasta
capacidades o componentes individuales. Lo más importante en este tema de virtualización
es la de ocultar detalles técnicos a través de un método conocido como “encapsulación”.
La virtualización crea una interfaz externa a fin de esconder la implementación subyacente
mediante la combinación de recursos en locaciones físicas diferentes, o por medio de la
simplificación del sistema de control. El desarrollo de nuevas plataformas y tecnologías de
virtualización ha hecho que se vuelva a prestar atención a este importante concepto. De modo
similar al uso de términos como "abstracción" y "orientación a objetos”, virtualización es usado
en muchos contextos diferentes.
I LUSTRACIÓN 4: V IRTUALIZACIÓN A NIVEL DE SISTEMA OPERATIVO
La máquina virtual en general es un sistema operativo completo que corre como si estuviera
instalado en una plataforma de hardware autónoma (Figura 5). Básicamente es la simulación
de muchas máquinas virtuales en un computador central. Para que el sistema operativo
"guest' funcione, la simulación debe ser lo suficientemente grande (siempre dependiendo del
tipo de virtualización).
El principal desarrollo se dio en ámbitos científicos a inicio de los años '90, su entrada al
mercado comercial siguiendo la idea de la llamada Utility Computing supone una revolución
que dará mucho que hablar.
El término grid está referido a la infraestructura que permitirá la integración y el uso colectivo
de computadoras de alto rendimiento, redes y bases de datos que son propiedad y están
administrados por diferentes instituciones. Puesto que la colaboración entre instituciones
envuelve un intercambio de datos, o de tiempo de computación, el propósito principal del grid
es facilitar la integración de los recursos computacionales.
Las universidades, los laboratorios de investigación o las empresas se asocian para formar
grid para lo cual utilizan algún tipo de software que implemente este concepto.
Datos
Públicos
Datos de
transaccio
nes
A pesar de que la Internet consta de muchos tipos de redes diferentes, sus diferencias se
encuentran enmascaradas dado que todas las computadoras conectadas a éste utilizan los
protocolos de la Internet para comunicarse una con otra.
Los tipos de datos, como los enteros, pueden representarse de diferente forma en diferentes
clases de hardware por ejemplo, hay dos alternativas para ordenar los bytes en el caso de
los enteros.
Hay que tratar con estas diferencias de representación si se va a intercambiar mensajes entre
programas que se ejecutan en diferente hardware.
Aunque los sistemas operativos de todas las computadoras de la Internet necesitan incluir
una implementación de los protocolos de la Internet, no todas presentan necesariamente la
misma interfaz de programación para estos protocolos.
Lenguajes de programación diferentes emplean representaciones diferentes para caracteres
y estructuras de datos como cadenas de caracteres y registros. Hay que tener en cuenta
estas diferencias si queremos que los programas escritos en diferentes lenguajes de
programación sean capaces de comunicarse entre ellos.
Los programas escritos por diferentes programadores no podrán comunicarse entre sí a
menos que utilicen estándares comunes, por ejemplo, para la comunicación en red y la
representación de datos elementales y estructuras de datos en mensajes. Para que esto
ocurra es necesario concertar y adoptar estándares (como así lo son los protocolos de la
Internet).
La interconexión, especialmente cuando utilizamos la Internet, se da sobre una gran variedad
de elementos hardware y software, por lo cual necesitan de ciertos estándares que permitan
esta comunicación. A fin de solucionar este desafío se crearon los middleware, que son
elementos software que permiten una abstracción de la programación y el enmascaramiento
de la heterogeneidad subyacente sobre las redes. Asimismo, el middleware proporciona
también un modelo computacional uniforme.
2) Extensibilidad
Permite determinar si el sistema puede extenderse y ser reimplementado en diversos
aspectos (añadir y quitar componentes). La integración de componentes escritos por
diferentes programadores es un auténtico reto.
La extensibilidad de los sistemas distribuidos se determina en primer lugar por el grado en el
cual se pueden añadir nuevos servicios de compartición de recursos y ponerlos a disposición
para el uso por una variedad de programas cliente.
No es posible obtener extensibilidad a menos que la especificación y la documentación de
las interfaces software clave de los componentes de un sistema estén disponibles para los
desarrolladores de software. Es decir, que las interfaces clave estén publicadas. Este
procedimiento es similar a una estandarización de las interfaces, aunque a menudo puentea
los procedimientos oficiales de estandarización, que por lo demás suelen ser lentos y
complicados.
Sin embargo, la publicación de interfaces sólo es el punto de arranque de la adición y
extensión de servicios en un sistema distribuido. El desafío para los diseñadores es hacer
frente a la complejidad de los sistemas distribuidos que constan de muchos componentes
diseñados por personas diferentes.
Los diseñadores de los protocolos de Internet presentaron una serie de documentos
denominados «Solicitudes de Comentarios» (Request For Comments), o RFC, cada una de
las cuales se conoce por un número.
Las especificaciones de los protocolos de la Internet fueron publicadas en esta serie a
principios de los años ochenta, seguido por especificaciones de aplicaciones que corrieran
sobre ellos, tales como transferencia de archivos, correo electrónico y telnet a mediados de
los años ochenta. Esta práctica continúa y forma la base de la documentación técnica sobre
la Internet. Esta serie incluye discusiones, así como especificaciones de protocolos. Así la
publicación de los protocolos originales de comunicación de la Internet ha posibilitado que se
construyera una enorme variedad de sistemas y aplicaciones sobre la misma.
Los sistemas diseñados de este modo para dar soporte a la compartición de recursos se
etiquetan como Sistemas Distribuidos Abiertos (Open Distributed Systems) para remarcar el
hecho de ser extensibles. Pueden ser extendidos en el nivel hardware mediante la inclusión
de computadoras a la red y en el nivel software por la introducción de nuevos servicios y la
reimplementación de los antiguos, posibilitando a los programas de aplicación la compartición
de recursos. Otro beneficio más, citado a menudo, de los sistemas abiertos es su
independencia de proveedores concretos.
En resumen:
Los sistemas abiertos se caracterizan porque sus interfaces están publicadas.
✓ Los sistemas distribuidos abiertos se basan en la providencia de un mecanismo de
comunicación uniforme e interfaces públicas para acceder a recursos compartidos.
✓ Los sistemas distribuidos abiertos pueden construirse con hardware y software
heterogéneo, posiblemente de diferentes proveedores. Sin embargo, la conformidad
con el estándar publicado de cada componente debe contrastarse y verificarse
cuidadosamente si se desea que el sistema trabaje correctamente
3) Seguridad
Entre los recursos de información que se ofrecen y se mantienen en los sistemas distribuidos,
muchos tienen un alto valor intrínseco para sus usuarios. Por esto su seguridad es de
considerable importancia.
La seguridad de los recursos de información tiene tres componentes:
4) Escalabilidad
El sistema operativo distribuido debe funcionar igual cuando tiene unas pocas computadoras
como para cuando tiene un conjunto enorme de ellas. Igualmente, debería no ser
determinante el tipo de red utilizada (LAN o WAN) ni las distancias físicas entre los equipos
que la conforman. Aunque esto es lo deseable; en la práctica no funciona.
Así como el tipo de red condiciona tremendamente el rendimiento del sistema, puede ser que
lo que funciona para un tipo de red, para otro requiera un nuevo diseño.
La Internet proporciona un ejemplo de sistema distribuido en el que el número de
computadoras y servicios experimenta un dramático incremento.
El diseño de los sistemas distribuidos escalables presenta los siguientes retos:
- Control del costo de los recursos físicos
- Control de las pérdidas de prestaciones
- Prevención de desbordamiento de recursos software
- Evitación de cuellos de botella de prestaciones
- Algunos recursos compartidos son accedidos con mucha frecuencia.
5) Tratamiento de fallos
Los sistemas computacionales a veces fallan. Cuando aparecen fallos en el hardware o en el
software, los programas pueden producir resultados incorrectos o pudieran parar antes de
haber completado el cálculo pedido.
Los fallos en un sistema distribuido son parciales; es decir, algunos componentes fallan
mientras otros siguen funcionando. Consecuentemente, el tratamiento de fallos es
particularmente difícil y consiste en:
Detección de fallos
Enmascaramiento de fallos
El diseño de técnicas eficaces para mantener réplicas actualizadas de datos que cambian
rápidamente sin una pérdida excesiva de prestaciones es un reto.
Los sistemas distribuidos proporcionan un alto grado de disponibilidad frente a los fallos del
hardware. La disponibilidad de un sistema mide la proporción de tiempo en que está utilizable.
Cuando falla algún componente del sistema distribuido sólo resulta afectado el trabajo
relacionado con el componente defectuoso. Así como cuando un computador falla el usuario
puede desplazarse a otro, también puede iniciarse un proceso de servicio en otra ubicación.
6) Eficiencia
El objetivo de los sistemas distribuidos es obtener sistemas que, estando formados por un
conjunto de computadoras, sean mucho más rápidos que cualquiera de estas computadoras
por separado. En la práctica, esto es discutible si puede lograrse. El costo asociado a la
comunicación de las distintas máquinas que componen el sistema distribuido hace que sus
prestaciones disminuyan de forma considerable.
Para lograr un sistema eficiente hay que descartar la idea de ejecutar un programa en un
único procesador de todo el sistema, y pensar en distribuir las tareas a los procesadores libres
más rápidos en cada momento. La idea de que un procesador vaya a realizar una tarea de
forma rápida es bastante compleja, y depende de muchos aspectos concretos, como la propia
velocidad del procesador, la localidad, los datos, etc.
7) Concurrencia
Tanto los servicios como las aplicaciones proporcionan recursos que pueden compartirse
entre los clientes en un sistema distribuido. Existe por lo tanto una posibilidad de que varios
clientes intenten acceder a un recurso compartido a la vez. Por ejemplo, una estructura de
datos que almacena licitaciones de una subasta puede ser accedida muy frecuentemente
cuando se aproxima el momento de cierre.
El proceso que administra un recurso compartido puede atender las peticiones de cliente una
por una en cada momento, pero esta aproximación limita el ritmo de producción del sistema.
Por esto los servicios y aplicaciones permiten, usualmente, procesar concurrentemente
múltiples peticiones de los clientes. Más concretamente, suponga que cada recurso se
encapsula en un objeto y que las invocaciones se ejecutan en hilos de ejecución concurrentes
(threads). En este caso es posible que varios threads estuvieran ejecutando
8) Flexibilidad
El diseño de sistemas operativos distribuidos debe estar abierto a cambios y actualizaciones
constantes que mejoren su funcionamiento.
Esta necesidad ha generado dos posibles arquitecturas para el núcleo del sistema operativo:
el núcleo monolítico y el micronúcleo.
Las diferencias fundamentales entre estas dos aproximaciones son los servicios que ofrece.
Mientras el núcleo monolítico ofrece todas las funciones básicas del sistema, el micronúcleo
incorpora solamente las fundamentales; como son, control y comunicación entre procesos, y
gestión de la memoria. El resto de servicios se ejecutan en el espacio de usuario en función
de las demandas de los mismos.
9) Fiabilidad
Una de las ventajas claras que ofrece la idea de un sistema distribuido, es que el
funcionamiento del sistema no debe estar ligado a cierto tipo de equipos, sino que cualquier
equipo pueda reemplazar a otro en caso de que uno se estropee o falle.
La forma más evidente de lograr la fiabilidad de todo el sistema es el uso de redundancia, es
decir, la información no debe estar almacenada en una sola máquina, sino en un conjunto de
ellas.
10) Transparencia
Es el desafío para ocultar al usuario y al programador de aplicaciones de la separación de los
componentes en un sistema distribuido.
Se identifican 8 formas de transparencia:
1. De acceso: se accede a recursos locales y remotos de forma idéntica
2. De ubicación: permite acceder a los recursos sin conocer su ubicación
3. De concurrencia: usar un recurso compartido sin interferencia
4. De replicación: permite utilizar varios ejemplares de cada recurso
5. Frente a fallos: permite ocultar los fallos de manera que las aplicaciones puedan
terminar sus tareas
6. De movilidad: permite la reubicación de recursos y clientes sin afectar al sistema
7. De prestaciones: permite reconfigurar el sistema para mejorar las prestaciones
según su carga
8. De escalabilidad: permite al sistema y a las aplicaciones expandirse en tamaño sin
cambiar la estructura del sistema o los algoritmos de aplicación.
11) Impredecibilidad
Los sistemas distribuidos tienen una respuesta impredecible (Por ejemplo: la World Wide
Web). La respuesta depende de la carga total en el sistema, de su organización y de la carga
de la red.
Como todos ellos pueden cambiar con mucha rapidez, el tiempo requerido para responder a
una petición de usuario puede variar drásticamente de una petición a otra.
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 decomunicació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.