info@yenlo.com
deu
Menu
WSO2 8 min

Die Kunst der Integration oder die Integration von Kunst – Teil 2

Entdecken Sie die Kunst der Integration von Technologie und Kunst in Teil 2 von Rob Blaauboers Blogserie bei Yenlo. Erfahren Sie mehr über die transformative Kraft der Digitalisierung, Museumssammlungen und den Meural-Canvas.

Rob Blaauboer
Rob Blaauboer
Integration Consultant & WSO2 Trainer
Kunst der Integration komplett Yenlo

Es mag Ihnen so vorkommen, als wären Museen das ultimative Beispiel für Stein und Mörtel. Man muss dorthin gehen, um die Meisterwerke ausgestellt zu sehen. Und natürlich ist es ein besonderes Erlebnis, wenn man durch ein Museum geht und all die wunderschöne Kunst sieht. Allerdings haben einige Museen auch einen digitalen Bereich, weil ihre Sammlungen oft so groß sind, dass sie nicht alles zeigen können. Hunderttausende von Bildern werden nicht ausgestellt, sondern in Depots außerhalb der Sicht der Menschen aufbewahrt. Digitalisierung, also das Fotografieren und Online-Stellen, ermöglicht es ihnen, mehr von ihrer Sammlung zu zeigen und den Menschen die Kunst genießen zu lassen. In einigen Fällen werden sogar abgeleitete Werke aus Meisterwerken erstellt. Die digitale Leinwand ist eines dieser Geräte, mit denen Sie Ihr Lieblingskunstwerk hochladen und in Ihrem eigenen Zuhause oder Büro anzeigen können. Es ist eine Form der digitalen Vorstellungskraft, um zu sehen, was Sie mit einem solchen Gerät und den digitalen Ressourcen, die Museen zur Verfügung stellen, tun können.

Lassen Sie uns fortfahren

Im vorherigen Teil dieses Blogs haben wir eine API entwickelt, die in der Lage war, ein digitalisiertes Bild aus dem Rijksmuseum abzurufen. Im zweiten Teil werden wir das einfach erweitern, indem wir mehrere Objekte im angrenzenden Array zulassen und die Bilder tatsächlich auf Ihrem lokalen Laufwerk speichern.

Der Grund, warum ich diesen Blog schreibe, ist, Ihnen zu zeigen, dass Integration nicht nur für Experten oder Künstler ist, sondern dass es fast jeder tun kann. Natürlich benötigen Sie Schulung und meiner Meinung nach auch ein gewisses Talent, um integrieren zu können, aber im Allgemeinen sind die meisten Entwickler in der Lage, Systeme zu integrieren.

Die Einrichtung

Um zusammenzufassen, was Sie benötigen, wenn Sie dies selbst ausprobieren möchten:

  1. Eine Version des Micro Integrators (ich verwende Version 4.2.0)
  2. Integration Studio um die Artefakte zu entwickeln, die wir bereitstellen werden (ich verwende Version 8.2)
  3. Einen API-Schlüssel vom Rijksmuseum, um ihre API nutzen zu können
  4. Eine Meural-Leinwand, wenn Sie den vollständigen Ablauf haben möchten. Andernfalls können Sie das Bild lokal speichern.

Iteration

Wenn Sie sich die Einrichtung ansehen, die wir einrichten möchten, sehen Sie, dass ein Array von Werten an die API übergeben wird. Für jeden dieser Werte im Array möchten wir die Informationen über das Gemälde abrufen. Innerhalb des Micro Integrators gibt es zwei Mediationen, die diesem Zweck dienen. Die erste ist der „ForEach mediator“ und die zweite ist der „Iterate mediator“, der es Ihnen ermöglicht, ein wiederholendes Element in einer Payload zu nehmen und Logik für jedes davon auszuführen.

In unserem Fall, da wir eine andere API basierend auf dem Wert aufrufen möchten, den wir aus dem Array erhalten, sollten wir den „Iterate mediator“ verwenden. Der „ForEach mediator“ ist nicht geeignet, da wir auf ein (externes) System zugreifen möchten.

Wenn Sie sich die Syntax des „Iterate mediator“ ansehen, gibt es eine Reihe von Parametern, die je nach Anwendungsfall festgelegt werden können. Der Mediator wird oft von dem „Aggregate mediator“ begleitet, der es uns ermöglicht, etwas zuerst aufzuteilen und dann die Ergebnisse zusammenzuführen. Sie können jedoch auch die Nachricht verwerfen. In unserem Fall benötigen wir das nicht, weil wir nicht so sehr daran interessiert sind, die Antworten zu kombinieren, sondern eher unseren Aufruf basierend auf dem Wert auszuführen, der in der URL zusammengefügt wird. Es gibt natürlich auch andere Möglichkeiten, dies zu tun. Wir könnten beispielsweise auch die Werte, die wir aus einem Array erhalten, in die Nachrichtenwarteschlange speichern und die Nachrichten sequenziell abrufen und verarbeiten.

Lokal speichern

Wir haben bereits gesehen, dass wir eine URL zurückbekommen, die uns den Speicherort zum Herunterladen eines Kunstwerks gibt. Nun möchten wir das Bild tatsächlich abrufen und auf einem lokalen Laufwerk speichern. Das ist ebenfalls Teil der Integration. Um dies zu ermöglichen, müssen wir die Möglichkeit hinzufügen, auf ein lokales Gerät zu schreiben, und das tun wir in Form des WSO2 File Connector.

WSO2 File connector

Connectors sind Erweiterungen für den Micro Integrator, mit denen er auf cloudbasierte Dienste zugreifen kann oder in unserem Fall mit dem File Connector auf unser lokales Dateisystem. Anstatt alles selbst herauszufinden, können diese vorgefertigten ZIP-Dateien dem Micro Integrator hinzugefügt werden und erweitern seine Fähigkeiten erheblich.

Fast 200 Connectors im Store

Die Connectors finden Sie online unter dieser URL, und ich habe zurzeit 193 Connectors gezählt. Nicht alle sind aktuell, muss ich hinzufügen, aber es spart Ihnen viel Zeit, da Sie nicht herausfinden müssen, wie Sie eine Verbindung zu einem bestimmten System oder Dienst herstellen können. Die Art und Weise, wie Sie diese Connectors verwenden, besteht darin, zu prüfen, ob die Version, die Sie verwenden, unterstützt wird. Selbst wenn nicht angegeben ist, dass die Version unterstützt wird, können Sie es immer ausprobieren. Die Connectors selbst sind ZIP-Dateien, die Sie einfach öffnen und die Konfiguration darin anzeigen können. In den meisten Fällen handelt es sich um eine reguläre Synapse-Konfiguration (die gleiche Sprache, die wir hier für die Nachrichtenvermittlung verwenden), aber es kann auch sein, dass sich eine Java-JAR-Datei im Connector befindet. Im Fall des File Connectors, bei dem wir auf das Dateisystem der untersten Ebene zugreifen müssen, ist dies tatsächlich der Fall..

Wenn Sie mehr über Connectors und deren Möglichkeiten erfahren möchten, können Sie einen der Blogs lesen, die ich im Laufe der Jahre zu diesem Thema geschrieben habe.

Integration Studio

Der Connector wird in der Regel sowohl in Ihrer Integrationsentwicklungsumgebung, wie Integration Studio, als auch in dem Produkt, in dem Sie die Integration ausführen, heruntergeladen. In Integration Studio wird er dem System hinzugefügt, um die Verwendung des Connectors auf die gleiche Weise zu ermöglichen, wie Sie Ihre Mediationen durch Drag & Drop auf hoher Ebene erstellen. Die Details können in der  Properties (Eigenschaften) ansicht oder Source (Quell) ansicht konfiguriert werden.

Quellansicht konfigurieren

Bei der Bereitstellung ist es auch wichtig, den Connector zu den Artefakten hinzuzufügen, die wir bereitstellen möchten, da eine Abhängigkeit erfüllt sein muss, um die Artefakte ausführen zu können.

Connectors können auf sehr einfache Weise über ein Integrationsprojekt hinzugefügt werden, bei dem wir einfach das Kontrollkästchen für Connectors aktivieren. Dies haben wir bereits im vorherigen Blogbeitrag getan.

Neues Integrationsprojekt

Aber es gibt noch etwas, das wir tun müssen. Und es hat damit zu tun, dass, wenn eine Nachricht vom Micro Integrator empfangen wird, standardmäßig versucht wird, die Nachricht zu analysieren, um auf den Inhalt vermitteln zu können. Der Mechanismus verwendet Transportmittel wie HTTP und HTTPS sowie Builder und Formatter, die die eingehende Nachricht in das interne Axiom-Modell transformieren. Wenn die Nachricht gesendet wird, wird sie entsprechend dem definierten Nachrichtentyp aufgebaut. Wenn Sie ein digitales Bild herunterladen, ist es nicht erforderlich, die Nachricht zu analysieren. Sie muss einfach in einen SOAP-Umschlag eingepackt werden, ohne dass der Micro Integrator versucht, die Nachricht zu öffnen. Um dies zu ermöglichen, verfügt der Micro Integrator über einen Relay-Mechanismus, der nicht versucht, die Nachricht zu öffnen, sondern sie einfach annimmt, verpackt und weiterleitet oder etwas anderes damit tut.

Um dies zu konfigurieren, werden wir eine Änderung an der deployment.toml-Datei vornehmen, in der alle Konfigurationen des Produkts verwaltet werden. Diese Datei befindet sich im [MI-HOME]/conf Verzeichnis des Produkts.

[[custom_message_builders]]
class = "org.wso2.carbon.relay.BinaryRelayBuilder"
content_type = "image/jpeg"
[[custom_message_formatters]]
class = "org.wso2.carbon.relay.ExpandingMessageFormatter"
content_type = "image/jpeg"

Jetzt wird eine Nachricht mit dem Inhaltstyp image/jpeg entsprechend diesen beiden Java-Klassen für Builder und Formatter behandelt. Nachdem Sie diese Änderung vorgenommen haben, müssen Sie den Micro Integrator neu starten, da die deployment.toml-Datei nur beim Start gelesen wird.

Wenn wir uns die API aus Teil 1 ansehen, fügen wir die neuen Teile hinzu. Die große Veränderung ist natürlich der „Iterate mediator“, der durch das JSON-Array laufen wird, das wir an die API übergeben, und der Code, der die eigentliche Datei auf unsere lokale Festplatte schreibt.

Vermittler im JSON Array iterieren

Ich werde nicht jeden Teil dieser Konfiguration erklären, da dies zu viel Platz einnehmen würde und der Blog zu lang wäre. Ich habe ein Bitbucket-Repo für Sie erstellt, in dem Sie die Ressourcen/Artefakte herunterladen können.

Tinkering

Sie finden Einstellungen, die Sie konfigurieren müssen, wenn Sie mit solchen Mediationen arbeiten.

Zum Beispiel, wenn Sie mit dem JSON-Array arbeiten und den Wert abrufen möchten, habe ich festgestellt, dass es notwendig war, den „attachPath“ so einzustellen, dass die einzelnen Werte innerhalb des Arrays in ein Wert-Schlüsselpaar präfixiert werden. Wenn Sie dies mit einer XML-Nachricht tun würden, ist dies nicht notwendig. Eine andere Sache ist, dass wir derzeit nur eine kleine Anzahl von Objekten verwenden, die wir verarbeiten möchten. Wenn Sie mit größeren Zahlen arbeiten, müssen Sie möglicherweise die Speicher-Einstellungen ändern, da beim Verarbeiten eine Reihe von Threads gestartet werden und die Nachrichten im Speicher geladen werden. Zu diesem Zweck musste ich den Speicher auf 4096 Megabyte einstellen, viermal die normale Einstellung für den maximalen Speicher, den der Micro Integrator verwenden wird. Diese Einstellung wird tatsächlich im Startskript vorgenommen, nicht in der deployment.toml-Datei. Aber zu dieser Zeit konnte ich über 60 Objekte in einer Payload verarbeiten.

Nachfolgend habe ich eine JSON-Array-Payload erstellt, {„object“: [„SK-C-5“, „SK-C-4“]}, die ich an die API übergebe.

JSON array payload

Es werden zwei Dateien in das zugewiesene Verzeichnis erstellt. Wie Sie sehen können, handelt es sich um vollständige JPG-Dateien.

Kunst der Integration komplett
Kunst der Integration komplett

Die Übertragung von Kunst ist abgeschlossen! Das reicht für diesen Blog. Im nächsten Teil, Teil 3, werden wir den letzten Schritt tun und es auf unsere Meural hochladen. Bleiben Sie dran

deu
Schließen
Was ist auf unserer Speisekarte