2009-12-07 7 views
3

j'apprends à propos Remoting en faisant de petits projets Remoting et en essayant de faire respecter les bonnes pratiques tout en faisant pour éviter mon habitude de développer de mauvaises habitudes..Net Remoting: Wrap objets utilisateur vs plusieurs canaux de communication à distance

Il existe un service qui utilise des plugins créés par l'utilisateur. Chaque plugin est isolé dans son propre domaine d'application. En outre, il existe une application cliente qui se connecte au service et interagit avec celui-ci.

Il existe des canaux pour la communication client-service et la communication entre plug-in de service, mais rien pour faciliter la communication plugin-client. En tant que tel, tout objet créé par un plugin doit être enveloppé dans un objet défini par le service avant de pouvoir passer par le client (sinon il y a une exception due au manque de canaux de canaux). Si cela a du sens, ma question est la suivante: devrais-je continuer ce modèle ou devrais-je créer des canaux entre le plugin et les domaines d'application client pour permettre aux objets instanciés par plugin d'aller à l'application cliente?

Merci pour toute éducation sur le sujet!

Répondre

3

Je ne peux pas vous donner de réponse définitive sans entendre plus sur votre application, si bien que la question est sans doute subjective, voici ma réponse subjective:

Il semble raisonnable que le serveur de connexions agrégats plug-ins, et le client ne maintient qu'un seul canal sur le serveur. Cela simplifie et consolide la solution de plusieurs façons:

  • Contrôle d'accès effectuée uniquement sur le serveur
  • Le mécanisme de plug-in peut-il me fait transparent pour le client
  • client simplifié autour
  • Dans le Si le client et le serveur se trouvent sur des machines distinctes, vous préférerez probablement que le client ne parle qu'avec le serveur et pas directement avec les plugins, car plusieurs connexions/ports peuvent être ouverts sur le serveur (pour chaque plugin). peut devenir un problème si vous avez des pare-feu, etc.

De l'autre côté, il pourrait être un problème d'enveloppe chaque plugin-objet dans un serveur objet.

+0

Votre point concernant les machines distinctes et les pare-feu était celui que je n'ai pas considéré. Envelopper chaque objet dans un objet serveur serait un gros problème, mais ce serait aussi un cauchemar de tenter de coordonner un nombre inconnu de ports éventuellement utilisés. – redman