Cours Architecture Des SI

Post on 04-Jul-2015

216 views 2 download

Transcript of Cours Architecture Des SI

Avril 2011 Architecture des SI - P. ANIORTE 1

Préambule

Présentation

Objectifs

Contenus

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

Avril 2011 Architecture des SI - P. ANIORTE 3

Contenus

Introduction à l’interopérabilité

Le modèle Client / Serveur

CORBA

RMI

Avril 2011 Architecture des SI - P. ANIORTE

4

Introduction à l’interopérabilité

Philippe ANIORTE

IUT Bayonne - LIUPPA

aniorte@iutbayonne.univ-pau.fr

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

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

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

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

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

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)

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

Avril 2011 Architecture des SI - P. ANIORTE

12

Le modèle Client / Serveur

Philippe ANIORTE

IUT Bayonne - LIUPPA

aniorte@iutbayonne.univ-pau.fr

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

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)

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

Avril 2011 Architecture des SI - P. ANIORTE 16

1. Les clients

Consomment le service

Demandent le service

Utilisent le service

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)

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

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

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

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

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

Avril 2011 Architecture des SI - P. ANIORTE

23

CORBA

Philippe ANIORTE

IUT Bayonne - LIUPPA

aniorte@iutbayonne.univ-pau.fr

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

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

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

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

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

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é !

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

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

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

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)

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é …)

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

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é …)

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

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)

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)

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)

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

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

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

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

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)

Avril 2011 Architecture des SI - P. ANIORTE 46

1. Implantations de CORBA

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

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

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)

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

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)

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)

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)

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

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)

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

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

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

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]

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

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

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

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

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

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)

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)

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é

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

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

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

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.

Avril 2011 Architecture des SI - P. ANIORTE 71

Conclusion

Langage IDL

Programmation Serveur

Programmation Client

Avril 2011 Architecture des SI - P. ANIORTE

72

Java-RMI

Philippe ANIORTE

IUT Bayonne - LIUPPA

aniorte@iutbayonne.univ-pau.fr

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

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

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

Avril 2011 Architecture des SI - P. ANIORTE 76

Démarche de développement

Codage

Compilation

Lancement

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)

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

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)

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)

Avril 2011 Architecture des SI - P. ANIORTE 81

Lancement

Serveur de noms (rmiregistry)

Serveur

Client