Client / Serveur
Transcription
Client / Serveur
Client / Serveur Rémy Courdier Normes et Standards pour C/S de données et procédures Client-Serveur : Normes et Standards 1 Rémy Courdier Normes et Standards du Client -Serveur Client-Serveur de donn ées et de proc édures données procédures √ L’importance des √ Produits pour C/S de √ L’OSF et L’X/Open √ Protocoles pour C/S données : ODBC, JDBC, IDAPI standards de procédures: RPC √ Le Standard CLI √ Standard pour le C/S distribué : DCE √ Les protocoles de communications pour C/S de données: RDA √ Le modèle transactionnel DTP √ SQL et Le modèle Relationnel Client-Serveur : Normes et Standards 2 Rémy Courdier L ’importance des standards L’importance Institut internat. de Standardisation : ISO Branche nord Américaine de L’ISO : L’ANSI American National Standard Institute le CCITT télécom, l’IEEE Système d’exploit., ... Tunnel Open Group = fusion OSF & X/Open Utilisateurs : Fournisseurs : Client-Serveur : Normes et Standards 3 X/Open (84) OSF & Unix internat. Rémy Courdier The Open Groupe Consortiums Consortiums de de fournisseurs fournisseurs de de solutions solutions logicielles logicielles ouvertes ouvertes ♦ L’Open Groupe : http://www.opengroup.org/ √ ex Open Software Foundation(OSF) + X/Open √ consortium de constructeurs et d’utilisateurs promouvant les systèmes ouverts « inter-opérables ». « What is Interoperability? Interoperabilityis the ability to both exchange information and to use it. » ♦ L’Open Groupe propose des certifications : √ √ √ √ Wap : http://www.opengroup.org/wap/cert/index.html UNIX® : http://www.unix-systems.org/ CORBA® : http://www.opengroup.org/procurement/corba_tools.htm LDAP® : http://www.opengroup.org/directory/ Client-Serveur : Normes et Standards 4 Rémy Courdier Principaux membres de ll’Open ’Open Groupe √ Platinum membership √ The total number of members is 8 Company Country Compaq Computer Corporation USA Fujitsu Limited Japan Fujitsu Siemens Computers Germany Hewlett-Packard Company USA Hitachi Limited Japan IBM Corporation USA Motorola, Inc. USA Sun Microsystems, Inc USA √ Gold membership √ The total number of members is 4 Company Country Computer Associates International, Inc. USA SCO USA Teamcall Ltd UK Tivoli Systems Inc. USA √ Silver membership √ The total number of members is 145 Client-Serveur : Normes et Standards 5 Rémy Courdier Principales mission de ll’Open ’Open Groupe Organisation ’utilisateurs cr éée en Organisation de de fournisseurs fournisseurs et et dd’utilisateurs créée en 1984 1984 ♦ Animation de Groupes de travail et Forum √ développement de Standards d’interfaces applicatives √ portabilité des logiciels applicatifs… ♦ Recherche et Conférences √ interface utilisateur commune, interf. de prog. commune, modèle commun d’interconnexion. √ standards pour les interfaces avec l’OS (POSIX), Les Langages (C, ADA,...), La gestion de données(SQL), les réseaux (Interf. Transport), fenêtrage (X/Windows)… ♦ Certification √ « The Certification Programs operated by The Open Group include a guarantee of conformance to open standards or specifications. » Client-Serveur : Normes et Standards 6 Rémy Courdier allable L evel IInterface nterface Le Standard CLI - C Callable Level ♦ CLI est une API {fct Std} pour serveur SQL Proposition du SQL Access Group (SAG) Standardisé par le CAE de l’X/OPEN - ISO 9075-3” (1996) http://www.opengroup.org/products/publications/catalog/c451.htm ♦ Défini une interface de bas niveau Langage cible pour pré-processeurs de langages de programmation intégré à SQL CLI définit des données de base : √ des structure de données spécifiants les variables : √ √ √ ♦ CHAR, SMALLINT, INTEGER, POINTEUR,... de contexte d’un env. de base de données - AllocEnv() d’une connexion pour l’accès à un serveur - AllocConnect() d’un ordre SQL - AllocStmt() CLI définit des fonctions : CONNECT, DISCONNECT... Std fondamental : Une implémentation = ODBC Client-Serveur : Normes et Standards 7 Rémy Courdier Principales fonctions de CLI Connect() et Disconnect() : Ouverture/fermeture connexion AllocEnv() et FreeEnv() : contexte BD AllocConnect() et FreeConnect() : contexte de connection AllocStmt() et FreeStmt() : contexte d’ordre SQL Prepare() : Préparation d’un ordre Execute() : Exécution d’un ordre préparé ExecDirect() : Ecécution direct d’un ordre SetCursorName() : pos. d’un nom de curseur DescribeAtt() : Obtention du desc. d’une colonne résultat Fetch() : Lecture du tuple suivant RowCount() : Nombre de lignes affectées par un ordre SQL Transact() : Validation ou annulation d’une transaction Cancel() : Annulation d’un ordre SQL en exécution Error() : Retour des info. d’erreurs des contextes Client-Serveur : Normes et Standards 8 Rémy Courdier Encha înement des appels fonctionnels Enchaînement Exécution multiple ? AllocEnv() AllocConnect() Connect() AllocStmt() OUI Prépare() SetParamValue() Execute() SELECT NumResultCols() DescribeCol() BindCol() DELETE INSERT UPDATE Fetch() RowCount() Transact() D’autres lignes ? Client-Serveur : Normes et Standards SetParamValue() ExecDirect() Type d’ordre ? Envoi de requêtes Reception de résultats FreeStmt() Disconnect() FreeConnect() FreeEnv() NON 9 Rémy Courdier Protocoles de Communication Client/Serveur de donn ées : RDA données ♦ RDA : Remote Data Access (ISO/IEC 9579-1 et ISO/IEC9579-2) √ définit les règles entre un client qui émet une requête et un serveur qui l’exécute. √ objectif : réglementer l’accès à des BD distantes ♦ Appelé : “Transporteur de requêtes” : √ mise en oeuvre d’un protocole de niveau application du modèle OSI de l’ISO. √ expédier des requêtes à des services distants et récupérer les réponses √ s’appuie sur des protocoles de transports standards ♦ Utilisé par DRDA (IBM), ... Client-Serveur : Normes et Standards 10 Rémy Courdier Principaux types de messages pour le transport de requêtes SQL dans RDA Initialize() et Terminate() : Init/fin d’une requête BeginTransaction() : Début de transaction Commit() : Validation de transaction Rollback() : Reprise de transaction Cancel(): Annulation de requête Status() : Demande d’état d’une requête Open() et Close() : Ouverture/Fermeture d’une ressource ExecuteDBL() : Exécution d’une requête Base de Données DefineDBL() : Préparation d’une requête Base de Données InvokeDBL() : Invocation d’une requête préparée DropDBL() : Suppression d’une requête Base de Données Ces messages sont normalisés dans le protocole RDA Client-Serveur : Normes et Standards 11 Rémy Courdier Produits fournissant une interface avec les BD distantes (1) ♦ ODBC : Open DataBase Connectivity ♦ JDBC : Java DataBase Connection ♦ Microsoft -1992 ODBC SDK 1.0 Implemente et enrichi le X/Open SQL CLI API Procédural (Handles et API Calls) Intégré à Windows et à tous les produits Microsoft (Acces, Visual C++(MFC), Visual Basic) et d’autres constrructeurs Définit conjointement par JavaSoft, Sybase, Informix, IBM,... Implemente et enrichi le X/Open SQL CLI : “JDBC is a Native Java Implementation of the SQL CLI”. API Objet (objets, interfaces et méthodes) Intégré dans tous les produits Java Performances moyennes : empilement de couches Client-Serveur : Normes et Standards 12 Rémy Courdier Produits fournissant une interface avec les BD distantes (2) ♦ SQL*NET d’ORACLE - 1994 ♦ la DB-LIB de Sybas ♦ Proche du standard CLI en plus riche... invoqué directement par l’interface OCI (Oracle Common Interface) Permet à tout Client disposant de SQL*Net, l’appel de tout serveur Oracle par un protocol de com. quelconque db-lib : Bibliothèque de fonctions et de macros proches du standard CLI en plus riche Permet de récupérer toutes lesdonnées souhaitées et de les traiter dans des outils interfacés à la db-lib Bon niveau de performance Client-Serveur : Normes et Standards 13 Rémy Courdier Produits fournissant une interface avec les BD distantes (3) ♦ DRDA : Architecture Middelware d’IBM - 1993 ♦ EDA/SQL : Information Builder - 1995 ♦ Solution propriétaire - Standard de fait Basé sur DRDA respecte le standard CLI + interface native API EDA Support de DRDA + protocole propriétaire EDA/Link Bonne couverture du marché pour le multi-bases IDAPI : Integrated DataBase API Borland, Novell et IBM en coopération (au départ...) Implémentation du Standard CLI intéressant pour ces fonctionnalités multi-bases mais succès mitigé Client-Serveur : Normes et Standards 14 Rémy Courdier Protocole de Communication Client/Serveur de proc édures : RPC procédures ♦ RPC : Remote Procedure Call (Xérox-1981) √ Extension de l’appel d’une procédure locale classique à l’appel d’une proc. à distance √ Le RPC est synchrone pour assurer la transparence de l’appel, mais peut être généralisé au mode async. √ RPC doit rendre transparent les assemblages (marshalling) et déassemblages de paramètres ♦ Les souches (Stub) √ Représentant d’une procédure sur un site client ou serveur capable de recevoir un appel de procédure et de le transmettre en format adapté à l’implémentation ou à son représentant (autre site) Client-Serveur : Normes et Standards 15 Rémy Courdier RPC : Illustration du m écanisme mécanisme 1 Appelant Assemblage 2 Désassemblage Appelant Standards : • XDR (Sun) • Courrier (Xérox) • ASN.1 (CCITT) Call Foo 2 1 Souche Execute Foo protocole RPC Appelé RPC : vue externe Client-Serveur : Normes et Standards réseau d’interconnexion 1 2 Souche Appelé RPC : Illustration du mécanisme 16 Rémy Courdier Standard d ’architectures C/S distribu ées d’architectures distribuées le protocole : DCE ♦ DCE : Distributed Computing Environment ♦ Standard d’échanges Client / Serveur ♦ Standard de l’OSF (92) Standard proposé autour de POSIX pour le dév. d’appli. C/S autour de réseaux locaux, nationaux et internat. Type de données pouvant être échangés Format des paquets qui transitent sur le réseau Mécanisme d’appel (RPC) Cellule d’administration Sécurité (login et authentification) Répertoire de ressources (annuaire) Gestion d’un temps global synchronisé Gestion de fichiers distribués Client-Serveur : Normes et Standards 17 Rémy Courdier Le RPC DCE et L ’IDL L’IDL Repose sur le langage de définition d’interface IDL DCE : Interface Définition Langage Fichier de définition d’interface (Source IDL) Compilateur IDL fichier source de la Souche client Fichiers d’En-tête pour le codeClient et Serveur fichier source de la Souche serveur Compilateur/Linker C, ADA, .... exécutable serveur exécutable client Client-Serveur : Normes et Standards 18 Rémy Courdier La cellule d ’administration DCE d’administration HOTE 3 Service temps 2. Login Service sécurité 3. @ serveur 1. Enregistrement Service annuaire DCE Serveur DCE Client DCE Client HOTE 1 HOTE 2 .exe .exe 4. protocole RPC Souche Souche Client-Serveur : Normes et Standards 19 Rémy Courdier Le mod èle transactionnel modèle ♦ Transaction : suites de requêtes qui doit vérifier les propriétés : √ D’Atomicité : “On fait tout ou rien” √ de Cohérence : doit faire passer la BD d’un état cohérent à un autre √ d’Isolation : Résultats visibles par les autres transactions qu’une fois validés √ de Durabilité : Résultats conservés en cas de panne ♦ Standards pour moniteurs transactionnels : √ Objectif : assurer le support de transactions ACID sur des données hétérogènes Client-Serveur : Normes et Standards 20 Rémy Courdier Le mod èle transactionnel DTP de ll’X/Open ’X/Open modèle ♦ DTP : Distributed Transaction Processing √ standard proposé en fin 93 par l’X/Open ♦ SGBD relationnels du monde UNIX (bibli. de fcts X/Open) Moniteurs transactionnels : Top End (AT&T), CICS/6000 (IBM), Tuxedo ( USL), Encina (Transarc) DTP comprend 2 niveaux d’interfaces √ TX : pour l’écriture des transactions (92) Interface permettant d’invoquer le gestionnaire transactionnel (TM : Transaction Manager) √ XA : pour la gestion de ressources (91) Interface avec un gestionnaire de ressources (RM : Resource Manager) gestionnaire de fichiers, SGBD, .... Tout gestionnaire de donnée doit l’offrir pour s’interfacer avec un moniteur transactionnel. Client-Serveur : Normes et Standards 21 Rémy Courdier Illustration du mod èle DTP modèle HOTE 1 Programme d’application Interface Applicative TX Transaction Manager TX_OPEN : TM Initalise la com. avec les RM TX_BEGIN : TM demande aux RM de débuter une transaction TX_COMMIT ou ROLLBACK : TM coordonne la validation ou l’abandon sur tous les RM TX_SET_TRANSACTION_TIMEOUT TX_INFO : info sur l’état de la transaction HOTE 2 XA_OPEN : ouvre un contexte pour l’appli. XA_START : débute une transaction XA_END : indique au RM qu’il n’y aura plus de requêtes pour la transaction XA_PREPARE : demande si RM pret à faire la mise à jour pour la transaction XA_COMMIT ou XA_ROOLBACK : Valide ou annule les effets de la transaction Client-Serveur : Normes et Standards 22 Transaction Manager Interface Ressources XA Ressource Manager Rémy Courdier Normes de Base de donn ées données ♦ SQL √ Structured Query Language / Langages de base de données. Norme de jure: ISO/IEC 9075, ISO/IEC 9579-2. ♦ SQL-92 √ Structured Query Language. Norme de jure: ISO/IEC 9075:1992, ISO/IEC 9579-2, ANSI X3.135-1992. ♦ SQL3 √ Structured Query Language (Object-oriented model). Norme de facto. ♦ ODMG √ ODMG-93 : Object Database Management Group 93. Norme de facto. √ ODL : Object Définition langage √ OQL: Object Query Langage Client-Serveur : Normes et Standards 23 Rémy Courdier Le mod èle relationnel et le standard SQL modèle ♦ Le modèle relationnel - E.F. Codd - 1970 √ haut degré d’indépendance : Le client ne voit que des tables logiques affranchisst des méthodes de stockage et chemins d’accès √ langage de déf. et de manipulation normalisé : SQL requêtes non procédurales : échanges de “sous-tables” Langage concis, non procédural, ne contenant aucune référence à un mode d’accès ou à une localisation √ bon traitement des problèmes de cohérence support des contraintes d’intégrité basées sur la logique du 1er ordre √ modèle extensible : modèle pouvant être étendu pour gérer des objets complexes ou structurés Client-Serveur : Normes et Standards 24 Rémy Courdier Le standard SQL ♦ SEQUEL : Langage propriétaire IBM ♦ IBM - San José - Projet System R (Relational) Normalisé sous le nom de SQL en 1986 Le Standard SQL étendu en 1989 : SQL-89 √ Principales Propriétés de SQL : concis, non procédural, ne contenant aucune référence à un mode d’accès ou à une localisation de données √ Contenu des spécifications SQL : Langage de définition de schémas Tables, Vues Langage de manipulation (sélections, maj,contrôles) Spécification de modules appelables (procédures) Intégration aux langages de programmation (curseurs) Client-Serveur : Normes et Standards 25 Rémy Courdier Le nouveau standard SQL 2 (1992) ♦ SQL 2 : Un nouveau Standard à 3 niveaux √ Entry SQL2 SQL1-89 + mineurs : nommer une colonne résultat,... Standardisation code retour (SQLCODE) √ Intermediate SQL2 apport du concept de METABASE : base de données qui contient la description d’autres bases de données SQL DYNAMIQUE : préparation de requêtes avec instanciation de paramètres. En C/S, évite de compiler une requête à chaque exécution par un poste client Définition de DOMAINE : “CREATE DOMAIN”, ... √ Full SQL2 Contraintes d’intégrités complexes entre plusieurs tables Support évolué des dates et du temps, ... Client-Serveur : Normes et Standards 26 Rémy Courdier Le standard de demain... SQL 3 ♦ SQL 3 : C/S de Données et de procédures √ “Client Interface” (C/S de données) support de l’interface CLI de l’X/Open (normalement...) Fonctions permettant à un client d’envoyer des requêtes vers un serveur SQL et de récupérer les résultats √ “Stored Procedure” (C/S de procédures) Procédure exécutée par le serveur et dont le code est mémorisé dans la BD et qui peut accéder aux données de la BD pour calculer ces paramètres de sortie SQL3 définit son propre langage de programmation de procédure. Ce langage peut s’interfacer avec d’autres langages traditionnels tel que le C. Client-Serveur : Normes et Standards 27 Rémy Courdier Le standard de demain... SQL 3 (2) ♦ SQL 3 : vers l’intégration de l’objet √ “SQL Object“ Groupe de données structuré (en général un tuple), possédant un identifiant constant, et manipulé par des opérations (stored procedure) associés au type du groupe de donnée (la Classe en objet, le TYPE en SQL3) √ Création de type d’objet : les classes SQL CREATE TYPE Etudiant (NoCarteEtud int, nom varchar); √ Héritage des opérations et attributs des sur-types CREATE TYPE Etudiant3Cycle UNDER Etudiant (filière varchar, année int). Support de l’hértage multiple √ Support d’attributs multi-valués SET (ensemble), multiset (multi-ensembles), LIST (liste) Client-Serveur : Normes et Standards 28 Rémy Courdier Le standard de demain... SQL 3 (3) ♦ SQL 3 : Autres extensions importantes √ “Recursive Query” possibilité de parcours de relations représentant des graphes : réalisation de boucles de jointures récursivement sur un table, afin de parcourir des hiérarchies de type composants/composés. √ “Trigger” action à exécuter suite à un événement spécifique pouvant être dépendant d’une condition à vérifier dans la BD √ √ événement = INSERT, UPDATE ou DELETE sur un table action = INSERT, UPDATE ou DELETE sur un table CREATE CREATETRIGGER TRIGGER UPDATE UPDATEPOINT_BONUS POINT_BONUS AFTER UPDATE OF noteSport ON étudiant AFTER UPDATE OF noteSport ON étudiant SET bonus = bonus + new_note - old_note SET bonus = bonus + new_note - old_note REFERENCING REFERENCING OLD OLDAS ASold_note old_note WHERE WHEREID ID==étudiant.ID étudiant.ID NEW AS new_note NEW AS new_note Client-Serveur : Normes et Standards 29 Rémy Courdier ODMG : Object Data 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 it promised. » Source ODMG : http://www.odmg.org/ The ODMG is an Object Storage API standard that can work with any (DBMS) DataBases Management Systems or tool. The ODMG is in the process of changing all references to Object DataBases (ODBMS) to Object Data Client-Serveur : Normes et Standards 30 Rémy Courdier Les sp écifications de ll’ODMG ’ODMG 2.0 spécifications ♦ ODMG/OM : Object Model. √ √ ♦ 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 √ √ ♦ OMG/OM étendu par les aspect suivants : persistent objects, properties (attributes and relationships), queries, transactions 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. Client-Serveur : Normes et Standards 31 Rémy Courdier « Object Model »»,, OMG et ODBMS ODBMS/Object Model OMG/Object Model Un exemple d’implémentation du modèle de ODBMG : JDO Java Data Object Le modèle objet proposé par l’ODBMG est une extension du modèle proposé par l’OMG mais spécifiant les aspects habituellement gérés par les Bases de données. Client-Serveur : Normes et Standards 32 Rémy Courdier Points de Contacts utils ♦ Organismes de Standardisation √ √ √ √ √ ♦ ANSI : New York - Fax : 212 398 00 23 IEEE : www.ieee.org (Institute of Electrical and Electronics Engineers) ISO : www.iso.ch (internat. Organisation sfor Standardization) OpenGroup : http://www.opengroup.org Object Data Management Group : http://www.odmg.org/ Compagnies √ √ √ √ IBM : www.ibm.com ou www.ibm.fr (DRDA, SOM/DSOM,...) Microsoft : www.microsoft.com (ODBC, OLE, COM,...) ORACLE : www.oracle.com SUN : www.sun.com (JDBC, JDO) Client-Serveur : Normes et Standards 33 Rémy Courdier Normes Normes et et Standards Standards pour ées et édures pour C/S C/S de de donn données et proc procédures Questions ? Client-Serveur : Normes et Standards 34 Rémy Courdier