Urbanisation et architecture des systèmes d’information
Serveurs d’applications et plateformes d’applications distribuées
Généralités
David Eudeline
Plan du cours
Introduction
Concepts de base
Présentation de .NET Présentation de J2EE
Comparaison .NET/J2EE Conclusion
Partie 1
Partie 2
Présentation des Concepts
Technologies interapplicatives
But des technologies interapplicatives:
Dépasser les limites des ORB de type CORBA ou COM/DCOM
⌧Capacité de réaction – adaptabilité
⌧Rapidité de développement et de déploiement
⌧Fiabilité et disponibilité
⌧Sécurité
⌧Évolutivité
⌧Intégration des données
Modèle d’architecture basé sur:
Applications multiniveaux
⌧Avant 3 tiers, maintenant n-tiers
Utilisation de composants logiciels Introduction du concept de conteneur
⌧Ensemble de services disponibles lors de l’exécution du composant
Présentation des Concepts
Technologies interapplicatives
Pour implémenter ces applications, deux types de plateformes:
Serveurs d’application: orientés développement Serveurs d’EAI: orientés intégration
Objectif d’un serveur d’application:
Développement, déploiement et exécution des applications réparties
Objectif d’un serveur d’EAI:
Intégration d’applications déjà existantes
Objectif d’une plateforme d’applications distribuées
Couvrir tous les aspects de l’application (les n-tiers)⌧Vision globale de l’application
Présentation des Concepts
positionnement EAI/serveur d’appli
Serveur d’application
Services logiciels apportés Services de déploiement
Paquetage d’application
⌧Fournir l’application comme un tout
Description du déploiement et paramétrage déclaratif
⌧Permettre l’adaptation à l’environnement d’exécution
Services de sécurité
Confidentialité
⌧Assurer la confidentialité des données transmises
Authentification
⌧Identifier les parties en présence
Contrôle d’accès
⌧Limiter l’accès aux applications & ressources
Serveur d’application
Services logiciels apportés
Services de transport
Transports sur des protocoles web:
⌧HTTP, FTP, SMTP
Transport sur des architectures techniques spécifiques
⌧ORB (le plus souvent) ou MOM
Services transactionnels
Intégration des services des moniteurs transactionnels Qualités supportées:
⌧Atomicité
⌧Cohérence
⌧Intégrité
⌧Durabilité
Serveur d’application
Services logiciels apportés
Services de qualité de service
Service de cache⌧Mémorisation des éléments servant beaucoup
Service de load-balancing
⌧Répartition de la charge entre plusieurs serveurs
Service de clustering
⌧Assurer une grande disponibilité en doublant les ressources matérielles
Services de sécurité
Confidentialité⌧Assurer la confidentialité des données transmises
Authentification
⌧Identifier les parties en présence
Contrôle d’accès
⌧Limiter l’accès aux applications & ressources
Présentation des Concepts
Notion de framework
Framework
«
Littéralement charpente, ossature. En informatique, désigne le cadre dans lequel va s'insérer une application. En programmation orientée objet, désigne l'infrastructure logicielle qui facilite la
conception des applications par l'utilisation de bibliothèques de classes ou de générateurs de programmes. »
Deux aspects importants
Lors de l’exécution: ensemble de l’environnement d’exécution des applications et services
Lors du développement: ensemble des éléments nécessaires pour permettre à un développeur l’exploitation de la plateforme
Présentation des Concepts
Les protagonistes
Deux grandes familles d’architectures
multiniveaux et de serveurs d’application:
Architecture J2EE
⌧ standard basé sur le langage JAVA
⌧ implémentée au sein de serveurs d’appli comme BEA WebLogic, IBM WebSphere ou Oracle 9iAS
Architecture .NET
⌧Architecture & offre produit intimement liées
Technologies pré-dotNET
COM+
COM+ est l’enrichissement de la plateforme middleware Microsoft basée sur COM/DCOM (à partir de 1998)
Implémenté dans Windows 2K
Regroupe COM, MTS et divers autres services additionnels Facilite la programmation des composants COM
COM+
Équilibrage de charge Base de données en mémoire Regroupement d’objets (polling) Composants en file d’attente (MSMQ)
Modèle d’événements
MTS
Services transactionnels Sécurité basée sur les rôles
Activation juste à temps
COM
Programmation basée sur les interfaces
Services basiques de composants
DCOM
Appels distants
Services distribués de composants
Technologies pré-dotNET
Windows DNA
Distributed inter-Net Applications
Regroupement et unification de l’ensemble des technologies Microsoft disponibles sur Windows NT4 Option Pack (1997) puis W2K (2000)
Avant tout un label marketing
Traite tous les aspects de l’architecture applicative:
Tiers présentation, métier, données
Service présentation:
Client lourd: application Windows traditionnelles Client léger: IIS+ASP
⌧Possibilité d’utiliser des composants ActiveX pour enrichir la présentation
Services métiers:
Service de composants COM+
Service d’accès aux données:
Accès aux annuaires (Active Directory): ADSI Accès aux bases de données: ADO
Technologies pré-dotNET
Windows DNA
Concurrent de J2EE orienté architecture 3 tiers Subit certaines limitations
Absence d’un langage de développement objet adapté
Héritage lourd à porter des technologies COM Solution extrêmement propriétaire
Modèle web très orienté présentation
Cette solution est restée dans l’ombre du succès
des serveurs d’application J2EE
Urbanisation et architecture des systèmes d’information
Serveurs d’applications et plateformes d’applications distribuées
DOTNET
Microsoft .NET
Présentation
Une approche marketing confuse…
.NET semble partout chez µSOFT
⌧Microsoft n’a pas réussi en interne à réguler l’utilisation de l’appellation .NET
⌧De nombreuses technologies ont été rebaptisées .NET
• SQL Server 2000, SharePoint Server 2000, Exchange Server 2000
Le nom .NET a été utilisé à partir de 2000, alors que la technologie (le framework) n’a été disponible qu’en 2002…
.NET représente la « vision » tout Internet de Microsoft
Orientation majeure de l’ensemble des produits Microsoft:
⌧Web Services, Standards Web, IHM adaptables, terminaux divers
A un peu noyé le lancement du framework .NET
Microsoft .NET
Présentation
Nouvelle offre d’architecture (janvier 2002)
Construite sur un socle commun: le framework dotNET Permet le développement et le déploiement d’applications distribuées
⌧=> Nouvelle plateforme de développement Microsoft
Virage technologique majeur pour µSOFT
A terme, l’ensemble des produits Microsoft seront réécrits pour cette plateforme
Objectif: concurrencer réellement J2EE
Surmonter l’échec de la solution Windows DNA
.NET est avant tout un produit ( ≠ J2EE)
Microsoft .NET
Présentation
Applications Applications externes externes
SystèSystèmes lmes léégatairesgataires Bases de donn
Bases de donnééeses
Client Client LLéégerger
Client Client Riche Riche
Une architecture n-tiers « standard »
Microsoft .NET
Présentation
Objectifs avoués de Microsoft
1.
Migration de la communauté MS
⌧ Séduire les développeurs existants 2.
Séduire les « javaistes »
⌧ Points forts de java: gratuité et liberté
⌧ Propositions Microsoft de logiciels gratuits:
• Framework .NET redistribuable
• Framework Software Development Kit
• 4 compilateurs (C#, VB.NET, C++, JScript) – Nombreux outils
– Documentation riche
– Équivalent du JDK Sun (marché de l’éducation, universités…)
• Webmatrix
– Visual sutidio allégé orienté développement WEB
• MSDE (Microsoft SQL server Desktop Edition): runtime SQL Server
Microsoft .NET
Présentation
Objectifs avoués de µSOFT (suite)
3. Concurrencer LAMP⌧ Linux Apache MySQL PHP
⌧ Fournir des outils « gratuits » pour la réalisation de sites web de petite envergure
4. J# est présenté comme moyen de transition entre J2EE et .NET
⌧ Initiative JUMP (Java User Migration Path)
• JLCA (Java Language Migration Path)
⌧ Pas gagné, réactions de la communauté java pas très positives
⌧ Permet quand même la récupération de ce qui avait été fait en J++
5. Promouvoir une communauté OpenSource
⌧ Site GotDotNet (espace de travail collaboratif)
⌧ Projets OpenSource pour le framework dotNET
⌧ Portage du framework dotNET sur d’autres plateformes (projets mono)
Limitation: ne fonctionne bien sûr que sous Windows/IIS…
Microsoft .NET
Points clé de l’architecture
Adopter les standards
S’appuyer sur les standards de l’industrie
⌧WebServices, XML, DNS, IP, LDAP
⌧Abandon des technos propriétaires (COM/DCOM)
Publication de la CLI & du C#
⌧Soumis à l’ECMA
But: créer un environnement de développement universel
Se débarrasser des casseroles
DLL Hell
⌧Problèmes de déploiement des DLL et composants COM
Hétérogénéité des API
⌧Trop nombreuses, de multiples possibilités pour faire la même chose…
⌧Typées C (gestion de pointeurs, structures)
Microsoft .NET
Points clé de l’architecture
Offrir un ensemble riche de services
CLR: machine d’exécution (≈JVM) FCL: Framework Class Library⌧Collection de classes et de services divers
• Winforms: développement de clients riches
• ASP.NET & Webforms: développement d’interfaces web
• WebServices: intégration d’applications
• Enterprise Services: partie « pûrement » serveur d’application
• Remoting: objets distribués
SDK: .NET Framework SDK pour développer les applications s’exécutant sur la CLR
Viser des cibles d’exécution et des clients multiples et hétérogènes
Clients riches ou légersClients mobiles (PocketPC, smartphone, Tablet PC)
« Clients multicanaux »
Microsoft .NET
Points clé de l’architecture
Plateforme .NET Visual Studio .NET
Framework .NET Serveurs .NET
Services .NET Périphériques .NET
Microsoft .NET
Framework: présentation Les fondations du framework:
CLR: Environnement d’exécution
CLS/CTS: Contrat de service pour les langages et les types
C#: langage de développement objet
⌧Et aussi C++, VC.NET, J#
MSIL: langage intermédiaire JIT: Compilateur à la volée
Le framework .NET est un environnement de
développement et d’exploitation
Microsoft .NET
Framework: architecture
Common Language Infrastructure Common Language Runtime
Framework Class Library Données et XML
Common Language Specification
Windows Forms ASP .NET
Web Services Web
Forms
VB.NET C# C++ Autres…
Microsoft .NET
Framework: fonctionnement
Windows
98/Me Linux
(Mono::) .NET CLR .NET CLR
Autre…
.NET CLR .NET Framework Libraries
Code Source
(C#, C++, VB.NET, J++, Cobol, Smalltalk, Eiffel, etc.)
« Managed Code » (MSIL)
CLS/CTS
.NET CLR .NET CLR .NET CLR .NET Compact Framework Libraries
JIT
Microsoft .NET
Framework: CLR
CLR = Common Language Runtime
Environnement d’exécution des applications .NET
⌧Principe de machine virtuelle et de code intermédiaire
• P-code appelé MSIL
Atouts du principe de machine virtuelle:
Indépendance à l’architecture sous-jacente
⌧Java: Write Once, Run Anywhere (WORA)
⌧Microsoft: Execute on Many Platforms
• Limité aux PF Windows quand même, mais indépendance quand au processeur
Mécanisme de ramasse-miettes
⌧Le code est exécuté au sein de la machine virtuelle qui permet le contrôle du cycle de vie des objets
Sécurité du code
⌧Accès restreint à la machine pour le code
⌧Lutte contre les buffer overflow
Microsoft .NET
Framework: CLR
Atouts plus spécifiques à la plateforme
Support de nombreux langages
Support des versions par les assembly Sûreté de typage
Programmation simplifiée
Les applications .NET sont « gérées » par la CLR
Code managé
Les applications natives s’exécutent hors du cadre de la CLR
La CLI décrit la manière d’implémenter la machine d’exécution (déposé à l’ECMA et à l’ISO)
La CLR n’est qu’une implémentation commerciale de la CLI Possibilité pour un tiers de créer sa propre implémentation
⌧Ex: mono pour linux, rotor pour FreeBSD & MacOS (µSOFT)
Microsoft .NET
Framework: CLR
Services de la CLR
le chargement (load) et l'exécution contrôlée des programmes, l'isolation des programmes les uns par rapport aux autres,
les vérifications de type lors des appels de fonctions,
la conversion de code intermédiaire en code natif lors de l'exécution des programmes (opération JIT, Just In Time compiler),
l'accès aux méta données (informations sur le code stockées dans l’entête PE de l’exécutable) pour le déploiement
la gestion de la mémoire, la gestion des exceptions, la sécurité,
la compatibilité avec les DLL et les modules COM actuels qui s'exécutent en code natif non contrôlé par .NET.
La gestion des versions
Microsoft .NET
Framework: CLS & CTS
CLS = Common Language Specification
Permet l’interopérabilité entre les langages #
Les langages doivent fournir un ensemble de possibilités, de constructions qui sont recensées dans un contrat de service dénommé CLS.
⌧CLS: plus petit dénominateur commun
⌧Force certaines caractéristiques pour les langages:
• Système de types
• Approche objet (problématique pour les langages procéduraux comme le C)
⌧41 règles: les CLS Rules
Ajout d’un langage à .NET:
⌧Respect de CLS,
⌧développement d’un compilateur vers MSIL.
Microsoft .NET
Framework: CLS & CTS
CTS = Common Type System
Types communs définis au niveau de la CLR
⌧Gère le problème de l’échange de types
Permet la simplification des échanges entre assembly
⌧Mise en correspondance avec les différents types des langages
Limitations apportées par CLS&CTS:
Assez contraignantes pour les langages
Restent limitées aux cas où l’on veut exporter des fonctions
⇒L’impact est lourd pour les langages
⇒Les langages .NET sont identiques sur le signifié
même s’ils ont des syntaxes différentes
Microsoft .NET
Framework: MSIL
MSIL =Microsoft Intermediate Language)
Code source compilé sous la forme d’un code binaire intermédiaire, indépendant du matériel et du systèmes d’exploitation
⌧ assembleur virtuel
Le MSIL est ensuite exécuté dans la CLR
Le MSIL est alors traduit en code machine par un compilateur "Juste à temps" (JIT compiler) à la première exécution.
⌧≠Java qui utilise un p-code objet interprété
⌧Meilleures performances que Java
⌧P-code moins facile à désassembler
Spécificités d’optimisation de performances:
⌧Le code IL est traduit petit à petit au fil du besoin en code natif
⌧Le ramasse miettes ne rentre en action que quand un nombre important d’objets doivent être détruits
Les performances ont été la préoccupation primordiale de Microsoft
Microsoft .NET
Framework: compilation en MSIL
Source Code
C++, C#, VB or any .NET language
csc.exe or vbc.exe
Compilateur
Assembly IL
DLL or EXE
Microsoft .NET
Framework: Assembly
Assembly: DLL contenant du MSIL Deux types d’assembly:
Assembly de type DLL
Assembly de type exécutable
Les assembly résolvent les problèmes des DLL &
composants COM:
Gestion de version, inscription, etc…
Les assembly sont auto descriptives
Juste besoin d’un drag&drop pour les installer…
Les assembly peuvent être signées
Protégés contre la modification par un principe de certificat
Microsoft .NET
Framework: Assembly
Les assembly peuvent être publics ou privés
Privés: utilisés uniquement pour une application
⌧Sont copiés dans la racine de l’application cliente
Publics: utilisés par de multiples clients
⌧Disposent d’un numéro unique
• Utilisation de l’utilitaire strong name (sn.exe)
⌧Sont placés dans le « Global Assembly Cache » GAC
⌧Sont forcément signés
Contenu d’un assembly:
Metadata dont le manifeste
Type metadata: types de données utilisés
Code MSIL: l’assembly peut être réutilisé par tout langage…
Ressources: comme pour les programmes windows classiques
Microsoft .NET
Framework: Assembly
Les assembly peuvent être publics ou privés
Privés: utilisés uniquement pour une application
⌧Sont copiés dans la racine de l’application cliente
Publics: utilisés par de multiples clients
⌧Disposent d’un numéro unique
• Utilisation de l’utilitaire strong name (sn.exe)
⌧Sont placés dans le « Global Assembly Cache » GAC
⌧Sont forcément signés
Contenu d’un assembly:
Metadata dont le manifeste
⌧Manifeste: carte d’identité de l’assembly
• Identite unique
• Liste des fichiers le composant
• Liste des assembly référencés
• Permissions
Type metadata: types de données utilisés
Code MSIL: l’assembly peut être réutilisé par tout langage…
Ressources: comme pour les programmes windows classiques
Microsoft .NET
Framework Class Library
Classes .NET pour le développement
Simplicité & cohérence haut niveau d’abstraction pérennité
Domaine couverts:
GUI client lourds
Programmes console & services Applications WEB
Accès aux données (ADO.NET)
Communication entre objets distants Gestion de XML
Programmation système (registre, services, threads, journal, réseau, etc…)
Le système de classes couvre un large spectre et facilite le développement
Microsoft .NET
Framework Class Library
System.Data
Design OLEDB
SQLTypes SQL
System
Configuration Collections
Net IO
ServiceProcess
Security Runtime
InteropServices
System.Xml
XPath
XSLT Serialization
System.Web
Configuration SessionState
Caching Security
Services Description Discovery Protocols
UI
HtmlControls WebControls
System.Drawing
Imaging Drawing2D
Text Printing
System.Windows.Forms
Form Button
MessageBox ListControl
Microsoft .NET
Framework: divers Gestion des erreurs:
La gestion des erreurs a été unifiée Tout est géré par exception
⌧Modèle de type d’exceptions
⌧Exceptions propagées par les assembly
⌧Exceptions propagées même en mode distribué
Gestion effectuée au niveau de la CLR
Interopérabilité DLL natives et COM
Un assembly peut appeler une dll
⌧Avec tous les problèmes inhérents…
Un assembly peut appeler un composant COM
⌧Interopérabilité dans les deux sens
Microsoft .NET
Langages
.NET est multi-langages :
Microsoft fourni plusieurs langages et les
compilateurs associés, tels que C++, JScript, VB.NET (alias VB 7) et C#
Support de 27 langages
VB.NET
Reprise de la syntaxe simple de VB Ajout des concepts objets
Accès à toutes les fonctionnalités du framework
Mais ce n’est plus vraiment Visual Basic…
Microsoft .NET
Langages
C#
Langage privilégié de la plateforme .NET
Langage libre de droit (standardisé, ainsi que MSIL, par l’ECMA) Évolution du C++ ANSI
⌧créé par Anders Hejlsberg, architecte de plusieurs langages et outils chez Borland, dont Delphi
⌧A reprit de très nombreux éléments de Java…
⌧Permet la gestion des composants (attributs)
C# est une sorte de synthèse des points forts de C++ et JAVA, avec quelques éléments en plus
Approche plus pragmatique que Java sur certains points
⌧Java plus figé sur le paradigme objet
Microsoft .NET
Langages C++ managé
modification de C++ pour supporter .NET Nouveau modèle de développement complet
⌧Améliore la gestion de la mémoire (pas de new, utilisation
du ramasse miettes)
⌧Pas de MFC…
Les applications sont difficilement portables…
Autres langages:
J# (peu d’intérêt)
Langages tiers: Eiffel, COBOL, PERL, PASCAL, etc…
Microsoft .NET
Langages
Gestion Multi-langages:
Les assembly peuvent être créés dans un langage et utilisés dans un autre
⌧Tout passe par le MSIL
Une classe dotNET peut être étendue dans un autre langage!
⌧Gestion du cycle de vie d’un projet
⌧Gestion multi-langages d’un projet peut cependant être compliquée…
Conclusion:
Le langage n’a pas d’impact sur l’écriture
Pas de différence flagrantes de performances entre langages
Microsoft .NET
Développement clients riches
Technologie WinForms:
Le client lourd est mort, vive le client riche!
Doit concilier les approches client lourd/client léger
⌧Pb clients lourds: difficulté d’installation, protocole de communication propriétaire
⌧Pb clients légers: ergonomie limitée, pas de travail en mode déconnecté
Clients riches:
⌧Ergonomie de l’interface
⌧Déploiement sans douleur
⌧Interface indépendante de la plateforme
⌧Middleware standard
Pré-requis:
⌧déploiement de l’environnement d’exécution sur le poste utilisateur
Pb de normalisation: XUL est-il l’avenir?
Permet de construire l’interface locale des applications réparties
Microsoft .NET
Développement clients riches
Principe:
Un formulaire (Form) est utilisé pour présenter des informations à l’utilisateur
⌧Boite de dialogue,
⌧Interface simple SDI ou multidocument MDI
⌧Interface type explorer
Dérivent de System.Windows.Forms.Form
Le principe est globalement le même que dans Visual C++ ou Visual Basic
Programme de type console: l’utilisateur est contraint de suivre le fil du programme défini par l’utilisateur
Programme de type fenêtré: l’utilisateur déclenche de manière asynchrone les évènements qui définissent l’application
=> Les notions d’évènements et de délégués du framework sont ici
utilisés de manière intensive
Microsoft .NET
ASP.NET
ASP.NET(ASP+)
Amélioration de la technologie ASP qui tire parti de la CLR et de MSIL
⌧Compilation des pages (idem JSP)
⌧Utilisation des WebForms
Problèmes ASP:
⌧Mélange dans un même source les descriptions HTML et le
script serveur
⌧Langage de script limité (VBScript ou JScrip)
⌧Interactions clients/Serveur mal intégrées
Microsoft .NET
ASP.NET
ASP.NET permet de créer une application Internet comme si c’était une application normale: WebForms
Plus de mélange script/HTML
⌧Compilation des pages à la volée=>meilleures performances
⌧Notion de « code behind »
Codage de la page à l’aide d’un langage #
⌧Extension en .aspx
Utilisation des classes APN.NET du framework
⌧Interaction avec le serveur web
⌧Suivi de session (cookie, URL, BDD)
Fourniture de contrôles serveurs (45 intégrés)
⌧Présence de contrôles de validation de pages (exécution sur le client ou le serveur)
Exécution obligatoire sur IIS, avec le framework .NET installé sur le
serveur
Microsoft .NET
ASP.NET
Microsoft .NET
Client Mobile
Compact Framework:
Sous ensemble du framework .NET
Destiné aux terminaux mobiles type pocketPC, Tablet PC, SmartPhones
Permet un code partagé entre une application Windows et une application mobile
⌧Nécessité de prendre en compte quand même certaines limitation (ergonomie, accès aux données)
Permet d’accéder à toutes les fonctionnalités de la plateforme .NET (Accès aux données, Web Services)
CLR optimisée pour les terminaux à ressources réduites
Taille du framework: ≈ 1,5 Mo RAM: 0,5 Mo
Taille des applications: 5-100 Ko
Microsoft .NET
Accès aux données
ADO.NET
Évolution d’ADO (ActiveX Data Object)
Met XML au centre des échanges de données
Ensemble de classes exposant les services d’accès aux données Abstraction du modèle de BDD
⌧Notion de fournisseur, utilisant OLEDB, SQL, ODBC
Dataset:
Modèle XML intermédiaire déconnecté des données Permet de réaliser une sorte de mini BDD locale
Très utile dans les environnements répartis avec des tiers pas forcément toujours connectés…
⌧Gestion des modes connectés/non connectés
Définition des « data-adapters »
⌧synchronisation automatique sources de données/datasets
Possibilité d’échanger ces datasets
Microsoft .NET
Accès aux données Support complet de XML
Le framework contient tout ce qu’il faut pour manipuler les données XML
⌧XSLT, XLK-Schema, DOM, X-Path, etc…
DataBinding
Faculté de lier automatiquement une source de données et un contrôle WinForm ou WebForm
Sérialisation
Support pour réaliser une sérialisation/désérialisation facile des objets
⌧En XML, binaire ou custom
Microsoft .NET
Accès aux données
Microsoft .NET
Enterprise Services
Partie « serveur d’application » au pur sens du terme Capitalisation de Microsoft sur COM+
Nouvelle interface permettant d’accéder aux services COM+
⌧Cache les détails de COM
⌧Reste en cohérence avec le reste du framework .NET
Notion de composants .NET
⌧Tout objet héritant de ServicedComponents devient un composant .NET
Gestion déclarative => Transparence pour le développeur
Seul lien avec COM+: la console d’administration
Microsoft .NET
Enterprise Services
Fonctionnalités proposées
Gestion transactionnelle des ressources
⌧Plus puissante que celle proposée dans ADO.NET
Gestion et activation des ressources en pool
⌧Plus fin que celui proposé dans .NET Remoting ou Services Web
Accès aux sources de données (pooling)
⌧Proposé également dans ADO.NET
Gestion asynchrone des composants
⌧Surcouche à MSMQ orientée composants, plus puissant que ce qui est proposé dans system.messaging
L’utilisation des Enterprise Services est donc à discuter…
Microsoft .NET
Web Services Web Services:
Communication interapplicative à l’aide de protocoles standardisés:
⌧XML
⌧SOAP (Simple Object Access Protocol)
⌧UDDI (Universal Discovery description and Integration)
Les services communiquent entre eux en XML
⌧SOAP: format XML des messages qui s’échangent
• Sur HTTP, SMTP ou POP
⌧WSDL: fichier d’interface (≈IDL)
⌧UDDI: annuaire des services
Microsoft .NET
Web Services
Implémentation dans .NET:
Développement d’un service Web ASP.NET
⌧Utilise IIS pour publier le Service Web
Développement en .NET remoting
⌧Exécution du Service Web dans un composant indépendant
Vision « objet »: un Web Service est un objet qui présente une interface d’appel à distance
⌧Attribut « webmethod » dans le code
Microsoft .NET
Web Services
Microsoft .NET
Web Services
L'objectif de .NET framework est de faciliter la conception d'applications et de Services Web:
Vision globale Web Services
Microsoft .NET
Service de transport
.NET remoting
Remplaçant de la technologie DCOM
⌧CLR Object Remoting: appel d’objets via le réseau comme si ils étaient locaux
Modèle commun masquant les protocoles sous jacents (channel )
⌧TCP/HTTP proposés de base
Support d’un mécanisme de sérialisation pour transporter les appels (Formatter)
⌧SOAP 1.1: sérialisation type service web
⌧CLR: Idem mais étendu
⌧Binaire: Programmation libre
Sécurité intégrée dans le protocole(authentification)
Intégré au modèle service Web: Producteur/Consommateur de services
Indépendance vis-à-vis de IIS & ASP.NET Il y a forcément un serveur qui l’exécute…
Microsoft .NET
Service de transport
Deux types de passages:
Par référence (il reste sur le serveur)
⌧Les proxy & stubs sont automatiquement générés par la CLR
Par valeur (il est sérialisé et recopié vers le client)
Trois types d’activation d’objets distants:
Activation côté serveur
⌧Single call: créé lors de chaque appel de méthode
⌧Singleton: objet créé une seule fois
Activation côté client:
⌧Durée de vie gérée par la CLR
Les paramètres de connexion sont configurés:
directement dans le code
par des fichiers XML
Microsoft .NET
Service de transport
Service de transport : .NET remoting
Microsoft .NET
Conclusion .NET:
Avantage :
⌧l'homogénéité de l'architecture
⌧utilisation des ressources du système Windows et du
Framework .NET
⌧performances et intégration de l'outil Visual Studio avec la
plate-forme
Inconvénient :
⌧posséder l'ensemble des produits de la gamme Microsoft