3 std cs donnees - université de la réunionlim.univ-reunion.fr/staff/courdier/old/cours/... ·...

34
Client-Serveur : Normes et Standards 1 Rémy Courdier Client / Serveur Client / Serveur Client / Serveur R R é é my Courdier my Courdier Normes et Standards Normes et Standards pour C/S de donn pour C/S de donn é é es et proc es et proc é é dures dures

Upload: others

Post on 24-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 1 Rémy Courdier

Client / ServeurClient / ServeurClient / Serveur

RRéémy Courdiermy Courdier

Normes et StandardsNormes et Standardspour C/S de donnpour C/S de donnéées et proces et procééduresdures

Page 2: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 2 Rémy Courdier

Normes et Standards du Client-Serveurde données et de procédures

Normes et Standards du ClientNormes et Standards du Client--ServeurServeurde donnde donnéées et de proces et de procééduresdures

√√ LL’’importance des importance des standardsstandards

√√ LL’’OSF et LOSF et L’’X/OpenX/Open

√√ Le Standard CLILe Standard CLI

√√ Les protocoles de Les protocoles de communications communications pour C/S de pour C/S de donndonnéées: RDAes: RDA

√√ Produits pour C/S de Produits pour C/S de donndonnéées : ODBC, es : ODBC, JDBC, IDAPIJDBC, IDAPI

√√ Protocoles pour C/S Protocoles pour C/S de procde procéédures: RPCdures: RPC

√√ Standard pour le C/S Standard pour le C/S distribudistribuéé : DCE: DCE

√√ Le modLe modèèle le transactionnel DTPtransactionnel DTP

√√ SQL et Le modSQL et Le modèèle le RelationnelRelationnel

Page 3: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 3 Rémy Courdier

L’importance des standardsLL’’importance des standardsimportance des standards

Tunnel

Institut internat. de Standardisation : ISOBranche nord Américaine de L’ISO : L’ANSIAmerican National Standard Institute

le CCITT télécom, l’IEEE Système d’exploit., ...

Open Group = fusion OSF & X/Open

Utilisateurs : X/Open (84) Fournisseurs : OSF & Unix internat.

Page 4: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 4 Rémy Courdier

The Open Groupe Consortiums de fournisseurs de solutions logicielles ouvertes

TheThe Open Groupe Open Groupe Consortiums de fournisseurs de solutions logicielles ouvertesConsortiums de fournisseurs de solutions logicielles ouvertes

♦♦ LL’’Open Groupe : Open Groupe : http://www.opengroup.org/http://www.opengroup.org/√√ ex Open Software ex Open Software FoundationFoundation(OSF) + X/Open (OSF) + X/Open √√ consortium de consortium de constructeurs et dconstructeurs et d’’utilisateursutilisateurs promouvant les promouvant les

systsystèèmes ouverts mes ouverts «« interinter--opopéérablesrables »»..

«« WhatWhat isis InteroperabilityInteroperability? ?

InteroperabilityisInteroperabilityis thethe abilityability to to bothboth exchangeexchange information information andand to use it.to use it. »»

♦♦ LL’’Open Groupe propose des certifications : Open Groupe propose des certifications : √√ WapWap : : http://http://www.opengroup.orgwww.opengroup.org//wapwap//certcert/index.html/index.html

√√ UNIXUNIX®® : : http://http://www.unixwww.unix--systems.orgsystems.org//

√√ CORBACORBA®® : : http://http://www.opengroup.orgwww.opengroup.org//procurementprocurement//corba_tools.htmcorba_tools.htm

√√ LDAPLDAP®® : : http://http://www.opengroup.orgwww.opengroup.org/directory//directory/

Page 5: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 5 Rémy Courdier

Principaux membres de l’Open GroupePrincipaux membres de lPrincipaux membres de l’’Open GroupeOpen Groupe

√√ PlatinumPlatinum membershipmembership√√ TheThe total total numbernumber of of membersmembers isis 88

CompanyCompany Country Country Compaq Computer Corporation USA Compaq Computer Corporation USA Fujitsu Fujitsu LimitedLimited JapanJapanFujitsu Siemens Computers Fujitsu Siemens Computers GermanyGermanyHewlettHewlett--PackardPackard CompanyCompany USA USA Hitachi Hitachi LimitedLimited JapanJapanIBM Corporation USA IBM Corporation USA Motorola, Motorola, IncInc. USA . USA Sun Sun MicrosystemsMicrosystems, , IncInc USA USA

√√ Gold Gold membershipmembership√√ TheThe total total numbernumber of of membersmembers isis 44

CompanyCompany Country Country Computer Computer AssociatesAssociates International, International, IncInc. USA . USA SCO USA SCO USA TeamcallTeamcall LtdLtd UK UK Tivoli Tivoli SystemsSystems IncInc. USA . USA

√√ SilverSilver membershipmembership√√ TheThe total total numbernumber of of membersmembers isis 145145

Page 6: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 6 Rémy Courdier

Principales mission de l’Open GroupeOrganisation de fournisseurs et d’utilisateurs créée en 1984Principales mission de lPrincipales mission de l’’Open GroupeOpen GroupeOrganisation de fournisseurs et dOrganisation de fournisseurs et d’’utilisateurs crutilisateurs créééée en 1984e en 1984

♦♦ Animation de Groupes de travail et Forum Animation de Groupes de travail et Forum √√ ddééveloppement de Standards dveloppement de Standards d’’interfaces applicativesinterfaces applicatives√√ portabilitportabilitéé des logiciels applicatifsdes logiciels applicatifs……

♦♦ Recherche et ConfRecherche et Conféérencesrences√√ interface utilisateur commune, interface utilisateur commune, interfinterf. de . de progprog. commune, . commune,

modmodèèle commun dle commun d’’interconnexion.interconnexion.√√ standards pour les interfaces avec lstandards pour les interfaces avec l’’OS (POSIX), Les Langages OS (POSIX), Les Langages

(C, ADA,...), La gestion de donn(C, ADA,...), La gestion de donnéées(SQL), les res(SQL), les rééseaux (seaux (InterfInterf. . Transport), fenêtrage (X/Windows)Transport), fenêtrage (X/Windows)……

♦♦ Certification Certification √ « The Certification Programs operated by The Open

Group include a guarantee of conformance to open standards or specifications. »

Page 7: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 7 Rémy Courdier

Le Standard CLI - Callable Level InterfaceLe Standard CLI Le Standard CLI -- CCallableallable LLevelevel IInterfacenterface

♦♦ CLI est une API {CLI est une API {fctfct StdStd} pour serveur SQL} pour serveur SQLProposition du SQL Access Group (SAG)Proposition du SQL Access Group (SAG)StandardisStandardiséé par le CAE de lpar le CAE de l’’X/OPEN X/OPEN -- ISO 9075ISO 9075--33”” (1996) (1996)

http://www.opengroup.org/products/publications/catalog/c451.htm

♦♦ DDééfini une interface de bas niveau fini une interface de bas niveau Langage cible pour prLangage cible pour préé--processeurs de langages de processeurs de langages de programmation intprogrammation intéégrgréé àà SQLSQL

CLI dCLI dééfinit des donnfinit des donnéées de base :es de base :√√ CHAR, SMALLINT, INTEGER, POINTEUR,...CHAR, SMALLINT, INTEGER, POINTEUR,...

des structure de donndes structure de donnéées spes spéécifiants les variables :cifiants les variables :√√ de contexte dde contexte d’’un env. de base de donnun env. de base de donnéées es -- AllocEnvAllocEnv()()√√ dd’’une connexion pour lune connexion pour l’’accaccèès s àà un serveur un serveur -- AllocConnectAllocConnect()()√√ dd’’un ordre SQL un ordre SQL -- AllocStmtAllocStmt()()

CLI dCLI dééfinit des fonctions : finit des fonctions : CONNECT, DISCONNECT...CONNECT, DISCONNECT...

♦♦ StdStd fondamental : Une implfondamental : Une impléémentation = ODBCmentation = ODBC

Page 8: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 8 Rémy Courdier

Principales fonctions de CLIPrincipales fonctions de CLIPrincipales fonctions de CLIConnectConnect() et () et DisconnectDisconnect() : Ouverture/fermeture connexion() : Ouverture/fermeture connexion

AllocEnvAllocEnv() et () et FreeEnvFreeEnv() : contexte BD() : contexte BD

AllocConnectAllocConnect() et () et FreeConnectFreeConnect() : contexte de () : contexte de connectionconnection

AllocStmtAllocStmt() et () et FreeStmtFreeStmt() : contexte d() : contexte d’’ordre SQLordre SQL

PreparePrepare() : Pr() : Prééparation dparation d’’un ordre un ordre

ExecuteExecute() : Ex() : Exéécution dcution d’’un ordre prun ordre prééparparéé

ExecDirectExecDirect() : () : EcEcéécutioncution direct ddirect d’’un ordreun ordre

SetCursorNameSetCursorName() : () : pospos. d. d’’un nom de curseurun nom de curseur

DescribeAttDescribeAtt() : Obtention du () : Obtention du descdesc. d. d’’une colonne rune colonne réésultatsultat

FetchFetch() : Lecture du tuple suivant() : Lecture du tuple suivant

RowCountRowCount() : Nombre de lignes affect() : Nombre de lignes affectéées par un ordre SQLes par un ordre SQL

TransactTransact() : Validation ou annulation d() : Validation ou annulation d’’une transactionune transaction

Cancel() : Annulation dCancel() : Annulation d’’un ordre SQL en exun ordre SQL en exéécutioncution

ErrorError() : Retour des info. d() : Retour des info. d’’erreurs des contexteserreurs des contextes

Page 9: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 9 Rémy Courdier

Enchaînement des appels fonctionnelsEnchaEnchaîînement des appels fonctionnelsnement des appels fonctionnels

AllocEnv()AllocConnect()Connect()AllocStmt()

Envoi de requêtesReception de résultats

FreeStmt()Disconnect()FreeConnect()FreeEnv()

OUIPrépare()SetParamValue()Execute()

Exécution multiple ?

NON

SetParamValue()ExecDirect()

SELECTNumResultCols()DescribeCol()BindCol()

Fetch()

DELETEINSERTUPDATE

RowCount()Transact()

D’autres lignes ?

Type d’ordre ?

Page 10: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 10 Rémy Courdier

Protocoles de Communication Client/Serveur de données : RDA

Protocoles de Communication Protocoles de Communication Client/Serveur de donnClient/Serveur de donnéées : RDAes : RDA

♦♦ RDA : RDA : RRemoteemote DData ata AAccess (ccess (ISO/IEC 9579ISO/IEC 9579--1 et ISO/IEC95791 et ISO/IEC9579--22))√√ ddééfinit les rfinit les rèègles entre un client qui gles entre un client qui éémet une requête et un met une requête et un

serveur qui lserveur qui l’’exexéécute. cute. √√ objectif : robjectif : rééglementer lglementer l’’accaccèès s àà des BD distantesdes BD distantes

♦♦ AppelAppeléé : : ““Transporteur de requêtesTransporteur de requêtes”” : : √√ mise en oeuvre dmise en oeuvre d’’un protocole de niveau application du modun protocole de niveau application du modèèle le

OSI de lOSI de l’’ISO.ISO.√√ expexpéédier des requêtes dier des requêtes àà des services distants et rdes services distants et réécupcupéérer les rer les

rrééponsesponses√√ ss’’appuie sur des protocoles de transports standardsappuie sur des protocoles de transports standards

♦♦ UtilisUtiliséé par DRDA (IBM), ...par DRDA (IBM), ...

Page 11: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 11 Rémy Courdier

Principaux types de messages pour le transport de requêtes SQL dans RDAPrincipaux types de messages pour le Principaux types de messages pour le transport de requêtes SQL dans RDAtransport de requêtes SQL dans RDA

InitializeInitialize() et () et TerminateTerminate() : () : InitInit/fin d/fin d’’une requêteune requête

BeginTransactionBeginTransaction() : D() : Déébut de transactionbut de transaction

Commit() : Validation de transactionCommit() : Validation de transaction

RollbackRollback() : Reprise de transaction() : Reprise de transaction

Cancel(): Annulation de requêteCancel(): Annulation de requête

StatusStatus() : Demande d() : Demande d’é’état dtat d’’une requêteune requête

Open() et Close() : Ouverture/Fermeture dOpen() et Close() : Ouverture/Fermeture d’’une ressourceune ressource

ExecuteDBLExecuteDBL() : Ex() : Exéécution dcution d’’une requête Base de Donnune requête Base de Donnééeses

DefineDBLDefineDBL() : Pr() : Prééparation dparation d’’une requête Base de Donnune requête Base de Donnééeses

InvokeDBLInvokeDBL() : Invocation d() : Invocation d’’une requête prune requête prééparparééee

DropDBLDropDBL() : Suppression d() : Suppression d’’une requête Base de Donnune requête Base de Donnééeses

Ces messages sont normalisCes messages sont normaliséés dans le protocole RDAs dans le protocole RDA

Page 12: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 12 Rémy Courdier

Produits fournissant une interface avec les BD distantes (1)

Produits fournissant une interface Produits fournissant une interface avec les BD distantes (1) avec les BD distantes (1)

♦♦ ODBC : ODBC : OOpen pen DDataataBBasease CConnectivityonnectivityMicrosoft Microsoft --1992 ODBC SDK 1.01992 ODBC SDK 1.0

ImplementeImplemente et enrichi le X/Open SQL CLI et enrichi le X/Open SQL CLI

API ProcAPI Procéédural (dural (HandlesHandles et API et API CallsCalls))

IntIntéégrgréé àà Windows et Windows et àà tous les produits Microsoft (tous les produits Microsoft (AccesAcces, , Visual C++(MFC), Visual Basic) et dVisual C++(MFC), Visual Basic) et d’’autres autres constrructeursconstrructeurs

♦♦ JDBC : JDBC : JJava ava DDataataBBasease CConnectiononnectionDDééfinit conjointement par finit conjointement par JavaSoftJavaSoft, Sybase, , Sybase, InformixInformix, IBM,..., IBM,...

ImplementeImplemente et enrichi le X/Open SQL CLI : et enrichi le X/Open SQL CLI : ““JDBC JDBC isis a Native a Native Java Java ImplementationImplementation of of thethe SQL CLISQL CLI””..

API Objet (objets, interfaces et mAPI Objet (objets, interfaces et mééthodes) thodes)

IntIntéégrgréé dans tous les produits Javadans tous les produits Java

♦♦ Performances moyennes : Performances moyennes : empilement de couchesempilement de couches

Page 13: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 13 Rémy Courdier

Produits fournissant une interface avec les BD distantes (2)

Produits fournissant une interface Produits fournissant une interface avec les BD distantes (2) avec les BD distantes (2)

♦♦ SQL*NET dSQL*NET d’’ORACLE ORACLE -- 19941994Proche du standard CLI en plus riche...Proche du standard CLI en plus riche...

invoquinvoquéé directement par ldirectement par l’’interface OCI (Oracle interface OCI (Oracle CommonCommonInterface)Interface)

Permet Permet àà tout Client disposant de SQL*Net, ltout Client disposant de SQL*Net, l’’appel de tout appel de tout serveur Oracle par un serveur Oracle par un protocolprotocol de com. quelconquede com. quelconque

♦♦ la DBla DB--LIB de LIB de SybasSybasdbdb--liblib : Biblioth: Bibliothèèque de fonctions et de macros proches du que de fonctions et de macros proches du standard CLI en plus richestandard CLI en plus riche

Permet de rPermet de réécupcupéérer toutes rer toutes lesdonnlesdonnééeses souhaitsouhaitéées et de les es et de les traiter dans des outils interfactraiter dans des outils interfacéés s àà la la dbdb--liblib

♦♦ Bon niveau de performanceBon niveau de performance

Page 14: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 14 Rémy Courdier

Produits fournissant une interface avec les BD distantes (3)

Produits fournissant une interface Produits fournissant une interface avec les BD distantes (3) avec les BD distantes (3)

♦♦ DRDA : Architecture DRDA : Architecture MiddelwareMiddelware dd’’IBM IBM -- 19931993Solution propriSolution propriéétaire taire -- Standard de faitStandard de fait

BasBaséé sur DRDAsur DRDA

♦♦ EDA/SQL : Information EDA/SQL : Information BuilderBuilder -- 19951995respecte le standard CLI + interface native API EDArespecte le standard CLI + interface native API EDA

Support de DRDA + protocole propriSupport de DRDA + protocole propriéétaire EDA/taire EDA/LinkLink

Bonne couverture du marchBonne couverture du marchéé pour le multipour le multi--basesbases

♦♦ IDAPI : IDAPI : IIntegratedntegrated DDataBaseataBase APIAPIBorland, Novell et IBM en coopBorland, Novell et IBM en coopéération (au dration (au déépart...)part...)

ImplImpléémentation du Standard CLImentation du Standard CLI

intintééressant pour ces fonctionnalitressant pour ces fonctionnalitéés multis multi--bases mais bases mais succsuccèès mitigs mitigéé

Page 15: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 15 Rémy Courdier

Protocole de Communication Client/Serveur de procédures : RPC

Protocole de Communication Protocole de Communication Client/Serveur de procClient/Serveur de procéédures : RPC dures : RPC

♦♦ RPC : RPC : RRemoteemote PProcedurerocedure CCall (Xall (Xééroxrox--1981)1981)√√ Extension de lExtension de l’’appel dappel d’’une procune procéédure locale dure locale

classique classique àà ll’’appel dappel d’’une proc. une proc. àà distancedistance√√ Le RPC est synchrone pour assurer la transparence Le RPC est synchrone pour assurer la transparence

de lde l’’appel, mais peut être gappel, mais peut être géénnééralisraliséé au mode au mode asyncasync..√√ RPC doit rendre transparent les assemblages RPC doit rendre transparent les assemblages

((marshallingmarshalling) et ) et ddééassemblagesassemblages de paramde paramèètrestres

♦♦ Les souches (Les souches (StubStub))√√ ReprRepréésentant dsentant d’’une procune procéédure sur un site client ou dure sur un site client ou

serveur capable de recevoir un appel de procserveur capable de recevoir un appel de procéédure dure et de le transmettre en format adaptet de le transmettre en format adaptéé ààll’’implimpléémentation ou mentation ou àà son reprson repréésentant (autre site)sentant (autre site)

Page 16: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 16 Rémy Courdier

RPC : Illustration du mécanismeRPC : Illustration du mRPC : Illustration du méécanismecanisme

RPC : vue externe RPC : Illustration du mécanisme

Appelant

Appelé

Appelant

réseau d’interconnexionSouche

Call Foo

Execute Foo protocole RPC Souche

AssemblageDésassemblage

1

2

1 2

1 2

Appelé

Standards :• XDR (Sun)• Courrier (Xérox)• ASN.1 (CCITT)

Page 17: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 17 Rémy Courdier

Standard d’architectures C/S distribuées le protocole : DCE

Standard dStandard d’’architectures C/S distribuarchitectures C/S distribuéées es le protocole : DCEle protocole : DCE

♦♦ DCE : DCE : DDistributedistributed CComputingomputing EEnvironmentnvironmentStandard de lStandard de l’’OSF (92)OSF (92)

Standard proposStandard proposéé autour de POSIX pour le autour de POSIX pour le ddéévv. d. d’’appli. appli. C/S autour de rC/S autour de rééseaux locaux, nationaux et internat.seaux locaux, nationaux et internat.

♦♦ Standard dStandard d’é’échanges Client / Serveurchanges Client / ServeurType de donnType de donnéées pouvant être es pouvant être ééchangchangééss

Format des paquets qui transitent sur le rFormat des paquets qui transitent sur le rééseauseau

MMéécanisme dcanisme d’’appel (RPC)appel (RPC)

♦♦ Cellule dCellule d’’administrationadministrationSSéécuritcuritéé (login et authentification)(login et authentification)

RRéépertoire de ressources (annuaire)pertoire de ressources (annuaire)

Gestion dGestion d’’un temps global synchronisun temps global synchroniséé

Gestion de fichiers distribuGestion de fichiers distribuééss

Page 18: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 18 Rémy Courdier

Le RPC DCE et L’IDLLe RPC DCE et LLe RPC DCE et L’’IDLIDLRepose sur le langage de dRepose sur le langage de dééfinition dfinition d’’interface IDL interface IDL

DCE : DCE : IInterface nterface DDééfinition finition LLangage angage

Compilateur IDL

Fichier de définition d’interface (Source IDL)

Fichiers d’En-tête pour le codeClient et Serveur

fichier source de la Souche client

fichier source de la Souche serveur

Compilateur/Linker C, ADA, ....

exécutableclient

exécutableserveur

Page 19: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 19 Rémy Courdier

La cellule d’administration DCELa cellule dLa cellule d’’administration DCEadministration DCE

HOTE 1

Souche

Service temps

HOTE 2

HOTE 3

Service sécurité2. Login

DCE Client

3. @ serveur

Souche

Service annuaire1. Enregistrement

DCE Client

4. protocole RPC

DCE Serveur

.exe .exe

Page 20: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 20 Rémy Courdier

Le modèle transactionnelLe modLe modèèle transactionnelle transactionnel

♦♦ Transaction : suites de requêtes qui doit Transaction : suites de requêtes qui doit vvéérifier les propririfier les propriééttéés :s :√√ DD’’AAtomicittomicitéé : : ““On fait tout ou rienOn fait tout ou rien””√√ de de CCohohéérence : doit faire passer la BD drence : doit faire passer la BD d’’un un éétat tat

cohcohéérent rent àà un autreun autre√√ dd’’IIsolation : Rsolation : Réésultats visibles par les autres sultats visibles par les autres

transactions qutransactions qu’’une fois validune fois validééss√√ de de DDurabiliturabilitéé : R: Réésultats conservsultats conservéés en cas de pannes en cas de panne

♦♦ Standards pour moniteurs transactionnels :Standards pour moniteurs transactionnels :√√ Objectif : assurer le support de transactions Objectif : assurer le support de transactions ACIDACID

sur des donnsur des donnéées hes hééttéérogrogèènesnes

Page 21: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 21 Rémy Courdier

Le modèle transactionnel DTP de l’X/OpenLe modLe modèèle transactionnel DTP de lle transactionnel DTP de l’’X/OpenX/Open

♦♦ DTP : DTP : DDistributedistributed TTransaction ransaction PProcessingrocessing√√ standard proposstandard proposéé en fin 93 par len fin 93 par l’’X/OpenX/Open

SGBD relationnels du monde UNIX (SGBD relationnels du monde UNIX (biblibibli. de . de fctsfcts X/Open)X/Open)Moniteurs transactionnels : Top End (AT&T), CICS/6000 Moniteurs transactionnels : Top End (AT&T), CICS/6000 (IBM), (IBM), TuxedoTuxedo ( USL), Encina (( USL), Encina (TransarcTransarc))

♦♦ DTP comprend 2 niveaux dDTP comprend 2 niveaux d’’interfacesinterfaces√√ TX : pour lTX : pour l’é’écriture des transactions (92)criture des transactions (92)

Interface permettant dInterface permettant d’’invoquer le gestionnaire invoquer le gestionnaire transactionnel (TM : Transaction Manager)transactionnel (TM : Transaction Manager)

√√ XA : pour la gestion de ressources (91)XA : pour la gestion de ressources (91)Interface avec un gestionnaire de ressources (RM : Interface avec un gestionnaire de ressources (RM : ResourceResource Manager) gestionnaire de fichiers, SGBD, ....Manager) gestionnaire de fichiers, SGBD, ....Tout gestionnaire de donnTout gestionnaire de donnéée doit le doit l’’offrir pour soffrir pour s’’interfacer interfacer avec un moniteur transactionnel.avec un moniteur transactionnel.

Page 22: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 22 Rémy Courdier

Illustration du modèle DTPIllustration du modIllustration du modèèle DTPle DTP

HOTE 2

Programme d’application

Transaction Manager

InterfaceApplicative

TX

InterfaceRessources

XA

Transaction Manager

Ressource Manager

HOTE 1TX_OPEN : TM TX_OPEN : TM InitaliseInitalise la com. avec les RMla com. avec les RM

TX_BEGIN : TM demande aux RM de dTX_BEGIN : TM demande aux RM de déébuter buter une transactionune transaction

TX_COMMIT ou ROLLBACK : TM coordonne TX_COMMIT ou ROLLBACK : TM coordonne la validation ou lla validation ou l’’abandon sur tous les RMabandon sur tous les RM

TX_SET_TRANSACTION_TIMEOUTTX_SET_TRANSACTION_TIMEOUT

TX_INFO : info sur lTX_INFO : info sur l’é’état de la transactiontat de la transaction

XA_OPEN : ouvre un contexte pour lXA_OPEN : ouvre un contexte pour l’’appli.appli.

XA_START : dXA_START : déébute une transactionbute une transaction

XA_END : indique au RM quXA_END : indique au RM qu’’il nil n’’y aura y aura plus de requêtes pour la transactionplus de requêtes pour la transaction

XA_PREPARE : demande si RM XA_PREPARE : demande si RM pretpret àà faire faire la mise la mise àà jour pour la transaction jour pour la transaction

XA_COMMIT ou XA_ROOLBACK : Valide XA_COMMIT ou XA_ROOLBACK : Valide ou annule les effets de la transaction ou annule les effets de la transaction

Page 23: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 23 Rémy Courdier

Normes de Base de donnéesNormes de Base de donnNormes de Base de donnééeses♦♦ SQL SQL

√√ StructuredStructured QueryQuery LanguageLanguage / Langages de base de donn/ Langages de base de donnéées. es. Norme Norme de jurede jure: : ISO/IEC 9075ISO/IEC 9075, , ISO/IEC 9579ISO/IEC 9579--22. .

♦♦ SQLSQL--92 92 √√ Structured Query Language. Structured Query Language. Norme Norme de jurede jure: : ISO/IEC ISO/IEC 9075:19929075:1992, , ISO/IEC 9579ISO/IEC 9579--22, , ANSI X3.135ANSI X3.135--19921992. .

♦♦ SQL3 SQL3 √√ Structured Query Language (ObjectStructured Query Language (Object--oriented model). oriented model).

Norme Norme de factode facto..

♦♦ ODMGODMG√√ ODMGODMG--93 : 93 : ObjectObject DatabaseDatabase Management Group 93. Management Group 93.

Norme Norme de factode facto. . √√ ODL : ODL : ObjectObject DDééfinition langagefinition langage√√ OQL: OQL: ObjectObject QueryQuery LangageLangage

Page 24: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 24 Rémy Courdier

Le modèle relationnel et le standard SQL Le modLe modèèle relationnel et le standard SQL le relationnel et le standard SQL

♦♦ Le modLe modèèle relationnel le relationnel -- E.F. E.F. CoddCodd -- 19701970√√ haut degrhaut degréé dd’’indindéépendance : pendance :

Le client ne voit que des tables logiquesLe client ne voit que des tables logiques

affranchisstaffranchisst des mdes mééthodes de stockage et chemins dthodes de stockage et chemins d’’accaccèèss

√√ langage de dlangage de dééf. et de manipulation normalisf. et de manipulation normaliséé : SQL: SQLrequêtes non procrequêtes non procéédurales : durales : ééchanges de changes de ““soussous--tablestables””

Langage concis, non procLangage concis, non procéédural, ne contenant aucune dural, ne contenant aucune rrééfféérence rence àà un mode dun mode d’’accaccèès ou s ou àà une localisationune localisation

√√ bon traitement des problbon traitement des problèèmes de cohmes de cohéérencerencesupport des contraintes dsupport des contraintes d’’intintéégritgritéé basbaséées sur la logique du es sur la logique du 1er ordre1er ordre

√√ modmodèèle extensible : le extensible : modmodèèle pouvant être le pouvant être éétendu pour gtendu pour géérer des objets rer des objets complexes ou structurcomplexes ou structurééss

Page 25: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 25 Rémy Courdier

Le standard SQLLe standard SQLLe standard SQL

♦♦ SEQUEL : Langage propriSEQUEL : Langage propriéétaire IBMtaire IBMIBM IBM -- San JosSan Joséé -- Projet System R (Projet System R (RelationalRelational) )

NormalisNormaliséé sous le nom de SQL en 1986sous le nom de SQL en 1986

♦♦ Le Standard SQL Le Standard SQL éétendu en 1989 : SQLtendu en 1989 : SQL--8989√√ Principales PropriPrincipales Propriééttéés de SQL :s de SQL :

concis, non procconcis, non procéédural, dural,

ne contenant aucune rne contenant aucune rééfféérence rence àà un mode dun mode d’’accaccèès ou s ou ààune localisation de donnune localisation de donnéées es

√√ Contenu des spContenu des spéécifications SQL :cifications SQL :Langage de dLangage de dééfinition de schfinition de schéémas Tables, Vuesmas Tables, Vues

Langage de manipulation (sLangage de manipulation (séélections, lections, majmaj,contrôles),contrôles)

SpSpéécification de modules appelables (proccification de modules appelables (procéédures)dures)

IntIntéégration aux langages de programmation (curseurs)gration aux langages de programmation (curseurs)

Page 26: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 26 Rémy Courdier

Le nouveau standard SQL 2 (1992)Le nouveau standard SQL 2 (1992)Le nouveau standard SQL 2 (1992)

♦♦ SQL 2 : Un nouveau Standard SQL 2 : Un nouveau Standard àà 3 niveaux3 niveaux√√ EntryEntry SQL2SQL2

SQL1SQL1--89 + mineurs : nommer une colonne r89 + mineurs : nommer une colonne réésultat,...sultat,...

Standardisation code retour (SQLCODE)Standardisation code retour (SQLCODE)

√√ IntermediateIntermediate SQL2SQL2apport du concept de METABASE : base de donnapport du concept de METABASE : base de donnéées qui es qui contient la description dcontient la description d’’autres bases de donnautres bases de donnééeses

SQL DYNAMIQUE : prSQL DYNAMIQUE : prééparation de requêtes avec paration de requêtes avec instanciation de paraminstanciation de paramèètres. En C/S, tres. En C/S, éévite de compiler une vite de compiler une requête requête àà chaque exchaque exéécution par un poste clientcution par un poste client

DDééfinition de DOMAINE : finition de DOMAINE : ““CREATE DOMAINCREATE DOMAIN””, ..., ...

√√ Full SQL2Full SQL2Contraintes dContraintes d’’intintéégritgritéés complexes entre plusieurs tabless complexes entre plusieurs tables

Support Support éévoluvoluéé des dates et du temps, ...des dates et du temps, ...

Page 27: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 27 Rémy Courdier

Le standard de demain... SQL 3Le standard de demain... SQL 3Le standard de demain... SQL 3

♦♦ SQL 3 : C/S de DonnSQL 3 : C/S de Donnéées et de proces et de procééduresdures√√ ““Client InterfaceClient Interface”” (C/S de donn(C/S de donnéées)es)

support de lsupport de l’’interface CLI de linterface CLI de l’’X/Open (normalement...)X/Open (normalement...)

Fonctions permettant Fonctions permettant àà un client dun client d’’envoyer des requêtes envoyer des requêtes vers un serveur SQL et de rvers un serveur SQL et de réécupcupéérer les rrer les réésultatssultats

√√ ““StoredStored ProcedureProcedure”” (C/S de proc(C/S de procéédures)dures)ProcProcéédure exdure exéécutcutéée par le serveur et dont le code est e par le serveur et dont le code est mméémorismoriséé dans la BD et qui peut accdans la BD et qui peut accééder aux donnder aux donnéées de es de la BD pour calculer ces paramla BD pour calculer ces paramèètres de sortietres de sortie

SQL3 dSQL3 dééfinit son propre langage de programmation de finit son propre langage de programmation de procprocéédure. Ce langage peut sdure. Ce langage peut s’’interfacer avec dinterfacer avec d’’autres autres langages traditionnels tel que le C.langages traditionnels tel que le C.

Page 28: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 28 Rémy Courdier

Le standard de demain... SQL 3 (2)Le standard de demain... SQL 3 (2)Le standard de demain... SQL 3 (2)

♦♦ SQL 3 : vers lSQL 3 : vers l’’intintéégration de lgration de l’’objetobjet√√ ““SQL SQL ObjectObject““

Groupe de donnGroupe de donnéées structures structuréé (en g(en géénnééral un tuple), ral un tuple), possposséédant un identifiant constant, et manipuldant un identifiant constant, et manipuléé par des par des opopéérations (rations (storedstored procedureprocedure) associ) associéés au type du groupe s au type du groupe de donnde donnéée (la Classe en objet, le TYPE en SQL3)e (la Classe en objet, le TYPE en SQL3)

√√ CrCrééation de type dation de type d’’objet : les classes SQLobjet : les classes SQLCREATE TYPE Etudiant (CREATE TYPE Etudiant (NoCarteEtudNoCarteEtud intint, nom , nom varcharvarchar););

√√ HHééritage des opritage des opéérations et attributs des surrations et attributs des sur--typestypesCREATE TYPE Etudiant3Cycle CREATE TYPE Etudiant3Cycle

UNDER Etudiant (filiUNDER Etudiant (filièère re varcharvarchar, ann, annéée e intint).).

Support de lSupport de l’’hhéértagertage multiple multiple

√√ Support dSupport d’’attributs attributs multimulti--valuvaluééssSET (ensemble), SET (ensemble), multisetmultiset (multi(multi--ensembles), LIST (liste)ensembles), LIST (liste)

Page 29: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 29 Rémy Courdier

Le standard de demain... SQL 3 (3)Le standard de demain... SQL 3 (3)Le standard de demain... SQL 3 (3)

♦♦ SQL 3 : Autres extensions importantesSQL 3 : Autres extensions importantes√√ ““RecursiveRecursive QueryQuery””

possibilitpossibilitéé de parcours de relations reprde parcours de relations repréésentant des sentant des graphes : rgraphes : rééalisation de boucles de jointures ralisation de boucles de jointures réécursivement cursivement sur un table, afin de parcourir des hisur un table, afin de parcourir des hiéérarchies de type rarchies de type composants/composcomposants/composéés.s.

√√ ““TriggerTrigger””action action àà exexéécuter suite cuter suite àà un un éévvéénement spnement spéécifique pouvant cifique pouvant être dêtre déépendant dpendant d’’une condition une condition àà vvéérifier dans la BDrifier dans la BD

√√ éévvéénement = INSERT, UPDATE ou DELETE sur un tablenement = INSERT, UPDATE ou DELETE sur un table

√√ action = INSERT, UPDATE ou DELETE sur un tableaction = INSERT, UPDATE ou DELETE sur un table

CREATE TRIGGERAFTER UPDATE OF noteSport ON étudiantREFERENCING OLD AS old_note

NEW AS new_note

CREATE TRIGGERAFTER UPDATE OF noteSport ON étudiantREFERENCING OLD AS old_note

NEW AS new_note

UPDATE POINT_BONUSSET bonus = bonus + new_note - old_noteWHERE ID = étudiant.ID

UPDATE POINT_BONUSSET bonus = bonus + new_note - old_noteWHERE ID = étudiant.ID

Page 30: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 30 Rémy Courdier

ODMG : Object Data Management GroupODMG : ODMG : ObjectObject Data Management GroupData Management Group

♦ « Several studies in the late 1980s-1990s that analyzed large bodies of applications written against the relational API (SQL) showed that :√ 30-40% of the RDBMS calls in the application are actually

"standard SQL"; √ the other 60-70% use vendor-specific ex-tensions.

The result is that the relational standard does not in practice deliver the source-code-level application portability that itpromised. »

Source ODMG : http://www.odmg.org/

The ODMG is an Object Storage API standard that can workwith any (DBMS) DataBases Management Systems or tool. The ODMG is in the process of changing all references to

Object DataBases (ODBMS) to Object Data

Page 31: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 31 Rémy Courdier

Les spécifications de l’ODMG 2.0Les spLes spéécifications de lcifications de l’’ODMGODMG 2.02.0

♦ ODMG/OM : Object Model.√ OMG/OM étendu par les aspect suivants : √ persistent objects, properties (attributes and relationships), queries, transactions

♦ ODL : Object Definition Language√ Joue le rôle des traditionnels Database Définition Langage (DDL) √ OMG interface definition language (IDL) étendu par les concepts de l’ODMG/OM √ indépendant de tout langage de programmation.

♦ OQL : Object Query Language√ Langage déclaratif (non procédural) pour l’interrogation et la mise à jour de bases

de données objets. √ SQL a été utilisé comme base à la définition de OQL qui peut être vu comme une

extension de SQL

♦ Language Binding (C++, Smalltalk, Java)√ Spécification des mécanismes d’invocation OQL et des méthodes de gestions de

données et de transactions pour chacun de ces langages.

Page 32: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 32 Rémy Courdier

« Object Model », OMG et ODBMS «« ObjectObject ModelModel »», OMG et ODBMS , OMG et ODBMS

Le modLe modèèle objet proposle objet proposéé par lpar l’’ODBMGODBMG est une extension du modest une extension du modèèle le proposproposéé par lpar l’’OMGOMG mais spmais spéécifiant les aspects habituellement cifiant les aspects habituellement

ggéérréés par les Bases de donns par les Bases de donnéées. es.

Un exemple d’implémentation du modèle de ODBMG :

JDO Java Data Object

ODBMS/ObjectModel

OMG/ObjectModel

Page 33: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 33 Rémy Courdier

Points de Contacts utilsPoints de Contacts Points de Contacts utilsutils

♦♦ Organismes de StandardisationOrganismes de Standardisation√√ ANSI : New York ANSI : New York -- Fax : 212 398 00 23Fax : 212 398 00 23√√ IEEE : IEEE : www.ieee.orgwww.ieee.org ((InstituteInstitute of of ElectricalElectrical and and ElectronicsElectronics EngineersEngineers))√√ ISO : ISO : www.iso.chwww.iso.ch (internat. Organisation (internat. Organisation sforsfor StandardizationStandardization))

√√ OpenGroupOpenGroup : : http://www.opengroup.orghttp://www.opengroup.org√√ ObjectObject Data Management Group : Data Management Group : http://www.odmg.org/http://www.odmg.org/

♦♦ CompagniesCompagnies√√ IBM : IBM : www.ibm.comwww.ibm.com ou ou www.ibm.frwww.ibm.fr (DRDA, SOM/DSOM,...)(DRDA, SOM/DSOM,...)√√ Microsoft : Microsoft : www.microsoft.comwww.microsoft.com (ODBC, OLE, COM,...)(ODBC, OLE, COM,...)√√ ORACLE : ORACLE : www.oracle.comwww.oracle.com√√ SUN : SUN : www.sun.comwww.sun.com (JDBC, JDO)(JDBC, JDO)

Page 34: 3 Std CS Donnees - Université de La Réunionlim.univ-reunion.fr/staff/courdier/old/cours/... · Client/Serveur de procédures : RPC Protocole de Communication Client/Serveur de procClient/Serveur

Client-Serveur : Normes et Standards 34 Rémy Courdier

Normes et Standardspour C/S de données et procédures

Normes et StandardsNormes et Standardspour C/S de donnpour C/S de donnéées et proces et procééduresdures

Questions ?Questions ?