
INTRODUCCIÓN
Con el incremento de la disponibilidad de computadoras personales y potentes servidores, ha habido una mayor tendencia hacia el proceso de datos distribuido (PDD), en el que los procesadores, datos y otros elementos del sistema de proceso de datos pueden estar distribuidos en una organización. Un sistema PDD implica la partición de la función de computación y puede también, conllevar una organización distribuida de las bases de datos, el control de los dispositivos y el control de las interacciones ( redes).
Los computadores personales se utilizan para soportar aplicaciones amigables, en cambio, los servidores almacenan las bases de datos corporativas y el software de sistemas de información y gestión de base de datos. Son necesarios los enlaces entre un computador personal y el servidor, así como entre cada uno de los computadores personales.
Apoyados por la evolución de las capacidades distribuidas de los sistemas operativos y de las utilidades de soporte es que se esta tratando al computador personal como una simple terminal hasta el punto de llegar a tener un alto grado de integración entre las aplicaciones de la misma y la base de datos del servidor.
Se ha explorado un espectro de estas capacidades, como por ejemplo:
ARQUITECTURA DE COMUNICACIONES:
Este es el software que da soporte a una red de computadores independientes. Ofrece soporte para aplicaciones distribuidas, tales como correo electrónico, transferencia de archivos y acceso a terminales remotas. Sin embargo, los computadores conservan una identidad diferenciada para el usuario y para las aplicaciones, las cuales se deben comunicar con otros computadores mediante una referencia explícita. Cada computador tiene su propio sistema operativo y es posible una mezcla heterogénea de computadores y sistemas operativos, siempre que todas las máquinas soporten la misma arquitectura de comunicaciones (Ejemplo: el conjunto de protocolos TCP/IP).
SISTEMA OPERATIVO DE RED:
Es una configuración en la que existe una red de máquinas de aplicación, generalmente estaciones de trabajo monousuario y uno o más servidores. Los servidores proporcionan servicios o aplicaciones a toda la red. Cada computador tiene su propio S.O. privado. El S.O. de red es simplemente un añadido al S.O. local que permite a los servidores de aplicación interactuar con los servidores. El usuario es consciente de que existen múltiples computadores independientes y debe tratar con ellos explícitamente.
SISTEMAS OPERATIVOS DISTRIBUIDOS:
Es un S.O. común compartido por una red de computadores. Para los usuarios es como un S.O. centralizado, les proporciona un acceso transparente a los recursos de numerosos computadores. Un sistema operativo distribuido puede depender de una arquitectura de comunicaciones para las funciones básicas de comunicación.
Lo más significativo en los sistemas de información, en los últimos años, ha sido el avance del proceso cliente / servidor. Este modo de procesamiento esta remplazando a gran velocidad tanto a los métodos de procesamiento basados en computadores centrales, como al proceso centralizado y otras formas alternativas del proceso distribuidos de datos.
1.1 ¿QUÉ ES EL PROCESO CLIENTE /SERVIDOR?:
Algunos de los términos que se encuentran generalmente en las descripciones de las aplicaciones y productos cliente / servidor son:
Interfaz de programas de aplicación (API siglas en ingles):
Un conjunto de funciones y programas de llamada que permiten comunicarse a clientes y servidores.
Cliente: El que solicita información a la red, generalmente una PC o estación de trabajo, y que puede consultar bases de datos u otra información del servidor.
Middleware: Un conjunto de controladores, API u otro software que mejora la conectividad entre las aplicaciones de cliente y un servidor.
Base de Datos Relacional: Una base de datos en donde el acceso a la información esta limitado por la selección de filas que satisfacen todos los criterios de búsqueda.
Servidor: Un computador, generalmente una estación de trabajo muy potente, un mini computador o un mainframe, que contiene información para que los clientes de red puedan manipularla.
Lenguaje de Consulta Estructurado (SQL siglas en ingles): Un lenguaje desarrollado por IBM y estandarizado por ANSI para direccionar, crear, actualizar o consultar bases de datos relaciónales.
La figura intenta resumir lo esencial de los conceptos cliente / servidor
Un entorno cliente / servidor está poblado de clientes y servidores. Las máquinas cliente (PC monousuario o puestos de trabajo) ofrecen una interfaz muy amigable para el usuario final. Los puestos de cliente presentan, en general, un tipo de interfaz gráfica que es más cómoda para los usuarios.
En un entorno cliente / servidor, cada servidor ofrece una serie de servicios de usuario compartidos a los clientes. El tipo más común de servidor es el servidor de base de datos que permite el acceso a los clientes y el uso de un sistema de computación para gestionar la base de datos.
La diferencia de una configuración cliente / servidor de cualquier otro distribuido normal y corriente es una serie de características:
Ø Hay una gran confianza en depositar aplicaciones amigables para los usuarios en sus propios sistemas. Esto da a los usuarios un alto grado de control sobre la medida del tiempo y el estilo de utilización del computador y ofrece a los directores de departamentos la posibilidad de responder a sus necesidades locales.
Ø Al mismo tiempo que las aplicaciones se dispersan se produce un énfasis en la centralización de las bases de datos corporativas y de muchas funciones de utilidad y de gestión de la red. Esto habilita una gestión corporativa para mantener un control global de la inversión total en sistemas de información e informática y, además permite una gestión corporativa que ofrezca interoperatividad, de manera que los sistemas queden vinculados. Al mismo tiempo alivia a los departamentos individuales y divisiones de gran parte de la carga de mantener servicios de computación, permitiéndoles elegir cualquier tipo de máquina e interfaz que necesitan para acceder a los datos y a la información.
Ø Existe un compromiso, tanto por parte de las organizaciones de usuarios como de los fabricantes, hacia los sistemas abiertos y modulares. Esto significa que los usuarios disponen de ofertas mejores en la elección de productos y en la combinación de equipos de varios fabricantes.
Ø El trabajo en red es fundamental para la operación. De este modo, la gestión y seguridad de la red tienen una prioridad alta en la organización y operación de los sistemas de información.
La característica central de la arquitectura cliente / servidor es la ubicación de las tareas del nivel de aplicación entre clientes y servidores.
La figura 2 ilustra el caso más general. Tanto en el cliente como en el servidor el software básico es un sistema operativo que se ejecuta en la plataforma del hardware. Las plataformas y los sistemas operativos del cliente y el servidor pueden ser diferentes. En tanto un cliente particular y un servidor compartan los mismos protocolos de comunicación, y soporten las mismas aplicaciones.
El software de comunicaciones es el que permite interoperar a cliente y servidor. El ejemplo principal es el TCP/IP.
El objeto de todo este software de soporte (comunicaciones y sistema operativo) es proporcionar una base para las aplicaciones distribuidas.
Las funciones reales de la aplicación pueden repartirse entre cliente y servidor de forma que se optimen los recursos de la red y de la plataforma, así como la capacidad de los usuarios para realizar varias tareas y cooperar el uno con el otro en el uso de recursos compartidos. En algunos casos, estos requisitos dictan que el grueso del software de la aplicación se ejecute en el servidor y, en otros casos, la mayor parte de la lógica de la aplicación se ubica en el cliente.
Un factor esencial para el éxito de un entorno cliente / servidor es la manera en que el usuario interactúa con el sistema como un todo. De esta forma, el diseño de la interfaz de usuario de la máquina es vital.
En la mayoría de los sistemas cliente / servidor, se da prioridad en ofrecer una interfaz de usuario gráfico que sea fácil de utilizar y de aprender, pero potente y flexible. Así pues, se puede pensar en un módulo de servicios de presentación en el puesto de trabajo del cliente, responsable de ofrecer una interfaz fácil de usar a las aplicaciones distribuidas disponibles en el entorno.
Estación de trabajo cliente Servidor

La característica central de la arquitectura cliente / servidor es la ubicación de las tareas (del nivel de aplicación) entre clientes y servidores.
Tanto en el cliente como en el servidor el software básico es un sistema operativo. Las plataformas y los sistemas operativos del cliente y del servidor pueden ser diferentes. El software de comunicaciones (Ej. TCP IP) es el que permite ínter-operar a cliente y servidor. El objeto de todo este software de soporte es proporcionar una base para las aplicaciones distribuidas.
En tanto que un cliente particular y un servidor compartan los mismos protocolos de comunicación y soporten las mismas aplicaciones las diferencias entre plataformas y sistemas operativos no son relevantes.
Las funciones reales de la aplicación pueden repartirse entre cliente y servidor de forma que se optimicen los recursos de la red y de la plataforma así como la capacidad de los usuarios para realizar varias tareas y cooperar el uno con el otro en el uso de los recursos compartidos. En algunos casos estos requisitos dictan que el grueso del software de la aplicación se ejecute en al servidor, mientras que en otros casos la mayor parte de la lógica de la aplicación se ubica en el cliente.
En la mayoría de los sistemas cliente / servidor, se hace un gran hincapié en ofrecer una interfaz de usuario grafico (GUI, Grafica l User Interfaz)

Como el ejemplo que ilustra el “concepto de división de la lógica de una aplicación entre cliente y servidor” considérese la familia más común de aplicaciones cliente / servidor: aquellas que utilizan base de datos relaciónales. La interacción entre el cliente y el servidor se hace en forma de transacciones, donde el cliente realiza una petición a la base de datos y recibe una respuesta de aquella.
El servidor mantiene la base de datos mediante complejos sistemas gestores de base de datos.
En las maquinas clientes se pueden guardar una variedad de aplicaciones que hagan uso de la base de datos. El software que enlaza al cliente con el servidor es el que le permite al cliente realizar peticiones de acceso a la base de datos del servidor (Ej. SQL).

Supongamos que contamos con un servidor que solo se debe ocupar de la gestión de la base de datos -una base de datos de 1 millón de archivos por ej.- y que toda la lógica de la aplicación –el software de tratamiento numérico u otras clases de análisis de datos- resida en el cliente. Y el cliente realiza una serie de consultas, que da como resultados 1 solo archivo.
Esta aplicación se adapta bien a la arquitectura cliente / servidor por dos razones:
1. Contener la base de datos requiere de un disco grande o una serie de discos, una PC y una arquitectura de E/S de alta velocidad.
2. Mover todo el archivo de la base de datos al cliente para realizar la búsqueda introducirá una carga de trafico demasiado grande en la red. Por lo tanto no es suficiente con que el servidor solo sea capaz de recuperar archivos en nombre del cliente, el servidor debe disponer de la lógica de la base de datos que permita realizar búsquedas de parte del cliente.
Ahora consideremos que el cliente realiza una sola consulta que da como resultado la transmisión de 300.000 archivos por la red, esto es inaceptable. Una solución al problema que conserva la arquitectura cliente / servidor es mover parte de la lógica de la aplicación al servidor, que permita a este realizar análisis de datos, así como recuperación y análisis de datos.
Dentro del entorno general cliente / servidor se dispone de una gama de posibles implementaciones que “dividen el trabajo entre el cliente y el servidor de manera diferente.
1. Proceso basado en una maquina central: el proceso basado en host(maquina central) es en el cual casi todo el tratamiento se realiza en el computador central. La interfaz de usuario consiste a menudo en un terminal tonto, incluso si el usuario emplea un microprocesador el puesto de usuario se limita en general al papel de emulador de terminales.
2. Proceso basado en servidor: es aquel en que el servidor es básicamente responsable de ofrecer una interfaz de usuario grafica, mientras casi todo el tratamiento lo hace el servidor. La razón fundamental que subyace en dichas configuraciones es que los puestos de trabajo se adaptan mejor a una interfaz amigable y que las bases de datos y las aplicaciones pueden mantenerse fácilmente en sistemas centrales. Este tipo de configuraciones no se presta a ganancias significativas.
3. Proceso basado en el cliente: en el otro extremo, casi todo el proceso de la aplicación puede hacerse en el cliente, con la excepción de las rutinas de validación de datos y otras funciones lógicas de la base de datos que se realizan mejor en el servidor. Permite al usuario utilizar aplicaciones a la medida de sus necesidades locales.
4. Proceso cooperativo: el proceso de la aplicación se lleva a cabo de forma optimizada, aprovechando la potencia de las maquinas cliente y servidora y la distribución de los datos. Esta configuración es más compleja de instalar y mantener, pero a largo plazo, este tipo de configuración puede ofrecer una mayor ganancia de productividad del usuario y una mayor eficacia de la red.
Los modelos con las configuraciones en las que gran parte de la carga esta en el cliente son llamados cliente grueso, soportan entre 25 y 150 usuarios. El mayor beneficio de esta configuración es que saca provecho del computador de escritorio, descargando a los servidores del procesamiento de aplicaciones, haciéndolos más eficientes y disminuyendo la posibilidad de que sean un cuello de botella.
Si embargo existen barios inconvenientes pues la utilización de mas funciones sobrecarga rápidamente la capacidad de las maquinas de escritorio.
Esta configuración es difícil de mantener, actualizar o reemplazar aplicaciones distribuidas entre cintos de maquinas de escritorio. Los modelos con las configuraciones en las que la menor parte de la carga esta en el cliente son llamados cliente delgado, este enfoque casi imita al enfoque de host centralizado.
ARQUITECTURA CLIENTE / SERVIDOR DE TRES CAPAS:
La arquitectura tradicional cliente / servidor implica dos niveles o capas: una capa cliente y una servidor. En la arquitectura de tres capas el software de aplicación esta distribuido en tres tipos de maquinas: una maquina de usuario, un servidor de capa intermedia y servidor final (Backend).
La maquina de usuario es la maquina de cliente y el modelo de tres capas utiliza, generalmente, un cliente delgado. Las maquinas de capa intermedia son esencialmente pasarelas entre los clientes delgado y una variedad de servidores finales de base de datos, pueden convertir protocolos y traducir un tipo de consulta de base de datos a otro. Además puede mezclar e integrar resultados de distintas fuentes de datos. Por ultimo puede servir como pasarela entre aplicaciones de computador de escritorio y antiguas aplicaciones finales actuando de mediadoras entre los dos mundos.
La interacción entre el servidor de capa intermedia y el servidor final también sigue el modelo cliente / servidor. De esta forma el sistema de capa intermedia actúa a la ves como cliente y como servidor.
CONSISTENCIA DE LA CACHE DE ARCHIVOS:
Cuando se utiliza un servidor de archivos, el rendimiento de la E/S referente a los accesos locales a archivos puede degradarse por causa del retardo introducido por la red. Para reducir esta carga, los sistemas individuales pueden usar caches de archivos para almacenar los registros a los que se ha accedido hace poco.
Cuando un proceso realiza un acceso a archivo, la petición es cursada, en primer lugar, a la cache del puesto de trabajo del proceso. Si no satisface la petición, se pasa al disco local o al servidor donde se almacena el archivo. Una vez en el servidor, se examina primero su cache y si se produce un fallo de acceso, se accederá al disco del servidor. Se suele utilizar un procedimiento de doble cache para reducir el trafico de comunicaciones (cache del cliente) y la E/S a disco (cache del servidor).
Es un conjunto de interfaces y protocolos estándares de comunicación. Con interfaces estándares de programación, es fácil de implementar una misma aplicación en una variedad de tipos de servidores y de puestos de trabajo. Esta tiene un beneficio para los clientes puesto que estos compran aplicaciones no servidores, los clientes solo elegirán entre aquellos servidores donde se ejecuten las aplicaciones que ellos deseen.
Se necesitarán protocolos estándares para enlazar las distintas interfaces de servidor con los clientes que necesiten acceder a ellos.
Existe una gran variedad de paquetes middleware, simples o complejos. Todos tienen en común la capacidad de ocultar las complejidades y diferencias de los diferentes protocolos de red y sistemas operativos.
ARQUITESTURA MIDDLEWARE:
La figura propone el papel del middleware en una arquitectura cliente/servidor. El papel exacto del componente middleware dependerá del estilo del proceso distribuido que se utilice.

- Papel del middleware en la arquitectura cliente/servidor.
En el middleware existen componentes de cliente y servidor. La finalidad básica del middleware es hacer que una aplicación o usuario del cliente acceda a una serie de servicios del servidor sin preocuparse de las diferencias entre servidores. Considerando un área específica de aplicación, se supone que el SQL proporciona una forma estándar de acceder a un base de datos relacional tanto a usuarios o aplicaciones locales como remotos. Sin embargo muchos fabricantes de base de datos relacionales, aunque también soportan SQL le han añadido sus propias ampliaciones, logrando de esta forma una diferenciación de productos, pero a la vez posibles incompatibilidades.
Por ejemplo considérese el caso de un sistema distribuido en el que los datos principales están guardados en una base de datos Gupta, mientras que otro tipo de información adicional, pero necesaria está en una base de datos Oracle. Cuando un usuario necesite acceder a determinados registros, no deberá preocuparse del fabricante de la base de datos que contiene los registros que necesite. El middleware proporciona una capa software que permite un acceso uniforme a estos sistemas diferentes.

-Visión lógica del middleware
Es interesante considerar el papel del middleware desde un punto de vista lógico más que desde la implementación . El middleware permite cumplir la promesa del proceso distribuido. El sistema distribuido entero puede verse como un conjunto de aplicaciones y recursos disponibles para los usuarios. Estos no necesitan preocuparse de la ubicación de los datos ni de la ubicación de las aplicaciones. Todas las aplicaciones operan sobre una interfaz uniforme de programación de aplicaciones (API). Todas las aplicaciones operan sobre una interfaz uniforme de programación de aplicaciones (API). El middleware, que atraviesa todas las plataformas clientes y servidoras, es el responsable de encaminar las peticiones de los clientes al servidor aprEsta instalación es un ejemplo de cómo se aplica el middleware para integrar productos dispares, en este caso, se usa el middleware para soslayar las incompatibilidades de redes y sistemas operativos. Una red central conecta redes DECnet. Novell y TCP/IP. El middleware, que se ejecuta en cada componente de la red, asegura que todos los usuarios de la red disponen de un acceso transparente a las aplicaciones y los recursos de cualquiera de las tres redes.
Aunque hay una amplia variedad de productos del middleware, estos se basan normalmente en uno de los mecanismos básicos: el paso de mensajes o llamada a procedimiento remoto.
Ejecutando en la red Novell Ejecutando sobre la DECnet
Hay aplicaciones, middleware, y en los PC hay aplicaciones
Software de red Novell y OS/2 de IBM y middleware

En los sistemas de procesos distribuidos reales se suele dar el caso de que los computadores no compartan una memoria principal: cada una es un sistema aislado. Por lo tanto, no es posible, emplear técnicas de comunicación entre procesadores basadas en memoria compartida, como son los semáforos y el uso de un área de memoria común. En su lugar, se usa técnicas basadas en el paso de mensajes. Entre los procedimientos más usuales está la aplicación directa de los mensajes, tal como se hace en un sistema único. El segundo es una técnica distinta que se basa en el paso de mensajes como función básica: la llamada a procedimiento remoto.



Paso distribuido de mensajes para implementar la funcionalidad cliente/servidor. Un proceso cliente solicita un servicio y envía, a un proceso servidor, un mensaje que contiene un petición dl servicio. El proceso servidor satisface la petición y envía un mensaje de respuesta. En su forma más simple, sólo se necesita 2 funciones: Send y Receive. La función Send debe especificar un destino e incluir el contenido del mensaje. La función Receive dice de quien se desea recibir mensajes (incluyendo a todos) y proporciona un almacenamiento intermedio donde se guardará el mensaje.

Los procesos hacen uso de los servicios de un módulo de paso de mensajes. Las solicitudes de servicios pueden expresarse en forma de primitivas y parámetros. Una primitiva especifica la función a realizar y los parámetros se usan para pasar datos e información de control. El formato real de las primitivas depende del software de paso de mensajes. Pueden ser llamadas a procedimientos o mensajes a un proceso que forme parte del sistema operativo.
La primitiva Send la utiliza el proceso que quiere enviar el mensaje. Sus parámetros son el identificador del proceso de destino y el contenido del mensaje. El módulo de paso de mensajes construirá una unidad de datos que incluya estos dos elementos. Esta unidad de datos se envía a la máquina que alberga el proceso de destino mediante algún tipo de servicio de comunicaciones, como TCP/IP. Cuando se recibe la unidad de datos en el sistema de destino, se encaminará, mediante el servicio de comunicaciones, hacia el módulo de paso de mensajes. Este módulo examina el campo IdProceso y almacena el mensaje en el buffer de dicho proceso.
En este escenario, el proceso receptor debe anunciar su intención de recibir mensajes, designando un área de almacenamiento intermedio e informando al módulo de paso de mensajes por medio de una primitiva Receive. Una solución alternativa consiste en no exigir dicho anuncio. En su lugar, cuando el módulo de paso de mensajes, avisará al proceso de destino con algún tipo de señal de recepción y después hará que el mensaje recibido esté disponible en un buffer compartido.
Un servicio de paso de mensajes fiable que garantiza la entrega, si es posible. Dicho servicio deberá hacer uso de un protocolo de transporte fiable o de alguna lógica similar y llevaría a cabo control de errores, acuse de recibo, retransmisión y reordenación de mensajes desordenados. Como la entrega está garantizada, no es necesario hacer que el proceso emisor sepa que se entregó el mensaje. Sin embargo, puede ser útil proporcionar un acuse de recibo al proceso emisor de manera que se entere que ya se ha entregado. En cualquier caso, si el servicio falla al completar la entrega, se notificará de esta falla al proceso emisor.
En el otro extremo, el servicio de paso de mensajes puede enviar simplemente el mensaje a la red de comunicaciones sin informar de su éxito o de su fracaso. Esta alternativa reduce enormemente la complejidad y la sobrecarga de proceso y de comunicaciones en el servicio de paso de mensajes. Las aplicaciones que necesiten confirmación de que se han enviado un mensaje pueden usar mensajes de repetición y respuesta para cumplir con tal requisito.
Con primitivas no bloqueantes, o asíncronas, un proceso no queda suspendido como resultado de un Send o un Receive. De esta forma, cuando un proceso emita una primitiva Send, el sistema operativo le devolverá el control tan pronto como el mensaje se haya puesto en cola para su transmisión o se haya hecho una copia. Si no se hace copia, cualquier cambio que realice el emisor en el mensaje antes de la transmisión , o durante la misma, se ara bajo la responsabilidad del mismo.
Cuando el mensaje se aya trasmitido o se aya copiado a un lugar seguro para su posterior trasmisión, se interrumpe al proceso emisor para informarle de que el buffer del mensaje puede reciclarse. De forma similar Receive no bloqueante lo emite un proceso para después seguir ejecutándose. Cuando llega un mensaje se informa al proceso mediante interrupción o bien este puede comprobar periódicamente su estado.
Las primitivas no bloqueantes ofrecen un empleo eficiente y flexible del servicio de paso de mensajes. Las desventajas de este enfoque es que los programas que emplean esta primitivas son difíciles de probar y depurar. Las secuencias irreproducibles dependientes del tiempo pueden originar problemas sutiles y complicados.
La otra alternativa es emplear primitivas bloqueantes, o síncronas. Un Send bloqueante no devuelve el control al proceso emisor hasta que el mensaje se haya trasmitido (servicio no fiable) o hasta que el mensaje se haya enviado y obtenido un acuse de recibo (servicio fiable).Un Receive bloqueante no devuelve el control hasta ubicado en el buffer asignado.
Una variante del modelo básico de paso de menaje es la llamada a procedimiento remoto (RPC).
Es un método común muy aceptado actualmente para encapsular la comunicación en un sistema distribuido. Lo fundamental de la técnica es permitir que programas de máquinas diferentes interactúen mediante la semántica de llamadas retorno a simples procedimientos, como si los dos programas estuvieran en la misma máquina. Es decir, se va a usar la llamada a procedimiento para acceder a servicios remotos. La popularidad de este enfoque se debe a las siguientes ventajas.
ü La llamada a procedimiento es una abstracción muy usada, aceptada y bien comprendida.
ü El empleo de llamadas a procedimientos remoto permite que las interfaces remotas se especifiquen como un conjunto de operaciones con nombre y de un tipo determinado. De este modo, la interfaz puede documentarse de forma clara y los problemas distribuidos pueden comprobarse estadísticamente para detectar errores tipo.
ü Como la interfaz es estándar y está definida de forma precisa, el código de comunicaciones de una aplicación puede generarse automáticamente.
ü Como la interfaz es estándar y está definida de forma precisa, los desarrolladores de software pueden escribir módulos clientes y servidores que pueden trasladarse ente computadores y sistemas operativos con pocas modificaciones.
El mecanismos de las llamadas a procedimiento remoto puede considerarse como un refinamiento del paso de mensajes fiables y bloqueantes.
El programa llamador realiza una llamada normal a un procedimiento con los parámetros situados en su máquina. Por ejemplo:
CALL P(X,Y)
Donde: P = nombre del procedimiento.
X = argumentos pasados.
Y = valores devueltos.
El hecho de que se intente ejecutar un procedimiento remoto de otra máquina puede resultar o no trasparente al usuario. El espacio de direcciones del llamador debe incluir un procedimiento P de presentación, o debe enlazarse dinámicamente en el momento de la llamada. Este procedimiento crea un mensaje que identifica al procedimiento llamado, e incorpora los parámetros. Luego envía el mensaje y queda en espera de una respuesta. Una vez recibida la respuesta, el procedimiento de presentación retorna al programa llamador, proporcionando los valores devueltos.
En la máquina remota, se asocia al procedimiento invocado otro procedimiento de presentación. Cuando llega un mensaje se examina y se genera una llamada local CALL P(X,Y). Se llama a este procedimiento de forma local y los supuestos sobre dónde encontrar los parámetros, el estado de pila y otros, son idénticos al caso de una llamada local.
3.1 PASO DE PARÁMETROS:
La mayoría de los lenguajes de programación permiten pasar parámetros como valores (llamada por valor) o como un puntero a la ubicación que contiene el valor (llamada por referencia). La llamada por valor es sencilla para una llamada a procedimiento remoto: los parámetros simplemente se copian en el mensaje y se envían al sistema remoto. Las llamadas por referencia son más difíciles de implementar. Hace falta un único puntero para cada objeto, válido en todo el sistema. El costo de este servicio puede ser muy alto y no valer la pena.
3.2 REPRESENTACION DE PARAMETROS:
Otra cuestión es cómo representar los parámetros y los resultados en los mensajes. Si el programa llamador y el llamado están escritos en el mismo lenguaje de programación tienen el mismo tipo de máquina y el mismo sistema operativo, los requisitos de representación no representan un problema. Pero si existen diferencias en estos aspectos, habrá diferencias en la manera en que se representan los datos numéricos e incluso los textos. Si se emplea una arquitectura de comunicaciones, este problema será resuelto por el nivel de presentación. Pero el costo de estas arquitecturas, ha llevado al diseño de servicios de llamada a procedimiento remoto que ofrecen servicios de comunicaciones básicos. En este caso la conversión la realiza el servicio de llamada a procedimiento remoto.
La mejor solución para este problema es ofrecer un formato estándar para los objetos comunes, como los enteros, números en coma flotante, caracteres y cadenas de caracteres. Así los parámetros propios de cualquier máquina pueden convertirse a la representación estándar.
3.3 ENLACE CLIENTE / SERVIDOR:
Especifica la forma en que se establecerá la relación entre un procedimiento remoto y el programa llamador. Un enlace se forma cuando dos aplicaciones establecen una conexión lógica y están preparadas para intercambiar órdenes y datos.
Los enlaces no persistentes suponen que la conexión lógica se establece entre dos procesos en el momento de la llamada remota y que la conexión desaparece ni bien se devuelvan los valores. Como una conexión requiere mantener información de estado en los dos extremos, consume recursos. El estilo no persistente se utiliza para conservar esos recursos. Por otro lado el costo de establecer las conexiones hace que los enlaces no persistentes no sean adecuados para procedimientos remotos que se invocan con frecuencia.
Con enlaces persistentes, una conexión establecida para una llamada a procedimiento remoto, se mantiene después que el procedimiento termina. Esta conexión podrá ser utilizada para futuras llamadas a procedimientos remotos; pero esta finalizará si transcurre un determinado período de tiempo y no es utilizada para aplicaciones que realizan llamadas a procedimientos repetidamente, el enlace persistente, mantiene la conexión lógica y permite que una secuencia de llamadas y retornos utilice la misma conexión.
3.4 SINCRONISMO FRENTE A ASINCRONISMO:
Las llamadas a procedimiento remoto tradicionales son síncronas, lo que requiere que el proceso llamador espere hasta que el proceso llamado devuelva un valor (RPC síncrona).
La RPC síncrona no es capaz de explotar por completo el paralelismo inherente a las aplicaciones distribuidas; esto limita el tipo de interacción que las aplicaciones distribuidas pueden realizar y así obtienen un rendimiento menor.
Para ofrecer una mayor flexibilidad se implementaron varios servicios de RPC asíncrona que consiguen un grado mayor de paralelismo. Las RPC asíncronas no bloquean al llamador, permitiendo que la ejecución de los clientes continúe localmente y en paralelo con la llamada al servidor.
Una aplicación de las RPC asíncronas es hacer que un cliente invoque repetidamente a un servidor, generando una serie de peticiones a la vez. La sincronización del cliente y el servidor puede conseguirse de dos formas:
El algunos esquemas las RPC asíncronas no exigen una respuesta al servidor, otros requieren o permiten una respuesta, pero el llamador no queda a la espera de la misma.
3.5 MECANISMOS DE ORIENTACIÓN A OBJETOS:
La tecnología de orientación a objetos se hace importante en el diseño de los sistemas distribuidos, lo diseñadores cliente/servidor han empezado a abarcar este enfoque. Con este enfoque los clientes y servidores envían mensajes y reciben respuestas de objetos.
Un cliente que necesita un servicio envía una petición a un agente de servicio de objetos, este actúa como un directorio que contiene todos los servicios remotos disponibles en la red. El agente llama al objeto apropiado y le pasa los datos. entonces el objeto remoto atiende la petición y responde al agente, el que devuelve la respuesta al cliente.
El éxito del enfoque de orientación a objetos depende de la estandarización del mecanismo de objetos. Pero existen varios rivales en esta área: uno es COM (Modelo Común de Objetos) de Microsoft. Otro es el CORBA (Arquitectura Común Intermedia de Petición de Objetos), respaldada por IBM, Aplple, Sun y otros fabricantes.
4.AGRUPACIONES
Las agrupaciones son una alternativa al Multiproceso Simétrico (SMP) como un método de proporcionar un alto rendimiento y alta disponibilidad y son particularmente atractivas para aplicaciones de servidor. Una agrupación se puede definir como un grupo de computadores completos interconectados que trabajan juntos como un recurso de proceso unificado que puede crear la ilusión de ser una máquina. El término computadores completos se refiere a un sistema que puede ejecutarse por si mismo, independiente de la agrupación; a cada uno de los computadores de una agrupación se la llama, normalmente, nodo.
Las cuatro ventajas, también consideradas objetivos o requisitos de diseño, son:
· Escalabilidad total: es posible crear agrupaciones grandes que sobrepasen ampliamente las máquinas autónomas más grandes. Una agrupación puede tener docenas o incluso cientos de máquinas, cada una en un multiprocesador.
· Escalabilidad incremental: una agrupación se configura de tal forma que es posible añadir sistemas nuevos a la agrupación en pequeños incrementos. Así pues, un usuario puede empezar con un sistema modesto y ampliarlo a medida que las necesidades crezcan, sin tener que pasar por una actualización importante en la que se sustituya el sistema pequeño existente por un sistema mayor.
· Alta disponibilidad: puesto que cada uno de los nodos de una agrupación es un computador autónomo, el fallo de un nodo no implica la pérdida de servicio. En muchos productos, el software gestiona automáticamente la tolerancia a los fallos.
· Mejor relación rendimiento/precio: mediante el uso de bloques de construcción adaptados, es posible unificar una agrupación con una potencia de proceso igual o mayor que una máquina grande, a un precio mucho más bajo.
Las agrupaciones se clasifican de varias y muy diferentes formas. Quizás la clasificación más simple se basa en si los computadores de una agrupación comparten el acceso a los mismos discos. La figura 1 muestra una agrupación de dos nodos en donde la única interconexión se realiza por medio de un enlace de alta velocidad que se puede utilizar para el intercambio de mensajes y para coordinar la actividad de la agrupación. El enlace puede ser una LAN compartida con otros computadores externos a la agrupación, o puede ser un servicio de interconexión dedicado, donde un computador o más de la agrupación tendrá un enlace LAN o WAN de manera que exista una conexión entre la agrupación servidora y los sistemas clientes remotos. Cada uno de los computadores ha sido representado como un multiprocesador, debido a que mejora el rendimiento y la disponibilidad.
En la figura 2, la otra alternativa es una agrupación con discos compartidos. En este caso, generalmente existe un enlace de mensajes entre nodos. Además, hay un subsistema de disco directamente enlazado a varios computadores de la agrupación. En esta figura, el subsistema de disco común es un sistema RAID. La utilización de esta tecnología de discos es común en las agrupaciones para que la alta disponibilidad lograda por la presencia de varios computadores no se vea comprometida por un disco compartido, que es único punto de fallo.

Un método habitual, más antiguo, es el de espera pasiva consiste simplemente en hacer que u computador gestione toda la carga de proceso mientras que otro computador permanece inactivo, esperando para hacerse cargo en caso de fallo de la primaria. Para coordinar las máquinas, el sistema activo o primario envía periódicamente un mensaje de “latido” a la máquina en espera. Si estos mensajes dejan de llegar, el computador en espera supone que el servidor primario ha fallado y se pone a funcionar. Este método aumenta la disponibilidad, pero no mejora el rendimiento. Es más, si la única información que se intercambian los dos sistemas es un mensaje de latido, y si los dos sistemas no comparten discos comunes, el computador en espera ofrece una funcionalidad de respaldo pero no tiene acceso a las bases de datos gestionadas por las primarias.
La espera pasiva generalmente no se denomina agrupación. El término agrupación se reserva para múltiples computadores interconectados que realizan todo proceso activo mientras mantienen la imagen externa de un solo sistema. Para hacer referencia este tipo de configuración generalmente se utiliza el término secundaria activa. Se pueden identificar tres métodos de agrupaciones:
· Servidores separados: cada computador es un servidor separado, con sus propios discos y sin compartimientos de discos entre los sistemas (Figura 1). Este esquema proporciona un alto rendimiento así como una alta disponibilidad. En este caso, se necesita algún tipo de gestión o software de planificación para asignar las solicitudes entrantes de los clientes a los servidores para que así la carga esté equilibrada y se logre una alta utilización. Sería deseable disponer de una capacidad de tolerancia a los fallos, lo que significa que si un computador falla cuando está ejecutando una aplicación, otro computador de la agrupación puede hacerse cargo de la misma y terminarlo. Para que esto ocurra los datos deben copiarse constantemente entre los sistemas, de forma que cada uno tenga acceso a los datos actuales de los otros. La sobrecarga de este intercambio de datos asegura una alta disponibilidad a costa de penalizar el rendimiento.
· Compartir nada: los discos comunes se dividen en volúmenes y cada volumen pertenece a un único computador. Si ese computador falla, la agrupación se debe reconfigurar para asociar los volúmenes del computador que ha fallado a otros computadores.
Compartir discos: múltiples computadores comparten los mismos discos al mismo tiempo, para que cada computador tenga acceso a todos los volúmenes de todos los discos. Este enfoque necesita del uso de algún tipo de función de bloqueo para garantizar que sólo puede acceder a los datos un solo computador cada vez.
|
Método de agrupación |
Descripción |
Ventajas |
Limitaciones |
Espera pasiva |
Un servidor secundario se hace cargo si falla el servidor primario. |
Sencillo de implementar. |
Alto costo porque el servidor secundario no está disponible para otras tareas de proceso. |
Secundaria activa |
El servidor secundario también se utiliza para tareas de proceso. |
El costo es reducido porque los servidores secundarios se pueden utilizar para el proceso. |
Incremento de la complejidad. |
|
Servidores separados |
Los servidores separados tienen sus propios discos. Los datos se copian continuamente del servidor primario al secundario. |
Alta disponibilidad. |
Incrementa la sobrecarga en el servidor y el uso de la red debido a las operaciones de copia. |
|
Servidores conectados a discos |
Los servidores están conectados a los mismos discos, pero cada servidor tiene su propio disco. Si un servidor falla, sus discos pasan a estar a cargo de otro servidor. |
Reduce la sobrecarga en el servidor y el uso de la red debido a la eliminación de las operaciones de copia. |
Generalmente necesita tecnología RAID o de discos espejos para compensar el riesgo de un fallo de disco. |
|
Servidores compartiendo discos |
Múltiples servidores comparten acceso simultáneo a los discos. |
Baja la sobrecarga en el servidor y uso de la red. Reduce el riesgo de caída por un fallo de disco. |
Requiere software de gestión de bloqueos. Normalmente se utiliza con tecnología RAID o discos espejos. |
GESTION DE FALLOS:
La forma en que se gestionan los fallos depende del método de agrupación utilizado. (Tabla superior). En general, para tratar los fallos se pueden seguir dos enfoques: agrupaciones de alta disponibilidad y agrupaciones tolerantes a los fallos. Una agrupación de alta disponibilidad ofrece una alta probabilidad de que todos los recursos estén siendo utilizados. Si se produce un fallo, como una caída del sistema o la pérdida de un volumen de disco, se pierden las consultas en progreso. Cualquier consulta perdida, si se retoma, será atendida por un computador diferente de la agrupación.
Sin embargo, el sistema operativo de la agrupación no garantiza el estado de las transacciones parcialmente ejecutadas. Debería ser gestionada en el nivel de aplicación.
Una agrupación tolerante a fallos garantiza que los recursos siempre van a estar disponibles. Esto se logra mediante el uso de discos compartidos redundantes y de mecanismos de respaldo para transacciones sin confirmar y transacciones completadas y confirmadas.
La función de intercambiar una aplicación y los datos de un sistema fallido por un sistema alternativo de la agrupación se denomina resistencia a fallos (failover). La restauración de aplicaciones y de datos al sistema original una vez que se ha reparado, se denomina restauración de fallos (fail back). La restauración de fallos puede ser automática, pero es deseable sólo si se ha solucionado realmente el problema y es improbable que vuelva a ocurrir. Si no fuera así, una restauración de fallos automática puede originar fallos posteriores en los recursos al ir y volver entre computadores, dando lugar a problemas en el rendimiento y en la recuperación.
EQUILIBRO DE CARGA:
Una agrupación requiere una capacidad eficaz para balancear la carga entre los computadores disponibles. Esto incluye el requisito de que la agrupación sea incrementalmente escalable. Cuando se añade un nuevo computador a la agrupación, la función de equilibrio de carga debería incluir automáticamente este computador en la planificación de aplicaciones. Los mecanismos middleware necesitan reconocer qué servicios pueden aparecer en los diferentes miembros de la agrupación y pueden migrar de un miembro a otro.
PROCESO PARALELO:
En algunos casos, el uso efectivo de una agrupación requiere ejecutar software desde una sola aplicación en paralelo. Para este problema se proporcionan tres enfoques generales:
· Compilador paralelo: un compilador paralelo determina, en tiempo de compilación, qué partes de la aplicación se pueden ejecutar en paralelo. Estas se dividen para asignarlas a distintos computadores de la agrupación. El rendimiento depende de la naturaleza del problema y de lo bueno que sea el diseño del compilador.
· Aplicaciones paralelas: el programador diseña la aplicación desde el principio para ejecutar en una agrupación y utiliza el paso de mensajes para mover datos, cuando sea necesario, entre los nodos de la agrupación. Esto aumenta la carga sobre el programador pero puede ser la mejor aproximación para explotar las agrupaciones en algunas aplicaciones.
· Computación paramétrica: este enfoque sólo se puede utilizar si el centro de la aplicación es un algoritmo o programa que debe ejecutarse muchas veces, cada vez con un conjunto diferente de condiciones y parámetros. Para que este enfoque sea efectivo, se necesitan herramientas de procesamiento paramétrico para organizar, ejecutar y gestionar los trabajos en el orden adecuado.
4.3 ARQUITECTURA DE COMPUTADORES EN AGRUPACIÓN:
Una típica arquitectura de agrupación (figura 3) es aquella en la cual cada computador está conectado mediante una LAN de alta velocidad o hardware de interconexión. Cada una es capaz de funcionar independientemente. Además, en cada computador hay instalada una capa de middleware para permitir el funcionamiento de la agrupación. El middleware de la agrupación ofrece una imagen unificada del sistema al usuario, conocida como imagen de sistema único. El middleware es también responsable de ofrecer una alta disponibilidad, mediante el balanceo de carga y respondiendo a los fallos en los componentes individuales. Los siguientes servicios y funciones son deseables en un middleware de agrupación:
· Único punto de entrada: un usuario se identifica en la agrupación en lugar de en un computador individual.
· Única jerarquía de archivos: el usuario ve una única jerarquía de directorios bajo el mismo directorio raíz.
· Único punto de control: existe una estación de trabajo por defecto utilizada para la gestión y el control de la agrupación.
· Única gestión de red virtual: cualquier nodo puede acceder a cualquier punto de la agrupación, aún cuando la configuración de la agrupación real pueda estar formada por múltiples redes interconectadas. Existe una única red virtual.
· Único espacio de memoria: la memoria compartida distribuida permite que los programas compartan variables.
· Único sistema de gestión de trabajos: con un planificador de trabajos en agrupación, un usuario puede enviar un trabajo sin especificar al computador que lo va a ejecutar.
· Única interfaz de usuario: una interfaz gráfica común da soporte a todos los usuarios, independientemente de la estación de trabajo desde la que entren en la agrupación.
· Único espacio de E/S: cualquier nodo puede acceder de forma remota a cualquier dispositivo de disco o dispositivo periférico sin conocer su ubicación física.
· Puntos de comprobación: esta función guarda periódicamente el estado del proceso y los resultados intermedios del procesamiento, para permitir la recuperación después de un fallo.
· Migración de procesos: esta función permite el equilibrio de la carga.
Los cuatro últimos elementos de la lista anterior aumentan la disponibilidad de la agrupación. Los puntos restantes tienen relación con ofrecer una imagen de sistema único.
Además, una agrupación puede incluir herramientas software para permitir la ejecución eficiente de programas capaces de ejecutarse en paralelo. La siguiente figura es un claro ejemplo de ello.

4.4 COMPARACIÓN ENTRE AGRUPACIONES Y SMP:
Tanto las agrupaciones como los multiprocesadores simétricos ofrecen una configuración de múltiples procesadores para dar soporte a aplicaciones de alta demanda.
La ventaja principal del enfoque SMP es que más que fácil de gestionar y de configurar que una agrupación. SMP es más cercano al modelo original del procesador único para el que están escritas casi todas las aplicaciones. El cambio principal que se requiere para pasar de un monoprocesador a un SMP es la función de planificación. Otra ventaja del SMP es que, generalmente, ocupa menos espacio físico y necesita menos potencia que una agrupación de las mismas características. Una última ventaja importante es que los productos SMP están más establecidos y son más estables.
Sin embargo, las agrupaciones son superiores en términos de disponibilidad, puesto que todos los componentes del sistema pueden hacerse muy redundantes.
5.SERVIDOR DE AGRUPACINES DE WINDOWS 2000
El Servidor de Agrupaciones de Windows 2000 (W2K) es una agrupación que sigue el esquema compartir nada, en el que cada volumen de disco y otros recursos pertenecen a un solo sistema al mismo tiempo.
El diseño del Servidor de Agrupaciones de W2K utiliza los siguientes conceptos:
· Servicio de agrupación: el conjunto de software de cada nodo que gestiona toda actividad específica de la agrupación.
· Recurso: un elemento gestionado por el servicio de agrupación. Todos los recursos son objetos que representan los recursos reales del sistema, incluyendo dispositivos de hardware físicos tales como unidades de disco y tarjetas de red, además de elementos lógicos tales como volúmenes lógicos de disco, direcciones TCP/IP, aplicaciones completas y bases de datos.
· En línea: se dice que un recurso está en línea en un nodo cuando está ofreciendo servicio en ese nodo concreto.
· Grupo: una colección de recursos gestionados como una unidad. Normalmente, un grupo contiene todos los elementos necesarios para ejecutar una aplicación específica y para que los sistemas cliente se conecten al servicio ofrecido por esa aplicación.
Este último concepto es particularmente importante. Un grupo combina recursos en unidades más grandes que son fáciles de gestionar, tanto para la resistencia a fallos como para el equilibrio de carga. Las operaciones realizadas sobre un grupo, como transferir el grupo a otro nodo, afectan automáticamente a todos los recursos de ese grupo. Los recursos se implementan como Bibliotecas de Enlace Dinámico (DLL, Dynamically Linked Libraries) y están gestionados mediante un monitor de recursos. El monitor de recursos interactúa con el servicio de agrupación mediante llamadas a procedimiento remoto y responde a las órdenes del servicio de agrupación para configurar y mover los grupos de recursos.
La Figura 4 representa los componentes del Servidor de Agrupaciones de W2K y sus relaciones con un sistema individual de una agrupación. El gestor de nodos es el responsable de mantener este miembro del nodo en la agrupación. Periódicamente, envía mensajes de latido a los gestores de nodos en otros nodos de la agrupación. En el caso de que un gestor de nodos detecte la pérdida de mensajes de latido de otro nodo de la agrupación, difunde un mensaje a toda la agrupación provocando que todos los miembros intercambien mensajes para verificar su visión de los miembros actuales de la agrupación. Si un gestor de nodo no responde, se extrae de la agrupación y sus grupos activos se transfieren a uno o más nodos activos de la agrupación.
El gestor de la base de datos de configuración mantiene la base de datos de configuración de la agrupación. La base de datos contiene información sobre recursos, grupos y nodos propietarios de grupos. Los gestores de la base de datos de cada uno de los nodos de la agrupación cooperan para mantener una imagen consistente de información de configuración. El software de transacciones tolerante a fallos se utiliza para garantizar que los cambios en la configuración global de la agrupación se llevan a cabo consistente y correctamente.
El gestor de recursos/ gestor de resistencia a fallos toma todas las decisiones relacionadas con los grupos de recursos e inicia las acciones apropiadas, tales como iniciar, reiniciar y la resistencia a fallos. Cuando es necesaria la resistencia a fallos, los gestores de resistencia a fallos del nodo activo cooperan para negociar una distribución de los grupos de recursos desde el sistema fallido hasta el resto de sistemas activos. Cuando un sistema se recupera después de un fallo, el gestor de resistencia a fallos puede decidir devolver algunos grupos a este sistema. En particular, cualquier grupo puede estar configurado con un propietario preferido. Si ese propietario falla y, después, se recupera, el grupo se devuelve al nodo en una operación de retorno.
El procesador de sucesos conecta todos los componentes del servicio de agrupación, gestiona las operaciones comunes y controla la iniciación del servicio de agrupación. El gestor de comunicaciones gestiona el intercambio de mensajes con los otros nodos de la agrupación. El gestor de actualización global proporciona un servicio que utilizan los otros componentes del servicio de agrupación.


6. AGRUPACIONES SUN
Son un sistema operativo distribuido construido como un conjunto de extensiones sobre la base del sistema UNIX Solaris. Este sistema ofrece agrupaciones con una imagen de sistema único: Es decir la agrupación aparece ante los ojos del usuario y de las aplicaciones como un único computador ejecutando el sistema operativo Solaris.
Estructura de una agrupación SUN:
Los componentes principales son:
6.1 SOPORTE DE COMUNICACIONES Y OBJETOS:
La implementación de la agrupación Sun está orientada a objetos. El modelo de objetos CORBA se utiliza para definir los objetos y los mecanismos de llamada a procedimiento remoto (RPC) implementados en una agrupación Sun . El lenguaje de definición de interfaces (IDL) de CORBA se utiliza para especificar las interfaces entre los componentes MC de diferentes nodos. Los elementos de MC están implementados en el lenguaje orientado a objetos C++. Esto junto con IDL proporciona un mecanismo para la comunicación entre procesos, entre nodos y dentro de cada nodo. Todo esta construido sobre el núcleo de Solaris, sin que prácticamente se necesiten cambios.
6.2 GESTIÓN DE PROCESOS:
La gestión de procesos global abarca todas las operaciones sobre procesos por lo que la ubicación de un proceso es transparente al usuario. La agrupación Sun mantiene una visión global de los procesos por lo que existe un identificador único para cada proceso de la agrupación y por lo que cada nodo puede saber la ubicación y el estado de cada proceso. Es posible realizar migración de procesos: un proceso puede desplazarse de un nodo a otro durante su ejecución para obtener un equilibrio de la carga o resistencia a fallos. Sin embargo todos los hilos de un mismo proceso deben estar en el mismo nodo.
GESTIÓN DE REDES:
Se tuvieron en cuenta tres métodos para la gestión del tráfico de la red:
1- Realizar todo el procesamiento del protocolo de la red en un único nodo. En particular para una aplicación basada en TCP/IP, el trafico entrante (y saliente) debe atravesar un nodo de conexión a la red que, para el trafico entrante, debe analizar las cabeceras TCP e IP y encaminar los datos encapsulados hacia el nodo adecuado y, para el trafico saliente, debe encapsular los daos de otros nodos con cabeceras TCP/IP. No es escalable para un gran numero de nodos por lo que fue rechazado.
1- Asignar una dirección IP única a cada nodo y ejecutar los protocolos de la red sobre la red externa directamente en cada nodo. El problema es que la configuración de la agrupación ya no es transparente y la dificultad de la resistencia a los fallos cuando una aplicación se desplaza a otro nodo con dirección de red subyacente distinta.
2- Utilizar un filtro de paquetes para encaminar paquetes al nodo adecuado y realizar el procesamiento de protocolo en ese nodo. La agrupación aparece como único servidor con dirección IP única. Las solicitudes del cliente están equilibradas entre los nodos disponibles. Es el método adoptado por la agrupación Sun.
Subsistemas de redes de la agrupación Sun:
· Se mantiene una base de datos de la configuración de la red global para hacer un seguimiento del tráfico de la red en cada nodo.
6.4 SISTEMA DE ARCHIVOS GLOBAL:
El elemento más importante de la agrupación Sun es el sistema de archivos global:

Compara la gestión de archivos MC con el esquema de Solaris Básico. Los dos se construyen mediante el uso de conceptos de sistemas de archivos virtual y vnodos.
En solaris la estructura del nodo virtual se utiliza para proporcionar una interfaz de propósito general y potente para todos los tipos de sistemas de archivos. Un vnodo se utiliza para traducir páginas de memoria al espacio de direcciones de un proceso y para permitir el acceso a un sistema de archivos. Mientras que un nodo traduce procesos a archivos UNIX , un vnodo puede traducir un proceso a un objeto de cualquier tipo de sistema de archivos. De esta manera , una llamada al sistema no necesita saber el objeto que realmente está utilizando, solo como hacer la llamada orientada a objetos apropiada mediante la interfaz vnodo. La interfaz nodo acepta ordenes de manipulación de archivos de propósito general , tales como leer y escribir , y las convierte en las acciones apropiadas para el sistema de archivos de destino. Del mismo modo que los vnodos se utilizan para describir objetos individuales de un sistema de archivos, las estructuras del sistema de archivos virtual (vfs)se utilizan para describir sistemas de archivos completos. La interfaz vfs acepta órdenes de propósito general que operan sobre archivos completos, y las traduce en las acciones apropiadas para el sistema de archivos de destino.
En la agrupación Sun, el sistema de archivos global ofrece una interfaz uniforme a los archivos distribuidos a lo largo de la agrupación. Un proceso puede abrir un archivo situado en cualquier lugar de la agrupación y los procesos de todos los nodos utilizan la misma ruta de acceso para localizar el archivo. Para implementar el acceso a archivos globales, MC incluye un sistema de archivos proxy construido sobre el sistema de archivos Solaris ya existente y la interfaz de vnodos. Un nivel proxy convierte las operaciones sobre vnodo/vfs en llamadas a objetos :

El objeto involucrado puede residir en cualquier nodo del sistema y realiza una operación vnodo/vfs en el sistema de archivos subyacente. Para dar soporte a este entorno de archivos global no se tiene que modificar ni el núcleo ni los sistemas de archivos existentes.
Para reducir el número de llamadas a objeto remoto, se utiliza una memoria caché. La agrupación sun puede almacenar en cache el contenido de los archivos, la información de los directorios y los atributos de los archivos.
7. AGRUPACIONES LINUX Y BEOWULF
En 1994, el proyecto Beowulf se inició bajo el patrocinio del proyecto de alto rendimiento en procesamiento y comunicaciones (HPCC, High performance Computing and Communications) de la NASA. Su objetivo era investigar el potencial de las agrupaciones de PC para llevar a cabo tareas de procesamiento importantes que van mas allá de las capacidades de las estaciones de trabajo contemporáneas con un mínimo coste. Hoy en día el método Beowulf está ampliamente implementado y es quizá la tecnología mas importante disponible para agrupaciones.
7.1CARACTERÍSTICAS DE BEOWULF :
La opción mas evidente como base es Linux, se utiliza una agrupación de estaciones de trabajo Linux y PC Linux .
Esta es una configuración representativa:
Configuración
beowulf genérica
Se compone de varias estaciones de trabajo, todas ejecutando Linux
El almacenamiento secundario de c/u puede utilizarse para acceso distribuido, las cajas Linux (nodos), están interconectados a una red comercial (Etherner) e cual puede tener una única o varias líneas conmutadas interconectadas. Para transferencias de 10Mbps, 100 Mbps, 1 Gbps se utilizan protocolos Ethernet comerciales.
Es un añadido a las distribuciones comerciales gratuitas con base Linux, el código fuente del software Beowulf es el sitio www.beowulf.org otras organizaciones ofrecen herramientas Beowulf gratuitas.
Cada nodo beowulf ejecuta su propia copia de núcleo Linux (puede funcionar como autónomo).
Ejemplos de software del sistema Beowulf :
![]()
Número de visitantes actuales disponible desde el 14/07/2002:
Autor: lrmdavid@exa.unne.edu.ar
Ó FACENA - http://exa.unne.edu.ar
Servicios WEB: webmaster@exa.unne.edu.ar