Documente Academic
Documente Profesional
Documente Cultură
Jos M. Drake
Notas:
Posibilidades que ofrece Java para la comunicacin en red: Socket,RMI y URL.
Client
Server
Client
Red
Server
Terminal
Terminal
Procodis08: VI- Cliente/servidor Jos M. Drake
Notas:
Aplicacin
Objects
Client
Server
Internet
Middleware (CORBA,ICE,RMI,..)
Red
Server
Objects
Aplicacin
DBMS
Objects
Client
Server
Jos M. Drake
Notas:
Metodologa Cliente/Servidor
La metodologa Cliente/Servidor es un paradigma de organizacin de los elementos que constituyen una aplicacin distribuida, para que colaborando conjuntamente implemente la funcionalidad especificada a la aplicacin:
Clientes: elementos activos que dirigen las actividades que deben ejecutarse para implementar la tarea requerida por la aplicacin. Requiere de los servidores que ejecuten algunas de esas actividades. Servidores: Elemento pasivos especializados en realizar ciertas tareas bajo requerimientos de los clientes. Habitualmente representan elementos que son compartidos por mltiples clientes, de una o varias aplicaciones.
Proporciona un marco de referencia sencillo, flexible y abierto para distribuir la ejecucin de una aplicacin en mltiples nudos de una plataforma. En l la mezcla y el acoplamiento es la norma.
Procodis08: VI- Cliente/servidor Jos M. Drake
Notas:
Notas:
Integridad: La informacin es administrada por el servidor de forma unificada, dando lugar un mantenimiento mas sencillo y seguro. El middleware de distribucin garantiza la seguridad en los accesos a los servicios y en la integridad de los datos.
Procodis08: VI- Cliente/servidor Jos M. Drake
Notas:
Clientes ligeros / Servidores pesados: La mayor parte de la funcionalidad se implementa en los servidores.
Incrementar la reusabilidad del cdigo. Son mas fciles de desplegar y administrar. Se basan en servidores mas abstractos que reducen el flujo por la red. En vez de proporcionar datos, exportan procedimientos. Ejemplos: Servidores de transacciones y servidores web.
Jos M. Drake
Notas:
2-tier 3-tier
Cliente pesado
Servidor final
Complejidad de la aplicacin
3-tier Client/Server
- Browser - GUI - ActiveX - RPC - ORB - MOM - HTTP - SQL - Data Access - C API
Notas:
3-Niveles
Menos compleja: La aplicacin puede gestionarse con las herramientas de gestin de los servidores Alta: se puede implementar a nivel del servicio, operacin u objeto. Alta: El cliente invoca servicio y mtodos
Alta: Se envan por la red comandos de bajo nivel. Deben descargarse datos al cliente para ser analizados. Pobre: No puede gestionarse conjuntamente grupos de clientes. Los servidores son terminales y difciles de replicar. Pobre: Las aplicaciones son monolticas y concentradas en el cliente.
Baja: Slo se envan requerimientos de servicios y respuestas elaboradas a stos Excelente: Permite concentrar los clientes. Posibilita distribuir la carga entre servidores replicados. Excelente: Los servicios y objetos de aplicacin pueden reutilizarse.
Escalabilidad
Reutilizacin de aplicaciones
Jos M. Drake
Notas:
3-Niveles
Requiere nuevas herramientas: Para desarrollar los lados cliente y servidor de las aplicaciones. Se requiere middleware para facilitar la interaccin entre servidores. Si: Mediante pasarelas planteadas como servidores u objetos adaptadores. Excelente: Los clientes formulados como applets y beams son idneos para descargarse por la red. Invocaciones sncronas y asncronas: Tipo RPC, mensajes sin conexin, basadas en colas, eventos, etc. Excelente: Existen mltiples posibilidades de organizacin y distribucin de los servidores por la plataforma. Excelente: Puede reinstalarse los servicios de aplicacin en cualquier equipo. Jos M. Drake
No Pobre: La anchura de banda limitada de internet dificulta la descarga de clientes pesados. Invocaciones sncronas: de tipo RPC.
Mtodos de comunicacin
Limitada: Solo se pueden establecer las conexiones del cliente con los servidores terminales. Baja
10
Notas:
10
Envio avisos
LAN Finanza
Internet
WAN privada
Ventas 11
Catlogo de ventas
Atencin cliente
Jos M. Drake
Notas:
11
Jos M. Drake
12
Notas:
12
Las posibilidades de negocio es de varios ordenes superior que las arquitecturas departamentales. En el futuro una red intergalctica conectada a mltiples intranet departamentales protegidas por firewalls.
Proveedor privado
Fireware Empleado remoto Servidor Web Procodis08: VI- Cliente/servidor Jos M. Drake VPN
Intranet departamental
Fireware
Internet pblica
VPN
Navegador
Servidor Web
13
Notas:
13
Arquitecturas Cliente/Servidor
Cliente
M w dle id e ar
Servidor Cliente
M w dle id
e ar
Servidor
Departamento Servidor
Cliente
M
r wa dle id
Servidor
Cliente
M
r wa dle id
Servidor
Cliente
M
r wa dle id
e r wa dle id e
Intranet departamental
Intranet pblica
Cliente
Servidor Servidor
Servidor Cliente
M
re wa dle id
Servidor
M
d id
e ar lew
r wa dle id
Servidor
Gran empresa, institucin Gran empresa intergalactica Procodis08: VI- Cliente/servidor Jos M. Drake
14
Notas:
14
Servidor
Servicios especficos ODBC ORB TxRPC HTTP Objetos Web Groupware DBMS
Navegador
GUI
SNMP
CMIP
Tivoli/ORB
DSM
(Distributed System Manager)
FileSystem Security
P2P
RPC
DSM
Sistema Operativo
Communication services
Sistema Operativo
SNA
Jos M. Drake
15
Notas:
15
Clientes
Constituyen el ncleo de una aplicacin, aunque puede ser slo una parte pequea de ella. Los clientes tienen en comn que elaboran su funcionalidad solicitando servicio a los servidores. Los clientes se diferencian en con qu desencadenan las invocaciones:
Clientes que no necesitan GUI ni concurrencia: Cajeros automticos, puntos de venta, lectores de cdigo de barras, telfonos mviles,faxes, etc. Clientes que no necesitan GUI pero si concurrencia: Robots, mquinas herramientas, demonios, etc. Clientes que necesitan GUI: La evolucin del programa y los servicios que requiere son resultado de la interaccin del operador con la interfaz grfica que se le ofrece. Utilizan el modelo objeto/accin. Clientes con OOUI (Object Oriented user Interface): La evolucin del programa y los servicios que utiliza son resultado de la interaccin del operador con iconos mostrados en la consola y que una vez abiertos pueden ser manipulados concurrentemente y en cualquier orden.
Procodis08: VI- Cliente/servidor Jos M. Drake
16
Notas:
16
Servidor
Su funcin es satisfacer los requerimientos de servicio que son realizados por mltiples clientes que quieren hacer uso de la funcionalidad que ofrece o acceder a los recursos protegidos que gestiona. Su funcionalidad suele ser compleja y pesada, pero su actividad es montona y poco creativa:
Espera pasivamente los clientes inicien requerimientos de servicios. Ejecuta concurrentemente los requerimientos recibidos de los clientes. Prioriza las respuestas a los clientes de acuerdo con su importancia o urgencia. Arranca y ejecuta demonios y actividades de segundo plno (background) Se mantienen continuamente en ejecucin, y si cae por un fallo se recupera. En funcin de la actividad que en cada momento desarrolla puede acaparar grandes cantidades de capacidad de procesamiento, recursos y anchura de banda de comunicaciones.
Jos M. Drake
17
Notas:
17
Jos M. Drake
18
Notas:
18
Jos M. Drake
19
Notas:
19
Los sistemas operativos de red evolucionan en funcin de como se ampla su mbito de operacin:
Internet (galctico)
Complejidad
10 1K Procodis08: VI- Cliente/servidor 100K 10M Jos M. Drake 1G
Nmero de equipos 20
Notas:
20
Transparencia
Transparencia significa crear la ilusin a los usuarios, y a los programadores de aplicaciones de que los sistemas distribuidos son homogneos:
Transparencia de ubicacin: Se opera sin necesidad de conocer la direccin fsica de los equipos. Transparencia de espacio de nombres: Se utilizan las mismas reglas de identificacin para designar recursos de todo el dominio. Transparencia de conexin: Con una nica clave se accede a cualquier elemento, con independencia de cuantos equipos y de que naturaleza se atraviesen. Transparencia de replicacin: No se conocen cuantas copias del servidor existen ni con cual de ellas se est interactuando. Transparencia de local/remoto: Se puede operar con cualquier recurso remoto como si fuese local. Transparencia de reloj: Existe una hora global nica a nivel de sistema distribuido. La datacin de los eventos es comparable con independencia de en que nudo se ha establecido. Transparencia de fallos: Debe gestionar los fallos de comunicacin y disponer de mecanismos de recuperacin automtica. Transparencia de administracin: La interfaz de administracin de recursos es uniforme, y la coordinacin con los sistemas operativos locales resultan ocultos.
Jos M. Drake
21
Notas:
21
Transacciones
Conjunto de actividades que se ejecutan en diferentes nudos de una plataforma distribuida para ejecutar una tarea de negocio. Una transaccin finaliza cuando todas las parte implicadas clientes y mltiples servidores confirman que sus correspondientes actividades han concluido con xito. Si una actividad falla, todas deben recuperar el estado previo al inicio de la transaccin. Las transacciones pueden ser simples o compuestas (sagas, encadenadas, anidadas, etc.) Un sistema distribuido sin gestor de transacciones es como una sociedad sin ley contractual.
Procodis08: VI- Cliente/servidor Jos M. Drake
22
Notas:
22
Transacciones ACID (Atomicity, Consistency, Isolation, Durability) Atomicidad: Una transaccin es una unidad indivisible de trabajo, Todas las actividades que comprende deben ser ejecutadas con xito. Congruencia: Despus de que una transaccin ha sido ejecutada, la transaccin debe dejar el sistema en estado correcto. Si la transaccin no puede realizarse con xito, debe restaurar el sistema al estado original previo al inicio de la transaccin. Aislamiento; La transacciones que se ejecutan de forma concurrente no deben tener interferencias entre ellas. La transaccin debe sincronizar el acceso a todos los recursos compartidos y garantizar que las actualizaciones concurrentes sean compatibles entre si. Durabilidad: Los efectos de una transaccin son permanente una vez que la transaccin ha finalizado con xito.
Jos M. Drake
23
Notas:
23
Transaccin simple
Recuperacin
Interrupcin
Actividad 1
Actividad 2
Actividad 3
Jos M. Drake
24
Notas:
24
Fase 2: Execution
Ejecutar
Ejecutar
Ejecutar
Termina
Termina
Termina
Jos M. Drake
25
Notas:
25
Situaciones en las que las transacciones simples fallan Transacciones de negocio que deben volver parcialmente a un estado anterior. Transacciones de negocio en las que interviene un operador humano. Transacciones de negocio que se extiende por largos periodos de tiempo. Transacciones de negocios masivas. Transacciones de negocio que abarcan varias empresas.
Jos M. Drake
26
Notas:
26
Si una transaccin se cae la informacin almacenada en todos los puntos de sincronizacin se pierde. Existen diversos modelos: Contratos (Contracts), transacciones migrantes (Migrating Transactions), carrito de compras.(ShopingCart Transaction)
Jos M. Drake
27
Notas:
27
Clasificacin de la transacciones
Transaccin encadenada Transaccin anidada Fallo
Fallo
Recuperacin
Transaccin saga
Fallo
28
Notas:
28
O.S.
Colapsado
TP-Monitor
1000 Transacciones requeridas
Conf. [50 Tr.]
Recursos
50 conexiones 50 procesos 50 25 Mb de RAM Transacciones 500 ficheros ab. planificadas
O.S.
O.K.
Aplicaciones
Jos M. Drake
29
Notas:
29
Son gestores genricos, capaces de supervisar miles de transacciones de diferentes clientes, sin necesitar conocer la tarea que corresponde a cada transaccin. Es el que garantiza que en la transaccin se satisfagan las propiedades ACID.
Jos M. Drake
30
Notas:
30
Que gestiona?
Administracin de procesos:
Inicio de los procesos de servicio. Supervisin de la ejecucin. Redistribucin de las cargas de trabajo.
Jos M. Drake
31
Notas:
31