Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos...

30
2/03/06 1 Prog Distr. Internet Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles client presentation layer resource management layer application logic layer i n f or m a t i on s ys t e m

Transcript of Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos...

Page 1: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 1Prog Distr. Internet

Arquitectura de los sistemas distribuidos

● A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

client

presentation layer

resource management layer

application logic layer

info

r mat

ion

s yst

em

Page 2: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 2Prog Distr. Internet

Nivel de Presentación● Todo sistema interactúa con entidades externas =

clientes– Pueden ser personas u otros sistemas informáticos– Utilizan los servicios del sistema

● La interacción (interfaz con el cliente) requiere:– Presentar la informacion a los clientes

● Ej.- interfaz gráfico, o cierto lenguaje de interacción– Permitir que los clientes lancen operaciones y obtengan

respuestas

Page 3: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 3Prog Distr. Internet

● Navegador web que accede a un fichero HTML– Actua como cliente (solo visualiza la información preparada

por el servidor web)– El nivel de presentación es el servidor web y los modulos

que crean el documento html (ej.- servlet java)● En los sistemas cliente/servidor

– Un mismo programa actúa como cliente y nivel de presentación

● (ej.- applet java ejecutándose en un navegador)

Posible confusión cliente/presentación

Page 4: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 4Prog Distr. Internet

Lógica de la aplicación

● Los sistemas de información no se limitan a devolver datos previamente almacenados– Realizan algún tipo de procesamiento sobre los datos (un

programa implementa la operación solicitada por el cliente)● Lógica de la aplicación = programas y servicios

ofrecidos por el sistema de información– Ej.interacción con el sist de información de un banco (ej

reintegro)– Representa la lógica de la operación desde el punto de vista

del proveedor del servicio (el banco)

Page 5: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 5Prog Distr. Internet

● Verifica las condiciones de cada operación– Comprobar si se exceden los niveles de reintegro– Autorizar (o no) la entrega de dinero

● Y realiza los pasos necesarios– Crea una entrada log para la operación– Realiza la operación frente al balance actual

● Todo esto es opaco para el cliente● Este nivel también puede denominarse

– Procesos de negocio, lógica de negocio, reglas de negocio, o simplemente servidor

Lógica de la aplicación (cont.)

Page 6: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 6Prog Distr. Internet

Gestión de recursos

● Los sistemas de información trabajan con datos– Los datos residen en un medio de almacenamiento estable

● Sistemas de ficheros● Bases de datos● Depósitos de información (repositories)

– Las fuentes de datos pueden incluso ser externas● Hay que interactuar con ellos

● Gestión de recursos = gestión de las fuentes de datos– Ej en el caso del banco, el estado de las cuentas

● También se denomina nivel de datos

Page 7: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 7Prog Distr. Internet

Alternativas de diseño

● Si partimos desde cero, diseño Top-Down– Procedemos por niveles (presentación, lógica de aplicación,

gestión de recursos)– Viable siempre que tengamos total libertad de acción– Ventaja.- Enfatiza los objetivos de funcionalidad (solución a

la medida)● Si nos basamos en sistemas pre-existentes, diseño

Bottom-Up

Page 8: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 8Prog Distr. Internet

1)Elige plataformas cliente y canales de acceso2)Define la funcionalidad del sistema

• Interacción cliente/sistema -protocolos, tipos ops, etc-

3)Define la lógica de aplicación necesaria4)Define los recursos necesarios para la lógica

• Organización de los datos y acceso a los mismos● En paralelo con los pasos anteriores

– Especifica distribución del sist. entre los nodos● Puede distribuirse funcionalidad de cualquier nivel

Diseño Top-Down

Page 9: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 9Prog Distr. Internet

Diseño Bottom-Up

● Responde a una necesidad, no a una elección– Los sistemas de información se construyen en base a

integrar sistemas ya existentes● Se denominan legacy applications o legacy systems● Utilizamos dichos sistemas en un contexto o con un propósito

diferente al original– Todo sistema de información inevitablemente se convertirá en

legacy en algún momento de su vida útil● Problema.- integrar la funcionalidad de sistemas

'legacy'– No podemos seleccionar la funcionalidad (prefijada)

● El diseño top-down no es viable

Page 10: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 10Prog Distr. Internet

● El diseño está condicionado por las caracteristicas de los niveles inferiores. – Definir la funcionalidad deseada– Analizar el nivel de gestión de recursos (donde están los

sistemas legacy)● Analizar la viabilidad (y coste) para obtener la funcionalidad

necesaria a partir de dichos componentes– Construir interfaces adecuados para esos elementos

(wrapped)– Construir la lógica de aplicación usando dichos interfaces.– Desarrollar la presentación

Diseño Bottom-Up (cont.)

Page 11: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 11Prog Distr. Internet

Bottom-Up (cont.)

● Los pasos son:– Investigar las aplicaciones y procesos existentes– Analizar y reestructurar el dominio del problema

● El resultado es un sistema debilmente acoplado– Muchos elementos son sistemas independientes

● Pueden reutilizarse en otros contextos● En ocasiones se busca ambivalencia

– El sistema legacy debe mantener su funcionalidad como sistema independiente

– y simultaneamente es un componente de nuestro sist

Page 12: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 12Prog Distr. Internet

Inciso.- Servicios web

● La ventaja de los servicios web radica en que:– Permiten diseños bottom-up más eficientes– Facilitan su desarrollo y mantenimiento.

Page 13: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 13Prog Distr. Internet

Arquitectura

● Los niveles lógicos pueden combinarse y distribuirse de distintas formas.

● En ese caso hablamos de niveles de la arquitectura (tiers)– Aparecen arquitecturas 1 tier, 2 tier, 3 tier, N tier

● La arquitectura de los sistemas distribuidos evolucionan en respuesta a:– Mejoras a nivel del hardware y redes de interconexión– Nuevos tipos de aplicación– Nuevos patrones en el uso de los sistemas

Page 14: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 14Prog Distr. Internet

Evolución histórica

● 1 tier (mainframes + terminales)– Sistema monolítico

● 2 tier– Modelo Cliente/Servidor

● 3 tier– Middleware

● N tier– Integración entre servidores

● ...Servicios web

Page 15: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 15Prog Distr. Internet

1 tier

client

presentation layer

resource management layer

application logic layer

info

rmat

ion

sys t

e m

1-tier architecture

Page 16: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 16Prog Distr. Internet

● Mainframe al que se conectan terminales– Terminal = pantalla+teclado

● Se limita a mostrar la información remitida por el mainframe● Todos los niveles mezclados (entidad monolítica)

– Eficiente, mantenimiento caro, modificación imposible– No existe un API para que las aplicaciones u otros sistemas

interactuen con ese sistema– Screen scrapping (a medida, elevado coste)

● Algunos sistemas de ese tipo continuan en uso– Ejemplo de legacy system

1 tier (cont.)

Page 17: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 17Prog Distr. Internet

2 tier

clientpresentation

layer

resource management layer

application logic layer

info

rmat

ion

sys t

e m

ser v

e r

2-tier architecture

Page 18: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 18Prog Distr. Internet

● Aparecen los Pcs– División entre grandes ordenadores (mainframes y servidores,

pero con terminales inteligentes-ej Pcs-)– y pequeños ordenadores (PC y estaciones de trabajo)

● Los terminales inteligentes permiten desplazar el nivel de presentación al cliente– Libera potencia en el servidor– Permite personalizar el nivel de presentación

● Modelo cliente/servidor– El cliente procesa información remitida por el servidor

2 tier (cont.)

Page 19: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 19Prog Distr. Internet

2 tier.- Cliente/Servidor

● Se populariza el modelo cliente/servidor– Clientes ligeros (funcionalidad mínima)

● Fáciles de portar, instalar y mantener– Clientes pesados (amplia funcionalidad).

● Requieren muchos recursos en la máquina cliente.● Aparece el 'interfaz de aplicación' (API). Indica:

● Como invocar el servicio● Las respuestas que pueden esperarse● Qué efectos tendrá sobre el estado interno del servidor.

– Un API estable permite:● Desarrollar todo tipo de clientes● Evolucionar el servidor sin afectar a los clientes

Page 20: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 20Prog Distr. Internet

● Servicio = programa que implementan la lógica de aplicación– Se ejecuta sobre un servidor. – El interfaz del servicio define como interactuar con el mismo,

y oculta los detalles de implementación● API del servidor = cto de interfaces de los servicios

que se ejecutan sobre el servidor● Enfasis en interfaces -> necesidad de estandarización

– Los servicios web representan el último paso en la vía de la estandarización.

2 tier.- Cliente/Servidor (cont.)

Page 21: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 21Prog Distr. Internet

2 tier (cont.)

● Eficiencia– Los niveles lógico y de recursos comparten contexto

● Mantenemos la eficiencia de las operaciones clave● Permite las mismas optimizaciones que en sistemas 1tier.

● Portabilidad– El nivel de presentación es independiente– Puede reescribirse para distintos tipos de clientes

● Problema de escalabilidad– Un servidor soporta un número limitado de clientes

Page 22: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 22Prog Distr. Internet

2 tier (cont.)

● El cliente no debe integrar servicios– Cliente complejo– Invalidado si cambia el API de cualquier servidor

client

presentation layer 1

resource management layer

application logic layer

serv

er

1

resource management layer

application logic layer

serv

er

2

resource management layer

application logic layer

serv

er

2

presentation layer 2

application logic

Page 23: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 23Prog Distr. Internet

3 tier

clientpresentation

layer

resource management layer

application logic layer

info

rmat

ion

syst

em

3-tier architecture

middleware

Page 24: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 24Prog Distr. Internet

3 tier (cont.)

● Necesitamos integrar servicios (ej.- servidores de una empresa)– Los servidores no se conocen entre sí– El cliente no puede integrarlos– Las mejoras a nivel de interconexión (LANs) permiten

plantear la integración de distintos servidores.● Introducimos un nivel adicional entre clientes y

servidores (middleware)– Dicho nivel incluye la lógica de aplicación– Y además soporta integración de los sist subyacentes.

Page 25: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 25Prog Distr. Internet

3 tier (cont.)

● Arquitecturas más complejas y variables las 2 tier– Caracterización dificil

● A nivel abstracto– La presentación reside en el cliente– La lógica en el nivel intemedio (middleware)– El nivel de recursos está compuesto por todos los

servidores que deseamos integrar● a su vez poseen sus propios niveles de lógica y recursos

Page 26: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 26Prog Distr. Internet

3 tier.- integración de sistemas

resource management

layer

clientpresentation

layer

application logic layer

middlewareintegration logic

2-tier

1 -t ier

wrapperwrapperwrapperwrapper

client client

wrapperwrapper

3 -t ier

Page 27: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 27Prog Distr. Internet

3 tier (cont.)

● Mejor escalabilidad● Lógica de aplicación y gestión de recursos pueden ejecutarse

en servidores distintos● Mejor portabilidad● Mejor reutilización

● Podemos adaptar/reutilizar cada nivel● Middleware =

● Base para desarrollar lógica de aplicación● Permite añadir otras propiedades (transacciones, logging, replicación,..)

● Facilidad para integrar recursos diferentes● Soporte para automatización

Page 28: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 28Prog Distr. Internet

N tierclient

resource management layer

application logic layer in

form

ati on

s yst

em

N-tier architecture

middleware

presentationlayer

Web serverWeb server

Web browser

HTML filterHTML filter

Page 29: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 29Prog Distr. Internet

● Dos variantes:● Enlazar distintos sistemas

● El nivel de recursos puede contener no solo recursos simples, sino sistemas 2-tier y 3-tier completos

● Añadir conectividad mediante internet● Incorporamos servidores web como parte del nivel de presentación● El cliente es el navegador web, y el nivel de presentación se distribuye

entre el navegador web, el servidor web, y el código que prepara las págs HTML

● Podemos añadir otros niveles: ej filtro HTML que transforma los datos generados por la lógica de aplicación en páginas HTML

N tier

Page 30: Arquitectura de los sistemas distribuidos - PoliformaT · Arquitectura de los sistemas distribuidos A nivel lógico, los sistemas de información se diseñan asumiendo tres niveles

2/03/06 30Prog Distr. Internet

N tier (cont.)

● Arquitectura muy compleja● Colección de redes, ordenadores simples, clusters, y enlaces entre

distintos sistemas● Los clientes remotos acceden al sistema via internet● Clientes dispersos por toda la empresa pueden acceder tambien a la

lógica de aplicación● Puede coexistir varias plataformas middleware para distintas aplicaciones

y funcionalidad● El nivel de recursos puede agrupar varios sistemas, e incluir enlaces a

sistemas 2tier, 3tier y Ntier adicionales● Elevado coste de desarrollo y mantenimiento

● Mucho middleware involucrado, muchas veces funcionalidad redundante● Los costes crecen con el número de niveles