Vous êtes sur la page 1sur 24

Architectures

Historiquement:
Architecture centralise Terminaux passifs Systmes propritaires BD non relationnelles Langages de programmation: COBOL,

A. Obaid - Systmes rpartis (MGL7126)

Architectures 1

Architectures
Architecture rpartie:
Rseaux, PC plus puissants, OS ouverts Interfaces et APIs standards BD relationnelles Serveur SGBD Langages 4GL: SQL, OS Outils de dveloppement
Requte Rponse

BD
Rgles

Rseau dentreprise
Windows
Applications

Unix
Clients
Applications

A. Obaid - Systmes rpartis (MGL7126)

Architectures 2

Applications client-serveur
Catgories de C/S:
OLTP (Online Transaction Processing) DSS (Decision Support Systems)

OLTP:
Systme de rservation, contrle d'inventaires, commerce lectronique,

DSS:
Gnration de rapports Aide la prise de dcisions (Executive Information System-EIS)
A. Obaid - Systmes rpartis (MGL7126)
Architectures 3

Le client-serveur
Client:
met des requtes et attend les rponses.

Serveur:
Excute une opration sur demande dun client et transmet la rponse ce client.

Requte:
Message dcrivant l opration excuter pour le compte du client.

Rponse:
Message transmis suite lexcution dune opration demande par le client.
A. Obaid - Systmes rpartis (MGL7126)
Architectures 4

Architectures client-serveur
Le modle:
Processus Application Processus Client Serveur Systme Hardware Client Systme Hardware Serveur

Plusieurs clients, un serveur:

Client

Matre

Client

Esclave

Esclave

Un client, un serveur: Un client, plusieurs serveurs:

Client

Serveur Client Serveur Serveur

A. Obaid - Systmes rpartis (MGL7126)

Architectures 5

Dialogue client-serveur
Se base sur l'utilisation d'une API (Application Programming Interface) : Ensemble de Serveur fonctions (ou primitives de service)
Client Requte Rponse
SendRequest() SendResponse() ReceiveRequest()

Primitives de service:
SendRequest() ReceiveResponse() ReceiveRequest() SendResponse()

ReceiveResponse()

Session Transport Rseau


A. Obaid - Systmes rpartis (MGL7126)

Session Transport

Architectures 6

Mode de dialogue C/S


Mode synchrone:
Nutilise pas de file dAttente Les messages sont mis sans attente. Bloquant (ex. RPC).

Mode asynchrone:
Utilise une file dattente Non bloquant Favorise le multitche (ex.: FIFO, email, ).

A. Obaid - Systmes rpartis (MGL7126)

Architectures 7

Modes des serveurs


Orient connexion (Mode connect):
Fiabilit : TCP, HTTP/TCP,

Non orient connexion (Mode non connect):


Performance: UDP, DNS/UDP,

Sans tat (Stateless):


Lger Non persistance

Avec tat (Statefull):


Lourd Support de transactions: Session,
A. Obaid - Systmes rpartis (MGL7126)
Architectures 8

Messages client-serveur
En gnral on a trois types de messages: REQ, REP et ACK. Accessoirement:
AYA (Are You Alive): Requte IAA (I Am Alive): Rponse TA (Try Again): Rponse
REQ REQ ACK

AYA IAA REP

REQ REP

ACK REP ACK

ACK

A. Obaid - Systmes rpartis (MGL7126)

Architectures 9

Transparence
Transparence des rseaux:
Support de plusieurs types de rseaux: LAN, WAN, TCP/IP, ISO, SNA,

Transparence des serveurs:


Support de plusieurs types de serveurs: SGBD (Oracle, DB2, ), applications,

Transparence des donnes:


Traduction de donnes: XDR, ASN.1,

Transparence de la localisation:
Utilisation de service de rpertoire
A. Obaid - Systmes rpartis (MGL7126)
Architectures 10

Pourquoi rpartir
Facteurs stratgiques Cot des quipements Usagers veulent avoir le contrle Cot de dveloppement Interface usager Flexibilit et facilit de configuration Matriel spcialis Nouvelles applications
Architectures 11

A. Obaid - Systmes rpartis (MGL7126)

Parallle avec lentreprise


Amlioration de la qualit Aplanissement de la pyramide organisationnelle Donner le pouvoir aux employs Faciliter le partage de linformation Centraliser la gestion des applications Forcer le respect des rgles du mtier

A. Obaid - Systmes rpartis (MGL7126)

Architectures 12

Orient client ou serveur


Client lourd (Fat Client):
Donnes et applications locales. Serveur stocke les fichiers mis jour, Le client obtient une bonne partie du traitement: Serveur est plus allg

Serveur lourd (Fat Server):


Plus de charge sur le serveur:
Transactions, objets mtier,

Plus facile grer:


On peut enrichir le serveur sans trop affecter les clients.

A. Obaid - Systmes rpartis (MGL7126)

Architectures 13

Orient client ou serveur


Client lger (Thin Client) Fonctionnalit minimale:
Interface graphique Peu de traitement Beaucoup de charge sur le serveur

Requte
Traitement local, Caching,

Donnes et applications

Client lger

Donnes (pr-trates)
Serveur lourd

A. Obaid - Systmes rpartis (MGL7126)

Architectures 14

Client web lger


Aucune distribution de logiciel Navigateur:Client universel Compatibilit travers standards: HTTP, HTML,XML Interface usager limite

A. Obaid - Systmes rpartis (MGL7126)

Architectures 15

Client web moins lger


Client pas si lger que a ! Distribution de logiciel (Applet, JavaScript,) Java Virtual Machine sur toutes les machines.
Navigateur
Applet Java Java / JScript Cookies HTTP

Web Web Server Server


Dpt Dpt Applets Applets ..

Serveur d'application

Data base

HTML HTML Pages Pages

A. Obaid - Systmes rpartis (MGL7126)

Architectures 16

Serveurs lgers
Utilisation de composants:
Servlets excutes la demande JSP
Pages dynamiques Sparation de la logique d'affaires et les donnes

Utilisation de code mobile:


Excut par le client Adaptation aux diffrentes APIs de communication

A. Obaid - Systmes rpartis (MGL7126)

Architectures 17

lments de conception
Il faut dcider de lemplacement des lements :
Logique de prsentation:
Interfaces textuelles ou graphiques, interactions, entre de donnes, validation,

Logique d'affaire:
Traitement: Rgles d'affaires

Logique des donnes:


Stockage et accs aux donnes: SGBD, WEB,

A. Obaid - Systmes rpartis (MGL7126)

Architectures 18

Architecture 2 niveaux
2-tiered Utilis dans les petits environnements Inadquat dans les gros environnements Pas de possibilit de dlgation

Serveur Client
A. Obaid - Systmes rpartis (MGL7126)

Serveur
Architectures 19

Architecture 3 niveaux
3-tiered system Un serveur au milieu :
Dlgation (Proxy) Traductions: adapatation de formats d'changes Moniteur transactionnel Scurit Web middleware: Client-serveur universel

Client

Serveur

Serveur
Architectures 20

A. Obaid - Systmes rpartis (MGL7126)

10

Composantes client-serveur
Application Logique de prsentation Logique d'affaires Logique de donnes

Middleware

Client

DBMS

Serveur BD

A. Obaid - Systmes rpartis (MGL7126)

Architectures 21

Modle gnral de distribution

Interface utilisateur

Logique d'affaire

Logique des donnes

Donnes SGBDR passif

Interface utilisateur

Logique d'affaire Logique des donnes Donnes SGBDR actif (SQL serveur)

A. Obaid - Systmes rpartis (MGL7126)

Architectures 22

11

Modles de distribution 2 niveaux (2-tiered)


Prsentation Prsentation Logique Prsentation Logique Prsentation Prsentation

client

Logique Donnes

Prsentation Logique Donnes Logique Donnes

Logique

serveur

Donnes

Donnes

Donnes

Classe 1 (Dsitributed data)


BD rparties

Classe 2 (Remote data)


Service de fichiers

Classe 3 Classe 4 (Distributed programs) (Remote presentation)


Web, browser (Java,JS,) mulation de terminal

Classe 5 (Distr. presentation)


Wrapper, Xwin,

A. Obaid - Systmes rpartis (MGL7126)

Architectures 23

Modles de distribution 3 niveaux (3-tiered)


Client
Prsentation Prsentation Prsentation Logique Prsentation Logique Donnes

Serveur de milieu

Logique

Logique

Logique

Logique Donnes

Logique

Logique Donnes Donnes

Serveur

Donnes

Donnes

A. Obaid - Systmes rpartis (MGL7126)

Architectures 24

12

Le middleware
Assure les connexions entre le serveur de donnes et les outils de dveloppement sur les postes client. Ensemble de services construits au dessus du transport afin de permettre lchange entre client et serveur de manire transparente. Ensemble de logiciels rpartis qui se situe entre l application, l OS et les services rseaux
A. Obaid - Systmes rpartis (MGL7126)
Architectures 25

Types de middleware
Type gnral:
Protocoles de communication, rpertoires rpartis, scurit , service de temps, RPC, ... Services rpartis de type NOS: Services de fichiers, services d impression,... Exemples: DCE (Distributed Computing Environment), LAN Server, LAN Manager, Vines, TCP/IP, APPC, NetBios, MOM,
client client
middleware middleware

serveur serveur

A. Obaid - Systmes rpartis (MGL7126)

Architectures 26

13

Types de middleware
Spcifiques:
Bases de donnes : ODBC, IDAPI,DRDA, EDA/SQL, On-line transaction processing (OLTP): ATMI (Tuxedo), Transactional RPC (Ensina), TxRPC (X/Open), Groupeware: MAPI, Lotus Notes, Objets: CORBA (Common Object Request Broker Arcitecture) Web, Environnements de dveloppement (WebSphere, J2EE,)
client client
middleware middleware middleware middleware passerelle passerelle

serveur serveur
Architectures 27

A. Obaid - Systmes rpartis (MGL7126)

Types de middleware
Canaux:
Services de communications : RPC, ORB , MOM Services de support de communication: SSL, annuaires (ex. DNS, X.500, LDAP,),

Plate-formes:
Serveurs dapplications qui s'excutent du ct du serveur. Canaux de communication Rpartition, lquilibre de charge, intgrit, transactions, Exemples: Moniteurs TP, Serveurs dapplications sur le Web (J2EE, WebSphere,.NET,)
A. Obaid - Systmes rpartis (MGL7126)
Architectures 28

14

Catgories de middlewares
Totalement ouvert:
Mme API pour tous les middlewares clients Mme protocole d'change entre clients et serveurs Exemple: CORBA,

API

API

API

API

MWA

MWB

MWC

MWD

Protocole d'change commun


Architectures 29

A. Obaid - Systmes rpartis (MGL7126)

Catgories de middlewares
API commune:
Mme API sur les clients. Protocole d'change non commun:
Diffrents drivers pour diffrents types de serveurs

Permet la portabilit des clients. Exemple : ODBC, JDBC


API API API API

MWA Protocole A

MWB Protocole B

MWA Protocole A

MWB Protocole B

A. Obaid - Systmes rpartis (MGL7126)

Architectures 30

15

Types de middlewares
Protocole d'change commun:
API diffrente sur chaque client. Usage d'un mme protocole d'change Traduction entre protocoles d'changes en utilisant des passerelles Exemple : DRDA (IBM) et SQL*Net (Oracle)
APIA APIB APIC APID

MWA Pass.

MWB Pass.

MWC

MWD

Protocole d'change commun


A. Obaid - Systmes rpartis (MGL7126)
Architectures 31

Types de middlewares
Propritaire:
API diffrente sur chaque client. Protocole d'change propritaire.

APIA

APIA

APIA

APIA

MWA Protocole A

MWA Protocole A

MWA Protocole A

MWA Protocole A

A. Obaid - Systmes rpartis (MGL7126)

Architectures 32

16

Approche JDBC
Application Java Application Java
API JDBC

Application Java

Gestionnaire de pilotes JDBC Service provider


Pilote JDBC vers ODBC Pilote ODBC Pilote JDBC vers DB2 Pilote JDBC vers Sybase Pilote JDBC vers Oracle

MS SQL Server

DB2 Server

Sybase SQL Server

Oracle database

A. Obaid - Systmes rpartis (MGL7126)

Architectures 33

Client-serveur et ODBC
Serveur SGBD Oracle
Microsoft Excel ODBC Interface Gestionnaire pilote Pilote Pilote Oracle Sybase ODBC ODBC Communication

Production

Pass.
Comptabilit

Serveur SGBD Sybase

Microsoft Excel ODBC Interface

Lotus 123 ODBC Interface

Gestionnaire pilote Pilote Pilote Oracle Microsoft ODBC ODBC Communication

Serveur SGBD Micrososft SQL


Ressource Humaines Architectures 34

A. Obaid - Systmes rpartis (MGL7126)

17

Interface cliente sur le web


Le navigateur peut communiquer avec plusieurs types de serveurs: telnet, ftp, http,
URLs de types diffrents

Enrichissant avec plugins et applications externe (ex. real,):


Applications spcifiques: streaming, MIME,
FTP FTP TELNET TELNET HTTP HTTP
A. Obaid - Systmes rpartis (MGL7126)

Navigateur Navigateur

PL PL

Plug-in

Appl.

Application externe Architectures 35

Client-serveur web
Le serveur web ramne les documents web Les autres documents (non web) sont rendus disponibles par un processus externe
Browser
Documents non Web

HTTP Processus Processus Externe Externe

Documents Web (HTML, XML,)

Serveur Web

A. Obaid - Systmes rpartis (MGL7126)

Architectures 36

18

Client-serveur web, 3 niveaux


Utilisation des pages HTML (ou XML) pour le transfert des donnes
Serveur Web
HTTP

Navigateur

Serveur d applications
API API

Serveur de donnes

BD

Prsentation

Traitement

Donnes

A. Obaid - Systmes rpartis (MGL7126)

Architectures 37

Passerelle CGI
La passerelle CGI peut invoquer des applications de diffrents types:
SGBD, Communication, . Programmes qui gnrent du HTML dynamique
Browser
HTTP

Application Application Application


Objets d'affaire

CGI CGI

Serveur Web
Documents (HTML, XML,)

A. Obaid - Systmes rpartis (MGL7126)

Architectures 38

19

Passerelle CGI et accs aux BD


Browser

ODBC

JDBC

HTTP

Application Application ESQL


Objets d'affaire

CGI CGI

Serveur Web
Documents (HTML, XML,)

A. Obaid - Systmes rpartis (MGL7126)

Architectures 39

Lapproche SSI
Server-Side Include Utilise des balises HTML pour invoquer des services externes: ODBC,:
<!--#element attribut=valeur attribut=valeur ... -->

Documents HTML pr-traits par le serveur


<HTML> <!--#config timefmt="%A %B %d, %Y" --> Date du jour : <!--#echo var="DATE_LOCAL"> </HTML>

Navigateur ODBC HTTP Serveur Web HTML- SSI HTML


Architectures 40

Passerelle (CGI, )

A. Obaid - Systmes rpartis (MGL7126)

20

Client-serveur web code mobile


Pages Web pour tlcharger du code (applet) vers le navigateur Utilisation des applets
Interfaces graphiques Transfert des donnes: socket, RMI, ORB,

Navigateur Code
(Applet)

Serveur Web

Serveur de donnes

API

socket, RMI,

App

BD

A. Obaid - Systmes rpartis (MGL7126)

Architectures 41

Client-serveur web code mobile

Navigateur

Code
(Applet)

Serveur Web

Serveur d applications
API

Serveur de donnes

API

socket, RMI, ORB

Application Donnes

Donnes

BD

A. Obaid - Systmes rpartis (MGL7126)

Architectures 42

21

Client-serveur web 3 niveaux


Utilisation des pages web HTML pour le transfert des donnes Utilisation de composantes (servlets, JSP,) pour les traitements et l'accs aux donnes
Serveur Serveur Web Web Composantes
Serveur de donnes

Navigateur
HTTP

CDBC, ODBC,
Prsentation Traitement

BD

Donnes

A. Obaid - Systmes rpartis (MGL7126)

Architectures 43

Serveurs dapplications

Serveur d applications Client Client


Rpertoire Transatctions

Navigateur
ORB ORB
Traitement Traitement

Serveur de donnes Conteneur (EJB) Donnes

BD

Serveur Serveur Serveur Web Web

A. Obaid - Systmes rpartis (MGL7126)

Architectures 44

22

Middleware hybride

Documents Web et Applet

Browser Applet

HTTP Applet

Serveur HTTP
SGBD
ORB

ORB

IIOP Internet Inter Orob Protocol

Serveur Corba Serveur web

ERP

TP

A. Obaid - Systmes rpartis (MGL7126)

Architectures 45

Le middleware web - enveloppe


Utilisation du web pour les applications anciennes en les enveloppant (wrappers).
Browser
Passerelle crans Applications anciennes

Interfaces cran

Serveur Web

Programmes Web (CGI, )

Passerelle Procdures

Application

Technologies enveloppes

Passerelle Applications

Fichiers BD IMS SGBDR


Architectures 46

A. Obaid - Systmes rpartis (MGL7126)

23

Middleware explicite
Utilisation d'API de bas niveau pour l'accs des services distants Transactions Transactions Ex: RMI, SOAP,
Client Client
Remote interface Remote interface

Objet Objet rparti rparti


APIs

Scurit Scurit

Bases de Bases de donnes donnes

stub

skeleton
transfert(TCompte compte1, TCompte compte2, long montant ) { // 1: Appeler l'API du middleware pour la scurit // 2: Appeler l'API du middleware pour les transactions // 3: Appeler l'API du middleware pour trouver des lignes d'une table de BD // 4: Ajouter un montant un compte // 5: Appeler l'API du middleware pour to stocker les lignes dans une BD // 6: Appeler l'API du middleware pour terminer la transaction }

Rseau

A. Obaid - Systmes rpartis (MGL7126)

Architectures 47

Environnement EJB
EJB Container

Client

bean bean bean

Entreprise Information System (RDBMS, ERP, Legacy Applications, ) JNDI, JavaMail, JMS

Client Client

Web Container

Servlet, JSP, HTML, XTML

Niveau 1: client

Niveau 2: Service

Niveau 3: Entreprise Architectures 48

A. Obaid - Systmes rpartis (MGL7126)

24