LO14 : Université Technologique <strong>de</strong> TroyesNous avons déjà étudié au chapitre 6 le partage <strong>de</strong> fichiers UNIX dans le mon<strong>de</strong> UNIX : NFS. Nous allonsétudier maintenant <strong>de</strong>ux exemp<strong>les</strong> pour <strong>les</strong>quels <strong>les</strong> <strong>systèmes</strong> <strong>d'exploitation</strong>s entre le client et le serveurpeuvent être complètement différents.1°) Le cas SambaUn australien Andrew Tridgell a réalisé un produit appelé Samba (variation <strong>sur</strong> SMB=Server message Block<strong>de</strong> Microsoft) qui permet <strong>de</strong> réaliser un serveur tournant sous LINUX pour <strong>de</strong>s clients Microsoft (Windows95, 98, NT).Nous en sommes maintenant à la version 2 (http://www.samba.org)NetBIOS est le premier protocole réseau utilisé pour partager <strong>de</strong>s fichiers entre micros (conçu par IBM etutilisé par Windows 3.11. Il peut être encapsulé dans <strong>de</strong>s trames TCP/IP comme dans le cas <strong>de</strong> Samba. Ceprotocole utilise un fonctionnement peu courant : la troisième couche OSI n'étant pas utilisée le protocolen'est pas routable. Chaque machine doit donc tenir à jour <strong>de</strong>s tab<strong>les</strong>.SMB fonctionne en client serveur, mais une machine peut être à la fois cliente et serveur.La configuration <strong>de</strong> Samba se fait à l'ai<strong>de</strong> d'un fichier unique : smb.conf. Ce fichier comporte trois sectionsdébutant par son nom entre cochets et finissant quand l'autre section commence ou en fin <strong>de</strong> fichier :[global] définit <strong>les</strong> paramètres pour l'ensemble du serveur[homes] permet à un utilisateur d'accé<strong>de</strong>r à son répertoire <strong>de</strong>puis un poste windows[printers] définit <strong>les</strong> paramètres pour la gestion <strong>de</strong>s imprimantes.2°) Protocole IPX <strong>de</strong> NovellLe protocole IPX (Internet Packet eXchange) est pris en charge <strong>de</strong>puis longtemps par le noyau LINUX. Lesystème <strong>de</strong> fichier Novell s'appelle NCP (NetWare Core Protocol) peut être aussi prise en charge par lenoyau mais il faut le faire explicitement lors <strong>de</strong> l'installation (ou recompiler le noyau).Si l'on veut configurer LINUX comme serveur Novell, il existe <strong>de</strong>ux ensemb<strong>les</strong> logiciels pour le faire :mars_nwe et lwared.BibliographieRPC :Michel Gabassi et Bertrand Dupouy « L'informatique répartie sous UNIX » Eyrol<strong>les</strong> (1992)J. Zimmermann revue LOGIN n°69 Janv 2000F. CREVOLA Linux Magazine N°20 Sept 2000 p42"Professional LINUX Programming" Wrox Press Ltd (2000) p653 ch18 : Remote procedure CallGerarld Carter et Richard Sharpe « L'intro Samba » CampusPress (1999)Le successeur <strong>de</strong> RPC est CORBA :David Acremann et al. « Développer avec CORBA » CampusPress (1999)"Professional LINUX Programming" Wrox Press Ltd (2000) p723 ch20 : CORBA52 /98 S. Moutou : Cours
Chapitre 8 : Bases <strong>de</strong> données répartiesLO14 : Université Technologique <strong>de</strong> TroyesI) DéfinitionsUn domaine est un ensemble fini ou infini <strong>de</strong> valeurs possib<strong>les</strong>. Le domaine <strong>de</strong>s entiers, ledomaine <strong>de</strong>s booléens, le domaine <strong>de</strong>s couleurs du drapeau français {bleu, blanc, rouge } etc ...Produit cartésien : le produit cartésien d'un ensemble <strong>de</strong> domaines définit un ensemble <strong>de</strong>n-uplets. Le produit cartésien d'un ensemble <strong>de</strong> domaines D 1, D 2, ... , D n. que l'on écrit D 1 * D 2 *... * D n est l'ensemble <strong>de</strong>s n-uplets (tuple en anglais et en français) < V 1, V 2, .... , V n > tels que V i D i.Exemple :Le produit cartésien <strong>de</strong>s domaines D1={durand,lefebvre,martin} et D2={christian,franck} donne{, , , , ,}Une table relationnelle : c'est un sous-ensemble du produit cartésien d'une liste <strong>de</strong> domaines.Elle est généralement caractérisée par un nom permettant <strong>de</strong> l'i<strong>de</strong>ntifier clairement.Afin <strong>de</strong> rendre l'ordre <strong>de</strong>s colonnes sans importance tout en permettant plusieurs colonnes <strong>de</strong>même domaine, on associe un nom à chaque colonne.personne D1 D2lefebvremartindurandchristianfranckfranckLes colonnes constituent ce que l'on appelle <strong>les</strong> attributs <strong>de</strong> la table relationnelle.Schéma d'une table relationnelle : il est constitué <strong>de</strong> l'ensemble <strong>de</strong>s attributs <strong>de</strong> la table. Parextension, le schéma <strong>de</strong> la base <strong>de</strong> données est constitué <strong>de</strong> l'ensemble <strong>de</strong> toutes <strong>les</strong> tab<strong>les</strong>.personne D1 D2Base <strong>de</strong> données relationnelle : c'est une base <strong>de</strong> données dont le schéma est un ensemble<strong>de</strong> schémas <strong>de</strong> tab<strong>les</strong> relationnel<strong>les</strong> et dont <strong>les</strong> occurrences sont <strong>de</strong>s tup<strong>les</strong> <strong>de</strong> ces tab<strong>les</strong>.Clé primaire : une relation étant un ensemble, ses éléments sont uniques et l'ordre n'a aucune signification.Dans une relation <strong>les</strong> tup<strong>les</strong> étant uniques, il doit exister un attribut (ou un groupe d'attributs) qui vapermettre <strong>de</strong> <strong>les</strong> distinguer : c'est une clé primaire.Clé étrangère : certains attributs dans une relation peuvent correspondre à <strong>de</strong>s clés primaires d'une autrerelation : ce sont <strong>de</strong>s clés étrangères. El<strong>les</strong> spécifient la dépendance ou l'indépendance <strong>de</strong>s relations.Intégrité <strong>de</strong> référence : Il existe <strong>de</strong>ux types <strong>de</strong> relations :• indépendantes• dépendantes caractérisées par la présence d'une clé étrangère.En cas <strong>de</strong> suppression d'un tuple (ou d'addition) il faut alors vérifier la cohérence globale dans le cas <strong>de</strong>srelations dépendantes : intégrité <strong>de</strong> référence par propagation <strong>de</strong> valeurs indéfinies, 0 ou interdiction <strong>de</strong>mise à jour.In<strong>de</strong>x : un in<strong>de</strong>x associe <strong>les</strong> valeurs d'un attribut avec la liste <strong>de</strong>s adresses <strong>de</strong> tup<strong>les</strong> ayant cette valeur. I<strong>les</strong>t généralement organisé comme un arbre-B et peut être plaçant, c'est à dire que <strong>les</strong> tup<strong>les</strong> sont placésdans <strong>les</strong> pages selon l'ordre croissant <strong>de</strong>s valeurs clés dans l'in<strong>de</strong>x.Exemple : Soit la relation AVION(AVNUM,AVNOM,CAP,LOC)1 A320 128 MARSEILLE in<strong>de</strong>x <strong>sur</strong> AVNOM2 B727 150 PARIS A320 1,33 A320 156 LYON B727 253 /98 S. Moutou : Cours