WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Planung für benutzerdefinierte Nachrichtenverarbeitungsknoten

Planen Sie die Vorgehensweise beim Schreiben eines Nachrichtenverarbeitungs- oder Sendeknoten sowie die Navigation der Nachricht innerhalb des Knotens.

Design-Faktoren

Vor der Entwicklung und Implementierung eines Nachrichtenverarbeitungsknotens müssen Sie folgende Aspekte berücksichtigen:

Navigation in Syntaxelementen

Der Broker stellt Funktionen zur Verfügung, durch deren Aufruf Ihr Knoten die Baumstruktur einer Nachricht durchlaufen kann; dazu gehören Funktionen und Methoden, die die Navigation vom aktuellen Element zu anderen Elementen unterstützen:
  • übergeordneten Element
  • ersten übergeordneten Element
  • letzten untergeordneten Element
  • vorherigen (oder linken) gleichgeordneten Element
  • nächsten (oder rechten) gleichgeordneten Element
Diese Beziehungen werden im folgenden Diagramm dargestellt.
Im Diagramm wird ein Syntaxelement gezeigt, das mit übergeordneten, untergeordneten und gleichgeordneten Elementen verbunden ist.

Andere Funktionen und Methoden unterstützen die Bearbeitung der Elemente selbst; dazu gehören Funktionen und Methoden, mit denen Elemente erstellt, deren Werte gesetzt oder abgefragt, neue Elemente in die Baumstruktur eingefügt bzw. Elemente aus der Baumstruktur entfernt werden können. Unter Dienstprogrammfunktionen für C-Knoten und C-Parser-Dienstprogrammfunktionen bzw. in den Javadoc-Informationen finden Sie nähere Informationen.

Das folgende Diagramm zeigt einen einfachen Syntaxelementstrukturbaum, der die Abhängigkeiten zwischen den einzelnen Elementen verdeutlicht.
Im Diagramm wird eine Syntaxelement-Baumstruktur mit übergeordneten und untergeordneten Elementen gezeigt.

Das Element A ist das Stammelement der Baumstruktur. Ihm sind daher keine Elemente übergeordnet. Sein erstes untergeordnetes Element ist B. Da A keine weiteren untergeordneten Elemente hat, ist Element B gleichzeitig auch das letzte untergeordnete Element von A.

Element B verfügt über drei untergeordnete Elemente, nämlich C, D und E. Element C ist das erste untergeordnete Element von B; Element E ist das letzte untergeordnete Element von B.

Element C hat zwei gleichgeordnete Elemente, nämlich D und E. Das nächste gleichgeordnete Element von C ist das Element D. Das nächste gleichgeordnete Element von D ist das Element E, das vorherige gleichgeordnete Element von E ist D, und das vorherige gleichgeordnete Element von D ist C.

Das folgende Diagramm zeigt die erste Generation der Syntaxelemente einer typischen WebSphere MQ-Nachricht, die von einem Broker empfangen wird. (Nicht alle Nachrichten verfügen über einen MQRFH2-Header.)
Im Diagramm wird ein Stammelement mit typischen untergeordneten WebSphere MQ-Elementen gezeigt.

Diese Elemente der ersten Generation werden oft als Ordner bezeichnet, in denen die Syntaxelemente, die die Nachrichtenheader und die Nutzdaten darstellen, gespeichert werden. In diesem Beispiel ist das erste untergeordnete Element des Stammelements der Ordner 'Properties' (Eigenschaften). Das nächste gleichgeordnete Element von Eigenschaften ist der Ordner für den MQMD-Header. Das nächste gleichgeordnete Element ist der Ordner für den MQRFH2-Header. Der letzte Ordner ist für die Nachrichteninhalte zuständig; in unserem Beispiel handelt es sich um eine XML-Nachricht.

In der vorigen Abbildung ist auch ein MQMD- und ein MQRFH2-Header enthalten. Alle Nachrichten, die von einem Verarbeitungsknoten empfangen werden, der WebSphere MQ verarbeitet, enthalten einen MQMD-Header; außerdem können mehrere andere Header aufgenommen werden.

Navigation in einer XML-Nachricht

Beachten Sie folgende XML-Nachricht:
  <Business>
    <Product type='messaging'></Product>
    <Company>
      <Title>IBM</Title>
      <Location>Hursley</Location>
      <Department>WebSphere MQ</Department>
    </Company>
  </Business>
In diesem Beispiel gibt es die folgenden Elementtypen:
Namenselement
Business, Product, Company, Title, Location, Department
Wertelement
IBM®, Hursley, WebSphere MQ
Name/Wert-Element
type='messaging'

Die Navigation in einer Nachricht kann über die Dienstprogrammfunktionen und Methoden des Knotens oder die ähnlichen Dienstprogrammfunktionen des Parsers erfolgen. Bei der gezeigten XML-Nachricht muss zunächst die Funktion cniRootElement aufgerufen werden, wobei der Knoten die Nachricht als Eingabe für diese Funktion erhalten hat. In Java™ muss die Funktion getRootElement für das ankommende MbMessage-Objekt aufgerufen werden. Daraufhin wird ein MbElement zurückgegeben, das das Stammelement (Root) des Elements darstellt. Dieses Stammelement darf nicht im benutzerdefinierten Knoten geändert werden.

In der Abbildung mit der ersten Generation der Syntaxelemente einer typischen Nachricht, die vom Broker empfangen wird, wird deutlich, dass das letzte untergeordnete Element des Stammelements der Ordner mit dem XML-Syntaxanalysebaum ist. In einem mit C erstellten Knoten erfolgt die Navigation in diesem Ordner über den Aufruf von cniLastChild (wobei die Ausgabe des vorherigen Aufrufs die Eingabe für diese Funktion darstellt), in einem mit Java erstellten Knoten über den Aufruf der Methode getLastChild für das Stammelement.

In der höchsten Ebene gibt es nur ein Element (<Business>), daher erfolgt beim Aufruf von cniFirstChild (in C) oder getFirstChild (in Java) eine Navigation zu dieser Stelle im Strukturbaum. Sie können den Typ des Elements (in diesem Fall ein Namenselement) mit cniElementType oder getType abrufen, und anschließend mit der Funktion cniElementName oder getName den Namen selbst (Business).

Das Element <Business> hat zwei untergeordnete Elemente, <Product> und <Company>. Navigieren Sie mit cniFirstChild oder getFirstChild, gefolgt von cniNextSibling bzw. getNextSibling zu den einzelnen untergeordneten Elementen.

Das Element <Product> hat ein Attribut (type='messaging'), bei dem es sich um ein untergeordnetes Element handelt. Navigieren Sie auch zu diesem Element mithilfe der Funktionen cniFirstChild oder getFirstChild, und rufen Sie anschließend mit cniElementType oder getType den Elementtyp ab (es handelt sich um ein Name/Wert-Element). Mit cniElementName oder getName können Sie den Namen abrufen. Das 'type'-Attribut des Werts wird mit der Funktion cniElementValueType abgerufen, gefolgt von der entsprechenden Funktion in der Gruppe cniElementValue; in diesem Beispiel handelt es sich um cniElementCharacterValue. In Java wird die Methode getValue verwendet, die ein Java-Objekt zurückgibt, das den Elementwert darstellt.

Das Element <Company> hat drei untergeordnete Elemente und jedes dieser drei Elemente hat wiederum ein untergeordnetes Element, bei dem es sich um ein Wertelement handelt (IBM, Hursley und WebSphere MQ). Sie können zu diesen Elementen mit den oben beschriebenen Funktionen navigieren und auf ihre Werte zugreifen.

Es stehen weitere Funktionen zur Verfügung, mit denen die Elementbaumstruktur ganz oder teilweise kopiert werden kann. Diese Kopie kann anschließend geändert werden, indem Elemente hinzugefügt oder entfernt und ihre Namen und Werte geändert werden, um so eine Ausgabenachricht zu erstellen. Weitere Informationen finden Sie unter Dienstprogrammfunktionen für C-Knoten und C-Parser-Dienstprogrammfunktionen oder in der Java-Anwendungsprogrammierschnittstelle für benutzerdefinierte Knoten.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:21:58


KonzeptthemaKonzeptthema | Version 8.0.0.5 | as01395_