les middlewares : de l'approche implicite à l'architecture...

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é

Upload: others

Post on 08-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

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é