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