eai sesión 3: introducción a jcajtech.ua.es/j2ee/2003-2004/modulos/eai/sesion03-traspas.pdf ·...
Post on 14-Oct-2020
8 Views
Preview:
TRANSCRIPT
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-1
EAISesión 3:
Introducción a JCA
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-2
INDICE
IntroducciónElementos JCAContratos a nivel de sistema
Gestión de conexionesInterfaces de empaquetado y despliegueAdaptadores de recursos black-box
Ejemplo de aplicación
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-3
Introducción
Hay una necesidad real de integrar las aplicaciones existentesJ2EE es una plataforma a tener en cuenta para realizar la integración de aplicacionesPROBLEMA:
Servidor de aplicaciones
J2EE
¿CÓMO COMUNICARLOS?
EIS
EIS
EIS
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-4
Soluciones de conexión posibles
Solución 1: establecer conexiones ad-hoc entre los servidores de aplicaciones y los EIS
Solución 2: estandarizar la forma de realizar las conexiones
S1
S2
EIS1
EIS1
EIS1
n servidoresm EISTotal: n × m conexiones
S1
S2
EIS1
EIS1
EIS1
C
n servidoresm EISTotal: n + m conexiones
menor esfuerzo de integración
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-5
JCA: Java Connector Architecture
Especificaciones que proporcionan un API estándar para permitir la interacción entre componentes J2EE y EIS heterogéneas
Estandariza la infraestructura y arquitectura para la aplicación de adaptadores de recursos
El objetivo de JCA es extender las capacidades de integración de los servidores de aplicaciones
Actualmente se dispone de la versión 1.5 en http://java.sun.com/j2ee/connector
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-6
Ventajas de la arquitectura Connector
El desarrollo de aplicaciones es más rápido y más sencillo:
El desarrollador se centra en la lógica del desarrollo
Se reduce el ámbito de integración:Contratos a nivel de sistemaContratos a nivel de aplicación
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-7
Adaptador de recursos (AR)
Es un componente software que conecta dos EIS incompatibles con el propósito de facilitar el intercambio de información entre ellas
Patrones de integración relacionados:Sincronización de datosServicios on-lineAutomatización de procesos
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-8
Tipos de adaptadores de recursos
Adaptadores de integración (AI) punto a punto
AI brokered
AI conversacionales
AI query
AI broadcast
AI eventos
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-9
AR y servidor de aplicaciones
El adaptador de recursos se usa dentro del espacio de direcciones del servidor de aplicacionesEs un componente más del servidor de aplicaciones. Hay 1 adaptador de recursos para cada EISCaracterísticas del componente:
No son gestionados por un contenedor JCAEs una extensión del servidor de aplicaciones
Se definen contratos a nivel de SISTEMA entre el servidor de aplicaciones y el EISEl adaptador de recursos implementa la parte del EIS de los contratos a nivel de sistemaEl servidor de aplicaciones actúa como un broker entre los EJBsy los adaptadores de recursos
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-10
Adaptador de recursos y EIS
Un adaptador de recursos es específico para un EIS
Un adaptador de recursos se asemeja a un driver JDBC
Un AR está contenido en un fichero de adaptador de recursos RAR( RAR: Resource Adapter aRchive)
El desarrollo de un AR es una tarea compleja que es realizada por los vendedores de software comercial
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-11
INDICE
IntroducciónElementos JCAContratos a nivel de sistema
Gestión de conexionesInterfaces de empaquetado y despliegueAdaptadores de recursos black-box
Ejemplo de aplicación
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-12
Elementos JCA
JCA está implementada en un servidor de aplicaciones J2EE
Los AR están implementados por un vendedor EIS
JCA define los siguientes elementos y servicios que tienen que soportar los adaptadores de recursos:
Contratos y servicios a nivel de sistemaContratos y servicios a nivel de aplicaciones (CCI)Interfaces de empaquetado y despliegue
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-13
Arquitectura CONNECTOR: contratos
Servidor de aplicaciones
Contenedor
Contratos a nivel de sistema
Componente de Aplicación
Contrato componente-contenedor
Adaptador de recursos
Contratos de la aplicación
Contratos del sistema
Interfaz específica EIS
EIS
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-14
JCA y tipos de integración
Integración INBOUNDsistemas externos inician peticiones de datos a nuestros sistemas
Integración OUTBOUNDnuestro sistema inicia peticiones de datos a otros sistemas
Connector 1.0 especifica contratos de sistema para permitir conectividad outbound
Connector 1.5 introduce capacidades adicionales con respecto a la conectividad inbound
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-15
INDICE
IntroducciónElementos JCAContratos a nivel de sistema
Gestión de conexionesInterfaces de empaquetado y despliegueAdaptadores de recursos black-box
Ejemplo de aplicación
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-16
Contratos a nivel de sistema
Se consideran un SPI (Service Provider Interface)
Un SPI proporciona una forma estándar para que un vendedor de un servidor de aplicaciones extienda un contenedor para soportar conectividad con múltiples EIS
El AR es plugged en el servidor de aplicaciones (SA)
Se definen los servicios que un SA debe proporcionar pero no cómo los debe proporcionar
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-17
Contratos a nivel de sistema
Gestión de conexiones
Gestión de transacciones
Gestión de la seguridad
Gestión del ciclo de vida
Gestión de trabajos
Flujos de transacciones de entrada
Flujos de mensajes de entrada
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-18
Escenario ejemplo: adaptadores
Aplicación J2EE de gestión de
pedidos
Servidor de aplicaciones J2EE
Aplicación gestión
inventarios(Mainframe)
Aplicación logística(ERP)
Aplicación financiera
(ERP)BD de clientes BD de pedidos
Adaptador de recursos
Adaptador de recursos
Adaptador de recursos
Proveedor JMS
DriverJDBC
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-19
INDICE
IntroducciónElementos JCAContratos a nivel de sistema
Gestión de conexionesInterfaces de empaquetado y despliegueAdaptadores de recursos black-box
Ejemplo de aplicación
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-20
Gestión de conexiones: objetivos
Establecer una práctica de programación consistente para proporcionar conexiones para aplicaciones gestionadas y no gestionadas
Permitir que un AR proporcione una connectionfactory e interfaces de conexión específicas del EIS
Proporcionar un mecanismo genérico para que J2EE pueda proporcionar servicios como transacciones, seguridad y registro de errores
Proporcionar soporte para servicios de pooling de conexiones
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-21
Arquitectura de la gestión de conexiones
Clases requeridas:(paquete javax.resource.spi)• ManagedConnectionFactory• ManagedConnection• ManagedConnectionMetaData• ConnectionManager• ConnectionEvent• ConnectionEventListener
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-22
Modelo para obtener una conexión
El suministrador del componente especifica los requerimientos para la connection factory para el componente de aplicación
El encargado del despliegue fija la configuración para el adaptador de recursos
El componente de aplicación busca una instancia de la connection factory mediante JNDI
Se invoca al método getConnection
El componente usa la conexión obtenida para acceder al EIS
El componente cierra la conexión
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-23
Ejemplo
Descriptor de despliegue:res-ref-name: eis/MyEisres-type: javax.resource.cci.ConnectionFactoryres-auth: Application (o Container)
Configuración del adaptador de recursos:jdbc:pointbase:server://localhost/demo
Búsqueda de la connection factoryContext initctx = new InitialContext( );javax.resource.cci.ConnectionFactory cfx =
(javax.resource.cci.ConnectionFactory)initctx.lookup("java:comp/env/eis/MyEis);
Obtención de la conexiónjavax.resource.cci.Connection cx = cfx.getConnection( );
Usamos la conexión (p.ej. PreparedStatement ps = cx.prepareStatement("select *");
Cerramos la conexióncx.close( );
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-24
Ejemplo
Descriptor de despliegue:res-ref-name: eis/MyEisres-type: javax.resource.cci.ConnectionFactoryres-auth: Application (o Container)
Configuración del adaptador de recursos:jdbc:pointbase:server://localhost/demo
Búsqueda de la connection factoryContext initctx = new InitialContext( );javax.resource.cci.ConnectionFactory cfx =
(javax.resource.cci.ConnectionFactory)initctx.lookup("java:comp/env/eis/MyEis);
Obtención de la conexiónjavax.resource.cci.Connection cx = cfx.getConnection( );
Usamos la conexión (p.ej. PreparedStatement ps = cx.prepareStatement("select *");
Cerramos la conexióncx.close( );
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-25
INDICE
IntroducciónElementos JCAContratos a nivel de sistema
Gestión de conexionesInterfaces de empaquetado y despliegueAdaptadores de recursos black-box
Ejemplo de aplicación
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-26
Interfaces de empaquetado y despliegue
Módulo adaptador de
recursos
Adaptador de recursos
Vendedor de EIS
Recursos del adaptador
empaquetados
Configuración del entorno
Deployer Deployer
Incluye módulos J2EE
Servidor de aplicaciones
Contenedor Web
Contenedor EJB Adap. Rec.
EIS
Adap. Rec. específico EIS
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-27
Pasos para empaquetar un AR
Crear un directorio temporalCompilar y/o copiar las clases java del adaptador de recursos (en un *.jar)Crear un subdirectorio denominado:META-INFCrear los ficheros de descriptores de despliegue del AR:
ra.xmlweblogic-ra.xml
Crear el fichero *.rar del adaptador de recursos:jar cvf adaptadorRec.rar -C dir_temporal .
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-28
Ejemplo archivo rar
/dir_temporal
/dir_temporal/adaptador.jar
/dir_temporal/META-INF
/dir-temporal/META-INF/ra.xml
/dir-temporal/META-INF/weblogic-ra.xml
Creamos el fichero rar:jar cvf adaptadorRec.rar -C /dir_temporal .
Contenido del fichero adaptadorRec.rar/adaptador.jar
/META-INF
/META-INF/ra.xml
/META-INF/weblogic-ra.xml
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-29
Descriptores de despliegue: ra.xml
Información general del adaptador<display-name>BlackBoxNoTx</display-name><vendor-name>Java Software</vendor-name><spec-version>1.0</spec-version><eis-type>JDBC Database<eis-type><version>1.0</version>
Nombre completo de la clase java que implementa la interfaz javax.resource.spi.ManagedConnectionFactory<managedconnectionfactory-class>
com.sun.connector.blackbox.NoTxManagedConnectionFactory
<managedconnectionfactory-class>
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-30
Descriptores de despliegue: ra.xml
Interfaz y clase para la connection factory<connectionfactory-interface>
javax.sql.DataSource</connectionfactory-interface><connectionfactory-impl-class>
com.sun.connector.blackbox.JdbcDataSource</connectionfactory-impl-class>
Interfaz y clase para connection<connection-interface>javax.sql.Connection</connection-interface><connection-impl-class>
com.sun.connector.blackbox.JdbcConnection</connection-impl-class>
Nivel de transacción soportado<transaction-support>NoTransaction</transaction-support>
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-31
Descriptores de despliegue: ra.xmlPropiedades para cada instancia ManagedConnectionFactory<config-property>
<config-property-name>ConnectionURL</config-property-name> <config-property-type>java.lang.String</config-property-
type> <config-property-value>
jdbc:pointbase:server://localhost/demo;create=true </config-property-value>
</config-property>
Mecanismos de autentificación<authentication-mechanism>
<authentication-mechanism-type>BasicPassword</authentication-mechanism-type> <credential-interface> javax.resource.security.PasswordCredential
</credential-interface> </authentication-mechanism>
Soporte de re-autentificación de una conexión existente. <transaction-support>NoTransaction</transaction-support>
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-32
Roles y responsabilidades del despliegue
Suministrador del adaptador de recursosespecifica el descriptor de despliegue
Vendedor del servidor de aplicacionesproporciona la implementación JCA
Suministrador del componente de aplicacióndesarrolla programas utilizando CCIno crea código para proporcionar seguridad, transacciones, concurrencia y distribución
Encargado del despliegueconfigura el AR para el entorno de destino J2EE
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-33
Opciones de despliegue de un adaptador
El despliegue de AR es similar al despliegue de aplicaciones web, EJBs, y aplicaciones de empresa
Podemos desplegar el AR por separado o formando parte de una aplicación de empresa:
Utilizando la consola de administración del servidor WebLogicUtilizando la utilidad Deployer de WebLogicUtilizar el auto-despliegue
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-34
INDICE
IntroducciónElementos JCAContratos a nivel de sistema
Gestión de conexionesInterfaces de empaquetado y despliegueAdaptadores de recursos black-box
Ejemplo de aplicación
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-35
Adaptadores de recursos black box
Son adaptadores cuyo propósito es servir para comprobar si un servidor J2EE cumple con JCAEl EIS subyacente es una base de datos relacionalEl API cliente es el API JDBC 2.0 y la interfaz javax.sql.DataSourceAdaptadores proporcionados:
blackbox-notx.rarblackbox-tx.rarblackbox-xa.rarcciblackbox-tx.rarcciblackbox-xa.rar
JCA Copyright © 2002-2003 Universidad de Alicante J2EE-36
Propiedades e instalación
ConnectionURLblackbox-notx.rar, blackbox-tx.rar, cciblackbox-tx.rar
top related