-
GEBIET DER TECHNIK
-
Diese
Anwendung betrifft allgemein das Gebiet der Rechner-Softwareanwendungen
und insbesondere den Zugriff auf ältere (Legacy-)Anwendungsprogramme
(legacy application programs) über ein
Rechnernetzwerk wie zum Beispiel das Internet.
-
DER ERFINDUNG ZUGRUNDE LIEGENDER
ALLGEMEINER STAND DER TECHNIK
-
Wie
alles andere hat sich auch die Nutzung des Rechners im Laufe der
Jahre geändert.
Bis zum Aufkommen des eigenständigen
Personal Computers haben in den Anfangszeiten riesige Großrechner in
den Unternehmen dominiert. Heute verfügen viele Unternehmen und Privathaushalte über mindestens einen
eigenständigen
Personal Computer oder PC. Ein neues Paradigma der Datenverarbeitung
ist jedoch in Erscheinung getreten: die netzwerkzentrische oder
die verteilte Datenverarbeitung, bei der mindestens zwei, wahrscheinlich
aber sehr viel mehr Rechner, die als Clients und Server bezeichnet
werden, untereinander über
ein Netzwerk verbunden sind, in dem sich die von einem Client verwendeten Software-Anwendungen
auf einem Server befinden. Folglich kann ein Server die Anwendung
oder das Client-Programm oder die Datenbanken bereitstellen, die
von einem Endbenutzer oder von mehreren anderen Servern und Clients über ein
Netzwerk verwendet werden.
-
In
vielen und zunehmend mehr Fällen
ist das Netzwerk, das Clients und Server miteinander verbindet,
das Internet. Das Internet bezieht sich auf einen Verbund von untereinander
verbundenen Rechnernetzwerken, die das Internet-Protokoll, z. B. TCP/IP,
UDP usw., verwenden. Software-Anwendungen werden in einer Programmiersprache
geschrieben, die unabhängig
vom Betriebssystem des Servers oder aber des Client ist, um auf
unzählige
Anwendungen im Internet zuzugreifen und diese zu nutzen. Sprachen,
die Daten über
das Internet beschreiben, beinhalten überdies Varianten der erweiterbaren Auszeichnungssprachen
(extensible mark-up languages (XML)), wie zum Beispiel die Hypertext
Mark-up Language (HTML), die Wireless Mark-up Language (WML) usw.
Das World Wide Web bezieht sich auf ein Sofware-Verwaltungsschema,
das auf das Internet zugreift, wobei verschiedene Benutzeragenten Hypertext-Links
verwenden.
-
Die
verteilte Datenverarbeitung hat das methodische Vorgehen von Software-Entwicklern
beim Schreiben von Code für
diese Anwendungen grundlegend geändert.
Statt eine einzige sehr umfangreiche eigenständige Anwendung mit Tausenden
oder Millionen von Zeilen an Code zu schreiben, wählen Software-Entwickler kleinere
Teile von Code, die als Komponenten bezeichnet werden, und "verweben" diese, wobei jeder
Komponente eine bestimmte Funktion zugeordnet wird, die im gesamten
World Wide Web über
mehrere Anwendungen hinweg wiederverwendet werden kann. Bei Komponenten
handelt es sich um Standard-Software, die von einem Server abgerufen
und von Software-Entwicklern in neue Anwendungen eingebunden werden
kann. Eine Kalender-Komponente kann zum Beispiel in mehreren Anwendungen
wie einer Terminplanungs-Anwendung, einer Präsentations-Anwendung und/oder
einer Datenbank-Anwendung verwendet werden, um den Urlaubsanspruch
und das Urlaubsgeld eines Angestellten usw. zu berechnen. Moderne
Industrie-Architekturen
für Internet-
und World-Wide-Web-Anwendungen setzen überdies voraus, dass die Geschäftslogik
von der Präsentationslogik
getrennt wird, so dass die Geschäftslogik
allein für
die Bereitstellung von Unternehmensdaten zuständig ist, während die Präsentationslogik
allein für
die Steuerung der Präsentation
oder der Benutzerschnittstelle zuständig ist.
-
Die
sehr umfangreichen eigenständigen
Anwendungen haben Tausende oder Millionen Zeilen von Code, können für Unternehmen
und Organisationen jedoch immer noch sehr wichtig sein. Tatsächlich können einige
eigenständige
Programme das gesamte Inventar/die gesamte Kundenlisten/die gesamte
Datenbank eines Unternehmens oder alles Vorstehende enthalten. Der
Begriff "Legacy-Anwendungen" bezieht sich auf
alte Anwendungen, die in einem Unternehmen oder einer Organisation
weiterhin genutzt werden, die aber vor dem Aufkommen der verteilten
Datenverarbeitung und der strukturierten Programmierung und deren
Modularitäts-,
Verbindungs-, Kohäsionsverfahren
usw. entwickelt worden sind. Legacy-Anwendungen, die als ein einziges großes eigenständiges Programm
geschrieben worden sind, tragen Änderungen
nicht leicht Rechnung. Diese Legacy-Anwendungen sind überdies
häufig
so unternehmenskritisch, dass sich diese Unternehmen schwierigen
Entscheidungen über
die Zukunft dieser Anwendungen und die Möglichkeit, neue Netzwerk- und
Internet-Technologien für
den verteilten und den Fernzugriff auf diese kritischen Anwendungen
nutzen zu können,
gegenüber
sehen. Interaktive Legacy-Anwendungen, die über eine gemischte Unternehmens- und
Präsentationslogik
verfügen,
müssen
neu strukturiert und/oder überarbeitet
werden, um als Web-Anwendungen aktiviert werden zu können. Es
ist jedoch nicht immer möglich,
die Geschäftslogik
von der Benutzerschnittstellen-Logik zu trennen, um Anwendungen
im Web einsetzen zu können
und dabei nur geringfügig
in diese Anwendungen eingreifen und sie austesten zu müssen.
-
Andere
Lösungen
zum Ausführen
von Legacy-Anwendungen im Internet und im World Wide Web können ein
so genanntes Screen-Scraping-Verfahren
einsetzen, das Anzeigedatenströme
von Legacy-Anwendungen zur Laufzeit in eine webbasierte Sprache
wie zum Beispiel HTML oder eine andere Sprache umwandelt. Die in
HTML umgewandelten Bildschirminhalte werden dann in einem Browser
angezeigt. Die Umwandlung eines Anzeigedatenstroms einer Legacy-Anwendung
zur Laufzeit ist jedoch langsam, sie beeinträchtigt die Leistungsfähigkeit
der Anwendung und gibt dem Benutzer nicht die Möglichkeit, Legacy-Anwendungen
nahtlos in neue Web- oder andere Netzwerkanwendungen einzubinden oder
eine Brücke
zwischen diesen Anwendungen zu schlagen. Auch ist es durch die bloße Umwandlung von
Legacy-Daten nicht möglich,
die Leistungsfähigkeit
der Benutzerschnittstelle der Anwendung zu verbessern, wenn die
Anwendung im Internet ausgeführt
wird.
-
Die
US-Patentschrift
US 5 754 830 beschreibt
einen Server- und einen Webbrowser-Endgeräte-Emulator für eine ständige Verbindung
mit einem Legacy-Hostsystem und ein Betriebsverfahren, das auf der
Screen-Scraping-Technologie beruht. Ein Produkt, das die Screen-Scraping-Technologie
verwendet, ist der WebSphere
® Host Publisher von IBM. IBM
und WebSphere sind Warenzeichen der International Business Machines
Corporation.
-
In
der Industrie besteht folglich die Notwendigkeit, vom Internet,
vom World Wide Web oder von anderen Rechnerübertragungsnetzwerken auf Legacy-Anwendungen
zugreifen zu können,
ohne die Anwendung neu strukturieren oder Code-Änderungen
an den Programmen vornehmen zu müssen.
-
Weiterhin
besteht in der Industrie die Notwendigkeit für eine nahtlose Verflechtung
von Legacy-Anwendungen mit anderen Netzwerk-Anwendungen.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Diese
und andere Erfordernisse, die der Fachmann erkennen wird, werden
von einem Verfahren zur Ausführung
einer Rechneranwendung, die auf einem Rechner installiert ist, erfüllt, wobei
das Verfahren Folgendes umfasst: den Schritt des Erzeugens einer
Servlet-Instanz in einem Server, der mit dem Rechner in einem ersten
Netzwerk verbunden ist; den Schritt des Ausführens der Anwendung auf dem
Rechner, um dynamische Daten zu erzeugen; den Schritt des Abfangens
und Umleitens der dynamischen Daten an eine Netzwerk-Publizierungskomponente
auf dem Rechner; den Schritt des Übertragens von dynamischen
Daten von der Netzwerk-Publizierungskomponente
an die Servlet-Instanz; und den Schritt des Erzeugens von Datenobjekten
und den Schritt des Füllens
der Datenobjekte mit den dynamischen Daten im Server. Das Verfahren
kann darüber
hinaus das Anfordern der Anwendung von einem Client, der über ein
zweites Netzwerk mit dem Server verbunden ist; das Aktualisieren
von mindestens einer Netzwerkseite mit den dynamischen Daten; und
das Übertragen
der aktualisierten Netzwerkseiten an den Client umfassen.
-
Bei
dem ersten Netzwerk kann es sich um das Internet handeln. Das erste
Netzwerk kann auch aus der Gruppe ausgewählt werden, die aus Folgendem
besteht: einem internen Netzwerk, einem Intranet, einem LAN, einem
WAN, einem internen Bus, einem drahtlosen Netzwerk. Ebenso kann
es sich bei dem zweiten Netzwerk um das Internet handeln; oder es
kann aus der Gruppe ausgewählt
werden, die aus Folgendem besteht: einem internen Netzwerk, einem Intranet,
einem LAN, einem WAN, einem internen Bus, einem drahtlosen Netzwerk.
Der Rechner kann den Netzwerk-Server
enthalten.
-
Das
Verfahren kann darüber
hinaus die Umwandlung der Anzeigedateien der Anwendung in Netzwerkseiten
umfassen, die dynamische Daten anzeigen können. Die Netzwerkseiten können auf
einer XML-Sprache wie zum Beispiel HTML und/oder WML beruhen. Die
Netzwerkseiten können
JavaServer Pages sein. Die Netzwerkseiten können überdies auf dem Server gespeichert
werden.
-
Das
erfindungsgemäße Verfahren
kann ferner das Erzeugen eines E/A-Pufferspeichers für die dynamischen
Daten in dem Rechner umfassen. Das Verfahren kann auch den Schritt
des Erzeugens einer ersten Endpunkt-Verbindung zwischen der Servlet-Instanz
und der Netzwerk-Publizierungskomponente umfassen, wobei die Endpunkt-Verbindung
ein "Socket" (Kommunikationsendpunkt,
an dem sich das Anwendungsprogramm und der Transportdienst des Netzes
treffen) oder ein Datenwarteschlangen-Objekt oder eine Nachrichten-Warteschlange sein
kann.
-
Es
ist auch vorgesehen, dass die Erfindung ein Programmprodukt zum
Einsatz in einem Rechnernetzwerk umfasst, um eine Anwendung auszuführen, die
auf einem Rechner eines Client gespeichert ist, wobei das Rechnerprogrammprodukt
ein Signal tragendes Medium umfasst, auf dem Folgendes übertragen
wird: ein Anwendungsaufrufdienst (application invoker), um eine
Anwendung in ihrer nativen Umgebung auf dem Rechner eines Client
zu starten und auszuführen;
eine Vielzahl von Netzwerk-Benutzerschnittstellenseiten,
um die Eingabe-/Ausgabedaten der Anwendung auf dem Client anzuzeigen;
ein Datenumleitungsdienst, um die Eingabe-/Ausgabedaten der Anwendung
an Netzwerk-Benutzerschnittstellenseiten umzuleiten; eine Vielzahl
von Datenobjekten, die den Netzwerk-Benutzerschnittstellenseiten entsprechen,
um die Eingabe-/Ausgabedaten
der Anwendung zu empfangen; eine Servlet-Instanz, um die Netzwerk-Benutzerschnittstellenseiten
mit den Eingabe-/Ausgabedaten der Anwendung dynamisch zu aktualisieren;
und einen Netzwerk-Benutzeragenten, um die aktualisierten Netzwerk-Benutzerschnittstellenseiten
auf dem Client anzuzeigen. Das Programmprodukt kann darüber hinaus
einen Bildschirminhaltdefinitions-Umwandler umfassen, um die Eingabe-/Ausgabe-Bildschirminhaltdefinitionen
der Anwendung in Netzwerk-Benutzerschnittstellenseiten umzuwandeln.
-
Die
Erfindung kann auch als ein Rechnersystem zur Ausführung einer
Anwendung betrachtet werden, das Folgendes umfasst: eine Zentraleinheit; einen
Hauptspeicher, der über
einen Datenübertragungsbus
mit der Zentraleinheit verbunden ist; eine Datenspeichereinheit,
die mit einer Datenspeicherschnittstelle verbunden ist, welche mit
dem Datenübertragungsbus
verbunden ist; mindestens eine Eingabe-/Ausgabeeinheit, die mit dem Datenübertragungsbus
und mit einer Netzwerkschnittstelle zu einem externen Rechnernetzwerk
verbunden ist; eine Anwendung, die in dem Hauptspeicher gespeichert ist
und auf der Zentraleinheit ausgeführt werden kann; eine Netzwerk-Publizierungskomponente;
einen Datenumleitungsdienst, um die dynamischen Daten der Anwendung
an die Netzwerk-Publizierungskomponente umzuleiten; und einen E/A-Pufferspeicher,
um die umgeleiteten dynamischen Daten zu speichern.
-
In
noch einer weiteren Ausführungsform kann
die Erfindung als ein Netzwerk-Server für den Zugriff auf eine Anwendung
betrachtet werden, die auf einem Rechner gespeichert und ausgeführt wird, wobei
der Netzwerk-Server Folgendes umfasst: eine Zentraleinheit; eine
Netzwerkschnittstelle, um über ein
Netzwerk eine Verbindung zu mindestens einem Client herzustellen;
eine Servlet-Instanz, um eine Anforderung von dem mindestens einen
Client für
den Zugriff auf die Anwendung zu empfangen und um die Anforderung
an den Rechner zu übertragen;
eine Server-Endpunkt-Verbindung, um Echtzeitdaten an den Rechner,
auf dem die Anwendung ausgeführt wird,
zu übertragen
und Echtzeitdaten von dem Rechner zu empfangen; und eine Vielzahl
von Datenobjekten, die mit den Echtzeit-Daten gefüllt werden sollen,
wobei die Servlet-Instanz die Echtzeitdaten von der Anwendung empfängt und
die Datenobjekte mit den Echtzeitdaten füllt. Der Netzwerk-Server kann
darüber
hinaus eine Vielzahl von Netzwerk-Anzeigeseiten umfassen, wobei
es jede der Netzwerk-Anzeigeseiten für jede Eingabe-/Ausgabe-Bildschirminhaltdefinition
der Anwendung nur einmal gibt, wobei die Servlet-Instanz die Netzwerk-Anzeigeseiten
zur Übertragung
an den Client über
das Netzwerk aktualisiert.
-
Die
Erfindung kann auch als ein Verfahren zur Ausführung einer Rechneranwendung
betrachtet werden, die auf einem Rechner installiert ist, wobei das
Verfahren die folgenden Schritte umfasst: Umwandeln einer Vielzahl
von Anzeigedateien der Anwendung in eine Vielzahl von XML-basierten
Netzwerkseiten, die die dynamischen Daten der Anwendung anzeigen
können;
Erzeugen von einer Servlet-Instanz in einem Server, der mit dem
Rechner in einem Netzwerk verbunden ist; Anfordern der Anwendung
von einem Client, der über
das Internet mit einem Server verbunden ist; Ausführen der
Anwendung auf dem Rechner in ihrer nativen Umgebung; Erzeugen eines
E/A-Pufferspeichers in dem Rechner für die dynamischen Daten der
Anwendung; Erzeugen einer Endpunkt-Verbindung zwischen der Servlet-Instanz und einer
Netzwerk-Publizierungskomponente auf dem Rechner; Hin-und-her-Übertragen
der dynamischen Daten von dem Client an die Anwendung über die
Servlet-Instanz; Erzeugen von Datenobjekten und Füllen der
Datenobjekte mit den dynamischen Daten; Aktualisieren von mindestens
einer Netzwerkseite unter Verwendung der Datenobjekte; Übertragen
der aktualisierten Netzwerkseiten an den Client über das Internet; und Übertragen
von Netzwerkseiten, die Antwortdaten von dem Client an den Server
haben, um sie als Eingabedaten an die Anwendung zu übertragen.
-
Eine
noch andere Erscheinungsform der Erfindung ist ein Verfahren zur
interaktiven Kommunikation mit einer Rechneranwendung, wobei das
Verfahren Folgendes umfasst: Ausführen einer Legacy-Rechneranwendung
in ihrer nativen Umgebung; Umleiten von E/A-Anforderungen von der
Legacy-Rechneranwendung
sowie Antworten an die Legacy-Rechneranwendung
von einem Client über das
Internet, ohne Änderungen
an dem Code der Legacy-Rechneranwendung vorzunehmen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Übersichtsblockschaltbild
eines Rechnersystems, das die bevorzugte Ausführungsform der Erfindung ausführen kann.
-
2 ist
ein vereinfachtes Blockschaltbild eines Serversystems, das auf Legacy-Anwendungen zugreifen
kann, die auf dem Rechnersystem gemäß den Grundgedanken der Erfindung
gespeichert werden.
-
3 ist
eine vereinfachte Darstellung eines Rechnernetzwerks aus Clients
und Servern, das die Erfindung vorteilhaft nutzen kann.
-
4 ist
ein vereinfachtes Flussdiagramm und Blockschaltbild einer Rechnerumgebung
nach dem Stand der Technik für
Legacy-Anwendungen, das den Fluss der Daten zeigt, die angezeigt
werden sollen.
-
5 ist
ein vereinfachtes Flussdiagramm, das die Art und Weise, in der Daten
an ein Netzwerk/von einem Netzwerk umgeleitet werden, sowie eine
Legacy-Anwendung gemäß den Grundgedanken
der Erfindung zeigt.
-
6 ist
ein vereinfachtes Flussdiagramm und Blockschaltbild, das die Art
und Weise zeigt, in der Daten von einer Legacy-Anwendung unter Verwendung
von World-Wide-Web-Technologien
im Internet umgeleitet werden können.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
Bezug
nehmend auf die Zeichnungen, in denen gleiche Bezugszahlen in all
den diversen Ansichten gleiche Teile bezeichnen, zeigt 1 ein Übersichtsblockschaltbild
eines Rechnersystems 100, das einer Ausführungsform
der Erfindung entspricht. Das Rechnersystem 100 kann die
Zentraleinheit (CPU) 101, den Hauptspeicher 102,
die Endgeräte-Schnittstelle 103,
den Datenspeicher 104 und eine Netzwerkschnittstelle, beispielsweise
eine Internet-Schnittstelle, 105 umfassen. Die verschiedenen Einheiten
tauschen über
einen internen Datenübertragungsbus 110 untereinander
Daten aus. Die CPU 101 ist ein programmierbarer Universalprozessor, der
im Speicher 102 gespeicherte Befehle ausführt. Zwar
ist in 1 eine einzige CPU gezeigt, doch sollte es sich
verstehen, dass Rechnersysteme mit mehreren CPUs ebenfalls verwendet
werden könnten. Der
Speicher 102 ist ein Direktzugriff-Halbleiterspeicher zur Speicherung von
Daten und Programmen; der Speicher ist konzeptionell als eine einzelne
monolithische Einheit gezeigt, doch ist bekannt, dass ein Speicher
häufig
in einer aus Cachespeichern und anderen Speichereinheiten bestehenden
Hierarchie angeordnet ist. Das Betriebssystem 120 und die
Anwendungen 122 befinden sich im Speicher 102.
Das Betriebssystem 120 stellt unter anderem Funktionen wie
Einheitenschnittstellen, die Verwaltung von Speicherseiten, die
Verwaltung von mehreren Aufgaben usw. bereit, wie in der Technik
bekannt ist. Zu den Anwendungen 122 können Legacy-Anwendungen gehören, und wenn sie eine Server-Softwareanwendung
beinhalten, kann die Netzwerkschnittstelle 105 mit der
Server-Softwareanwendung 122 in Dialogverkehr treten, um
dem Rechnersystem 100 zu ermöglichen, die Funktion eines
Netzwerk-Servers zu übernehmen.
-
Die
Endgeräte-Schnittstelle 103 kann
den Anschluss von einem einzigen oder von mehreren Endgeräten unterstützen und
in Form von einer oder mehreren Einschubkarten oder anderen Einheiten ausgeführt sein.
Der Datenspeicher 104 umfasst vorzugsweise eine oder mehrere
sich drehende Magnetfestplatten-Laufwerkseinheiten,
obgleich andere Arten eines Datenspeichers ebenfalls verwendet werden
könnten.
Die Netzwerkschnittstelle 105 stellt eine physische Verbindung
zur Übertragung
von Daten an ein und von einem Netzwerk bereit. In der bevorzugten
Ausführungsform
handelt es sich bei dem Netzwerk um das Internet, aber das Netzwerk
könnte auch
ein kleineres eigenständiges
Netzwerk wie zum Beispiel ein Intranet, ein WAN, ein LAN oder ein
anderes internes oder externes Netzwerk sein, das zum Beispiel Telefonübertragungsleitungen,
Satelliten, Lichtwellenleiter, T1-Leitungen usw. und verschiedene
zur Verfügung
stehende Technologien nutzt. Der Datenübertragungsbus 110 unterstützt die Übertragung
von Daten, Befehlen und anderen Informationen zwischen verschiedenen
Einheiten; er ist zwar in vereinfachter Form als ein einzelner Bus
dargestellt, doch setzt er sich üblicherweise
aus mehreren Bussen zusammen und kann hierarchisch aufgebaut sein.
-
Das
in 1 gezeigte Rechnersystem soll eine vereinfachte
Darstellung sein, wobei es sich versteht, dass neben den hier ausdrücklich genannten viele
Variationen bei der Systemkonfiguration möglich sind. Während es
denkbar wäre,
dass das System 100 ein Personal-Computer-System ist, könnte der
Rechner 100 auch ein größeres Rechnersystem wie
zum Beispiel ein IBM Enterprise System oder ein IBM-AS/400-System
sein. Zwar wird hier eine bestimmte Hardware-Konfiguration zusammen
mit verschiedenen Alternativen beschrieben, doch könnten die
beschriebenen Verfahren im Allgemeinen mit jeder Hardware-Konfiguration
realisiert werden, die den Zugriff auf Legacy-Anwendungen über ein
Rechnernetzwerk von einem Client ermöglicht. Die CPU 101 ist
so programmiert, dass sie die bevorzugte Ausführungsform ausführt, da
sie über
die Legacy-Anwendung
und eine Netzwerkschnittstelle verfügt, welche von anderen angeschlossenen
Rechnern für
den Zugriff auf diese Legacy-Anwendung verwendet werden kann.
-
Das
Rechnersystem 100 und seine Komponenten sind in 1 mehr
oder weniger als ein einzelnes eigenständiges Rechnersystem gezeigt
und beschrieben. Es ist alternativ möglich, mehrere Rechnersysteme
zu verwenden, insbesondere mehrere Systeme, die eine einzige große Datenbank
gemeinsam benutzen, wobei jedem System eine spezielle Aufgabe zukommt.
Ein oder mehrere Rechnersysteme 100 könnten beispielsweise einer
oder mehreren Legacy-Anwendungen, die auf eine Datenbank zugreifen,
zugeordnet werden, während
ein oder mehrere andere Rechnersysteme 100 ausschließlich dafür vorgesehen
werden könnten,
dass sie von Clients empfangene Anforderungen bedienen oder auf das
Internet zugreifen. In diesem Schriftstück vorgenommene Bezugnahmen
auf einen Rechner sind dahingehend zu verstehen, dass sie entweder
einen einzelnen Rechner oder einen Verbund von Rechnersystemen beinhalten,
der den Zugriff auf eine Legacy-Anwendung und auf ein Netzwerk ermöglicht, über das
eine Verbindung zu einem Client-System hergestellt werden kann.
-
2 ist
ein Beispiel eines Netzwerk-Servers 200, der auf eine Legacy-Anwendung
zugreifen kann, die auf dem Rechner 100 gespeichert ist.
Bei dem Netzwerk-Server 200 kann es sich um ein Rechnersystem
handeln, das eine CPU 201, einen Hauptspeicher 202,
verschiedene Einheitenadapter und Schnittstellen 203 bis 208 sowie
einen Datenübertragungsbus 210 enthält. Die
CPU 201 ist ein programmierbarer Universalprozessor, der
Befehle ausführt, die
im Speicher 202 gespeichert sind; während in 2 eine
einzelne CPU gezeigt ist, sollte es sich verstehen, dass auch Rechnersysteme
mit mehreren CPUs verwendet werden könnten.
-
Der
Speicher 202 ist ein Direktzugriff-Halbleiterspeicher,
der zur Speicherung von Daten und Programmen dient; der Speicher
ist konzeptionell als eine einzelne monolitische Einheit gezeigt,
doch versteht es sich, dass der Speicher 202 häufig in
einer aus Cachespeichern und anderen Speichereinheiten bestehenden
Hierarchie angeordnet ist. Der Datenübertragungsbus 210 unterstützt die Übertragung
von Daten, Befehlen und anderen Informationen zwischen verschiedenen
Einheiten; während
er in vereinfachter Form als ein einzelner Bus gezeigt ist, kann
er sich aus mehreren Bussen zusammensetzen und hierarchisch aufgebaut
sein. Der Bildschirmadapter 203 unterstützt den Bildschirm 211,
bei dem es sich um einen Katodenstrahlröhren-Bildschirm, einen Flachbildschirm
oder einen berührungsempfindlichen Bildschirm
handeln kann, obgleich auch andere Bildschirmtechnologien verwendet
werden können.
Der Tastatur-/Zeigeeinheit-Adapter 204 unterstützt die Tastatur 212 und
die Zeigeeinheit 213, die als Maus dargestellt ist, wobei
es sich versteht, dass auch andere Formen von Eingabeeinheiten verwendet
werden könnten.
Der Speicheradapter 205 unterstützt eine oder mehrere Datenspeichereinheiten 214,
bei denen es sich um sich drehende Magnetfestplattenlaufwerke oder
CD-ROM-Laufwerke handeln kann, obgleich auch andere Datenspeichereinheiten
verwendet werden könnten.
Der Druckeradapter 206 unterstützt den Drucker 215.
Der Adapter 207 kann beliebige von vielen verschiedenen
zusätzlichen
Einheiten wie zum Beispiel Audioeinheiten usw. unterstützen. Die
Netzwerkschnittstelle 208 stellt eine physische Schnittstelle
zu einem Netzwerk wie zum Beispiel dem Internet bereit. Diese Schnittstelle
kann einen Modem umfassen, der mit einer Telefonleitung verbunden
ist, über
die ein Internetzugang-Anbieter oder ein Onlinedienst-Anbieter erreicht
werden kann, doch werden zunehmend andere Schnittstellen mit höherer Bandbreite
realisiert. Der Netzwerk-Server 200 kann beispielsweise
mittels eines Ethernet-, Token-Ring- oder eines anderen Protokolls über ein
lokales Netzwerk mit einem anderen Netzwerk-Server verbunden sein,
wobei der zweite Netzwerk-Server wiederum mit dem Internet verbunden
ist. Alternativ dazu kann die Netzwerkschnittstelle 208 über Kabelfernsehen,
Lichtwellenleiter, Satelliten, drahtlose oder andere Verbindungen
bereitgestellt werden. Die Darstellung von 2 soll eine
beispielhafte vereinfachte Darstellung eines Servers des oberen
Leistungsbereichs sein, wobei es sich versteht, dass bei anderen
Netzwerk-Servern 200 neben den hier genannten viele Variationen
bei der Systemkonfiguration möglich
sind. Der Netzwerk-Server 200 und der Rechner 100 können in
demselben System zusammengefasst werden, wenn eine der Anwendungen 122 des
Rechnersystems 100 eine Server-Softwareanwendung ist, wobei das Netzwerk
zwischen dem Netzwerk-Server 200 und dem Rechner 100 in
diesem Fall ein interner Datenübertragungsbus
wäre.
-
Bezug
nehmend auf 3 ist jedes Client-System 300 eine
vom Rechner 100 getrennte Einheit, die auf Legacy-Anwendungen
zugreifen kann, welche sich auf dem Rechner 100 befinden und
darauf ausgeführt
werden. Das Client-System kann ein Personal-Computer-System oder ein größeres Rechnersystem
wie zum Beispiel ein Server oder ein kleineres Rechnersystem wie
zum Beispiel ein Notebook- oder ein Laptop-Rechner sein.
-
Letztendlich
braucht das Client-System 300 überhaupt kein Rechner zu sein,
vorzugsweise ist es jedoch eine einfachere kleingeräteähnliche
Client-Einheit mit weniger Speicherkapazität, zum Beispiel ein Netzwerkendgerät, ein „abgespeckter" Client (thin client),
eine endgeräteähnliche
Einheit, eine Sprachantworteinheit (Voice Response Unit) usw. Das
Zusammenführen
von Datenverarbeitung, Telekommunikation und Verbraucherelektronik
bewirkt eine enorme Zunahme bei der Anzahl und Verschiedenartigkeit
der standortunabhängigen,
ins weltweite Netz integrierten (pervasive) mobilen Einheiten als Clients 300.
Diese mobile Architektur macht es möglich, dass zu der Vielzahl
der Clients 300 Laptop-Rechner, Klein-Notebooks, tragbare Kleinrechner wie
zum Beispiel persönliche
digitale Assistenten und Peripherie-Chips (companion devices) sowie mobile
Geräte
wie Smartphones, Personenrufempfänger
(pager), einfache Nachrichtenübermittlungseinheiten
und am Körper
tragbare Einheiten gehören. Wenn
das Client-System 300 eine mobile Einheit ist, verfügen ein
Bildschirmadapter und eine Netzwerkschnittstelle folglich über einen
Netzwerk-Benutzeragenten
und unterstützen
eine Vielzahl von Schnittstellen mit mehreren Betriebsarten, z.
B. herkömmliche
Tastatur- und Mausschnittstellen, kleine Textbildschirme, Stifte,
berührungsempfindliche
Bildschirme, Spracherkennung, Text in Sprache und andere aufkommende
Technologien wie am Körper
tragbare Einheiten. Ein Netzwerk-Benutzeragent ermöglicht die
Nutzung der Anwendungen des Rechners auf seinem jeweiligen Client 300.
Vorzugsweise ist vorgesehen, dass das Client-System 300 eine
elektronische Einheit enthält,
die über
den Netzwerk-Benutzeragenten, beispielsweise einen Webbrowser, mit
einem Netzwerk-Server 200 in Dialogverkehr treten kann, um
auf eine Legacy-Anwendung oder auf andere Anwendungen zuzugreifen,
die sich auf dem Rechnersystem 100 befindet. Es ist auch
vorgesehen, dass solche speziellen Einheiten für den Zugang zum World Wide
Web wie zum Beispiel eine Internet-Zugangsbox für ein Fernsehgerät oder eine
tragbare drahtlose Web-Zugangseinheit, die einen Benutzeragenten
ausführen
kann, um eine Anwendung aufzurufen und auszuführen, ebenfalls zum Umfang
eines Client-Systems 300 gehören. Der Netzwerk-Benutzeragent könnte mittels
einer Steuerschaltung durch die Verwendung eines Logikgatters, programmierbarer
Logikeinheiten oder anderer Hardware-Komponenten anstelle eines
auf einem Prozessor beruhenden Systems realisiert werden.
-
Wie
nachstehend ausführlich
beschrieben wird, beziehen sich Erscheinungsformen der bevorzugten
Ausführungsform
auf bestimmte Verfahrensschritte, die auf einem Rechner 100 oder
einem Netzwerk-Server 200 ausgeführt werden können. In
einer alternativen Ausführungsform
kann die Erfindung als ein Rechnerprogrammprodukt zur Verwendung
mit einem Netzwerk-Server 200 oder
einem Client 300 oder aber zur Verwendung mit beiden ausgeführt werden.
Die Programme, die die Funktionen der bevorzugten Ausführungsform
festlegen, können
dem Rechner 100 und/oder dem Netzwerk-Server 200 über viele
verschiedene Signal tragende Medien, einschließlich der folgenden, jedoch
nicht auf diese beschränkt, übermittelt
werden: (a) Daten, die dauerhaft auf nicht beschreibbaren Speichermedien,
z. B. Nur-Lese-Speichereinheiten
in sowohl dem einen als auch dem anderen Rechner, gespeichert werden, wie
zum Beispiel CD-ROM-Platten,
die von einem CD-ROM-Laufwerk 214 gelesen werden können; (b) veränderbare
Daten, die auf beschreibbaren Speichermedien, zum Beispiel auf Disketten
im Diskettenlaufwerk oder auf einem Festplattenlaufwerk, gespeichert
werden und in 2 mit der Bezugszahl 214 gezeigt
sind; oder (c) Daten, die über
ein Telefon- oder ein Kabelnetzwerk, einschließlich drahtloser Übertragungen,
an einen Rechner übertragen
werden. Solche Signal tragenden Medien stellen, wenn sie rechnerlesbare
Befehle übertragen,
die die Funktionen der vorliegenden Erfindung steuern, alternative
Ausführungsformen
der vorliegenden Erfindung dar.
-
3 ist
eine vereinfachte Darstellung eines Rechnernetzwerks. Das Rechnernetzwerk
steht stellvertretend für
das Internet, das als ein bekanntes Rechnernetzwerk beschrieben
werden kann, welches auf dem hier erörterten Client-Server-Modell beruht.
Konzeptionell enthält
das Internet ein großes Netzwerk
aus Netzwerk-Servern 200, auf die Client-Systeme 300 über einen
privaten Internet-Zugangsanbieter 303 oder
einen Onlinedienst-Anbieter 304 zugreifen können. In
der bevorzugten Ausführungsform
kann jedes der Client-Systeme 300 einen entsprechenden
Netzwerk-Benutzeragenten
wie zum Beispiel einen Browser ausführen, um über die Zugangsanbieter auf
die Netzwerk-Server 200 zuzugreifen. Jeder Netzwerk-Server 200 kann über eigene
Legacy-Anwendungen verfügen
oder mit anderen Rechnern 100 verbunden sein, die über Legacy-Anwendungen
verfügen,
auf die über
das Internet oder andere Verbindungen mit den Clients 300 zugegriffen werden
kann. Überdies
braucht eine Legacy-Anwendung
auf nicht nur einem Rechner 100 gespeichert zu werden;
vielmehr können
verschiedene Tasks einer einzelnen Anwendung auf mehr als einem
Rechner 100 gespeichert werden, mit dem ein Netzwerk-Server 200 über das
Netzwerk, wie beispielsweise das Internet, verbunden ist. Ein Internet-Netzwerkpfad zu den
Servern 200 ist durch eine Verweisadresse (Universal Resource
Locator, URL) gekennzeichnet, die eine bekannte Syntax zur Angabe
einer Netzwerkverbindung hat. Während
verschiedene verhältnismäßig direkte
Pfade gezeigt sind, dürfte
es sich verstehen, dass 3 lediglich eine konzeptionelle
Darstellung ist und dass ein Rechnernetzwerk wie beispielsweise
das Internet tatsächlich
eine wesentlich komplexere Struktur haben kann. Es sollte auch klar sein,
dass ein Rechnernetzwerk auch ein Intranet oder ein anderes internes
Rechnernetzwerk wie zum Beispiel ein WAN, ein LAN usw. sein kann.
Die Ausführungsform
ist in ihrer bevorzugten Erscheinungsform insbesondere im Internet
nützlich,
obgleich sie nicht als darauf beschränkt zu betrachten ist.
-
Diese
Ausführungsform
stellt eine Umgebung bereit, die interaktive Legacy-Anwendungen vor
einer Umstrukturierung oder Überarbeitung
des Codes der Anwendung schützt,
indem sie solchen Legacy-Anwendungen gestattet, weiterhin in unveränderter
Form in ihrer jeweiligen nativen Umgebung ausgeführt zu werden, während sie
vielen verschiedenen Clients gleichzeitig den Zugriff auf die Legacy-Anwendungen
mittels eines Webbrowsers oder einer anderen Netzwerktechnologie
gestattet. Die Ausführungsform
verleiht den interaktiven Legacy-Anwendungen auch die Fähigkeit,
die benötigten
Geschäftsdaten
zu erzeugen und getrennte Präsentationsprodukte
so zu steuern, wie es gemäß den Architekturen
von World-Wide-Web-Anwendungen nach
Industriestandard erforderlich ist. Was an der Ausführungsform
interessant ist, ist die Interaktion zwischen den "zustandsbehafteten" Legacy-Anwendungen
und den "zustandslosen" Internet-Transaktionen.
Interaktive Legacy-Anwendungen
sind zustandsbehaftet, da die Anwendung weiterhin ausgeführt wird,
bis sie auf einen E/A-Befehl trifft, bei dem die Ausführung unterbrochen
und der Zustand der Anwendung in ihrer nativen Umgebung aufrechterhalten
wird, bis die E/A-Aktion
abgeschlossen ist. Internet-Transaktionen verwenden andererseits
zustandslose Protokolle wie beispielsweise HTTP, bei denen die Verbindung
zum Internet getrennt wird, nachdem eine Transaktion im Internet
abgeschlossen worden ist, und der Zustand der Transaktion verloren
geht, sofern nicht eine zusätzliche
Verarbeitung stattfindet, um diesen Zustand auf dem Netzwerk-Server
zu sichern. Diese Ausführungsform
stellt einen Mechanismus und eine Umgebung bereit, mittels derer
der Zustand der Legacy-Anwendung in ihrer nativen Umgebung automatisch
aufrechterhalten wird, während
sie mit der zustandslosen Web-Umgebung Daten austauscht. Dass der
Zustand der Anwendung automatisch aufrechterhalten wird, liegt im Wesen
der Architektur der Erfindung begründet, die die notwendige Kontinuität vorsieht,
die von interaktiven Legacy-Anwendungen
benötigt
wird.
-
Bezug
nehmend auf 4 ist in dieser Figur ein vereinfachtes
Flussdiagramm und Blockschaltbild einer Rechner-Anwendungsumgebung nach dem Stand der
Technik gezeigt. Jede Legacy-Anwendung 122 hat Daten 422,
die entsprechend dem Programm-E/A-Code 410 über die
Compiler-Laufzeitkomponente 420 in die Anwendungs-Laufzeitkomponente 430 des
Betriebssystems eingegeben beziehungsweise daraus ausgegeben werden
sollen. Die Ausgabedaten 422 können an den Code des Datenverwaltungsprogramms 432 gesendet
werden, der Teil der Anwendungs-Laufzeitkomponente 430 des Betriebssystems
ist. Ein Verwaltungsprogramm 434 für den Arbeitsplatzrechner (Workstation
Manager) oder eine gleichwertige Funktion in der Anwendungs-Laufzeitkomponente 430 des
Betriebssystems verknüpft
die Ausgabedaten 422 mit entsprechenden Anzeigedatensätzen von
den Benutzerschnittstellen-Definitionsdateien 440 der
Anwendungen, um einen Datenstrom 442 zu erzeugen, der auf einer
herstellereigenen Anzeigeeinheit 211 dargestellt werden
soll. Wenn die Daten in den Datenstrom aufgenommen wurden und zur
Anzeige an die Anzeigeeinheit gesendet werden, wird die Anzeige-Formatierung
der Anwendungsdaten in der Bildschirminhaltdefinition selbst festgelegt,
und der Format-Code wird von der Anwendungs-Laufzeitkomponente 430 des
Betriebssystems auf die Daten angewendet. Vor der Laufzeit der Anwendung
werden diese Benutzerschnittstellen-Definitionsdateien 440 kompiliert
und in ein oder mehrere Anzeigeobjekte, auf die während der
Laufzeit verwiesen wird, aufgenommen. Die Eingabedaten folgen dem
umgekehrten Pfad: Die Anwendungs-Laufzeitkomponente 430 entnimmt
dem eingehenden Datenstrom die Eingabedaten und formatiert die Daten,
die der Anwendung anschließend als
Benutzer-Eingabedaten übergeben
werden. Auf manchen System nimmt die Anzeigeeinheit 211 nur den
dynamischen Teil, z. B. die Eingabefelder, des Bildschirminhalts
in den eingehenden Datenstrom auf.
-
5 ist
ein vereinfachtes Flussdiagramm eines Verfahrens gemäß den Grundgedanken
der Erfindung, um die Verwendung von Legacy-Anwendungen über ein
Netzwerk, vorzugsweise das Internet unter Verwendung der World-Wide-Web-Technologie,
obgleich andere Netzwerke und andere Technologien als unter den
Umfang der Erfindung fallend betrachtet werden, zu ermöglichen.
Es wird davon ausgegangen, dass die unternehmenseigenen Benutzerschnittstellen-Definitionen
der nativen Anwendungs-Bildschirminhalte, die in 4 als
die Bildschirminhaltdefinitionen 440 bezeichnet werden,
getrennt in Bildschirminhaltdefinitions-Dateien gespeichert werden.
Zuallererst und sogar noch vor der Laufzeit werden die unternehmenseigenen
Bildschirminhaltdefinitionen 440 ausgewertet und im Schritt 510 in
ein Format umgewandelt, das von jedem ins weltweite Netz integrierten
(pervasive) Internet-Rechnerbenutzeragenten 570, zum Beispiel
einem World-Wide-Web-Browser,
dargestellt werden kann, wobei dieses Format vorzugsweise auf XML, beispielsweise
auf HTML, WML oder *ML, beruht, was wiederum von dem Internet-Benutzeragenten abhängt, der
zur Erzeugung dessen vorgesehen ist, was als Netzwerkseiten bezeichnet
wird. In der bevorzugten Ausführungsform
werden die Benutzerschnittstellen-Elemente mechanisch auf eine XML-basierte
Sprache abgebildet, die Benutzerschnittstellen-Elemente unterstützt.
-
Eine
individuelle Anpassung des Umwandlungsprozesses lässt sich
auf mehrere Arten erreichen und ist wünschenswert, wenn das Unternehmen,
das den Endbenutzer darstellt, eindeutig festgelegte Regeln hinsichtlich
der Präsentation
der Anwendung hat. Der Umwandlungsprozess kann alle von dem Unternehmen
verwendeten Entwurfsmuster für
Benutzerschnittstellen erkennen und dadurch dem Benutzer die Möglichkeit
geben, Vorlagen individuell anzupassen, um sie auf diese Entwurfsmuster abzubilden.
Der Umwandlungsalgorithmus verwendet diese Muster dann, um die tatsächlichen
Anwendungs-Bildschirminhalte zu ermitteln und sie entsprechend umzuwandeln. Änderungen
durch den Benutzer nach der Umwandlung sind möglich, wenn die Gestaltungsregeln
der Umwandlungen in getrennten Dateien abgelegt werden. In einer
Ausführungsform der
Netzwerkseiten als JavaServer Pages werden diese Netzwerkseiten
erzeugt, indem die Datensätze 440 der
Anzeigedatei in JavaServer Pages 520 umgewandelt werden,
die DHTML enthalten. DHTML ist HTML mit Cascading Style Sheets und
JavaScript, die vom Client verwendet werden, um eine lokale Prüfung der
Eingabefelder auf Gültigkeit
vorzunehmen, und es vereinfacht die Durchführung von Änderungen nach der Umwandlung,
damit die Seiten an den Präsentations-Stil
eines Benutzers angepasst werden können.
-
Andernfalls
können
die Regeln eines Unternehmens für
die Gestaltung von Bildschirminhalten durch Auswertung der Bildschirminhaltdefinitionen der
Legacy-Anwendung oder der Anzeigedatenströme während der Betrachtung der Bildschirminhalte entdeckt
werden. Der Inhalt der Wissensdatenbank, die man durch diese Auswertungen
erhält,
kann dann vor dem Umwandlungsprozess nach Bedarf geändert werden.
-
Die
umgewandelten Benutzerschnittstellenseiten 520 werden im
Schritt 530 dynamisch aktualisiert, wobei vorhandene Webseitenbereitstellungs-Technologien
(web page serving technologies) auf dem Netzwerk-Server 200 zur
Anwendung kommen, bevor die Seite an den Netzwerk-Benutzeragenten 570 auf
dem Client 300 gesendet wird. Die Ausgabe-Rohdaten der
Anwendung werden vom Datenverwaltungsprogramm 432 der Anwendungs-Laufzeitkomponente 430 des
Betriebssystems im Schritt 540 umgeleitet, so dass die
abgehenden Daten, die für
die Anzeige bestimmt sind, nicht in herkömmliche unternehmenseigene
Anzeigedatenströme
umgewandelt werden, wie in 4 beschrieben
ist, sondern vielmehr an eine neue Netzwerk-Publizierungskomponente 550 gesendet
werden, die die Bezeichnung "Publish-to-Web" trägt. Die
Netzwerk-Publizierungskomponente 550 formatiert
die Anwendungsdaten zur Veröffentlichung
im Netzwerk neu, da die Anwendungsdaten unter anderem von der Legacy-Anwendung
erzeugt und in ein Format codiert werden, das sich nicht zur Darstellung
im Netzwerk eignet. Die vom Netzwerk-Benutzeragenten 570 erhaltenen
Benutzereingabedaten werden ebenfalls von der Publish-to-Web-Laufzeitkomponente 550 verarbeitet
und als Anwendungseingabedaten neu formatiert, die der Anwendungs-Laufzeitkomponente 430 des
Betriebssystems übergeben werden.
-
Der
Netzwerk-Server 200 und ein Teil der Publish-to-Web-Laufzeitkomponente 550 können auf einem
Rechner 100 installiert werden, bei dem es sich nicht um
den Rechner handelt, auf dem die Legacy-Anwendung 122 und
die Anwendungs-Laufzeitkomponente 430 installiert
sind, können
aber mit einem Teil des Rechners 100, auf dem sich die
Legacy-Anwendung 122 befindet, zusammengeführt werden.
Die Publish-to-Web-Laufzeitkomponente 550 wird
ebenfalls so ausgelegt, dass die Legacy-Anwendung 122 nichts
von den Änderungen
in ihrer nativen Umgebung bemerkt und somit keine Code-Änderungen
an der Anwendung vorgenommen werden müssen.
-
In
einer bestimmten Ausführungsform
des Internet und des World Wide Web als Netzwerk lässt JAVA
JavaServer Pages als Netzwerkseiten zu, um Anwendungsdaten dynamisch
in HTML- oder XML-Seiten einzufügen,
bevor die Netzwerkseiten einem Netzwerk-Benutzeragenten bereitgestellt
werden, ein Prozess, der als ein dynamisch erzeugter Web-Inhalt
bezeichnet wird. Die von den JavaServer Pages zu lesenden Daten
werden in Datenobjekten gespeichert, d. h. JavaBeans, die von einem
Servlet gefüllt
werden, das zu veröffentlichende
Daten empfangen hat. Ein Merkmal der Ausführungsform besteht darin, dass
die Daten der Legacy-Anwendung, sobald sie einmal in diesen Datenobjekten
auf dem Netzwerk-Server gespeichert worden sind, zu jedem Zweck
zur Verfügung
stehen, einschließlich
des Zugriffs auf diese Daten von einem anderen mit dem Server verbundenen
Rechner, um sie zu bearbeiten, zu übertragen ...; die Verwendungszwecke
dieser dynamischen Daten der Legacy-Anwendung auf dem Web-Server
sind grenzenlos. Die Definitionen der Datenfelder der JavaBeans
sind eins zu eins auf die veränderlichen
Datenfelder der HTML- oder XML-Seiten abgebildet, die von den JavaServer
Pages aufgenommen werden, und werden während des Umwandlungsprozesses
als Java-Klassendefinitionen
erzeugt, da die Definition der unternehmenseigenen Anwendungs-Bildschirminhalte
die E/A-Felder der
Bildschirminhalte enthält.
Ein solches Abbilden ist in der Technik bekannt, und es gibt andere
Produkte wie zum Beispiel Active Server Pages, die einem Client
dynamische Inhalte von einem Server bereitstellen können. In
jeder Ausführungsform
instanziiert die Servlet-Instanz diese Datenobjekte und füllt sie
mit den umgeleiteten dynamischen Daten, gewöhnlich E/A-Daten, der Legacy-Anwendung.
Die Datenobjekte verfügen
deshalb vorzugsweise über die
notwendigen Verfahren, um die Daten zur Anzeige zu formatieren und
sie aus dem unternehmenseigenen Code der Anwendung in die Netzwerk-Codeseite
der geeigneten Sprache umzuwandeln.
-
Lediglich
anhand eines Beispiels zeigt 6 eine Architektur
der Publish-to-Web-Laufzeitkomponente, die auf der Verwendung von
JavaServer Pages beruht. Die Einheiten der Publish-to-Web-Laufzeitkomponente
sind: eine Servlet-Instanz 610, die als Web-Netzbrücke (Gateway)
für Anforderungen 612 an
eine Legacy-Anwendung 122 und Antworten 660 von
einer Legacy-Anwendung 122 dient.
Im Allgemeinen ist ein Servlet ein JAVA-Programm, das als Reaktion auf eine
Client-Anforderung auf einem Server läuft. Bei abgehenden Daten nimmt
die Servlet-Instanz 610 den
Inhalt eines Daten-Pufferspeichers von dem Socket entgegen, schlägt die Kennung
des Datensatzes nach, instanziiert und füllt das zugehörige Datenobjekt,
z. B. das JavaBean, und aktiviert die zugehörige JavaServer Page, um die
Daten dem Netzwerk-Benutzeragenten zur Anzeige bereitzustellen.
Bei eingehenden Daten packt die Servlet-Instanz 610 die Daten in einen
Daten-Pufferspeicher und übergibt
ihn der Anwendung über
den Socket und die Publish-to- Web-Laufzeitkomponente. Die
Servlet-Instanz 610 legt auch den Anwendungsprozess und
den Datenübertragungspfad
zwischen dem Anwendungsprozess und dem Netzwerk-Serverprozess fest.
Der Datenübertragungspfad
kann die Sockets 626 als ein Kommunikationsendpunkt enthalten.
Es sei erwähnt,
dass Sockets und andere Kommunikationsendpunkte, die die Ausführung der Anwendung
unterbrechen, während
sie auf Eingabedaten warten, zwangsläufig den Zustand der Anwendung
aufrechterhalten und im Sinne der Erfindung arbeiten. Der Anwendungsaufrufdienst 660 speichert den
Deskriptor des Socket, der später
von der Read_Data- und der Write_Data-Methode verwendet werden soll,
aktiviert die Datenumleitung und ruft die Legacy-Anwendung auf.
Die Anwendungs-Laufzeitkomponente 430 des Betriebssystems
ruft die Read_Data-Methode und die Write_Data-Methode auf, um den
Datenfluss zwischen der Anwendung und dem Internet umzuleiten. Die
Netzwerk-Benutzerseiten, in diesem Fall JavaServer Pages, werden während des
Umwandlungsprozesses der Benutzerschnittstelle erzeugt. Datenobjekte,
in diesem Fall beispielsweise JavaBeans, werden jeder der JavaServer
Pages zugeordnet und enthalten Anwendungsdaten, die über die
JavaServer Pages im Web veröffentlicht
werden sollen.
-
Die
Flusssteuerung des Prozesses gemäß den Grundgedanken
der Erfindung geht wie folgt vonstatten: ein Benutzer auf einem
Client 300 startet die Legacy-Anwendung 122 vom
Netzwerk-Benutzeragenten 570,
vorzugsweise einem World-Wide-Web-Browser, indem er zunächst im
Schritt 612 eine Aufrufseite von der Servlet-Instanz 610 auf
einem Netzwerk-Server 200 anfordert. Im Schritt 614 füllt der
Client 300, bei dem es sich um einen anderen Rechner oder
eine Person handeln kann, eine Reihe von Eingabefeldern für den Namen
und die Parameter der Anwendung, die aufgerufen werden soll, aus und übergibt sie.
Nachdem die Servlet-Instanz 610 die XML- oder die HTTP-Anforderung für einen
Aufruf empfangen hat, erzeugt sie im Schritt 616 einen
Socket 626a und übergibt
ein sekundäres
Programmsegment (thread) 618 an den Rechner 100,
um den Anwendungsprozess zu starten, der die Legacy-Anwendung aufruft.
Der Socket 626a wartet dann auf eine Verbindung, wie im
Schritt 642a angegeben ist.
-
Das
sekundäre
Programmsegment 618 übergibt
die Anschlussnummer des Socket und Programminformationen an den
Anwendungsaufrufdienst 660, der ein Socket 626b erzeugt
und eine Verbindung zu dem Socket im Netzwerk-Serverprozess herstellt,
wie im Schritt 620 angegeben ist. Nachdem im Schritt 622 eine
Verbindung zwischen den beiden Sockets 626a und 626b hergestellt
worden ist, wartet der Socket 626b im Netzwerk-Serverprozess
auf Daten von dem Legacy-Programm. Der Anwendungsaufrufdienst 660 schreibt
den Deskriptor des anwendungsseitigen Socket 626b in eine
Umgebungsvariable, aktiviert die Umleitung der Daten über eine
Anwendungsprogrammierschnittstelle und ruft die Legacy-Anwendung 122 auf,
wie im Schritt 624 angegeben ist. Wenn die Legacy-Anwendung 122 einen
E/A-Befehl erreicht, werden, wie im Schritt 632 angegeben
ist, Ausgabedaten an die Anwendungs-Laufzeitkomponente 430 des
Betriebssystems des Rechners gesendet, die die Write_Data-Methode
aufruft, wie im Schritt 640a angegeben ist, um Daten an
den anwendungsseitigen Socket 626b umzuleiten. Die Daten
werden vom Socket 626a im Netzwerk-Serverprozess gelesen, wie im Schritt 642b angegeben
ist, und die Servlet-Instanz 610 erzeugt im Schritt 650 ein
Datenobjekt, um die Daten zu speichern. Im Schritt 652 ruft
die Servlet-Instanz 610 die Netzwerkseite auf, z. B. die
JavaServer Page, die zu diesem Ausgabedatensatz gehört. Die Netzwerkseite
wird mit Daten von dem Datenobjekt gefüllt, wie im Schritt 652 angegeben
ist, und dann dem Netzwerk-Benutzeragenten 570 beispielsweise
in Form einer HTTP-Antwort bereitgestellt, wie im Schritt 660 angegeben
ist.
-
Ein
nachfolgender Dialogverkehr zwischen der Client-Schnittstelle auf dem Netzwerk-Benutzeragenten 570 und
der Anwendung 122 läuft über die Socket-Verbindungen 626a und 626b.
Wenn der Client eine Seite übergibt,
stellt die Servlet-Instanz 610 auf
dem Netzwerk-Server Sitzungsdaten von einem zuvor gespeicherten
Sitzungsobjekt wieder her, das über
einen Verweis auf ein Socket oder ein Datenwarteschlangen-Objekt
oder ein Nachrichtenwarteschlangen-Objekt verfügt. Die Eingabedaten werden dann
an den Socket oder die Warteschlange 626a weitergeleitet,
wie im Schritt 642c angegeben ist, an den anderen Anwendungs-Socket
oder die Warteschlange 626b, an die E/A-Pufferspeicher,
sofern vorhanden, an die Anwendungs-Laufzeitkomponente 430 und
schließlich
an das Legacy-Programm 122, das auf eine Read_Data-Methode 640b gewartet
hat. Die Legacy-Anwendung 122 setzt dann ihre Ausführung in
ihrer nativen Umgebung auf dem Rechner 100 bis zum nächsten E/A-Austausch fort. Bei
Beendigung der Anwendung wird die Steuerung wieder dem Anwendungsaufrufdienst 660 übergeben,
der die Endpunkt-Verbindung schließt, wie im Schritt 620 angegeben
ist.
-
In 6 dient
ein Berichtprogramm-Generator (report program generator – RPG) als
Beispiel für eine
Legacy-Anwendung, obgleich es sich verstehen sollte, dass die Architektur
auch Legacy-Anwendungen unterstützen
könnte,
die in COBOL und in anderen Programmiersprachen geschrieben wurden.
Sockets werden als Datenübertragungsmechanismus zwischen
den verteilten Prozessen verwendet, aber jeder Kommunikationsendpunkt-Mechanismus, der dem
Server zur Verfügung
steht, wie zum Beispiel Datenwarteschlangen-Objekte für eine verbesserte Leistungsfähigkeit,
wenn sich der Server und die Legacy-Anwendung in demselben Rechner befinden, oder
die Nachrichten-Warteschlange
für eine
höhere Zuverlässigkeit
und Sicherheit, können
ebenfalls verwendet werden. Ein erstes Programm in dem vorab gestarteten
Job kann den Deskriptor des anwendungsseitigen Socket in eine Umgebungsvariable schreiben,
die Umleitung aktivieren und die Legacy-Anwendung aufrufen. Wenn
das Programm einen E/A-Befehl wie zum Beispiel einen Schreibbefehl,
gefolgt von einem Lesebefehl, EXFMT in RPG, erreicht, werden Ausgabedaten
an ein Datenverwaltungsprogramm geschickt, das eine Publish-to-Web-Laufzeitschnittstelle,
Write_Data, aufruft, um Daten an den Socket zu schreiben. Die Daten können auch
unter Verwendung der Publish-to-Web-Laufzeitschnittstelle Read_Data vom
Socket 626b gelesen werden.
-
Folglich
ermöglicht
die Erfindung dem Benutzer, komplette unternehmenskritische Legacy-Anwendungen
ins Internet zu stellen, um Technologien nach dem Stand der Technik
nutzen zu können,
ohne die Programme neu strukturieren oder Code-Änderungen
an den Programmen vornehmen zu müssen. Die
Legacy-Anwendung
wird überdies
ganz normal ausgeführt.
Die Daten der Legacy-Anwendung werden netzwerkübergreifend zu jedem Zweck
zur Verfügung
gestellt, da sie in Datenobjekten auf dem Netzwerk-Server gespeichert
werden. Überdies
ermöglicht
die Erfindung dem Benutzer, die Netzwerkseiten wie zum Beispiel
JavaServer Pages zu ändern
und Verknüpfungen
(Links) innerhalb des Netzwerk-Servers zu neuen webbasierten Anwendungen
zu erzeugen. Diese Möglichkeit
sieht einen Dialogverkehr zwischen Legacy-Anwendungen und anderen
netzwerkbasierten Anwendungen einschließlich des Zusammenführens von
Daten einer Legacy-Anwendung
mit Daten von anderen Netzwerkanwendungen auf dem Netzwerk-Server
vor. Rechner- und Client-Systeme, die einen Fernaufruf von Programmen
zulassen, können
die vorstehend beschriebene Architektur nutzen, um den Webserver und
die Legacy-Anwendungen auf getrennten Rechnersystemen auszuführen. Die
Erfindung erlaubt dem Benutzer überdies,
die JavaServer Pages entsprechend den Regeln und Richtlinien des
Unternehmens zur Präsentation
von Anwendungen individuell anzupassen. Die hier aufgezeigte Lösung gestattet ferner
die Umwandlung der E/A-Daten in andere Formate, die auch für andere
Anzeigearten als einen Browser geeignet sind. Eine leistungsfähige Anwendung
ist die Umwandlung der E/A-Daten und der Anzeigedatensätze in eine
herstellerkompatible XML-basierte Benutzerschnittstelle. Die XML-Benutzerschnittstelle
kann dann verschiedenen Arten von Benutzerschnittstellen-Darstellungseinheiten
zugeführt
werden. Diese Darstellungseinheiten (renderers) können auf
Java-Swing, auf Sprache, auf einem PDA usw. beruhen. Die Erfindung
eröffnet
folglich den Zugang zu vorhandenen Legacy-Anwendung von mehreren
Arten von zukünftigen
Einheiten.
-
Während vorstehend
verschiedene Ausführungsformen
der vorliegenden Erfindung beschrieben wurden, sollte es sich verstehen,
dass sie lediglich als Beispiel dienten und nicht als Einschränkung zu
verstehen sind und dass abweichende Gestaltungsformen möglich sind.
Der Umfang der vorliegenden Erfindung soll folglich nicht durch
irgendeine der vorstehend beschriebenen beispielhaften Ausführungsformen
eingeschränkt
werden, sondern sich nur nach den folgenden Ansprüchen und
ihren Entsprechungen bestimmen.