Intranet et les Bases de Données

publicité
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
Téléchargement