Cours Architecture Des SI

81
Avril 2011 Architecture des SI - P. ANIORTE 1 Préambule Présentation Objectifs Contenus

Transcript of Cours Architecture Des SI

Page 1: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 1

Préambule

Présentation

Objectifs

Contenus

Page 2: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 2

Objectifs

Savoir : Appréhender le problème de l’architecture des SI et les solutions disponibles

Savoir-faire : Mettre en œuvre les outils proposés dans les environnements CORBA & RMI

Page 3: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 3

Contenus

Introduction à l’interopérabilité

Le modèle Client / Serveur

CORBA

RMI

Page 4: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE

4

Introduction à l’interopérabilité

Philippe ANIORTE

IUT Bayonne - LIUPPA

[email protected]

Page 5: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 5

Plan du chapitre

1. Définition générale

2. Origines du problème

3. Types d’interopérabilité

4. Eléments de solution

Page 6: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 6

1. Définition (1)

« Inter » : entre (entités)

« Opérer » : traiter

Permettre l’interaction (coopération) entre entités

Page 7: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 7

1. Caractérisation des entités

Autonomie : conception / communication / exécution

Hétérogénéité : environnement

Distribution : réseau

Page 8: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 8

1. Définition (2)

Capacité d’échange de données et de services entre systèmes en dépit de leurs différences (hétérogénéité)

L’interopérabilité traite la distribution, la compréhension et la communication mutuelles entre entités

Page 9: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 9

2. Origines du problème

Niveau SI

Organisationnelles : externes / internes Intégration d’activités - Systèmes ouverts évolutifs

Techniques : modèles / logiciels / matériel

Page 10: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 10

3. Types d’interopérabilité

Interopérabilité sémantique (conceptuelle) Focalise sur les données gérées dans des BD - niveau modèle

Interopérabilité technique (à l’exécution) Focalise sur les supports d’exécution (SGBD, Systèmes d’Exploitation, objets distribués)

Page 11: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 11

4. Eléments de solution

Modèle de spécification commun : unification

Protocole d’interaction entre entités hétérogènes : transparence

Gestion de la distribution : transparence

Page 12: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE

12

Le modèle Client / Serveur

Philippe ANIORTE

IUT Bayonne - LIUPPA

[email protected]

Page 13: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 13

Plan du chapitre

1. Principes du modèle

2. Aspects techniques

3. Eléments de mise en œuvre

Page 14: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 14

1. Un modèle de communication entre entités distantes

Entités (clients & serveur) = processus

Les processus s’exécutent sur des machines différentes reliées par un réseau (distribution)

Protocole de communication (niveau application)

Page 15: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 15

1. Le serveur

Fournit un service

Attend les sollicitations des clients

Répond à ces sollicitations en assurant le service

Page 16: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 16

1. Les clients

Consomment le service

Demandent le service

Utilisent le service

Page 17: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 17

2. TCP/IP

Protocole pour réseaux locaux le plus répandu

Transmission Control Protocol (couche ISO n° 4 - transport)

Internet Protocol (couche n° 3 - réseau)

Page 18: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 18

2. Le Port

L’adresse IP d’une machine ne suffit pas

Il est nécessaire de préciser le processus concerné (service)

Tout service est associé à un port (n°)

Page 19: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 19

2. La « socket »

« Prise » / « terminal de communication »

Dispositif permettant la communication de processus

Adresse IP / n° de port

Page 20: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 20

3. La gestion de sockets (client & serveur)

Création socket

Envoi message

Réception message

Fermeture socket

Page 21: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 21

3. La gestion de sockets (« côté client »)

Demande connexion

Création socket - Demande connexion - (Envoi message - Réception message) * - Fermeture socket

Page 22: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 22

3. La gestion de sockets (« côté serveur »)

Rendre accessible la socket par des processus inconnus a priori (clients)

Ouverture service

Attente connexion

Page 23: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE

23

CORBA

Philippe ANIORTE

IUT Bayonne - LIUPPA

[email protected]

Page 24: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 24

CORBA (Common Object Request Broker Architecture)

Applications industrielles de grande envergure

Atout majeur de développement

CORBA vs RMI, DCOM … Client / Serveur

Page 25: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 25

Plan du chapitre

1. Présentation générale de CORBA

2. Etapes de développement d’une application CORBA

3. Services CORBA

Page 26: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 26

1. Introduction

Pas un produit (outil ou ensemble d’outils)

Norme : spécifications et recommandations

Groupe de travail OMG

Page 27: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 27

1. Architecture logicielle distribuée et objets (1/2)

Clients : requêtes à destination d’objets

Exécution dans des processus serveurs

Réponses aux clients

Page 28: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 28

1. Architecture logicielle distribuée et objets (2/2)

Client et Serveur : 2 parties du développement

Serveur : met à disposition des objets CORBA

Client : utilise ces objets

Page 29: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 29

1. Du Client / Serveur de base à l’architecture distribuée

Limites du Client / Serveur : performances (nombre de connexions, réseau), déploiement, évolution

Interopérabilité !

Page 30: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 30

1. Seconde génération : Client / Serveur à 3 niveaux (tiers) (1/2)

Intermédiaire entre le client et le serveur : serveur d’application

Déplacement de la logique de l’application vers le serveur d’application

Page 31: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 31

1. Seconde génération : Client / Serveur à 3 niveaux (tiers) (2/2)

Avantages : centralisation des traitements (maintenance, évolution), partage des traitements

Inconvénients : communication standardisée à un bas niveau, concept objet non pris en compte, manque d’outils de développement

Page 32: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 32

1. Architecture logicielle distribuée CORBA

Indépendance géographique (transparence de la distribution)

Middleware (intergiciel) : gestion de la communication entre éléments distribués hétérogènes (applet Java, DB2, Excel, Oracle, COBOL, C++ …)

Orientation « objet » (Java …)

Page 33: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 33

1. Avantages de CORBA (1/2)

Solutions non propriétaires : bus logiciel - ORB (Object Request Broker)

Interopérabilité : protocole IIOP (Internet Inter-ORB Protocol)

Intégration de l’existant (« wrapping », passerelles)

Page 34: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 34

1. Avantages de CORBA (2/2)Abstraction : définition / implantation partie

visible par les clients = interface (contrat qui définit les méthodes supportées par l’objet)

Transparence d’utilisation (y compris dans le temps : évolution)

Java (orientation objet, interopérabilité …)

Page 35: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 35

1. Architecture CORBA (1/3)ORB

Issue des travaux de l’OMG visant à définir les bases d’une architecture distribuée universelle (OMA - Object Management Architecture)

ORB : cœur de l’architecture Communication transparente entre les objets mis à disposition par le serveur et les clients qui s’y connectent

Page 36: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 36

1. Architecture CORBA (2/3)Objets applicatifs & Services CORBA

Objets applicatifs (Application Interfaces) : constituent l’application à développer

Services CORBA (CORBAServices ou services objets) : outils généraux de développement s’adressant aux objets (sécurité …)

Page 37: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 37

1. Architecture CORBA (3/3)Spécialisations

CORBAFacilities : spécialisation horizontale S’adressent aux applications - utilitaires communs (impression …)

Domain Interfaces : spécialisation verticale (métiers) - utilitaires destinés à un secteur d’activité (gestion de cartes bancaires …)

Page 38: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 38

1. Les éléments essentielsde la norme CORBA : IDL (1/7)

IDL (Interface Definition Language) : langage de définition de l’interface des objets CORBA accessibles par les clients

Concerne la partie externe de l’objet définie de façon publique (méthodes …)

Indépendance avec l’implantation de l’objet « mapping » (transformation)

Page 39: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 39

1. Les éléments essentiels de la norme CORBA : Stub & Skeleton(2/7)

Stub (souche) : fragment de code pour la communication client / serveur côté client

Skeleton (squelette) : communication côté serveur

Outils de génération automatique de code (Java, C++, …) à partir de la définition de l’interface (IDL)

Page 40: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 40

1. Les éléments essentiels de la norme CORBA : Adapter (3/7)

Object adapter (adaptateur d’objet) : Gestion des objets à l’intérieur de l’application serveur (activation des objets en fonction des demandes …)

2 types : BOA (Basic Object Adapter) & POA (Portable Object Adapter)

Page 41: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 41

1. Les éléments essentiels de la norme CORBA : POA (4/7)

Parfaitement décrit dans la norme Compatibilité entre tous les ORB

Servant : implantation de l’objet (côté serveur)

Object reference : côté client

Page 42: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 42

1. Les éléments essentiels de la norme CORBA : IOR (5/7)

Connexion entre un client et un serveur (binding)

Retourne au stub la référence à l’objet auquel on veut accéder : IOR (Interoperable Object Reference)

L’IOR est ensuite utilisé par le client pour accéder à l’objet correspondant

Page 43: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 43

1. Les éléments essentiels de la norme CORBA : Référentiels (6/7)

Interface Repository : référentiel qui contient des informations sur les objets utilisés (IDL …)

Implementation Repository : contient des informations qui permettent à l’ORB de localiser et d’activer les objets référencés dans l’Interface Repository

Page 44: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 44

1. Les éléments essentiels : Interfaçage dynamique (7/7)

Accès dynamique aux objets (lors de l’exécution) : évolution des interfaces

DII (Dynamic Invocation Interface) : construction dynamique de requêtes vers des objets CORBA sans stub

DSI (Dynamic Skeleton Interface) : interception de requêtes sans skeleton

Page 45: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 45

1. Evolution de CORBA1991 : version 1.0 - pas de protocole

commun à tous les ORB

1994 - 1999 : version 2.0 à 2.3 - IIOP ... RMI sur IIOP

version 3.0 : CCM (CORBA Component Model)

Page 46: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 46

1. Implantations de CORBA

Inprise : VisibrokerIONA : OrbixIBM : SOMObjectsObject Oriented Concepts : ORBacusAT&T : omniORB2

Page 47: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 47

1. CORBA et ses concurrents (1/2)

Sockets ...

RPC (Remote Procedure Call) standardisé par l’Open Software Foundation sous la dénomination DCE (Distributed Computing Environment) - RPC/DCE basé fonctions

Page 48: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 48

1. CORBA et ses concurrents (2/2)

DCOM (Distributed Common Object Model) / COM+ - Microsoft : Windows

RMI (Remote Method Invocation) - Java EJB (Enterprise JavaBeans)

Page 49: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 49

2. Développement d’une application CORBA : Vue générale

Définition des fonctionnalités de l’objet

Implantation de ces fonctionnalités et codage des applications client et serveur

Compilation de l’ensemble pour générer les applications exécutables

Page 50: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 50

2. Les 7 étapes de développement d’une application CORBA (1/3)

1. Ecriture de l’interface de l’objet en IDL

2. Compilation de l’IDL : génération des modules stub et skeleton (ligne de commande ou environnement de développement)

3. Implantation de l’objet (code)

Page 51: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 51

2. Les 7 étapes de développement d’une application CORBA (2/3)

4. Ecriture ou génération du code de l’application serveur (pour le lancement de l’objet)

5. Compilation du serveur (génération de l’exécutable de l’application serveur - liaison à l’ORB)

Page 52: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 52

2. Les 7 étapes de développement d’une application CORBA (3/3)

6. Ecriture de l’application cliente (pour se connecter à l’objet distant afin d’exécuter des méthodes)

7. Compilation du client (liaison à l’ORB)

Page 53: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 53

2.1. Ecriture de l’interface en IDLIndépendance avec le langage utilisé

pour l’implantation de l’objet

Eléments de syntaxe : mots réservés - définition de méthodes

Editeur de texte (général ou intégré) : format ASCII standard - <module>.idl

Page 54: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 54

2.2. Compilation de l ’IDL - Génération stub et skeleton (1/2)

Compilateur IDL fourni avec l’ORB

Stub : objet « virtuel » (proxy ou objet subrogé) - relai vers l’objet distant

Skeleton : classe de base de l’objet distribué à dériver (cf. étape 3)

Page 55: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 55

2.2. Compilation de l ’IDL - Génération stub et skeleton (2/2)

Code généré : C++, Java ...

Selon des règles de projection (mapping) définies par l’OMG (C, C++, Java, COBOL, Ada et Smalltalk)

Ligne de commande ou environnement de développement

Page 56: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 56

2.3. Création du servant - Implantation de l’objet

Création de la classe de l’objet mis à disposition des clients

Par dérivation, à partir du skeleton généré à l’étape 2

Editeur de texte / générateur de code

Page 57: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 57

2.4. Réalisation du serveur (1/4)

Mettre à disposition des applications clientes l’objet obtenu à l’étape 3

Création d’une application hôte (serveur) qui contiendra l’objet

Programme résident (servlet, contrôle ActiveX, DLL ISAPI …)

Page 58: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 58

2.4. Réalisation du serveur (2/4)

Initialiser l’ORB : disposer d ’un accès à un objet correspondant à l’ORB

Obtenir une référence sur le rootPOA : accéder aux fonctionnalités du POA

[Définir la stratégie du POA : persistance]

Page 59: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 59

2.4. Réalisation du serveur (3/4)

[Créer le POA]

Créer le servant

Activer le servant dans le POA : rendre l’objet accessible aux applications clientes

Page 60: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 60

2.4. Réalisation du serveur (4/4)

Activer le POA Manager : pour écouter les demandes

Mise en attente du serveur : mettre l’application serveur en position d’attente

Page 61: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 61

2.5. Compilation du serveur

Génération de l’exécutable (ligne de commande / environnement de développement)

Fichiers à inclure : [interface], stub, skeleton, code programme serveur, ORB

Page 62: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 62

2.6. Réalisation du client

Initialiser l’ORB (idem serveur)

Connexion à l’objet : méthode propriétaire (bind) non normalisée par l’OMG !

Utilisation de l’objet : appels de méthodes (« classique »)

Page 63: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 63

2.7. Compilation du client

Génération de l’exécutable : ligne de commande / environnement de développement (idem serveur - étape 5)

Fichiers à inclure : interface utilisateur du client, stub, ORB

Page 64: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 64

3. Services CORBA - Vue générale (1/7)

Naming : permet le « nommage » symbolique des objets CORBA sous des noms simples et explicites qui seront ensuite utilisés par les clients

Event : produit des événements asynchrones au niveau des serveurs accessibles par un canal spécifique (pull / push)

Page 65: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 65

3. Services CORBA - Vue générale (2/7)

LifeCycle : offre un ensemble d’outils pour la gestion du cycle de vie des objets

Persistent Object : prend en charge la persistance des objets (stockage / restauration) - liens avec Externationalization (stockage sur support persistant)

Page 66: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 66

3. Services CORBA - Vue générale (3/7)

Relationship : gère les relations inter-objets (cardinalités 1-1 1-n n-n, intégrité)

Externationalization : gère des flux d’objets sortants (externationalisation) et entrants (internationalisation) pouvant impliquer des ORB différents - interopérabilité

Page 67: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 67

3. Services CORBA - Vue générale (4/7)

Transaction : garantit l’intégrité des objets quels que soient les problèmes survenant lors du traitement - concept de transaction

Concurrency Control : gère les problèmes d’accès concurrents aux ressources partagées

Page 68: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 68

3. Services CORBA - Vue générale (5/7)

Licensing : gestion des licences - contrôle de l’accès aux objets pour facturation

Query : permet l’introspection sur les objets

Object Collection : permet de parcourir des collections d’objets (de même type) - itérateurs - liés à Query

Page 69: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 69

3. Services CORBA - Vue générale (6/7)

Property : permettre l’ajout dynamique de propriétés à un objet CORBA - en marge de la définition - besoin temporaire

Security : garantir la sécurité de l’application (authentification des clients, cryptage des données transitant sur le réseau …)

Page 70: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 70

3. Services CORBA - Vue générale (7/7)

Time : fournit un point de synchronisation entre clients et serveurs - déclenchement simultané d’actions communes

Trading Object : service de localisation d’objets - trouver l’objet approprié répondant à des critères de recherche précis.

Page 71: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 71

Conclusion

Langage IDL

Programmation Serveur

Programmation Client

Page 72: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE

72

Java-RMI

Philippe ANIORTE

IUT Bayonne - LIUPPA

[email protected]

Page 73: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 73

Positonnement

RMI : Remote Method Invocation (RPC orienté objet intégré à Java)

Interopérabilité autour de Java

Objet Java : Stub (Proxy) / Skeleton

Page 74: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 74

Architecture

2 parties : JVM Client & JVM Serveur (JVM=Java Virtual Machine)

JVM Client : Client - Stub - Naming

JVM Serveur : Serveur - Skeleton - Naming

Page 75: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 75

Naming (nommage)

Dispositif central : rmiregistry (serveur de noms)

Le serveur y enregistre le service

Le client y recherche le service

Page 76: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 76

Démarche de développement

Codage

Compilation

Lancement

Page 77: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 77

Codage - Vue générale

Interface du service

Serveur (implantation de l’objet distribué offrant le service)

Client (utilisation de l’objet via l’interface)

Page 78: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 78

Codage de l’interface (interface Java « classique »)

Interface « publique »

Extension de l’interface java.rmi.Remote

Exception java.rmi.RemoteException

Page 79: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 79

Compilation des sources

Fichiers .java (interface, serveur & client)

Compilateur Java : javac

Génération de 3 classes .class (interface, serveur & client)

Page 80: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 80

Génération des stub et skeleton

Outil rmic

Génération de classes ( _Stub.class & _Skeleton.class)

Page 81: Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 81

Lancement

Serveur de noms (rmiregistry)

Serveur

Client