Une alternative que je recommande normalement est l'intégration sur AMQP entre vos courtiers de messages. C'est-à-dire que vous pouvez utiliser le paradigme push au lieu de celui d'interrogation (qui est très puissant et évolutif en comparaison)!
Vous devez configurer votre propre courtier, tel que RabbitMQ, localement. Ensuite, vous laissez votre partenaire d'intégration en créer un. (Facile: just download it).
Si votre partenaire intègre du même centre de données, vous seriez économiser de prendre quelques réseau divise - ce qui signifie que vous pouvez partager le courtier. D'autre part, si vous êtes sur des réseaux différents, vous pouvez configurer le courtier en federation mode. (Exécutez rabbitmq-plugins enable rabbitmq_federation
et point vers l'autre courtier)
Maintenant, vous pouvez utiliser par exemple. MassTransit:
ServiceBusFactory.New(sbc =>
{
sbc.UseRabbitMqRouting();
sbc.ReceiveFrom("rabbitmq://rabbitmq.mydomain.local/myvhost/myapplication");
// sbc.Subscribe(s => s ...);
});
, comme vous le feriez si vous ne faites aucune intégration.
Si vous regardez http://rabbitmq.mydomain.local:55672/ maintenant, vous trouverez l'interface d'administration pour RabbitMQ. MassTransit crée un échange pour chaque type de message (l'envoi d'un tel message à cet échange sera diffusé à tous les abonnés), sur lequel vous pouvez mettre des règles d'autorisation.
Les règles d'autorisation peuvent prendre la forme d'une expression régulière par utilisateur ou peuvent être intégrées dans LDAP. Consultez la documentation pour cela.
Vous auriez également besoin de SSL dans le cas où vous allez sur le WAN et vous n'avez pas de tunnel IPSec - cette documentation est ici: http://www.rabbitmq.com/ssl.html et vous activez it like this.
C'est tout! Prendre plaisir! Post scriptum: si vous avez envie d'une aventure qui vous aidera à gérer toute votre infrastructure comme un effet secondaire, vous pouvez regarder puppet.Puppet est un provisioner et un gestionnaire de configuration de serveurs; Dans ce cas, vous pouvez configurer SSL avec une marionnette. Commencez par commander un certificat de sous-domaine générique pour votre domaine, puis utilisez ce certificat pour signer d'autres certificats: vous pouvez le déléguer - voir le guide rabbitmq où il est indiqué "Maintenant nous pouvons générer la clé et les certificats que notre autorité de certification utilisera " - générer une demande de signature de certificat pour le certificat au lieu de créer une nouvelle autorité - et laisser RMQ l'utiliser pour SSL - elle sera valide pour internet.
Qu'est-ce qui vous déplaît à propos de WCF? – DOK
NServiceBus vous permet également d'exposer vos points de terminaison en utilisant WCF - ceci est indiqué au bas de cette page: http://www.nservicebus.com/InsteadOfWcf.aspx –
DOK: Je n'aime pas la quantité d'infrastructure (hébergement et config) nécessaire pour tester même le service. Ensuite, je me suis demandé si l'utilisation de XML simple (POX) et XSD plutôt que WSDL serait trop peu orthodoxe par rapport à nos partenaires. En dehors de cela, j'étais curieux de savoir si un bus de service me donnerait des avantages supplémentaires dans mon scénario. –