Académique Documents
Professionnel Documents
Culture Documents
Module Java
Vue densemble du langage Java Le langage Java : syntaxe et smantique Programmation multi-tche : les threads Accder aux bases de donnes Composants rutilisables : le modle MVC Dveloppement Client/Serveur Prsentation de lIDE VisualAge Les serveurs dapplications J2EE Les Enterprise JavaBeans R-ingnierie dapplications Java
Prsentation de J2EE
Java 2 Platform, Enterprise Edition est sorti officiellement Java One en 1998 en mme temps que les Enterprise JavaBeans. Il est n de besoins grandissant des entreprises pour dvelopper des applications complexes distribues et ouvertes sur l Internet.
Prsentation de J2EE
Java 2 Platform, Enterprise Edition inclut les API fondamentales Java suivantes:
Les
Enterprise JavaBeans (EJB) : composants mtiers Les JavaServer Pages (JSP) et les Servlets : composants Web Java DataBase Connectivity (JDBC) pour l accs aux bases de donnes relationnelles.
Prsentation de J2EE
Java
Transaction Service (JTS) permet d accder un service de transactions rpartis. L API Java Transaction (JTA) fournit une dmarcation des transactions dans une application. Java Message Service (JMS) : pour accder divers services de messageries.
Prsentation de J2EE
Java
Naming and Directory Interface (JNDI) fournit un accs aux services de dnomination, DNS, LDAP. Remote Method Invocation (RMI) sur Internet Inter-ORB Protocol (IIOP) permet une invocation de mthodes distance au-dessus du protocole IIOP de CORBA.
J2EE - Prsentation
Avec J2EE, Sun essaie de faire de Java un langage part entire, mais surtout une plate-forme viable de dveloppement dans le cadre de l entreprise J2EE nest pas un simple regroupement d APIs Elle dfinit galement un environnement de programmation bas sur une architecture dexcution
Un des objectifs : faciliter la vie des dveloppeurs en permettant lencapsulation de la complexit inhrente aux environnements distribus dans une architecture base sur les conteneurs
Le programmeur n'a plus se soucier que de la rdaction de la logique mtier de son application
La plate-forme J2EE
J2EE se contente de regrouper un certain nombre d'API, mais il prsente galement la caractristique remarquable de faire abstraction de l'infrastructure d'excution
=> Juste une spcification, ensuite implante par les diteurs logiciels qui mettent au point les serveurs d'applications
Informatique distribue "traditionnelle" = souvent problmes lis non pas la logique propre l'application mais la mise en uvre de services complexes (threading, transactions, scurit) J2EE introduit la notion de conteneur, et via les API J2EE, il labore un contrat entre le conteneur et les applications C'est le vendeur du conteneur qui se charge de mettre en uvre les services pour les dveloppeurs d'applications J2EE, dans le respect des standards
Technologies J2EE
Technologies composants
Contient la partie la plus importante de l'application : la logique mtier 3 types de composants : les JSP, les Servlets et les EJB fournissent aux composants de l'application des services connexes leur permettant de fonctionner en toute efficacit Quasiment transparentes pour le programmeur d'applications, elles prvoient les mcanismes de communication entre les diffrentes parties de l'application, qu'elles soient locales ou distantes
Technologies de services
Technologies de communication
Technologies J2EE
Technologies composants
Quelle que soit l'application, le but essentiel est de modliser la logique mtier ncessaire en utilisant les composant, units rutilisables au niveau applicatif
Donc, mme si le conteneur est en mesure de fournir l'environnement d'excution, la couche de communication ainsi que de nombreux services, la cration des composants applicatifs incombe au dveloppeur
Toutefois, ces composants dpendront de leurs conteneurs pour de nombreux services, tels que la gestion du cycle de vie, le threading, la scurit...
=> Ceci permet de se consacrer uniquement aux mthodes mtier sans s'appesantir sur la smantique de bas niveau du conteneur
Avantages de J2EE
les diteurs de Systmes d Entreprise implmenter des produits compatibles bnficier des avantages de la technologie composant se concentrer sur le business au lieu de rsoudre les problmes d intgration.
Architecture deux-tiers
Prsentation GUI
Rseau
Intgrit des bases de donnes facilement compromise. Administration difficile lorsque la logique mtier doit tre modifie. Transgression de la scurit en altrant un processus business. Application lie un seul type de prsentation
Rseau
Serveur intermdiaire
Logique de business
Rseau
Amliore les monte en charge et le nombre de connections. Meilleure performance, scurit et gestion de l application.
Difficult d intgration entre les systmes 3-tiers. L architecture classique 3-tiers nest pas prvue pour le Web
Tiers Interface
JDBC
Poste Client Conteneur Application-Client Logique de prsentation, Composants Prsentation RMI IIOP
Serveur Mtier
Serveur Web
Conteneur Internet Web Application Web/JSP
Applet/ HTML
Architecture J2EE
Un conteneur J2EE est un environnement d'excution charg de grer des composants applicatifs et de donner accs aux API J2EE Conteneur Web
Servlets Java Servlets Java Servlets Java Clients Applicatifs RMI/IIOP JNDI JTA Pages JSP Pages JSP Pages JSP RMI/IIOP JavaMail JDBC JMS JAF
Conteneur EJB
Entreprise Entreprise Entreprise Java Beans Java Beans Java Beans
JavaMail
JDBC
JNDI
JMS
JAF
JTA
Le container Application-Client
Il fournit l environnement d excution des clients J2EE, comportant des interfaces bases sur JFC/Swing. Il s agit essentiellement de Java 2 Standard Edition (J2SE).
Le container Applet
Il permet l excution des Applets Java. Cet environnement est gnralement intgr au sein du navigateur Web.
Le container Web
Il fournit un environnement pour le dveloppement, le dploiement et la gestion de l excution des Servlets et des JSP. Les Servlets et les JSP sont regroups dans des units de dploiement baptiss applications Web (webapp). Ils implmentent la logique de prsentation d une application.
JavaMail
JDBC
JNDI
JMS
JAF
JTA
Le container EJB
Environnement pour le dveloppement, le dploiement et la gestion de l excution des beans enterprise. Un bean enterprise est un composant qui implmente un processus et une entit mtier de l Entreprise.
Cette gestion implique la cration de nouvelles instances de composants applicatifs ainsi que le pooling et la destruction de ces composants lorsque les instances ne sont plus ncessaires
Pooling
de ressources
Les conteneurs peuvent l'occasion mettre en uvre le rassemblement des ressources, sous la forme, par exemple, de pooling d'objets ou de pooling de connections
Peuplement
de l'espace de noms JNDI avec les objets ncessaires l'utilisation des API de services des conteneurs Clustering sur plusieurs machines
Scurit
Deruelle Laurent Copyright 2002 Laurent Deruelle
Code Client
Client Stub rseau
Service Nommage
Daemon Activation
Server Skeleton
Une JVM par ActivationGroup. Automatiquement lance par le daemon dActivation et peut contenir des serveurs semi-indpendants qui partagent des ressources (comme un pool de connexions) et qui ont les mmes restrictions de scurit
Tous les containers comportent un ORB (Object Request Broker) compatible CORBA. Le protocole d change entre les containers EJB de nombreux diteurs repose sur CORBA, incluant RMIIIOP et le service de transaction OTS. Certains serveurs dapplications peuvent ainsi autoriser :
laccs
des objets C++ (COM+/DCOM ou standard) fonctionnant sur des machines htrognes. La connexion de diffrents serveurs dapplications bus CORBA htrognes et distribus
excut dans un serveur dapplications, tre intgr dans un AGL en phase de dveloppement, grce aux mthodes auto descriptives (introspection).
Regroupement
interfaces :
Le
composant donne un descriptif de ses services, La description des services est indpendante de limplmentation.
La structure du composant doit permettre un rel assemblage avec dautres composant, sans se soucier des implmentations. Le modle de composants apporte un ensemble dobjets et de mthodes afin de mieux grer les aspects transactionnels et de scurit.
modle COM (Component Object Model, 1996) de Microsoft, se veut indpendant du langage (VB, C++, C#, Visual J++, etc.) Le modle EJB (Enterprise JavaBean, 1998), spcification multi diteur (Sun et IBM lorigine), se veut multi plateforme et uniquement en langage Java.
Le modle COM
Le modle COM dfinit un standard pour la communication des objets : assemblage de composants multi diteurs et multi langages. Il dsigne les services de base du broker dobjet. La technologie ActiveX a t dveloppe par dessus COM, pour dsigner :
les
composants destins Internet, des contrles graphiques (OCX), et permettre le pilotage dapplication.
Deruelle Laurent Copyright 2002 Laurent Deruelle
Le modle COM+
Le modle COM+ est une volution de COM partir de Windows 2000. Il intgre de nouvelles fonctionnalits :
La
gestion dvnement en mode publish et subscribe, des communications asynchrones et sres entre composants (MSMQ : Message Queuing 3.0), Les transactions distribues (MTS).
Du point de vue architecture de dploiement, les composants mtiers peuvent tre sollicits par :
des
le
clients lgers, tels que des pages HTML via les ASP.
Le modle EJB
Le modle Enterprise JavaBeans est bas sur le concept Write Once, Run Everywhere pour les serveurs. Le modle EJB repose sur larchitecture en couches suivante :
LEJB
Server contient lEJB Container et lui fournit les services de bas niveau. LEJB Container est lenvironnement dexcution des composants Enterprise JavaBeans (interface entre le bean et lextrieur). Les clients ne se connectent pas directement au bean, mais une reprsentation fournie par le conteneur. Celui-ci
LEJB Container est responsable de la fourniture de services aux beans, quelque soit leurs implmentations :
Le support du mode transactionnel : spcifi lors de la dclaration du bean sans ajout de codes. La granularit pouvant descendre au niveau de la mthode. La gestion des multiples instances : les EJB sont dvelopps de faon mono-client et excute en mode multi-clients:
gestion de pool dinstances, gestion de cache, optimisation des accs ressources et donnes, etc.
La persistance (obligatoire dans la spcification EJB 2.0). La scurit par les ACL (Access Control List) au niveau du bean ou pour chaque mthode. Gestion de versions et administration des EJBs.
Un Bean Enterprise (EJB ou beans) est un composant charg des oprations mtiers de l application. L architecture est dcoupe en quatre tches:
le dveloppement du bean enterprise, l assemblage de lEJB (JAR), le dploiement de lEJB dans un environnement d excution, l administration et la configuration de lEJB,
Un bean encapsule une partie de la logique mtier de lapplication et des rgles business. Ils rendent des services fonctionnels. Il communique gnralement avec des gestionnaires de ressources (SGBD). Les clients des beans sont :
d
autres beans, des appplications Web, des servlets, des java beans, des applications classiques.
Deruelle Laurent Copyright 2002 Laurent Deruelle
entit business reprsente les informations conserves par l Entreprise un processus business dfinit les interactions dun utilisateur avec des entits business.
Les rgles business peuvent tre extraites et places dans un moteur de rgles (systme expert, etc.), puis manipules via un EJB : nouvelles tendances.
L entit business
Elle possde un tat, conserv en permanence (SGBD), modifi gnralement par les processus business. Exemple:
Une
entit Commande encapsulera les donnes des commandes dun client avec ses rgles business (i.e. formatage du N de commande, vrification du compte du client, etc.)
Le processus business
Il modifie l tat des entits business, et possde son propre tat, souvent provisoire. Un processus business est ddi un acteur (utilisateur ou programme) qui engage une conversation avec le systme :
processus business conversationnel
Exemple :
une personne retirant de l argent un distributeur
Les entits et processus business sont implments au choix par trois types de beans :
les
beans entit : crs pour vivre longtemps et tre partags par plusieurs clients, les beans session : crs en rponse aux requtes dun seul client. les beans orients messages
Les EJBs orients messages sont une classe part des EJBs et sont dfinis en relation avec lAPI Java Message Service
Un EJB session, Un EJB Entit Un EJB message Ecrire linterface Home et linterface Remote Implmenter les services du bean dans une classe Crer une description du dploiement (souvent en XML) Nommer lEJB (souvent un JNDI name) Assembler lEJB dans un fichier jar (+ librairies, + classes utilitaires) Utiliser loutil de dploiement du serveur dapplications
Dvelopper le bean
lenvoi et la rception de messages (JMS), Effectuer des mises jours de bases de donnes et Raliser dautres oprations de gestion de ressources (EAI).
Ces ressources peuvent tre accdes partir de multiples composants dapplication lintrieur dune mme transaction. Par exemple:
une servlet peut dmarrer une transaction pour accder de multiples bases de donnes, invoquer un enterprise bean qui envoi un message JMS, invoquer un autre enterprise bean pour modifier un ERP en utilisant l
Container-managed transactions. Le conteneur EJB contrle lintgrit de vos transactions sans que vous deviez effectuer un commit ou un rollback.
Les CMT sont recommandes pour les applications J2EE qui utilisent JMS. Vous pouvez spcifier des attributs de transaction pour les mthodes des beans. Utiliser lattribut Required pour sassurer quune mthode fait partie dune transaction.
Lorsquune transaction est en cours et quune mthode est appele, celle-ci sera incluse dans la transaction; si aucune transaction nest en cours, alors une nouvelle transaction sera dmarre avant lappel de la mthode et sera valide (commit) lorsque la mthode sera termine.
Bean-managed transactions. Elles permettent au bean de contrler finement les transactions via linterface javax.transaction.UserTransaction, permettant dutiliser ses propres mthodes de commit et de rollback afin de dlimiter les frontires des transactions.
modules EJB
modules Java
application.xml
Module EJB Module Web Module Java
Dploiement d'applications
Le dploiement consiste installer et personnaliser des modules empaquets sur une plate-forme J2EE
Deux tapes :
Prparation de l'appli (recopie des fichiers JAR, WAR, EAR..., gnration des classes au moyen du conteneur, puis installation de l'appli sur le serveur Configuration de l'application en utilisant les informations spcifiques au serveur d'applications
Tlcharger le Java 2 Standard Edition partir du site de Sun, pour bnficier de Java 1.4 Tlcharger le Java 2 Enterprise Edition partir du site de Sun, pour installer le serveur J2EE. Configurer correctement les paramtres du serveur J2EE Sun Lancer loutil j2ee.bat verbose pour dmarrer le serveur Dvelopper une application J2EE avec un IDE Lancer loutil deploytool.bat et effectuer lassemblage de lapplication Tester lapplication :
partir dune application cliente (mode intranet) partir dun navigateur web (mode Internet / Extranet)