1. CLIENT-SERVEUR
Architecture client-serveur (client-server architecture) : modèle d’architecture applicative où les
programmes sont répartis entre processus clients et serveurs communiquant par des requêtes avec
réponses
Client (client) : processus demandant l’exécution d’une opération à un autre processus (serveur)
par l’envoi d’un message contenant son descriptif et attendant la réponse par un message en
retour
Serveur (server) : processus accomplissant une opération sur demande d’un client et lui
transmettant la réponse
Requête (request) : message transmis par un client à un serveur décrivant l’opération à exécuter
Réponse (reply) : message transmis par un serveur à un client suite à l’exécution d’une opération
contenant les paramètres de retour de l’opération
Composants :
Système ouvert (solution non propriétaire basée sur des standards de ISO, ANSI, IEEE,
X/Open, OMG, OSF)
SGBD relationnel + SQL sur le serveur
Stations de travail personnelles (interface graphique, connexion au réseau)
Outils de développement d’applications variés
Logiciels de transport de requête et de réponses
Outils de conception, de déploiement et de maintenance
1ère génération (début années 80)
Développement en SQL sur le serveur géré par un SGBD relationnel
Développement des applications en L4G + SQL + interface graphique sur le client
ème
2 génération (milieu années 90)
Traitements applicatifs au sein du serveur (procédures stockées)
Approche orientée objet (interface graphique, modélisation des données)
Déploiement de l’applicatif facilité (partitionnement automatique du code de l’applicatif
entre client et serveur) par la gestion d’un référentiel des objets de l’application au sein du
serveur
2. CLIENT-SERVEUR (SUITE 1/2)
Client-Serveur de présentation (presentation client-server) : un processus exécute uniquement les
fonctions de dialogue avec l’utilisateur, l’autre gérant les données et exécutant le code applicatif
Rhabillage (revamping) : un processus exécute les fonctions de dialogue sophistiquées avec
l’utilisateur, l’autre gérant les données et exécutant le code applicatif et assurant les dialogues
simplifiés avec le client
Client-Serveur de données (data client-server) : un programme applicatif contrôlé par une
interface de présentation sur une machine cliente accède à des données sur une machine serveur
par des requêtes de manipulation de données
Client-Serveur de procédures (procedure client-server) : un programme applicatif contrôlé par
une interface de présentation sur une machine cliente sous-traite l’exécution de procédures
applicatives à une machine serveur (ces procédures encapsulent le plus souvent la base de
données)
Client-Serveur de données et de procédures :
Clients : possèdent du code de l’application non directement lié aux données
dialogues interactifs avec l’utilisateur, traitements spécialisés des messages, affichage des
résultats
Serveur : stockage, distribution, sécurité des données ; accès transactionnels et décisionnels
SGBDR + procédures stockées
Réseau : transfert des demandes et des résultats ; connectabilité outils client au serveur
3. CLIENT-SERVEUR (SUITE 2/2)
Médiateur (middleware) : ensemble des services logiciels construits au dessus d’un protocole de
transport afin de permettre l’échange des requêtes et des réponses associées entre client et
serveur de manière transparente (afin de cacher l’hétérogénéité des composants mis en œuvre ce
qui suppose un format d’échange standard pour les différents codages internes)
Procédure de connexion (connection procedure) : opération consistant à ouvrir un chemin depuis
un client vers un serveur (après authentification)
Procédure de requête (request preparation) : opération consistant à envoyer un requête avec des
paramètres non instanciés à un serveur afin qu’il prépare son exécution (compilation et définition
du plan d’exécution)
Exécution de requête (request execution) : opération consistant à envoyer une demande
d’exécution d’une requête précédemment préparée à un serveur, en fournissant les valeurs des
paramètres
Récupération des résultats (result fetching) : opération consistant à ramener tout ou partie du
résultat d’une requête sur le client
Procédure de déconnexion (deconnection procedure) : opération consistant à fermer le chemin
ouvert allant du client vers le serveur
Cache des résultats (result caching) : technique permettant de transférer les résultats par blocs et
de les conserver sur le client et/ou le serveur afin de les réutiliser pour répondre à des requêtes
Cache des requêtes (request caching) : technique permettant de conserver des requêtes compilées
(avec leurs plans d’exécution) sur le serveur afin de les réutiliser pour répondre à des requêtes
similaires
Transparence aux réseaux (établissement d’une session)
Transparence aux serveurs (malgré dialectes différents)
Transparence aux langages (par les fonctions)
Assemblage (marshalling) : procédé consistant à prendre une collection de paramètres et à les
arranger et à les coder en format externe pour constituer un message à émettre
Désassemblage (unmarshalling) : procédé consistant à prendre un message en format externe et à
reconstituer la collection des paramètres qu’il représente en format interne
Appel de procédure à distance (remote procedure call) : technique permettant d’appeler une
procédure distante comme une procédure locale (transparence des messages envoyés et
assemblages/désassemblages de paramètres)
Dialogue synchrone (dialogue sans file d’attente ; émissions et réceptions sont bloquantes) ou
asynchrone (dialogue avec file d’attente ; l’une des émissions ou réceptions n’est pas bloquante)
4. SQL 3
SQL 1 (1986 1989) : norme de base
SQL 2 (1992)
SQL 2 entré : omissions de SQL 1
SQL 2 intermédiaire : schéma, SQL dynamique, domaines, jointure externe, mises à jour
en cascade
SQL 2 complet : véritable langage de base de données
SQL 3 (1997-98)
Interface client (client interface) : ensemble de fonctions permettant d’envoyer des
requêtes et de récupérer les résultats depuis un processus client vers un serveur SQL
Procédures stockées (stored procedure) : procédure dont la définition est stockée dans la
base de données, exécutée par le serveur, permettant de calculer des paramètres de sortie à
partir de paramètres en entrée et du contenu de la base de données
Objets SQL (SQL object) : groupe de données structuré, manipulé par des opérations
spécifiées lors de la définition du type (attributs et opérations, privé ou public, sous-type
hérité d’un ou plusieurs sur-types, attributs multi-valués, etc.) de l’objet et identifié par un
identifiant immuable
Question récursive (recursive query) : pour les jointures récursives sur une relation
Déclencheur (trigger) : action sur la base de données à exécuter avant ou après l’apparition
d’un événement
5. ENTREPÔT DE DONNÉES
Entrepôt de données (data warehouse) ::= serveur de données gérant des bases avec historiques,
organisées par sujet spécifique, consolidées à partir de bases applicatives hétérogènes, aidant à la
prise de décision dans l’organisation
Fonctions :
Extraction de données : un moniteur détecte les mises à jour sur les bases légataires
Collecteur : intégration des mises à jour des différentes bases dans l’entrepôt
Analyse de données : prise de décision à l’aide de requêtes et d’une présentation graphique