Développement d'un système de réservation d'entreprise basé sur la technologie EJB
Auteur:Eve Cole
Date de mise à jour:2009-07-02 17:12:35
La technologie est de plus en plus utilisée dans le développement de systèmes de réseau à grande échelle. Dans cet article, l'auteur présentera la définition des EJB (Enterprise Java Beans), le modèle de structure du système d'application basé sur la technologie EJB, ainsi que le contenu et la classification des EJB. Enfin, en combinaison avec les EJB, nous avons développé un système de réservation d'entreprise utilisant un modèle structurel et des composants EJB.
Techniquement, EJB n'est pas un "produit", mais une spécification technique. La définition de SUN d'EJB est la suivante : La structure d'EJB est une structure de composants permettant de développer et de configurer des applications métier distribuées basées sur des composants. Les applications développées avec des structures EJB sont évolutives, transactionnelles et sécurisées pour plusieurs utilisateurs. Ces applications ne doivent peut-être être écrites qu'une seule fois, mais peuvent être déployées sur une plate-forme de serveur de tâches prenant en charge la spécification EJB. En général, EJB est un modèle de composant standard côté serveur pour la surveillance des transactions de composants.
Modèle de structure du système basé sur la technologie EJB
La structure EJB est une structure de composants côté serveur, qui est une structure hiérarchique. Son modèle structurel est illustré à la figure 1. Ce modèle structurel peut généralement être divisé en couche client, couche de logique métier et couche de données. L'auteur en donnera une brève introduction ci-dessous.
Figure 1 : Modèle de structure d'application basé sur EJB
La couche client est principalement utilisée pour répondre aux diverses exigences d'accès à l'ensemble du système et gérer les tâches suivantes :
Recevoir les commentaires des utilisateurs, analyser et vérifier les commentaires des utilisateurs et traiter en conséquence ;
Affiche les résultats en cours d'exécution transmis depuis le niveau supérieur côté serveur.
La couche client est généralement constituée de processus clients créés et détruits dynamiquement par le navigateur.
Couche de logique métier Il s'agit de la partie la plus critique de l'ensemble du système. La couche de logique métier est généralement divisée en deux couches. La couche supérieure est la couche de réception des requêtes (communément appelée couche Web), qui est utilisée pour recevoir les requêtes du navigateur et transférer les requêtes vers la couche inférieure pour traitement. sont envoyés au navigateur. Ces processus consistent principalement en des pages JSP, des applets Web et des servlets qui affichent des pages HTML. La couche inférieure est la couche de traitement des demandes (généralement appelée couche EJB), qui comprend le processus d'écoute, le processus de traitement et le processus d'exploitation de la base de données. Elle est responsable du traitement des demandes des clients provenant de la couche de réception des demandes et de leur traitement, et en même temps. transmettre les résultats de la demande à la couche de réception de la demande, si nécessaire, les résultats du traitement doivent être transmis à la couche de données pour le stockage.
La couche de données fournit principalement des services de données pour la couche de logique métier, tels que le stockage des résultats de traitement de la couche de logique métier et le renvoi des résultats des données récupérés par la couche de logique métier. Elle est également utilisée pour protéger les modifications dans la source de données, de sorte que. lorsque la base de données change, il suffit de la modifier. Utilisez simplement l'instruction pour vous connecter à la source de données.
Classification des composants EJB Normalement, il existe deux types fondamentaux de composants EJB côté serveur : Entity Bean et Session Bean.
Figure 2 : Architecture du système de réservation d'entreprise
Les Entity Beans sont des modèles conçus pour des objets du monde réel, qui sont généralement des enregistrements persistants dans une base de données. Entity Bean crée un modèle pour les concepts métier qui peuvent être exprimés sous forme de noms. Il décrit à la fois l'état des objets du monde réel et leur comportement, et permet aux développeurs d'encapsuler des données et des règles métier liées à des concepts spécifiques. Session Bean est un Enterprise Bean créé via l'interface d'accueil et dédié aux connexions client. Les instances du bean session ne sont généralement pas partagées avec d'autres clients. Session Bean est une extension de l'application client et est responsable de la gestion de l'ensemble du processus ou de la tâche. Les Session Beans peuvent gérer l'interaction entre les Entity Beans, décrivant comment ils travaillent ensemble pour accomplir une tâche spéciale.
Les beans entité peuvent être divisés en beans gérés par conteneur et en beans gérés à l'aide de beans en fonction de la manière dont ils gèrent la persistance. Les beans gérés par le conteneur sont automatiquement gérés par le conteneur EJB. Le conteneur sait comment les champs de l'instance du Bean sont mappés à la base de données et gère automatiquement l'insertion, la mise à jour et la suppression des données liées à l'entité dans la base de données ; gérer la persistance. Les beans doivent faire tout cela explicitement. Les développeurs de Bean doivent écrire du code pour faire fonctionner la base de données. Le conteneur EJB indique uniquement à l'instance du Bean quand elle peut insérer, mettre à jour et supprimer des données en toute sécurité dans la base de données. De plus, il ne fournit aucune autre aide. L'instance du bean effectue elle-même tout le travail de persistance.
Les beans session peuvent être divisés en beans sans état et en beans avec état selon qu'ils sont ou non avec état. Les Session Beans sans état ont tendance à être polyvalents et réutilisables ; les Session Beans avec état sont des extensions d'applications client qui effectuent des tâches pour le compte des clients et maintiennent le statut associé au client.
Développement d'un système de réservation d'entreprise Le système de réservation de cabine est un système de réservation d'entreprise basé sur la technologie de composants EJB développée sur la plate-forme J2EE. Son processus principal est qu'une fois connecté, l'utilisateur sera guidé à travers la page de sélection du client et la page de sélection de navigation dans. tour, et fournira au client Sélectionnez une cabine disponible (obtenez la liste des cabines disponibles à partir du TravelAgentBean. La méthode listAvailableCabin() de TravelAgentBean est appelée par le servlet qui génère cette page Web. La liste des cabines sera utilisée pour créer un Zone de liste HTML sur la page Web chargée dans le navigateur de l'utilisateur), lorsque l'utilisateur sélectionne une cabine et soumet la sélection, une requête HTTP sera envoyée au serveur EJB (Websphere Application Server). Une fois que le serveur a reçu la requête, il l'envoie. au ReservationServlet. Ce servlet appelle la méthode TravelAgent.BookPassage() Pour effectuer la réservation proprement dite, les informations de balise renvoyées par la méthode BookPassage() seront utilisées pour créer une autre page Web qui est renvoyée au navigateur de l'utilisateur. Si la réservation réussit, ProcessPaymentServlet appellera le mode de paiement dans ProcessPaymentBean pour mettre en œuvre le processus de facturation pour le client. Sa structure spécifique est représentée sur la figure 2.
Les composants EJB du système de réservation comprennent principalement les parties suivantes :
CabinBean : Entity Bean, la clé primaire est CabinPK, qui est un Bean d'entité utilisé pour encapsuler la cabine d'un navire dans le monde réel.
CustomerBean : Entity Bean, la clé primaire est CustomerPK, qui est un Bean d'entité utilisé pour encapsuler les consommateurs qui ont besoin de réserver des cabines de croisière dans le monde réel.
CruiseBean : Entity Bean, la clé primaire est CruisePK, qui est un Bean d'entité utilisé pour encapsuler les itinéraires des navires dans le monde réel. ReservationBean : Entity Bean, la clé primaire est CruiseID, CabinID. Elle représente un enregistrement inchangé dans la base de données, c'est-à-dire une réservation. Elle enregistre les événements historiques du système de réservation. Elle est principalement utilisée pour éviter les doubles réservations. deux clients réservent le même itinéraire. La raison de ce problème est qu'il existe un écart entre le moment où le client sélectionne la cabine et l'itinéraire et l'heure à laquelle la méthode bookPassage() est appelée. TravelAgentBean : bean session avec état, un bean session responsable du flux de travail de réservation de cabines de vol. Il encapsule le processus de réalisation d'une opération de réservation pour un itinéraire et est utilisé dans les applications clientes des agents de voyages du monde entier. TravelAgentBean répond non seulement aux besoins des consommateurs en matière de réservation de billets, mais fournit également des informations sur les cabines restantes pendant le voyage. Afin d'accomplir cette tâche, le Bean doit savoir de quel itinéraire, cabine et client est composée la réservation. Après avoir collecté ces informations, la méthode bookPassage() termine le processus de réservation. Elle est responsable de la facturation du client. Sur le bon itinéraire Réservez la cabine sélectionnée sur le bon navire et générez un billet pour le client via la classe Billet. Ici, nous devons utiliser la classe CreditCard pour stocker les informations pertinentes sur la carte de crédit du client. En même temps, la méthode ListAvailableCabins() est utilisée pour afficher les cabines disponibles qui n'ont pas été réservées.
ProcessPaymentBean : bean de session sans état, qui est le processus de facturation des consommateurs dans un système de transaction. Il définit trois méthodes de transaction pour les modes de paiement par chèque, espèces et carte de crédit, à savoir ByCheck(), ByCash() et ByCredit().
Exemple de code de programme du système de réservation d'entreprise. L'ensemble du système de réservation d'entreprise a été développé sous IBM VisualAge pour Java. Dans cet environnement de développement IDE, les beans d'entité sont beaucoup plus faciles à développer que les beans de session. Ce qui suit utilise TravelAgentBean comme exemple pour présenter le processus de développement. des composants EJB :
1. Interface à distance TravelAgent Il fournit une méthode pour définir l'itinéraire et l'ID de cabine que le client souhaite réserver. De plus, la méthode boolPassage() est configurée pour facturer au client sa réservation et générer un ticket pour le client. Le code spécifique est le suivant :
package com.titan.travelagent;
importer java.rmi.RemoteException ;
importer javax.ejb.FinderException ;
importer com.titan.cruise.Cruise ;
importer com.titan.customer.Customer ;
importer com.titan.processpayment.CreditCard ;
l'interface publique TravelAgent étend javax.ejb.EJBObject
{
public void setCruiseID(int cruise) lance RemoteException, FinderException ;
public int getCruiseID( ) lance RemoteException, IncompleteConversationalState ;
public void setCabinID(int cabin) lance RemoteException, FinderException ;
public int getCabinID() lance RemoteException, IncompleteConversationalState ;
public int getCustomerID() lance RemoteException, IncompleteConversationalState ;
public Ticket boolPassage (carte de crédit, double prix) lève RemoteException, IncompleteConversationalState ;
}
2. Interface d'accueil de TravelAgent
Le code de l’interface TravelAgent Home est le suivant :
puckage com.titan.tracelagent;
importer java.rmi.RemoteException ;
importer javax.ejb.CreateException ;
importer com.titan.customer.Customer ;
interface publique TravelAgentHome étend javax.ejb.EJBHome {
public TravelAgent create (Customer cust) lance RemoteException, CreateException;}
3. La classe TravelAgent Bean doit implémenter tous les comportements de l'interface distante et de l'interface d'accueil de TravelAgent. En raison de contraintes d'espace, cet article ne présentera pas son code d'implémentation. Les lecteurs intéressés peuvent le compléter eux-mêmes.
Grâce aux étapes ci-dessus, nous avons achevé le développement du composant EJB d'un système de réservation d'entreprise.