DE69734432T2 - Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem - Google Patents

Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem Download PDF

Info

Publication number
DE69734432T2
DE69734432T2 DE69734432T DE69734432T DE69734432T2 DE 69734432 T2 DE69734432 T2 DE 69734432T2 DE 69734432 T DE69734432 T DE 69734432T DE 69734432 T DE69734432 T DE 69734432T DE 69734432 T2 DE69734432 T2 DE 69734432T2
Authority
DE
Germany
Prior art keywords
request
transaction
program execution
server
requests
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
DE69734432T
Other languages
English (en)
Other versions
DE69734432D1 (de
Inventor
Thomas Winchester Hampshire Freund
Simon Antony James Andover Hampshire Holdsworth
Iain Stuart Caldwell Sherborne Dorset Houston
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 DE69734432D1 publication Critical patent/DE69734432D1/de
Application granted granted Critical
Publication of DE69734432T2 publication Critical patent/DE69734432T2/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • 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/465Distributed object oriented systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5016Session
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft das Gebiet der Client/Server-Datenverarbeitung (auch als "verteilte" Datenverarbeitung bekannt), wobei eine Datenverarbeitungseinheit ("der Client") von einer anderen Datenverarbeitungseinheit ("dem Server") die Ausführung eines Teils ihrer Verarbeitungsvorgänge anfordert.
  • Grundlagen der Erfindung
  • Die Client/Server-Datenverarbeitung hat in den vergangenen Jahren im Bereich der Informationstechnik zunehmend an Bedeutung gewonnen. Diese Art von verteilter Datenverarbeitung ermöglicht einer Maschine das Delegieren eines Teils ihrer Verarbeitungsvorgänge an eine andere Maschine, die beispielsweise zum Ausführen dieser Verarbeitungsvorgänge möglicherweise besser geeignet ist.
  • Die Vorteile der Client/Server-Datenverarbeitung wurden durch die Verwendung einer allgemein bekannten, als objektorientierte Programmierung (OOP) bezeichneten Computerprogrammiertechnologie noch weiter vergrößert, die es ermöglicht, dass der Client und der Server sich in verschiedenen (heterogenen) "Plattformen" befinden. Eine Plattform ist eine Kombination aus der spezifischen Hardware, der spezifischen Software, dem Betriebssystem und dem Datenübertragungsprotokoll, die eine Maschine zum Ausführen ihrer Verarbeitungsvorgänge verwendet. Die OOP ermöglicht es dem Clientanwendungsprogramm und dem Serveranwendungsprogramm, in ihren eigenen Plattformen zu arbeiten, ohne sich darum zu kümmern, wie die Verarbeitungsanforderungen der Clientanwendung an die Serveranwendung übertragen und von dieser empfangen werden. Ebenso muss sich die Serveranwendung nicht darum kümmern, wie das OOP-System die Verarbeitungsergebnisse der Serveranwendung empfängt, umsetzt und an die anfordernde Clientanwendung rücküberträgt.
  • Einzelheiten der Art und Weise der Integration von OOP-Verfahren in heterogenen Client-/Serversystemen werden in der US-Patentschrift Nr. 5 440 744 und in der europäischen Patentanmeldung 0 677 943 A2 erläutert. An späterer Stelle wird ein Beispiel der grundlegenden Architektur für ein kontextbezogenes Verständnis der Umgebung der Erfindung gegeben.
  • Wie in 1 gezeigt wird, weist der Clientcomputer 10 (der zum Beispiel ein Personal Computer mit dem darin installierten Betriebssystem OS/2 von IBM sein könnte) ein Anwendungsprogramm 40 auf, das in seinem Betriebssystem ausgeführt wird ("IBM" und "OS/2" sind Warenzeichen der International Business Machines Corporation). Das Anwendungsprogramm 40 benötigt periodisch Verarbeitungsvorgänge, die im Servercomputer 20 ausgeführt werden müssen, und/oder Daten, die zur nachfolgenden Verwendung durch das Anwendungsprogramm 40 vom Server 20 rückübertragen werden müssen. Der Servercomputer 20 kann beispielsweise ein Hochleistungs-Großcomputer sein, auf dem das Betriebssystem MVS von IBM läuft ("MVS" ist ebenfalls ein Warenzeichen der IBM Corp.).
  • Wenn der Clientcomputer 10 eine Anforderung nach den Diensten des Servercomputers 20 machen möchte, benachrichtigt das erste Anwendungsprogramm 40 das erste Logikmittel 50 über den benötigten Dienst. Dies kann beispielsweise erfolgen, indem es den Namen einer fernen Prozedur zusammen mit einer Liste von Eingabe- und Ausgabeparametern an das erste Logikmittel überträgt. Das erste Logikmittel 50 bearbeitet sodann die Task des Einrichtens der notwendigen Datenaustauschvorgänge mit dem zweiten Computer 20 mit Bezugnahme auf Definitionen der in der Speichereinheit 60 gespeicherten verfügbaren Datenübertragungsdienste. Alle diese möglichen Dienste werden als ein zusammenhängendes Gerüst von Objektklassen 70 definiert, wobei diese Klassen von einer einzigen Objektklasse abgeleitet werden. Aus der Definition der Dienste ergeben sich auf diese Weise eine große Anzahl von Vorteilen hinsichtlich der Leistungsfähigkeit und der Wiederverwendbarkeit.
  • Zur Einrichtung des notwendigen Datenaustauschs mit dem Server 20 ermittelt das erste Logikmittel 50, welche Objektklasse im Gerüst verwendet werden muss, und erzeugt sodann ein Exemplar dieses Objekts im Server 20, wobei eine Nachricht an dieses Objekt übertragen wird, um es zum Aufrufen von einer seiner Methoden zu veranlassen. Dies führt zur Einrichtung der Verbindung mit dem Servercomputer 20 über das Verbindungsmittel 80 und das anschließende Übertragen einer Anforderung an das zweite Logikmittel 90.
  • Das zweite Logikmittel 90 leitet die Anforderung sodann weiter an das im Servercomputer 20 ausgeführte zweite Anwendungsprogramm 100 (im Folgenden als Dienstanwendung bezeichnet), so dass die Dienstanwendung 100 die von dieser Anforderung benötigte spezifische Task ausführen kann, beispielsweise die Ausführung einer Datenabrufprozedur. Sobald diese Task ausgeführt wurde, muss die Dienstanwendung die Ergebnisse möglicherweise an den ersten Computer 10 rückübertragen. Während der Ausführung der angeforderten Tasks und wenn Ergebnisse an den ersten Computer 10 rückübertragen werden müssen, steht die Serveranwendung 100 in Wechselwirkung mit dem zweiten Logikmittel 90. Das zweite Logikmittel 90 richtet Exemplare von Objekten ein und ruft geeignete Methoden jener Objekte auf, wenn dies von der Serveranwendung 100 benötigt wird, wobei die Objektexemplare aus dem in der Speichereinheit 110 gespeicherten zusammenhängenden Gerüst von Objektklassen erzeugt werden.
  • Unter Verwendung des obigen Verfahrens ist das Clientanwendungsprogramm 40 nicht der Datenübertragungsarchitektur ausgesetzt. Außerdem wird die Dienstanwendung 100 durch den Standardmechanismus für ihre Umgebung aufgerufen; sie weiß nicht, dass sie von einem fernen Standort aufgerufen wird.
  • Die Object Management Group (OMG) ist ein internationales Konsortium von Organisationen, die an verschiedenen Aspekten der Client/Server-Datenverarbeitung in heterogenen Plattformen mit verteilten Objekten beteiligt sind. Die OMG hat Standards veröffentlicht, mit deren Hilfe Clientcomputer (z.B. 10) Datenaustauschvorgänge (in OOP-Form) mit Servermaschinen (z.B. 20) ausführen. Als Teil dieser Standards wurde ein Object Request Broker (ORB) definiert, der die objektorientierte Brücke zwischen den Client- und den Servermaschinen bereitstellt. Der ORB trennt die Client- und Serveranwendungen von den objektorientierten Einzelheiten der Ausführung, wobei mindestens ein Teil der Verarbeitungsvorgänge des ersten und des zweiten Logikmittels 50 bzw. 90 sowie des Verbindungsmittels 80 ausgeführt wird.
  • Sobald Clientanforderungen den ORB durchlaufen und in den Servercomputer 20 gelangen, sucht der ORB ein bestimmtes Serverobjekt, das die Anforderung ausführen kann, und überträgt die Anforderung an den Objektadapter (ebenfalls durch OMG-Standard definiert) dieses Servers, wo sie in der Warteschlange (dem Puffer) des Objektadapters gespeichert wird, um auf die Verarbeitung durch das Serverobjekt zu warten. Der Puffer ist eine FIFO-Warteschlange (First-In-First-Out queue), was bedeutet, dass die erste Anforderung, die an einem Ende des Puffers empfangen wird, diesen am anderen Ende als erste verlässt. Das Serverobjekt hat eine Vielzahl von parallelen "Programmausführungssegmenten" ("execution threads"), wobei es in jedem ein Exemplar von sich selbst ausführen kann. Auf diese Weise kann das Serverobjekt ähnliche Anforderungen von verschiedenen Clients gleichzeitig verarbeiten. Der Objektadapter prüft, welcher der parallelen Programmausführungssegmente zur Verarbeitung einer weiteren Anforderung bereit ist, und weist die am Ende des Puffers befindliche Anforderung dem nächsten verfügbaren Programmausführungssegment zu. Dies wird in der oben erwähnten US-Patentschrift als "Zuteilungs"-Mechanismus ("dispatching" mechanism) erläutert, wobei der Server in der Warteschlange befindliche Anforderungen Programmausführungssegmenten zuteilt.
  • Diese Architektur war in den Fällen gut geeignet, bei denen ein Clientcomputer 10 wünscht, dass ein Servercomputer 20 ein "Einzelschritt"-Verarbeitungselement ("one-shot" work item) ausführt (was bedeutet, dass der Clientcomputer wahrscheinlich nicht die Ausführung weiterer Verarbeitungsvorgänge von diesem bestimmten Server benötigt, nachdem der Server das Verarbeitungsergebnis rückübertragen hat). Da nicht unbedingt ein Zusammenhang zwischen den verschiedenen im FIFO-Puffer eines bestimmten Servers gespeicherten Clientanforderungen bestehen muss, kann das nächste verfügbare Programmausführungssegment einfach der nächsten Ausgabe des Puffers zugeteilt werden.
  • Es gibt jedoch auch andere Client/Server-Anwendungen, die ihrem Wesen nach keine "Einzelschrittverarbeitung" sind und einen fortdauernden Zusammenhang zwischen einer bestimmten Clientmaschine 10 und einer bestimmten Servermaschine 20 benötigen. Ein Beispiel für solche Anwendungen ist die Verarbeitung von "Transaktionen".
  • Im Computer realisierte Transaktionsverarbeitungssysteme werden in mehreren Industriezweigen für schwierige geschäftliche Tasks verwendet. Eine Transaktion definiert eine einzelne Arbeitseinheit, die entweder vollständig ausgeführt oder ohne Verarbeitungsvorgang vollständig gelöscht werden muss. Beispielsweise müssen im Falle eines Geldausgabeautomaten einer Bank, aus dem ein Kunde Geld beziehen möchte, die Vorgänge der Geldausgabe, der Bestandsverringerung des in der Maschine vorhandenen Geldes und der Verringerung des Kontostandes des Kunden allesamt erfolgen, oder es darf keiner von diesen erfolgen. Wenn einer der untergeordneten Vorgänge nicht stattfindet, würde es zu einer Unstimmigkeit zwischen den Aufzeichnungen und den tatsächlichen Vorgängen führen.
  • Eine verteilte Transaktionsverarbeitung beinhaltet eine Transaktion, die Ressourcen an mehr als einer physischen oder logischen Position betrifft. Im obigen Beispiel betrifft eine Transaktion Ressourcen, die in der lokalen Geldausgabeeinheit verwaltet werden, sowie Kontostände, die vom Hauptrechner einer Bank verwaltet werden. Solche Transaktionen beinhalten einen bestimmten Clientcomputer (z.B. 10), der über eine Reihe von Clientanforderungen, die vom Server verarbeitet werden, einen Datenaustausch mit einem bestimmten Servercomputer (z.B. 20) ausführt.
  • Falls die Client- und Servermaschinen sich in heterogenen Plattformen befinden, könnte die objektorientierte Architektur von 1 als verteilte Verarbeitungsumgebung verwendet werden. Die Standard-OMG-Architektur des Objektadapter/Object Request Broker, bei der der FIFO-Puffer verwendet und die älteste gespeicherte Anforderung dem nächsten verfügbaren Programmausführungssegment zugeteilt wird, liefert jedoch keine brauchbaren Ergebnisse. Falls zwei Anforderungen, die bezüglich einer Transaktion in Zusammenhang stehen, von verschiedenen Programmausführungssegmenten des Server verarbeitet werden, ist die Ausführungsumgebung für jede Anforderung unterschiedlich, und folglich können keine übereinstimmenden Gesamtergebnisse erzielt werden. Die Ergebnisse der ersten ausgeführten Anforderung werden während der Verarbeitung einer nächsten ausgeführten Anforderung, die Teil derselben Transaktion ist, nicht zur Verfügung gestellt. Beispielsweise könnten diese beiden Anforderungen von zwei verschiedenen Programmausführungssegmenten im Server gleichzeitig verarbeitet werden.
  • Aufgrund dieses Problems ist man bei der Verarbeitung verteilter Transaktionen (und anderer Verarbeitungskontexte, an denen zusammenhängende Anforderungen beteiligt sind) von der Verwendung heterogener Client/Server-Systeme abgekommen, wobei die Verarbeitung solcher verteilten Transaktionen homogenen Client/Serverarchitekturen (beispielsweise Computerendgeräten, die auf Großcomputer zugreifen) überlassen blieb, so dass eine übereinstimmende Ausführungsumgebung bereitgestellt wird, um garantierte Ergebnisse zu erzeugen.
  • Die US-Patentschrift Nr. 5 452 459 lehrt ein System, wie es im vorab kennzeichnenden Abschnitt von Anspruch 1 dargelegt wird.
  • Beschreibung der Erfindung
  • Die Erfindung stellt ein Verfahren bereit, wie es in Anspruch 1 beansprucht wird.
  • Dementsprechend können zusammenhängende Clientanforderungen im selben Programmausführungssegment verarbeitet werden, wodurch es ermöglicht wird, dass zusammenhängende Anforderungen unter denselben Ausführungsbedingungen verarbeitet werden, wobei die Vorhersagbarkeit des an den Clientcomputer rückübertragenen Verarbeitungsergebnisses erheblich gesteigert wird.
  • Vorzugsweise teilt das Planungsmittel (scheduling means) Clientanforderungen, die bezüglich einer Transaktion in Zusammenhang stehen, demselben Programmausführungssegment zu, und der Puffer ist in einem Objektadapter enthalten. Außerdem steht das Planungsmittel vorzugsweise in Wechselwirkung mit dem Objekttransaktionsdienst Object Request Broker des Servercomputersystems, um bei der zeitlichen Planung von Anforderungen Transaktionsdaten bezüglich jeder Anforderung zu erhalten.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockschaltbild einer allgemein bekannten heterogenen Client/Server-Architektur unter Verwendung einer Objekttechnologie, in deren Kontext die bevorzugten Ausführungsformen der vorliegenden Erfindung angewandt werden;
  • 2 ist eine Übersichtsdarstellung einer Serverarchitektur gemäß einer ersten Ausführungsform der vorliegenden Erfindung;
  • 3 ist eine Übersichtsdarstellung einer Serverarchitektur gemäß einer zweiten Ausführungsform der vorliegenden Erfindung; und
  • 4 ist eine Übersichtsdarstellung einer Serverarchitektur gemäß einer dritten Ausführungsform der vorliegenden Erfindung.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • Eine erste Ausführungsform der Serverarchitektur (2) beinhaltet das Platzieren einer Gruppe 21 von FIFO-Warteschlangen 21a bis 21n, wobei jedem Programmausführungssegment 22a bis 22n eine Anforderungswarteschlange in einem Eins-zu-eins-Verhältnis zugeordnet wird. Wenn Clientanforderungen von einem Clientcomputersystem vom Objektadapter 23 des Server über den Object Request Broker 24 empfangen werden, prüft der Objektadapter 23 gemäß dieser Ausführungsform den Inhalt von jeder in seinem FIFO-Puffer 23a für empfangene Anforderungen enthaltenen Anforderung. Aufgrund eines solchen Inhaltes können die Anforderungen sodann zur geeigneten Anforderungswarteschlange 21a bis 21n weitergeleitet werden. Falls eine erste empfangene Clientanforderung sich beispielsweise auf eine bestimmte Transaktion bezieht und eine zweite empfangene Clientanforderung sich auf eine andere Transaktion bezieht, kann die erste Anforderung der Warteschlange 21a (und ihrem entsprechenden Programmausführungssegment 22a) und die zweite Anforderung der Warteschlange 21b (und ihrem entsprechenden Programmausführungssegment 22b) zugeordnet werden. Falls sich anschließend eine dritte empfangene Transaktionswarteschlange auf dieselbe Transaktion wie die erste Anforderung bezieht, würde der Objektadapter 23 dies erkennen und diese dritte Anforderung zur Verarbeitung durch das Programmausführungssegment 22a der Warteschlange 21a zuordnen.
  • Auf diese Weise kann eine vollständige Transaktion, die aus vielen gesonderten (jedoch zusammenhängenden) Anforderungen besteht, vom selben Programmausführungssegment ausgeführt werden, wodurch für alle bezüglich einer Transaktion in Zusammenhang stehenden Anforderungen dieselbe Ausführungsumgebung bereitgestellt wird.
  • Gemäß einer zweiten Ausführungsform (3) fügt ein im Objektadapter 33 befindlicher Codierer 331 jeder Anforderung einen Code hinzu, um Anforderungen als einer bestimmten Transaktion zugehörig zu kennzeichnen. Anschließend werden die codierten Anforderungen vom Ausgang des Codierers 331 an die Anforderungswarteschlange 23a übertragen. Die Anforderungswarteschlange 23a ist eine FIFO-Warteschlange. Der Objektadapter 33 entnimmt die Anforderungen in der Reihenfolge aus der Warteschlange, in der sie empfangen wurden, und prüft die Codes. Der Objektadapter 33 überträgt die Anforderungen sodann aufgrund der Codes an das entsprechende Programmausführungssegment (22a bis 22n).
  • Falls beispielsweise eine erste Anforderung von einer Clientmaschine über den Object Request Broker 24 eingeht und zu einer ersten Transaktion gehört, wird diese Anforderung vom Codierer 331 durch das Hinzufügen eines Codes codiert, der die Anforderung als Teil einer spezifischen Transaktion kennzeichnet (z.B. Transaktionskennung 1). Die codierte Transaktion wird sodann in der Warteschlange 23a gespeichert. Die nächste vom Object Request Broker 24 empfangene Anforderung stammt von einer anderen Clientmaschine und gehört zu einer anderen (zweiten) Transaktion. Der Codierer 331 codiert diese Anforderung durch Hinzufügen eines Codes, der die Anforderung als Teil der zweiten Transaktion kennzeichnet (z.B. Transaktionskennung 2). Falls eine dritte vom Object Request Broker 24 empfangene Transaktion von der ersten Clientmaschine stammt und Teil der ersten Transaktion ist, erkennt der Objektadapter 33 diese Tatsache aus dem Anforderungsinhalt und fügt im Codierer 311 einen Code hinzu, der die Anforderung als Teil der ersten Transaktion kennzeichnet (z.B. Transaktionskennung 1). Es sei darauf hingewiesen, dass die erste Anforderung und die dritte Anforderung vom Codierer 331 auf dieselbe Art und Weise codiert werden, da sie beide zur selben Transaktion gehören.
  • Die Objektadapterwarteschlange 23a enthält sodann die drei Anforderungen, und wenn sie den Anfang der Warteschlange erreichen, werden die Anforderungen bezüglich ihrer Codes analysiert und an die entsprechenden Programmausführungssegmente übertragen. Das heißt, die erste Anforderung wird an das Programmausführungssegment 22a übertragen. Die zweite Anforderung wird an das Programmausführungssegment 22b übertragen. Und die dritte Anforderung wird an das Programmausführungssegment 22a übertragen. Die erste und die dritte Anforderung werden an dasselbe Programmausführungssegment 22a übertragen, da die Ausführungsumgebung für diese beiden Anforderungen gleich sein muss, da sie beide Teil derselben Transaktion sind. Die zweite Anforderung wird an ein anderes Programmausführungssegment 22b übertragen, da sie nicht Teil der ersten Transaktion ist und ihre eigene Ausführungsumgebung im gesonderten Ausführungssegment 22b erzeugt. Weitere empfangene Anforderungen, die zu der zweiten Transaktion gehören, werden ebenfalls diesem Ausführungssegment 22b zugewiesen, so dass sie in der von der zweiten Anforderung erzeugten Ausführungsumgebung verarbeitet werden.
  • Gemäß einer dritten Ausführungsform (4) wird an Stelle einer FIFO-Warteschlange, wie sie in den vorhergehenden Ausführungsformen und nach dem Stand der Technik verwendet wird, ein anderer Typ von Warteschlange verwendet. Diese Warteschlange 43a kann von verschiedenen Positionen entlang der Warteschlange gelesen werden, so dass jede in der Warteschlange gespeicherte Anforderung vor irgendeiner anderen ausgelesen werden kann. Anforderungen von Clientmaschinen werden wie üblich in der Reihenfolge, in der sie empfangen wurden, durch den Object Request Broker 24 und in die Warteschlange 43a des Objektadapters 43 geleitet. Eine Warteschlange-Leseauswähleinheit (Queue Read Selector) 45 empfängt Daten aus den Programmausführungssegmenten 22a bis 22n bezüglich der Verfügbarkeit jedes Ausführungssegmentes zur Verarbeitung einer weiteren Anforderung. Die Auswähleinheit 45 empfängt außerdem Daten bezüglich der verschiedenen in der Warteschlange 43a gespeicherten Anforderungen. Aufgrund dieser Daten überträgt die Auswähleinheit 45 Lesebefehle an die Warteschlange 43a zur Zuteilung von Anforderungen an die Programmausführungssegmente.
  • Wie in den vorhergehenden Beispielen, in denen die erste und die dritte Anforderung zu einer Transaktionen gehören und die zweite Anforderung zu einer anderen Transaktion gehört, entnimmt die Auswähleinheit 45 beispielsweise aus der Warteschlange 43a die Information, dass die erste und die dritte in der Warteschlange gespeicherte Anforderung zur selben Transaktion gehören. Wenn das Programmausführungssegment 22a sodann die Auswähleinheit 45 benachrichtigt, dass es zur Bearbeitung weiterer Verarbeitungsvorgänge bereit ist, überträgt die Auswähleinheit 45 einen entsprechenden Lesebefehl an die adressierbare Warteschlange 43a, so dass die erste Anforderung über den Bus 44 an das Programmausführungssegment 22a (das Ausführungssegment, das gerade nach einer weiteren Anforderung fragte) übertragen wird. Wenn das Programmausführungssegment 22a wieder nach einer Anforderung fragt (wodurch angekündigt wird, dass es die Verarbeitung der ersten Anforderung beendet hat), überträgt die Auswähleinheit 45 einen Lesebefehl an die Warteschlange 43a, so dass die dritte Anforderung aus der Warteschlange 43a ausgegeben wird und über den Bus 44 an das Programmausführungssegment 22a übertragen wird. Wenn in der Zwischenzeit ein anderes Programmausführungssegment (22b) bei der Auswähleinheit 45 eine Anforderung abfordert, überträgt diese einen Lesebefehl an die Warteschlange 43a, so dass die zweite Anforderung auf den Bus 44 ausgegeben wird und an das Programmausführungssegment 22b übertragen wird.
  • Gemäß diesen verschiedenen Ausführungsformen stellt ein Planungsmechanismus (der sich nicht unbedingt im Objektadapter befinden muss) sicher, dass alle Anforderungen, die miteinander in Zusammenhang stehen (d.h. Teil derselben Transaktion sind), zur Verarbeitung an dasselbe Programmausführungssegment übertragen werden. Dies stellt die Übereinstimmung während der Verarbeitung eines ganzen Satzes von zusammenhängenden Anforderungen sicher. Das heißt, die Clientmaschine, die eine Folge von bezüglich einer Transaktion zusammenhängenden Anforderungen an die Servermaschine ausgibt, kann erwarten, dieselbe Antwort zu erhalten, wenn sie dieselbe Folge von Anforderungen zu einem späteren Zeitpunkt überträgt. Die Verarbeitungsbedingungen der Ausführungsumgebung des Server bleiben aufgrund des Planungsmechanismus gleich. Das heißt, es ist nicht möglich, dass zwischenzeitliche Anforderungen, die zu einer anderen Transaktion gehören (oder überhaupt nicht mit einer Transaktion zusammenhängen), von dem Programmausführungssegment verarbeitet werden, das gerade eine Transaktion verarbeitet. Falls es möglich wäre, dass solche zwischenzeitlichen Anforderungen im Programmausführungssegment einer Transaktion verarbeitet würden, wäre die Ausführungsumgebung bei der Verarbeitung von Teilen der Transaktion zu einem späteren Zeitpunkt anders, und es wären keine übereinstimmenden Ergebnisse zur Rückmeldung an den Client garantiert.
  • Um festzustellen, ob eine Anforderung zu einer Transaktion gehört, und in diesem Falle die Einzelheiten der Transaktion zu ermitteln, fragt der Object Request Broker (ORB) 24 den Transaktionskontext von jeder eingehenden Anforderung ab. Der Transaktionskontext einer Anforderung wird vom ORB unter Verwendung des von der OMG eingerichteten Objekttransaktionsdienstes (Object Transaction Service, OTS) erhalten [OMG-Dokument 94 8 4, veröffentlicht 1994]. Der ORB fragt außerdem den Objektbezug (Object Reference) und alle Dienstkontexte (Service Contexts) der Anforderung ab, um das spezifische Serverobjekt (und folglich die Serveranwendung) zu ermitteln, die die Anforderung aufrufen möchte. Sobald der Transaktionskontext und der Serverkontext/die Serveranwendung ermittelt wurden, überträgt der ORB die Anforderung an die entsprechende Warteschlange des Objektadapters. von dort stellt der Planungsmechanismus sicher, dass alle bezüglich einer Transaktion zusammenhängenden Anforderungen an dasselbe Programmausführungssegment übertragen werden, wie in den obigen Ausführungsformen beschrieben wird. Außerdem kann der Planungsmechanismus das Programmausführungssegment für eine bestimmte Transaktion isolieren, indem er es nicht zulässt, dass Anforderungen, die nicht mit dieser Transaktion zusammenhängen, in dem zugeordneten Programmausführungssegment der Transaktion verarbeitet werden.
  • Folglich stellt die vorliegende Erfindung für den Kontext der verteilten heterogenen Plattform die Typen von Auslastungsverwaltungsdiensten (workload management services) bereit, die von modernen geschäftlichen Verarbeitungsumgebungen benötigt werden. Einer großen Anzahl von Benutzern (Clients) kann folglich eine leistungsfähige Nutzung der verfügbaren Ressourcen durch einen Ausgleich der Auslastung im gesamten System geboten werden. Außerdem werden einzelnen Benutzern jedes Mal, wenn ein Client eine in einer heterogenen Plattform befindliche Serveranwendung aufruft, übereinstimmende Ergebnisse in Form einer garantierten Antwort und einer garantierten Verarbeitungszeit geliefert.

Claims (9)

  1. Verfahren zum Zuteilen vom Clientanforderungen zur Verwendung in einem Servercomputersystem, wobei die Clientanforderungen von mindestens einem Clientcomputersystem in einer vom Servercomputersystem verschiedenen Plattform ausgegeben und durch einen Datenübertragungskanal an das Servercomputersystem geleitet werden, wobei das Servercomputersystem Folgendes aufweist: einen Puffer (23), der einen mit dem Datenübertragungskanal verbundenen Eingang und einen Ausgang aufweist, und eine Vielzahl von parallelen Programmausführungssegmenten (execution threads) (22a bis 22n), die mit dem Ausgang des Puffers verbunden sind; wobei das Verfahren die folgenden Schritte umfasst: Empfangen von Clientanforderungen im Puffer; und dadurch gekennzeichnet, dass das Verfahren außerdem den folgenden Schritt umfasst: Verteilen von im Puffer gespeicherten Clientanforderungen an die Vielzahl von Programmausführungssegmenten dergestalt, dass eine erste Anforderung zur Verarbeitung an ein erstes Programmausführungssegment gesendet wird und eine zweite Anforderung, die Teil derselben Transaktion wie die erste Anforderung ist, an das erste Programmausführungssegment gesendet wird, nachdem das erste Programmausführungssegment die Verarbeitung der ersten Anforderung beendet hat.
  2. Verfahren nach Anspruch 1, wobei die Realisierung des Objekttransaktionsdienstes (OTS) Object Request Broker (ORB) des Servercomputersystems verwendet wird, um bei der Verteilung von Anforderungen Transaktionsdaten bezüglich jeder Anforderung zu erhalten.
  3. Verfahren nach Anspruch 2, wobei der Puffer in einem Objektadapter der Realisierung enthalten ist.
  4. Verfahren nach irgendeinem vorhergehenden Anspruch, wobei der Verteilungsschritt das Ermitteln des Transaktionskontextes der ersten Anforderung und des Transaktionskontextes der zweiten Anforderung beinhaltet.
  5. Verfahren nach Anspruch 4, wobei der ermittelte Transaktionskontext der ersten Anforderung und der Transaktionskontext der zweiten Anforderung verwendet werden, um sicherzustellen, dass die erste und die zweite Anforderung an dasselbe Programmausführungssegment gesendet werden.
  6. Verfahren nach Anspruch 1, wobei eine Vielzahl von Warteschlangen (21a bis 21n) bereitgestellt wird, wobei eine Warteschlange einem entsprechenden aus der Vielzahl von Programmausführungssegmenten zugeordnet wird.
  7. Verfahren nach Anspruch 1, wobei eine einzelne Warteschlange (23a) der Vielzahl von Programmausführungssegmenten zugeordnet wird und die erste und die zweite Anforderung codiert werden (331), bevor sie in die einzelne Warteschlange gestellt werden, um anzuzeigen, dass sie zur selben Transaktion gehören.
  8. Vorrichtung, die ein Mittel umfasst, das zum Ausführen aller Schritte des Verfahrens nach irgendeinem vorhergehenden Verfahrensanspruch geeignet ist.
  9. Computerprogramm, das Befehle zum Ausführen aller Schritte des Verfahrens nach irgendeinem vorhergehenden Verfahrensanspruch umfasst, wenn das Computerprogramm in einem Computersystem ausgeführt wird.
DE69734432T 1996-12-20 1997-12-11 Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem Expired - Lifetime DE69734432T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9626602 1996-12-20
GB9626602A GB2320594A (en) 1996-12-20 1996-12-20 Dispatching client method calls to parallel execution threads within a server

Publications (2)

Publication Number Publication Date
DE69734432D1 DE69734432D1 (de) 2005-12-01
DE69734432T2 true DE69734432T2 (de) 2006-07-13

Family

ID=10804825

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69734432T Expired - Lifetime DE69734432T2 (de) 1996-12-20 1997-12-11 Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem

Country Status (4)

Country Link
US (1) US5925098A (de)
EP (1) EP0849921B1 (de)
DE (1) DE69734432T2 (de)
GB (1) GB2320594A (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675195B1 (en) * 1997-06-11 2004-01-06 Oracle International Corporation Method and apparatus for reducing inefficiencies caused by sending multiple commands to a server
JP3367385B2 (ja) * 1997-06-27 2003-01-14 日本電気株式会社 分散トランザクション整合方法及びプログラムを記録した機械読み取り可能な記録媒体
GB2330923A (en) * 1997-10-28 1999-05-05 Ibm Transaction manager
GB2332289A (en) 1997-12-11 1999-06-16 Ibm Handling processor-intensive data processing operations
GB2333379A (en) * 1998-01-16 1999-07-21 Ibm Client/server computing
GB2334117A (en) 1998-02-04 1999-08-11 Ibm Performing semantic concurrency control in dispatching server computer client requests
GB2334116A (en) 1998-02-04 1999-08-11 Ibm Scheduling and dispatching queued client requests within a server computer
US6003083A (en) * 1998-02-19 1999-12-14 International Business Machines Corporation Workload management amongst server objects in a client/server network with distributed objects
US6427161B1 (en) * 1998-06-12 2002-07-30 International Business Machines Corporation Thread scheduling techniques for multithreaded servers
GB2348985A (en) * 1999-04-15 2000-10-18 Ibm Centralized affinity maintenance in a workload managed client/server system
US6665704B1 (en) * 1999-06-18 2003-12-16 Sun Microsystems, Inc. Bounding delays and reducing threading overheads in caching
NO310750B1 (no) * 1999-07-29 2001-08-20 Ericsson Telefon Ab L M Håndtering av objekter i telekommunikasjonssystemer
US6970903B1 (en) * 1999-10-29 2005-11-29 Intel Corporation Distributed component system management using machine-independent activation requests
GB2356947A (en) * 1999-11-30 2001-06-06 Hugh Symons Group Plc Load balancing client requests amongst a plurality of servers
US6725272B1 (en) * 2000-02-18 2004-04-20 Netscaler, Inc. Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time
US6763520B1 (en) * 2000-08-24 2004-07-13 Cognos Incorporated Fair assignment of processing resources to queued requests
US6684262B1 (en) 2000-10-25 2004-01-27 International Business Machines Corporation Method and system for controlling peripheral device interface behavior using thread registration
JP3777302B2 (ja) * 2000-12-21 2006-05-24 富士通株式会社 通信振り分け制御装置、および通信振り分けプログラムを記憶した記憶媒体
FI20010163A (fi) * 2001-01-26 2002-07-27 Nokia Corp Palvelinarkitehtuuri
US7185094B2 (en) * 2001-03-30 2007-02-27 Sandcherry, Inc. Media session framework using a control module to direct and manage application and service servers
US6904597B2 (en) * 2001-03-30 2005-06-07 Intel Corporation Inter-thread communications between different components using double buffer
US8601099B1 (en) * 2003-12-30 2013-12-03 Sap Ag System and method for managing multiple sever node clusters using a hierarchical configuration data structure
US7673302B1 (en) * 2004-08-26 2010-03-02 Sprint Communications Company L.P. System and method for managing messages in a queuing system
US8352504B2 (en) * 2005-02-24 2013-01-08 International Business Machines Corporation Method, system and program product for managing a workload on a plurality of heterogeneous computing systems
US9092278B2 (en) 2006-07-07 2015-07-28 International Business Machines Corporation Determining the processing order of a plurality of events
US8150970B1 (en) * 2007-10-12 2012-04-03 Adobe Systems Incorporated Work load distribution among server processes
CN107872398A (zh) * 2017-06-25 2018-04-03 平安科技(深圳)有限公司 高并发数据处理方法、装置及计算机可读存储介质
CN108510242B (zh) * 2018-03-27 2021-09-07 国网河北省电力有限公司电力科学研究院 工单处理方法、系统及终端设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU628753B2 (en) * 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
US5430850A (en) * 1991-07-22 1995-07-04 Massachusetts Institute Of Technology Data processing system with synchronization coprocessor for multiple threads
US5452459A (en) * 1993-01-08 1995-09-19 Digital Equipment Corporation Method and apparatus for allocating server access in a distributed computing environment
EP0613083B1 (de) * 1993-02-25 2002-01-23 Sun Microsystems, Inc. Transaktionsverwaltung in objektorientiertem System
CA2107299C (en) * 1993-09-29 1997-02-25 Mehrad Yasrebi High performance machine for switched communications in a heterogenous data processing network gateway
US5692193A (en) * 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems

Also Published As

Publication number Publication date
EP0849921A2 (de) 1998-06-24
DE69734432D1 (de) 2005-12-01
GB2320594A (en) 1998-06-24
US5925098A (en) 1999-07-20
EP0849921A3 (de) 2003-08-13
GB9626602D0 (en) 1997-02-05
EP0849921B1 (de) 2005-10-26

Similar Documents

Publication Publication Date Title
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
DE69735348T2 (de) Skalierbare und erweiterbare Systemverwaltungsarchitektur mit datenlosen Endpunkten
DE69635099T2 (de) Verfahren und Vorrichtung für kontextempfindliches Pfadsende
DE69812899T2 (de) Webagent zur anforderung von mehreren prozessen
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE69632987T2 (de) Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
DE60125705T2 (de) Vorrichtung und Verfahren zur Implementierung eines HTTP Programmstacks auf einem Client
EP0333123B1 (de) Modular strukturiertes ISDN-Kommunikationssystem
DE69530734T2 (de) System und Verfahren zur Workflow-Verwaltung
DE3908459C2 (de) Netzwerkserver
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE69533148T2 (de) Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen
DE602005004334T2 (de) Nms zur Verarbeitung von Multi-Server Ereignissen
EP0959407B1 (de) Verfahren zum Zuteilen von Aufträgen Datenverarbeitungssystem, Client-Datenbearbeitungsknoten und computerlesbares Speichermedium
DE69818103T2 (de) Anrufmechanismus für statisch und dynamisch verknüpfte funktionen in einer objektorientierten steuerung unter verwendung von heterogenen entwicklungsumgebungen
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE60012041T2 (de) Kommunikationsarchitektur für eine verteilte rechnerumgebung
DE10003015A1 (de) Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen
DE4033336A1 (de) Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung
DE60312498T2 (de) Wahlfähigster server in einer umgebung mit einer allgemeinen arbeit-warteschlange
DE112005001995B4 (de) Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk
DE69814697T2 (de) Vorrichtung, methode und computer programm produkt für client/server rechner mit vom client auswählbarer lokalisierung von transaktionsobjekten
DE10340416B4 (de) System und Verfahren zum Beenden von Prozessen in einem verteilten Rechensystem

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