SISTEMAS DISTRIBUIDOS
"Sistemas cuyos
componentes hardware y software, que están en ordenadores conectados en red, se
comunican y coordinan sus acciones mediante el paso de mensajes, para el logro
de un objetivo. Se establece la comunicación mediante un protocolo prefijado
por un esquema cliente-servidor".
CARACTERÍSTICAS
CLAVE DE LOS SISTEMAS DISTRIBUIDOS
[Colouris 1994]
establece que son seis las características principales responsables de la
utilidad de los sistemas distribuidos. Se trata de comparición re recursos,
apertura (openness), concurrencia, escalabilidad, tolerancia a fallos y
transparencia. En las siguientes líneas trataremos de abordar cada una de
ellas.
·
Compartición
de Recursos
El término ‘recurso’ es
bastante abstracto, pero es el que mejor caracteriza el abanico de entidades
que pueden compartirse en un sistema distribuido. El abanico se extiende desde
componentes hardware como discos e impresoras hasta elementos software como
ficheros, ventanas, bases de datos y otros objetos de datos.
La idea de compartición
de recursos no es nueva ni aparece en el marco de los sistemas distribuidos.
Los sistemas multiusuario clásicos desde siempre han provisto compartición de
recursos entre sus usuarios. Sin embargo, los recursos de una computadora
multiusuario se comparten de manera natural entre todos sus usuarios. Por el
contrario, los usuarios de estaciones de trabajo monousuario o computadoras
personales dentro de un sistema distribuido no obtienen automáticamente los
beneficios de la compartición de recursos.
Los recursos en un
sistema distribuido están físicamente encapsulados en una de las computadoras y
sólo pueden ser accedidos por otras computadoras mediante las comunicaciones
(la red). Para que la compartición de recursos sea efectiva, ésta debe ser
manejada por un programa que ofrezca un interfaz de comunicación permitiendo
que el recurso sea accedido, manipulado y actualizado de una manera fiable y
consistente. Surge el término genérico de gestor de recursos.
Un gestor de recursos
es un modulo software que maneja un conjunto de recursos de un tipo en
particular. Cada tipo de recurso requiere algunas políticas y métodos
específicos junto con requisitos comunes para todos ellos. Éstos incluyen la
provisión de un esquema de nombres para cada clase de recurso, permitir que los
recursos individuales sean accedidos desde cualquier localización; la
traslación de nombre de recurso a direcciones de comunicación y la coordinación
de los accesos concurrentes que cambian el estado de los recursos compartidos
para mantener la consistencia.
Un sistema distribuido
puede verse de manera abstracta como un conjunto de gestores de recursos y un
conjunto de programas que usan los recursos. Los usuarios de los recursos se
comunican con los gestores de los recursos para acceder a los recursos
compartidos del sistema. Esta perspectiva nos lleva a dos modelos de sistemas
distribuidos: el modelo cliente-servidor y el modelo basado en objetos.
·
Apertura
(opennesss)
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 comunicación, etc… ) o con respecto a las
extensiones software ( añadir características al sistema operativo, protocolos
de comunicación y servicios de compartición de recursos, etc… ). La apertura de
los sistemas distribuidos se determina primariamente por el grado hacia el que
nuevos servicios de compartición de recursos se pueden añadir sin perjudicar ni
duplicar a los ya existentes.
Básicamente
los sistemas distribuidos cumplen una serie de características:
Los interfaces software
clave del sistema están claramente especificados y se ponen a disposición de
los desarrolladores. En una palabra, los interfaces se hacen públicos. Los sistemas
distribuidos abiertos se basan en la provisión de un mecanismo uniforme de
comunicación entre procesos e interfaces publicados para acceder a recursos
compartidos.
Los sistemas
distribuidos abiertos pueden construirse a partir de hardware y software
heterogéneo, posiblemente proveniente de vendedores diferentes. Pero la conformidad
de cada componente con el estándar publicado debe ser cuidadosamente comprobada
y certificada si se quiere evitar tener problemas de integración.
·
Concurrencia
Cuando existen varios
procesos en una única maquina decimos que se están ejecutando concurrentemente.
Si el ordenador esta equipado con un único procesador central, la concurrencia
tiene lugar entrelazando la ejecución de los distintos procesos. Si la
computadora tiene N procesadores, entonces se pueden estar ejecutando
estrictamente a la vez hasta N procesos.
En los sistemas
distribuidos hay muchas maquinas, cada una con uno o mas procesadores
centrales. Es decir, si hay M ordenadores en un sistema distribuido con un
procesador central cada una entonces hasta M procesos estar ejecutándose en paralelo.
En un sistema
distribuido que esta basado en el modelo de compartición de recursos, la
posibilidad de ejecución paralela ocurre por dos razones:
Muchos usuarios
interactuan simultáneamente con programas de aplicación.
Muchos procesos
servidores se ejecutan concurrentemente, cada uno respondiendo a diferentes
peticiones de los procesos clientes.
El caso (1) es menos
conflictivo, ya que normalmente las aplicaciones de interacción se ejecutan
aisladamente en la estación de trabajo del usuario y no entran en conflicto con
las aplicaciones ejecutadas en las estaciones de trabajo de otros usuarios.
El caso (2) surge
debido a la existencia de uno o mas procesos servidores para cada tipo de
recurso. Estos procesos se ejecutan en distintas maquinas, de manera que se
están ejecutando en paralelo diversos servidores, junto con diversos programas
de aplicación. Las peticiones para acceder a los recursos de un servidor dado
pueden ser encoladas en el servidor y ser procesadas secuencialmente o bien
pueden ser procesadas varias concurrentemente por múltiples instancias del
proceso gestor de recursos. Cuando esto ocurre los procesos servidores deben
sincronizar sus acciones para asegurarse de que no existen conflictos. La
sincronización debe ser cuidadosamente planeada para asegurar que no se pierden
los beneficios de la concurrencia.
·
Escalabilidad
Los sistemas
distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes.
La escala más pequeña consiste en dos estaciones de trabajo y un servidor de
ficheros, mientras que un sistema distribuido construido alrededor de una red
de área local simple podría contener varios cientos de estaciones de trabajo,
varios servidores de ficheros, servidores de impresión y otros servidores de
propósito especifico. A menudo se conectan varias redes de área local para
formar internetworks, y éstas podrían contener muchos miles de ordenadores que
forman un único sistema distribuido, permitiendo que los recursos sean
compartidos entre todos ellos.
Tanto el software de
sistema como el de aplicación no deberían cambiar cuando la escala del sistema
se incrementa. La necesidad de escalabilidad no es solo un problema de
prestaciones de red o de hardware, sino que esta íntimamente ligada con todos
los aspectos del diseño de los sistemas distribuidos. El diseño del sistema
debe reconocer explícitamente la necesidad de escalabilidad o de lo contrario
aparecerán serias limitaciones.
La demanda de
escalabilidad en los sistemas distribuidos ha conducido a una filosofía de
diseño en que cualquier recurso simple -hardware o software- puede extenderse
para proporcionar servicio a tantos usuarios como se quiera. Esto es, si la
demanda de un recurso crece, debería ser posible extender el sistema para darla
servicio,. Por ejemplo, la frecuencia con la que se accede a los ficheros crece
cuando se incrementa el numero de usuarios y estaciones de trabajo en un
sistema distribuido. Entonces, debe ser posible añadir ordenadores servidores
para evitar el cuello de botella que se produciría si un solo servidor de
ficheros tuviera que manejar todas las peticiones de acceso a los ficheros. En
este caso el sistema deberá estar diseñado de manera que permita trabajar con
ficheros replicados en distintos servidores, con las consideraciones de consistencias
que ello conlleva.
Cuando el tamaño y
complejidad de las redes de ordenadores crece, es un objetivo primordial
diseñar software de sistema distribuido que seguirá siendo eficiente y útil con
esas nuevas configuraciones de la red. Resumiendo, el trabajo necesario para
procesar una petición simple para acceder a un recurso compartido debería ser
prácticamente independiente del tamaño de la red. Las técnicas necesarias para
conseguir estos objetivos incluyen el uso de datos replicados, la técnica asociada
de caching, y el uso de múltiples servidores para manejar ciertas tareas,
aprovechando la concurrencia para permitir una mayor productividad. Una
explicación completa de estas técnicas puede encontrarse en [ Colouris 1994 ].
·
Tolerancia
a Fallos
Los sistemas
informáticos a veces fallan. Cuando se producen fallos en el software o en el
hardware, los programas podrían producir resultados incorrectos o podrían
pararse antes de terminar la computación que estaban realizando. El diseño de
sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre
sí: Redundancia hardware (uso de componentes redundantes) y recuperación del
software (diseño de programas que sean capaces de recuperarse de los fallos).
En los sistemas
distribuidos la redundancia puede plantearse en un grano mas fino que el
hardware, pueden replicarse los servidores individuales que son esenciales para
la operación continuada de aplicaciones criticas.
La recuperación del
software tiene relación con el diseño de software que sea capaz de recuperar
(roll-back) el estado de los datos permanentes antes de que se produjera el
fallo.
Los sistemas
distribuidos también proveen un alto grado de disponibilidad en la vertiente de
fallos hardware. La disponibilidad de un sistema es una medida de la proporción
de tiempo que esta disponible para su uso. Un fallo simple en una maquina
multiuruario resulta en la no disponibilidad del sistema para todos los
usuarios. Cuando uno de los componentes de un sistema distribuidos falla, solo
se ve afectado el trabajo que estaba realizando el componente averiado. Un
usuario podría desplazarse a otra estación de trabajo; un proceso servidor
podría ejecutarse en otra maquina.
·
Transparencia
La transparencia se
define como la ocultación al usuario y al programador de aplicaciones de la
separación de los componentes de un sistema distribuido, de manera que el
sistema se percibe como un todo, en vez de una colección de componentes
independientes. La transparencia ejerce una gran influencia en el diseño del
software de sistema.
El manual de referencia
RM-ODP [ISO 1996a] identifica ocho formas de transparencia. Estas proveen un
resumen útil de la motivación y metas de los sistemas distribuidos. Las
transparencias definidas son:
-
Transparencia de Acceso : Permite el
acceso a los objetos de información remotos de la misma forma que a los objetos
de información locales.
-
Transparencia de Localización: Permite
el acceso a los objetos de información sin conocimiento de su localización
-
Transparencia de Concurrencia: Permite
que varios procesos operen concurrentemente utilizando objetos de información
compartidos y de forma que no exista interferencia entre ellos.
-
Transparencia de Replicación: Permite
utilizar múltiples instancias de los objetos de información para incrementar la
fiabilidad y las prestaciones sin que los usuarios o los programas de
aplicación tengan por que conoces la existencia de las replicas.
-
Transparencia de Fallos: Permite a los
usuarios y programas de aplicación completar sus tareas a pesar de la
ocurrencia de fallos en el hardware o en el software.
-
Transparencia de Migración: Permite el
movimiento de objetos de información dentro de un sistema sin afectar a los
usuarios o a los programas de aplicación.
-
Transparencia de Prestaciones. Permite
que el sistema sea reconfigurado para mejorar las prestaciones mientras la
carga varia.
-
Transparencia de Escalado: Permite la
expansión del sistema y de las aplicaciones sin cambiar la estructura del
sistema o los algoritmos de la aplicación.
Las dos mas importantes
son las transparencias de acceso y de localización; su presencia o ausencia
afecta fuertemente a la utilización de los recursos distribuidos. A menudo se
las denomina a ambas transparencias de red. La transparencia de red provee un
grado similar de anonimato en los recursos al que se encuentra en los sistemas
centralizados.
FACTORES
QUE HAN IMPEDIDO EL DESARROLLO DE LOS SISTEMA DISTRIBUIDOS
· Los Avances Tecnológicos
Sin duda alguna la
tecnología avanzado mucho a través del tiempo, ya que el ser humano ah tenido
la capacidad de mejorar y evolucionar su entorno. Con la necesidad de
dispositivos mas portátiles y igual de efectivos. Cabe destacar que Venezuela
también tenido avances tecnológicos como la puesta en órbita del satélite Simón
Bolívar entre otras cosas.
Un ejemplo del avance
de la tecnología es que un grupo de científicos del Instituto de Tecnologías
Creativas perteneciente a la Universidad de Southern California ha realizado
una serie de estudios utilizando el sensor Kinect de Microsoft, lo que les
permitió comenzar a detectar cuándo una persona se encuentra padeciendo
depresión con una precisión que asombra, se habla del 90% de éxito.
· Globalización
Es un proceso por el
cual muchas cosas se van difundiendo a lo largo y ancho de todo nuestro planeta
(globo). Primariamente hay un fuerte efecto de los medios de comunicación (tv,
internet, cine, música, revistas, etc.) que hacen que tú veas directamente lo
que pasa en otros lados. Luego hay un fuerte efecto del comercio internacional.
La globalización no es más que la extensión o crecimiento de
las empresas o productos tecnológicos
más allá de sus fronteras, esto se logra gracias a las nuevas tecnologías.
· Aspectos Externos
Culturales
Cuando se habla de lo
cultural dentro de los sistemas operativos es se habla más bien un poco más de
lo que es la integridad de la información y otros recursos que pertenecen a
individuos y organizaciones, se conjugan ambos mundos el físico y el digital y
de ahí nace lo que es el mundo lógico y la necesidad de compartir recursos.
Políticos
En el mundo físico las
organizaciones adoptan políticas de seguridad para poder compartir recursos
dentro de unos límites especificados. Las políticas de seguridad hacen cumplir
con la ayuda de los mecanismos de seguridad.
Económicos
Es una forma de
producción distribución y consumo de aquellos bienes que tienen el fin de
satisfacer una determinada fracción de nuestras necesidades.
Integración
Representa un vínculo
entre diversos elementos que componen un sistema, esto para que haya una
comunicación entre varias computadoras. Se encarga que el usuario pueda
disponer de la información en distintas áreas de trabajo que se necesite, en
diferentes formatos, y que cuando el usuario necesite acceder a un recurso este
no se dé cuenta si lo accede localmente o remotamente.
· Categorías de los Sistemas
Distribuidos
Modelo
de Minicomputadoras
Fueron diseñadas para
realizar tareas en especifico como los Entornos de múltiples usuarios, apoyando
múltiples actividades de proceso al mismo tiempo, Ofrecer servicios más
específicos, Soportar un número limitado de dispositivos. y fueron fabricadas
por Digital Equipment Corporation (DEC).
Modelo de Estación de
Trabajo
Consiste en varias
estaciones de trabajo interconectadas en red. Cada usuario debe “darse de alta”
desde su “computadora home” antes de poder enviar trabajos para ejecución. Cada
Workstation tiene su propio disco duro y sistema de archivos.
Modelo
Microprocesadores en Pooling
Son compartidos y
asignados conformes a la demanda, todos los procesadores pool tienen su propia
demandan, los modelos de microprocesadores en pooling, no soporta la conexión
de estaciones directamente a los servidores, es decir, sino solo por medio de
la red de interconexión.
No hay comentarios:
Publicar un comentario