37
1 Programmation Approche Programmation Approche composants Ing5 SI composants Ing5 SI

1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

Embed Size (px)

Citation preview

Page 1: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

11

Programmation Approche Programmation Approche composants Ing5 SIcomposants Ing5 SI

Page 2: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

22

Plan du modulePlan du module

Approche composants et interopérabilité Approche composants et interopérabilité des SI sur .net.des SI sur .net.

Approche composants et interopérabilité Approche composants et interopérabilité des SI sur Java.des SI sur Java.

TP approche composantsTP approche composants Création d application ASP.NETCréation d application ASP.NET Création de web services.Création de web services. Consommation de web services (sur différents Consommation de web services (sur différents

type de clients)type de clients) ““interopérabilité dans .net”interopérabilité dans .net”

Page 3: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

33

Organisation du moduleOrganisation du module Approche composants .NetApproche composants .Net

4*3H4*3H Examen DSExamen DS

Approche composant JavaApproche composant Java 4*3H4*3H Examen DSExamen DS

TPTP 4*4H4*4H ????

Page 4: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

44

Plan du coursPlan du cours Rappels des notions techniques abordées.Rappels des notions techniques abordées. Approche composants.Approche composants.

Évolution de la programmation composant.Évolution de la programmation composant. Modèle en couches.Modèle en couches.

Programmation distribuée.Programmation distribuée. Présentations des technologies.Présentations des technologies. Les solutions Microsoft.Les solutions Microsoft. .NetRemoting..NetRemoting. ASP.NET.ASP.NET. Les Web services.Les Web services.

Interopérabilité API/COM dans .Net.Interopérabilité API/COM dans .Net.

Page 5: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

55

RappelsRappels

Page 6: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

66

Rappel de notions Rappel de notions techniquestechniques

Classes abstraites.Classes abstraites. Interfaces.Interfaces. Les fabriques.Les fabriques. ADO Net.ADO Net.

Page 7: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

77

Classe AbstraiteClasse Abstraite

Sert de base à une hiérarchie Sert de base à une hiérarchie d'objets partageant des méthodes d'objets partageant des méthodes communes mais dont communes mais dont l'implémentation réelle peut varier. l'implémentation réelle peut varier.

Une classe est dite abstraite si elle Une classe est dite abstraite si elle ne fournit pas d'implémentation pour ne fournit pas d'implémentation pour au moins l’une de ses méthodes.au moins l’une de ses méthodes.

Une classe abstraite ne peut être Une classe abstraite ne peut être instanciée instanciée

Page 8: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

88

Code sourceCode source

Page 9: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

99

InterfaceInterface

Une interface peut être vue comme une Une interface peut être vue comme une classe abstraite "pure", c'est à dire une classe abstraite "pure", c'est à dire une classe dont classe dont tous les attributstous les attributs sont sont abstraits.abstraits.

Une interface n'est pas instanciable.Une interface n'est pas instanciable. Une interface est en fait un contrat qu'une Une interface est en fait un contrat qu'une

classe s'engage à respecter.classe s'engage à respecter. Une interface ne peut contenir aucun code.Une interface ne peut contenir aucun code. Une classe Une classe n'hérite pasn'hérite pas d'une interface, elle d'une interface, elle

l'implémente.l'implémente. Une classe peut implémenter plusieurs Une classe peut implémenter plusieurs

interfaces. interfaces.

Page 10: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

1010

Code sourceCode source

Page 11: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

1111

Les fabriques de classesLes fabriques de classes

Les classes fabriques sont utiliser Les classes fabriques sont utiliser pour simuler un constructeur d’un pour simuler un constructeur d’un objet Interface.objet Interface.

Sa mission est de créer un objet Sa mission est de créer un objet spécifique en fonction d'un spécifique en fonction d'un paramètre et de retourner une paramètre et de retourner une interface au client. interface au client.

Page 12: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

1212

Code sourceCode source

Page 13: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

1313

ADO.netADO.net

DataSetDataSet DataTableDataTable DataAdaptaterDataAdaptater DbConnexionDbConnexion DbCommandeDbCommande DbParametersDbParameters DataTableMappingDataTableMapping DbProviderFactoryDbProviderFactory DbProviderFactoriesDbProviderFactories DbProviderInvariantNameDbProviderInvariantName

Page 14: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

1414

Code SourceCode Source

Page 15: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

1515

Approche composantApproche composant

Page 16: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

1616

Approche MainframeApproche Mainframe

AVANTAGESAVANTAGES Modèle de Modèle de

conception simple.conception simple. Pas de dépendance Pas de dépendance

avec d’autre code.avec d’autre code. ‘‘Facilité’ de Facilité’ de

distribution.distribution.

INCONVENIANTINCONVENIANT Code difficile à Code difficile à

maintenir.maintenir. Difficulté de travail Difficulté de travail

coopératif.coopératif. Pas de réutilisation Pas de réutilisation

du code.du code.Ces approches sont adaptées à de petit projet ne demandant pas une grande évolution dans le temps.

Page 17: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

1717

La complexité des applications informatiques La complexité des applications informatiques modernes atteint des proportions telles qu’il modernes atteint des proportions telles qu’il devient impossible de maîtriser les nouveaux devient impossible de maîtriser les nouveaux développements si l’on ne leur applique pas développements si l’on ne leur applique pas une structuration et une méthodologie une structuration et une méthodologie rigoureuses.rigoureuses.

Dans ce domaine, les approches « anciennes » Dans ce domaine, les approches « anciennes » de type mainframe, ou même l’approche « pur de type mainframe, ou même l’approche « pur objet » ont montré un certain nombre de objet » ont montré un certain nombre de limites.limites.

Page 18: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

1818

Évolution des modèles Évolution des modèles N/TiersN/Tiers

Séparation du code en plusieurs Séparation du code en plusieurs couches spécialisées.couches spécialisées.

Indépendance entre les différentes Indépendance entre les différentes couchescouches

Répartition des charges sur Répartition des charges sur différentes machines (client et différentes machines (client et serveur)serveur)

Page 19: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

1919

Modèle à 1 coucheModèle à 1 couche

Aucune séparation entre les données Aucune séparation entre les données le code de l’application et l’interface le code de l’application et l’interface utilisateur.utilisateur.

Page 20: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

2020

Inconvénient du modèle 1 Inconvénient du modèle 1 couchescouches

Nécessite une connexion différente Nécessite une connexion différente au serveur de BDD pour chaque au serveur de BDD pour chaque utilisateur.utilisateur.

Le client doit posséder les drivers Le client doit posséder les drivers des BDD auxquelles il désire accéder.des BDD auxquelles il désire accéder.

Le code de l’interface est mélange à Le code de l’interface est mélange à la logique métier et à la gestion des la logique métier et à la gestion des connexions aux Bdd.connexions aux Bdd.

Page 21: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

2121

Difficulté de gestion à plusieurs Difficulté de gestion à plusieurs utilisateurs ayant accès à plusieurs utilisateurs ayant accès à plusieurs type de bases.type de bases.

Page 22: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

2222

Modèle à 2 couchesModèle à 2 couches

Ajout d’une couche d’accès aux Ajout d’une couche d’accès aux données.données.

Page 23: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

2323

AvantagesAvantages

Indépendance entre le client et le Indépendance entre le client et le type de données.type de données.

Possibilté de mutualiser les accès Possibilté de mutualiser les accès aux BDD.aux BDD.

Le client n’a pas à connaître le type Le client n’a pas à connaître le type de BDD à laquelle il se connecte.de BDD à laquelle il se connecte.

Page 24: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

2424

InconvénientsInconvénients

Le code métier et le code de Le code métier et le code de l’interface sont mélangés.l’interface sont mélangés.

Page 25: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

2525

Avantage du modèle à 3 Avantage du modèle à 3 couchescouches

Centralisation de la logique métier.Centralisation de la logique métier. Mise a jour de la logique métier sans Mise a jour de la logique métier sans

recompilation des applications clientes.recompilation des applications clientes. L’application cliente est indépendante du L’application cliente est indépendante du

format des données de la BDD.format des données de la BDD. Possibilité de partager les couches métier Possibilité de partager les couches métier

entre plusieurs utilisateurs.entre plusieurs utilisateurs. Les clients n’ont plus besoins des drivers Les clients n’ont plus besoins des drivers

de BDD.de BDD.

Page 26: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

2626

Modèle adapté à la Modèle adapté à la programmation Webprogrammation Web

Notion de clients légers.Notion de clients légers.

Page 27: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

2727

Définition du rôle de chaque Définition du rôle de chaque couchescouches

Page 28: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

2828

La couche représentation.La couche représentation.

Interface graphique, console de saisie ou autre Interface graphique, console de saisie ou autre (navigateur web).(navigateur web).

C’est l’intermédiaire entre l’utilisateur et C’est l’intermédiaire entre l’utilisateur et l’application.l’application.

Formatage des informations de saisie et des Formatage des informations de saisie et des valeurs de retours.valeurs de retours.

Spécifique à chaque matériel d’affichage, Spécifique à chaque matériel d’affichage, Applications Web, Windows form, Pocket PC ...Applications Web, Windows form, Pocket PC ...

Gestion des différents appareils de saisie, Gestion des différents appareils de saisie, Clavier, souris, Tablet Pc, ...Clavier, souris, Tablet Pc, ...

Page 29: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

2929

La couche logique.La couche logique.

Formate les informations pour les communiquer Formate les informations pour les communiquer aux BDD ou aux interfaces utilisateurs.aux BDD ou aux interfaces utilisateurs.

Peut dédier de façon transparente pour Peut dédier de façon transparente pour l’utilisateur une partie de son traitement, via des l’utilisateur une partie de son traitement, via des composants distribués.composants distribués.

Masque au client l’infrastructure sous jacente de Masque au client l’infrastructure sous jacente de l’application.l’application.

Développement de composants hyper spécialises Développement de composants hyper spécialises plus facile à maintenir.plus facile à maintenir.

Effectue le traitement du processus métier de Effectue le traitement du processus métier de l’applicationl’application

Page 30: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

3030

La couche d’accès aux La couche d’accès aux données.données.

Cette couche permet un accès Cette couche permet un accès uniforme aux données de la Bdd.uniforme aux données de la Bdd.

Communiques aux couches Communiques aux couches supérieures les résultats de ses supérieures les résultats de ses recherches.recherches.

La couche d’accès peut se trouver La couche d’accès peut se trouver sur le même serveur que la base, sur le même serveur que la base, mais peut aussi gérer l’accès à mais peut aussi gérer l’accès à plusieurs types de BDD.plusieurs types de BDD.

Page 31: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

3131

Évolution de la programmation Évolution de la programmation par composantspar composants

Introduction des bibliothèques Introduction des bibliothèques (compilation séparée).(compilation séparée).

Programmation par objets (intégration Programmation par objets (intégration des données et des services).des données et des services).

Bus logiciel réparti (accès à distance).Bus logiciel réparti (accès à distance). Modèle de composants faiblement Modèle de composants faiblement

couplés.couplés.

Page 32: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

3232

Les composants distribuésLes composants distribués

Partage d’une ressource entre plusieurs Partage d’une ressource entre plusieurs utilisateurs.utilisateurs.

Facilité de mise à jours.Facilité de mise à jours. Homogénéisation des versions clientes.Homogénéisation des versions clientes. Répartition des charges sur plusieurs Répartition des charges sur plusieurs

serveurs.serveurs. Support des architectures hétérogènes.Support des architectures hétérogènes.

Page 33: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

3333

Présentations des technologies Présentations des technologies de programmation distribuéede programmation distribuée

Com / Dcom (Distributed Component Com / Dcom (Distributed Component Object Model).Object Model).

Java RMI (Remode Method Java RMI (Remode Method Invocation).Invocation).

CORBA (Common Object Resquest CORBA (Common Object Resquest Broker Architecture).Broker Architecture).

Service Web.Service Web.

Page 34: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

3434

Com / DcomCom / Dcom

Intégré à Windows Intégré à Windows depuis la version depuis la version NT4.NT4.

Développement Développement Com prit en charge Com prit en charge par de nombreux par de nombreux outil (Visaul Studio outil (Visaul Studio 6).6).

Supporté par Supporté par plusieurs langages.plusieurs langages.

Difficulté de Difficulté de configuration de configuration de Dcom.Dcom.

Architecture Architecture étroitement liée étroitement liée aux systèmes aux systèmes Microsoft.Microsoft.

Page 35: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

3535

RMIRMI

Intégré au Java Intégré au Java Developpement kit Developpement kit depuis la version 1.1.depuis la version 1.1.

L’ORB (Object Request L’ORB (Object Request Broker) RMI est natif Broker) RMI est natif dans la machine dans la machine virtuelle Java.virtuelle Java.

Pas interface de Pas interface de description des données.description des données.

Solution légère et peu Solution légère et peu gourmande.gourmande.

Multi plateforme.Multi plateforme.

Obligation Obligation d’utiliser le d’utiliser le langage JAVA.langage JAVA.

Page 36: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

3636

CORBACORBA

Norme de Norme de distribution d’objet distribution d’objet définie par l’OMG définie par l’OMG (Object Management (Object Management Group), donc non Group), donc non propriétaire.propriétaire.

Indépandance de la Indépandance de la plateforme plateforme d’application.d’application.

Support multi Support multi langage.langage.

Nécessité de Nécessité de disposer d’un disposer d’un langage langage intermédiaire intermédiaire définissant définissant l’interface des l’interface des objets distribués, objets distribués, IDL (Interface IDL (Interface Definition Definition Langage).Langage).

Le compilateur IDL, Le compilateur IDL, utilisé pour la utilisé pour la création des proxy création des proxy est spécifique à est spécifique à chaque langage.chaque langage.

Page 37: 1 Programmation Approche composants Ing5 SI. 2 Plan du module Approche composants et interopérabilité des SI sur.net. Approche composants et interopérabilité

3737

Service WebService Web

Basé sur des Basé sur des protocoles protocoles standards.standards.

Peut transiter par le Peut transiter par le protocole Httpprotocole Http

Supporté par de Supporté par de nombreux langages.nombreux langages.

Indépendant de la Indépendant de la plate forme.plate forme.

Exploite des Exploite des standards libres.standards libres.

Technologie lourde Technologie lourde et gourmande en et gourmande en ressource ressource machine.machine.

Pas de format Pas de format binaire utilisation binaire utilisation de caractères de caractères ASCII.ASCII.

Forte surcharge de Forte surcharge de la bande passante.la bande passante.

Technologie Technologie récente et pas récente et pas encore totalement encore totalement standardisée, standardisée, notamment pour la notamment pour la gestion de gestion de workFlow.workFlow.