Vous êtes sur la page 1sur 6

SISTEMAS DISTRIBUIDOS

Dassel Diaz Balanta


Universidad Autónoma del Caribe, Barranquilla - Atlántico
dassel10@hotmail.com

multimedia y abarcan prácticamente todas las


RESUMEN: Este documento fue realizado con aplicaciones comerciales y técnicas de los ordenadores.
la finalidad de describir los principales aspectos
involucrados en los sistemas distribuidos los cuales a Los requisitos de dichas aplicaciones incluyen un
través de la historia han evolucionado y han hecho de alto nivel de fiabilidad, seguridad contra interferencias
esta una herramienta clave para resolver problemas de externas y privacidad de la información que el sistema
computación masiva. Existen dos grandes factores que mantiene. Se deben proveer accesos concurrentes a
contribuyeron a la evolución de los sistemas bases de datos por parte de muchos usuarios, garantizar
distribuidos:1) la aparición de las computadoras tiempos de respuesta, proveer puntos de acceso al
personales (PC) que conllevó a la denominada servicio que están distribuidos geográficamente,
informática móvil y a la miniaturización de los potencial para el crecimiento del sistema para acomodar
dispositivos 2) las redes locales de alta velocidad y su la expansión del negocio y un marco para la integración
evolución para adaptarse a condiciones cambiantes y de sistema usados por diferentes compañías y
funcionar eventualmente en modo desconectado. organizaciones de usuarios.

PALABRAS CLAVE: hardware, software, sistema


distribuido.
2 PROPIEDADES
ABSTRACT: This document was made in order
to describe the main aspects involved in distributed
2.1 HETEROGENEIDAD
systems which through history have evolved and have
Se refiere a la variedad y diferencia que podemos
made a tool key to solve massive computing problems.
encontrar entre los componentes de un sistema
There are two big factories that contributed to the
distribuido, dicha heterogeneidad no solo aplica al tipo
evolution of distributed systems: 1) the emergence of the
de redes y al hardware de los equipos, sino también a los
personal computer (PC) that led to the called mobile
sistemas operativos, lenguajes de programación e
computing and miniaturization of devices 2) local high
implementación en las que trabajan los diferentes
speed networks and their evolution to adapt to changing
desarrolladores.
conditions and eventually operate in disconnected
mode.
2.2 APERTURA
KEY WORDS: hardware, software, distributed
systems. Un sistema informático es abierto si el sistema
puede ser extendido de diversas maneras. Un sistema
puede ser abierto o cerrado con respecto a extensiones
hardware (añadir periféricos, memoria o interfaces de
1 INTRODUCCIÓN
comunicación, etc...) o con respecto a las extensiones
software (añadir características al sistema operativo,
Un sistema distribuido se define como una protocolos de comunicación y servicios de compartición
colección de computadores autónomos conectados por de recursos, etc...). La apertura de los sistemas
una red [ Colouris 1994 ]; otra definición Un sistema distribuidos se determina primariamente por el grado
distribuido se define como una colección de hacia el que nuevos servicios de compartición de
computadoras separadas físicamente y conectadas entre recursos se pueden añadir sin perjudicar ni duplicar a los
sí por una red de comunicaciones. ya existentes. Los sistemas abiertos se caracterizan:
Las aplicaciones de los sistemas distribuidos varían  Las interfaces se hacen públicas
desde la provisión de capacidad de cómputo a grupos de
usuarios, hasta sistemas bancarios, comunicaciones

1
 Comunicación entre procesos e interfaces en el número de recursos y de usuarios. Internet es un
para acceder a recursos compartidos ejemplo de un sistema distribuido escalable en el que el
 Aunque los componentes provengas de número de computadores y servicios experimenta un
proveedores diferentes deben cumplir con dramático incremento.
el estándar publicado La necesidad de escalabilidad no es solo un
problema de prestaciones de red o de hardware, sino que
está íntimamente ligada con todos los aspectos del
2.3 TRANSPARENCIA diseño de los sistemas distribuidos. El diseño del sistema
debe reconocer explícitamente la necesidad de
Es la ocultación al usuario y al programador de escalabilidad o de lo contrario aparecerán serias
aplicaciones de la separación de los componentes de un limitaciones. El trabajo necesario para procesar una
sistema distribuido, o sea que el sistema se percibe como petición simple para acceder a un recurso compartido
un todo. Se identifican 8 formas de transparencia: debería ser prácticamente independiente del tamaño de
la red. Las técnicas necesarias para conseguir estos
 De acceso: permite acceder a los recursos objetivos incluyen el uso de datos replicados, la técnica
locales de igual manera que los remotos. asociada de catching, y el uso de múltiples servidores
 De localización: permite acceder a los recursos para manejar ciertas tareas, aprovechando la
sin conocer su ubicación. concurrencia para permitir una mayor productividad.
 De concurrencia: permite usar un recurso
compartido sin que exista interferencia.
 De replicación: permite utilizar varios 2.6 TOLERANCIA A FALLOS
ejemplares de cada recurso sin que el usuario
conozca la existencia de las réplicas. Es común que al hablar de sistemas informáticos
 De fallos: permite completar tareas a pesar de existan fallos, cuando estos fallos se producen ya sea en
fallos ya que los oculta. el hardware o en el software se podrían producir
 De movilidad: permite la reubicación de resultados incorrectos o no terminar el cálculo
recursos y clientes sin afectar a los usuarios ni El diseño de sistemas tolerantes a fallos se basa en
el sistema ni las aplicaciones. dos cuestiones, complementarias entre sí: Redundancia
 De prestaciones: permite reconfigurar el hardware (uso de componentes redundantes) y
sistema para mejorar las prestaciones mientras recuperación del software (diseño de programas que
la carga varia. sean capaces de recuperarse de los fallos). Existen
 De escalado: Permite la expansión del sistema algunas técnicas para tratar dichos fallos: detección de
y de las aplicaciones sin cambiar la estructura fallos (checksums), enmascaramiento de fallos (ocultar),
del sistema o los algoritmos de la aplicación. tolerancia a fallos, recuperación de fallos (roll back) y
redundancia.
2.4 CONCURRENCIA
2.7 SEGURIDAD
Cuando existen varios procesos en una única
maquina decimos que se están ejecutando
concurrentemente. Si el ordenador está equipado con un La seguridad alberga el tratamiento que se le da a
único procesador central, la concurrencia tiene lugar los recursos de información y para esto son 3 pilares los
entrelazando la ejecución de los distintos procesos. Si la que velan por estos (confidencialidad, integridad y
computadora tiene N procesadores, entonces se pueden disponibilidad).
estar ejecutando estrictamente a la vez hasta N procesos.
Para que un objeto sea seguro en un entorno  Confidencialidad: protección contra
concurrente, sus operaciones deben sincronizarse de individuos no autorizados.
manera que sus datos permanezcan consistentes, esto  Integridad: protección contra la alteración
puede lograrse mediante la utilización de técnicas o corrupción.
llamadas semáforos, que se usan en la mayoría de los  Disponibilidad: protección contra la
sistemas operativos. interferencia con los procedimientos de
acceso a los recursos.

2.5 ESCALABILIDAD La seguridad no solo es cuestión de ocultar los


contenidos de los mensajes, también consiste en conocer
Se dice que un sistema es escalable si conserva su con certeza la identidad del usuario u otro agente en
efectividad cuando ocurre un incremento significativo nombre del cual se envía el mensaje. Por esto aún
existen dos desafíos dentro la seguridad que no se han

2
cumplido completamente y son: ataques de denegación componentes de hardware, software y tecnología de red
de servicio y seguridad del código móvil. pueden ser muy diferentes son heterogéneos en cuanto a
3 TIPOS DE SISTEMAS DISTRIBUIDOS hardware, red, dominios, sistemas operativos etc.

Hay varias formas propuestas para clasificar a los Los recursos del grid consiste en servidores
sistemas distribuidos. En nuestro caso, diferenciaremos (incluyendo supercomputadoras, posiblemente clusters),
los sistemas distribuidos en tres clases: sistemas medios de almacenamiento, bases de datos, etc. Además,
computacionales distribuidos, sistemas de información también se pueden compartir otro tipo de recursos que
distribuidos, y sistemas embebidos distribuidos. pueden ser conectados a las redes, tales como
telescopios, microscopios, sensores, etc. (Ver figura 2)

3.1 SISTEMAS COMPUTACIONALES


DISTRIBUIDOS

Una de las clases de sistemas distribuidos más


importantes y populares en nuestros días son los usados
para procesar tareas que requieren de un gran
desempeño computacional, estos sistemas son conocidos
como sistemas computacionales distribuidos. Los
sistemas computacionales distribuidos pueden ser
clasificados en dos grupos: sistemas computacionales
distribuidos tipo clúster y sistemas computacionales
distribuidos tipo grid.

3.1.1 TIPO CLUSTER


Figura 2. Grid
En la computación cluster, el hardware subyacente
consiste en un grupo de estaciones de trabajos o PCs
similares (alto grado de homogeneidad), localizadas
cercanas unas de otras e interconectadas a través de una 3.2 SISTEMAS DE INFORMACION
red de área local (LAN) de alta velocidad. la DISTRIBUIDOS
computación cluster es utilizada para la programación
paralela, en la que un programa sencillo de alta demanda Se encuentran en organizaciones que poseen una
computacional es ejecutado en paralelo o gran cantidad de aplicaciones de red (distribuidas), pero
concurrentemente en múltiples computadoras cuya interoperabilidad se dificulta mucho. Muchas de
las soluciones middleware son el resultado de trabajar
con infraestructuras en la que es más fácil integrar
aplicaciones en un sistema de información global en la
empresa.

Al tornarse las aplicaciones más sofisticadas y al ser


separadas en varios componentes independientes, se
volvió evidente que la integración de varias de estas
aplicaciones debería efectuarse permitiendo que las
conectadas a la red local. (Ver figura 1) aplicaciones se comunicaran directamente unas con
otras.
Figura 1. Cluster

3.1.2 TIPO GRID


3.3 SISTEMAS EMBEBIDOS DISTRIBUIDOS

Los sistemas distribuidos vistos hasta ahora se


Consiste en sistemas distribuidos que comúnmente
caracterizan mayormente por su estabilidad: los nodos
se construyen como una federación de sistemas de
son fijos y tienen una conexión a la red más o menos
cómputo, en el que cada sistema suele estar bajo un
permanente y de alta calidad. Sin embargo, muchas
dominio administrativo distinto, y en los que los
cosas han cambiado con la introducción de dispositivos

3
de cómputo móviles o embebidos. Ahora es común tener 4.3 IMPREDECIBILIDAD
que trabajar con sistemas distribuidos en la que la
inestabilidad es una constante. Los dispositivos en estos Los sistemas distribuidos tienen una respuesta
sistemas que llamamos Sistemas Penetrantes impredecible (E.g. la WWW). La respuesta depende de
Distribuidos son frecuentemente pequeños, operados la carga total en el sistema, de su organización y de la
con baterías, móviles y con una sola conexión carga de la red. Como todos ellos pueden cambiar con
inalámbrica (no necesariamente aplican todas estas mucha rapidez, el tiempo requerido para responder a una
características a todos los dispositivos) ej. los petición de usuario puede variar drásticamente de una
Smartphone. Las aplicaciones penetrantes deben petición a otra.
cumplir los siguientes requerimientos:

5 ARQUITECTURAS DE SISTEMAS
DISTRIBUIDOS
 Deben aceptar cambios contextuales (deben
estar conscientes de que el ambiente cambia
continuamente).
 Deben promover una composición adaptable 5.1 MULTIPROCESADOR
(los dispositivos pueden ser utilizados en
diferentes formas por diferentes usuarios). Está formado por varios procesos que pueden
 Por omisión, deben compartir (aunque no necesariamente) ejecutarse sobre
recursos. Al ser agregados al sistema procesadores diferentes. Este modelo es común en
generalmente deben accesar y proveer sistemas de tiempo real o sistemas distribuidos masivos.
información.
Los procesos relacionados con la recopilación de
información, toma de decisiones y control de actuadores
podrían ejecutarse en un solo procesador bajo el control
de un planificador (scheduler). El uso de múltiples
procesadores mejora el rendimiento y adaptabilidad del
4 DESVENTAJAS DE LOS SITEMAS sistema. La distribución de procesos entre los
DISTRIBUIDOS procesadores puede ser predeterminada por un
despachador (dispatcher) que decide que procesos se
Comparados con los sistemas que se ejecutan en un asignan a cada procesador.
solo procesador o cluster de procesadores, los sistemas
distribuidos tienen desventajas muy marcadas.
5.2 CLIENTE SERVIDOR

Es un modelo de aplicación distribuida en el que las


4.1 COMPLEJIDAD
tareas se reparten entre servidores que son los que
proveen recursos y un cliente que realiza la petición. En
Los sistemas distribuidos son mucho más complejos un sistema distribuido cada máquina puede cumplir el
que los sistemas centralizados. Esto hace más difícil de rol de servidor para algunas tareas y el rol de cliente
comprender sus propiedades emergentes y la prueba de para otras.
estos sistemas. El rendimiento lo puede dar el nodo o la
velocidad de la red, la ubicación de los recursos, la En otras palabras la arquitectura Cliente/Servidor
distribución de los nodos, etc. es una extensión de programación modular en la que la
base fundamental es separar una gran pieza de software
en módulos con el fin de hacer más fácil el desarrollo y
4.2 SEGURIDAD mejorar su mantenimiento, permite distribuir
físicamente los procesos y los datos en forma más
Puede accederse al sistema desde varias eficiente lo que en computación distribuida afecta
computadoras diferentes, y el tráfico en la red puede directamente el tráfico de la red, reduciéndolo
estar sujeto a situaciones indeseadas. Esto hace más grandemente. La acción de visitar un sitio web requiere
difícil el asegurar que la integridad de los datos en el una arquitectura cliente-servidor, ya que el servidor web
sistema se mantenga y que los servicios del sistema no sirve las páginas web al navegador (al cliente).
se degraden por ataques de denegación de servicio.

4
Otro ejemplo podría ser el funcionamiento de un
juego online. Si existen dos servidores de juego, cuando
un usuario lo descarga y lo instala en su computadora
pasa a ser un cliente. Si tres personas juegan en un solo
computador existirían dos servidores, un cliente y tres
usuarios. Si cada usuario instala el juego en su propio
ordenador existirían dos servidores, tres clientes y tres
usuarios.

5.2.1 FUNCIONES Y CARACTERISTICAS

5.2.1.1 CLIENTE

El cliente es el proceso que permite al usuario formular


los requerimientos y pasarlos al servidor, se le conoce
con el término front-end, las principales funciones son:

• Administrar la interfaz de usuario. Figura 3. Cliente/Servidor

• Interactuar con el usuario.


5.2.2 VENTAJAS
• Procesar la lógica de la aplicación y hacer validaciones
locales.

• Generar requerimientos de bases de datos.  Centralización del control de los recursos, datos
y accesos.
• Recibir resultados del servidor.  Facilidad de manteamiento y actualización del
lado del servidor.
• Formatear resultados.  Seguridad en toda la información almacenada
del lado del servidor.

5.2.1.2 SERVIDOR
5.2.3 DESVENTAJAS
Es el proceso encargado de atender a múltiples
clientes que hacen peticiones de algún recurso  Puede presentarse congestión en la red y
administrado por él. Al proceso servidor se le conoce dificultad de tráfico de datos por el número de
con el término back-end, las principales funciones son: clientes simultáneos.
 Si se presenta fallos del lado del servidor, el
servicio puede quedar paralizado para los
• Aceptar los requerimientos de bases de datos que clientes.
hacen los clientes.

• Procesar requerimientos de bases de datos.


6 PROGRAMACION DISTRIBUIDA
• Formatear datos para trasmitirlos a los clientes.
Es un paradigma de programación enfocado en
• Procesar la lógica de la aplicación y realizar desarrollar sistemas distribuidos, abiertos, escalables,
validaciones a nivel de bases de datos. transparentes y tolerantes a fallos. Este paradigma es el
resultado natural del uso de las computadoras y las
redes. La programación distribuida típicamente cae en
La figura 3 muestra un ejemplo de arquitectura alguna de las varias arquitecturas básicas o
cliente/servidor arquitecturas: cliente-servidor, 3-tier, n-tier, objetos

5
distribuidos, entre otras además de ser base para la necesario obtener métricas de servicio, realizar un
pragmatisidad. monitoreo constante, medir los tiempos de respuesta,
realizar el cálculo de capacidades antes y después de
Una de las ventajas de los sistemas distribuidos es la la liberación para que de ser necesario el sistema sea
economía, pues es mucho más barato, añadir servidores escalado, y es que esta propiedad de los sistemas
y clientes cuando se requiere aumentar la potencia de distribuidos es uno de sus principales objetivos para
procesamiento. poder brindar al usuario disponibilidad y efectividad
cuando ocurren incrementos significativos en el
Tienen una mayor confiabilidad. Al estar distribuida número de recursos y de usuarios todo el tiempo es
la carga de trabajo en muchas máquinas la falla de una decir a cualquier hora, cualquier día sin importar el
de ellas no afecta a las demás, el sistema sobrevive lugar.
como un todo.
La seguridad es otro factor muy importante, ahora
ya el esquema de usuario y password no es suficiente,
7 CONCLUSION es necesario proteger su información, tanto de agentes
externos como de agentes internos. Por ello los
Los sistemas distribuidos abarcan muchos sistemas distribuidos se construyen sobre tecnología
aspectos que pueden ser considerables, como que provee este tipo de mecanismos de seguridad
sistemas operativos, comunicaciones, modelos de utilizando algoritmos de encripción, pero también
programación, etc, esto hace que sus beneficios se tienen la capacidad de otorgar niveles de acceso a los
pueden traducir en complejidades al momento de su usuarios y aplicaciones a nivel de componente. A
implantación. Existen ciertos aspectos que requieren pesar de contar con este nivel de seguridad no se
de cuidado especial ya que pueden pasar de ser una puede decir que es invulnerable y sigue siendo un
ventaja a una desventaja, por ejemplo, el manejo de reto por cumplir.
fallos, el control de la concurrencia, etc.

Es importante señalar que muchas tecnologías Por todo lo anterior el concepto de que un sistema
están en constante desarrollo y maduración, esto distribuido ya no debe visualizarse ni pensarse como
requiere de un estudio a profundidad de los factores un sistema únicamente, si no como un servicio, ya
que intervienen en cada aspecto de los sietmas que finalmente eso es lo que se le ofrece y requiere el
distribuidos antes de apostar por alguna tecnología usuario de cualquier tipo de negocio que satisfagan
especial. oportunamente las necesidades de la razón de ser de
los negocios: los clientes.
La evolución y el constante desarrollo de la
tecnología le establecen al ser humano retos cada vez
más complejos para brindar soluciones más eficientes
8 REFERENCIAS
en términos de disponibilidad, usabilidad y [1] IEEE Softwarwe component. Noviembre-Diciembre ,
compartimiento de información, aplicaciones y 1998
recursos; tal es el caso de los sistemas distribuidos. [2] http://sistemas-distribuidos-
unerg.blogspot.com/2008/10/caractersticas-principales-de-
Diseñar un sistema es crear aplicaciones los.html.
software, que al utilizar servicios se integren de [3] R Samaria Sistemas distribuidos.
forma transparente en las plataformas de proceso y [4]http://eafranco.com/docencia/sistemasoperativosii/files/14_
almacenamiento de datos y que puedan gestionarse 15_16_17_Arquitecturas_de_sistemas_distribuidos_y_Tare
a_04.pdf.
con el resto del sistema distribuido. Aunque esta es
[5]http://www.ecured.cu/index.php/Arquitectura_Cliente_Servi
una tarea muy compleja de construir y sobre todo de dor.
operar resaltar es el hecho de que un sistema [6] http://www.sc.ehu.es/acwlaroa/SDI/Apuntes/Cap1.pdf
distribuido es una cadena de valor en el que [7] http://es.slideshare.net/holguers/paper-sistemas-distribuido
intervienen múltiples factores, así como múltiples [8] http://es.wikipedia.org/wiki/Programaci
elementos que hacen que el sistema tenga éxito o sea %C3%B3n_paralela
un rotundo fracaso. La responsabilidad de este tipo de [9]http://cervantes1bachdyg.wikispaces.com/Arquitectura+clie
sistemas ya no depende solamente de los analistas, nte-servidor .
diseñadores y desarrolladores, ahora es necesario [10]http://www.ptolomeo.unam.mx:8080/xmlui/bitstream/hand
le/132.248.52.100/584/A9.pdf?sequence=9
llevar más allá la responsabilidad del sistema ya que
un sistema distribuido necesita una pos-
implementación, un seguimiento, un mantenimiento,
pero no solo de código, sino también operativo, es

Vous aimerez peut-être aussi