-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft die Verbindung von Datenübertragungs-
und/oder Datenverarbeitungsressourcen in einem Netz und insbesondere die
Bereitstellung von Verbindungen zwischen verschiedenen Datenübertragungsumgebungen.
-
Grundlagen
-
Ein "Netz" von Computern kann
aus einer beliebigen Anzahl von Computern bestehen, die Daten untereinander
austauschen können.
Die Computer können
in einer beliebigen Konfiguration angeordnet sein und sich im selben
Raum oder in verschiedenen Ländern
befinden, solange eine Möglichkeit
besteht, sie miteinander zu verbinden (beispielsweise durch Telefonleitungen
oder andere Kommunikationssysteme), so dass sie Daten austauschen
können.
So wie Computer miteinander verbunden werden können, um ein Netz zu bilden,
können
auch Netze durch als Brücken
und Gateway-Computer bekannte Einrichtungen miteinander verbunden
werden. Diese Einrichtungen ermöglichen
es einem Computer in einem Netz, Daten mit einem Computer in einem
anderen Netz auszutauschen. Das Internet ist ein Netz von Netzen
ohne einen einzigen Eigner oder eine einzige Steuereinheit und beinhaltet
große und
kleine, öffentliche
und private Netze, und jeder damit verbundene Computer, in dem eine
Internetprotokoll-Software ausgeführt wird, ist in Abhängigkeit
von Sicherheitskontrollen in der Lage, Daten mit irgendeinem anderen
Computer auszutauschen, der ebenfalls mit dem Internet verbunden
ist. Diese vielfältige
Ansammlung von Netzen, die eine Verbindung untereinander eingegangen
sind, beruht nicht auf einem einzigen Übertragungsmedium (beispielsweise kann
eine bidirektionale Kommunikation über Satellitenverbindungen,
Lichtwellenleiterverbindungen, Telefonleitungen, Kabelfernsehleitungen
und lokale Funkverbindungen erfolgen).
-
Der
Internetdienst des World Wide Web (WWW) ist eine überregionale
Datenabrufeinrichtung, die den Zugriff auf eine riesige Menge von über das
Netz zugänglichen
Daten bereitstellt und die kostengünstige Datenübertragungen
zwischen mit dem Internet verbundenen Computern bereitstellen kann. Informationen über das
World Wide Web sind in "Spinning
the Web" von Andrew
Ford (International Thomson Publishing, London 1995) und "The World Wide Web
Unleashed" von John
December und Neil Randall (SAMS Publishing, Indianapolis 1994) zu
finden. Aufgrund der Kombination aus Flexibilität, Übertragbarkeit und einfacher
Handhabung in Verbindung mit der Fähigkeit zur interaktiven Multimediadarstellung
wächst
die Nutzung des WWW mit ungeheurer Geschwindigkeit. Das WWW ermöglicht es
jedem Computer, der mit dem Internet verbunden ist und eine entsprechende
Software- und Hardwarekonfiguration aufweist, jedes Dokument abzurufen,
das irgendwo im Internet zur Verfügung gestellt worden ist. Zu
den abrufbaren Dokumenten im WWW gehören "Hypermedia"-Dokumente, d. h. Dokumente, die Textdokumente
oder andere Formen von Medien sein können, beispielsweise Ton- und
Bilddaten, und die Verbindungen ("Hyperlinks") zu anderen Dokumenten aufweisen.
-
Das
Format von Textdokumenten im WWW ist ein Standardformat in HTML
(HyperText Markup Language), so dass ein in einem bestimmten Betriebssystem
und einer bestimmten Hardwareplattform erzeugtes Dokument von einem
Benutzer in jeder anderen Plattform gelesen werden kann, die einen
Web-Browser aufweist
(siehe unten). Bilder können
in gesonderten Grafikdateien gespeichert werden, beispielsweise
in einem Standard-GIF- oder JPEG-Format, und im HTML-Text kann auf
diese verwiesen werden, so dass der Benutzer zum Abrufen der angegebenen
Bilddateien sowie des HTML-Textes aufgefordert wird.
-
Benutzer
greifen unter Verwendung eines "Web-Browsers" oder "Web-Clients" auf diese Daten zu,
der in Form von Software im Computer des Benutzers installiert ist
und Einrichtungen zum Liefern oder Abrufen von Dokumenten von einem
Web-Server über
das Internet aufweist. Zu derzeit erhältlichen Web-Browsern gehören WebExplorer
von IBM Corporation und Mosaic von NCSA. Solche Browser enthalten
Verzeichnisse und Suchprogramme und verstehen HTML und andere WWW-Standardformate und
können
Dateien in diesen Formaten korrekt anzeigen oder ausgeben. Die Benutzerschnittstelle
dieser Web-Browser ist eine grafische "Zeigen-und-Anklicken"-Schnittstelle ('point-and-click' interface) (d. h., Elemente können durch
Bewegen eines Cursors über
eine grafische Anzeige und anschließendes Drücken einer Maustaste ausgewählt werden).
Das WWW ist in Form von Seiten oder Dateien strukturiert, die jeweils
einen bestimmten Uniform Resource Locator (oder URL) aufweisen.
Der URL bezeichnet sowohl die Servermaschine als auch die jeweilige Datei
oder Seite in dieser Maschine. Der Benutzer kann entweder einen
bestimmten URL angeben oder mittels der "Hyperlinks" von einem URL zu einem diesem zugeordneten
URL springen, das heißt,
ein Wort oder ein Symbol auf einer Seite kann einem anderen URL
zugeordnet werden, der beispielsweise durch Anklicken mittels einer
Maus an der entsprechenden Position ausgewählt werden kann, um den Browser zum
Abrufen und Anzeigen der entsprechenden Seite zu veranlassen. In
einem einzigen Server können sich
viele Seiten befinden, und mittels Hyperlinks verknüpfte zugehörige Seiten
können
sich in verschiedenen Servern befinden. Falls ein URL mit "http:" beginnt, wird dadurch
angezeigt, dass die Datei Hyperlinks enthält.
-
Wenn
ein Benutzer einen URL für
eine Seite in einem Web-Serversystem
unter Verwendung seines Web-Browsers auswählt, wird eine Einwegeanforderung
(one-shot request) an den entsprechenden Server übertragen, der einen für diese
Seite spezifischen Vorgang ausführt.
In vielen Fällen
antwortet der Server auf die Anforderung durch Abrufen der angeforderten
Seite aus einer Datenbank von gespeicherten Seiten und Rückübertragen
der HTML-Seite über
das Internet an den WWW-Client
zur Anzeige für
den Benutzer. Dies wird im Rahmen einer einzigen synchronen Endpunkt-zu-Endpunkt-Kommunikationssitzung
ausgeführt.
Das heißt,
der Browser überträgt seine
Anforderung und wartet anschließend
auf eine Antwort, bevor er mit irgendeiner weiteren Verarbeitung
oder dem Einleiten anderen Anforderungen fortfährt. Der Browser wird als "blockiert" oder "suspendiert" bezeichnet, während er
auf die angeforderte Antwort wartet. In einigen Fällen führt die
Anforderung des Browsers dazu, dass der Server eine Anwendung zum
Erzeugen der HTML startet, jedoch erfordert die Einwegeanforderung
vom Browser wiederum eine Antwort im Rahmen der aktuellen synchronen
Kommunikationssitzung, da der Browser nicht die Voraussetzungen
für gleichzeitig
ablaufende Kommunikationssitzungen schafft und keine Anwendungsstatusdaten
zwischen Anforderungen gespeichert werden. Ein fehlgeschlagener
Zugriff auf eine von einem Browser angeforderte Seite kann dem Benutzer
mittels einer Fehlernachricht rückgemeldet
werden, die auf der Datenstation des Benutzers angezeigt wird. Falls
der Server jedoch hinsichtlich der Antwort lediglich langsam ist,
bleibt der Browser für
eine unbestimmte Zeitspanne suspendiert. In der Praxis kann ein
Benutzer den Kommunikationsversuch abbrechen, falls die Verzögerung unannehmbar
lange ist. In Web-Browsern gibt es keine Einrichtung zur automatischen
Wiederholung einer Anforderung.
-
Moderne
Unternehmen benötigen
Einrichtungen zur Kommunikation mit anderen Geschäftsstellen
innerhalb des Unternehmens und mit verbundenen Unternehmen, beispielsweise
Kunden oder Lieferanten, die sich in einem anderen Land befinden können. Der
WWW-Internetdienst kann einem solchen Bedarf teilweise entsprechen,
indem ein kostengünstiges
Kommunikationsmedium für
Kommunikationsvorgänge
zwischen Unternehmen bereitgestellt wird, jedoch können das
Einwege-Anforderung-Antwort-Kommunikationsmodell
des WWW-Internetdienstes und das Fehlen der Voraussetzungen für parallele
Anforderungen von einem Browser erhebliche Einschränkungen
darstellen, falls angeforderte Daten nicht innerhalb einer annehmbaren
Zeitspanne zur Verfügung
stehen. Es ist oftmals unannehmbar, dass ein Sendesystem für eine unbestimmte
Zeit suspendiert ist, und es ist unannehmbar, dass der Erfolg von
kommerziellen Anwendungen davon abhängt, ob eine Serveranwendung
rechtzeitig auf eine Anforderung antwortet. Der WWW-Internetdienst
stellt keine Einrichtungen für
eine gesicherte Zustellung von Nachrichten bereit, was bei vielen kommerziellen
Anwendungen erforderlich ist (das heißt, die Anwendung muss Kenntnis
davon haben, dass eine von ihr übertragene
Nachricht auf ihrem Weg zum Ziel nicht verloren gegangen ist und
dass diese nur einmal übertragen
wird). Außerdem
können
kommerzielle Anwendungen einen Dialog mit vielen Anforderung-Antwort-Paaren
beinhalten, und die fehlende Übertragung
irgendwelcher Kontextdaten zwischen Web-Browseranforderungen bedeutet, dass
es keine Einrichtung gibt, um Anforderungen, die Teil derselben
kommerziellen Anwendung sind, miteinander in Bezug zu setzen.
-
Ein
alternatives Kommunikationsmodell zum synchronen, zeitabhängigen "Anforderung-und-Warten-auf-Antwort"-Modell ('request and await
response' model)
ist die asynchrone Nachrichtenübertragung.
Ein Programm, das eine Nachricht an ein Empfängerprogramm überträgt, muss
nicht blockiert werden, um auf eine Antwort vom Empfänger zu
warten, und kann folglich mit der Ausführung fortfahren, und der Sender
und der Empfänger
sind nicht miteinander synchronisiert (serialisiert). Eine asynchrone Nachrichtenübertragung
zwischen Programmen verwendet normalerweise Nachrichtenwarteschlangen als
Zwischenspeichereinrichtungen, in denen Nachrichten platziert werden,
wenn sie von einem ersten Programm übertragen werden, und aus denen
sie von einem Empfängerprogramm
abgerufen werden können,
wenn es dazu bereit ist. Es gibt keine zugeordnete logische Verbindung
zwischen den Programmen. Nach dem Platzieren einer Nachricht in
einer Warteschlange kann das Senderprogramm mit der Ausführung anderer
Tasks fortfahren, die das Übertragen
von Nachrichten an andere Programme im Netz beinhalten können. Nach
dem Stand der Technik ist es bekannt, asynchrone Nachrichtenübermittlungssysteme
bereitzustellen, die die Kommunikation zwischen Programmen über heterogene
Netze unterstützen
und die Anwendungsprogramme (die jeweils für eine bestimmte Betriebssystemumgebung
geschrieben werden) von der Komplexität des Netzes und von den Arbeitsgängen zum
Verwalten und Lokalisieren von Nachrichtenwarteschlangen abschirmen.
Solche Nachrichtenübermittlungssysteme
sind für
viele kommerzielle Unternehmen wichtig, die eine leistungsfähige Zusammenarbeit
zwischen ihren verschiedenen kommerziellen Anwendungsprogrammen
erzielen müssen,
deren Datenverarbeitungsressourcen jedoch ganz verschiedenartige
Betriebssystem- und Hardwareumgebungen umfassen.
-
Die
Nachrichtenwarteschlangenbildung und handelsübliche Produkte zur Nachrichtenwarteschlangenbildung
werden in "Messaging
and Queuing Using the MIQ",
B. Blakely, H. Harris und R. Lewis, McGraw-Hill, 1994, und in den
folgenden Veröffentlichungen
beschrieben, die von IBM Corporation erhältlich sind: "An Introduction to
Messaging and Queuing" (IBM
Dokument Nr. GC33-0805-00) und "MQSeries – Message
Queue Interface Technical Reference" (IBM Dokument Nr. SC33-0850-01). IBM und MQSeries
sind Warenzeichen von IBM Corporation. Die Nachrichtenübermittlungs-Softwareprodukte
MQSeries von IBM stellen eine Unterstützung der Transaktionsnachrichtenübermittlung
bereit, wobei Nachrichten in logischen Arbeitseinheiten gemäß einem
Nachrichtenübermittlungsprotokoll
synchronisiert werden, das eine gesicherte einmalige Nachrichtenzustellung
auch im Falle von System- oder Kommunikationsfehlern gewährleistet.
MQSeries-Produkte stellen eine gesicherte Zustellung bereit, indem
eine Nachricht erst aus dem Speicher in einem Sendersystem gelöscht wird,
wenn deren sichere Speicherung von einem Empfängersystem bestätigt wird,
und durch die Verwendung von hochentwickelten Wiederherstellungseinrichtungen.
Vor einer Festschreibung der Übertragung
der Nachricht auf die Bestätigung
einer erfolgreichen Speicherung hin werden sowohl die Löschung der
Nachricht aus dem Speicher im Sendersystem als auch die Einfügung in
den Speicher im Empfängersystem "in der Schwebe" gehalten und können im
Falle eines Fehlers automatisch zurückgesetzt werden. Dieses Nachrichtenübertragungsprotokoll
und die zugeordneten Transaktionskonzepte und Wiederherstellungseinrichtungen
werden in der internationalen Patentanmeldung WO 95/10805 und in
der US-Patentschrift 5 465 328 beschrieben.
-
Es
ist wünschenswert,
die Vorteile einer asynchronen (Offline-)Verarbeitung mit Datenverarbeitungsressourcen
zu verbinden, die für
eine synchrone Kommunikation geeignet sind, beispielsweise Clientsysteme
des WWW-Internetdienstes, und im Allgemeinen die Zusammenarbeit
zwischen Ressourcen auf der Grundlage eines asynchronen Datenübertragungsmodells
und Ressourcen auf der Grundlage eines synchronen Modells zu ermöglichen,
vorzugsweise ohne die Notwendigkeit größerer Änderungen an den vorhandenen
synchronen Ressourcen. Außerdem
ist es wünschenswert,
die Überprüfung des
Verlaufs von asynchronen Nachrichten von einem synchron verbundenen
Clientsystem zu ermöglichen.
Die US-Patentschrift 5 329 619 zeigt einen Dienstagenten (service
broker), der sowohl eine asynchrone als auch eine synchrone Bearbeitung von
Dienstanforderungen von Clients und Servern ermöglicht.
-
Neben
der Verbindung ihrer Datenverarbeitungsressourcen im Internet stellen
Firmen auch fest, dass Internetstandards (das Internet Protocol,
die Verwendung von HTML usw.) innerhalb eines "Intranet" vorteilhafterweise realisiert werden
können,
das heißt
in einem Netz von Computern innerhalb eines bestimmten Unternehmens,
wobei dieses Netz den Standards des Internets entspricht. Eine Browser-Software
zur Verwendung in Internets steht nun zur Verfügung.
-
Die
obigen Anforderungen erläutern
beispielhaft den Bedarf vieler Benutzer von Datenverarbeitungsressourcen
an einer Kompatibilität
zwischen ihren verschiedenen Ressourcen unabhängig davon, ob sie für verschiedene
Umgebungen geeignet sind oder auf verschiedenen Kommunikationsmodellen oder
-architekturen beruhen. Es besteht eine zunehmende Notwendigkeit,
dass Anwendungsprogramme, die für
verschiedene Betriebssysteme geschrieben wurden oder auf verschiedenen
Kommunikationsmodellen oder Paradigmen beruhen, und Computer und
andere Datenübertragungssysteme,
die verschiedene Kommunikationsprotokolle, Datenformate, Sprachen
oder Kommunikationsmodi verwenden, nahtlos und ohne Kenntnis der
Endbenutzer von der Komplexität
der Interaktion zusammenarbeiten. Die vorliegende Erfindung dient
dazu, bestimmte offensichtliche Inkompatibilitäten zwischen Ressourcen anzugehen,
für die
eine Zusammenarbeit gewünscht
wird, wobei eine Verbindung zwischen den verschiedenen Ressourcen
bereitgestellt wird.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Unter
einem ersten Aspekt der Erfindung wird ein Datenübertragungsserversystem für ein Datenübertragungsnetz
bereitgestellt, wobei das Serversystem Einrichtungen zum Unterstützen einer synchronen
Kommunikation zwischen dem Serversystem und einem Clientsystem des
Netzes aufweist und wobei das Serversystem außerdem Einrichtungen zum Unterstützen einer
asynchronen Kommunikation mit Programmen im Serversystem oder in
einem anderen System des Netzes aufweist, wobei das Serversystem
Folgendes enthält:
ein Mittel, das auf eine Anforderung vom Clientsystem in einer synchronen
Kommunikationssitzung zwischen dem Clientsystem und dem Serversystem
anspricht, um eine Anforderung an ein Programm im Serversystem oder in
einem anderen System des Netzes als asynchrone Kommunikation zu übertragen,
wobei die asynchrone Anforderung einen vom Serversystem zugeordneten Sitzungskennzeichner
enthält;
ein Mittel zum Starten eines Zeitgebers auf die Anforderung vom
Clientsystem hin; ein Mittel, das auf den Empfang einer Antwort
auf die asynchrone Kommunikation anspricht, um die Antwort unter
Verwendung des Sitzungskennzeichners der Anforderung vom Clientsystem
zuzuordnen, um zu ermöglichen,
dass eine Antwort an das Clientsystem übertragen wird; ein Mittel,
das auf die Antwort des Programms auf die asynchrone Kommunikation
anspricht, die Sitzungsstatusdaten beinhaltet, die eine serielle
Anordnung von Interaktionen ermöglichen,
um Sitzungsstatusdaten in die an das Clientsystem übertragene
Antwort aufzunehmen; ein Mittel zum Erzeugen einer vorläufigen Antwort
vor dem Empfang einer Antwort auf die asynchrone Kommunikation,
wobei die vorläufige
Antwort den Sitzungskennzeichner enthält; und ein Mittel zum Übertragen
der vorläufigen
Antwort an das Clientsystem in der synchronen Kommunikationssitzung,
falls eine vorgegebene Zeitspanne verstreicht, bevor eine Antwort
auf die asynchrone Anforderung vom Serversystem empfangen wird.
-
Folglich
weist ein System gemäß der vorliegenden
Erfindung ein Mittel zum Übertragen
von mindestens einer vorläufigen
Antwort an den Client in der synchronen Kommunikationssitzung auf, selbst
wenn noch keine Antwort auf die asynchrone Anforderung empfangen
wurde.
-
Unter
einem zweiten Aspekt stellt die Erfindung ein Verfahren zur Kommunikation
zwischen Programmen zwischen einem Clientprogramm und einem Programm
im Serversystem oder einem anderen System im Netz unter Verwendung
der Einrichtungen eines Serversystems gemäß der obigen Beschreibung bereit.
-
Folglich
unterstützen
das System und das Verfahren gemäß der Erfindung
eine serielle Anordnung von Interaktionen zwischen einem Clientsystem und
einem Anwendungsprogramm. Dies kann mit Hilfe von Sitzungsstatusdaten
(beispielsweise einer fortlaufenden Nummer, die die Position der
Interaktion im aktuellen Dialog kennzeichnet) ausgeführt werden,
die in Nachrichten vom Anwendungsprogramm aufgenommen werden, die
zum Client rückübertragen
werden. Eine Anwendung, die eine weitere Eingabe vom Clientsystem
benötigt,
zeigt dies mit Hilfe von Sitzungsstatusdaten in ihren Antworten
an, wobei diese Daten entweder nur vom Server- oder Clientsystem
oder von beiden erkannt werden können. Mittels
des Sitzungskennzeichners und der Sitzungsstatusdaten ist es möglich, zugeordnete
Anforderung-Antwort-Paare einer bestimmten Anwendung zu ermitteln,
die mehrere aufeinanderfolgende Benutzerinteraktionen beinhalten
können,
und eine korrekte sequenzielle Reihenfolge vom Datenübertragungsvorgängen in
einer Sitzung sicherzustellen.
-
Die
Erfindung macht es möglich,
dass ein Prozess im Clientsystem mit dem asynchron kommunizierenden
Programm kommuniziert, selbst wenn der Clientprozess eine zugeordnete
synchrone Kommunikationssitzung für die Kommunikation zwischen Programmen
benötigt.
Das Programm im Serversystem oder in einem anderen System des Netzes
kann ein Anwendungsprogramm sein, das für den Empfang und die Übertragung
von asynchronen Nachrichten ohne zugeordnete Kommunikationssitzung geeignet
ist. Außerdem
stellen vorläufige
Antworten, die in der anfänglichen
synchronen Sitzung an das Clientsystem übertragen werden, ein Mittel
zur Bestätigung
bereit, dass das Serversystem die Anforderung empfangen hat. Falls
das Serversystem Teil eines Netzes von Servern ist, die eine gesicherte
Zustellung von Nachrichten zwischen diesen bereitstellen, das synchron
verbundene Clientsystem für
den Kommunikationssprung zwischen Client und verbundenem Server
jedoch keine gesicherte Zustellung unterstützt, kann es in hohem Maße wünschenswert sein,
laufend zu überprüfen, ob
eine Anforderung den Server erfolgreich erreicht hat, das heißt, eine Überwachung
der Kommunikationsvorgänge über die nichtgesicherte
Verbindung des Datenübertragungsleitweges.
-
"Vorläufige Antworten" werden vorzugsweise nur übertragen,
wenn innerhalb einer festgelegten Zeitspanne keine "vollständige Antwort" zur Übertragung
an das Clientsystem verfügbar
ist (z. B. innerhalb einer von einem Systemverwalter festgelegten Zeitspanne).
Das heißt,
falls nach Verstreichen der festgelegten Zeitspanne von einem asynchron
kommunizierenden Anwendungsprogramm noch keine Antwort empfangen
wurde, so dass der Server die angeforderte vollständige Antwort
noch nicht bereitstellen kann, wird im Serversystem ein Prozess
gestartet, um eine vorläufige
Antwort an das Clientsystem zu übertragen.
Die vorläufige
Antwort enthält
vorzugsweise einen vom Serversystem zugeordneten und in diesem einmaligen
Sitzungskennzeichner.
-
Die
Aufnahme des Sitzungskennzeichners in vorläufige Antworten an ein Clientsystem
ermöglicht es
dem Clientsystem (oder einem in diesem arbeitenden Endbenutzer),
das vor einer Zeitlimitüberschreitung
keine erwartete vollständige
Antwort von einem Anwendungsprogramm oder einem anderen asynchron
kommunizierenden Programm empfangen hat, den Server zu einem späteren Zeitpunkt
erneut zu kontaktieren und unter Verwendung des Sitzungskennzeichners
festzustellen, ob eine diesem zugeordnete Antwort noch nicht verfügbar ist.
Der Client, der eine vorläufige
Antwort empfangen hat, kann demzufolge mit anderen Verarbeitungstasks
fortfahren und die Interaktion mit dem Server unter Verwendung des
Sitzungskennzeichners zu einem späteren Zeitpunkt nochmals aufsuchen.
Dadurch wird das andernfalls auftauchende Problem vermieden, dass
ein synchron verbundener Clientprozess entweder (für eine unbestimmte
Zeitspanne) blockiert bleiben muss, um auf eine Antwort zu warten,
oder die Anwendung verlassen muss, falls eine Antwort nicht schnell
genug verfügbar
ist.
-
Gemäß einer
bevorzugten Ausführungsform der
Erfindung erleichtern Datenübertragungsvorgänge, die
auf den Ablauf des Zeitgebers hin an ein Clientsystem übertragen
werden, eine Entscheidung von einem Prozess oder einem Benutzer
im Clientsystem, ob ein synchron verbundener Prozess im Clientsystem
suspendiert bleiben muss (d. h., wobei die aktuelle Sitzung aufrechterhalten
wird) oder ob die Sitzung verlassen werden muss. Falls die Sitzung verlassen
wird, kann der Clientprozess frühere
Interaktionen mittels des Sitzungskennzeichners erneut aufsuchen;
der an das Clientsystem übertragene Kennzeichner
kann in eine nachfolgende an das Serversystem übertragene Anforderung aufgenommen werden,
so dass der Server alle verfügbaren Antworten
auf frühere
Anforderungen ermitteln kann, die denselben Sitzungskennzeichner
hatten. Folglich ist es einem Client, der zugeordnete Kommunikationssitzungen
benötigt,
nach einer Zeitlimitüberschreitung
möglich,
zu entscheiden, ob er seine synchrone Verbindung mit dem Server
aufrechterhält
oder ob er zu einer asynchronen Kommunikation mit dem Server unter
Verwendung zugeordneter synchroner Sitzungen wechselt oder die Kommunikation
einfach endgültig
verlässt.
Der Client wird folglich mit anderen Möglichkeiten ausgestattet, außer auf
unbestimmte Zeit suspendiert zu bleiben oder die Anwendung zu verlassen.
-
Das
Ausstatten eines Clients mit einem Sitzungskennzeichner für eine bestimmte
Interaktion ermöglicht
diesem nicht nur das erneute Aufsuchen früherer Interaktionen, sondern
ermöglicht
auch die Zuordnung einer Anzahl von Anforderung-Antwort-Paaren eines
Dialogs, selbst wenn der Datenübertragungsprozess
im Clientsystem auf einem Einwege-Anforderung-Antwort-Modell (one-shot
request-reply model) beruht. Außerdem
ist dieser hilfreich beim Angehen des Problems eines möglichen Fehlers
der Verbindung zwischen Client und Server, während der Client auf eine Antwort
wartet. Außerdem
ermöglicht
er einem Clientprozess oder einem Benutzer, Interaktionen mit mehreren
verschiedenen Anwendungen zu verschachteln, indem ein Mittel zum
Unterscheiden zwischen diesen bereitgestellt wird, und er ermöglicht den
Zugriff von mehr als einem Benutzer gleichzeitig auf dieselbe Anwendung. Sitzungskennzeichner
können
vom Clientsystem auf den Empfang einer vorläufigen Antwort hin zur nachfolgenden
Verwendung gemäß obiger
Beschreibung automatisch gespeichert werden.
-
Die
Begriffe "Client" und "Server" werden oben lediglich
zur Unterscheidung zwischen den in einer bestimmten Interaktion
erfüllten
Aufgaben verwendet, d. h., der Client gibt eine Anforderung aus, und
der Server ergreift auf die Anforderung hin eine Maßnahme.
Jeder Computer, der eine Task auf Anforderung eines anderen Computers
hin ausführt,
ist ein Server. Der Begriff "Client-Server" wird auf dem Gebiet
der Datenverarbeitung häufig
verwendet, um auf eine Umgebung Bezug zu nehmen, in der ein Client
(d. h. eine Datenstation) lediglich Funktionen für eine Endbenutzerinteraktion
bereitstellt, während
ein Server (z. B. ein Großrechner)
eine Datenspeicherung und einen Datenzugriff bereitstellt und eine komplexe
Verarbeitung ausführt.
Die vorliegende Erfindung kann in solchen "Client-Server"-Umgebungen und auch in nichthierarchischen
Umgebungen ('peer-to-peer" environments) angewandt
werden, in denen es keine solche Unterscheidung zwischen den von
den Datenübertragungssystemen
bereitgestellten Funktionen gibt. Die Erfindung ist besonders nützlich in
Situationen, in denen ein Computerprogramm in einem ersten System
speziell für
eine synchrone Kommunikation geeignet ist und es gewünscht wird,
dass das Programm mit einem für
eine asynchrone Kommunikation zwischen Programmen geeigneten Anwendungsprogramm
kommuniziert, das in einem anderen System ausgeführt wird, beispielsweise wenn
es gewünscht
wird, dass ein Web-Browser über
ein Nachrichtenwarteschlangenbildungssystem mit einem asynchronen
Anwendungsprogramm zusammenarbeitet.
-
Falls
der Server vor dem Verstreichen der festgelegten Zeitspanne eine
Antwort auf seine asynchrone Anforderung empfängt, nimmt er gemäß einer bevorzugten
Ausführungsform
der Erfindung Daten aus der empfangenen Antwort in seine Antwort an das
Clientsystem auf, die er in der synchronen Sitzung überträgt. Folglich
kann die asynchrone Art der Kommunikation mit dem Anwendungsprogramm
für den
Client unsichtbar gemacht werden, falls eine Antwort vom Anwendungsprogramm
schnell genug verfügbar
ist, wobei anschließend
in der synchronen Sitzung eine vollständige Antwort an den Client übertragen
wird.
-
Eine
alternative Ausführungsform
der Erfindung vermeidet ein Blockieren eines Clientprozesses durch
Rückübertragen
einer vorläufigen
Bestätigung des
Empfangs der Clientanforderung an das Clientsystem, ohne auf das
Ablaufen eines Zeitgebers zu warten. Die Empfangsbestätigung enthält einen
von einem Prozess im Serversystem zugeordneten Sitzungskennzeichner
(beispielsweise eine eindeutige Bezugsnummer). In diesem Fall kann
der Client mit anderen Tasks fortfahren, sobald er seine Bestätigung empfangen
hat, ohne suspendiert zu werden, um auf eine vollständige Antwort
oder das Ablaufen eines Zeitgebers zu warten. wenn anschließend eine Antwort
vom Anwendungsprogramm empfangen wird, wird diese in den Speicher
im Server platziert und solange zwischengespeichert, bis der Client
einen weiteren Kommunikationsvorgang an den Server überträgt, der
sich auf den zugeordneten Sitzungskennzeichner bezieht. Der Server
vergleicht den Sitzungskennzeichner der gespeicherten Antwort und der
neuen Anforderung und überträgt anschließend die
gespeicherte Antwort an den Client.
-
Außerdem liegt
es im Anwendungsbereich der vorliegenden Erfindung, wie sie in den
angehängten
Ansprüchen
definiert ist, den Typ der Antwort auf eine Clientanforderung von
der Art der Anforderung abhängig
zu machen. Einige Anforderungen, beispielsweise Warenbestellungen,
benötigen
möglicherweise eine
unmittelbare Empfangsbestätigung mit
einer zugeordneten Auftragsnummer, wodurch die Zeit der Suspendierung
des Clientprozesses auf ein Minimum herabgesetzt wird. Andere Anforderungen,
beispielsweise eine Kontostandsanfrage, benötigen möglicherweise keine Empfangsbestätigung der
Anforderung vor der Bereitstellung der angeforderten Daten, da solche
Daten oftmals nur benötigt werden,
falls sie schnell verfügbar
sind; in einem solchen Beispiel ist es für den Client angemessen, eine gewisse
Zeit lang auf eine vollständige
Antwort zu warten. Diese Entscheidung, ob eine sofortige Bestätigung übertragen
werden muss oder nicht, wird vorzugsweise ausgeführt, indem ein Endbenutzer
mit einem Mittel zum Anzeigen eines Wunschs nach einer Bestätigung,
beispielsweise durch die Bereitstellung eines zusätzlichen
Feldes oder Parameters in einem Anforderungsformular, und mit einem
Mittel zum Antworten auf Einträge
in diesem Feld ausgestattet wird.
-
Die
Sitzungskennzeichner werden Anforderungen von einem Clientsystem
vorzugsweise durch einen Prozess im Serversystem zugeordnet, der
den Sitzungskennzeichner in die zugehörige asynchrone Anforderung
einbettet, die er an ein Anwendungsprogramm überträgt. Die asynchrone Serveranforderung enthält folglich
Daten aus der anfänglichen
Clientanforderung und den zugeordneten Kennzeichner. Wenn das Serversystem
anschließend
eine Antwort vom Anwendungsprogramm empfängt, die diesen Sitzungskennzeichner
enthält,
ordnet der Server diese Antwort der Anforderung vom Clientsystem
zu und überträgt eine
Antwort an das Clientsystem, die den Sitzungskennzeichner enthält. Es sei
hier darauf hingewiesen, dass der Server einen Sitzungskennzeichner
einer Interaktion mit einem Clientprozess zuordnen kann, der selbst
nicht mehrere gleichzeitig ablaufende Sitzungen unterstützt. Der
Austausch eines Sitzungskennzeichners und die Verwendung der Speichereinrichtungen
eines Clientsystems zum Speichern der an dieses rückübertragenen
Sitzungskennzeichner ermöglicht
es, dass diese Kennzeichner zur Unterscheidung zwischen gleichzeitig
ablaufenden Sitzungen verwendet werden. Dem Client wird es ermöglicht,
Interaktionen mit einer Vielzahl vom verschiedenen Anwendungen zu
verschachteln, da er ein Mittel zum Unterscheiden zwischen diesen hat,
und dem Server wird es ermöglicht,
Antworten problemlos asynchronen Nachrichten mit entsprechenden
Anforderungen zuzuordnen. Ein solches Schaffen der Voraussetzungen
für eine
gleichzeitig ablaufende oder parallele Verarbeitung von Anwendungen
kann die Leistungsfähigkeit
von Unternehmen erheblich steigern.
-
Die
Erfindung ermöglicht
es, dass Datenübertragungsressourcen,
die für
synchrone Einwege-Kommunikationsvorgänge entwickelt wurden, mit Ressourcen
zusammenarbeiten, die eine asynchrone Kommunikation verwenden.
-
Sitzungskennzeichner
werden vorzugsweise sowohl in Datenübertragungen aufgenommen, die nach
dem Ablaufen eines Zeitgebers an einen Client übertragen werden, als auch
in Antworten, die von einer Anwendung an einen Client übertragen
werden, die eine weitere Interaktion mit diesem erwartet. Gemäß einer
Ausführungsform
wird im Serversystem eine Entscheidung getroffen, ob Sitzungskennzeichnungsdaten
in Antworten aufgenommen werden müssen, wobei der Entscheidungsprozess
vorzugsweise auf Sitzungsstatusdaten hin, die von einem kommunizierenden
Anwendungsprogramm übertragen
werden, und auf den Ablauf des Zeitgebers anspricht. Falls keine
weitere Eingabe vom Client (d. h. von einem Endbenutzer oder eine
Prozess im Clientsystem) erwartet wird, gibt das Serversystem alle
sitzungsspezifischen Ressourcen frei, wenn eine Antwort an den Client
weitergeleitet und kein Sitzungskennzeichner benötigt wird.
-
In
Anbetracht der möglichen
Probleme, die mit einer Aufrechterhaltung von Sitzungen für einen längeren Zeitraum
als notwendig verbunden sind, kann dieser Entscheidungsprozess wünschenswert sein.
Erstens benötigt
die Aufrechterhaltung von Sitzungen Serversystemressourcen. Zweitens
könnte die
Rückübertragung
von Kennzeichnerdaten in der letzten von einer Folge von Anforderung-Antwort-Interaktionen
ein unbestimmtes Verbleiben der Kennzeichnerdaten im Speicher des
Clientsystems zur Folge haben. Dies kann eine Sicherheitsgefährdung darstellen
und benötigt
außerdem
Clientressourcen. Falls Kennzeichnerdaten stets an das Clientsystem rückübertragen
werden (d. h., der oben erwähnte Entscheidungsprozess
nicht ausgeführt
wird), werden die oben erwähnten
Probleme durch Löschen der
Statusdaten aus dem Clientsystem nach einer angemessenen Zeitspanne
angegangen.
-
Eine
bevorzugte Ausführungsform
der Erfindung stellt ein Datenübertragungssystem
bereit, in dem im Serversystem World Wide Web-(WWW-)Serversoftware
für den
Zugang zum Internet installiert ist und im Clientsystem eine WWW-Browsersoftware
installiert ist, um Anforderungen an mit dem Internet verbundene
Serversysteme zu übergeben.
Das Serversystem weist außerdem
Einrichtungen zum Unterstützen
einer asynchronen Nachrichtenübertragung zwischen
Anwendungsprogrammen auf. Wenn das Serversystem (in einer synchronen
Kommunikationssitzung) HTML-Anforderungen von der WWW-Clientdatenstation
empfängt,
die eine Interaktion mit einem Anwendungsprogramm benötigen, das
für asynchrone
Kommunikationsvorgänge
entwickelt wurde, leitet ein Prozess im Serversystem die Anforderung
als eine zur Eingangswarteschlange des Anwendungsprogramm übertragene
Nachricht an das Anwendungsprogramm weiter. Falls das Anwendungsprogramm
HTML nicht interpretieren kann, setzt der Prozess im Server die
empfangene HTML-Anforderung außerdem
in ein Nachrichtenformat um, das das Anwendungsprogramm erkennen
kann, und leitet die umgesetzte Nachricht anschließend weiter.
Auf den Empfang einer Antwortnachricht vom Anwendungsprogramm vor
dem Verstreichen einer festgelegten Zeitspanne hin setzt der Prozess
im Serversystem (bei Bedarf) die Antwortnachricht wieder in HTML
um und überträgt die erzeugten
HTML-Seiten als Antwort an die Clientdatenstation. Aus der Sicht
des WWW-Clients
erfolgt die Antwort in der ursprünglichen
synchronen Kommunikationssitzung, falls sie vor dem Verstreichen
einer bestimmten Zeitspanne verfügbar
ist.
-
Das
Serversystem enthält
ein Mittel zum Einbetten von Sitzungskennzeichnerdaten in HTML-Seiten,
die in an das Clientsystem übertragene
Antworten aufgenommen werden. Vorzugsweise enthält das Serversystem außerdem ein
Mittel, das auf Sitzungskennzeichnerdaten anspricht, die in der
Antwort des Anwendungsprogramms auf die asynchrone Anforderung enthalten
sind, um eines oder mehrere HTML-Formulare zum Ausfüllen durch
einen Endbenutzer in die HTML-Seiten aufzunehmen, wobei der Sitzungskennzeichner
in diese Formulare eingebettet ist. Die Sitzungsstatusdaten können auch
in die HTML-Seiten eingebettet werden.
-
Der
Server antwortet auf das Verstreichen der Zeitspanne vor dem Empfang
einer Antwortnachricht vom Anwendungsprogramm mit dem Übertragen
einer Kommunikation (d. h. einer HTML-Seite) an die WWW-Clientdatenstation.
Diese Kommunikation enthält
einen Sitzungskennzeichner und vorzugsweise einen Kennzeichner des
Sitzungsstatus. Die an den Client rückübertragene Kommunikation beendet seine
synchrone HTTP-Sitzung, und der WWW-Client ist nicht mehr suspendiert,
jedoch ist die länger andauernde
Kommunikations-"Sitzung" mit dem Gateway-Computer
noch immer insofern logisch vorhanden, als Daten gespeichert werden,
die ein erneutes Aufsuchen der Interaktion zwischen dem WWW-Client
und dem Gateway-Programm ermöglichen.
Ein Endbenutzer kann feststellen, ob für eine zusätzliche Zeitspanne erneut in
den suspendierten Status eingetreten und eine neue synchrone Sitzung gestartet
werden muss. Der Sitzungskennzeichner und die Statusdaten werden
unter Verwendung der Einrichtung von WWW-Clients zum Speichern von WWW-Seiten
im Cachespeicher des WWW-Clientsystems gespeichert. Der WWW-Client
kann diese gespeicherten Daten zum erneuten Aufsuchen der früheren Interaktion
verwenden, um zu einem späteren
Zeitpunkt zu überprüfen, ob
eine Antwortnachricht vom Anwendungsprogramm im Server verfügbar ist.
Durch die Aufnahme des Sitzungskennzeichners und der Sitzungsstatusdaten
in nachfolgende Anforderungen an den Server, die der ursprünglichen Sitzung
zugeordnet sind, ermöglicht
der Client dem Server die Unterscheidung zwischen verschiedenen Sitzungen
und zwischen verschiedenen Anforderungen, die Teil derselben Anwendung
sind.
-
Die
oben beschriebene Ausführungsform
der Erfindung stellt eine Umsetzung von HTML in ein Nicht-HTML-Nachrichtenformat
gemäß bekannter Verfahren
bereit. Wenn die aufzurufende Anwendung HTML interpretieren kann,
wird eine solche Umsetzung offensichtlich nicht benötigt.
-
Folglich
stellt die vorliegende Erfindung in einer bevorzugten Ausführungsform
eine Verbindung zwischen der synchronen Umgebung des WWW und der
asynchronen Umgebung von Nachrichtenübermittlungssystemen bereit.
Die Erfindung kann gleichermaßen
auf die Verwendung einer Browsersoftware zur Kommunikation mit Anwendungsprogrammen über ein
Serversystem eines Intranet angewandt werden.
-
BESCHREIBUNG
VON BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Die
vorliegende Erfindung wird nun mit Hilfe von Beispielen mit Bezugnahme
auf die begleitenden Zeichnungen ausführlicher beschrieben, in denen:
-
1 eine
schematische Darstellung einer Kommunikation zwischen Client- und
Serversystemen über
das Internet ist;
-
2 eine
schematische Darstellung einer Kommunikation zwischen Programmen
unter Verwendung einer asynchronen Nachrichtenübermittlung und Warteschlangenbildung
ist;
-
3 ein
in einem Serversystem installiertes Gateway-Programm zur Interaktion zwischen einem synchron
verbundenen Web-Browser und einem für asynchrone Kommunikation
geeigneten Anwendungsprogramm gemäß einer Ausführungsform
der vorliegenden Erfindung zeigt;
-
4 die
Zusammenarbeit zwischen einem Gateway-Computer, einem Browser und
Anwendungsprogrammen gemäß einer
zweiten Ausführungsform
der Erfindung zeigt;
-
5 ein
Flussdiagramm ist, das die in erster Linie von einem Gateway-Programm
in einem Serversystem ausgeführten
Arbeitsgänge
gemäß einer
Ausführungsform
der Erfindung zeigt, wenn eine Anforderung von einem Web-Browserprogramm übertragen
wird.
-
Die
vorliegende Erfindung kann in vielen Datenverarbeitungssystemen
und Datenübertragungssystemen
realisiert werden, in denen Verbindungen zwischen verschiedenen
Umgebungen benötigt
werden. Die Erfindung ist nicht auf eine spezifische Computerhardware
oder auf spezifische Betriebssysteme oder Typen von Kommunikationsverbindungen
begrenzt und kann in Hardware oder Software oder als eine Kombination
von Hardware- und Softwarekomponenten ausgeführt werden.
-
Eine
bevorzugte Ausführungsform
der vorliegenden Erfindung beinhaltet eine in Software realisierte
Komponente eines Serversystems, die eine Verbindung zwischen einer
asynchronen Nachrichtenübermittlungs-
und Warteschlangenbildungsumgebung und der synchronen Umgebung des
World Wide Web bereitstellt.
-
Wie
in 1 gezeigt und oben beschrieben wird, sind Endbenutzer
des Internet mit Computern 10 mit einem Internetzugang
und einer in diesen installierten Web-Browsersoftware 20 ausgestattet.
Ein Web-Serversystem 30 umfasst ein Computersystem (das
beispielsweise die Betriebssystemsoftware Windows NT oder UNIX ausführt oder
ein IBM PS/2 Modell 80 Computer mit der Betriebssystemsoftware OS/2
oder ein Großrechnersystem
sein kann, das das Betriebssystem MVS von IBM unterstützt), das mit
dem Internet verbunden ist und die Web-Serversoftware 40 (beispielsweise
IBM Internet Connection Server) ausführt. OS/2, MVS und PS/2 sind
Warenzeichen von IBM Corporation. Die Web-Serversoftware verarbeitet
HTTP-(HyperText Transfer Protocol-)Anforderungen von den Web-Browsern,
analysiert diese als Anforderung nach einer statischen HTML-Seite
oder nach einem ausführbaren
Programm und antwortet durch Übertragen
einer verfügbaren
HTML-Seite (z. B. im Festplattenspeicher zwischengespeichert) an
den Web-Browser oder durch Aufrufen eines Programms 50 zur
Ausführung
im Web-Serversystem oder in einem anderen System zur HTML-Erzeugung.
Programme werden von einem Web-Server über die Common Gateway Interface
(CGI) 60 oder eine andere vom Web-Server realisierte Schnittstelle
aufgerufen (die meisten Web-Server unterstützen zwei Schnittstellen, von
denen eine die CGI ist).
-
2 ist
eine vereinfachte schematische Darstellung einer Kommunikation zwischen
Programmen unter Verwendung einer asynchronen Nachrichtenübermittlung
und Warteschlangenbildung unter der Steuerung eines Netzes von Warteschlangenverwaltungsprogrammen,
beispielsweise der MQSeries-Programme von IBM. Eine Warteschlangenverwaltungseinrichtung
(queue manager) ist der Systemdienst, der die von Anwendungen verwendeten
Einrichtungen zur Nachrichtenwarteschlangenbildung bereitstellt.
Wie in 2 gezeigt wird, gibt ein erstes Anwendungsprogramm 100 im System 110 einen
Befehl aus, um unter der Steuerung eines lokalen Warteschlangenverwaltungsprogramms 120 und
einer in einem fernen System 160 ausgeführten kommunizierenden Warteschlangenverwaltungseinrichtung 130 eine
Nachricht in eine Warteschlange 140 zu stellen. Ein Serveranwendungsprogramm 150 entnimmt
die Nachricht sodann der Warteschlange 140, wenn es zum
verarbeiten derselben bereit ist. Die kommerzielle Anwendung kann
beispielsweise eine Anwendung zur Bankkapitalüberweisung oder zur Buchung
eines Fluges bei einer Fluggesellschaft sein. Die Nachrichtenwarteschlangen
sind benannte Objekte, in denen Nachrichten gesammelt werden und
aus denen diese später
entfernt werden.
-
Für die Verwaltung
einer bestimmten Warteschlange ist eine bestimmte Warteschlangenverwaltungseinrichtung
zuständig.
Eine Nachrichtenwarteschlange ist nicht nur ein Stapelspeicher:
wenn Nachrichten zu einer Warteschlange hinzugefügt werden, werden sie am Ende
hinzugefügt,
und wenn Nachrichten aus einer Warteschlange entnommen werden, werden
sie normalerweise von vorne entnommen. Die physische Darstellung
der Nachrichtenwarteschlange hängt
von der Umgebung ab, es kann sich jedoch um ein oder mehrere Puffer
im Hauptspeicher, eine oder mehrere Dateien auf einer Festplatte
oder einer anderen nichtflüchtigen
Speichereinheit oder beides handeln. Für die physische Verwaltung
von Nachrichtenwarteschlangen ist insgesamt ein Warteschlangenverwaltungsprogramm zuständig, und
solche Einzelheiten werden für
Anwendungsprogramme nicht sichtbar gemacht. Anwendungen können eine
Nachrichtenwarteschlange einfach als eine "Blackbox" sehen, in der Nachrichten gesammelt
werden. Anwendungen haben Zugriff auf Nachrichtenwarteschlangen
unter Verwendung von API-Aufrufen
zur Nachrichtenwarteschlangenbildung, um mit der Warteschlangenverwaltungseinrichtung
zu kommunizieren, die im selben System wie die Anwendung installiert
ist (d. h. mit der lokalen Warteschlangenverwaltungseinrichtung).
-
Anwendungsprogramme
kommunizieren durch Vereinbarung der Verwendung bestimmter angegebener
Nachrichtenwarteschlangen, wobei Nachrichten an die spezifischen
Zielwarteschlangen übertragen
werden, aus denen die Anwendungsprogramme vereinbarungsgemäß lesen.
Die Positionen dieser Warteschlangen müssen für die Anwendungen, die die
Nachrichten übertragen,
nicht sichtbar sein; jede Anwendung interagiert nur mit ihrer lokalen Warteschlangenverwaltungseinrichtung,
und das Netz von miteinander verbundenen Warteschlangenverwaltungseinrichtungen
ist für
das Bewegen der Nachrichten in die vorgesehenen Warteschlangen zuständig. Jede
Warteschlangenverwaltungseinrichtung verwaltet lokale Leitweglenkungstabellen
(routing tables) zum Lokalisieren der anderen Warteschlangenverwaltungseinrichtungen
im Netz. Auf diese Weise vereinfacht die anwendungsunterstützende Software
zur Nachrichtenwarteschlangenbildung in hohem Maße den bei den Anwendungsprogrammen
erforderlichen Komplexitätsgrad,
wobei sie diese von der Notwendigkeit befreit, ihre eigenen komplexen
Datenübertragungssteuerungen
zu auszuführen.
-
Die
vorliegende Erfindung stellt einen Zugriff auf ein solches Netz
von miteinander verbundenen Warteschlangenverwaltungseinrichtungen
für Benutzer
bereit, in deren lokalem System keine Warteschlangenverwaltungsprogramme
installiert sind. Außerdem
stellt die Erfindung eine Umgebung zur Entwicklung komplexer, zuverlässiger WWW-Anwendungen
bereit, die aus den Diensten vorhandener anwendungsunterstützender
Middleware-Programme, beispielsweise der MQSeries-Produkte von IBM, Nutzen
ziehen können.
-
Eine
in Software ausgeführte
Verbindungskomponente wird für
eine Installation in einem WWW-Server bereitgestellt, um Nachrichten
im Auftrag von synchron verbundenen Endbenutzern auszugeben und
zu empfangen. Diese im Folgenden als Gateway-Programm bezeichnete Verbindungskomponente
wird durch Anforderungen von einem Web-Browser aufgerufen, wie zuvor
beschrieben wurde. Das Gateway-Programm bildet eine Schnittstelle
mit dem WWW-Server, beispielsweise über die Standard-CGI (Common
Gateway Interface). Das Gateway-Programm ermöglicht die Verwaltung von mehreren
Benutzern und deren Status gleichzeitig, wie an späterer Stelle
beschrieben wird, und verwaltet die Unterschiede zwischen synchronen HTTP-Nachrichten und asynchronen
Nachrichten, wobei der synchron verbundene Web-Browser mit Daten über den
Fortschritt der asynchronen Nachrichten versehen wird, die es im
Auftrag des Browsers ausgibt. Außerdem verwaltet das Gateway-Programm
die Verbindung zwischen Nachrichtenübermittlungssystemen mit gesicherter
Zustellung (assured-delivery messaging systems) und HTTP-Kommunikationsvorgängen ohne
gesicherte Zustellung. Obwohl möglicherweise
eine Datenumsetzung (beispielsweise ASCII in EBCDIC) notwendig ist,
da verschiedene Architekturen und Hardwareplattformen unterschiedliche
Datendarstellungen und Parameter aufweisen, ist eine solche Umsetzung
nach dem Stand der Technik bekannt und muss vom Gateway-Programm
nicht ausgeführt
werden, da bekannte Softwareprodukte zur Nachrichtenübermittlung
die Umsetzung ausführen.
Außerdem
muss das Gateway-Programm keine umfassenden Sicherheitseinrichtungen
bereitstellen, da solche Einrichtungen in bekannter Nachrichtenübermittlungssoftware
und WWW-Servern (beispielsweise Secure Internet Server von IBM)
realisiert werden.
-
3 zeigt
ein Gateway-Programm 200, das eine Schnittstelle zwischen
einem Nachrichtenwarteschlangen-Verwaltungsprogramm 210 und
einem Web-Serverprogramm 220 bildet, die in einem Computersystem 230 installiert
sind. Wie in diesem Beispiel gezeigt wird, kann das Gateway-Programm zum
Bilden einer Schnittstelle zwischen dem Web-Server und einem Anwendungsprogramm 240 zur
Nachrichtenwarteschlangenbildung verwendet werden, das in einer
anderen Maschine als dem Serversystem 230 ausgeführt werden
kann. In diesem Fall wird im Serversystem keine Anwendungssoftware
benötigt.
Das System, in dem die Anwendung mit Nachrichtenwarteschlangenbildung
ausgeführt
wird, kann über
das Internet oder über
ein anderes Datenübertragungsnetz
mit dem Serversystem verbunden sein. Das Anwendungsprogramm dieses
Beispiels kann HTML-Formulardaten vom Web-Browser 250 interpretieren
und als Antwort HTML-Daten erzeugen.
-
Eine ähnliche
Verwendung des Gateway-Programms in Verbindung mit einer im Web-Serversystem
installierten Anwendungskomponente 260 zur Formatumsetzung
wird in 4 gezeigt. Die Umsetzungskomponente
dient zum Umsetzen zwischen den HTML-Anforderungen und -Antworten
von Web-Browsern und der internen Nachrichtenstruktur eines Anwendungsprogramms 270,
das HTML nicht interpretieren kann. Diese Umsetzungskomponente 260 ermöglicht es
folglich, dass ein Gateway-Programm 200' gemäß der Erfindung mit vorhandenen Anwendungen
zur Nachrichtenwarteschlangenbildung verwendet werden kann. Eine
Serverkomponente kann außerdem
Anforderungen an mehrere Zielanwendungen und eine Antwort an den Web-Browser
in einer einzigen Arbeitseinheit koordinieren. Eine HTML-Umsetzung
ist nach dem Stand der Technik bereits bekannt und wird demzufolge
hier nicht näher
beschrieben.
-
Mit
Bezugnahme auf 5 werden nun das Gateway-Programm
und der Kommunikationsfluss zwischen einem Web-Browser und einem
asynchronen Anwendungsprogramm beschrieben. Für jedes dem Gateway-Programm
zugeordnete Anwendungsprogramm zur Nachrichtenwarteschlangenbildung werden
eine oder mehrere Anwendungseingangswarteschlangen definiert. Diese
Anwendung und ihre Eingangswarteschlangen können sich in der Web-Servermaschine oder
in irgendeiner anderen Maschine befinden, die unter Verwendung der
Unterstützung
der Middleware zur Nachrichtenwarteschlangenbildung zur Kommunikation
mit dem Server verbunden ist. Der Gateway-Computer hat eine im Server
befindliche Antwortwarteschlange für von den Anwendungsprogrammen übertragene
Nachrichten, die von einem lokalen Warteschlangenverwaltungsprogramm
verwaltet wird.
-
Ein
Benutzer kommuniziert mit dem Gateway-Programm über eine Anforderung 300 GET
oder POST zum Ausfüllen
eines HTML-Formulars,
die den Namen der Anwendung mit Nachrichtenwarteschlangenbildung
oder des Dienstes anzeigt, die bzw. den er verwenden möchte. In
der bevorzugten Ausführungsform
der Erfindung enthält
der Name den Anwendungswarteschlangennamen, in einer alternativen
Ausführungsform
wird dieser jedoch vom Gateway-Programm aus dem Anwendungsnamen
abgeleitet.
-
Es
folgt ein Beispiel für
einen Befehl, durch den ein Benutzer eine Anwendung aufruft:
<form method"=post" action="/mig-bin/migcgi/MQApp">
-
Angeben
eines Nachrichtenwarteschlangenbildungssystems:
<input type="input"; name="QMName"; size="48"; max length="48">
und einer Anwendung:
<input type="input"; name="QName"; size="48"; max length="48">
<input
type="submit"; value="Click here to start
the application">
</form>
-
QName
wird zur Angabe des Ziels für
die erzeugte asynchrone Nachricht benötigt und wird normalerweise
mit der Anwendung selbst ermittelt. QMName ist optional. Falls es
angegeben wird, wird es zusammen mit QName zum Angeben des Ziels
für die
Nachricht verwendet. Falls es nicht angegeben wird, wird ein leerer
Name verwendet. Normale Namenauswertungsregeln (name resolution
rules) für Nachrichtenübermittlungssysteme
können
angewandt werden. Zusätzliche
Felder, die anwendungsspezifische Zeichenformatdaten enthalten,
können
in die Formularanforderung aufgenommen werden. Diese Felder werden
in der vom Gateway-Computer übergebenen
Nachricht zur Anwendung weitergeleitet.
-
Die
erste Interaktion eines Benutzers mit einem Anwendungsprogramm (der
Anwendungs-"Eintrittspunkt") kommt normalerweise
von einer statischen HTML-Web-Seite. Der Benutzer führt eine
Dereferenzierung eines bestimmten URL aus oder leitet ein HTML-Format
weiter, 300, das mit dem Gateway- Programm interagiert. Die anfängliche HTML-Anforderung
des Browsers enthält
keinen eingebetteten Sitzungskennzeichner. Wenn ein Benutzer erstmalig
einen solchen Eintrittspunkt durchläuft (d. h., es wird eine HTML-Anforderung übertragen, die
nicht zu einer bereits bestehenden Sitzung gehört) und eine Anwendung einleitet,
richtet das Gateway-Programm eine Sitzung ein, 340, die
durch einen im Gateway-Computer eindeutigen Sitzungskennzeichner
gekennzeichnet ist, um die Kombination aus der vom Benutzer angeforderten
Anwendung und dem Exemplar der Anforderung darzustellen. Sitzungskennzeichner
können
zufällig
oder unter Verwendung von eindeutigen Serverkennungen erzeugt werden,
um sicherzustellen, dass jeder für
das gesamte Netz einmalig ist, dies ist jedoch nicht wesentlich.
Vorhandene Nachrichtenwarteschlangen-Verwaltungsprogramme (beispielsweise
die MQSeries-Programme von IBM) haben Einrichtungen zum Erzeugen
eindeutiger Kennzeichner, und das Gateway-Programm der bevorzugten
Ausführungsform nutzt
diese Einrichtung.
-
Der
Gateway-Computer fügt
die Sitzungskennzeichnungsdaten zusammen mit Clientsystem- oder
Benutzerkennungsdaten einer Sitzungstabelle hinzu, 350 (als
Einträge
in einer Nachrichtenwarteschlange realisiert, die zum Beispiel in
einem gemeinsam genutzten Speicher mit übergreifender Verarbeitung
(cross-processed shared memory) eines die Betriebssystemprogramme
OS/2 oder AIX ausführenden
Serversystems zwischengespeichert oder in den Festplattenspeicher
geschrieben wird). OS/2 und AIX sind Warenzeichen von IBM Corporation. Diese
Tabelle wird im Anschluss an die Zuordnung von Sitzungskennzeichnern
zu Benutzeranforderungen und Anwendungsprogrammantworten verwendet,
wie an späterer
Stelle beschrieben wird. Auf diese Weise werden keine Voraussetzungen
zum Starten einer Anwendung außer
dem Durchlaufen eines Anwendungseintrittspunktes geschaffen. Eine
Benutzerinteraktion kann nicht zu mehr als einer Sitzung gehören.
-
Nach
der Zuweisung eines Sitzungskennzeichners zu der Interaktion eines
Benutzers stellt das Gateway-Programm eine Nachricht in die definierte
Eingangswarteschlange des Anwendungsprogramms, 360, startet
einen Zeitgeber, 370, und leitet einen Prozess zum Empfangen
einer Antwortnachricht vom Anwendungsprogramm ein, 370.
Der Empfang von Antworten wird an späterer Stelle beschrieben. Die
Nachricht enthält
Statusdaten in Form einer laufenden Nummer, die die Position dieser
Interaktion in der Gesamtkommunikation zwischen dem anfordernden
Clientprozess und dem Anwendungsprogramm kennzeichnet, und sie enthält eine
Kennung eines Benutzers oder eines Clientsystems sowie die vom Web-Browser übermittelten
Eingangsdaten. Diese Daten werden der Anwendung im geeigneten Zeichensatz
und der geeigneten Codeseite dargeboten (wobei eine Umsetzung von
einem Prozess im Serversystem separat vom Gateway-Prozess selbst ausgeführt wird,
wie oben erwähnt
wurde). Das Ziel einer Nachricht kann eine lang andauernde Anwendung
mit Nachrichtenwarteschlangenbildung sein, oder ihr Eintreffen kann
zum Einleiten des Neustarts einer Anwendung mit Nachrichtenwarteschlangenbildung
verwendet werden. wie oben erläutert
wurde, kann die Erfindung zur Verwendung mit Anwendungen, die "Web-fähig" sind (das heißt, die
HTML-Seiten verstehen und erzeugen können), und mit Anwendungen
realisiert werden, die eine HTML-Umsetzung erfordern. Die folgende
Beschreibung einer Ausführungsform
der Erfindung betrifft das Beispiel einer Interaktion mit einer
Web-fähigen
Anwendung.
-
Die
Anwendung mit Nachrichtenwarteschlangenbildung muss auf die empfangene
Nachricht durch Übertragen
einer HTML-Seite an die Antwortwarteschlange des Gateway-Programms
antworten. Wie oben beschrieben wird, hat das Gateway-Programm bereits
beim Empfang einen Prozess zum Entnehmen dieser Antworten aus seiner
Warteschlange aufgerufen. Dies wird unter Verwendung einer bekannten
Einrichtung des zusammenarbeitenden Programms zur Nachrichtenwarteschlangenbildung
ausgeführt,
wobei ein Befehl zum Abrufen von Nachrichten aus einer Warteschlange
wahlweise einen Befehl zum Abwarten einer angegebenen Zeitspanne
enthalten kann, falls die Antwort nicht beim erstmaligen Versuch
des Abrufvorgangs sofort verfügbar
ist. In den MQSeries-Warteschlangenverwaltungsprodukten von IBM
wird diese Einrichtung als eine Option im API-Befehl "Nachricht abrufen" aufgerufen, "MQGET_Wait", wie in der Veröffentlichung "MQSeries – Message
Queue Interface Technical Reference" (IBM Dokument Nr. SC33-0850-01) beschrieben
wird, auf die zuvor verwiesen wurde. Folglich überträgt das Gateway-Programm eine
Nachricht und gibt einen Befehl zum Abrufen der Antwortnachricht
aus, 370, wobei dem Warteschlangenverwaltungsprogramm die
Steuerung des eigentlichen Vorgangs "Nachricht abrufen" übergeben
wird, der die HTML-Seite aus der Antwortwarteschlange abruft, 420,
und diese an den Gateway-Computer weiterleitet. Das Gateway-Programm überträgt sodann
die HTML-Seite, die den aktuellen Sitzungskennzeichner als verborgenes
Feld in HTML enthält,
an den Browser, 420.
-
Falls
die Wartezeit des Vorgangs "Nachricht abrufen" vor dem Erhalt der
Antwortnachricht durch das Gateway-Programm verstreicht, kehrt der
Vorgang "Nachricht
abrufen" zurück, und das
Gateway-Programm reagiert mit dem Übertragen einer vorläufigen Antwortnachricht
an den Browser, 390, 400. Diese vorläufige Antwort
beendet die synchrone Sitzung, da sie jedoch einen Sitzungskennzeichner enthält, kann
die Sitzung später "erneut gestartet" werden (genaugenommen
wird eine neue Sitzung gestartet, da diese jedoch eine Interaktion
zwischen demselben Browser und denselben Gateway-Programmen mit
sich bringt und auf denselben Sitzungskennzeichner Bezug nimmt,
kann sie als erneuter Start der ursprünglichen Sitzung betrachtet
werden). Falls die synchrone Sitzung zwischen dem WWW-Browser und
dem mit dem Gateway-Computer verbundenen WWW-Serverprogramm andernfalls vor dem Empfang
der Antwort verlassen wird, bricht der Gateway-Computer alle anstehenden
(in-doubt) Vorgänge "Nachricht abrufen" ab. Jede Antwortnachricht,
die nach einer Zeitlimitüberschreitung
oder einer anderen Aufgabe der Sitzung in die Antwortwarteschlange
des Gateway-Programms gestellt wird, verbleibt dort solange, bis
der WWW-Browser auf der Suche nach der entsprechenden Antwortnachricht erneut
mit dem Gateway-Computer interagiert. Wenn eine solche nachfolgende
WWW-Browseranforderung empfangen wird, ruft das Gateway-Programm erneut
den Vorgang "Nachricht
abrufen" auf (mit
einer Wartezeit).
-
Es
ist nicht erforderlich, dass alle in der Sitzung an einen Client übertragenen
Kommunikationsvorgänge
den Sitzungskennzeichner enthalten, der Kennzeichner wird jedoch
jedes Mal aufgenommen, wenn eine weitere Clientinteraktion erwartet
wird. Dies im Allgemeinen der Fall, wenn ein Kommunikationsvorgang
nach einer Zeitlimitüberschreitung
und vor der Verfügbarkeit
der Antwort der Anwendung übertragen
wird, 400, oder wenn eine Anwendungsantwort empfangen wird
und die enthaltenen Sitzungsstatusdaten die Erwartung einer weiteren
Clientinteraktion bestätigen.
Im Allgemeinen aktualisiert das Gateway-Programm seine Sitzungstabelle
mit den Sitzungsstatusdaten für
die entsprechende Sitzung, 420, wenn eine Antwort von einem
Anwendungsprogramm empfangen wird. Falls die Anwendung jedoch keine
weitere Interaktion vom Benutzer oder vom Prozess im Clientsystem
benötigt
(wie durch die Sitzungsstatusdaten oder das Fehlen derselben in
Antworten vom Anwendungsprogramm gekennzeichnet wird), gibt das
Gateway-Programm
alle sitzungsspezifischen Ressourcen frei, 420, wenn es die
Seite an den Browser weiterleitet.
-
Wenn
das aktuelle Anwendungsprogramm eine weitere Clientinteraktion "erwartet" oder benötigt (d.
h. erwartet, dass der Client entweder mit dem aktuellen Anwendungsprogramm
oder einem anderen Anwendungsprogramm interagiert, bevor die Gesamtanwendung
beendet wird), zeigt es dies mittels einer Markierung in seinen
Antworten an den Server an. Außerdem
nimmt es weitere HTML-Formulare in die an den Client übertragene
HTML-Seite auf, wobei der Sitzungskennzeichner in jedes der dynamisch
erzeugten HTML-Formulare aufgenommen wird).
-
Der
Web-Browser hat Einrichtungen zum Zwischenspeichern von Seiten, 410,
und kann folglich die eingebetteten Sitzungskennzeichner speichern,
und dadurch wird es möglich,
dass ein einziger Benutzer mehr als eine offene Sitzung hat. Diese Sitzungen
können
verschachtelt sein oder sich überlappen.
Wenn ein einen Sitzungskennzeichner enthaltendes Formular anschließend in 300 im
Browser ausgefüllt
wird, fließt
der Sitzungskennzeichner zurück
zum Gateway-Programm im Server, so dass das Gateway-Programm das
anschließend
empfangene Formular der korrekten Sitzung zuordnen kann, 320, 330.
Der Sitzungskennzeichner wird zum Unterscheiden der Anforderung
von anderen Anforderungen von anderen Benutzern und anderen Anforderungen vom
selben Benutzer, jedoch für
verschiedene Anwendungen, verwendet. Ein Prozess, der Teil des Gateway-Programms
ist, fragt die Sitzungstabelle nach einer Übereinstimmung zwischen einem
Tabelleneintrag und dem Sitzungskennzeichner und den Sitzungsstatusdaten
einer empfangenen Anforderung ab, 320. Falls die Sitzungs-
und Statusdaten keiner bestehenden Interaktion mit einer Anwendung entsprechen,
stellt das Gateway-Programm die Statusdaten und die Eingangsdaten
als eine Nachricht in die Eingangswarteschlange der Anwendung, wie oben
beschrieben wurde. Falls ein Vergleich der Sitzungs- und Statusdaten
einer empfangenen Anforderung mit Einträgen in der Sitzungstabelle
jedoch eine Übereinstimmung
ergibt, muss dies ein erneuter Versuch einer früheren Anforderung sein, und
folglich ist eine Antwort möglicherweise
bereits verfügbar.
Es muss dann keine neue Nachricht an die Anwendung übertragen
werden, da die entsprechende(n) Warteschlangenverwaltungseinrichtung(en)
eine gesicherte einmalige Zustellung der zuvor übertragenen Nachricht zuverlässig bereitstellen
müssen;
das Gateway-Programm
ruft den Vorgang "Abrufen
mit Wartezeit" (Get
with Wait operation) auf, 370, um seine Antwortwarteschlange
auf die erwartete Antwortnachricht zu überprüfen.
-
Die
Zuordnung eines Sitzungskennzeichners zu einer Benutzerinteraktion,
der sodann an den Browser rückübertragen
und dort gespeichert wird, löst
folglich mehrere technische Probleme. Erstens ermöglicht dies
mehr als einem Benutzer gleichzeitig den Zugriff auf dieselbe Anwendung
oder denselben Dienst, wobei der Gateway-Computer zwischen empfangenen
Antworten unterscheiden kann. Zweitens wird sichergestellt, dass
genügend
Kontextdaten zwischen aufeinanderfolgenden Anforderungen übertragen
werden, die von jedem Benutzer an jede Serveranwendung ausgegeben
werden, um eine Vielzahl von Anforderung-Antwort-Paaren eines lang andauernden
Dialogs einer Anwendung einander zuzuordnen. Drittens wird es dem
Benutzer ermöglicht, Interaktionen
mit mehreren verschiedenen Anwendungen zu verschachteln, indem ein
Mechanismus zum Unterscheiden zwischen diesen bereitgestellt wird.
Viertens werden die Voraussetzungen für die Möglichkeit geschaffen, dass
ein Benutzer eine Anwendung in jeder Phase verlässt, möglicherweise ohne irgendeine
Benachrichtigung an den Server oder das Gateway-Programm, und es
wird die Möglichkeit
eines Verbindungsfehlers zwischen dem Benutzer und dem Server angegangen.
-
Außer dem
Sitzungskennzeichner enthält
die dynamisch erzeugte HTML-Seite eine laufende Nummer, die die
Position der Interaktion in der aktuellen Sitzung kennzeichnet.
Diese wird durch die nächste Browseranforderung
an das Gateway-Programm rückübertragen,
und dieses führt
eine Prüfung
auf den erwarteten Wert aus, 320. Dieser Mechanismus des
Aufrechterhaltens von Daten und des Ausführungsstatuskontextes unter
Verwendung von in einer Tabelle festgehaltenen Sitzungskennzeichnern
und laufenden Nummern ermöglicht
die Ausführung
von Folgen von Clientanforderungen, die voneinander abhängig sind – der Serveranwendung
wird die Unterscheidung zwischen einer Vielzahl von Nachrichten
innerhalb derselben Sitzung ermöglicht.
-
Eine
Sitzung kann auf eine der folgenden Arten beendet werden:
-
Eine
Serveranwendung zeigt in ihrer Antwortnachricht an, dass keine weitere
Benutzereingabe angefordert wird, und der Gateway-Computer antwortet
durch Freigeben der sitzungsspezifischen Ressourcen, 420.
-
Eine
ein Formular enthaltende HTML-Seite wird an den Benutzer übertragen,
wird jedoch nicht ausgefüllt
und innerhalb einer von der Verwaltungseinrichtung definierten Zeitspanne
rückübertragen. Der
Gateway-Computer überträgt eine
Beendigungsnachricht an die Serveranwendung, die eine Antwort vom
Benutzer erwartete (wobei eine unnötige Aufrechterhaltung der
nichtbeendeten Serveranwendung vermieden wird).
-
Ein
Benutzer entscheidet sich zum Verlassen der Anwendung durch einen
Dialog mit dem Gateway-Programm, wenn die Serveranwendung nicht
innerhalb einer annehmbaren Zeitspanne auf Nachrichten antwortet.
Das Gateway-Programm versucht, die übertragene Nachricht abzurufen.
Falls dies nicht möglich
ist, überträgt es eine
Abbruchnachricht an das Serveranwendungsprogramm.
-
Eine
Sitzungsbeendigung ermöglicht
dem Gateway-Programm und Serveranwendungen die Freigabe aller zugeordneten
sitzungsspezifischen Ressourcen. Ein Sitzungskennzeichner wird zurückgewiesen
(d. h. leitet keine weiteren Kommunikationsvorgänge außer einer Rückweisungsbenachrichtigung
ein), falls er nach Beendigung der Sitzung vom Benutzer oder der
Serveranwendung an das Gateway-Programm übertragen wird. Es sei darauf
hingewiesen, dass das Verstreichen der servergesteuerten Zeitlimitperiode
die Zeitspanne festlegt, für
die der Clientprozess suspendiert bleiben muss, beendet jedoch nicht
automatisch die Sitzung.
-
Nach
einer solchen Zeitlimitüberschreitung bewahrt
das Gateway-Programm folglich noch immer Sitzungskennzeichnungs- und Statusdaten
auf.
-
Es
sind Nachrichtenwarteschlangen-Verwaltungsprogramme bekannt, die
Einrichtungen aufweisen, um sicherzustellen, dass Nachrichten vom Gateway-Programm
in die Eingangswarteschlange der Anwendung gestellt werden und dass
Antworten an das Gateway-Programm rückübertragen werden (siehe unten).
Die Nachrichtenwarteschlangen-Verwaltungsprogramme können jedoch
nicht garantieren, dass die Datenübertragungsverbindungen zu
einem bestimmten Zeitpunkt funktionieren oder dass die Anwendung
selbst zur Verarbeitung einer Anforderung vom Browser ausgeführt wird.
Das Warteschlangenverwaltungsprogramm kann außerdem keine gesicherte Zustellung
an einen Web-Browser bereitstellen, der mit einem Netz aus Warteschlangenverwaltungseinrichtungen
verbunden ist. Wie beschrieben wird, reagiert das Gateway-Programm
auf eingehende Web-Browseranforderungen durch Stellen einer Nachricht
in die Eingangswarteschlange einer Serveranwendung. Wenn die Nachricht
erstmalig in die Warteschlange gestellt wird, startet das Gateway-Programm
einen Ablaufzeitgeber, 370, und wartet auf eine Antwort
von der Serveranwendung. Falls der Zeitgeber abläuft, bevor irgendeine Antwort
vom Anwendungsprogramm empfangen worden ist, erzeugt das Gateway-Programm eine HTML-Seite, 390,
um den Benutzer über
das Ablaufen zu benachrichtigen, 400.
-
Folglich
ist das Gateway-Programm so konfiguriert, dass es selbst eine Antwort
an den Browser überträgt, falls
es vor dem Verstreichen einer von der Systemverwaltungseinrichtung
definierten Zeitspanne keine Antwort von der Anwendung empfängt. Die einzustellende
maximale Zeitspanne einer Clientsuspendierung hängt von der jeweiligen Anwendung
ab (10 Sekunden oder 1 Sekunde kann geeignet sein). Der Hauptzweck
dieser Antwort besteht darin, den Benutzer oder den kommunizierenden
Prozess im Clientsystem mit Daten zu versehen, um eine Entscheidung
zu ermöglichen,
ob die aktuelle Kommunikationssitzung aufrechterhalten werden muss,
um auf eine Antwort zu warten, oder ob die Sitzung beendet wird
(jedoch unter Aufbewahrung von der Sitzung zugeordneten Daten) und
andere Verarbeitungselemente fortgesetzt werden. Diese Antwort an den
Client kann einfach eine Eingabeaufforderung an einen Endbenutzer
sein (beispielsweise das Einleiten einer Bildschirmnachricht bezüglich des
Zeitgeberablaufs), jedoch zeigt eine vom Zeitgeber eingeleitete Antwort
an den Browser gemäß der bevorzugten Ausführungsform
der Erfindung auch an, ob die Anforderung von der Zielmaschine empfangen
wurde und ob die Anwendung die Anforderung gelesen hat. Es sind
Nachrichtenwarteschlangen-Verwaltungsprogramme bekannt, die eine
Meldung "Bei Eingang bestätigen" (Confirm On Arrival)
und "Bei Zustellung bestätigen" (Confirm On Delivery)
bereitstellen. Das Gateway-Programm gemäß der bevorzugten Ausführungsform
ist für
die Verwendung der verfügbaren Meldungseinrichtungen
geeignet, um seine Benachrichtigung hinsichtlich des Zeitgeberablaufs
so zu erstellen, dass diese alle verfügbaren Daten bezüglich des
Fortschritts der Kommunikation für
diese Sitzung enthalten kann.
-
Eine
Realisierung der vorläufigen
Antwort als sofortige Bestätigung
des Empfangs der Anforderung vom Clientsystem durch den Gateway-Computer liegt
im Anwendungsbereich der vorliegenden Erfindung. Diese Bestätigung beendet
die aktuelle synchrone Sitzung, enthält jedoch den Sitzungskennzeichner
und ermöglicht
so dem Client das erneute Aufsuchen der Interaktion zu einem späteren Zeitpunkt.
Obwohl der Clientprozess in diesem Fall nicht suspendiert wird,
um auf eine Antwort von einem asynchron angeforderten Programm zu
warten, bleibt die Möglichkeit
von Verzögerungen
zwischen der Anforderung und der Bestätigung des Empfangs aufgrund
von Problemen mit den Kommunikationsverbindungen oder den kommunizierenden
Systemen selbst. Hier kann eine Client-Zeitlimitperiode verwendet
werden, um den Vorgang zu automatisieren, wenn die Clientanforderung
verlassen werden muss, falls keine Bestätigung empfangen wird, bei bestimmten
Anwendungen kann die Entscheidung zum Verlassen einer Clientanforderung
jedoch Endbenutzern überlassen
werden, wie es Benutzern von bestehender Web-Browsersoftware vertraut
ist.
-
Im
Anwendungsbereich der vorliegenden Erfindung liegt außerdem die
Bereitstellung eines Prozesses im Gateway-Programm, der auf einen
empfangenen Anforderungs-"Typ" von einem Clientsystem
anspricht, um festzustellen, ob eine sofortige vorläufige Antwort
benötigt
wird oder eine eingestellte Suspendierungs- oder Zeitlimitperiode
mit dem Ziel der Bereitstellung einer vollständigen Antwort innerhalb dieser
Zeitspanne verwendet werden muss, falls eine solche verfügbar ist.
Gemäß einer
bestimmten Ausführungsform
der Erfindung weist das Gateway-Programm einen konfigurierbaren
Zeitlimitwert (timeout value), den es standardmäßig verwendet. Dieser Wert
wird in einer Konfigurationsdatei im Serversystem zwischengespeichert,
in dem das Gateway-Programm installiert ist, und kann anschließend von
einer Systemverwaltungseinrichtung geändert werden. Ein zusätzlicher
Parameter kann in HTML-Formularanforderungen aufgenommen werden
(ähnlich
den Parametern QName und QMName), der diesen Standard überschreibt.
Unter Verwendung von Beispielen, auf die an früherer Stelle Bezug genommen
wurde, wird im Falle der Entwicklung eines HTML-Formulars zum Übermitteln
einer Warenbestellung, die eine schnelle Antwort zur Bestätigung des
Empfangs der Anforderung erfordert, ein niedriger Zeitlimitwert
im Anforderungsformular codiert; wohingegen im Falle einer Anforderung
von Daten zu einem Kontostand, wo keine solche schnelle Bestätigung erforderlich
ist, ein höherer
Wert codiert würde
(vielleicht ein Wert, der der längsten
Warteperiode entspricht, die Benutzer erwartungsgemäß tolerieren).
-
Nachrichtenübertragungsprotokolle
zum Bereitstellen einer gesicherten Zustellung von Nachrichten werden
in der internationalen Patentanmeldung WO 95/10805 der UK-Patentanmeldung mit
der Veröffentlichungsnummer
GB 2311443 beschrieben. Obwohl eine grundlegende Netzunterstützung normalerweise
eine zuverlässige
Zustellung von Paketen zwischen Maschinen sicherstellt, kann eine
gesicherte Zustellung über
ein unzuverlässiges
Kommunikationsmedium normalerweise nicht bereitgestellt werden.
Um zu garantieren, dass Daten nur einmal übertragen werden und dass Kommunikationsvorgänge nach
einem größeren Maschinen-
oder Netzfehler ordnungsgemäß neugestartet
und wiederhergestellt werden, ist mehr als die grundlegende Netzunterstützung zur
Paketzustellung erforderlich. Insbesondere müssen beide Partner in einem
System mit gesicherter Zustellung in Erinnerung behalten, welche
Daten erfolgreich übertragen
und "festgeschrieben" ('hardened') wurden. Eine Festschreibung (Hardening)
ist der Prozess des Schreibens von Daten in ein Speichermedium,
beispielsweise eine Festplatte, und des Sicherstellens, dass sie
auch im Falle eines Hardwarefehlers wiederhergestellt werden können. Die
Bereitstellung einer Ressourcenwiederherstellung in einem Nachrichtenwarteschlangenbildungssystem
wird ausführlich
zwischen den Seiten 209 und 217 des Buches "Messaging and Queuing Using the MQI" von B. Blakely,
H. Harris und R. Lewis, McGraw-Hill, 1994, beschrieben.
-
Eine
kommerzielle Anwendung kann mehrere Serveranwendungen beinhalten,
deren Transaktionsaktivitäten
koordiniert werden müssen.
Dieses Problem wird durch das Nachrichtenwarteschlangen-Verwaltungsprogramm
im Serversystem gelöst. Das
Gateway-Programm überträgt eine
Nachricht an ein einziges steuerndes Anwendungsprogramm mit Nachrichtenwarteschlangenbildung,
das diese sodann bei Bedarf in gesonderte Anforderungen an die einzelnen
Serveranwendungen zerlegt. Diese Nachrichten können übertragen und unter der Transaktionssteuerung
durch das Nachrichtenwarteschlangen-Verwaltungsprogramm wieder zusammengesetzt
werden. Nachrichtenübermittlungsprogramme mit
Einrichtungen zur Bereitstellung einer solchen Transaktionssteuerung
sind nach dem Stand der Technik bekannt (beispielsweise die Nachrichtenübermittlungsprogramme
MQSeries von IBM). Die Ausgestaltung des Gateway-Programms ermöglicht das
Hinzufügen
von zusätzlichen
Serveranwendungen, um mit der steigenden Nachfrage Schritt zu halten – d. h.,
die Lösung
gemäß der bevorzugten
Ausführungsform
der Erfindung ist skalierbar. Dies wird erreicht, indem das Gateway-Programm
den Sitzungskennzeichner in einen Nachrichtendeskriptorteil von
jeder der asynchronen Nachrichten aufnimmt. (Der Nachrichtendeskriptor
umfasst Daten, die die Eigenschaften der Nachricht definieren, und wird
vom Nachrichtenwarteschlangenbildungsdienst verwendet, um zu entscheiden,
wie die Nachricht verarbeitet werden muss. Die Nachrichten selbst
umfassen zwei verschiedene Komponenten – einen Anwendungsdatenteil
und einen Nachrichtenvorsatzteil, der die Nachrichtendeskriptordaten
enthält,
die den Anwendungsdaten untergeordnet sind.) Dadurch wird es möglich, dass
mehrere Serveranwendungsprogramme in Bezug auf eine Arbeitswarteschlange parallel
ausgeführt
werden. Falls die Anwendung zwischen aufeinanderfolgenden Interaktionen
eigene Kontextdaten speichern muss, kann sie Nachrichten abrufen,
die mit ihrem Sitzungskennzeichner übereinstimmen. Falls sie keine
Kontextdaten speichern muss, können
Exemplare der Serveranwendung die erste Nachricht, die sie finden,
abrufen und verarbeiten.
-
Die
Erfindung gemäß der bevorzugten
Ausführungsform
ermöglicht
folglich die Verbindung des WWW-Internetdienstes mit einem universalen
Nachrichtenübermittlungssystem,
ohne eine Änderung
an vorhandenen Web-Browsern erforderlich zu machen, jedoch ist die
Erfindung nicht auf diese Ausführung begrenzt.
Die Erfindung kann so ausgeführt
werden, dass sie eine Verbindung zwischen zwei beliebigen Datenverarbeitungssystemen
bereitstellt, wobei ein in einem System installiertes Computerprogramm eine
synchrone Kommunikation benötigt,
wohingegen ein im anderen System installiertes Programm eine asynchrone
Form der Kommunikation benötigt. Außerdem stellt
die Erfindung gemäß der bevorzugten
Ausführungsform
in Verbindung mit einer Nachrichtenübermittlungssoftware, beispielsweise
den MQSeries-Produkten von IBM, eine Brücke zu Netzen bereit, die das
Internetprotokoll (IP) nicht unterstützen, da MQSeries die Übertragungsprotokolle TCP/IP,
APPC und NetBios unterstützt.
Folglich ermöglicht
die Erfindung Kommunikationsvorgänge zwischen
Anwendungen in IP- und
Nicht-IP-Netzen.
-
Die
oben beschriebene bevorzugte Ausführungsform enthält ein gesondert
installierbares Gateway-Programm in Verbindung mit einem Nachrichtenübermittlungssystem.
Eine alternative Ausführungsform
realisiert den Gateway-Computer als eine interne Komponente eines
Warteschlangenverwaltungsprogramms. Der Sitzungskennzeichner und
die Sitzungsstatustabelle können
je nach Wunsch als eine Nachrichtenwarteschlange unter der Steuerung der
Warteschlangenverwaltungseinrichtung realisiert werden. Die bereits
in Warteschlangenverwaltungseinrichtungen von MQSeries realisierten
Kennzeichner MessageID und CorelID können als geeignete Suchinformationen
beim Abfragen der Warteschlange verwendet werden. Es sei jedoch
darauf hingewiesen, dass eine Aktualisierung von Einträgen, die
in einer von der Warteschlangenverwaltungseinrichtung gesteuerten
Warteschlange zwischengespeichert werden, die Schritte des Entfernens
der Einträge
aus der Warteschlange, der Änderns
und erneuten Stellens in die Warteschlange erforderlich macht, da
keine Voraussetzungen für
eine Änderung
von Einträgen
geschaffen werden, während
sie in einer von der Warteschlangenverwaltungseinrichtung gesteuerten Warteschlange
verbleiben. Das Aktualisieren eines Eintrags in einer im gemeinsam
genutzten Speicher zwischengespeicherten Tabelle kann ein einfaches Überschreiben
des früheren
Eintrags zur Folge haben. Obwohl es Vorteile bei der Verwendung
der Einrichtungen des Nachrichtenwarteschlangen-Verwaltungsprogramms hinsichtlich des
Vorgangs "Auf Ereignis
(d. h. Antwort) oder Zeitlimitüberschreitung warten" ('wait for event (i.
e. reply) or timeout' operation)
gibt, wird diese Funktion normalerweise von Betriebssystemen mit Mehrfachprogrammbetrieb
(multi-threaded operating systems) bereitgestellt, und ein Nachrichtenwarteschlangen-Verwaltungsprogramm kann
die Funktion des zugrundeliegenden Betriebssystems in der Praxis
nutzen. Alternative Ausführungsformen
können
eine Einleitung des Gateway-Programms jedes Mal verwenden, wenn
eine neue Antwortnachricht erstmalig in die Antwortwarteschlange
gestellt wird, jedoch ist dies nicht die bevorzugte Ausführung, da
eine Einleitung nicht erwünscht ist,
wenn keine aktuelle aktive Sitzung mit dem Clientsystem besteht.
Weitere alternative Ausführungsformen
der Erfindung können
ein periodisches Abfragen der Antwortwarteschlange auf neue Antwortnachrichten
anstelle des Aufrufens eines Vorgangs "Abrufen mit Wartezeit" realisieren.
-
In
der oben beschriebenen bevorzugten Ausführungsform werden Sitzungskennzeichner
automatisch im Cachespeicher eines Web-Browsers (als eingebettete Felder in
HTML-Seiten) gespeichert. Alternativ könnten die Sitzungskennzeichner jedoch
einem Endbenutzer auf einem Bildschirm angezeigt werden, und der
Benutzer muss möglicherweise
den Sitzungskennzeichner eingeben, wenn er eine nachfolgende zugeordnete
Anforderung macht. In Ausführungsformen,
in denen eine vorläufige
Antwort an das Clientsystem nach einer Zeitlimitüberschreitung ohne automatische
Speicherung oder automatische Aufnahme in künftige Anforderungen lediglich
dem Benutzer angezeigt wird, entscheidet der Endbenutzer, ob die
aktuelle Sitzung beendet werden muss, wobei der Kennzeichner für nachfolgende Wiederholungen
einer Anforderung gespeichert wird. Die oben beschriebene beispielhafte
Ausführungsform
weist außerdem
das Merkmal von Sitzungskennzeichnern und Sitzungsstatusdaten auf,
die lediglich in bestimmte der an den Browser rückübertragenen Kommunikationsvorgängen aufgenommen werden,
eine eindeutig im Anwendungsbereich der Erfindung gemäß der Definition
in angehängten
Ansprüchen
liegende Alternative beinhaltet jedoch zumindest die Aufnahme der
Sitzungskennzeichnerdaten in alle Antworten.
-
Ein
Merkmal der oben beschriebenen bevorzugten Ausführungsform ist die Aufbewahrung
von Statusdaten durch das Gateway-Programm; eine alternative Ausführungsform
der Erfindung überlässt den
Anwendungsprogrammen die Handhabung aller Folgesteuerungsprobleme,
so dass das Gateway-Programm nicht an der Verwaltung von Sitzungsstatusdaten
beteiligt ist.