VERBUNDANWENDUNGEN - GESTALTUNG UND VERWALTUNG


Datentypen in Verbundanwendungen verwenden
Verbundanwendungen in IBM® Lotus® Notes®, Lotus Expeditor und WebSphere Portal verwenden zur Kommunikation mit anderen Komponenten eine Eigenschaftsbroker-Technologie. Der Eigenschaftsbroker ermöglicht die Kommunikation zwischen Komponenten, die lose miteinander verbunden sind. Lose miteinander verbundene Komponenten sind in einer serviceorientierten Architektur (SOA) von Bedeutung, da sie die Wiederverwendung von allgemein gehaltenen Komponenten in verschiedenen Anwendungen ermöglichen. Dadurch können Sie Anwendungen nach Bedarf erstellen.

Die Kommunikation zwischen Komponenten erfolgt über Eigenschaften, Aktionen und Verbindungen. Quellenkomponenten können Ausgabeeigenschaften veröffentlichen, die Namen, Datentypen und Werte besitzen. Zielkomponenten stellen Aktionen bereit, die Eingabeeigenschaften besitzen.

Der Datentyp der Ausgabeeigenschaft muss mit dem Datentyp der Eingabeeigenschaft der Aktion übereinstimmen, damit zur Kommunikation eine Verbindung zwischen zwei Komponenten definiert werden kann. Die Ausgabeeigenschaften und Aktionen werden als Teil der Komponenten definiert.

Die Verbindungen zwischen Komponenten werden nur auf der Ebene der Verbundanwendungen definiert, um die lose Verbindung zu gewährleisten. Komponentenschnittstellen werden über WSDL-Dateien (Web Services Description Language) definiert, obgleich sie nicht als Web-Services aufgerufen werden.

In WSDL definieren Sie Eigenschaften, Aktionen und Datentypen. Sie können entweder integrierte Datentypen verwenden oder eigene, spezialisierte Datentypen definieren. Die integrierten Datentypen werden durch W3C http://www.w3.org/TR/xmlschema-2/#built-in-datatypes spezifiziert. Beispielsweise gibt es Datentypen wie "xsd:string" (http://www.w3.org/TR/xmlschema-2/#string), die zur Darstellung von Zeichenfolgen verwendet werden.

Diese Datentypen sind an die Datentypen/Klassen verschiedener Programmiersprachen gebunden. Beispielsweise sind die W3C-Datentypen über JAXB 2.0 an Java(TM)-Datentypen gebunden. Dies bedeutet, dass ein xsd:string-Datentyp an einen java.lang.String-Datentyp gebunden ist. Auf ähnliche Weise gibt es andere Bindungen an LotusScript und JavaScript für NSF-Komponententypen.

Mit WSDL können Sie auch eigene, spezialisierte Datentypen definieren. Dies wird in den folgenden Beispielen dargestellt:

<types>

<xsd:schema targetNamespace="http://com.ibm.propertybroker.standardtypes">

<xsd:simpleType name="mailTo">

<xsd:restriction base="xsd:string"/>

</xsd:simpleType>

</xsd:schema>

</types>



Der Datentyp mailTo aus dem Beispiel wird gegenwärtig von der Mailkomponente in Lotus Notes verwendet. Sie können eine Aktion auslösen, um eine neue Mail anzuzeigen und mehrere Felder im Voraus auszufüllen, wenn Sie diesen Datentyp verwenden.

Hinweis Dieser Datentyp ist komplex und besitzt eine eigene Semantik und Syntax, die durch http://ftp.isi.edu/in-notes/rfc2368.txt definiert werden.

Integrierte Datentypen und spezialisierte Datentypen besitzen Vor- und Nachteile. Spezialisierte Datentypen können die Interoperabilität zwischen verschiedenen Komponenten komplexer und in manchen Fällen sogar unmöglich gestalten. Wenn Sie beispielsweise eine Komponente von einem Anbieter, der den Datentyp "mailTo'" bezeichnet, und eine weitere Komponente von einem anderen Anbieter, der ihn "rfc2368Type" nennt, können die Komponenten nicht miteinander verbunden werden, obwohl sie in Wirklichkeit dieselbe Semantik und Syntax verwenden. Ein weiteres Beispiel: Eine Komponente veröffentlicht den spezialisierten Datentyp "url", aber eine andere akzeptiert eine URL nur als "xsd:string".

Zur Gewährleistung der bestmöglichen Interoperabilität sollten Komponenten im Hinblick auf die Verwendung von Datentypen den kleinsten gemeinsamen Nenner verwenden. Anders ausgedrückt sollten Komponenten nur integrierte Datentypen verwenden, vorzugsweise nur "xsd:string". Das Problem bei der exklusiven Verwendung von "xsd:string" besteht allerdings darin, dass es hierbei möglich ist, Verbindungen zwischen allen Ausgabeeigenschaften und Aktionen zu definieren, auch dann, wenn die Aktionen eine bestimmte Eigenschaft nicht verarbeiten können.

Beispielsweise könnten Sie ohne den spezialisierten Datentyp "mailTo" die Komponente verbinden, die eine URL an die Aktion der Mailkomponente "create new mail" veröffentlicht. Das Ergebnis wäre allerdings nicht sinnvoll. Denn wenn Sie nur "xsd:string" verwenden, können die Assemblierwerkzeuge (Composite Application Editor und Portal Application Template Editor) nicht feststellen, welche Verbindungen tatsächlich gemeint sind. Daher kann es vorkommen, dass Aktionen mit Eigenschaften aufgerufen werden, die sie nicht verarbeiten können.

Die folgenden Richtlinien helfen Ihnen, die durch integrierte und spezialisierte Datentypen hervorgerufenen Probleme zu vermeiden:


Des Weiteren können Sie zwei Eigenschaften mit verschiedenen Datentypen veröffentlichen, eine von ihnen als "xsd:string" und die andere als spezialisierten Datentyp. Sie können außerdem jede Aktion zweimal definieren, einmal mit "xsd:string" und einmal mit einem spezialisierten Datentyp als Eingabedatentyp. Allerdings zeigen Ihre Werkzeuge weiterhin alle Eigenschaften und Aktionen als "xsd:string" an.*