Intranet et les Bases de Données Concepts et Mise en oeuvre Michel Tuffery ([email protected]) 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 SQL*Net TCP/IP 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 Michel Tuffery Microsoft ODBC Administrator Oracle ODBC test Sql Net easy Config Sql * Plus ping ou telnet 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 Serveur Client1 user_process1 server_process1 SGBD server_process2 Client2 server_process3 DBWR ORASRV user_process2 user PMON SMON Client3 Appli locale user_process3 Michel Tuffery LGWR ARCH 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 Mode multithread Serveur Client1 user_process1 d1 p1 d2 p2 Client2 user_process2 Queud (file d ’attente requêtes / réponses) Client3 d3 user_process3 Listener Retour page 4 Michel Tuffery Dispatcher (batterie de répartiteurs partagés) Intranet et les Bases de Données p3 Process Server (batterie de serveurs partagés) 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 Serveur Programme client Call ajout_etudiant (liste des variables) BD Exécution de ajout_etudiant Compilation (mise en dictionnaire) attente Retour de résultats Michel Tuffery Create procedure ajout_etudiant (liste des paramètres) as -- déclarations de variables locales Begin -- instructions SQL et procédurales End ajout_etudiant ; 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 Retour page 4 • Utilisation de la CPU serveur 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 BD1 1er Cycle Poste3 Poste2 BD3 BD2 2ème Cycle Etudiant1(n°ine,nom,prenom,adresse) 3ème Cycle 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 Poste3 Select nom,adresse From Etudiant2@bd2 Where adresse Like ‘%Toulouse%’ 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 Michel Tuffery Intranet et les Bases de Données Rollback 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 Serveur Web Serveur de Données Pages.html HTML Objets Multi-média HTTP Pages HTML dynamiques Serveur Applicatif Michel Tuffery SGBD connexion requêtes Exécution du programme Intranet et les Bases de Données résultats Base 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 Site central Serveur de News Poste client Sous-réseau TCP/IP routeur firewal firewal internet passerelle Serveur netware tcp/ip Sous-réseau TCP/IP routeur passerelle Fournisseur d ’accès Sous-réseau IPX modem Poste nomade Michel Tuffery Serveur web Intranet et les Bases de Données routeur Sous-réseau TCP/IP Poste client Serveur email 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) C D C D Client Browser ou NC C D C Michel Tuffery Envoie-moi http://www.compagnie.fr/paccueil.htm paccueil.htm Envoie-moi l ’image tuf.gif tuf.gif Serveur WEB Envoie-moi l ’applet intra.class Intra.class Exécute un script CGI 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 … Qu'avons-nous gardé dans la base ? 4ème Connexion : ‘je choisis le n°80’ Î insert into ligne_com values (80, ….) 5ème Connexion : ‘je prends le tout’ Î COMMIT 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