PDF de programación - PROGRAMACION CONCURRENTE - VI.2: Introducción a los sistemas distribuido: Paradigma cliente/servidor

Imágen de pdf PROGRAMACION CONCURRENTE - VI.2: Introducción a los sistemas distribuido: Paradigma cliente/servidor

PROGRAMACION CONCURRENTE - VI.2: Introducción a los sistemas distribuido: Paradigma cliente/servidorgráfica de visualizaciones

Publicado el 14 de Enero del 2017
776 visualizaciones desde el 14 de Enero del 2017
359,3 KB
31 paginas
Creado hace 15a (25/11/2008)
PROGRAMACION CONCURRENTE

VI.2: Introducción a los sistemas distribuido:

Paradigma cliente/servidor

José M. Drake

Notas:

Posibilidades que ofrece Java para la comunicación en red: Socket,RMI y URL.

1

Antiguos y nuevos tiempos en arquitecturas

Arquitectura centralizada

Mainframe

Arquitectura distribuida

Client

Server

Client

Red

Server

Terminal

Terminal

Terminal

Client

Server

Procodis’08: VI- Cliente/servidor José M. Drake

2

Notas:

2

Tipos de arquitecturas distribuidas

Cliente/servidor sobre web

Cliente/Servidor objetos distribuidos

Navegador

GUI

Aplicación

Java

Aplicación

Client

Objects

Server

Objects

Internet

Red

Server

Objects

Middleware

(CORBA,ICE,RMI,..)

Aplicación

Documentos

HTML

CGI
Aplicación

DBMS

Objects

Client

Server

Procodis’08: VI- Cliente/servidor José M. Drake

3

Notas:

3

Metodología Cliente/Servidor

La metodología Cliente/Servidor es un paradigma de
organización de los elementos que constituyen una aplicación
distribuida, para que colaborando conjuntamente implemente
la funcionalidad especificada a la aplicación:
Clientes: elementos activos que dirigen las actividades que deben
ejecutarse para implementar la tarea requerida por la aplicación.
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 múltiples clientes, de una o varias
aplicaciones.

Proporciona un marco de referencia sencillo, flexible y abierto
para distribuir la ejecución de una aplicación en múltiples
nudos de una plataforma. En él la mezcla y el acoplamiento es
la norma.

Procodis’08: VI- Cliente/servidor José M. Drake

4

Notas:

4

Características de la arquitectura Cliente/Servidor (1)

Servicios: Facilita la colaboración de procesos que se ejecutan en
diferentes máquinas, a través de intercambios de servicios. Los procesos
servidores proveen los servicios, los clientes los consumen.
Recursos compartidos: Los servidores pueden ser invocados concurrente-
mente por los clientes, y una de sus principales funciones es arbitrar el
acceso a recursos compartidos que son gestionados por el propio servidor.
Protocolos asimétricos: Un servidor puede atender a múltiples clientes. El
cliente conoce el servidor que invoca. El servidor no necesita conocer el
cliente que atiende.
Independencia de la ubicación: La ubicación de los servidores es
irrelevante. Se utilizan servicios de localización definidos a nivel de
plataforma para que los clientes encuentren a los de servidores.
Compatibilidad de clientes y servidores: Los mecanismos de interacción
entre clientes y servidores son independientes de las plataformas. Un
middleware independiza la aplicación de la plataforma.

Procodis’08: VI- Cliente/servidor José M. Drake

5

Notas:

5

Características de la arquitectura Cliente/Servidor (2)

Comunicación basada en intercambio de mensajes: Los clientes y
servidores son elementos acoplados de forma muy libre. Interaccionan a
través de intercambios de mensajes, con los se implementan las
invocaciones de los servicios y las respuestas de los servicios.
Encapsulación de los servicios: Los servicios son elementos
especializados, que tienen declarados públicamente los servicios que
puede servir. Sin embargo, la forma que implementa el servicio es sólo
propia de él, y no puede afectar a los clientes que los requieren.
Escalabilidad: Las aplicaciones basadas en clientes/servidores son
fácilmente escalables. Hay dos tipos de escalado:
Escalado vertical: Los sistemas pueden crecer por un incremento del número

de clientes y servidores.

Escalado horizontal: Los servidores pueden descomponenrse en grupos de

servidores que ofrezcan servicios desacoplados mas específicos.

Integridad: La información es administrada por el servidor de forma
unificada, dando lugar un mantenimiento mas sencillo y seguro. El
middleware de distribución garantiza la seguridad en los accesos a los
servicios y en la integridad de los datos.

Procodis’08: VI- Cliente/servidor José M. Drake

6

Notas:

6

Estrategias de reparto de la complejidad.

Clientes pesados / Servidores ligeros: La mayor parte de la funcionalidad
de la aplicación se implementa en el cliente.
Los servidores son mecanismo de acceso a recursos compartidos.
Mayor flexibilidad para aplicaciones que implementan nuevas

funcionalidades.

Ejemplos: Servidores de bases de datos o servidores de ficheros.
Clientes ligeros / Servidores pesados: La mayor parte de la funcionalidad
se implementa en los servidores.
Incrementar la reusabilidad del código.
Son mas fáciles 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.
Ambos modelos coexisten y se complementan dentro de una misma
aplicación.

Procodis’08: VI- Cliente/servidor José M. Drake

7

Notas:

7

Servidor/cliente de 2-niveles y n-niveles

2-tier Client/Server

- Aplicación

- SQL
- Data Access
- C API

2-tier versus 3-tier

Costo desarrollo y
mantenimiento

2-tier

3-tier

Cliente pesado

Servidor final

Complejidad de la aplicación

3-tier Client/Server

- Browser
- GUI
- ActiveX

- RPC
- ORB
- MOM
- HTTP

- DBMS
- Device drivers
- Resource APIs

- SQL
- Data Access
- C API

Cliente ligero

Servidor aplicación

Servidor final

Procodis’08: VI- Cliente/servidor José M. Drake

8

Notas:

8

Comparación de sistemas de 2-niveles y 3-niveles

Administración
del sistema

2-Niveles
Compleja: El cliente se constituye en
administrador efectivo

Seguridad

Baja: Seguridad a nivel de la transmisión de
la información.

3-Niveles
Menos compleja: La aplicación puede
gestionarse con las herramientas de gestión
de los servidores
Alta: se puede implementar a nivel del
servicio, operación u objeto.

Encapsulado de
la información

Carga de la red

Bajo: Las estructuras de datos son públicas

Alta: El cliente invoca servicio y métodos

Alta: Se envían por la red comandos de
bajo nivel. Deben descargarse datos al
cliente para ser analizados.

Baja: Sólo se envían requerimientos de
servicios y respuestas elaboradas a éstos

Escalabilidad

Pobre: No puede gestionarse conjuntamente
grupos de clientes. Los servidores son
terminales y difíciles de replicar.

Excelente: Permite concentrar los clientes.
Posibilita distribuir la carga entre servidores
replicados.

Reutilización
de aplicaciones

Pobre: Las aplicaciones son monolíticas y
concentradas en el cliente.

Excelente: Los servicios y objetos de
aplicación pueden reutilizarse.

Procodis’08: VI- Cliente/servidor José M. Drake

9

Notas:

9

Comparación de sistemas de 2-niveles y 3-niveles

Facilidad de
desarrollo

Infraestructura
entre servidores

Integración de
aplic. legadas

Soporte de web

Métodos de
comunicación

Flexibilidad
arquitectural

Robustez a fallos

2-Niveles
Alta: Solo se requiere conocer la
funcionalidad de los servidores
terminales.
No se requiere

No

Pobre: La anchura de banda limitada de
internet dificulta la descarga de clientes
pesados.
Invocaciones síncronas: de tipo RPC.

3-Niveles
Requiere nuevas herramientas: Para desarro-
llar los lados cliente y servidor de las
aplicaciones.
Se requiere middleware para facilitar la
interacción entre servidores.

Si: Mediante pasarelas planteadas como
servidores u objetos adaptadores.

Excelente: Los clientes formulados como
applets y beams son idóneos para
descargarse por la red.
Invocaciones síncronas y asíncronas: Tipo
RPC, mensajes sin conexión, basadas en
colas, eventos, etc.

Limitada: Solo se pueden establecer las
conexiones del cliente con los servidores
terminales.
Baja

Excelente: Existen múltiples posibilidades de
organización y distribución de los servidores
por la plataforma.
Excelente: Puede reinstalarse los servicios de
aplicación en cualquier equipo.

Procodis’08: VI- Cliente/servidor José M. Drake

10

Notas:

10

Arquitectura de sistemas de n-niveles

Los servidores de aplicación no se organizan como elementos monolíticos 3-
nivels, sino como conjuntos de muchos servidores sencillos n-niveles.
Los clientes combinan servicios de diferentes servidores y cada servidor puede
implementar su funcionalidad basándose en otros servidores.

Revisión
crédito

Facturación

Revisión
inventario

Envio avisos

Capa intermedia de aplicación

Actualización

cuenta

Pedido
producto

Agregar
cliente

Solicitud
servicio

LAN

Internet

WAN
privada

Catálogo
de ventas

Finanza

Atención cliente

Ventas

Procodis’08: VI- Cliente/servidor José M. Drake

11

Notas:

11

Ventajas de arquitecturas n-niveles: Componentes

Los proyectos grandes se pueden desarrollar como conjunto de pequeños
proyectos, con mayor posibilidades de éxito.
Se pueden reutilizar componentes entre aplicaciones. La aplicaciones se
construyen agrupando componentes de forma específica a la funcionalidad
que requiere.
Permite elevar el nivel de abstracción. Los clientes pueden requerir los
servicios por sus nombres y no necesitan conocer de que base de datos
proceden, ni que elementos participan para implementarlos.
Permiten incorporar fácilmente elementos legados.
Los entornos de componentes no envejecen sino mejoran:
Nuevos clientes pueden generarse añadiendo algún objeto servidor mas.
Los objetos servidores pueden modificarse o sustituirse sin que afecten a los

clientes.

Procodis’08: VI- Cliente/se
  • Links de descarga
http://lwp-l.com/pdf1032

Comentarios de: PROGRAMACION CONCURRENTE - VI.2: Introducción a los sistemas distribuido: Paradigma cliente/servidor (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad