-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft ein Middleware- bzw. Zwischenanwendungs-Brückensystem
und -verfahren und spezieller ein Middleware-Brückensystem zum Unterstützen der
Verwendung einer User-Space-Middleware von einem Kernel-Space-Modul.
-
Hintergrund der Erfindung
-
Middleware
ist eine Art von Unterstützungssoftware
zur Verwendung in einem linuxartigen Betriebssystem, welche verwendet
wird, um die Entwicklung von Applikations- bzw. Anwendungssystemen
zu unterstützen.
-
Jedoch
wird Middleware im Allgemeinen im User-Space verwendet. Beispielsweise
wird eine Hochverfügbarkeits-
bzw. High Availability (HA)-Middleware im User-Space verwendet,
um eine Hochverfügbarkeitsfunktion
mit einem linuxartigen Betriebssystem zu unterstützen, welche eine hochschnelle,
stabile und kontinuierliche Netzwerkverbindung bereitstellt. Dabei
wird die HA-Middleware als ein AIS-Standard gebildet (Application
Interface Specification), der vom Service Availability Forum (SA Forum)
erstellt wird.
-
Einige
Kernel-Space-Module wie z. B. Layer-2-HA-Netzwerkkommunikationsmodule (hochverfügbar bzw.
High Available) können
die HA-Middleware nicht direkt verwenden.
-
Die
Funktionsaufrufsanforderung von den Kernel-Space-Modulen muss als ein User-Space-unterstützbarer
Befehl transformiert und anschließend an die HA-Middleware gesendet
werden. Daher ist die Kommunikation zwischen den Kernel-Space-Modulen
und der HA-Middleware nicht zweckmäßig, sondern komplex.
-
Die
Kernel-Space-Module müssen
für jedes spezifische
Modul und für
jede Middleware mit spezifischem Brückensystem entwickelt werden,
was unbequem ist und eine Menge an Kosten verschwendet, um spezifische
Brückensysteme
für jedes
Kernel-Space-Modul und jede Middleware zu entwickeln.
-
Zusammenfassung der Erfindung
-
Die
vorliegende Erfindung betrifft ein Middleware-Brückensystem
und -verfahren, welches verwendet wird, um Kernel-Space-Module und
eine User-Space-Middleware zu überbrücken und
ferner die Unterstützung
einer User-Space-Middleware
für ein
Kernel-Space-Modul zu erweitern.
-
Gemäß der oben
beschriebenen Anforderung stellt die vorliegende Erfindung ein Middleware-Brückensystem
zum Überbrücken eines
Kernel-Space-Moduls und einer User-Space-Middleware mit einer User-Space-Schnittstelle
bereit, welches aufweist: einen Kernel-Space-Brückenmanager zum Bereitstellen
einer Kernel-Space-Schnittstelle, um eine Funktionsaufrufsanforderung
von dem Kernel-Space-Modul zu empfangen; einen User-Space-Brückenmanager
zum Bereitstellen eines Funktionsaufrufs betreffend die Funktionsaufrufsanforderung
an die User-Space-Middleware durch die User-Space-Schnittstelle
und zum Empfangen von Rückgabedaten
von der User-Space-Middleware; wobei die Architektur der Kernel-Space-Schnittstelle
dieselbe ist wie die Architektur der User-Space-Schnittstelle.
-
Gemäß der oben
beschriebenen Anforderung stellt die vorliegende Erfindung auch
ein Middleware-Brückenverfahren
zum Überbrücken eines
Kernel-Space-Moduls und einer User-Space-Middleware mit einer User-Space-Schnittstelle
bereit, das folgende Schritte aufweist: Simulieren der User-Space-Schnittstelle als
eine Kernel-Space-Schnittstelle im Kernel-Space; Empfangen einer
Funktionsaufrufsanforderung von dem Kernel-Space-Modul durch die
Kernel-Space-Schnittstelle;
Bereitstellen eines Funktionsaufrufs betreffend die Funktionsaufrufsanforderung
an die User-Space-Middleware
durch die User-Space-Schnittstelle; Empfangen von Rückgabedaten
von der User-Space-Middleware durch die User-Space-Schnittstelle;
und Übermitteln
der Rückgabedaten
an das Kernel-Space-Modul durch die Kernel-Space-Schnittstelle.
-
Die
vorliegende Erfindung stellt eine Umgebung für Programmentwickler bereit,
um die Middleware gut für
Kernel-Space-Module zu verwenden und stellt eine allgemeine Lösung für viele
bzw. mehrfache Kernel-Space-Module bereit.
-
Kurze Beschreibung der Zeichnungen
-
Das
Ziel, der Inhalt und die Vorteile der vorliegenden Erfindung werden
durch die nachfolgende detaillierte Beschreibung zusammen mit den
beiliegenden Zeichnungen verständlich,
in denen:
-
1 ein
Diagramm der Systemarchitektur eines Middleware-Brückensystems
in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung ist.
-
2 ist
ein Diagramm der Funktionsblöcke des
Middleware-Brückensystems
in einer Ausgestaltung der vorliegenden Erfindung.
-
3 ist
ein Diagramm, welches eine Ausführungsform
des Middleware-Brückensystems zeigt.
-
4 ist
ein Diagramm, welches eine Ausführungsform
des Middleware-Brückensystems zeigt.
-
5 ist
ein Diagramm, welches eine Ausführungsform
des Middleware-Brückensystems zeigt.
-
6 ist
ein Diagramm, welches eine Ausführungsform
des Middleware-Brückensystems zeigt.
-
7 ist
ein Diagramm, welches eine Ausführungsform
der Regeltabelle zeigt.
-
8 ist
ein Diagramm, welches den Fluss des proaktiven Mechanismus zeigt,
um zu identifizieren, welche Funktion für die proaktive Ausführung geeignet
ist.
-
9 ist
ein Diagramm, welches den Fluss der proaktiven Ausführung zeigt.
-
10 ist
ein Diagramm, welches die Kommunikation zwischen den Kernel-Space-Brückenmanager
und dem User-Space-Brückenmanager
zeigt.
-
11 ist
ein anderes Diagramm, welches die Kommunikation zwischen dem Kernel-Space-Brückenmanager
und dem User-Space-Brückenmanager
zeigt.
-
Detaillierte Beschreibung
der Ausführungsformen
-
Die
vorliegende Erfindung ist vorgesehen, um die Funktionen der Middleware
im User-Space zu erweitern, so dass sie in einem Kernel-Space-Modul unter
einem linuxartigen Betriebssystem verwendet werden können. Die
vorliegende Erfindung umfasst ein Middleware-Brückensystem zum Überbrücken der
Kernel-Space-Module und der User-Space-Middleware, um dadurch die Unterstützung einer User-Space-Middleware auf ein
Kernel-Space-Modul auszudehnen.
-
In
einer Ausführungsform
der vorliegenden Erfindung wird das Middleware-Brückensystem
verwendet, um ein Proxy bzw. Stellvertreter einer HA-Middleware
(High Availability bzw. Hochverfügbarkeit-Middleware)
zu sein, wobei die HA-Middleware
relative Funktionen oder Dienste durch eine API (Application Interface)
bereitstellt, welche mit dem AIS (Application Interface Specification)-Standard übereinstimmt,
der von dem SA-Forum gebildet ist bzw. erstellt wird. Jedoch ist
der Standard der HA-Middleware keine Bedingung für die Implementierung der vorliegenden
Erfindung.
-
Unter
Bezugnahme auf 1 ist die Systemarchitektur
eines Middleware-Brückensystems 10 in
einer Ausgestaltung der vorliegenden Erfindung gezeigt. Das Middleware-Brückensystem 10 wird verwendet,
um eine User-Space-HA (High Availability)-Middleware 20 zur
Verwendung im Kernel- Space zu überbrücken. Das
Middleware-Brückensystem 10 weist
einen Kernel-Space-Brückenmanager 11 zum Empfangen
von Funktionsaufrufsanforderungen von einer Anzahl von Kernel-Space-HA-Modulen 30 und einen
User-Space-Brückenmanager 12 zum
Aufrufen der Funktionsaufrufe betreffend die Funktionsaufrufsanforderungen
an eine HA-Middleware 20 durch eine User-Space-API 21,
um die entsprechenden Funktionen im User-Space auszuführen, auf.
-
Nachdem
die HA-Middleware 20 die entsprechenden Funktionen ausgeführt hat,
empfängt
der User-Space-Brückenmanager 12 Rückgabedaten der
Ausführung
von der HA-Middleware 20 an den Kernet-Space-Brückenmanager 11,
und anschließend übermittelt
der Kernel-Space-Brückenmanager 11 die
Rückgabedaten
an das Kernel-Space-HA-Modul 30.
-
Unter
Bezugnahme auf 2 werden Funktionsblöcke des
Middleware-Brückensystems 10 in einer
Ausführungsform
der vorliegenden Erfindung gezeigt. Der Kernel-Space-Brückenmanager 11,
welcher ein Kernel-Space-Schnittstellenmodul 111 mit einer
Kernel-Space-API 112, einen Kernel-Space-Proaktor 113,
einen Anforderungsprozessor 114 und ein Kernel-Space-Datenrelais 115 aufweist,
ist für
das Übermitteln
der Funktionsaufrufsanforderungen von dem Kernel-Space-HA-Modul 30 an den
User-Space-Brückenmanager 12 und
für das Übermitteln
der Rückgabedaten
an das Kernel-Space-HA-Modul 30 verantwortlich.
-
Das
Kernel-Space-Schnittstellenmodul 111 empfängt die
Funktionsaufrufsanforderung von dem Kernel-Space-Modul 30 und
weist die Kernel-Space-API 112 auf, die als virtuelle Schnittstelle agiert,
um die User-Space-API 21 für das Kernel-Space-HA-Modul 30 zu
simulieren, um dadurch dieselben Funktionen mit der User-Space-API 21 an das
Kernel-Space-HA-Modul 30 bereitzustellen. Das Kernel-Space-Schnittstellenmodul 111 weist
virtuelle Funktionen auf, die mit der unterstützten HA-Middleware 20 korrespondieren,
und jede der virtuellen Funktionen wird jede Variable wie z. B.
direkte Werte oder Zeiger bzw. Pointer, die auf einen indirekten Wert
zeigen, in der empfangenen Funktionsaufrufsanforderung durch den
Standard der Kernel-Space-API 112 interpretieren
bzw. auswerten. Dabei ist die Architektur der Kernel-Space-API 112 dieselbe
wie die Architektur der User-Space-API 21. Anschließend nehmen
die virtuellen Funktionen die notwendigen Daten betreffend die Funktionsaufrufsanforderung
auf und senden diese anschließend an
den Kernel-Space-Proaktor 115 oder den Anforderungsprozessor 114,
wenn der Kernel-Space-Proaktor 115 nicht existiert. In
der Folge übermittelt
das Kernel-Space-Schnittstellenmodul 111 die
Rückgabedaten
an das Kernel-Space-HA-Modul 30 durch die Kernel-Space-API 112,
während
bzw. solange die Rückgabedaten
erhalten werden.
-
Der
Kernel-Space-Proaktor 113 wird verwendet, um die Funktionsaufrufsanforderung
zu bearbeiten, wenn die Rückgabedaten
der Funktionsaufrufsanforderung bereits existieren, oder um die
Funktionsaufrufsanforderung an den Anforderungsprozessor 114 zu
senden, wenn die Funktionsaufrufsanforderung in der HA-Middleware 20 verarbeitet
werden muss. Der Anforderungsprozessor 114 wird verwendet,
um die Funktionsaufrufsanforderungen von einer Anzahl von Kernel-Space-HA-Modulen 30 als Anforderungsdaten
in einer Anforderungsschlange zu sammeln und die Anforderungsdaten
mittels Anhäufung
oder mittels Cache zu übertragen.
Ferner überträgt der Anforderungsprozessor 114 die
empfangenen Rückgabedaten
an das Kernel-Space-Schnittstellenmodul 111.
Das Kernel-Space-Datenrelais 115 ist für die Kommunikation des Middleware-Brückensystems 10 im
Kernel-Space wie z. B. das Übermitteln
der Anforderungsdaten oder das Empfangen der Rückgabedaten verantwortlich.
-
Der
User-Space-Brückenmanager 12 wird verwendet,
um die Anforderungsdaten zu verwalten und zu bearbeiten, Funktionsaufrufe
an die HA-Middleware 20 bereitzustellen und die Rückgabedaten
zurück
an den Kernel-Space-Brückenmanager 11 zu übermitteln.
Dabei weist der User-Space-Brückenmanager 12 ein
User-Space-Datenrelais 121, einen Anforderungsmittler 122,
einen Rückrufmanager 123 und
einen User-Space Proaktor 124 auf.
-
Das
User-Space-Datenrelais 121 ist für die Kommunikation des Middleware-Brückensystems 10 im
User-Space wie z. B. das Empfangen der Anforderungsdaten oder das Übermitteln
der Rückgabedaten verantwortlich.
Der Anforderungsmittler 122 wird verwendet, um die Anforderungsdaten
zu analysieren und zu erkennen, den Funktionsaufruf in den Anforderungsdaten
als ein User-Ende an die HA-Middleware 20 fortzusetzen
und die Rückgabedaten
von der HA-Middleware 20 zu empfangen. Der Rückrufmanager 123 ist
für die
Rückruffunktionen
verantwortlich und schließt
einen virtuellen Rückrufproxy
bzw. -stellvertreter ein, der mit einer virtuellen Rückruffunktion registriert
ist. Während
bzw. solange ein Rückruffunktionsaufruf
von der HA-Middleware 20 aufgerufen wird, fordert der virtuelle
Rückrufproxy
das Kernel-Space-Datenrelais 115 auf,
nach dem entsprechenden realen Kernel-Space-HA-Modul 30, das die Rückruffunktion
zur Ausführung
enthält,
zu suchen. Der User-Space-Proaktor 124 wird verwendet,
um einen Funktionsvoraufruf vorab zu verarbeiten und die Rückgabedaten
an den Kernel-Space-Brückenmanager 11 zu übermitteln.
-
Das
Middleware-Brückensystem 10 weist ferner
einen proaktiven Mechanismus mit einer proaktiven Verarbeitung von
einigen Funktionsaufrufen, welche ausgeführt werden, um Daten konstant
zu erhalten oder auf diese zu verweisen, auf, um die Effizienz des
Middleware-Brückensystems 10 zu
verbessern und die Kommunikation zwischen dem Kernel-Space-Brückenmanager 11 und
dem User-Space-Brückenmanager 12 zu
reduzieren. Der proaktive Mechanismus ist mit dem Kernel-Space-Proaktor 113,
dem User-Space-Proaktor 124, einer Regeltabelle 13 und
einer Proaktive-Information-Datenbank 14 bzw. einer Datenbank
für proaktive
Informationen umfasst. Dabei weisen sowohl die Regeltabelle 13 als
auch die Proaktive-Information-Datenbank 14 zwei Teile
im User-Space bzw. Kernel-Space auf.
-
Der
proaktive Mechanismus arbeitet basierend auf der vordefinierten
Regeltabelle 13. Der proaktive Mechanismus wird verwendet,
um einen Funktionsaufruf im Voraus oder aktiv, bevor das Kernel-Space-HA-Modul 30 die
Funktionsaufrufsanforderung sendet, aufzurufen und die Rückgabedaten des
Ausführungsergebnisses
als proaktive Information in der Datenbank 14 für proaktive
Informationen zu speichern. Somit kann der Kernel-Space-Proaktor 113 die
Funktionsaufrufsanforderung von dem Kernel-Space-HA-Modul 30 unverzüglich ohne
die Hilfe des User-Space-Brückenmanagers 12 und
der HA-Middleware 20 beantworten, während das Kernel-Space-HA-Modul 30 die
Funktionsaufrufsanforderung aussendet.
-
Der
Kernel-Space Proaktor 113 prüft zuerst, ob für den Funktionsaufruf
eine entsprechende proaktive Information in der Datenbank 14 für proaktive Informationen
vorhanden ist, wenn er die Funktionsaufrufsanforderung von dem Kernel-Space-HA-Modul 30 empfängt, und
bestimmt anschließend
gemäß der Regeltabelle 13,
ob die proaktive Information zurückgeliefert
wird oder die Funktionsaufrufsanforderung fortgesetzt übermittelt
und an den User-Space-Brückenmanager 12 überbrückt wird. Dabei
betreffen die Funktionsaufrufsanforderungen, die für eine proaktive
Verarbeitung geeignet sind, normalerweise Funktionen einer Get/Read-
bzw. Erhalten/Lesen-Art mit Systemdaten und die Daten müssen beständig, reserviert,
stabil oder konstant sein. Wenn die Funktionsaufrufsanforderungen
wiederholt werden, kann der Kernel-Space-Proaktor 113 automatisch
einen Rundruf durchführen,
um sicherzustellen, die neuesten Daten zu erhalten. Auf diese Weise
kann die proaktive Verarbeitung effizient ein genaues Ergebnis bereitstellen.
-
Damit
empfängt
das Kernel-Space-Schnittstellenmodul 111 im Ablauf des
Kernel-Space-Brückenmanagers 11 zuerst
die Funktionsaufrufsanforderung von dem Kernel-Space-HA-Modul 30 und
anschließend überprüft der Kernel-Space-Proaktor 113, ob
die proaktive Information betreffend die Funktionsaufrufsanforderung
bereits in der Datenbank 14 für proaktive Informationen gespeichert
ist. Wenn die proaktive Information existiert und gültig ist, übermittelt
der Kernel-Space Proaktor 113 die proaktive Information
als Rückgabedaten
an das Kernel-Space-HA-Modul 30, andernfalls übermittelt
der Kernel-Space-Proaktor 113 die Funktionsaufrufsanforderung
an den Anforderungsprozessor 114. Der Anforderungsprozessor 114 verpackt
die Funktionsaufrufsanforderung als Anforderungsdaten und leitet die
Anforderungsdaten an das Kernel-Space-Datenrelais 115 weiter. Daher
kann das Kernel-Space-Datenrelais 115 die
Anforderungsdaten an den User-Space-Brückenmanager 12 übermitteln.
-
Bei
dem nachfolgenden Verfahren wird das User-Space-Datenrelais 121 verwendet,
um die Anforderungsdaten von dem Kernel-Space-Datenrelais 115 zu
empfangen, und es übermittelt
die Anforderungsdaten an den Anforderungsmittler 122, damit der
Anforderungsmittler 122 die Funktionsaufrufsanforderung
in den Anforderungsdaten überprüft. Wenn die
Funktionsaufrufsanforderung eine Rückrufregistrierungsfunktion
(Callback Registering Function) betrifft, übermittelt der Anforderungsmittler 122 die Funktionsaufrufsanforderung
an den Rückrufmanager 123,
andernfalls stellt der Anforderungsmittler 122 einen Funktionsaufruf
der Funktionsaufrufsanforderung an die HA-Middleware 20 durch die User-Space-API 21 bereit.
Nachdem der Funktionsaufruf an die HA-Middleware 20 bereitgestellt
worden ist, kann der Anforderungsmittler 122 Rückgabedaten
von der HA-Middleware empfangen und die Rückgabedaten an den Kernel-Space-Brückenmanager 11 über das
User-Space-Datenrelais 121 übermitteln.
Anschließend
kann der Kernel-Space-Brückenmanager 11 die
empfangenen Rückgabedaten an
das Kernel-Space-HA-Modul 30 übermitteln.
-
Wenn
der Rückrufmanager 123 eine
Funktionsaufrufsanforderung betreffend eine Rückrufregistrierungsfunktion
empfängt,
kann der Rückrufmanager 123 eine
virtuelle Rückruffunktion
betreffend die Funktionsaufrufsanforderung an die HA-Middleware 20 mittels
des virtuellen Rückrufproxys
bereitstellen. Der virtuelle Rückrufproxy
ist für
das Auffinden des Ziel-Kernel-Space-HA-Moduls 30 verantwortlich
und übermittelt
einen Rückruffunktionsaufruf,
der von der HA-Middleware 20 aufgerufen ist, an das Ziel-Kernel-Space-HA-Modul 30.
In der Folge kann das Ziel-Kernel-Space-HA-Modul 30 eine Rückruffunktion
betreffend den Rückruffunktionsaufruf
ausführen und
Rückgabedaten
an den Rückrufmanager 123 und
anschließend
an die HA-Middleware 20 übermitteln.
-
Der
proaktive Mechanismus des Middleware-Brückensystems 10 weist
zwei Ausgestaltungen, als ein Kernel-AP-Anforderer oder als HA-Middleware-Anforderer,
auf, um die Funktionsaufrufsanforderungen von dem Kernel-Space-HA-Modul 30 bzw. der
HA-Middleware 20 zu verarbeiten. Unter Bezugnahme auf 3 wird
die Systemarchitektur des Kernel-AP-Anforderers gezeigt, bei dem
der User-Space-Proaktor 124 einen
Voraufruf oder einen aktiven Rundruf durchführen wird, um proaktive Informationen
einschließlich
der Rückgabedaten
an den Kernel-Space-Proaktor 113 zu erhalten. Ferner kann der
User-Space-Proaktor 124 mit einem Cache-Verfahren arbeiten,
um zu vergleichen, ob ein Unterschied zwischen den momentan erhaltenen
Daten und den früher
erhaltenen Daten besteht. Wenn kein Unterschied zwischen den momentan
erhaltenen Daten und den früher
erhaltenen Daten besteht, muss der User-Space-Proaktor 124 die
momentan erhaltenen Daten nicht an den Kernel-Space-Proaktor 113 übermitteln.
Der Kernel-Space-Proaktor 113 wird während des Empfangs einer Funktionsaufrufsanforderung
von dem Kernel-Space-HA-Modul 30 zuerst die Datenbank 14 für proaktive
Informationen prüfen. Wenn
die Rückgabedaten
in der Datenbank 14 für proaktive
Informationen gespeichert sind, kann der Kernel-Space-Proaktor 113 die
Funktionsaufrufsanforderung beantworten, indem er die gespeicherten Rückgabedaten
ohne Anforderung irgendwelcher Informationen von dem User-Space-Proaktor 124 übermittelt.
Damit können
die Übertragungszeiten zwischen
dem User-Space-Proaktor 124 und
dem Kernel-Space-Proaktor 113 reduziert werden und die Antwortzeit
kann beschleunigt werden.
-
Hauptsächlich werden
die Funktionsaufrufsanforderungen von dem Kernel-Space-HA-Modulen 30 gestartet.
Jedoch muss die HA-Middleware 20 manchmal Funktionsaufrufsanforderungen
an die Kernel-Space-HA-Module 30 bereitstellen, z. B. Rückruffunktionen,
um die Zustände
der Kernel-Space-HA-Module 30 abzufragen.
Unter Bezugnahme auf 4 wird die Systemarchitektur
des HA-Middleware-Anforderers gezeigt, bei dem der Kernel-Space-Proaktor 113 einen
Voraufruf oder einen aktiven Rundruf durchführen wird, um proaktive Informationen
einschließlich
der Rückgabedaten
von dem Kernel-Space-HA-Modul 30 an den User-Space-Proaktor 124 zu
erhalten. Ferner kann der Kernel-Space-Proaktor 113 das
Cache-Verfahren verwenden, um die Effektivität des proaktiven Mechanismus
zu erhöhen.
-
Weiterhin
kann der proaktive Mechanismus für
Dienste in einer speziellen HA-Middleware ausgestaltet sein, wie
z. B. einen Verfügbarkeitsdienst (Availability
Service), einen Cluster-Mitgliedsdienst (Cluster Membership Service,
CLM). Insbesondere werden einige Funktionen verwendet, um die Zustände oder
Daten der HA-Middleware 20 zu prüfen, wie z. B. "Ermittle HA Zustand" (Get HA State) und "Ermittle Komponentenverfügbarkeitszustand" (Get Component Readiness
State) bei dem Verfügbarkeitsdienst
oder "Ermittle Mitgliedschaft" (Get Membership)
bei dem CLM-Dienst. Zum Bespiel werden die Informationen von allen
Cluster Mitgliedern verwendet, um den Zustand des Clusters in jedem
Knoten zu beschreiben, weshalb alle Rückgabedaten die gleichen sein
sollten, wenn eine Anzahl von Kernel-Space-HA-Modulen 30 konstant die
Informationen aller Cluster-Mitglieder
in der Funktion "Get Membership" überprüft. Somit kann der Kernel-Space-Proaktor 113 als
ein Proxy fungieren, um dieselben Informationen mit allen Kernel-Space-HA-Modulen 30,
wie in 5 gezeigt, zu teilen.
-
In
einigen Fällen
kann der HA-Middleware-Anforderer des proaktiven Mechanismus verwendet
werden, um die Get/Read-Funktionsaufrufe
von der HA-Middleware 20 im Wege einer Rückruffunktion
zu bearbeiten, so dass die HA-Middleware 20 eine Befindlichkeitsüberprüfung mit
jedem Kernel-Space-HA-Modul 30 kontinuierlich
durchführen kann,
um die Grundlage einer Ausfallsicherung zu bilden. Unter Bezugnahme
auf 6 verarbeitet die HA-Middleware 20 die
Befindlichkeitsüberprüfung an jedes
Kernel-Space-HA-Modul 30 und der Kernel-Space-Proaktor 113 darf
Rückgabedaten
nicht an den User-Space-Proaktor 124 übermitteln, wenn die Kernel-Space-HA-Module 30 in
einem günstigen
Vorgabezustand gehalten werden. Der User-Space-Proaktor 124 kann
die proaktiven Befindlichkeitsüberprüfungsinformationen,
die in der Datenbank 14 für proaktive Informationen gespeichert
sind, direkt übermitteln,
um die Funktionsaufrufsanforderung von der HA-Middleware 20 zu
beantworten. Im Voraus kann der User-Space Proaktor 124 die
Kernel-Space-HA-Module 30 zum Beantworten der Rückruffunktionen
mit einer Rückmeldungsnachricht behandeln.
-
Das
Middleware-Brückensystem 10 der
vorliegenden Erfindung stellt ferner ein regelbasiertes Management-
bzw. Verwaltungsverfahren bereit, um die Entscheidung des proaktiven
Mechanismus durch ausgewählte
Regeln zu verwalten, wobei die Regeln durch Systemressourcen wie
z. B. freier Speicherplatz, belegte Verarbeitungszeit, Iteration, CPU-Last
usw. bestimmt werden. Um die Entscheidung durch diese Regeln zu
verwalten, muss das Middleware-Brückensystem 10 die
Systemressourcen zu jeder Zeit überwachen,
um die Regel zur Durchsetzung zu bestimmen. Damit kann das Middleware-Brückensystem 10 den
geeigneten Weg auswählen,
um die Systemressourcen zu verwalten und auszugleichen.
-
Der
proaktive Mechanismus wird basierend auf der vordefinierten Regeltabelle 13 betrieben.
Unter Bezugnahme auf 7 werden einige Funktionskennzeichen
der Get/Read-Funktion einschließlich der
Felder "Function
Name" (Funktionsname), "Attribute" (Attribut), "Priority Basis" (Prioritätsbasis)
und "Rule" (Regel) gezeigt.
Das Feld "Attribute" wird verwendet,
um die Eigenschaft der Funktion auszudrücken, ferner um zu bestimmen,
ob die Funktion für eine
proaktive Verarbeitung geeignet ist. Innerhalb des Feldes "Attribute" wird eine Variable "Requester" (Anforderer) verwendet,
um den Ursprung des Funktionsaufrufs zu identifizieren, wie z. B. "KRN-AP" oder "HAMW" für die Proaktionsart
des Kernel-AP-Anforderers bzw. des HA-Middleware-Anforderers. Eine
Variable "Regularity" (Regelmäßigkeit) wird
verwendet, um die Stabilität
und Unveränderlichkeit
des Funktionsaufrufs zu zeigen, wobei die Funktion für eine proaktive
Verarbeitung nur geeignet ist, wenn die Variable "Regularity" mit "YES" (Ja) gekennzeichnet
ist. Eine Variable "Repetition" (Wiederholung) wird
verwendet, um die wiederholbare Eigenschaft des Funktionsaufrufs
zu identifizieren, wobei der Funktionsaufruf für eine proaktive Verarbeitung geeignet
ist, wenn die Variable "Repetition" mit "YES" gekennzeichnet ist.
Eine "Loop_Rate" (Schleifenrate) wird
verwendet, um die Ausführungsfrequenz
bzw- häufigkeit
des wiederholbaren Funktionsaufrufs einzustellen. Variablen "Grouping/Group" (Gruppieren/Gruppe)
werden verwendet, um die Gruppe der nicht-wiederholbaren Funktionen
für eine
gemeinschaftliche Verarbeitung einzustellen, so dass die Gruppe
der nicht-wiederholbaren Funktionen bei der proaktiven Verarbeitung
verarbeitet werden kann. Weiterhin kann eine Variable "Sequence" (Abfolge, Reihenfolge)
verwendet werden, um eine Abfolge einer Reihe von Funktionsaufrufen
auszudrücken,
um den proaktiven Mechanismus für
eine proaktive Ausführung
der Funktion in der nächsten
Folge aktiv zu aktivieren.
-
Das
Feld "Priority Basis" ist der wichtigste Faktor,
um das Prioritätsniveau
der Funktion zu bestimmen, und spiegelt die Wichtigkeit der Funktion und
den erwarteten Nutzen der proaktiven Ausführung der Funktion wider, so
dass der proaktive Mechanismus die Funktionen mit höherer Priorität für eine proaktive
Ausführung
auswählen
kann, wenn die Systemressourcen unzureichend sind. Das Feld "Priority Basis" kann auf "High" (hoch), "Medium" (mittel), "Low" (niedrig" oder "Default" (Voreinstellung)
eingestellt sein und der proaktive Mechanismus kann "Priority Basis" der Funktion automatisch
gemäß den Variablen "Repetition" und "Loop_Rate", während bzw.
solange das Feld "Priority
Basis" auf "Default" gesetzt ist. Wenn
die Variable "Repetition" auf "YES" (ja) und die "Loop_Rate" auf "CONT" gesetzt sind, was
die Kontinuität
des Funktionsaufrufs anzeigt, wird die "Priority Basis" der Funktion auf "High" gesetzt
werden, andernfalls wird die "Priority Basis" der Funktion auf "Medium" gesetzt werden. Wenn
jedoch die Variable "Repetition" auf "NO" (nein) gesetzt ist,
wird die "Priority
Basis" der Funktion
auf "Low" gesetzt werden.
-
Das
Feld "Rule" (Regel) wird verwendet,
um die Betriebs- und
Verwaltungsregeln für
den proaktiven Mechanismus zu identifizieren. Basierend auf den
Systemressourcen wird der proaktive Mechanismus der Variablen "Select_Rule" (Auswahlregel) folgen,
um die Priorität
der Funktionsaufrufe für
die proaktive Ausführung
zu bestimmen und auszuwählen, und
wird der Variablen "UsersNO_Rule" folgen, um die Anzahl
der Funktionsaufrufe, nämlich
die zurückgehaltene
Skalierbarkeit für
die Kernel-Space-HA-Module 30 in
der Ausführungsform, für die proaktive
Ausführung
während
der Initialisierung zu bestimmen.
-
Die
Variable "Select_Rule" kann als "SYS_MEM", "NONE" oder "Default" gesetzt werden, wobei "SYS_MEM" bedeutet, dass der
proaktive Mechanismus "Priority
Basis" gemäß dem vorhandenen freien
Speicherplatz des Systems steuern kann, "NONE" bedeutet,
dass der proaktive Mechanismus keine Kontrolle über "Priority Basis" hat, und "Default" gleichbedeutend ist mit "SYS_MEM". Die Variable "UsersNO_Rule" kann ebenso als "SYS_MEM", "NONE" oder "Default" gesetzt sein, wobei "SYS_MEM" bedeutet, dass der
proaktive Mechanismus die Skalierbarkeit gemäß den vorhandenen freien Speicherplatz
des Systems steuern kann, "NONE" bedeutet, dass der
proaktive Mechanismus die Skalierbarkeit mit der größten Skalierbarkeit
nicht steuern darf, und "Default" gleichbedeutend
ist mit "SYS_MEM". Unabhängig davon
muss der proaktive Mechanismus die Systemressourcen überprüfen und den
Variablen "Select_Rule" und "UsersNO_Rule" während des
Betriebs folgen.
-
Auch
wird der proaktive Mechanismus den Verwendungszustand der Funktionen
weiterhin überwachen
und einer Variablen "Tuning_Rule" folgen, um die Verwaltung
von "Enable/Disable" (Aktivieren/Deaktivieren)
bei der proaktiven Planung für
jede Funktion zum Hinzufügen
oder Entfernen von Funktionen in der proaktiven Planung einzustellen.
Die Variable "Tuning_Rule" kann als "USE_TIMES" oder "EFFICIENCY" gesetzt sein, wobei "USE_TIMES" bedeutet, dass der
proaktive Mechanismus durch die Verwendungszeiten der jeweiligen
Funktionen die Zeit einstellt, und "EFFICIENCY" bedeutet, dass der proaktive Mechanismus
durch die Effizienz der proaktiven Ausführung einer jeden Funktion
einstellt.
-
Unter
Bezugnahme auf 8 wird ein Flussdiagramm 800 des
proaktiven Mechanismus gezeigt, um zu identifizieren, welche Funktion
für eine
proaktive Ausführung
geeignet ist. In Schritt 801 erhält der proaktive Mechanismus
zuerst die Attribute der ausgewählten
Funktionen der Get/Read-Art von dem Feld "Attribute" in der Regeltabelle 13; in
Schritt 802 wird die ausgewählte Funktion mit der Variablen "Repetiton" überprüft, wenn die Variable "Repetiton" als "YES" gekennzeichnet ist,
geht der Fluss anschließend
zu Schritt 803, andernfalls zu Schritt 804; in Schritt 803 wird
die ausgewählte
Funktion mit der Variablen "Regularity" überprüft, wenn die Variable "Regularity" als "YES" gekennzeichnet ist,
geht der Fluss zu Schritt 806, andernfalls zu Schritt 805;
in Schritt 804 wird die ausgewählte Funktion mit der Variablen "Grouping" überprüft, wenn die Variable "Grouping" als "YES" gekennzeichnet ist,
geht der Fluss zu Schritt 806, andernfalls zu Schritt 805;
in Schritt 805 wird ein proaktiver Modus der ausgewählten Funktion
auf "N/A" (nicht vorhanden
bzw. nicht zugewiesen) gesetzt, um darzustellen, dass die ausgewählte Funktion
nicht in eine proaktive Ausführung
gesetzt werden kann; in Schritt 806 wird der proaktive
Modus der ausgewählten
Funktion auf "Applicable" (anwendbar) gesetzt;
und in Schritt 807 entscheidet der proaktive Mechanismus
die "Priority Basis" der ausgewählten Funktion
gemäß der Systemressourcenverwendungsrate
der ausgewählten
Funktion wie z. B. die Verarbeitungszeit.
-
Unter
Bezugnahme auf 9 wird ein Flussdiagramm 900 des
proaktiven Mechanismus gezeigt, um den Fluss der proaktiven Ausführung zu
zeigen. In Schritt 901 identifiziert der proaktive Mechanismus zuerst
den proaktiven Modus und die "Priority
Basis" von jeder
ausgewählten
Funktion; in Schritt 902 wird der proaktive Mechanismus
das Prioritätsniveau
für die
proaktive Ausführung
und den Voraufruf der Funktion durch die Variable "Select_Rule" der Regeltabelle 13 und
die Systemressourcenverwendung wie z. B. Speicherplatz bestimmen
und auswählen;
in Schritt 903 ruft der proaktive Mechanismus die ausgewählten Funktionen
im Voraus auf und speichert die Rückgabedaten; in Schritt 904 wird
ein Funktionsaufruf der ausgewählten
Funktion von einer Client-Seite wie z. B. einem Kernel-Space-HA-Modul 30 empfangen;
in Schritt 905 wird der Funktionsaufruf mit seinem proaktiven
Modus überprüft, wenn
der proaktive Modus anwendbar ist, geht der Fluss zu Schritt 906,
andernfalls zu Schritt 907; in Schritt 906 wird
der Funktionsaufruf mit seinen effektiven Rückgabedaten überprüft, wenn
die effektiven Rückgabedaten
erhalten wurden, geht der Fluss zu Schritt 908, andernfalls
zu Schritt 909; in Schritt 907 wird der Funktionsaufruf
an eine Serverseite wie z. B. die HA-Middleware 20 weitergeleitet
und der proaktive Mechanismus wird verwendet, um die effektiven Rückgabedaten zu
erhalten; in Schritt 909 fährt der proaktive Mechanismus
fort, die Verwendungsbedingung der proaktiven Ausführung der
ausgewählten Funktion
zu überwachen
und aufzuzeichnen; und in Schritt 910 kann der proaktive
Mechanismus fortfahren, die nächste
Funktion, die mit der proaktiven Ausführung bearbeitet wird, auszuwählen.
-
Unter
Bezugnahme auf 10 kann die vorliegende Erfindung
die Kommunikation zwischen dem Kernel-Space-Brückenmanager 11 und
dem User-Space-Brückenmanager 12 verringern,
während
der proaktive Mechanismus angewandt wird. Der User-Space-Brückenmanager 12 erkennt
die Veränderung
der Rückgabedaten
von der HA-Middleware 20 und übermittelt die Rückgabedaten
an den Kernel-Space-Brückenmanager
nur, wenn die Rückgabedaten
verändert
sind oder sich das System bei der Initialisierung befindet. Somit
kann die Kommunikationsfrequenz bzw. -häufigkeit des Kernel-Space-Brückenmanagers 11 und
des User-Space-Brückenmanagers 12 vermindert
werden und der Kernel-Space-Brückenmanager 11 kann die
Funktionsaufrufsanforderungen von den Kernel-Space-HA-Modulen 30 direkt
beantworten.
-
Unter
Bezugnahme auf 11 kann die vorliegende Erfindung
die Kommunikation zwischen dem Kernel-Space-Brückenmanager 11 und
dem User-Space-Brückenmanager 12 bei
der Befindlichkeitsüberprüfungsfunktion
des Verfügbarkeitsdienstes
unter Anwendung des proaktiven Mechanismus reduzieren. Wenn die
HA-Middleware 20 eine Rückruffunktion,
Befindlichkeitsüberprüfungsfunktion
anfordert, kann der User-Space-Brückenmanager 12 die
erhaltenen Daten im Voraus sofort von dem Kernel-Space-Brückenmanager 11 erhalten.
Weiterhin erkennt der Kernel-Space-Brückenmanager 11 die Veränderung
der Rückgabedaten von
den Kernel-Space-HA-Modulen 30 und übermittelt die Rückgabedaten
an den User-Space-Brückenmanager
nur, wenn die Rückgabedaten
verändert
sind oder sich das System bei der Initialisierung befindet. Daher kann
die Kommunikationsfrequenz des Kernel-Space-Brückenmanagers 11 und
des User-Space-Brückenmanagers 12 reduziert
werden und der User-Space-Brückenmanager 12 kann
die Funktionsaufrufsanforderung von der HA-Middleware 20 direkt
beantworten.
-
Die
vorliegende Erfindung stellt eine Umgebung für Programmentwickler bereit,
um die Middleware günstig
in Kernel-Space-Modulen zu verwenden, und stellt eine allgemeine
Lösung
für Multi-Kernel-Space-Module
bereit.
-
Bei
einer detaillierten Beschreibung der verschiedenen Ausführungsformen
dieser Erfindung werden Fachleute leicht verstehen, dass verschiedene
Modifikationen und Veränderungen
an die Ausführungsformen
der Erfindung wie zuvor beschrieben angewandt werden können, ohne
ihren Rahmen, der in und durch die anhängenden Ansprüche definiert wird,
zu verlassen. Zusätzlich
sollten die Ausführungsformen
nicht als Beschränkung
der tatsächlich anwendbaren
Beschreibung der Erfindung verstanden werden.