Site hosted by Angelfire.com: Build your free website today!

REDES Y PROCESO DISTRIBUIDO

 

REDES Y PROCESO DISTRIBUIDO

El uso de DDP permite dispersar los procesadores, datos y otros elementos del sistema dentro de una organización.La tendencia de estas aplicaciones ha sido apoyada por la evolución de las capacidades distribuidas del sistema operativo y de las utilidades de soporte. Se ha explorado un amplio espectro de posibilidades:

-     Arquitectura de comunicaciones

-     Sistema Operativo de Red: es la configuración en que existe una red de máquinas de aplicación, generalmente workstations monousuario y una o más máquinas servidoras.

-     Sistemas Operativos distribuidos: es un S.O. común compartido por una red de computadores.

Un protocolo es un conjunto de reglas o convenciones que gobiernan la forma en que dos entidades cooperan en el intercambio de datos.

 

ARQUITECTURA DE COMUNICACIONES

 

Arquitectura Simple

 

Está dividida en tres niveles:

1.      Nivel de acceso a la red: se ocupa del intercambio de datos entre el computador y la red a la que está conectada.

2.      Nivel de transporte: asegura que los datos lleguen a su aplicación de destino y que lo hacen en el mismo orden en que fueron enviados.

3.      Nivel de aplicación: contiene la lógica necesaria para soportar varias aplicaciones de usuario. Para cada clase diferente de aplicación, como la transferencia de archivos, se necesitará un módulo separado y particular para la misma.

 

Arquitectura OSI

 

El modelo OSI (Open Systems Interconection) de telecomunicaciones esta basado en una propuesta desarrollada por la organisacion de estandares internacional (ISO), por lo que tambien se le conoce como modelo ISO - OSI. Su funcion es la de definir la forma en que se comunican los sistemas abiertos de telecomunicaciones, es decir, los sistemas que se comunican con otros sistemas.

 

El modelo de referencia consiste en 7 capas. Estas capas se visualizan generalmente como un montón de bloques apilados o en ingles como un "stack of blocks", por lo que en ingles, a esto se le conoce como el "OSI Protocol Stack".

 

-         Capa de aplicación: Es el nivel último de la capa, el que aloja el programa de red que interactua con el usuario.

-         Capa de presentación: Maneja los datos de la aplicación y los acomoda en un formato que pueda ser transmitido en una red.

-         Capa de sesión: Establece conexiones lógicas entre puntos de la red.

-         Capa de transporte: Maneja la entrega entre un punto y otro de la red de los mensajes de una sesión.

-         Capa de red:  Maneja destinos, rutas, congestión en rutas, alternativas de enrutamiento, etc. 

-         Capa de enlace de datos: Entrega los datos entre un nodo y otro en un elace de red.

-         Capa Física: Define la conexión física de la red.

 

En este modelo, solo las capas que tengan otra capa equivalente en el nodo remoto podran comunicarse, esto es, solo las capas que son iguales entre si se comunican entre si.    

 

Protocolos TCP/IP

 

El protocolo TCP/IP tiene que estar a un nivel superior del tipo de red empleado y funcionar de forma transparente en cualquier tipo de red. Y a un nivel inferior de los programas de aplicación (páginas WEB, correo electrónico…) particulares de cada sistema operativo. Todo esto nos sugiere el siguiente modelo de referencia:

 

 

Capa de aplicación (HTTP, SMTP, FTP, TELNET...)

Capa de transporte (UDP, TCP)

Capa de red (IP)

Capa de acceso a la red (Ethernet, Token Ring...)

Capa física (cable coaxial, par trenzado...)

 

 

El nivel más bajo es la capa física. Se refiere al medio físico por el cual se transmite la información. Generalmente será un cable aunque no se descarta cualquier otro medio de transmisión como ondas o enlaces vía satélite.

 

La capa de acceso a la red determina la manera en que las estaciones (ordenadores) envían y reciben la información a través del soporte físico proporcionado por la capa anterior.

 

La capa de transporte (protocolos TCP y UDP) ya no se preocupa de la ruta que siguen los mensajes hasta llegar a su destino. Sencillamente, considera que la comunicación extremo a extremo está establecida y la utiliza. Además añade la noción de puertos, como veremos más adelante.

 

Una vez establecida la comunicación desde el origen al destino queda lo más importante, ¿qué podemos transmitir? La capa de aplicación proporciona los distintos servicios de Internet: correo electrónico, páginas Web, FTP, TELNET…

 

 

PROCESO CLIENTE / SERVIDOR

 

En un entorno cliente/servidor, cada servidor ofrece una serie de servicios compartidos a los usuarios. Actualmente, el tipo más común de servidor es el servidor de bases de datos, que controla generalmente una base de datos relacional. El servidor permite a los clientes compartir el acceso a la misma base de datos y habilita un sistema de computación de alto rendimiento para gestionar la base de datos.

Además de los clientes y servidores, el tercer ingrediente básico del entorno cliente/servidor es la red. Los usuarios, aplicaciones y recursos se hallan distribuidos en respuesta a los requisitos del negocio y quedan enlazados por una sola LAN o WAN o por una serie de subredes.

 

Arquitectura Cliente / Servidor genérica

 

Las plataformas y sistemas operativos del cliente y el servidor pueden ser distintas.

El software de comunicaciones es el que permite interoperar a cliente y servidor. Algunos ejemplos de dicho software incluyen TCP/IP, OSI y varias arquitecturas de propietario. El objeto de todo SW de soporte (comunicaciones y S.O.) es proporcionar una base para las aplicaciones distribuidas.

           

Tipos de Aplicaciones Cliente / Servidor

-           Proceso basado en host

-           Proceso basado en el servidor

-           Proceso basado en el cliente

-           Proceso cooperativo

 

 

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 sensiblemente por causa del retardo introducido por la red. Para reducir esta carga, los sistemas individuales pueden usar cachés de archivos para almacenar los registros a los que se ha accedido hace poco.

           

Middleware

 

Algunos de los beneficios de los productos de Cliente / Servidor son la modularidad y la habilidad de mezclar y combinar plataformas y aplicaciones proveyendo  soluciones de trabajo, pero tiene problemas con la interoperatividad y la estandarización. Para resolver estos problemas, se debe contar con herramientas que dieran significados uniformes y parecidos estilos de acceso a los recursos del sistema sobre todas las plataformas.

El método más común para alcanzar estos requerimientos es mediante el uso de interfaces de programación estándar y protocolos específicos entre las aplicaciones, software de comunicaciones y el SO. Nos referimos al middleware. Estos protocolos estandarizados son elementales para unir a las interfaces de los servidores y así beneficiando a los clientes que necesitan acceder a ellos.

Existen muchas variedades de middleware. En el middleware, existen componentes servidor y cliente. 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 (buscan esconder las complejidades y diferencias de los diferentes protocolos de red y sistemas operativos).

 

PROCESO DISTRIBUIDO MEDIANTE ENVIO DE MENSAJES

           

En los sistemas distribuidos reales se suele dar el caso de que los computadores no comparten una memoria principal; cada una se convierte en un sistema de computadores aislados. Por lo tanto, no pueden emplearse técnicas de comunicaciones entre procesadores que se basen en memoria compartida, como son los semáforos y el uso de un área de memoria común. En su lugar, usan técnicas basadas en el paso de mensajes; hay dos procedimientos usuales: la aplicación simple del paso de mensajes o la llamada a procedimientos remotos.

El modelo más usual de paso distribuido de mensajes es modelo cliente / servidor. Un proceso cliente solicita un servicio y en envía un mensaje que contiene una petición de servicio a un proceso servidor. El proceso servidor cumple con la petición y envía una respuesta.

 

Se dice que un servicio de paso de mensajes es fiable cuando garantiza el envío si es posible. Dicho servicio debería hacer uso de un protocolo de transporte fiable o de alguna lógica similar y llevaría a cabo chequeos de errores, acuses de recibo, retransmisiones y reordenación de mensajes desordenados.

 

PROCESO DISTRIBUIDO MEDIANTE LLAMADAS A PROCEDIMIENTOS REMOTOS

           

Lo fundamental de esta técnica es permitir que programas de máquinas diferentes interactúen mediante la simple semántica de los procedimientos de llamada/retorno, como si los dos programas estuvieran en la misma máquina.

 

El mecanismo de las llamadas a procedimientos remotos puede considerarse un refinamiento del paso de mensajes fiable y bloqueante. El programa llamador realiza una llamada normal a un procedimiento con los parámetros situados en su máquina.

 

El hecho de que se intente invocar a un procedimiento remoto de otra máquina puede resultar o no transparente al usuario. En el espacio de direcciones del llamador debe incluirse un procedimiento P sustituto (stub), o bien debe enlazarse dinámicamente en el momento de la llamada. Este procedimiento crear un mensaje para identificar al procedimiento llamado e incorpora los parámetros. Después de enviar este mensaje, mediante una primitiva Enviar, queda a la espera de una respuesta. Cuando se recibe la respuesta, el procedimiento sustituto retorna al programa llamador, proporcionando los valores devueltos.

 

En la máquina remota, se asocia otro procedimiento sustituto con el procedimiento invocado. Cuando llega un mensaje, se examina y se genera una llamada local CALL P (x,y).

 

Representación de parámetros

 

Una cuestión es cómo representar los parámetros y los resultados en los mensajes. Si el programa llamador y el invocado están construidos en los mismos lenguajes de programación, sobre el mismo tipo de máquinas y con el mismo sistema operativo, los requisitos de representación no son un problema. Si existen diferencias en estos aspectos, probablemente habrá diferencias en la manera en que se representan los datos numéricos e incluso los textos. Si se emplea una arquitectura de comunicaciones en condiciones esta cuestión la manejará el nivel de presentación. Sin embargo, el costo que supone tal arquitectura ha llevado hacia el diseño de servicios de llamadas a procedimientos remotos que evitan la mayor parte de la arquitectura de comunicaciones y ofrecen unos servicios básicos propios de comunicaciones. En tal caso, la responsabilidad de la conversión recae en el servicio de llamadas a procedimientos remotos.

Enlace cliente / servidor

El enlace 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 han establecido una conexión lógica y se encuentran 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 ser pierde tan pronto como se devuelvan los valores. Con enlaces persistentes, una conexión establecida para una llamada a procedimiento remoto se mantiene después de terminar el procedimiento. Si transcurre un período de tiempo específico sin actividad en la conexión, entonces se finaliza la misma.

 

Llamadas síncronas y asíncronas

 

El concepto de llamadas a procedimientos remotos síncronos y asíncronos es análogo al concepto de mensajes bloqueantes y no bloqueantes. La llamada síncrona requiere que el proceso llamador espera hasta que el proceso llamado devuelva un valor. Las RPC asíncronas no bloquean al llamador; las respuestas pueden recibirse cómo y cuándo se necesiten, permitiendo que la ejecución de los clientes continúe localmente y en paralelo con la invocación al servidor.