EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane...

62
EJB & Serveurs d’applications

Transcript of EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane...

Page 1: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

EJB & Serveurs d’applications

Page 2: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Julien Maillard

Chef d’équipe chez Capgemini sur les projets Oxylane

Participation sur les projets fret SNCF et Agence en ligne d’EDF

Page 3: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

• EJB Présentation EJB Session EJB Message Création d’un projet EJB

Implémentation d’un EJB Session Implémentation d’un EJB Message

Sommaire

Page 4: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

• Serveur d’application Présentation Administration serveur Instance Managée Domaine Weblogic Clustering & Load Balancing Machine Structure d’un domaine Weblogic Configuration d’un serveur Weblogic

Sommaire

Page 5: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

1ère PartieLES EJB

Page 6: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Présentation

Les Ejbs permettent de créer des composants déployés sur des serveurs applicatifs ( distants ou non)

Il sont hébergés par des serveurs d’applications

2 principaux types d’EJB : EJB Message : permet d'accomplir des tâches de manière

asynchrone EJB Session : permet de proposer des services avec ou

sans conservation d'état entre les appels

EJB

Page 7: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Présentation

Première spécification des EJB en 1992 Version Actuelle : EJB 3.1 (depuis 2009) Depuis la version 3.0 :

Basés sur la JDK 1.5 Ajout des annotations

Le développement d’EJB s’en trouvent grandement simplifiés

EJB

Page 8: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Quand utiliser les EJB ? Lorsque l'application doit être évolutive.

Les transactions doivent assurer l'intégrité des données. (accés concurrent …)

L'application aura une variété de clients.

Ils permettent d’externaliser la logique métier des application pour ne se soucier que de la couche présentation

EJB

Page 9: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Fonctionnement le serveur d’application aiguille l’ensemble

des requêtes et gère l’ensemble des conteneurs et services

le serveur d’application gère un service d’annuaire JNDI et un service de transaction

Il fournit l’ensemble des services nécessaires au fonctionnement des EJB

EJB

Page 10: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Fonctionnement

Le client localise l’EJB qu’il souhaite récupérer via l’API JNDI et le nom JNDI de cet EJB. Les composants déployés sont enregistrés dans l’annuaire du serveur.

Les appels de méthodes distantes se font par RMI (Remote Method Invocation) alors que les appels de méthodes locales se font directement dans la JVM du serveur

EJB

Page 11: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Exemple d’une architecture basique d’EJB

EJB

Page 12: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

EJB

Pour résumer De façon imagée, on peut considérer le serveur

d’application comme un orchestre. Le rôle de ce serveur est celui du chef d’orchestre. C’est lui qui dirige l’ensemble des services et leur cycle de vie (démarrage, arrêt, pause…). Chaque partie de l’orchestre correspond à un service (EJB, Transaction, Base de données…). Ils sont tous indépendants, mais ils travaillent ensemble pour produire un résultat commun.

Page 13: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

EJB Session

• Un Session Bean est une application côté serveur permettant de fournir un ou plusieurs services à différentes applications clientes. Les Session Beans constituent donc les briques de la logique métier d’une application.

• Les Session Beans font office de « pont » entre les clients et les données

• Les Session Bean sont divisés en deux types : « Stateless » et « Stateful ».

EJB

Page 14: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

EJB Session

Le client récupère une référence (implémentant l’interface métier) de l’EJB qu’il souhaite utiliser. Celui-ci peut alors appeler les méthodes de l’objet récupéré sans se soucier des contraintes de communication. En effet, l’appel d’une méthode est automatiquement transmis à l’instance de l’EJB dans le conteneur (généralement par un système de proxy). Cette instance traite la méthode et retourne le résultat au client. La création du proxy est à la charge du conteneur et reste totalement transparente pour le client.

EJB

Page 15: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

EJB Message Utilisé lorsqu’une information doit être échangée

entre deux applications (mode Queue) plusieurs applications (mode Topic)

Traitement asynchrone 3 acteurs :

Client Serveur Intermédiaire stockant les messages

EJB

Page 16: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

EJB Message (mode Queue)

EJB

Page 17: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

EJB Message (mode Topic)

EJB

Page 18: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

EJB Message  multithreading grâce au serveur

d’application 

Gestion de la file JMS transparente

 Gestion du cycle de vie (il démarre et disparaît en même temps que le conteneur)

EJB

Page 19: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Création d’un Projet EJB

EJB

Page 20: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Création d’un EJB Session 3 étapes :

Création de l’interface Implémentation de l’interface Ajout des annotations

EJB

Page 21: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Définition de l’interface d’un EJB Session

Création d’un EJB Session

Page 22: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Implémentation de l’interface d’un EJB Session

Création d’un EJB Session

Page 23: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Implémentation de l’interface d’un EJB Session

Création d’un EJB Session

Page 24: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Exemple d’appel d’EJB Session

Création d’un EJB Session

Page 25: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Ajout des annotations @Remote l’ejb sera accessible depuis

l’extérieur via le protocole RMI @Local L’ejb sera accessible depuis la JVM sur

laquelle il sera deployé @StateLess Ejb « Sans état  » , 1 instance

utilisée pour l’ensemble des clients @StateFull Ejb « avec état  » , 1 instance pour

chaque client, l’instance sera donc spécifique à son client

Création d’un EJB Session

Page 26: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Ajout des annotations

Stateful

Stateless

Création d’un EJB Session

Page 27: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Création d’un EJB Session

Ajout des annotations

Remote

Local

Page 28: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Implémentation de l’interface Message Listener

Création d’un EJB Message

Page 29: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Ajout des annotations

Création d’un EJB Message

Page 30: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Appel d’un EJB message

Création d’un EJB Message

Page 31: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Questions ?

EJB

Page 32: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

2ème PartieServeurs

d’application

Page 33: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Qu’est ce qu’un serveur d’application ?

Un serveur d'application a pour objectif de facilité la création d'application serveur sans se

soucier de l'aspect réseau (toute la couche réseau est laissée au serveur d'application).

Page 34: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Plus d’une trentaine de serveur d’application Oracle 9i Application Server de Oracle WebLogic Server de BEA Systems WebSphere Application Server de IBM JBoss Glassfish JoNas Apache Geronimo

Serveurs d’application

Page 35: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Historique :

Créé en 1995 Racheté par Oracle en 2008 Actuellement en version 11g Support des EJB 3 et de Java 1.5 depuis la

version 10

Page 36: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Serveur Weblogic

Qu’est ce qu’un domaine Weblogic ? Un ensemble d’instances Weblogic gérées par

une seule console d’administration et un seul fichier de config.

Un domaine est composé de serveurs ou de clusters de serveurs

Serveurs d’application

Page 37: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Serveur Weblogic

C’est une instance configurée permettant d’héberger des applications (EAR,JAR,WAR…) et des ressources (JMS, JDBC….)

2 types de serveurs : Serveurs Managés Serveurs d’administrations

Serveurs d’application

Page 38: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Administration serveur

Permet de centraliser la gestion de la configuration pour le domaine

Il héberge la console d’administration Permet de démarrer ou d’arreter les serveurs Permet la gestion des serveurs et des services pour le

domaine Permet de déployer les application pour le domaine il n’y a un unique Administration serveur par domaine

Serveurs d’application

Page 39: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Serveur managéC’est une instance weblogic qui héberge les applications et les ressources nécessaires pour ces dernières

Chaque serveur managé est indépendant (sauf dans le cas d’un cluster)Un serveur managé est généralement utilisé pour isoler des applications

Serveurs d’application

Page 40: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Serveur managé Le serveur d’administration gère le fichier de configuration

du domaine Chaque serveur managé conserve une copie local du fichier

de configuration du serveur d’application Quand un serveur managé démarre, il se connecte au

serveur d’administration afin de synchroniser le fichier de conf.

Lors de changements du fichier de conf, le serveur d’administration envoie les changements au serveur managés

Serveurs d’application

Page 41: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Exemple de Domaine Weblogic

Serveurs d’application

Applications

EJBJDBC

Applications

EJBJDBC

Applications

EJBJDBC

Config.xml

Admin

Serveur d’administration

Instance managée 1

Instance managée 2

Instance managée 3

Page 42: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Cluster Un cluster est un groupe de serveurs managés qui

s’executent en parallèle afin d’apporter performance et fiabilité

Un cluster apparait comme une seule instance Tous les serveurs d’un cluster doivent appartenir à un

même domaine Les serveurs d’un même cluster peuvent se situer sur

une machine physique différente Il peut y avoir plusieurs cluster dans un même domaine

Serveurs d’application

Page 43: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Load balancing d’un cluster

FrontOffice (JSP,servlet) Le Load balancing est externe Utilisation d’un proxy http ou d’un serveur web

BackOffice (EJB) Le Load Balancing est effectué à la connection Les EJB sont compatible avec le cluster Ils sont disponibles sur tous les membres d’un cluster

Serveurs d’application

Page 44: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Gestion du Failover

FrontOffice (JSP,servlet) Les sessions HTTP sont répliqués sur d’autres

serveur du cluster

BackOffice (EJB) Pour les EJB StateFul, les états sont répliqués d’un

serveur à l’autre

Serveurs d’application

Page 45: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Node Manager Process s’executant sur une machine

physique et qui permet le contrôle à distance des serveurs

Doit s’executer sur chaque serveur physique hebergeant une instance

Non associé au domaine

Serveurs d’application

Page 46: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Machine

Permet de définir une machine physique qui héberge un serveur managé

Utilisé par le node manager et par les cluster pour la gestion des machine distante

Serveurs d’application

Page 47: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Exemple d’arborescence Weblogic

Serveurs d’application

Proxy HTTP

HTTP/JSP

JMSEJB

Page 48: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Exemple d’arborescence Weblogic

Serveurs d’application

HTTP/JSP

JMSEJB

Proxy HTTP

HTTP/JSP

JMSEJB

HTTP/JSP

JMSEJB

Page 49: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Exemple d’arborescence Weblogic

Serveurs d’application

HTTP/JSP

Proxy HTTP HTTP/JSP

HTTP/JSP

JMS

EJB

JMS

EJB

JMS

EJB

Page 50: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Configuration du serveur

Permet de gérer les ressources d’un domaine

JDBC JMS …..

Serveurs d’application

Page 51: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Arborescence d’un domaine weblogic

Serveurs d’application

Nom du domaine

Scripts de démarrage

Répertoire racine des fichiers de configuration

Instances des serveurs managés

Page 52: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Gestion fichier de conf Locker le fichier Effectuer les changements Activer les changement (validation des

changements effectués par la console d’administration) Les changements sont transmis aux serveurs mangés

du domaine, 2 étapes : preparation et commit Si une erreur intervient les changements seront

rollbacker

Serveurs d’application

Page 53: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Comment créer un domaine

Via l’utilitaire Weblogic : wlserver_10.0\common\bin\config.bat ( .sh

pour unix) Via un script WLST

Permet des déploiements automatisés d’instances weblogic

Serveurs d’application

Page 54: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Comment créer un domaine Effectuer le paramétrage global du domaine (JDK,

Developpement ou Production Mode)

Configurer le serveur d’administration (mot de passe, port d’écoute … )

Ajouter les instances managés ( indiquer leur localisation, leur nom et le port d’écoute)

Serveurs d’application

Page 55: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Comment créer un domaine

Créer les clusters (si besoin est)

Rattacher les instances managées à une machine (si besoin est)

Configurer les ressources necessaires aux applications ( JDBC, JMS ….. )

Serveurs d’application

Page 56: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Comment configurer un domaine Weblogic existant

Via l’utilitaire Weblogic : wlserver_10.0\common\bin\config.bat ( .sh pour

unix) Via l’interface d’administration Weblogic

http://<hote de la machine hebergeant l’admin>:< port de la machine hebergeant l’admin>/console/

Serveurs d’application

Page 57: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Configurer un pool JDBC

Choix d’un JNDI Choix d’une type de base et d’un

driver associé Information de connexion

Serveurs d’application

Page 58: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Configurer un pool JMS

Via l’interface d’admin , créer un JMS System Module

Permet de stocker d’autres ressources JMS

Deployé sur une instance managée

Serveurs d’application

Page 59: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Configurer un pool JMS

Dans le JMS Module Server, créer une Connection Factory en indiquant le JNDI

Objet de base Permet d ’établir une Connection puis

une Session

Serveurs d’application

Page 60: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Configurer un pool JMS

Dans le JMS Module Server, créer une Queue (ou Topic) en indiquant le JNDI

Permet de définir la file qui sera utilisée dans le serveur Weblogic

Serveurs d’application

Page 61: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Comment déployer une application

Via un deployplan Via la console Choix de l’instance cible pour chacun

des modules à déployer

Serveurs d’application

Page 62: EJB & Serveurs dapplications. Julien Maillard Chef déquipe chez Capgemini sur les projets Oxylane Participation sur les projets fret SNCF et Agence en.

Questions ?

Serveur d’application