11
Programmation Approche Programmation Approche composants Ing5 SIcomposants Ing5 SI
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”
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 ????
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.
55
RappelsRappels
66
Rappel de notions Rappel de notions techniquestechniques
Classes abstraites.Classes abstraites. Interfaces.Interfaces. Les fabriques.Les fabriques. ADO Net.ADO Net.
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
88
Code sourceCode source
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.
1010
Code sourceCode source
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.
1212
Code sourceCode source
1313
ADO.netADO.net
DataSetDataSet DataTableDataTable DataAdaptaterDataAdaptater DbConnexionDbConnexion DbCommandeDbCommande DbParametersDbParameters DataTableMappingDataTableMapping DbProviderFactoryDbProviderFactory DbProviderFactoriesDbProviderFactories DbProviderInvariantNameDbProviderInvariantName
1414
Code SourceCode Source
1515
Approche composantApproche composant
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.
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.
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)
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.
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.
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.
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.
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.
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.
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.
2626
Modèle adapté à la Modèle adapté à la programmation Webprogrammation Web
Notion de clients légers.Notion de clients légers.
2727
Définition du rôle de chaque Définition du rôle de chaque couchescouches
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, ...
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
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.
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.
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.
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.
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.
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.
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.
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.