• Aucun résultat trouvé

Cours complet architectures C/S Java: De JDBC à CORBA – Cours et formation gratuit

N/A
N/A
Protected

Academic year: 2022

Partager "Cours complet architectures C/S Java: De JDBC à CORBA – Cours et formation gratuit"

Copied!
19
0
0

Texte intégral

(1)

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

(2)

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

(3)

ima S O L E R I

Connexion de l’applet

Navigateur WEB

?

SGBD

ima S O L E R I

Architectures Client/Serveur

C / S

ima S O L E R I

Le client

C

Connexion au

serveur

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)

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

ima S O L E R I

Serveur de données

S

SGBD

ima 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

(13)

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);

(14)

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)

(15)

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

(16)

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)

(17)

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 !

(18)

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

(19)

F i n

ima

S O L E R I

Références

Documents relatifs

• La persistance des données des objets peut se faire via une base de données

Pour calculer la valeur d’une fonction f d´efinie par une expression pour une valeur donn´ee de l’ensemble de d´efinition A, il faut remplacer dans l’expression la variable par

En consid´erant que la liste la plus simple est la liste vide (not´ee [ ]), qui ne contient aucun ´el´ement, on peut donner une d´efinition r´ecursive aux listes

Nous donnons l’´etat de la machine apr`es ex´ecution de chacune des instructions du programme, autrement dit, l’´etat des entr´ees, l’´etat des sorties, et de la m´emoire

Dans ce cas l’exception n’est pas rattrap´ee dans le corps et comme elle n’est ni dans la cat´egorie Error ni dans la cat´egorie RuntimeException, on la d´eclare comme

Q1 Cr´eer une classe ex2.CustomSlider qui permet de choisir un entier `a l’aide d’une classe JSlider et affiche la valeur dans un JTextField, comme illustr´e ci-dessous. Q2 On

Tuyêt Trâm DANG NGOC - Université de Versailles jeudi 4 novembre 2004..

[r]