Está en la página 1de 40

Módulo I

Caracterización de los sistemas


distribuidos
Contenido 2

Fundamentos de los Sistemas Distribuidos ....................................................... 4

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

Desarrollo ........................................................................................................... 6

A. Internet ......................................................................................................... 10

B. Intranets ....................................................................................................... 11

C. Extranets...................................................................................................... 14

Aplicación y Funcionamiento ........................................................................ 15

Ventajas y Servicios ..................................................................................... 16

D. Dispositivos móviles .................................................................................... 17

Paradigmas de los sistemas distribuidos ......................................................... 19

Computación en las Nubes - Cloud Computing ............................................ 19

Virtualización – Virtual Machine .................................................................... 20

Grillas computacionales – Grid Computing ................................................... 22

Minería de Datos - Data Mining .................................................................... 23

Aplicaciones de minería de datos ................................................................. 24

Datos Masivos - Big Data ............................................................................. 25

Desafíos de los sistemas distribuidos .............................................................. 26

1. Heterogeneidad ........................................................................................ 26

2. Extensibilidad............................................................................................ 28

3. Seguridad ................................................................................................. 30

4. Escalabilidad............................................................................................. 31

5. Tratamiento de fallos ................................................................................ 32

6. Eficiencia .................................................................................................. 34

Sistemas Distribuidos
Prof. Rubén Báez
7. Concurrencia ............................................................................................ 34
3
8. Flexibilidad ................................................................................................ 35

9. Fiabilidad .................................................................................................. 36

10. Transparencia ......................................................................................... 36

11. Impredecibilidad ...................................................................................... 38

12. Calidad de servicio ................................................................................. 38

Bibliografía .................................................................................................... 40

Sistemas Distribuidos
Prof. Rubén Báez
Fundamentos de los Sistemas 4

Distribuidos

Introducción

Nos encontramos en la actualidad en una sociedad en donde se suceden


constantemente muchos cambios, recibiendo un verdadero “bombardeo” de
informaciones y que tenemos que procesarlas.

El acceso a esta información es permanente y se da mediante teléfonos


inteligentes o smartphones, tabletas, laptops, computadoras convencionales o
bien, cualquier otro dispositivo que tenga acceso a la Internet.

Estamos en lo que se conoce como la Sociedad de la Información y del


Conocimiento, en donde la comunicación es inmediata, casi en tiempo real, por
llamarlo de alguna manera, y en donde, nosotros los cibernautas, nos
encontramos recorriendo el ciberespacio.

Millones de personas utilizan los sistemas distribuidos para realizar


transacciones bancarias, comunicación telefónica, reservaciones de vuelos,
correo electrónico, operaciones de compra-venta, cursos on-line, trabajo a
distancia, etc.

En la red globalizada se puede encontrar de todo y a todos y es allí donde se


suceden los intercambios de información a través de miles de millones de
máquinas interconectadas en un mundo ubicuo a través de sistemas distribuidos
en todo el planeta.

Es que el fenómeno de la Globalización – Internacionalización – Mundialización


(utilizados como sinónimos) ha impactado hasta en la misma educación a través

Sistemas Distribuidos
Prof. Rubén Báez
del uso de las Tecnologías de la Información y de la Comunicación (TIC) dando
5
lugar a nuevos paradigmas.

Permanentemente estamos conectados a las redes sociales como Facebook,


Twitter, Instagram, por citar algunas y sin dejar de mencionar al mismo Whatsapp
que ha venido a revolucionar el relacionamiento entre las personas.

Se puede decir que existe un quiebre de paradigmas organizacionales y sociales


en términos socio-económico-tecnológicos, ya que las TICs permean fronteras,
cambian la dimensión del tiempo, re-adecuación el valor en la información y no
en los artefactos materiales ni en los servicios, etc.

La utilización de metabuscadores de información basados en Inteligencia


Artificial, la Minería de Datos (Data Mining), Computación en las Nubes (Cloud
Computing), La Internet de las Cosas (Internet of Things), Datos Masivos (Big
Data) sólo son algunas de las técnicas y tratamiento de la información que ha
surgido como consecuencia del crecimiento de los sistemas distribuidos y sobre
el cual abordaremos más adelante.

Sistemas Distribuidos
Prof. Rubén Báez
Desarrollo 6

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.

Sistemas Distribuidos
Prof. Rubén Báez
Podemos ver que existen muchas definiciones de lo que representa un Sistema
7
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

Sistemas Distribuidos
Prof. Rubén Báez
► Compartir recursos y datos
8

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.

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 Distribuidos
Prof. Rubén Báez
► Sistemas de reservas de líneas aéreas
9
► 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 todos los tipos.

Sistemas Distribuidos
Prof. Rubén Báez
De esta manera y para comprender plenamente a los Sistemas Distribuidos,
10
vamos a trabajar con los siguientes componentes:

► Internet
► Intranet
► Extranet
► 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.

Figura 1. Esquema 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

Sistemas Distribuidos
Prof. Rubén Báez
un programa que se está ejecutando en cualquier parte dirija mensajes a
11
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 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.

Sistemas Distribuidos
Prof. Rubén Báez
La configuración de red de una Intranet particular es responsabilidad de la
12
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.

Sistemas Distribuidos
Prof. Rubén Báez
13

Figura 2. Una Intranet típica. (Coulouris, 2012)

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 legítimo a servicios, cuando
se precisa compartir recursos entre usuarios externos e internos, los
cortafuegos deben ser complementados 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

Sistemas Distribuidos
Prof. Rubén Báez
C. Extranets 14

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

► Procesos y flujos de trabajos más ágiles: intercambiar grandes volúmenes


de datos, utilizados
► Proyectos y Aprendizajes en colaboración: colaborar con otras compañías
en esfuerzos conjuntos, para desarrollar y utilizar de manera conjunta,
programas de capacitación

Sistemas Distribuidos
Prof. Rubén Báez
► Archivos y Documentos compartidos: compartir catálogos de productos
15
con mayoristas, distribuidores, o empresas miembros de sus canales de
comercialización
► Red de Computadoras: proveer y acceder a servicios provistos por una
compañía o a un grupo de compañías – clientes, compartiendo noticias y
novedades asociadas

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

Sistemas Distribuidos
Prof. Rubén Báez
Ventajas y Servicios 16

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.

APLICACIÓN DIRIGIDA A ACCESO DE EJEMPLOS


INFORMACIÓN Y USOS

Internet Usuarios en Todos pueden acceder a Información


general la información de la
empresa
Clientes Contacto con cualquier
persona Servicios y
Proveedores
productos

Formularios
de contacto

Intranet Empleados Comunicación interna en Correo


una organización electrónico
Áreas internas
de la empresa

Sistemas Distribuidos
Prof. Rubén Báez
Permite el intercambio de Consultas de
17
información entre pedidos y
empleados para mejorar órdenes de
su desempeño trabajo

Notas e
informes de
comunicación
interna

Respaldo de
la información

Capacitación

Extranet Clientes Comunicación con Transaciones


terceros bancarias
Proveedores
Comunicación restringida e-Commerce
Aliados
para el público en general
tecnológicos y e-
comerciales Acceso de personas Procurement
autorizadas
e-Learning

Tabla 1. Comparación entre Internet, Intranet y Extranet (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

Sistemas Distribuidos
Prof. Rubén Báez
específicamente para una función, pero que puede llevar a cabo otras funciones
18
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

Sistemas Distribuidos
Prof. Rubén Báez
19
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.

Paradigmas de los sistemas distribuidos

Computación en las Nubes - 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 clientes o usuarios pueden tener:

► Privadas
► Públicas
► Híbridas

Sistemas Distribuidos
Prof. Rubén Báez
Según el tipo de servicio que pueden brindar:
20

► Plataforma como Servicio (Platform as a Service - PaaS)


► Infraestructura como Servicio (Infrastructure as a Service – IaaS)
► Software como Servicio (Software as a Service – SaaS)

Servicios de
Aplicación

Clientes
INTERNET Servicios de
Almacenamien

Clientes to
Servicios
Computaciona
Clientes les
Almacenamie
Figura 4. Esquema de Cloud Computing

nto

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.

Sistemas Distribuidos
Prof. Rubén Báez
La capa de software (VMM) maneja, gestiona y arbitra los cuatro recursos
21
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.

Figura 5. Virtualización a nivel de sistema operativo

Sistemas Distribuidos
Prof. Rubén Báez
La máquina virtual en general es un sistema operativo completo que corre como
22
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).

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.

Sistemas Distribuidos
Prof. Rubén Báez
Minería de Datos - Data Mining 23

"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

Sistemas Distribuidos
Prof. Rubén Báez
Aplicaciones de minería de datos 24

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
► 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
susstancias que puedan ser de utilidad para el desarrollo de nuevas
medicinas para el tratamiento de enfermedades

En la Figura 6 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.

Sistemas Distribuidos
Prof. Rubén Báez
25

Figura 6. Entornos de aplicación de una Minería de Datos

Datos Masivos - Big Data

Es el proceso de recolección de grandes cantidades de datos (Figura 7) 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.

Sistemas Distribuidos
Prof. Rubén Báez
26

Datos
Públicos

Redes
Sociales
Big Datos de
Empresas
Data

Datos de
transaccio
nes

Figura 7. Fuentes de recursos de Big Data

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

Sistemas Distribuidos
Prof. Rubén Báez
► Implementaciones de diferentes desarrolladores
27

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

Sistemas Distribuidos
Prof. Rubén Báez
La interconexión, especialmente cuando utilizamos la Internet, se da sobre una
28
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.

Sistemas Distribuidos
Prof. Rubén Báez
Los diseñadores de los protocolos de Internet presentaron una serie de
29
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 publicados 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

Sistemas Distribuidos
Prof. Rubén Báez
► Los sistemas distribuidos abiertos pueden construirse con hardware y
30
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:

► Confidencialidad: protección contra el descubrimiento por individuos no


autorizados;
► Integridad: protección contra la alteración o corrupción;
► Disponibilidad: protección contra interferencia con los 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 cortafuegos 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.

Sistemas Distribuidos
Prof. Rubén Báez
En un sistema distribuido, los clientes envían peticiones de acceso a datos
31
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.

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.

Sistemas Distribuidos
Prof. Rubén Báez
Así como el tipo de red condiciona tremendamente el rendimiento del sistema,
32
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.

Sistemas Distribuidos
Prof. Rubén Báez
Dos ejemplos de ocultación de fallos son:
33

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.

Sistemas Distribuidos
Prof. Rubén Báez
6. Eficiencia 34

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

Sistemas Distribuidos
Prof. Rubén Báez
este caso es posible que varios threads estuvieran ejecutando concurrentemente
35
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.

Sistemas Distribuidos
Prof. Rubén Báez
9. Fiabilidad 36

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:

► De acceso: se accede a recursos locales y remotos de forma idéntica


► De ubicación: permite acceder a los recursos sin conocer su ubicación
► De concurrencia: usar un recurso compartido sin interferencia
► De replicación: permite utilizar varios ejemplares de cada recurso
► Frente a fallos: permite ocultar los fallos de manera que las aplicaciones
puedan terminar sus tareas
► De movilidad: permite la reubicación de recursos y clientes sin afectar al
sistema
► De prestaciones: permite reconfigurar el sistema para mejorar las
prestaciones según su carga
► 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

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

Sistemas Distribuidos
Prof. Rubén Báez
recursos distribuidos. A veces se les da el nombre conjunto de transparencia de
37
red.

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.

Sistemas Distribuidos
Prof. Rubén Báez
11. Impredecibilidad 38

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.

Sistemas Distribuidos
Prof. Rubén Báez
Los problemas de fiabilidad y de seguridad son críticos en el diseño de la mayoría
39
de los sistemas informáticos.

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

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

► 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.
► Tanenbaum, A. (2012). Redes de Computadoras. 5ta. Edición. Pearson.
México.

Sistemas Distribuidos
Prof. Rubén Báez

También podría gustarte