Вы находитесь на странице: 1из 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

Cliente

Cliente

Servidor BD

Servidor BD

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)


Cliente Servidor de Aplicaciones Servidor de Bases de Datos

Interfase de usuario Administracin de las transacciones

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
NVO

Java
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

Interfase

Interfase vs Implementacin
Implementacin

Interfase

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); }; };

CORBA - IIOP Mtodo de Invocacin


Objeto Cliente Objeto Implementacin 9. Invoca implementacin Skeleton 5. Dirige requerimientos ORB 6. Identifica objeto destino IIOP 8. Unmarshals

1. Invoca mtodo 2. Marshals Objeto Stub

3. Enva requerimiento ORB 4. Localiza ORB

7. Invoca mtodo

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 Application
JavaScript
Page Page Page Applet Applet

ActiveX, JavaBeans

Applet

Web Publishing
HTTPS
File System

HTTPS

Web Server

HTTPS

IIOP, DCOM

Web OLTP

HTML Pages IIOP, DCOM

Templates, Scripts

Page Sever

Transaction Server
JDBC, ODBC, Native

SQL

RDBMS

RDBMS

Web Data Processing

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:

Experiencia Requerida
Desarrolladores - Negocio

Lifecycle

Desarrolladores - GUI

Convenciones componentes

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
HTML

COM

IIOP/TDS

PowerBuilder MASP

SQL

EAServer 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

Components

Jaguar Manager

Repositorio

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

si

Desactivacin Automtica

Desactivacin no

Grupo Soporte

no

Destruccin

Primitiva

Desactivacin

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

Stateless

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.

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
add( ) add( )

n_cart

n_order_items

placeOrder( )

Jerarqua de componentes
Qu hay de comn en los componentes?
Instance variables Instance variables Instance variables

n_cart

n_order

n_order_items

Constructor Activate Deactivate CanBePooled Destructor

Constructor Activate Deactivate CanBePooled Destructor

Constructor Activate Deactivate CanBePooled Destructor

Definiendo el componente ancestro


Instance variables n_ancestor Constructor Activate Deactivate CanBePooled Destructor

n_cart

n_order

n_order_items

Extend and Override Descendent Events As Needed

Caso
Cliente Cliente Cliente

Jaguar

getData( )

getData( )

getData( )

Product Product Product

Objetivo: Cach de datos


Client Client Client

Jaguar

getData( )

getData( )

getData( )

ServiceProduct

Product

Ambiente / Arquitectura Web


HTTP Servidor Web API Servidor Aplicaciones (PD / ASP)

Browser

Sitio Web
HTML

PB Web Targets

EAServer

Datos Corporativos

Sitios Web Estticos

HTML Web Browser

HTTP

Web Server

Sitios Web Dinmicos


Servidor
HTML HTTP

Web Browser

Servidor Web

Bases de Datos

WebOLTP
Enterprise Application Server

Java

COM HTTP

Web Server

PowerDynamo

HTML

IIOP PowerBuilder CORBA Jaguar CTS

Arquitectura

1 6 2 5 Servidor Web / Servidor de pginas 3

Base de datos 4

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 Sybase
EJB by Sun Microsystems

EAServer

Bluestone Software BEA Systems Vendedores

Sapphire/Web

WebLogic Servidores EJB-Compliant

Especificacin

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 Stub
EJB Home Enterprise JavaBean EJB Remot e Stub EJB Object
EJB Remote Interface

EJB Home Interface

EJB Container
Deployment Descriptor

*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
1

lookup( )

JNDI

Jaguar CTS
3
2

Home Stub

create( )

CartHome

CartBean
5
6

Remote Stub

additem( )

Cart

Servidores de capa media


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

Вам также может понравиться