Dieser Abschnitt gibt eine Einführung in Konzepte, mit denen Sie sich vor der Entwicklung eines benutzerdefinierten Parsers auseinandersetzen sollten. Wenn Sie soweit sind, erstellen Sie den Parser entsprechend den Anweisungen in Parser in C erstellen.
Vor der Erstellung eines benutzerdefinierten Parsers sollten Sie erst genau überlegen, wofür Sie diesen Parser benötigen. Ein Großteil der Tasks kann mit den in WebSphere Message Broker verfügbaren Funktionen ausgeführt werden, daher ist für die von Ihnen ins Auge gefasste Task unter Umständen gar kein benutzerdefinierter Parser notwendig.
Die meisten Tasks, die anliegen, können mit den in WebSphere Message Broker verfügbaren Funktionen ausgeführt werden. Bevor Sie einen eigenen Parser erstellen, sollten Sie daher sicherstellen, dass die Task nicht mit einer der integrierten Funktionen von WebSphere Message Broker erfolgen kann. Wenn keiner der in WebSphere Message Broker verfügbaren Parser Ihren Anforderungen entspricht, können Sie Ihren eigenen Parser für die syntaktische Analyse kundenspezifischer oder generischer kommerzieller Nachrichtenformate definieren.
Ausführliche Informationen zu den Nachrichtendomänen, in denen der WebSphere Message Broker-Parser Eingabenachrichten annehmen kann, und zu den Nachrichtenheadern, die dieser Parser verarbeiten kann, finden Sie unter Parser.
WebSphere Message Broker unterstützt keine Nachrichten mit mehrere Teilen und mehreren Formaten. Bei einer MRM-Nachricht, die aus mehreren Teilen besteht, müssen alle Teile dasselbe Format haben.
WebSphere Message Broker unterstützt die teilweise syntaktische Analyse; der Parser ist also in der Lage, nur die relevanten Felder in einer Nachricht syntaktisch zu analysieren. Damit können Systemressourcen gespart werden.
WebSphere Message Broker unterstützt die so genannte teilweise Syntaxanalyse. Wenn eine einzelne Nachricht Hunderte oder gar Tausende Felder enthält, sind für die Syntaxanalyse viel Speicherplatz und Prozessorressourcen notwendig. Da ein einzelner Nachrichtenfluss vielleicht nur auf einige wenige oder keines dieser Felder verweist, ist eine Syntaxanalyse der gesamten Nachricht überflüssig. Daher ist es mit WebSphere Message Broker möglich, Nachrichten nach Bedarf syntaktisch zu analysieren. (Dies hindert einen Parser nicht daran, die gesamte Nachricht auf einmal syntaktisch zu analysieren, und manche Parser sind so definiert, dass sie dies auch tun.)
Jedes Syntaxelement ist eine logische Nachricht, bei der zwei Bits angeben, ob alle Elemente auf jeder Seite des Elements sowie alle untergeordneten Elemente syntaktisch analysiert wurden. Die Syntaxanalyse erfolgt in der Regel von unten nach oben und von links nach rechts. Wenn ein Parser die Syntaxanalyse für die gleichgeordneten Elemente eines bestimmten Elements, das vor dem gegebenen Element und dem ersten untergeordneten Element kommt, beendet hat, setzt er das erste Abschlussbit auf 1. Wenn der Zeiger auf das nächste gleichgeordnete Element sowie der Zeiger auf dessen letztes untergeordnetes Element abgeschlossen ist, wird das andere Abschlussbit auf 1 gesetzt.
Bei der teilweisen Syntaxanalyse wartet der Broker, bis auf einen Teil der Nachricht verwiesen wird, und ruft dann den Parser für eine Syntaxanalyse dieses Teils auf. Nachrichtenverarbeitungsknoten in WebSphere Message Broker verweisen unter Verwendung hierarchischer Namen auf die Felder innerhalb einer Nachricht. Der Name beginnt mit dem Stammelement der Nachricht und durchläuft dann die Nachrichtenbaumstruktur bis hin zu dem betreffenden Element. Wird ein Element gefunden, dessen Abschlussbit nicht gesetzt ist, und soll die Baumstruktur weiter durchlaufen werden, dann wird der entsprechende Parsereinstiegspunkt aufgerufen, damit dieser Nachrichtenteil syntaktisch analysiert wird. Der entsprechende Nachrichtenteil wird syntaktisch analysiert, die entsprechenden Elemente werden der logischen Nachrichtenbaumstruktur hinzugefügt und das fragliche Element als abgeschlossen gekennzeichnet.
Wenn nicht der gesamte Bitstrom syntaktisch analysiert werden muss, können Sie die teilweise Syntaxanalyse verwenden. Bei dieser teilweisen Syntaxanalyse wird ein Parser rekursiv aufgerufen, bis das angeforderte Element zurückgegeben wird oder bis die Nachrichtenbaumstruktur als vollständig gekennzeichnet ist und es feststeht, dass das Element nicht vorhanden ist.
Ob Sie eine vollständige oder teilweise Syntaxanalyse ausführen, hängt vor allem davon ab, wie die Nachricht wohl in WebSphere Message Broker verarbeitet wird. Wenn während der Verarbeitung in WebSphere Message Broker auf die meisten Feldelemente der Nachricht ein Zugriff erfolgt, wird sich eine vollständige Snytaxanalyse bei jedem Zugriff als effizient erweisen. Dies trifft vor allem bei kleineren Nachrichten zu.
Wenn während der Verarbeitung in WebSphere Message Broker auf die meisten Felder wahrscheinlich kein Zugriff erfolgt, ist beim Zugriff auf ein bestimmtes Feld eine teilweise Syntaxanalyse sinnvoller. Dies trifft vor allem dann zu, wenn die Nachrichtenlänge zunimmt.