Вы находитесь на странице: 1из 8

Le .

Net Remoting
RPC EN VB.NET
Pr M.Bendahmane

LE .NET REMOTING
 RPC en VB.net = le .NET Remoting
Pr M. Bendahmane

 Application distribuée ?

Application qui, suivant les principes de l'architecture client-


serveur, peut tourner de façon transparente sur plusieurs
ordinateurs reliés en réseau.

1
LE .NET REMOTING
 Remoting .NET ?
o Le remoting .NET est la dernière technologie en matière

Pr M. Bendahmane
d'applications distribuées.

 Explication :
o Dans le domaine des applications client serveur, il y a eu
une constante évolution.
o Parmi les "anciens" concepts on peut citer CORBA, COM+,
Java RMI ou plus, dernièrement les Web Services.

LE .NET REMOTING

 A la différence des Web Services, le .NET remoting n'est pas


Pr M. Bendahmane

obligé d'utiliser le protocole SOAP pour communiquer. Il peut


utiliser n'importe quel type de protocole.

 L'avantage du .NET remoting réside dans la flexibilité du transfert


(HTTP ou TCP sont proposés d'office par .NET)

 Par contre si l'on recherche avant tout l'interopérabilité, on se


tournera plutôt vers les Web Services.

2
LE .NET REMOTING

Pr M. Bendahmane
 L'utilisation principale en remoting sera donc la distribution
d'objets .NET.

 Il n'y a pas qu'une seule façon de faire du remoting aussi le choix


final d'implémentation dépendra de vos besoins.

PRINCIPE
Pr M. Bendahmane

3
Principe
 Le proxy défini sur le schéma est une couche intermédiaire créée dynamiquement
par le framework et qui se charge du routage des demandes du client vers le

Pr M. Bendahmane
serveur sur le réseau et inversement de récupérer les réponses du serveur.

 Donc, lorsque vous réaliserez des appels distants, vous ne dialoguerez pas
directement avec le serveur mais avec le proxy(Middleware).

PRINCIPE

 Le marshalling et unmarshalling des données correspondent aux


Pr M. Bendahmane

principes de transformation de données pour qu'elles puissent

circuler sur un réseau selon un protocole et un format définis.

 Ces processus interviennent autant du côté du client que du côté du

serveur dés qu'il y a réception ou envoi de données.

4
LES ÉLÉMENTS
 Un système remoting comporte 3 éléments :
 un serveur

Pr M. Bendahmane
 un client

 une interface qui sera commune au client et au serveur :


c'est dans cette interface que l'on définit les types et les
méthodes qui seront délivrées par le serveur. Sans cette
interface, la communication entre le client et le serveur est
impossible.

COMMENT DÉMARRER LE SERVEUR ?


 Créons une classe RemotingServer, avec une méthode qui
"démarre" le serveur. Il faut spécifier plusieurs choses dans
Pr M. Bendahmane

cette méthode :

 le canal de transmission, et quel protocole il utilise (HTTP,


TCP etc...)

 le port du canal (éviter le port 80)

 le mode de transmission des données (il y a deux choix


possible : Singleton ou SingleCall)

10

5
COMMENT DÉMARRER LE SERVEUR ?

 Singleton : Un seul objet est partagé entre les clients et les appels

Pr M. Bendahmane
pendant une durée de vie fixée. Lorsque la durée de vie est expirée,

l'objet est réinstancié.

 SingleCall : à chaque appel, le serveur crée une nouvelle instance

de l'objet qui est détruit après chaque utilisation.

11

COMMENT DÉMARRER LE SERVEUR ?

 Pour ouvrir un canal en mode TCP sur le port '1234‘, la syntaxe


est :
Pr M. Bendahmane

Dim chnl As New Channels.Tcp.TcpChannel(1234)


puis
ChannelServices.RegisterChannel(chnl, false)

 Pour publier l’objet à distribuer, la syntaxe est :

RemotingConfiguration.RegisterWellKnownServiceType(GetType(
Nom de la classe ), "Nom
Nom de la classe",
classe
WellKnownObjectMode.Singleton)

12

6
COMMENT DÉMARRER LE SERVEUR ?
 Sans oublier d’importer les packages :

Imports System.Runtime.Remoting

Pr M. Bendahmane


 Imports System.Runtime.Remoting.Channels
 Imports System.Runtime.Remoting.Channels.Tcp.TcpChannel
 Imports ……(le projet contenant l’interface)

13

COMMENT DÉMARRER LE SERVEUR ?


 Il nous suffit de mettre un code qui démarre le serveur et
attends des instructions dans un nouveau module :
Pr M. Bendahmane

14

7
LE CLIENT ?
 Il faut d’abord importer les packages :

Imports System.Runtime.Remoting

Pr M. Bendahmane


 Imports System.Runtime.Remoting.Channels
 Imports System.Runtime.Remoting.Channels.Tcp.TcpChannel
 Imports IRemote(le projet contenant l’interface)

 Puis nous déclarons un objet de la classe à distribuer en utilisant


l’interface

Public x As “le nom de l’interface”

15

LE CLIENT ?

 Pour enregistrer le canal en mode TCP sur le même port (1234)


que le serveur, la syntaxe est :
Pr M. Bendahmane

Dim myChnl As new TcpChannel()

puis

ChannelServices.RegisterChannel(myChnl,False)

 On doit alors prendre la référence sur le serveur,la syntaxe est :

x= Activator.GetObject(GetType(le nom de l’interface),


"tcp://nom de la machine: le port/la classe à distribuer")
16

Вам также может понравиться