Eingabe- und Ausgabeadapter (Legacymodell)

 

In einer früheren Version von StreamInsight wurden Eingabe- und Ausgabeadapter eingeführt. Obwohl sie durch das aktuelle Entwicklungsmodell abgelöst wurden, stehen sie Entwicklern, die noch Legacycode einsetzen, weiterhin zur Verfügung. Dieser Abschnitt enthält Informationen zu diesem Legacymodell. Weitere Informationen über das aktuelle Entwicklungsmodell finden Sie unter Entwicklerhandbuch (StreamInsight).

Adapter übersetzen und übermitteln eingehende und ausgehende Ereignisdatenströme zu und vom StreamInsight-Server. StreamInsight stellt ein sehr flexibles Adapter-SDK bereit, mit dem Sie Adapter für die domänenspezifischen Ereignisquellen und Ausgabegeräte (Senken) erstellen können. Adapter sind in der C#-Programmiersprache implementiert und als Assemblys gespeichert. Die Adapterklassen werden zur Entwurfszeit als Vorlagen erstellt, auf dem StreamInsight-Server registriert und während der Laufzeit als Adapterinstanzen im Server instanziiert.

Eingabeadapter

Eine Eingabeadapterinstanz akzeptiert eingehende Ereignisdatenströme aus externen Quellen, beispielsweise Datenbanken, Dateien, Tickerfeeds, Netzwerkports oder Sensoren. Der Eingabeadapter liest die eingehenden Ereignisse in dem Format, in dem sie bereitgestellt werden, und wandelt diese Daten in das für den StreamInsight-Server geeignete Ereignisformat um.

Sie erstellen einen Eingabeadapter, um die spezifischen Ereignisquellen für die Datenquelle zu behandeln. Wenn die Ereignisquelle nur einen einzigen Ereignistyp erzeugt, kann der Adapter typisiert werden. Das heißt, er wird für die Ausgabe eines einzigen Ereignistyps implementiert. Mit einem typisierten Adapter erzeugen alle Instanzen des Adapters das gleiche feste Nutzlastformat, in dem die Anzahl der Felder und ihre Typen im Voraus bekannt sind. Beispiele für solche Ereignisse sind Tickerfeeddaten oder von einem bestimmten Gerät ausgegebene Sensordaten. Wenn die Ereignisquelle in verschiedenen Umständen unterschiedliche Typen ausgibt, d. h. wenn die Ereignisse möglicherweise verschiedene Nutzlastformate enthalten oder das Nutzlastformat möglicherweise nicht im Voraus bekannt ist, implementieren Sie einen nicht typisierten Adapter. Bei einem nicht typisierten (generischen) Adapter wird das Ereignisnutzlastformat dem Adapter bei der Abfragebindung als Teil einer Konfigurationsspezifikation bereitgestellt. Beispiele für solche Quellen sind CSV-Dateien, die eine veränderliche Anzahl von Feldern enthalten und für die der Typ der in der Datei gespeicherten Daten erst zum Zeitpunkt der Abfrageinstanziierung bekannt ist, oder ein Adapter für database or your report server without the permission of the system administrator.-Tabellen, in denen die generierten Ereignisse vom Schema der Tabelle abhängig sind. Beachten Sie, dass eine einzelne Adapterinstanz zur Laufzeit immer Ereignisse eines bestimmten Typs ausgibt, unabhängig davon, ob sie typisiert oder nicht typisiert ist. Statt der Definition des Ereignistyps zum Zeitpunkt der Implementierung des Adapters, bieten nicht typisierte Adapter flexible Implementierung zur Annahme der Spezifikation des Ereignistyps zum Zeitpunkt der Abfragebindung.

Ausgabeadapter

Sie erstellen einen Ausgabeadapter, um die vom StreamInsight-Server verarbeiteten Ereignisse zu empfangen, die Ereignisse in ein vom Ausgabegerät (Senke) erwartetes Format zu übersetzen und die Daten an dieses Gerät auszugeben. Das Entwerfen und Erstellen eines Ausgabeadapters ist mit dem Entwerfen und Erstellen eines Eingabeadapters vergleichbar. Typisierte Ausgabeadapter werden für eine bestimmte Ereignisnutzlast entworfen, wohingegen nicht typisierte Ausgabeadapter erst zur Laufzeit mit dem Ereignistyp angegeben werden, wenn die Abfrage instanziiert wird.

Weitere Informationen finden Sie unter Erstellen von Eingabe- und Ausgabeadaptern. Die Kernadapter-API bietet maximale Flexibilität zur Implementierung für alle Ereignisquellen- oder senken. Zusätzlich werden von StreamInsight Ereignisquellen und -senken auf höherer Abstraktionsebene unterstützt, die die IObservable-Schnittstelle oder die IEnumerable-Schnittstelle implementieren. Weitere Informationen finden Sie unter Verwenden von Ereignisquellen und -senken (StreamInsight).

Siehe auch

Anpassen von Adaptern an die StreamInsight-Serverarchitektur
Erstellen von Eingabe- und Ausgabeadaptern