U1 SDistribuidos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 23

Sistemas Distribuidos

Caracterización de los sistemas


distribuidos
Guía de Conceptos
Unidad I
Sistemas Distribuidos – Unidad I

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

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


Sistemas Distribuidos – Unidad I

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.

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


Sistemas Distribuidos – Unidad I

Caracterización de los sistemas


distribuidos
Para poder comprender en toda su magnitud lo que representan los Sistemas Distribuidos,
primeramente, debemos definir lo que es la Computación Distribuida.

La Computación Distribuida se refiere a un conjunto de computadoras interconectadas y


formando una red en la que interactúan múltiples agentes autónomos, cada uno con
capacidades de procesamiento individual, que se comunican entre sí y afectan mutuamente
su comportamiento.

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.

El objetivo principal de los sistemas distribuidos es el mejor desempeño, mayor fiabilidad y


disponibilidad, compartición de recursos e información.

Podemos ver que existen muchas definiciones de lo que representa un Sistema Distribuido.

Así tenemos:

- "Sistema en el cual múltiples procesadores autónomos, posiblemente de diferente


tipo, están interconectados por una subred de comunicación para interactuar de una
manera cooperativa en el logro de un objetivo global“ [Lelann, 1981]

- "Sistema en el cual componentes de hardware y software, localizadas en


computadoras en red, se comunican y coordinan sus acciones sólo por paso de
mensajes" [Coulouris, 2012]

- "Conjunto de computadoras independientes que se muestran al usuario como un


sistema único coherente" [Tanenbaum, 2001]

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)

Los Sistemas Distribuidos tienen innumerables ventajas y algunas de ellas son:


- Economía: buena relación costo/rendimiento
- Alto rendimiento: procesamiento paralelo
- Soporte de aplicaciones inherentemente distribuidas
- Capacidad de crecimiento: escalabilidad
- Fiabilidad y disponibilidad: tolerancia a fallos
- Carácter abierto y heterogéneo: basado en estándares de interoperabilidad
- Compartir recursos y datos

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.

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


Sistemas Distribuidos – Unidad I

De igual manera presentan desventajas y, entre ellas se puede mencionar:

- Necesidad de un nuevo tipo de software: más complejo


- Problemas en la red de interconexión: pérdida de mensajes, saturación, latencia
- Inseguridad: falta de confidencialidad
- Fallas independientes
- Comunicación no fiable: pérdida de mensajes
- Comunicación insegura: saturación en el tráfico
- Comunicación costosa

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

Los desafíos que surgen en la construcción de sistemas distribuidos son la heterogeneidad


de sus componentes, su carácter abierto, que permite que se puedan añadir o reemplazar
componentes, la seguridad y la escalabilidad, que es la capacidad para funcionar bien cuando
se incrementa el número de usuarios, el tratamiento de los fallos, la concurrencia de sus
componentes y la transparencia; por mencionar algunos de ellos.
Existen redes de computadoras en cualquier parte. Una de ellas es la Internet, como lo son
las muchas redes de las que se compone. Las redes de teléfonos móviles, las redes
corporativas, las de las empresas, los campus, las casas, redes dentro del coche, todas, tanto
separadas como combinadas, comparten las características esenciales que las hacen
elementos importantes para su estudio bajo el nombre de Sistemas Distribuidos.
Las computadoras que están conectados mediante una red pueden estar separadas
espacialmente por cualquier distancia. Pueden estar en continentes distintos, en el mismo
edificio o en la misma habitación.
Compartir recursos es uno de los motivos principales para construir sistemas distribuidos.
Estos recursos pueden ser administrados por servidores y accedidos por clientes o pueden
ser encapsulados como objetos y accedidos por otros objetos clientes.
El término recurso es un poco abstracto, pero caracteriza bien el rango de cosas que
pueden ser compartidas de forma útil en un sistema de computadoras conectadas en red.
Éste se extiende desde los componentes hardware como los discos y las impresoras hasta
las entidades de software definidas como archivos, bases de datos y objetos de datos de

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


Sistemas Distribuidos – Unidad I

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.

I LUSTRACIÓN 1: E SQUEMA CLÁSICO DE CONEXIÓN A LA INTERNET

(Coulouris, 2012)

El diseño y la construcción de los mecanismos de comunicación con la Internet (los protocolos


Internet) es una realización técnica fundamental, que permite que un programa que se está
ejecutando en cualquier parte dirija mensajes a programas en cualquier otra parte.
La Internet es también un sistema distribuido muy grande. Permite a los usuarios, donde
quiera que estén, hacer uso de servicios como el World Wide Web, el correo electrónico, y la
transferencia de ficheros.
Los proveedores de servicios de Internet (ISP) son empresas que proporcionan enlaces de
conexión a usuarios individuales y pequeñas organizaciones, permitiéndolas el acceso a
servicios desde cualquier parte de la Internet, así como proporcionando servicios como correo
electrónico y páginas web.
En la Internet hay disponibles servicios multimedia, que permiten a los usuarios el acceso a
datos de audio y vídeo, incluyendo música, radio y canales de televisión y mantener
videoconferencias. La capacidad de la Internet para mantener los requisitos especiales de
comunicación de los datos multimedia es actualmente bastante limitada porque no

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


Sistemas Distribuidos – Unidad I

proporciona la infraestructura necesaria para reservar capacidad de la red para flujos


individuales de datos.

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)

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


Sistemas Distribuidos – Unidad I

Los principales temas relacionados con el diseño de componentes para su uso en Intranets
son:

Los servicios de ficheros


•Son necesarios para permitir a los usuarios compartir datos.

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.

El costo de instalación y mantenimiento del software


•Es una cuestión importante. Estos costes pueden ser reducidos utilizando
arquitecturas de sistema como redes de computadoras y clientes ligeros.

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

•Compartir •Proveer y •Intercambiar •Colaborar con


catálogos de acceder a grandes otras compañías
productos con servicios voumenes de en esfuerzos
mayoristas, provistos por datos utilizados. conjuntos, para
distribuidores, o una compañía o desarrollar y
empresas a un grupo de utilizar de
miembros de compañías - manera
sus canales de clientes, conjunta,
comercialización compartiendo programas de
noticias y capacitación.
novedades
asociadas.

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


Sistemas Distribuidos – Unidad I

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)

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


Sistemas Distribuidos – Unidad I

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 su capacidad se pueden clasificar en:

- Dispositivos Móviles de Datos Limitados (teléfonos celulares clásicos)


- Dispositivos Móviles de Datos Básicos (celulares inteligentes)
- Dispositivos Móviles Mejorados (para funciones específicas)

Las características resaltantes de los dispositivos móviles


son:
- Poseen conexión permanente o intermitente a una red
- Son aparatos de dimensiones reducidas
- La mayoría de estos aparatos se pueden transportar en el bolsillo o en un bolso
- Tienen capacidad de operación y de procesamiento propios
- Tienen memoria (RAM, tarjetas MicroSD, flash)
- Normalmente se asocian al uso individual de una persona
- Tienen una alta capacidad de interacción mediante la pantalla o el teclado

Como ejemplos se puede citar a:

- Computadoras portátiles (notebooks, ultrabooks, sleekbooks)


- Lectores de Libros Electrónicos (e-Books Readers)
- Celulares inteligentes (smartphones)
- Tabletas (tablets)
- Dispositivos de mano (handheld) para captura de información
- Asistentes Personales Digitales (Personal Digital Assistant - PDA)
- Cámaras fotográficas con tecnologías de Wi-Fi y GPS
- Pulseras y Relojes inteligentes

La facilidad de transporte de muchos de estos dispositivos, junto con su capacidad para


conectarse adecuadamente a redes en diferentes lugares, hace posible la computación móvil.

La computación ubicua y móvil trabaja de manera conjunta, puesto que un usuario


desplazándose de un lugar a otro, puede utilizar las computadoras que va encontrando en su
camino.

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


Sistemas Distribuidos – Unidad I

Paradigmas de los sistemas


distribuidos
Computación en la Nube - Cloud Computing
Consistente en el aprovechamiento al máximo de lo que nos puede ofrecer la Internet.

Según el tipo de acceso que los Según el tipo de servicio que pueden
clientes o usuarios pueden tener: brindar:

•Privadas •Plataforma como servicio (Platform as


•Públicas a Service - PasS)
•Híbridas •Infraestructura como Servicio
(Insfraestructure as a Service - lasS)
•Software como Servicio (Software as
a Service - SaaS)

I LUSTRACIÓN 3: E SQUEMA DE C LOUD C OMPUTING

Virtualización – Virtual Machine


El término está referido a la abstracción de los recursos de una computadora, llamada
Hypervisor o VMM (Virtual Machine Monitor) que crea una capa de la abstracción entre el
hardware de la máquina física (host) y el sistema operativo de la máquina virtual (guest),
siendo un medio para crear una versión virtual de un dispositivo o recurso, como un servidor,
un dispositivo de almacenamiento, una red o incluso un sistema operativo, donde se divide el
recurso en uno o más entornos de ejecución.

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


Sistemas Distribuidos – Unidad I

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

Grillas computacionales - Grid Computing


La Computación Grilla o Computación en Malla (Grid Computing) es una tecnología
innovadora que permite utilizar de forma coordinada todo tipo de recursos (entre ellos
cómputo, almacenamiento y aplicaciones específicas) que no están sujetos a un control
centralizado.
Bajo esta perspectiva, se entiende como una nueva forma de computación distribuida, en la
cual los recursos pueden ser heterogéneos (diferentes arquitecturas, supercomputadoras,
grupos de computadoras) y se encuentran conectados mediante redes de área extensa (por
ejemplo, la Internet).

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


Sistemas Distribuidos – Unidad I

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.

Minería de Datos - Data Mining


La minería de datos es el proceso de extraer información comprensible, válida y previamente
desconocida, a partir de grandes volúmenes de datos, y dedicarla al soporte de la toma de
decisiones de negocio" (Langley, 1995).
La información extraída puede ser empleada para construir un modelo de predicción o
clasificación, identificar relaciones entre registros de una base de datos o proporcionar una
idea resumida del contenido de una base de datos.
La minería de datos consiste en un número de operaciones cada una de las cuales está
soportada por una variedad de técnicas matemáticas, como redes neuronales artificiales,
algoritmos de segmentación conceptual, análisis de asociaciones o sistemas de inducción de
reglas.
En muchos dominios de aplicación, como marketing analítico, análisis financiero, detección
de fraude, etc., la extracción de la información requiere el uso conjunto de distintas
operaciones y técnicas de minería de datos. Sin embargo, lo que se obtiene como resultado
del Data Mining no es nuevo, por años los estadísticos, con sus limitaciones, lo han realizado
manualmente.
Algunos ejemplos en donde la minería de datos aporta grandes beneficios, por ejemplo:
✓ En el análisis de riesgo
✓ En marketing directo
✓ En el sector de la distribución, es posible determinar perfiles de consumidores, el
efecto de períodos de promoción
✓ En sectores de fuerte competencia, la minería de datos puede ayudar a la empresa a
identificar los clientes con mayor propensión de abandonar la empresa por un
competidor.

Aplicaciones de minería de datos


De un tiempo a esta parte, la minería de datos está siendo aplicada a una gran variedad de
dominios, desde gestión de inversiones hasta astronomía. Su importancia y potencial de
aplicación ha sido particularmente reconocido en sectores como por ejemplo:
- Telecomunicaciones y compañías de tarjetas de crédito, las que más utilizan Data
Mining para poder detectar el uso fraudulento de los servicios que ofrece
- Medicina, para determinar la efectividad de un procedimiento quirúrgico,
evaluaciones médicas o medicaciones

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


Sistemas Distribuidos – Unidad I

- Instituciones Financieras, para evaluar las características del mercado y de la


industria como también para evaluar el rendimiento de una compañía en especial o
de las acciones en la bolsa
- Vendedores, para determinar los productos que deben almacenar en determinados
almacenes, como debe ser ubicado dentro del almacén, o también para evaluar la
efectividad de una promoción
- Firmas farmacéuticas, para evaluar grandes bases de datos con elementos químicos
y materiales genéticos con el fin de descubrir sustancias que puedan ser de utilidad
para el desarrollo de nuevas medicinas para el tratamiento de enfermedades

En la Ilustración 5. Entornos de aplicación de una Minería de Datos. se puede ver otros


ejemplos de entornos de aplicación y ámbitos de decisión sobre los cuales la minería de datos
puede aportar grandes beneficios.
La minería de datos busca hacer relevantes patrones ocultos en los datos cuyo
descubrimiento pueda soportar la toma de decisiones.

I LUSTRACIÓN 5: E NTORNOS DE APLICACIÓN DE UNA MINERÍA DE D ATOS .

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


Sistemas Distribuidos – Unidad I

Datos Masivos - Big Data


Es el proceso de recolección de grandes cantidades de datos y su inmediato análisis para
encontrar información oculta, patrones recurrentes, nuevas correlaciones, etc.; el conjunto de
datos es tan grande y complejo que los medios tradicionales de procesamiento son ineficaces.
I LUSTRACIÓN 6: F UENTES DE RECURSOS DE B IG D ATA

Datos
Públicos

Redes Big Datos de


Sociales Empresas
Data

Datos de
transaccio
nes

Desafíos de los sistemas distribuidos


1) Heterogeneidad
La Internet permite que los usuarios accedan a servicios y ejecuten aplicaciones sobre un
conjunto heterogéneo de redes y computadoras. Esta heterogeneidad (es decir, variedad y
diferencia) se aplica a todos los siguientes elementos:
- Redes
- Hardware de computadoras
- Sistemas operativos
- Lenguajes de programación
- Implementaciones de diferentes desarrolladores

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.

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


Sistemas Distribuidos – Unidad I

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

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


Sistemas Distribuidos – Unidad I

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:

• Protección • Protección • Protección


contra el contra la contra
descubrimiento alteración o interferencia
por individuos corrupción. con los
no autorizados. procedimientos
de acceso a los
recursos.

A pesar de que la Internet permite a un programa de una computadora comunicarse con un


programa en otra computadora sin mencionar su ubicación, el permitir un acceso libre a todos
los recursos de una Intranet lleva asociados riesgos contra la seguridad. Aunque se pueda
emplear un cortafuego para disponer una barrera alrededor de una Intranet, restringiendo el
tráfico que pudiera entrar y salir, no pretende asegurar el uso apropiado de los recursos por
usuarios del interior de la Intranet, o del uso apropiado de los recursos en la Internet, no
protegidos por el cortafuegos.
En un sistema distribuido, los clientes envían peticiones de acceso a datos administrados por
servidores, lo que trae consigo enviar información en los mensajes por la red. Por ejemplo:
1. Un médico puede solicitar acceso a los datos hospitalarios de un paciente o enviar
modificaciones sobre ellos.
2. En comercio electrónico y banca, los usuarios envían su número de tarjeta de crédito
a través de la Internet.

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


Sistemas Distribuidos – Unidad I

En ambos casos, el reto se encuentra en enviar información sensible en un mensaje, por la


red, de forma segura. Pero la seguridad no sólo es cuestión de ocultar los contenidos de los
mensajes, también consiste en conocer con certeza la identidad del usuario u otro agente en
nombre del cual se envía el mensaje. En el primer ejemplo, el servidor necesita conocer que
el usuario es realmente un médico y en el segundo, el usuario necesita estar seguro de la
identidad de la tienda o del banco con el que está tratando. El segundo reto consiste en
identificar un usuario remoto u otro agente correctamente. Ambos desafíos pueden lograrse
a través de técnicas de encriptación desarrolladas al efecto.

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

•Se utilizan comprobaciones para detectar los fallos.

Enmascaramiento de fallos

•Algunos fallos que han sido detectados pueden ocultarse o atenuarse.

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


Sistemas Distribuidos – Unidad I

Dos ejemplos de ocultación de fallos son:


1. Los mensajes pueden retransmitirse cuando falla la recepción
2. Los archivos con datos pueden escribirse en una pareja de discos de forma que si uno
está deteriorado el otro seguramente está en buen estado

Simplemente eliminar un mensaje corrupto es un ejemplo de atenuar un fallo (pudiera


retransmitirse de nuevo). Las técnicas indicadas para ocultar los fallos no tienen garantía de
funcionamiento en las peores situaciones; por ejemplo, los datos en el segundo disco
pudieran también estar corrompidos, o el mensaje bien pudiera no llegar a tiempo no importa
cuántas veces se retransmita.
- Tolerancia de fallos: en la Internet se presentan muchos fallos y no es muy
conveniente ocultarlos, es mejor tolerarlos y continuar
- Recuperación frente a fallos: tras un fallo se deberá tener la capacidad de volver a
un estado anterior
- Redundancia: se puede usar para tolerar ciertos 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

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


Sistemas Distribuidos – Unidad I

concurrentemente el contenido de un objeto, en cuyo caso las operaciones en el objeto


pueden entrar en conflicto entre sí y producir resultados inconsistentes.
La moraleja de esta historia es que cada objeto que represente un recurso compartido en un
sistema distribuido debe responsabilizarse de garantizar que opera correctamente en un
entorno concurrente. De este modo cualquier programador que recoge una implementación
de un objeto que no está concebido para su aplicación en un entorno distribuido deberá
realizarlas modificaciones necesarias para que sea seguro su uso en un entorno concurrente.
Para que un objeto sea seguro en un entorno concurrente, sus operaciones deben
sincronizarse de forma que sus datos permanezcan consistentes. Esto puede lograrse
mediante el empleo de técnicas conocidas como los semáforos, que se usan en la mayoría
de los sistemas operativos.

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.

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


Sistemas Distribuidos – Unidad I

Las dos más importantes son la transparencia de acceso y la transparencia de ubicación; su


presencia o ausencia afecta principalmente a la utilización de
La transparencia frente a fallos puede ilustrarse también en el contexto del correo electrónico,
el cual eventualmente se envía, incluso aunque los servidores o los enlaces de
comunicaciones fallen. Los fallos se enmascaran intentando retransmitir los mensajes hasta
que se envían satisfactoriamente, incluso si lleva varios días. El middleware convierte
generalmente los fallos de redes y procesos en excepciones del nivel de programación.
Para ilustrar la transparencia a la movilidad, considere el caso de los teléfonos móviles.
Los sistemas distribuidos están por todas partes. La Internet permite que los usuarios de todo
el mundo accedan a sus servicios donde quiera que estén situados. Cada organización
administra una Intranet, que provee servicios locales y servicios de la Internet a los usuarios
locales y habitualmente proporciona servicios a otros usuarios de la Internet. Es posible
construir pequeños sistemas distribuidos con computadoras portátiles y otros dispositivos
computacionales pequeños conectados a una red inalámbrica.
La compartición de recursos es el principal factor que motiva la construcción de sistemas
distribuidos. Recursos como impresoras, archivos, páginas web o registros de bases de datos
se administran mediante servidores del tipo apropiado. Por ejemplo, los servidores web
administran páginas y otros recursos web. Los recursos son accedidos por clientes, por
ejemplo, los clientes de los servidores web se llaman normalmente visualizadores o
navegadores web.

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.

12) Calidad de servicio


"Conjunto de atributos relacionados con el rendimiento de la conexión”. (Forouzan, 2002).
Para cada conexión, el usuario puede solicitar un atributo concreto. Cada clase de servicio
está asociada con un conjunto de atributos. Los atributos se pueden clasificar en atributos
que están relacionados con el usuario (velocidad con la que se quiere enviar la información)
y en atributos relacionados con las características de la red.
Una vez que los usuarios disponen de la funcionalidad que requieren de un servicio, como el
servicio de archivo en un sistema distribuido, podemos pasar a preguntar acerca de la calidad
del servicio prestado. Las principales propiedades funcionales de los sistemas que afectan a
la calidad del servicio experimentada por los clientes y usuarios son la fiabilidad, seguridad y
rendimiento.
La adaptabilidad para satisfacer las cambiantes configuraciones del sistema y la
disponibilidad de recursos ha sido reconocida como un aspecto adicional de importación de
la calidad del servicio.
El aspecto del funcionamiento de la Calidad del Servicio (Quality of Service - QoS) se definió
originalmente en términos de capacidad de respuesta y el rendimiento computacional, pero
se ha redefinido en términos de capacidad para cumplir con garantía de puntualidad.
El logro de la QoS depende de la disponibilidad de los recursos informáticos y de red
necesarios en los momentos adecuados. Esto implica un requisito para que el sistema

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


Sistemas Distribuidos – Unidad I

proporcione los recursos informáticos y de comunicación tienen garantías suficientes para


permitir que las aplicaciones para completar cada tarea en el tiempo (por ejemplo, la tarea de
mostrar un cuadro de video).

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


Sistemas Distribuidos – Unidad I

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.

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

También podría gustarte