13
Stéphane Frénot -MID - V.0.2.0 Part II - Middleware 1 Les Middlewares : De l'approche implicite à l'architecture J2EE Stéphane Frénot -MID - V.0.2.0 Part II - Middleware 2 Répartition d'une application Données Système d'exploitation Application de traitement Données Système d'exploitation Application de Présentation Données Système d'exploitation Application de Données Middleware Implicite Middleware Explicite rmi Middleware Système SGFdistribué

Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 1

Les Middlewares :De l'approche implicite à l'architecture

J2EE

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 2

Répartition d'une application

Données

Systèmed'exploitation

Application detraitement

Données

Systèmed'exploitation

Application dePrésentation

Données

Systèmed'exploitation

Application deDonnées

Middleware Implicite

Middleware Explicite•rmi

Middleware Système•SGFdistribué

Page 2: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 3

Du C/S au middleware Explicite

• CS : – Le client et le serveur sont développés en collaboration

• Objet distant : – Client et serveur sont liés par une interface

– La couche réseau est masqué au client et au serveur

• ==> Notion de code applicatif/code non applicatif

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 4

Code applicatif/code non applicatif

• Le code applicatif est le code propre à l'application développée (aussi appelé code métier ou BusinessCode)– Ex : Banque ==> compte, retrait, dépôt

• Le code non-applicatif est le code non spécifique à l'application développée– Ex :

• Accès réseau, Accès à la base de données, Debug, Log…

==> Pourquoi ne pas automatiser systématiquement le code non-applicatif

Page 3: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 5

Principes

• Le code non-applicatif :

– Ne doit pas apparaître dans le code applicatif

– Il est accessible par la notion de services

• Service de persistance (Base de données)

• Service de présentation (html/http)

• Service de log, Service d'authentification

• Service de cycle de vie

– Un service c'est

• une interface = ensemble de méthodes

• une ou plusieurs implantations

– La programmation objet permet de masquer entièrement le comportement d'un objet

– L'association code applicatif/non-applicatif se fait de manière déclarative

• résolue au run-time ==> souple, adaptable

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 6

Exemple : Logger

publ i c c l ass t es t {

publ i c voi d uneMet hode( ) {

Syst em. out . pr i nt l n( " ent r ée dans l a mét hode" ) ;

i ++;

Syst em. out . pr i nt l n( " sor t i e de l a mét hode" ) ;

}

}

==> Quels sont les inconvénients de ce code ?==> Quels sont les avantages de passer par un service ?

Page 4: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 7

Les Conteneurs

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 8

Architectures à Objet Distribués

Application 1

Application 2

MiddleWare

Services Métiers

Services d'infrastructure

Page 5: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 9

Serveur de composants de base

Application 1

Application 2

Services Métiers

Services standard d'infrastructure

jdbc

jts

version

cycle vie

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 10

Serveur de composants intégré

Application 1

Application 2

container

jdbc jts version cycle vie

Composants Métiers

infrastructure

Logique métier

Service d'infrastructure de base

Gestion automatisée

Page 6: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 11

Services du container d'objets métiers

• Services internes– Gestion de la charge du serveur

• (cycle de vie, accès client, passivation...)

– Service de nommage

– Gestion des accès aux objets métiers

• Services externes– Gestion du mapping sur BD relationnelle

– Gestion des transactions

– Gestion des échanges de messages

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 12

Serveur Web dynamique

Application 1

Application 2

Serveur Web

Page 7: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 13

Serveur Web dynamique

Application 1

Application 2

Serveur Web

CGI

CGI

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 14

Serveur Web dynamique

Application 1

Application 2

Serveur Web

Php

LiveWire

Page 8: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 15

Serveur Web dynamique (Servlets / JSP)

Application 1

Application 2

Serveur Web

Servlets

Servlets

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 16

Services du container de pages Web

• Servlet / JSP

• Services internes– Gestion de la charge du serveur

• cycle de vie

– Gestion des autorisations d'accès

• Services externes– API Java

Page 9: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 17

Un conteneur c'est :

• Une boîte qui automatise – La communication avec des services non-fonctionnels

– La gestion des applications

– Le cycle de vie d'une application pour son client

==> Qui réalise une interception entre le « client » et le « service » afin de réaliser des tâches

- Economie de code,

- Economie de moyen,

- Simplification pour le programmeur,

- et l'hébergeur

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 18

Interception de code 1/3

• Explicite– Le développeur inclut son propre code d'accès au service

Page 10: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 19

Interception de code 2/3

• Implicite : Le conteneur joue un rôle de proxy– Le conteneur fournit une API similaire

– Le client croit voir une base de données alors qu'il voit le conteneur

– ==> Avantages

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 20

Interception 3/3

• Automatique : Le conteneur automatise la vision du service– Le conteneur réalise les opérations standards du client

– Le client ne voit rien, il est automatiquement peuplé de données

– ==> Exemple : Base de données, Transaction...

Page 11: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 21

Les Serveurs d'applications

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 22

Un serveur d'application• Application qui cherche à simplifier la programmation, et l'administration de grands

systèmes

• Hébergeant :– Des containers

• Pages Web

• Composants Métier (EJB)

– Des services• Nommage

• Base de données/Mapping sur Base

• Moniteurs transactionnels

• Déploiement ...

– Des API sur les services• JDBC/JTS/JMS…

• Deux grandes familles de serveurs d'applications– Les interfaces utilisateurs

– Les applications distribuées

Page 12: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 23

The J2EE Architecture

Applet container

Applet

J2SE

Application

Client Container

J2SE

ApplicationClient

JMS

JND

I

RM

I/IIOP

JDB

C

Web container EJB container

ServletJSP

JMS

JND

I

JTA

Java Mail

RM

I/IIOP

JDB

C

JAF

J2SE J2SEJM

S

JND

I

JTA

Java Mail

RM

I/IIOP

JDB

C

JAF

EJB

Databases

http/ssl

rmi/ssl rmi/ssl rmi/ssl

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 24

Les offres de serveur d'applications

• Serveur d'application J2EE– Weblogic BEA,WebSphere IBM, Iplanet Sun, Oracle

– Jonas (ObjectWeb)

– Jboss

• Autres serveurs d'applications– Microsoft .net

– Zope (Python)

– OpenACS

– Serveur CORBA (OrbixWeb)

Page 13: Les Middlewares : De l'approche implicite à l'architecture ...perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID21-Middleware.pdf · The J2EE Architecture Applet container Applet

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 25

Le développement d'applications sur les SA

• Développement du code applicatif : – Phase de développement « classique »

– L'appel à des services externes se fait soit :• de manière explicite dans le code

• de manière implicite

• Packaging du code– Le code est regroupé dans une archive (jar, tar, rpm)

• Du code d'exécution

• Des indications de dépendances

• Des indications d'interaction avec les services

• Déploiement du code code– Le code est déployé sur une machine d'exploitation

• Si il y a des bugs, l'ensemble du code est réinstallé

Stéphane Frénot -MID - V.0.2.0 Par t I I - M iddleware 26

Répartition d'une application

Données

Systèmed'exploitation

Application detraitement

Données

Systèmed'exploitation

Application dePrésentation

Données

Systèmed'exploitation

Application deDonnées

Middleware Implicite : J2EE

Middleware Explicite•rmi

Middleware Système•SGFdistribué