DataGraph-Schema

Vom EJB Mediator erstelltes DataGraph-Schema

Das vom Mediator erstellte Schema für eine Abfrage enthält für jede Abfrageanweisung eine Eclass. Der Name der Eclass ist der Abstract Schema Name (ASN) der Enterprise JavaBeans (EJB). Die Eattributes der Eclass entsprechen den CMP-Feldern oder Ausdrücken, die von der Abfrageanweisung zurückgegeben werden.

Für statische DataObjects kann der Eclass-Name abweichen, sofern das Argument Map im Aufruf createMediator verwendet wird.

Für jede EJB-Beziehung, die in der FROM- oder XREL-Klausel angegeben ist, wird dem Schema eine Ereference hinzugefügt. EJB-Beziehungen können unidirektional oder bidirektional sein. Alle Ereferences werden jedoch als bidirektional definiert, da dies bei einer Aktualisierung für eine effiziente Navigation im DataGraph erforderlich ist. Bei einer unidirektionalen EJB-Beziehung wird ein Name für die Umkehrbeziehung generiert. Ein generierter Name hat das Format <ASName-Quelle><ASName-Ziel>. Wenn die ASNames beispielsweise EmpBean und DeptBean lauteten, und eine unidirektionale Beziehung dept ausgehend von EmpBean zu DeptBean besteht, ist der generierte Umkehrname DeptBeanEmpBean.

Wenn createMediator ohne das Argument ECLass verwendet wird, erstellt der Mediator ein DataGraph-Schema mit folgenden Kenndaten:
  • Die Eclass-Namen von DataObjects sind die entsprechenden EJB-ASNs (abstrakte Schemanamen).
  • Die Attributnamen und -typen von DataObjects sind die Erweiterungsnamen und -typen in den SELECT-Klauseln der Abfrage.
  • Die Referenznamen und -typen von DataObjects stammen aus den in den FROM-Klauseln referenzierten EJB-Beziehungen.

Außerdem wird ein Pseudo-DataObject mit dem Eclass-Namen DataGraphRoot erstellt, das eine Containment-Referenz auf alle DataObjects enthält. Die Referenz besteht aus mehreren Werten und verwendet den EJB-ASN.

DataObject root =  m.getGraph( parms );
root.getType().getName();   // gibt die Zeichenfolge "DataGraphRoot" zurück

List depts = (List) root.get("DeptBean");   
// Liste aller DeptBean-SDOs im DataGraph

List emps = (List) root.get("EmpBean");  
// Liste aller EmpBean-SDOs im DataGraph

DataGraph-Containment-Muster

Referenzen von SDOs (Service Data Objects) können als Containment-Referenzen definiert werden. Wenn dann ein SDO gelöscht wird, erstreckt sich diese Operation auf alle enthaltenen SDOs. Beim Serialisieren des DataGraph als XML-Dokument werden die enthaltenen SDO innerhalb des übergeordneten SDO verschachtelt. Nicht eingeschlossene Referenzen werden im XML-Dokument als Pfadausdrücke angegeben.

Das Containment muss im DataGraph-Schema definiert werden. Wenn der Mediator das Schema definiert, enthält das Ausgangs-SDO (DataGraphRoot) alle anderen SDOs. EJB-Beziehungen werden als nicht eingeschlossene SDO-Referenzen definiert.

Der Aufrufer kann das DataGraph-Schema mit drei Mustern definieren.
ROOT_CONTAINS_ALL
In diesem Muster gibt ein Pseudo-SDO, das das Stammelement darstellt. Es ist insofern ein Pseudo-SDO, als es keiner EJB entspricht. Es dient als Container für alle anderen SDOs. Wenn der Mediator das Schema für den Graphen erstellt, hat das Pseudostammelement den Klassennamen DataGraphRoot und enthält Referenzen, deren Namen den EJB-ASNs entsprechen. Wenn der Aufrufende ein statisches Schema verwendet, kann das Stammelement einen beliebigen Namen hzaben. Die Eclass des Stammelements wird an den createMediator-Aufruf übergeben.
ROOT_CONTAINS_SOME
Dieses Muster ist nur für statische Schemata gültig. Auch hier gibt ein Pseudo-SDO, das das Stammelement des Graphen darstellt. Andere SDOs muss entweder in der Ereference, die der in der Abfrageanweisung verwendeten EJB-Beziehung entspricht, oder im Pseudoelelement enthalten sein.
NO_DUMMY ROOT
Dieses Muster ist nur für statische Schemata gültig. Es gibt kein Pseudostammelement. Das Stamm-SDO entspricht der ersten Abfrageanweisung, die nur eine Instanz zurückgeben muss. Andere SDOs müssen in der Ereference enthalten sein, die der in der Abfrageanweisung verwendeten EJB-Beziehung entspricht.

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rejb_ejbmeddgs
Dateiname:rejb_ejbmeddgs.html