Domainübergreifendes Arbeiten

Um die domainübergreifende Übergabe von Objekten von Rechner zu Rechner zu realisieren, wird die Message Broker Middleware Crossbar.io  verwendet. Dazu ist es notwendig einen Crossbar.io Docker Container auszuführen und entsprechend in der GeoOffice integrator 2021 Konfigurationsdatei zu konfigurieren. Außerdem ist für die Kommunikation eine eindeutige Identifikation von Sender und Empfänger notwendig. Diese wird ebenfalls in der GeoOffice integrator 2021 Konfigurationsdatei vorgenommen.

 

Zu Beginn der Konfiguration wird der Wamp-Block konfiguriert. Der Wamp-Block enthält die nötigen Konfigurationen für die Crossbar.io Instanz. Im Folgenden sind die Default-Werte kurz erläutert:

1.<WhoAmI> ... zur eindeutigen Identifikation jedes Clients werden standardmäßig Windows Environmentvariablen für username und computername verwendet.

2.<ServerAddress> ... bezieht sich auf die Adresse und den Port des Crossbar.io Containers. Standardmäßig ist ein zu Testzwecken gehosteter Container definiert.

3.<Realm> ... bietet die Möglichlichkeit unterschiedliche Namensräume anzugeben. Der voreingestellte realm1 entspricht dem Crossbar.io standard-realm.

<Wamp>
  <WhoAmI>Integration_%USERNAME%@%COMPUTERNAME%</WhoAmI>
  <ServerAddress>ws://20.31.253.190:8080//ws</ServerAddress>
  <Realm>realm1</Realm>
</Wamp>

 

Zur Kommunikation wird im jeweiligen Instance-Block in der TargetDefinition der eindeutige Identifikator des Empängers mit dem Parameter RemoteName entsprechend gesetzt und muss dem eindeutigen <WhoAmI> des Ziel-Clients entsprechen.

<TargetDefinition RemoteName="Integration_USERXY@COMPUTERXY">

 

Am Sender-Rechner wird der RemoteName vom GeoOffice integrator 2021 beim Senden gelesen und interpretiert, sodass der gewünschte Empfänger-Rechner angesteuert wird. Am Empfänger Rechner dagegen wird ein möglicherweise konfigurierter RemoteName in der entsprechenden TargetDefinition dann ignoriert, wenn ein Request über Remote ankommt.

Wenn etwas an den eigenen Rechner und an einen zweiten Rechner geschickt werden soll, braucht es zwei Instanzen, einmal mit und einmal ohne RemoteName in der TargetDefinition. Wird kein RemoteName angegeben, geht die Integration zum eigenen Rechner. Wird ein RemoteName angegeben, wird die Message dorthin weitergeschickt.

! Beim Konfigurieren ist darauf zu achten, dass der Instanzname mit den Operationen beim Sender und Empfängerrechner identisch vorhanden sein muss. Einzig darf der RemoteName beim Empfänger weggelassen werden. Auch die entsprechende SourceConfiguration muss entsprechend in beiden Konfigurationen vorhanden sein. Im einfachsten Fall wird demnach an beiden Rechnern die gleiche Konfigurationsdatei verwendet. Lediglich der WhoAmI ist unterschiedlich. Wenn dieser über Windows Umgebungsvariablen eindeutig definiert wurde, braucht er nicht angepasst zu werden.

Beispielkonfigurationen

Die Beispielkonfiguration für einen Senderrechner befindet sich hier.

Die Beispielkonfiguration für einen Empfängerrechner ist hier.

Mit diesen Beispielkonfigurationen ist es möglich mit dem ersten Link der Beispielaufrufe aus dem Webbrowser eine Integration nach WebOffice zu starten. Je nach ausgewähltem Ziel soll sich WebOffice am Empfängerrechner (GO2)  oder am eigenen Rechner öffnen.

 

Entwicklungshinweis: Lokale Crossbar.io Instanz

Für die Entwicklung von Clients kann es hilfreich sein, Crossbar.io  als lokale Instanz zu verwenden. Das entsprechende Docker Image ist zu finden in Dockerhub .

docker run -d -p 8080:8080 crossbario/crossbar

die Konfiguration würde in diesem Fall folgendermaßen aussehen:

<Wamp>
  <WhoAmI>Integration_%USERNAME%@%COMPUTERNAME%</WhoAmI>
  <ServerAddress>ws://127.0.0.1:8080/ws</ServerAddress>
  <Realm>realm1</Realm>
</Wamp>