2008-12-04 15 views
6

Meine Firma ist dabei, eine neue Architektur zu implementieren, in der wir BizTalk (wir sind ein Microsoft-Shop) als Enterprise Service Bus (ESB) in einer SOA (bitte zitieren Sie Service Oriented Ambiguity) Umgebung vorgeschlagen haben.Sollten wir BizTalk/ESB einführen?

Unser Geschäft besteht darin, Bestellungen über unsere neue Order Capture GUI zu übernehmen, die mit unserer Kundendatenbank, dem Produktkatalog, dem Bestellsystem und einigen anderen Nebensystemen verbunden sein muss, die dann als WCF - Dienste veröffentlicht werden Order Management und andere nachgelagerte Systeme zur Erfüllung und schließlich zu unserem Abrechnungssystem für die Rechnungsstellung. Derzeit hat jedes System seine eigene GUI und verwendet einen manuellen Prozess, um Informationen zwischen ihnen zu übertragen, in dem Bestreben, den ESB zu automatisieren und zu integrieren.

Einige meiner Gründe für eine ESB ist, der Bus wird sich sorgen, wie man die Systeme verbindet (jedes System ist agnostisch und weiß nichts von einem anderen System) und wie man die Informationen formatiert/übersetzt. Es ist sehr wahrscheinlich, dass in Zukunft einige der bestehenden Systeme gegen neue Systeme oder Systeme innerhalb unserer Unternehmensfamilie ausgetauscht werden.

Das scheint mir einen Sinn zu ergeben, aber ich stoße jetzt darauf, warum es eingeführt wird, wenn eine Point-to-Point-Lösung ausreichen könnte.

Leider in der Firmengeschichte (vor meiner Ernennung) gescheitert ein erster Versuch, BizTalk einzuführen, aber ich bin zuversichtlich, dass es einen Platz hat, und ich kann es liefern.

Meine Frage ist vielleicht nicht so sehr über BizTalk, aber ob ein ESB in meinem beschriebenen Szenario eine gute Idee ist, wann macht es Sinn, einen ESB einzuführen?

Antwort

2

Ich denke, es ist sinnvoll, einen Datenbroker basierend auf den Anforderungen, die Sie beschrieben, zu haben, aber ich persönlich glaube nicht, dass BizTalk die beste Wahl in Ihrer Situation wäre. Für die Art der Integration, die Sie beschrieben haben, würde ich eine Hardware-Datenbroker-Appliance betrachten. Einige, die ich gut funktioniert habe, sind IBM DataPower, Vordel Appliance und Layer7 Appliance. Für die Art von Anrufen, für die Sie das verwenden, ist eine Appliance ideal. Sie bieten Routing, Transformation und Übersetzung und schützen vor Dingen wie Schema-Vergiftungen. Sie übernehmen auch Autorisierung, Authentifizierung und Überwachung, indem Sie sie mit Ihrem Benutzerspeicher verknüpfen (ich nehme an, Sie haben einen Active Directory-Benutzerspeicher basierend auf der von Ihnen beschriebenen Umgebung, aber er funktioniert auch mit LDAP)

An Appliance wird BizTalk oder eine andere Softwarelösung in Bezug auf die Betriebskosten sein (keine Supportkosten), und die Leistung einer beliebigen Appliance wird BizTalk wahrscheinlich um eine Größenordnung unterbieten.

6

Okay. ESB Guidance on Biztalk von der Prescriptive architechture group - http://msdn.microsoft.com/en-us/library/cc487894.aspx

Wir verwenden BizTalk, wo ich arbeite, um eine Menge Dinge zu tun. Er hat einige einfache Punkteinteilungen. Wir haben einige kompliziertere Punktintegrationen mit sehr angepassten Adpaters und Pipelines. Wir haben divisionale Systemintegrationen für Kundenstamm, Produktinfo und Preis und Angebot zu bestellen. Dies sind alle separaten BizTalk-Anwendungen. Einige ziemlich klein und einige ziemlich groß. Wir haben hauptsächlich BizTalk verwendet, um Punkt-zu-Punkt-/Mehrpunkt-Schlichtungen ohne Verwendung eines ESB-Musters auszuführen. Die Implementierung eines ESB impliziert eine Governance-Ebene des Busses selbst und der Unternehmensstandards, die im Bus erlaubt sind. Wenn Sie mit einer großen Anzahl von Systemen mit einer großen Anzahl verschiedener Formate interagieren, ist ESB sehr sinnvoll. Wenn die Integrationen, die Sie erreichen möchten, weniger ambitioniert sind, kann ein ESB übertrieben sein. Davon abgesehen ist es eine saubere und erweiterbare Architektur. Sie müssen die Kostenwertentscheidung treffen.

BizTalk ist auch ein kompliziertes Tier aber mit allof den beweglichen Teilen kommt ein Maß an Flexibilität, das ist wunderbar. Aber seien Sie auf eine Lernkurve oder einige Beraterkosten vorbereitet.

2

Ich neige dazu, den ESB-Begriff zu vermeiden, da ich glaube, dass er stark überlastet ist; Am Ende des Tages, in all den verschiedenen Beschreibungen, die ich gehört habe, ist es nur ein Muster, das BizTalk einmal sehr gut unterstützt.

Also - denke ich, BizTalk wird passen, was Sie tun möchten? kategorisch ja. Ich denke, Sie sind richtig, Punkt-zu-Punkt-Verbindungen zu vermeiden - auch ja, aber wie bei jeder Refactoring-Übung für die Wiederverwendung, einschließlich einer SOA-Initiative, müssen Sie überlegen, wie viel ändern und jetzt viel Wiederverwendung erwarten Sie zu entscheiden, wie weit, du nimmst du bist "entkoppeln" Übung.

0

Es ist ein sehr unterschiedliches Muster. Wenn Sie eine Nachricht von System A an System B senden, führen Sie eine direkte Konvertierung vom Format von System A in das Format System B durch. Wenn Sie einen ESB haben, konvertieren Sie die Nachricht von System A in das ESB-Format (dh, generische Bestellung, Reihenfolge usw.) und dann in das von System B benötigte Format. Es ist eine Konvertierung von zwei gegen 1 und auch das Busmuster erfordert Jede Nachricht hat ein Verb (zB hinzufügen, löschen, aktualisieren, etc.). Dies ist eine wirklich wichtige Unterscheidung und macht ESB sehr nützlich in Integrationen mit vielen teilnehmenden Systemen.

1

Sie müssen über Latenz und Durchsatz sprechen. Alles andere ist nur bla-bla.

4

Ich habe gerade diese gleiche Frage von einem Kollegen gefragt, und das ist, was ich zu ihm sagte:

In den meisten Integrationsszenarien können Sie gehen ziemlich weit, bevor etwas wie BizTalk verwenden. Ich würde sicherstellen, dass ich die Integration nicht mehr einfach vor BizTalk gehen könnte.

Nur wenn es scheint, dass die Integration Lösung zu hohen Volumen mit geringer Latenz skalieren muss (es eine fantastische asynchrone Publish-Subscribe-Mechanismus bekommt ist), und Du brauchst Fehlertoleranz (es hat Redundanz, Skalierung und Nachrichtenwiederholung Funktionen) und Governance über die Lösung (es hat Business Activity Überwachung) würden Sie wirklich starke Argumente zu prüfen, mit BizTalk in Betracht ziehen. Und wenn Sie wissen, dass mehrere zukünftige Integrationen sind, die benötigt werden, dann wird es wirklich unwiderstehlich, BizTalk zu verwenden.

Auf der anderen Seite müssen Sie sicherstellen, dass die Fähigkeiten verfügbar sind das Ding zu betreiben. Es dauert eine Weile zu lernen und einen Paradigmenwechsel für die Entwickler der Systeme. Allerdings ist von Grund auf in .NET und SQL Server gebaut, so gibt es eine ganze Menge der Vertrautheit in der Werkzeugbau und Konzepte.

Ich denke, das Wichtigste ist, die konzeptuelle Architektur einer Lösung Recht unter Berücksichtigung bekommt die nicht-funktionalen Anforderungen wie Leistung, Verfügbarkeit, Dehnbarkeit, Elastizität, Robustheit, und Skalierbarkeit und sicherstellen, dass sie werden durch das technische Design richtig adressiert. Sie können seine billiger finden, um die 35k $ pro CPU Lizenz für das zu bezahlen, was BizTalk Ihnen die Box gibt, als für alle diese NFRs zu entwickeln.

Auch ich habe kürzlich das neue ESB Toolkit 2.0 bei einem Kunden implementiert und bin sehr zufrieden damit. Die Reiseroute (siehe Routing-Beleg-Muster http://www.enterpriseintegrationpatterns.com/RoutingTable.html) Verarbeitungsfunktionen macht das Verfassen von Web-Services wirklich einfach, flexibel und schnell.

Verwandte Themen