Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la...
-
Upload
teobaldo-fuertes -
Category
Documents
-
view
53 -
download
3
Transcript of Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la...
![Page 1: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/1.jpg)
Bases de datos en ambiente Bases de datos en ambiente InternetInternet
![Page 2: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/2.jpg)
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
![Page 3: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/3.jpg)
Características deseables de un sistema de información
• Infraestructura modular• Infraestructura versátil • Facilidad de uso
– Usuarios aprenden a manipular la herramienta disponible• Interoperabilidad
– Dos o más sistemas o componentes intercambian información de manera sencilla
• Escalabilidad– Facilidad de modificar y adaptar un sistema a las necesidades del problema
para el cual fue diseñado• Flexibilidad
– Capacidad de modificar un sistema para solucionar un problema para el cual no fue diseñado inicialmente
![Page 4: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/4.jpg)
Arquitectura Cliente/Servidor
• Cliente: Demanda servicios• Servidor: Provee servicios
Cliente
Servidor – Base de Datos
![Page 5: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/5.jpg)
Arquitectura Cliente/Servidor
• Interfase de usuario• Alguna lógica del negocio
Cliente
Servidor – Base de Datos
• Administración de datos• Lógica del negocio, en triggers,
procedimientos almacenados, …
![Page 6: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/6.jpg)
Arquitectura Cliente/Servidor
• Arquitectura de dos niveles (two tier)• Mantenimiento no particionado del código• Al hacer cambios hay que volver a comprobar• Hay que administrar las máquinas 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
![Page 7: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/7.jpg)
Arquitectura Cliente/Servidor
• Control no centralizado• Difícil implementar seguridad• Cuellos de botella en los servidores de Bases de
datos• Se tienen muchas conexiones• La lógica del negocio se encuentra en la base de
datos (escrita en lenguaje propietario)
![Page 8: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/8.jpg)
Arquitectura Cliente/Servidor
Conexiones: c * s
Cliente Cliente Cliente Cliente
Servidor BD Servidor BD Servidor BD
![Page 9: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/9.jpg)
Arquitectura Cliente/Servidor
• En trabajo en grupo/departamental• Se controla el número de clientes y así el número
de transacciones• Hay que controlar la(s) plataforma(s).
![Page 10: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/10.jpg)
Arquitectura Multitier (Distribuida)
Cliente
Interfase de usuario Administración de las
transacciones
Administración de los datos
Servidor de Aplicaciones
Lógica del negocio Caché Administración de las
transacciones Transparencia en la
localización de los datos Balance de carga
Servidor de Bases de Datos
![Page 11: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/11.jpg)
Ventajas de la arquitectura multicapa
• Cliente más liviano• Menos administración en el cliente• Lógica encapsulada• Mejor rendimiento• Escalabilidad• Consistencia, control y seguridad• Reusabilidad de componentes existentes• Listo para usar la Web
![Page 12: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/12.jpg)
Desventajas de la arquitectura multicapa
• Hay que cambiar los hábitos de programación• Curva de aprendizaje• Más tiempo en diseño y tiempo de desarrollo
iniciales • Más puntos posibles de fallas
![Page 13: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/13.jpg)
Arquitectura multicapa
Conexiones: c + s
Cliente Cliente Cliente Cliente
Servidor de Aplicaciones
Servidor BD Servidor BD Servidor BD
![Page 14: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/14.jpg)
Arquitectura multicapa
Características• Impredecible el número de clientes/transacciones• Abre las aplicaciones hacia Internet/extranet
![Page 15: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/15.jpg)
Arquitectura multicapa
Principios de la arquitectura Multitier• Encapsula o “particiona” la lógica del negocio en objetos.• Mueve o “distribuye” los objetos del negocio a una
máquina 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
![Page 16: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/16.jpg)
Arquitectura multicapa
Ejemplos• Lógica de negocio: aprobación de préstamos,
autorización de tarjeta de crédito• Datos en caché: estados, partes/productos• Servicios para recursos especializados: vía hacia
un computador servidor tipo mainframe o hacia un servidor de fax, servicios inalámbricos de la vida real
![Page 17: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/17.jpg)
Arquitectura multicapa
• Razones para pasarse a una arquitectura multicapa– Más escalable– Mayor reutilización de objetos– Listos para desarrollos Web/Inalámbricos
![Page 18: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/18.jpg)
Arquitectura multicapa
No todas las aplicaciones necesitan estar distribuidasEspecialmente si el número de usuarios es pequeñoSi no se piensa en servicios a través de la WebSi no hay código reutilizable entre aplicacionesSi la lógica del negocio no cambia o los cambios son muy esporádicos
![Page 19: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/19.jpg)
Arquitectura multicapa
• En aplicaciones muy grandesGeneralmente están escritas en muchos lenguajesUtilizando diferentes herramientasCon clientes heterogéneos (incluyendo aplicaciones HTML basadas en la Web)Máquinas de los clientes heterogéneas
Allí se necesita arquitectura distribuida. En estos casos no se pueden administrar fácilmente las aplicaciones en un ambiente típico de dos niveles
![Page 20: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/20.jpg)
CORBA
• CORBA: Common Object Request Broker Architecture• Arquitectura estándar para objetos distribuidos
– Desarrollada por OMG (Object Management Group)– Establecida en 1989– Incluye más de 800 compañías (IBM, SUN, Oracle, Sybase, ...)– No incluye a Microsoft
• DCOM compite con CORBA
• Independiente de proveedor• Separa la interfase de la implementación
![Page 21: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/21.jpg)
CORBA
• Componentes CORBA típicamente aceptados en los servidores de aplicaciones– CORBA-Java– Objetos no visuales (NVA, Non-Visual Objects)– CORBA C++ / C– ActiveX– EJB (Enterprise Java Beans)
![Page 22: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/22.jpg)
CORBA
Java
NVO
C
ORBORB
Java
NVO
C
ORBORB
Java
NVO
C
ORBORB
IIOPIIOP
ORB (Object Request Broquer)
![Page 23: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/23.jpg)
OMG
OMG Object Management Group
OMG provee especificaciones y estándaresNo provee software ni implementacionesDiferentes proveedores implementan las especificaciones
Una ventaja de CORBA es que para escribir software que inter-opere con otro software vía un objeto, solamente se necesita conocer la interfase para ese software, no se necesita conocer detalles de la implementación
La separación de la interfase y la implementación es lo que hace que CORBA sea independiente del lenguaje
![Page 24: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/24.jpg)
CORBA
CORBA permite la comunicación desde cualquier lenguaje hacia cualquier otro lenguaje sobre cualquier plataforma
• Plataformas Soportadas :– Independiente de la plataforma
• Lenguajes/Componentes Soportados :– Independiente de lenguaje
![Page 25: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/25.jpg)
CORBA
CORBA no se debe presentar como si tuviera siempre la mejor solución
CORBA proveeMayor flexibilidadMayor aperturaMayor integración
Con diferentes plataformasCon diferentes lenguajesCon diferentes herramientas
![Page 26: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/26.jpg)
Interfase vs Implementación
on
off
Implementación
Interfase
![Page 27: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/27.jpg)
Interfase vs Implementación
on
off
Implementación
Interfase
Interfase Remota = Stub (o Proxy)
![Page 28: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/28.jpg)
CORBA
Lenguaje de definición de la Interfase IDL (Interface Definition Language)
module financiero {
interface Prestamo {double calcular(in double cantidad,
in long meses); };
};
on
off
![Page 29: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/29.jpg)
CORBA - IIOP Método de Invocación
Objeto ClienteObjeto Cliente
Objeto StubObjeto Stub
ORBORB
1. Invoca método
2. Marshals
3. Envía requerimiento
4. Localiza ORB
5. Dirige requerimientos
ORBORB
6. Identifica objeto destino
SkeletonSkeleton
7. Invoca método
ObjetoImplementación
ObjetoImplementación
9. Invoca implementación
8. Unmarshals
IIOP
![Page 30: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/30.jpg)
IIOP
• IIOP (Internet Inter-ORB Protocol) • IIOP define estándares para el envío de
requerimientos ORB sobre protocolos de comunicaciones de bajo nivel
![Page 31: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/31.jpg)
CORBA - Stubs
• Objetos locales proxy• Marshal los métodos de invocación• Delega la invocación de métodos al objeto remoto de
implementación• Provee transparencia de localización• Implementa la misma interfase como la deseada del
objeto remoto• Implementa métodos IDL definidos en el lenguaje de
programación del cliente
![Page 32: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/32.jpg)
ORB (Object Request Broker)
• Maneja todas las comunicaciones entre objetos en un sistema de objetos distribuidos:1. Acepta requerimientos de los clientes2. Localiza y activa los objetos a. Identifica la máquina que ejecuta el objeto servidor
b. Pregunta por el ORB de la máquina para una conexión al servidor
3. Enruta el requerimiento y recibe las respuestas
![Page 33: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/33.jpg)
CORBA - Skeleton
• Implementa el mecanismo por medio del cual el requerimiento que va al servidor puede ser unmarshaled y dirigido al método correcto
• Pega el objeto de implementación al runtime ORB• Unmarshals los argumentos del método• Envía métodos a la instancia del objeto
implementado• También conocido como la clase base de
implementación
![Page 34: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/34.jpg)
Implementación
• Define el comportamiento de todas las operaciones y atributos que soporta la interfase
• Creada usando un lenguaje de programación o un modelo de componentes tales como Java, C, C++, or ActiveX
![Page 35: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/35.jpg)
Servidor
• Programa que contiene la implementación de uno o más tipos de objetos
• Provee un ambiente para alojar componentes• Instancia objetos CORBA• Aplica seguridad• Maneja:
– Transacciones– Fallas– Balanceo de carga
![Page 36: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/36.jpg)
Arquitectura ambiente Internet
![Page 37: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/37.jpg)
Arquitectura ambiente Internet
ActiveX,JavaBeansJavaScript
WebPublishing
WebOLTPIIOP,
DCOM
HTTPSHTTPS
HTML Pages
FileSystem
Web Data Processing
IIOP, DCOM
Templates, Scripts
SQL
RDBMS
Page SeverPage Sever
JDBC, ODBC, Native
Java Relational
TransactionServerTransactionServer
RDBMSComponent
Component
Web ServerWeb Server
HTTPS
Client ApplicationClient Application
Page
Page
Page Applet
Applet
Applet
![Page 38: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/38.jpg)
Arquitectura distribuida
• ¿Cuántas instancias de un componente se pueden tener?
• ¿Cuántas conexiones a bases de datos se pueden tener?
• ¿Cómo se pueden manejar transacciones entre varios componentes?
• ¿Quién puede acceder al servidor?
![Page 39: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/39.jpg)
Rol del Servidor de Aplicaciones
• Manejo eficiente de Instanciación de componentes y ciclo de vidaConexiones a bases de datos– Transacciones– Seguridad:
Server
![Page 40: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/40.jpg)
Experiencia Requerida
Lifecycle
ThreadsSecurity
Connections
Tran
sact
ions
Desarrolladores - GUI
Desarrolladores - Sistema
Desarrolladores - Negocio
Convencionescomponentes
![Page 41: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/41.jpg)
Rol del CTS
• CTS (Component Transaction Server)• Provee un marco para desarrollo de lógica en la capa media,
de aplicaciones basadas en componentes distribuidas• Provee soporte para:
– Administración del ciclo de vida de componentes– Caché de conexiones– Administración de transacciones– Seguridad
![Page 42: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/42.jpg)
Administración del ciclo de vida de componentes
• Define como los componentes son:– Instanciados– Asignados a los clientes– Destruidos
• Provee suporte para instanciar pooling
![Page 43: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/43.jpg)
Caché de conección
• Pools de componentes de conexiones compartidas preasignadas a servidores remotos de bases de datos
Connection Cache
![Page 44: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/44.jpg)
Administración de transacciones
• Permite definir semántica transaccional de componentes como parte de la interfase de componentes
![Page 45: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/45.jpg)
Administración de seguridad
• Incluida, basada en roles para autenticación y autorización de usuarios
• Autenticación de usuarios cuando la aplicación 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)
![Page 46: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/46.jpg)
Soporte para clientes y componentes
HTML
COM
PowerBuilder
CORBA
Java
IIOP/TDSIIOP/TDS
MASP
SQL EAServer
![Page 47: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/47.jpg)
Soporte J2EE
• EJB• Aplicaciones J2EE• Aplicaciones Web J2EE• Caché de Objetos• JavaMail• Java API para XML• Servicios Java de Autenticación y Autorización
![Page 48: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/48.jpg)
Ambiente del EAServer
Jaguar Server
9000
RepositorioJaguar Manager
Requerimiento IIOP
PackageComponents
7878Requerimiento TDS
8080Requerimiento HTTP
Librería de clases
![Page 49: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/49.jpg)
Servidor EAServer
• Provee un ambiente de ejecución por componentes• Maneja requerimientos de clientes• Instancia componentes• Maneja seguridad, transacciones, caché de
conexiones, balance de carga y fallas• Definido usando Jaguar Manager
![Page 50: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/50.jpg)
Arranque del EAServer
![Page 51: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/51.jpg)
Conexión al EAServer - Jaguar Manager
![Page 52: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/52.jpg)
Jaguar Manager
![Page 53: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/53.jpg)
Server Log
![Page 54: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/54.jpg)
Componentes en el EAServer
• La definición de un componente consiste de:– Métodos firmados– Modelo de componentes– Suporte de transacciones– Nombres de clases Java o librerías ejecutables que
implementan componentes (DLL, …)
![Page 55: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/55.jpg)
Package en el EAServer
• Grupo de componentes relacionadas• Colección de componentes que trabajan juntas para
proveer algún aspecto de la lógica de las aplicaciones
• Define un “límite de verdad” dentro del cual los componentes se pueden comunicar fácilmente
• Unidad de distribución, agrupando recursos de aplicaciones para facilitar su distribución y administración
![Page 56: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/56.jpg)
Repositorio en el EAServer
• El repositorio del EAServer contiene:
– Información de configuración del servidor de aplicaciones
– Metadatos para paquetes de aplicaciones, componentes y métodos
• EAServer utiliza el repositorio para encontrar e invocar componentes
![Page 57: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/57.jpg)
Librerías de clases / Máquinas virtuales
• Jaguar provee un conjunto de Librerías de clases / Máquinas virtuales
– Librerías de clases / Máquinas virtuales para cada lenguaje / modelo soportado
• Las Librerías de clases / Máquinas virtuales son:
– Implementaciones de lenguaje / modelos-específicos de servicios del servidor de aplicaciones
– Usadas para implementar servicios de componentes
PowerBuilder
![Page 58: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/58.jpg)
Ciclo de vida de los componentes
Ocioso
Asignado al Cliente
Método Ejecutado
no
no
si
Desactivación
Desactivación
Instanciación
Destrucción
Reutilización
Activación
DesactivaciónAutomática Grupo
Soporte
Primitiva
![Page 59: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/59.jpg)
Componentes – Estrategias de diseño• Stateful.
– Persistente. La instancia permanece asignada al cliente entre llamadas a métodos.
– La instancia puede guardar información 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 automáticamente después de cada llamada a métodos.
– Para cada llamada a método no se puede asumir qué instancia será asignada al cliente.
– El desarrollador es responsable de inicializar la instancia.
![Page 60: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/60.jpg)
Stateful vs Stateless
Stateful La instancia se asigna
al cliente por periodos largos.
El servidor maneja más instancias.
Las instancias son reutilizadas con menos frecuencia.
El servidor requiere más 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.
![Page 61: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/61.jpg)
Administración de conexiones
Connection Cache
Connection Cache
IIOP
Administrador de conexiones
![Page 62: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/62.jpg)
Connection Cache
• Pool de conexiones disponibles a una base de datos específica
• Todas las conexiones en un caché comparten:– User ID y password– Base de datos– Librería de conectividad
![Page 63: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/63.jpg)
Ventajas de Connection Cache
• Da rendimiento– Elimina la sobrecarga asociada con el requerimiento y fijación de
una conexión• Proporciona escalabilidad
– Permite al servidor de aplicaciones atender cientos de clientes usando sólo unas pocas conexiones a la base de datos
• Control sobre el número de conexiones a la base de datos– Establece un número máximo de conexiones en un ambiente de
carga impredecible
![Page 64: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/64.jpg)
Conexión a una base de datos
//Instance VariablesProtected:Transaction itr_trans
Componente
//Deactivate event//Release the connectionDisconnect using itr_trans;
// Activate EventIf NOT IsValid(itr_trans) then itr_trans = CREATE transactionEND IFItr_trans.dbms = “ODBC”Itr_trans.DBParm =&“UseContextObject=‘Yes’,CacheName=‘EASDemoDB’”CONNECT USING itr_trans;If itr_trans.sqlcode <> 0 THEN … process error
![Page 65: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/65.jpg)
Transacción
• Secuencia de sentencias SQL que se comportan como una unidad lógica 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
![Page 66: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/66.jpg)
Objetivo
Jaguar
Cliente
n_order_itemsn_order_itemsn_order_itemsn_order_itemsn_cartn_cartn_cartn_cart
n_ordern_ordern_ordern_order add( )
add( ) placeOrder( )
![Page 67: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/67.jpg)
Jerarquía de componentes• ¿Qué hay de común en los componentes?
n_ordern_order n_order_itemsn_order_itemsn_cartn_cart
Instance variables
Instance variables
Instance variables
ConstructorActivateDeactivateCanBePooledDestructor
ConstructorActivateDeactivateCanBePooledDestructor
ConstructorActivateDeactivateCanBePooledDestructor
![Page 68: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/68.jpg)
Definiendo el componente ancestro
n_ordern_order n_order_itemsn_order_itemsn_cartn_cart
n_ancestorn_ancestor
Extend and Override Descendent Events As Needed
Instance variables
ConstructorActivateDeactivateCanBePooledDestructor
![Page 69: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/69.jpg)
Caso
Jaguar
Cliente
ProductProductProductProduct
getData( )getData( )
Cliente Cliente
getData( )
ProductProductProductProductProductProductProductProduct
![Page 70: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/70.jpg)
Objetivo: Caché de datos
Jaguar
Client
ProductProductProductProduct
getData( )getData( )
Client Client
getData( )
ServiceProductServiceProductServiceProductServiceProduct
![Page 71: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/71.jpg)
Ambiente / Arquitectura Web
EAServer
Servidor Aplicaciones
(PD / ASP)
Browser
HTTP
DatosCorporativos
Sitio Web
HTML
API
Servidor Web
PB Web Targets
![Page 72: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/72.jpg)
Sitios Web Estáticos
HTML HTTP
Web BrowserWeb Server
![Page 73: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/73.jpg)
Sitios Web Dinámicos
HTML HTTP
Web BrowserServidor Web
Servidor
Bases de Datos
![Page 74: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/74.jpg)
WebOLTP
HTML
COM
PowerBuilderCORBA
Java PowerDynamo
HTTP
IIOPIIOP
Jaguar CTS
Web Server
Enterprise Application Server
![Page 75: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/75.jpg)
Arquitectura
Servidor de componentesServidor Web / Servidor de páginas
Base de datos1
2
34
5
6
![Page 76: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/76.jpg)
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>
![Page 77: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/77.jpg)
Enterprise JavaBeans
• Especificación del lado servidor del modelo de componentes Java• Escritas por Sun Microsystems con apoyo de muchas compañías (Sybase, IBM,
Oracle, BEA, …)• Vendedores implementan la especificación
EJBby
Sun MicrosystemsBluestoneSoftware
BluestoneSoftware
SybaseSybase
BEA Systems
BEA Systems
EAServerEAServer
Sapphire/WebSapphire/Web
WebLogicWebLogic
Especificación Vendedores ServidoresEJB-Compliant
![Page 78: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/78.jpg)
EJB y EAServer
• EAServer implementa la arquitectura EJB sobre CORBA• EJB provee un estándar para el modelo de componentes Java del lado servidor• CORBA provee interoperabilidad con componentes que no son componentes EJB
EAServerEAServer
CORBA
EJB
![Page 79: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/79.jpg)
Arquitectura EJB
EJB Server
EJB Container
EJB Object
Enterprise
JavaBean
DeploymentDescriptor
EJB Client
EJB Remot
eStub
EJB Home Stub
EJB Home Interface
EJB Remote
Interface *Shaded Blue is developer-created
EJB Home
![Page 80: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/80.jpg)
Servidor EJB
• Proceso de alto nivel que contiene el EJB container• Puede tener múltiples 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
![Page 81: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/81.jpg)
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 más el EJB Server
ServidorContainer
EJB
![Page 82: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/82.jpg)
EJB Cliente
• Provee la interfase lógica de usuario en la máquina cliente• Hace llamadas a componentes remotos EJB en un
servidor• No se comunica directamente con los componentes EJB• Interactúa con objetos del lado servidor:
– EJB Home – EJB Object
![Page 83: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/83.jpg)
EJB ContainerEJB Container
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 métodos del Bean
Home Stub
Remote Stub EJB ObjectEJB Object
EJB HomeEJB Home EJBEJB
![Page 84: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/84.jpg)
EJB Remote Stub
• Provee la interfase al Enterprise JavaBean– Contiene los métodos sin la implementación– Llamadas dirigidas al objeto EJB se dirigen al Bean vía
el container• El cliente interactúa con EJB Remote Object stub
como si el Bean fuera local
![Page 85: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/85.jpg)
Tipos EJB
• Sesión Bean:– Administra el flujo de trabajo– Transiente– Procesos del negocio (proceso
de pagos, reservas, …)– Dura una simple sesión– 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 señal– Transicional, recuperable en fallas– Inherentemente stateful– Administrado Bean o container – Tiene llave primaria
![Page 86: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/86.jpg)
Proceso de Aceso EJB
Jaguar CTSJaguar CTS
ClienteCliente
additem( )
create( )
CartCart
CartHomeCartHome
JNDIJNDI
Home Stub
Remote Stub
CartBeanCartBean
1
2
5
43
6
7
lookup( )
![Page 87: Bases de datos en ambiente Internet. Objetivos Conocer la arquitectura cliente/servidor Conocer la arquitectura multitier Conocer la arquitectura Internet.](https://reader033.fdocuments.ec/reader033/viewer/2022061301/54d56ea84979596c658b4b79/html5/thumbnails/87.jpg)
Servidores de capa media
• Apache Tomcat• BEA WebLogic• IBM WebSphere• Sun ONE• Oracle 9i AS• Sybase EAS• Jrun Macromedia