Les nouvelles technologies
ima
S O L E R I
Architectures C/S Java :
de JDBC à CORBA
ima
S O L E R I
ima S O L E R I
Sommaire
nLe langage Java
nLes APIs Java
nClient/Serveur
nArchitectures 2-Tiers
nArchitectures 3-Tiers
ima S O L E R I
Caractéristiques
n Objet
n Interprété (Portable)
n Modulaire (*.class, JavaBeans)
n Distribué
l Modèle de distribution de composants logiciels (applets)
l Intégration simple aux architectures à objets distribués
ima S O L E R I
Java EveryWhere
4154 1445 5454 1545 S O L E R Iima
IMA JavaCard
ima S O L E R I
Sommaire
nLe langage Java
nLes APIs Java
nClient/Serveur
nArchitectures 2-Tiers
nArchitectures 3-Tiers
ima S O L E R I
Interface / Implémentation
?
Interface
(Standard)
Implémentation
(propriétaire)
ima S O L E R I
Langage Objet (CORE API) 2D, 3D,
Chiffrement Annuaires LDAP
(Accès SGBDR)JDBC Téléphonie
Un langage à interfaces
ima S O L E R I
Inclusion dans le JDK
Langage Objet (CORE API) (Accès SGBDR)JDBC
JDBC inclus dans le JDK 1.1
ima S O L E R I
Sommaire
nLe langage Java
nLes APIs Java
nClient/Serveur
nArchitectures 2-Tiers
nArchitectures 3-Tiers
Réponse du serveur WEB
Navigateur WEB
Serveur WEB
?
1
2
Navigateur WEB
Serveur WEB
Applet
Lancement de l’applet
ima S O L E R I
Connexion de l’applet
Navigateur WEB
?
SGBDima S O L E R I
Architectures Client/Serveur
C / S
ima S O L E R I
Le client
C
Connexion auserveur
ima S O L E R I
Le client
C
GUI
Connexion au serveur
distribué ! (Applet)
ima S O L E R I
Le serveur
S
UNIX + SGBDR NT+ SGBDR
Mainframe DB2, VSAM,...
ima S O L E R I
Intermédiaire technique
Facilitateur
/
Technique (passerelle)
Serveur intermédiaire
(ORB + applicatifs)
ima S O L E R I
Sommaire
nLe langage Java
nLes APIs Java
nClient/Serveur
nArchitectures 2-Tiers
nArchitectures 3-Tiers
ima S O L E R I
Architectures Client/Serveur
C / S
ima S O L E R I
Architectures Client/Serveur
C / S
ima S O L E R I
Architectures Client/Serveur
C / S
SGBD
Architecture
/
Sommaire
nLe langage Java
nLes APIs Java
nClient/Serveur
nArchitectures 2-Tiers
nArchitectures 3-Tiers
ima S O L E R I
Architectures Client/Serveur
C / S
ima S O L E R I
Clients
Clients
PC + Navigateur
ima S O L E R I
Serveur applicatif
Serveur Interm.
Middleware
Objet
Serveur
Interm.
Persistance
ima S O L E R I
SGBD
Serveur de données
Serveur de données
SGBDR, Mainframe,...
ima S O L E R I
SGBD
Architectures 3-Tiers
Accès aux données :
JDBC et les SGBDR
ima
S O L E R I
ima S O L E R I
Sommaire
nL’API JDBC
nPrincipe de fonctionnement
nJDBC et sécurité Java
nLes drivers JDBC
nAccès aux données en C/S
ima S O L E R I
Mars 1996 : JDK 1.0
(Solaris, Windows 95 et NT)
n Une première livraison avec
l un compilateur
l une machine virtuelle d'exécution n De nombreux AGL annoncés
n Les principaux navigateurs internet intègrent Java
n Spécifications initiales de JDBC
ima S O L E R I
API JDBC
nJDBC est une API pour serveur SQL
nBasé sur le standard X/Open SAG CLI (Call Level Interface)
nComme toutes les API de serveurs SQL
nComme ODBC...
ima S O L E R I
Que fait JDBC ?
nJDBC permet :
lla connexion au SGBD
lla définition puis l’envoi d’ordres SQL au serveur
lla récupération (et la lecture) des résultats.
nJDBC est une interface de bas niveau (de même niveau que CLI)
Sommaire
nL’API JDBC
nPrincipe de fonctionnement
nJDBC et sécurité Java
nLes drivers JDBC
nAccès aux données en C/S
JDBC, DriverManager et Driver
JDBC DriverManager
Oracle
driver A Application
Java Applet
Java
ima S O L E R I
DriverManager et Driver
Oracle
driver A Application
Java Applet
Java
JDBC DriverManager
ORGANISATEUR
• Enregistre les drivers
• Fournit les connexions à l’application
ima S O L E R I
DriverManager et Driver
Oracle Application
Java Applet
Java
JDBC DriverManager
driver A GESTIONNAIRE DE COMMUNICATION Implémente un protocole de communication pour accéder au SGBD
ima S O L E R I
DriverManager et Driver
JDBC DriverManager
Oracle Sybase
driver A driver B Application
Java Applet
Java
ima S O L E R I
Sommaire
nL’API JDBC
nPrincipe de fonctionnement
nJDBC et sécurité Java
nLes drivers JDBC
nAccès aux données en C/S
ima S O L E R I
Séquence d’initialisation
MV Java 1
ima S O L E R I
MV Java
Séquence d’initialisation
driver B 2
ima S O L E R I
Sybase MV Java
Séquence d’initialisation
driver B
ima S O L E R I
Deux cas !
n
Une seule machine
lDriver et programme sur la même machine n
Deux machines
lCommunication Client/Serveur
ima S O L E R I
Cas 1 : Une seule machine
MV Java 1
driver B 2
Application Java
ima S O L E R I
Cas 2 : Deux machines (C/S)
MV Java
(navigateur) 1
driver B 2
Applet Java
Réponse du serveur WEB
Navigateur WEB
Serveur WEB
?
1
2
Navigateur WEB
Applet
Lancement de l’applet
SandBox
ima S O L E R I
Modèle SandBox
Du point de vue d’une machine virtuelle Java donnée, toute classe Java chargée au travers du réseau devra être contrôlée dans le cadre
du modèle SandBox !
ima S O L E R I
Contraintes de sécurité
Lcharger de code natif (dépendant du système) Laccéder aux ressources du
poste client (disque dur, imprimantes,...)
Lse connecter à un hôte différent de celui duquel elle provient
Une applet ne doit pas :
ima S O L E R I
Relaxer la sécurité
nDepuis le JDK 1.1
nSignature électronique des applets
nDéfinition d’applets trusted et untrusted
nCertificats internationaux sur Internet
nMise en place de serveurs de certificats dans le cadre d’un Intranet
ima S O L E R I
Sommaire
nL’API JDBC
nPrincipe de fonctionnement
nJDBC et sécurité Java
nLes drivers JDBC
nAccès aux données en C/S
ima S O L E R I
Type I : pont JDBC-ODBC
n Implémentation de JDBC
n Appels natifs à ODBC Application Java
driver ODBC-SGBD
Interface du SGBD bridge JDBC-ODBC
Interface client SGBD JDBC ODBC
n Accès au SGBD via ODBC
ima S O L E R I
Type I : pont JDBC-ODBC
n Implémentation de JDBC
n Appels natifs à ODBC Application Java
driver ODBC-SGBD
Interface du SGBD bridge JDBC-ODBC
Interface client SGBD JDBC ODBC
n Accès au SGBD via ODBC
ima S O L E R I
Type I : pont JDBC-ODBC
JDBC
ODBC 0100101 0011011 0110011
Classes JAVA
Code Natif
(ex : DLL)
ima S O L E R I
Type I : pont JDBC-ODBC
nApplet Java exécutée dans un navigateur Web
Applet Java
0100101 0011011 0110011
ima S O L E R I
Applet Java
0100101 0011011 0110011
Type I : pont JDBC-ODBC
n Applet Java exécutée dans un navigateur Web
n Interdiction de charger du code Natif (modèle SandBox)
ima S O L E R I
Type I : pont JDBC-ODBC
nInterdit aux applets Java
nODBC = Microsoft = Windows
n«ODBC is slow» !
nBridge JDBC-ODBC d’Intersolv livré en standard avec le JDK 1.1
nOffre logicielle ODBC étendue
Type II : pont JDBC-API SGBD
Application Java
API Client (Driver natif)
Interface du SGBD driver de type II
JDBC Interface API Client
n Implémentation de JDBC
n Appels natifs à un driver natif
n Accès au SGBD via son API propriétaire
nInterdit aux applets Java
nDépendant du système d’exploitation
nMeilleures performances qu’avec le bridge JDBC-ODBC
Type II : pont JDBC-API SGBD
ima S O L E R I
Type III : driver JDBC-Net
n Implémentation de JDBC
n Communication via un protocole propriétaire (vendor specific) Application Java
Interface du SGBD driver de type III
Interface client SGBD / ODBC JDBC
n Accès au SGBD via ODBC ou via son interface Native Middleware JDBC
ima S O L E R I SGBD Middleware
JDBC
Type III : architecture C/S
Séparer le serveur WEB du SGBD
TCP/IP
CLIENT SERVEUR(s)
ima S O L E R I
Type III : architecture C/S
nMiddleware dépendant du système d’exploitation (sauf si écrit en Java)
nUtilisable par les applets Java
nSouplesse et indépendance vis à vis du SGBD
nRécupération de l’existant
ima S O L E R I
Type IV : driver Natifs pur Java
Application Java
Interface du SGBD driver de type IV
JDBC
n Implémentation de JDBC
n Driver 100%
Java
n Accès au SGBD via son API propriétaire
ima S O L E R I n Peu de drivers disponibles
(uniquement sur les versions les plus récentes des SGBD concernés)
n Utilisable par les applets Java
Type IV : driver Natifs pur Java
ima S O L E R I
Sommaire
nL’API JDBC
nPrincipe de fonctionnement
nJDBC et sécurité Java
nLes drivers JDBC
nAccès aux données en C/S
ima S O L E R I
Serveur de données
S
SGBDima S O L E R I
Architecture 2-Tiers
C / S
2t
Le client accède directement aux données
ima S O L E R I
Drivers de type III et IV
nLe client envoie des requêtes SQL au serveur
nTous les traitements sur le client
n
FAT-CLIENT
C / S
2t
ima S O L E R I
Architecture 3-Tiers
C / S
3t
La serveur applicatif accède directement aux données
Architecture 3-Tiers
C / S
3t
La client accède au serveur applicatif via un protocole d’objets distribués
Architectures 3-Tiers
nLe serveur applicatif accède au SGBD
nAucune contrainte de sécurité (tous les drivers JDBC conviennent)
nLe client (applet) se connecte au serveur applicatif
C / S
3t
Objets distribués :
CORBA, RMI, DCOM et Java
ima
S O L E R I
ima S O L E R I
Sommaire
n3 systèmes
nObjets distribués ?
nInvocation à distance
nl’ORB
nRMI
nDCOM
nCORBA
ima S O L E R I
1 langage = 3 systèmes
n3 solutions :
lRMI (Remote Method Invocation)
lDCOM (Distributed Component Object Model)
lCORBA (Common Object Request Broker Architecture)
n3 lobbies (SUN, OMG et Microsoft)
ima S O L E R I
Sommaire
n3 systèmes
nObjets distribués ?
nInvocation à distance
nl’ORB
nRMI
nDCOM
nCORBA
ima S O L E R I
Une instance de l’objet
NOM : Albert SOLDE : 5000
debite (float montant) credite (float montant)
ima S O L E R I
Manipulation de l’objet
NOM : Albert SOLDE : 5000
debite (float montant) credite (float montant)
objet.credite(200);
affiche(objet.NOM);
ima S O L E R I
Résultat
NOM : Albert SOLDE : 5200
debite (float montant) credite (float montant)
Nom : Albert
ima S O L E R I
Objet local
Client
Albert 5000
ima S O L E R I
Une application distribuée
Albert 5000
Client Serveur
ima S O L E R I
Une application distribuée
Réseau
Albert 5000
Interface locale Objet réel
Sommaire
n3 systèmes
nObjets distribués ?
nInvocation à distance
nl’ORB
nRMI
nDCOM
nCORBA
Invocation de méthodes
Réseau
Albert 5000
credite(200)
ima S O L E R I
Marshalling
Réseau
Albert 5000
credite(200)
ima S O L E R I
Une application distribuée
Réseau
Albert 5200
objet serveur mis à jour
ima S O L E R I
Accès aux propriétés
Réseau
Albert 5200
affiche(NOM)
ima S O L E R I
Marshalling
Réseau
Albert 5200
getNOM()
ima S O L E R I
Réponse du serveur
Réseau
Albert 5200
Albert Nom : Albert
ima S O L E R I
Sommaire
n3 systèmes
nObjets distribués ?
nInvocation à distance
nl’ORB
nRMI
nDCOM
nCORBA
ima S O L E R I
ORB !
Réseau
Albert 5000
Interface locale Objet réel
Object Request Broker ima
S O L E R I
Un middleware : l’ORB
nORB : Object Request Broker
nLe courtier en objet
nReçoit les requêtes
nRenvoie des références d’objets
nGère la communication entre client et serveur
ima S O L E R I
ORB et plus encore
nGère l’adressage des objets (localisation)
nGère la persistance
nGère la sécurité des communications
nACTIVATEUR
lInstancie les objets à distance à la demande
ima S O L E R I
Sommaire
n3 systèmes
nObjets distribués ?
nInvocation à distance
nl’ORB
nRMI
nDCOM
nCORBA
Java to Java
nAPI du JDK 1.1.x
nBasé sur la sérialisation
l transformation d’un objet en une représentation binaire minimale
l utilisée pour la distribution d’objets et la persistance
nSimple à mettre en œ uvre
nRobuste (car simple)
nFonctionnalités limitées (-> JDK1.2)
ORB = MV Java
nL’ORB est inclus dans le JDK
nTrès bas niveau
nPas d’activateur
nUn registre de nommage (associe une référence à une chaine de caractère)
ima S O L E R I
Protocole et implémentation
nImplémentation en Java uniquement
nProtocole = RMI Protocol
nMode de transfert propriétaire (SUN)
nMais IIOP pour bientôt !
ima S O L E R I
Résumé
nIntégré au JDK 1.1
nProtocole de communication propriétaire au dessus de TCP (IIOP).
nSimple à mettre en œ uvre
nRobuste et pauvre fonctionnellement
nEn évolution...
ima S O L E R I
Sommaire
n3 systèmes
nObjets distribués ?
nInvocation à distance
nl’ORB
nRMI
nDCOM
nCORBA
ima S O L E R I
DCOM et Windows
nORB intégré à Windows 32bits depuis NT4.0 (et patch pour Windows 95)
nEnsemble de modules assez peu homogène
nComplexe à appréhender
nPeu d’outils de bas niveau
ima S O L E R I
Windows to Windows
nIntéressant dans le cas d’un réseau 100% pur Windows
nEvolution vers d’autres systèmes
nAu cœ ur de la solution : COM (OLE, OCX, ActiveX)
nMicrosoft Transaction Server
ima S O L E R I
Résumé
nDistributed Component Object Model
nGéré par l’X/Open (????)
nNombreux langages d’implémentation
lC++ (Visual C++), Visual Basic
lProduits L4G (PowerBuilder, Delphi,...) nWINDOWS !
ima S O L E R I
Sommaire
n3 systèmes
nObjets distribués ?
nInvocation à distance
nl’ORB
nRMI
nDCOM
nCORBA
ima S O L E R I
CORBA 2.0
nInstance de normalisation concertée : OMG
nObject Management Group
n850 Entreprises actrices dans le domaine des technologies Objet
nNorme v2 : CORBA 2.0
nIntégration de Java à la norme
ima S O L E R I
ORB
nCORBA
nActivateur (CORBA Daemon)
nNombreux services (pas tous implémentés)
lNaming Service (Trading)
lEvent Service
lTransaction Service
lSecurity
ima S O L E R I
IIOP
nInternet Inter-ORB Protocol
nPermet de faire dialoguer des ORB de fournisseurs différents
nConstruit au dessus de TCP/IP
nImplémenté par la plupart des ORB du marché
Résumé
nCommon Object Request Broker Architecture
n Standardisé par l’OMG
nIndépendant du langage
lC, C++, Smalltalk, ADA95, Java nProduits riches
nBien adapté à Java
1997, deux publications ima
F i n
ima
S O L E R I