DE69732968T2 - System, verfahren und hergestellter gegenstand zur wartung von server-anwendungssoftware der netzwerk-kundenendgeräte und nicht-netzwerk-kundenengeräte - Google Patents

System, verfahren und hergestellter gegenstand zur wartung von server-anwendungssoftware der netzwerk-kundenendgeräte und nicht-netzwerk-kundenengeräte Download PDF

Info

Publication number
DE69732968T2
DE69732968T2 DE69732968T DE69732968T DE69732968T2 DE 69732968 T2 DE69732968 T2 DE 69732968T2 DE 69732968 T DE69732968 T DE 69732968T DE 69732968 T DE69732968 T DE 69732968T DE 69732968 T2 DE69732968 T2 DE 69732968T2
Authority
DE
Germany
Prior art keywords
server
client
terminal
network
application
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
DE69732968T
Other languages
English (en)
Other versions
DE69732968D1 (de
Inventor
Richard Cowan
P. Gordon ECKLEY
V. Prasad PANCHANGAM
C. Winston LEONG
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.)
Verifone Inc
Original Assignee
Verifone Inc
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 Verifone Inc filed Critical Verifone Inc
Publication of DE69732968D1 publication Critical patent/DE69732968D1/de
Application granted granted Critical
Publication of DE69732968T2 publication Critical patent/DE69732968T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems

Description

  • Urheberrecht-Notifikation
  • Teile dieser Patentanmeldung umfassen Inhalte, die Gegenstand des Urheberrechtsschutz sind. Der Inhaber des Urheberrechts hat keine Einwände gegen die Vervielfältigung des Patentdokuments oder der Patentbeschreibung durch Dritte, wie sie in dem Patent- und Markenamt erscheint.
  • Gebiet der Erfindung
  • Diese Erfindung betrifft allgemein Verbesserungen in Computersystemen und insbesondere Computersystem-Programme zum Verwalten eines Netzwerks aus heterogenen Client-Terminals, die mit einem Server in konsistenter Weise kommunizieren.
  • Hintergrund der Erfindung
  • Es ist kürzlich zunehmend üblich geworden, von "intelligenten", "smarten" oder "programmierbaren" Terminals und Systemen zu sprechen. Nur sehr wenige Hersteller von Großrechnern oder Peripheriegeräten haben keine solche Vorrichtungen in ihrem Standard-Produktangebot. Auch wenn "Intelligenz" ähnlich wie Schönheit oder Kunst der Einschätzung des Betrachters unterliegt, bedeutet das Adjektiv allgemein, dass die Vorrichtung ein Maß von Autonomie oder Bearbeitungsfähigkeit aufweist, die es ihm ermöglicht, bestimmte Aufgaben ohne die Unterstützung des Großrechners durchzuführen, mit dem es verbunden ist. Viele solcher Vorrichtungen sind programmierbar, indem sie einen Mikroprozessor beinhalten.
  • Während operative Vorrichtungen etwas außergewöhnlich und nicht standardgemäß sind, wird eine Vorrichtung als Terminal bezeichnet, wenn ein Benutzer über die Vorrichtung mit einem Host-Prozessor kommunizieren kann, der in einer Netzwerk-Computer-Umgebung als Server bezeichnet wird. Beispiele von Terminals umfassen Tastatur/Drucker-Terminals, Katodenstrahl-Röhren (CRT)-Terminals, StapelFernverarbeitungs-Terminals, Echtzeit-Daten-Empfangs- und Steuer-Terminals, Transaktions- und Verkaufsort-Terminals sowie "smarte" Terminals.
  • Ein Terminal wird als intelligent bezeichnet, wenn es Hardware, Firmware und/oder Software enthält, die es ermöglicht, alphanumerische oder graphische Mitteilungs-Eingaben, Anzeigepuffer, Verifizieren, Editieren und Blockübermittlungen entweder aufgrund eines Host- oder eines Benutzer-Befehls durchzuführen. Wenn das Terminal einen Mikroprozessor enthält, auf dem ein Standard-Programm abläuft, um dem Terminal nicht beliebige, vom Benutzer geladene Programme zu liefern, hat das Terminal eine festgelegte Funktion und ist immer noch ein intelligentes Terminal. Nur wenn die Vorrichtung einen Allzweck-Computer enthält, der für normale Benutzer leicht zugänglich ist zum Anbieten eines weiten Bereichs von Programmen, die durch einen User oder durch an die Vorrichtung angebundene Vorrichtungen auswählbar sind, wird das Terminal zu einem Netzwerk-Terminal gemäß einer bevorzugten Ausführungsform.
  • Die Firma Sun hat kürzlich eine neue Sprache namens Java eingeführt, die so ausgestaltet ist, um Konsistenz für Netzwerk-Applikationen zu gewährleisten. Java ist eine klassenbasierte, objektorientierte Allzweck-, Parallel-Programmiersprache und unterstützt Strukturen, die insbesondere so ausgebildet sind, dass sie so wenig Abhängigkeiten von Implementierungen haben wie möglich. Java erlaubt Applikations-Entwicklern, einmal ein Programm zu schreiben und dann in der Lage zu sein, das Programm irgendwo auf dem Computer-Netzwerk ablaufen zu lassen.
  • Die Java-Sprache löst viele der Client-seitigen Probleme durch:
    • • Ermöglichen dynamischer Klassen-Bindungen;
    • • Bereitstellen verbesserter Übertragbarkeit von Applikationen;
    • • Bereitstellen einer sicheren Umgebung, in der Applikationen ausgeführt werden.
  • Java wird in Byte-Codes in einer Übergangs-Form übersetzt, anstelle von einem Maschinen-Code (wie C, C++, Fortran etc.). Die Byte-Codes können auf jeder Maschine mit einem Byte-Code-Interpreter ausgeführt werden. Dadurch können Java-Applikationen auf einer Vielzahl von Client-Maschinen ablaufen, wobei die Byte-Codes kompakt und derart gestaltet sind, dass sie effizient über ein Netzwerk übertragen werden, was eine bevorzugte Ausführungsform mit universellen Clients und einer Server-zentrierten Struktur verbessert.
  • Mittels Java können Entwickler robuste Benutzer-Schnittstellen (UI)-Komponenten erzeugen. Kundenspezifische "Geräte" (wie z.B. Echtzeit-Aktienmarkt-Anzeigen, animierte Piktogramme etc.) können erzeugt und die Client-seitige Leistungscharakteristik verbessert werden. Anders als bei HTML unterstützt Java das Prinzip der Client-seitigen Validierung, indem es die entsprechende Bearbeitung für eine verbesserte Leistungscharakteristik auf den Client überträgt. Dynamische Echtzeit-Applikationen können unter Verwendung der oben genannten Komponenten erzeugt werden.
  • Die Java-Sprache der Fa. Sun hat sich zu einer in der Industrie verwendeten Sprache zum "Programmieren des Internets" entwickelt. Die Fa. Sun definiert Java als: "eine einfache, objektorientierte, dezentrale, interpretierte, robuste, sichere, Architekturneutrale, übertragbare, hoch leistungsfähige, Mehrfach-Strang (multi-thread), dynamische, Schlagwort-verträgliche, Allzweck-Programmiersprache. Java unterstützt das Programmieren für das Internet in der Form von Plattformunabhängigem kleinen Java-Anwendungen (Java-Applets). „Java-Applets" sind kleine spezialisierte Anwendungen, die mit der Java-Anwendungen-Programmier-Schnittstelle (API) kompatibel sind und es dem Entwickler erlauben, in Internet-Dokumenten "interaktive Inhalte" (wie z.B. einfache Animationen, Schmuckwerk, einfache Spiele etc.) einzufügen. Kleine Anwendungen (Applets) laufen innerhalb eines Java-kompatiblen Browsers (z.B. Netscape Navigator) unter Kopieren eines Codes vom Server an den Client. Hinsichtlich der Programmiersprache basiert der Hauptmerkmals-Satz von Java auf C++. In der Literatur zu Java von der Fa. Sun wird festgestellt, dass Java im wesentlichen "C++ mit Erweiterungen aus Objekt C zur Lösungen von mehreren dynamischen Verfahren" ist.
  • Die Druckschrift EP 0666681 offenbart einen Telefon-Computer, der wie ein programmierbarer Mikrocomputer und ein konventionelles Telefon arbeitet. Der Telefon-Computer wird typischerweise durch den Benutzer über eine Standard-Telefontastatur mit einer 12-Tasten-Eingabe gesteuert. Der Telefon-Computer liefert Fähigkeiten und Dienste zum Verarbeiten von Daten über herkömmliche Telefonleitungen mit einem Netzwerk-Host-Computer, der mit den Service-Anbietern kommuniziert. Eine operative Software wird auf den Telefon-Computer durch den Netzwerk-Host-Computer geladen, um einen programmierbaren Gate-Array-Chip in dem Telefon-Computer zu rekonfigurieren, einen Mikroprozessor (in dem Telefon-Computer) zu formatieren und auf ein Software-Format festzulegen, das von dem Service-Anbieter verwendet wird.
  • Ein Netzwerk-Terminal gemäß einer bevorzugten Ausführungsform würde Java-Anwendungen in einem alleinstehenden Modus (stand-alone mode) ausführen, hat jedoch die Fähigkeit, mit einem Server für solche Funktionen, wie z.B. das Abfragen von Informationen, Datenbank-Bearbeitung, aufwendige Berechnungen und den Zugriff auf geteilte Vorrichtungen, wie z.B. Hochgeschwindigkeits-Drucker, Plotter und Magnetbänder, zu interagieren.
  • Der Begriff "dezentrales Computer-System" bezieht sich sowohl auf die Vorrichtungen an entfernten Orten als auch auf die Logik, die verwendet wurde, um die Intelligenz der Vorrichtungen zu verbessern. Solche dezentrale oder verteilte Computer-Systeme mit intelligenten ferngelegenen Terminals bzw. Fern-Terminals und Netzwerk-Terminals sind tatsächlich in der heutigen Computer-Fachwelt vorhanden.
  • Es gibt eine Anzahl von Nachteilen bei dezentralen Computer-Umgebungen, die bei einer zentralen Computer-Umgebung nicht vorhanden sind. Erstens, Hardware-Probleme:
    Wenn ein Benutzer eine Software-Lösung lokalisiert, die für die Terminal-Umgebung des Benutzers optimal ist, wird die Software häufig nicht auf dem Host-Prozessor ausgeführt, der generell für Dritte in einem Unternehmen zugänglich ist. Insbesondere ist die Software häufig nicht kompatibel mit den Terminals anderer Benutzer.
  • Zweitens, Schnittstellen-Probleme: Ein nicht standardgemäßes Terminal kann eine spezielle Schnittstelle erfordern und von dem Host nicht erkannt werden. Sogar Standard-Schnittstellen sind bekannt dafür, dass sie das Betriebssystem zum Absturz bringen können. In jedem Fall sind "gemischte Systeme" mit Hardware unterschiedlicher Anbieter im Begriff, die Norm zu werden, erzeugen jedoch System-Probleme auf anderen Systemen und führen zu einer schwierigen Beseitigung von Fehlern und Lösung der System-Probleme.
  • Drittens, die Unterstützung von operativen Host-Systemen für eine heterogene Terminal-Umgebung kann äußerst nachteilig sein. Um eine Unterstützung für alle unterschiedlichen Protokolle, Kommunikationsraten und Bearbeitungserfordernisse mit den spezifischen Besonderheiten einer bunt zusammengestellten Gruppe von nachgeschalteten Terminals bereiten einem System-Administrator große Probleme.
  • Viertens, lokale Software-Unterstützung: Diese Art von Unterstützung geht über den Bereich von minimal (bspw. ein Compiler für ein bestimmtes Terminal) bis zu einem Nachrichtenübermittlungs-Programm, das mit jedem unterschiedlichem, an den Host-Server angebundenem Terminal kompatibel ist. Einige Anwendungen können für ein bestimmtes Terminal wieder hergestellt werden durch einfaches Rekompilieren der Anwendung, dagegen sind viele nur als Laufzeit-Module verbreitet, ohne dass für einige Terminals eine Unterstützung vorhanden ist.
  • Zusammenfassung der Erfindung
  • Die zuvor erwähnten Probleme werden überwunden durch ein System gemäß Anspruch 1, ein Verfahren gemäß Anspruch 9 und ein Computerprogramm gemäß Anspruch 17. Bei einer illustrativen Ausführungsform der Erfindung in einer Netzwerk-Computer-Umgebung wird eine Anzahl von Clients mit einem oder mehreren Servern verbunden. Wenn ein Client eine Verbindung mit einem Server initiiert, antwortet der Server auf die Anfrage zur Verbindung durch Übermitteln einer Mitteilung zurück an den Client, um festzustellen, ob der Client ein Netzwerk-Terminal ist oder nicht. Der Client antwortet mit einer Mitteilung, die von einem Anwendungs-Abfertiger auf dem Server empfangen wird, der eine oder ein Paar von Aktionen in Abhängigkeit davon unternimmt, ob der Client ein Netzwerk-Terminal ist. Wenn das Client-Terminal ein Netzwerk-Terminal ist, erzeugt der Anwendungs- Abfertiger eine Server-Anwendung in dem Server, die auf die Client-Anwendung in dem Client antwortet. Daraufhin antwortet die Server-Anwendung auf alle zukünftigen Anfragen der Client-Anwendung. Wenn der Client kein Netzwerk-Terminal ist, initiiert der Anwendungs-Abfertiger eine Client-Anwendung in dem Server, um die Anforderungen der Client-Terminal-Anwendung zu bedienen. Anschließend werden Anfragen von der Client-Anwendung im Auftrag des Client-Terminals durch eine Server-Anwendung auf dem Server bedient, die mit dem Client-Terminal über die Client-Anwendung auf dem Server kommuniziert.
  • Kurze Beschreibung der Zeichnungen
  • Die oben genannten und weitere Vorteile der Erfindung werden besser verständlich unter Bezugnahme auf die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen:
  • 1 ist ein schematisches Blockdiagramm eines Computer-Systems, z.B. eines Personal-Computer-Systems, auf dem der erfindungsgemäße objektorientierte Informations-Manager operiert;
  • 2 zeigt ein Client-Server-Netzwerk gemäß einer bevorzugten Ausführungsform;
  • 3 zeigt eine Server-Architektur gemäß einer bevorzugten Ausführungsform;
  • 4 zeigt eine Client-Server-Architektur gemäß einer bevorzugten Ausführungsform;
  • 5 zeigt eine erste Client-Anfrage an einen Server gemäß einer bevorzugten Ausführungsform;
  • 6 zeigt eine Client-Server-Umgebung, die auf Unterstützungs-Dienste gemäß einer bevorzugten Ausführungsform zugreift;
  • 7 ist ein Diagramm von der Architektur eines Client-Server-Systems gemäß einer bevorzugten Ausführungsform;
  • 8 ist ein Diagramm von der Architektur eines Client-Server-Systems gemäß einer bevorzugten Ausführungsform;
  • 9 ist ein Diagramm von der Architektur eines Client-Server-Systems gemäß einer bevorzugten Ausführungsform;
  • 10 zeigt das verwendete Mitteilungs-Format gemäß einer bevorzugten Ausführungsform;
  • 11 ist eine Tabelle, die zusätzliche, mit den Vorrichtungs-Typen assoziierte Details, Befehle und Datenblöcke gemäß einer bevorzugten Ausführungsform zeigt;
  • 12 zeigt ein zusätzliches Detail in dem Mitteilungs-Format gemäß einer bevorzugten Ausführungsform;
  • 13 zeigt die Anzeige-Befehle und Antworten gemäß einer bevorzugten Ausführungsform;
  • 14 zeigt die Status-Werte, die mit unterschiedlichen Operationen gemäß einer bevorzugten Ausführungsform assoziiert sind; und
  • 15 ist ein Kommunikations-Flussdiagramm gemäß einer bevorzugten Ausführungsform.
  • Detaillierte Beschreibung
  • Die Erfindung findet vorzugsweise Anwendung in Verbindung mit einem Betriebssystem, das auf einem Computer bspw. von den Herstellern Sun, IBM, HP oder Windows NT-Computer vorhanden ist. Eine repräsentative Hardware-Umgebung ist in 1 dargestellt, die eine typische Hardware-Konfiguration auf einem Computer 100 gemäß der vorliegenden Erfindung zeigt. Der Computer 100 wird von einer zentralen Verarbeitungseinheit 102 (die ein herkömmlicher Mikroprozessor sein kann) und einer Anzahl von anderen Einheiten gesteuert, die alle über einen System-Bus 108 verbunden und so ausgebildet sind, um bestimmte Aufgaben zu erfüllen. Auch wenn ein bestimmter Computer nur einige der in 1 gezeigten Einheiten oder zusätzliche, nicht gezeigte Komponenten aufweisen kann, umfassen die meisten Server-Computer zumindest die gezeigten Einheiten.
  • Insbesondere umfasst der in 1 gezeigte Computer 100 einen Speicher mit Zufallszugriff (random access memory (RAM)) 106 zum zeitweisen Speichern von Informationen, einen Nur-Lese-Speicher (read only memory (ROM)) 104 zum dauerhaften Speichern der Konfiguration des Computers und grundlegender Betriebs-Befehle sowie ein Eingangs-Ausgangs-I/O-Adapter 110, um periphere oder Netzwerk-Geräte, wie z.B. ein Laufwerk 113 und einen Printer 114, mit dem Bus 108 über Leitungen 115 oder einen peripheren Bus 112 jeweils zu verbinden. Ein Benutzer-Schnittstellen-Adapter 116 ist ebenso vorgesehen zum Verbinden der Eingabe-Geräte mit dem Bus 108, wie z.B. einer Tastatur 120, sowie anderer bekannte Schnittstellen-Geräte einschließlich einer Maus, Lautsprecher und Mikrofone. Die optische Ausgabe wird durch einen Anzeige-Adapter 118 gewährleistet, der den Bus 108 mit einem Anzeige-Gerät 122, wie z.B. einem Monitor, verbindet. Auf dem Computer ist eine Betriebssystem-Software vorhanden, wie z.B. das SUN-Solaris, Windows NT oder das Java OS-Betriebssystem, das den Computer steuert und koordiniert.
  • 2 zeigt ein Client-Server-Netzwerk gemäß einer bevorzugten Ausführungsform. Mit einem Server 210 ist ein Satz von Benutzer-Geräten (Client-Terminals 200) verbunden, und der Server ist mit einem Legat-Host 220 verbunden, um Anwendungen zu bearbeiten, die Informationen von dem Host 220 benötigen. Die Verbindung kann erzeugt werden mittels Internet, einer Einwahl-Verbindung (dial-up-link), einem token ring, einem Mobiltelefon, per Satellit, einer T1- oder X.25 Telco-Verbindung oder durch andere Kommunikationsmittel.
  • Server-Software
  • Die Server-Software ist unter Verwendung einer Kombination aus Java, C oder möglicherweise C++ erstellt. C oder C++ wird hauptsächlich verwendet, um einen Plattform-abhängigen Code (wie z.B. das Behandeln von Kommunikations-Anschlüssen) zu implementieren. Während eine bevorzugte Ausführungsform die Unterstützung für ein Einwahl-Netzwerk sowie Internet-Bearbeitung unter Verwendung von TCP/IP offenbart, ist es einem Fachmann auf dem technischen Gebiet unmittelbar verständlich, dass ein „token ring", SNA oder andere Netzwerke, wie z.B. die in den US-Patenten (5,530,961; 5,491,796; 5,457,797; 5,442,791; 5,430,863; 5,394,401; 5,291,597; 5,287,537; 5,287,461; 5,201,049; 4,991,089 und 4,588,211) beschriebenen als Netzwerke austauschbar sind.
  • Architektur
  • Eine Server-Architektur gemäß einer bevorzugten Ausführungsform unterstützt zwei Typen von Client-Terminals.
  • Netzwerk-Terminals. Dies sind Client-Terminals, die zur direkten Ausführung von Java-Anwendungen auf dem Client-Terminal fähig sind, die zunächst auf einem Server gespeichert sind. Der Server lädt einfach diesen Code auf das Netzwerk-Terminal des Clients, das der Client dann ausführt, um einen bestimmten Dienst zu gewährleisten. Dieser Service kann mit anderen Clients oder Servern interagieren oder nicht. Netzwerk-Terminals können mit einem Server verbunden werden durch eine Einwahl-Modem-Verbindung, direkt durch ein lokales Netzwerk (local area network) oder durch andere Netzwerk-Verbindungsmittel gemäß einer bevorzugten Ausführungsform.
  • Nicht-Netzwerk-Terminals. Dies sind Client-Terminals, die nicht in der Lage sind, Java-Anwendungen auf dem Client-Terminal auszuführen. Beim Behandeln dieser Klasse von Clients führt der Server die Applikation im Auftrag des Clients aus. In diesem Fall erwartet der Server lediglich die durch das Client-Terminal auszuführenden Eingabe- und Ausgabe-Operationen. Ein Beispiel, wie eine Anzahl von Nicht-Netzwerk-Terminals mit einem Host-Server verbunden werden können, ist in dem US-Patent 5,287,461 beschrieben, deren Beschreibung hiermit in ihrer Gesamtheit durch die Bezugnahme hierin einbezogen wird.
  • 3 zeigt eine Server-Architektur gemäß einer bevorzugten Ausführungsform. Ein Client 300 initiiert eine Verbindung mit einem Server 315 bspw. durch Einwählen in einen Modem-Pool, der durch die Punkt-zu-Punkt-Stapel-Software 311 aufgefangen wird, welche die empfangene Information an die TCP-Ebene (layer) 312 anpasst, das einen Anschluss 313 zum Verbinden des Clients 310 an den Server 350 schafft. Die Java-Netz-Ebene 314 verfeinert die Anfrage weiter, um sie an die TERMIO- und Netz-Ebene 315 anzupassen, welche die Anfrage an den Anwendungs-Abfertiger 319 weiterleitet. Der Anwendungs-Abfertiger 319 erzeugt die geeignete Server-Anwendung, die aus den Server-Anwendungen 330 ausgewählt ist. Auf einem Nicht-Netzwerk-Terminal erzeugt das Nicht-Netzwerk-Terminal eine "erste Verbindung" bspw. durch Anwählen eines Modems. Das Einwählen erfolgt durch das native Betriebssystem OS 316 (Solaris oder Windows NT Einwahl-Ebene) und ist mit der seriellen Kommunikation in der VFI.SERIAL-Ebene 317 verbunden, welche die seriellen Eingabe/Ausgabe-Funktionen auf eine höhere Kommunikations-Ebene abstrahiert. Die VFI.NET-Ebene 315 nimmt die abstrahierte serielle Ebene und bildet diese auf eine ähnliche Kommunikation ab, wie die Kommunikation von dem Netzwerk-Terminal 300. Dies lässt die asynchrone Einwahl-Verbindung für die Server-Applikation wie eine neue Anschluss-Verbindung erscheinen.
  • Netzwerk-Terminal – "Erste Verbindung"
  • 4 zeigt eine Client-Server-Architektur gemäß einer bevorzugten Ausführungsform. Zur Verdeutlichung ist die Architektur zunächst für ein Netzwerk-Terminal und anschließend mit einem Nicht-Netzwerk-Terminal dargestellt. Die Bearbeitung beginnt bei 400, wenn ein Netzwerk-Terminal um eine Verbindung durch ein Kommunikations-System mit mehreren Ebenen zu einem Satz von Server-Strängen 420 anfragt, die über die Erfassung eines "Rings" 430 koordiniert sind, um mögliche Client-Aktualisierungen und die anschließende Client-Anwendung zur Server-Anwendungs-Bearbeitung zu initiieren. Der Begriff "Ring" bezieht sich auf eine "erste Verbindung" im Anschluss-Verfahren gemäß einer bevorzugten Ausführungsform.
  • Das Netzwerk-Terminal erzeugt seine Verbindung durch den Punkt-zu-Punkt-Protokoll-Stapel 411 unter Verwendung der TCP-Ebene 412 und der Anschluss-Ebene 413, die einem elektrischen Anschluss ähnelt zum Anschließen von Terminals an Kommunikations-Anschlüsse, um die Kommunikation durch das Netzwerk zu erleichtern. All dies wird durch das Java-Netz 414 verwaltet, das den Anschluss 1111 über die TCP-Ebene 412 und den PPP-Stapel 411 verbindet. Die oben genannte Ebene ist das VFI-Netz und das VFI.TERMIO 415, das für die Feststellung verantwortlich ist, dass die Verbindung hergestellt und das Abbilden der Verbindung auf einen Anwendungs-Abfertiger 431 zur weiteren Bearbeitung der ersten Verbindungs-(Ring)-Anfrage erfolgt ist.
  • Der Server 450 wartet auf eine "erste Verbindung"-Anfrage in der Art eines Interrupt-Managers. Wenn eine "erste Verbindung"-Anfrage ankommt, dann verwendet der Anwendungs-Abfertiger ein Verfahren, das eine Verbindungs-Anfrage oder eine LAN-"erste Verbindung"-Anfrage erfasst, die durch die TCP-Ebene als eine Anschluss-Verbindung ankommt. Die Verbindung wird in einen logischen Ring übersetzt, der äquivalent ist zu einem Ereignis oder einem Interrupt. Der Server 450 antwortet auf die "erste Verbindung" mit einer durch den Anfrage-Abfertiger 431 initiierten Rückfrage, die über eine Abfrage-Mitteilung "Wer bist Du" eine Identifizierung durch den Client-Lader-Strang 421 veranlasst. Das Netzwerk-Terminal antwortet mit ID-Informationen einschließlich der Identifizierung der Anwendung, nach der das Netzwerk-Terminal verlangt. Wenn das Terminal mit einem Identifizierer antwortet, der anzeigt, dass das Terminal ein Netzwerk-Terminal ist, dann führt der Client-Lader-Strang 421 jede notwendige Client-Anwendungs-Aktualisierung über ein Herunterladen (Download) unter Verwendung eines Datei-Übertragungs-Programms durch, wie z.B. UDP oder FTP oder eines beliebigen Anschluss-Ebenen-Protokolls, das für Netzwerk-Datei-Übertragungen für das Netzwerk-Terminal 400 verfügbar ist.
  • Netzwerk-Terminal – Erste Client-Anfrage an den Server
  • 5 ist eine erste Client-Anfrage an einen Server gemäß einer bevorzugten Ausführungsform. Wenn eine erste Client-Anfrage von dem Netzwerk-Terminal 500 mit einer darauf vorhandenen Client-Anwendung 510 an den Server 550 übertragen wird, erzeugt der Anwendungs-Abfertiger 530 eine entsprechende Server-Anwendung 520 zum Bedienen der Anfrage an den Server 550 über den angewiesenen Anschluss 1112. Die Server-Anwendung 520 antwortet auf die Anfrage und übermittelt Informationen an das Netzwerk-Terminal 500. Der Anwendungs-Abfertiger 530 hat seine Zuständigkeiten für diesen Client 500 vervollständigt und kann in einen Warte-Zustand bis zu der nächsten "erste Verbindung"-Anfrage von einem Client zurückkehren. Die Client-Anwendungs-Anfrage kann so einfach sein wie eine Laufzeit-Erfassungs-Anfrage (get current time request) oder eine Anfrage nach Daten von einer Server-Datenbank.
  • 6 zeigt ein Netzwerk-Terminal 600 mit einer heruntergeladenen Client-Anwendung 610, die auch Unterstützungs-Dienste in dem Server 650 durch seine angewiesene Server-Anwendung 620 gemäß einer bevorzugten Ausführungsform zugreift. Das Terminal 600 kommuniziert an eine Server-Anwendung 620, die auf Host-Bearbeitungsfähigkeiten und Datenbank-Dienste 640 zugreift, um Anfragen zu bedienen, die aus der Client-Anwendung 610 stammen. Die Server-Anwendung 620 behandelt jedes Ereignis, das von der Client-Anwendung 610 stammt, über den zugewiesenen Anschluss 1112. Diese Ereignisse können Daten-Anfragen von einer Datenbank-Anwendung oder Daten-Übertragungen an einen Server umfassen. Fern-Daten von einer anderen Server-Anwendung sind ebenfalls durch den Client zugänglich. Die Server-Anwendung 620 greift auf Unterstützungs-Dienste direkt oder über eine Anschluss-Schnittstelle 660 zu.
  • Nicht-Netzwerk-Terminal – "Erste Verbindung"
  • 7 ist ein Architektur-Diagramm eines Client-Server-Systems gemäß einer bevorzugten Ausführungsform. Ein Kommunikations-System 700 mit mehreren Ebenen wird durch ein Nicht-Netzwerk-Terminal 710 verwendet, um einen Ring zu erfassen, der einen Freimachungsvermerk zur Kommunikation 740 und Abfertigung einer Anwendung 730 gewährleistet. Das Abfertigen einer Anwendung 730 veranlasst ebenso einen Server-Strang 720, die Client-Anfrage zu bedienen. Das Nicht-Netzwerk-Terminal 720 initiiert eine "erste Verbindung" bspw. durch Anwählen eines Modems. Das Anwählen erfolgt durch das native Betriebssystem OS 711 (Solaris oder Windows NT-Einwahl-Ebene) und ist mit der seriellen Kommunikation in der VFI.SERIAL-Ebene 712 verbunden, welche die Eingabe/Ausgabe-Funktionen in eine höhere Kommunikations-Ebene abstrahiert. Die VFI.NET-Ebene 715 nimmt die abstrahierte, serielle Ebene und bildet diese in eine ähnliche Kommunikation ab, wie die Kommunikation von dem Netzwerk-Terminal. Dies lässt die asynchrone Einwahl-Verbindung für die Server-Anwendung als eine neue Anschluss-Verbindung 1111 erscheinen. Die Kommunikation ist ein Ereignis 740, das Aktionen durch den Anwendungs-Abfertiger 741 veranlasst und auf das "erste Verbindungs"-Ereignis antwortet durch Anfragen der ID-Informationen von dem Client über eine Abfrage-Mitteilung und Starten der angeforderten Client-Anwendung 720 auf dem Server 750.
  • Nicht-Netzwerk-Terminal – Erste Client-Anfrage an den Server
  • 8 ist ein Architektur-Diagramm eines Client-Server-Systems gemäß einer bevorzugten Ausführungsform. Die Client-Anwendung 822 ist für das Verwalten des Nicht-Netzwerk-Terminals 810 verantwortlich. Die Client-Anwendung 822 schreibt Informationen unter Verwendung einer Server-Version von VFI.TERMIO 855 und antwortet auf die Betätigung von Tasten durch das Nicht-Netzwerk-Terminal 810 an dem Server 850. Die Client-Anwendung 822 erzeugt zunächst eine Anfrage nach Diensten von einem Anschluss 1112, der mit dem Nicht-Netzwerk-Terminal 810 assoziiert ist, wenn der Anwendungs-Abfertiger 840 die Client-Anwendung 822 erzeugt.
  • Wenn die erste Anfrage 845 durch die auf dem Server 850 vorhandene Client-Anwendung 822 bei Anwendungsbeginn erzeugt wird, wird die erste Anfrage nach einem Dienst auf den Anwendungs-Abfertiger 840 in dem Server 850 geleitet und erzeugt die Server-Anwendung 820, die anschließend die Anfragen behandelt. Die Server-Anwendung 820 erzeugt eine Anfrage nach einem Dienst von einem Anschluss 1112, der mit der Client-Anwendung 822 assoziiert ist, und übermittelt einen entsprechenden Befehl durch das VFI.TERMIO 855 an die VFI.SERIAL-Ebene 856 an das Nicht-Netzwerk-Terminal 810 unter Verwendung der Kommunikations-Unterstützung 857 des Betriebssystems. Diese Bearbeitung ist mit der Netzwerk-Terminal-Bearbeitung identisch unter der Ausnahme, dass alle Anwendungen auf dem Server 850 vorhanden sind, im Gegensatz zu einer Java-Anwendung, die auf dem Netzwerk-Terminal entfernt ausgeführt wird.
  • Ein Vorteil von Java besteht darin, dass es Maschinen-unabhängig ist und indifferent, ob eine Java-Anwendung auf dem Client oder auf dem Server vorhanden ist. Im Falle eines Nicht-Netzwerk-Terminals ist die Client-Anwendung auf dem Server vorhanden und steuert das Java-unfähige Terminal.
  • Nicht-Netzwerk-Terminal – Nachfolgende Client-Anfrage an den Server
  • 9 ist ein Architektur-Diagramm eines Client-Server-Systems gemäß einer bevorzugten Ausführungsform. Ein Kommunikations-System 900 mit mehreren Ebenen wird verwendet durch ein Nicht-Netzwerk-Terminal 910, um die Verbindung zwischen einer Server-Anwendung 940 und einer Client-Anwendung 920 zu verwalten und die Kommunikation zwischen dem Terminal 910 und der Server-Anwendung 940 über eine auf dem Server 950 vorhandene Client-Anwendung 920 zu vereinfachen. 9 zeigt die Bearbeitung nachdem die erste Anfrage vervollständigt wurde und die Client-Anwendung 920 mit der Server-Anwendung 940 über den zugewiesenen Anschluss 1112 wie in dem Beispiel mit dem Netzwerk-Terminal gekoppelt wurde mit der Ausnahme, dass sowohl die Client-Anwendung 920 und die Server-Anwendung 940 auf dem Server 950 vorhanden sind.
  • Wenn ein Terminal mit einer Mitteilung antwortet, die anzeigt, dass es sich um ein Nicht-Netzwerk-Terminal handelt, dann wird das Terminal mit den in den 1014 beschriebenen Befehlsabfolgen unterstützt. Wenn das Terminal ein Netzwerk-Terminal ist, dann wird die Anwendung über ein FTP oder andere Netzwerk-Datei-Übertragungs-Prozeduren heruntergeladen.
  • 10 zeigt die Struktur eines Pakets gemäß einer bevorzugten Ausführungsform. 11 zeigt das Format aller Felder einer Kommunikation und beschreibt die Inhalte derselben. Beispielsweise hat der Kopf (Header) eine Länge von 2 Bytes und enthält unterschiedliche Werte, die unterschiedlichen Arten von Transaktionen entsprechen. Auf ähnliche Weise sind der Paket-Typ, der Header-CRC, die Sequenz#, der Daten-Block und die CRC-16-Felder in der in 11 dargestellten Tabelle beschrieben.
  • 12 zeigt eine Tabelle, die zusätzliche Details angibt, die mit den Geräte-Typen, Befehlen und Daten-Parametern assoziiert sind. Beispielsweise hat das Geräte-Typ-Feld die Größe von 1 Byte und spezifiziert das ausgewählte Eingabe/Ausgabe-Gerät. 13 zeigt die Anzeige-Befehle gemäß einer bevorzugten Ausführungsform. Der Anzeige-Geräte-Typ ist 0. 14 zeigt die Status-Werte, die mit unterschiedlichen, angeforderten Operationen gemäß einer bevorzugten Ausführungsform assoziiert sind.
  • 15 ist ein Kommunikations-Flussdiagramm gemäß einer bevorzugten Ausführungsform. Ein Terminal 1500 ist entweder Firmware oder einer Anwendung 1504 ausgestattet, die eine Verbindung 1506 mit einem Server 1502 durch Kontaktieren eines Abfertigers 1508 initiiert. Der Verbindungs-Anfang 1506 verbindet ebenso einen Anschluss 1111, um die Verbindung zu behandeln. Der Abfertiger 1508 übermittelt eine Identifizierungs-Anfrage 1510, auf die das Client-Terminal mit einer Identifizierungs-Mitteilung 1512 antwortet. In dem Fall eines Netzwerk-Terminals führt der Client-Lader 1520 jede notwendige Client-Anwendungs-Aktualisierung 1520 auf dem Client-Terminal 1500 durch. In dem Fall eines Nicht-Netzwerk-Terminals startet der Abfertiger die Client-Anwendung. Der Client sendet anschließend eine Anfrage an den Server, um die Server-Anwendung 1530 zu starten, die zur Folge hat, dass die Verbindung eines Anschlusses 1112 und der Server-Anwendung 1550 gestartet wird und eine Bestätigungs-Mitteilung 1532 an die Client-Anwendung 1540 zurückgesendet wird. Anschließend, wenn die Client-Anwendung 1540 nach Daten 1542 von der Server-Anwendung 1550 anfragt, antwortet die Server-Anwendung 1550 mit den Antwort-Daten 1560 der Anwendung.
  • Anwendungs-Abfertiger – Steuerfluss zum Starten des Anwendungs-Abfertigers
  • Die in Transaktionen involvierten konfigurierten Modem-Anschlüsse sind vorkonfiguriert. Der Start-Code des Anwendungs-Abfertigers (AD) richtet sich nach diesen Konfigurations-Abfolgen, um die Anzahl von S-Strängen (Empfänger mit seriellem Anschluss, serial port listeners) festzustellen. S-Klassen instantiieren ein VFI.NET.-Server-Anschluss-Objekt, das seinerseits ein VIF.NET. ModemIO.Modem-Anschluss-Objekt erzeugt. Das Modem-Anschluss-Objekt bindet ein VFI.NET.ModemIO-Anschluss-Objekt niedriger Ebene, das native Verfahren zum Konfigurieren und Warten auf dem Kommunikations-Anschluss verwendet.
  • Figure 00180001
  • Anfrage-Bearbeitung
  • Wie oben beschrieben, sind S-Stränge transiente Stränge. Und selbst wenn diese aktiv sind, ermöglichen sie effektive Wartezeiten (es werden keine CPU-Zyklen verbraucht). Der AD (Anwendungs-Abfertiger) empfängt die ID-Anfrage von jedem S-Strang. Das Bearbeiten einer Anfrage wird über eine Datenbank-Abfrage durchgeführt. Typische Anfragen sind einfache Text-Mitteilungen mit Begrenzern und werden analysiert unter Verwendung eines "String-Tokenizer-Objekts".
    StringTokenizer stParseHelp = new StringTokenizer ((String) Request);
    field1 = stParseHelp.nextToken();
    field2 = .... und so weiter.
  • Der Anwendungs-Abfertiger (AD) nimmt eine Datenbankabfrage vor, um festzustellen, welche Anwendung basierend auf der Anfrage-Mitteilung initiiert werden soll unter Verwendung einer SQL-Abfrage der Form:
    SELECT <Field ClassPath> from <TableName> where <f1 = field1 and ........>;
  • Diese wird behandelt durch die JDBC-Ebenen, um Daten an den Anwendungs-Abfertiger AD zurückzusenden. Der Anwendungs-Abfertiger AD ist nun bereit, den Client-Strang ablaufen zu lassen.
    ClientThread = new Thread (field1, field2 ..., SOConnSocket);
  • Die Feld-Liste enthält entsprechende Felder (diejenigen, die für das Bearbeiten der Client-Anwendung erforderlich sind) und werden zusammen mit den verbundenen Anschluss-Objekten an den Client-Strang weitergeleitet.
  • Client-Stränge
  • Client-Stränge autorisieren die aktuelle Anwendung. Für die Terminal-Geräte bestimmte Anwendungs-Ausgaben werden unter Verwendung des VIF.TERMIO als Richtlinie an die Firmware des Client-Terminals geleitet. Der verbundene Anschluss (der zu einer Live-Einwahl-Verbindung überträgt) wird von dem Anwendungs-Abfertiger (AD) an den Client-Strang weitergeleitet. Client-Stränge sind langlebig – übertragen üblicherweise zu entsprechenden Servlets, die Verbindungen zu vorgeschalteten Hosts initiieren oder Datenbank-Transaktionen vornehmen. Trotz der Tatsache, dass Client-Stränge Kenntnis von JDBC haben, behandeln Servlets Datenbank-Transaktionen. Dies hilft, um die Code-Konstanz zu erhalten, wenn dieselbe Client-Klasse auf ein Java-fähiges Terminal zur Fern-Ausführung heruntergeladen wird.
  • Die Terminal-Eingabe/Ausgabe wird durch ein VFI.TERMIO-Objekt durchgeführt, das seinerseits ein VFI.TERMIO.ServProtokoll-Objekt instanziiert. Das Protokoll-Objekt implementiert den aktuellen Daten-Transfer mit dem Client-Terminal. Das Protokoll-Objekt verlangt, dass das Anschluss-Objekt von dem Anwendungs-Abfertiger AD an den Client-Strang weitergeleitet wird.
  • Figure 00200001
  • Figure 00210001
  • Anfangs-Client-Anfrage-Bearbeitung
  • Der Anwendungs-Abfertiger (AD) lässt einen T-Strang (nicht während der Anfangsphase erzeugt) ablaufen, der einem wohlbekannten Anschluss (z.B. 1112) zuhört und eine Anfangs-Client-Anfrage von einer Client-Anwendung abwartet. Der T-Strang bearbeitet die Client-Anfrage, um festzustellen, welcher Servlet-Klasse geladen werden muss.
  • Figure 00210002
  • Figure 00220001
  • Der T-Strang ist ein Dämon-Strang und läuft solange wie der Anwendungs-Abfertiger AD läuft. Wenn die Client-Anwendung auf ein Java-fähiges Terminal heruntergeladen wird, kommen über die PPP-Verbindung Anfangs-Anfragen an.
  • Host-Stränge oder Servlets
  • Host-Stränge (H) bedienen Client-Anfragen für vorgeschaltete und Datenbank-Verbindbarkeit. Ein Host-Strang kann TCP-Verbindungen mit entfernten Hosts herstellen, von der Client-Anwendung stammende Finanz-Transaktionen weiterleiten und die Antwort zuleiten.
  • Figure 00220002
  • Transiente und langlebige Stränge in dem Anwendungs-Abfertiger
  • Eine Anschluss-basierte Abstraktion der Win32-Kommunikations-API
  • Die Konsistenz in dem Zugriff der Dienste auf Transport-Ebene benötigt keiner besonderen Betonung. Die Gestaltung des PTS-Servers zielt darauf ab, eine einheitliche Schnittstelle zu bieten für Schreiber von Client-Komponenten und Server-Komponenten-Applets von dritter Seite für die asynchronen Einwahl-Protokoll-Module und die TCP/SLIP/PPP-Stapel des Systems. Diese Schnittstelle umfasst einen Satz von Java-Klassen, die zusammengefasst (VFI.NET)* bezeichnet werden. Es sollte bemerkt werden, dass dieses Paket keine reinen TCP/UDP/IP-spezifischen Objekte und Verfahren bietet, die bereits in java.net.* definiert und implementiert sind. Die Programmierer müssen jedoch nicht explizit java.net.* importieren. Dies erfolgt automatisch durch das Paket. Ferner wird in diesem Dokument nicht die Funktionalität von java.net.* diskutiert, was in der entsprechenden JDK-Dokumentation nachgelesen werden kann. Es werden lediglich Details einer Klassen-Gestaltung beschrieben, die Verfahren überlasten, insbesondere notwendig, um einen BSD-Anschluss, ähnlich einer Ebene zwischen einem abrufenden Applet (Servlet) und den seriellen Kommunikations-Paket mit Maschinen-spezifischem Java aufbaut.
  • Hierarchie
  • Eine einheitliche Hochleistungs-Schnittstelle für die Modem-IO-Klassen erlaubt ein einfaches Ersetzen der Implementierungen. Der aktuelle Modem-Behandlungs-Code kann bspw. die TAPI-Client-Anrufe anstelle von direkten Win32-Kommunikations-Anrufen verwenden. Multiple Bibliotheken, die mit derselben Schnittstelle konform sind, erlauben unterschiedliche Verbindungs-Ebenen-Protokoll-Stapel (ähnlich MNP3). Dies gewährleistet die Konstanz (und damit direkt Portabilität) der VFI.ModemIO.*.
  • Erforderliche ModemIO-Funktionalität
    • 1. Öffnen einer asynchronen Ende-Zu-Ende-Duplex-Einwahl-Verbindung. Die Stations-Adresse (InetAddress as in TCP/IP) ist die Einwahl-Zeichenfolge. Konfigurieren nach Verbindung.
    • 2. Empfangen einer ankommenden Einwahl-Verbindung. Der Empfänger-Anschluss (analog zu dem eingebundenen TCP-Anschluss) ist der COM-Anschluss. Diesbezüglich ist die Anzahl der gültigen Anschlüsse in einem Bereich von 0–0 × FF (was die maximale Anzahl der in NT erlaubten COM-Anschlüsse ist). Konfigurieren nach Initialisierung.
    • 3. Erhalten einer Eingabe und eines Ausgabe-Stroms, der von/zu der offenen Verbindung umgeleitet wird.
    • 4. Auflegen (schließen wie in TCP/IP) einer aktiven Verbindung.
  • Die folgenden Klassen bilden einen Teil eines VFI.ModemIO.*:
  • Prinzipielle Behandlung des seriellen Anschlusses
    Figure 00240001
  • Figure 00250001
  • Modem-Initialisierung und Verfahren
    Figure 00250002
  • Die Programierer müssen getPort() verwenden, um eine Abfolge zu erfassen und Daten über den Modem-Anschluss zu übertragen. Configure(String) sendet einen AT-Befehl und returniert TRUE, wenn das Modem OK<cr><If>configureDM(String) returniert hat und sendet den gleichen Befehl an das Modem, wenn der Daten-Modus vorliegt.
  • NET – Die Anschlusshülle
  • Das Paket umfasst zwei große Klassen von java.net.* – Anschluss und Server-Anschluss. Um eine bekannte Schnittstelle zu bieten, die Konflikte vermeidet, instanziiert das Paket seinen eigenen Anschluss und Server-Anschluss-Objekte über Konstruktoren, die sich eines Extra-Parameters bedienen (der die niedrigeren Objekte identifiziert, die zu instanziieren sind). Dies ist nach der Klassen-Definierung dargestellt.
  • Stations-Adressen-Lösung
  • Das InetAddress-Objekt bezieht sich auf einen einzelnen langen Wert, der mit der TCP/IP-Adresse der Maschinen korrespondiert. Die asynchrone Einwahl-Leitung kann jedoch multiple COM-Anschlüsse verwenden, um eine Verbindung mit dem Host zu öffnen. Heuristisch kann es den Anschein haben, dass das Einpassen der TCP/IP-Host/Maschinen-Adresse in die native COM-Unterstützungs-Bibliothek ein Überladen der InetAddress zulässt und dadurch die Eleganz verbessert. Dies führt jedoch zu zusätzlicher und vermeidbarer Komplexität. Diesbezüglich korrespondiert die InetAddress nur zu einer TCP/IP-Adresse. Die Versionen der java.net.-Anschluss-Konstruktoren, die den Host-Namen (als eine Zeichenkette) akzeptieren, werden stattdessen überlastet. Dieser Wert wird nun auf eine Wähl-Zeichenfolge bezogen, welche die Fern-Stations-Adresse identifiziert.
  • Anschluss-Initialisierung und Verbindung
    Figure 00270001
  • Figure 00280001
  • Schnittstellen-Bibliothek für native Win32 Komm.-API-Verfahren
    • HANDLE OpenDevice (int nDevNum, DCB * pNewDCB);
    • void CloseDevice (HANDLE hDevice);
    • int WriteDevice (HANDLE hDev, int nBytesToWrite, unsigned char * pWriteBuf);
    • int ReadDevice (HANDLE hDev, int nBytesToRead, unsigned char pReadBuf);
    • BOOL ConfigureDevice (HANDLE hDev, DCB * pNewDCB);
  • Während die Erfindung mit Hilfe von bevorzugten Ausführungsformen in einer spezifischen System-Umgebung beschrieben wurde, sind verschiedene äquivalente Modifikationen innerhalb des Schutzumfangs der Erfindung möglich, wie er in den beigefügten Ansprüchen dargelegt ist, was dem Fachmann auf dem betreffenden technischen Gebiet bewusst ist.

Claims (25)

  1. Dezentrales Computer-System mit einem Client-Terminal (200, 300) und einem Server (210, 350, 450, 550, 650, 750, 850, 950), die über ein Netzwerk kommunizieren, aufweisend: einen Server (210, 350, 450, 550, 650, 750, 850, 950) und ein Client-Terminal (200, 300) zum Initiieren einer Verbindung zu dem Server (210, 350, 450, 550, 650, 750, 850, 950) unter Verwendung eines Netzwerks; wobei der Server (210, 350, 450, 550, 650, 750, 850, 950) angepasst ist auf die Anfangs-Verbindung zu reagieren durch Übermitteln einer Anfrage-Mitteilung an das Client-Terminal (200, 300); wobei das Client-Terminal (200, 300) angepasst ist, auf die Anfrage-Mitteilung mit einer Mitteilung zu reagieren, die Identifizierungs-Informationen umfasst, die anzeigen, ob das Client-Terminal (200, 300) entweder ein Netzwerk-Terminal (400, 500, 600) oder ein Nicht-Netzwerk-Terminal (710, 810, 910) ist, und eine Client-Applikation identifizieren, die von dem Client-Terminal (200, 300) benötigt wird; wobei der Server (210, 350, 450, 550, 650, 750, 850, 950) angepasst ist, die Identifizierungs-Informationen zu empfangen und zu analysieren, um festzustellen, ob das Client-Terminal (200, 300) ein Netzwerk-Terminal (400, 500, 600) oder ein Nicht-Netzwerk-Terminal (710, 810, 910) ist, und wenn das Client-Terminal (200, 300) ein Netzwerk-Terminal (400, 500, 600) ist, ein Client-Lader auf dem Server (210, 350, 450, 550, 650, 750, 850, 950) angepasst ist, um die Client-Applikation, falls erforderlich, auf den Client-Terminal (200, 300) unter Verwendung des Netzwerks zu aktualisieren, sowie angepasst ist, eine Server-Applikation zu starten, um zukünftige Anfragen von dem Client-Terminal zu bedienen; und wenn das Client-Terminal ein Nicht-Netzwerk-Terminal (710, 810, 910) ist, der Server (210, 350, 450, 550, 650, 750, 850, 950) angepasst ist, eine Client-Applikation sowie eine Server-Applikation auf dem Server (210, 350, 450, 550, 650, 750, 850, 950) zu initiieren, um die Applikation für das Client-Terminal (200, 300) auf dem Server zu bearbeiten.
  2. Dezentrales Computer-System gemäß Anspruch 1, wobei das Aktualisieren der Client-Applikation ein Herunterladen der Client-Applikation auf das Client-Terminal (200, 300) bedingt.
  3. Dezentrales Computer-System gemäß Anspruch 1, bei dem das Client-Terminal (200, 300) angepasst ist, um mit dem Server (210, 350, 450, 550, 650, 750, 850, 950) unter Verwendung einer Einwahl-Netzwerk-Verbindung ("dial-up network connection") zu kommunizieren.
  4. Dezentrales Computer-System gemäß Anspruch 1, wobei die Identifizierungs-Information Konfigurations-Charakteristika des Client-Terminals (200, 300) umfasst.
  5. Dezentrales Computer-System gemäß Anspruch 1, wobei das Netzwerk-Terminal (400, 500, 600) angepasst ist, um Java-Code auf dem Netzwerk-Terminal (400, 500, 600) auszuführen.
  6. Dezentrales Computer-System gemäß Anspruch 1, wobei die auf dem Server (210, 350, 450, 550, 650, 750, 850, 950) und auf dem Client-Terminal (400, 500, 600) ausgeführte Client-Applikation dieselbe ist.
  7. Dezentrales Computer-System gemäß Anspruch 1, wobei das Nicht-Netzwerk-Terminal (710, 810, 910) angepasst ist, Befehle von der Client-Applikation auf dem Server (210, 350, 450, 550, 650, 750, 850, 950) zu empfangen.
  8. Dezentrales Computer-System gemäß Anspruch 1 umfassend Mittel zum Weiterleiten einer Client-Applikation-Anfrage an einen anderen Server, um die Anfrage zu bearbeiten.
  9. Verfahren zur dezentralen Datenverarbeitung zwischen einem Server-Computer (210, 350, 450, 550, 650, 750, 850, 950) und einem Client-Terminal (200, 300), die über ein Netzwerk kommunizieren, umfassend die Schritte: (a) Initiieren einer Verbindung des Client-Terminals (200, 300) zu dem Server-Computer (210, 350, 450, 550, 650, 750, 850, 950) unter Verwendung des Netzwerks; (b) Beantworten der Anfangs-Verbindungs-Anfrage an den Server-Computer (210, 350, 450, 550, 650, 750, 850, 950) durch Übermitteln einer Anfrage-Mitteilung an das Client-Terminal (200, 300); (c) Beantworten der Anfrage-Mitteilung an das Client-Terminal (200, 300) mit einer Identifizierungs-Informationen umfassenden Mitteilung, die anzeigen, ob das Client-Terminal (200, 300) ein Netzwerk-Terminal oder ein Nicht-Netzwerk-Terminal ist, und eine Client-Applikation identifizieren, die von dem Client-Terminal benötigt wird; (d) Empfangen und Analysieren der Identifizierungs-Informationen bei dem Server-Computer (210, 350, 450, 550, 650, 750, 850, 950), um festzustellen, ob das Client-Terminal ein Netzwerk-Terminal oder ein Nicht-Netzwerk-Terminal ist; und (d1) wenn das Client-Terminal ein Netzwerk-Terminal (400, 500, 600) ist, wird die Client-Applikation durch einen Client-Lader aktualisiert und durch den Client-Lader eine Server-Applikation gestartet, um zukünftige Anfragen von dem Client-Terminal (200, 300) zu bedienen; und (d2) Laden einer Server-Applikation auf den Server-Computer (210, 350, 450, 550, 650, 750, 850, 950), falls erforderlich, die eine Client-Applikation auf dem Server-Computer (210, 350, 450, 550, 650, 750, 850, 950) zum Bearbeiten der Client-Applikation auf dem Server-Computer im Auftrag des Client-Terminals (200, 300) initiiert, wenn das Client-Terminal (200, 300) ein Nicht-Netzwerk-Terminal (710, 810, 910) ist.
  10. Verfahren gemäß Anspruch 9, wobei das Aktualisieren der Client-Applikation ein Herunterladen der Client-Applikation auf das Client-Terminal (200, 300) bedingt.
  11. Verfahren gemäß Anspruch 9 umfassend den Schritt des Kommunizierens zwischen dem Client-Terminal (200, 300) und dem Server-Computer (210, 350, 450, 550, 650, 750, 850, 950) unter Verwendung einer Einwahl-Netzwerk-Verbindung ("dial-up network connection").
  12. Verfahren gemäß Anspruch 9, wobei die Identifizierungs-Informationen Konfigurations-Charakteristika des Client-Terminals (200, 300) umfassen.
  13. Verfahren gemäß Anspruch 9, wobei das Netzwerk-Terminal (200, 300) Java-Code auf dem Netzwerk-Terminal ausführt.
  14. Verfahren gemäß Anspruch 9, wobei dieselbe Client-Applikation auf dem Server-Computer (210, 350, 450, 550, 650, 750, 850, 950) und auf dem Client-Terminal (200, 300) ausgeführt wird.
  15. Verfahren gemäß Anspruch 9, wobei das Nicht-Netzwerk-Terminal (710, 810, 910) Befehle von der Client-Applikation auf dem Server-Computer (210, 350, 450, 550, 650, 750, 850, 950) empfängt.
  16. Verfahren gemäß Anspruch 9 umfassend den Schritt des Weiterleitens einer Client-Applikations-Anfrage an einen anderen Server-Computer (210, 350, 450, 550, 650, 750, 850, 950), um die Anfrage zu bearbeiten.
  17. Computerprogramm, das auf einem Computer-lesbaren Medium abgelegt ist, zum Betreiben eines dezentralen Computer-Systems, wenn es auf einem Computer ausgeführt wird, mit einem Client-Terminal (200, 300) und einem Server (210, 350, 450, 550, 650, 750, 850, 950), die über ein Netzwerk kommunizieren, wobei das Computerprogramm umfasst: (a) Ein Code-Segment zum Initiieren einer Verbindung des Client-Terminals (200, 300) zu dem Server (210, 350, 450, 550, 650, 750, 850, 950) unter Verwendung des Netzwerks; (b) ein Code-Segment zum Beantworten der Anfangs-Anfrage an den Server (210, 350, 450, 550, 650, 750, 850, 950) durch Übermitteln einer Anfrage-Mitteilung an das Client-Terminal (200, 300); (c) ein Code-Segment zum Beantworten der Anfrage-Mitteilung an das Client-Terminal (200, 300) mit einer Identifizierungs-Informationen umfassenden Mitteilung, die anzeigen, ob das Client-Terminal ein Netzwerk-Terminal oder ein Nicht- Netzwerk-Terminal ist, sowie eine Client-Applikation identifizieren, die von dem Client-Terminal (200, 300) benötigt wird; (d) ein Code-Segment zum Empfangen und Analysieren der Identifizierungs-Informationen an den Server (210, 350, 450, 550, 650, 750, 850, 950), um festzustellen, ob das Client-Terminal (200, 300) ein Netzwerk-Terminal oder ein Nicht-Netzwerk-Terminal ist; und (d1) ein Code-Segment zum Starten einer Server-Applikation, wenn das Client-Terminal ein Netzwerk-Terminal (400, 500, 600) ist, und zum Aktualisieren der Client-Applikation, wobei die Server-Applikation zukünftige Anfragen von dem Client-Terminal bedient; und (d2) ein Code-Segment zum Laden einer Server-Applikation, falls erforderlich, auf dem Server, welcher die Client-Applikation auf dem Server initiiert, um die Client-Applikation auf dem Server im Auftrag des Client-Terminals zu bearbeiten, wenn das Client-Terminal ein Nicht-Netzwerk-Terminal (710, 810, 910) ist.
  18. Computerprogramm gemäß Anspruch 17, wobei das Aktualisieren der Client-Applikation ein Herunterladen der Client-Applikation auf das Client-Terminal (200, 300) bedingt.
  19. Computerprogramm gemäß Anspruch 17 umfassend ein Code-Segment zum Kommunizieren zwischen dem Client-Terminal (200, 300) und dem Server (210, 350, 450, 550, 650, 750, 850, 950) unter Verwendung einer Einwahl-Netzwerk-Verbindung ("dial-up network connection").
  20. Computerprogramm gemäß Anspruch 17, wobei die Identifizierungs-Informationen Konfigurations-Charakteristika des Client-Terminals (200, 300) umfassen.
  21. Computerprogramm gemäß Anspruch 17, wobei das Netzwerk-Terminal (400, 500, 600) Java-Code auf dem Netzwerk-Terminal (400, 500, 600) ausführt.
  22. Computerprogramm gemäß Anspruch 17, wobei dieselbe Client-Applikation auf dem Server und auf dem Client-Terminal (200, 300) ausgeführt wird.
  23. Computerprogramm gemäß Anspruch 17, wobei das Nicht-Netzwerk-Terminal (710, 810, 910) Befehle von der Client-Applikation auf dem Server (210, 350, 450, 550, 650, 750, 850, 950) empfängt.
  24. Computerprogramm gemäß Anspruch 17 umfassend ein Code-Segment zum Weiterleiten einer Client-Applikations-Anfrage an einen anderen Server, um die Anfrage zu bearbeiten.
  25. Computerprogramm gemäß Anspruch 17 umfassend ein Code-Segment zum Herstellen einer Einwahl-Verbindung ("dial-up connection"), die gegenüber dem Server (210, 350, 450, 550, 650, 750, 850, 950) als eine Steckverbindung ("socket connection") erscheint.
DE69732968T 1996-08-06 1997-08-06 System, verfahren und hergestellter gegenstand zur wartung von server-anwendungssoftware der netzwerk-kundenendgeräte und nicht-netzwerk-kundenengeräte Expired - Lifetime DE69732968T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US692489 1996-08-06
US08/692,489 US5828840A (en) 1996-08-06 1996-08-06 Server for starting client application on client if client is network terminal and initiating client application on server if client is non network terminal
PCT/US1997/013057 WO1998006207A1 (en) 1996-08-06 1997-08-06 A system, method and article of manufacture for seamless, server application support of network and non-network client terminals

Publications (2)

Publication Number Publication Date
DE69732968D1 DE69732968D1 (de) 2005-05-12
DE69732968T2 true DE69732968T2 (de) 2006-02-16

Family

ID=24780790

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69732968T Expired - Lifetime DE69732968T2 (de) 1996-08-06 1997-08-06 System, verfahren und hergestellter gegenstand zur wartung von server-anwendungssoftware der netzwerk-kundenendgeräte und nicht-netzwerk-kundenengeräte

Country Status (6)

Country Link
US (1) US5828840A (de)
EP (1) EP0919092B1 (de)
AU (1) AU730088B2 (de)
DE (1) DE69732968T2 (de)
HK (1) HK1017539A1 (de)
WO (1) WO1998006207A1 (de)

Families Citing this family (170)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
US6437803B1 (en) 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
US6370552B1 (en) 1997-05-14 2002-04-09 Citrix Systems, Inc. Apparatus and method for displaying application output in an HTML document
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
US6950991B2 (en) 1995-11-13 2005-09-27 Citrix Systems, Inc. Interacting with software applications displayed in a web page
EP0979458A4 (de) * 1996-05-14 2000-05-03 Ricoh Corp Ltd Java-drucker
US7555458B1 (en) 1996-06-05 2009-06-30 Fraud Control System.Com Corporation Method of billing a purchase made over a computer network
US20030195846A1 (en) 1996-06-05 2003-10-16 David Felger Method of billing a purchase made over a computer network
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US6163797A (en) * 1996-08-06 2000-12-19 Hewlett-Packard Company Application dispatcher for seamless, server application support for network terminals and non-network terminals
US7249344B1 (en) * 1996-10-31 2007-07-24 Citicorp Development Center, Inc. Delivery of financial services to remote devices
US5867153A (en) 1996-10-30 1999-02-02 Transaction Technology, Inc. Method and system for automatically harmonizing access to a software application program via different access devices
US7668781B2 (en) 1996-10-31 2010-02-23 Citicorp Development Center, Inc. Global method and system for providing enhanced transactional functionality through a customer terminal
US8112330B1 (en) 1997-08-07 2012-02-07 Citibank Development Center, Inc. System and method for delivering financial services
US20060195595A1 (en) 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
US7287271B1 (en) * 1997-04-08 2007-10-23 Visto Corporation System and method for enabling secure access to services in a computer network
US6131116A (en) * 1996-12-13 2000-10-10 Visto Corporation System and method for globally accessing computer services
US6708221B1 (en) 1996-12-13 2004-03-16 Visto Corporation System and method for globally and securely accessing unified information in a computer network
US6125384A (en) * 1996-12-23 2000-09-26 International Business Machines Corporation Computer apparatus and method for communicating between software applications and computers on the world-wide web
US6901425B1 (en) 1996-12-23 2005-05-31 International Business Machines Corporation Computer apparatus and method including a disconnect mechanism for communicating between software applications and computers on the world-wide web
US6041356A (en) * 1997-03-31 2000-03-21 Intel Corporation Method and apparatus for detecting network traffic and initiating a dial-up connection using separate upstream and downstream devices
US6253228B1 (en) * 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
US6766454B1 (en) 1997-04-08 2004-07-20 Visto Corporation System and method for using an authentication applet to identify and authenticate a user in a computer network
US6157944A (en) * 1997-05-14 2000-12-05 Citrix Systems, Inc. System and method for replicating a client/server data exchange to additional client notes connecting to the server
US5941949A (en) * 1997-05-14 1999-08-24 Citrix Systems, Inc. System and method for transmitting data from a server application to more than one client node
US6205469B1 (en) * 1997-05-27 2001-03-20 Yahoo! Inc. Method for client-server communications through a minimal interface
US7502752B1 (en) * 1997-08-07 2009-03-10 Citicorp Development Center, Inc. System and method for delivering financial services
US6697868B2 (en) * 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6324574B1 (en) * 1997-11-07 2001-11-27 International Business Machines Corporation Relay server for unsigned applets
JPH11232349A (ja) * 1997-11-18 1999-08-27 Sun Microsyst Inc 設備のサービス要求を管理するためのシステムおよび方法、ならびに、設備のサービス要求を管理するための命令シーケンスを記憶する、コンピュータ可読な媒体
US6012098A (en) * 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
US6834388B1 (en) 1998-03-13 2004-12-21 Iconics, Inc. Process control
US6324685B1 (en) * 1998-03-18 2001-11-27 Becomm Corporation Applet server that provides applets in various forms
US6098093A (en) * 1998-03-19 2000-08-01 International Business Machines Corp. Maintaining sessions in a clustered server environment
US6243738B1 (en) * 1998-04-06 2001-06-05 National Instruments Corporation Data acquisition system which includes remote access to data acquisition devices
US7346689B1 (en) 1998-04-20 2008-03-18 Sun Microsystems, Inc. Computer architecture having a stateless human interface device and methods of use
US6011916A (en) * 1998-05-12 2000-01-04 International Business Machines Corp. Java I/O toolkit for applications and applets
US6233341B1 (en) 1998-05-19 2001-05-15 Visto Corporation System and method for installing and using a temporary certificate at a remote site
US6405367B1 (en) * 1998-06-05 2002-06-11 Hewlett-Packard Company Apparatus and method for increasing the performance of Java programs running on a server
US6138148A (en) * 1998-06-18 2000-10-24 Sun Microsystems, Inc. Client intermediation of server applications
US6751647B1 (en) * 1998-06-19 2004-06-15 Intel Corporation Method and apparatus for automated data exchange between a user computer and a provider computer using improved object-oriented programming components
US6181692B1 (en) * 1998-09-03 2001-01-30 Genesys Telecommunications Laboratories Inc Method and apparatus for data routing, delivery, and authentication in a packet data network
US6356631B1 (en) 1998-09-24 2002-03-12 Ericsson Inc. Multi-client object-oriented interface layer
US6782431B1 (en) * 1998-09-30 2004-08-24 International Business Machines Corporation System and method for dynamic selection of database application code execution on the internet with heterogenous clients
US6470346B2 (en) * 1998-10-07 2002-10-22 Millennium Pharmaceuticals, Inc. Remote computation framework
US7533064B1 (en) 1998-10-07 2009-05-12 Paypal Inc. E-mail invoked electronic commerce
WO2000023857A1 (en) * 1998-10-16 2000-04-27 Iconics, Inc. Process control
US6138160A (en) * 1998-10-23 2000-10-24 International Business Machines Corporation System with wake up server and wake up monitor for facilitating dial up connection between two application partners via internet
US6282568B1 (en) * 1998-12-04 2001-08-28 Sun Microsystems, Inc. Platform independent distributed management system for manipulating managed objects in a network
US6349333B1 (en) 1998-12-04 2002-02-19 Sun Microsystems, Inc. Platform independent alarm service for manipulating managed objects in a distributed network management system
US6356282B2 (en) 1998-12-04 2002-03-12 Sun Microsystems, Inc. Alarm manager system for distributed network management system
US6757747B1 (en) * 1998-12-17 2004-06-29 International Business Machines Corporation Proxy object for managing an application instance on a dataless client machine
US6236909B1 (en) * 1998-12-28 2001-05-22 International Business Machines Corporation Method for representing automotive device functionality and software services to applications using JavaBeans
US6928469B1 (en) 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US7017116B2 (en) 1999-01-06 2006-03-21 Iconics, Inc. Graphical human-machine interface on a portable device
US6286031B1 (en) * 1999-01-21 2001-09-04 Jerry Richard Waese Scalable multimedia distribution method using client pull to retrieve objects in a client-specific multimedia list
US6473894B1 (en) 1999-01-29 2002-10-29 International Business Machines Corporation Dynamic runtime and test architecture for Java applets
SG94330A1 (en) 1999-07-24 2003-02-18 Kent Ridge Digital Labs Mobile computing system and method for a network
US6745247B1 (en) 1999-03-19 2004-06-01 Citicorp Development Center, Inc. Method and system for deploying smart card applications over data networks
US6385739B1 (en) 1999-07-19 2002-05-07 Tivo Inc. Self-test electronic assembly and test system
US7373517B1 (en) 1999-08-19 2008-05-13 Visto Corporation System and method for encrypting and decrypting files
JP3478200B2 (ja) * 1999-09-17 2003-12-15 日本電気株式会社 サーバ・クライアント間双方向通信システム
US6654748B1 (en) 1999-12-07 2003-11-25 Rwd Technologies, Inc. Dynamic application browser and database for use therewith
US20020184057A1 (en) * 2000-05-31 2002-12-05 Sony Corporation System, apparatus, and method for providing insurance design service
US20020032706A1 (en) * 1999-12-23 2002-03-14 Jesse Perla Method and system for building internet-based applications
JP4846890B2 (ja) * 2000-01-20 2011-12-28 ソニー株式会社 端末制御装置
KR100379889B1 (ko) * 2000-02-25 2003-04-14 조도원 광고 전용 프로그램을 이용한 컴퓨터 광고방법
US8036905B2 (en) * 2000-02-29 2011-10-11 Newgistics, Inc. Method and system for processing the local return of remotely purchased products
US8386337B2 (en) * 2000-03-24 2013-02-26 Newgistics, Inc. System and method for single-action returns of remotely purchased merchandise
US20010047387A1 (en) * 2000-03-27 2001-11-29 Exoplex, Inc. Systems and methods for providing distributed cross-enterprise portals
US6789112B1 (en) 2000-05-08 2004-09-07 Citrix Systems, Inc. Method and apparatus for administering a server having a subsystem in communication with an event channel
US6785713B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
US6922724B1 (en) 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
US6785726B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for delivering local and remote server events in a similar fashion
US8176145B1 (en) * 2000-05-19 2012-05-08 The Travelers Indemnity Company System and method for providing insurance data processing services via a user interface
US7699699B2 (en) 2000-06-23 2010-04-20 Igt Gaming device having multiple selectable display interfaces based on player's wagers
US7695363B2 (en) 2000-06-23 2010-04-13 Igt Gaming device having multiple display interfaces
US7225231B2 (en) 2000-09-20 2007-05-29 Visto Corporation System and method for transmitting workspace elements across a network
WO2002029599A1 (en) * 2000-10-05 2002-04-11 Redline Networks, Inc. Connection management system and method
US7263550B1 (en) 2000-10-10 2007-08-28 Juniper Networks, Inc. Agent-based event-driven web server architecture
US7464045B2 (en) * 2001-02-14 2008-12-09 The Workplace Helpline, Llc Method and apparatus for managing workplace services and products
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7143164B2 (en) * 2001-05-21 2006-11-28 Exigen Group Dynamic object library software architecture
US7716091B2 (en) 2001-05-24 2010-05-11 Newgistics, Inc. Local returns of remotely purchased merchandise with return code validation
US7110525B1 (en) 2001-06-25 2006-09-19 Toby Heller Agent training sensitive call routing system
US8346848B2 (en) * 2001-08-16 2013-01-01 Juniper Networks, Inc. System and method for maintaining statefulness during client-server interactions
US7000027B2 (en) * 2001-11-29 2006-02-14 International Business Machines Corporation System and method for knowledgeable node initiated TCP splicing
WO2003046725A1 (fr) * 2001-11-30 2003-06-05 Fujitsu Ten Limited Appareil de mise au point de logique de micro-ordinateur
US8190530B2 (en) 2002-01-30 2012-05-29 Visa U.S.A. Inc. Method and system for providing multiple services via a point-of-sale portal architecture
US7372952B1 (en) 2002-03-07 2008-05-13 Wai Wu Telephony control system with intelligent call routing
US8135843B2 (en) * 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
JP2003280902A (ja) * 2002-03-25 2003-10-03 Fujitsu Ten Ltd マイコンロジック開発システム及びそのプログラム
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US20040215531A1 (en) * 2003-02-10 2004-10-28 Stashluk Edward J. Computer generated merchandise return labels with rules-based coding
US20040181310A1 (en) * 2003-02-10 2004-09-16 Stashluk Edward J. Merchandise return system with value added returns processing (data communications)
US20040193436A1 (en) * 2003-02-10 2004-09-30 Stashluk Edward J. Method and system using return labels with dynamically generated multiple datapoint coding
US20040193438A1 (en) * 2003-02-10 2004-09-30 Stashluk Edward J. Merchandise return system with value added returns processing (dispositioning)
US7676034B1 (en) 2003-03-07 2010-03-09 Wai Wu Method and system for matching entities in an auction
US7403300B2 (en) * 2003-03-21 2008-07-22 Toshiba Corporation Wireless wide area network printing
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US20050149738A1 (en) * 2004-01-02 2005-07-07 Targosky David G. Biometric authentication system and method for providing access to a KVM system
US20050261969A1 (en) * 2004-05-10 2005-11-24 International Business Machines Corporation Layered architecture for POS (point-of sale) systems
US8090837B2 (en) 2004-05-27 2012-01-03 Hewlett-Packard Development Company, L.P. Communication in multiprocessor using proxy sockets
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
KR20070037650A (ko) 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 종단에서 게이트웨이로 패킷을 라우팅하기 위한 방법 및시스템
US8914522B2 (en) 2004-07-23 2014-12-16 Citrix Systems, Inc. Systems and methods for facilitating a peer to peer route via a gateway
US20060181026A1 (en) * 2005-02-14 2006-08-17 Wong Jacob Y Chinese poker deck
US8251791B2 (en) 2004-08-19 2012-08-28 Igt Gaming system having multiple gaming machines which provide bonus awards
US8021230B2 (en) 2004-08-19 2011-09-20 Igt Gaming system having multiple gaming machines which provide bonus awards
US7963847B2 (en) 2004-08-19 2011-06-21 Igt Gaming system having multiple gaming machines which provide bonus awards
US7748032B2 (en) 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8613048B2 (en) 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US7752671B2 (en) * 2004-10-04 2010-07-06 Promisec Ltd. Method and device for questioning a plurality of computerized devices
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US20060149577A1 (en) * 2004-12-30 2006-07-06 Newgistics, Inc. System and method for the customized processing of returned merchandise
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
EP2739014B1 (de) 2005-01-24 2018-08-01 Citrix Systems, Inc. Systeme und Verfahren zur Ausführung von Zwischenspeicherung von dynamisch erzeugten Objekten in einem Netzwerk
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US20070055562A1 (en) * 2005-08-23 2007-03-08 Way Out World, Llc System and methods for multi-modal game augmented interactive marketing
US8137188B2 (en) 2005-09-09 2012-03-20 Igt Server based gaming system having multiple progressive awards
US7841939B2 (en) 2005-09-09 2010-11-30 Igt Server based gaming system having multiple progressive awards
US8128491B2 (en) 2005-09-09 2012-03-06 Igt Server based gaming system having multiple progressive awards
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US7779034B2 (en) 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20070157019A1 (en) * 2005-12-30 2007-07-05 Intel Corporation Location-based network access
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8300798B1 (en) 2006-04-03 2012-10-30 Wai Wu Intelligent communication routing system and method
US8512130B2 (en) 2006-07-27 2013-08-20 Igt Gaming system with linked gaming machines that are configurable to have a same probability of winning a designated award
US7674180B2 (en) 2006-09-27 2010-03-09 Igt Server based gaming system having system triggered loyalty award sequences
US7862430B2 (en) 2006-09-27 2011-01-04 Igt Server based gaming system having system triggered loyalty award sequences
US8616959B2 (en) 2006-09-27 2013-12-31 Igt Server based gaming system having system triggered loyalty award sequences
US8738703B2 (en) 2006-10-17 2014-05-27 Citrix Systems, Inc. Systems and methods for providing online collaborative support
US8533846B2 (en) 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US8566247B1 (en) 2007-02-19 2013-10-22 Robert H. Nagel System and method for secure communications involving an intermediary
US8521650B2 (en) * 2007-02-26 2013-08-27 Zepfrog Corp. Method and service for providing access to premium content and dispersing payment therefore
US7985133B2 (en) 2007-07-30 2011-07-26 Igt Gaming system and method for providing an additional gaming currency
US8900053B2 (en) 2007-08-10 2014-12-02 Igt Gaming system and method for providing different bonus awards based on different types of triggered events
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US9142097B2 (en) 2007-10-26 2015-09-22 Igt Gaming system and method for providing play of local first game and remote second game
KR101545137B1 (ko) * 2008-04-17 2015-08-19 삼성전자주식회사 사용자 인터페이스를 생성하는 방법 및 장치
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US8149431B2 (en) * 2008-11-07 2012-04-03 Citrix Systems, Inc. Systems and methods for managing printer settings in a networked computing environment
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US9039516B2 (en) 2009-07-30 2015-05-26 Igt Concurrent play on multiple gaming machines
US9116778B2 (en) 2010-04-29 2015-08-25 Microsoft Technology Licensing, Llc Remotable project
US9104514B2 (en) * 2011-01-11 2015-08-11 International Business Machines Corporation Automated deployment of applications with tenant-isolation requirements
US9665854B1 (en) * 2011-06-16 2017-05-30 Consumerinfo.Com, Inc. Authentication alerts
US20140256420A1 (en) * 2013-03-11 2014-09-11 Microsoft Corporation Univied game preview
US9633322B1 (en) 2013-03-15 2017-04-25 Consumerinfo.Com, Inc. Adjustment of knowledge-based authentication
US10664936B2 (en) 2013-03-15 2020-05-26 Csidentity Corporation Authentication systems and methods for on-demand products
US9721147B1 (en) 2013-05-23 2017-08-01 Consumerinfo.Com, Inc. Digital identity
US10373240B1 (en) 2014-04-25 2019-08-06 Csidentity Corporation Systems, methods and computer-program products for eligibility verification
US9875618B2 (en) 2014-07-24 2018-01-23 Igt Gaming system and method employing multi-directional interaction between multiple concurrently played games
AU2015343339A1 (en) 2014-11-03 2017-06-15 Genentech, Inc. Methods and biomarkers for predicting efficacy and evaluation of an OX40 agonist treatment
US9972171B2 (en) 2015-09-24 2018-05-15 Igt Gaming system and method for providing a triggering event based on a collection of units from different games
US10911234B2 (en) 2018-06-22 2021-02-02 Experian Information Solutions, Inc. System and method for a token gateway environment
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3956615A (en) * 1974-06-25 1976-05-11 Ibm Corporation Transaction execution system with secure data storage and communications
US4277837A (en) * 1977-12-30 1981-07-07 International Business Machines Corporation Personal portable terminal for financial transactions
US4303904A (en) * 1979-10-12 1981-12-01 Chasek Norman E Universally applicable, in-motion and automatic toll paying system using microwaves
US4454414A (en) * 1982-06-16 1984-06-12 Vericard Corporation Funds transfer system using optically coupled, portable modules
US4877950A (en) * 1982-08-23 1989-10-31 Paperless Accounting, Inc. Electronic purse-device
US4906828A (en) * 1983-02-28 1990-03-06 Paperless Accounting, Inc. Electronic money purse and fund transfer system
US4630201A (en) * 1984-02-14 1986-12-16 International Security Note & Computer Corporation On-line and off-line transaction security system using a code generated from a transaction parameter and a random number
IL75702A0 (en) * 1984-07-27 1985-11-29 Technion Res & Dev Foundation Apparatus for effecting and recording monetary transactions
US4614861A (en) * 1984-11-15 1986-09-30 Intellicard International, Inc. Unitary, self-contained card verification and validation system and method
US4689478A (en) * 1984-12-24 1987-08-25 Ncr Corporation System for handling transactions including a portable personal terminal
US4766293A (en) * 1986-06-26 1988-08-23 Visa International Service Association Portable financial transaction card capable of authorizing a transaction in foreign currencies
US4780821A (en) * 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
JPH07104891B2 (ja) * 1986-08-05 1995-11-13 沖電気工業株式会社 取引処理装置
US4859837A (en) * 1987-03-23 1989-08-22 Halpern John Wolfgang Portable data carrier incorporating manually presettable processing modes
US4968873A (en) * 1987-09-08 1990-11-06 Juergen Dethloff Smart card issuing and receiving apparatus
US4885789A (en) * 1988-02-01 1989-12-05 International Business Machines Corporation Remote trusted path mechanism for telnet
US5195130A (en) * 1988-05-05 1993-03-16 Transaction Technology, Inc. Computer and telephone apparatus with user friendly computer interface and enhanced integrity features
CA1321649C (en) * 1988-05-19 1993-08-24 Jeffrey R. Austin Method and system for authentication
FR2639742B2 (fr) * 1988-05-30 1992-03-13 Dassault Electronique Systeme de transaction du type porte-monnaie electronique mixte
US4949248A (en) * 1988-07-15 1990-08-14 Caro Marshall A System for shared remote access of multiple application programs executing in one or more computers
JPH0622030B2 (ja) * 1988-10-03 1994-03-23 富士通株式会社 取引の正当性確認方式
US5016274A (en) * 1988-11-08 1991-05-14 Silvio Micali On-line/off-line digital signing
US5249293A (en) * 1989-06-27 1993-09-28 Digital Equipment Corporation Computer network providing transparent operation on a compute server and associated method
ZA907106B (en) * 1989-10-06 1991-09-25 Net 1 Products Pty Ltd Funds transfer system
US5452352A (en) * 1990-03-20 1995-09-19 Talton; David Automatic dialing system
GB9008362D0 (en) * 1990-04-12 1990-06-13 Hackremco No 574 Limited Banking computer system
AU639802B2 (en) * 1990-08-14 1993-08-05 Oracle International Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
US5221838A (en) * 1990-12-24 1993-06-22 Motorola, Inc. Electronic wallet
JPH06503218A (ja) * 1991-04-16 1994-04-07 バラス,ジョン 遠隔場所から注文を行うための方法及び装置
GB9121995D0 (en) * 1991-10-16 1991-11-27 Jonhig Ltd Value transfer system
US5453601A (en) * 1991-11-15 1995-09-26 Citibank, N.A. Electronic-monetary system
AU3777593A (en) * 1992-02-26 1993-09-13 Paul C. Clark System for protecting computers via intelligent tokens or smart cards
US5476259A (en) * 1992-06-11 1995-12-19 Gamin Weingardt Trust, A Nevada Trust Pari-mutuel electronic and live table gaming
CA2100134C (en) * 1992-09-29 1999-06-22 Raymond Otto Colbert Secure credit/debit card authorization
CH685891A5 (de) * 1993-01-18 1995-10-31 Ascom Autelca Ag Verfahren als Sicherheitskonzept gegen unbefugte Verwendung eines Zahlungsmittels beim bargeldlosen Begleichen an Zahlstellen
US5420405A (en) * 1993-02-26 1995-05-30 Chasek; Norman E. Secure, automated transaction system that supports an electronic currency operating in mixed debit & credit modes
US5524110A (en) * 1993-11-24 1996-06-04 Intel Corporation Conferencing over multiple transports
US5546583A (en) * 1994-04-05 1996-08-13 International Business Machines Corporation Method and system for providing a client/server interface in a programming language
EP0684553B1 (de) * 1994-05-26 2004-06-16 Sun Microsystems, Inc. Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen
US5459304A (en) * 1994-09-13 1995-10-17 At&T Ipm Corp. Smart card techniques for motor vehicle record administration
CA2207849C (en) * 1994-12-13 2000-02-22 Novell, Inc. Method and apparatus for providing simple, secure management of remote servers
US5583563A (en) * 1995-01-12 1996-12-10 Us West Marketing Resources Group, Inc. Method and system for delivering an application in an interactive television network

Also Published As

Publication number Publication date
WO1998006207A1 (en) 1998-02-12
HK1017539A1 (en) 1999-11-19
EP0919092A1 (de) 1999-06-02
DE69732968D1 (de) 2005-05-12
EP0919092B1 (de) 2005-04-06
AU730088B2 (en) 2001-02-22
AU3963897A (en) 1998-02-25
US5828840A (en) 1998-10-27

Similar Documents

Publication Publication Date Title
DE69732968T2 (de) System, verfahren und hergestellter gegenstand zur wartung von server-anwendungssoftware der netzwerk-kundenendgeräte und nicht-netzwerk-kundenengeräte
DE69930695T2 (de) Verfahren und Vorrichtung für ein Applikationsverteiler für eine Serverapplikation
DE19605093B4 (de) Verfahren und Vorrichtung zum Einrichten und Verwalten einer Verbindung zwischen einem Client-Computersystem und jedem einer Mehrzahl von Server-Computersystemen
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE69709959T2 (de) Verwendung von polymorphischen dateipaketen zur aktualisierung von softwarekomponenten
DE69534411T2 (de) Offenes Transaktionverwaltungszugriffsystem und Verfahren
DE69632987T2 (de) Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem
DE69730690T2 (de) Verfahren und apparat zum dynamischen austausch von objekt-nachrichten zwischen objekt-modellen
US7424540B2 (en) System and method for unified registration information collection
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE69430276T2 (de) Socketstruktur für gleichzeitigen Mehrfach-Protokollzugriff
DE69837508T2 (de) Verfahren zum Inhaltswiederauffinden über ein Netzwerk
DE69735348T2 (de) Skalierbare und erweiterbare Systemverwaltungsarchitektur mit datenlosen Endpunkten
DE10054923A1 (de) Verfahren zum Auffangen von Netzwerkpaketen in einer Computervorrichtung
US6907406B2 (en) On-demand service expanding system and method for providing services
US20060253535A1 (en) System and method for collaborative processing of distributed applications
DE69837550T2 (de) System und Verfahren zur Datenübermittlung von einer Serverapplikation an Klientknoten
DE10296636B4 (de) Erstellen verteilter Proxy-Konfigurationen
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE602004009746T2 (de) Teilen von Diensten in einem Netz
DE60122671T2 (de) Anforderungsbedingte dynamische Schnittstellengenerierung
DE19957235A1 (de) Vorrichtung, Prozeß und Produkt für den Zugriff auf Java-Anwendungen
DE60302368T2 (de) System und Verfahren um den Transfer von Daten zwischen beliebigen Komponenten untereinander zu ermöglichen
DE60218185T2 (de) Verfahren und Vorrichtung zum Wiederauffinden von Informationen in einem Netzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M