Programmation d’application INT 174 Plan du document Contexte slide 176 Programmer avec une BD slide 177 Client-Serveur SQL et architecture 3 rangs slide 181 JDBC slide 182 Serveurs d’applications et « portails » slide 187 175 Contexte Limites du SQL interactif : absence de structure de contrôle absence de variable Pas de « calcul » sur les données Adopter un langage de type procédural SQL doit rester le seul langage d'accès aux données 176 Programmer avec une BD Programmer avec une BD Générateurs d’application sur BD : Interface au dessus LDD LMD But : productivité Programmation visuelle (QBE, QBF, LV) L4G : Maquettage d’écrans Enchaînement des actions triggers Scripts associés aux objets graphiques SQL + LPG (PL/SQL) AGL 177 Interfaces SQL LPG Embedded SQL : Précompilé, compilé Dépendant du SGBD cible Problèmes 2 systèmes de types, 2 styles de programmation « Impedance mismatch » == « dysfonctionnement » SQL/CLI : Programmer avec une BD Bas niveau compilé uniquement Interface universelle SGBD SQL Indépendance / SGBD Imbrication « sans couture » du SQL dans langage hôte PSM (Persistent Stored Modules) : PL/SQL « Routines » SQL Triggers C/S 2ème génération 178 Programmer avec une BD Embedded SQL Programme source (C+SQL) DD Précompilation Programme source Requêtes BD sans cde SQL compilation code objet Traitement Librairies Plan d'exécution Linkage Stockage programme exécutable BD 179 Programmer avec une BD Interfaces SQL LPG Approche Java Autres langages Embedded SQL SQLJ Pro*C SQL/CLI JDBC ODBC PSM PL/SQL 180 Client-Serveur SQL et architecture 3 rangs Site 1 Terminal : navigateur Client léger : navigateur http Middleware http C/S HTTP Site 2 Frontal : Serveur + passerelle Serveur http Passerelle CGI SQL Middleware SQL C/S SQL Site 3 Dorsal : SGBD Serveur SQL 181 JDBC Reprise des idées de ODBC dans le monde Java Indépendance / SGBD cible Recours à des pilotes Code portable de bout en bout Pas forcément construit au dessus de ODBC Autres API peuvent être définies à partir de JDBC 182 Pilotes JDBC JDBC non supporté en natif par les SGBD du commerce Transformations des appels JDBC en appels natifs 4 catégories de pilotes en fonctions de : La présence ou non de pilote SGBD (non java) sur le client Protocole de communication entre le client Java et le serveur 183 Principes JDBC Connexion (se lie à un SGBD particulier avec un nom d’utilisateur) Création de requête (statements) Exécution de requête (execute) Récupération des résultats (resultset et next()) Opérations transactionnelles (commit, abort) 184 2-tiers JDBC Machine client IHM JDBC Applet Java Navigateur HTML JDBC Protocole propriétaire SGBD Machine serveur BD Oracle SGBD 185 3-tiers JDBC Machine client IHM Applet Java Navigateur HTML HTTP, RMI, appels IIOP - CORBA Machine serveur Business Logic Serveur d’application JDBC Protocole propriétaire SGBD Machine serveur BD Oracle SGBD 186 Serveurs d’applications et « portails » Reconnaissant les utilisateurs : Multiplier les « cookies » Vues adaptatives construites au fur et à mesure des requêtes et parcours Intégrant de multiples applications « servlets » Intégrant de multiples sources de données « wrappers » 187