Urbanisation et architecture des systèmes d’information
Serveurs d’applications et plateformes d’applications distribuées Généralités David Eudeline
[email protected]
Plan du cours Introduction Concepts de base Présentation de .NET Présentation de J2EE Comparaison .NET/J2EE Conclusion
2006/2007
Partie 1
Partie 2
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
2006/2007
3
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
2006/2007
4
Présentation des Concepts positionnement EAI/serveur d’appli
2006/2007
5
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
2006/2007
6
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é
2006/2007
7
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
2006/2007
8
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
2006/2007
9
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
2006/2007
10
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
2006/2007
DCOM Appels distants Services distribués de composants
COM Programmation basée sur les interfaces Services basiques de composants
11
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
2006/2007
12
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 2006/2007
13
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 2006/2007
15
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)
2006/2007
16
Microsoft .NET Présentation
Une architecture n-tiers « standard » Bases de données Systèmes légataires Client Léger
Applications externes
Client Riche
2006/2007
17
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: • • •
• •
2006/2007
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
18
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… 2006/2007
19
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)
2006/2007
20
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égers Clients mobiles (PocketPC, smartphone, Tablet PC)
« Clients multicanaux »
2006/2007
21
Microsoft .NET
Points clé de l’architecture
Visual Studio .NET Framework .NET
Serveurs .NET
Plateforme .NET
Services .NET
2006/2007
Périphériques .NET
22
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 2006/2007
23
Microsoft .NET
Framework: architecture
VB.NET
C#
Autres…
C++
Common Language Specification ASP .NET Web Forms
Web Services
Windows Forms
Données et XML Framework Class Library Common Language Runtime Common Language Infrastructure 2006/2007
24
Microsoft .NET
Framework: fonctionnement Code Source (C#, C++, VB.NET, J++, Cobol, Smalltalk, Eiffel, etc.)
CLS/CTS « Managed Code » (MSIL)
.NET Framework Libraries
.NET CLR
.NET CLR
.NET CLR
Windows 98/Me NT/2000/XP 2003
Linux (Mono::)
Autre…
.NET Compact Framework Libraries
.NET CLR
.NET CLR
.NET CLR
JIT
2006/2007
25
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 ⌧Signature du code (lutte contre les chevaux de Troie et les virus)
2006/2007
26
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)
2006/2007
27
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 2006/2007
28
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.
2006/2007
29
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 2006/2007
30
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
2006/2007
31
Microsoft .NET
Framework: compilation en MSIL
Assembly IL
Source Code
Compilateur C++, C#, VB or any .NET language
csc.exe or vbc.exe
DLL or EXE
Assembly = DLL « IL » + méta données 2006/2007
32
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 2006/2007
33
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
2006/2007
34
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
Déploiement: IE peut placer directement des assembly dans le cache 2006/2007
35
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 2006/2007
36
Microsoft .NET
Framework Class Library
System.Web Services Description Discovery Protocols
UI HtmlControls
Caching Configuration
Security SessionState
System.Windows.Forms Form
Button
MessageBox
ListControl
WebControls
System.Drawing Drawing2D Imaging
System.Data OLEDB Design
SQL SQLTypes
Printing Text
System.Xml XSLT XPath
Serialization
System Collections Configuration Diagnostics Globalization 2006/2007
IO Net Reflection Resources
Security ServiceProcess Text Threading
Runtime InteropServices Remoting Serialization 37
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
2006/2007
38
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…
2006/2007
39
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
2006/2007
40
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… 2006/2007
41
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 2006/2007
42
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
2006/2007
43
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
2006/2007
44
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
2006/2007
45
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 2006/2007
46
Microsoft .NET ASP.NET
2006/2007
47
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
Émulateur intégré dans VS.NET pour les tests 2006/2007
48
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 2006/2007
49
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
2006/2007
50
Microsoft .NET
Accès aux données
2006/2007
51
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
2006/2007
52
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…
2006/2007
53
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
2006/2007
54
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
2006/2007
55
Microsoft .NET Web Services
2006/2007
56
Microsoft .NET Web Services
L'objectif de .NET framework est de faciliter la conception d'applications et de Services Web: Vision globale Web Services
2006/2007
57
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…
2006/2007
58
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
2006/2007
59
Microsoft .NET
Service de transport
Service de transport : .NET remoting
2006/2007
60
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 .NET dont IIS.
2006/2007
61
Microsoft .NET Conclusion
Vision Microsoft via .NET:
Un Internet constitué d’une infinité d’applications Web inter opérables formant un réseau planétaire d’échange de services. Ces "Web Services" sont basés sur les protocoles SOAP et XML.
Technologie prometteuse mais plus jeune que J2EE Relatif manque de visibilité sur les déploiements .NET
2006/2007
62