This topic applies only to the IBM Business Process Manager Advanced configuration.

Geschäftsobjekte

Ein Geschäftsobjekt (BO - Business Object) ist ein Behälter für Anwendungsdaten, wie zum Beispiel Daten für einen Kunden oder eine Rechnung. Durch Geschäftsobjekte werden Daten zwischen Komponenten ausgetauscht. Die zugrunde liegende Struktur eines Geschäftsobjekts ist eine XML-Schemadefinition (XSD).

SCA (Service Component Architecture - Servicekomponentenarchitektur) stellt das Framework für die Definition eines Anwendungsmoduls, der von ihm bereitgestellten Services, der von ihm verwendeten Services und der Zusammenstellung von Komponenten bereit, die die Geschäftslogik des Anwendungsmoduls zur Verfügung stellen. Geschäftsobjekte spielen in der Anwendung eine wichtige Rolle, denn sie definieren die Geschäftsdaten, mit denen die Service- und Komponentenverträge beschrieben werden, sowie die Geschäftsdaten, die von den Komponenten verarbeitet werden.

Im folgenden Diagramm, in dem ein SCA-Anwendungsmodul dargestellt ist, werden viele der Stellen erkennbar, an denen ein Entwickler mit Geschäftsobjekten arbeitet.
Abbildung 1. Geschäftsobjekte stellen die Daten dar, die in einer Anwendung zwischen Services fließen.
Abbildung von nativen Daten, in in einem Servicemodul eintreffen und vor der Verarbeitung durch die Servicekomponente in ein Geschäftsobjekt transformiert werden
Anmerkung: In diesem Thema ist beschrieben, wie Geschäftsobjekte von SCA-Anwendungsmodulen verwendet werden. Falls Sie Java™-Schnittstellen einsetzen, können die SCA-Anwendungsmodule auch Java-Objekte verarbeiten.

Ein Geschäftsobjekt enthält Felder, die über einen Namen, einen Typ (Skalartyp oder anderes Geschäftsobjekt), einen Standardwert (für Skalartypen) und eine Kardinalität verfügen. Geschäftsobjekte können andere Geschäftsobjekte durch Überordnungs-/Unterordnungsbeziehungen erweitern (also eine Obergruppe von Feldern definieren). Ein Geschäftsobjekt kann jedoch immer nur Daten von einem einzigen übergeordneten Element übernehmen. Diese Objekte können auch in Kombination miteinander verwendet werden, um eine Task auszuführen.

Geschäftsobjektfelder

Im Wesentlichen sind Geschäftsobjektfelder die Mechanismen, durch die Sie definieren, welche Informationen in einem Geschäftsobjekt gespeichert werden sollen und wie auf diese Informationen zugegriffen werden soll. Geschäftsobjektfelder dienen zur Definition des Inhalts eines Geschäftsobjekts. Jedes Feld hat einen Namen, einen Typ, eine Kardinalität und weitere optionale Eigenschaften. Nachdem Sie ein Geschäftsobjekt erstellt haben, können Sie dessen Felder mit dem Geschäftsobjekteditor erstellen oder ändern. Ein Geschäftsobjekt ist lediglich ein Container für die Daten, die in seinen Feldern angegeben sind. Ein leeres Geschäftsobjekt ohne Felder ist nutzlos, da es keine Möglichkeit besitzt, tatsächlich Daten aufzunehmen.

Wenn Sie jedoch ein Geschäftsobjekt erstellen und ein Feld mit dem Namen "customerName" und dem Typ "string" hinzufügen, können Sie das Geschäftsobjekt zu einem Zweck verwenden. Mit jedem neu hinzugefügten Feld erhöht sich die Zweckmäßigkeit des Geschäftsobjekts. Wenn Sie zum Beispiel ein Feld customerID" vom Typ "int" und ein Feld customerAddress vom Typ "string" hinzufügen, haben Sie ein Geschäftsobjekt mit nützlichen Informationen, das Sie in beliebiger Weise verwenden können. Sie können es zum Beispiel an einen Web-Service übergeben, um eine Bonitätsprüfung für einen Kunden auszuführen. Sie können Ihrem Geschäftsobjekt sogar ein Element "salesContact" vom Typ "Employee", d. h. ein anderes Geschäftsobjekt, hinzufügen. Ein Geschäftsobjekt kann auch andere Geschäftsobjekte als Daten enthalten, sodass Geschäftsobjekte bei entsprechendem Bedarf sehr komplexe Datencontainer darstellen können.

Anmerkung: Wenn Sie ein Geschäftsobjekt erstellen, können Sie festlegen, ob ein Feld als Array (Feldgruppe) angelegt werden soll. Sie stellen später möglicherweise fest, dass für das Feld der Typ java.lang.List für dasselbe Geschäftsobjekt definiert ist. Dabei hat sich jedoch der Typ seit der Erstellung des Geschäftsobjekts tatsächlich nicht geändert, sondern Felder mit dem ausgewählten Arrayfenster stellen lediglich "Listen" dar. Indem Sie ein Feld als Array auswählen, geben Sie an, dass es möglicherweise mehrere Elemente für die Entität gibt, die Sie definieren. Betrachten Sie zum Beispiel ein Feld in CustomerBO mit dem Namen "previousOrders" vom Typ "OrderBO". Sie würden das Arrayfenster auswählen, um anzugeben, dass ein Kunde eine beliebige Anzahl vorheriger Aufträge (Orders) haben kann, sodass dieses Feld zur Aufnahme einer Liste von Elementen, und nicht nur eines Elements, vorbereitet werden soll. Im Unterschied dazu würde ein Feld wie "name" Name nicht als Array definiert, da ein Kunde (Customer) nicht mehr als einen Namen benötigt. Das Festlegen eines Arrays ist eine einfache Methode, durch die Geschäftsobjektfelder, die nur einen Wert speichern, von Feldern, die X Werte speichern, unterschieden werden können.

Programmiermodell für Geschäftsobjekte

Das Programmiermodell für Geschäftsobjekte besteht aus einer Reihe von Java-Schnittstellen, die Folgendes darstellen:
  • Geschäftsobjektdefinition und Instanzdaten
  • Gruppe von Services, die die Operationen für die Geschäftsobjekte unterstützen

Definitionen von Geschäftsobjekttypen werden durch die Schnittstellen 'commonj.sdo.Type' und 'commonj.sdo.Property' dargestellt. Das Programmiermodell für Geschäftsobjekte bietet eine Reihe von Regeln für die Zuordnung von XML-Schemainformationen für komplexe Typen zur Typschnittstelle und für die Zuordnung der einzelnen Elemente in der Definition des komplexen Typs zur Eigenschaftenschnittstelle.

Geschäftsobjektinstanzen werden durch die Schnittstelle 'commonj.sdo.DataObject' dargestellt. Das Programmiermodell für Geschäftsobjekte ist nicht typisiert. Dies bedeutet, dass dieselbe Schnittstelle 'commonj.sdo.DataObject' für die Darstellung verschiedener Geschäftsobjektdefinitionen (z. B. 'Customer' und 'Order') verwendet werden kann. Die Definition, welche Eigenschaften in jedem Geschäftsobjekt festgelegt und aus diesem abgerufen werden können, werden durch Typinformationen bestimmt, die in dem jedem Geschäftsobjekt zugeordneten XML-Schema definiert sind.

Das Verhalten des Programmiermodells für Geschäftsobjekte basiert auf der Spezifikation von 'Service Data Object 2.1'. Zusätzliche Informationen enthalten die Spezifikation, die Lernprogramme und Javadocs für 'SDO 2.1 for Java', die Sie im Internet unter der Adresse http://www.oasis-opencsa.org/ finden.

Geschäftsobjektservices unterstützen viele Lebenszyklusoperationen (z. B. Erstellung, Gleichheit, Parsing und Serialisierung) für Geschäftsobjekte.

Spezifikationen zum Programmiermodell für Geschäftsobjekte finden Sie in der Dokumentation zu generierten APIs und SPIs für Geschäftsobjekt.

Bindungen, Datenbindungen und Datenhandler

Wie in Abbildung 1 gezeigt, werden Geschäftsdaten, mit denen von SCA-Anwendungsmodulen bereitgestellte Services aufgerufen werden, in Geschäftsobjekte transformiert, damit die SCA-Komponenten die Geschäftsdaten bearbeiten können. Die von SCA-Komponenten bearbeiteten Geschäftsobjekte werden analog in das Datenformat konvertiert, das von den externen Services benötigt wird.

In manchen Fällen (beispielsweise bei der Web-Service-Bindung) transformiert die Bindung, die zum Exportieren und Importieren von Services verwendet wird, die Daten automatisch in das geeignete Format. In anderen Fällen (beispielsweise bei der JMS-Bindung) können Entwickler eine Datenbindung oder einen Datenhandler bereitstellen, von der/dem nicht native Format in Geschäftsobjekte transformiert werden, die durch die Datenobjektschnittstelle (DataObject) dargestellt werden.

Weitere Informationen zum Entwickeln von Datenbindungen und Datenhandlern enthalten die Themen Datenhandler und Datenbindings.