Frage

Mein Arbeitgeber ist ein Software-Anbieter für einen bestimmten Markt. Unsere Kunden integrieren unser System mit anderen mit Web-Services. Wir verwenden Microsoft-Technologie und unser Web-Service ist in ASP.NET und WCF implementiert.

Die Zeit ist gekommen, um unseren aktuellen Satz von Diensten zu überprüfen, und kommt mit Firmenstandards für zukünftige Integrationen. Ich lese „Enterprise Integration Patterns“, und ich habe auch ein wenig in nServiceBus und Mass Transit gesucht. Diese können Themen wie Vertrags vereinfachen Versionierung und Unit-Tests, aber sie zu sein scheinen am nützlichsten für die Bereitstellung eines internen Service-Bus, nicht für Dienstleistungen für externe Kunden ausgesetzt wird.

Unsere Kunden sind auf vielen verschiedenen Plattformen und erfordern unsere Dienstleistungen konforme Standards. Das kann verschiedene Dinge für verschiedene Menschen bedeuten, aber ich denke, es ist sicher anzunehmen, dass sie wollen Zugang Web-Services beschrieben mit WSDL.

In diesem Szenario ist WCF der Weg zu gehen?

War es hilfreich?

Lösung

ist WCF bei weitem die meisten standardkonformen Stack auf der Microsoft-Plattform. Das Schöne daran ist, dass es für verschiedene Kunden „out of the box“ sehr flexibel ist, und wenn es Dinge, die Ursache Sie Trauer, können die meisten von ihnen über benutzerdefinierte Verhaltensweisen ohne allzu viel Mühe geändert werden.

Andere Tipps

Eine Alternative, die ich normalerweise empfehlen ist die Integration über AMQP zwischen Ihrer Nachricht Broker. Das war Sie die Push-Paradigma anstelle des Polling man verwenden kann (das ist sehr mächtig und skalierbar im Vergleich)!

Sie würden stellen Sie Ihren eigenen Broker, wie RabbitMQ up, vor Ort. Dann würden Sie Ihre Integrationspartner einer Aufspannung lassen. (Easy: einfach herunterladen es ).

Wenn Ihr Partner aus dem gleichen Rechenzentrum zu integrieren, dann würden Sie Save paar Netzwerk Splits zu übernehmen - das heißt, Sie könnten teilen den Broker . Auf der anderen Seite, wenn Sie in verschiedenen Netzwerken sind, können Sie den Broker Föderation Modus einrichten . (Run rabbitmq-plugins enable rabbitmq_federation und Punkt zum anderen Broker)

Jetzt können Sie verwenden, z Masstransit:

ServiceBusFactory.New(sbc =>
{
    sbc.UseRabbitMqRouting();
    sbc.ReceiveFrom("rabbitmq://rabbitmq.mydomain.local/myvhost/myapplication");
    // sbc.Subscribe( s => s ... );
});

, wie würden Sie tun, wenn keine Integration zu tun.

Wenn man sich anschaut, http: //rabbitmq.mydomain.local: 55672 / jetzt werden Sie finden die Administrationsoberfläche für RabbitMQ. Masstransit schafft einen Austausch für jeden Nachrichtentyp (zB eine Nachricht an diesem Austausch wird auffächern an alle Teilnehmer zu senden), die Sie Berechtigungsregeln an setzen können.

Berechtigungsregeln können in Form von regex pro Benutzer sein oder es kann in LDAP integriert werden. In der Dokumentation für diese.

Sie würden auch SSL im Fall benötigen, dass Sie über das WAN gehen und du nicht einen IPSec-Tunnel hat - dass die Dokumentation ist hier: http://www.rabbitmq.com/ssl.html und Sie ermöglichen es wie diese .

Das ist es! Genießen Sie!

Post scriptum: Wenn Sie für ein Abenteuer Gefühl nach oben sind, die Ihnen helfen, alle Ihre Infrastruktur als Nebeneffekt zu verwalten, können Sie einen Blick auf Puppen . Puppet ist ein provisioner und Konfigurationsmanager von Servern; in diesem Fall würden Sie bei der Einrichtung von SSL mit Puppe interessiert. Erstens, um ein Wild-Card-Sub-Domain-Zertifikat für Ihre Domain, verwenden Sie dann, dass cert andere Zertifikate zu signieren: Sie können das delegieren - die rabbitmq Führung sehen, wo es heißt „Jetzt können wir den Schlüssel und Zertifikate, dass unser Test Certificate Authority generieren verwenden .“ - erzeugt eine Zertifikat-Signatur-Anforderung für das Zertifikat, anstatt eine neue Behörde zu schaffen - und lassen RMQ dies für SSL verwenden -. Es für das Internet gültig sein wird,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top