Vous êtes sur la page 1sur 52

J2EE

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

Deruelle Laurent Copyright 2002 Laurent Deruelle

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

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

Deruelle Laurent Copyright 2002 Laurent Deruelle

La plate-forme J2EE

Environnement d'excution de 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

Deruelle Laurent Copyright 2002 Laurent Deruelle

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

Deruelle Laurent Copyright 2002 Laurent Deruelle

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

Deruelle Laurent Copyright 2002 Laurent Deruelle

Avantages de J2EE

Standard de plate-forme Java


pour

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

Architecture deux-tiers

Applications centres sur des gros systmes. 2-tiers = client/serveur


Tiers Client Tiers Serveur de donnes

Prsentation GUI

PC Client Logique de prsentation,


Logique de business

Rseau

Interactions et traitements de lentreprise


Deruelle Laurent Copyright 2002 Laurent Deruelle

Serveur de bases de donnes

Limites de l architecture deux-tiers

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

Deruelle Laurent Copyright 2002 Laurent Deruelle

Architecture trois niveaux

Sparation de la logique de prsentation et de la logique mtier.


Tiers Interface Tiers Mtier Tiers Donnes

Ordinateur Client Logique de Logique de prsentation, Prsentation


Deruelle Laurent Copyright 2002 Laurent Deruelle

Rseau

Serveur intermdiaire
Logique de business

Rseau

Serveur de bases de donnes

Avantages de l architecture trois niveaux

Amliore les monte en charge et le nombre de connections. Meilleure performance, scurit et gestion de l application.

Deruelle Laurent Copyright 2002 Laurent Deruelle

Limites de l architecture trois niveaux

Plus complexe de dvelopper ce type d application:


gestion

de la rpartition, multithreading, gestion de la scurit.


Difficult d intgration entre les systmes 3-tiers. L architecture classique 3-tiers nest pas prvue pour le Web

Deruelle Laurent Copyright 2002 Laurent Deruelle

Architecture quatre niveaux

Introduction et dveloppement d applications orientes Web: J2EE


Tiers Services Web Tiers Mtier Tiers Donnes

Tiers Interface

Ordinateur Client Affichage

Internet Serveur Web Application Web

Serveur Mtier Logique de business

Serveur de bases de donnes

Deruelle Laurent Copyright 2002 Laurent Deruelle

Modle J2EE pour les architectures deux niveaux


Tiers Client Poste Client Conteneur Application-Client Composants Prsentation Composants Mtiers Tiers Serveur de donnes

JDBC

Serveur de bases de donnes

Dveloppement classique J2SE

Deruelle Laurent Copyright 2002 Laurent Deruelle

Modle J2EE pour les architectures trois niveaux


Tiers Interface Tiers Mtier Tiers Donnes

Poste Client Conteneur Application-Client Logique de prsentation, Composants Prsentation RMI IIOP

Serveur Mtier

Conteneur EJB JDBC


Bean Enterprise

Serveur de bases de donnes

Deruelle Laurent Copyright 2002 Laurent Deruelle

Modle J2EE pour les architectures trois niveaux


Tiers Interface
Tiers Services Web Tiers Mtier Tiers Donnes

Navigateur Conteneur Applet

Serveur Web
Conteneur Internet Web Application Web/JSP

Serveur Mtier Conteneur EJB


Bean Enterprise

Applet/ HTML

Serveur de bases de donnes

Deruelle Laurent Copyright 2002 Laurent Deruelle

Architecture J2EE

La plate-forme J2EE est constitue de quatre environnements de programmation baptiss containers :


le

container EJB le container Web le container Application-Client le container Applet

Deruelle Laurent Copyright 2002 Laurent Deruelle

Architecture J2EE - Conteneurs

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

Serveur d'applications J2EE


BDDs et autres ressources
Deruelle Laurent Copyright 2002 Laurent Deruelle

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).

Deruelle Laurent Copyright 2002 Laurent Deruelle

Le container Applet

Il permet l excution des Applets Java. Cet environnement est gnralement intgr au sein du navigateur Web.

Deruelle Laurent Copyright 2002 Laurent Deruelle

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

Architecture J2EE Conteneurs Web

API de services de conteneurs Conteneur Web


Servlets Java Servlets Java Servlets Java Pages JSP Pages JSP Pages JSP RMI/IIOP

JavaMail

JDBC

JNDI

JMS

JAF

JTA

Interface des services Implmentation des services

Deruelle Laurent Copyright 2002 Laurent Deruelle

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

Architecture J2EE - Conteneurs

Quelques services du conteneur


Gestion

de la dure de vie des composants applicatifs

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

Rpartition de charge ou "Load Balancing"

Scurit
Deruelle Laurent Copyright 2002 Laurent Deruelle

Les conteneurs via Java RMI


Structure de rpertoire qui permet dobtenir des notions de transparence de la localisation des objets -- le code client utilise un nom pour trouver le serveur Implmente les Factories en utilisant des descriptions des objets activables

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

Objet JVM Server associe au Groupe dActivation

Deruelle Laurent Copyright 2002 Laurent Deruelle

Les containers via CORBA

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

Deruelle Laurent Copyright 2002 Laurent Deruelle

des objets C++ (COM+/DCOM ou standard) fonctionnant sur des machines htrognes. La connexion de diffrents serveurs dapplications bus CORBA htrognes et distribus

Les modles de composants

Un composant est un objet qui adhre un modle :


Support
tre

dun ensemble de mthodes normes pour :

excut dans un serveur dapplications, tre intgr dans un AGL en phase de dveloppement, grce aux mthodes auto descriptives (introspection).
Regroupement

des mthodes normes dans des

interfaces :
Le

composant donne un descriptif de ses services, La description des services est indpendante de limplmentation.

Deruelle Laurent Copyright 2002 Laurent Deruelle

Les modles de composants

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

Les modles de composants

Deux modles (architectures) de composants se partagent le march :


Le

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

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).

Deruelle Laurent Copyright 2002 Laurent Deruelle

Architecture de composants COM/COM+

Du point de vue architecture de dploiement, les composants mtiers peuvent tre sollicits par :
des
le

clients lourds via :

protocole DCOM, Le protocole HTTP, au moyen dIIS.


Des

clients lgers, tels que des pages HTML via les ASP.

Deruelle Laurent Copyright 2002 Laurent Deruelle

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

Deruelle Laurent Copyright 2002 Laurent Deruelle

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

Les services du container EJB

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

Les beans enterprise du container EJB

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,

Deruelle Laurent Copyright 2002 Laurent Deruelle

Les interactions entre composants

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

Les rgles business

Les applications base dEJBs organisent les rgles business en composants :


une

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

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.)

Deruelle Laurent Copyright 2002 Laurent Deruelle

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

Deruelle Laurent Copyright 2002 Laurent Deruelle

Les types de beans Enterprise

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

Deruelle Laurent Copyright 2002 Laurent Deruelle

Cycle de vie dun EJB

Dfinir le type de lEJB :

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

Dployer le bean sur un serveur dapplications


Attendre que lEJB soit sollicit par une requte.

Deruelle Laurent Copyright 2002 Laurent Deruelle

Les beans et les transactions

Dans une application J2EE, on utilise des transactions pour :


combiner

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

Deruelle Laurent Copyright 2002 Laurent Deruelle

Les beans et les transactions

Les transactions distribues peuvent tre de deux types :

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.

Deruelle Laurent Copyright 2002 Laurent Deruelle

Dvelopper des applications J2EE

Constitution de composants applicatifs en modules

Un module sert a empaqueter un ou plusieurs composants du mme type


Lapplication J2EE est une archive EAR contenant le descripteur de dploiement (application.xml), les modules Web et EJB modules Web

Servlets, JSP, TagLibs, JARs, HTML, XML, Images...


Empaquet dans un fichier d'archive web, WAR Un WAR s'apparente a un JAR avec en plus un rpertoire WEB-INF contenant le descripteur de dploiement web.xml pour les EJB et leurs descripteurs de dploiement (ejb-jar.xml) contenus dans une archive JAR pour les clients Java, galement une archive JAR avec le descripteur de dploiement application-client.xml

modules EJB

modules Java

Deruelle Laurent Copyright 2002 Laurent Deruelle

Dvelopper des applications J2EE

Constitution de modules en application

Niveau le plus accompli : celui des applications


Appli J2EE = ensemble de modules places dans un fichier EAR (Entreprise Archive)

Appli J2EE (fichier EAR)

application.xml
Module EJB Module Web Module Java

Module EJB (fichier JAR) ejb-jar.xml EJB EJB

Module Web (fichier WAR)

Module Java (fichier JAR)

web.xml Servlet JSP

application-client.xml Java Java

Deruelle Laurent Copyright 2002 Laurent Deruelle

Dvelopper des applications J2EE

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

Cration de sources de donnes, fabriques de connexion...

Deruelle Laurent Copyright 2002 Laurent Deruelle

Le serveur J2EE Sun


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)

Deruelle Laurent Copyright 2002 Laurent Deruelle

Configuration du serveur J2EE Sun MicroSystem

Deruelle Laurent Copyright 2002 Laurent Deruelle

Vous aimerez peut-être aussi