Entkoppeln von Transporttyp und Verarbeitung
Bei einer dienstorientierten Lösung gibt es häufig keine klare Abgrenzung zwischen den Geschäftsprozessen und den Details bei der Übermittlung und dem Empfang von Nachrichten. Dies ermöglicht Ihnen, den Geschäftsprozess oder die Nachrichtenkomponente der Lösung unabhängig voneinander zu ändern.
Die dienstorientierte Lösung verstößt an einer Stelle gegen dieses Entwurfsprinzip. In diesem Abschnitt werden diese Situation, die möglichen Alternativen und die ausgewählte Struktur beschrieben.
Korrelation und der MQSeries-Adapter
Wenn Sie den MQSeries-Adapter verwenden möchten, können Sie nicht die standardmäßigen BizTalk Server-Korrelationsbezeichner nutzen. Der Grund ist, dass der Korrelationsbezeichner auf ein IBM-Back-End-System weist, das ein eigenes System von Korrelationsbezeichnern hat. Stattdessen müssen Sie die Eigenschaften MQSeries.MQMD_CorrelId und MQSeries.MQMD_MsgID verwenden. Bei Verwenden dieser Eigenschaften werden transportspezifische Informationen potenziell in die Orchestrierung und somit in den Geschäftsprozess übertragen.
Eine Möglichkeit für den Umgang mit dieser Abhängigkeit ist die Verwendung des BizTalk Server-Korrelationsbezeichners und einer benutzerdefinierten Pipelinekomponente zum Übersetzen des Korrelationsbezeichners für MQSeries. Dadurch wird das Szenario allerdings komplexer. Darüber hinaus müssen bei einer Änderung des Transports zwei Pipelinekomponenten geändert werden. Und schlussendlich wird die Abhängigkeit verlagert (und zwar in die Pipelinekomponente), anstatt behoben zu werden.
Eine weitere Option ist das Isolieren der MQSeries-spezifischen Korrelationsbehandlung in eine eigene Orchestrierung, die anschließend aufgerufen wird. Dadurch würde die Unabhängigkeit des Geschäftsprozesses erhalten bleiben. Dadurch ergibt sich allerdings eine Abhängigkeit zur Kompilierungszeit zwischen den Orchestrierungen. Das Ändern des Transports erfordert eine erneute Kompilierung beider Orchestrierungen (z. B. beim Wechseln von der Stub- zur Adapterversion der Lösung). Der Aufruf verlängert zudem die Antwortzeit der Lösung.
Angesichts der zusätzlichen Komplexität und möglichen Leistungseinbuße ist es wohl am einfachsten, die MQSeries-Korrelation direkt in der Orchestrierung zu verwenden.
Weitere Informationen zum Adapter und zu den Korrelationen in Orchestrierungen finden Sie unter MQSCorrelationSetOrchestration (BizTalk Server Beispiel).
Weitere Informationen
Implementierungshighlights der dienstorientierten Lösung
MQSCorrelationSetOrchestration (BizTalk Server-Beispiel)