Sunteți pe pagina 1din 87

Bases de datos en ambiente

Internet

Objetivos

Conocer la arquitectura cliente/servidor


Conocer la arquitectura multitier
Conocer la arquitectura Internet con bases de datos
Conocer las generalidades de un servidor de
aplicaciones
Conocer servidores de aplicaciones que se ofrecen
en el mercado

Caractersticas deseables de un sistema


de informacin
Infraestructura modular
Infraestructura verstil
Facilidad de uso
Usuarios aprenden a manipular la herramienta disponible

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

Cliente: Demanda servicios


Servidor: Provee servicios

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 de dos niveles (two tier)


Mantenimiento no particionado del cdigo
Al hacer cambios hay que volver a comprobar
Hay que administrar las mquinas de los clientes
Los cambios en aplicaciones hay que volverlos a distribuir
a todos los clientes
Hay que administrar el rendimiento
El hardware debe soportar el software requerido por los
aplicativos

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).

Arquitectura Multitier (Distribuida)


Servidor de Aplicaciones

Cliente

Interfase de usuario
Administracin de las
transacciones

Servidor de Bases
de Datos

Lgica del negocio


Cach
Administracin de las
transacciones
Transparencia en la
localizacin de los datos
Balance de carga

Administracin
de los datos

Ventajas de la arquitectura multicapa

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

Desventajas de la arquitectura multicapa


Hay que cambiar los hbitos de programacin
Curva de aprendizaje
Ms tiempo en diseo y tiempo de desarrollo
iniciales
Ms puntos posibles de fallas

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

Desarrollada por OMG (Object Management Group)


Establecida en 1989
Incluye ms de 800 compaas (IBM, SUN, Oracle, Sybase, ...)
No incluye a Microsoft
DCOM compite con CORBA

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

ORB (Object Request Broquer)

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

Interfase Remota = Stub (o Proxy)

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

CORBA - IIOP Mtodo de Invocacin


Objeto
Objeto
Implementacin
Implementacin

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

6. Identifica objeto destino


IIOP

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

ORB (Object Request Broker)


Maneja todas las comunicaciones entre objetos en
un sistema de objetos distribuidos:
1. Acepta requerimientos de los clientes
2. Localiza y activa los objetos
a. Identifica la mquina que ejecuta el objeto servidor
b. Pregunta por el ORB de la mquina para una conexin al
servidor

3. Enruta el requerimiento y recibe las respuestas

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

Arquitectura ambiente Internet

Arquitectura ambiente Internet


Client
Client Application
Application
JavaScript

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?

Rol del Servidor de Aplicaciones


Manejo eficiente de
Instanciacin de componentes y ciclo de vida
Conexiones a bases de datos
Transacciones
Seguridad:

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

Rol del CTS


CTS (Component Transaction Server)
Provee un marco para desarrollo de lgica en la capa media,
de aplicaciones basadas en componentes distribuidas
Provee soporte para:
Administracin del ciclo de vida de componentes
Cach de conexiones
Administracin de transacciones
Seguridad

Administracin del ciclo de vida de


componentes
Define como los componentes son:
Instanciados
Asignados a los clientes
Destruidos

Provee suporte para instanciar pooling

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)

Soporte para clientes y componentes

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

Ambiente del EAServer


Jaguar Server
Librera
de clases

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

Arranque del EAServer

Conexin al EAServer - 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

Libreras de clases / Mquinas virtuales


Jaguar provee un conjunto de Libreras de
clases / Mquinas virtuales
Libreras de clases / Mquinas virtuales para cada
lenguaje / modelo soportado

Las Libreras de clases / Mquinas virtuales


son:
Implementaciones de lenguaje / modelosespecficos de servicios del servidor de
aplicaciones
Usadas para implementar servicios de
componentes

PowerBuilder

Ciclo de vida de los componentes


Instanciacin
Ocioso
Activacin
Asignado al Cliente

Reutilizacin

Mtodo Ejecutado

Desactivacin
Automtica

si

Desactivacin
no

Primitiva

Desactivacin

Grupo
Soporte

no

Destruccin

Componentes Estrategias de diseo


Stateful.
Persistente. La instancia permanece asignada al cliente entre
llamadas a mtodos.
La instancia puede guardar informacin del estado.
El desarrollador es responsable de iniciar el evento Deactivate.
La instancia no puede ser utilizada por otros clientes mientras no
sea liberada del cliente asignado.

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

Ventajas de Connection Cache


Da rendimiento
Elimina la sobrecarga asociada con el requerimiento y fijacin de
una conexin

Proporciona escalabilidad
Permite al servidor de aplicaciones atender cientos de clientes
usando slo unas pocas conexiones a la base de datos

Control sobre el nmero de conexiones a la base de datos


Establece un nmero mximo de conexiones en un ambiente de
carga impredecible

Conexin a una base de datos


Componente
//Instance Variables
Protected:
Transaction itr_trans

// 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

Definiendo el componente ancestro


Instance
variables
n_ancestor

n_cart

n_order

Constructor
Activate
Deactivate
CanBePooled
Destructor

n_order_items

Extend and Override Descendent Events As Needed

Caso
Cliente

Jaguar

Cliente

getData( )

getData( )

Cliente

getData( )

Product
Product
Product

Objetivo: Cach de datos


Client

Jaguar

getData( )

ServiceProduct

Client

Client

getData( )

getData( )

Product

Ambiente / Arquitectura Web


HTTP

Browser

Servidor
Web
API
Servidor
Aplicaciones
(PD / ASP)

PB
Web Targets

EAServer

Sitio Web
HTML

Datos
Corporativos

Sitios Web Estticos

HTML
Web Browser

HTTP

Web Server

Sitios Web Dinmicos


Servidor
HTML
Web Browser

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

Llamado de componentes EAServer


<HTML><TITLE>Result.stm</TITLE><BODY><H1>Loan
Calculator</H1>
<!--script
/* Initialize the Java stub */
var loan = java.CreateComponent("finance/n_loan",
"iiop://localhost:9000", "jagadmin", "");
/* Invoke the Jaguar component method */
var payment = loan.of_calculate(document.value.amount,
document.value.months);
/* Process the results of the method call */
document.WriteLn("Your monthly payment is: "+payment);
-->
</BODY></HTML>

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

*Shaded Blue is developer-created

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 Home Stub


Usado por el cliente para crear, encontrar y quitar instancias EJB
Retorna referencia del objeto EJB al cliente, como un stub remoto
El cliente usa el objeto EJB para acceder a los mtodos del Bean
EJB Container
Remote Stub

EJB Object

Home Stub

EJB Home

EJB

EJB Remote Stub


Provee la interfase al Enterprise JavaBean
Contiene los mtodos sin la implementacin
Llamadas dirigidas al objeto EJB se dirigen al Bean va
el container

El cliente interacta con EJB Remote Object stub


como si el Bean fuera local

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

Proceso de Aceso EJB


Cliente

3
2

Home Stub

lookup( )

JNDI

Jaguar CTS
create( )

CartHome

CartBean
5

Remote Stub

additem( )

Cart

Servidores de capa media

Apache Tomcat
BEA WebLogic
IBM WebSphere
Sun ONE
Oracle 9i AS
Sybase EAS
Jrun Macromedia

S-ar putea să vă placă și