Créer une architecture distribuée .NET Concepts et exemples

18
Créer une architecture distribuée .NET Concepts et exemples Ingénieurs 2000 Exposé Système & Réseaux 2006/2007 Steven JABBOUR IR3

description

Ingénieurs 2000 Exposé Système & Réseaux 2006/2007. Steven JABBOUR IR3. Créer une architecture distribuée .NET Concepts et exemples. Plan. Plan Le Framework .NET Services Web .NET Remoting IIOP .NET Questions. Présentation du Framework .NET Créer et utiliser des services Web - PowerPoint PPT Presentation

Transcript of Créer une architecture distribuée .NET Concepts et exemples

Page 1: Créer une architecture distribuée .NET Concepts et exemples

Créer une architecture distribuée .NET

Concepts et exemples

Ingénieurs 2000Exposé Système & Réseaux2006/2007

Steven JABBOURIR3

Page 2: Créer une architecture distribuée .NET Concepts et exemples

2

Steven JABBOURIR3

Plan

1.Présentation du Framework .NET

2.Créer et utiliser des services Web

3.Comment créer des objets distribués à l’aide de .NET Remoting ?

4.Communiquer entre Java et .NET

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 3: Créer une architecture distribuée .NET Concepts et exemples

3

Steven JABBOURIR3

Qu’est-ce que .NET ?

.NET ensemble de technologies basé sur 4 composants : les périphériques clients (pc, pda, etc.),

les services Web fondamentaux (.NET Passport, exemple avec MSN),

les outils : .NET Framework, Visual Studio .NET,

les serveurs : .NET Entreprise Server.

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 4: Créer une architecture distribuée .NET Concepts et exemples

4

Steven JABBOURIR3

Le Framework .NET

Une machine virtuelle CLR (Common Language Runtime).

Pas de code natif : utilisation d’un langage intermédiaire le MSIL (MicroSoft Intermediate Language).

Support de 51 langages de programmation (C#, J#, VB.NET, COBOL, Perl, Python, etc.).

L’introduction d’un nouveau langage C# (entre C++ et Java)

Une bibliothèque de classes extensibles, regroupées par namespace en C#

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 5: Créer une architecture distribuée .NET Concepts et exemples

5

Steven JABBOURIR3

L’environnement de développement

Installer le Framework .NET SDK.

Utiliser un éditeur et l’aide en ligne MSDN.

Déploiement au sein du répertoire d'exécution de l’application, ou dans le GAC (Global Assembly Cache) ou dans le Download Cache pour les programmes télechargés.

Lancer l’application .

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 6: Créer une architecture distribuée .NET Concepts et exemples

6

Steven JABBOURIR3

.NET Framework et Linux

Début du « portage » du framework .Net

Différents projets : Mono par le créateur de gnome

V1.1 et v2.0 partiellement supportée GNU Portable DotNet Rotor (FreeBSD)

Module pour Apache (mod_mono)

Ouverture des standards via CLI (Common Language Infrastructure)

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 7: Créer une architecture distribuée .NET Concepts et exemples

7

Steven JABBOURIR3

Comprendre les services web XML

Qu’est-ce qu’un service web?

Dans quel cas l’utiliser?

Un peu de vocabulaire SOAP (Simple Object Access Protocol) WSDL (Web Service Definition Language) UDDI (Universal Description, Discovery

and Integration)

La mise en œuvre sous .NET …

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 8: Créer une architecture distribuée .NET Concepts et exemples

8

Steven JABBOURIR3

Créer un service Web .NET (1/2)

Déclarer un service Web (.ASMX) <%@ WebService

Class="NomEspaceDeNom.NomClasse, NomAssemblage" %> 

1 fichier ASMX associé à une seule classe

Créer la classe du service Web Hériter de System.Web.Services.WebService Spécifier l'espace de noms XML

[WebService(Namespace=http://bill.com)] Exposer des "Web" méthodes

[WebMethod(Description="Hello world")] Un service web peut renvoyer ou accepter en

entrée des types primitifs (string, int…) ou complexes (Classes : XmlDocument, DataSet; Structures …) sérialisés avec SOAP sinon avec HTTP GET ou HTTP POST uniquement des string

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 9: Créer une architecture distribuée .NET Concepts et exemples

9

Steven JABBOURIR3

Publier le service web Solution simple : diffusion interne via l'URL Solutions basées sur Internet :

Publier via un document de découverte XML .disco de manière statique,

– http://<host>/<url>/<fichier>.asmx?DISCO– Découverte dynamique via fichier .vsdisco

Publier via le service UDDI

Test dans un navigateur du service web Affichage de la documentation

http://<host>/<url>/<fichier>.asmx

Description de service Web (.wsdl) http://<host>/<url>/<fichier>.asmx?WSDL

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Créer un service Web .NET (2/2)

Page 10: Créer une architecture distribuée .NET Concepts et exemples

10

Steven JABBOURIR3

Localiser un service web Soit par les fichiers .disco (disco.exe) Soit par les services UDDI

Créer une classe proxy pour le service web générer par Visual Studio ou utiliser

wsdl.exe fourni avec le framework.

Utiliser un service web (1/2)Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 11: Créer une architecture distribuée .NET Concepts et exemples

11

Steven JABBOURIR3

Utiliser un service web (2/2)

Créer d’un formulaire Web client utilisant le web service HelloWorld Créer un fichier nommé Hello.aspx Copier l’assemblage du web service sous bin Ajout des imports nécessaires à la page Modification du call-back Page_Load Test du résultat dans un navigateur

Créer une application console client utilisant un web service récupérant des données en base

Démonstration et test

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 12: Créer une architecture distribuée .NET Concepts et exemples

12

Steven JABBOURIR3

Présentation de .NET Remoting

Qu’est-ce que .NET Remoting?

Dans quel cas l’employer?

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 13: Créer une architecture distribuée .NET Concepts et exemples

13

Steven JABBOURIR3

Créer un objet Hello distribué

Création de l’objet servant class HelloServant : MarshalByRefObject

Ouvrir un canal et publier l'objet sur le serveur TcpChannel chan = new TcpChannel(1234); ChannelServices.RegisterChannel(chan,

false); RemotingConfiguration.RegisterWellKnownS

erviceType(type, url, modetransmission) Ecrire le client

(HelloServant)Activator.GetObject(typeof(HelloServant), "tcp://localhost:1234/SayHello");

Compilation, déploiement et exécution Démonstration et test

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 14: Créer une architecture distribuée .NET Concepts et exemples

14

Steven JABBOURIR3

Comparaison avec RMI

Plus simple que RMI dans la mise en œuvre.

Absence de service de nommage, utilisation d'annuaires (LDAP) à travers l'API System.DirectoryServices

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Tableau de synthèse .NET Remoting RMI Proxy (client) Dynamique Statique (rmic) ou dynamique Squelettes (serveur) Intégré au framework Intégré au framework Objet distribué Classes Interface Remote Configuration Fichier XML System Property Annuaire Distribué Aucun RmiRegistry Ajout de protocoles Channels SocketFactoryImpl Ajout de formats Formatters Serialization Activation SingleCall, Singleton API coté serveur Activable

Objects CustomProxy Custom RealProxy Dynamic Proxy Protocoles existants HTTP, TCP, SOAP J RMP, IIOP, T3 (WebLogic) … Gestion d’erreur Exceptions Remote Exceptions Remote

Page 15: Créer une architecture distribuée .NET Concepts et exemples

15

Steven JABBOURIR3

J2EE Server

CORBA Server

LDAP

IIOP

RDBMSSQL

JMS

RMIClient

EJB ContainerIIOPClient

JSP ServletServlet Container

HTTPClient Other

Resource???

HTTP Engine

JDBCMessage Queue

Présentation de IIOP .NETPlan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

? IIOP.NET

Other Server

SOAPClientHTTPClient

SOAP

System.Di

rectory

RDBMSADO.NET

OtherResource

???

Component

ASMXASPX

ASP.NET

Controls

.NETApp

CLR HostIIS –

HTTP Engine

MSMQ

Component

Message Queue

CLR Platform

Page 16: Créer une architecture distribuée .NET Concepts et exemples

16

Steven JABBOURIR3

Présentation de IIOP .NET Web Services sans état, aucun support pour les

références d'objets distants, SOAP et XML trop verbeux.

Utilisation d'un canal basé sur le protocole IIOP.

IIOP.NET agit comme un ORB CORBA, converti les types .NET en type CORBA.

RMI/IIOP et IIOP.NET implémentent les mêmes fonctionnalités de la norme CORBA

D'autres projets existent tel que Remoting.Corba ou Janeva, mais pas libre ou pas d'outil de génération de la description IDL

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 17: Créer une architecture distribuée .NET Concepts et exemples

17

Steven JABBOURIR3

Questions ?Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Page 18: Créer une architecture distribuée .NET Concepts et exemples

18

Steven JABBOURIR3

Liens et références utiles .NET

Sites consacrés à .NET : http://www.gotdotnet.com/ .NET 3.0 : http://www.microsoft.com/france/msdn/netframework/3/default.mspx http://wcf.netfx3.com/files/folders/distributed_applications/default.aspx

Framework: http://www-igm.univ-mlv.fr/~dr/XPOSE2002/Dotnet/introdotnet_index.html http://www-igm.univ-mlv.fr/~dr/XPOSE2002/Tedeschi/

Linux: ASP.NET – Mono : http://www.mono-project.com/ASP.NET DotGNU Portable.NET: http://dotgnu.org/pnet.html Rotor : http://msdn.microsoft.com/msdnmag/issues/02/07/SharedSourceCLI/

ASP.NET ASP.NET Etape par étape de G. Andrew Dutchie

La fameuse MSDN : http://msdn2.microsoft.com/fr-fr/default.aspx

Web Services http://www.dotnetguru.org/articles/InteropWS/InteropWSJavaDotNet.htm http://www.dotnetguru.org/articles/webservices/WebServices.htm http://rangiroa.essi.fr/cours/travail-etudiant/01-castejon-corbucci-delattre-weber/jerome.htm http://www.microsoft.com/france/msdn/webservices/MiseEnRouteWebXml.mspx http://uddi.microsoft.com

.Net Remoting http://www.dotnetguru.org/articles/CoucheService.htm http://www.dotnetguru.org/articles/RemotingRmi.htm http://www.dotnetguru.org/articles/Stateful/StateFul.htm http://www.dotnetguru.org/articles/perfs/PerfRemoting.htm http://www.dotnetguru.org/articles/CustomProxy.htm http://www.dotnetguru.org/articles/LDAP/LDAPDotNET.html Advanced .Net Remoting (Broché) de Ingo Rammer

IIOP.NET et Remoting.CORBA http://iiop-net.sourceforge.net/ http://www.dotnetguru.org/articles/articlets/iiopchannel/iiopremoting.htm http://www.dotnetguru.org/articles/Reflexion/corbadotnet/CorbaDotNet.htm http://www.codeproject.com/csharp/dist_object_system.asp

Plan

1. Le Framework .NET

2. Services Web

3. .NET Remoting

4. IIOP .NET

Questions

Liens