DE69814697T2 - Vorrichtung, methode und computer programm produkt für client/server rechner mit vom client auswählbarer lokalisierung von transaktionsobjekten - Google Patents

Vorrichtung, methode und computer programm produkt für client/server rechner mit vom client auswählbarer lokalisierung von transaktionsobjekten Download PDF

Info

Publication number
DE69814697T2
DE69814697T2 DE69814697T DE69814697T DE69814697T2 DE 69814697 T2 DE69814697 T2 DE 69814697T2 DE 69814697 T DE69814697 T DE 69814697T DE 69814697 T DE69814697 T DE 69814697T DE 69814697 T2 DE69814697 T2 DE 69814697T2
Authority
DE
Germany
Prior art keywords
transaction
processing device
server processing
server
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69814697T
Other languages
English (en)
Other versions
DE69814697D1 (de
Inventor
Elizabeth Amanda Alton CHESSELL
Sarah Kathryn Winchester WARR
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69814697D1 publication Critical patent/DE69814697D1/de
Publication of DE69814697T2 publication Critical patent/DE69814697T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft das Gebiet des verteilten Rechnens in Client-Server-Systemen, in denen eine Rechnereinheit (der „Client") eine andere Rechnereinheit (den „Server") anfordert, um einen Teil der Arbeit des Clients auszuführen. Der Client und der Server können sich auch beide in derselben physischen Rechnereinheit befinden.
  • HINTERGRUND DER ERFINDUNG
  • Das Rechnen in Client-Server-Systemen hat in der Informationstechnologie in den vergangenen Jahren immer mehr an Bedeutung gewonnen. Diese Form des verteilten Rechnens ermöglicht es, dass eine Maschine einen Teil ihrer Arbeit einer anderen Maschine überträgt, die zum Ausführen dieser Arbeit zum Beispiel besser geeignet sein kann. Zum Beispiel kann der Server ein Hochleistungsrechner sein, in dem Datenbankprogramme laufen, welche die Speicherung von riesigen Datenmengen verwalten, während der Client einfach ein Personal Computer (PC) ist, der von der Datenbank Daten zur Benutzung in einem seiner lokalen Programme anfordert.
  • Die Vorteile des Rechnens in Client-Server-Systemen sind durch die Verwendung eines gut bekannten Computerprogrammierverfahrens unter der Bezeichnung „Objektorientierte Programmierung" (OOP) noch verstärkt worden, durch das der Client und der Server auf unterschiedlichen (heterogenen) „Plattformen" agieren können. Eine Plattform ist eine spezielle Kombination von Hardware/Software-/Betriebssystemprotokoll, das die Maschine zur Ausführung ihrer Arbeit benutzt. Durch die OOP sind das Client-Anwendungsprogramm und das Server-Anwendungsprogramm in der Lage, auf ihren eigenen Plattformen zu arbeiten, ohne darauf Rücksicht nehmen zu müssen, wie die Arbeitsanforderungen der Client-Anwendung der Server-Anwendung mitgeteilt und von dieser empfangen werden. Ebenso braucht auch die Server-Anwendung nicht Rücksicht darauf zu nehmen, wie die Verarbeitungsergebnisse der Server-Anwendung durch das OOP-System empfangen, umgesetzt und zur anfordernden Client-Anwendung zurückgesendet werden.
  • Einzelheiten dazu, wie OOP-Verfahren in heterogene Client-Server-Systeme integriert worden sind, werden in der US-Patentschrift 5 440 744 und in der Europäischen Patentanmeldung EP 0 677 943 A2 erklärt. Dennoch wird im Folgenden ein Beispiel der Grundarchitektur angegeben, um das Verständnis der Zusammenhänge in der Umgebung der Erfindung zu erleichtern.
  • Der Client-Computer 10 in 1 (der zum Beispiel ein Personal Computer mit dem darin installierten Betriebssystem IBM OS/2 sein kann) hat ein Anwendungsprogramm 40, das in seinem Betriebssystem läuft („IBM" und „OS/2" sind Warenzeichen der International Business Machines Corporation). Das Anwendungsprogramm 40 fordert periodisch das Ausführen von Arbeiten auf dem Server-Computer 20 und/oder das Zurücksenden von Daten vom Server 20 zur weiteren Verwendung durch das Anwendungsprogramm 40. Der Server-Computer 20 kann zum Beispiel ein Hochleistungs-Großcomputer sein, der auf dem IBM-Betriebssystem MVS läuft („MVS" ist ebenfalls ein Markenzeichen der IBM Corp.). Im Rahmen der vorliegenden Erfindung spielt es keine Rolle, ob die Anforderungen nach Ausführung von Kommunikationsdienstleistungen in dem Server durch Benutzereingabe in das erste Anwendungsprogramm 40 ausgelöst werden oder ob das Anwendungsprogramm 40 unabhängig von Benutzereingaben handelt und die Anforderungen während des Programmablaufs automatisch erstellt.
  • Wenn der Client-Computer 10 eine Anforderung nach den Dienstleistungen des Server-Computers 20 erstellen will, informiert das erste Anwendungsprogramm 40 das erste Logikmittel 50 über die gewünschte Dienstleistung. Dies kann zum Beispiel dadurch erfolgen, dass das erste Logikmittel den Namen einer fernen Prozedur zusammen mit einer Liste von Eingabe- und Ausgabeparametern sendet. Dann verarbeitet das erste Logikmittel 50 die Task zur Herstellung der erforderlichen Verbindung zu dem zweiten Computer 20 unter Bezug auf die in der Speichervorrichtung 60 gespeicherten Definitionen der verfügbaren Verbindungsdienstleistungen. Alle die möglichen Dienstleistungen sind als einheitliche Rahmendefinition von Objektklassen 70 definiert, die von einer einzigen Objektklasse abgeleitet sind. Diese Art der Definition der Dienstleistungen bietet zahlreiche Vorteile hinsichtlich der Leistungsfähigkeit und der Wiederverwendbarkeit.
  • Um die erforderliche Verbindung zu dem Server 20 herzustellen, ermittelt das erste Logikmittel 50, welche Objektklasse der Rahmendefinition verwendet werden soll, erzeugt sodann in dem Server ein Exemplar dieses Objekts und sendet eine Nachricht an das Objekt, damit das Objekt eines seiner Verfahren aufruft. Dies führt zur Einrichtung der Verbindung zum Server-Computer 20 über das Verbindungsmittel 80 und zum anschließenden Senden einer Anforderung an das zweite Logikmittel 90.
  • Das zweite Logikmittel 90 leitet dann die Anforderung an das auf dem Server-Computer 20 laufende zweite Anwendungsprogramm 100 (im Folgenden als Dienstanwendung bezeichnet) weiter, sodass die Dienstanwendung 100 die durch die Anforderung angeforderte spezielle Task, wie beispielsweise das Durchführen einer Datenabrufprozedur, ausführen kann. Nach Durchführung dieser Task kann die Dienstanwendung verlangen, Ergebnisse zum ersten Computer 10 zurückzusenden. Die Server-Anwendung 100 tritt mit dem zweiten Logikmittel 90 in Verbindung, während die angeforderten Tasks ausgeführt werden und wenn Ergebnisse zum ersten Computer 10 zurückgesendet werden müssen. Das zweite Logikmittel 90 erzeugt Exemplare von Objekten und ruft die passenden Verfahren dieser Objekte auf, wie sie durch die Server-Anwendung 100 zu einem bestimmten Zeitpunkt benötigt werden, wobei die Objektexemplare aus der Rahmendefinition der in der Speichervorrichtung 110 gespeicherten Objektklassen erzeugt werden.
  • Durch die Anwendung des oben genannten Verfahrens kommt das Client-Anwendungsprogramm 40 nicht mit der Datenübertragungsarchitektur in Berührung. Ferner wird die Server-Anwendung 100 durch den Standardmechanismus für ihre jeweilige Umgebung aufgerufen; sie erfährt nicht, dass sie von einem fernen Computer aufgerufen wird.
  • Die Object Management Group (OMG) ist eine internationale Vereinigung von Organisationen, die sich wie in 1 gezeigt mit unterschiedlichen Aspekten des Rechnens in Client-Server-Systemen auf heterogenen Plattformen mit verteilten Objekten befassen. Die OMG hat Standards festgelegt und veröffentlicht, nach denen Client-Computer (z. B. 10) (in Form der OOP) mit Server-Maschinen (z. B. 20) zusammenarbeiten. Als Teil dieser Standards ist ein Objektanforderungsbroker (ORB, von: Common Object Request Broker Architecture, CORBA) definiert worden, der eine objektorientierte Brücke zwischen den Client- und den Server-Maschinen bereitstellt. Der ORB befreit die Client- und Server-Anwendungen von den Einzelheiten der objektorientierten Ausführung und übernimmt zumindest einen Teil der Aufgaben des ersten und des zweiten Logikmittels 50 und 90 sowie des Verbindungsmittels 80.
  • Als Teil der CORBA-Softwarestruktur hat die OMG Standards zur Durchführung von „Transaktionen" festgelegt, die als Objekttransaktionsdienst (Object Transaction Service, OTS) bekannt sind. Hierzu siehe zum Beispiel auch CORBA Object Transaction Service Specification 1.0, OMG Document 94.8.4. Transaktionsverarbeitungssysteme in Computern werden in vielen Industriezweigen für kritische Geschäftsvorgänge verwendet. Als Transaktion wird eine einzelne Arbeitseinheit definiert, die entweder vollständig erledigt werden oder unbearbeitet bleiben muss. Wenn zum Beispiel ein Kunde am Geldautomaten der Bank Geld abheben will, müssen entweder alle Schritte der Geldausgabe, der Verringerung des Geldvorrats in der Maschine und das Belasten des Kundenkontos erfolgen oder überhaupt keiner. Versagt auch nur einer der untergeordneten Schritte, so stimmen die Daten und die tatsächlichen Schritte nicht überein.
  • Zur verteilten Transaktionsverarbeitung gehört eine Transaktion, die Ressourcen an mehr als einer physischen oder logischen Stelle beeinflusst. Bei dem obigen Beispiel nimmt eine Transaktion Einfluss auf die in dem lokalen Geldautomaten verwalteten Ressourcen sowie auf die durch den Zentralcomputer der Bank verwalteten Konten. An solchen Transaktionen ist ein bestimmter Client-Computer (z. B. 10) beteiligt, der mit einem bestimmten Server-Computer (z. B. 20) über eine Reihe von Client-Anforderungen kommuniziert, die durch den Server verarbeitet werden. Der von der OMG festgelegte OTS ist für die Koordinierung dieser verteilten Transaktionen zuständig.
  • Üblicherweise startet eine in einem Client-Prozess laufende Anwendung eine Transaktion, mit der eine Vielzahl verschiedener Server aufgerufen werden kann, die jeweils einen Serverprozess starten, um gemäß den in der Transaktion enthaltenen Instruktionen ihre jeweilige lokale Datenbank zu ändern. Die Transaktion wird entweder durch Ausführen der Transaktion (wobei alle Server die Änderungen ihrer lokalen Datenbanken abschließen) oder durch Abbruch der Transaktion (wobei alle Server die Änderungen ihrer lokalen Datenbanken annullieren oder ignorieren) beendet. Um die Verbindung zu den Servern während der Transaktion aufrechtzuerhalten (z. B. um sie anzuweisen, dass sie ihren Anteil an der Transaktion erfüllen oder abbrechen sollen), muss einer der beteiligten Prozesse Statusdaten für die Transaktion verwalten. Hierzu gehört üblicherweise der Prozess zum Erstellen einer Reihe von Transaktionsobjekten, von denen eines als Koordinierungsobjekt dient, welches die Transaktion für die verschiedenen Server koordiniert.
  • Eine herkömmliche Realisierung des OTS, die von der International Business Machines Corporation entwickelt, in ihr Produkt Komponentenbrokerserie (Component Broker Series, Warenzeichen der IBM Corp.) aufgenommen und im Mai 1997 bekanntgegeben wurde, ist in 2 gezeigt. Ein Client-Prozess 21, der eine Transaktion (z. B. Geld von einem Bankkonto abheben) starten will, muss einen Prozess aussuchen, der in der Lage ist, die Transaktionsobjekte zu erzeugen und zu verwalten, welche den Status der Transaktion erfassen. Da die aktuelle Tendenz dahin geht, „abgespeckte" Clients zu erzeugen (die daher nur die notwendigsten Funktionalitäten aufweisen), ist der Client-Prozess 21 normalerweise nicht in der Lage, die Transaktionsobjekte lokal zu verwalten und muss zu diesem Zweck nach einem Serverprozess suchen.
  • Gemäß diesem Ansatz nach dem Stand der Technik macht der OTS (oder ein anderer Dienst wie beispielsweise der Dienst CORBA-Lifecycle) einen Server-Prozess ausfindig und erzeugt in dem ermittelten Server-Prozess die Transaktionsobjekte 221 (zu denen das Koordinationsobjekt, das Steuerobjekt und das Beendigungsobjekt gehören). Gemäß diesem Stand der Technik wird immer derselbe Server-Prozess (Server-A-Prozess 22 in 2) ausgewählt. Nach dem Auswählen des Server-A-Prozesses 22 sendet der Client-Prozess 21 (Pfeil mit der Zahl 1 im Kreisfeld) eine Nachricht an den Server-A-Prozess 22, um den Server-A-Prozess 22 anzuweisen, die Transaktionsobjekte 221 zu erzeugen. Der Server-A-Prozess 22 erzeugt dann Transaktionsobjekte 221 und sendet eine Antwort (Pfeil mit der Zahl 2 im Kreisfeld) an den Client 21, die den Transaktionskontext enthält. Dann sendet der Client 21 einen Kontoabbuchungsbefehl (Pfeil mit Zahl 3 im Kreisfeld) an den Server-B-Prozess 23 (den Prozess, der das Bankkontoobjekt 231 enthält, von dem der Clientprozess 21 Geld abheben will).
  • Dieser letztere Befehl enthält den Transaktionskontext, der vom Server-A-Prozess 22 zum Client 21 gesendet wurde. Auf diese Weise kann sich das Bankkontoobjekt 231 im Prozess 23 bei den Transaktionsobjekten 221 im Prozess 22 selbst anmelden (Pfeil mit Zahl 4 im Kreisfeld), sodass das Bankkontoobjekt 231 durch die Transaktionsobjekte 221 am Ende der Transaktion angewiesen werden kann (Pfeil mit Zahl 5 im Kreisfeld), die Aktion zu vollenden oder rückabzuwickeln.
  • Diese Ausführung ist in mindestens zweierlei Hinsicht untauglich. Erstens wird dieser Server-Prozess, da immer derselbe Server-Prozess verwendet wird, wenn ein Client einen fernen Prozess zum Erzeugen und Verwalten der Transaktionsobjekte einrichtet, bald überlastet und daher seine eigenen Tasks (z. B. den Inhalt der lokalen Ressourcen zu aktualisieren) nicht mehr wirksam ausführen können. Zweitens fließen zwischen verschiedenen an der Transaktion beteiligten Prozessen viele Datenströme hin und her. Selbst wenn die Transaktionsobjekte in einem beliebigen anderen Server erzeugt und verwaltet werden, bleibt das Problem der großen Anzahl von Datenströmen erhalten.
  • Ferner besitzt der Client bei dieser Ausführung keine Wahlmöglichkeit bezüglich des Servers, in dem die Transaktionsobjekte eingerichtet werden sollen. Der Client könnte versuchen, einen Transaktionsgenerator (transaction factory) (CosTransaction::TransactionFactory) in dem Server zu finden, in dem der Client die Transaktionsobjekte einrichten will, in dem Transaktionsgenerator ein Erzeugungsverfahren aufzurufen und schließlich das Verfahren CosTransactions::Current::resume() aufzurufen, um die Transaktion „zum Laufen zu bringen", jedoch sind hierzu von Seiten des Clients viele Verarbeitungsschritte erforderlich. wesentlich leichter wäre es, wenn der Client die viel einfachere Schnittstelle CosTransactions::Current benutzen könnte und dennoch in der Lage wäre, den Server auszuwählen, in welchem er die Transaktionsobjekte einrichten will, jedoch ist dies beim gegenwärtigen Stand der Technik nicht möglich.
  • Wolisz, A. et al. beschreibt in: „Service provider selection in an open services environment", Proceedings – Second IEEE Workshop on Future Trends of Distributed Systems, Kairo, Ägypten, 30. September bis 2. Oktober 1990, S. 229 bis 235, ISBN 0-8186-2088-9, 1990, Los Alamitos, CA, USA, IEEE Comput. Soc. Press, USA, einen Client, der für einen gewünschten Dienst einen am besten geeigneten Server auswählt.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Gemäß einem ersten Aspekt stellt die vorliegende Erfindung eine Client-Verarbeitungsvorrichtung nach Anspruch 1 bereit.
  • Vorzugsweise ermittelt das Auswahlmittel, welcher ferne Server über eine Ressource verfügt, die bei der Transaktion aktualisiert wird, und wählt diesen fernen Server als denjenigen Server aus, der zum Erzeugen der Transaktionsobjekte am besten geeignet ist.
  • Gemäß einem zweiten Aspekt stellt die vorliegende Erfindung eine Server-Verarbeitungsvorrichtung nach Anspruch 4 bereit.
  • Gemäß einem dritten Aspekt stellt die Erfindung ein Verfahren zum Ausführen der oben bei dem ersten Aspekt beschriebenen Funktionalität des Clients bereit.
  • Gemäß einem vierten Aspekt stellt die Erfindung ein Verfahren zum Ausführen der oben bei dem zweiten Aspekt beschriebenen Funktionalität des Servers bereit.
  • Gemäß einem fünften Aspekt stellt die Erfindung ein Computerprogrammprodukt zum Ausführen der Funktionalität gemäß dem ersten Aspekt bereit, wenn dieses in einem Computer läuft.
  • Gemäß einem sechsten Aspekt stellt die Erfindung ein Computerprogrammprodukt zum Ausführen der Funktionalität gemäß dem zweiten Aspekt bereit, wenn dieses in einem Computer läuft.
  • Da der Client leicht auswählen kann, in welchem Server die Transaktionsobjekte erzeugt werden sollen, kann er zum Beispiel wählen, dass solche Objekte in demjenigen Server-Prozess erzeugt werden, der an der Durchführung der, Transaktion wesentlich beteiligt ist (z. B. über Ressourcen verfügt, die an der Transaktion beteiligt sind), und die Anzahl der Datenübertragungen wird stark reduziert. Dies erkennt man deutlich an einem einfachen Vergleich zwischen 2 (Stand der Technik) und 3 (bevorzugte Ausführungsart der vorliegenden Erfindung). In 2 gibt es fünf Datenübertragungen, in 3 hingegen nur zwei.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung kann durch die folgende Beschreibung ihrer bevorzugten Ausführungsarten unter Bezug auf die beiliegenden Figuren besser verstanden werden.
  • 1 ist eine Übersichtsdarstellung einer gut bekannten heterogenen Client-Server-Architektur, die das Objektverfahren benutzt und in der bevorzugte Ausführungsarten der vorliegenden Erfindung angewendet werden kann;
  • 2 ist eine Übersichtsdarstellung, die eine herkömmliche OTS-Realisierung zeigt;
  • 3 ist eine Übersichtsdarstellung, die eine OTS-Realisierung gemäß einer bevorzugten Ausführungsart der vorliegenden Erfindung zeigt;
  • 4 ist ein Flussdiagramm, das die Schritte zeigt, die durchgeführt werden, wenn ein Client einen Startbefehl gemäß der OTS-Realisierung von 3 sendet;
  • 5 ist eine Übersichtsdarstellung, die eine OTS-Realisierung gemäß einer bevorzugten Ausführungsart- der vorliegenden Erfindung zeigt; und
  • 6 ist eine Übersichtsdarstellung, die einen Server-Prozess gemäß einer bevorzugten Ausführungsart der vorliegenden Erfindung zeigt.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSARTEN
  • Der Objekttransaktionsdienst (OTS) der CORBA liefert ein Schnittstellenobjekt unter der Bezeichnung „Aktuell", welches ein Verfahren „Start" aufweist, das durch Client-Anwendungsprogramme (Quellcode) angewendet wird, um den zugrunde liegenden Softwareschichten den Beginn einer Transaktion mitzuteilen. Gemäß der bevorzugten Ausführungsart der vorliegenden Erfindung geht die zugrunde liegende Software entsprechend dazu über, die Transaktion durch Einrichten der Transaktionsstatusobjekte in einem Server zu erzeugen, der wesentlich an der Transaktion beteiligt ist (z. B. in einem Server, der über Serverressourcen verfügt, die an der Transaktion beteiligt sind), wenn die Client-Anwendung in einer bestimmten Client-Architektur eingerichtet oder ausgeführt wird und das Verfahren „Start" enthält.
  • Bei der bevorzugten Ausführungsart der vorliegenden Erfindung startet eine in einem Client-Prozess 31 (siehe 3) laufende Transaktion wie üblich mit dem Aufrufen des Verfahrens „Start" in dem Schnittstellenobjekt „Aktuell". Dann registriert der Client-Prozess die Tatsache, dass er diesen Befehl gesendet hat, zum Beispiel durch lokales Erzeugen einer Mindestmenge von Objekten. Dieser Vorgang ist in dem Flussdiagramm von 4 in Schritt 41 veranschaulicht. In diesem anschaulichen Beispiel wird angenommen, dass die durchgeführte Transaktion eine Geldabhebung von einem Bankkonto ist; das ist ein üblicher Vorgang, der täglich auf der ganzen Welt durchgeführt wird, wobei als Client ein Geldautomat (Automated Teller Machine, ATM) dient.
  • Man beachte, dass beim Stand der Technik an dieser Stelle ein ferner Prozess 22 eingerichtet wurde und in diesem fernen Prozess 22 die Transaktionsobjekte (221 in 2) erzeugt wurden. Die vorliegende Erfindung verschiebt die Erzeugung dieser Transaktionsobjekte wie später beschrieben auf einen späteren Zeitpunkt.
  • Dann sendet die in dem Client-Prozess 31 laufende Anwendung einen Abbuchungsbefehl an das Bankkontoobjekt 331 in dem Server-B-Prozess 33, was den ersten wesentlichen Teil der Abhebungstransaktion ausmacht. Bei diesem Beispiel stellt der Abbuchungsbefehl den ersten fernen Datenstrom dar, den der Client-Prozess nach dem Senden des Befehls „Start" während der Transaktion sendet. Beim Erteilen dieses Befehls muss der Client-Prozess einen Transaktionskontext in den Befehl einfügen, damit das Bankkontoobjekt 331 erfährt, dass der Befehl Bestandteil einer Transaktion ist, und die spezielle Transaktion erkennen kann.
  • Beim Stand der Technik (2) empfing der Client-Prozess 21 den Transaktionskontext von den Transaktionsobjekten 221, die in dem fernen Prozess 22 erzeugt wurden. Bei der bevorzugten Ausführungsart der vorliegenden Erfindung sind die Transaktionsobjekte zu diesem Zeitpunkt jedoch noch nicht erzeugt worden und konnten dem Client-Prozess den Transaktionskontext nicht zur Verfügung stellen. Deshalb wird bei der bevorzugten Ausführungsart, wenn der Client-Prozess 31 in dem fernen Prozess 33 den Abbuchungsbefehl an das Bankkontoobjekt 331 sendet, in den Befehl ein spezieller Transaktionskontext (z. B. ein Transaktionskontext NULL) eingefügt (Pfeil mit der Zahl 1 in der Kreisfläche in 3). Ein Transaktionskontext NULL bedeutet, dass alle Felder des Transaktionskontextes auf null gesetzt sind. Dieser spezielle Transaktionskontext zeigt an, dass eine Transaktion gestartet worden ist, aber die Transaktionsobjekte noch nicht erzeugt worden sind. Diese letztere Operation ist in dem Flussdiagramm von 4 in Schritt 42 veranschaulicht.
  • Wenn der Server-B-Prozess 33 diesen speziellen Transaktionskontext wahrnimmt (z. B. den Transaktionskontext NULL), ist er davon in Kenntnis gesetzt, dass eine Transaktion gestartet worden ist, aber die Transaktionsobjekte noch nicht erzeugt worden sind. Dann erzeugt der Server-B-Prozess 33 lokal die Transaktionsobjekte 332 (Schritt 43). Jetzt, da die Transaktionsobjekte 332 erzeugt worden sind, hat die Transaktion einen gültigen Transaktionskontext, und ein solcher gültiger Transaktionskontext wird der Transaktion zugewiesen. Dann sendet der Server-B-Prozess eine Antwort (Pfeil mit der Zahl 2 in der Kreisfläche) an den Client-Prozess 31, um diesem den gültigen Transaktionskontext mitzuteilen (Schritt 44 in 4). Jetzt ist der Client-Prozess vollständig über die erzeugte Transaktion informiert.
  • An dieser Stelle verläuft der Datenaustausch (Schritt 45) zwischen dem Bankkontoobjekt 331 und den Transaktionsobjekten 332 in der üblichen Weise mit dem Unterschied, dass sämtliche Datenübertragungen innerhalb desselben Prozesses stattfinden und hierfür keine Datenübertragungen erforderlich sind. Bei diesem Beispiel umfasst der Datenaustausch die Anmeldung des Bankkontoobjektes 331 bei den Transaktionsobjekten 332 sowie das Senden eines Ausführungs- oder Rückabwickelbefehls durch die Transaktionsobjekte 332 an das Bankkontoobjekt 331, wenn die Transaktion abgeschlossen wird.
  • Der Client kann weitere Server aufrufen, an der Transaktion teilzunehmen, die sich dann bei den in dem Server-B-Prozess erzeugten Transaktionsobjekten anmelden müssen, was zu Datenübertragungen zwischen den Servern führt. Die Gesamtzahl der Datenübertragungen wird jedoch durch die Anwendung der, Erfindung durch einen Client auf ein Minimum verringert, da zumindest der Austausch zwischen den lokalen Ressourcen im Server-B-Prozess und den Transaktionsobjekten nicht zu Datenübertragungen führt. Auch bei einer Transaktion, an der nur ein Server-Prozess beteiligt ist, kommt es nur zwischen dem Client-Prozess und diesem einzigen Server-Prozess zu Datenübertragungen.
  • Bei einer alternativen Ausführungsart braucht der Server-B-Prozess 33 die Transaktionsobjekte nicht bereits beim Einfügen des Transaktionskontextes NULL in den Server-B-Prozess 33 zu erzeugen, sondern kann dies zu einem späteren Zeitpunkt tun, z. B. bei der Anmeldung der Ressource.
  • Obgleich bei der anschaulichen Ausführungsart ein Transaktionskontext NULL (bei dem alle Felder auf null gesetzt sind) verwendet wurde, können für den Transaktionskontext auch andere spezielle Werte verwendet werden. Zum Beispiel können die vertraulichen Datenfelder des Transaktionskontextes auf bestimmte Werte gesetzt werden.
  • Die obigen Darlegungen beschreiben eine Verbesserung, welche IBM an ihrem in 2 veranschaulichten ursprünglichen Produkt Component Broker Series vorgenommen hat und die zu einer intelligenten Einbettung der Transaktionsobjekte in den ersten bei der Transaktion aufgerufenen Server-Prozess führt. Diese Verbesserung ist in der gleichzeitig anhängigen, von IBM am 16. Januar 1998 eingereichten Patentanmeldung des Vereinigten Königreichs unter der Nummer 9 800 830.3 beschrieben worden. Es gibt jedoch viele Transaktionen, bei denen es nicht am günstigsten ist, die Transaktionsobjekte in dem ersten aufzurufenden Server-Prozess erzeugen zu lassen.
  • Zum Beispiel werde angenommen, dass der erste Aufruf der Transaktion ein Berechtigungsaufruf an ein Berechtigungs-Businessobjekt zum Überprüfen des Clients ist (z. B. um sicherzustellen, dass der Client zur Ausführung dieser Transaktionsart berechtigt ist). Durch das Einfügen der Transaktionsobjekte in den Server-Prozess, der dieses Businessobjekt enthält, würde die Anzahl der Datenübertragungen nicht verringert werden, da dieser Server-Prozess über kein Businessobjekt verfügt, das eine Ressource darstellt, die während der Transaktion aktualisiert wird. Das heißt, dass am Ende der Transaktion viele Datenübertragungen erforderlich sind, wenn die Transaktionsobjekte in diesem Server-Prozess mit dem Berechtigungs-Businessobjekt erzeugt würden, da sich sämtliche Businessobjekte, die während der Transaktion aktualisierte Ressourcen darstellen, in anderen Server-Prozessen befinden.
  • Ein weiteres Beispiel besteht darin, dass der erste Aufruf nach einem Businessobjekt in der Transaktion ein Nur-Lese-Aufruf nach einem Businessobjekt ist, das eine Ressource darstellt. Zum Beispiel fordert der erste Aufruf in einer Transaktion nur den Wert eines Kontostandes des Bankkontos zu lesen, nicht aber eine Aktualisierung eines Wertes des Businessobjektes durchzuführen, durch welches die Bankkontoressource dargestellt wird. Auch diesem Fall wäre es nicht von Vorteil, die Transaktionsobjekte in dem Server-Prozess zu erzeugen, der dieses Businessobjekt enthält.
  • Um dem Client mehr Entscheidungsfreiheit darüber zu verleihen, welcher Server-Prozess die Transaktionsobjekte erzeugen soll, ist die vorliegende Erfindung entwickelt worden, deren bevorzugte Ausführungsart im Folgenden in Bezug auf die Erläuterung dieser zusätzlichen Funktionalität weiter beschrieben wird.
  • In 5 wird durch den Client-Prozess 51 die Bearbeitung einer Transaktion angewiesen. Der erste Aufruf an einen fernen Server-Prozess in der Transaktion ist ein Aufruf an ein Berechtigungs-Businessobjekt 531 in dem Server-B-Prozess 53, um die Berechtigung des Clients 51 zu überprüfen. Der zweite Aufruf an den fernen Prozess in der Transaktion ist ein Aufruf an das Bankkontoobjekt 521 in dem Server-A-Prozess 52, um einfach den Wert des Kontostandes zu lesen. Der dritte Aufruf an den fernen Prozess in der Transaktion ist ein Aufruf an das Bankkontoobjekt 541 in dem Server-C-Prozess 54, um den Zahlenwert des Kontostandes dieses Bankkontos zu verringern, um eine Geldauszahlung zu bewirken.
  • Bei der oben beschriebenen Transaktion wäre es nicht von Vorteil, die Transaktionsobjekte in dem Server-A-Prozess 52 oder in dem Server-B-Prozess 53 zu erzeugen, da in diesen Prozessen kein Businessobjekt enthalten ist, das eine bei der Transaktion aktualisierte Ressource darstellt. Es wäre eher sehr vorteilhaft, die Transaktionsobjekte im Server-C-Prozess zu erzeugen, da dies derjenige Prozess ist, der über das bei der Transaktion aktualisierte Bankkontoobjekt 541 verfügt.
  • Die vorliegende Erfindung fügt in die Server-Prozesse 52, 53 und 54 Pseudo-Businessobjekte 522, 532 bzw. 542 ein. Jedem dieser Pseudo-Businessobjekte wird ein bekannter Schlüssel zugewiesen (der zum Beispiel aus dem Namen des Servers erzeugt wurde), sodass der Client 51 jedes der Pseudo-Businessobjekte leicht einfügen kann. Den Pseudo-Businessobjekten kann eine beliebige Funktionalität zugewiesen werden, solange sie sich von dem Objekt CosTransactions::Transactional herleiten. Diese dienen dazu, ein leicht verfügbares Objekt bereitzustellen, das in jedem aus einer Vielzahl von Servern verfügbar ist, sodass der Client jeden aus der Vielzahl von Servern auswählen kann, um die Transaktionsobjekte dort zu erzeugen. Der Client 51 stellt sicher, dass der erste Aufruf an einen fernen Prozess in der Transaktion ein Aufruf an das Pseudo-Businessobjekt in dem Server-Prozess ist, in welchem der Client die Transaktionsobjekte erzeugen möchte. wenn sich ein Pseudo-Businessobjekt in einem Server befindet, kann dieser durch einen Client ausgewählt werden, um die Transaktionsobjekt zu erzeugen.
  • Bei dem oben angegebenen Beispiel in 5 sind die beiden ersten Aufrufe der Transaktion des Clients Aufrufe an das Berechtigungs-Businessobjekt 531 im Prozess 53 und an das Bankkontoobjekt 521 im Prozess 52. Der Client-Prozess 51 verändert die Transaktion jedoch, sodass der allererste ferne Aufruf (der so eingerichtet wird, dass er vor diesen beiden Aufrufen erfolgt) ein Aufruf an das Pseudo-Businessobjekt 542 im Server-C-Prozess 54 ist, da sich hier das bei der Transaktion zu aktualisierende Bankkontoobjekt 541 befindet und dies somit der am besten geeignete Prozess ist, in dem die Transaktionsobjekte unterzubringen sind.
  • Der Client-Prozess 51 richtet somit, wie in 5 gezeigt, einen ersten Aufruf (Pfeil mit Zahl 1 im Kreisfeld) an das Pseudo-Businessobjekt 542 im Server-C-Prozess 54. Dies entspricht in 4 dem Schritt 42, aber der Client sendet einen Transaktionskontext NULL nicht an das Bankkontoobjekt, sondern an das Pseudo-Businessobjekt 542. Die einzige Aufgabe dieses Aufrufs besteht darin, im Server-C-Prozess 54 die Transaktionsobjekte 543 zu erstellen (siehe 6). Das Pseudo-Businessobjekt nimmt den Transaktionskontext NULL in diesem ersten Aufruf vom Client zur Kenntnis und fährt als Reaktion auf diesen Erkennungsschritt mit dem Erzeugen der Transaktionsobjekte fort (dies entspricht dem Schritt 43). Zweitens richtet der Client-Prozess einen zweiten Aufruf (Pfeil mit der Zahl 2 im Kreisfeld) an das Berechtigungs-Businessobjekt 531 im Server-B-Prozess 53, um die Berechtigung des Clients zu überprüfen. Drittens richtet der Client-Prozess einen dritten Aufruf (Pfeil mit Zahl 3 im Kreisfeld) an das Bankkontoobjekt 521 im Server-A-Prozess, um den Kontostand dieses Bankkontos zu lesen. Viertens richtet der Client-Prozess einen vierten Aufruf (Pfeil mit zahl 4 im Kreisfeld) an das Bankkontoobjekt 541 im Server-C-Prozess, um den Kontostand dieses Kontos zu verringern (da hiervon Geld abgehoben wird).
  • Nachdem der Server-C-Prozess 54 lokal die Transaktionsobjekte erzeugt hat, antwortet der Prozess 54 dem Client mit dem gültigen Transaktionskontext (dies entspricht Schritt 44).
  • Die bevorzugte Ausführungsart der vorliegenden Erfindung beinhaltet somit einen Client, der eine Transaktion durchzuführen beabsichtigt, den für das Einrichten der Transaktionsobjekte am besten geeigneten Server-Prozess ermittelt und zu Beginn der Transaktion einen Aufruf an ein in dem ermittelten Server-Prozess befindliches Pseudo-Businessobjekt richtet. Das führt dazu, dass die Transaktionsobjekte in diesem ermittelten Server-Prozess erzeugt werden.
  • Alternativ werden keine Pseudo-Businessobjekte verwendet. Stattdessen werden Pseudoverfahren in vorhandenen Objekten (z. B. dem Bankkontoobjekt 541) aufgerufen. Bei dieser zweiten Ausführungsart wäre der erste Aufruf in dem obigen Beispiel von 5 ein Aufruf vom Client-Prozess 51 an das Bankkontoobjekt 541, welches das Pseudoverfahren wie beispielsweise bankacount.hello() des Objekts 541 aufruft, wodurch die Transaktionsobjekte in dem Server-Prozess erzeugt werden, in dem sich das Bankkontoobjekt 541 befindet.

Claims (12)

  1. Client-Verarbeitungsvorrichtung zur Verwendung in einem Client-/Server-Rechensystem, die in Verbindung mit einer Vielzahl von Server-Verarbeitungsvorrichtungen eine verteilte Transaktion ausführt, wobei zu der verteilten Transaktion eine Vielzahl von Transaktionsaufrufen an mindestens eine Server-Verarbeitungsvorrichtung gehören und die Client-Verarbeitungsvorrichtung Folgendes umfasst: ein Mittel zum Auswählen einer aus der Vielzahl von Server-Verarbeitungsvorrichtungen als diejenige Server-Verarbeitungseinheit, die die Transaktionsobjekte aufnimmt, welche die verteilte Transaktion darstellen; ein Mittel zum Erzeugen eines weiteren Aufrufs zusätzlich zu der Vielzahl von Transaktionsaufrufen, die zu der verteilten Transaktion gehören, wobei es sich bei dem zusätzlichen Aufruf um einen Aufruf der ausgewählten Server-Verarbeitungsvorrichtung handelt und der zusätzliche Aufruf einen Transaktionskontext mit einem speziellen Wert enthält, der dem ausgewählten Server anzeigt, dass eine Transaktion begonnen worden ist, aber die die Transaktion darstellenden Transaktionsobjekte noch nicht erzeugt worden sind; ein Mittel zum Senden des zusätzlichen Aufrufs, bevor einer aus der Vielzahl von Transaktionsaufrufen gesendet wird, an ein Pseudo-Businessobjekt (522, 532, 542), das sich in der ausgewählten Server-Verarbeitungsvorrichtung befindet, oder zum Senden des zusätzlichen Aufrufs an ein Pseudoverfahren in einem Objekt, das sich in der ausgewählten Server-Verarbeitungsvorrichtung befindet; ein Mittel zum Empfangen eines geänderten Transaktionskontextes von der ausgewählten Server-Verarbeitungsvorrichtung, nachdem die ausgewählte Server-Verarbeitungsvorrichtung die Transaktionsobjekte erzeugt hat; und ein Mittel zum Senden der Vielzahl von Transaktionsaufrufen zu der mindestens einen Server-Verarbeitungsvorrichtung durch Übertragen des geänderten Transaktionskontextes in der Vielzahl von Transaktionsaufrufen.
  2. Vorrichtung nach Anspruch 1, wobei der spezielle wert ein leerer Wert NULL ist.
  3. Vorrichtung nach Anspruch 1, bei der durch das Auswahlmittel eine Server-Verarbeitungsvorrichtung ausgewählt wird, die eine während der Transaktion aktualisierte Ressource besitzt.
  4. Erste Server-Verarbeitungsvorrichtung zur Verwendung in einem Client-Server-Rechnersystem, das eine verteilte Transaktion in Verbindung mit einer Client-Verarbeitungsvorrichtung ausführt, wobei zu der verteilten Transaktion eine Vielzahl von Transaktionsaufrufen an mindestens eine aus einer Vielzahl von Server-Verarbeitungseinheiten gehören, wobei die Clientvorrichtung Folgendes umfasst: ein Mittel zum Auswählen der ersten Server-Verarbeitungsvorrichtung, in der sich Transaktionsobjekte befinden, die die verteilte Transaktion darstellen; ein Mittel zum Erzeugen eines zusätzlichen Aufrufs neben der Vielzahl zu der verteilten Transaktion gehörender Transaktionsaufrufe, wobei der zusätzliche Aufruf ein Aufruf für die erste Server-Verarbeitungsvorrichtung ist und einen Transaktionskontext mit einem speziellen Wert enthält, welcher der ersten Server-Verarbeitungsvorrichtung anzeigt, dass eine Transaktion gestartet wurde, dass aber die diese Transaktion darstellenden Transaktionsobjekte noch nicht erzeugt wurden; ein Mittel zum Senden des zusätzlichen Aufrufs vor dem Senden eines aus der Vielzahl von Transaktionsaufrufen, an ein in der ersten Server-Verarbeitungsvorrichtung befindliches Pseudo-Businessobjekt oder zum Senden des zusätzlichen Aufrufs an ein Pseudoverfahren in einem Objekt, welches sich in der ersten Server-Verarbeitungsvorrichtung befindet; ein Mittel zum Empfangen eines geänderten Transaktionskontextes von der ersten Server-Verarbeitungsvorrichtung, nachdem die erste Server-Verarbeitungsvorrichtung diese Transaktionsobjekte erzeugt hat; und ein Mittel zum Senden der Vielzahl von Transaktionsaufrufen an die mindestens eine Server- Verarbeitungsvorrichtung durch Übertragen des in der Vielzahl von Transaktionsaufrufen enthaltenen geänderten Transaktionskontextes; wobei die erste Server-Verarbeitungsvorrichtung Folgendes umfasst: ein Mittel zum Empfangen des zusätzlichen Aufrufs; ein Mittel zum Erkennen des den speziellen Wert aufweisenden Transaktionswertes in dem zusätzlichen Aufruf; ein Mittel zum Erzeugen der Transaktionsobjekte; ein Mittel zum Erzeugen des geänderten Transaktionskontextes; und ein Mittel zum Zurücksenden des geänderten Transaktionskontextes zur der Client-Verarbeitungsvorrichtung.
  5. Server-Verarbeitungsvorrichtung nach Anspruch 4, bei der der spezielle Wert der leere Wert NULL ist.
  6. Client-Verarbeitungsverfahren zur Verwendung in einem Client-Server-Rechensystem, welches eine verteilte Transaktion in Verbindung mit einer Vielzahl von Server-Verarbeitungsvorrichtungen ausführt und bei dem die verteilte Transaktion eine Vielzahl von Transaktionsaufrufen für mindestens eine der Server- Verarbeitungsvorrichtungen enthält, wobei die Client-Verarbeitungsvorrichtung die folgenden Schritte umfasst: Auswählen einer aus der Vielzahl von Server-Verarbeitungsvorrichtungen, die Transaktionsobjekte aufnimmt, welche die verteilte Transaktion darstellen; Erzeugen eines zusätzlichen Aufrufs außer der Vielzahl zu der verteilten Transaktion gehörender Transaktionsaufrufen, wobei der zusätzliche Aufruf ein Aufruf an die ausgewählte Server-Verarbeitungsvorrichtung ist, wobei der zusätzliche Aufruf einen Transaktionskontext mit einem speziellen Wert enthält, der dem ausgewählten Server anzeigt, dass eine Transaktion begonnen wurde, dass aber die die Transaktion darstellenden Transaktionsobjekte noch nicht erzeugt wurden; Senden des zusätzlichen Aufrufs vor dem Senden eines aus der Vielzahl von Transaktionsaufrufen an ein in der ausgewählten Server-Verarbeitungsvorrichtung enthaltenes Pseudo-Businessobjekt oder zum Senden des zusätzlichen Aufrufs an ein Pseudoobjekt in einem in der ausgewählten Server-Verarbeitungsvorrichtung befindlichen Objekt; Empfangen eines geänderten Transaktionskontextes von der ausgewählten Server-Verarbeitungsvorrichtung, nachdem die ausgewählte Server-Verarbeitungsvorrichtung die Transaktionsobjekte erzeugt hat; und Senden der Vielzahl von Transaktionsaufrufen an die mindestens eine der Server-Verarbeitungsvorrichtungen durch Übertragen des in der Vielzahl von Transaktionsaufrufen enthaltenen geänderten Transaktionskontextes.
  7. verfahren nach Anspruch 6, bei dem der spezielle Wert ein leerer Wert NULL ist.
  8. Verfahren nach Anspruch 6, bei dem der Auswahlschritt eine Server-Verarbeitungsvorrichtung auswählt, die eine Ressource besitzt, welche während der Transaktion aktualisiert wird.
  9. Server-Verarbeitungsverfahren zur Verwendung in einem Client-Server-Rechensystem, das in einer ersten Server-Verarbeitungsvorrichtung ausgeführt wird und in Verbindung mit einer Client-Verarbeitungsvorrichtung eine verteilte Transaktion ausführt, wobei die verteilte Transaktion eine Vielzahl von Transaktionsaufrufen für mindestens eine aus einer Vielzahl von Server-Verarbeitungsvorrichtungen beinhaltet, wobei die Client-Verarbeitungsvorrichtung Folgendes umfasst: ein Mittel zum Auswählen der ersten Server-Verarbeitungsvorrichtung, die die Transaktionsobjekte aufnimmt, welche die verteilte Transaktion darstellen; ein Mittel zum Erzeugen eines zusätzlichen Aufrufs außer den zu der verteilten Transaktion gehörenden Transaktionsaufrufen, wobei der zusätzliche Aufruf an die erste Server-Verarbeitungsvorrichtung gerichtet ist und einen Transaktionskontext mit einem speziellen wert enthält, welcher der ersten Server-Verarbeitungsvorrichtung anzeigt, dass eine Transaktion begonnen wurde, dass die die Transaktion darstellenden Transaktionsobjekte jedoch noch nicht erzeugt worden sind; ein Mittel zum Senden, bevor einer aus der Vielzahl von Transaktionsaufrufen gesendet wird, des zusätzlichen Aufrufs an in der ersten Server-Verarbeitungsvorrichtung befindliches Pseudo-Businessobjekt oder zum Senden des zusätzlichen Aufrufs an ein Pseudoverfahren in einem Objekt, das sich in der ersten Server-Verarbeitungsvorrichtung befindet; ein Mittel zum Empfangen eines geänderten Transaktionskontextes von der ersten Server-Verarbeitungsvorrichtung, nachdem die erste Server-Verarbeitungsvorrichtung die Transaktionsobjekte erzeugt hat; und ein Mittel zum Senden der Vielzahl von Transaktionsaufrufen an die mindestens eine Server-Verarbeitungsvorrichtung durch Übertragen des in der Vielzahl von Transaktionsaufrufen enthaltenen geänderten Transaktionskontextes; wobei das Server-Verarbeitungsverfahren die folgenden Schritte umfasst: Empfangen des zusätzlichen Aufrufs; Erkennen des Transaktionswertes in dem zusätzlichen Aufruf, der den speziellen Wert besitzt; Erzeugen der Transaktionsobjekte; Erzeugen des geänderten Transaktionskontextes; und Zurücksenden des geänderten Transaktionskontextes zur Client-Verarbeitungsvorrichtung.
  10. Server-Verarbeitungsverfahren nach Anspruch 9, bei dem der spezielle Wert ein leerer Wert NULL ist.
  11. Computerprogrammprodukt, das in einem durch einen Computer lesbaren Speichermedium gespeichert ist, zum Ausführen des Verfahrens nach Anspruch 6, wenn es in einem Computersystem läuft.
  12. Computerprogrammprodukt, das in einem durch einen Computer lesbaren Speichermedium gespeichert ist, zum Ausführen des Verfahrens nach Anspruch 6, wenn es in einem Computersystem läuft.
DE69814697T 1998-03-31 1998-12-18 Vorrichtung, methode und computer programm produkt für client/server rechner mit vom client auswählbarer lokalisierung von transaktionsobjekten Expired - Lifetime DE69814697T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9806779A GB2336006A (en) 1998-03-31 1998-03-31 Client/server computing with client selectable location of transaction objects
GB9806779 1998-03-31
PCT/GB1998/003826 WO1999050745A1 (en) 1998-03-31 1998-12-18 An apparatus, method and computer program product for client/server computing with client selectable location of transaction objects

Publications (2)

Publication Number Publication Date
DE69814697D1 DE69814697D1 (de) 2003-06-18
DE69814697T2 true DE69814697T2 (de) 2004-04-08

Family

ID=10829527

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69814697T Expired - Lifetime DE69814697T2 (de) 1998-03-31 1998-12-18 Vorrichtung, methode und computer programm produkt für client/server rechner mit vom client auswählbarer lokalisierung von transaktionsobjekten

Country Status (10)

Country Link
US (1) US6374283B1 (de)
EP (1) EP1068571B1 (de)
JP (1) JP3579353B2 (de)
KR (1) KR100404786B1 (de)
CN (1) CN100377090C (de)
DE (1) DE69814697T2 (de)
GB (1) GB2336006A (de)
IL (1) IL135479A (de)
PL (1) PL193051B1 (de)
WO (1) WO1999050745A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643670B2 (en) * 2001-02-27 2003-11-04 Microsoft Corporation Efficient replication of an expanded partial database
US20020152145A1 (en) * 2001-04-13 2002-10-17 Rebecca Wanta Apparatus and method for standardized banking data system interfaces
US20050261914A1 (en) * 2002-07-19 2005-11-24 Microsoft Corporation Method and system for managing long running transactions
US8108920B2 (en) * 2003-05-12 2012-01-31 Microsoft Corporation Passive client single sign-on for web applications
US7607008B2 (en) * 2004-04-01 2009-10-20 Microsoft Corporation Authentication broker service
KR100587563B1 (ko) * 2004-07-26 2006-06-08 삼성전자주식회사 상황인지 서비스를 제공하는 장치 및 방법
US7702917B2 (en) 2004-11-19 2010-04-20 Microsoft Corporation Data transfer using hyper-text transfer protocol (HTTP) query strings
US7603555B2 (en) * 2004-12-07 2009-10-13 Microsoft Corporation Providing tokens to access extranet resources
US20060123472A1 (en) * 2004-12-07 2006-06-08 Microsoft Corporation Providing tokens to access federated resources
US9392074B2 (en) 2007-07-07 2016-07-12 Qualcomm Incorporated User profile generation architecture for mobile content-message targeting
US9398113B2 (en) 2007-07-07 2016-07-19 Qualcomm Incorporated Methods and systems for providing targeted information using identity masking in a wireless communications device
US20090124241A1 (en) 2007-11-14 2009-05-14 Qualcomm Incorporated Method and system for user profile match indication in a mobile environment
US9391789B2 (en) 2007-12-14 2016-07-12 Qualcomm Incorporated Method and system for multi-level distribution information cache management in a mobile environment
CN101295269B (zh) * 2008-05-26 2010-06-09 浙江大学 一种基于事务的构件交互同步的方法
CN101556720B (zh) * 2009-05-21 2011-11-30 中国建设银行股份有限公司 一种零售网点销售方法及***
US8949596B2 (en) * 2012-07-10 2015-02-03 Verizon Patent And Licensing Inc. Encryption-based session establishment
US11266868B2 (en) 2018-09-04 2022-03-08 John Ronan Muscle stimulation device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2333379A (en) * 1941-04-26 1943-11-02 Melvin M Johnson Bayonet
US5089954A (en) * 1988-08-08 1992-02-18 Bell Communications Research, Inc. Method for handling conversational transactions in a distributed processing environment
AU628753B2 (en) * 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
US5424938A (en) * 1992-10-13 1995-06-13 First Chicago Corporation Method and apparatus for providing access to a plurality of payment networks
KR950012212A (ko) * 1993-10-19 1995-05-16 이헌조 클라이언트 및 서버 프로세스의 트랜잭션 동기 처리방법
US5404523A (en) * 1993-11-10 1995-04-04 Digital Equipment Corporation Method of managing requests in a transaction processing system
GB2288477A (en) * 1994-04-05 1995-10-18 Ibm Communications system for exchanging data between computers in a network.
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
EP0894392A2 (de) * 1996-04-19 1999-02-03 Intergraph Corporation Datenzugriffssystem und verfahren
KR970078205A (ko) * 1996-05-02 1997-12-12 양승택 클라이언트-서버 분산 트랜잭션 통신 제어방식
US6012059A (en) * 1997-08-21 2000-01-04 Dataxel Corporation Method and apparatus for replicated transaction consistency

Also Published As

Publication number Publication date
CN1290362A (zh) 2001-04-04
US6374283B1 (en) 2002-04-16
KR20010042008A (ko) 2001-05-25
CN100377090C (zh) 2008-03-26
EP1068571A1 (de) 2001-01-17
GB2336006A (en) 1999-10-06
JP2002510084A (ja) 2002-04-02
IL135479A0 (en) 2001-05-20
WO1999050745A1 (en) 1999-10-07
KR100404786B1 (ko) 2003-11-07
JP3579353B2 (ja) 2004-10-20
GB9806779D0 (en) 1998-05-27
PL193051B1 (pl) 2007-01-31
IL135479A (en) 2003-11-23
PL343101A1 (en) 2001-07-30
DE69814697D1 (de) 2003-06-18
EP1068571B1 (de) 2003-05-14

Similar Documents

Publication Publication Date Title
DE69814697T2 (de) Vorrichtung, methode und computer programm produkt für client/server rechner mit vom client auswählbarer lokalisierung von transaktionsobjekten
DE69030524T2 (de) Fernanwendungsschnittstelle
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE69628965T2 (de) Verfahren und Gerät zum Verwalten von Beziehungen zwischen Objekten in einer verteilten Objektumgebung
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
DE69832354T2 (de) Netzwerkverwaltungsrahmenwerk
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
DE68919976T2 (de) Verfahren zur Herstellung von aktuellen Terminaladressen für Systemanwender die verteilte Anwendungsprogramme in einer SNA LU 6.2-Netzwerkumbegung verarbeiten.
DE68928195T2 (de) Überwachung von Datenbankobjekten
DE69630329T2 (de) Verfahren zur Verwaltung des Deaktivierens und Ausschaltens eines Servers
DE69812899T2 (de) Webagent zur anforderung von mehreren prozessen
DE69832406T2 (de) Kombiniertes internet-und datenzugangssystem
DE60125705T2 (de) Vorrichtung und Verfahren zur Implementierung eines HTTP Programmstacks auf einem Client
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE10003015A1 (de) Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen
DE60100624T2 (de) Verfahren und vorrichtung zum verbessern der verwendung eines betriebsmittels auf einem verteilten klient
DE10339511A1 (de) System und Verfahren zum dynamischen Sequenzialisieren eines erfordernisbasierten Arbeitsablaufs
WO1998014870A1 (de) Koordinations-system
WO1997001147A2 (de) Verfahren zur vereinfachung der kommunikation mit chipkarten
DE69837550T2 (de) System und Verfahren zur Datenübermittlung von einer Serverapplikation an Klientknoten
EP0868691A1 (de) Verfahren zur zugriffskontrolle auf rechnerkontrollierte programme, die von mehreren benutzereinheiten gleichzeitig benutzt werden können
DE69125879T2 (de) Vorrichtung und Benutzung dieser Vorrichtung in einem Verfahren zum Karten-Auswechseln
DE19924261A1 (de) Netzmanagementverfahren und System
DE19633002C2 (de) Verfahren und Datenverarbeitungssystem zum Behandeln von Fehlern
DE60001743T2 (de) Erweiterung der attribute eines anwendungsprogrammes hergestellt mit einem programmierwerkzeug der vierten generation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7