¿Qué incluye j2ee?

¿Qué es J2EE? En general, J2EE es un estándar industrial de facto para desarrollar aplicaciones de nivel empresarial utilizando tecnología Java (hasta ahora Sun no ha incluido Java y sus tecnologías relacionadas en el sistema de organización de estandarización debido a sus propios intereses). adaptar y promover aplicaciones a nivel empresarial en el proceso. Actualmente, existen tres versiones de la plataforma Java: J2ME (Java 2 Platform Micro Edition) para dispositivos pequeños y tarjetas inteligentes, J2SE para sistemas de escritorio y J2EE para aplicaciones de nivel empresarial. El propósito del lanzamiento de J2EE por parte de Sun es superar las deficiencias del modelo tradicional Cliente/Servidor, atender la tendencia de la arquitectura Navegador/Servidor y proporcionar una plataforma para desarrollar aplicaciones del lado del servidor utilizando tecnología Java que sea independiente, portátil y multiuso. -Usuario, seguro y basado en una plataforma estándar de clase empresarial para simplificar el desarrollo, la gestión y la implementación de aplicaciones empresariales. J2EE es un estándar, no un producto listo para usar. Cada desarrollador de plataforma ha desarrollado diferentes servidores de aplicaciones J2EE de acuerdo con las especificaciones J2EE. El servidor de aplicaciones J2EE es una plataforma de implementación para aplicaciones J2EE de nivel empresarial. Dado que todos siguen la especificación J2EE, las aplicaciones de nivel empresarial desarrolladas con tecnología J2EE se pueden implementar en varios servidores de aplicaciones J2EE.

Para promover y estandarizar la arquitectura de aplicaciones de nivel empresarial que utilizan J2EE, Sun también proporciona un modelo de diseño de aplicaciones J2EE sugerido: J2EE Blueprints. J2EE Blueprints proporciona la arquitectura, los patrones de diseño y los códigos relacionados para implementar aplicaciones J2EE de nivel empresarial. Al aplicar el modelo de sistema descrito por J2EE Blueprints, el complejo trabajo de diseñar aplicaciones de nivel empresarial se puede simplificar parcialmente. Los planos J2EE son los principios básicos para que los desarrolladores diseñen y optimicen componentes J2EE. También proporcionan estrategias guía para la división funcional del trabajo en torno al trabajo de desarrollo para ayudar a los desarrolladores y diseñadores de aplicaciones a asignar racionalmente los recursos técnicos.

A continuación nos referimos a los Blueprints de J2EE y los combinamos con la última versión de la especificación J2EE (J2EE 1.4) para explicar de manera integral cómo usar J2EE para diseñar aplicaciones de nivel empresarial.

La Figura 2 muestra la arquitectura de aplicaciones de nivel empresarial que utilizan J2EE. J2EE incorpora diferentes partes de una aplicación completa de nivel empresarial en diferentes contenedores (Cada contenedor contiene varios componentes (estos componentes deben implementarse en el contenedor correspondiente). Al mismo tiempo, varios componentes pueden utilizar varios servicios/API de J2EE. . Los contenedores J2EE incluyen:

◆ Contenedor web del lado del servidor, que incluye dos componentes, JSP y Servlet. JSP y Servlet son extensiones funcionales del servidor web, que aceptan solicitudes web y devuelven páginas web dinámicas. Los componentes del contenedor web pueden utilizar componentes del contenedor EJB para completar una lógica empresarial compleja.

◆ Contenedor EJB Contenedor del lado del servidor, el componente incluido es EJB (Enterprise JavaBeans), que es uno de los núcleos de J2EE y se utiliza principalmente para la implementación de la lógica empresarial del lado del servidor. La especificación EJB define un marco para desarrollar e implementar lógica empresarial distribuida para simplificar el desarrollo de aplicaciones de nivel empresarial y facilitar la escalabilidad, portabilidad, procesamiento de transacciones distribuidas, multiusuario y seguridad.

◆ Contenedor cliente de contenedor Applet, el componente incluido es Applet. Applet es un cliente liviano integrado en el navegador. En términos generales, solo se usa cuando los datos o la interfaz de la aplicación no se pueden expresar completamente mediante una página web. Applet es un medio para reemplazar páginas web. Solo podemos usar J2SE para desarrollar Applets. No podemos usar varios servicios y API de J2EE.

◆ Contenedor de Cliente de Aplicación El contenedor de cliente contiene el componente Cliente de Aplicación.

Application Client es un cliente más pesado que Applet y puede utilizar la mayoría de los servicios y API de J2EE.

A través de estos cuatro contenedores, J2EE puede implementar de manera flexible la arquitectura de aplicaciones de nivel empresarial descrita anteriormente.

En la parte Vista, J2EE proporciona tres medios: JSP (o Servlet), Applet y Cliente de aplicaciones en el contenedor web, que pueden realizar respectivamente la representación de datos para navegadores y la representación de datos para aplicaciones de escritorio. El Servlet en el contenedor web es el medio principal para realizar el control del proceso de negocio de la parte del Controlador, mientras que el EJB está dirigido principalmente a la implementación de la lógica empresarial de la parte del Modelo. En cuanto a conectarse con diversos recursos empresariales y aplicaciones de nivel empresarial, se basa en varios servicios y API de J2EE.

Entre los diversos servicios y API de J2EE, JDBC y JCA se utilizan para conectar recursos empresariales (varios sistemas de información empresarial y bases de datos, etc.), mientras que JAX-RPC, JAXR y SAAJ se utilizan para implementar Web. Servicios y soporte Básico para conexiones de Servicios Web.

Varios componentes de J2EE

Detallaremos los distintos componentes, servicios y API de J2EE con más detalle para ver cómo utilizarlos al desarrollar diferentes tipos de aplicaciones de nivel empresarial. Cómo utilizar y combinar de manera flexible diferentes componentes y servicios según sus diferentes necesidades y objetivos.

· Servlet

Servlet es una tecnología CGI en la plataforma Java. Los servlets se ejecutan en el lado del servidor y generan páginas web dinámicamente. Los servlets Java son más eficientes y fáciles de usar que el CGI tradicional y muchas otras tecnologías similares a CGI. Para Servlet, las solicitudes repetidas no darán lugar a múltiples reimpresiones del mismo programa. Depende de subprocesos para admitir el acceso simultáneo.

·JSP

JSP (Java Server Page) es una tecnología que implementa codificación mixta de HTML estático ordinario y salida de página dinámica. Desde este punto de vista, es muy similar a Microsoft ASP, PHP y otras tecnologías. Con la separación del contenido formal y la apariencia, la tarea de producción de páginas web se puede dividir más fácilmente entre diseñadores y programadores de páginas, y se puede sintetizar fácilmente a través de JSP. En tiempo de ejecución, JSP se convertirá primero en Servlet y se compilará y ejecutará en forma de Servlet. Por lo tanto, su eficiencia y funciones no son diferentes de las de Servlet, y también es muy eficiente.

·EJB

EJB define un conjunto de componentes reutilizables: Enterprise Beans. Los desarrolladores pueden utilizar estos componentes para crear aplicaciones distribuidas como bloques de construcción. Al ensamblar componentes, todos los Enterprise Beans deben configurarse en el servidor EJB (los servidores de aplicaciones J2EE generales como Weblogic y WebSphere son servidores EJB). Como puente entre el contenedor y la plataforma de bajo nivel, el servidor EJB administra el contenedor EJB y le proporciona al contenedor la capacidad de acceder a los servicios del sistema. Todas las instancias EJB se ejecutan en contenedores EJB. El contenedor EJB proporciona servicios a nivel de sistema y controla el ciclo de vida de EJB. El contenedor EJB gestiona aspectos técnicos como seguridad, conexión remota, gestión del ciclo de vida y gestión de transacciones para sus desarrolladores, simplificando el desarrollo de la lógica empresarial. Hay tres tipos de Enterprise Beans definidos en EJB:

◆ Beans de sesión

◆ Beans de entidad

◆ Beans controlados por mensajes

· JDBC

La API JDBC (Java Database Connectivity, Java Database Connection) es una interfaz de acceso a bases de datos SQL (Structured Query Language, lenguaje de consulta estructurado) estándar, que permite a los desarrolladores de bases de datos escribir aplicaciones de bases de datos utilizando la API Java estándar.

La API JDBC se utiliza principalmente para conectarse a la base de datos y llamar directamente a comandos SQL para ejecutar varias declaraciones SQL. Puede utilizar la API JDBC para ejecutar sentencias SQL generales, sentencias SQL dinámicas y procedimientos almacenados con parámetros IN y OUT. JDBC en Java es equivalente a ODBC (Open Database Connectivity) en la plataforma Microsoft.

·JMS

JMS (Java Message Service, Java Message Service) es un conjunto de interfaces de aplicaciones Java que proporcionan servicios para crear, enviar, recibir y leer mensajes. La API JMS define un conjunto de interfaces de programación de aplicaciones públicas y la sintaxis correspondiente, lo que permite que las aplicaciones Java se comuniquen con varios middleware de mensajes, incluidos IBM MQ-Series, Microsoft MSMQ y Java puro SonicMQ. Al utilizar la API JMS, los desarrolladores no necesitan dominar el uso de diferentes productos de mensajería y también pueden utilizar la API JMS unificada para manipular varios middleware de mensajería. Al utilizar JMS, se puede maximizar la portabilidad de las aplicaciones de mensajería. JMS soporta tanto la comunicación de mensajes punto a punto como la comunicación de mensajes de publicación/suscripción.

·JNDI

Dado que los componentes de la aplicación J2EE generalmente se distribuyen en diferentes máquinas, se necesita un mecanismo para facilitar que los clientes de componentes encuentren y hagan referencia a componentes y recursos. En el sistema J2EE, JNDI (Java Naming and Directory Interface) se utiliza para localizar varios objetos, incluidos EJB, controladores de bases de datos, fuentes de datos JDBC y conexiones de mensajes. La API JNDI proporciona una interfaz unificada para que las aplicaciones completen operaciones de directorio estándar, como buscar y localizar objetos a través de propiedades de objetos. Dado que JNDI es independiente de los protocolos de directorio, las aplicaciones también pueden utilizar JNDI para acceder a varios servicios de directorio específicos, como LDAP, NDS y DNS.

·JTA

JTA (Java Transaction API) proporciona una interfaz estándar para procesar transacciones en J2EE. Admite el inicio, la reversión y el envío de transacciones. Al mismo tiempo, en la plataforma J2EE general, siempre se proporciona un JTS (Java Transaction Service) como servicio de procesamiento de transacciones estándar. Los desarrolladores pueden usar JTA para usar JTS.

·JCA

JCA (J2EE Connector Architecture) es parte de la arquitectura J2EE y proporciona a los desarrolladores un conjunto de herramientas para conectar varios sistemas de información empresarial (EIS, incluidos ERP, SCM, CRM, etc.), para los desarrolladores de EIS, solo necesitan desarrollar un conjunto de adaptadores de conexión EIS basados ​​en JCA, y los desarrolladores pueden conectarlos y usarlos en cualquier servidor de aplicaciones J2EE. La implementación de un adaptador de conexión basado en JCA requiere componentes de servicio como gestión de transacciones, gestión de seguridad y gestión de conexiones en J2EE.

·JMX

El predecesor de JMX (Java Management Extensions) es JMAPI. JMX se dedica a resolver problemas de gestión de sistemas distribuidos. JMX es una colección de interfaces de programación de aplicaciones, objetos extensibles y métodos que pueden desarrollar aplicaciones de administración orientadas a servicios, redes y sistemas perfectamente integrados en varias plataformas de sistemas operativos, arquitecturas de sistemas y protocolos de transmisión de red heterogéneos. JMX es un entorno completo de desarrollo de aplicaciones de gestión de red. También proporciona una lista completa de funciones que los fabricantes deben recopilar, un formulario de lista de recursos que se puede generar, una interfaz gráfica de usuario para acceder a llamadas a procedimientos remotos entre hosts; y una base de datos.

·JAAS

JAAS (Servicio de autenticación y autorización de Java) implementa una versión Java del marco estándar del Módulo de autenticación conectable (PAM).

JAAS se puede utilizar para autenticar usuarios y determinar de forma fiable y segura quién está ejecutando el código Java. Al mismo tiempo, JAAS también puede implementar un control de acceso basado en usuarios autorizando a los usuarios.

·JACC

JACC (Contrato de Proveedor de Servicios de Autorización Java para Contenedores) define un acuerdo de conexión entre el servidor de aplicaciones J2EE y un servidor de autenticación de autorización específico para integrar varios servidores de autenticación conectados. Productos J2EE.

·JAX-RPC

Al utilizar JAX-RPC (Java API para RPC basado en XML), las clases Java o aplicaciones Java existentes se pueden volver a empaquetar y utilizar como publicación web en el formulario de Servicios. JAX-RPC proporciona una API para codificar y decodificar parámetros RPC (entrada/salida), lo que permite a los desarrolladores utilizar fácilmente mensajes SOAP para completar llamadas RPC. De manera similar, para aquellas aplicaciones comerciales que usan EJB (Enterprise JavaBeans), JAX-RPC también se puede usar para empaquetarlo en un servicio web, y la interfaz WSDL de este servicio web es consistente con el método EJB original. JAX-RPC empaqueta el despliegue y la implementación de servicios web para los usuarios. Para los desarrolladores de servicios web, SOAP/WSDL se vuelve transparente, lo que ayuda a acelerar el ciclo de desarrollo de los servicios web.

·JAXR

JAXR (Java API para registros XML) proporciona una API para interactuar con múltiples tipos de servicios de registro. JAXR ejecuta el cliente para acceder a servicios web que son compatibles con la especificación JAXR. Los servicios web aquí son servicios de registro. En términos generales, los servicios de registro siempre se ejecutan en forma de Servicios Web. JAXR admite tres tipos de servicios de registro: Proveedor conectable JAXR, Proveedor JAXR específico del registro y Proveedor puente JAXR (admite Registro UDDI y Registro/Repositorio ebXML, etc.).

·SAAJ

SAAJ (SOAP con API Attachemnts para Java) es una mejora de JAX-RPC que proporciona soporte para la manipulación de mensajes SOAP de bajo nivel.

Ahora comprenderemos la aplicación de varios componentes y servicios asumiendo una implementación J2EE de una aplicación empresarial. Supongamos que el objeto de la aplicación es el sistema de ventas de un fabricante/minorista de productos informáticos. Este sistema de ventas puede publicar información del producto a través de su propio sitio web y también puede transmitir catálogos de productos al mercado de comercialización de productos informáticos. El sistema de ventas puede aceptar pedidos en línea (desde su propio sitio web o desde el mercado de comercialización de productos informáticos) y luego transferirlos al sistema de gestión interno de la empresa para el procesamiento de seguimiento relacionado.

Consulte la Figura 3. Esta aplicación empresarial se puede diseñar de esta manera. El núcleo de esta aplicación empresarial son las dos lógicas comerciales de gestión del catálogo de productos y gestión de pedidos de productos, que se implementan mediante EJB y se implementan en un contenedor EJB. Dado que el catálogo de productos y la información de pedidos deben conservarse, se utiliza JDBC para conectarse a la base de datos y JTA para completar la transacción de acceso a la base de datos.

Luego utilice JSP/Servlet para implementar el rendimiento web de la aplicación: exploración del catálogo de productos en línea y pedidos en línea. Para enviar el catálogo de productos a un mercado comercial específico, se utiliza JMS para implementar la transmisión asincrónica del catálogo de productos basada en mensajes. Para permitir que más mercados comerciales externos integren catálogos de productos y servicios de pedidos, es necesario utilizar la tecnología de servicios web para empaquetar la implementación de la lógica empresarial. Dado que la gestión de pedidos de productos debe ser manejada por empleados internos de la empresa, es necesario integrar el sistema de usuario interno de la empresa y los servicios de control de acceso para facilitar el uso de los empleados. Utilice JACC para integrar los servicios de control de acceso interno y utilice JNDI para integrar a los usuarios internos. directorios y utilizar JAAS Realizar control de acceso.

Dado que las transacciones de pedido de productos desencadenarán operaciones posteriores relacionadas con el sistema ERP empresarial (incluidos almacenamiento, finanzas, producción, etc.), es necesario utilizar JCA para conectarse al ERP empresarial.

Finalmente, para integrar esta aplicación en el sistema general de administración de la empresa, se construyó un cliente de administración utilizando Application Client (implementado en la misma máquina con otras aplicaciones de administración de aplicaciones empresariales) y a través de JMX. Administre esta aplicación empresarial.