Adaptervariablen
Es gibt eine Reihe von Variablen, die von jedem benutzerdefinierten Adapter verarbeitet werden müssen. Werte, die diesen Variablen zugeordnet sind, beeinflussen die vom Adapter implementierte benutzerdefinierte Logik. Auch transport- oder anwendungsspezifische Konfigurationseigenschaften können Ihre Lösung unterstützen. In der folgenden Tabelle sind diese häufig vorkommenden Variablen aufgeführt. Sie müssen entscheiden, welche davon in Ihrem benutzerdefinierten Adapter unterstützt werden sollen.
Für jede Option müssen vom Adapter bestimmte Schnittstellen implementiert werden. Zur Unterstützung bei Ihren Entwurfsentscheidungen finden Sie im Anschluss an die Tabelle eine Liste von Optionen für Variablen mit Links zu weiteren Informationen über das Schreiben von Adaptercode.
Adaptervariable | BESCHREIBUNG |
---|---|
Kommunikationsrichtung | Erhalten. Ein Empfangsadapter überwacht an einer protokollspezifischen Adresse eingehende Nachrichten. Wenn eine Nachricht empfangen wird, gibt der Empfangsadapter die Nachricht an die Messaging-Engine weiter. Diese übergibt die Nachricht durch eine Empfangspipeline an die MessageBox-Datenbank, wo sie schließlich gespeichert wird. Send. Wenn die Messaging-Engine eine Nachricht an einen bestimmten Endpunkt senden muss, wird diese an die Sendepipeline übergeben. Ein Sendeadapter nimmt die Nachricht von einer Sendepipeline an und sendet sie an den Sendeport. |
Adapterhosting | In-Process. Ein prozessinterner Adapter wird im BizTalk-Dienstprozess erstellt und BTSNTSvc.exe gehostet. Wenn der Host 64-Bit ist, wird der Prozess BTSNTSvc64.exe benannt. Der Einfachheit halber wird der 64-Bit-Prozess in diesem Abschnitt nicht weiter behandelt. Dies bedeutet, dass BizTalk Server die Lebensdauer des Adapters erstellt und verwaltet, ihn mit dem Transportproxy initialisiert, den Adapter anfordert und den Adapter beim Herunterfahren des Diensts beendet. Für In-Process-Adapter übermittelt BizTalk Server auch Konfigurationsinformationen zur Laufzeit an den Adapter, einschließlich Handler, Sendeport und Empfangsspeicherortkonfiguration. Zusätzlich werden von der Messaging-Engine Konfigurationselemente wie z.B. Dienstfenster verarbeitet. So muss vom Adapter nicht sichergestellt werden, dass sich ein Empfangsspeicherort oder Sendeport außerhalb eines Dienstfensters befindet. Alle Sendeadapter sind In-Process-Adapter und müssen im Prozess BTSNTSvc.exe ausgeführt werden. Isoliert. Der Adapter wird in einem isolierten Host erstellt, der nicht Teil der BizTalk Server Runtime ist. Ein Beispiel für einen isolierten Adapter ist der HTTP-Empfangsadapter, der im Prozessbereich der Internetinformationsdienste (IIS) ausgeführt wird. Nach dem IIS-Prozessmodell wird die Gültigkeitsdauer von ASP.NET-Anwendungen und ISAPI-Erweiterungen von IIS verwaltet. Wenn BizTalk Server die Lebensdauer des Adapters nicht verwalten kann, wird der Adapter als isolierter Adapter bezeichnet. Da BizTalk Server die Instanziierung eines isolierten Adapters nicht verwaltet, muss der Adapter einen eigenen Transportproxy erstellen und sich bei diesem Transportproxy registrieren. Beachten Sie, dass die BizTalk Server-Architektur unnötige Interprozesskommunikation vermeidet. Da sich der isolierte Adapter und der BizTalk-Stapel im gleichen Prozess befinden, findet beim Aufrufen der Messaging-Engine durch den Adapter keine prozessübergreifende Kommunikation statt. Prozessübergreifende Kommunikation findet nur zwischen der Messaging-Engine und der Datenbank statt, wo sie unvermeidlich ist. Sendeadapter, die in nicht verwaltetem Code geschrieben wurden, können von COM+-Anwendungen nicht gehostet werden. |
Nachrichtenaustauschmuster | Unidirektional. Die Nachricht ist entweder ein- oder ausgehend. Anforderungsantwort (bidirektionale Antwort). Anforderungsantwortadapter sind immer Empfangsadapter. Ein Anforderung-Antwort-Empfangsadapter empfängt eine Anforderungsnachricht vom Client und sendet die Nachricht an BizTalk Server. Nachdem BizTalk Server die Anforderungsnachricht verarbeitet hat, sendet er eine Antwortnachricht zurück an den Adapter. Der Adapter überträgt die Antwortnachricht anschließend zurück an den Client. Solicit-Response (bidirektionale Antwort). Solicit-Response-Adapter sind immer Sendeadapter. Ein Sendeadapter vom Typ „Antwort anfragen“ sendet eine Anforderungsnachricht von BizTalk Server an ein Ziel, wartet auf eine Antwortnachricht und sendet diese dann zurück an BizTalk Server. |
Sendeportbindung | Dynamische Sendeports und Empfangsspeicherorte. Die bei dynamischer Bindung verwendete URI-Variable für den Sendeport oder den Empfangsspeicherort wird zur Laufzeit bestimmt. Statische Sendeports und Empfangsspeicherorte. Die URI-Variable für den Sendport oder den Empfangsspeicherort ist statisch und wird vor der Laufzeit konfiguriert. |
Synchrone Sendeadapter im Vergleich zu asynchronen Sendeadaptern | Synchroner Sendeadapter. Beim Ausführen eines Sendevorgangs wird der Transportproxythread durch die Messaging-Engine blockiert, bis der Batch von Nachrichten gesendet und zurückgegeben wurde. Der Transportproxy führt das Entfernen der Nachricht durch, nachdem diese übermittelt, wiederholt oder angehalten wurde oder nachdem der Übergang zum nächsten Vorgang abgeschlossen ist. Asynchroner Sendeadapter. Der Transportproxythread wird vom asynchronen Sendeadapter nicht blockiert. Stattdessen wird beim Ausführen von Sendevorgängen ein separater Thread verwendet. Im Gegensatz zum synchronen Adapter muss ein solcher Adapter die Lösch- und Wiederholungslogik selbst implementieren, da diese vom Transportproxy nicht verarbeitet wird. Adapter, die asynchrone Nachrichten senden, ermöglichen eine bessere BizTalk Server Leistung als diejenigen, die synchrone Nachrichten senden. Dies liegt daran, dass das Warten der Threads auf den Abschluss ein- oder ausgehender Vorgänge viel Zeit in Anspruch nimmt. Da die Messaging-Engine eng an die CPU gebunden ist, wird durch Blockieren des Threads für die Messaging-Engine die Leistung der Adapter vermindert. Die Verwendung asynchroner Übertragungen wird dringend empfohlen und verbessert die Leistung. |
Asynchrone Empfangsadapter | Alle Empfangsadapter sind asynchron. Das bedeutet, wenn ein Adapter neue Nachrichten an die BizTalk-Messaging-Engine übermittelt, wartet er vor der Rückgabe nicht deren vollständige Verarbeitung ab. |
Transaktionsunterstützung | Transaktionaler Adapter. Unterstützt das transaktionale Senden und Empfangen von Nachrichten. Auf der Sendeseite werden Transaktionen nur von Sendeadaptern unterstützt, die sich in einem asynchronen Batch befinden. Nicht transaktionaler Adapter. Ein Adapter, der im Bereich einer expliziten Transaktion keine Nachricht empfängt oder sendet. Viele Adapter sind nicht transaktional, da sie an ein System oder von einem System aus senden, das keine Transaktionen unterstützt, wie z. B. das Windows-Dateisystem. |
Sendeadapter mit Batchunterstützung im Vergleich zu Sendeadaptern ohne Batchunterstützung | Adapter mit Batchunterstützung. Der Sendeadapter kann Nachrichten in Batchvorgängen verarbeiten. Alle für die Übermittlung verfügbaren Nachrichten können von allen Adaptern gesammelt werden und dann gleichzeitig an die MessageBox-Datenbank gesendet werden. Dadurch sind weniger Datenbankaktualisierungen erforderlich. In einigen Fällen bedeutet dies, dass der Batch nur aus einer Nachricht besteht. Analog dazu werden von Sendeadaptern alle zum Senden verfügbaren Nachrichten gesammelt, extrahiert und gleichzeitig an ihr Ziel gesendet. Im Allgemeinen behandelt BizTalk Server einen Batch als Arbeitseinheit für Datenbankupdates. Innerhalb eines Batches können Adapter unidirektionale Nachrichten sowie Nachrichten vom Typ "Anforderungsantwort" und "Antwort anfragen" senden, Nachrichten anhalten und löschen sowie die erneute Übertragung einer Nachricht oder das Verschieben einer Nachricht in den sekundären Transport anfordern. Soweit dies möglich ist, sollten Übertragungen stets in Batches stattfinden. Sowohl Sende- als auch Empfangsadapter können in einem Batch verarbeitet werden, Transaktionen werden jedoch nur von asynchronen Sendeadaptern in einem Batch unterstützt. Adapter ohne Batchunterstützung. Für jede Nachricht sind unabhängige Serveraufrufe erforderlich. |
Empfangsadapter mit Batchunterstützung | Alle Empfangsadapter unterstützen Batchverarbeitung. |
Vergleich von dynamischer und statischer Konfiguration von Adaptern zur Entwurfszeit | Dynamische Adapterentwurfszeit. Damit ein Adapter die dynamische Entwurfszeitkonfiguration unterstützt, müssen Sie eine eigene Benutzerschnittstelle entwickeln, um den Assistenten zum Hinzufügen von Adapter-Metadaten verwenden zu können. Über diese Oberfläche kann der Benutzer ein Schema auswählen, das einem BizTalk-Projekt hinzugefügt werden soll. Die zugehörige Dienstbeschreibung wird in einer WSDL-Datei (Web Services Description Language) zurückgeben. Zum Abrufen der Schemas wird vom Adapter eine angepasste Benutzerschnittstelle bereitgestellt. Wenn mithilfe des Assistenten zum Hinzufügen von Adapter-Metadaten ein Dienst importiert wird, werden neben Schemas auch Porttypen, Nachrichtentypen und eine Orchestrierung zum BizTalk-Projekt hinzugefügt. Weitere Informationen finden Sie unter Statische Design-Time Adapterkonfiguration. Statische Adapterentwurfszeit. Damit ein Adapter die statische Entwurfszeitkonfiguration unterstützt, werden Standardschnittstellen implementiert, sodass vom Assistenten zum Hinzufügen von Adapter-Metadaten ein Schema ausgewählt werden kann, das dem BizTalk-Projekt hinzugefügt wird. Die Benutzerschnittstelle für den Adapter wird vom BizTalk-Adapterframework bereitgestellt. Informationen zum Ändern des Beispieldateiadapters finden Sie unter Dynamische Design-Time Adapterkonfiguration. |
Transportadapter im Vergleich zu Anwendungsadaptern | Transportadapter. Transportadapter unterstützen ein bestimmtes Protokoll und verwenden kein Schema. Von den zwölf nativen Adaptern sind neun Transportadapter: MSMQ, MQ-Serie, Datei, FTP, HTTP, SMTP, POP3 und SOAP. Anwendungsadapter. Anwendungsadapter verwenden Datenschemas, um Daten an die angegebene Anwendung zu senden. Von den nativen Adaptern sind zwei Anwendungsadapter: Windows SharePoint Services und SQL. |
Informationen darüber, welche Schnittstellen im benutzerdefinierten Adaptercode implementiert werden müssen, finden Sie in der folgenden Tabelle unter dem Link des Adaptertyps, den Sie erstellen möchten. In einigen Fällen müssen die Schnittstellen, die für eine Anforderung aufgelistet sind, mit den Schnittstellen, die auf einer separaten Seite für eine andere Anforderung aufgelistet sind, kombiniert werden.
Entwickeln von benutzerdefinierten Adaptern
Verwenden von Adaptern
Adapterbeispiele – Entwicklung