-
Hintergrund
der Erfindung
-
Bereich der Erfindung
-
Die
vorliegende Erfindung betrifft eine Methode und ein System zum Betrieb
eines Ressourcen-Managers (RM) zur Ausführung einer Vielzahl von Geschäftsoperationen
als eine globale Transaktion.
-
Die
Methoden nach Stand der Technik zum Betrieb eines Ressourcen-Managers
sind grundlegend in viele verschiedene Anwendungsprogramme implementiert,
die in unterschiedlichen Geschäftsanwendungen
zum Einsatz kommen.
-
Beispielsweise
lehrt Umeshwar Dayal, Meichun Hsu, Rivka Ladin: "Organizing long-running activities with
triggers and transactions" International Conference
on Management of Data, Proceedings of the 1990 ACM SIGMOD; Atlantic
City, New Jersey, United States; Pages: 204–214; May 23–26, 1990, ISSN:0163-5808,
dass eine langlaufende Aktivität
in mehrere Transaktionen aufgespalten wird (vgl. S. 204, letzter
Absatz), und darüber
hinaus nicht nur diese Transaktionen aufruft, sondern auch Prozeduren
aufruft. Dabei sorgen Regeln und Modelle für die Integrität und Fehlerbehandlung
beim Aufruf der einzelnen Schritte (vgl. S. 205, drittletzter Absatz).
-
Die
Geschäftsanwendung
ruft normalerweise den Ressourcen-Manager auf, um eine Operation hinsichtlich
der Ressourcen auszuführen,
die vom Ressourcen-Manager verwaltet werden. Eine charakteristische
Eigenschaft nach Stand der Technik beim Betrieb des Ressourcen-Managers
ist es, dass es sich bei den Operationen, die vom Ressourcen-Manager
ausgeführt
werden sollen und die in einem entsprechenden Application Level
Interface (API) definiert sind, um Transaktionen handelt. Wenn es
sich bei der Ressource beispielsweise um eine Datenbank handelt,
bedeutet Transaktionsverhalten des Ressourcen-Managers, dass jede
Anfrage an die Ressource gemäß vorgegebener "traditioneller Regeln" behandelt wird,
wie sie beispielsweise in einem zweiphasigen Ausführungsprotokoll
festgehalten werden.
-
Die
Anwendung dieser Regeln stellt sicher, dass die Daten der Ressource,
beispielsweise einer relationalen Datenbank, mit dem Status der
anfragenden Anwendungsprogramme, möglicherweise auch mit anderen
Datenbanken konsistent bleiben, und dass Änderungen an den Daten nachvollziehbar bleiben
und zurückverfolgt
werden können.
-
Transaktionsverhalten
ist in vielen Geschäftssituationen
erforderlich, einschließlich
beispielsweise bei der Verwendung des Internet. Bei einem Benutzer
einer Internet-Anwendung
eines Reisebüros
kann es sich um einen Kunden handeln, der seinen Urlaub buchen möchte. Nachdem
er Flug, Hotel und Mietwagen ausgewählt hat, möchte er nun all das buchen.
Dadurch wird eine Anfrage initiiert, um seine Identität zu bestätigen, das
System der Fluggesellschaft mit seiner Reservierung zu aktualisieren, das
System des Hotels mit seiner Zimmerbuchung zu aktualisieren, das
System der Autovermietung mit der Buchung des Mietwagens zu aktualisieren
und von seinem Bankkonto die Kosten des Buchungspakets abzubuchen.
Zuletzt kann eine Multimedia-Datei mit
Informationen zum ausgewählten
Paket zusammen mit einer Rechnung für die Transaktion an den Kunden
gesendet werden.
-
In
solchen Geschäftssituationen
müssen
oftmals zahlreiche Operationen mit verschiedenen Ressourcen-Managern
verarbeitet werden. Dabei kann die Situation eintreten, dass es
sich bei einem Typ von Operation um eine Transaktion handelt, während es
sich beim anderen Teil der Operationen nicht um Transaktionen handelt.
Transaktionsoperationen müssen
normalerweise im gegebenen Geschäftskontext
koordiniert werden, während
dies bei Nichttransaktionsoperationen nicht erforderlich oder gar nicht
zulässig
ist. Ein Beispiel für
eine Nichttransaktionsoperation in der oben gegebenen Geschäftssituation
ist das Folgende:
Das betroffene Reisebüro im oben genannten Beispiel
muss die verarbeiteten Buchungen zurückverfolgen und speichert sie,
wodurch eine Art von Protokoll erstellt wird. Diese Protokolle sollten
im Falle einer nicht zustande gekommenen Buchung nicht Bestandteil
der Operation zum Zurücksetzen
sein.
-
In
vielen Fällen
kann eine Anwendung wie die oben beschriebene jeden ihrer Bestandteile
als vollkommen abgetrennte Transaktion ausführen. Wenn dies der Fall ist,
können
die Flüge
auch dann gebucht werden, wenn kein Mietwagen zur Verfügung stand.
In anderen Fällen,
beispielsweise bei einem Buchungstransfer von einem Konto bei einer Bank
zu einem Konto bei einer anderen Bank, ist es vollkommen ausgeschlossen,
einen Teil der Anforderung ohne den anderen verbleibenden Teil auszuführen, was
bedeutet, dass die gesamte Anforderung ausgeführt werden muss.
-
Das
obige Beispiel zeigt, dass in modernen Geschäftsanwendungen mehrere Ressourcen
in einem einzelnen Kontext verwaltet werden müssen, der beispielsweise mit
einem Anwendungsprogramm verbunden ist. Die vorliegende Erfindung
kann nützlicherweise
sowohl in Systemen Anwendung finden, die nur einen Ressourcen-Manager
aufweisen, wie beispielsweise das Datenbanksystem des Hotels, als auch
in den Fällen,
in denen mehrere Ressourcen-Manager aufgerufen werden und jede den
verschiedenen Ressourcen-Managern angegebene Aktion koordiniert
werden muss, um die tatsächlichen Wünsche eines
Kunden und auch die Erfordernisse der verschiedenen Anbieter, also
beispielsweise das Hotel, die Fluggesellschaft oder die Autovermietung, zu
berücksichtigen.
-
Typischerweise
werden große
Datenbanken mithilfe von Mainframe-Technologie verwaltet, um das
System mit genügend Computerressourcen
auszustatten. Dies wird besonders in solchen Geschäftssituationen
wichtig, in denen der Arbeitsumfang stark variiert. Diese auf Mainframes
basierenden Anwendungen nach Stand der Technik können jedoch keine Mischung
aus koordinierten Operationen mit Transaktionscharakter und mit
so genanntem nicht koordinierten Operationen mit Nichttransaktionscharakter bewältigen.
Es ist daher äußerst wünschenswert,
die auf Mainframer basierende Computertechnologie zu erweitern,
um die oben beschriebene Mischung aus koordinierten und nicht koordinierten
Operationen zu bewältigen.
-
1.3 Ziele der vorliegenden
Erfindung
-
Es
ist somit Ziel der vorliegenden Erfindung, eine Methode und ein
System zum Betrieb eines Ressourcen-Managers bereitzustellen, um
die Ausführung
einer Vielzahl von Geschäftsoperationen
als eine globale Transaktion zu verbessern.
-
2. Zusammenfassung
und Vorteile der Erfindung
-
Dieses
Ziel der vorliegenden Erfindung wird durch die in den angehängten Ansprüchen beschriebenen
Eigenschaften der Erfindung erreicht. Weitere vorteilhafte Anordnungen
und Ausführungsbeispiele der
Erfindung werden in den entsprechenden Unteransprüchen beschrieben.
Im Folgenden wird Bezug genommen auf die angehängten Ansprüche. Entsprechend dem weitesten
Aspekt der vorliegenden Erfindung wird eine Methode zur Erstellung
einer Kooperation mit einem Ressourcen-Manager bereitgestellt, die
es dem Anwendungsprogramm ermöglicht, einen
Ressourcen-Manager nach Stand der Technik mit einer Mischung aus
Transaktions- und Nichttransaktionsoperationen für die verwaltete Ressource
zu verwenden.
-
Dies
wird im Wesentlichen erreicht, indem die Nichttransaktionsoperation
in einem speziell dafür
erstellten Kontext und innerhalb eines aktiven Threads einer Transaktionsoperation
verarbeitet wird. So werden die charakteristischen Schritte der Methode
entsprechend dem Aspekt der Rundsendung sequentiell verarbeitet,
wobei eine Art von Lokal/Global-Beziehung hergestellt wird.
-
Die
globale Transaktion ist die einbettende Transaktion, die als eine
koordinierte Operation mit Transaktionscharakter aus Geschäftssicht
betrachtet wird, wobei es sich bei der inneren Transaktion um eine
nicht koordinierte Transaktion handelt, die eine oder mehrere Operationen
mit dem Ressourcen-Manager umfasst. Charakteristisch ist, dass der
Kontext bei Beginn der lokalen Transaktion von global zu lokal umschaltet
und nach Beendigung der lokalen Transaktion wieder von lokal auf
global umschaltet. Nach dem Zurückschalten
zum einbettenden globalen Kontext können Transaktionsprozeduren
nach Stand der Technik fortgeführt
werden, entsprechend den Anfragen durch das Anwendungsprogramm.
-
Somit
ist der Begriff ,lokaler Kontext' im
Sinne eines Kontexts zu verstehen, der unabhängig ist von anderen Kontexten,
das heisst ein Kontext, der nicht mit anderen Kontexten koordiniert
werden muss, der möglicherweise
aber hinzugezogen werden muss, um Datenkonsistenz in einer verteilten
Anwendung aufrechtzuerhalten. Der Fall, in dem ,lokal' im eigentlichen
Sinne interpretiert werden muss, ist also bei verteilten Anwendungen
wichtig, die sich an Ressourcen-Manager an den entsprechenden verschiedenen
Orten auf der ganzen Welt richten. Es sollte jedoch hinzugefügt werden,
dass der Begriff ,lokal' nicht
auf die geografische Bedeutung beschränkt ist, sondern weiterhin
eine Situation mit mehr als einem unabhängigen Ressourcen-Manager beschreibt,
deren verschiedene Aktionen nicht miteinander koordiniert werden
müssen.
-
Weiterhin,
vorzugsweise beim Erstellen eines neuen Kontexts für die lokale
Transaktion, kann der neue Kontext an den Thread des einbettenden globalen
Kontexts angehängt
werden.
-
Weiterhin
kann mehr als eine lokale Transaktion im gleichen Kontext ausgeführt werden.
Dies vereinfacht die Programmstruktur und kann vor Transaktionsüberlastung
in den Programmen an den Punkten schützen, an denen dies aus geschäftlicher
Sicht nicht wünschenswert
ist.
-
Weiterhin
kann der gleiche Kontext für
mehr als eine lokale Transaktion verwendet werden, wenn diese sequentiell
mit einem Zurückschalten
zur globalen Transaktion durchgeführt werden, mit einer entsprechenden
(wiederholten) Beendigung einer lokalen Transaktion. Dies hilft
beim Vereinfachen der Programmierarbeit.
-
Weiterhin
kann der gleiche Kontext für
mehrere Aufrufe mehrerer Ressourcen-Manager genutzt werden. So kann
beispielsweise eine Vielzahl an Datenbanken im gleichen Kontext
verarbeitet werden, was ebenfalls zur Vereinfachung der Programmierarbeit
und zur Beschleunigung der Programme beiträgt.
-
Um
weiterhin die Erweiterungen der Erfindung vollkommen transparent
für Ressourcen-Manager
nach Stand der Technik zu gestalten und um das Konzept der vorliegenden
Erfindung in der Geschäftspraxis
einsetzbar zu machen, ohne dass Änderungen
an den Ressourcen-Managern nach Stand der Technik vorgenommen werden
müssen,
ist es von Vorteil, im Anwendungsprogramm kurz vor dem Aufrufen
des Ressourcen-Managers
zu entscheiden, ob eine gegebene Transaktion als lokal oder global
betrachtet werden soll.
-
3. Kurzbeschreibung
der Zeichnungen
-
Die
vorliegende Erfindung wird anhand von Beispielen erklärt, ist
jedoch nicht beschränkt
auf die Figuren der Zeichnungen, wobei
-
1 eine
schematische Darstellung der Strukturkomponenten zeigt, die einen
Teil des Bereichs der vorliegenden Erfindung ausmachen;
-
2 eine
schematische Darstellung der wesentlichen Funktionskomponenten des
Steuerflusses in einem Ausführungsbeispiel
der Erfindung zeigt;
-
3 eine
schematische Darstellung von drei exemplarischen Nichttransaktionsoperationen innerhalb
- a) einem entsprechend neu erstellten individuellen
lokalen Kontext und
- b) in einem einzelnen, das heisst geteilten, neu erstellten
Kontext, jeder in einem Thread eines einbettenden Kontexts, zeigt.
-
4. Detaillierte Beschreibung
des bevorzugten Ausführungsbeispiels
-
In 1 wird
die Informationen verarbeitende Umgebung gezeigt, in der die vorliegende
Erfindung vorteilhafterweise eingesetzt werden kann. Ein Anwendungsprogramm 10 mit
implementiertem Dialog für
den Endbenutzer wird als eine Internet-Anwendung ausgeführt. Während des
Dialogs an mehreren Ausführungszeitorten
innerhalb des Anwendungsprogramms 10 wird ein Ressourcen-Manager 12 – abgekürzt mit
RM – aufgerufen.
Der Aufruf kann als ein Aufruf zum Einfügen eines Datensatzes in eine
Ressource 14 betrachtet werden, wobei es sich bei der Ressource
hier um eine relationale Datenbank handelt. Jede Aktion gemäß der vorliegenden Erfindung,
die im Weiteren näher
erläutert
wird, wird vom Ressourcen-Manager 12 ausgeführt, wobei
die Ressource selbst gemäß den Prinzipien
der vorliegenden Erfindung unverändert
bleibt. Somit ist jede vom Anwendungsprogramm 10 ausgegebene
Aktion, die die grundlegenden Schritte der vorliegenden Erfindung
umfasst, für
den Ressourcen-Manager vollkommen transparent. Dies wird durch die
gestrichelte Linie verdeutlicht.
-
Anstelle
von nur einem Ressourcen-Manager kann die vorliegende Erfindung
so erweitert werden, dass mit einer Vielzahl an Ressourcen-Managern
gearbeitet werden kann, wobei es sich bei jedem einzelnen Ressourcen-Manager
entweder um einen unabhängigen
Knoten handelt oder aber die Vielzahl der Ressourcen-Manager von
einer auf höherer
Ebene koordinierenden Instanz, einem so genannten Transaktions-Koordinator, koordiniert
werden, beispielsweise einem Resource Recovery Service (RRS) auf
einem IBM Mainframe Betriebssystem z/OS, einem Ansatz nach Stand
der Technik, der eingesetzt wird, wenn Ressourcen über mehrere
verschiedene Orte verteilt sind und jede einzelne Transaktion streng
mit den anderen Transaktionen koordiniert werden muss, wie beispielsweise
oben beschrieben in dem Fall der Urlaubsreservierungen.
-
Innerhalb
des von der Internet-Anwendung 10 bereitgestellten Dialogs
startet der Endbenutzer eine Transaktion, die an den Ressourcen-Manager 12 gerichtet
ist. Dies wird als Teil des gewünschten Geschäftsprozesses
des Benutzers angesehen. Die genannte Transaktion wird nun beispielsweise
als eine Nichttransaktionsoperation betrachtet.
-
Entsprechend
der vorliegenden Erfindung wird eine Markierung bereitgestellt,
die die aktuelle Transaktion als eine Nichttransaktion oder als
Transaktion kennzeichnet.
-
So
wird in 2 in einem ersten Schritt 210 die
genannte Transaktions-Markierung gelesen und innerhalb des Awendungsprogramms 10 ausgewertet,
in den Schritten 210, 220. Im Abzweig JA der Entscheidung 220 wird
die aktuelle Transaktion als Nichttransaktionsoperation für einen
Ressourcen-Manager 12 bewertet, der zuvor angegeben wurde.
-
Dann
wird in einem nachfolgenden Schritt 230 ein lokaler Kontext
entsprechend der vorliegenden Erfindung erstellt.
-
Das
Erstellen eines lokalen Kontexts umfasst auch das Identifizieren
des Status einer neuen Transaktion, um den angerufenen Ressourcen-Manager
oder eine Vielzahl an Ressourcen-Managern zu bestimmen und um sämtliche,
vom Ressourcen-Manager 12 ausgegebenen Protokollinformationen
zu verwalten.
-
Der
neue Kontext für
die lokale Transaktion wird an den Thread des bestehenden Kontexts
angehängt,
der verbunden ist mit dem globalen Transaktions-Thread, der wiederum
den neu erstellten lokalen Kontext einbettet. So verwaltet das Anwendungsprogramm
die Beziehung dieses Kontexts mit seinem Verarbeitungs-Thread, der
dann von besonderer Bedeutung ist, wenn mehr als ein Thread vorhanden
ist.
-
In
den 3a und 3b wird
der einbettende Thread mit der Nummer 30 dargestellt. Innerhalb
des neu erstellten Kontexts 32 wird die Operation ausgeführt, wie
mit Bezug auf 2 beschrieben.
-
In
einem weiteren Schritt 240 schaltet das Anwendungsprogramm
zum lokalen Kontext 32 um. Dieser kann beispielsweise durch
ein API zum Umschalten des Kontexts implementiert werden. Das genannte
API informiert alle teilnehmenden Ressourcen-Manager darüber, dass
von nun an alle folgenden Aktionen von diesem Thread für den neuen
Kontext protokolliert werden sollen.
-
Dann
wird in Schritt 250 die lokale Transaktion über den
Ressourcen-Manager 12 und die dazugehörige Datenbank 14 ausgeführt. Da
der Mechanismus der vorliegenden Erfindung für den Ressourcen-Manager 12 vollkommen
transparent ist, hat es für
den Ressourcen-Manager 12 keinerlei Bedeutung, ob die genannte
lokale Transaktion mit einer anderen Instanz koordiniert werden
muss oder nicht.
-
So
wird die Transaktion in Schritt 260 ausgeführt und
beendet, wie dies nach Stand der Technik üblich ist.
-
Nach
Beendigung der genannten lokalen Transaktion schaltet das Anwendungsprogramm
zurück
zum globalen Kontext, um die Verarbeitung der einbettenden globalen
Transaktion fortzuführen.
Sie kehrt somit zu Schritt 210 zurück, um mit dem regulären Programmfluss
fortzufahren, beispielsweise zum Fertigstellen einer bestehenden
globalen Transaktion oder zum Beginnen einer neuen globalen Transaktion.
-
Im
Abzweig NEIN der Entscheidung 220 wurde die Transaktions-Markierung anders
ausgewertet. In diesem Falle ist die Operation ein Teil der aktuellen globalen
Transaktion der Anwendung, die entsprechend der Transaktionsverarbeitung
nach Stand der Technik innerhalb des eigenen globalen Kontexts ausgeführt wird.
-
Zum
Zwecke der Vollständigkeit
sollte hinzugefügt
werden, dass innerhalb von Feld 280 die gleiche Entscheidung
gefällt
werden kann wie in Feld 220. Um die Zeichnungen zu vereinfachen,
wurde dies mit einem Abzweig zurück
zum Geschäftsfluss vor
Schritt 210 am unteren Ende von Feld 280 verdeutlicht.
Für diesen
Fall sollte das untere Ende des Feldes 280 nicht reguläres Ende
einer globalen Transaktion interpretiert werden.
-
Wie
in den 3a oder 3b dargestellt,
können
mehrere, beispielsweise drei lokale Transaktionen 34a, 34b, 34c innerhalb
einer einzelnen globalen Transaktion 30 ausgeführt werden.
Es ist zu beachten, dass jede der lokalen Transaktionen 34a,
b, c) sich an einen entsprechenden individuellen Ressourcen-Manager 12a,
b, c richten kann, der wiederum mit den entsprechenden Ressourcen 14a,
b, c an verschiedenen Orten auf der Welt kooperiert, wie dies in
verteilten Geschäftsanwendungen
oftmals der Fall ist. So wird im Szenario der 3a ein
individueller neuer lokaler Kontext 32a, b, c erstellt,
eingegeben und für
den Einsatz bei jeder der lokalen Transaktionen überlassen.
-
Im
Szenario der 3b hingegen wird der gleiche
Kontext für
drei nachfolgende lokale Transaktionen verwendet, die sich an den
gleichen Ressourcen-Manager (nicht explizit dargestellt) richten.
-
In
der vorangegangenen Spezifikation wurde die vorliegende Erfindung
mit Bezug auf ein spezielles Ausführungsbeispiel dieser Erfindung
beschrieben. Es sollte Fachleuten jedoch klar sein, dass verschiedene
Modifizierungen und Änderungen
vorgenommen werden können,
ohne dass vom generellen Ziel der Erfindung, wie sie in den angehängten Ansprüchen beschrieben
wird, abgewichen wird.
-
Die
Spezifikation und die Zeichnungen sollten entsprechend als Veranschaulichung
und nicht als Beschränkung
aufgefasst werden.
-
Die
vorliegende Erfindung kann in Hardware, Software oder in einer Kombination
aus Hardware und Software verwirklicht werden. Ein Tool oder ein Anwendungsprogramm
entsprechend der vorliegenden Erfindung kann in zentralisierter
Form in einem Computersystem verwirklicht werden, oder in verteilter
Form, wobei verschiedene Elemente über mehrere miteinander verbundene
Computersysteme verteilt werden. Jede Art von Computersystem oder
jede andere Vorrichtung, die für
die Ausführung
der hier beschriebenen Methoden angepasst wurde, ist geeignet. Bei
einer typischen Kombination aus Hardware und Software kann es sich
um ein allgemein einsetzbares Computersystem handelt, mit einem Computerprogramm,
das, wenn geladen und ausgeführt,
das Computersystem dergestalt steuert, dass die hier beschriebenen
Methoden ausgeführt
werden.
-
Die
vorliegende Erfindung kann ebenfalls in einem Computerprogramm eingebettet
werden, das alle Eigenschaften aufweist, die eine Implementierung
der hier beschriebenen Methoden ermöglichen und das beim Laden
in ein Computersystem in der Lage ist, diese Methoden auszuführen.
-
Der
Begriff Programmmittel oder Computerprogramm bezieht sich im vorliegenden
Kontext auf jeden Ausdruck in jeder Sprache, jedem Code oder jeder
Notation, auf einen Anweisungssatz, der ein System mit informationsverarbeitenden
Funktionen veranlasst, eine bestimmte Funktion enweder direkt oder
nach einem der folgenden Ereignisse auszuführen:
- a)
Konvertierung in eine andere Sprache, einen anderen Code oder eine
andere Notation;
- b) Reproduktion in einer anderen Materialform.