Les Bases de données et le Web

Slides:



Advertisements
Présentations similaires
VBA et les actions sur les tables
Advertisements

Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 ASP / Pages Web Statiques.
Réaliser en Java un programme client d’une Base de Données
Conception de Site Webs dynamiques Cours 6
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
Exposé de Système - Informatique et Réseau
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
Cours 5.3 : XML et les architectures N-tiers – Tier Présentation
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 280 JDBC Java Databases Connectivity.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
UV JDBC Module Java Expert
TP 3-4 BD21.
Programmation dapplications Bases de données avec Java INT.
Servlet JAVA.
Formulaire HTML Introduction. Définition de formulaire.
Common Gateway Interface
Oct.-2000DESS IIDEE © B. BAH 1 ASP Caractéristiques dun fichier ASP Son extension : « *.asp » La balise: Son indépendance vis à vis de toute plate–forme,
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Le langage ASP Les variables d'environnement HTTP avec Request.
JDBC Java Data Base Connectivity. Java DataBase Connectivity (JDBC) Cette API est développée par Sun en collaboration avec les grands éditeurs de SGBD.
Développement Rapide dApplications Web avec.NET « Mon premier site »
Accès aux données généralisé SQL est presque une solution! Le problème: Le SQL n'est pas une langue complète, et doit être intégré dans un langage de programmation.
JDBC ou comment manipuler une base de données en Java ?
Les instructions PHP pour l'accès à une base de données MySql
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Gestion des bases de données
Le formulaire Les chaînes de requêtes. Les chaînes de requêtes (QueryStrings) correspondent à des informations associées à l'adresse URL avec un point.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
JSP (Java Server Pages)
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Initiation au web dynamique
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
‘‘Open Data base Connectivity‘‘
PHP & My SQL.
Programmation Internet en PHP SIL module M12
Travail de diplôme José Garrido Professeur : Philippe Freddi Explorer Internet en toute sécurité Surf Safe SPY INTERNET.
Programmation multimédia 3
PHP 5° PARTIE : LES COOKIES
A ctiveX D ata O bject avec D elphi Durée 14 heures.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Cours de programmation web
Rappel  Caractéristiques d’un fichier ASP  Son extension : « *.asp »  La balise:  Son indépendance vis à vis de toute.
Modification dynamique
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 10 Accès distant aux bases de données.
 Requêtes MySQL en PHP Introduction
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
S'initier au HTML et aux feuilles de style CSS Cours 5.
Page 1Dernière mise à jour: 17 avril 2015 Service de l'enseignement des technologies de l'information, © HEC Montréal, Tous droits réservés.
Struts.
 Formulaires HTML : traiter les entrées utilisateur
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Initiation au JavaScript
Initiation au web dynamique Licence Professionnelle.
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
JDBC - p. 1 JDBC. JDBC - p. 2 Objectifs Fournir un accès homogène aux SGBDR Abstraction des SGBDR cibles Requêtes SQL Simple à mettre en oeuvre Core API.
02/06/2015© Robert Godin. Tous droits réservés.1 5 Interface entre SQL et un programme n SQL incomplet n Défaut d'impédance (impedance mismatch) – modèle.
Séance /10/2005 CSS et Dreamweaver. CSS : principes Cascading Style Sheet = feuille de style en cascade Norme du W3C :
Interface Java – Oracle : JDBC. I-2 JDBC (Java DataBase Connectivity) : interface API (Application Programming Interface) qui permet d’exécuter des ordres.
Les Java Server Pages Dans ce chapitre, nous allons :
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
JDBC (Complément de cours) IFT 3030
HTML Création et mise en page de formulaire
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

Les Bases de données et le Web

Plan général Présentation Quelques standards Quelques moyens d'accès aux données La technologie Microsoft L’alternative JAVA avec IBM WebSphere

Présentation

Présentation (1) Extension du Système d ’information. Accessibilité de partout. Interface conviviale et simple. Problèmes de déploiement. Comment faire une application de gestion sur le Web ?

Présentation (2) Architecture 3 niveaux Découpage modulaire Utilisateur / Métier / Données Architecture d ’objets distribués COM/DCOM  Microsoft CORBA  Unix JAVA BEAN  java Approche Objet / Composant

Quelques standards

Quelques standards HTTP Les serveurs WEB HTML et Formulaires Web JavaScript Les Scripts C.G.I. Limitations et Problèmes ...

HTTP (1) H.T.T.P. = HyperText Transfer Protocol. Protocole standard Dialogue entre le client Web/Serveur Web. Sur un port spécifié (par défaut 80) Protocole de type déconnecté Le serveur ne garde par de contexte (pas de session utilisateur)

HTTP (2) Le client envoie au serveur (requête HTTP) Une demande de document : GET /index.html HTTP/1.0 Des informations sur sa configuration (en-tête optionnel: Nom, numéro de version. type de documents supportés ... Données supplémentaires (facultatif)

HTTP (3) Le serveur répond alors au client par L ’envoi d ’une ligne d’état contenant : la version HTTP, le code d ’état et sa description. HTTP/1.0 200 OK L ’envoi d ’en-têtes Informations concernant le serveur et le document demandé Les données formant le document demandé Le serveur coupe la connexion

HTTP (4) Type de commandes HTTP supportées GET : les données du client se trouvent dans l ’URL. POST : les données du client se trouvent dans le requête HTTP. HEAD : Idem GET sauf que le serveur n ’envoie aucune données (en-tête seulement) LINK, PUT, DELETE ...

Les serveurs WEB (1) C ’est un programme qui tourne sur le serveur Démon (UNIX), Service (Windows NT) Son Rôle : Recevoir les requêtes des clients (navigateurs) Exécuter des scripts CGI Renvoyer le contenu des documents demandés Gérer les accès.

Clients (Navigateurs) Serveur Web (2) Serveur WEB [ Port 80 ] HTTP Clients (Navigateurs) Réseau local

HTML et Formulaires Web (1) HTML : HyperText Markup Language Langage de balises Description de pages Interprété par le navigateur (non compilé !) HTML 4 Dynamic HTML (Microsoft)

HTML et Formulaires Web (2) Contrôles standard Internet : Submit, reset, button, text, checkbox, radio, hidden, image, password. Inclus dans une balise <INPUT type=‘ ? ’> Notion de Formulaire Contient des contrôles Internet Balise : <FORM method=GET action=‘’>…</FORM> Soumission du formulaire

HTML et Formulaires Web (3) Les données des contrôles sont envoyés dans la requête HTTP. Format d ’envoi des données Couples Nom/Valeurs : nom=valeur Séparés par des & Sans Espaces, ou autres caractères spéciaux Solution : l ’Encodage hexadécimal Ex: le slash ‘ / ’ devient ‘ %2F ’

Les Scripts C.G.I. (1) C.G.I. = Common Gateway Interface Langages : PERL, C, C++ ... Conditions d ’utilisations : paramètres (contrôles du formulaire) sur l ’entrée standard. Ecriture d ’une page HTML sur la sortie standard. Utilisation des variables d ’environnement

Les Scripts C.G.I. (2) Rôle du serveur WEB : Ex: Sur Unix passage d ’argument renvoie de la page générée Ex: Sur Unix Utilisation du langage C Récupération des arguments grâce à argc et *argv[]. Création de la page résultante grâce à printf.

Les Scripts C.G.I. (3) Soumission du formulaire <FORM name=form METHOD=POST action=‘ cgi.exe ’> <INPUT type=text name=ess1> <INPUT type=’SUBMIT ’ value=‘ Soumettre ’ name="Submit"> </FORM> Soumission du formulaire Passage des valeurs de contrôles sur l ’entrée standard Ecriture dynamique de la page HTML sur la sortie standard Script CGI

Quelques moyens d'accès aux données

Quelques moyens d'accès aux données Accès à la base RDB : SQLMOD La solution Microsoft : ADO Accès à une base via JAVA : JDBC

Accès à la base RDB, Oracle Utilisation de SQLMOD Instructions SQL encapsulé Extension du fichier *.sqlmod Compilé (compilateur SQLMOD) $ SQMOD exemple.sqlmod => exemple.obj Définition de procédure, Curseurs … 3 sections : En-tête : Module, langage d'accès, Etc. Déclarations : Base, Curseurs, Etc. Procédures : traitements

La solution Microsoft : ADO

A.D.O. Comment accéder aux données sur une plate-forme Microsoft ? A.D.O. = ActiveX Data Object Composant COM : ADODB Repose sur l'architecture OLE DB Propose 7 objets COM pour l ’accès aux données.

L ’objet Connection Représente une connexion à une source de données Soit un SGBD Soit une autre source (Mail, fichiers …) Permet la gestion de transactions.

L ’objet Recordset Représente un vue tabulaire des données Un Recordset = une Ligne Offre des méthodes & propriétés de navigation (MoveFirst, MoveNext …) de manipulation (Delete, Update, AddNew) Autres informations (type, propriétés) Collection de champs Field

L ’objet Field Représente les colonnes de la vue tabulaire 4 champs Field 1 Field 2 Field 3 Field 4 Fields RecordSet Représente les colonnes de la vue tabulaire un Field = une colonne Accès via un recordset (recordset.fields) Offre des méthodes & propriétés Valeur, type et propriétés du champ

L ’objet Command Représente une commande qui peut être exécutée sur la source de données requête SQL (Select, Insert …). Exécution de procédure stockée. Etc. Peut retourner un RecordSet Peut prendre des paramètres en entrée Cf. Objet Parameter

L ’objet Parameter Représente un paramètre d ’un objet Command. Accès via la collection Parameters (toutes les commandes) Peut être un paramètre D ’entrée [IN] De Sortie [OUT] Les deux [IN/OUT]

L ’objet Error Collecte les erreurs liés à La connexion L ’exécution erronée de requêtes … Visible à travers la collection Errors Contient La description de l ’erreur Son type Etc.

Exemple d'accès en VBScript Dim conn, rcs, i, str ' déclaration implicite en ASP Set conn = createObject("ADODB.Connection") Set rcs = createObject(" ADODB.Recordset") conn.Open "DSN=MaBase;", "user", "password" rcs.Open "Select Entier, Chaine From Table", conn, adOpenKeyset, adLockOptimistic while not rcs.EOF i = rcs.Fields("Entier").Value str = rcs.Fields(" Chaine").Value rcs.MoveNext wend rcs.Close conn.Close

Accès à une base via JAVA : JDBC

J.D.B.C. (1) J.D.B.C. = Java DataBase Connectivity Inspiré d ’ODBC (Microsoft) Permet l ’accès à un SGBD via Java Grâce à un driver (JDBC-OBDC Bridge, …) Multi-Plateforme Package : (ensemble de classes Java) java.sql

J.D.B.C. (2) Accès à une base en trois étapes : Connexion avec le SGBD Envoi de requête SQL Traitement du résultat Sous forme tabulaire (Select) Impact des modifications (Insert, Update …) Cas des procédures stockées

Connexion avec le SGBD Grâce à l ’objet Connection Obtenu par la méthode getConnection() : Connection Conn = DriverManager.getConnection(url, user, pwd); url = 3 champs : Le protocole = jdbc Un sous-protocole. Ex: odbc L ’identifiant de la Base. Ex: maBase  jdbc:odbc:maBase Fermeture de la connexion : Conn.close();

Envoi de requête SQL Grâce à l ’objet Statement Créé via l ’objet Connection : Statement Stmt = Conn.createStatement(); Envoi de la requête SQL: Stmt = Conn.createStatement() 2 méthodes d ’envoi de requêtes : executeQuery(); // Select ... executeUpdate(); // Insert, Update, Create ...

Traitement du résultat (1) Sous forme tabulaire : Un objet Resultset est retourné : Resultset rs = Stmt.executeQuery("SELECT * FROM TABLE" ); Navigation dans les lignes (enregistrements) Méthode: rs.Next(); // renvoie true tant qu’il y a encore des lignes Récupération des champs (colonnes) Méthodes getXXX(NomChamp); // XXX = type de données (Ex: getInt(), getString() )

Traitement du résultat (2) Résultat de modifications Le nombre de lignes affectées est retourné : int rowCount = Stmt.executeUpdate("INSERT ..." ); Utile pour donner un feedback (rowCount = 0  Sans effet) Une erreur SQL lève une exception Java

Traitement du résultat (3) Cas des procédures stockées Appelées par l ’Objet CallableSatement CallableStatement cs = Conn.prepareCall("{ call MaProc } "); Trois types d ’exécution cs.executeQuery(); // Si retour de resultset cs.exexuteUpdate(); // Si modifications cs.execute(); // Résultats multiples

JDBC / ADO DriverManager Fournisseur OLE DB Objet java.sql.Connection Objet Connection Objet java.sql.Resultset Objet Recordset Objet java.sql.Statement Objet Command Fields

Exemple Connection Conn = DriverManager(" jdbc:odbc:maBase", "user", "motPasse"); Statement Stmt = Conn.createStatement(); Resultset rs = Stmt.executeQuery("Select Entier, Chaine From Table"); while (rs.Next()) { int iEntier = rs.getInt("Entier"); String strChaine = rs.getString("Chaine"); } rs.Close(); Stmt.Close(); Conn.Close();

L ’alternative JAVA avec IBM WebSphere

IBM WebSphere WebSphere Application Server Servlets et J.S.P Utilisation de Servlets Bilan

WebSphere Application Server (1) Concurrent direct de Microsoft Serveur d ’Application pour Java Permet l’utilisation de Servlets de pages Web dynamiques (JSP) « PlugIn » pour serveur Web Supporte : IBM HTTP Server, Apache, IIS …

WebSphere Application Server (2) Toute l ’architecture WebSphere repose sur Java Les Servlets, le contenu des pages JSP, les composants Java Beans. Respecte le « standard » Java de SUN (JDK) On peut effectuer un parallèle avec la technologie Microsoft.

Microsoft / IBM Internet Information Server I.I.S. W.A.S ActiveX JAVA BEANS Active Server Pages VBScript JScript ADO Java Server Pages Java JDBC Ext. de Serveur ISAPI SERVLETS

Les Servlets Comparable aux Ecrites en Java. Extensions de serveur ISAPI (MS) ou aux CGI. Ecrites en Java. Dérivent de l ’API javax.servlet Récupèrent 2 arguments en entrée HttpServletRequest ~ Request (Microsoft) HttpServletResponse ~ Response (Microsoft)

J.S.P. J.S.P. = Java Server Pages Comparable aux pages ASP Code Serveur entre <% … %> Finit le VBScript, JScript … on « code » en Java. ! Le Code JSP est compilé une seule fois Transformé en servlet. Plus rapide que l ’interprété

Architecture de WAS W.A.S IIS J.S.P. JAVA Apache Java Beans Autre JDBC HTTP request HTTP response IIS J.S.P. JAVA BEAN Java Beans SGBD JDBC W.A.S Apache Autre