Desarrollo de sistema de reservas empresariales basado en tecnología EJB
Autor:Eve Cole
Fecha de actualización:2009-07-02 17:12:35
La tecnología se ha utilizado cada vez más en el desarrollo de sistemas de red a gran escala. En este artículo, el autor presentará la definición de EJB (Enterprise Java Beans), el modelo de estructura del sistema de aplicaciones basado en la tecnología EJB y el contenido y clasificación de EJB. Finalmente, combinado con el sistema de reserva empresarial basado en EJB, se desarrolló un modelo estructural y componentes EJB.
EJB no es técnicamente un "producto", sino una especificación técnica. La definición de SUN de EJB es: La estructura de EJB es una estructura de componentes para desarrollar y configurar aplicaciones comerciales distribuidas basadas en componentes. Las aplicaciones desarrolladas con estructuras EJB son escalables, transaccionales y seguras para múltiples usuarios. Es posible que estas aplicaciones solo deban escribirse una vez, pero se pueden implementar en una plataforma de servidor de tareas que admita la especificación EJB. En general, EJB es un modelo de componente del lado del servidor estándar para el monitoreo de transacciones de componentes.
Modelo de estructura del sistema basado en tecnología EJB.
La estructura EJB es una estructura de componentes del lado del servidor, que es una estructura jerárquica. Su modelo estructural se muestra en la Figura 1. Este modelo estructural generalmente se puede dividir en capa de cliente, capa de lógica empresarial y capa de datos. El autor dará una breve introducción a esto a continuación.
Figura 1: modelo de estructura de aplicación basado en EJB
La capa de cliente se utiliza principalmente para cumplir con diversos requisitos de acceso a todo el sistema y manejar las siguientes tareas:
Recibir información del usuario, analizar y verificar la información del usuario y procesarla en consecuencia;
Muestra los resultados de ejecución transmitidos desde el nivel alto del lado del servidor.
La capa de cliente generalmente consta de procesos de cliente, que el navegador crea y destruye dinámicamente.
Capa de lógica empresarial Esta es la parte más crítica de todo el sistema. La capa de lógica empresarial generalmente se divide en dos capas. La capa superior es la capa de recepción de solicitudes (comúnmente llamada capa web), que se utiliza para recibir solicitudes del navegador y transferirlas a la capa inferior para su procesamiento. se envían al navegador. Estos procesos constan principalmente de páginas JSP, applets basados en web y servlets que muestran páginas HTML. La capa inferior es la capa de procesamiento de solicitudes (generalmente llamada capa EJB), que incluye el proceso de escucha, el proceso de procesamiento y el proceso de operación de la base de datos. Es responsable de procesar las solicitudes de los clientes desde la capa de recepción de solicitudes y procesarlas al mismo tiempo. Pasar los resultados de la solicitud a la capa de recepción de solicitudes. Si es necesario, los resultados del procesamiento deben entregarse a la capa de datos para su almacenamiento.
La capa de datos proporciona principalmente servicios de datos para la capa de lógica empresarial, como almacenar los resultados del procesamiento de la capa de lógica empresarial y devolver los resultados de los datos recuperados por la capa de lógica empresarial. También se utiliza para proteger los cambios en la fuente de datos, de modo que. cuando la base de datos cambia, solo necesitamos modificarla. Simplemente use la declaración para conectarse a la fuente de datos.
Clasificación de componentes EJB Normalmente, existen dos tipos básicos de componentes EJB del lado del servidor: Entity Bean y Session Bean.
Figura 2: Arquitectura del sistema de reservas empresariales
Los Entity Beans son modelos creados para objetos del mundo real, que suelen ser registros persistentes en una base de datos. Entity Bean crea un modelo para conceptos comerciales que pueden expresarse como sustantivos. Describe tanto el estado de los objetos del mundo real como su comportamiento, y permite a los desarrolladores encapsular datos y reglas comerciales relacionadas con conceptos específicos. Session Bean es un Enterprise Bean creado a través de la interfaz de inicio y dedicado a las conexiones de clientes. Las instancias de Session Bean generalmente no se comparten con otros clientes. Session Bean es una extensión de la aplicación cliente y es responsable de gestionar todo el proceso o tarea. Los Session Beans pueden gestionar la interacción entre Entity Beans, describiendo cómo trabajan juntos para completar una tarea especial.
Los beans de entidad se pueden dividir en beans administrados por contenedores y beans administrados mediante beans según la forma en que administran la persistencia. Los beans administrados por contenedor son administrados automáticamente por el contenedor EJB. El contenedor sabe cómo se asignan los campos de la instancia de Bean a la base de datos y administra automáticamente la inserción, actualización y eliminación de datos relacionados con entidades en la base de datos; gestionar la persistencia. Los beans necesitan hacer todo esto explícitamente. Los desarrolladores de Bean deben escribir código para operar la base de datos. El contenedor EJB solo le indica a la instancia de Bean cuándo puede insertar, actualizar y eliminar datos de forma segura en la base de datos. La instancia del bean hace todo el trabajo de persistencia por sí misma.
Los beans de sesión se pueden dividir en beans sin estado y beans con estado según tengan estado. Los Session Beans sin estado tienden a ser versátiles y reutilizables; los Session Beans con estado son extensiones de aplicaciones cliente que completan tareas en nombre de los clientes y mantienen el estado relacionado con el cliente.
Desarrollo de un sistema de reserva comercial El sistema de reserva de cabina es un sistema de reserva comercial basado en la tecnología de componentes EJB desarrollado en la plataforma J2EE. Su proceso principal es que después de que el usuario inicia sesión, será guiado a través de la página de selección de cliente y la página de selección de navegación. a su vez, y le proporcionará al cliente Seleccione una cabina disponible (obtenga la lista de cabinas disponibles de TravelAgentBean. El método listAvailableCabin() de TravelAgentBean es llamado por el servlet que genera esta página web. La lista de cabinas se utilizará para crear una Cuadro de lista HTML en la página web cargada en el navegador del usuario), cuando el usuario selecciona una cabina y envía la selección, se enviará una solicitud HTTP al servidor EJB (Websphere Application Server). Después de que el servidor reciba la solicitud, la enviará. al ReservationServlet. Este servlet llama al método TravelAgent.BookPassage() Para realizar la reserva real, la información de etiqueta devuelta por el método BookPassage() se utilizará para crear otra página web que se envía de vuelta al navegador del usuario. Si la reserva se realiza correctamente, ProcessPaymentServlet llamará al método de pago en ProcessPaymentBean para implementar el proceso de cobro para el cliente. Su estructura específica se muestra en la Figura 2.
Los componentes EJB del sistema de reservas incluyen principalmente las siguientes partes:
CabinBean: Entity Bean, la clave principal es CabinPK, que es un entidad Bean que se utiliza para encapsular la cabina de un barco en el mundo real.
CustomerBean: Entity Bean, la clave principal es CustomerPK, que es una entidad Bean que se utiliza para encapsular a los consumidores que necesitan reservar cabinas de crucero en el mundo real.
CruiseBean: Entity Bean, la clave principal es CruisePK, que es un entidad Bean que se utiliza para encapsular rutas de barcos en el mundo real. ReservationBean: Entity Bean, la clave principal es CruiseID, CabinID Representa un registro sin cambios en la base de datos, es decir, una reserva. Registra los eventos históricos del sistema de reservas. Dos clientes reservan la misma ruta. La razón de este problema es que hay un intervalo entre el momento en que el cliente selecciona la cabina y la ruta y el momento en que se llama al método bookPassage(). TravelAgentBean: Bean de sesión con estado, un bean de sesión responsable del flujo de trabajo de reserva de cabinas de vuelo. Encapsula el proceso de completar una operación de reserva para una ruta y se utiliza en aplicaciones de clientes de agentes de viajes de todo el mundo. TravelAgentBean no sólo satisface las necesidades de los consumidores a la hora de reservar billetes, sino que también proporciona información sobre las cabinas restantes durante el viaje. Para completar esta tarea, Bean necesita saber de qué ruta, cabina y cliente se compone la reserva. Después de recopilar esta información, el método bookPassage() completa el proceso de reserva. cuenta En la ruta correcta Reserva la cabina seleccionada en el barco correcto y genera un billete para el cliente a través de la clase Billete. Aquí, necesitamos usar la clase CreditCard para almacenar información relevante sobre la tarjeta de crédito del cliente. Al mismo tiempo, el método ListAvailableCabins() se usa para mostrar las cabañas disponibles que no se han reservado.
ProcessPaymentBean: bean de sesión sin estado, que es el proceso de cobrar a los consumidores en un sistema de transacciones. Define tres métodos de transacción para los métodos de pago con cheque, efectivo y tarjeta de crédito, a saber, ByCheck(), ByCash() y ByCredit().
Ejemplo de código de programa del sistema de reservas comerciales. Todo el sistema de reservas comerciales se desarrolló en IBM VisualAge para Java. En este entorno de desarrollo IDE, los beans de entidad son mucho más fáciles de desarrollar que los beans de sesión. A continuación se utiliza TravelAgentBean como ejemplo para presentar el proceso de desarrollo. de componentes EJB:
1. Interfaz remota de TravelAgent Proporciona un método para configurar la ruta y el ID de cabina que el cliente desea reservar. Además, el método boolPassage() está configurado para facturar al cliente su reserva y generar un ticket para el cliente. El código específico es el siguiente:
paquete com.titan.travelagent;
importar java.rmi.RemoteException;
importar javax.ejb.FinderException;
importar com.titan.cruise.Cruise;
importar com.titan.customer.Customer;
importar com.titan.processpaid.CreditCard;
interfaz pública TravelAgent extiende javax.ejb.EJBObject
{
public void setCruiseID (int cruise) lanza RemoteException, FinderException;
public int getCruiseID( ) lanza RemoteException, IncompleteConversationalState;
setCabinID público vacío (int cabina) lanza RemoteException, FinderException;
public int getCabinID() lanza RemoteException, IncompleteConversationalState;
public int getCustomerID() lanza RemoteException, IncompleteConversationalState;
ticket público boolPassage (tarjeta de crédito, precio doble) arroja RemoteException, IncompleteConversationalState;
}
2. Interfaz de inicio de TravelAgent
El código de la interfaz de TravelAgent Home es el siguiente:
puckage com.titan.tracelagent;
importar java.rmi.RemoteException;
importar javax.ejb.CreateException;
importar com.titan.customer.Customer;
interfaz pública TravelAgentHome extiende javax.ejb.EJBHome {
La creación pública de TravelAgent (cliente cliente) lanza RemoteException, CreateException;}
3. La clase TravelAgent Bean necesita implementar todos los comportamientos en la interfaz remota y la interfaz de inicio de TravelAgent. Debido a limitaciones de espacio, este artículo no presentará su código de implementación. Los lectores interesados pueden completarlo por sí mismos.
A través de los pasos anteriores, hemos completado el desarrollo del componente EJB de un sistema de reservas comerciales.