Libros urgentes
Ciencias Humanas
Ciencias Técnicas
Derecho
Economía
Informática
Libros de Texto
Literatura
Oposiciones autonómicas
Oposiciones Estatales
Oposiciones Generales
Oposiciones locales
Oposiciones para profesores
Otros
Tiempo Libre

Informática > Programación > Java

PROGRAMACIÓN JAVA SERVER CON J2EE EDICIÓN 1.3
Cedric Beust; John Davies; Subrahmanyam Allamaraju (ANAYA MULTIMEDIA)
Precio:66,5 € ($102,63)
ISBN: 8441513589. ISBN-13: 9788441513587

1184 p. ; 23x18 cm. 1ª edición (06/2002).
Entrega: De 1 a 7 días contra reembolso por agencia urgente*


El lanzamiento de la versión 1.3 de la Plataforma Java 2, Enterprise Edition (J2EE) representa la evolución de la plataforma de desarrollo a una especificación más madura y sofisticada. Los servlets 2.3 obtienen eventos y filtrado; JavaServer Pages 1.2 obtiene una nueva sintaxis XML y mejoras en los mecanismos de adaptación de designador; y Enterprise JavaBeans 2.0 cuenta con algunos cambios significativos en su modelo de persistencia gestionado por el contenedor, así como un reforzamiento en el procesamiento asíncrono con nuevos beans controlados por mensaje.
Esto libro muestra cómo diseñar y construir aplicaciones J2EE con n-niveles seguros y ajustables, utilizando para ello JSP y servlets para el nivel de interacción con la web, y EJB para programar la lógica de la empresa. También abarca la Arquitectura de Conectores J2EE que le permite integrar fácilmente sus aplicaciones J2EE a los sistemas de información de la empresa.
Está dirigido a programadores profesionales de Java que deseen emplear este lenguaje como plataforma para sus aplicaciones distribuidas de empresa. Proporciona una guía exhaustiva para los API de J2EE implementados por servidores de aplicación con licencia J2EE.

Se utiliza en la UNED en las siguientes titulaciones:
Ingeniería en Informática. 2º Ciclo:
 - Sistemas Informáticos III (bibliografía básica)

ÍNDICE

Introducción

Capítulo 1. Plataforma J2EE
Programación para empresas
La empresa actual
¿Es Java la respuesta?
Estilos de arquitectura de empresa
Arquitectura de dos niveles
Arquitectura de tres niveles
Arquitectura de n niveles
Arquitectura de empresa
La plataforma J2EE
Periodo de ejecución de J2EE
Los API de J2EE
Arquitectura J2EE - Contenedores
Arquitectura de contenedor
Tecnologías J2EE
Tecnologías de componentes
XML
Tecnologías de servicio
Tecnologías de comunicación
Desarrollo de aplicaciones J2EE
Funciones de desarrollo e implementación de aplicaciones
Desarrollo de componentes de aplicación
Composición de componentes de aplicación en módulos
Composición de módulos en aplicaciones
Implementación de la aplicación
Resumen

Capítulo 2. Servicios de directorio y JNDI
Servicios de designación y de directorio
Servicios de designación
Servicios de directorio
LDAP
Introducción de JNDI
Uso de JNDI
Instalación de JNDI
Proveedores de servicios JNDI
Cómo obtener proveedores de servicios JNDI
Cómo desarrollar su propio proveedor de servicios
Java y LDAP
Control de acceso
Servicios de páginas blancas
Directorio de procesamiento distribuido
Operaciones LDAP
Operaciones LDAP estándar
Conexión al servidos LDAP con JNDI
Asociación
Búsqueda en un servidor LDAP
Filtros LDAP de ejemplo
Determinar el alcance de LDAP
Ejecución de una búsqueda JNDI
Búsqueda autentificada
Restringir los atributos presentados
Añadir entradas
Modificar una entrada
Eliminar una entrada
Almacenar y recuperar objetos Java en LDAP
LDAP tradicional
Java serializado
Referencias Java
Volver a JNDI sin LDAP
Ejemplo de aplicación DNS
Resumen

Capítulo 3. Procesamiento distribuido con RMI
La arquitectura RMI
Capa de Stub y Skeleton
Capa de referencia remota
Capa de transporte
Localización de objetos remotos
Excepciones RMI
Desarrollo de aplicaciones con RMI
Definir la interfaz remota
Implementar la interfaz remota
Grabar el cliente que utiliza los objetos remotos
Generar stubs y skeletons
Registrar el objeto
Ejecutar el cliente y el servidor
RMISecurityManager
Pasar parámetros en RMI
Parámetros de primitivas
Parámetros de objeto
Parámetros remotos
El recolector de residuos distribuidos
Clases de carga dinámica
Retrollamadas remotas
Activación de objeto
El grupo de activación
Convertir objetos en activables
Desactivación
Sockets de adaptación y SSL
RMI, cortafuegos y HTTP
Tunelado HTTP
El protocolo SOCKS
Factorías de sockets descargados
RMI sobre IIOP
Interoperatividad con CORBA
Escribir programas con RMI-IIOP
RMI-IIOP y Java IDL
El archivo IDL
La implementación de servidor
La implementación cliente
RMI-IIOP y J2EE
Ajustar aplicaciones RMI
Resumen

Capítulo 4. Programación de bases de datos con JDBC
Drivers de bases de datos
Tipo 1 - Puente JDBC-ODBC
Tipo 2 - Parte Java, parte driver nativo
Tipo 3 - Servidor intermediario de acceso a bases de datos
Tipo 4 - Drivers Java puro
Cómo comenzar
El paquete java.sql
Gestión de conexión
Acceso a bases de datos
Tipos de datos
Metadatos de base de datos
Excepciones y advertencias
Cargar un driver de base de datos y abrir conexiones
Establecer una conexión
Crear y ejecutar instrucciones SQL
Consultar la base de datos
Instrucciones preparadas
Representar tipos SQL en Java
Apoyo a transacciones
Puntos de salvaguardia
Listas de resultados desplazables y actualizables
Listas de resultados desplazables
Métodos relacionados con la posición del cursor
Métodos para desplazamiento
Dirección y tamaño de toma
Listas de resultados actualizables
Actualizar una fila
Eliminar una fila
Insertar una fila
Actualizaciones de lotes
El paquete javax.sql
Fuentes de datos JDBC
La interfaz javax.sql.DataSource
JNDI y fuentes de datos
Revisión del catálogo de películas
Reserva de conexiones
Reserva de conexiones tradicional
Reserva de conexiones con el paquete javax.sql
La interfaz javax.sql.ConnectionPoolDataSource
La interfaz javax.sql.PooledConnection
La interfaz javax.sql.ConnectionEventListener
La clase javax.sql.ConnectionEvent
Implementación de reservas de conexión
Transacciones distribuidas
¿Qué es una transacción?
Antecedentes
Procesamiento de transacciones - Conceptos
Demarcación de transacciones
Contexto de transacciones y propagación
Alistamiento de recursos
Aceptar en dos fases
Construcción de bloques de sistemas de procesamiento de transacciones
Componentes de aplicación
Gestores de recursos
Gestor de transacciones
Transacciones distribuidas JDBC
La interfaz javax.sql.XADataSource
La interfaz javax.sql.XAConnection
La interfaz javax.Transaction.UserTransaction
Pasos para la implementación de transacciones distribuidas
Configuración
Iniciar una transacción
Operaciones de base de datos
Finalizar una transacción
Precauciones especiales
Objetos RowSet
La interfaz javax.sql.RowSet
Propiedades
Eventos
Ejecución de comandos y resultados
Tipos de objetos RowSet
La implementación CachedRowSet
La implementación RowSet JDBC
La implementación RowSet Web
Resumen

Capítulo 5. Introducción a los contenedores Web
El protocolo HTTP
Métodos de solicitud HTTP
La respuesta HTTP
Contenedores Web y aplicaciones Web
Servlets Java
Páginas JavaServer
Descriptores de despliegue
Estructura de aplicaciones Web
Tipos de contenedores Web
Una sencilla aplicación Web
Prepara el contenedor Web
Crear el archivo HTML
Crear un servlet
Construir la aplicación Web
Desplegar la aplicación Web
Ejecutar la aplicación Web
Cómo funciona la aplicación
Resumen

Capítulo 6. Programación de servlets
Análisis del API Java Servlet
Implementación de servlet
La interfaz servlet
La clase GenericServlet
La interfaz SingleThreadModel
La clase HttpServlet
Configuración de servlets
La interfaz ServletConfig
Obtener una referencia a ServletConfig
Excepciones servlet
La clase ServletException
La clase UnavailableException
El ciclo de vida de los servlets
El ciclo de vida de un servlet - FreakServlet
Instanciación
Inicialización
Servicio
Destruir
Solicitudes y respuestas
La interfaz ServletRequest
Métodos para solicitar parámetros
El método getParameter()
El método getParameterValues()
El método getParameterNames()
El método getParameterMap()
Métodos para atributos de solicitud
El método getAttribute()
El método getAttributesNames()
El método setAttribute()
El método removeAttribute()
Métodos de entrada
El método getInputStream()
El método getReader()
El método getCharacterEncoding()
El método setCharacterEncoding()
La clase ServletRequestWrapper
La interfaz HttpServletRequest
Métodos para solicitar ruta y URL
El método getPathInfo()
El método getPathTranslated()
El método getQueryString()
El método getRequestURI()
El método getRequestURL()
El método getServletPath()
Métodos para cabeceras HTTP
El métodogetHeader()
El método getHeaders()
El método getHeaderNames()
El método getMethod()
La clase HttpServletRequestWrapper
La interfaz ServletResponse
Métodos para tipo de contenido y longitud
El método setContentType()
El método setContentLength()
Métodos de salida
El método getOutputStream()
El método getWriter()
Métodos para salida en búfer
El método setBufferSize()
El método getBufferSize()
El método resetBuffer()
El método flushBuffer()
El método isCommitted()
El método reset()
La clase ServletResponseWrapper
La interfaz HttpServletResponse
Métodos para el manejo de errores
El método sendError()
El método sendError()
El método setStatus()
El método sendRedirect()
La clase HttpServletResponseWrapper
Función de las clases envoltorio
Programación de servlets - Aplicación de apoyo técnico
Configurar la página HTML
Preparar la base de datos
Escribir el servlet
Extraer datos del formulario
Insertar la solicitud de apoyo técnico
Generar la respuesta
Compilar la fuente
Construir la aplicación Web
El descriptor de despliegue
Configurar la fuente de datos
Desplegar la aplicación Web
Apoyo técnico en marcha
Resumen

Capítulo 7. Sesiones de servlets, contexto y colaboración
Protocolo sin estado y sesiones
Enfoques del registro de sesión
Reescritura de URL
Campos de formulario ocultos
Cookies
Registro de sesión con el API Java Servlet
Creación y registro de sesiones
La interfaz HttpSession
Métodos para vida de sesión
El método getCreationTime()
El método getId()
El método getLastAccessedTime()
El método getMaxInactiveInterval()
El método setMaxInactiveInterval()
El método isNew()
El método invalidate()
Demostrar el ciclo de vida de la sesión con cookies
Ciclo de vida de sesión sin cookies
Métodos para gestionar el estado
El método getAttribute()
El método getAttributeNames()
El método setAttribute()
El método removeAttribute()
Demostrar la gestión de estado
Manejo de eventos de ciclo de vida de sesión
La interfaz HttpSessionListener
La interfaz HttpSessionActivationListener
El método sessionDidActivate()
El método sessionWillPassivate()
La clase HttpSessionEvent
El método getSession()
Manejo de eventos de atributos de sesión
La interfaz HttpSessionBindingListener
El método valueBound()
El método valueUnbound()
La interfaz HttpSessionAttributeListener
El método attributeAdded()
El método attributeRemoved()
El método attributeReplaced()
La clase HttpSessionBindingEvent
El método getName()
El método getValue()
El método getSession()
Un sencillo carro de la compra utilizando sesiones
El servlet del catálogo
El servlet ShoppingCart
Contexto de servlet
La interfaz ServletContext
El método getMimeType()
El método getResource()
El método getResourceAsStream()
El método getRequestDispatcher()
El método getNamedDispatcher()
El método getRealPath()
El método getContext()
El método getServerInfo()
El método getServletContextName()
El método getResourcePaths()
Los métodos getInitParameter() y getInitParameterNames()
Los métodos getAttribute(), getAttributeNames(), setAttributes() y removeAttribute()
Los métodos log()
El manejo de eventos de ciclo de vida de ServletContext
La interfaz ServletContextListener
ServletContextAttributeListener
Una aplicación de chat que utiliza contexto y sesiones
La clase ChatRoom
La clase ChatEntry
El servlet de administración
Servlets para chat
La clase ListRoomsServlet
La clase ChatRoomServlet
Configuración del chat
Una página de bienvenida
Descriptor de despliegue
Desplegar y probar
Colaboración de servlet
Encadenado de servlet
Lanzamiento de solicitudes
La interfaz RequestDispatcher
El método forward()
El método include()
Obtener un objeto RequestDispatcher
Revisión de Apoyo Técnico
La página techsupp.html
TechSupportServlet
La página register.html
RegisterCustomerServlet
ResponseServlet
BannerServlet
Configuración de Apoyo Técnico y despliegue
Utilizar RequestDispatcher para colaboración
Reenviar una solicitud a ResponseServlet
Reenviar solicitud a regiter.html
Incluir insignia en ResponseServlet
Resumen

Capítulo 8. Filtros para aplicaciones Web
¿Qué es un filtro?
Filtro de muestra
Despliegue
El API filtro
La interfaz de filtro
El método init()
El método doFilter()
El método destroy()
La interfaz FilterConfig
El método getFilterName()
El método getInitParameter()
El método getInitParameterNames()
El método getServletContext()
La interfaz FilterChain
El método doFilter()
Descriptor de despliegue para filtros
La aplicación de chat con filtros
Registro de mensajes
Moderación de mensajes
Descriptor de despliegue
Despliegue
Chat con registro y moderación
Resumen

Capítulo 9. Despliegue Web, autentificación y empaquetado
Estructura de aplicación Web
Estructura de directorio
Ficheros en archivo Web
Desplegar un archivo WAR
¿Cuándo deben utilizarse los archivos WAR?
Asociar de solicitudes a aplicaciones y servlets
Asegurar aplicaciones Web
Seguridad programada
El método getAuthtype()
El método getRemoteUser()
El método getUserPrincipal()
El método isUserRole()
Autentificación basada en un formulario
Configuración de despliegue
Parámetros de inicialización de contexto
Parámetros de inicialización de servlet
Cargar servlets en el arranque
Tiempo límite de sesión
Asociaciones MIME
Archivos de bienvenida
Páginas de error
Enviar errores
Lanzar ServletException
Manejar errores y excepciones HTTP
Aplicaciones distribuibles
Resumen

Capítulo 10. Fundamentos y arquitectura de JSP
La especificación JSP 1.2
Presentación de JSP
Los aspectos prácticos
Directrices JSP
La directriz page
La directriz include
La directriz taglib
Elementos de directivas
Declaraciones
Scriptlets
Expresiones
Comentarios
Acciones estándar

Objetos implícitos
El objeto Request
El objeto Response
El objeto PageContext
El objeto Session
El objeto Application
El objeto Out
El objeto Config
El objeto Page
Alcance
Alcance de página
Alcance de solicitud
Alcance de sesión
Alcance de aplicación
Páginas JSP como documentos XML
Directrices
Elementos de directivas
Acciones
Una página de ejemplo
Sintaxis JSP
Sintáxis XML
Apoyo técnico JSP
Diseño de aplicación
La página de bienvenida
La página JSP de procesamiento de solicitudes
La clase JDBCHelper
TechSupportBean
Formulario de registro
JSP de registro
Las páginas JSP de respuesta y de anuncio
La página de error
Desplegar la aplicación
Estrategias de diseño JSP
Diseños centrados en la página o cliente-servidor
Vista de página
Vista de página con bean
El patrón de controlador frontal
Implementación de una arquitectura de controlador frontal
Servlet controlador
Manejadores de solicitud
Beans de página
Vistas JSP
Implementación
Ventajas
Utilizar un sistema de controlador genérico
Resumen

Capítulo 11. Extensiones de etiqueta de JSP
Extensiones de etiqueta
Mejoras de la extensión de etiqueta JSP 1.2
Una sencilla etiqueta
Anatomía de una extensión de etiquetas
Manejadores de etiqueta
La interfaz javax.servlet.jsp.tagext.Tag
Descriptores de biblioteca de etiqueta
Utilizar extensiones de etiqueta en páginas JSP
Despliegue y empaquetado de bibliotecas de etiquetas
Escribir extensiones de etiqueta
Atributos de procesamiento
Contenido de cuerpo
Variables de directivas introducidas por etiquetas
Iteración y manipulación de contenido de cuerpo
Anidamiento de etiqueta
Validar el uso de extensiones de etiqueta en páginas JSP
Manejo de errores
Eventos de ciclo de vida de aplicación
Locuciones de extensiones de etiqueta
Resumen

Capítulo 12. Escribir aplicaciones JSP con bibliotecas de etiquetas
Ventajas de utilizar bibliotecas de etiquetas personalizadas
Ejemplos de bibliotecas de etiquetas existentes
Introducción de la Biblioteca de Etiquetas Estándar JSP (JSPTL)
Obtener JSPTL
¿Qué abarca JSPTL?
Iniciarse en JSPTL
Integrar JSPTL en sus páginas JSP
Un ejemplo de iteración
Ejecución
Etiquetas JSPTL
Algunas consideraciones de diseño de JSPTL
Algunas etiquetas básicas
Etiquetas de flujo de control
Etiquetas de iteración
Etiquetas condicionales
Una aplicación de registro y autentificación
La página de bienvenida
El servlet controlador de registro
La página de formulario de registro
Gracias por registrarse
La página de error de registro
La página de formulario de entrada
Ver su perfil de usuario
Página de error de entrada
Ver el sitio Web favorito del usuario
Administración: la página Mostrar-todos-los-usuarios
Administración: un servicio Web de base XML
Desplegar la aplicación de registro
Lo que está por llegar: la biblioteca de etiquetas estándar
Resumen

Capítulo 13. JavaMail
Protocolos de correo
SMTP
POP3
IMAP
MIME
Análisis de JavaMail
Instalación y configuración
¡Rápido, envíame un e-mail!
API de JavaMail
javax.mail.Session
javax.mail.Authenticator
javax.mail.Message
javax.mail.internet.MimeMessage
De
Para, CC y CCO
Responder a
Asunto
Fecha
ID del mensaje
Otros
javax.mail.Part
Sistema de activación de JavaBeans
javax.mail.Multipart
javax.mail.BodyPart
Contenido del mensaje
Indicadores de mensaje
javax.mail.Address
javax.mail.internet.InternetAddress
javax.mail.internet.NewsAddress
javax.mail.Store
Acceso a las carpetas
javax.mail.URLName
javax.mail.Folder
Abrir y cerrar carpetas
Mensajes de listado
Recuperación avanzada de mensajes
Copiar y mover mensajes
Buscar mensajes
Javax.mail.Transport
Trabajar con correo
Enviar correo
Enviar documentos adjuntos
Leer correo
Eliminar correo
Recibir archivos adjuntos
Guardar y cargar correo
Recursos JavaMail
Resumen

Capítulo 14. Arquitectura y diseño EJB
¿Qué son los EJB?
Enterprise JavaBeans versus JavaBeans
Variedades de beans
¿Por qué utilizar EJB?
El contenedor EJB y sus servicios
Persistencia
Transacciones declarativas
Seguridad declarativa
Manejo de errores
Sistema de componentes para lógica de empresa
Reajustabilidad
Portabilidad
Gestionabilidad
Cómo proporciona servicios el contenedor
Contratos
Servicios
Interposición
Trabajar con EJB
La vista del desarrollador cliente
La vista del proveedor de bean
¿Qué no puede hacer un EJB?
Componentes EJB en la Web
Acceso de nivel cliente a EJB
Diseño del nivel EJB
Ejemplos de uso de UML
Análisis versus implementación
Un ejemplo de diseño EJB
Resumen

Capítulo 15. Beans de sesión y lógica de empresa
Beans de sesión y estado
Representación de lógica de empresa
El problema del estado conversacional
Beans de sesión y almacenamiento persistente
Bean calculadora de asistencia financiera
Bean calculadora de necesidad financiera sin estado
Bean calculadores de necesidad financiera con estado
La interfaz remota de necesidad financiera con estado
La interfaz inicial calculadora de necesidad financiera con estado
La clase de implementación de la siguiente calculadora financiera con estado
El cliente para la calculadora de la necesidad financiera con estado
Descriptores de implementación
Combinar beans con estado y sin estado
Las nuevas interfaces y cliente de la calculadora de necesidad con estado
La nueva clase de implementación de la calculadora de necesidad con estado
Los descriptores de implementación
Implementación de nuestra aplicación de fabricación
Clientes e interfaces de lógica de empresa
El EJB ManageOrders
El EJB de fabricación
Los clientes de aplicación
El cliente BeginManufacture
El cliente CompleteManufactured
El cliente PlaceSampleOrders
El cliente ManagerSampleOrders
El cliente CreateProducts
Implementación del bean de sesión sin estado
Métodos de empresa
Métodos de ayuda de implementación
Métodos de ciclo de vida y de sistema
Implementación del bean de sesión con estado
Resumen

Capítulo 16. Beans de entidad y persistencia
¿Por qué no utilizar beans de sesión?
Utilizar un bean de sesión con estado
Utilizar un bean de sesión sin estado
Ventajas de los beans de entidad
Persistencia gestionada por contenedor versus persistencia gestionada por bean
Nuevas funciones para CMP introducidas en EJB 2.0
Accesores abstractos
Interfaces locales
Relaciones
Lenguaje de consulta EJB
La cláusula SELECT
La cláusula FROM
La cláusula WHERE
El laboratorio SportBean
Claves primarias
Las retrollamadas C.R.U.D.
Crear
Los métodos create() de Sports Team, interfaz inicial
La clase de implementación de Sports Team CMP
La clase de implementación BMP de SportsTeam
Leer
Crear la tabla
Beans de entidad CMP y ejbLoad()
Beans de entidad BMP y ejbLoad()
Actualizar
CMP y el método ejbStore()
BMP y el método ejbStore()
Eliminar
CMP y el método remove()
BMP y el método remove()
Retrollamadas BMP versus retrollamadas CMP
El descriptor de implementación
Persistencia en los descriptores de implementación
Almacenamiento en memoria caché
Métodos buscadores
Implementación de métodos buscadores
CMP y métodos buscadores
BMP y métodos buscador
Activación y pasivación
El ciclo de vida completo
Reentrada
Completar el ejemplo del equipo de deporte
El cliente CMP
El cliente BMP
Configurar WebLogic 6.1 para nuestros EJB
Relaciones
Crear interfaces locales
Definir las relaciones
Completar nuestra aplicación de fabricación
El bean Pedido
La interfaz inicial del bean Pedido
La interfaz remota del bean Pedido
La clase de implementación del bean Pedido
La clase de clave primaria del bean Pedido
La excepción OrderNotCancelableException
El bean Producto
La interfaz inicial del bean Producto
La interfaz inicial local del bean Producto
La interfaz remota del bean Producto
La clase de implementación del bean Producto
La clase de excepción NoSuchRoutingInstruction
El descriptor de despliegue completo
Ejecutar la aplicación de fabricación
Resumen

Capítulo 17. Servicios de contenedor EJB
Transacciones
Transacciones sin contenedor
Semántica declarativa para transacciones
El atributo transaccional NotSupported
El atributo transaccional RequiresNew
El atributo transaccional Required
El atributo transaccional Supports
El atributo transaccional Mandatory
El atributo transaccional Never
Especificar atributos transaccionales
Elegir atributos de transacción
Transacciones controladas por el usuario
Niveles de aislamiento
Transacciones largas
Realización en dos fases
Seguridad
Especificar los requisitos de seguridad
Control programado de acceso
Seguridad y diseño de aplicación
Excepciones
Excepciones de aplicación
Excepciones de sistema
Comunicación
Comunicación entre servidores heterogéneos
Llamadas de método en VM
Resumen

Capítulo 18. Roles de desarrollo y de implementación
El proveedor de bean de empresa



El ensamblador de la aplicación
El implementador
El administrador del sistema
Vendedor de contenedor/servidor de aplicación
Una interfaz Web para la aplicación de fabricación
Consejos para resolver problemas
Resumen

Capítulo 19. JMS y beans controlados por mensaje
Breve historia del mensaje
Servicio de Mensajes Java (JMS)
Punto-a-punto
Publicar/suscribir
La arquitectura JMS
Ejemplo de cola punto-a-punto
Ejemplo de apartado publicar/suscribir
El API JMS
Utilizar transacciones con JMS
Tres implementaciones JMS de peso industrial
Beans controlados por mensaje
Ciclo de vida del bean controlado por mensaje
Transacciones en beans controlados por mensaje
Un ejemplo de bean controlado por mensaje
Implementación del bean controlado por mensaje
Resumen

Capítulo 20. La arquitectura de conectores J2EE
Integración de EIS y el rol de JCA
La Arquitectura de Conectores J2EE y sus elementos
El adaptador de recursos y sus contratos
Contratos de aplicación
Contratos de nivel de sistema
Gestión de conexiones
Gestión de transacciones
Gestión de seguridad
Acceso a EIS
Empaquetado e implementación de un adaptador de recursos
Empaquetar un adaptador de recursos
El descriptor de implementación del adaptador de recursos (ra.xml)
Roles y responsabilidades de la implementación
Proveedor del adaptador de recursos
Vendedor del servidor de aplicación
Proveedor del componente de aplicación
Implementador
Opciones de implementación
Implementar un adaptador de recursos como una aplicación J2EE
Adaptadores de recursos de caja negra
Utilizar un adaptador de caja negra. El ejemplo DemoConnector
Seleccionar un adaptador de caja negra
Transacciones XA y no-XA que utilizan un adaptador de caja negra
Implementación del adaptador de recursos de caja negra
Configurar la base de datos y la tabla Demoaccount
Implementación del adaptador de recursos
Poner a prueba el adaptador de recursos de caja negra
La interfaz inicial
La interfaz remota
La clase de implementación del bean
La clase ProcessingExceptions
El descriptor de implementación EJB
Implementación del bean
El cliente
La Interfaz Común de Cliente (CCI)
Interfaces y clases CCI
Conexión con una aplicación gestionada (J2EE)
Conexión a una aplicación no gestionada (de dos niveles)
Utilizar una CCI con adaptador de caja negra
Implementación de un bean de sesión con CCI
La interfaz inicial
La interfaz remota
La clase de implementación del bean
El descriptor de implementación EJB
El cliente
Implementación del adaptador de recursos de caja negra de CCI
Configurar la base de datos
Implementación del adaptador
Implementación y prueba de la aplicación CCI
Ventajas de la arquitectura de conectores J2EE
Integración de aplicación de empresa (EAI) con JCA
Portales de empresa capacitados con JCA
Integración empresa-a-empresa con JCA
Elementos que faltan en JCA 1.0
Resumen

Capítulo 21. Consideraciones de diseño para aplicaciones J2EE
El mundo sigue cambiando
Arquitectura y diseño
Estilos de arquitectura
Contexto de diseño
Los requisitos de empresa
El contexto de empresa
Elaborar los requisitos
Construir el modelo
Exploración el modelo
Elaborar el contexto
Adaptarse al terreno
Diseño distribuido
Elegir y perfeccionar una arquitectura
Arquitectura para el sistema de pedidos de compra
Iteración y retroalimentación
Aplicar patrones
¿Qué son los patrones?
Patrones J2EE
Comenzar por el principio
Presentación de datos del producto al usuario
Abstraer el acceso a datos
Distinguir entre funcionalidad y presentación
Separar interacción de usuario, presentación y datos
Evolución del sistema
Añadir el nivel medio (Middle-Tier)
De compras
Encapsular el flujo de trabajo de pedidos
Modelos con estado versus modelos sin estado
Presentar el pedido
Aprobar el pedido
Más allá de sistema de pedidos de compra
Diseño de interfaz EJB
Eventos distribuidos
Diseño para bases de datos
Lecciones aprendidas
Separar intereses siempre que sea posible
Minimizar el tráfico de la red
Utilizar abstracción para contribuir a la flexibilidad
Usar patrones comunes
Reducir el acoplamiento de mecanismos asíncronos
Transacciones de plan
Resumen

Capítulo 22. J2EE y servicios Web
¿Qué son los servicios Web?
Servicios inteligentes
Tecnologías de servicios Web
SOAP
Mensajes SOAP con anexos (SwA)
WSDL
Documento WSDL
El elemento types
El elemento message
El elemento portType
El elemento binding
El elemento port
El elemento service
UDDI
Implementación
ebXML
Tecnologías J2EE para servicios Web
JAXP
JAXB
Esquema XML
Asociación de datos XML
JAXM
JAX-RPC
JAXR
Arquitectura
Objetivos de diseño
Desarrollo de servicios Web
Arquitectura de servicio Web
Localizar servicios Web
La interfaz del servicio Web
Implementar la lógica de empresa
Integrar otros recursos
Devolver resultados a clientes
Un sencillo servicio Web
Desarrollar el archivo Java StockQuote
Crear el JAR
Generar archivos WSDL
El archivo StockQuote_Service.wsdl
El archivo StockQuote_Service-interface.wsdl
Generar la clase proxy
Registrar el servicio en el servidor Web
Desarrollar un cliente
Crear servicios más inteligentes
Contexto compartido
Servicios Web inteligentes
La iniciativa Sun ONE
Análisis de la arquitectura funcional
Arquitectura de servicios Web inteligentes
Provisión inteligente
Gestión inteligente
Proceso inteligente
Política inteligente
Apoyo del vendedor a servicios Web
Servicios Web sencillos
Servicios Web complejos
Resumen

Capítulo 23. Elegir una implementación J2EE
Servidores de aplicación
Implementación de las especificaciones J2EE
Competencia en el mercado de servidores de aplicación
Implementaciones J2EE
Funciones de valor añadido
Parámetros de evaluación
Comunidad de desarrollo
Resumen

Capítulo 24. Empaquetado e implementación J2EE
Análisis del empaquetado J2EE
¿Qué elementos pueden ser empaquetados?
Roles de empaquetado
Las limitaciones del empaquetado
Comprender los esquemas de carga de clases
Configuración de paquetes J2EE
El proceso de desarrollo de aplicaciones de empresa
La estructura de un paquete J2EE
Trabajar con el descriptor de implementación EAR
Cuestiones relacionadas con el orden de los módulos
Cuestiones relacionadas con paquetes de dependencia
Soluciones
Una solución mejor
Comprender la ruta de clase manifiesta
Ejemplo de dependencia
El impacto de las bibliotecas de dependencia
Resumen

Índice alfabético

Otros clientes que compraron Programación Java Server con J2EE Edición 1.3, también compraron:


PHP 5PHP 5
Cabezas Granado, Luis Miguel.
384 páginas.
Envío gratuito
Precio: 23,8 € ($36,73)


PATRONES DE DISEÑOPATRONES DE DISEÑO
Erich Gamma.
Precio: 31,25 € ($48,23)


Java 2 v5.0JAVA 2 V5.0
Richarson, Clay W.; Avondolio, Donald; Vitale, Joe.
704 páginas.
Envío gratuito
Precio: 46,6 € ($71,93)


Programación Web 2.0PROGRAMACIÓN WEB 2.0
Van der Vlist, Eric ; Ayers, Danny ; Bruchez, Eric ; y otros.
560 páginas.
Precio: 43 € ($66,37)


Otros libros de Java:


Java Examples in a NutshellJAVA EXAMPLES IN A NUTSHELL
Flanagan, David.
701 páginas.
Precio: 38,85 € ($59,96)


Programador Java 2 Certificado. Curso práctico.PROGRAMADOR JAVA 2 CERTIFICADO.
CURSO PRÁCTICO.

MARTÍN SIERRA, A.J..
624 páginas.
Precio: 35,9 € ($55,41)


JavaScript. Iniciación y referenciaJAVASCRIPT.
INICIACIÓN Y REFERENCIA

Abraham Gutiérrez Rodríguez; Aurelio Tejedor Cerbel; Soledad Delgado Sanz.
422 páginas.
Precio: 26,95 € ($41,59)


Java 2. Manual de referenciaJAVA 2.
MANUAL DE REFERENCIA

Herbert Schilt.
994 páginas.
Precio: 66 € ($101,86)


1001 TIPS PARA PROGRAMAR CON JAVA
Griffith.
704 páginas.
Precio: 49,95 € ($77,09)


*Para península. Tiempo estimado para días laborables