La computación desde sus inicios
ha sufrido muchos cambios, desde los grandes ordenadores que permitían realizar
tareas en forma limitada y de uso un tanto exclusivo de organizaciones muy
selectas, hasta los actuales ordenadores ya sean personales o portátiles que
tienen las mismas e incluso mayores capacidades que los primeros y que están
cada vez más introducidos en el quehacer cotidiano de una persona. Los mayores
cambios se atribuyen principalmente a dos causas, que se dieron desde las
décadas de los setenta: El desarrollo de los microprocesadores, que permitieron
reducir en tamaño y costo a los ordenadores y aumentar en gran medida las
capacidades de los mismos y su acceso a más personas. El desarrollo de las
redes de área local y de las comunicaciones que permitieron conectar
ordenadores con posibilidad de transferencia de datos a alta velocidad.
Es en este contexto que aparece
el concepto de “Sistemas Distribuidos” que se ha popularizado tanto en la
actualidad y que tiene como ámbito de estudio las redes como por ejemplo:
Internet, redes de teléfonos móviles, redes corporativas, redes de empresas,
etc. En consecuencia, el presente trabajo que lleva el título de “Sistemas
Distribuidos”, tiene como principal objetivo: “describir panorámicamente los
aspectos relevantes que están involucrados en los Sistemas Distribuidos”. Para
lograr el objetivo planteado se ha estructurado el trabajo de la siguiente
manera:
Definición:“Sistemas cuyos componentes hardware y software,
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”.
Introducción.- Donde
especificamos el preámbulo del tema, el objetivo del trabajo y el contenido del
mismo.
Desarrollo.- Donde se describen
los aspectos involucrados en los sistemas distribuidos.
Referencias.- Donde especificamos
las fuentes que fueron consultadas para el presente estudio.
Características:
Concurrencia.- Esta
característica de los sistemas distribuidos permite que los recursos
disponibles en la red puedan ser utilizados simultáneamente por los usuarios
y/o agentes que interactúan en la red.
Carencia de reloj global.- Las
coordinaciones para la transferencia de mensajes entre los diferentes
componentes para la realización de una tarea, no tienen una temporización
general, esta más bien distribuida a los componentes.
Fallos independientes de los
componentes.- Cada componente del sistema puede fallar independientemente, con
lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el
logro de las tareas con mayor efectividad, pues el sistema en su conjunto
continua trabajando.
Evolución:
Procesamiento central (Host).-
Uno de los primeros modelos de ordenadores interconectados, llamados
centralizados, donde todo el procesamiento de la organización se llevaba a cabo
en una sola computadora, normalmente un Mainframe, y los usuarios empleaban
sencillos ordenadores personales.
Los problemas de este modelo son:
Cuando la carga de procesamiento
aumentaba se tenía que cambiar el hardware del Mainframe, lo cual es más costoso
que añadir más computadores personales clientes o servidores que aumenten las
capacidades.
El otro problema que surgió son
las modernas interfases gráficas de usuario, las cuales podían conllevar a un
gran aumento de tráfico en los medios de comunicación y por consiguiente podían
colapsar.
Grupo de Servidores.- Otro modelo
que entró a competir con el anterior, también un tanto centralizado, son un
grupo de ordenadores actuando como servidores, normalmente de archivos o de
impresión, poco inteligentes para un número de Minicomputadores que hacen el
procesamiento conectados a una red de área local.
Los problemas de este modelo son:
Podría generarse una saturación
de los medios de comunicación entre los servidores poco inteligentes y los
minicomputadores, por ejemplo cuando se solicitan archivos grades por varios
clientes a la vez, podían disminuir en gran medida la velocidad de transmisión
de información.
La Computación Cliente Servidor.-
Este modelo, que predomina en la actualidad, permite descentralizar el
procesamiento y recursos, sobre todo, de cada uno de los servicios y de la
visualización de la Interfaz Gráfica de Usuario. Esto hace que ciertos
servidores estén dedicados solo a una aplicación determinada y por lo tanto
ejecutarla en forma eficiente.
Cliente-Servidor
Definición:
Sistema donde el cliente es una
máquina que solicita un determinado servicio y se denomina servidor a la
máquina que lo proporciona. Los servicios pueden ser:
Ejecución de un determinado
programa.
Acceso a un determinado banco de
información.
Acceso a un dispositivo de
hardware.
Es un elemento primordial, la
presencia de un medio físico de comunicación entre las máquinas, y dependerá de
la naturaleza de este medio la viabilidad del sistema.
Categorías de Servidores:
A continuación se presenta una
lista de los servidores más comunes:
Servidores de archivos.-
Proporciona archivos para clientes. Si los archivos no fueran tan grandes y los
usuarios que comparten esos archivos no fueran muchos, esto sería una gran
opción de almacenamiento y procesamiento de archivos. El cliente solicita los
archivos y el servidor los ubica y se los envía.
Servidores de Base de Datos.- Son
los que almacenan gran cantidad de datos estructurados, se diferencian de los
de archivos pues la información que se envía está ya resumida en la base de
datos. Ejemplo: El Cliente hace una consulta, el servidor recibe esa consulta
(SQL) y extrae solo la información pertinente y envía esa respuesta al cliente.
Servidores de Software de Grupo.-
El software de grupo es aquel, que permite organizar el trabajo de un grupo. El
servidor gestiona los datos que dan soporte a estas tareas. Por ejemplo:
almacenar las listas de correo electrónico. El Cliente puede indicarle, que se
ha terminado una tarea y el servidor se lo envía al resto del grupo.
Servidores WEB.- Son los que
guardan y proporcionan Páginas HTML. El cliente desde un browser o link hace un
llamado de la página y el servidor recibe el mensaje y envía la página
correspondiente.
Servidores de correo.- Gestiona
el envío y recepción de correo de un grupo de usuarios (el servidor no necesita
ser muy potente). El servidor solo debe utilizar un protocolo de correo.
Servidor de objetos.- Permite
almacenar objetos que pueden ser activados a distancia. Los clientes pueden ser
capaces de activar los objetos que se encuentran en el servidor.
Servidores de impresión.-
Gestionan las solicitudes de impresión de los clientes. El cliente envía la
solicitud de impresión, el servidor recibe la solicitud y la ubica en la cola
de impresión, ordena a la impresora que lleve a cabo las operaciones y luego
avisa a la computadora cliente que ya acabo su respectiva impresión.
Servidores de aplicación.- Se
dedica a una única aplicación. Es básicamente una aplicación a la que pueden
acceder los clientes.
Componentes de Software:
Se distinguen tres componentes
básicos de software:
Presentación.- Tiene que ver con
la presentación al usuario de un conjunto de objetos visuales y llevar a cabo
el procesamiento de los datos producidos por el mismo y los devueltos por el
servidor.
Lógica de aplicación.- Esta capa
es la responsable del procesamiento de la información que tiene lugar en la
aplicación.
Base de datos.- Esta compuesta de
los archivos que contienen los datos de la aplicación.
Arquitecturas Cliente / Servidor
A continuación mostramos las
arquitecturas cliente-servidor más populares:
Arquitectura Cliente-Servidor de
Dos Capas.- Consiste en una capa de presentación y lógica de la aplicación; y
la otra de la base de datos. Normalmente esta arquitectura se utiliza en las
siguientes situaciones:
Cuando se requiera poco
procesamiento de datos en la organización.
Cuando se tiene una base de datos
centralizada en un solo servidor.
Cuando la base de datos es
relativamente estática.
Cuando se requiere un mantenimiento
mínimo.
CLIENTE/SERVIDOR DE DOS CAPAS
Arquitectura Cliente-Servidor de
Tres Capas- Consiste en una capa de la Presentación, otra capa de la lógica de
la aplicación y otra capa de la base de datos. Normalmente esta arquitectura se
utiliza en las siguientes situaciones:
Cuando se requiera mucho procesamiento
de datos en la aplicación.
En aplicaciones donde la
funcionalidad este en constante cambio.
Cuando los procesos no están
relativamente muy relacionados con los datos.
Cuando se requiera aislar la
tecnología de la base de datos para que sea fácil de cambiar.
Cuando se requiera separar el
código del cliente para que se facilite el mantenimiento.
Esta muy adecuada para utilizarla
con la tecnología orientada a objetos.
CLIENTE/SERVIDOR DE TRES CAPAS
Clasificación de los sistemas
cliente servidor:
A continuación mostramos la
clasificación de de los sistemas cliente/servidor de acuerdo al nivel de
abstracción del servicio que ofrecen:
Representación distribuida.- La
interacción con el usuario se realiza en el servidor, el cliente hace de
pasarela entre el usuario y el servidor.
Representación Remota.-La lógica
de la aplicación y la base de datos se encuentran en el servidor. El cliente
recibe y formatea los datos para interactuar con el usuario.
Lógica Distribuida.- El cliente
se encarga de la interacción con el usuario y de algunas funciones triviales de
la aplicación. Por ejemplo controles de rango de campos, campos obligatorios,
etc. Mientras que el resto de la aplicación, junto con la base de datos, están
en el servidor.
Gestión Remota de Datos.- El
cliente realiza la interacción con el usuario y ejecuta la aplicación y el
servidor es quien maneja los datos.
Base de Datos Distribuidas.- El
cliente realiza la interacción con el usuario, ejecuta la aplicación, debe
conocer la topología de la red, así como la disposición y ubicación de los
datos. Se delega parte de la gestión de la base de datos al cliente.
Cliente servidor a tres niveles.-
El cliente se encarga de la interacción con el usuario, el servidor de la
lógica de aplicación y la base de datos puede estar en otro servidor.
PROTOCOLO
Definición:
Es un conjunto bien conocido de
reglas y formatos que se utilizan para la comunicación entre procesos que
realizan una determinada tarea. Se requieren dos partes:
Especificación de la secuencia de
mensajes que se han de intercambiar.
Especificación del formato de los
datos en los mensajes.
Un protocolo permite que
componentes heterogéneos de sistemas distribuidos puedan desarrollarse
independientemente, y por medio de módulos de software que componen el protocolo,
haya una comunicación transparente entre ambos componentes. Es conveniente
mencionar que estos componentes del protocolo deben estar tanto en el receptor
como en el emisor.
Ejemplos de protocolos usados en
los sistemas distribuidos:
IP: Protocolo de Internet.-
Protocolo de la capa de Red, que permite definir la unidad básica de
transferencia de datos y se encarga del direccionamiento de la información,
para que llegue a su destino en la red.
TCP: Protocolo de Control de
Transmisión.- Protocolo de la capa de Transporte, que permite dividir y ordenar
la información a transportar en paquetes de menor tamaño para su transporte y
recepción.
HTTP: Protocolo de Transferencia
de Hipertexto.- Protocolo de la capa de aplicación, que permite el servicio de
transferencia de páginas de hipertexto entre el cliente WEB y los servidores.
SMTP: Protocolo de Transferencia
de Correo Simple.- Protocolo de la capa de aplicación, que permite el envío de
correo electrónico por la red.
POP3: Protocolo de Oficina de
Correo.- Protocolo de la capa de aplicación, que permite la gestión de correos
en Internet, es decir, le permite a una estación de trabajo recuperar los
correos que están almacenados en el servidor.
MIDDLEWARE
Definición:
Capa de software intermedio entre
el cliente y el servidor. Es la capa de software que nos permiten gestionar los
mecanismos de comunicaciones. Ejemplo si se hace la petición de una página web
desde un browser en el cliente, el middleware determina la ubicación y envía
una petición para dicha página. El servidor Web, interpreta la petición y envía
la página al software intermedio, quien la dirige al navegador de la máquina
cliente que la solicitó.
Existen dos tipos:
Software intermedio general.
Servicios generales que requieren todos los clientes y servidores, por ejemplo:
software para las comunicaciones usando el TCP/IP, software parte del sistema
operativo que, por ejemplo, almacena los archivos distribuidos, software de
autenticación, el software intermedio de mensajes de clientes a servidores y
viceversa.
Software intermedio de servicios.
Software asociado a un servicio en particular, por ejemplo: software que
permite a dos BD conectarse a una red cliente/servidor (ODBC: Conectividad
abierta de BD), software de objetos distribuidos, por ejemplo la tecnología
CORBA permite que objetos distribuidos creados en distintos lenguajes coexistan
en una misma red (intercambien mensajes), software intermedio para software de
grupo, software intermedio asociado a productos de seguridad específicas
(Conexiones Seguras: Sockets), etc.
Características:
Independiza el servicio de su
implantación, del sistema operativo y de los protocolos de comunicaciones.
Permite la convivencia de
distintos servicios en un mismo sistema.
Permite la transparencia en el
sistema.
Modelo tradicional: Monitor de
teleproceso o CICS, Tuxedo, Encina.
Modelo OO: CORBA.
OBJETOS DISTRIBUIDOS
Definición:
En los sistemas Cliente/Servidor,
un objeto distribuido es aquel que esta gestionado por un servidor y sus
clientes invocan sus métodos utilizando un “método de invocación remota”. El
cliente invoca el método mediante un mensaje al servidor que gestiona el
objeto, se ejecuta el método del objeto en el servidor y el resultado se
devuelve al cliente en otro mensaje.
Tecnologías orientadas a los
objetos distribuidos:
Las tres tecnologías importantes
y más usadas en este ámbito son:
RMI.- Remote Invocation Method.-
Fue el primer fremework para crear sistemas distribuidos de Java. El sistema de
Invocación Remota de Métodos (RMI) de Java permite, a un objeto que se está
ejecutando en una Máquina Virtual Java (VM), llamar a métodos de otro objeto
que está en otra VM diferente. Esta tecnología está asociada al lenguaje de
programación Java, es decir, que permite la comunicación entre objetos creados
en este lenguaje.
DCOM.- Distributed Component Object Model.- El Modelo de Objeto Componente
Distribuido, esta incluido en los sistemas operativos de Microsoft. Es un juego
de conceptos e interfaces de programa, en el cual los objetos de programa del
cliente, pueden solicitar servicios de objetos de programa servidores en otros
ordenadores dentro de una red. Esta tecnología esta asociada a la plataforma de
productos Microsoft.
CORBA.- Common Object Request Broker Architecture.- Tecnología introducida por el
Grupo de Administración de Objetos OMG, creada para establecer una plataforma
para la gestión de objetos remotos independiente del lenguaje de programación.
No hay comentarios:
Publicar un comentario