DE60132901T2 - Internetzugriff zu geerbten anwendungen - Google Patents

Internetzugriff zu geerbten anwendungen Download PDF

Info

Publication number
DE60132901T2
DE60132901T2 DE60132901T DE60132901T DE60132901T2 DE 60132901 T2 DE60132901 T2 DE 60132901T2 DE 60132901 T DE60132901 T DE 60132901T DE 60132901 T DE60132901 T DE 60132901T DE 60132901 T2 DE60132901 T2 DE 60132901T2
Authority
DE
Germany
Prior art keywords
network
application
data
computer
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60132901T
Other languages
English (en)
Other versions
DE60132901D1 (de
Inventor
Satish Markham GUNGABEESOON
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60132901D1 publication Critical patent/DE60132901D1/de
Application granted granted Critical
Publication of DE60132901T2 publication Critical patent/DE60132901T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Saccharide Compounds (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)

Description

  • 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.

Claims (11)

  1. Verfahren zum Ausführen einer Rechneranwendung (122), die auf einem Rechner installiert ist, wobei das Verfahren die folgenden Schritte umfasst: (a) Erzeugen einer Servlet-Instanz (610) in einem Server (200), der mit dem Rechner in einem ersten Netzwerk verbunden ist; und (b) Ausführen der Anwendung (122) auf dem Rechner, um Anwendungs-Ausgabedaten zu erzeugen; gekennzeichnet durch: (c) Abfangen und Umleiten (640a) der Anwendungs-Ausgabedaten an eine Netzwerk-Publizierungskomponente (550) auf dem Rechner; (d) Übertragen der Anwendungs-Ausgabedaten von der Netzwerk-Publizierungskomponente (550) an die Servlet-Instanz (610); und (e) Erzeugen von Datenobjekten (650) und Füllen der Datenobjekte mit den Anwendungs-Ausgabedaten im Server.
  2. Verfahren nach Anspruch 1, das des Weiteren die folgenden Schritte umfasst: (a) Anfordern der Anwendung (122) von einem Client, der über ein zweites Netzwerk mit einem Server verbunden ist; (b) Aktualisieren von mindestens einer Netzwerkseite mit den Anwendungs-Ausgabedaten; und (c) Übertragen der aktualisierten Netzwerkseiten an den Client.
  3. Verfahren nach Anspruch 2, das des Weiteren Folgendes umfasst: (a) Umwandeln von Anzeigedateien der Anwendung in Netzwerkseiten, die Anwendungs-Ausgabedaten anzeigen können.
  4. Verfahren nach Anspruch 2, wobei die Netzwerkseiten auf dem Server gespeichert werden.
  5. Verfahren nach einem der Ansprüche 1 bis 4, das des Weiteren Folgendes umfasst: (a) Erzeugen eines E/A-Pufferspeichers für die Anwendungs-Ausgabedaten in dem Rechner.
  6. Verfahren nach einem der Ansprüche 1 bis 5, das des Weiteren Folgendes umfasst: Erzeugen einer ersten Endpunkt-Verbindung zwischen der Servlet-Instanz und der Netzwerk-Publizierungskomponente; wobei die Endpunkt-Verbindung eines von Folgendem ist: ein Kommunikationsendpunkt; ein Datenwarteschlangenobjekt oder eine Nachrichten-Warteschlange.
  7. Programmprodukt zur Verwendung in einem Rechnernetzwerk, 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: (a) ein Anwendungsaufrufdienst, um eine Anwendung in ihrer nativen Umgebung auf dem Rechner eines Client zu starten und auszuführen; (b) eine Vielzahl von Netzwerk-Benutzerschnittstellenseiten, um die Eingabe-/Ausgabedaten der Anwendung auf dem Client anzuzeigen; gekennzeichnet durch: (c) einen Datenumleitungsdienst, um die Eingabe-/Ausgabedaten der Anwendung an Netzwerk-Benutzerschnittstellenseiten umzuleiten; (d) eine Vielzahl von Datenobjekten, die den Netzwerk-Benutzerschnittstellenseiten entsprechen, um die Eingabe-/Ausgabedaten der Anwendung zu empfangen; (e) eine Servlet-Instanz, um die Netzwerk-Benutzerschnittstellenseiten mit den Eingabe- /Ausgabedaten der Anwendung dynamisch zu aktualisieren; und (f) einen Netzwerk-Benutzeragenten, um die aktualisierten Netzwerk-Benutzerschnittstellenseiten auf dem Client anzuzeigen.
  8. Programmprodukt nach Anspruch 7, das des Weiteren einen Bildschirminhaltdefinitions-Umwandler umfasst, um die Eingabe-/Ausgabe-Bildschirminhaltdefinitionen der Anwendung in die Netzwerk-Benutzerschnittstellenseiten umzuwandeln.
  9. Rechnersystem zum Ausführen einer Anwendung, das Folgendes umfasst: (a) eine Zentraleinheit; (b) einen Hauptspeicher, der über einen Datenübertragungsbus mit der Zentraleinheit verbunden ist; (c) eine Datenspeichereinheit, die mit einer Datenspeicher-Schnittstelle verbunden ist, welche mit dem Datenübertragungsbus verbunden ist; (d) mindestens eine Eingabe-/Ausgabeeinheit, die mit dem Datenübertragungsbus und mit einer Netzwerkschnittstelle zu einem externen Rechnernetzwerk verbunden ist, (e) eine Anwendung, die im Hauptspeicher gespeichert ist und auf der Zentraleinheit ausgeführt werden kann; (f) eine Netzwerk-Publizierungskomponente; gekennzeichnet durch: (g) einen Datenumleitungsdienst, um die Ausgabedaten der Anwendung an die Netzwerk-Publizierungskomponente umzuleiten; und (h) einen E/A-Pufferspeicher, um die umgeleiteten Ausgabedaten zu speichern.
  10. Rechnerserver, um auf eine Anwendung zuzugreifen, die auf einem Rechner gespeichert ist und darauf ausgeführt wird, wobei der Rechnerserver Folgendes umfasst: (a) eine Zentraleinheit; (b) eine Netzwerkschnittstelle, um zu mindestens einem Client eine Verbindung über ein Netzwerk herzustellen; (c) 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; (d) eine Server-Endpunktverbindung, um Eingabe-/Ausgabedaten an den Rechner, auf dem die Anwendung ausgeführt wird, zu übertragen und von ihm zu empfangen; und (e) eine Vielzahl von Datenobjekten, die mit den Eingabe-/Ausgabedaten gefüllt werden sollen; wobei die Servlet-Instanz die Eingabe-/Ausgabedaten von der Anwendung empfängt und die Datenobjekte mit den Eingabe-/Ausgabedaten füllt.
  11. Rechnerserver nach Anspruch 10, der des Weiteren Folgendes umfasst: (a) eine Vielzahl von Netzwerk-Anzeigeseiten, wobei es jede der Netzwerk-Anzeigeseiten für jede Eingabe-/Ausgabe-Bildschirminhaltdefiniton der Anwendung nur einmal gibt; wobei die Servlet-Instanz die Netzwerk-Anzeigeseiten zur Übertragung an den Client über das Netzwerk aktualisiert.
DE60132901T 2000-08-14 2001-07-23 Internetzugriff zu geerbten anwendungen Expired - Lifetime DE60132901T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA002316003A CA2316003C (en) 2000-08-14 2000-08-14 Accessing legacy applications from the internet
CA2316003 2000-08-14
PCT/GB2001/003315 WO2002015006A1 (en) 2000-08-14 2001-07-23 Accessing legacy applications from the internet

Publications (2)

Publication Number Publication Date
DE60132901D1 DE60132901D1 (de) 2008-04-03
DE60132901T2 true DE60132901T2 (de) 2008-07-03

Family

ID=4166896

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60132901T Expired - Lifetime DE60132901T2 (de) 2000-08-14 2001-07-23 Internetzugriff zu geerbten anwendungen

Country Status (9)

Country Link
US (1) US7007278B2 (de)
EP (1) EP1309914B1 (de)
KR (1) KR100574156B1 (de)
CN (1) CN1189817C (de)
AT (1) ATE386975T1 (de)
AU (1) AU2001272662A1 (de)
CA (1) CA2316003C (de)
DE (1) DE60132901T2 (de)
WO (1) WO2002015006A1 (de)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7950999B2 (en) * 2004-09-16 2011-05-31 Bally Gaming, Inc. User interface system and method for a gaming machine
US9235955B2 (en) * 2000-12-22 2016-01-12 Bally Gaming, Inc. Universal game monitoring unit and system
US8678902B2 (en) 2005-09-07 2014-03-25 Bally Gaming, Inc. System gaming
US8516054B2 (en) * 2000-12-20 2013-08-20 Aurea Software, Inc. Message handling
US7240101B2 (en) * 2001-04-02 2007-07-03 International Business Machines Corporation Method and apparatus for efficiently reflecting complex systems of objects in XML documents
US20020174347A1 (en) 2001-05-18 2002-11-21 Imprivata, Inc. Authentication with variable biometric templates
US7043481B2 (en) * 2001-06-01 2006-05-09 Thought, Inc. System, method and software for creating, maintaining, navigating or manipulating complex data objects and their data relationships
US7406693B1 (en) * 2001-09-10 2008-07-29 Ncr Corporation Method of controlling applications
CA2363515A1 (en) * 2001-11-21 2003-05-21 Ibm Canada Limited-Ibm Canada Limitee Enhancing resource adapters
US7099877B1 (en) * 2001-12-21 2006-08-29 Unisys Corporation Step to define inputs for a service
KR100429558B1 (ko) * 2002-03-04 2004-04-29 쉬프트정보통신 주식회사 웹 서버간의 데이터를 송/수신하기 위한클라이언트컴퓨터의 에이드 데이터셋 컴포넌트
US20030187849A1 (en) * 2002-03-19 2003-10-02 Ocwen Technology Xchange, Inc. Management and reporting system and process for use with multiple disparate data bases
US7149730B2 (en) * 2002-05-03 2006-12-12 Ward Mullins Dynamic class inheritance and distributed caching with object relational mapping and cartesian model support in a database manipulation and mapping system
AU2003239385A1 (en) * 2002-05-10 2003-11-11 Richard R. Reisman Method and apparatus for browsing using multiple coordinated device
US20030217191A1 (en) * 2002-05-20 2003-11-20 Yang Gao System and method for converting the UI logic of a windows software application to run within a web browser
US8301800B1 (en) * 2002-07-02 2012-10-30 Actional Corporation Message processing for distributed computing environments
US8986121B2 (en) * 2002-09-13 2015-03-24 Bally Gaming, Inc. Networked gaming system communication protocols and methods
US9117342B2 (en) 2004-09-16 2015-08-25 Bally Gaming, Inc. Networked gaming system communication protocols and methods
US8568237B2 (en) 2004-09-16 2013-10-29 Bally Gaming, Inc. Networked gaming system communication protocols and methods
US9082260B2 (en) 2004-09-16 2015-07-14 Bally Gaming, Inc. Networked gaming system communication protocols and methods
US8529349B2 (en) * 2004-09-16 2013-09-10 Bally Gaming, Inc. Networked gaming system communication protocols and methods
US8535158B2 (en) * 2004-09-16 2013-09-17 Bally Gaming, Inc. Networked gaming system communication protocols and methods
US8992326B2 (en) 2006-09-06 2015-03-31 Bally Gaming, Inc. Networked gaming system communication protocols and methods
US20040061717A1 (en) * 2002-09-30 2004-04-01 Menon Rama R. Mechanism for voice-enabling legacy internet content for use with multi-modal browsers
CA2406089A1 (en) * 2002-09-30 2004-03-30 Ibm Canada Limited-Ibm Canada Limitee A common scheduler web service for distributed network environments
US7353507B2 (en) * 2002-10-30 2008-04-01 Hewlett-Packard Development, L.P. Intercepting function cells
US7139559B2 (en) * 2002-12-09 2006-11-21 Qualcomm Inc. System and method for handshaking between wireless devices and servers
US20040249849A1 (en) * 2003-06-05 2004-12-09 Michael Mordkovich Conversion system
US8204849B2 (en) * 2003-07-10 2012-06-19 Ca, Inc. Web product interface system and method
US7543280B2 (en) * 2003-09-08 2009-06-02 Sap Ag Converting and executing applications
US7421705B2 (en) * 2003-10-30 2008-09-02 Sprint Communications Company L.P. System and method for asynchronous processing in COBOL
CN100371888C (zh) * 2004-07-08 2008-02-27 腾讯科技(深圳)有限公司 一种将网页图片直接应用到即时通信工具中的方法
US9022866B2 (en) * 2004-09-16 2015-05-05 Bally Gaming, Inc. User interface system and system-controlled bonus system
US10803694B2 (en) 2004-09-16 2020-10-13 Sg Gaming, Inc. Player gaming console, gaming machine, networked gaming system
US7594225B2 (en) * 2004-12-20 2009-09-22 Microsoft Corporation Integrated setup for generating customization XML
US7685591B2 (en) 2004-12-20 2010-03-23 Microsoft Corporation Customizing a software application through a patch file
US8438537B2 (en) * 2005-03-07 2013-05-07 Siemens Aktiengesellschaft System arrangement and method for automated application development with user guidance
US20060198208A1 (en) * 2005-03-07 2006-09-07 Lantronix, Inc. Publicasting systems and methods
CN101176079B (zh) * 2005-03-16 2011-12-07 航空照片技术有限公司 在服务器和客户机之间分配计算的方法以及分布式计算机系统
US8191078B1 (en) 2005-03-22 2012-05-29 Progress Software Corporation Fault-tolerant messaging system and methods
US8301720B1 (en) 2005-07-18 2012-10-30 Progress Software Corporation Method and system to collect and communicate problem context in XML-based distributed applications
US8840462B2 (en) * 2005-09-07 2014-09-23 Bally Gaming, Inc. Tournament bonus awards and related methods
US20080254883A1 (en) * 2005-09-07 2008-10-16 Bally Gaming, Inc. Tournament bonus awards
US8678901B1 (en) 2005-09-07 2014-03-25 Bally Gaming System gaming
US7765254B2 (en) * 2005-10-26 2010-07-27 International Business Machines Corporation Integration of legacy applications
EP2009586A3 (de) * 2005-11-03 2011-02-02 KTFreetel Co., Ltd. Vorrichtung mit offener Schnittstelle und Verfahren
US20070106804A1 (en) * 2005-11-10 2007-05-10 Iona Technologies Inc. Method and system for using message stamps for efficient data exchange
EP1955221A4 (de) 2005-12-01 2009-03-11 Firestar Software Inc System und verfahren zum austausch von informationen zwischen austauschanwendungen
US7710958B2 (en) 2006-01-20 2010-05-04 Iona Technologies Limited Method for recoverable message exchange independent of network protocols
US20070174420A1 (en) * 2006-01-24 2007-07-26 International Business Machines Corporation Caching of web service requests
US20070240103A1 (en) * 2006-03-29 2007-10-11 Beaton Murray J Use of UML state machines to model portal applications
US7950021B2 (en) 2006-03-29 2011-05-24 Imprivata, Inc. Methods and systems for providing responses to software commands
JP2007287025A (ja) 2006-04-19 2007-11-01 Nec Corp 画面遷移プログラム生成方法及び装置
US20070288535A1 (en) * 2006-06-13 2007-12-13 Hitachi, Ltd. Long-term data archiving system and method
US7661113B2 (en) * 2006-09-28 2010-02-09 Sap Ag Method and system for data preparation and communication between software applications
US8099710B2 (en) 2006-12-14 2012-01-17 Microsoft Corporation UI behaviors
US8656350B2 (en) * 2007-02-06 2014-02-18 Software Ag Event-based process configuration
US8276115B2 (en) * 2007-02-06 2012-09-25 Progress Software Corporation Automated construction and deployment of complex event processing applications and business activity monitoring dashboards
US9009234B2 (en) 2007-02-06 2015-04-14 Software Ag Complex event processing system having multiple redundant event processing engines
AR065274A1 (es) * 2007-02-08 2009-05-27 Aspenbio Pharma Inc Expresion y bioactividad de la hormona bovina estimuladora de foliculo
US8091094B2 (en) * 2007-10-10 2012-01-03 Sap Ag Methods and systems for ambistateful backend control
US7882399B2 (en) * 2007-12-13 2011-02-01 International Business Machines Corporation Intelligent job functionality
US9779176B2 (en) * 2008-04-02 2017-10-03 International Business Machines Corporation Accessing external functionality within a component-based web application
US20090282396A1 (en) * 2008-05-07 2009-11-12 Boyer John M Preserving a state of an application during update
WO2010054062A2 (en) 2008-11-05 2010-05-14 Savvion Inc. Software with improved view of a business process
US20100146417A1 (en) * 2008-12-10 2010-06-10 Microsoft Corporation Adapter for Bridging Different User Interface Command Systems
US9055002B2 (en) * 2009-10-28 2015-06-09 Advanced Businesslink Corporation Modernization of legacy application by reorganization of executable legacy tasks by role
US8190736B2 (en) 2009-12-16 2012-05-29 Quantum Corporation Reducing messaging in a client-server system
US8914544B2 (en) 2010-06-23 2014-12-16 Smartek21, Llc Computer-implemented system and method for transparently interfacing with legacy line of business applications
US9674294B1 (en) * 2010-09-01 2017-06-06 The Mathworks, Inc. Integrated collaboration environment
US8931037B2 (en) * 2010-12-27 2015-01-06 Microsoft Corporation Policy-based access to virtualized applications
US9176742B2 (en) 2010-12-27 2015-11-03 Microsoft Technology Licensing, Llc Converting desktop applications to web applications
CN102436509B (zh) * 2011-12-29 2014-07-02 奇智软件(北京)有限公司 在移动终端进行网页浏览的方法及系统
US9471405B1 (en) * 2014-01-13 2016-10-18 OpenLegacy Technologies LTD Methods and systems for access to legacy programs using non-legacy interfaces
US9836332B2 (en) * 2014-07-31 2017-12-05 Corent Technology, Inc. Software defined SaaS platform
US10042622B2 (en) * 2016-02-19 2018-08-07 International Business Machines Corporation Methods and systems of generating ease of use interfaces for legacy system management facilities
US10798111B2 (en) * 2016-09-14 2020-10-06 International Business Machines Corporation Detecting intrusion attempts in data transmission sessions
KR20180074151A (ko) * 2016-12-23 2018-07-03 에이치피프린팅코리아 주식회사 화상 형성 장치 및 화상 형성 장치에서 네트워크를 설정하는 방법
US11610052B2 (en) * 2018-08-16 2023-03-21 Soroco Private Limited Techniques for automated control of computer programs through text-based user interfaces
US10917320B2 (en) * 2018-09-10 2021-02-09 Aveva Software, Llc Edge HMI module server system and method
JP2021158561A (ja) * 2020-03-27 2021-10-07 キヤノン株式会社 通信装置、その制御方法、プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754830A (en) * 1996-04-01 1998-05-19 Openconnect Systems, Incorporated Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation
US5897622A (en) * 1996-10-16 1999-04-27 Microsoft Corporation Electronic shopping and merchandising system
US6621505B1 (en) * 1997-09-30 2003-09-16 Journee Software Corp. Dynamic process-based enterprise computing system and method
US6173248B1 (en) * 1998-02-09 2001-01-09 Hewlett-Packard Company Method and apparatus for handling masked exceptions in an instruction interpreter
US6728769B1 (en) * 2000-05-04 2004-04-27 Sun Microsystems, Inc. Method and apparatus for providing a highly interactive transaction environment in a distributed network

Also Published As

Publication number Publication date
CA2316003C (en) 2009-02-03
KR100574156B1 (ko) 2006-04-25
US7007278B2 (en) 2006-02-28
DE60132901D1 (de) 2008-04-03
KR20030045027A (ko) 2003-06-09
CN1447937A (zh) 2003-10-08
ATE386975T1 (de) 2008-03-15
AU2001272662A1 (en) 2002-02-25
US20020019884A1 (en) 2002-02-14
WO2002015006A1 (en) 2002-02-21
CA2316003A1 (en) 2002-02-14
CN1189817C (zh) 2005-02-16
EP1309914A1 (de) 2003-05-14
EP1309914B1 (de) 2008-02-20

Similar Documents

Publication Publication Date Title
DE60132901T2 (de) Internetzugriff zu geerbten anwendungen
DE60108158T2 (de) Onlineentwicklung von applikationen
DE60121987T2 (de) Zugreifen auf Daten, die bei einer Zwischenstation gespeichert sind, von einem Dienst aus
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
US5894554A (en) System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests
DE69637436T2 (de) Objektorientiertes Kommunikationssystem mit Unterstützung für mehrere entfernte Maschinentypen
US6941560B1 (en) XML-based integrated services event system
DE60008555T2 (de) Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache
US6473748B1 (en) System for implementing rules
US7565443B2 (en) Common persistence layer
DE60211254T2 (de) Fernereignis Behandlung in ein Paketnetzwerk
US8423527B2 (en) Enabling interactive integration of network-accessible applications in a content aggregation framework
DE10051024B4 (de) Verfahren zum intermediären Cachen in einem Client-Server-Softwaresystem, Computerprogrammprodukte und Computersystem zur Durchführung eines solchen Verfahrens
DE69635337T2 (de) Erweiterbares und austauschbares system von netzwerkkomponenten
US20020016814A1 (en) Method, system, and program for invoking stored procedures and accessing stored procedure data
DE102004010180A1 (de) Verfahren und Vorrichtungen zum Zugriff auf verteilte Daten für Prozesssteuersysteme
DE10052313A1 (de) Verfahren und Vorrichtung zur Beschränkung des freien Verweisens (Hyperlinking) auf Webseiten der ursprünglichen Inhaltserzeuger (Content producers) durch Internet-Inhaltsverteiler (Content distributors)
DE10054001A1 (de) Automatisierte Schnittstellengenerierung für Computerprogramme in unterschiedlichen Umgebungen
US8204920B2 (en) Method and system for accessing software-based systems
EP1437655A2 (de) Rechner- und/oder Software-Architektur unter Verwendung von Micro-Kernel- und Multi-Tier-Konzept mit Komponententechnik
Jankowska et al. Service-oriented architecture supporting mobile access to an ERP system
DE60108176T2 (de) Verfahren und system zum abliefern von informationen in einem telekommunikationsnetz
DE69633430T2 (de) Netzwerkkomponentensystem
EP0828368B1 (de) Verfahren und System für einen Zugang zu multimedialen Dokumenten
DE10296829T5 (de) Systen und Verfahren zum Schreiben einer Hypermediendatei an eine Multimedienspeichervorrichtung

Legal Events

Date Code Title Description
8320 Willingness to grant licences declared (paragraph 23)
8364 No opposition during term of opposition