DE10102649A1 - System und Verfahren für die Realisierung von Transaktionen mit Unterstützung durch ein Verzeichniszugriffs-Protokoll - Google Patents

System und Verfahren für die Realisierung von Transaktionen mit Unterstützung durch ein Verzeichniszugriffs-Protokoll

Info

Publication number
DE10102649A1
DE10102649A1 DE10102649A DE10102649A DE10102649A1 DE 10102649 A1 DE10102649 A1 DE 10102649A1 DE 10102649 A DE10102649 A DE 10102649A DE 10102649 A DE10102649 A DE 10102649A DE 10102649 A1 DE10102649 A1 DE 10102649A1
Authority
DE
Germany
Prior art keywords
transaction
transactionid
transactioncontrol
request
update
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.)
Granted
Application number
DE10102649A
Other languages
English (en)
Other versions
DE10102649B4 (de
Inventor
Markus Eichelsdoerfer
Sven Lange-Last
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
Publication of DE10102649A1 publication Critical patent/DE10102649A1/de
Application granted granted Critical
Publication of DE10102649B4 publication Critical patent/DE10102649B4/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
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Die vorliegende Erfindung beschreibt ein System und ein Verfahren zur Realisierung von Transaktionen innerhalb vorhandener Protokolle für den Zugriff auf Informationen. Die vorliegende Erfindung benutzt vom Protokoll unterstützte Steuerinformationen (Steuerelemente), um Transaktions- oder Nicht-Transaktions-Anfragen zu spezifizieren. Dies wird erreicht durch Hinzufügen von Steuerelementen, z. B. TransactionControl und Transaktionskennzeichner (TransactionId), zu einzelnen Anfragen. DOLLAR A TransactionControl kann ein Steuerelement zum Öffnen oder Schließen einer Transaktion sein. TransactionId kennzeichnet jede einzelne Anfrage, die zu einer bestimmten Transaktion gehört. Eine Transaktion wird von einem Clientprogramm geöffnet, indem TransactionControl mit dem Wert NEW zur ersten Anfrage hinzugefügt wird. Vorzugsweise erzeugt das Serverprogramm einen TransactionId für die geöffnete Transaktion und gibt einen Rückkehrcode zurück, der wenigstens den TransactionId enthält. Alle nachfolgenden zu dieser Transaktion gehörenden Anfragen müssen vom Clientprogramm um den TransactionId erweitert werden. Die Transaktion wird abgeschlossen, indem TransactionControl COMMIT oder ROLLBACK zu der einzelnen Anfrage hinzugefügt wird. Das Verfahren und das System der Erfindung werden vorzugsweise innerhalb von LDAP unter Benutzung von V3-Steuerelementen benutzt (Fig. 2A).

Description

Die vorliegende Erfindung bezieht sich auf ein System und ein Verfahren zur Realisierung von Transaktionen, wobei Steuerelemente (controls) eines Protokolls verwendet werden. Insbesondere bezieht sich die vorliegende Erfindung auf ein System und ein Verfahren zur Sicherung der Konsistenz voneinander abhängiger Eintragungen in einem Verzeichnis- Informationsbaum (Directory Information Tree) (DIT), wenn Eintragungen mit Hilfe eines Verzeichniszugriffs-Protokolls, insbesondere mit dem LDAP V3 (Lightweight Directory Access Protocol), aktualisiert oder erweitert werden.
In der Informationstechnologie definieren Protokolle Regelmengen, die die Art und Weise der Datenübertragung zwischen Computern bestimmen.
LDAP V3 ist ein Protokoll, das für den Zugriff auf Informationen bestimmt ist, die in einem DIT (Verzeichnis- Informationsbaum) gespeichert sind. LDAP V3 ist ein vorgeschlagener Internet-Standard und in IETF RFC Nr. 2251 veröffentlicht. LDAP V3 ermöglicht es LDAP-Clients, Anfragen (requests) zur Suche und/oder zum Aktualisieren von Eintragungen in dem DIT an einen LDAP-Server zu schicken. Der LDAP-Server führt die Anfrage des Clients aus und sendet eine Antwort zurück, die einen Rückkehrcode enthält.
LDAP V3 erlaubt nur unteilbare Anfragen. Eine einzelne Anfrage, die zu einer Folge von Anfragen gehört, wird unabhängig von den anderen ausgeführt. Insbesondere hebt der LDAP-Server die Auswirkungen der Anfragen, die bereits erfolgreich ausgeführt wurden, nicht auf, wenn eine Anfrage der Folge fehlschlägt.
LDAP V3 erlaubt sogenannte Steuerelemente: LDAP-Anfragen können um zusätzliche Informationen, nämlich um einen Namen und einen Wert für das Steuerelement erweitert werden. Der Name des Steuerelementes ist ein eindeutiger LDAP- Objektkennzeichner (OID). Der LDAP-Server muss entscheiden, wie eine Anfrage, die Steuerelemente enthält, zu behandeln ist. Der LDAP-Client kann festlegen, dass der LDAP-Server ein Steuerelement erkennen muss (das Steuerelement ist kritisch) oder aufgefordert wird, ein Steuerelement zu erkennen (nicht kritisch). Der LDAP-Server kann auch zu den Antworten, die er an die LDAP-Clients schickt, Steuerelemente hinzufügen.
Wir setzen voraus, dass zwei Eintragungen A und B in dem DIT stark voneinander abhängen, in der Weise, dass die Eintragung B immer aktualisiert werden muss, wenn die Eintragung A aktualisiert wird. Wenn ein LDAP-Client zwei aufeinanderfolgende Aktualisierungsanforderungen RA (für die Eintragung A) und RB (für die Eintragung B) an den LDAP- Server schickt, und RA ist erfolgreich, und RB schlägt fehl, dann müssen die Auswirkungen von RA zurückgesetzt werden, um den DIT konsistent zu halten.
Die typische Lösung für dieses Problem in der Computertechnologie wird als Transaktion bezeichnet: eine ganze Folge von Anfragen wird ausgeführt, als ob es sich um eine einzige unteilbare Anfrage handelt. Entweder wird die ganze Anfragefolge erfolgreich ausgeführt, oder es wird keine der Anfragen ausgeführt. Eine Transaktion kann explizit geöffnet, explizit geschlossen (commit) oder explizit zum Scheitern gebracht werden (rollback).
LDAP V3 enthält das Transaktionskonzept nicht. Bisher können LDAP-Clients keine Transaktionen auf einem LDAP-Server laufen lassen, da LDAP V3 keine syntaktischen Mittel enthält, um mit Transaktionen zu arbeiten.
Die Zusammenfassung des japanischen Schrift JP 11096062 zeigt ein Verzeichniszugriffs-Verfahren zur Sicherung der Konsistenz von Verzeichnisinformation. Das Verfahren beruht auf einem Verzeichnisserver und einem Client, die durch ein Netzwerk miteinander verbunden sind. Eine Datenbank zur Speicherung und zur Verwaltung der Verzeichnisinformationen ist mit dem Verzeichnisserver verbunden. Der Verzeichnisserver besitzt einen nicht auf Transaktionen orientierten Verarbeitungsteil, um die jeweiligen Zugriffsanfragen als eigenständige Aktion zu verarbeiten. Ein Transaktionsverarbeitungsteil verarbeitet eine Folge von Zugriffsanforderungen als eine einzelne Transaktion. Eine Tabelle zur Verarbeitung von Phasen speichert eine Verarbeitungsphase für jede Verbindung mit dem Client. Auf der Grundlage der gespeicherten Verarbeitungsphase liefert ein Phasenverwaltungsteil die akzeptierte Zugriffsanforderung an den nicht auf Transaktionen orientierten Verarbeitungsteil oder an den Transaktionsverarbeitungsteil. Die Darstellung zeigt nicht, wie das Verzeichniszugriffs-Verfahren der Erfindung innerhalb eines vorhandenen Protokolls benutzt werden kann, ohne das Protokoll selbst anzupassen.
Es ist deshalb eine Aufgabe der vorliegenden Erfindung, ein System und ein Verfahren für die Realisierung von Transaktionen bereitzustellen, wobei in einem Protokoll festgelegte Regeln benutzt werden.
Weiterhin ist es eine Aufgabe der vorliegenden Erfindung, eine Menge von Regeln bereitzustellen, die ein einfaches Verfahren für die Arbeit mit Transaktionen innerhalb eines bestimmten Protokolls ergeben, ohne das Protokoll selbst zu erweitern.
Weiterhin ist es eine Aufgabe der vorliegenden Erfindung, ein System und ein Verfahren für die Realisierung von Transaktionen bereitzustellen, wobei Regeln benutzt werden, die in dem LDAP V3-Protokoll festgelegt sind.
Schließlich ist es eine Aufgabe der vorliegenden Erfindung, ein System und ein Verfahren zur Sicherung der Konsistenz von voneinander abhängigen Verzeichnisinformationen bereitzustellen, wobei in einem Protokoll festgelegte Regeln benutzt werden.
Diese Aufgaben werden durch die Eigenschaften der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen der vorliegenden Erfindung werden in den Unteransprüchen niedergelegt.
Die vorliegende Erfindung beschreibt ein System und ein Verfahren zur Realisierung von Transaktionen innerhalb vorhandener Protokolle, die für den Zugriff auf Informationen benutzt werden. Die vorliegende Erfindung benutzt von dem Protokoll unterstützte Steuerelemente zur Spezifikation von Anfragen mit oder ohne Transaktion. Dies wird erreicht, indem Steuerelemente, z. B. TransactionControl (Transaktionssteuerung) und Transaction Identifier (Transaktionskennzeichner) (TransactionId) zu einzelnen Anfragen hinzugefügt werden. TransactionControl kann ein Steuerelement für das Öffnen oder Schließen einer Transaktion sein. TransactionId kennzeichnet jede einzelne Anfrage, die zu einer bestimmten Transaktion gehört. Eine Transaktion wird von einem Clientprogramm geöffnet, indem ein TransactionControl (TxnControl) mit dem Wert NEW zur ersten Anfrage hinzugefügt wird. Vorzugsweise erzeugt das Serverprogramm für die geöffnete Transaktion einen Transaction Identifier (TxnID) und gibt einen Rückkehrcode zurück, der wenigstens einen Transaction Identifier enthält. Alle nachfolgenden Anfragen, die zu dieser Transaktion gehören, müssen von dem Clientprogramm mit dem Transaction Identifier erweitert werden. Die Transaktion wird geschlossen, indem zu der einzelnen Anfrage TransactionControl COMMIT oder ROLLBACK hinzugefügt wird, vorzugsweise zur letzten Anfrage. In einer bevorzugten Ausführungsform der vorliegenden Erfindung muss eine Anfrage mit dem Steuerelement TxnControl und dem Wert COMMIT erweitert werden, wenn der Client eine offene Transaktion unmittelbar nach der Ausführung einer Anfrage ausführen möchte. Wenn der Client eine offene Transaktion rückgängig machen möchte, ohne dass die Anfrage ausgeführt wurde, muss die Anfrage mit dem Steuerelement TxnControl und dem Wert ROLLBACK erweitert werden. Das Verfahren und das System der Erfindung werden vorzugsweise innerhalb des LDAP unter Verwendung von V3-Steuerelementen benutzt.
Die vorliegende Erfindung wird ausführlich unter Benutzung einer bevorzugten Ausführungsform mit Abbildungen beschrieben, wobei
Fig. 1A eine bevorzugte Ausführungsform einer Client- Server-Architektur ist, auf der die vorliegende Erfindung benutzt werden kann,
Fig. 1B eine weitere Ausführungsform einer Client- Server-Architektur zeigt, in der die vorliegende Erfindung benutzt werden kann,
Fig. 1C-D eine Struktur eines Verzeichnis- Informationsbaumes zeigt, der von dem LDAP- Protokoll benutzt wird,
Fig. 2A-B grundlegende Verfahren zur Realisierung einer auf dem LDAP beruhenden Transaktion entsprechend der vorliegenden Erfindung zeigt,
Fig. 3A-M unterschiedliches Antwortverhalten des LDAP- Servers zeigt, das auf den in den Anfragen enthaltenen Informationen beruht.
Fig. 1A zeigt eine typische Client-Server-Architektur, die von der vorliegenden Erfindung benutzt wird. Auf dem Client- System werden eine Anwendung und ein LDAP-Clientprogramm installiert. Die Anwendung kommuniziert mit dem LDAP-Client, beispielsweise erzeugt und sendet sie Aktualisierungsanfragen (Hinzufügen, Modifizieren, Löschen eines Eintrags in dem DIT) an das LDAP-Clientprogramm.
Das LDAP-Clientprogramm kommuniziert mit einem LDAP- Serverprogramm über das Netzwerk.
Der LDAP-Client und der LDAP-Server benutzen beispielsweise das LDAP-Protokoll, das auf dem TCP/IP beruht. Das LDAP- Clientprogramm fügt zu einer Anfrage zur Eröffnung einer Transaktion ein TransactionControl hinzu, wie durch diese Erfindung gezeigt wird, und schickt diese Anfrage an das LDAP-Serverprogramm. Das LDAP-Serverprogramm erzeugt eine TransactionID und gibt einen Rückkehrcode an das LDAP- Clientprogramm zurück, der wenigstens diese Transaction 1D enthält. Das LDAP-Clientprogramm extrahiert Txnld aus dem Rückkehrcode und fügt zu jeder einzelnen Anfrage, die zu dieser Transaktion gehört, eine TransactionID hinzu. In einer bevorzugten Ausführungsform delegiert das LDAP- Serverprogramm die Verwaltung des DIT an Endcomputer (backends). Jeder Endcomputer 1, 2, 3 besitzt einen festgelegten DIT-Teil 1, 2, 3.
Fig. 1B zeigt eine weitere Ausführungsform einer Client- Server-Architektur, die von der vorliegenden Erfindung benutzt wird.
In Fig. 1B verwaltet der LDAP-Server den DIT selbst.
Anfragen können durch Pufferung oder Aufzeichnung ausgeführt werden.
Pufferung: Das LDAP-Clientprogramm sendet eine um TransactionControl erweiterte Anfrage an das LDAP- Serverprogramm. Das LDAP-Serverprogramm öffnet eine neue Transaktion durch Erzeugung einer Warteschlange, in der alle Anfragen gespeichert werden, die zu der Transaktion gehören.
Wenn die Warteschlangenbildung erfolgreich war, erzeugt der LDAP-Server unverzüglich eine Antwort, die an das LDAP- Clientprogramm geschickt wird.
Aufzeichnung (journalling): Das LDAP-Clientprogramm sendet eine um TransactionControl erweiterte Anfrage an das LDAP- Serverprogramm. Das LDAP-Serverprogramm öffnet eine neue Transaktion, erzeugt einen TransactionId und führt diese Anfrage unverzüglich aus. Der Zustand der Daten des Verzeichnis-Informationsbaums vor der Ausführung dieser Anfrage wird in einem nichtflüchtigen Speichermedium gespeichert.
Fig. 1C zeigt einen DIT, wie er vom LDAP benutzt wird. Der DIT besteht aus Eintragungen, z. B. countryName (Landesname), organizationName (Name des Unternehmens), organisationUnit (Abteilung des Unternehmens), commonName (Eigenname). Jede Eintragung gehört zu einer Objektklasse (z. B. 'person'). Die Objektklasse bestimmt Attribute. Attribute besitzen Werte eines bestimmten Typs.
Fig. 1D zeigt die Struktur einer Adresse der Eintragung in den DIT. Die Adresse ist ein charakteristischer Name (DN). Die Adresse einer Eintragung verkettet alle RDNs auf dem Pfad von der Eintragung bis zur Wurzel. Das DN-Suffix bezeichnet den Unterbaum.
Fig. 2A zeigt das grundlegende Verfahren zur Realisierung von Transaktionen, die von dem LDAP entsprechend der vorliegenden Erfindung unterstützt werden. Um eine Transaktion auszuführen, die die Folge R1 R2 . . . Rn von LDAP- Aktualisierungsanforderungen enthält, muss ein LDAP-Client das Folgende tun:
Hinzufügen des Steuerelementes TransactionControl mit dem Wert NEW zur Anfrage R1, um eine neue Transaktion zu öffnen. Das Steuerelement TransactionId darf nicht festgelegt werden.
Alle nachfolgenden Anfragen R2 . . . Rn müssen (wenigstens) um das Steuerelement TransactionId erweitert werden, das vom LDAP-Server erzeugt wird. Der Wert des Steuerelementes TransactionId muss ein gültiger ID für eine offene Transaktion sein. Der LDAP-Server sendet eine Antwort, die einen solchen Id enthält, wenn eine neue Transaktion eröffnet wird (siehe unten).
Wenn ein LDAP-Client eine offene Transaktion unmittelbar nach der Ausführung von Rn abschließen möchte, muss er Rn mit dem Steuerelement TransactionControl und dem Wert COMMIT erweitern. Das Steuerelement TransactionId muss auch mit einem geeigneten Wert festgelegt werden.
Fig. 2B zeigt das gleiche Transaktionsverfahren wie Fig. 2A, aber mit dem Steuerelement TransactionControl ROLLBACK.
Wenn ein LDAP-Client eine offene Transaktion zurücksetzen möchte, ohne dass Rn ausgeführt wurde, muss er Rn mit dem Steuerelement TransactionControl und dem Wert ROLLBACK erweitern. Das Steuerelement TransactionId muss auch mit einem geeigneten Wert festgelegt werden.
Wie oben dargelegt wurde, sind wenigstens die folgenden Steuerinformationen notwendig und müssen vom LDAP-Server unterstützt werden, um Transaktionen auszuführen:
TransactionControl(TxnControl):
OID: Ein eindeutiger LDAP-Objektkennzeichner.
Beschreibung: Steuerelement, das mit der ersten und der letzten Anfrage einer als eine Transaktion zu betrachtenden Anfragefolge benutzt wird.
Kritikalität (criticality): immer kritisch.
Mögliche Werte: der Wert ist genau eine mit dem Zeichen 0 abgeschlossene Zeichenkette im UTF-8-Code, die genau eine der Zeichenketten (Worte) NEW, COMMIT oder ROLLBACK darstellt. Die Groß- oder Kleinschreibung dieser Zeichenketten spielt keine Rolle.
TransactionId (TxnId):
OID: Ein eindeutiger LDAP-Objektkennzeichner.
Beschreibung: gibt den Transaktions-ID an, der der Transaktion zugeordnet ist, von der die Anfrage einen Teil ausmacht.
Kritikalität: immer kritisch.
Mögliche Werte: der Wert ist genau eine mit dem Zeichen 0 abgeschlossene Zeichenkette im UTF-8-Code, die einen nichtnegativen Wert ungleich null im Format einer long int - Dezimalzahl (kleiner oder gleich 2.147.483.647 = (2^31)-1) darstellt, der den Transaktions-Kennzeichner darstellt. (Es sind nur Werte zulässig, die vorher vom LDAP-Server empfangen wurden - alle anderen werden zurückgewiesen).
LDAP-Aktualisierungsanforderungen sind Modify, Add, Delete und ModifyDN.
Fig. 3A zeigte unterschiedliches Antwortverhalten des LDAP- Servers auf der Grundlage der in den Anfragen enthaltenen Informationen.
Dies ist ein Beispiel für den Standardfall im LDAP V3: es ist keine Transaktionsunterstützung ist verfügbar. Alle Anfragen werden nacheinander ausgeführt. Die einzelnen Anfragen haben, vom LDAP-Server aus gesehen, keine Beziehungen zueinander (siehe Abb. 3A).
Wenn seitens des LDAP-Servers/Endcomputers keine Transaktions-Einrichtungen verfügbar sind, muss der LDAP- Server verfolgen, ob eine einzelne Anfrage, die zu einer Folge von miteinander in Beziehung stehenden Anfragen fehlschlägt. Im Falle eines Fehlschlagens einer Anfrage muss der LDAP-Client die Anfragen manuell aufbauen, die die alten Daten wiederherstellen (siehe Fig. 3B). Die Anfrage R enthält weder Transactioncontrol noch TransactionId: R wird als einzelne unteilbare Anfrage ausgeführt. Keins der Steuerelemente TransactionControl oder TransactionId wird zur Antwort hinzugefügt (siehe Fig. 3C).
Eine Anfrage R, die keine Aktualisierungsanforderung ist und entweder TransactionId oder Transactioncontrol oder beides enthält: R wird nicht ausgeführt, und die Antwort enthält den Rückkehrcode "unwillingToPerform". Keins der Steuerelemente TransactionControl oder TransactionId wird zur Antwort hinzugefügt (siehe Fig. 3D).
Die Anfrage R enthält wenigstens TransactionControl mit einem syntaktisch ungültigen Wert: wie in RFC 2251 festgelegt. R wird nicht ausgeführt.
Die Anfrage R enthält wenigstens TransactionId mit einem syntaktisch ungültigen Wert: wie in RFC 2251 festgelegt. R wird nicht ausgeführt (siehe Fig. 3E).
Die Anfrage R enthält wenigstens TransactionId mit einem Id, der keine offene Transaktion bezeichnet: R wird nicht ausgeführt, und die Antwort enthält den Rückkehrcode "unwillingToPerform". Es wird keines der Steuerelemente TransactionControl und TransactionId zur Antwort hinzugefügt (siehe Fig. 3F).
Die Anfrage R enthält Txnld mit einem gültigen Id, aber sie enthält nicht TransactionControl:
R ist auszuführen. Wenn R erfolgreich ausgeführt werden kann, wird TransactionId mit dem geeigneten Id zur Antwort hinzugefügt. TransactionControl ist nicht in der Antwort enthalten. Wenn R fehlschlägt, werden alle Auswirkungen, die von Anfragen verursacht wurden, die zu der durch Id gekennzeichneten Transaktion gehören, zurückgesetzt, die durch Id gekennzeichnete Transaktion wird geschlossen, und die Antwort wird um TransactionId (Wert Id) und TransactionControl (Wert ROLLBACK - siehe Fig. 3G) erweitert.
Die Anfrage R enthält TransactionId mit einem gültigen Id, und es wird TransactionControl mit dem Wert "NEW"R ausgeführt. Die durch Id gekennzeichnete Transaktion bleibt offen. Die Antwort wird um TransactionId (Wert Id) und TransactionControl (Wert NEW - siehe Fig. 3H) erweitert.
Die Anfrage R enthält TransactionId mit einem gültigen Id und TransactionControl mit dem Wert COMMIT:
R ist auszuführen. Wenn R erfolgreich ausgeführt werden kann, werden TransactionId (Wert Id) und TransactionControl (Wert COMMIT) zur Antwort hinzugefügt, und die durch ID gekennzeichnete Transaktion wird geschlossen (d. h. bestätigt). Wenn R fehlschlägt, werden alle Auswirkungen abgeschlossen, die von Anfragen verursacht werden, die zu der durch Id gekennzeichneten Transaction gehören, und die Antwort wird um TransactionId (Wert Id) und um Transactioncontrol (Wert ROLLBACK - siehe Fig. 3I) erweitert.
Die Anfrage R enthält TransactionId mit einem gültigen Id und Transactioncontrol mit einem Wert ROLLBACK. R wird nicht ausgeführt. Alle Auswirkungen, die von Anfragen verursacht wurden, die zu der durch Id gekennzeichneten Transaktion gehören, werden zurückgesetzt, die durch Id gekennzeichnete Transaktion wird geschlossen, und die Antwort wird um TransactionId (Wert Id) und Transactioncontrol (Wert ROLLBACK - siehe Fig. 3J) erweitert.
Die Anfrage enthält TransactionId nicht, enthält aber TransactionControl mit dem Wert NEW: Es wird eine neue Transaktion mit dem Kennzeichner Id geöffnet. Wenn diese Operation fehlschlägt, wird R nicht ausgeführt, und die Antwort enthält den Rückkehrcode "unwillingToPerform". Die Antwort wird um Transactioncontrol (Wert NEW) erweitert. Das Steuerelement TransactionId ist nicht enthalten. Wenn eine neue Transaktion erfolgreich geöffnet werden kann, wird R ausgeführt. Wenn R erfolgreich ausgeführt werden kann, werden TransactionId (Wert ID) und TransactionControl (Wert NEW) zur Antwort hinzugefügt, und die durch Id gekennzeichnete Transaction bleibt offen. Wenn R fehlschlägt, werden alle von R verursachten Auswirkungen zurückgesetzt, die durch Id gekennzeichnete Transaktion wird geschlossen, und die Antwort wird um TransactionControl (Wert NEW) erweitert. Das Steuerelement TransactionId ist nicht enthalten (siehe Fig. 3K).
Die Anfrage R enthält TransactionId, und sie enthält auch Transactioncontrol mit dem Wert COMMIT: R wird nicht ausgeführt, und die Antwort enthält den Rückkehrcode "unwillingToPerform". Keines der Steuerelemente Transactioncontrol und TransactionId wird zur Antwort hinzugefügt (siehe Fig. 3L).
Die Anfrage R enthält TransactionId nicht, enthält aber Transactioncontrol mit dem Wert ROLLBACK: R wird nicht ausgeführt, und die Antwort enthält den Ergebniscode "unwillingToPerform". Keines der Steuerelemente Transactioncontrol und TransactionId wird zur Antwort hinzugefügt (siehe Fig. 3M).
Zusammenfassend: die vorliegende Erfindung erlaubt es Transaktions-LDAP-Clients, mit Nichttransaktions-LDAP- Servern zu arbeiten, wenn Transaktionen nicht benutzt werden. Wenn in diesem Falle Transaktionen benutzt werden, weist der LDAP-Server Transaktionen zurück, obwohl er von Transaktionen nichts weiß. Dies ist ein wesentlicher Vorteil unserer Erfindung.
Nichttransaktions-LDAP-Clients können mit Transaktions-LDAP- Servern ohne Probleme arbeiten.
Erweiterte Anfragen enthalten einfach einen eindeutigen Objektkennzeichner (OID) und einen (Zeichenketten-) Wert. (Tatsächlich enthalten sie die gleichen Informationen wie ein LDAP V3 - Steuerelement.) Erweiterte Anfragen sind selbständige Anfragen, die sich nicht auf spezielle Eintragungen in dem vom LDAP-Server verwalteten DIT beziehen. Andererseits werden LDAP V3 - Steuerelemente zu "normalen" Anfragen wie add, delete oder search hinzugefügt, die sich immer auf Eintragungen oder Teile des DIT beziehen.
LDAP-Server können die Verwaltung gewisser DIT-Unterteile an sogenannte Endcomputer übertragen. Gerade das wird von dem LDAP-Server OS/390 Security Server getan: der gesamte DIT ist in Teilbäume zerlegt, die von den Endcomputern verwaltet werden. Der LDAP-Server wählt einfach den geeigneten Endcomputer zur Bearbeitung einer Anfrage aus. Damit er das tun kann, muss die ankommende Anfrage einen Verweis auf eine Eintragung oder einen Unterteil des DIT enthalten.
Wenn eine ankommende Anfrage keinen Verweis für den DIT enthält, kann der LDAP-Server die Anfrage nicht an einen Endcomputer delegieren, da kein Endcomputer geeignet ist. Dies ist der Fall für LDAP V3-erweiterte Anfragen. Sie können nur von dem LDAP-Server selbst bearbeitet und nicht ohne weitere Regeln delegiert werden. Solche Regeln können festgelegt werden: Erweiterte Anfragen mit dem OID x werden vom Endcomputer y bearbeitet. Aber diese Regeln sind sehr spezifisch und nicht Teil des LDAP V3.
Deshalb ist die Realisierung von Transaktionen unter Benutzung von Steuerelementen viel leichter als die Benutzung von erweiterten Anfragen. Geeignete "TransactionControls" werden einfach zu den Anfragen hinzugefügt und automatisch zum geeigneten Endcomputer geleitet. So ist nur der Endcomputer verantwortlich für die Unterstützung der Steuerelemente und die Realisierung des Transaktionsverhaltens. Bei dieser Lösung muss der LDAP- Server die OIDs der Steuerelemente nicht kennen und hat nichts mit der Unterstützung der Transaktionen zu tun.
Dies ist anders bei einer Lösung mit erweiterter Anfrage: wenigstens der LDAP-Server muss die OIDs der "transaktionserweiterten Anfragen" kennen und hat den (die) geeigneten Endcomputer zu informieren. Schlimmstenfalls muss der LDAP-Server selbst die Transaktionen unterstützen.

Claims (27)

1. Verfahren zur Realisierung von Transaktionen mit einem existierenden Protokoll, das von verschiedenen miteinander kommunizierenden Systemkomponenten benutzt wird, wobei jede Transaktion zusammengehörige Aktualisierungsanforderungen enthält und die Aktualisierungsanforderung von einer Systemkomponente erzeugt und zu einer anderen Systemkomponente übertragen wird, die den Zugriff auf ein Speichermedium erlaubt, auf dem die zu aktualisierenden Informationen gespeichert sind, wobei das Verfahren beinhaltet:
  • a) die Öffnung einer Transaktion, indem automatisch Steuerelemente (TransactionControl) zu der Aktualisierungsanforderung hinzugefügt werden (erweiterte Aktualisierungsanforderung), die von dem Protokoll unterstützt wird, das den Austausch der Aktualisierungsanforderungen zwischen den Systemkomponenten gewährleistet;
  • b) die automatische Erzeugung eines Transaktionskennzeichners (TransactionId) für die von dem Protokoll unterstützte Transaktion;
  • c) das automatische Hinzufügen des TransactionId zu jeder Aktualisierungsanforderung, die zu der geöffneten Transaktion gehört.
  • d) das automatische Schließen der Transaktion, indem ein von dem System unterstütztes TransactionControl benutzt wird.
2. Verfahren nach Anspruch 1, bei dem die Systemkomponente für die Erzeugung der Aktualisierungsanforderung auf einem Clientsystem installiert ist und die Systemkomponente, die den Zugriff auf zu aktualisierende Informationen erlaubt, auf einem Serversystem installiert ist.
3. Verfahren nach Anspruch 2, bei dem der TransactionId von dem Serversystem erzeugt wird.
4. Verfahren nach Anspruch 2, bei dem der TransactionId von dem Clientsystem erzeugt wird.
5. Verfahren nach Anspruch 2, bei dem der TransactionId vom Serversystem zum Clientsystem geschickt wird.
6. Verfahren nach Anspruch 1, bei dem Schritt a) mit der ersten Aktualisierungsanforderung einer Folge von Aktualisierungsanforderungen ausgeführt wird, die als Transaktion zu betrachten ist.
7. Verfahren nach Anspruch 1, bei dem die Aktualisierungsanforderung eine Anforderung zum Löschen, Modifizieren oder Hinzufügen ist.
8. Verfahren nach Anspruch 1, bei dem das Steuerelement zum Öffnen einer Transaktion entsprechend Schritt a) den Wert NEW hat.
9. Verfahren nach Anspruch 1, bei dem Schritt d) mit der letzten Aktualisierungsanforderung einer Folge von Aktualisierungsanforderungen ausgeführt wird, die als Transaktion zu betrachten ist.
10. Verfahren nach Anspruch 1, bei dem das Steuerelement zum Schließen einer Transaktion entsprechend Schritt d) den Wert COMMIT oder ROLLBACK besitzt.
11. Verfahren nach Anspruch 1, bei dem alle zu einer Transaktion gehörenden erweiterten Aktualisierungsanforderungen in einer Warteschlange gespeichert und als ein Ganzes ausgeführt werden, wenn eine Aktualisierungsanforderung empfangen wird, die den Steuerelementwert COMMIT enthält.
12. Verfahren nach Anspruch 1, bei dem jede einzelne erweiterte, zu einer Transaktion gehörende Aktualisierungsanforderung unmittelbar nach dem Speichern der zu aktualisierenden Daten auf einem nichtflüchtigen Speichermedium ausgeführt wird.
13. Verfahren nach Anspruch 1, bei dem LDAP V3 das besagte Protokoll ist.
14. Verfahren nach Anspruch 13, bei dem die Steuerelemente aus einem Steuerelement-Namen und einem Steuerelement- Wert bestehen, wobei der Name ein eindeutiger LDAP- Objektkennzeichner ist und der Wert durch binäre Daten dargestellt wird.
15. Verfahren nach Anspruch 1, bei dem die zu aktualisierenden Informationen in einem Verzeichnis- Informationsbaum gespeichert sind.
16. Verfahren nach Anspruch 1, bei dem eine Aktualisierungsanforderung, die weder TransactionControl noch TransactionId enthält, als einzelne unteilbare Anforderung ausgeführt wird.
17. Verfahren nach Anspruch 1, bei dem eine Aktualisierungsanforderung mit einem syntaktisch ungültigen Wert für TransactionControl nicht ausgeführt wird.
18. Verfahren nach Anspruch 10, bei dem alle durch den gleichen TransactionId gekennzeichneten Aktualisierungsanforderungen ausgeführt werden, und TransactionControl (Wert COMMIT) und TransactionId werden zur Antwort hinzugefügt, und die von dem TransactionId gekennzeichnete Transaktion wird geschlossen, wenn eine Aktualisierungsanforderung, die ein TransactionControl mit dem Wert COMMIT enthält, sowie ein gültiger TransactionId vom Serversystem empfangen werden.
19. Verfahren nach Anspruch 10, bei dem alle Auswirkungen rückgängig gemacht werden, die von den Aktualisierungsanforderungen verursacht werden, die zu der durch den TransactionId gekennzeichneten Transaktion gehören, die Transaktion geschlossen und eine Antwort um ein TransactionControl (Wert ROLLBACK) und um den TransactionId erweitert wird, wenn die Aktualisierungsanforderung nicht erfolgreich ausgeführt werden kann.
20. Verfahren nach Anspruch 8, bei dem eine neue Transaktion geöffnet wird, wenn die Aktualisierungsanforderung keinen TransactionId, aber TransactionControl mit dem Wert NEW enthält.
21. Verfahren nach Anspruch 1, bei dem alle von den Aktualisierungsanforderungen verursachten Auswirkungen rückgängig gemacht werden, die von dem TransactionId gekennzeichnete Transaktion geschlossen und eine Antwort mit einem Transactioncontrol (Wert NEW) erweitert wird, das den TransactionId nicht enthält, wenn die erste Anforderung einer Transaktion nicht erfolgreich ausgeführt werden kann.
22. System zur Informationsaktualisierung, das umfasst:
ein Clientsystem, das wenigstens ein Clientprogramm zum Hinzufügen der Informationselemente Transactioncontrol und TransactionId enthält, um Anfragen gemäß Anspruch 1 zu aktualisieren;
ein Serversystem, das wenigstens ein Serverprogramm zur Erzeugung von TransactionId nach Anspruch 1 sowie Zugriffs- oder Aktualisierungsinformationen enthält;
ein Datenspeichermedium, das Informationen enthält, auf die zugegriffen werden soll oder die zu aktualisieren sind.
23. System nach Anspruch 22, bei dem das Clientprogramm ein LDAP-Clientprogramm und das Serverprogramm ein LDAP- Serverprogramm ist und die Informationen, auf die zugegriffen werden soll oder die zu aktualisieren ist, in einem Verzeichnis-Informationsbaum enthalten sind.
24. System nach Anspruch 23, das weiterhin umfasst:
wenigstens einen Endcomputer zur Verwaltung eines Teilbaums des Verzeichnis-Informationsbaumes,
eine Komponente, die ein Teil des Serverprogramms ist, um die Aktualisierungsanforderung zu dem Endcomputer zu leiten, der die zu aktulisierenden Informationen verwaltet.
25. System, das umfasst:
ein Client-Datenverarbeitungssystem,
ein auf dem System installiertes Clientprogramm, das wenigstens umfasst:
eine Komponente, um TransactionControl-Information und TransactionId zum Aktualisieren von Anforderungen gemäß Anspruch 1 hinzuzufügen.
26. System, das umfasst:
ein Server-Datenverarbeitungssystem,
ein auf dem System installiertes Serverprogramm, das wenigstens umfasst:
eine Komponente zur Erzeugung von TransactionId nach Anspruch 1,
eine Komponente zum Zugriff auf Daten oder für deren Aktualisierung.
27. Ein Computerprogramm-Produkt, das im internen Speicher eines Computers gespeichert ist und das Softwarecode zur Ausführung des Verfahrens entsprechend 1 bis 21 enthält, wenn das Programm auf diesem Computer läuft.
DE10102649A 2000-03-30 2001-01-20 System und Verfahren für die Realisierung von Transaktionen mit Unterstützung durch ein Verzeichniszugriffs-LDAP-Protokoll Expired - Lifetime DE10102649B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00106869 2000-03-30
EP001068691 2000-03-30

Publications (2)

Publication Number Publication Date
DE10102649A1 true DE10102649A1 (de) 2001-10-11
DE10102649B4 DE10102649B4 (de) 2006-05-24

Family

ID=8168296

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10102649A Expired - Lifetime DE10102649B4 (de) 2000-03-30 2001-01-20 System und Verfahren für die Realisierung von Transaktionen mit Unterstützung durch ein Verzeichniszugriffs-LDAP-Protokoll

Country Status (2)

Country Link
US (1) US20010027445A1 (de)
DE (1) DE10102649B4 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8244837B2 (en) * 2001-11-05 2012-08-14 Accenture Global Services Limited Central administration of one or more resources
US20030088614A1 (en) * 2001-11-06 2003-05-08 Gilles Bellaton Directory server mapping tree
US20030191748A1 (en) * 2002-04-04 2003-10-09 Mayel Espino Method, device and computer program product including a lightweight directory access protocol client architecture
US6920689B2 (en) * 2002-12-06 2005-07-26 Formfactor, Inc. Method for making a socket to perform testing on integrated circuits
GB2402297B (en) 2003-05-15 2005-08-17 Sun Microsystems Inc Update dependency control for multi-master replication
GB2401693B (en) * 2003-05-15 2005-08-17 Sun Microsystems Inc Conflictless replication in a multi-master directory system
US8117605B2 (en) * 2005-12-19 2012-02-14 Oracle America, Inc. Method and apparatus for improving transactional memory interactions by tracking object visibility
US8639655B2 (en) * 2006-08-31 2014-01-28 Red Hat, Inc. Dedicating threads to classes of LDAP service
US7734658B2 (en) * 2006-08-31 2010-06-08 Red Hat, Inc. Priority queue to determine order of service for LDAP requests
EP2748723A4 (de) * 2011-11-03 2015-07-22 Ericsson Telefon Ab L M Verfahren, vorrichtung und zentraler server zur bereitstellung von diensten für einen ldap-client
US9165027B2 (en) 2012-03-29 2015-10-20 Dell Software Inc. Dynamic directory control registration

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758343A (en) * 1995-12-08 1998-05-26 Ncr Corporation Apparatus and method for integrating multiple delegate directory service agents
US5778367A (en) * 1995-12-14 1998-07-07 Network Engineering Software, Inc. Automated on-line information service and directory, particularly for the world wide web
US5983234A (en) * 1997-09-17 1999-11-09 Novell, Inc. Method and apparatus for generically viewing and editing objects
JPH1196062A (ja) * 1997-09-19 1999-04-09 Hitachi Ltd ディレクトリ・アクセス方法
US5890161A (en) * 1997-10-28 1999-03-30 Microsoft Corporation Automatic transaction processing of component-based server applications
US6334114B1 (en) * 1997-10-31 2001-12-25 Oracle Corporation Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm
JPH11167510A (ja) * 1997-12-04 1999-06-22 Hitachi Ltd レプリケーション方法、レプリケーションツール、および、レプリケーションサーバ
JP2000010810A (ja) * 1998-06-22 2000-01-14 Toshiba Corp トランザクション処理のコミット制御方法および同方法が適用される計算機システム
GB2339933A (en) * 1998-07-22 2000-02-09 Ibm Client/server computing with improved correspondence between transaction identifiers when supporting subordinate resource manager(s)
WO2000014618A2 (en) * 1998-08-24 2000-03-16 Fujitsu Limited Workflow system and method
US6178457B1 (en) * 1998-09-17 2001-01-23 Unisys Corporation Method and system for controlling and tracking client access to server software
US6138143A (en) * 1999-01-28 2000-10-24 Genrad, Inc. Method and apparatus for asynchronous transaction processing

Also Published As

Publication number Publication date
US20010027445A1 (en) 2001-10-04
DE10102649B4 (de) 2006-05-24

Similar Documents

Publication Publication Date Title
DE69916928T2 (de) Zugriffsverfahren und Server für Netzwerkverzeichnis
DE69733914T2 (de) Verfahren und Vorrichtung zur dynamischen Klientenauthentifizierung in einem vernetzten Dateiensystem
DE602005002679T2 (de) WEB-Dienst-Anwendungsprotokoll und SOAP-Verarbeitungsmodell
DE69635469T2 (de) Synchronisierung zwischen verschiedenen Computeranbieterumgebungen
DE60225476T2 (de) Verfahren und vorrichtung zum netzwerk-caching
DE69832406T2 (de) Kombiniertes internet-und datenzugangssystem
DE69834579T2 (de) Http- sitzung- überwachung
DE69818008T2 (de) Datenzugriffssteuerung
DE60306186T2 (de) Verfahren und system zur anordnung von dienste in einer webdienstarchitektur
DE69822283T2 (de) Verteilte dauerhafte Speicher für Benutzer- Anbieter- Systeme mit manchmal unterbrochenen Verbindungen
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE60317925T2 (de) Steuerung von netzwerkverkehr in einer peer-to-peer umgebung
DE69921455T2 (de) System und verfahren zur zugriffssteuerung auf gespeicherte dokumente
DE69832354T2 (de) Netzwerkverwaltungsrahmenwerk
DE69731965T2 (de) Zugriff auf rechnerbetriebsmittel von aussen durch eine firewall
DE69838506T2 (de) Verfahren für transaktionen zwischen verteilten datenbanken
DE19805891B4 (de) Konfigurationsvorrichtung für eine Nebenstellenanlage
EP0825524B1 (de) Verfahren zur Verwaltung der Benennung von Objekten
DE69833929T2 (de) Netzzugriffsauthentifizierungssystem
EP1178409A1 (de) Cookiemanager zur Kontrolle des Cookietransfers in Internet-Client-Server Computersystem
DE10116640A1 (de) Auf URL beruhende Token für schwierige Verteilungen, die einen serverseitigen Cookiebehälter benutzen
EP1746502A1 (de) Technik zur Migration einer Host-Umgebung auf eine neue Systemplattform
DE10240117A1 (de) Netzwerkbasiertes Informationsmanagement
EP1194865A2 (de) Verfahren zur datenpflege in einem netzwerk teilweise replizierter datenbanksysteme
DE19954534A1 (de) Rückwärtsindexieren von Zeichenketten in einer relationalen Datenbank zum Suchen mit Joker

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
R071 Expiry of right