Question

Mon employeur est un fournisseur de logiciels pour un marché spécifique. Nos clients intègrent notre système avec d'autres en utilisant des services Web. Nous utilisons la technologie Microsoft, et nos services Web sont implémentés dans ASP.NET et WCF.

Le temps est venu de revoir notre ensemble actuel de services, et de proposer des normes de la société pour les intégrations futures. Je lis « modèles d'intégration d'entreprise, » et je l'ai aussi cherché un peu à nServiceBus et Mass Transit. Ceux-ci peuvent simplifier les questions comme contrat et versioning tests unitaires, mais ils semblent être plus utiles pour fournir un bus de service interne, et non pour exposer les services aux clients externes.

Nos clients sont sur de nombreuses plateformes différentes et requièrent nos services soient conformes aux normes. Cela peut signifier différentes choses pour différentes personnes, mais je pense qu'il est raisonnable de supposer qu'ils veulent accéder à des services Web décrits avec WSDL.

Dans ce scénario, est WCF la voie à suivre?

Était-ce utile?

La solution

WCF est de loin la plus pile conforme aux normes sur la plate-forme Microsoft. La bonne chose est qu'il est très flexible pour différents clients « hors des sentiers battus », et s'il y a des choses qui vous causent la douleur, la plupart d'entre eux peuvent être modifiés par des comportements personnalisés sans trop de problèmes.

Autres conseils

Une alternative que je recommande normalement est l'intégration sur AMQP entre vos courtiers de message. C'était vous pouvez utiliser le paradigme de la poussée au lieu de celui du scrutin (qui est très puissant et évolutif en comparaison)!

Vous souhaitez créer votre propre courtier, comme RabbitMQ, localement. Ensuite, vous laisseriez votre partenaire d'intégration mis en place un. (Facile: suffit de le télécharger ).

Si votre partenaire intègre dans le même centre de données, vous seriez économiser de prendre quelques divisions de réseau - 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 . (Run rabbitmq-plugins enable rabbitmq_federation et à 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 quand ne pas faire de l'intégration.

Si vous regardez http: //rabbitmq.mydomain.local: 55672 / Maintenant, vous trouver l'interface d'administration pour RabbitMQ. MassTransit crée un échange pour chaque type de message (envoyer un message à cet échange se rendront à tous les abonnés), que vous pouvez mettre des règles d'autorisation sur.

Les règles d'autorisation peuvent être sous la forme d'expressions régulières par utilisateur ou il peut être intégré dans LDAP. Consultez la documentation pour cela.

Vous auriez également besoin SSL dans le cas où vous allez sur le WAN et vous ne disposez pas d'un tunnel IPSec - que la documentation est ici: http://www.rabbitmq.com/ssl.html et vous activez comme ça .

Voilà! Amusez-vous!

Post Scriptum: si vous vous sentez pour une aventure qui va vous aider à gérer l'ensemble de votre infrastructure comme un effet secondaire, vous pouvez jeter un oeil à marionnette . Marionnettes est un gestionnaire de approvisionneur et la configuration des serveurs; dans ce cas, vous seriez intéressé par la mise en place SSL avec marionnettes. En premier lieu, commander un certificat de sous-domaine wild-card pour votre domaine, utilisez alors que cert pour signer d'autres certificats: vous pouvez déléguer cette - consultez le guide de rabbitmq où il est dit « Maintenant, nous pouvons générer la clé et les certificats que notre test Autorité de certification utilisera « . - générer un certificat de signature de demande de certificat au lieu de créer une nouvelle autorité - et laissez-RMQ utiliser ceci pour SSL -. Il sera valable pour Internet

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top