Arquitecturas Distribuidas
Eduardo Ostertag Jenkins, Ph.D.
OBCOM INGENIERIA S.A.
[email protected]
Temario
Arquitectura Cliente/Servidor File
Arquitectura Cliente/Servidor SQL
Arquitectura Cliente/Servidor RPC
Arquitectura de Tres Niveles
Arquitectura Web Estándar
Arquitectura RIA con AJAX
Arquitectura RIA con VM
Demos de aplicaciones RIA-VM
Cliente/Servidor File (1)
Computador
Interfaz Gráfica
Computador
Interfaz Gráfica
Lógica Solución
• • • •
Lógica Solución
Motor SQL
Motor SQL
R
E
A
D
Intranet
Archivos con datos
Microsoft Access MDB
Servidor
B
Y
T
E
S
Cliente/Servidor File (2)
Características
Todo está en un solo programa (GUI+Lógica)
Programas acceden a un Servidor de Archivos
Fácil y rápido de construir con un IDE
Se requiere “know-how” de un solo ambiente
Soluciones pequeñas (10 a 15 computadores)
Desventajas
Toda la data debe viajar a los clientes para que
el Motor SQL pueda ejecutar sentencias SQL
La red se transforma en cuello de botella
Cliente/Servidor SQL (1)
SQL = Structured Query Language
Computador
Interfaz Gráfica
Lógica Cliente
Lógica Negocio
• • • •
Computador
Interfaz Gráfica
Lógica Cliente
Lógica Negocio
S
Q
L
Intranet
BD Relacional
Tablas SQL
Servidor
D
A
T
A
Cliente/Servidor SQL (2)
Características
Manejo de datos centralizados en RDBMS
Clientes leen/cambian datos utilizando SQL
Disminuye el flujo por red de comunicaciones
Se requiere “know-how” de dos ambientes
Soluciones medianas (≈100 computadores)
Desventajas
Modelo de Datos y Lógica están acoplados
Difícil cambiar y optimizar Modelo de Datos
Cliente/Servidor RPC (1)
RPC = Remote Procedure Call
Computador
Interfaz Gráfica
Lógica Cliente
• • • •
Computador
Interfaz Gráfica
Lógica Cliente
R
P
C
Intranet
BD Relacional
Lógica Negocio
Tablas SQL
Servidor
D
A
T
A
Procedimientos Almacenados
Ventajas
Modelo de datos se puede modificar/optimizar (desacoplamiento)
Único mecanismo de acceso al modelo de datos (seguridad)
Todos (Java, .NET, Batch, etc.) usan misma reglas (reusabilidad)
Uso eficiente de red de comunicaciones (marshalling, round-trips)
Están precompilados (eficientes) y permiten programación modular
Mucho “know-how” disponible en el mercado (programadores)
Desventajas
No son fácilmente migrables de un motor RDBMS a otro
...y esas serían todas las desventajas
Cliente/Servidor RPC (2)
Características
Clientes hacen llamados remotos (RPC)
Fácil cambiar y optimizar el Modelo de Datos
Se requiere “know-how” de tres ambientes
Soluciones grandes (≈1000 computadores)
Desventajas
Mala escalabilidad por contención BD (locks)
RDBMS demasiado visible (seguridad)
Arquitectura no adecuada para Internet
Arquitectura de Tres Niveles (1)
Computador
Programa
• • • •
Computador
Programa
Extranet
Muchas conexiones
Servidor Middleware (MOM, MT, AS)
Pocas conexiones
Intranet
RDBMS
Arquitectura de Tres Niveles (2)
Características
Clientes se comunican con Servidor Middleware
Servidor Middleware se comunica con RDBMS
Se utilizan “Connection Pools” (pocas, reuso)
Alto rendimiento del RDBMS (Markov Queues)
Aísla el RDBMS de los programas clientes
Desventaja
Hay que instalar/actualizar programas clientes
Arquitectura no adecuada para Internet
Arquitectura Web Estándar (1)
Computador
Browser
• • • •
Computador
Browser
Internet
Firewall
Servidor Web (HTTP)
HTML, JSP, ASP, Servlet, PHP, CGI, etc.
Intranet
RDBMS
Arquitectura Web Estándar (2)
Características
El programa cliente es un “Browser” (HTTP)
Solución programada con HTML+JavaScript
Se instala y actualiza automáticamente
Permite comunicaciones encriptadas (SSL)
Desventajas
Modo de uso tipo “navegación por páginas”
Servidor mantiene estado del cliente
Servidor ejecuta lógica GUI del cliente
Arquitectura RIA con AJAX (1)
Computador
Computador
Browser
AJAX
• • • •
Browser
AJAX
Internet
Firewall
Servidor Web
Servicios REST
Intranet
RDBMS
Arquitectura RIA con AJAX (2)
AJAX (Asynchonous JavaScript and XML)
Se programa con lenguaje JavaScript
XHTML (HTML) + CSS para la interfaz
Estructura DOM (Document Object Model)
XMLHttpRequest comunicación asíncrona (XML)
REST (Representation State Transfer)
SOAP “light” – sin WSDL, Envelops, etc.
HTTP GET/POST más data XML/XHTML
Arquitectura RIA con AJAX (3)
Ventajas
Permite crear interfaz tipo “desktop” (rich)
Se programa con un Framework (Backbase)
Sólo requiere la tecnología ya disponible
Servidor Web no genera interfaz gráfica (HTML)
Servidor Web no guarda estado (stateless)
Desventajas
Difícil programar y depurar los programas
No permite crear clientes semi-conectados
Limitado por seguridad del browser (sandbox)
Arquitectura RIA con VM (1)
VM = Virtual Machine
Computador
Computador
Browser
RIA VM
• • • •
Browser
RIA VM
Internet
Firewall
Servidor Web
Servicios SOAP y REST
Intranet
RDBMS
Arquitectura RIA con VM (2)
Ventajas
Se programa una VM (Flash, Java, .NET)
Se pueden utilizar Servicios SOAP y REST
Permite crear clientes semi-conectados
Fácil de programar y depurar los programas
Desventajas
Limitado por seguridad del browser (sandbox)
Es necesario instalar una VM en el cliente
RIA Virtual Machines (VM)
RIA Virtual Machine Multi OS
Tamaño
Disponibilidad
IDE
Adobe Flex
Adobe AIR
Sun Java (JRE)
Sun JavaFX
Si
Si
Si
Si
1,4MB
12MB
14MB
?
Alta
Baja
Baja
Beta
Eclipse
Eclipse
NetBeans
Eclipse
NetBeans
Eclipse
Microsoft .NET
No
23MB
Baja
Visual Studio
Microsoft Silverlight
¿Si?
1,4MB
Baja
Visual Studio
AJAX
Si
N/A
N/A
Editor XML
Aplicación RIA Applet Java (1)
Aplicación RIA Applet Java (2)
Aplicación RIA .NET
Aplicación RIA Adobe Flex (1)
Aplicación RIA Adobe Flex (2)
Muchas gracias
Comentarios de: Arquitecturas Distribuidas (0)
No hay comentarios