Internet
Objetivos
Interoperabilidad
Dos o ms sistemas o componentes intercambian informacin de manera
sencilla
Escalabilidad
Facilidad de modificar y adaptar un sistema a las necesidades del problema
para el cual fue diseado
Flexibilidad
Capacidad de modificar un sistema para solucionar un problema para el cual
no fue diseado inicialmente
Arquitectura Cliente/Servidor
Servidor Base de Datos
Cliente
Arquitectura Cliente/Servidor
Servidor Base de Datos
Cliente
Interfase de usuario
Alguna lgica del negocio
Administracin de datos
Lgica del negocio, en triggers,
procedimientos almacenados,
Arquitectura Cliente/Servidor
Arquitectura Cliente/Servidor
Control no centralizado
Difcil implementar seguridad
Cuellos de botella en los servidores de Bases de
datos
Se tienen muchas conexiones
La lgica del negocio se encuentra en la base de
datos (escrita en lenguaje propietario)
Arquitectura Cliente/Servidor
Cliente
Cliente
Servidor BD
Servidor BD
Cliente
Cliente
Servidor BD
Conexiones: c * s
Arquitectura Cliente/Servidor
En trabajo en grupo/departamental
Se controla el nmero de clientes y as el nmero
de transacciones
Hay que controlar la(s) plataforma(s).
Cliente
Interfase de usuario
Administracin de las
transacciones
Servidor de Bases
de Datos
Administracin
de los datos
Cliente ms liviano
Menos administracin en el cliente
Lgica encapsulada
Mejor rendimiento
Escalabilidad
Consistencia, control y seguridad
Reusabilidad de componentes existentes
Listo para usar la Web
Arquitectura multicapa
Cliente
Cliente
Cliente
Cliente
Servidor de Aplicaciones
Servidor BD
Servidor BD
Servidor BD
Conexiones: c + s
Arquitectura multicapa
Caractersticas
Impredecible el nmero de clientes/transacciones
Abre las aplicaciones hacia Internet/extranet
Arquitectura multicapa
Principios de la arquitectura Multitier
Encapsula o particiona la lgica del negocio en objetos.
Mueve o distribuye los objetos del negocio a una
mquina dedicada
Da acceso o permite alojar a los objetos en un servidor de
aplicaciones
El servidor de aplicaciones recibe requerimientos de
procesamiento de los clientes. El servidor dirige los
requerimientos a los objetos del negocio para su
procesamiento
Arquitectura multicapa
Ejemplos
Lgica de negocio: aprobacin de prstamos,
autorizacin de tarjeta de crdito
Datos en cach: estados, partes/productos
Servicios para recursos especializados: va hacia
un computador servidor tipo mainframe o hacia un
servidor de fax, servicios inalmbricos de la vida real
Arquitectura multicapa
Razones para pasarse a una arquitectura multicapa
Ms escalable
Mayor reutilizacin de objetos
Listos para desarrollos Web/Inalmbricos
Arquitectura multicapa
No todas las aplicaciones necesitan estar distribuidas
Especialmente si el nmero de usuarios es pequeo
Si no se piensa en servicios a travs de la Web
Si no hay cdigo reutilizable entre aplicaciones
Si la lgica del negocio no cambia o los cambios son muy
espordicos
Arquitectura multicapa
En aplicaciones muy grandes
Generalmente estn escritas en muchos lenguajes
Utilizando diferentes herramientas
Con clientes heterogneos (incluyendo aplicaciones HTML
basadas en la Web)
Mquinas de los clientes heterogneas
All se necesita arquitectura distribuida. En estos casos no se
pueden administrar fcilmente las aplicaciones en un
ambiente tpico de dos niveles
CORBA
CORBA: Common Object Request Broker Architecture
Arquitectura estndar para objetos distribuidos
Independiente de proveedor
Separa la interfase de la implementacin
CORBA
Componentes CORBA tpicamente aceptados en
los servidores de aplicaciones
CORBA-Java
Objetos no visuales (NVA, Non-Visual Objects)
CORBA C++ / C
ActiveX
EJB (Enterprise Java Beans)
CORBA
Java
Java
NVO
NVO
ORB
IIOP
ORB
ORB
Java
NVO
OMG
OMG Object Management Group
OMG provee especificaciones y estndares
No provee software ni implementaciones
Diferentes proveedores implementan las especificaciones
Una ventaja de CORBA es que para escribir software que inter-opere
con otro software va un objeto, solamente se necesita conocer la
interfase para ese software, no se necesita conocer detalles de la
implementacin
La separacin de la interfase y la implementacin es lo que hace que
CORBA sea independiente del lenguaje
CORBA
CORBA permite la comunicacin desde cualquier lenguaje
hacia cualquier otro lenguaje sobre cualquier plataforma
Plataformas Soportadas :
Independiente de la plataforma
Lenguajes/Componentes Soportados :
Independiente de lenguaje
CORBA
CORBA no se debe presentar como si tuviera siempre la
mejor solucin
CORBA provee
Mayor flexibilidad
Mayor apertura
Mayor integracin
Con diferentes plataformas
Con diferentes lenguajes
Con diferentes herramientas
Interfase vs Implementacin
Implementacin
on
Interfase
off
Interfase vs Implementacin
Implementacin
on
Interfase
off
CORBA
Lenguaje de definicin de la Interfase IDL (Interface
Definition Language)
module financiero {
interface Prestamo {
double calcular(in double cantidad,
in long meses);
};
};
on
off
Objeto
ObjetoCliente
Cliente
9. Invoca
implementacin
1. Invoca mtodo
2. Marshals
Objeto
ObjetoStub
Stub
3. Enva requerimiento
Skeleton
Skeleton
5. Dirige
requerimientos
ORB
8. Unmarshals
7. Invoca mtodo
ORB
4. Localiza ORB
IIOP
IIOP (Internet Inter-ORB Protocol)
IIOP define estndares para el envo de
requerimientos ORB sobre protocolos de
comunicaciones de bajo nivel
CORBA - Stubs
Objetos locales proxy
Marshal los mtodos de invocacin
Delega la invocacin de mtodos al objeto remoto de
implementacin
Provee transparencia de localizacin
Implementa la misma interfase como la deseada del
objeto remoto
Implementa mtodos IDL definidos en el lenguaje de
programacin del cliente
CORBA - Skeleton
Implementa el mecanismo por medio del cual el
requerimiento que va al servidor puede ser
unmarshaled y dirigido al mtodo correcto
Pega el objeto de implementacin al runtime ORB
Unmarshals los argumentos del mtodo
Enva mtodos a la instancia del objeto
implementado
Tambin conocido como la clase base de
implementacin
Implementacin
Define el comportamiento de todas las operaciones
y atributos que soporta la interfase
Creada usando un lenguaje de programacin o un
modelo de componentes tales como Java, C, C++,
or ActiveX
Servidor
Programa que contiene la implementacin de uno o ms
tipos de objetos
Provee un ambiente para alojar componentes
Instancia objetos CORBA
Aplica seguridad
Maneja:
Transacciones
Fallas
Balanceo de carga
Page
Applet
Page
Applet
Applet
ActiveX,
JavaBeans
Page
Web
Publishing
HTTPS
HTTPS
File
System
Web
Web Server
Server
HTTPS
HTML Pages
Templates,
Scripts
Page
Page
Sever
Sever
IIOP,
DCOM
Transaction
Server
JDBC, ODBC, Native
SQL
RDBMS
Web Data
Processing
Web
OLTP
IIOP,
DCOM
RDBMS
Component
Component
Java
Relational
Arquitectura distribuida
Cuntas instancias de un componente se pueden
tener?
Cuntas conexiones a bases de datos se pueden
tener?
Cmo se pueden manejar transacciones entre
varios componentes?
Quin puede acceder al servidor?
Server
Experiencia Requerida
Desarrolladores - Negocio
Lifecycle
Transa
c
tions
ds
rea
Th
S
e
c
u
r
it y
Convenciones
componentes
Conn
e
c
t
ions
Desarrolladores - GUI
Desarrolladores - Sistema
Cach de coneccin
Pools de componentes de conexiones compartidas
preasignadas a servidores remotos de bases de
datos
Connection
Cache
Administracin de transacciones
Permite definir semntica transaccional de
componentes como parte de la interfase de
componentes
Administracin de seguridad
Incluida, basada en roles para autenticacin y autorizacin
de usuarios
Autenticacin de usuarios cuando la aplicacin cliente crea
un stub
Lista de control de acceso para cada componente, la cual
determina qu usuarios pueden invocar un componente
Soportan certificados digitales
Soportan SSL (Secure Socket Layer)
Java
COM
HTML
IIOP/TDS
EAServer
SQL
PowerBuilder
MASP
CORBA
Soporte J2EE
EJB
Aplicaciones J2EE
Aplicaciones Web J2EE
Cach de Objetos
JavaMail
Java API para XML
Servicios Java de Autenticacin y Autorizacin
Requerimiento IIOP
9000
Requerimiento TDS
7878
Requerimiento HTTP
8080
Package
Jaguar Manager
Repositorio
Components
Servidor EAServer
Provee un ambiente de ejecucin por componentes
Maneja requerimientos de clientes
Instancia componentes
Maneja seguridad, transacciones, cach de
conexiones, balance de carga y fallas
Definido usando Jaguar Manager
Jaguar Manager
Server Log
Componentes en el EAServer
La definicin de un componente consiste de:
Mtodos firmados
Modelo de componentes
Suporte de transacciones
Nombres de clases Java o libreras ejecutables que
implementan componentes (DLL, )
Package en el EAServer
Grupo de componentes relacionadas
Coleccin de componentes que trabajan juntas para
proveer algn aspecto de la lgica de las
aplicaciones
Define un lmite de verdad dentro del cual los
componentes se pueden comunicar fcilmente
Unidad de distribucin, agrupando recursos de
aplicaciones para facilitar su distribucin y
administracin
Repositorio en el EAServer
El repositorio del
EAServer contiene:
Informacin de
configuracin del
servidor de aplicaciones
Metadatos para
paquetes de
aplicaciones,
componentes y mtodos
EAServer utiliza el
repositorio para
encontrar e invocar
componentes
PowerBuilder
Reutilizacin
Mtodo Ejecutado
Desactivacin
Automtica
si
Desactivacin
no
Primitiva
Desactivacin
Grupo
Soporte
no
Destruccin
Stateless.
No persistente. El evento Deactivate se ejecuta automticamente
despus de cada llamada a mtodos.
Para cada llamada a mtodo no se puede asumir qu instancia
ser asignada al cliente.
El desarrollador es responsable de inicializar la instancia.
Stateful vs Stateless
Stateful
La instancia se asigna
al cliente por periodos
largos.
El servidor maneja ms
instancias.
Las instancias son
reutilizadas con menos
frecuencia.
El servidor requiere
ms recursos limitando
la escalabilidad.
Stateless
La instancia es
asignada al cliente por
periodos cortos.
El servidor maneja
menos instancias.
Las instancias son
reutilizadas con mayor
frecuencia.
El servidor requiere
menos recursos.
Administracin de conexiones
IIOP
Connection
Cache
Connection
Cache
Administrador de
conexiones
Connection Cache
Pool de conexiones disponibles a una base de datos
especfica
Todas las conexiones en un cach comparten:
User ID y password
Base de datos
Librera de conectividad
Proporciona escalabilidad
Permite al servidor de aplicaciones atender cientos de clientes
usando slo unas pocas conexiones a la base de datos
// Activate Event
If NOT IsValid(itr_trans) then
itr_trans = CREATE transaction
END IF
Itr_trans.dbms = ODBC
Itr_trans.DBParm =&
UseContextObject=Yes,CacheName=EASDemoDB
CONNECT USING itr_trans;
If itr_trans.sqlcode <> 0 THEN process error
//Deactivate event
//Release the connection
Disconnect using itr_trans;
Transaccin
Secuencia de sentencias SQL que se comportan
como una unidad lgica de trabajo
Cada sentencia SQL ejecuta una parte del trabajo total
Todas las sentencias SQL deben terminar de manera
exitosa para que la tarea termine
Si cualquier sentencia falla, todas las sentencias
anteriores se deshacen
Objetivo
Cliente
Jaguar
n_order
n_order_items
add( )
add( )
n_cart
placeOrder( )
Jerarqua de componentes
Qu hay de comn en los componentes?
Instance
variables
n_cart
Instance
variables
n_order
Constructor
Activate
Deactivate
CanBePooled
Destructor
Instance
variables
n_order_items
Constructor
Activate
Deactivate
CanBePooled
Destructor
Constructor
Activate
Deactivate
CanBePooled
Destructor
n_cart
n_order
Constructor
Activate
Deactivate
CanBePooled
Destructor
n_order_items
Caso
Cliente
Jaguar
Cliente
getData( )
getData( )
Cliente
getData( )
Product
Product
Product
Jaguar
getData( )
ServiceProduct
Client
Client
getData( )
getData( )
Product
Browser
Servidor
Web
API
Servidor
Aplicaciones
(PD / ASP)
PB
Web Targets
EAServer
Sitio Web
HTML
Datos
Corporativos
HTML
Web Browser
HTTP
Web Server
HTTP
Servidor Web
Bases de Datos
WebOLTP
Enterprise
Application Server
Java
HTML
COM
Web Server
PowerDynamo
HTTP
IIOP
PowerBuilder
CORBA
Jaguar CTS
Arquitectura
Base de datos
1
3
6
2
5
Servidor Web / Servidor de pginas
Servidor de componentes
Enterprise JavaBeans
Especificacin del lado servidor del modelo de componentes Java
Escritas por Sun Microsystems con apoyo de muchas compaas (Sybase, IBM,
Oracle, BEA, )
Vendedores implementan la especificacin
EJB
by
Sun Microsystems
Especificacin
Sybase
EAServer
Bluestone
Software
Sapphire/Web
BEA
Systems
Vendedores
WebLogic
Servidores
EJB-Compliant
EJB y EAServer
EAServer implementa la arquitectura EJB sobre CORBA
EJB provee un estndar para el modelo de componentes Java del lado servidor
CORBA provee interoperabilidad con componentes que no son componentes EJB
EAServer
EJB
CORBA
Arquitectura EJB
EJB Server
EJB Client
EJB Home
Interface
EJB Container
EJB Home
Stub
Deployment
Descriptor
EJB Home
Enterprise
EJB
Remot
e
Stub
JavaBean
EJB Object
EJB Remote
Interface
Servidor EJB
Proceso de alto nivel que contiene el EJB container
Puede tener mltiples containers
Provee disponibilidad JNDI servicio de nombres y servicio
de transacciones
Ejemplos de servidores EJB:
Servidores de bases de datos
Servidores de aplicaciones
Servidores de capa media
EAServer es un servidor EJB
EJB Container
Intercepta todas las llamadas a los Bean para dar el servicio requerido
por el componente EJB basado en propiedades declarativas (in
deployment descriptor)
Puede tener uno o muchos Enterprise JavaBeans
EAServer es el EJB Container ms el EJB Server
Servidor
Container
EJB
EJB Cliente
Provee la interfase lgica de usuario en la mquina cliente
Hace llamadas a componentes remotos EJB en un
servidor
No se comunica directamente con los componentes EJB
Interacta con objetos del lado servidor:
EJB Home
EJB Object
EJB Object
Home Stub
EJB Home
EJB
Tipos EJB
Sesin Bean:
Administra el flujo de trabajo
Transiente
Procesos del negocio (proceso
de pagos, reservas, )
Dura una simple sesin
Transaccional, pero no
recuperable si falla
Stateful o stateless
Debe manejar persistencia
No tiene llave primaria
Entidad Bean
Representa objeto de datos (filas
en una taba de base de datos)
Persistente
Sustantivo (cliente, producto,
empaque, orden, ...)
Alrededor de seal
Transicional, recuperable en fallas
Inherentemente stateful
Administrado Bean o container
Tiene llave primaria
3
2
Home Stub
lookup( )
JNDI
Jaguar CTS
create( )
CartHome
CartBean
5
Remote Stub
additem( )
Cart
Apache Tomcat
BEA WebLogic
IBM WebSphere
Sun ONE
Oracle 9i AS
Sybase EAS
Jrun Macromedia