Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SISTEMAS
DISTRIBUIDOS
1.1. Fundamentos:
A pesar del tiempo transcurrido, esta definición sigue siendo, en esencia, válida.
Así, para Coulouris un sistema distribuido es aquél que está compuesto por varias
computadoras autónomas conectadas mediante una red de comunicaciones y
equipadas con programas que les permitan coordinar sus actividades y compartir
recursos. Bal ofrece una definición muy similar: ``Un sistema de computación
distribuida está compuesto por varios procesadores autónomos que no
comparten memoria principal, pero cooperan mediante el paso de mensajes sobre
una red de comunicaciones''. Y según Schroeder, todo sistema distribuido tiene
tres características básicas:
Una característica muy importante es que las diferencias entre las computadoras y
las maneras en que estas se comunican no son transparentes para el usuario final,
esto mismo aplica para la organización interna del sistema distribuido. Otra
característica importante es que los usuarios y las aplicaciones pueden interactuar
con un Sistema Distribuido de manera consistente y uniforme, sin importar donde
y cuando se lleve a cabo la interacción.
Todo Sistema Distribuido bebe también ser relativamente fácil poder expandir, lo
cual se logra al tener computadoras independientes, pero al mismo tiempo
“esconder” las funciones de dichas computadoras en el sistema. Normalmente un
sistema distribuido debe de estar siempre disponible a pesar de que ciertas partes
que lo conforman puedan no estar funcionando. Los usuarios y las aplicaciones
no deben de notar en ningún momento que estas partes están siendo
reemplazadas o reparadas, o que se han agregado nuevas partes al sistema para
poder dar servicio a más usuarios o aplicaciones.
a) Heterogeneidad:
Un ejemplo de esto lo podemos ver muy claro en Internet, ya que es una red
que esta conformada por muchos tipos de redes (Figura 1) cuyas diferencias
se encuentran enmascaradas, puesto que todas las computadoras que se
conectan a este utilizan los protocolos de Internet para comunicarse una con
otra, así una computadora conectada a una red Ethernet puede comunicarse
con otra computadora conectada a una red TokenRing, basta con que se haga
una implementación de los protocolos de Internet para cada una de esas
redes.
b) Extensibilidad y Apertura:
El alto valor de que tiene la información es la razón principal por la que esta se
puede ver amenazada de muchas formas, entre las principales podemos
encontrar:
Si bien no podemos asegurar que un sistema distribuido sea cien por ciento
seguro, es importante contar con un esquema de seguridad lo más robusto
posible, que a pesar de no ser inmune a todo tipo de ataques, si será capaz de
frenar la gran mayoría de dichos ataques. Algunas recomendaciones muy
útiles para los desarrolladores, administradores e implementadotes de un
sistema distribuido se presentan a continuación:
d) Escalabilidad:
Cuando se necesita escalar un sistema a un nivel más alto es muy común que
surja algún tipo de problema. Si consideramos la escalabilidad con respecto al
tamaño de un sistema, nos encontramos con las limitaciones que presentan
los servicios, los datos y los algoritmos centralizados.
Técnicas de Escalabilidad
e) Tratamiento de Fallos:
Recuperación Frente a Fallos: Una vez que fue detectado un fallo y que se ha
decidido arreglarlo, hay que encontrar la mejor manera de hacerlo, y además,
de recuperar el estado del sistema antes de que ocurriera el fallo; esto requiere
del software adecuado para poder reconstruir o bien retractar los cambios que
no fueron completados al momento en que fue interrumpido el sistema, un
ejemplo de esto lo podemos ver en los sistemas manejadores de bases de
datos, que se sirven de una bitácora de las transacciones que se realizan y de
acuerdo a esta bitácora se decide reconstruir o retractar las transacciones
hechas sobre la base de datos antes de que se interrumpiera el
funcionamiento de la misma.
f) Concurrencia:
g) Transparencia:
Tipos de Transparencia:
Con todo esto en mente es posible diseñar un sistema que cuente con las
características necesarias para lograr la transparencia en tantos aspectos como
sea posible. Los dos más importantes son la transparencia de acceso y la
transparencia de ubicación, la primera se relaciona con la forma en que
representamos los datos en un sistema distribuido, es importante presentar al
usuario o a los programadores el acceso indistinto a recursos locales o
remotos, sin que este se de cuenta de la ubicación de los mismos, lo que al
mismo tiempo nos conduce a tener transparencia de ubicación dentro del
sistema.
Grado de Transparencia:
En general, los sistemas distribuidos exhiben algunas ventajas sobre los sistemas
centralizados que se describen enseguida.
a) Factores Estratégicos:
b) Costos de Equipo:
d) Costos de Desarrollo:
e) Interfaces de Usuarios:
h) Nuevas aplicaciones:
i) Crecimiento:
Por otro lado, los sistemas distribuidos también exhiben algunas ventajas
sobre sistemas aislados. Estas ventajas son:
Así como los sistemas distribuidos exhiben grandes ventajas, también se pueden
identificar algunas desventajas, algunas de ellas tan serias que han frenado la
producción comercial de sistemas distribuidos en la actualidad.
d) Seguridad e Integridad:
e) Opciones:
Definiciones Básicas
b) En términos de arquitectura:
Con estos elementos podemos ya darnos una idea de lo que es el modelo cliente
servidor, sin embargo, es necesario analizar más a fondo las características de la
arquitectura si queremos llegar a entender por completo el funcionamiento de la
misma.
Debemos señalar que para seleccionar el modelo de una arquitectura, hay que
partir del contexto tecnológico y organizativo del momento y, que la arquitectura
Cliente/Servidor requiere una determinada especialización de cada uno de los
diferentes componentes que la integran.
o Presentación/Captación de Información
o Procesos
o Almacenamiento de la Información
o Puestos de Trabajo
o Comunicaciones
o Servidores
Los Servidores o Back-End. “Una máquina que suministra una serie de servicios
como Bases de Datos, Archivos, Comunicaciones,...)”. Los Servidores, según la
especialización y los requerimientos de los servicios que debe suministrar pueden
ser:
o Mainframes
o Minicomputadoras
o Especializados (dispositivos de red, imagen, etc.)
d) Una ventaja adicional del uso del esquema Cliente/Servidor es que es más
rápido el mantenimiento y el desarrollo de aplicaciones, pues se pueden
emplear las herramientas existentes (por ejemplo los servidores de SQL o las
herramientas de más bajo nivel como los sockets o el RPC).
o A otro nivel, una de las decisiones que deben tomar las organizaciones es
la de si comprar o desarrollar los diferentes componentes.
Capas y niveles
Todas estas capas pueden residir en un único ordenador, si bien lo más usual es
que haya una multitud de ordenadores en donde reside la capa de presentación
(son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de
datos pueden residir en el mismo ordenador, y si el crecimiento de las
necesidades lo aconseja se pueden separar en dos o más ordenadores. Así, si el
tamaño o complejidad de la base de datos aumenta, se puede separar en varios
ordenadores los cuales recibirán las peticiones del ordenador en que resida la
capa de negocio.
o Una solución de tres capas (presentación, lógica del negocio, datos) que
residen en un solo ordenador (Presentación+lógica+datos). Se dice que la
arquitectura de la solución es de tres capas y un nivel.
o Una solución de tres capas (presentación, lógica del negocio, datos) que
residen en dos ordenadores (presentación+lógica, lógica+datos). Se dice
que la arquitectura de la solución es de tres capas y dos niveles.