2010-11-20 3 views
2

Je lis les rubriques WCF et Service Bus, mais je ne trouve pas l'utilisation de Service Bus dans certains sujets. Vérifiez cette image de l'utilisation du service Bus:Pourquoi avoir besoin de Bus de service quand vous avez WCF?

http://ecn.channel9.msdn.com/o9/learn/Azure/Labs/IntroServiceBus/Lab.html/html/images/4a0aa8f8-f4d1-49b6-b950-cf954402c599.png

En image ci-dessus votre service est derrière un pare-feu, et vous avez besoin apparemment un service de bus. Mais si vous voulez exposer votre service, la solution n'est-elle pas simplement de supprimer le pare-feu? Et chaque client peut se connecter à votre service. Je comprends que vous ne voulez pas supprimer le pare-feu pour l'ensemble de votre réseau, mais vous pouvez créer un serveur Web publiquement visible avec IIS et exécuter votre service à cet effet. Ou est-ce que je manque quelque chose?

+0

Mais ils ont probablement un serveur Web pour leur site Web d'entreprise. Ils peuvent faire fonctionner le service là-dessus, n'est-ce pas? – Thomas

Répondre

6

WCF est un moyen de configurer et de gérer les interfaces de communication. Il ne se soucie pas du contenu de vos messages.

Un service bus, cependant, est différent en ce sens qu'il est responsable du routage des messages.

Vous pouvez créer un bus de service en utilisant WCF et d'autres bits, mais le WCF n'est pas un bus de service en soi.

5

Un bus de service vous aide à améliorer l'architecture de vos services.

De nombreuses organisations ont ce que l'on considère comme une intégration point à point ou spaghetti. Ce n'est pas bon. Un bus de service vous aiderait à avoir un seul point d'intégration. par exemple. Dans l'image que vous avez liée (architecture Azure Service BUS), en ajoutant le service à l'ESB, vous pouvez unifier l'authentification du service à l'aide du contrôle d'accès même si ces derniers sont placés derrière un pare-feu. En outre, même si l'adresse du service a changé, vous ne devrez le modifier qu'à un endroit (l'ESB) au lieu de toutes les applications qui le référencent.

Un bus de service peut faire beaucoup d'autres choses, y compris la validation des messages de services, les mettant en valeur au cas où ils ne répondent pas à vos besoins, en les transformant par exemple de la plaine ancienne XML SOAP, le routage des messages, l'amélioration des messages, etc.

2

Service Bus est un service de relais, de sorte que tous les clients pointent vers le cloud. Les pirates attaqueront le service de relais dans le nuage plutôt que votre service WCF. Tous les aspects de sécurité pris en charge par le service de relais.

Pour répondre précisément à votre question, tous les services WCF ne sont pas hébergés sur un bus de service et votre solution peut suffire. Cela dépend de vos besoins et de l'infrastructure existante. Je recommande fortement this article de Juval Lowy.

Extrait de l'article:

Le service de relais est un service qui réside dans le nuage, dont le travail est d'aider à la connectivité, relayant le client appelle au service. Une telle solution relais nécessite à la fois le client et les intranets de service pour autoriser les connexions au cloud, mais comme le cloud constitue un territoire neutre pour le client et le service, la plupart des environnements autorisent les appels vers Internet. Premièrement, le service et le client doivent établir des connexions et s'authentifier auprès du service de relais. À ce stade, le relais enregistre également l'emplacement du service et la meilleure façon de le rappeler. Lorsque le client appelle le service de relais, le service de relais transmet l'appel (le message client) au service.Bien que la séquence semble simple, dans la pratique, elle implique une quantité considérable de programmation réseau complexe, de savoir-faire en matière de messagerie et de normes, d'expertise en sécurité, et plus encore. Une telle solution est tout simplement hors de portée pour la grande majorité des applications. C'est exactement l'écart que le bus de service Microsoft .NET est conçu pour remplir. C'est un service de relais prêt à l'emploi, hébergé et géré dans un centre de données Microsoft. Le bus de service .NET agit comme un réseau de périmètre dans le cloud, fournissant un emplacement unique pour gérer les informations d'identification du client et des services. Le bus de service .NET est l'extrémité avant du service; Il encapsule et isole le service des appels malicieux qui se cachent sur Internet et est responsable de la répression de diverses attaques depuis le déni de service jusqu'à la relecture des attaques, tout en obscurcissant l'identité et l'emplacement réel du service réel. La principale différence entre la connexion à un service Windows Communication Foundation (WCF) standard et l'utilisation du service de relais tourne autour de l'hébergement. Dans le cas relayé, le service doit se connecter au bus de service .NET, s'authentifier et écouter les appels du service de relais avant que le client envoie ses demandes. Cela signifie que vous devez lancer explicitement l'hôte ou utiliser un service NT en tant qu'hôte et que vous ne pouvez pas bénéficier de l'hébergement dans Windows Service d'activation (WAS) (WAS) car WAS lancera l'hôte uniquement après l'arrivée de la première requête , et cela n'arrivera jamais parce que l'hôte ne s'est pas connecté au bus de service .NET en premier lieu. Le bus de service .NET prend en charge un modèle de programmation compatible WCF en offrant un ensemble de liaisons et de comportements dédiés. En gros, à part quelques légères modifications au modèle de programmation, travailler avec le service de relais n'est pas différent de travailler avec n'importe quel autre service WCF. Le bus de service .NET prend en charge les fonctions essentielles de WCF, à savoir la messagerie fiable, la sécurité des messages et la sécurité du transport.

Questions connexes