Академический Документы
Профессиональный Документы
Культура Документы
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
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
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).
Lgica del negocio Cach Administracin de las transacciones Transparencia en la localizacin de los datos Balance de carga
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
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
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
CORBA
Lenguaje de definicin de la Interfase IDL (Interface Definition Language)
module financiero { interface Prestamo { double calcular(in double cantidad, in long meses); }; };
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
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
ActiveX, JavaBeans
Applet
Web Publishing
HTTPS
File System
HTTPS
Web Server
HTTPS
IIOP, DCOM
Web OLTP
Templates, Scripts
Page Sever
Transaction Server
JDBC, ODBC, Native
SQL
RDBMS
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?
Experiencia Requerida
Desarrolladores - Negocio
Lifecycle
Desarrolladores - GUI
Convenciones componentes
Desarrolladores - Sistema
Administracin de transacciones
Seguridad
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
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
Package
Components
Jaguar Manager
Repositorio
Servidor EAServer
Provee un ambiente de ejecucin por componentes
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
PowerBuilder
Asignado al Cliente
Reutilizacin
Mtodo Ejecutado
si
Desactivacin Automtica
Desactivacin no
Grupo Soporte
no
Destruccin
Primitiva
Desactivacin
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
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
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
n_cart
n_order
n_order_items
Caso
Cliente Cliente Cliente
Jaguar
getData( )
getData( )
getData( )
Jaguar
getData( )
getData( )
getData( )
ServiceProduct
Product
Browser
Sitio Web
HTML
PB Web Targets
EAServer
Datos Corporativos
HTTP
Web Server
Web Browser
Servidor Web
Bases de Datos
WebOLTP
Enterprise Application Server
Java
COM HTTP
Web Server
PowerDynamo
HTML
Arquitectura
Base de datos 4
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 Sybase
EJB by Sun Microsystems
EAServer
Sapphire/Web
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 Container
Deployment Descriptor
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
Home Stub
EJB Home
EJB
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
lookup( )
JNDI
Jaguar CTS
3
2
Home Stub
create( )
CartHome
CartBean
5
6
Remote Stub
additem( )
Cart