Programmation d’application INT
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
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
Programmer avec une BD Générateurs d’application sur BD : AGL 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
Interfaces SQL LPG Embedded SQL : SQL/CLI : Programmer avec une BD 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 : 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
Embedded SQL Programmer avec une BD DD Programme source (C+SQL) Précompilation Programme source Requêtes BD sans cde SQL compilation Traitement code objet Librairies Plan d'exécution Linkage Stockage programme exécutable BD DD
Interfaces SQL LPG Approche Java Autres langages Embedded SQL SQLJ Programmer avec une BD Approche Java Autres langages Embedded SQL SQLJ Pro*C SQL/CLI JDBC ODBC PSM PL/SQL
Client-Serveur SQL et architecture 3 rangs Site 1 Terminal : navigateur C/S HTTP Frontal : Serveur + passerelle C/S SQL Dorsal : SGBD Client léger : navigateur http Middleware http Site 2 Serveur http Passerelle CGI SQL Middleware SQL Site 3 Serveur SQL
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
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
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)
2-tiers JDBC Applet Java Machine client Navigateur HTML IHM JDBC JDBC Protocole propriétaire SGBD SGBD Machine serveur BD Oracle
Serveur d’application 3-tiers JDBC Applet Java Navigateur HTML Machine client IHM HTTP, RMI, appels IIOP - CORBA Serveur d’application JDBC Machine serveur Business Logic Protocole propriétaire SGBD SGBD Machine serveur BD Oracle
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 »