Professional Documents
Culture Documents
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 1/38
Informatique
PLAN
I. Introduction A. Caractristiques des grands systmes B. Caractristiques de larchitecture client serveur II. Quest-ce que le modle client serveur ? A. La classification du Gartner Group B. Caractristiques des systmes client serveur. III. Les diffrentes catgories de client serveur A. Serveur de fichier B. Serveur de bases de donnes C. Serveur de transactions D. Serveur de groupware E. Serveur dobjets F. Serveur Web IV. Les cubes du jeu de construction A. Prsentation B. Anatomie dun client C. Anatomie dun serveur V. Les briques de base du middleware A. A chacun son middleware B. Principes des techniques de communication VI. Le middleware SQL A. Rappels SQL B. Interface SQL appel direct (CLI) C. Linterface CLI ODBC de Microsoft VII. Client serveur et INTERNET A. Prsentation B. Technologies C/S derrire le Web : les fondations C. Interaction entre un client et un serveur web D. Les formulaires, le protocole CGI E. Conclusion VIII. Glossaire
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 2/38
Informatique
Bibliographie
Client serveur : guide de survie (ORF0ALI, HARKEY, EDWARDS : International Thomson Publishing) Client serveur (G. et O. GARDARIN : Eyrolles) Intranet client-serveur universel (Alain Lefebvre : Eyrolles) Dcision micro & rseaux (N 380 avril mai 1999)
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 3/38
Informatique
I. Introduction
En quelques annes, larchitecture informatique a volu des grands systmes centraliss vers une architecture client serveur, dernier cri en matire de plate-forme ouverte. A. Caractristiques des grands systmes Machine norme comportant un systme dexploitation unique. Rseau frontal tentaculaire raccordant tous les terminaux. Stockage de masse par disques et bandes magntiques. Organes de surveillance et de maintenance. Mthodes de dveloppement et AGL propritaires.
Cet ensemble tait fourni par un seul constructeur qui constituait linterlocuteur unique. Le mtier dinformaticien tait relativement confortable : les volutions taient simples et planifies. Cette architecture assurait emploi et plan de carrire.
Systme dexploitation
Exemple darchitecture centralise B. Caractristiques de larchitecture client serveur Cette architecture ce distingue par la facult de pouvoir mlanger et apparier des composants tous les niveaux. Llaboration dune solution informatique est entirement la carte. Aussi, larchitecte est-il confront des choix trs complexes. quelle plate forme serveur ? quelle plate forme client ? quels protocoles rseau ? quel serveur de bases de donnes ? quel middleware ? quels outils de gestion du systme ? quelle technologie utiliser pour btir des applications ? - serveur de bases de donnes, - moniteur transactionnel ?
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 4/38
Informatique
- groupware ? - objets rpartis ? - internet, intranet ? Contrairement aux solutions entirement propritaires, larchitecte est seul (ou presque) pour assembler le tout et le faire fonctionner : il est lintgrateur du systme.
SERVEUR SGBD OS/2, UNIX, NOVELL, WINDOW NT Requtes Rsultats Rseau d entreprise Donnes
WINDOWS Applications
OS/2 Applications
UNIX Applications
Ce type darchitecture permet dassurer une meilleure qualit du dialogue homme machine. Dfinition : Type darchitecture client serveur dans lequel un processus excute seulement les fonctions de dialogue avec lutilisateur, lautre gre les donnes et excute le code applicatif.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 5/38
Informatique
Remarque : la dfinition correspond exactement la description du schma, sauf que lon ne prcise pas qui est le client, qui est le serveur. Toute lambigut rside dans le fait que lon peut appliquer le raisonnement client serveur aux machines ou au processus. Le processus qui excute le code applicatif sadresse un autre pour les entres / sorties graphiques. Selon la dfinition, il est le processus client mais est hberg par la machine serveur. On parle alors de dialogue client serveur invers. Client
Serveur
2.
Le rhabillage ou revamping
Ce type darchitecture caractrise la transformation des anciennes applications centralises : une machine cliente intelligente capable dexcuter une interface graphique sophistique vient remplacer un terminal mode caractre. Lobjectif est bien entendu de minimiser les modifications de lapplication initiale Dfinition : Type darchitecture client serveur dans lequel un processus excute seulement la fonction de dialogue sophistiqu avec lutilisateur. Lautre processus gre les donnes, excute le code applicatif et assure le dialogue simplifi avec lutilisateur. L encore, le dialogue client serveur est qualifi invers. Client
Serveur
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 6/38
Informatique
3.
Cest larchitecture la plus rpandue. Exemple : un PC accde des donnes partages gres par un serveur SQL. Dfinition : type darchitecture dans lequel un programme dapplication, contrl par une interface de prsentation sur une machine cliente, accde des donnes sur une machine serveur par des requtes. Cette architecture est qualifie de premire gnration. Client
Serveur
4.
Cest une volution de larchitecture prcdente. La base de donnes intgre des procdures stockes : procdures applicatives recevant des paramtres dentre et retournant des paramtres de sortie. Dfinition : type darchitecture client serveur dans lequel un programme applicatif contrl par une interface de prsentation sur une machine cliente, sous-traite lexcution de procdures applicatives une machine serveur. Remarque : le serveur de procdures inclue un serveur de donnes bas sur SQL. Le client peut donc accder aux donnes directement via SQL ou appeler des procdures qui manipulent les donnes. Le client serveur de procdures est en fait une architecture client serveur de donnes et procdures. Client
Serveur
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 7/38
Informatique
5.
Systme rparti
Larchitecture systme rparti est une architecture client serveur de donnes et procdures dans laquelle le client peut accder des donnes qui sont rparties sur plusieurs serveurs mais peuvent galement tre gres en local.
Client
Serveur
B. Caractristiques des systmes client serveur. Ce paragraphe prsente les lments qui caractrisent une architecture client serveur. 1. Service
Le modle client serveur est une relation entre des processus qui tournent sur des machines spares. Le serveur est un fournisseur de services. Le client est un consommateur de services. 2. Partage de ressources
Un serveur traite plusieurs clients et contrle leurs accs aux ressources. 3. Protocole asymtrique
Consquence du partage de ressources, le protocole de communication est asymtrique : le client dclenche le dialogue ; le serveur attend les requtes des clients. 4. Transparence de la localisation.
Larchitecture client serveur doit masquer au client la localisation du serveur (que le service soit sur la mme machine ou accessible par le rseau). Transparence par rapport aux systmes dexploitation et aux plates-formes matrielles. Idalement, le logiciel client serveur doit tre indpendant de ces deux lments. 5. Messages
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 8/38
Informatique
6.
Un client demande un service. Le serveur dcide de la faon de le rendre une mise niveau du logiciel serveur doit tre sans consquence pour le client tant que linterface message est identique. 7. Evolution
Une architecture client serveur doit pouvoir voluer horizontalement (volution du nombre de clients) et verticalement (volution du nombre et des caractristiques des serveurs). Larchitecture client serveur correspond la rpartition de lintelligence sur le rseau.
Application
Application Clients
Serveur de fichiers
Client / serveur avec serveur de fichiers Caractristiques. - Trs utilis ce jour (partage de fichiers sur le rseau). - Forme primitive de service de donnes. - Nombreux changes de messages sur le rseau pour obtenir le rsultat. - Indispensable pour les banques de documents, dimages etc.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 9/38
Informatique
B. Serveur de bases de donnes Le client met des requtes SQL sous forme de message. Le serveur renvoie le rsultat de chaque requte.
Application Clients
Client / serveur avec serveur de bases de donnes Caractristiques. - Meilleure rpartition de la puissance : le serveur utilise sa capacit de traitement (SGBD) pour slectionner les rponses. - Ncessit dcrire du code pour lapplication cliente. - Cest la base des systmes daide la dcision.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 10/38
Informatique
C. Serveur de transactions Le client invoque des procdures distantes rsidant sur le serveur qui comporte un moteur de bases de donnes. Chaque procdure correspond un ensemble de requtes SQL appel transaction. Lchange consiste en un message requte / rponse, .contrairement au cas prcdent ou il y a un message par instruction SQL. Le code applicatif est rparti sur le client et le serveur. Cot serveur, il porte le nom de traitement de transaction en ligne OLTP (On Line Transaction Processing). Il existe deux formes de transactionnel : transactionnel lger : les procdures sont fournies par lditeur du SGBD. Transactionnel lourd : moniteurs transactionnels fournis par lditeur dapplications OLTP.
Application
Application Clients
Client / serveur avec serveur de transactions D. Serveur de groupware Le groupware est fond sur 5 technologies de base : gestion de documents multimdia workflow (Annexes page 37) courrier lectronique gestion de confrences planification de runions
Il ny a pas de produit groupware regroupant toutes ces technologies qui ont une particularit commune : tout se passe comme sil sagissait dune relation de client client et non une relation client serveur. Les applications sont cres laide dun langage de script et des gabarits dinterface fournis par le vendeur. Le middleware est galement spcifique de lditeur.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 11/38
Informatique
Application Clients
Serveur de groupware
Client / serveur avec serveur de transactions E. Serveur dobjets Lapplication client serveur est crite sous forme dobjets communiquants. Les objets client communiquent avec les objets serveur au moyen dun ngociateur de requtes objet ou ORB (Object Request Brocker). Fonctionnement : (Annexes page 36) Le client appelle une mthode appartenant une classe du serveur objet. LORB localise une instance de la classe, appelle la mthode demande et renvoie le rsultat lobjet client. Les serveur dobjets doivent bien sr traiter le partage des objets. Quelques ORB sont conforme au standard CORBA de lOMG. -
Application
ORB ORB
ORB
Objet Clients
Client serveur avec objets distribus
Objets
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 12/38
Informatique
F.
Serveur Web
Il sagit dune rvolution dans larchitecture client serveur. Elle a t possible grce la croissance de la bande passante et lapparition des systmes dexploitation multithread (Annexes page 37) dots de fonctionnalits rseau. Cest le pays de cocagne du client serveur : toute machine situe sur une autoroute de linformation peut tre la fois client et serveur. Un graphique complet sera prsent plus loin.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 13/38
Informatique
Spcifique du service
SQL/ TxRPCCourrier ORB DAPI
id d
Client
lew ar
Serveur
GUI/OOUI
SNMP
CMIP
DME
DSM
NOS
DSM
OS
Piles de transport
Netbios TCT/IPIPX/SPX SNA
OS
Bien que les chapitres qui suivent ne traitent que du middleware SQL et Web, ce paragraphe traitera larchitecture client serveur en gnral. 1. Le cube client
Client
GUI/OOUI
DSM
OS
Il excute la partie cliente de lapplication et tourne sous un systme dexploitation qui fournit linterface graphique utilisateur. On distingue deux sortes dinterfaces graphiques : - GUI (graphic user interface) - OOGUI (object oriented graphic user interface) Le cube client accde des services rpartis et passe la main au middleware pour les services non locaux. En gnral, il excute galement un composant de ladministration du systme complet. (DSM : gestionnaire distribu de systme)
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 14/38
Informatique
2.
Le cube serveur
Serveur
DSM
OS
Le cube serveur excute la partie serveur de lapplication. Celle-ci sinstalle par dessus un logiciel serveur spcifique au type dapplication : - objets, - web, - groupware, - OLTP, - SGBD. Le systme dexploitation assure linterface avec le cube middleware. Le cube serveur excute galement un composant DSM : soit un agent de celui-ci, soit la partie serveur de ce logiciel. 3. Le cube du middleware
Middleware
Spcifique du service
SQL/ TxRPCCourrier ORB DAPI
DSM
SNMP CMIP DME Fichiers Annuaires Scurit distribus Files Egal gal RPC d attente
NOS
Piles de transport
Netbios TCT/IPIPX/SPX SNA
Il se trouve sur la partie client et serveur dune application. Le middleware peut tre dcompos en trois parties : - piles de transport, - systme dexploitation rseau, - middleware spcifique au service rendu. A ces trois parties, il faut ajouter les composants du DSM.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 15/38
Informatique
4.
Ces relations sont par nature de type client serveur. Un serveur est client dun autre serveur. Cependant, certaines actions ncessitent un middleware spcifique : on peut citer par exemple le protocole de validation deux phases (two phase commit) qui intervient dans la validation des requtes multi-serveur. B. Anatomie dun client 1. Les diffrents clients
Le cube client fournit laspect, la prsentation des services offerts par le systme. Toutes les applications clientes ont une fonction commune : elle rclament les services dun serveur. Elles se diffrencient par contre par la faon dont elles dclenchent leurs requtes et par linterface graphique. On distingue ainsi les clients sans interface graphique les clients interface graphique les clients interface graphique oriente objet. 1.1. Clients sans interface graphique
Testeurs, fax, stations service intelligentes, tlphones cellulaires, robots, lecteurs de codes barres, ardoises intelligentes se caractrisent par un minimum dinteraction humaine. Certaines de ces applications peuvent ncessiter des services multitches. 1.2. Clients interface graphique
Les requtes au serveur rsultent de linteraction entre lutilisateur et linterface graphique. Ces applications graphiques clientes sont en gnral la transcription graphique des dialogues qui sinstauraient auparavant sur des terminaux passifs. Le dialogue relve du modle objet/action dans lequel lutilisateur choisit lobjet traiter puis la commande lui appliquer. Il sagit de linterface courante pour les applications OLTP et serveur bases de donnes. Ce modle dinteraction avec lutilisateur est appel modle graphique CUA 89 (exemple : Windows 3.X, OSF Motif). 1.3. Client interface graphique oriente objet
Ces applications sont utilises par des personnes qui effectuent des tches multiples, variables et sans ordre prdfini. Les objets du bureau communiquent entre eux et avec les serveurs externes par des dialogues en temps rel, interactifs et simultans. En gnral, on ne sait pas o commence lapplication et o finit le bureau du systme. Les objets et programmes du bureau peuvent tre runis pour accomplir une tche (exemple : le dpt de lobjet rservation sur licne fax provoque la transmission du fax de rservation). Dans ce type dinterface, lapplication est transparente lutilisateur ou du moins ses limites sont floues : le bureau est une collection dobjets qui cooprent et de fentres associes ces objets. A linverse, dans une interface GUI, lapplication est lance en cliquant sur une icne. A partir de l, il faut utiliser les menus et sous menus : la structure de travail est rigide, les contours de lapplication nets.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 16/38
Informatique
2.
LOS du client
Le tableau ci-dessous prsente les caractristiques de lOS dune machine cliente. Le cas de linterface non GUI nest pas prsent car il sloigne du contexte de ce cours.
Dispositif de lOS
Client GUI
Client OOUI
OUI OUI OUI OUI OUI OUI OUI OUI OUI
Mcanisme de requte / rponse (de prfrence OUI avec transparence local / distant) Transfert de fichiers textes, dextraits de bases de donnes Multitche premptif (1) Prioritisation des tches Communications interprocessus dimages, OUI Prfrable Prfrable Prfrable
Threads (2) pour communications darrire OUI (sinon : sablier) plan avec le serveur et rception des appels OS robuste avec protection intertches et Prfrable appels OS rentrants (3) Modle graphique CUA 89 Interface OOUI OUI NON
(1) Premptif : lorsquune une ressource est attribue un processus, elle peut lui tre retire (pour attribution un autre processus) sans provoquer de dysfonctionnement si le systme est premptif. (2) En utilisant des threads diffrents pour linterface utilisateur et les tches darrire plan, le programme peut rpondre aux actions de lutilisateur alors quun thread spar prend en charge la relation avec le serveur. (3) Rentrants : les primitives du noyau peuvent tre utilises par plusieurs processus applicatifs. 3. Evolution
Lintelligence et les donnes se dportent de plus en plus vers le cube client. Aussi, dans cette volution, les OS clients doivent tre en mesure de fournir une fonction de serveur lger car : les clients bases de donnes conservent localement des extraits de tables, les clients moniteurs transactionnels coordonnent les transactions multiserveur, les clients groupware grent les files dattente, les clients multimdia enregistrent les dossiers en entre et en sortie et les clients objets rpartis acceptent des requtes dobjets situs nimporte o.
Par opposition un serveur complet, un serveur lger na pas besoin de supporter laccs simultan des ressources partages, lquilibrage de la charge et les communications multithread.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 17/38
Informatique
Le rle dun serveur est de fournir des services de multiples clients intresss parses ressources partages. Voici les principales activits qui en dcoulent. 1.1. Attente des requtes mises par les clients
Un serveur passe le plus clair de son temps attendre les requtes de ses clients qui lui parviennent sous forme de messages. Plusieurs techniques peuvent tre mises en uvre pour traiter ces requtes : assignation dune session particulire chaque client, cration dun jeu dynamique de sessions rutilisables, solution mixte.
La performance dun serveur sera lie son aptitude rpondre tous ses clients en affrontant les heures de pointe. 1.2. Excution simultane de nombreuses requtes
Un client ne doit pas monopoliser les ressources dun serveur et celles-ci doivent rester intgres. Pour cela, un serveur doit tre multitches, multithread et protger ses ressources partages. 1.3. Attribution de priorits
Un serveur doit tre en mesure de proposer diffrents niveaux de priorit ces clients. Une impression, un traitement par lots peuvent tre diffrs lorsque survient un traitement transactionnel. 1.4. Lancement et excution de tches de fond
Certaines tches indispensables mais non lies un besoin immdiat doivent pouvoir tre lances et excutes en tches de fond. Citons par exemple, le rafrachissement H+24 dune base de donnes. 1.5. Fonctionnement ininterrompu
Un programme serveur est une application critique devant fonctionner 24 heures sur 24 sans rupture de service. Le serveur et son environnement doivent donc tre particulirement robustes. 1.6. Voracit
Linflation des besoins en mmoires et puissance est permanente. Le programme serveur et son environnement doivent tre volutifs.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 18/38
Informatique
2.
Les services de base font partie dun systme dexploitation (serveur) de base tandis que les services tendus sont des composants logiciels modulaires complmentaires. La limite entre les deux est floue : les extensions daujourdhui seront vraisemblablement intgres demain. 2.1. Services de base
Pour offrir un haut niveau de simultanit, il est souhaitable dassigner une tche chaque client servi par le serveur un instant donn. De plus, les applications complexes peuvent tre dcomposes en un ensemble de tches concurrentes et logiquement distinctes ce qui a pour effet damliorer les performances, le dbit, la modularit et la ractivit du serveur. En allant encore plus loin, le code du serveur sera plus efficace si les tches sont alloues diffrentes parties dun mme programme plutt qu des programmes diffrents. Ces tches, unit lmentaire dexcution, sont alors appeles thread. Tous les services de base sont lis la ncessit de disposer dune gestion multitches voire multithread et aux mcanismes associs cette gestion. 2.1.1. Premption des tches
Stratgie qui autorise la suspension de lexcution dun processus au profit dun autre. Elle soppose la stratgie dexcution jusqu achvement des premiers systmes. Lorsque le systme dexploitation gre lui mme cet aspect de premption des tches, les programmes serveurs sont beaucoup plus srs et plus simples crire. 2.1.2. Priorit des tches
Le systme dexploitation doit ordonnancer les tches selon leur niveau de priorit. 2.1.3. Smaphores
Le systme dexploitation doit offrir un mcanisme simple pour viter que des tches sexcutant simultanment soient en conflit lors daccs des ressources partages. Ces mcanismes, les smaphores, permettent de synchroniser les actions de plusieurs tches serveur indpendantes et de les alerter si une erreur survient. 2.1.4. Communications interprocessus
Le systme dexploitation doit fournir les outils ncessaires lchange et au partage de donnes entre processus indpendants. 2.1.5. Communications entre processus locaux ou distatnts
Le systme dexploitation doit tre capable dtendre les communications interprocessus au-del de la machine et ce de faon transparente pour lapplication. 2.1.6. Threads
Units lmentaires dexcution. Ils sont utiliss pour crer des programmes vnementiels traitements simultans. Chaque vnement en attente peut tre
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 19/38
Informatique
affect un thread qui attend que cet vnement survienne. Pendant ce temps dattente, dautres threads du mme programme peuvent tre activs. 2.1.7. Protection intertches
Une tche ne doit pas provoquer lcroulement du systme. LOS doit prvenir les interfrences entre tches sur les mmes ressources. 2.1.8. Systme de fichier multi-utilisateurs haute performance
Le systme de gestion de fichiers doit accepter le multitche et offrir les verrous ncessaires au maintien de lintgrit des donnes. Le systme doit pouvoir ouvrir un grand nombre de fichiers sans consquences sur les performances. 2.1.9. Gestion efficace de la mmoire
La gestion de la mmoire doit pouvoir prendre en compte des blocs de donnes et programmes volumineux en lecture, criture, par blocs de taille adapte. 2.1.10. Extensions lies dynamiquement lexcution Les services du systme dexploitation doivent tre extensibles. En effet, lors de linstallation du noyau du systme, ladministrateur a le choix dinstaller tout ou partie de certains services. LOS doit donc fournir un mcanisme dextension dun service pendant son excution. 2.2. Services tendus
Ces services permettent de faciliter la gestion du systme et son volution. Certains seront intgrs terme aux systmes dexploitation. On peut citer rapidement : piles de protocoles : pour permettre la communication avec le plus grand nombre de clients et de serveurs. Extension rseau du systme dexploitation : plus particulirement pour les services de fichiers et d'impression. Pour une application, la localisation de ce genre de priphrique doit tre transparente. Gestion des gros objets binaires (blobs) : protocoles dchanges de blobs et daffectation de ceux-ci aux programmes adapts. Annuaires globaux et pages jaunes : les clients doivent pouvoir localiser les ressources du rseau par leur nom. Ces annuaires doivent faire lobjet dune mise jour dynamique par les serveurs qui proposent les ressources. Services dauthentification et dautorisation Gestion intgr du rseau et du systme : configuration, performances de tous les lments, alertes en cas derreur, distribution de logiciels, dtection de virus et dintrus et mesure du temps dutilisation des ressources payantes. Synchronisation des horloges SGBD intgr avec gestion du transactionnel lger voire lourd. Services Internet
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 20/38
Informatique
Il comporte :
Citons quelques produits qui remplissent tout ou partie de ces fonctions : DCE, ONC+, Ntware, Named Pipes, Lan server, Lan manager, Vines, TCP/IP, APPC, NetBios, MOM (Message Oriented Middleware) 2. Les middleware propres un service Pour les bases de donnes ODBC, DRDA, EDA/SQL, SAG/CLI, et Clue (Oracle). Transactionnel ATMI et Ws/Tuxedo. Transactionnel RPC (Encina). Tx RPC et XATMI (X/OPEN) Groupware MAPI, VIM, VIC, SMTP et les appels Lotus Notes.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 21/38
Informatique
Objets rpartis CORBA (OMG), Netwotk OLE/DCOM (Microsoft) Internet HTTP, S-HTTP, SSL Administration du systme SNMP, CMIP et les ORB
B. Principes des techniques de communication Comment font un client et un serveur pour communiquer ? Comment sont synchronises les requtes et rponses ? Comment traiter les diffrences de reprsentation des donnes entre machines ? Que se passe-t-il quand un interlocuteur est indisponible ? Voil les principales difficults qui doivent tre rsolues par les techniques de communication. De plus, le NOS doit assurer la transparence de linformatique rpartie et nous viter ainsi de traiter avec les protocoles de communication, les rseaux et piles de transport. Le NOS offre trois types dinterfaces de communication : poste poste, RPC MOM.
Les communications poste poste seffectuent selon une smantique denvoi / rception que lon qualifie au raz du cble. RPC, lappel de procdures distantes, donne le sentiment que tout serveur est accessible par un appel de fonction. MOM pratique lchange de messages au travers des files dattentes. 1. Communication de poste poste : lexemple des sockets
Les sockets sont supportes pratiquement par tous les systmes dexploitation. LAPI de Windows appele Winsock standardise lutilisation de TCP/IP sous Windows. Les sockets constituent un standard de fait pour les fournisseurs dapplications sur les rseaux TCP/IP. Principe Pour tablir une communication entre processus par sockets, le programmeur fait appel des services dfinis par le RFC. Chaque service est identifi pour tous les systmes dexploitation par une adresse sur 16 bits. Sur le systme dexploitation Windows NT4, le fichier services donne la liste des services disponibles, leur adresse et le type de protocole utilis : TCP ou UDP. Avec TCP, lenvoi est effectu avec assurance de rception. UDP est qualifi de mode non connect : la communication est plus rapide mais la rception nest pas certaine. Dans tous les cas, la communication stablit par louverture dun canal de communication en prcisant ladresse IP de la machine distante (32 bits) ainsi que ladresse du service utilis. La communication est constitue de trames dinformation dont le formalisme est particulier chaque service.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 22/38
Informatique
Lapplication WTNVT a t dveloppe en utilisant les services sockets. 2. Lappel de procdures distantes (RPC)
RPC utilise lappel de procdure connu des programmeurs : un processus client appelle une fonction dun serveur et suspend son excution jusqu obtention du rsultat.. Principe de fonctionnement Le logiciel excutable RPC rassemble les valeurs des paramtres de communication, constitue un message et lexpdie au serveur distant. Celui-ci reoit la requte, dsassemble les paramtres, appelle la procdure cible et retourne la rponse au client. Derrire cette description de principe se cachent de nombreuses difficults qui doivent tre rsolues par RPC : 3. la localisation et le lancement des procdures du serveur, le formatage et la transmission des paramtres, le traitement des pannes (non rponse dun correspondant), la scurit la localisation du serveur, le codage des donnes pour assurer une communication indpendante du codage de chaque correspondant. MOM
Il sagit de la mthode de communication la plus simple si lapplication tolre un niveau de rponse indpendant du temps. On parle alors darchitecture client serveur nomade : il est possible daccumuler les transactions en attendant que la connexion soit tablie. Le client et le serveur peuvent fonctionner des moments diffrents. Principe de fonctionnement Les applications communiquent par dpt et retrait de message au travers de files dattente.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 23/38
Informatique
SQL 89 correspond lunification des diffrents produits existants lpoque. SQL 92 (SQL 2) est un sur ensemble de SQL 89. LISO suggre trois tapes pour effectuer la transition de SQL 89 SQL 92. Ces trois tapes correspondent aux trois niveaux que constituent SQL 92 : Le niveau entre permet une transition simple avec peu de reprise des applications. Niveau intermdiaire Compatibilit totale.
SQL 3 est la future version. Le texte prliminaire est dj en circulation. Il ne faut jamais perdre de vue que SQL reste une norme sa seule existence physique ce titre est un support papier. Les diteurs sefforcent de coller au plus prs de la norme mais fournissent toujours leur propres particularits. En utilisant un SGBD la norme SQL, il faut donc effectuer le choix de se limiter strictement aux possibilits de la norme ou dutiliser la puissance des particularits du SGBD avec en contre partie, une perte de portabilit. 2. ESQL
Depuis la version SQL 92, ce standard propose embedded SQL, cest dire linclusion dinstructions SQL dans les langages de troisime gnration (C, COBOL, FORTRAN, PASCAL, MUMPS, ADA Des marqueurs propres chaque langage permettent de dlimiter les instructions SQL au sein des programmes. Le SQL source doit tre trait par un pr-compilateur pour obtenir un fichier de code reonnu par le compilateur du langage. Lutilisation de embedded SQL pose quelques problmes voqus ci-dessous : la base cible doit tre connue au moment de lcriture du programme. A linstallation, les applications doivent tre lies au serveur auquel elles se connectent. Les pr-compilateurs sont associs au SGBD : il faut donc re-compiler le code SQL incorpor pour chaque serveur venant dun autre diteur.
Tout ceci constitue un handicap pour les fournisseurs dapplications client serveur clef en main.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 24/38
Informatique
B. Interface SQL appel direct (CLI) Exemple de la CLI du SAG devenue la CLI de X/OPEN. 44 diteurs de bases de donnes ont cr le consortium SAG dans le but de proposer des standards daccs aux bases de donnes distantes. Cest une API SQL qui ne ncessite pas de pr_compilateur. LAPI permet de crer et excuter les instructions SQL au moment de lexcution ce qui permet de dvelopper des applications portables indpendantes de tout produit SGBD. Les fonctions SQL correspondent au standard SQL 89. On peut dgager les grands principes suivants : smantique et syntaxe SQL communs codification des types de donnes notification et traitement des erreurs dfinition dun ensemble de catalogues systme service de gestion des connexions (Exemple Busines Object) qui permet au client de spcifier les connexions aux SGBD distants.
Plus prcisment, les API du SAG permettent de raliser les oprations suivantes : connexion une base de donnes travers un pilote local (3 appels) prparation de requtes (5 appels) excution de requtes(2 appels) rcupration des rsultats (7 appels) fin de commandes (3 appels) fin de connexion
Par opposition lexcution de requtes, la prparation permet de mmoriser des requtes au niveau du serveur SQL de neffectuer quune seule fois leur traitement par le serveur de donnes puis dy faire appel pour excution. C. Linterface CLI ODBC de Microsoft ODBC est lAPI SQL de Windows. Cest une version amliore de la CLI du SAG. ODBC comporte 54 appels, dont 23 constituant le noyau sont bass sur la CLI du SAG. Il existe 3 niveaux de conformit : le noyau comporte 23 appels pour assurer la connexion, dconnexion, lextraction de rsultats, la validation et lannulation de transctions. Le niveau 1 complte le noyau par 19 appels qui permettent : - Lexploitation du catalogue dune base de donnes, - lextraction de gros objets (BLOB), - lutilisation de fonctions spcifiques des pilotes. Le niveau 2 comporte 19 appels pour assurer lextraction de donnes sous contrle de curseurs avec dfilement avant et arrire.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 25/38
Informatique
La plupart des diteurs de serveurs supportent lAPI ODBC en plus de leur API SQL native. On constate ce jour une utilisation frquente de ODBC dans les outils daide la dcision. ODBC comporte trois ensembles : le gestionnaire de pilotes, les pilotes et les sources. Le gestionnaire de pilotes (accessible depuis le systme dexploitation) est une dll (librairie dynamique) qui effectue le routage des appels de fonctions vers le pilote concern. Le pilote (galement une librairie dynamique) est spcifique au SGBD cible le gestionnaire de pilotes gre autant de pilotes que de SBGBD auxquels Microsoft souhaite sinterfacer. Il rceptionne les appels de fonction et les traduit en langage daccs natif du SGBD cible. La source. La mise en place dune configuration de travail avec ODBC ncessite la cration dune source qui est en fait la duplication du pilote appropri, complt par les paramtres de la base de donnes cible.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 26/38
Informatique
30 000 rseaux interconnects sur 70 pays ; ce chiffre double chaque anne. Les mmes protocoles, interfaces, et infrastructures rseau peuvent tre utiliss pour des rseaux privs (INTRANET). 2. Web : world wide web
Lapplication qui a fait connatre INTERNET au grand public. Cest la plus grande application C/S du monde. Quelques chiffres du juin 1996. plus de 100 000 serveurs 500 000 pages daccueil 30 millions dutilisateurs (1 million de plus par mois) 3 000 nouveaux sites par jour web double sa taille tous les 53 jours.
Les protocoles applicatifs du web tournent tels quels sur INTERNET. On peut considrer le web comme laddition des protocoles dINTERNET. Tous sont des services qui tournent sous TCP/IP. Num service 25 23 21 119 70 Sigle SMTP Telnet FTP NNTP Gopher File transfert Protocol Network News Transfert Protocol Protocole Simple Mail Transfert Protocol
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 27/38
Informatique
B. Technologies C/S derrire le Web : les fondations Dans une premire gnration, le web a t limit la lecture : les documents ne sont pas modifiables mais les principales difficults sont contournes. On peut considrer le web comme un systme hypertexte global. 1. Hypertexte
Mcanisme logiciel qui lie un document dautres sur la mme machine ou travers le rseau. Les documents lis peuvent eux-mmes contenir des liens vers dautres documents. Plutt que de parler de documents lis, il faut raisonner en ressources lies telles que images, sons, excutables
Avec le web, le monde devient un gigantesque document hypertexte. 2. Les URL (Uniform Ressource Locator)
Toutes les ressources du web sont nommes selon le mme protocole URL. URL dfinit ou se trouve une ressource et comment y accder. URL supporte les protocoles web les plus rcents (HTTP) et les plus anciens (FTP, Goffer etc.). URL est une chane de caractres ASCII imprimable comprenant quatre parties. Nom du protocole HTTP (natif) @ serveur N du port Ressource :/path/dir/file Certains protocoles acceptent le point dinterrogation pour rechercher une ressource (HTTP, Gopher, WAIS)
://www.adresse.com N spcifi ou port FTP (le + ancien) Nom du site ou dfaut standard (80, 21, Gopher (prcurseur) adresse IP 70) News Mailto WAIS
3.
Protocole semblable au RPC qui permet daccder aux ressources dsignes par leur URL. HTTP est un protocole applicatif (dernier niveau du modle OSI) indpendant du protocole de transport (en gnral TCP / IP). Lchange entre un client et un serveur du web est sans session donc sans synchronisation. Le demon HTTP du serveur tourne en coute de son port de communication. A la rception dune demande, il tablit une connexion C/S
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 28/38
Informatique
reoit ou transmet les paramtres (dont la ressource dsigne par son URL) coupe la connexion C/S.
Pour un serveur HTTP, tous les clients sont gaux : ils ne distinguent pas un client MAC dun PC. Ce sont les navigateurs qui soccupent des dtails propres chaque plate-forme en informant les serveurs des donnes quils reconnaissent. La requte mise par le client peut faire appel essentiellement 4 mthodes (il en existe 13 dans la version HTTP 1.0) reconnues par le serveur HTTP : GET, HEAD, POST, PUT GET : demande lextraction de lURL dsigne. HEAD : est une demande identique GET. Le serveur ne renvoie pas lURL dsigne mais seulement les en-ttes de rponse ce qui permet au client de tester la validit des liens hypertexte. POST : transmet des donnes du client lURL dsigne du serveur. PUT : permet de transmettre une page HTML complte au serveur. Ces deux dernires mthodes sortent du domaine de la simple consultation pour offrir une possibilit dinteraction entre client et serveur. 4. HTML : Hypertext Markup Language
Langage qui permet dinclure des liens hypertexte et de dcrire la structure logique des documents. Entirement portable sur tout systme dexploitation, toutes architectures CPU. Le web est une collection de documents HTML lis les uns aux autres. Un document du web est un fichier texte ASCII dans lequel on imbrique des commandes HTML pour : dcrire la structure du document donner des informations sur les polices daffichage et les graphiques, lier dautres ressources.
Les documents HTML vivent dans des serveurs HTTP : les serveurs web. 5. Le navigateur web : client universel
Il interprte les commandes du serveur et prsente le contenu dune page HTML en excutant des commandes HTML. Exemples : Netscape, Spyglass sont des interprteurs de commandes HTML. Le navigateur utilise les liens hypertexte pour aller dune page lautre et soccupe des dtails propres chaque plate-forme en informant les serveurs des donnes quils sont en mesure de reconnatre. Cest ainsi que pour un serveur HTTP, tous les clients semblent gaux et que lon qualifie un navigateur web de client universel.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 29/38
Informatique
Client
Middleware
Serveur Web
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 30/38
Informatique
2.
Priode
MOT de linteraction
Utilisateur Navigateur Serveur Type
Application particulire
Saisie URL
Choix URL OU Emission requte HTTP Insre URL dans demande HTTP Manuel
Demande HTTP
Traitement requte _ Etablissement connexion (socket) _ Recherche fichier HTML _ Transmission rponse
Manuel
Manuel
Indicateur d'attente
Test type de ressource Manuel Autre ressource Doc HTML Fermeture connexion
Manuel
Autre ressource
Traitement spcialis
Manuel Manuel
Document affich
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 31/38
Informatique
D. Les formulaires, le protocole CGI Jusqu prsent, notre raisonnement sest limit une premire gnration dans laquelle les applications web sont limites la lecture. Lobjectif est maintenant de dpasser cette limite et doffrir au client la possibilit daccder nimporte quel service (SGBD, OLTP ) avec des actions de mise jour. Comment peut-on passer dune navigation passive (lecture simple) un support C/S interactif (mise jour) ? Les formulaires et le protocole CGI sont les deux points clefs de cette volution. 1. Les formulaires
Un formulaire est une page HTML contenant un ou plusieurs champs remplir et un bouton soumettre qui permet denvoyer au serveur Web les donnes contenues dans le formulaire. Le navigateur collecte les donnes du formulaire, les rassemble dans un message HTTP comportant une des mthodes de mise jour (GET ou POST) ainsi que la dsignation du programme CGI excuter. 2. Le protocole CGI
CGI (Common Gateway Interface) est un standard de relativement bas niveau qui permet dcrire des programmes compatibles avec quasiment tous les serveurs HTTP. Un programme CGI doit tre en mesure : de rcuprer les donnes du formulaire dentre, interagir avec une ressource darrire plan (un SGBD, une transaction), prendre en compte les rponses issues de cette ressource pour les mettre au format HTML, transmettre ce rsultat au serveur HTTP qui se charge de le retourner au client.
HTTP
Internet TCP/IP
HTTP
Client Web
CGI Applications
Serveur Web
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 32/38
Informatique
3.
Chaque invocation provoque le lancement dun excutable CGI qui ne peut rien conserver entre deux appels. En effet, ce protocole est sans tat : il oublie tout aprs avoir fournit sa rponse au client. Il existe des solutions pour contourner ce problme ce qui est heureux car la plupart des actions dun client peuvent difficilement se concevoir laide dun seul formulaire (exemple : formulaire de slection de marchandises, suivi du formulaire qui prsente la facture et demande les lments de paiement). De plus, les excutables CGI ne sont pas partageables entre plusieurs clients simultans : il faut en lancer autant dinstance que de clients. E. Conclusion Malgr quelques inconvnients, la simplicit des techniques mise en uvre sur le Web a assur leur succs. Le protocole CGI a ouvert la voie une architecture de forme client serveur de prsentation dans laquelle le client, muni dun navigateur Web (client universel disponible sous tous les environnements) ne supporte pas le code applicatif. On vite ainsi les problmes lis la configuration des machines clientes, la diffusion et la mise jour des applications qui reprsentent un frein considrable larchitecture client serveur classique.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 33/38
Informatique
VIII.Glossaire
API Application programming Interface. Interface de programmation dapplications. CLI Client Interface ? Call Level Interface ? DSM Gestionnaire distribu de systme. Lapplication DSM sexcute sur chaque nud dun rseau. La station gestionnaire rcupre les informations auprs de tous les agents et les prsente ladministrateur sous forme gnralement graphique. La station gestionnaire peut aussi dlguer des actions lun de ses agents : il sagit dun rseau dans le rseau. DLL Dynamic link library : bibliothque de fonctions lies dynamiquement un programme (lors de son chargement en mmoire) par opposition aux bibliothque ajoutes un excutable lors de ldition des liens. GARTNER GROUP ISO International Standard Organisation. Organisme intgr aux nations unies qui entrine les standards internationaux. LANSI est sa branche US. MOM Message Oriented Middleware. NOS Network Operating System. Systme dexploitation rseau. ODBC Open DataBase Connectivity OSI Open Systems Interconnect : une initiative de lISO pour standardiser les protocoles rseaux. Il ne reste de cette initiative que le modle 7 couches. RFC Request For Comments RPC Remote Procedure Call. Appel de procdure distante. SAG Sql Access Group. Groupe de constructeurs indpendants. Ces travaux dans le cadre des mdiateurs ont t repris par X/OPEN. Exemple : linterface dapplication standard : lAPI CLI.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 34/38
Informatique
X/OPEN Association internationale but non lucratif (1984) compose de constructeurs essentiellement Amricains. Dfinit et diffuse les technologies et standards en matire de systmes ouverts. Leurs documents de spcifications prcisent et compltent les standards.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 35/38
Informatique
IX.Annexes
A. NOTIONS DOBJETS 1. A lorigine :
Tout programmeur a pass une partie de son temps crire des procdures quil avait dj traites sous une autre forme. De ce problme est ne la volont de raliser des applications avec des modules rutilisables donc gnriques. Lapparition des langages permettant au programmeurs de crer des structures a t dterminante surtout lorsque ces structures ont t responsables des mthodes qui leur sont associes. Une classe est une structure compose de proprits (les diffrents lments de la structure) et de mthodes. Les donnes ne peuvent tre manipules que par les mthodes de la classe. La programmation par classes (programmation objets) consiste dfinir des classes (structures) et les mthodes associes pour manipuler les donnes. Exemple La classe VOITURE, contenant les proprits : PROPRIETAIRE ETAT IMMATRICULATION et les mthodes qui agissent sur les proprits : Changement de propritaire Changement dimmatriculation Acclrer, Freiner Une instance de classe est une variable dclare comme tant du type de la structure. 2. Hritage :
Il est possible de btir une classe partir dune autre. Cette nouvelle classe hrite des proprits et des mthodes de la classe dorigine. Elle peut bien sr tre complte par ses propres proprits et mthodes. La conception dune application objet est donc radicalement diffrente. Il faut faire linventaire de toutes les entits que lon devra manipuler et les regrouper par proprits et mthodes communes tout en utilisant pleinement le principe dhritage. Exemple : la classe des chaises comportant ses proprits et ses mthodes peut tre utilise pour crer une classe des chaises hauteur et dossier rglable. On peut imaginer comme mthodes propres cette nouvelle classe, le rglage de la hauteur et linclinaison du dossier.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 36/38
Informatique
3.
Utilisation
Aprs de longues considrations philosophiques on peut admettre que dans lunivers, tout est objet communiquant par des messages. Ainsi, une imprimante en action est un objet imprimante ayant reu un message dimpression ayant comme paramtre le document imprimer. La programmation par classe est ainsi devenue la programmation objet. Lutilisation dun objet se fait en prcisant linstance, la mthode et les arguments ncessaires. Mthode et arguments constituent le message. Instance.methode (arguments) 4. Que signifie localiser une instance de la classe ? la classe EMPLOYE avec ses proprits et la mthode CALCULSALAIRE ; La classe COMMERCIAL qui hrite demploy et dont la mthode CALCULSALAIRE utilise la mthode du mme nom de la classe employ en y ajoutant les commissions.
Considrons
Localiser une instance de la classe signifie que pour calculer le salaire de M. Dupond, le systme devra dterminer quelle classe appartient linstance afin de lui appliquer la bonne mthode. Cette difficult nest pas spcifique une architecture client serveur (elle est traite par les SGBDO) mais ce type darchitecture la rend encore plus complexe. B. Workflow Le workflow est lacheminement automatique des vnements et des tches dun programme au programme suivant. Un progiciel de workflow doit tre capable de prendre en compte la description de QUI fait QUOI, QUAND, dans quel but, les itinraires parallles (plusieurs acteurs peuvent raliser la mme tche), la logique de construction dynamique des itinraires au moment de lexcution ainsi que les exceptions aux rgles. Cette description peut tre compare celle dun MOT qui ne serait pas seulement graphique mais galement dynamique. Un workflow permet ainsi de distribuer des rles, suivre et acheminer le travail en cours, veiller aux dates dchance, suivre lexcution des tches (QUI, QUAND). C. Multithreading Le multithreading correspond au dcoupage dune mme application en plusieurs tches, dans le but de tirer partie des machines multiprocesseurs. Lapplication doit tre conue de faon particulire : elle doit faire appel des tches lmentaires, indpendantes les unes des autres, quil sera possible dexcuter en parallle. Des bibliothques de fonctions sont disponibles sur le march. Le principal problme rsoudre est la synchronisation entre threads : il faut viter par exemple que deux threads ralisent simultanment une criture dans un fichier. Une des
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 37/38
Informatique
faons de rsoudre cette difficult est lutilisation des smaphores. Le noyau du systme dexploitation LINUX gre lordonnancement des threads.
DMSI/ANA/clergerie_p / le 29/08/200909
21520497.doc
Page 38/38