Das Konzept der geschachtelten dynamischen Aktionen für kooperative Anwendungen wurde in diesem Kapitel als Integrationskonzept aus den beiden zugrundeliegenden Konzepten der geschachtelten dynamischen Aktionen und der dynamischen Aktionen für kooperative Anwendungen entwickelt. Ebenso basiert auch das kooperative Sperrverfahren zur Realisierung des Integrationskonzepts auf dem geschachtelten Sperrverfahren und dem flachen kooperativen Sperrverfahren. Das Integrationskonzept und das geschachtelte Sperrverfahren wurden beide mit dem Ziel entwickelt, neben der geleisteten Integration von Auftrags- und Kooperationsprinzip auch mit den zugrundeliegenden Konzepten und Sperrverfahren verträglich zu sein. Dieser Aspekt wird in diesem Abschnitt untersucht. Dazu werden die Eigenschaften des Integrationskonzepts und der beiden zugrundeliegenden Konzepte verglichen und darauf aufbauend wird die Verträglichkeit des kooperativen Sperrverfahrens gezeigt, indem angegeben wird, wie das Verhalten der beiden zugrundeliegenden Sperrverfahren simuliert werden kann. Im anschließenden Kapitel 4 wird die hier dargelegte Verträglichkeit formal durch Einbettung der geschachtelten dynamischen Aktionen für kooperative Anwendungen in das in [Mock 1994] entwickelte formale Modell für dynamische Aktionen nachgewiesen.
Die dynamischen Aktionen für kooperative Anwendungen sind dem Integrationskonzept sehr ähnlich, allerdings besteht ein zentraler Unterschied: Die Schachtelungsstruktur der dynamischen Aktionen fehlt, da das Auftragsprinzip nicht realisiert werden soll. Die Strukturierung der Kooperationspartner in Kooperationsgruppen ist in beiden Konzepten vorhanden.
Aufgrund der fehlenden Schachtelungsstruktur ist auch der Mechanismus der Objektkontrolle nicht vorhanden, dessen Hauptaufgabe ist, Ergebnisse von Auftragnehmern zu verbergen. Die Erweiterung der Objektkontrolle auf Kooperationsgruppen hingegen würde auch bei flachen dynamischen Aktionen die Kooperation vor Unterbrechungen von außerhalb der Kooperationsgruppe schützen. Diese Möglichkeit des Unterbrechungsschutzes fehlt im Konzept der dynamischen Aktionen für kooperative Anwendungen.
Beide Konzepte besitzen als Konsistenzkriterium die dynamische kooperative Serialisierbarkeit und setzen daher auch das gleiche dreiphasige Verhalten der dynamischen Aktionen voraus. Aufgrund des gleichen Serialisierbarkeitskriteriums ist in beiden Konzepten für die einzelnen dynamischen Aktionen die Menge der zugreifbaren Objekte in den einzelnen Phasen gleich, und Kooperation ist im gleichen Umfang möglich.
Im Integrationskonzept gibt es also zusätzlich zum Konzept der dynamischen Aktionen für kooperative Anwendungen drei weitere Eigenschaften: eine Schachtelungsstruktur der dynamischen Aktionen, die Mechanismen der Objektkontrolle für ,,normale`` dynamische Aktionen und die Objektkontrolle für Kooperationsgruppen. Dabei ist die Objektkontrolle für ,,normale`` dynamische Aktionen nur gemeinsam mit der Schachtelung sinnvoll, während die Objektkontrolle für Kooperationsgruppen auch unabhängig von der Schachtelung eingesetzt werden kann.
Ein Vergleich des kooperativen Sperrverfahrens und des flachen kooperativen Sperrverfahrens zeigt, daß das kooperative Sperrverfahren dem flachen kooperativen Sperrverfahren entspricht und einige weitere Mechanismen für die Durchsetzung der zusätzlichen Eigenschaften des Integrationskonzepts aufweist. Dies sind die Möglichkeit, Sohnaktionen zu erzeugen, die zwei Ebenen der Sperren, Vergaberegeln, die die Schachtelung berücksichtigen, und die Möglichkeit, kooperative Sperren auch für Kooperationsgruppen zu erwerben. Das flache kooperative Sperrverfahren läßt sich im kooperativen Sperrverfahren simulieren, indem genau diese Mechanismen nicht oder nur nach festen Regeln benutzt werden. Im einzelnen müssen sich für eine Simulation alle dynamischen Aktionen zu folgenden Einschränkungen konform verhalten:
Da es dadurch keine Vor- oder Nachfahren geben kann, die Sperren halten könnten, vereinfachen sich die Regeln des kooperativen Sperrverfahrens zur Sperrenvergabe derart, daß die Regeln zur Vergabe der kooperativen Sperren genau denen zur Vergabe von Sperren im flachen kooperativen Sperrverfahren entsprechen.
Statt im flachen kooperativen Sperrverfahren eine Sperre anzufordern, muß in der Simulation die dynamische Aktion zuerst eine kooperative und direkt danach eine Benutzungsperre anfordern. Der Freigabe einer Sperre entspricht die aufeinanderfolgende Freigabe von Benutzungssperre und kooperativer Sperre.
Die Verträglichkeit der Konzepte der geschachtelten dynamischen Aktionen und der dynamischen Aktionen für kooperative Anwendungen ist schwieriger aufzuzeigen, da diese auf unterschiedlichen Konsistenzbegriffen aufbauen. Das Integrationskonzept basiert auf der dynamischen kooperativen Serialisierbarkeit, während die geschachtelten dynamischen Aktionen auf der Serialisierbarkeit von Aktionsbäumen basieren und Kooperationsgruppen dort gar nicht zur Strukturierung der dynamischen Aktionen benötigt werden. Läßt man nur einen Aktionsbaum pro Kooperationsgruppe zu, garantiert auch das Integrationskonzept die Serialisierbarkeit von kompletten Aktionsbäumen. Allerdings wird im Konzept der geschachtelten dynamischen Aktionen auch die Serialisierbarkeit von Teilbäumen gefordert, deren Wurzeln Brüder sind. Hierzu gibt es im Integrationskonzept keine direkte Entsprechung, da dort keine weiteren Serialisierbarkeitsforderungen innerhalb von Kooperationsgruppen aufgestellt werden können. Wie gleich beschrieben, läßt sich die Serialisierbarkeit von Brüdern aber mit Hilfe der Objektkontrolle realisieren.
Das Konzept der geschachtelten dynamischen Aktionen erfordert, daß alle Änderungen, die eine Sohn-Aktion durchführt, zuerst nur für den Vater sichtbar sind. Der Mechanismus der Objektkontrolle im Integrationskonzept kann dieses leisten, ist aber deutlich flexibler, indem er zum Beispiel auch nur einige Änderungen des Sohnes verbergen kann. Mit der Objektkontrolle können auch alle Änderungen, die von dynamischen Aktionen innerhalb eines Teilbaums gemacht werden, nach außen verborgen werden. Wenn die Objektkontrollen zweiphasig vergeben werden, d. h. wenn bis zu einem bestimmten Zeitpunkt nur Objektkontrollen angefordert und danach nur freigegeben werden, ist dadurch die Serialisierbarkeit von Brüdern gewährleistet.
Zwischen dem kooperativen und dem geschachtelten Sperrverfahren gibt es einige Unterschiede, die überwunden werden müssen, um das geschachtelte Sperrverfahren im kooperativen Sperrverfahren zu simulieren. Dabei zeigt sich auch, daß eine komplette Simulation nicht möglich ist, da für das Vererben von Sperren im geschachtelten Sperrverfahren kein Äquivalent im kooperativen Sperrverfahren existiert.
Folgende Punkte müssen bei der Simulation beachtet werden:
Eine Simulation des Zwei-Phasen-Sperrprotokolls ist im kooperativen Sperrverfahren wie folgt möglich: Jede dynamische Aktion tritt direkt zu Beginn der Kooperationsgruppe bei, die ihrem Aktionsbaum entspricht. Ein Verhalten, in dem alle dynamischen Aktionen in der zweiten Phase starten, wird in [Mock 1994] als statische Kooperationsgruppen beschrieben. Der Lockpunkt der Toplevel-Aktion im geschachtelten Sperrverfahren entspricht der Validierung und damit dem Wechsel in die dritte Phase. Im Gegensatz zum Setzen des Lockpunkts kann die Validierung normalerweise fehlschlagen, in [Mock 1994] wurde jedoch gezeigt, daß im Falle von statischen Kooperationsgruppen die Validierung immer erfolgreich ist.
Im geschachtelten Sperrverfahren erzwingt die Aktionsverwaltung das zweiphasige Verhalten der dynamischen Aktionen und damit deren Serialisierbarkeit. Das kooperative Sperrverfahren kann diese Zweiphasigkeit nicht erzwingen. Stattdessen wird bezüglich der Anforderung und Freigabe der kooperative Sperren ein Wohlverhalten der einzelnen dynamischen Aktionen vorausgesetzt. Es wird also erwartet, daß sich dynamische Aktionen freiwillig zweiphasig verhalten. In diesem Fall wird nach [Eswaran 1976] die Serialisierbarkeit von Brüdern gewährleistet.
Die Serialisierbarkeit von kompletten Aktionsbäumen ist aufgrund der dynamischen kooperativen Serialisierbarkeit in jedem Fall gewährleistet, selbst wenn die Zweiphasigkeit nicht eingehalten wird. Die Vergaberegeln für kooperative Sperren garantieren, daß Objekte, die bereits vor der Validierung freigegeben worden sein sollten, für dynamische Aktionen aus anderen Aktionsbäumen erst nach der Validierung des ursprünglichen Halters zugreifbar sind, da alle dynamischen Aktionen in der zweiten Phase starten und ihnen deshalb nur der Zugriff auf bereits validierte Objekte erlaubt ist (siehe die Regeln 2.(b1) und 2.(b2) auf Seite ).
Nach der Validierung ist dynamischen Aktionen nur noch der Zugriff auf Objekte erlaubt, deren letzter Halter aus derselben Kooperationsgruppe also demselben Aktionsbaum kommt. Eine dynamische Aktion kann nach der Validierung also nur Sperren auf solche Objekte anfordern, die bereits schon vor der Validierung von einer dynamischen Aktionen aus demselben Aktionsbaum und in der Zwischenzeit nicht durch dynamische Aktionen aus anderen Aktionsbäumen gesperrt wurden. Die vorübergehende Freigabe des Objekts wurde also außerhalb des Aktionsbaums nicht bemerkt, so daß der Aktionsbaum weiterhin den Anschein eines zweiphasigen Verhaltens macht.
Da keine Änderungen vor der Validierung außerhalb einer Kooperationsgruppe sichtbar werden und nach der Validierung keine Sperren auf zusätzliche Objekte mehr angefordert werden dürfen, erzwingt die dynamische kooperative Serialisierbarkeit von kompletten Aktionsbäumen ein Verhalten, das von dynamischen Aktionen aus anderen Aktionsbäumen nicht von einem nicht-strikten zweiphasigen Verhalten zu unterscheiden ist.
Da die Vererbung fehlt, läßt sich das Verhalten von geschachtelten dynamischen Aktionen nicht exakt simulieren. Die einzige Möglichkeit, die Zweiphasigkeit von Teilbäumen zu garantieren besteht darin, daß dynamische Aktionen vor Aufruf eines Sohnes kooperative Sperren für sämtliche Objekte erwerben, die dieser Sohn und dessen Nachfahren bearbeiten werden. Dies setzt allerdings voraus, daß dem Vater alle diese Objekte bereits vor Aufruf des Sohns bekannt sind, welches in der Praxis oft nicht der Fall sein wird.
Zusammengefaßt läßt sich das geschachtelte Sperrverfahren im kooperativen Sperrverfahren unter folgende Einschränkungen simulieren: