Arquitecturas de Sistemas

Arquitecturas de Sistemas
Cesar J. Bustacara Medina, MsE.
Architecture metamodel
Software
Architecture
is part
of
Software
Architects
are actors in
System
architecture
is represented by
Architecture
Design Process
produces
Software
Architecture
Description
has
Logical view
Process
view
is made of
relates to
is a
Architecture
Style guide
Architectural
view
has
Architectural style
is a
Architectural
Pattern
Deployment
view
Use case
view
is made of
has
Implementation view
constrains
Form
Component
Connection
depicts
Constraints
satisfies
constrains
Requirements
Architectural
Blueprint
2
Arquitecturas de Sistemas
Tipos de Arquitecturas
„
„
„
„
„
„
„
„
„
„
Arquitecturas Monolíticas (Mainframes)
Arquitecturas de archivos compartidos
Arquitecturas tradicionales Client/Server
Arquitecturas de DOS capas cliente-servidor (Twotier Client/Server)
Modelo Two-Tier modificado
Arquitecturas de TRES capas (Three-Tier)
Arquitectura J2EE
Arquitectura .NET
Arquitecturas empresariales
3
Arquitecturas Monolíticas (Mainframes)
Mainframe :
•Manejo de las aplicaciones
•Procesamiento
•Almacenamiento de Archivos
•Prestación de servicios
Las terminales :
•Medio de presentación de
información
•Captura de datos.
4
Arquitecturas de archivos compartidos
Computador central:
central
•Almacenar los archivos
•Prestar servicios sobre
ellos
Los Clientes (PCs) :
•Realizar operaciones de
procesamiento de datos
•Ejecutar aplicaciones.
5
Arquitecturas tradicionales Client/Server
El servidor :
• Manejar la base de
datos.
Los clientes :
• Realizar las consultas
• Procesar los datos
• Actualizar los datos.
6
Arquitecturas de DOS capas clienteservidor (TWO tier Client/Server)
El servidor :
•Manejar la base de datos
•Realizar algún
procesamiento de datos.
Los clientes :
•Realizar las consultas
•Procesar los datos
•Actualizar los datos.
7
Adicionalmente,
„
„
„
„
Todo el procesamiento es hecho al lado del
cliente.
El servidor de BD es un repositorio.
La “logica” en el servidor puede incluir
restricciones simples (e.g. foreign key
constraints, not null constraints).
Las restricciones de la base de datos
desabilita operaciones que pueden causar
problemas obvios de integridad en los datos.
8
Diferentes modelos
Aplicación
Internet
DB
Web Server
DB
b)
Tier 1
Software
Application
Desktop
Database
Drivers
Tier 2
c)
DB
d)
9
Diferentes Modelos
10
Principales ventajas:
„
„
Familiar: La arquitectura es familiar y
simple de implementar. Es similar a los
programas tradicionales en mainframe.
Accessible: Muchas herramientas
funcionan unicamente dentro de
modelo two-tier (herramientas de
reportes).
11
Principales ventajas:
„
„
Productividad: muchas herramientas
RAD tienen optimizaciones especiales
que reducen el trabajo para desarrollo
de modelos two-tier (Visual Basic,
PowerBuilder, Delphi, C++ Builder).
Probado: el modelo two-tier ha sido
altamente probado y es bien entendido.
12
Tipos de aplicaciones para
usar un modelo two-tier
„
„
„
„
Que soporten un numero limitado de usuarios
(no mas de algunos cientos).
La aplicación esta en red y las bases de datos
son “locales” (no sobre WAN o Internet).
Un nivel normal de seguridad es requerido
(los datos no son sensibles).
El aceso a datos desde aplicaciones externas
es mínimo.
13
Principales desventajas
„
Escalabilidad: El desempeño de las
aplicaciones se degrada rapidamente cuando
el número de usuarios concurrentes alcanza
un umbral entre cientos de usuarios y miles
de usuarios.
Esto es verdad incluso para los servidores
grandes de bases de datos.
14
Principales desventajas
„
„
Baja reutilización de la lógica: Mantiene la
lógica del negocio en el cliente. Cuando la
lógica esta en el cliente, es más dificil reusar
la lógica entre aplicaciones y entre
herramientas.
Distribución de la Aplicación: La aplicación
debe ser distribuida a cada cliente. Cuando
existe un gran número de usuarios, implica
una sobrecarga administrativa (soporte
técnico).
15
Principales desventajas
„
„
Uso Remoto: Usuarios remotos (clientes),
probablemente no desean instalar
aplicaciones -- prefieren clientes livianos
"thin” o clientes que no requieren instalación-.
Estructura de la BD: Aplicaciones que accesan
la BD serán dependientes de la estructura
actual de la BD, implicando mayor dificultad
para rediseñar la BD sin incluir cambio de
codigo.
16
Modelo two-tier Modificado
17
Modelo two-tier modificado
„
„
Para incrementar la reutilización de la
lógica del negocio es colocarla dentro
de triggers o procedimientos
almacenados en la BD.
Las validaciones son ejecutadas
llamando un procedimiento almacenado
apropiado
18
Modelo two-tier modificado
Ejemplo:
„
La lógica del negocio puede indicar que
nunca una materia es matriculada a
menos que sus prerrequisitos hayan
sido aprobados.
19
Ventajas
„
„
Mejor Re-uso: La misma lógica (en stored
procedures & triggers) puede ser iniciada
desde muchas aplicaciones cliente y
herramientas.
Mejor integridad de datos: cuando la
lógica es validada al disparar los triggers
(antes de insertar y actualizar), la
integridad de los datos puede ser
garantizada.
20
Ventajas
„
Incrementa el desempeño para
validaciones complejas: Cuando la
lógica del negocio requiere muchos
accesos a la BD para ejecutar una
tarea, el trafico en la red se reduce
significativamente cuando toda la
validación es encapsulada en un
procedimiento almacenado.
21
Ventajas
„
Incrementa la seguridad: Los
procedimientos almacenados pueden
aumentar la seguridad siempre y
cuando los detalles de la lógica del
negocio sea encapsulada en un servidor
central seguro.
22
Ventajas
„
Distribución reducida: Cambios en la
lógica del negocio solo requieren
actualización en la BD y no tienen que
ser distribuidos a todos los clientes.
23
Desventajas
„
La mayor desventaja tanto del modelo
two-tier tradicional como del
modificado, es la ESCALABILIDAD, la
cual es manejada por el modelo threetier.
24
Arquitecturas de TRES capas (ThreeTier)
„
„
La aplicación es dividida en tres capas
(tier) formales: Presentación (o capa
GUI), Intermedia (o Servidor de
Aplicación) y de Datos.
La clave en el módelo es el SERVIDOR
DE APLICACIONES, que encapsula las
aplicaciones de la lógica del negocio.
25
Modelos
DB
Internet
Web Server
Tier 1
Tier 2
Tier 3
26
Modelos
User Interface
Application
Logic
DB
XML
27
Modelos
28
Arquitecturas de TRES capas
(Three-Tier)
„
En el modelo three-tier el servidor de
aplicaciones puede estar implementado
en una o más capas y puede estar
distribuido en uno o más lugares.
29
Presentation Tier
„
„
„
Contiene todo el código necesario para la
interface de usuario.
Es una capa liviana (thin client), que no
contiene lógica del negocio.
Usa Visual Basic, PowerBuilder, Delphi,
etc., y más recientemente Web-browser
(HTML) y JavaScript.
30
Presentation Tier
Puede incluir una gran variedad de
clientes:
„
„
„
Clientes estándar (como parte de una
aplicación cliente/servidor).
Clientes internet.
Herramientas de reportes.
31
Middle Tier (Application
Server)
„
Contiene las reglas del negocio que
frecuentemente son segmentadas en
pequeños componentes de software,
que son accesados por la capa de
presentación.
32
Middle Tier (Application
Server)
„
„
„
Implementada como una o varias capas.
Distribuida en una o varias máquinas.
Un monitor de procesamiento de
transacciones (TP) o un Object Request
Broker (ORB) puede ser usado para
balancear los requerimientos de los
clientes a través de múltiples servidores
de BD.
33
Middle Tier (Application
Server)
„
„
Un TP o un ORB puede ser usado para
iniciar o detener instancias de
servidores de aplicación adicionales.
Es posible soportar más usuarios
adicionando servidores de aplicación,
sin necesidad de rediseñar o reconstruir
la aplicación.
34
Middle Tier (Application
Server)
„
„
No es necesario ubicar físicamente
desde el inicio el servidor de
aplicaciones.
En versiones beta (prueba o que tiene
un numero de usuarios limitado), la
middle tier puede ser instalada
(deployed) sobre la máquina cliente o
sobre el servidor de BD.
35
Middle Tier (Application
Server)
„
La middle tier nunca debe recuperar o
manipular datos de la BD directamente.
Siempre debe hacerlo a través de la
capa de datos (Data Layer).
36
Data Tier
„
„
Contiene los datos requeridos por la
aplicación (BD, documentos XML o un
servicio de directorios “LDAP”).
La base de datos puede ser centralizada
o distribuida.
37
Data Tier
„
Incluye procedimientos para
recuperación de datos desde la capa de
negocios y ejecuta las tareas CRUD
(Create, Replace, Update, Delete).
38
Ventajas
„
Escalabilidad: Incrementa la
escalabilidad dado que el servidor de
aplicaciones puede ser instalado sobre
muchas máquinas.
Solo se requiere una conexión por cada
servidor de aplicaciones a la BD.
39
Ventajas
Monitores TP ó ORBs pueden ser
usados para balaceo de carga y para
manejar dinamicamente el numero de
servidores de aplicación disponibles.
40
Ventajas
„
„
Mejor Reutilización: La misma logica
puede ser iniciada desde muchos
clientes o aplicaciones.
Incremento en la integridad de Datos:
la middle tier puede garantizar que
solamente datos validos son
actualizados en la BD, y el riezgo de
datos corruptos es eliminado.
41
Ventajas
„
Incremento en la seguridad: puede ser
implementada en varias capas (no
unicamente en la BD). La seguridad
puede aumentar dado que el cliente no
tiene aceso directo a la BD. La lógica de
negocios es generalmente más segura
si esta en un servidor central seguro.
42
Ventajas
„
„
Distribución reducida: Cambios en la lógica
del negocio solo necesita ser actualizada
en el servidor de aplicaciones, no en todos
los clientes.
Incremento en la disponibilidad:
aplicaciones de mision-critica pueden hacer
uso de servidores de aplicación y de bases
de datos redundantes.
43
Ventajas
„
Con servidores redundantes, es posible
diseñar aplicaciones que se recuperen a
fallas de red o de servidores
Ocultar la estructura de la BD: el cliente
no conoce la estructura de la BD, esto
hace que los cambios sean
transparentes para el usuario.
44
Ventajas
„
Un servicio en la capa intermedia que
intercambia información/datos con otras
aplicaciones puede mantener su
interface original mientras se realizan
actualizaciones a la estructura de la BD.
45
Desventajas
„
„
Incremento de la Complejidad/Esfuerzo:
Es mas dificial construir aplicaciones
three-tier que two-tier.
Las ventajas provistas por las
herramientas cliente (Visual Basic,
PowerBuilder, Delphi) se pierden en
arquitecturas three-tier.
46
Arquitectura J2EE
„
Multiniveles (n-tier):
„
„
„
„
„
„
„
„
„
Client-tier: HTML, WML, XML, Applets Swing, etc.
Web-tier : Servlets, JSP, XML, XLST, Beans
Business-tier : EJB, JTA, CORBA, RMI/IIOP, etc.
Connector-tier : JDBC, JNDI, JMS,JINI, JCA.
EIS-tier: RDBMS, ERP, CRM, Mail Server, Legacy
systems, dispositivos electrónicos, etc.
Portable : Plataforma operacional, RDBMS
Escalable
Robusta (Transacciones Distribuidas, Thread Safe)
Distribuida
47
Modelo
48
Modelo
49
Web-tier (Presentation-tier)
WEB-CONTAINER
(Tomcat Jakarta)
HTML
Java Servlets
COMPONENTES
DEL NEGOCIO
Enterprise Java Beans
SERVLET
Navegador
WML
JSP
RMI
(Remote Method
Invocation)
Celular
XML, C-HTML
XSLT
eXtensible Style Language Transformer
PDA
(Pilot)
50
Business-tier (EJB-tier)
Business-CONTAINER
(JoNas, Jboss, Websphere,
iPlanet, Web Logic)
Conectores
Java Connector Architecture
EJB
Componentes de
Presentación
JSP, Servlet, etc.
JTA
JDBC
JCA
Mail
JMS
JINI
Power Builder
RMI / IIOP
CORBA
Visual Basic
51
Arquitectura Ideal
Client-tier
Connector-tier
EIS-tier
Componentes Componentes
Presentación (Business rules)
Browser
INTERNET
Servidor Web
RDBMS
CORBA
Celular
PDA
(Pilot)
Business-tier
web-tier
Portable
Escalable
Robusta
Distribuida
Legacy Systems
(Cobol, etc.)
Delphi
Power Builder Visual Basic
Directorio de
Servicios
52
ERP/CRM
Arquitectura J2EE
53
Arquitectura .NET
„
Es la combinación de:
„ Framework
„
„
„
„
„
Common language
runtime (CLR)
Class libraries
ASP.NET
Web Services
.NET Enterprise
Servers
54
.NET y .NET Framework
Web Services
Office.Net
Building Blocks (e.g. for Services)
...
...
„
Servicios WEB XML
„
„
.NET Applications
„
Enterprise Servers
Languages:
SQL Server
C#, Visual Basic, etc
BizTalk
...
Runtime
Common
Type
System
„
„
„
„
Common
Language
Runtime
Services: .NET and COM+
Cliente - Cliente
Cliente - Servidor
Servidor Servidor
Servicio-Servicio
Clientes
Inteligentes
Servidores .NET
Herramientas de
desarrollo
.NET Framework
Operating System
55
.NET Framework
XML Web
Services
User
Interface
(Web Forms)
User
Interface
(Windows Forms)
ASP.NET
Base Framework Classes
Common Language Runtime
Base Frame
Data & XML Classes
56
Common Language Runtime (CLR)
Base Class Library Support
Thread Support
„
COM Marshaler
Type Checker
Exception Manager
Security Engine
Debug Engine
Common
Language
Runtime
„
„
„
„
MSIL to Native
Compilers (JIT)
Code
Manager
Garbage
Collector (GC)
„
„
Class Loader
Integración
multilenguaje
Gestión de
memoria,
hilos y
procesos
Gestión de la
seguridad
Gestión fuerte
de tipos
Enlace
dinámico
Librerías de
clases
57
Modelos de Programación
Consistent API availability regardless of
language and programming model
.NET Framework
RAD,
Composition,
Delegation
Visual Basic®
Forms
Subclassing, Power,
Expressiveness
MFC/ATL
Stateless,
Code embedded
in HTML pages
ASP
Windows API
58
Características de .NET
„
„
„
„
„
Fuerte respaldo
Mas eficiente que anteriores versiones y
más fácil de instalar
Migración de Visual Basic a Visual Basic
.NET factible
Curva de aprendizaje suave
Herramientas de desarrollo.
59
Arquitecturas empresariales
Objetivos de una AE
„
„
„
„
„
Robustez
Buen desempeño
Escalabilidad
Tomar ventaja de los principios de
diseño ofrecidor por los OO.
Evitar complejidad
„
RUP vrs XP
61
Objetivos de una AE
„
„
„
„
„
„
„
Extensibilidad
Mantenibilidad
Productividad
Facil de probar
Promueva la reusabilidad
Soportar multiples tipos de clientes
Portabilidad
„
Persistencia.
62
Tipos de arquitecturas
„
Arquitecturas no distribuidas
„
„
„
Aplicaciones web con interfaces a componentes
del negocio.
Web application that access local business objects.
Arquitecturas distribuidas
„
„
Aplicaciones distribuidas con objetos del negocio
remotos.
Aplicaciones web que exponen un interface tipo
web service”
63
Aplicaciones web con interfaces a
componentes del negocio.
64
Aplicaciones web accediendo interfaces
locales de business objects.
65
Aplicaciones distribuidas con objetos
del negocio remotos.
66
Aplicaciones web que exponen un
interface tipo web service”
67
Arquitecturas típicas de aplicaciones
68
Bibliografia
„
„
„
„
Subrahmanyam Allamaraju, Professional Java Server
Programming J2EE Edition, Wrox, 2000.
Couch and Steinberg, Java 2 Enterprise Edition, Sams
Publishing, 2002.
Carnell John, Oracle 8i Application Programming with
Java, PL/SQL and XML, Wrox, 2000.
Tutorial J2EE,
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.
html
69