Intranet et les Bases de Données Concepts et Mise en oeuvre Michel Tuffery (tuffery@cict.fr)
Le Client-Serveur de première génération Fin de la suprématie des gros serveurs Mode connecté uniquement Surcharge de processus ou overhead Concentration des ressources Correspond au besoin des utilisateurs Fin du modèle centralisé des années passées L utilisateur prend le pouvoir Machines serveur départementales Michel Tuffery Intranet et les Bases de Données 2
Le C-S de 1ère génération : les distributions possibles C-S de présentation Rewamping ou faux C-S Présentation distante : Terminal X-Window C-S de données C-S classique C-S de procédures Meilleure répartition entre le client et le serveur C-S de distribution BD réparties Michel Tuffery Intranet et les Bases de Données 3
Le C-S de données : les composants Le Poste Client Présentation (gestion de l affichage) Programmes exécutables (GUI) Le Middleware Couches logicielles de communication Protocole RPC ou RDA Le Serveur SGBD : gestion des données Sécurité, Intégrité et Confidentialité Michel Tuffery Intranet et les Bases de Données 4
Le C-S de données : un exemple avec VB et Oracle Programme exécutable client programme.exe visual basic Le middleware driver ODBC 32 bits sql*net (client) TCP/IP L ensemble Serveur sql*net (serveur) multi-threading instance Oracle Michel Tuffery Intranet et les Bases de Données 5
Le C-S de données : un exemple avec VB et Oracle Programme VB ODBC ORACLE SQL*Net TCP/IP SQL*Net TCP/IP Client Serveur Michel Tuffery Intranet et les Bases de Données 6
Le C-S de données : Configuration du middleware client Programme VB Client ODBC SQL*Net TCP/IP Microsoft ODBC Administrator Oracle ODBC test Sql Net easy Config Sql * Plus ping ou telnet Michel Tuffery Intranet et les Bases de Données 7
Configuration SQL*Net : création du connect string Respect des contraintes du protocole RDA protocole utilisé (TCP/IP, IPX/SPX, ) adresse ou nom du serveur hôte nom de l instance de la base de données Génération automatique d un fichier texte c:\orawin95\network\admin\tsnames.ora Plusieurs bases cibles possibles Michel Tuffery Intranet et les Bases de Données 8
Test de Sql*Net Outils propriétaires Avec Sql * plus, boîte de dialogue : user password base cible Travail sur la base en mode client-serveur Tous les fichiers de requêtes sont locaux Pas de connexion au systême hôte Michel Tuffery Intranet et les Bases de Données 9
Configuration ODBC : création d un DSN Création d un Data Source Name (DSN) Choix du pilote ODBC (Oracle, sql-server,..) Nom du service : reprise de l alias service de sql*net Diverses options pas à pas trace user_id préférentiel connexion read mode.. Michel Tuffery Intranet et les Bases de Données 10
Test ODBC Connexion à la base cible Exécution de requêtes de consultation ou de modification Rappel : ODBC est API SQL... Tout est prêt pour l interface graphique... Michel Tuffery Intranet et les Bases de Données 11
L interface graphique Toutes les interfaces graphiques ont le même principe Encapsulation des ordres SQL dans le programme source Envoi de l ordre au serveur avec retour d informations Sélection multi-lignes dans un record set local ODBC Michel Tuffery Intranet et les Bases de Données 12
L interface graphique (suite) Appels de fonctions de fonctions de l API ODBC SQLAllocEnv : établit un identifiant d environnement SQLAllocConnect : établit un identifiant de connexion SQLConnect ou DriverConnect : établit la connection SQLExecDirect ou Execute : exécute une instruction SQL SQLGetData : récupère des valeurs SQLFetch ou ExtendedFetch : traite les résultats SQLFreeStmt : libère l identifiant d instruction, l allocation du jeu de résultats et tout curseur en cours SQLDisconnect : ferme la connexion SQLFreeConnect et SQLFreeEnv : libère la connexion et les identifiants d environnement Michel Tuffery Intranet et les Bases de Données 13
Le Multi-Threading Optimisation des ressources serveur Réduction de l espace mémoire nécessaire Réduction du «surchargement» ou «overhead» de l OS pour la gestion des processus Accès à la base de données d un plus grand nombre d utilisateurs avec des ressources machines et des performances égales Michel Tuffery Intranet et les Bases de Données 14
Mode non multithread 1 programme client <--> 1 process serveur user_process <--> server_process Les deux process communiquent ensemble Le process serveur est exécuté même si le client est inactif Consommation de ressources serveur Michel Tuffery Intranet et les Bases de Données 15
Mode non multithread Client1 Serveur user_process1 server_process1 SGBD server_process2 Client2 server_process3 ORASRV DBWR user_process2 user PMON SMON Client3 user_process3 Appli locale LGWR ARCH Michel Tuffery Intranet et les Bases de Données 16
Mode multithread : diminution de la charge serveur Un server_process pour plusieurs user_process Un listener détecte une demande Un process dispatcher place cette demande dans une file d attente Le premier server_process disponible exécute la demande Le résultat est placé dans une file, le dispatcher restitue le résultat au user_process Michel Tuffery Intranet et les Bases de Données 17
Client1 Mode multithread Serveur user_process1 d1 p1 Client2 user_process2 d2 Queud p2 Client3 user_process3 d3 (file d attente requêtes / réponses) p3 Retour page 4 Listener Dispatcher (batterie de répartiteurs partagés) Process Server (batterie de serveurs partagés) Michel Tuffery Intranet et les Bases de Données 18
Client-Serveur de Procédures Traitements génériques sur le serveur Meilleure répartition des charges entre le client et le serveur Procédures Stockées des SGBD SQL Un pas vers le client-serveur de 2ème génération Michel Tuffery Intranet et les Bases de Données 19
Principe des procédures stockées Programme client Call ajout_etudiant (liste des variables) Serveur Exécution de ajout_etudiant BD attente Retour de résultats Compilation (mise en dictionnaire) Create procedure ajout_etudiant (liste des paramètres) as -- déclarations de variables locales Begin -- instructions SQL et procédurales End ajout_etudiant ; Michel Tuffery Intranet et les Bases de Données 20
Les avantages des procédures Factorisation des règles de gestion (inscription d un étudiant ) Assurance d une bonne intégrité des données (Encapsulation) Augmentation du niveau d abstraction des développeurs client Réutilisabilité des traitements Moins de transfert réseau Utilisation de la CPU serveur Retour page 4 Michel Tuffery Intranet et les Bases de Données 21
Répartition des Données : Duplication et transferts périodiques Duplication : création de clichés ou snapshot (Données en lecture uniquement ) Données rafraîchies à intervalles réguliers Inconvénients Coût du transfert (volume, périodicité) Données périmées Avantages Moins de transferts réseaux Continuité du service Rafraîchissements différentiels Michel Tuffery Intranet et les Bases de Données 22
Répartition des Données : Duplication et transferts ponctuels Transfert par le programme client à la demande de l utilisateur Exemple de transfert ponctuel : Transfert des clients ayant un CA > seuil Déconnexion du serveur et travail local Passage à Word (protocole DDE) pour un envoi de courrier (Mailing) Effacement du fichier local en fin de travail Michel Tuffery Intranet et les Bases de Données 23
Répartition des Données : Réplication des données Données mises en miroir Données mises à jour simultanément Inconvénients : Consommation de ressources systèmes Mécanismes lourds Avantages : Données modifiables partout Reprise en cas de problème Michel Tuffery Intranet et les Bases de Données 24
Répartition des Données : BD réparties ou distribuées 1 base logique = n bases physiques Le poste de travail : Client ET Serveur Le poste de travail : nœud du réseau Fragmentation des données (règles) Pas de poste maître Indépendance à la localisation Requêtes et Transactions réparties Michel Tuffery Intranet et les Bases de Données 25
BD réparties ou distribuées : Dictionnaire réparti Poste1 Poste2 Poste3 BD1 BD2 BD3 1er Cycle 2ème Cycle 3ème Cycle Etudiant1(n ine,nom,prenom,adresse) Etudiant3(n ine,nom,prenom,adresse) Etudiant2(n ine,nom,prenom,adresse) Etudiant = Etudiant1 UNION Etudiant2 UNION Etudiant3 Michel Tuffery Intranet et les Bases de Données 26
BD réparties ou distribuées : Requêtes réparties Select nom, adresse From Etudiant Where Cycle IN (2,3) And adresse Like %Toulouse% Poste2 Select nom,adresse From Etudiant2@bd2 Where adresse Like %Toulouse% Poste3 Select nom,adresse From Etudiant3@bd3 Where adresse Like %Toulouse% Résultat2 Résultat3 Résultat = Résultat2 UNION Résultat3 Michel Tuffery Intranet et les Bases de Données 27
BD réparties ou distribuées : Transactions réparties Commit à deux phases : Envoi à chaque site Est-tu prêt à commettre? Commit Journalisation des transactions dans chaque base : Actions Prêt à commettre Commit Michel Tuffery Intranet et les Bases de Données 28
BD réparties ou distribuées : Transactions réparties Exemple : étudiant reçu au Deug : passage en deuxième cycle Début_Transaction Ajout dans Etudiant2@bd2 Suppression dans Etudiant1@bd1 Commit Fin_Transaction Rollback Michel Tuffery Intranet et les Bases de Données 29
BD réparties ou distribuées : Manipulation des données Lecture : objets virtuels Modification des données Objets physiques Trigger instead off (abstraction) Procédures stockées (abstraction ++) Michel Tuffery Intranet et les Bases de Données 30
Le C-S de 1ère génération : les inconvénients Problème du déploiement Reconfiguration du middleware client Changement de version des programmes client Programmes installés Télé-diffusion Serveur d applicatifs Syndrome du client obèse Coûts de maintenance L utilisateur perd du temps Michel Tuffery Intranet et les Bases de Données 31
Le Client Léger : Architecture multi-tier Client léger (navigateur) Envoi des ordres (URL) Réception des résultats (HTML) Serveur Web Contrôle des demandes Gestion des contextes (transactions) Serveur applicatif Exécution des traitements Serveur de données Gestion de la base de données Michel Tuffery Intranet et les Bases de Données 32
Le Client Léger : Architecture multi-tier Client léger navigateur URL HTML Serveur Web Pages.html Serveur de Données SGBD HTTP Objets Multi-média Pages HTML dynamiques Serveur Applicatif Exécution du programme connexion requêtes résultats Base de Données Michel Tuffery Intranet et les Bases de Données 33
Le Client Léger : Avantages Diminution des coûts de maintenance du système d information Pas de déploiement Poste client allégé Chaque acteur est à sa place client «utilisateur» programmeur «fournisseur de services» administrateur d ensemble Retour normal du balancier Michel Tuffery Intranet et les Bases de Données 34
Le Client Léger : fin du client-serveur? Client-Serveur entre le serveur applicatif et le serveur de données Système entièrement sous la responsabilité des informaticiens Middleware adapté Propriétaire : Oracle Orienté Objet : OLE_DB et ADO (Microsoft) Michel Tuffery Intranet et les Bases de Données 35
Client léger : déjà des limites? HTML trop pauvre (/Windows) DHTML : HTML dynamique XML : standard futur pour les échanges? (EDI) HTTP : pas de session IIOP : futur standard de communication Hétérogénéité des offres applicatives JAVA : standard applicatif? (Oracle) Michel Tuffery Intranet et les Bases de Données 36
Intranet : c est quoi? Réseau privé d entreprise utilisant les standards de l Internet Le protocoles d Internet : TCP/IP, DNS,.. Les architectures d Internet : CGI, Java,.. Les applications d Internet : mail, WWW, FTP,.. D autres technologies : CORBA, Web-SQL,. Avec des contraintes supplémentaires Prise en compte des applications transactionnelles Sécurité Prise en compte de l architecture existante Pas nécessairement lié à un réseau local Michel Tuffery Intranet et les Bases de Données 37
Perspectives de l Intranet Intégrer l entreprise au monde extérieur Permettre le workflow inter-entreprises: EXTRANET Assurer la délocalisation des acteurs de l entreprise via Internet Emergence d un standard pour les GUI : le WEBTOP Michel Tuffery Intranet et les Bases de Données 38
Une Architecture Intranet Poste client Serveur de News Sous-réseau TCP/IP firewal Site central internet firewal Serveur web Sous-réseau TCP/IP routeur routeur passerelle passerelle Serveur netware tcp/ip Sous-réseau IPX Poste nomade Fournisseur d accès modem Poste client routeur Sous-réseau TCP/IP Serveur email Michel Tuffery Intranet et les Bases de Données 39
Intégration de l Intranet et du système d information Enjeux : 1er temps : permettre d accéder aux données traitements ressources à terme identité Intranet - SI permettre l interconnexion des Intranets : EXTRANET Michel Tuffery Intranet et les Bases de Données 40
HTTP (Hyper Text Transfer Protocol) Client Browser ou NC C D C D C D C Envoie-moi http://www.compagnie.fr/paccueil.htm paccueil.htm Envoie-moi l image tuf.gif tuf.gif Envoie-moi l applet intra.class Intra.class Exécute un script CGI Serveur WEB Michel Tuffery Intranet et les Bases de Données 41
HTTP : caractéristiques et évolutions S appuie directement sur TCP/IP Sert à tous les échanges du Web Simple Exclusivement orienté document HTTP 1.0 Pas de session : une connexion TCP/IP pour charger chaque composant Pas de notion de contexte HTTP 1.1 spécifié en 97 par le WWWC connexion TCP/IP persistante intégration d un cache client SHTTP données cryptées Michel Tuffery Intranet et les Bases de Données 42
HTML : Hyper Text Markup Language Standard de description des pages de serveur Web Principe des balises <HTML>, <BODY>,<CENTER>,... HTML 3.2 Texte - audio - image fixe et vidéo Éléments IHM -frames Code JavaScript ou VBScript Applets Java Active X Michel Tuffery Intranet et les Bases de Données 43
Exemple de code HTML Michel Tuffery Intranet et les Bases de Données 44
Exemple de code HTML <HTML> <HEAD> <TITLE>Anciens étudiants</title> </HEAD> <BODY background="fondpierrerose.jpg"> <P align=center><font size=6>identification d'un étudiant</font></p><br> <P align=center><font color=black size=5>saisissez les informations vous concernant</font></p> <P align=center><font size=3>(tous les champs sont obligatoires)</font></p> <BR><BR> <CENTER> <FORM METHOD = post ACTION="login.asp"><BR><BR> <TABLE border=0 cellpadding=1 cellspacing=1 id=table1> <TR> <TD>Entrer votre numéro INE* :</TD> <TD><INPUT name=ine type=password></td></tr> <TR> <TD>Entrer votre Nom : </TD> <TD><INPUT name=nom></td></tr> </TABLE><BR><BR> <INPUT TYPE=submit name=connect VALUE="Valider"> <INPUT id=reset1 name=reset1 type=reset value=annuler> </FORM> <BR>* Identifiant National Etudiant (Il se trouve sur votre carte d'étudiant )</P> <a href="default.htm">retour</a></center> </BODY> </HTML> Michel Tuffery Intranet et les Bases de Données 45
Scripts exécutés sur le client Programmes transportés dans la page HTML Exécution de programmes sur le poste client léger Intéressant pour effectuer des contrôles sur des champs de saisie Michel Tuffery Intranet et les Bases de Données 46
Exemple de Script <script language="javascript"> <!-- function Verif_Boutique() { if (document.commande.nom.value == "") { alert("vous devez renseigner le nom."); return false; } if (document.commande.prenom.value == "") { alert("vous devez renseigner le prénom"); return false; } function MailFaux(ValeurInput) { atpos = ValeurInput.indexOf('@'); if (atpos < 1 atpos == (ValeurInput.length - 1)) {return true;} else { return false;} } } //--> </script> Michel Tuffery Intranet et les Bases de Données 47
La Sécurité Transactionnelle Deux catégories de bases de données Systèmes d aide à la décision Traitements différés (Extraction et Duplication) Entrepôt de données (DataWareHouse) Mini-Entrepôts de données (DataMarts) Systèmes décisionnels (OLAP) (DataMining) Traitements transactionnels en ligne (OLTP) Deux catégories de systèmes transactionnels Le transactionnel léger Le transactionnel lourd Procédures distantes (transactions) exécutées sur le serveur Michel Tuffery Intranet et les Bases de Données 48
Les Systèmes Transactionnels Transactionnel lourd : Moniteurs TP (CICS, Tuxedo, MTS, OTS, ) Transactions multiserveur complexes Gestion des processus (multithread) Équilibrage de la charge Synchronisation globale des transactions Transactionnel léger : Intégration dans le SGBD Peu de fonctions implémentées Pas de contrôle transactionnel global Pas de supervision globale Pas d équilibrage de la charge Pas d imbrication des transactions. Michel Tuffery Intranet et les Bases de Données 49
Choix du niveau transactionnel Transactions gérées par le SGBD La notion de Session permet la transaction Plus loin : Oracle et Microsoft Transactions gérées par le Moniteur TP MTS : Microsoft Transaction Server OTS : Oracle Transaction Server Il est possible que les systèmes transactionnels légers ne puissent résoudre tous les problèmes du monde. Mais ils en résolvent beaucoup de simples. Or, selon la loi de Ziph, la plupart des problèmes sont simples. Jim Gray Le Standish Group estime qu en 2001, 30 % de toutes les transactions seront basées sur le Web. Jim Johnson, PDG, Standish Group Michel Tuffery Intranet et les Bases de Données 50
Le Transactionnel et le Web Le Web au début affichage de documents multimédia et hypertextes Ancres dynamiques Outil de renseignements documents statiques Aujourd hui Inter-activité : Intranet Documents dynamiques Base de données indispensable Le transactionnel est obligatoire Michel Tuffery Intranet et les Bases de Données 51
La notion de transaction ACID Atomicité 1 transaction = 1 ensemble d actions (insert, delete, update) Cohérence Principe du tout ou rien Commit / Rollback État stable (temps n) état stable (temps n+1) Isolation Plusieurs transactions en parallèle Accès concurrents : verrouillage des ressources Durabilité Persistance des modifications Michel Tuffery Intranet et les Bases de Données 52
Le Transactionnel et le Web le problème Demande d un client : envoi du code HTML Pas de connexion persistante Tout est perdu entre deux connexions Exemple : le choix d un internaute acheteur 1ère Connexion : je choisis le n 10 insert into ligne_com values (10,.) 2ème Connexion : je choisis le n 20 insert into ligne_com values (20,.) 3ème Connexion : je choisis le n 60 insert into ligne_com values (60,.) // l internaute se connecte sur un autre site puis revient chez nous 4ème Connexion : je choisis le n 80 insert into ligne_com values (80,.) 5ème Connexion : je prends le tout COMMIT Qu'avons-nous gardé dans la base? Michel Tuffery Intranet et les Bases de Données 53
Le Transactionnel léger et le Web : notion de Session Les serveurs Web apportent des solutions Conservation du contexte client Notion de Session Correspond à la notion de contexte client La session du client est crée à la première demande La session du client du client est détruite Si un certain temps est dépassé (paramètre) Si le client arrête son navigateur Par arrêt volontaire du programme serveur Michel Tuffery Intranet et les Bases de Données 54
Les règles du client - serveur universel (*) Client au standard HTML Client-Serveur de présentation Traitements essentiellement coté serveur Applications simples Interfaces utilisateurs soignées Auto-apprentissage des applications Internet et Intranet sur le même plan (*) A. Lefèvre, Intranet, Eyrolles Michel Tuffery Intranet et les Bases de Données 55