Client / Serveur

Transcription

Client / Serveur
Client / Serveur
Rémy Courdier
Normes et Standards
pour le C/S à base d’objets répartis
Client-Serveur : Normes et Standards
1
Rémy Courdier
Normes et Standards du Client
-Serveur
Client-Serveur
à base d
’objets rrépartis
épartis
d’objets
ORB : infrastructure
L’importance des
commune entre
objets ditribués
standards, L’OMG,...
C/S et architecture à
CORBA : L’ORB de
objets distribués
l’OMG
BLOB :
COM/DCOM - OLE :
Binary Large Object
& Composants
Standard de facto
des applications
Microsoft
Les Documents
Composés
Client-Serveur : Normes et Standards
Java Beans
2
Rémy Courdier
L
’importance des standards
L’importance
Object Management Group : OMG
Tunnel
JAVA Beans, RMI
ActiveX, OLE, COM/DCOM
CORBA, IDL, IIOP, GIOP, ESIOP
SOM/DSOM
Client-Serveur : Normes et Standards
3
Rémy Courdier
L
’OMG : L
’Object Management Group
L’OMG
L’Object
Consortium
éé en
Consortium qui
qui regroupe
regroupe ++ de
de 700
700 acteurs
acteurs cr
créé
en 1989
1989
„
Consortium a but non lucratif...
Ne produit pas de code, fournit des spécifications
dans le domaine des architectures objets
Toute l’activité de L’OMG est désignée par le Sigle
OMA (Object Management Architecture) dont CORBA
est un des composants.
„
Objectifs :
Réduire le coût et la complexité du dévelop. objet,
Permettre l’introduction rapide de nouveaux types
d’applications à bases d’objets.
Spécification de composants logiciels :
interopérables, réutilisables, portables
Client-Serveur : Normes et Standards
4
Rémy Courdier
C/S et architectures à objets Distribu
és
Distribués
„
„
„
L’approche traditionnelle de la construction
d’applications C/S passe par une étape longue
de spécifications à partir du problème posé
Si la nature du problème change rapidement, le
produit développé ne convient plus au besoin
du client lors de son déploiement
Les architectures à objet répartis visent à
permettre une adaptation permanente entre les
problèmes et les applications informatiques
Client-Serveur : Normes et Standards
5
Rémy Courdier
BLOB : Binary Large Objects
„
„
„
Objets binaires de grande taille encapsulés
sous une représentation objet et qui nécessites
une gestion particulière de la part des serveurs
Un BLOB peut correspondre à une vidéo, un
document intelligent,...
Des protocoles doivent être définis pour
l’échange de BLOBs entre systèmes et pour
l’association de BLOBs avec des programmes
qui doivent être capable de les gérer
...Vers l’approche composant (Component)
Client-Serveur : Normes et Standards
6
Rémy Courdier
Des objets aux composants
„
Objet : bonne réutilisation via héritage et
encapsulation, mais seules les applications qui sont
liées à ces objets peuvent les utiliser
Approche
„
„
„
Composant
Composant = BLOB intelligent qui encapsule du code et
des données et qui peut être utilisé par tout
programme sur le réseau
Le langage et le compilateur utilisé pour créer un
composant sont transparents aux clients
On peut demander à un composant ce qu’il sait faire
puis l’invoquer dynamiquement
Client-Serveur : Normes et Standards
7
Rémy Courdier
Objets Distribu
és & Composants
Distribués
„
„
entité logicielle qui ne correspond pas une
application complète
entité logicielle commercialisable
„
„
„
entité boite “noire logicielle” :
„
„
„
„
utilisable dans tout contexte logiciel
peut sauvegarder son état et le restituer (persistance)
doit contenir une version logicielle
entité avec une interface normalisée
„
„
répond à une fonction précise “vendable” et autonome
il peut comporter sa propre licence
IDL : Interface Définition Langage
entité logicielle indépendante des :
„
Langages, compilateurs, OS, réseaux, matériels
Client-Serveur : Normes et Standards
8
Rémy Courdier
Objets Distribu
és &
Distribués
& Composants(2)
Composants(2)
“Plug and Play” : intégration automatique de composants logiciels élémentaires
+
+
=
Interopérabilité : messagerie transparente n’importe ou dans le monde
ORB
Portabilité : s’exécute sur différentes plate formes
Unix
...
Win.
Client-Serveur : Normes et Standards
9
Rémy Courdier
Objets Distribu
és & Composants (3)
Distribués
Coexistence : coexiste avec des applications traditionnelles avec des
interfaces objet
ORB
Appli.
Autonomie : gèrent leurs liens avec les autres objets et les ressources
qui leur sont nécessaires
Ils sont très dynamiques
ORB
Dis moi ce que tu
sais faire ?
Client-Serveur : Normes et Standards
10
Rémy Courdier
Applications monolithiques
Objets Distribu
és & Composants
Distribués
„
Utilisateur = acteur
„
„
Petits développeurs
„
„
informatique = assemblage de composants par des
langages simples : scripts ou langage graphique
possibilités à de nombreux développeurs de distribués
des briques s’intégrant dans de gros logiciels
Grands développements
„
„
„
réduction de la complexité des grands logiciels
réduction des tests de non régression en cas
d’évolution Vx à Vx+1
proposer des solutions sur mesure par assemblage de
composants au lieu de proposer des monstres
invendables
Client-Serveur : Normes et Standards
11
Rémy Courdier
Les documents compos
és :
composés
Composants & Conteneurs
„
Document composé :
„
„
„
Ensemble d’objets de type différents intégrés dans
un même contexte par une application et manipulés
de manière uniforme par l’utilisateur
Les objets peuvent être de types multiples : texte,
tableau, image, son, animation vidéo,...
Conteneur (container) :
„
„
Contexte d’application contenant ou reliant les
objets constituant un document composé
C’est en fait une application autonome ou un
composant qui intègrent des composants pour
réaliser ses fonctions
Client-Serveur : Normes et Standards
12
Rémy Courdier
Les documents compos
és :
composés
Liaison & Incorporation
„
La liaison :
„
„
„
mécanisme permettant de référencer les données d’un
composant au sein d’un conteneur
dans le document composite cela se traduit par la
mémorisation d’un lien (moniker) vers un autre document
L’incorporation :
„
„
mécanisme qui consiste à recopier les données d’un
composant dans un conteneur
dans le document composite cela se traduit par la
mémorisation d’un nouveau type de donnée dans un “Stream”
du document
Dans les 2 cas, les données restent gérées par le composant qui les a
créé
Client-Serveur : Normes et Standards
13
Rémy Courdier
Les documents compos
és :
composés
L
’activation sur place
L’activation
„
Mode d’activation d’un composant dans un
conteneur
„
L’incorporation de données implique une
activation sur place
„
„
„
Le menu du conteneur se combine avec le menu du
composant, selon des règles de composition précises
le composant est chargé et déchargé automatiquement
La liaison implique l’activation du conteneur
gérant le document contenant les données
liées
Client-Serveur : Normes et Standards
14
Rémy Courdier
ORB : infrastructure de
communication entre objets distribu
és
distribués
„
ORB : Object Request Broker
„
„
L’ORB est chargé de l’acheminement des requêtes et
des retours vers le client
Les cinq services que doit fournir un ORB :
„
„
„
„
„
Une banque d’interface ou IR : Interface Repository
Une interface (API) de prog. pour l’ORB lui-même
Une implémentation d’un “Object Adapter” tel que LOA :
Library Object Adapter
Une interface d’invocation dynamique DII : Dynamique
Invocation Interface - construction dyn. de messages
Une interface de souche dynamique DSI : Dynamique
Skeleton Interface - réponse à des messages dyn.
Client-Serveur : Normes et Standards
15
Rémy Courdier
dapter
La notion d
’Object A
d’Object
Adapter
„
Pourquoi un xOA ?
„
„
Il existe d’autres types d’Object Adapter
„
„
„
„
Couche logicielle qui doit maintenir l’illusion pour le client que
l’objet qu’il invoque est toujours actif, prêt à répondre à ses
requêtes
Le BOA : suppose le serveur comme une application
le LOA (Library Object Adapter) : suppose le serveur comme
une librairie dynamique
le ODA (Object Database Adapter) : suppose le serveur comme
une BD orientée objet
Fonctions d’un Object Adapter
„
„
„
„
interprétation des réf. aux objets
enregistrement des serveurs
activation désactivation des serveurs
invocation de méthodes et sécurité des interactions
Client-Serveur : Normes et Standards
16
Rémy Courdier
Les diff
érents types d
’Object Adapter
différents
d’Object
Client-Serveur : Normes et Standards
17
„
The currently adopted OMG CORBA
document provides for normal object
access via the Basic Object Adaptor (BOA).
For complete generality, flexibility, and
interoperability, it executes via an
interprocess mechanism (RPC for short) for
every dispatch of every method.
„
An extension is the Library Object Adaptor
(LOA) that allows direct, considerably
faster access to objects. After the first
invocation (via the usual ORB mechanism),
or through a compile-time optimization, a
direct link is established to the object. Later
access by the client to the object is then
direct until the client notifies the ORB that it
has released the object.
„
The Object Database Adaptor (ODA)
provides a mechanism to register a
subspace of object identifiers with the ORB
rather than having to register all objects in
the ODBMS. From the client's point of view,
the objects in the registered subspace
appear just as any other ORB-accessible
objects, with the same interface.
Rémy Courdier
ORB : invocation statique et dynamique
Serveurs
HOTE 1
Serveurs
Clients
HOTE N
xOA
xOA
Stub
Serveurs
Clients
DII
Skeleton
DSI
ORB
Invocation statique
Client-Serveur : Normes et Standards
Invocation dynamique
18
Rémy Courdier
les 5 domaines de CORBA
Object Management Architecture(OMA)
Un langage de description des données (IDL) et une
infrastructure de distribution d’objets(ORB)
Une description de services communs nécessaires
aux objets applicatifs : CorbaServices
„
permet d’isoler clients et serveurs des détails
d’implémentation (nommage, persistance, annuaire,...)
Services communs aux applications et non plus
seulement aux objets : CorbaFacilities
„
documents composite (OpenDoc), interface utilisateur,...
Collection de services spécialisés par branche
industrielle : Domain Services
„
télécommunication, santé, automatisme indust., finance,...
Un spécif. normative d’interopérabilité entre ORB
Client-Serveur : Normes et Standards
19
Rémy Courdier
ll’IDL
’IDL CORBA
„
l’IDL : Interface definition Langage
„
„
sert à rendre indépendant le client du serveur en terme de
langage de programmation
La norme IDL Corba spécifie :
„
„
la syntaxe de spécification des objets distribués
les projections (mapping) vers les langage de prog.
„
„
C, C++, Smalltalk
Java, Ada, Cobol
travail en général automatisé par les AGL objets : les
compilo génèrent automatiquement les souches dans le
langage de programmation choisi
Stub : code généré pour le Client en corba
Skeleton : code généré pour le Serveur
Client-Serveur : Normes et Standards
20
Rémy Courdier
de IDL à C++
„
LangageIDL
interface Cercle {
attribut float Rayon;
}`
„
Langage C++
class Cercle {
public :
float get_Rayon();
void set_Rayon(float r);
}
Client-Serveur : Normes et Standards
21
Rémy Courdier
CorbaServices
nommage et annuaire d’objets
„
Naming Services
notifications entre objets
„
Event Services
cycles de vie, relations entre objets
„
Lifecycle Services, Relationship Services
stockage et archivage des objets
„
Persistent Object Service, Externalization Services
transaction et parallélisme entre objets
„
Transaction Services, Concurency Services
administration des objets
„
Property Services, Query Services
sécurité et authentification des objets
„
Security & Licensing Services
Services destinés aux programmeurs d’appli. C/S
Client-Serveur : Normes et Standards
22
Rémy Courdier
service de nommage et d
’annuaire
d’annuaire
„
„
obtenir la référence d’un objet distribué
La norme spécifie des interfaces pour :
lier les objets à un nom dans un contexte donné
résoudre un nom dans un contexte donné
détruire un lien dans un contexte donné
créer et détruire des contextes
parcourir un contexte
„
„
Un contexte est un objet qui contient un ens.
de liens dans lequel les noms sont uniques
service d’annuaire : choix d’un objet par ses
caractéristiques plutôt que par son nom
Client-Serveur : Normes et Standards
23
Rémy Courdier
les services de notification
„
Repose sur l’idée d’abonnement
„
„
„
„
Ni les clients, ni les serveurs n’ont besoin de
connaître leurs identités respectives
„
„
les programmes clients s’abonnent à des événements
les programmes serveurs notifient au service ces evts.
= canal d’événements qui relie consommateurs et
producteurs d’événements
Les messages de notification sont stockés dans une boite aux
lettres si le destinataire est temporairement indisponible
(MOM : Message Oriented Middleware )
la norme Corba laisse aux implémentations le
choix des mécanismes tech. de notifications
Client-Serveur : Normes et Standards
24
Rémy Courdier
Cycle de vie et relation entre objets
„
mécanismes responsables
de la création et de la destruction d’objets
de la duplication et du déplacement d’objets
„
„
un objet susceptible de créer un autre
objet est appelé une usine (factory)
les factory sont responsables de la
gestion des ressources mémoire...
nécessaires pour créer l’objet , ainsi que
de sa prise en charge auprès du BOA
Client-Serveur : Normes et Standards
25
Rémy Courdier
Cycle de vie et relation entre objets(2)
„
Les relationship Services permettent de
définir des relations entre objets
définition des rôles de chaque objet d’une relation
dans les documents composés contenu/contenant
„
définir des opérations de parcours de ce
réseau de relations :
utilisation d’interfaces spécialisés : Node &
Transversal
découvrir tous les rôles que joue un objet dans les
différentes relations avec les autres objets et
parcourir ces relations d’un rôle à l’autre
Client-Serveur : Normes et Standards
26
Rémy Courdier
Stockage et archivage d
’objets
d’objets
„
„
„
„
possibilité de sauvegarder l’état complet
d’un objet entre 2 requêtes client
Une référence à un objet doit pour le
client toujours concerner le même objet
dans l’état où il la laissé pour la dernière
requête
enregistrement en fichier structurés,
base de données (objet)
Corba unifie la vision externe par une
interface IDL standard
Client-Serveur : Normes et Standards
27
Rémy Courdier
le standard de persistance :
les Interfaces IDL
„
„
„
Persitence Object : sauvegarde contrôlée
par l’objet lui-même ou le conteneur
Persistent Object Manager : gère les
associations entre objets persistants
Persistent Data Services : Pour les objets
utilisant des protocoles particuliers
„
„
protocoles : accès direct (recopie de valeurs),
ODMG-93(BDO), Dynamic Data Object Protocol,...
Datastore : permet l’enregistrement
physique des objets sauvegardés dans
des banques de données (norme X/Open)
Client-Serveur : Normes et Standards
28
Rémy Courdier
Services de transactions et de
contrôle de concurrence entre objets
extensions des mécanismes objets distribués pour
leur donner la robustesse des applications
transactionnelles
norme compatible avec les moniteur
transactionnels du marché :
interopérabilité avec le DTP de l’X/Open (TX et XA)
coordination de l’accès à des ressources non objet et objet
dans une transaction
Norme = begin, commit, rollback, suspend, resume...
les services de concurrence permettent de
verrouiller les ressources utilisées par une
transaction en cours, bonne gestion des
transactions imbriquées
Client-Serveur : Normes et Standards
29
Rémy Courdier
Services d
’administration des objets
d’administration
„
„
administration de systèmes comportant
un grand nombre d’objets
les Property Services
„
„
„
permettent à un client d’associer dynamiquement
des attributs à un objet pour lui seul.
Ces info. ne font pas partie du type de l’objet distant
les Query Services
„
„
„
langage de requête dérivé de SQL : unification des
BD Relationnelles, Orientées Objet, objets Corba
évaluateur de requêtes (Query Evaluator) traduit les
requêtes d’un système à un autre
OQL-93 défini par l’ODMG (Object Database
Management Group) sous groupe de l’OMG
Client-Serveur : Normes et Standards
30
Rémy Courdier
Services de ssécurité
écurité et d
’authentification
d’authentification
„
service d’identification (le client ou le serveur est bien
celui qu’il prétend être) et d’authentification (le client ou le
serveur a effectivement le droit de faire... ) pour les
utilisateurs et les objets
„
Service d’autorisation et de contrôle d’accès
„
Services d’audit qui conserve la trace de
toutes les interactions entre C/S
„
Services de cryptographie
Client-Serveur : Normes et Standards
31
Rémy Courdier
les ““CorbaFacilities”
CorbaFacilities”
Quatre
Quatre grands
grands domaines
domaines
„
l’interface utilisateur
„
„
l’administration de l’information
„
„
la modélisation, la définition, la sauvegarde, la
récupération et l’échange d’info. (formats,...)
l’administration de systèmes
„
„
Tout ce qui touche l’utilisateur d’env. à objets
distribués (Les documents composés)
intégration de systèmes hétérogènes
l’automatisation des flux de documents
„
exécution, séquencement et automatisation des
taches (procédures, agents logiciels, macro,...)
Client-Serveur : Normes et Standards
32
Rémy Courdier

Documents pareils