Bei einer regelbasierten Technologie umfasst die regelbasierte Verarbeitung drei Basisbereiche: das Vokabular, aus dem die Sprache besteht, die Grammatik für die Verwendung des Vokabulars in Anweisungen und die Steuerkomponente (oder Engine) für die Regelverarbeitung. Dieser Artikel beschreibt das Vokabular und die Grammatik. De Steuerkomponente für Regelverarbeitung ist in allgemeinen Komponenten wiederverwendbar.
Das Vokabular setzt sich aus den Operatoren, variablen Schlüsselwörtern (oder Operanden) und den Steuerungsflussanweisungen zusammen. Die gewählte Sprache ist Java Message Service (JMS 1.1), insbesondere die Syntax für den Nachrichtenselektor. Der Nachrichtenselektor ist eine Zeichenfolge, deren Syntax auf einem Teil des SQL92-Bedingungsausdrucks basiert. In dieser Anwendung drückt sie eine Klassifizierungsregel aus. Die allgemeine Syntax für Anweisungen ist im Folgenden beschrieben:
Ausdruck: Steht für eine gültige SQL-Abfrage mit einer Bedingungsklausel, die Prädikate enthält, z. B.
serverhost like ‘%ibm.com’
In diesem Ausdruck ist serverhost der Operand, like der Operator und '%ibm.com' das Literal bzw. der Wert, das bzw. den serverhost haben muss, damit die Auswertung des Ausdrucks true ergibt. Das Ergebnis eines Ausdrucks ist eine Aktion, die ausgeführt wird. Aus Grammatikperspektive sind diese Aktionen Literale, die von einem Policy-Provider bereitgestellt werden. Es werden beide Typen von Policys unterstützt - Routing-Policys und Service-Policys. Deshalb werden die Aktionen, die eingeleitet werden, vom Policy-Provider bestimmt. Die Aktionen für Routing-Policys sind permit, reject, redirect und permitsticky. Jede dieser Aktionen hat ein bestimmtes Ziel, den Empfänger der Aktion. Wenn die Auswertung eines Ausdrucks die Aktion permit als Ergebnis hat, ist das Ziel dieser Aktion die Anwendung, für die das Routing zugelassen wird. Für Service-Policys wird das Ziel in der Aktion gekapselt, und die Aktion ist eine Transaktionsklasse.
Eine vollständige Anweisung setzt sich aus dem Regelausdruck zusammen. Die auszuführende Aktion wird je nach Eingabequelle unterschiedlich dargestellt. In der Administrationskonsole sind die Aktionen in Formulare und Felder getrennt und ohne großen Aufwand auswählbar. Wenn Sie Arbeitsklassen mit Scripts verwalten kann die vollständige Anweisung wie folgt aussehen:
Ausdruck<Trennzeichen>Aktion Beispiel: clienthost='localhost' and serverhost like '%.ibm.com'?permit?DefaultApplication.ear
Aus Implementierungsperspektive werden Arbeitsklassen, d. h. XML-Dokumente, jedoch verwendet, um den Regelausdruck, zugeordnete Aktionen und andere Implementierungsartefakte zu erfassen. Deshalb ist eine Arbeitsklasse ein XML-Dokument, das null oder mehr matchRules-Elemente und ein oder mehrere workClassModules-Elemente enthält. Weitere Informationen finden Sie im Artikel Routing- und Service-Policys für Arbeitsklassen.
WebSphere Extended Deployment unterstützt die folgenden Operatoren in Regelausdrücken. Im Allgemeinen ist der wahre Datentyp eines Operanden vermutlich nicht bekannt. Sie bedienen sich jedoch der HTTP-Methode und behandeln jeden Operanden so, als hätte er den Datentyp String, und verwenden für die Datenauswertung den Operator als Indikator für den echten Datentyp. Ein Beispiel für einen Operator, der prüft, ob ein Operand einen Nullwert hat, ist IS NULL.
Related reference
Routing-Policys für Arbeitsklassen