Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Sesion 08 tel202 2010-1
1. Profesor: Mg. Enrique Larios V.
SESIÓN 8
Procesamiento y Comunicación en
Sistemas Distribuidos
Arquitectura de Computadoras y
Sistemas Operativos para
Telecomunicaciones
2. AGENDA
• Definición y concepto
• Clasificación
• Procesos cliente/servidor
• Llamadas a procesos remotos – RPC
• Desarrollos Web
• Bibliografía
3. Definición y concepto
Un sistema distribuido es aquel en el que dos o más
máquinas colaboran para la obtención de un
resultado.
En todo sistema distribuido se establecen una o
varias comunicaciones siguiendo un protocolo
prefijado mediante un esquema cliente-servidor.
4. Definición y concepto
En un esquema cliente-servidor, se denomina
cliente la máquina que solicita un determinado
servicio y se denomina servidor la máquina que lo
proporciona.
El servicio puede ser la ejecución de un
determinado algoritmo, el acceso a determinado
banco de información o el acceso a un dispositivo
hardware.
5. Definición y concepto
Por extensión, se puede aplicar el esquema cliente-
servidor dentro de una misma máquina, donde el
proceso servidor y el proceso cliente son dos
procesos independientes que corren dentro de la
misma instancia del sistema operativo.
Es por tanto un elemento primordial para que haya
un sistema distribuido, la presencia de un medio
físico de comunicación entre ambas máquinas, y
será la naturaleza de este medio la que marque en
muchos casos la viabilidad del sistema.
6. Clasificación
Se clasifican los sistemas cliente servidor de
acuerdo al nivel de abstracción del servicio que se
ofrece. Se distinguen tres componentes básicos de
software:
Interacción con el usuario
Lógica de Aplicación
Repositorio de datos
7. Clasificación
1. Representación distribuida. La interacción con el
usuario se realiza básicamente en el servidor. El
cliente hace de pasarela, de sistema de acceso a
los elementos hardware pantalla y teclado.
Base de datos
Lógica de aplicación
Interfase de usuario
Terminal físico
8. Clasificación
2. Representación remota. Los datos se envían sin
formatear, y es el cliente el responsable de
formatear los datos y realizar las acciones de
interacción con el usuario. En este caso, la
aplicación y la base de datos se encuentran en el
servidor
Base de datos
Lógica de aplicación
Interfase avanzado de usuario
Terminal inteligente
Interfase básico de usuario
9. Clasificación
3. Lógica distribuida. En el cliente se llevan a cabo
la interacción con el usuario y la parte más trivial de
la lógica de la aplicación. En este caso, se llevan a
cabo controles básicos de rango de campos,
campos obligatorios, etc, mientras que el grueso de
la lógica permanece en el servidor.
Base de datos
Lógica de aplicación
PC Desk Top
Lógica básica de aplicación
Interfase de usuario
10. Clasificación
4. Gestión remota de datos. Tanto la interacción
con el usuario como la aplicación residen en el
cliente, siendo el servidor el depositario de los
datos.
Base de datos PC Desk Top
Lógica de aplicación
Interfase de usuario
11. Clasificación
5. B.D. Distribuidas. El cliente debe conocer la
topología de la red, así como la disposición y
ubicación de los datos. En este caso, se delega
parte de la gestión de base de datos a los clientes.
Base de datos
PC Desk Top
Distribución de datos
Lógica de aplicación
Interfase de usuarioBase de datos
12. Clasificación
Cliente servidor a tres niveles (three tier). La
aplicación se distribuye en los tres niveles:
aplicación, datos e interfase de usuario
Base de datos
PC Desk Top
Interfase de usuario
Lógica de aplicación
13. Proceso cliente/servidor
Las máquinas cliente son, en general, PC
monousuario o puestos de trabajo que ofrecen una
interfaz muy amigable para el usuario final.
Cada servidor ofrece una serie de servicios de
usuario compartidos a los clientes.
El servidor permite a los clientes compartir el
acceso a la misma base de datos y permite el uso
de un sistema de computación de alto rendimiento
para gestionar la base de datos.
15. Aplicaciones cliente/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 del servidor pueden ser diferentes.
Estas diferencias de niveles inferiores no son
relevantes en tanto que un cliente y un servidor
compartan los mismos protocolos de comunicación y
soporten las mismas aplicaciones.
16. Arquitectura genérica cliente/servidor.
Servidor
Estación de trabajo
cliente
Servicios de
presentación
Software de
comunicaciones
Sistema operativo
cliente
Plataforma hardware
Software de
comunicaciones
Sistema operativo
cliente
Plataforma hardware
Petición
Respuesta
Interacción
de protocolos
Lógica de aplicación
(parte del cliente)
Lógica de aplicación
(parte del cliente)
Arquitectura genérica
cliente/servidor
17. Aplicaciones cliente/servidor
Las funciones reales de la aplicación pueden
repartirse entre cliente y servidor de forma que:
Se obtienen los recursos de la red y de la
plataforma.
Se optimiza la capacidad de los usuarios para
realizar varias tareas.
Se optimiza la capacidad para cooperar el uno
con el otro en el uso de recursos compartidos.
18. Aplicaciones de bases de
datos
El servidor es un servidor de base de datos.
La interacción entre el cliente y el servidor se hace
en forma de transacciones:
El cliente realiza una petición a la base de datos
y recibe una respuesta de aquella.
El servidor es responsable de mantener la base de
datos.
19. Servicios de
presentación
Lógica de
aplicación
Software de
comunicaciones
Sistema operativo
cliente
Plataforma
hardware
Estación de trabajo cliente
Petición
Respuesta
Interacción
de protocolo
Software de
comunicaciones
Sistema gestor
de base de datos
Sistema operativo servidor
Plataforma hardware
Servidor
Lógica de base
de datos
Lógica de base de datos
Arquitectura c/s para
aplicaciones de base de datos.
20. Utilización de bases de datos
cliente/servidor
Servidor
Cliente
Base de datos
de 1.000.000
de registros
Consulta inicial
100.000 registros posibles
Consulta siguiente
100.000 registros posibles
Consulta final
Un registro devuelto
(a) Cliente/servidor bien empleado
21. Cliente
Servidor
Base de datos
de 1.000.000
de registros
Consulta
300.000 registros devueltos
(b) Cliente/servidor mal empleado
Utilización de bases de datos
cliente/servidor
22. Arquitectura cliente/servidor
de tres capas
El software de aplicación está distribuido entre tres
tipos de máquinas:
Máquina de usuario:
Cliente delgado.
Servidor de capa intermedia:
Pasarelas.
Convierte protocolos.
Mezcla e integra resultados de distintas fuentes de
datos.
Servidor final (backend).
23. Cliente
Servidor de capa intermedia
(servidor de aplicaciones)
Servidores finales
(servidores de datos)
Arquitectura c/s en capas
24. Middleware
Conjunto de herramientas que proporcionan una
manera uniforme de acceder a los recursos del
sistema en todas las plataformas.
Herramienta o conjunto de herramientas que nos
permitirán gestionar y coordinar los mecanismos de
comunicación
Permite a los programadores
construir aplicaciones que parezcan las mismas.
utilizar el mismo método de acceso a los datos.
Independiza el servicio y su implementación, del S.O. y
protocolos de comunicaciones
Permite la convivencia de distintos servicios en una misma
máquina
25. Middleware Middleware
Estación de trabajo cliente
Servicio
de presentación
Lógica de aplicación
Software
de comunicaciones
Sistema operativo
cliente
Plataforma hardware
Servidor
Software
de comunicaciones
Servicios
de aplicación
Sistema operativo servidor
Plataforma hardware
Interacción
de ´Middleware
Interacción
de protocolos
El papel del middleware en la
arquitectura cliente/servidor
27. Ejemplo de la funcionalidad
del middleware
Ejecutando sobre la
DECnet y en los PC
hay aplicaciones y
middleware
Red
Novell
Red
central
Red
TCP/IP
DECnet
LAN
VMS
ejecutando
en VAX
Estaciones
de trabajo
Puente
Servidor de terminales
Ejecutando en la red
Novell hay aplicaciones,
middleware, software de
red Novell y OS/2 de
IBM
Ejecutando sobre la red local
TCP/IP hay aplicaciones,
middleware, software
TPC/IP y UNIX
28. Paso distribuido de mensajes
El paso de mensajes se utiliza para comunicar
procesos.
Se envían y reciben mensajes, tal y como se hace
en un sistema único.
Llamadas a procedimiento remoto.
29. Primitivas básicas de paso
de mensajes
Proceso
emisor
Proceso
receptor
Módulo de paso
de mensajes
Módulo de paso
de mensajes
IDProceso Mensaje
30. Fiabilidad frente a no
fiabilidad
Un servicio de paso de mensajes fiable garantiza la
entrega, siempre que sea posible.
No es necesario hacer que el proceso emisor
sepa que se entregó el mensaje.
Puede enviar el mensaje a la red de
comunicaciones sin informar de su éxito ni de su
fracaso:
Reduce la complejidad y la sobrecarga.
31. Bloqueante frente a no
bloqueante
No bloqueante:
Un proceso no queda suspendido como resultado
de un Send o un Receive.
Ofrece un empleo eficiente y flexible.
Los programas son difíciles de depurar.
Bloqueante:
Un Send bloqueante no devuelve el control al
proceso emisor hasta que el mensaje se haya
transmitido.
O no devuelve el control hasta que se haya
obtenido un acuse de recibo.
Un Receive bloqueante no devuelve el control
hasta que el mensaje se haya ubicado en el
buffer asignado.
32. Llamadas a procedimiento
remoto
Permite que programas de máquinas diferentes
interactúen mediante la semántica de
llamadas/retornos a simples procedimientos.
Es un enfoque muy aceptado.
Como la interfaz es estándar:
Los módulos clientes y servidores pueden
trasladarse entre computadores y sistemas
operativos fácilmente.
34. Enlace cliente/servidor
El enlace especifica la relación entre un
procedimiento remoto y el programa llamador.
Enlaces no persistentes:
La conexión lógica se establece entre dos
procesos en el momento de la llamada remota.
Enlaces persistentes:
Una conexión se mantiene después de que el
procedimiento termina.
35. Sincronismo frente a
asincronismo
RPC síncrona:
Las llamadas tradicionales a procedimiento
remoto son síncronas, lo que requiere que el
proceso llamador espere hasta que el proceso
llamado devuelva un valor.
Se comporta de manera muy parecida a una
llamada a subrutina.
RPC asíncrona:
No bloquea al llamador.
Permite que un cliente invoque repetidamente a
un servidor, generando una serie de peticiones de
una vez .
36. Mecanismos de Orientación
a Objetos
Un cliente que necesita un servicio envía una
petición a un agente de servicio de objetos.
El agente:
Actúa como un directorio de todos los servicios
disponibles en la red.
Llama al objeto adecuado y le pasa los datos
relevantes
El objeto remoto atiende la petición y responde al
agente, quien devuelve la respuesta al cliente.
37. Mecanismos de orientación
a objetos
Solicitador
de objetos
remotos
Agente de
solicitudes
de objetos
Servidor
de objetos
Aplicación
Cliente Servidor
Solicitudes
y respuestas
de objetos
Solicitudes
y respuestas
de objetos
Transporte
Transporte
Red
Transporte
Red
Red
(c) Agentes de solicitud de objetos (ORB)
38. Desarrollos Web
Caso particular de desarrollo cliente servidor con
representación remota, en la cual disponemos de
un protocolo standard: HTTP y un middleware
denominado WebServer.
Cada página puede desencadenar la solicitud de
numerosos peticiones adicionales para finalizar el
proceso de representación remota.
Se dispone de un lenguaje standard de definición y
formateo de páginas: HTML
39. Desarrollos Web
Incrustación de la lógica de aplicación en el servidor
Web:
CGI: Common Gateware Interface
Cada petición HTTP genera un nuevo proceso, el cual analiza
la solicitud y genera un resultado. Cada proceso corresponde
a una transacción.
Es flexible, ideal para pequeñas aplicaciones de uso reducido
No escala adecuadamente
Páginas ASP: Caso particular de CGI
Entorno propietario Microsoft
Aspectos de rendimiento bastante mejorados
40. Desarrollos Web
Incrustación de la lógica de aplicación en el servidor
Web
Servlets: Ejecución de aplicaciones Java en el
servidor que procesan la petición y generan la
página de respuesta
No generan un proceso adicional por cada petición
Utilizan un lenguaje de alto nivel (Java)
Objetos CORBA:
Permite la integración de objetos CORBA con el servidor Web,
creando una estructura cliente servidor multinivel
Es la solución más generalista y adaptable
Permite fácil, flexible y eficiente integración con BBDD
41. Desarrollos Web
Esquema general
Navegador
Web Server
Servlet
Máquina virtual
Java
Conector
CORBA
Servidor
CORBA
Procesos CGI
HTTP
Parámetros
proceso
CORBA
RMIBase de
datos
42. Nuevos tipos de dispositivos
Dispositivos que acceden hoy a internet:
Internet Explorer, Netscape, Set Top Box, Móviles
WAP, PDAs Palm Pilot, Windows CE, ...
43. Nuevos tipos de dispositivos
Problema a resolver:
Necesidad de adaptar la interfase de usuario a
cada tipo de dispositivo
Medidas a tomar:
Separar la lógica de aplicación de la interfase de
usuario
Utilizar métodos estándar de comunicación entre
la lógica de aplicación y la interfase de usuario
Uso de herramientas que permitan adaptar
rápidamente las aplicaciones a los nuevos tipos
de dispositivos que irán apareciendo
44. Nuevos tipos de dispositivos
Tendencia actual
Navegador
Web Server
Páginas HTML
Servidor Aplicaciones Lógica de negocio
Datos
Base de datos
Interfase de usuario
Gestor
comunicaciones
UsuarioMóvil
WAP Server
Páginas WML
SQL
XML
- -
Wml binariohttp
45. Nuevos tipos de dispositivos
Variante de los fabricantes BBDD
Navegador
Web Server
Páginas HTML
Lógica de negocio
DatosBase de datos
Interfase de usuario
Gestor
comunicaciones
UsuarioMóvil
WAP Server
Páginas WML
XML
- -
Wml binariohttp
46. Nuevos tipos de dispositivos
Variante de los fabricantes pasarelas
Navegador
Web Server
Páginas HTML
Lógica de negocio
Datos
Base de datos
Interfase de usuario
Gestor
comunicaciones
UsuarioMóvil
WAP Server
Reglas de
traducción WML
SQL
- -
Wml binariohttp
Interfase de usuario