Übersicht: BOM und XOM
Sie können das XOM aus verschiedenen Datenquellen erstellen.
Das Ausführungsobjektmodell ist das Modell, auf dessen Basis Sie Regeln ausführen. Es referenziert die Anwendungsobjekte und -daten und ist die Basisimplementierung des Geschäftsobjektmodells (BOM, Business Object Model). Regelprojekte referenzieren das XOM.
Über das XOM kann die Regelengine auf Anwendungsobjekte und Methoden zugreifen, bei denen es sich um Java™ -Objekte, XML-Daten oder Daten aus anderen Quellen handeln kann. Zur Laufzeit werden Regeln, die anhand des BOM geschrieben wurden, anhand des XOM ausgeführt.

Jedes BOM-Element (Geschäftselement) muss ein entsprechendes XOM-Element (Ausführungselement) haben. Die Entsprechung zwischen Ausführungselementen und Geschäftselementen muss keine 1:1-Beziehung sein. Wenn ein Geschäftselement aus einem Ausführungselement stammt, müssen Sie keine explizite Zuordnung angeben. Wenn ein Geschäftselement nicht aus einem Ausführungselement stammt, müssen Sie eine BOM-XOM-Zuordnung angeben.
Es sind verschiedene interne Regeln für die implizite BOM-XOM-Zuordnung vorhanden, wenn Sie ein BOM aus einem XOM generieren. Eine BOM-Klasse wird implizit einer XOM-Klasse desselben Namens zugeordnet.
BOM für ein Java-Modell entwerfen
Wenn Ihr Datenmodell in Java vorliegt, dann können Sie ein BOM direkt aus diesem Java Execution Object Model (XOM) generieren. Weitere Informationen finden Sie unter Zuordnung eines aus einem Java-XOM erstellten BOM. Sie können XOM-Annotationen verwenden, um die BOM-Generierung zu konfigurieren. Weitere Informationen finden Sie unter XOM-Annotationen. Wenn Sie das BOM mit Geschäftsklassen und -methoden erweitern möchten, können Sie diese Geschäftselemente anschließend XOM-Elementen zuordnen, indem Sie die BOM-XOM-Zuordnung im BOM-Editor verwenden. Sie haben zwei Möglichkeiten, die Zuordnung von BOM zu XOM festzulegen: Extender-Mapping oder ARL-Mapping, siehe Regelsprache und Extender-Mapping. Geschäftsbenutzer können Geschäftsregeln dann verfassen, ohne sich um die zugrunde liegenden Datentypen und die zugrunde liegende Plattform kümmern zu müssen.
Wenn Ihre Anwendung zur Implementierungszeit eine Java-oder Webanwendung ist, wird das Java-XOM in die Anwendung gepackt, und Sie müssen keine bestimmten Implementierungsschritte für das XOM ausführen. Sie packen die Regeln und die BOM-XOM-Zuordnungsdefinition in ein Regelsatzarchiv, das dann Ihrer aufrufenden Anwendung über die Regellaufzeit Rule-Execution-Serverzur Verfügung steht.

Wenn Sie keine Java-oder Web-aufrufende Anwendung haben, weil Sie die Implementierung auf einem Testserver für Tests und Simulationen durchführen oder Ihre Regeln als gehosteten transparenten Entscheidungsservice (Hosted Transparent Decision Service, HTDS) bereitstellen möchten, müssen Sie das Java-XOM in der Rule-Execution-Server -Datenbank implementieren.
Wenn Sie die Regelausführung testen und simulieren, greift Decision Runner zur Ausführung auf den Regelausführungsserver zu, und der Regelausführungsserver ruft das XOM aus der Datenbank ab.
Wenn Sie einen HTDS generieren, ruft Rule-Execution-Server das XOM auf dieselbe Weise aus der Datenbank ab (siehe HTDS-WSDL-Datei herunterladen).

Laufzeit XOM Überlegungen
Wenn Sie ein oder mehrere Java-XOMs mit Ihrem Entscheidungsdienst verwenden und planen, die Webanwendung "Hosted Transparent Decision Service" (HTDS) zu nutzen, müssen Sie Ihre XOMs sorgfältig entwerfen. Ihre XOMs werden im gesamten HTDS verwendet und unterliegen der Introspektion und Serialisierung/Deserialisierung:
- Die Serialisierung von Java zu JSON oder XML findet statt, wenn Sie REST-Beispielanfragen generieren oder SOAP- oder REST-Antworten bereitstellen.
- Die Deserialisierung von JSON oder XML nach Java findet statt, wenn Sie SOAP- oder REST-Anfragen verarbeiten.
- Die Introspektion des Modells erfolgt bei der Erstellung eines API-Deskriptors ( OpenAPI, WADL oder WSDL).
Daher sollten Sie beim Entwurf Ihrer XOMs die Standard-Serialisierungsanforderungen beachten:
- Stellen Sie sicher, dass Ihre Java-Klassen von den Serialisierungs-Engines instanziiert werden können. Definieren Sie parameterlose Konstruktoren für Java-Klassen sowie Getter und Setter für alle erforderlichen Felder, oder verwenden Sie Anmerkungen, um die Serialisierungs-Engines bei der Erstellung von Objekten aus Ihren Java-Klassen anzuleiten.
- Vermeiden Sie Zyklen in Ihrem Modell.
- (Empfohlen) Verwenden Sie Anmerkungen, um Felder und Eigenschaften zu ignorieren, die für Ihren Entscheidungsdienst nicht nützlich sind.
- (Optional) Kommentieren Sie Ihre Java-Klassen und/oder -Methoden mit Jackson-Annotationen für JSON oder JAXB-Annotationen für XML, um die Serialisierung und Deserialisierung von Entscheidungsdienstparametern und die Generierung von API-Deskriptoren zu beeinflussen.
BOM für ein XOM-Modell entwerfen
Wenn Ihr Datenmodell in XML vorliegt, können Sie eine Stückliste direkt aus diesem Dynamic XOM generieren, siehe Übersicht: Dynamisches Ausführungsobjektmodell (XOM) und Eingebaute einfache Typen. Wenn Sie das BOM mit Geschäftsklassen und -methoden erweitern möchten, können Sie diese Geschäftselemente anschließend XOM-Elementen zuordnen, indem Sie die BOM-XOM-Zuordnung im BOM-Editor verwenden. Sie spezifizieren dieses Mapping mit ARL-Mapping, siehe Regelsprache und Extender-Mapping. Geschäftsbenutzer können Geschäftsregeln dann verfassen, ohne sich um die zugrunde liegenden Datentypen und die zugrunde liegende Plattform kümmern zu müssen.
Zur Implementierungszeit werden die dynamischen XOM-und BOM-XOM-Zuordnungsdateien mit den Regeln im Regelsatzarchiv gepackt, die dann Ihrer aufrufenden Anwendung über die Regellaufzeit, Rule-Execution-Server, zur Verfügung stehen.
