DE69912317T2 - Vorrichtung und verfahren zur bestimmung einer programmnachbarschaft für einen kundenknoten in einem kundenbedienernetzwerk - Google Patents

Vorrichtung und verfahren zur bestimmung einer programmnachbarschaft für einen kundenknoten in einem kundenbedienernetzwerk Download PDF

Info

Publication number
DE69912317T2
DE69912317T2 DE69912317T DE69912317T DE69912317T2 DE 69912317 T2 DE69912317 T2 DE 69912317T2 DE 69912317 T DE69912317 T DE 69912317T DE 69912317 T DE69912317 T DE 69912317T DE 69912317 T2 DE69912317 T2 DE 69912317T2
Authority
DE
Germany
Prior art keywords
application
server
customer system
customer
user
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
DE69912317T
Other languages
English (en)
Other versions
DE69912317D1 (de
Inventor
Martin Duursma
Anatoly Panasyuk
Anthony Ungerman
Jay Bradley PEDERSEN
C. Tom DAVIS
A. Marc BLOOMFIELD
Robert Ciraldo
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems 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
Priority claimed from US09/252,391 external-priority patent/US6643690B2/en
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of DE69912317D1 publication Critical patent/DE69912317D1/de
Application granted granted Critical
Publication of DE69912317T2 publication Critical patent/DE69912317T2/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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • Grundlagen der Erfindung
  • Gebiet der Erfindung
  • Die Erfindung bezieht sich im allgemeinen auf Kunden-Server Netwerke. Genauer bezieht sich die Erfindung auf ein Verfahren zur Information eines Kundensystems über auf einem Serversystem installierte Anwendungsprogramme, die dem Kundensystem zur Ausführung zur Verfügung stehen.
  • Hintergrund der Erfindung
  • Herkömmliche Computernetzwerke bestehen aus einer Anzahl von Computersystemen, so genannten Knoten, die mit anderen Computersystemen über Nachrichtenverbindungen in Verbindung stehen. Typischerweise sind einige der Knoten Kundenknoten und andere Knoten sind Serverknoten. Ein Kundenknoten formuliert und liefert Abfragen an einen Serverknoten. Ein Benutzer des Kundenknotens gibt die Abfrage über eine auf dem Kundenknoten ausgeführte Benutzeroberfläche ein. Der Serverknoten beurteilt die Abfragen und liefert Antworten an den Kundenknoten zur Darstellung auf der Kundenbenutzeroberfläche.
  • Gewöhnlich enthalten die Serverknoten ein Sortiment an Anwendungsprogrammen, die von den Kundenknoten geöffnet und ausgeführt werden können. Wenn der Kundenknoten ein Anwendungsprogramm startet, kann die Ausführung dieses Anwendungsprogramm in Abhängigkeit des vom Computernetzwerk befolgten Berechnungsmodells entweder auf dem Kundenknoten oder dem Serverknoten stattfinden. In einem serverbasierten Berechnungsmodell führt der Serverknoten das Anwendungsprogramm aus und nur die Steuerinformationen für die Kundenbenutzeroberfläche werden über das Computernetzwerk für den Kundenknoten zur Darstellung übertragen. In einem kundenbasierten Berechnungsmodell überträgt der Serverknoten das Anwendungsprogramm an den Kundenknoten, so daß der Kundenknoten das Programm unter Nutzung der Ressourcen des Kundenknotens ausführen kann.
  • Ein Nachteil der herkömmlicher Computernetzwerke ist, daß sich die Kundenknoten nicht bewußt sind, welche Anwendungsprogramme auf dem Serverknoten zur Ausführung verfügbar sind. In der Tat könnten sich Kundenknoten noch nicht einmal bewußt sein, welche Serverknoten im Netzwerk zur Verfügung stehen. Um verfügbare Anwendungsprogramme auf einem bestimmten Serverknoten zu finden, muß ein Benutzer des Kundenknotens den Serverknoten finden und darauf Zugriff erhalten und eine Verzeichnisliste der auf dem Serverknoten existierenden Programme erstellen. Sogar dann kann es sein, daß die Liste dem Benutzer nicht die Anwendungsprogramme anzeigt die für die er zur Ausführung berechtigt ist.
  • Sobald der Benutzer sich über die Anwendungsprogramme auf dem Server bewußt ist, muß er ferner eine Verbindung zu diesen Anwendungsprogrammen herstellen. Die Industrie hat Softwaretools entwickelt, die den Benutzer bei der Verbindungsherstellung unterstützen, zum Beispiel Remote Application Manager hergestellt von Citrix Systems, Inc., in Ft. Lauderdale Florida. Der Remote Application Ma nager ist ein auf dem Kundenknoten installiertes Anwendungsprogramm. Dieses Anwendungsprogramm führt einen Administrator des Kundenknotens zur Informationseingabe, die eine Verbindung zu einer, auf einem bestimmten Serverknoten veröffentlichte Anwendung aufbaut. Der Administrator liefert solche Informationen, wie etwa den Namen der Sitzung, das Protokoll zum Zugriff auf den Serverknoten, den Servernamen oder IP-Adresse oder die veröffentlichte Anwendung. Annährungen dieser Art erfordern, daß der Administrator, um eine Verbindung aufbauen zu können, die Informationen kennt und die Details der Protokolle und Domain versteht.
  • Die Au-A-199853031 offenbart ein System zur automatischen Erstellung von Datenbanken, die Industrie-, Service-, Produkt- und Themenklassifizierungsdaten, Kontaktdaten, geographische Standortdaten (CCG-Daten) und Links zu Webseiten von HTML-, XML-, SGML- verschlüsselten, auf Computernetzwerken, wie etwa das Internet oder Intranets, aufgestellten Webseiten beinhalten. Die Webseiten, die HTML-, XML- oder SGML- verschlüsselte CCG-Daten, Datenbankenupdatesteuerungen, und Webbrowserdarstellungssteuerungen beinhalten, werden unter Verwendung einfacher Texteditoren, HTML, XML oder SGML-Editoren oder zweckgebaute Editoren erschaffen und modifiziert. Die CCG-Datenbanken können auf Verweise (URLs) auf Webseiten hin, unter Verwendung von Nachfragen, die auf eine oder mehrere der Punkte der CCG-Daten verweisen, durchsucht werden. Alternativ können die auf die CCG-Daten in den Datenbanken verweisenden Nachfragen Kontaktdaten ohne Webseitenbezug bereitstellen. Eine Datenduplikation und eine Koordinierung werden reduzierten durch ein Einschließen von Steuerungen in der Webseiten CCG-Daten Darstellung, die von Webbrowsern verwendet werden, um die gleichen Daten, die zum automatischen Update der Datenbank verwendet werden, für die Darstellung zu formatieren.
  • Die US-A-5, 689, 708 offenbart einen Ressourcenmanager in einem Kunden/Server Computernetzwerk, der die Verfügbarkeit der Systemressourcen steuert. Ein Systemadministrator generiert einen Satz Profile, die genau angeben, welche Systemressourcen jeder Benutzer für jedes der vielen Anwendungsprogramme verwenden darf. Einzelne Anwendungsprogramme können ihre möglichen Auswahlen bezüglich solcher Systemressourcen gemäß dem verwendeten Profil auf dynamische Weise intern konfigurieren.
  • Die vorliegende Erfindung ist wie beansprucht in den angefügten Ansprüchen.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung ermöglicht es dem Benutzer eines Kundensystems, über verfügbare Anwendungsprogramme auf Servern in einem Netzwerk informiert zu werden, ohne daß der Benutzer wissen muß, wo er solche Anwendungsprogramme finden kann oder ohne zur Verbindung zu solchen Anwendungsprogrammen nötige, technische Informationen eingeben zu müssen.
  • In einem Aspekt bezieht sich die Erfindung auf ein Verfahren zur Darstellung von Anwendungsprogrammen für ein Kundensystem in einem das Kundensystem und eine Vielzahl von Servern beinhaltenden Netzwerk. Die Server beinhalten einen Hostserver, der anwendungsbezogene, mit den auf der Vielzahl von Servern in einem Netzwerk gehosteten Anwendungsprogrammen übereinstimmende Informatio nen empfängt. Benutzerausweise werden vom Kundensystem empfangen. Ob jedes gehostete Anwendungsprogramm dem Kundensystem zur Ausführung verfügbar ist, wird anhand der Benutzerausweise und den empfangenen anwendungsbezogenen Informationen ermittelt. Eine Information wird vom Hostserver zum Kundensystem übertragen, um dem Kundensystem jedes gehostete Anwendungsprogramm, das dem Kundensystem zur Ausführung verfügbar ist, anzuzeigen. In manchen Gestaltungen erschafft der Hostserver ein Ausgabedisplay, das die anwendungsbezogenen Informationen, wie etwa eine Hyper Text Markup Language (HTML) Datei, eine Extended Markup Language (XML) oder andere Structured General Markup Language (SGML) Datei enthält.
  • Der Hostserver kann das Kundensystem anhand der empfangenen Benutzerausweise authentisieren. Wenn das Kundensystem eines der verfügbaren Anwendungsprogramme zur Ausführung auswählt, kann die Anwendung ausgeführt werden, ohne daß die zusätzliche Eingabe von Benutzerausweisen durch den Benutzer des Kundensystems erforderlich ist, obwohl sich die ausgewählte Anwendung auf einem vom Hostserver verschiedenen Server befindet.
  • In einer Gestaltung wird eine Verbindung zwischen dem Kundensystem und dem Hostserver unter Verwendung eines Independent Computing Architecture (ICA Protokolls hergestellt. Das ICA Protokoll kann einen virtuellen Kanal zur Informationsübertragung an das Kundensystem herstellen, durch die jedes gehostete, für das Kundensystem verfügbare Anwendungsprogramm angezeigt wird. Eine Anforderung zur Ausführung eines der verfügbaren gehosteten Anwendungsprogramme kann über die Verbindung empfangen werden. Als Reaktion auf die Anforderung kann ein zweiter Kanal zwischen dem Kundensystem und dem Hostserver eingerichtet wer den, um eine mit einer Ausführung des angeforderten Anwendungsprogramm verbundene Information auszutauschen. In einer anderen Gestaltung kann eine Verbindung zwischen dem Hostserver und einem zweiten, die angeforderte Anwendung hostenden Server als Reaktion auf die Anforderung hergestellt werden. Eine mit einer Ausführung des angeforderten Anwendungsprogramm verbundene Information kann zwischen dem zweiten Server und dem Kundensystem über den Hostserver ausgetauscht werden.
  • Eine zweite Anforderung zur Ausführung eines zweiten der verfügbaren gehosteten Anwendungsprogrammen kann über die Verbindung zwischen dem Hostserver und dem Kundensystem empfangen werden. Eine andere Verbindung zwischen dem Hostserver und einem die angeforderte Anwendung hostenden dritten Server kann als Reaktion auf die zweite Anforderung errichtet werden. Eine mit einer Ausführung des als zweites angeforderten Anwendungsprogramm verbundene Information kann zwischen dem dritten Server und dem Kundensystem über den Hostserver ausgetauscht werden. Eine von den zweiten und dritten Servern empfangene Information kann zur Übertragung an das Kundensystem zusammengefasst werden.
  • In noch einer anderen Gestaltung kann eine Anwendungsinformation als Antwort auf die erste Anforderung vom Hostserver an das Kundensystem gestellt werden. Eine zweite Verbindung kann zwischen dem Kundensystem und einem zweiten die angeforderte Anwendung hostenden, Server als Antwort auf die gestellte Anwendungsinformation errichtet werden.
  • Der Hostserver kann die verfügbare Anwendungsinformation als Reaktion auf eine Anforderung durch das Kundensystem übertragen. Die übertragene Information kann ein grafisches Benutzeroberflächendisplay, das die verfügbaren Anwendungsprogramme darstellenden Icons aufweist, auf dem Kundensystem erzeugen. Die übertragene Information kann ebenfalls jedes gehostete Anwendungsprogramm aufführen, zu dessen Nutzung das Kundensystem nicht autorisiert ist.
  • Der Hostserver kann mit jedem der anderen Server kommunizieren, um die von solchen anderen Servern gehosteten Anwendungsprogramme zu ermitteln und eine Datenbank zur Speicherung der anwendungsbezogenen Informationen zu entwickeln. Die Datenbank kann jedem der anderen Server aus der Vielzahl zugänglich sein oder jeder der anderen Server kann eine Datenbank zur Speicherung der anwendungsbezogenen Informationen aufrecht erhalten.
  • In einem anderen Aspekt bezieht sich die Erfindung auf eine Methode zur Darstellung einer jeden von einem Server gehosteten, für das Kundensystem verfügbaren Anwendung auf dem Kundensystem. Benutzerausweise werden vom Kundensystem empfangen. Anwendungsbezogene Informationen werden durch den Server gepflegt. Ob jede Anwendung, die auf dem Server gehostet wird, dem Kundensystem zur Ausführung zur Verfügung steht, wird anhand der Benutzerausweise und den anwendungsbezogenen Informationen ermittelt. Informationen, die jede für das Kundensystem verfügbare Anwendung anzeigen, werden vom Server an das Kundensystem übertragen.
  • In einem anderen Aspekt bezieht sich die Erfindung auf einen Server, der ein mit von der Vielzahl an Servern gehosteten Anwendungsprogrammen übereinstimmende, anwendungsbezogene Informationen sammelndes Servicemodul beinhaltet. Eine Datenbank speichert die zusammengetragenen anwendungsbezogenen Infor mationen. Ein Empfänger empfängt Benutzerausweise vom Kundensystem. Das Servicemodul bestimmt für jedes Anwendungsprogramm, das von der Mehrzahl an Servern gehostet wird, an hand der Nutzerausweise und der in der Datenbank gespeicherten, anwendungsbezogenen Informationen, ob das gehostete Anwendungsprogramm für den Nutzer des Kundensystems zur Ausführung zur Verfügung steht. Ein Sender überträgt Informationen an das Kundensystem. Das Servicemodul kann ein Datagramm an andere Server in der Vielzahl übertragen, um die anwendungsbezogenen, mit den auf diesen Servern gehosteten Anwendungsprogrammen übereinstimmende, Informationen zu sammeln. Die übertragenen Informationen zeigen einem Benutzer des Kundensystems jedes gehostete Anwendungsprogramm, das dem Benutzer des Kundensystems zur Benutzung zur Verfügung steht. Der Sender kann die verfügbaren Anwendungsinformationen unter Verwendung eines virtuellen Kanal-Kommunikationsprotokolls versenden.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird im einzelnen in den angefügten Ansprüchen angegeben. Die vorherigen und weiteren Vorteile der Erfindung können mit Bezug auf die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen besser verstanden werden, wobei:
  • 1 ist ein Diagramm einer Gestaltung eines Kundenknotens in Kommunikation mit einer Gruppe von Serverknoten über ein Netzwerk, wobei eine Programmnachbarschaft des Kundenknotens gemäß dem Prinzip der Erfindung bestimmt werden kann;
  • 2A ist ein Blockdiagramm, das einen beispielhaften Prozess darstellt, in dem einer der Serverknoten die Ausführung eines Anwendungsprogramm zur Ermittlung der Programmnachbarschaft eines Kundenknotens initiieren kann;
  • 2B ist ein Blockdiagramm, das einen beispielhaften Prozess darstellt, in dem ein Kundenknoten die Ausführung eines Anwendungsprogramm zur Ermittlung der Programmnachbarschaft eines Kundenknotens initiieren kann;
  • 2C ist ein Blockdiagramm, das einen beispielhaften Prozess darstellt, in dem ein Kundenknoten eine Webbrowseranwendung zur Ermittlung seiner Programmnachbarschaft nutzt;
  • 3A, 3B und 3C sind Blockdiagramme, die beispielhafte Prozesse darstellen, in denen ein Kundenknoten ein Anwendungsprogramm aus einem auf diesem Kundenknoten dargestellten Programmnachbarschaftsfenster ausführen kann;
  • 3D ist ein Blockdiagramm, das einen beispielhaften Prozess darstellt, in dem ein Kundenknoten ein Anwendungsprogramm von einer auf diesem Kundenknoten dargestellten Programmnachbarschaftswebseite ausführen kann;
  • 4 ist ein Blockdiagramm einer kundenbasierten Berechnungsgestaltung, in der ein eine installierte Programmnachbarschaftsanwendung der Erfindung aufweisender Kundenknoten in Kommunikation mit einem der Serverknoten steht;
  • 5 ist ein Blockdiagramm einer serverbasierten Berechnungsgestaltung, in der ein Kundenknoten in Kommunikation mit einem eine installierte Programmnachbarschaftsanwendung der Erfindung aufweisender Serverknoten steht;
  • 6A ist ein Screenshot eines beispielhaften Displays auf dem Bildschirm eines Kundenknotens, nachdem das Programmnachbarschaftsanwendungsprogramm ausgeführt wird;
  • 6B ist ein anderer Screenshot eines beispielhaften Displays auf dem Bildschirm eines Kundenknotens, nachdem das Programmnachbarschaftsanwendungsprogramm ausgeführt wird;
  • 7 ist ein Ablaufdiagramm, das eine Gestaltung eines Prozesses repräsentiert, in dem ein Kundenknoten über die Verfügbarkeit der auf dem Anwendungsserver zur Benutzung stehenden Anwendungsprogramme informiert wird.
  • Detaillierte Beschreibung
  • 1 zeigt ein erstes Berechnungssystem (Kundenknoten) (10) und ein zweites Berechnungssystem (Kundenknoten) (20) in Kommunikation mit einem Berechnungssystem (Anwendungsserver) (30, 32, 34 und 36) über ein Netzwerk 40). Das Netzwerk (40) kann ein „Local Area Network" (LAN) oder ein „Wide Area Network" (WAN), wie etwa das Internet oder World Wide Web sein. Benutzer der Kundenknoten (10, 20) können mit dem Netzwerk (40) über eine Vielfalt von Verbindungen, inklusive Telefonleitungen, LAN oder WAN Verbindungen (zum Beispiel T1, T3, 56 kb, x.25), Breitband Verbindungen (ISDN, Frame Relay, ATM) und Funkverbindungen, verbunden werden. Die Verbindungen können unter Verwendung einer Vielfalt von Kommunikationsprotokollen (zum Beispiel TCP/IP, IPX, SPX, Net-BIOS, Ethernet, RS232 und direkt asynchrone Verbindungen) hergestellt werden. Der Kundenknoten (10) kann irgendein Personalcomputer (zum Beispiel 286, 386, 486, Pentium, Pentium II, Macintosh Computer), windowsbasiertes Terminal, Netzwerk Computer, Funkvorrichtung, Informationsvorrichtung, RISC Power PC, X-Vorrichtung, Workstation, Minicomputer, Mainframecomputer oder andere Berechnungsvorrichtung sein, die einen windowsbasierten Desktop und ausreichend beständigen Speicher zur Ausführung von von den Anwendungsservern (30, 32, 34) über das Netzwerk (40) herruntergeladene, Anwendungsprogramme aufweisen. Windows orientierte Plattformen, die vom Kundenknoten (10) unterstützt werden, beinhalten Windows 3.x, Windows 95, Windows 98, Windows NT 3.51, Windows NT 4.0, Windows CE, Macintosh, Java und Unix. Der Kundenknoten (10) kann einen Bildschirm (12), eine Tastatur (14), einen Speicher (16) zur Speicherung herruntergeladener Anwendungsprogramme, einen Prozessor (17) und eine Maus (18) umfassen. Der Speicher (16) kann beständigen oder flüchtigen Speicher beinhalten. Der Prozessor (17) kann das Anwendungsprogramm lokal auf dem Kundenknoten (10) ausführen und einen entstehenden Windowsbasierten Desktop auf dem Bildschirm (12) darstellen. Solche lokalen Vorgänge auf dem Kundenknoten (10) sind gemäß dem zuvor beschriebenen kundenbasiertes Berechnungsmodell.
  • Alternativ kann der Kundenknoten (20) irgendein Terminal (windows- oder nicht windowsbasiert) oder Dünnkundenvorrichtung sein, die gemäß einem serverbasiertem Berechnungsmodell arbeiteten. In einem serverbasierten Berechnungsmodell tritt die Ausführung der Anwendungsprogramme gänzlich nur auf den Anwen dungsservern (30, 32, 34) auf und die Benutzeroberfläche, Tastaturanschläge und Mausbewegungen werden über das Netzwerk (40) an den Kundenknoten (20) übertragen. Die Benutzeroberfläche kann textbetrieben (zum Beispiel DOS) oder grafikbetrieben (zum Beispiel Windows) sein. Plattformen, die vom Kundenknoten 20) unterstützt werden, beinhalten Dos und Windows CE für Windowsbasierte Terminals. Der Kundenknoten (20) beinhaltet einen Bildschirm (22), eine Tastatur (24 ), eine Maus (28), einen Prozessor (nicht dargestellt) und beständigen Speicher nicht dargestellt).
  • Die Anwendungsserver (30, 32, 34 und 36) können irgendeine Berechnungsvorrichtung sein, die Zugriff auf andere Teile des Netzwerks (zum Beispiel Workstations, Drucker) steuert. Es muß verstanden werden, daß mehr oder weniger Anwendungsserver an das Netzwerk (40) angeschlossen werden können. Diese Server (30, 32, 34 und 36) können gemäß einem kundenbasierten Berechnungsmodell oder einem serverbasierten Berechnungsmodell, wie zuvor beschrieben, arbeiten.
  • Jeder Anwendungsserver (30, 32, 34 und 36) hostet ein oder mehrere Anwendungsprogramme, auf die von den Kundenknoten (10) und (20) zugegriffen werden kann. Anwendungen, die den Kundenknoten zur Ausführung verfügbar gemacht werden, werden veröffentlichte Anwendungen genannt. Beispiele solcher Anwendungen beinhalten Textverarbeitungsprogramme, wie etwa MICROSOFT WORD®, und Tabellenkalkulationsprogramme wie etwa MICROSOFT EXEL®, die beide von der Microsoft Corporation von Redmond, Washington hergestellt werden, Finanzverwaltungsprogramme, Kundenregistrierungsprogramme, Programme zur Bereitstellung von technischer Hilfestellungsinformationen, kundendatenbankanwendungen oder anwendungseingestellte Manager.
  • Die Server (30, 32 und 34) können der gleichen Domain (38) angehören. Im Netzwerk (40) ist eine Domain ein Unternetzwerk, die aus einer Gruppe von Anwendungsservern und Kundenknoten unter Steuerung einer Sicherheitsdatenbank besteht. Eine Domain kann eine oder mehrere „Serverfarmen" beinhalten. Eine Serverfarm ist eine Gruppe von Servern, die miteinander verbunden sind, um als ein einzelnes Serversystem zu agieren, um eine zentrale Authentisierung bereitzustellen. Wechselweise kann eine Serverfarm eine oder mehrere Domains enthalten. Damit zwei Server verschiedener Domains zur gleichen Serverfarm gehören können, kann eine Vertrauensbeziehung zwischen den beiden Domains erforderlich sein. Eine Vertrauensbeziehung ist eine Verbindung zwischen unterschiedlichen Domains, die es den Benutzern erlaubt, auf die mit jeder Domain verbundenen Ressourcen mit gerade einmal einer Einlogg-Authentisierung zuzugreifen.
  • In einer Gestaltung ist der Anwendungsserver (36) in einer anderen Domain als die Domain (38). In einer anderen Gestaltung ist der Server (36) in derselben Domain wie die Server (30, 32, und 34). Für beide Gestaltungen können die Anwendungsserver (30, 32, und 34) zu einer Serverfarm gehören, währenddessen der Server (36) zu einer anderen gehört oder alle Anwendungsserver (30, 32, 34 und 36) können zur gleichen Serverfarm gehören. Wenn ein neuer Server mit dem Netzwerk (40) verbunden wird schließt der neue Server sich entweder einer bestehenden Serverfarm an oder gründet eine neue Serverfarm.
  • Das Netzwerk (40) kann einen Masterserverknoten beinhalten, um den Belastungsstand unter den Anwendungsservern (30, 32, 34 und 36) im Gleichgewicht zu halten. Der Masterserverknoten kann einer der Anwendungsserver (30, 32, 34 oder 36) sein. Der Masterserverknoten beinhaltet eine Liste von Serveradressen und Belastungsinformationen, übereinstimmend mit jedem der anderen Anwendungsserver. Der Masterserverknoten kann anhand der Liste verfügbarer Server und entsprechender Belastungsstände den Kundenknoten an einen bestimmten Serverknoten leiten, um darauf eine Anwendung auszuführen. Alternativ können die Anwendungsserver 30, 32, 34, 36) unter sich auf „peer-to-peer" Weise zusammenarbeiten, um Administrationsinformationen wie etwa Belastungsstände auszutauschen, wobei es irgendeinem Server (30, 32, 34, 36) erlaubt ist, auf eine Anforderung eines Kundenknotens (10, 20) zu antworten.
  • Pogrammnachbarschaft
  • Gemäß den Prinzipien der Erfindung kann ein Benutzer beider Kundenknoten (10, 20) die Verfügbarkeit von durch die Anwendungsserver (30, 32, 34 und 36) im Netzwerk (40) gehostete Anwendungsprogrammen erfahren, ohne daß der Benutzer wissen muß, wo er solche Anwendungen findet oder technische Informationen eingeben muß, die zur Verbindung mit solchen Anwendungen erforderlich sind. Diese verfügbaren Anwendungsprogramme umfassen die „Programmnachbarschaft" des Benutzers. Ein System zur Bestimmung einer Programmnachbarschaft für einen Kundenknoten beinhaltet ein Anwendungsprogramm (worauf sich im folgenden als die „Programmnachbarschafts-" Anwendung bezogen wird), Speicher zum Speichern der Komponenten des Anwendungsprogramms und einen Prozessor zur Ausführung des Anwendungsprogramms.
  • Die Programmnachbarschaftsanwendung kann im Speicher des Kundenknotens (10) und/oder auf den Anwendungsservern (30, 32, 34 und 36) installiert werden, wie im folgenden beschrieben wird. Die Programmnachbarschaftsanwendung ist eine Sammlung von Services -, Anwendungsprogrammoberflächen-(APIs ) und Benutzeroberflächen-(UI)Programmen, die dem Benutzer der Kundenknoten (10, 20) solche Anwendungsprogramme anzeigen, die von den Anwendungsservern gehostet werden und den Kundenknoten zur Nutzung zur Verfügung steht (zum Beispiel zur Ausführung).
  • Ein Anwendungsserver, der gemäß der Programmnachbarschaftsanwendung arbeitet, sammelt anwendungsbezogene Informationen von jedem der Anwendungsserver in einer Serverfarm. Die anwendungsbezogenen Informationen für jede gehostete Anwendung beinhalten zum Beispiel eine Adresse für den die Anwendung hostenden Server, den Anwendungsnamen, den Benutzer oder Benutzergruppe, die zur Nutzung der Anwendung berechtig sind, und die für den Kundenknoten minimal vorausgesetzten Fähigkeiten, bevor eine Verbindung zur Ausführung der Anwendung erstellt werden kann. Zum Beispiel kann die Anwendung Videodaten bewegen, und daher ist eine minimal vorausgesetzte Fähigkeit, daß der Kundenknoten Videodaten unterstützt. Andere Beispiele sind, daß der Kundenknoten Audiodaten unterstützt oder verschlüsselte Daten verarbeiten kann. Die anwendungsbezogenen Informationen können in einer Datenbank gespeichert werden, wie nachfolgend präzise beschrieben wird.
  • Wenn sich ein Kundenknoten in das Netzwerk (40) einloggt, stellt der Benutzer des Kundenknotens Benutzerausweise. Benutzerausweise beinhalten typischerweise den Benutzernamen des Kundenknotens, das Paßwort des Benutzers und den Domainnamen, für den der Benutzer autorisiert ist. Die Benutzerausweise können von intelligenten Karten, zeitbasierte Zeichen, Sozialsicherheitsnummern, Benutzer paßwörtern, persönliche Identifikationsnummern (PIN), digitalen Zertifikaten, die auf symmetrischen Schlüsseln oder elliptischen Schlüsselkryptographie, biometrischen Charakteristiken des Benutzers oder anderen Mitteln, durch die die Identifikation des Benutzers des Kundenknotens erhalten werden kann, erhalten werden und zur Authentisierung übertragen werden. Der dem Kundenknoten antwortende Server kann den Benutzer anhand der Benutzerausweise authentisieren. Die Benutzerausweise können da gespeichert werden, wo auch die Programmnachbarschaftsanwendung ausgeführt wird. Wenn der Kundenknoten (10) die Programmnachbarschaftsanwendung ausführt, können die Benutzerausweise auf dem Kundenknoten (10) gespeichert werden. Wenn ein Anwendungsserver die Programmnachbarschaftsanwendung ausführt, könne die Benutzerausweise auf diesem Server gespeichert werden.
  • Von den Benutzerausweisen und den anwendungsbezogenen Informationen kann der Server des weiteren ermitteln, welche der von den Anwendungsservern gehosteten Anwendungsprogrammen zur Nutzung durch den Benutzer des Kundenknotens zur Verfügung stehen. Der Server überträgt Informationen, die die dem Kundenknoten zur Verfügung stehenden Anwendungsprogramme darstellt. Dieser Prozess beseitigt den Zwang für den Benutzer des Kundenknotens, Anwendungsverbindungen aufzubauen. Des weiteren kann ein Administrator des Servers den Zugang zu Anwendungen unter den verschiedenen Kundenknotennutzern steuern.
  • Die Benutzerauthentisierung, die durch den Server ausgeführt wird, kann für die Nutzung eines jeden dem Kundenknoten angezeigten, gehosteten, Anwendungsprogramms ausreichen, obwohl sich solche Anwendungen auf einem anderen Server befinden können. Folglich kann, wenn der Kundenknoten eines der gehoste ten Anwendungsprogramme startet (zum Beispiel die Ausführung davon initiiert), die Eingabe zusätzlicher Benutzerausweise durch den Benutzer zur Authentisierung zur Nutzung dieser Anwendung unnötig sein. Auf diese Weise kann eine einmalige Eingabe der Benutzerausweise ausreichen, um die verfügbaren Anwendungen zu bestimmen und zum Start solcher Anwendungen zu authentisieren, ohne daß ein zusätzlicher manueller Einloggvorgang durch den Kundenbenutzer benötigt wird.
  • Entweder ein Kundenknoten (10, 20) oder ein Anwendungsserver kann die Programmnachbarschaftsanwendung, wie sie in Verbindung mit 2A bis 2C beschrieben wurde, starten. Die Ergebnisse werden auf dem Bildschirm (12, 22) des Kundenknotens (10, 20) dargestellt. In einem grafischen, windowsbasierten Implement können die Ergebnisse in einem Programmnachbarschaftsfenster dargestellt werden, und jede zur Verfügung stehende Anwendungsprogramm kann durch einen grafischen Icon in diesem Fenster dargestellt werden.
  • Eine Gestaltung der Programmnachbarschaftsanwendung filtert die Anwendungsprogramme heraus, zu deren Nutzung der Kundenknoten (10, 20) nicht autorisiert ist und stellt nur berechtigte (zum Beispiel verfügbare) Programme dar. In anderen Gestaltungen kann die Programmnachbarschaftsanwendung sowohl die berechtigten wie auch die unberechtigten Anwendungen darstellen. Wenn unberechtigte Anwendungen nicht aus dem Display gefiltert werden kann, eine Nachricht angezeigt werden, die darauf hinweist, daß solche Anwendungen nicht verfügbar sind. Alternativ kann die Programmnachbarschaftsanwendung dem Benutzer eines Kundenknotens alle von den Anwendungsservern (30, 32, 34, 36) gehosteten Anwendungen anzeigen, ohne auszuweisen welche Anwendungen der Kundenknoten (10, 20) ausführen kann. Eine Autorisierung kann später ermittelt werden, wenn der Kundenknoten (10, 20) versucht, eine dieser Anwendungen auszuführen.
  • 2A zeigt einen beispielhaften Prozeß, in dem ein Server das Programmnachbarschafts-(PN)Programm ausführt und dem Kundenknoten (10) die Ergebnisse der PN Anwendung darstellt. Der Server kann die PN Anwendung als Reaktion auf eine Anforderung (42) durch den Kundenknoten (10) für ein bestimmtes Anwendungsprogramm ausführen. Die Anforderung gelangt zum Masterserverknoten, in diesem Beispiel zum Server (30). Der Masterserverknoten (30), Belastungsstand und Anwendungsverfügbarkeit in Betracht ziehend, zeigt (Pfeil 43) dem Kundenknoten (10), daß die gesuchte Anwendung auf dem Server (32) zur Verfügung steht. Der Kundenknoten (10) und der Server (32) richten eine Verbindung ein Pfeile 45 und 46). Durch diese Verbindung kann der Server (32) den ausführbaren Code der speziellen Anwendung zum Kundenknoten (10) übertragen, wenn der Kundenknoten (10) und der Server (32) gemäß dem kundenbasierten Berechnungsmodell arbeiten. Alternativ kann der Server (32) die spezielle Anwendung ausführen und übermittelt die grafische Benutzeroberfläche an den Kundenknoten 10), wenn der Kundenknoten (10) und der Server (32) gemäß dem serverbasierten Berechnungsmodell arbeiten. Zusätzlich kann entweder der Masterserverknoten 30) oder der Server (32) die Programmnachbarschaftsanwendung (41) ausführen und die Ergebnisse (Pfeile 43 oder 46) an den Kundenknoten (10) geben, so daß bei Anforderung der Programmnachbarschaftsanwendung durch den Kundenknoten (10) die Programmnachbarschaftsergebnisse bereits auf dem Kundenknoten (10) verfügbar sind.
  • 2B zeigt einen anderen beispielhaften Prozeß, in dem der Kundenknoten 10) die Ausführung der Programmnachbarschaftsanwendung einleitet und ein Server dem Kundenknoten (10) die Ergebnisse der PN Anwendung anzeigt. Der Kundenknoten (10) startet die Programmnachbarschaftsanwendung (zum Beispiel durch Klicken auf den die Anwendung darstellenden Programmnachbarschaftsicon ( 41)). Die Anforderung (50) für die Programmnachbarschaftsanwendung wird an den Masterserverknoten gerichtet, in diesem Beispiel den Server (30). Der Masterserverknoten (30) kann die Programmnachbarschaftsanwendung ausführen, wenn sich die Anwendung auf dem Masterserverknoten (30) befindet, und dem Kundenknoten (10) die Ergebnisse anzeigen. Alternativ kann der Masterserverknoten (30) dem Kundenknoten (10) zeigen (Pfeil 51), daß die Programmnachbarschaftsanwendung (41) auf einem anderen Server verfügbar ist, in diesem Beispiel dem Server (32). Der Kundenknoten (10) und der Server (32) errichten eine Verbindung Pfeile 53 und 54) durch die der Kundenknoten die Ausführung der Programmnachbarschaftsanwendung (41) anfordert. Der Server (32) kann die Anwendung (41) ausführen und die Ergebnisse (zum Beispiel die grafische Benutzeroberfläche) an den Kundenknoten (10) übertragen.
  • 2C stellt einen weiteren beispielhaften Prozeß dar, in dem der Kundenknoten (20) die Ausführung der Programmnachbarschaftsanwendung, in diesem Beispiel über das World Wide Web, anfordert. Ein Kundenknoten (20) führt einen Webbrowser (80) aus, wie etwa Netscape Navigator, hergestellt von Netscape Communications, Inc. in Mountain View, California oder Microsoft Internet Explorer, hergestellt von Microsoft Corporation in Redmond, Washington.
  • Der Kundenknoten (20) übermittelt eine Anforderung (82) über den Webbrowser (80), um Zugang auf eine Uniform Resource Locator (URL) Adresse übereinstimmend mit einer auf dem Server (30) gespeicherten HTML Seite zu erlangen. In einigen Gestaltungen ist die erste, dem Kundensystem (20) durch den Server (30) angezeigte HTML Seite (84) eine Autorisierungsseite, um den Kundenknoten (20) zu identifizieren.
  • Die Autorisierungsseite ermöglicht es dem Kundenknoten (20), Benutzerausweise über den Webbrowser (80) an den Server (30) zur Autorisierung zu übertragen. Übertragene Benutzerausweise werden entweder durch den Server (30 oder einem anderen Server in der Farm überprüft. Dies ermöglicht die Projektion einer SicherheitsDomain auf den Server (30). Zum Beispiel wenn der Server (30) das WINDOWS NT operierende System ausführt, hergestellt von Microsoft Corporation in Redmond, Washington und der Autorisierungsserver das UNIX operierende System ausführt, kann von einer Projektion der UNIX SicherheitsDomain auf den Server (30) gesprochen werden. Benutzerausweise können „im Reinen" oder verschlüsselt übertragen werden. Zum Beispiel können die Benutzerausweise über eine Secure Socket Layer (SSL) Verbindung übertragen werden, die Daten unter Verwendung des RC3 Algorithmus verschlüsselt, hergestellt von RSA Data Security, Inc. in San Mateo, California.
  • Der Server (30) kann die vom Kundenknoten (20) empfangenen Benutzerausweise überprüfen. Alternativ kann der Server (30) die Benutzerausweise an einen anderen Server zur Autorisierung leiten. In dieser Gestaltung kann der Autorisierungsserver in einer anderen Domain als der Server (30) liegen. Autorisierte Benutzerausweise des Kundenknotens (20) können auf dem Kundenknoten (20) in ei nem Persession Cookie oder in vom Webbrowser (80) nicht dargestellten Feldern oder auf irgendeine andere Weise, die in der Unterhaltung von Webseiten üblich ist, gespeichert werden. In einigen Gestaltungen kann eine Serverfarm, mit dem der Server (30) verbunden ist, Gastbenutzer zulassen, zum Beispiel Benutzer, die keine zugewiesenen Benutzerausweise für den Zugang auf von den Servern in der Farm gehostete Anwendungen besitzen. In diesen Gestaltungen kann die Autorisierungsseite einen Mechanismus, etwa durch Button oder Menüauswahl, hervorbringen, der es dem Kundenknoten (20) ermöglicht, sich als Gastbenutzer auszuweisen. In anderen dieser Gestaltungen kann der Server (30) die Autorisierungsseite vollkommen weglassen.
  • Noch immer in Bezug auf 2C bereitet der Server eine HTML Seite (88), die ein Programmnachbarschaftsfenster (58) beinhaltet, in dem grafische Icons (57, 57') erscheinen, die, dem Kundenknoten (20) verfügbare, Anwendungsprogramme anzeigen, vor und überträgt diese an den Kundenknoten (20), sobald der Kundenknoten (20) durch den Server (30) autorisiert wurde. Ein Benutzer des Kundenknotens (20) bewirkt die Ausführung einer durch Icon (57) dargestellten Anwendung durch Klicken des Icons (57).
  • 3A zeigt einen beispielhaften Prozeß der Kommunikation zwischen dem Kundenknoten (10), dem Masterserverknoten, in diesem Beispiel dem Server (30) und dem Server (32). Der Kundenknoten (10) hat eine aktive Verbindung (72) mit dem Server (32). Der Kundenknoten (10) und Server (32) nutzen die aktive Verbindung (72) zum Austausch von die Ausführung eines ersten Anwendungsprogramms betreffenden Informationen. Die Benutzerausweise des Kundenknoten (10) sind auf dem Kundenknoten gespeichert. Eine solche Speicherung der Benutzerausweise kann im Cache Speicher oder beständigen Speicher erfolgen.
  • In dieser Gestaltung wird die Programmnachbarschaftsanwendung auf dem Kundenknoten (10) ausgeführt. Das Kundenknotendisplay beinhaltet ein Programmnachbarschaftsfenster (58), in dem ein das zweite Anwendungsprogramm darstellender grafischer Icon (57) erscheint. Ein Benutzer des Kundenknotens (10) kann das zweite Anwendungsprogramm durch Doppelklicken des Icons (57) mit der Maus starten. Die Anforderung wird zum Masterserverknoten (30) über eine Verbindung (59) geleitet. Der Masterserverknoten (30) zeigt dem Kundenknoten (10) über die Verbindung (59), daß die gesuchte Anwendung auf dem Server (32) verfügbar ist. Der Kundenknoten (10) signalisiert dem Server (32), daß eine zweite Verbindung (70) aufgebaut werden soll. Der Server (32) fordert die Benutzerausweise vom Kundenknoten (10) an, um den Zugang zum zweiten Anwendungsprogramm zu autorisieren. Bei einer erfolgreichen Autorisierung richten der Kundenknoten (10) und der Server (32) eine zweite Verbindung (70) ein und tauschen die Ausführung des zweiten Anwendungsprogramms betreffende, Informationen aus. Folglich kommunizieren der Kundenknoten (10) und der Server (32) miteinander über mehrere Verbindungen.
  • 3B zeigt einen beispielhaften Prozeß der Kommunikation zwischen dem Kundenknoten (20), dem Masterserverknoten, in diesem Beispiel dem Server (30) und Servern (32, 34 und 36). Der Kundenknoten (20) hat eine aktive Verbindung ( 73) mit dem Server (32). Der Kundenknoten (20) und der Server (32) können die aktive Verbindung (73) zum Austausch von die Ausführung des ersten Anwendungsprogramms betreffenden Informationen nutzen. Die Benutzerausweise des Kundenknotens (20) können auf dem Server (32) im Cachespeicher oder im beständigen Speicher gespeichert werden.
  • In dieser Gestaltung läuft die Programmnachbarschaftsanwendung auf dem Server (32). Der Server (32) umfaßt eine Software, die eine serverbasierte Kundenmaschine (62) zur Verfügung stellt, die es dem Server (32) ermöglicht in der Kapazität des Kundenknoten (20) zu arbeiten. Der Bildschirm des Kundenknoten 20) weist ein Programmnachbarschaftsfenster (58) auf, in dem jeweils ein zweites Anwendungsprogramm und drittes Anwendungsprogramm wiedergebende, grafische Icons (57, 57') erscheinen. Ein Benutzer des Kundenknoten (20) kann das zweite Anwendungsprogramm durch Doppelklicken des Icons (57) ausführen. Die Anforderung zur Ausführung des zweiten Anwendungsprogramms wird über eine aktive Verbindung (73) an den Server (32) geleitet, und der Server (32) leitet die Anforderung an den Masterserverknoten (30) (Pfeil 65) weiter.
  • Der Masterserverknoten (30) zeigt dem Server (32), daß die gesuchte Anwendung auf dem Server (34) verfügbar ist (Pfeil 65). Der Server (32) kontaktiert den Server (34), um eine Verbindung (66) herzustellen. Um den Zugang auf die Anwendung zu authentisieren erhält der Server (34) die Benutzerausweise des Kundenknotens (20) vom Server (32). Der Server 32 und der Server (34) errichten die Verbindung (Pfeil 66), über die der Server (32) die Ausführung der zweiten Anwendung anfordert und der Server (34) die grafische Benutzeroberfläche, in der die Ergebnisse angezeigt werden, an den Kundenknoten (20) weiterleitet. Folglich durchläuft der Informationsaustausch zwischen dem Kundenknoten (20) und Server (34) den Server (32).
  • Auf ähnliche Weise kann der Kundenknoten (20) das dritte Anwendungsprogramm durch Doppelklicken des Icons (57') ausführen. Die Anforderung zur Ausführung des dritten Anwendungsprogramms gelangt zum Server (32). Der Server (32) leitet die Anforderung an den Masterserverknoten (30) weiter, der den Belastungsstand und die Anwendungsprogrammverfügbarkeit bewertet, um zu ermitteln, welcher Server die Anforderung behandeln kann. In diesem Beispiel zeigt der Masterserverknoten an, daß der Server (36) das dritte Anwendungsprogramm ausführen kann.
  • Der Server (32) und der Server (36) errichten eine Verbindung (Pfeil 74), über die der Server (32) die Ausführung des dritten Anwendungsprogramms anfordert und der Server (36) die grafischen Benutzeroberflächenergebnisse an den Server (32) zurücksendet. Um die Ausführung des dritten Anwendungsprogramms zu ermöglichen, kann der Server (36) die Benutzerausweise des Kundenknoten (20 ), die vom Server (32) erhalten werden, authentisieren. Der Server (32) leitet die grafischen Benutzeroberflächenergebnisse an den Kundenknoten weiter, auf dem die Ergebnisse angezeigt werden. Folglich laufen die Ergebnisse der Ausführung des dritten Anwendungsprogramms zwischen dem Kundenknoten (20) und dem Server (36) über den Server (32).
  • Durch diese Darstellung sollte verstanden werden, daß ein Kundenknoten (20 mehrere Anwendungsprogramme über eine Verbindung mit dem Server (32) ausführen kann, während der Server (32) mehrere Verbindungen aufrechterhält (in diesem Beispiel eine Verbindung mit Server (34) und eine zweite Verbindung mit Server (36)). Des weiteren vereinigt der Server (32) die vom Server (34) erhalte nen Informationen mit den vom Server (36) erhaltenen Informationen zu einem Datenstrom zur Übertragung an den Kundenknoten (20).
  • 3C zeigt einen beispielhaften Kommunikationsprozeß zwischen dem Kundenknoten (20), dem Masterserverknoten, in diesem Beispiel dem Server (30), und Servern (32, 34). Der Kundenknoten (20) hält eine aktive Verbindung (76) mit dem Server (32). Der Kundenknoten (20) und Server (32) können die aktive Verbindung (76) zum Austausch von die Ausführung des ersten Anwendungsprogramms betreffenden Informationen nutzen. Der Kundenknoten (20) kann die Benutzerausweise im Cachespeicher oder im beständigen Speicher speichern.
  • In dieser Gestaltung läuft die Programmnachbarschaftsanwendung auf dem Server (32). Der Bildschirm des Kundenknoten (20) weist ein Programmnachbarschaftsfenster (58) auf, in dem ein das zweite Anwendungsprogramm wiedergebender grafischer Icon (57) erscheint. Der Benutzer des Kundenknoten (20) kann das zweite Anwendungsprogramm durch Doppelklicken des Icons (57) starten. Die Anforderung zum Starten des Anwendungsprogramms wird zum Server (32) geleitet. Der Server (32) antwortet (zum Beispiel durch „Zurückrufen") dem Kundenknoten (20) durch Zurückgabe der anwendungsbezogenen Informationen, wie etwa den Namen der Anwendung und Vorraussetzungen zur Ausführung des zweiten Anwendungsprogramm durch den Kundenknoten (20).
  • Mit den vom Server (32) gestellten Informationen kommuniziert der Kundenknoten (20) dann über die Verbindung (77) mit dem Masterserverknoten, um den Server zur Ausführung des zweiten Anwendungsprogramms zu ermitteln. In diesem Beispiel ist dies der Server (34). Der Kundenknoten (20) errichtet dann eine Ver bindung (78) mit dem Server (34). Der Server (34) erbittet die Benutzerausweise vom Kundenknoten (20), um den Benutzer des Kundenknotens (20) zu authentisieren. Das zweite Anwendungsprogramm wird auf dem Server (34) ausgeführt und der Server (34) gibt eine grafische Benutzeroberfläche zurück an den Kundenknoten (20) über die hergestellte Verbindung (78). Folglich kann der Kundenknoten mehrere aktive Verbindungen zwischen mehreren Servern haben.
  • 3D zeigt einen beispielhaften Kommunikationsprozeß zwischen dem Kundenknoten (20), einem Server (30), der in diesem Beispiel als ein Webserver auftritt und dem Server (32). Der Kundenknoten (20) authentisiert sich selbst gegenüber dem Server (30), wie zuvor in Verbindung mit 2C beschrieben wurde. In einer Gestaltung greift der Server auf eine Ausgabedisplayschablone (90) zu, wie etwa eine SGML, HTML, oder XML Datei, um diese als Basis zur Erstellung des Programmnachbarschaftsfensters zur Übertragung an den Kundenknoten (20) zu nehmen. Die Schablone kann im flüchtigen oder beständigen Speicher in Verbindung mit dem Server (30) oder im Massenspeicher (92), wie etwa ein Diskettenlaufwerk oder optische Vorrichtung, gespeichert werden, wie in 3D dargestellt wird.
  • In dieser Gestaltung ist die Schablone (90) ein Standart SGML, HTML oder XML Dokument, das die programmnachbarschaftsspezifischen Marken beinhaltet, die mit dynamischen Informationen ersetzt werden. Die Marken zeigen dem Server 30), an welcher Stelle im Ausgabedisplay die verfügbaren Anwendungen betreffende Informationen, wie etwa Iconbilder, eingesetzt werden. In einer speziellen Gestaltung sind die programmnachbarschaftsspezifischen Marken zusammen mit den Kommentaren einer Datei eingelagert, was es der Datei ermöglicht, mit Standart Interpretierprogrammen kompatibel zu sein. In einer anderen Gestaltung sind die pro grammnachbarschaftsspezifischen Marken Erweiterungen der als Grundlage für die Schablone benutzte Markierungssprache.
  • Beispiele von HTML Marken, die in einer der vorliegenden Erfindung entsprechenden Marke benutzt werden, sind nachfolgend in Tabelle 1 festgelegt:
  • Tabelle 1
    Figure 00280001
  • Andere Marken können zum Festlegen von Steuerungsfeldern bereitgestellt werden und bedingte, die Programmnachbarschaftsanwendung betreffende Prozesse vorsehen.
  • In einer Gestaltung wird die Schablone dynamisch unter Verwendung von zum Beispiel COLD FUSION, hergestellt von Allaire Corp. von Cambridge, Massachusetts oder ACTIVE SERVER PAGES, hergestellt von Microsoft Corporation von Redmond, Washington hergestellt. Alternativ kann die Schablone statisch sein. Die Programmnachbarschaftsanwendung analysiert die Schablone und ersetzt, wie zuvor angemerkt, die programmnachbarschaftsspezifischen Marken. Marken, die nicht programmnachbarschaftsspezifisch sind, werden in der Datei belassen, um vom auf dem Kundenknoten (20) ausgeführten, Browserprogramm (80) analysiert zu werden.
  • In einer Gestaltung wird ein, eine HTML Schablone als Eingabe akzeptierendes, Schablonenanalyseobjekt bereitgestellt, das die in der Schablone vorliegenden, programmnachbarschaftsspezifischen Marken interpretiert und die Originalschablone mit allen durch geeigneten Text ersetzten, programmnachbarschaftsspezifischen Marken ausgibt. Das Schabloneanalyseobjekt kann als ein Cookie, ein URL Fragereihe oder ein Steuerungsfeld von einer Webserveroberfläche weitergegeben werden, um die Informationen, mit denen die programmnachbarschaftsspezifischen Marken ersetzt werden sollen, bereitzustellen.
  • In einer anderen Gestaltung erlaubt die Programmnachbarschaftsanwendung Skripten die Annahme von Informationen über eine Anwendungsprogrammoberfläche. Skripte können zum Beispiel in VBScript oder Javascript geschrieben sein. In dieser Gestaltung wird die Skriptsprache genutzt, um ein Ausgabedisplay unter Verwendung von Informationen, die von der Anwendung als Antwort auf vom Skript gestellte Fragen gegeben werden, dynamisch zu erstellen. Sobald das Ausgabedisplay geschaffen ist, wird es an den Kundenknoten (20) zur Darstellung durch das Browserprogramm (80) übermittelt.
  • Ein Benutzer des Kundenknotens (20) kann eine Anwendung durch Doppelklicken eines auf der Programmnachbarschaftswebseite angezeigten Icons (57, 57') mit der Maus starten. In manchen Gestaltungen ist jeder Icon (57, 57') ein verschlüsselter URL, der folgendes spezifiziert: den Ort der Anwendung (zum Beispiel auf welchem Server sie gehostet wird oder alternativ die Adresse eines Masterservers); einen mit der Anwendung verknüpften Startbefehl; und eine Schablone, die ausweist wie die Ausgabe der Anwendung angezeigt werden sollte (zum Beispiel in einem Fenster „eingebettet" in den Browser oder in einem separaten Fenster). In einigen Gestaltungen beinhaltet der URL eine Datei oder einen Verweis auf eine Datei, die die für den Kunden zur Verbindungsherstellung mit dem die Anwendung hostenden Server notwendigen Informationen beinhaltet. Diese Datei kann die Programmnachbarschaftsanwendung dynamisch erschaffen. Der Kundenknoten (20) errichtet eine Verbindung (Pfeil 94) mit dem die angeforderte Anwendung hostenden Server (in diesem Beispiel Server (32)) und tauscht die Ausführung der gewünschten Anwendung betreffende Informationen aus. In einigen Gestaltungen wird die Verbindung (94) unter Verwendung des Independent Computing Architecture ICA) Protokolls, hergestellt von Citrix Systems, Inc. von Fort Lauderdale, Florida hergestellt. Auf diese Weise kann der Kundenknoten (20) Anwendungsausgabe in einem vom Webbrowser (60) verschiedenen Fenster oder als in den Webbrowser „eingebettete" Anwendungsausgabe anzeigen.
  • 4 zeigt eine beispielhafte Anordnung von Programmkomponenten für eine kundenbasierte Ausführung der Programmnachbarschaftsanwendung. Eine kundenbasierte Ausführung der Programmnachbarschaftsanwendung kann in einem Netzwerk unter Verwendung von entweder dem serverbasierten Berechnungsmodell, in dem der Server die Programmnachbarschaftsanwendung ausführt, oder dem kun denbasierten Berechnungsmodell, in dem der Kundenknoten (10) die Programmnachbarschaftsanwendung lokal ausführt, genutzt werden. Die Programmnachbarschaftsanwendung beinhaltet eine Programmnachbarschaftsanwendungsservice PNSVC) Komponente (44), eine Anwendungsdatenbankkomponente (48), eine Programmnachbarschaftsanwendungprogrammoberflächen (PNAPI) Komponente 52), eine Programmnachbarschaftsbenutzeroberflächenkomponente (56) und einen lokalen Cache (60).
  • Ein Anwendungsserver (30) zum Beispiel beinhaltet die Servicekomponente PNSVC) (44) und die Anwendungsdatenbank (48). Der Kundenknoten (10), der ein repräsentatives Beispiel eines Kundenknotens ist, der eine kundenbasierte Ausführung der Programmnachbarschaftsanwendung unterstützen kann, umfaßt die Anwendungsprogrammoberfläche PNAPI (52), die Benutzeroberflächenkomponente 56) und den lokalen Cache (60). Die PNSVC (44) kommuniziert mit der Anwendungsdatenbank (48) und mit PNAPI (52) auf dem Kundenknoten (10) über die Kommunikationsverbindung (62).
  • Die Kommunikationsverbindung (62) kann zum Beispiel durch Verwendung des ICA Protokolls errichtet werden. ICA ist ein Präsentationsserviceprotokoll für normale Zwecke, das darauf ausgerichtet ist, über industrielle Standartnetzwerkprotokolle, wie etwa TCP/IP, IPX/SPX, NetBEUI unter Verwendung industrieller Standarttransportprotokolle, wie etwa ISDN, Framerelais und Asynchronen Transfermode ATM) zu laufen. Das ICA Protokoll stellt virtuelle Kanäle, die sitzungsbezogene Übertragungsverbindungen sind, die vom Anwendungsebenencode genutzt werden, um Befehle zum Datenaustausch zu geben. Die virtuellen Kanalbefehle sind dafür bestimmt, mit den Funktionen des Kundenknotens eng integriert zu sein. Ein Typ vir tueller Kanalverbindungen, der vom ICA Protokoll unterstützt wird, ist ein programmnachbarschaftsvirtueller Kanal.
  • Das Programmnachbarschaftsvirtuelle Kanalprotokoll kann vier Gruppen an Befehlen beinhalten:
    • (1) Initialisierungsbezogene Befehle;
    • (2) Einzelautorisierungsbezogene Befehle, die von jedem Kundenknoten unterstützt werden, der eine Kopie der Benutzerausweise erhalten möchte;
    • (3) Anwendungsdatenbezogene Befehle zur Ausführung der Programmnachbarschaftsbenutzeroberfläche; und
    • (4) Anwendungsstart Rückrufbezogene Befehle zum Ausführen der Benutzeroberfläche auf einem Anwendungsserver.
  • Anwendungsdatenbank
  • Die Anwendungsdatenbank (48) ist ein Cache der autorisierten Benutzer und Gruppeninformationen für alle öffentlichen (zum Beispiel veröffentlichte) Anwendungen in einer Serverfarm oder in einer Gruppe vertrauter Domains. Jeder Server in einer Serverfarm kann seine eigenen anwendungsbezogenen Informationen in einem beständigem Speicher anlegen und eine Datenbank (48) in flüchtigem Speicher aufbauen. In einer anderen Gestaltung könne alle gesammelten anwendungsbezogenen Informationen in der Datenbank (48) im beständigen Speicher gespeichert werden und für jeden anderen Server in der Serverfarm zugänglich gemacht werden. Die Datenbank (48) kann in einem gesetzlichen Format (zum Beispiel als eine Verbundene List im Speicher) oder unter Verwendung von Novell's Directory Services NDS) oder eines Verzeichnisservices, der am von der Internationalen Telekommuni kationsunion (ITU) für ausgegebene elektronische Verzeichnisse definierten X.500 Standart festhält ausgeführt werden.
  • Die Anwendungsdatenbank (48) beinhaltet eine Liste von Anwendungsservern. Jeder Server in der Liste besitzt einen assoziierten Satz an Anwendungen. Verbunden mit jeder Anwendung sind anwendungsbezogene Informationen, die den Anwendungsnamen, eine Liste von Servern und zur Nutzung der Anwendung autorisierte Kundennamen beinhalten können. Ein übervereinfachtes Beispiel für die in der Datenbank gehaltenen anwendungsbezogenen Informationen wird in Tabelle 2 dargestellt. Benutzer A und B sind Benutzer des Kundenknotens (10, 20,), „n/v" zeigt an, dass die Anwendung gehostet, aber dem Kundenknotenbenutzer nicht verfügbar ist und „–" zeigt an, dass die Anwendung nicht gehostet wird.
  • Tabelle 2
    Figure 00330001
  • Tabelle 2 zeigt eine Liste der Server (30, 32, 34), die von den Servern gehosteten Anwendungen (Tabellenkalkulation, Kundendatenbank, Textverarbeitung und Rechner) und solche Benutzer, die autorisiert sind, die Anwendungen zu nutzen.
  • Zum Beispiel hostet der Server (30) das Tabellenkalkulationsprogramm, die Kundendatenbank und die Textverarbeitung. Benutzer A ist autorisiert, die Tabellenkalkulation zu nutzen, Benutzer B ist autorisiert, die Kundendatenbank zu benutzen und kein Benutzer besitzt Autorisierung, die Textverarbeitung zu benutzen. Es ist zu verstehen, daß andere Techniken genutzt werden können, anzuzeigen, wer autorisiert ist, eine spezielle Anwendung zu nutzen. Zum Beispiel die Benutzerinformationen, die in der Datenbank gespeichert sind, können genutzt werden, um eher solche Benutzer anzuzeigen, die unautorisiert sind, eine bestimmte Anwendung zu benutzen als solche, die autorisiert sind.
  • Um die in der Datenbank (48) gespeicherten Informationen zu erhalten, erhält der Server (30) die anwendungsbezogenen Informationen von jedem anderen Server in der Serverfarm, die sich auf die Anwendungen auf solchen Servern beziehen, was Steuerungsinformationen beinhaltet, die anzeigen, welche Kundenbenutzer und Server autorisiert sind, auf jede bestimmte Anwendung zuzugreifen. Die in der Datenbank gehaltenen anwendungsbezogenen Informationen können oder können nicht über Neuladen des Servers (30) bestehen.
  • Die Anwendungsdatenbank (48) kann eine zentrale Datenbank sein, die auf den Anwendungsservern (30, 32 und 34) gespeichert wird und für alle Server in der Serverfarm zugänglich ist. Folglich können die anwendungsbezogenen Informationen für andere Server, wie etwa solche Server, die eine veröffentlichte Anwendungenauthentisierung während Sitzungseinloggen und den Anwendungsstart durchführen, zugänglich sein. In einer anderen Gestaltung kann die Datenbank (48) auf jedem der Anwendungsserver (30, 32 und 34) anhand der von jedem Server durch die Kommunikation mit anderen Servern erhaltenen Informationen gehalten werden.
  • Programmnachbarschaftsserviceprogramm (PNSVC)
  • Jeder Server (30, 32, 34 und 36), der die Programmnachbarschaftsanwendung darauf installiert hat, führt die PNSVC Software (44) aus. Die auf jedem Server (30, 32, 34 und 36) arbeitende PNSVC Software (44) errichtet eine Kommunikationsverbindung (zum Beispiel eine benannte Röhre) mit jedem anderen Server. Die Server (30, 32, 34 und 36) tauschen durch diese benannte Röhre anwendungsbezogene Informationen aus. In einer anderen Gestaltung sammelt die PNSVC Software (44) anwendungsbezogene Informationen von den anderen Servern in der Serverfarm durch ferne Registrierungsrufe (zum Beispiel überträgt die Servicekomponente (44) ein Datagramm an andere Server in der Vielzahl, wodurch von solchen Servern gehostete Anwendungsprogramme entsprechende anwendungsbezogene Informationen angefordert werden). Die PNSVC Software (44) behält des weiteren die Beziehungen der Gruppen und Benutzer mit veröffentlichten Anwendungen in der Anwendungsdatenbank (48) und Zugangsinformationen, wenn ein Benutzer authentisiert wird. Ein Administrator des Servers (30) kann eine Benutzeroberfläche benutzen, um die PNSVC (44) zu konfigurieren.
  • Andere Funktionen der PCNVC Software (44) beinhalten die Ausführung von der PNAPI (52) angeforderten Services und Funktionen und eine Kommunikation mit der PNAPI (52) auf dem Kundenknoten (10) unter Verwendung eines programmnachbarschaftsvirtuellen Vorrichtungstreiber (VDPN). Der VDPN arbeitet gemäß dem zuvor beschriebenen Programmnachbarschaftsvirtuellen Kanalprotokoll zur Errichtung und zum Beibehalten einer ICA Verbindung.
  • Programmnachbarschaftsanwendungsprogrammoberfläche (PNAPI)
  • Die PNAPI (52) ist ein Satz von Softwarefunktionen oder Services, die von der Programmnachbarschaftsanwendung zur Ausführung verschiedener Operationen (zum Beispiel das Öffnen eines Fensters auf einem Bildschirm, das Öffnen von Dateien und Darstellen von Nachrichtenkästen) verwendet werden. Die PNAPI (52) stellt einen generierbaren Mechanismus zum Starten von Anwendungsobjekten zum Beispiel Icons), die zum Ausführen der Programmnachbarschaftsanwendung hergestellt wurden und Anwendungsobjekten in einer Vermächtnis Benutzeroberfläche (zum Beispiel Vorgänger oder zeitlich begrenzte Existenz). Wenn der Kundenknoten (10) eine verfügbare Anwendung startet, kann der Startmechanismus die Anwendung, wenn nötig, auf dem Server (30) ausführen (zum Beispiel, wenn der der Kundenknoten (10) nicht die Ressourcen für die lokale Ausführung der Anwendung aufweist).
  • Die PNAPI (52) stellt der Benutzeroberfächenkomponente (56) alle veröffentlichten Anwendungsinformationen zur Darstellung auf dem Bildschirm (12) ( 1) auf dem Kundenknoten (10). Die PNAPI (52) leitet des weiteren die Serverfarmeinloggvorgänge in eine lokale Datenbank mit Einloggausweisen (zum Beispiel Paßwörter) für Benutzer des Kundenknotens (10), um das Einzeleinloggauthentisierungsmerkmal zu unterstützen. Ausweise können oder können nicht über Ladevorgänge des Kundenknotens (10) beständig sein (Strom – aus und ein Zyklus).
  • Die PNAPI (52) stellt ein automatisches und ein manuelles Leiten für die im lokalen Cache (60) gespeicherten Programmnachbarschaftsanwendungsobjekte. Der lokale Cache (60) kann entweder manuell durch den Benutzer des Kundenkno tens (10) oder von einer Benutzerbestimmten Aktualisierungsrate oder durch den Server nach irgendeiner Zeit während der Verbindung aktualisiert werden. In einer Windowsanwendung kann die PNAPI (52) fern von Anwendungsdateiverknüpfungen aufbauen und das „Start" Menu und Desktopicons für Anwendungsobjektverknüpfungen leiten.
  • Programmnachbarschaftsbenutzeroberfläche
  • Das Benutzeroberflächenmodul (56) koppelt das PNAPI (52) und kann ein funktionaler Supersatz einer existierenden Kundenbenutzeroberfläche (zum Beispiel Fern Anwendungsmanager) sein. Das Benutzeroberflächenmodul (56) greift auf die im lokalen Cache (60) durch die PNAPI (52) gespeicherten Informationen zu und präsentiert diese Informationen dem Benutzer des Bildschirms (12) (1) des Kundenknotens (10). Die dargestellten Informationen sind ein Gemisch aus von einem Benutzer des Kundenknotens (10) gestellten Informationen und von der Programmnachbarschaftsanwendung erhaltene Informationen. Das Benutzeroberflächenmodul (56) kann dem Benutzer des weiteren alle Anwendungen, die der Benutzer gerade ausführt, und alle aktiven und alle getrennten Sitzungen anzeigen.
  • In einer windowsbasierten Gestaltung kann das Benutzeroberflächenmodul 56) eine Vielzahl von grafischen Komponenten, wie etwa Fenster und „Pull-Down" Menüs, zur Darstellung auf dem Bildschirm (12) (1) präsentieren. Ein Display einer Kombination solcher grafischer Benutzeroberflächenkomponenten wird normalerweise „Desktop" genannt. Ein durch das Benutzeroberflächenmodul (56) hergestellter Desktop kann ein Programmnachbarschaftsfenster beinhalten, das die Nachbarschaft der für den Benutzer des Kundenknoten (10) verfügbaren Anwendungen anzeigt. Diese Anwendungsprogramme sind eine gefilterte Kombination der veröffentlichten Anwendungen, die von einer Serverfarm im Netzwerk gehostet werden. Das Benutzeroberflächenmodul (56) kann ein Programmnachbarschaftsfenster für jede Serverfarm generieren oder Anwendungen von verschiedenen Serverfarmen in einem einzelnen Programmnachbarschaftsfenster zusammenfassen.
  • Auf einer oberen Ebene beinhaltet das Programmnachbarschaftsfenster einen Ordner für jede Serverfarm. Ein Klicken auf einen der Ordner mit der Maus (18) (1) produziert ein Fenster, das eine Darstellung (zum Beispiel ein Icon) eines jeden gehosteten, für den Benutzer verfügbaren, Anwendungsprogramms beinhaltet, zum Beispiel wie in 6A und 6B. Das Programmnachbarschaftsfenster wird der lokale Punkt zum Ausführen veröffentlichter Anwendungen und das Benutzeroberflächenmodul (56) kann zum Ausführen von Anwendungen durch die PNAPI (52) genutzt werden. Zum Beispiel kann der Benutzer des Kundenknotens (10) die Maus (18) benutzen, um einen dargestellten Icon auszuwählen und die betreffende Anwendung auszuführen.
  • Ein Merkmal der kundenbasierten Ausführung ist, daß der Benutzer die im Programmnachbarschaftsfenster dargestellten Objekte durchblättern kann, obwohl der Kundenknoten offline ist, das heißt, die ICA Verbindung (62) ist inaktiv. Des weiteren kann ein Benutzer des Kundenknoten (10) Anwendungsobjekte und Ordner aus dem Programmnachbarschaftsfenster und andere grafische Komponenten (zum Beispiel andere Fenster, Ordner, etc.) auf dem Desktop verschieben.
  • 5 zeigt eine beispielhafte Anordnung von Programmkomponenten für eine serverbasierte Ausführung der Programmnachbarschaftsanwendung. Die Kompo nenten beinhalten eine Service (PNSVC) Komponente (44'), eine Anwendungsdatenbankkomponente (48'), eine Anwendungsprogrammoberfläche (PNAPI) eine Komponente (52'), eine Benutzeroberflächenkomponente (56') und einen lokalen Cache (60'). Jede Softwarekomponente (44', 48', 52', 56' und 60') ist auf dem Anwendungsserver (30') installiert. Die Softwarekomponenten für die serverbasierte Ausführung entsprechen der Softwarekomponenten für die kundenbasierte Ausführung aus 4. Die Funktionalität einer jeden serverbasierten Softwarekomponente ist mit Ausnahme der im folgenden beschriebenen Unterschiede oder zusätzlichen Möglichkeiten dem kundenbasierten Gegenstück ähnlich. Die PNSVC (44') kommuniziert mit der Anwendungsdatenbank (48') und mit der PNAPI (52') unter Verwendung lokaler Verfahrensanrufe. Die PNAPI (52') kommuniziert des weiteren mit dem Benutzeroberflächenmodul (56') und dem lokalen Cache (60').
  • Ähnlich wie in 4 für den Kundenknoten (10) beschrieben, loggt sich der Kundenknoten (20) in das Netzwerk (40) (1) ein, der Server (30') entwickelt und erhält eine die von den anderen Servern (32, 34) in der Serverfarm gesammelte, anwendungsbezogenen Informationen umfassende Datenbank und eine Kommunikationsverbindung wird zwischen dem Server (30') und dem Kundenknoten (20) errichtet. Der Anwendungsserver (30') befindet sich über eine ICA Kanalverbindung (62') in Kommunikation mit dem Kundenknoten (20). Die Kanalverbindung (62') kann ein virtuelles Kanalprotokoll (zum Beispiel Thinwire) erstellen. Das Thinwireprotokoll kann genutzt werden, um die Präsentationsbefehle von der windowsbasierten Anwendungsausführung auf dem Anwendungsserver (30') an den Kundenknoten (20) zu übertragen. Für einen Benutzer des Kundenknotens (20) scheinen die Anwendungen auf dem Kundenknoten (20) zu laufen. Der Kundenknoten (20) kann ein Fern-Anwrendungsmanagerprogramm (64) beinhalten, das mit dem Anwendungsserver (30') über die ICA Kanalverbindung (62') kommuniziert.
  • Um die Programmnachbarschaftsanwendung in einer serverbasierten Ausführung auszuführen, verbindet sich der Benutzer des Kundenknotens (20) zu einem Anfangsdesktop (auf dem Server (30')) und startet die Programmnachbarschaftsanwendung von diesem Desktop. Die Verbindung zu dem Anfangsdesktop kann automatisch geschehen, zum Beispiel über ein Einloggskript des Kundenknotens (20), über einen Eintrag in der StartUp Gruppe in Windows 95 oder über einen anderen zentral geleiteten, serverspezifischen Mechanismus. Alle Fern-Anwendungsmanager und Starten wirol über diesen Anfangsdesktop erreicht.
  • Ähnlich wie, für den Server (30) in 4 beschrieben, nutzt der Server (30') die Benutzerausweise, um solche Anwendungen zu ermitteln, zu deren Nutzung der Benutzer des Kundenknotens (20) autorisiert ist. Ein grafisches Programmnachbarschaftsfenster wird zurück an den Kundenknoten (20) geschickt und auf dem Bildschirm (22) (1) dargestellt. Dieses Fenster kann Icons beinhalten, die die verfügbaren und möglicherweise die nicht verfügbaren in der Programmnachbarschaft des Kundenknotens (20) liegenden Anwendungsprogramme repräsentieren.
  • Der Benutzer des Kundenknotens (20) kann eines der im Programmnachbarschaftsfenster dargestellten Anwendungsprogramme auswählen und starten. Wenn eine Anwendung gestartet wird, kann die Programmnachbarschaftsanwendung unter Berücksichtigung der Belastungsstanderfordernisse unter den Servern und der Verfügbarkeit der Anwendungen auf diesem Server (30') die Anwendung auf dem Server (30') ausführen. Die PNAPI (52') kann einen Startmechanismus zum Starten einer Fernanwendung lokal auf dem Server (30') initiieren, wenn der Server (30') zum Starten der Anwendung ausgewählt wird. Wenn ein anderer Server zum Ausführen der Anwendung benötigt wird, kann die Programmnachbarschaftsanwendung die Anwendung über den Server (30') (zum Beispiel Serverbasierten Kunden) unter Verwendung des Fensters zur Darstellung auf dem Desktop des Kundenknotens (20) starten, wie zuvor in 3B beschrieben wurde.
  • In einer Gestaltung beinhaltet die Webbasierte Programmnachbarschaftsanwendung eine Gruppe von Objekten, die verschiedene Aspekte der Anwendung leiten. In einer Gestaltung beinhaltet die Anwendung drei primäre Objektklassen, die zu einem Webserver „anschließen": eine Gatewayobjektklasse, eine Ausweisobjektklasse und eine Anwendungsobjektklasse. In manchen besonderen Gestaltungen werden die Objektklassen als Javabohnen gestellt. Die drei primären Objektklassen erleichtern: Gültigmachung der Benutzerausweise in einer Serverfarm; Erschaffung einer Liste veröffentlichter Anwendungen, auf die ein spezieller Benutzer zugreifen kann; Bereitstellung detaillierter Informationen über eine spezielle veröffentlichte Anwendung und Umwandlung veröffentlichter Anwendungsinformationen in ein ICA kompatibles Format.
  • Wenn die Objekte als Javabohnen bereitgestellt werden, kann auf sie über mehrere Wege zugegriffen werden. Zum Beispiel können sie als COM Objekte zusammengestellt sein und dem Webserver als ActiveX Komponenten zur Verfügung gestellt worden sein. In einer anderen Gestaltung können die Javabohnen in ihrer angeborenen Form genutzt werden, wie wenn der Server die Java Server Seiten Technologie benutzt. In noch einer anderen Gestaltung können die Javabohnen instantiiert werden und direkt in einem Java Servlet genutzt werden. In noch einer an deren Gestaltung kann der Server (30') die Javabohnen direkt als COM Objekte instantiieren.
  • Eine Ausweisobjektklasse managt Informationen, die für die Authentisierung eines Benutzers in einer Zielserverfarm notwendig sind. Ein Ausweisobjekt leitet gespeicherte Benutzerausweise an andere Programmnachbarschaftsobjekte Weiter. In einigen Gestaltungen ist das Ausweisobjekt eine abstrakte Klasse, die nicht instantiiert werden kann und den Ausweis eines Benutzers repräsentiert. Verschiedene Klassenerweiterungen können bereitgestellt werden, um verschiedene Authentisierungsmechanismen wie etwa Biometrik, intelligente Karten, zeichenbasierte Authentisierungsmechanismen wie etwa Herausforderungsantwort und eine zeitbasierte Paßwortgenerierung oder andere nutzbar zu machen. Zum Beispiel eine „klarer Text Ausweis" Erweiterung, die Benutzername, Domain und Paßwort in reiner Schrift speichert, kann bereitgestellt werden.
  • Eine Gatewayobjektklasse behandelt Kommunikationen mit einer Zielserverfarm. In einer Gestaltung wird die Gatewayobjektklasse als eine abstrakte Javaklasse, die nicht instantiiert werden kann, bereitgestellt. Ein besonderes Gatewayobjekt kann Anwendungsinformationen durch Kommunikation mit einer Serverfarm unter Verwendung eines bestimmten Protokolls, durch Lesen gecachter Anwendungsinformationen, durch eine Kombination dieser zwei Methoden oder verschiedenen anderen Methoden erhalten.
  • Wie zuvor angemerkt, cacht die Gatewayobjektklasse Informationen, um die Kommunikation mit einer Zielserverfarm zu minimieren. Erweiterungen zu der Gatewayobjektklasse können bereitgestellt werden, um mit der Serverfarm über spezielle Protokolle, wie etwa HTTP, zu kommunizieren. In einer Gestaltung wird eine Erweiterungsklasse bereitgestellt, die es erlaubt, das das Gatewayobjekt mit der Serverfarm über WINDOWS NT bezeichnete Röhren kommuniziert. Das Gatewayobjekt kann eine Anwendungsprogrammieroberflächengabel bereitstellen, die es anderen Programmnachbarschaftsobjekten ermöglicht, das Objekt der Anwendungsinformation zu erfragen.
  • Eine Anwendungsobjektklasse beinhaltet Informationen über veröffentlichte Anwendungen und gibt Informationen über von der Serverfarm gehostete Anwendungen zurück, um die Programmnachbarschaftswebseite zu erschaffen. Die Anwendungsobjektklasse erschafft anwendungsbetreffende Objekte durch den Erhalt von die Anwendungen betreffenden Informationen entweder von einem vom Gatewayobjekt erschaffenen oder direkt von einem Server in der Serverfarm erschaffenen Objekt. Ein Anwendungsobjekt agiert als ein Container für spezielle Eigenschaften der Anwendung, wobei einige einstellbar und einige nicht einstellbar sind, wie etwa: der Name der Anwendung (nicht einstellbar); die Prozentzahl des Desktops des Kunden, die das Kundenfenster in Anspruch nehmen sollte (einstellbar); die Breite des Kundenfensters (einstellbar); die Anzahl der bei der Verbindung mit der Anwendung zu gebrauchenden Farben (einstellbar); die Stärke an Audiobandbreitebeschränkungen (einstellbar); die Stufe der beim Verbinden mit der Anwendung genutzten Verschlüsselung (einstellbar); die beim Verbinden mit der Anwendung genutzte Videostufe (einstellbar); ob die Anwendung im Startmenü des Kunden erscheinen sollte (einstellbar); die Identität des Programmnachbarschaftsordners, zu dem die Anwendung gehört (einstellbar); die Beschreibung der Anwendung (einstellbar); die Quelle der grafischen Icondatei für die Anwendung (einstellbar); den Typ von Fenster, der genutzt werden sollte, wenn mit der Anwendung verbunden wird (nicht einstellbar), und ob Standartparameter für das Objekt überschrieben werden sollen. Die anwendungsbasierte Klasse beinhaltet Informationen über veröffentlichte Anwendungen und wird von der Gatewaybasisklasse genutzt, um Informationen über von der Serverfarm gehostete, Anwendungen zurückzugeben, um die Programmnachbarschaftswebseite zu erschaffen.
  • 6A zeigt einen Screenshot eines beispielhaften Programmnachbarschaftsfensters (120), das auf dem Bildschirm (12, 22) (1) des jeweiligen Kundenknotens (10, 20) dargestellt wird, nachdem die Programmnachbarschaftsanwendung ausgeführt wurde. Das Fenster (120) beinhaltet Icons (122). Jeder Icon (122 repräsentiert ein Anwendungsprogramm, das von einem der Server (30, 32, 34 und 36) im Netzwerk (40) (1) gehostet wird. Jede repräsentierte Anwendung steht dem Benutzer des Kundenknotens zur Ausführung zur Verfügung. Der Benutzer kann eine der Anwendungen mit der Maus (18, 28) oder der Tastatur (14, 24) auswählen und starten.
  • 6B ist ein Screenshot eines anderen beispielhaften Programmnachbarschaftsfensters (124), das auf dem Bildschirm (12, 22) des jeweiligen Kundenknotens (10, 20) dargestellt wird, nachdem die Programmnachbarschaftsanwendung ausgeführt wurde. Das Fenster (124) beinhaltet Icons (126, 128). Jeder Icon (126, 128) repräsentiert ein Anwendungsprogramm, das von einem der Server (30, 32, 34 und 36) im Netzwerk (40) gehostet wird. Jedes repräsentierte Anwendungsprogramm steht dem Benutzer des Kundenknotens zur Ausführung zur Verfügung. Der Benutzer kann eine der Anwendungen mit der Maus (18, 28) oder der Tastatur (14, 24) auswählen und starten. Für webbasierte Programmnachbarschaftsumgebungen sind die Sreenshots von 6A und 6B ähnlich, ausgenommen daß Icons (122, 126, 128), die in einem Browserfenster dargestellt werden.
  • Jedes Anwendungsprogramm, das von einem der Icons (128) repräsentiert wird, steht dem Benutzer des Kundenknoten (10, 20) nicht zur Verfügung, obwohl solche Anwendungen in der Serverfarm existieren. Die Nichtverfügbarkeit dieser Anwendungsprogramme kann auf dem Bildschirm vermerkt werden (zum Beispiel kann ein „X" durch den Icon (128) gezeichnet werden). Eine Anforderung zum Start solch eines Anwendungsprogramms kann eine Nachricht losschicken, die anzeigt, daß der Benutzer nicht autorisiert ist, die Anwendung zu nutzen.
  • 7 zeigt einen beispielhaften Prozeß, durch den ein Benutzer beider Kundenknoten (10, 20) über die Verfügbarkeit von von den Anwendungsservern (30, 32, 34 und 36) im Netzwerk (40) gehosteten Anwendungen informiert werden kann. In Schritt (80) fordert der Kundenknoten (10, 20) den Einloggservice von einem der Server, zum Beispiel dem Server (32), an. Der Server (32) benötigt gültige Benutzerausweise, um die Verbindung zu errichten. Der Server (32) erhält die Benutzerausweise vom Kundenknoten (10) (Schritt 82) und authentisiert den Benutzer zum Einloggen (Schritt 84). Ein Desktop wird auf dem Kundenknoten (10, 20) dargestellt (Schritt 85). Der Desktop kann einen grafischen Icon beinhalten, der das Programmnachbarschaftsanwendungsprogramm repräsentiert.
  • In Schritt (86) errichtet der Anwendungsserver (32) eine Verbindung mit jedem der anderen Server (30, 34 und 36), um anwendungsbezogene Informationen, wie zuvor beschrieben, auszutauschen, die den auf diesen Servern gehosteten, Anwendungsprogrammen entsprechen (Schritt 88). In Schritt (90) entwickelt und er hält der Anwendungsserver (32) eine Datenbank der gesammelten anwendungsbezogenen Informationen. Jeder andere Server (30, 34, 36) in der Serverfarm kann auf ähnliche Weise wie der Server (32) eine Datenbank entwickeln, die der Datenbank des Servers (32) gleicht. In einer anderen Gestaltung kann die Datenbank des Servers (32) eine zentralisierte Datenbank sein, auf die jeder andere Anwendungsserver (30, 34, 36) in der Serverfarm zugreifen kann. Das Sammeln der anwendungsbezogenen Informationen kann unabhängig auftreten oder durch die Anforderung des Kundenknotens (10, 20) zum Einloggen auf die Serverfarm (38) ausgelöst werden.
  • In Schritt (92) kann der Kundenknoten (10, 20) die Ausführung eines Anwendungsprogramms aus dem Desktopdisplay anfordern. Der Masterserverknoten kann die Anforderung bearbeiten und eine Belastungsstandbeurteilung und eine Anwendungsverfügbarkeit benutzen, um den Anwendungsserver zu ermitteln, der dem Kundenknoten den Service zur Verfügung stellt (Schritt 94). Zum Beispiel der Anwendungsserver (32) kann ausgewählt werden, um der Anforderung des Kundenknoten (10, 20) nachzukommen. In Schritt (96) errichtet der Kundenknoten (10, 20 eine Kommunikationsverbindung mit dem Server (32). Der Server (32) und der Kundenknoten (10, 20) können gemäß dem ICA Protokoll, wie zuvor beschrieben, zweckmäßigerweise für den Kundenknoten kommunizieren.
  • Des weiteren können als Antwort auf diese Anforderung des Anwendungsprogramms der Masterserverknoten (30) oder der Server (32) die Programmnachbarschaftsanwendung ausführen (Schritt 93) und die Ergebnisse an den Kundenknoten (10, 20) übertragen, obwohl der Kundenknoten (10, 20) das PN Anwendungsprogramm nicht angefordert haben kann. Wenn das PN Anwendungsprogramm ausge führt wird, filtert der Masterserverknoten (30) oder der Server (32) die anwendungsbezogenen Informationen in der Datenbank unter Verwendung der Benutzerausweise (Schritt 100). Die Ergebnisse des Filterns der Datenbank zeigen solche Anwendungsprogramme, die in Nachbarschaft mit dem Kundenknoten (10, 20) liegen. Diese Nachbarschaft verfügbarer Anwendungsinformationen wird an den Kundenknoten (10, 20) übertragen (Schritt 102) und auf dem Kundenbildschirm (12, 22) in einem grafischen Programmnachbarschaftsfenster dargestellt (Schritt 104).
  • In anderen Gestaltungen kann das Programmnachbarschaftsfenster Anwendungen beinhalten, die zwar in der Serverfarm sind, aber für den Gebrauch durch den Kundenknoten (10, 20) nicht zur Verfügung stehen. In einer windowsbasierten Ausführung können die verfügbaren (und nichtverfügbaren) Anwendungsprogramme durch Icons repräsentiert werden. Der Benutzer des Kundenknotens (10, 20) kann eines der im Programmnachbarschaftsfenster dargestellten Anwendungsprogramme auswählen und starten.
  • Die vorliegende Erfindung kann als einzelnes Programm oder als mehrere computerlesbare Programme auf einem oder mehreren hergestellten Gegenständen eingebettet sein. Der Gegenstand der Herstellung kann eine Diskette, eine Festplatte, eine CD ROM, eine Flash Speicherkarte, eine PROM, ein RAM, ein ROM oder eine magnetische Kassette sein. Im Allgemeinen kann das computerlesbare Programm in irgendeiner Programmiersprache ausgeführt werden. In einigen Beispielen kann die genutzte Sprache C, C++ oder Java enthalten. Das Softwareprogramm kann auf oder in einem oder mehreren Gegenständen der Herstellung als Objektcode gespeichert werden.
  • Während die Erfindung gezeigt und mit Bezug auf die besonders bevorzugten Gestaltungen beschrieben wurde, sollte jeder in dem vorliegenden Stand der Technik verstehen, daß verschiedene Veränderungen in Form und Detail gemacht werden können, ohne das Gebiet der Erfindung, wie sie in den Ansprüchen definiert ist, zu verlassen.

Claims (14)

  1. Verfahren zur Darstellung eines jeden für ein Kundensystem zur Benutzung verfügbare Anwendungsprogramms von Anwendungsprogrammen, die auf einer Vielzahl von Servern (30, 32, 34) eines Netzwerks gehostet sind, das folgende Schritte umfasst: (a) Empfang von Benutzerausweisen, die mit einer Identität des Benutzers des Kundensystems (10, 20) in Verbindung stehen; (b) Beibehalten von anwendungsbezogenen Informationen in Übereinstimmung mit jedem auf jedem Server (30, 32, 34) gehosteten Anwendungsprogramm; (c) Entscheidung, mit Hilfe der Benutzerausweise, ob der Nutzer des Kundensystems (10, 20) bevollmächtigt ist, jedes auf den Servern (30, 32, 34) gehostete, Anwendungsprogramm zu benutzen; und (d) Informationsübertragung an das Kundensystem (10, 20), das auf die anwendungsbezogenen Informationen anspricht, und Bekannt geben der übertragenen Informationen jedes Anwendungsprogramms, zu dessen Nutzung das Kundensystem (10, 20) bevollmächtigt ist.
  2. Verfahren nach Anspruch 1, bei dem zumindest einer aus der Vielzahl von Servern ein Hostserver ist, und bei dem die anwendungsbezogenen Informationen durch den Hostserver empfangen werden, und der Hostserver dem Kundensystem die bekannt gegebenen Informationen jedes Anwendungsprogramms überträgt, zu dessen Nutzung der Nutzer des Kundensystems bevollmächtigt ist.
  3. Verfahren nach Anspruch 2, dass des weiteren den Schritt eines Verbindungsaufbaus zwischen dem Kundensystem (10, 20) und dem Hostserver unter Nutzung eines Independent Computing Architecture (ICA) Protokolls umfasst.
  4. Verfahren nach Anspruch 3, bei dem das ICA Protokoll einen virtuellen Kanal einrichtet, um dem Kundensystem (10, 20) Informationen zu übertragen, die jedes dem Kunden verfügbare, gehostete Anwendungsprogramm anzeigt.
  5. Verfahren nach Anspruch 2, das das Verfahren des weiteren folgenden Schritte umfasst: Einrichtung einer Verbindung zwischen dem Kundensystem (10) und dem Hostserver (30); Empfang einer Anforderung, um eines der verfügbaren, gehosteten Anwendungsprogramme auszuführen; und Einrichtung einer zweiten Verbindung zwischen dem Kundensystem (10) und dem Hostserver (30) als Antwort auf die Anforderung, um eine mit einer Ausführung des angeforderten Anwendungsprogramm verbundene Information auszutauschen.
  6. Verfahren nach Anspruch 2, das des weiteren die folgenden Schritte umfasst: Einrichtung einer Verbindung zwischen dem Kundensystem (20) und dem Hostserver (32); Empfang einer Anforderung, um eines der verfügbaren, gehosteten Anwendungsprogramme auszuführen; Einrichtung einer zweiten Verbindung zwischen dem Hostserver (32) und einem zweiten, die angeforderte Anwendung hostenden Server (34) als Antwort auf die Anforderung; und Austausch von Informationen, die mit der Ausführung des angeforderten Anwendungsproramms verbunden sind, zwischen dem zweiten Server (34) und dem Kundensystem (20) über den Hostserver (32); und das wahlweise des weiteren folgenden Schritte umfasst: Empfang einer zweiten Anforderung zur Ausführung eines zweiten Anwendungsprogramms von den verfügbaren, gehosteten Anwendungsprogrammen; Einrichtung einer dritten Verbindung zwischen dem Hostserver (32) und einem dritten, die zweite, angeforderte Anwendung hostenden Server (36) als Antwort auf die zweite Anforderung; und Austausch von Informationen, die mit der Ausführung des zweiten, angeforderten Anwendungsproramms verbunden sind, zwischen dem dritten Server (36) und dem Kundensystem (20) über den Hostserver (32); und des weiteren wahlweise, dass das Verfahren des weiteren den Schritt des Verschmelzens von vom zweiten und dritten Server (34, 36) empfangenen, Informationen zur Übertragung zum Kundensystem über die erste Verbindung umfasst.
  7. Verfahren nach Anspruch 2, das des weiteren die folgenden Schritte umfasst: Einrichtung einer Verbindung zwischen dem Kundensystem (20) und dem Hostserver (32); Empfang einer Anforderung, um eines der verfügbaren, gehosteten Anwendungsprogramme auszuführen; und wobei der Schritt der Informationsübertragung zum Kundensystem als Antwort auf die Anforderung zum Ausführen des Anwendungsprogramms erfolgt; (b) wobei die übertragene Information an die Kundensystemicons (122) angezeigt wird, die die verfügbaren Anwendungsprogramme in einem grafischen Benutzeroberflächenfenster darstellt; (c) wobei des weiteren den Schritt des Kommunizieren über der Hostserver (32) mit jedem anderen Server (34, 36) aus der Mehrzahl umfasst, um festzustellen, welches der Anwendungsprogramme durch die anderen Server gehostet wird; (d) wobei des weiteren den Schritt des Aufbaus einer Kommunikationsverbindung zwischen dem Hostserver (32) und dem Kundensystem (20) umfasst, wobei die Kommunikationsverbindung zumindest einen virtuellen Kanal beinhaltet; (e) wobei der Server, auf dem das Anwendungsprogramm gestartet wird, einer aus der Vielzahl von Servern, den Hostserver ausgenommen, ist und des weiteren folgende Schritte umfasst: Authentisierung des Nutzers des Kundensystems (20) bei dem Hostserver anhand der empfangenen Nutzerausweise; und Ausführen des gestarteten Anwendungsprogramms ohne die Eingabe weiterer Nutzerausweise durch den Benutzer des Kundensystems; (f) wobei der Hostserver die verfügbare Anwendungsinformationen als Antwort auf eine Anforderung für die verfügbaren Anwendungsinformationen vom Kundensystem (20) überträgt; (g) wobeides weiteren der Schritt des Aufrechterhaltens einer Datenbank 48) auf dem Hostserver (30) zur Speicherung der anwendungsbezogenen Informationen enthalten ist, wobei die Datenbank (48) für jeden aus der Mehrzahl der anderen Server verfügbar ist; (h) wobei des weiteren der Schritt des Aufrechterhaltens einer Datenbank 48) auf jedem der Server aus der Mehrzahl der Server zur Speicherung der anwendungsbezogenen Informationen enthalten ist; oder (i) wobei die übertragene Informationen des weiteren für den Nutzer des Kundensystems jedes Anwendungsprogramm beinhaltet, dass der Nutzer des Kundensystems zu dessen Nutzung nicht bevollmächtigt ist.
  8. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass Schritt (d) folgendes umfasst: (d-a) Schaffen eines Ausgabedisplays, das jedes gehostete, dem Kundensystem zur Ausführung bereitstehende Anwendungsprogramm bekannt gibt; und (d-b) Übertragung des geschaffenen Ausgabedisplays an das Kundensystem (10, 20), und entweder: (a) wobei Schritt (a) des weiteren Empfangen von anwendungsbezogenen Informationen durch einen Webserver, die übereinstimmend mit den von zumindest einem aus der Mehrzahl an Servern (30, 32, 34) gehosteten Anwendungsprogrammen sind; und optional des weiteren die folgenden Schritte umfassend: (e) Analyse eines SGML Dokuments; (f) Als Antwort auf das analysierte SGML-Dokument Zurückholen von anwendungsbezogenen Informationen, die übereinstimmend mit den von zumindest einem aus der Mehrzahl an Servern (30, 32, 34) gehosteten, Anwendungsprogrammen sind; (b) wobei der Schritt (b) ein Empfangen von biometrischen Nutzerausweisen von einem Kundensystem (10, 20) über das Hostsystem umfasst; (c) wobei der Schritt (b) ein Empfangen von verschlüsselten Nutzerausweisen von einem Kundensystem (10, 20) über das Hostsystem umfasst; (d) wobei der Schritt (d-a) des weiteren umfasst: (a) Empfangen von Nutzerausweisen von einem Kundensystem (10, 20) über das Hostsystem; (b) Authentisierung des Nutzers des Kundensystems (10, 20) durch den Hostserver anhand der empfangenen Nutzerausweisen, und (c) Ausführen eines ausgewählten Programms von den verfügbaren Anwendungsprogrammen, die von einem Server aus der Mehrzahl von Servern (30, 32, 34 gehostet werden, ohne dass der Empfang weiterer Nutzerausweise vom Kundensystem (10, 20) verlangt wird; (e) wobei der Schritt (d-a) ein Schaffen eines SGML-Ausgabedisplays umfasst, das jedes gehostete, dem Kundensystem (10, 20) zur Ausführung verfügbare Anwendungsprogramm anzeigt; (f) wobei der Schritt (d-a) ein Schaffen eines HTML-Ausgabedisplays umfasst, das jedes gehostete, dem Kundensystem (10, 20) zur Ausführung verfügbare Anwendungsprogramm anzeigt; (g) wobei der Schritt (d-a) Schaffen eines Ausgabedisplays umfasst, das die verfügbaren Anwendungsprogramme in Form von Icons in einem grafischen Benutzeroberflächenfenster zeigt; (h) wobei der Schritt (d-b) ein Übertragen des geschaffenen Ausgabedisplays an das Kundensystem (10, 20) unter Nutzung von HTTP umfasst; (i) des weiteren die folgenden Schritte umfassend: (e) Empfang einer Anforderung zur Ausführung eines der verfügbaren, gehosteten Anwendungsprogramme; und (f) Ausführung des angeforderten Anwendungsprogramm; und optional, dass der Schritt (f) des weiteren ein Ausführen des angeforderten Anwendungsprogramm in einem in der Ausgabedisplayseite vorhandenen Fenster umfasst, oder, dass des weiteren der Schritt des Verbindungsaufbaus zwischen dem Kundensystem (10, 20) und dem das angeforderte Anwendungsprogramm hostenden Server (30, 32, 34) umfasst wird; oder (j) dass des weiteren der Schritt der Kommunikation des Hostserver mit der Mehrzahl an Servern umfasst wird, um die gehosteten Anwendungsprogramme zu ermitteln.
  9. Verfahren nach einem der vorangehenden Ansprüche, wobei der Schritt (d) folgendes umfasst: (d-a) als Antwort auf die Ermittlung Schaffen eines Ausgabedisplays, das jedes gehostete, für das Kundensystem (10) zur Ausführung verfügbare Anwendungsprogramm anzeigt; und (d-b) Übertragung des geschaffenen Ausgabedisplays an das Kundensystem (10).
  10. Verfahren nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass als Antwort auf den Empfang einer Anforderung zur Ausführung eines der verfügbaren, gehosteten Anwendungsprogramme des weiteren eine zweite Verbindung zwischen dem Kundensystem (10) und einem das angeforderte Anwendungsprogramm hostenden Server (30, 32, 34) umfasst.
  11. Verfahren nach Anspruch 2: (a) dadurch gekennzeichnet, dass der Hostserver (30, 32, 34) die Nutzerausweise benutzt um zu bestimmen, ob der Nutzer des Kundensystems (10, 20) zum Zugriff auf den Hostserver berechtigt ist und um zu bestimmen welche Anwendungsprogramme der Nutzer des Kundensystems ausführen darf; (b) dadurch gekennzeichnet, dass des weiteren die Übertragung von anwendungsbezogenen Informationen in Verbindung mit jedem Anwendungsprogramm, das vom jeweiligen Server gehostet wird, zu einer zentralen Datenbank (48 ), umfasst wird; (c) dadurch gekennzeichnet, dass des weiteren die Übertragung von anwendungsbezogenen Informationen in Verbindung mit jedem Anwendungsprogramm, das vom jeweiligen Server gehostet wird, zu jedem der anderen Server, umfasst wird.
  12. Ein Server, der folgendes umfasst: ein Servicemodul, das anwendungsbezogene Informationen in Verbindung mit den Anwendungsprogrammen sammelt, die von der Mehrzahl von Servern (30, 32, 34) gehostet werden und auf einem aus der Mehrzahl an Servern ausgeführt werden, wenn die Ausführung gestartet wird; einen Empfänger zum Empfang von Nutzerausweisen, die mit der Identität des Benutzers des Kundensystems in Verbindung stehen; eine Datenbank (48) zum Speichern der gesammelten anwendungsbezogenen Informationen, wobei das Servicemodul für jedes Anwendungsprogramm, das von der Mehrzahl an Servern gehostet wird, an Hand der Nutzerausweise und der in der Datenbank (48) gespeicherten, anwendungsbezogenen Informationen bestimmt, ob das gehostete Anwendungsprogramm für den Nutzer des Kundensystems zur Ausführung zur Verfügung steht; und einen Sender zum Senden von Informationen an das Kundensystem (10, 20 ), die jedes Anwendungsprogramm anzeigen, auf das das Kundensystem zur Ausführung auf einem das Anwendungsprogramm hostenden Server zugreifen darf.
  13. Server nach Anspruch 12: (a) wobei das Servicemodul ein Datagramm an die anderen Server der Mehrzahl überträgt, um die anwendungsbezogenen Informationen in Verbindung mit den von den Servern gehosteten Anwendungsprogrammen zu sammeln; (b) wobei die Datenbank (48) Kundeninformationen umfasst; (c) wobei der Sender verfügbare Anwendungsinformationen über ein virtuelles Kanal-Kommunikationsprotokoll versendet.
  14. Server nach Anspruch 12, der des weiteren folgendes umfasst: ein Ausgabedisplayerzeugungseinrichtung, zum Schaffen von Ausgabedisplays, die jedes gehostete, dem Kundensystem zur Ausführung zur Verfügung stehende, Programm anzeigen; und einen Sender, zum Senden der erzeugten Ausgabedisplays an das Kundensystem (10, 20); und optional dadurch gekennzeichnet, dass das Servicemodul ein Datagramm an die Mehrzahl an Servern übermittelt, um die anwendungsbezogenen Informationen in Verbindung mit den von den Servern (30, 32, 34) gehosteten Anwendungsprogrammen zu sammeln; oder dadurch gekennzeichnet, dass die Ausgabedisplayerzeugungseinrichtung SGML Dokumentenvorlagen analysiert, in denen im letzteren Fall der Sender optional verfügbare Anwendungsinformationen in HTTP übermittelt.
DE69912317T 1998-12-29 1999-12-27 Vorrichtung und verfahren zur bestimmung einer programmnachbarschaft für einen kundenknoten in einem kundenbedienernetzwerk Expired - Lifetime DE69912317T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US11409998P 1998-12-29 1998-12-29
US114099P 1998-12-29
US09/252,391 US6643690B2 (en) 1998-12-29 1999-02-18 Apparatus and method for determining a program neighborhood for a client node in a client-server network
US252391 1999-02-18
US390928 1999-09-07
US09/390,928 US6928469B1 (en) 1998-12-29 1999-09-07 Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
PCT/US1999/030827 WO2000039678A1 (en) 1998-12-29 1999-12-27 An apparatus and method for determining a program neighborhood for a client node in a client-server network

Publications (2)

Publication Number Publication Date
DE69912317D1 DE69912317D1 (de) 2003-11-27
DE69912317T2 true DE69912317T2 (de) 2004-07-29

Family

ID=27381447

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69912317T Expired - Lifetime DE69912317T2 (de) 1998-12-29 1999-12-27 Vorrichtung und verfahren zur bestimmung einer programmnachbarschaft für einen kundenknoten in einem kundenbedienernetzwerk

Country Status (15)

Country Link
US (2) US6928469B1 (de)
EP (1) EP1141828B1 (de)
JP (1) JP2002533830A (de)
KR (1) KR100630212B1 (de)
AT (1) ATE252744T1 (de)
AU (2) AU2212900A (de)
CA (1) CA2293127C (de)
DE (1) DE69912317T2 (de)
DK (1) DK1141828T3 (de)
ES (1) ES2209549T3 (de)
GB (1) GB2349488A (de)
HK (1) HK1040124B (de)
IL (1) IL143762A0 (de)
PT (1) PT1141828E (de)
WO (1) WO2000039678A1 (de)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60135127D1 (de) * 2000-05-24 2008-09-11 Voltaire Ltd Gefilterte kommunikation von anwendung zu anwendung
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US8281001B2 (en) * 2000-09-19 2012-10-02 Harman International Industries, Incorporated Device-to-device network
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US7401125B1 (en) 2000-10-10 2008-07-15 Ricoh Corporation System, computer program product and method for managing documents
US7065341B2 (en) 2000-11-16 2006-06-20 Telefonaktiebolaget Lm Ericsson (Publ) User authentication apparatus, controlling method thereof, and network system
US8095624B2 (en) * 2000-12-28 2012-01-10 CenterBeam Inc. Architecture for serving and managing independent access devices
JP2002278903A (ja) * 2001-03-15 2002-09-27 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
US9836424B2 (en) 2001-08-24 2017-12-05 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
DE60226627D1 (de) * 2001-08-24 2008-06-26 Intel Corp Ehörige verfahren um datenintegrität zu verwalten
JP2003067274A (ja) * 2001-08-27 2003-03-07 Murata Mach Ltd クライアント装置及び処理サーバ
US20030088714A1 (en) * 2001-10-15 2003-05-08 Scott Madlener User internet interface
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US6996620B2 (en) * 2002-01-09 2006-02-07 International Business Machines Corporation System and method for concurrent security connections
US8135843B2 (en) 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
AU2002321294A1 (en) * 2002-03-28 2003-10-13 Siemens Aktiengesellschaft Methods and devices for informing the user of a mobile radio terminal about data services that are currently available to said user via the server of a mobile radio network service
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
GB2388002B (en) * 2002-04-26 2004-05-12 Oracle Int Corp Graphical modelling system
US9171049B2 (en) * 2002-06-13 2015-10-27 Salesforce.Com, Inc. Offline simulation of online session between client and server
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US20040103438A1 (en) * 2002-11-27 2004-05-27 Yong Yan Methods and systems for transferring events including multimedia data
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
US8082339B2 (en) * 2003-02-28 2011-12-20 Hewlett-Packard Development Company, L.P. Electronic device network having graceful denial of service
US7287083B1 (en) * 2003-03-20 2007-10-23 Novell, Inc. Computing environment failover in a branch office environment
US7698435B1 (en) 2003-04-15 2010-04-13 Sprint Spectrum L.P. Distributed interactive media system and method
US7305375B2 (en) * 2003-04-23 2007-12-04 Hewlett-Packard Development Company, L.P. Method and system for distributed remote resources
US7702668B2 (en) 2003-06-16 2010-04-20 Microsoft Corporation Asset composition
US7562154B2 (en) * 2003-06-30 2009-07-14 International Business Machines Corporation System and method for filtering stale messages resulting from membership changes in a distributed computing environment
US7475125B2 (en) * 2003-11-24 2009-01-06 Microsoft Corporation Seamless discovery of workstation-installed remote applications from an extranet
US7823192B1 (en) * 2004-04-01 2010-10-26 Sprint Communications Company L.P. Application-to-application security in enterprise security services
FR2870022B1 (fr) * 2004-05-07 2007-02-02 Canon Kk Procede et dispositif de distribution de donnees numeriques notamment pour reseau pair-a-pair
US7853947B2 (en) * 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US7752600B2 (en) * 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
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
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
EP1846864B1 (de) * 2005-02-04 2014-08-13 Koninklijke Philips N.V. Verfahren, vorrichtung, system und token zur erstellung autorisierter domänen
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
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
CN102929659B (zh) * 2005-10-07 2016-05-04 茨特里克斯系统公司 用于在应用程序的预定数量的执行方法之间选择的方法
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
CA2634206A1 (en) * 2005-12-22 2007-07-05 Catalog.Com, Inc. System and method for cross-domain social networking
US8732284B2 (en) * 2006-01-06 2014-05-20 Apple Inc. Data serialization in a user switching environment
US7802243B1 (en) * 2006-04-20 2010-09-21 Open Invention Network Llc System and method for server customization
US20070274314A1 (en) * 2006-05-23 2007-11-29 Werber Ryan A System and method for creating application groups
US8555350B1 (en) * 2006-06-23 2013-10-08 Cisco Technology, Inc. System and method for ensuring persistent communications between a client and an authentication server
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US8341651B2 (en) 2007-01-10 2012-12-25 Microsoft Corporation Integrating enterprise search systems with custom access control application programming interfaces
GB0707492D0 (en) * 2007-04-18 2007-05-23 Canon Europa Nv A print apparatus, a method of controlling printing, and a program
US8024407B2 (en) * 2007-10-17 2011-09-20 Citrix Systems, Inc. Methods and systems for providing access, from within a virtual world, to an external resource
US7925694B2 (en) 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US7792934B2 (en) * 2008-01-02 2010-09-07 Citrix Systems International Gmbh Loading of server-stored user profile data
EP2241081B1 (de) 2008-01-26 2018-05-02 Citrix Systems, Inc. Systeme und verfahren für richtliniengesteuertes feinkorn-cookie-proxying
US8169958B2 (en) * 2008-03-27 2012-05-01 Cisco Technology, Inc. Obtaining information regarding services available from a wireless local area network
US8837465B2 (en) 2008-04-02 2014-09-16 Twilio, Inc. System and method for processing telephony sessions
CN104902113B (zh) 2008-04-02 2018-10-19 特维里奥公司 处理电话会话的系统和方法
WO2010040010A1 (en) 2008-10-01 2010-04-08 Twilio Inc Telephony web event system and method
US9270785B2 (en) 2008-12-18 2016-02-23 Citrix Systems, Inc. System and method for a distributed virtual desktop infrastructure
CN102415068B (zh) 2009-03-02 2015-09-02 特维里奥公司 用于多租户电话网络的方法和系统
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US9152401B2 (en) * 2009-05-02 2015-10-06 Citrix Systems, Inc. Methods and systems for generating and delivering an interactive application delivery store
US9210275B2 (en) 2009-10-07 2015-12-08 Twilio, Inc. System and method for running a multi-module telephony application
US9054913B1 (en) 2009-11-30 2015-06-09 Dell Software Inc. Network protocol proxy
KR101633366B1 (ko) * 2010-04-09 2016-06-24 삼성전자주식회사 앱스토어 서비스 제공 방법 및 시스템
US9590849B2 (en) 2010-06-23 2017-03-07 Twilio, Inc. System and method for managing a computing cluster
US20120208495A1 (en) 2010-06-23 2012-08-16 Twilio, Inc. System and method for monitoring account usage on a platform
US8838707B2 (en) 2010-06-25 2014-09-16 Twilio, Inc. System and method for enabling real-time eventing
KR101662660B1 (ko) * 2010-09-30 2016-10-06 삼성전자주식회사 서버 및 그 서비스 제공 방법
US20120117490A1 (en) * 2010-11-10 2012-05-10 Harwood William T Methods and systems for providing access, from within a virtual world, to an external resource
US8649268B2 (en) 2011-02-04 2014-02-11 Twilio, Inc. Method for processing telephony sessions of a network
US9648006B2 (en) 2011-05-23 2017-05-09 Twilio, Inc. System and method for communicating with a client application
US9398622B2 (en) 2011-05-23 2016-07-19 Twilio, Inc. System and method for connecting a communication to a client
US20140044123A1 (en) 2011-05-23 2014-02-13 Twilio, Inc. System and method for real time communicating with a client application
JP2013025671A (ja) * 2011-07-25 2013-02-04 Fujitsu Ltd サーバ装置、サーバ装置の制御方法、サーバ装置の制御プログラム及びコンピュータ
US10182147B2 (en) 2011-09-21 2019-01-15 Twilio Inc. System and method for determining and communicating presence information
JP5733136B2 (ja) 2011-09-26 2015-06-10 富士通株式会社 情報処理装置の制御方法、制御プログラム及び情報処理装置
EP2766820B1 (de) * 2011-10-13 2021-07-07 Citrix Systems Inc. System und verfahren für eine verteilte virtuelle desktop-infrastruktur
US9495227B2 (en) 2012-02-10 2016-11-15 Twilio, Inc. System and method for managing concurrent events
US9602586B2 (en) 2012-05-09 2017-03-21 Twilio, Inc. System and method for managing media in a distributed communication network
US9247062B2 (en) 2012-06-19 2016-01-26 Twilio, Inc. System and method for queuing a communication session
US8737962B2 (en) 2012-07-24 2014-05-27 Twilio, Inc. Method and system for preventing illicit use of a telephony platform
US8938053B2 (en) 2012-10-15 2015-01-20 Twilio, Inc. System and method for triggering on platform usage
US8948356B2 (en) 2012-10-15 2015-02-03 Twilio, Inc. System and method for routing communications
US9282124B2 (en) 2013-03-14 2016-03-08 Twilio, Inc. System and method for integrating session initiation protocol communication in a telecommunications platform
US9160696B2 (en) 2013-06-19 2015-10-13 Twilio, Inc. System for transforming media resource into destination device compatible messaging format
US9225840B2 (en) 2013-06-19 2015-12-29 Twilio, Inc. System and method for providing a communication endpoint information service
US9380040B1 (en) * 2013-07-11 2016-06-28 Parallels IP Holdings GmbH Method for downloading preauthorized applications to desktop computer using secure connection
US9274858B2 (en) 2013-09-17 2016-03-01 Twilio, Inc. System and method for tagging and tracking events of an application platform
US9137127B2 (en) 2013-09-17 2015-09-15 Twilio, Inc. System and method for providing communication platform metadata
US9325624B2 (en) 2013-11-12 2016-04-26 Twilio, Inc. System and method for enabling dynamic multi-modal communication
US9553799B2 (en) 2013-11-12 2017-01-24 Twilio, Inc. System and method for client communication in a distributed telephony network
US10044787B1 (en) * 2013-11-20 2018-08-07 Simon Frazier File transfer in a multi-node network
US9344573B2 (en) 2014-03-14 2016-05-17 Twilio, Inc. System and method for a work distribution service
US9226217B2 (en) 2014-04-17 2015-12-29 Twilio, Inc. System and method for enabling multi-modal communication
US11310312B2 (en) 2014-07-07 2022-04-19 Citrix Systems, Inc. Peer to peer remote application discovery
US11283866B2 (en) 2014-07-07 2022-03-22 Citrix Systems, Inc. Providing remote access to applications through interface hooks
US9246694B1 (en) 2014-07-07 2016-01-26 Twilio, Inc. System and method for managing conferencing in a distributed communication network
US9774687B2 (en) 2014-07-07 2017-09-26 Twilio, Inc. System and method for managing media and signaling in a communication platform
US9251371B2 (en) 2014-07-07 2016-02-02 Twilio, Inc. Method and system for applying data retention policies in a computing platform
US9516101B2 (en) 2014-07-07 2016-12-06 Twilio, Inc. System and method for collecting feedback in a multi-tenant communication platform
EP3210350B1 (de) 2014-10-21 2020-05-20 Twilio, Inc. Verfahren zur bereitstellung einer mikrodienstkommunikationsplattform
US9477975B2 (en) * 2015-02-03 2016-10-25 Twilio, Inc. System and method for a media intelligence platform
US9948703B2 (en) 2015-05-14 2018-04-17 Twilio, Inc. System and method for signaling through data storage
US10419891B2 (en) 2015-05-14 2019-09-17 Twilio, Inc. System and method for communicating through multiple endpoints
US10659349B2 (en) 2016-02-04 2020-05-19 Twilio Inc. Systems and methods for providing secure network exchanged for a multitenant virtual private cloud
US10686902B2 (en) 2016-05-23 2020-06-16 Twilio Inc. System and method for a multi-channel notification service
US10063713B2 (en) 2016-05-23 2018-08-28 Twilio Inc. System and method for programmatic device connectivity

Family Cites Families (266)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4387425A (en) * 1980-05-19 1983-06-07 Data General Corporation Masterless and contentionless computer network
USRE32632E (en) * 1982-07-19 1988-03-29 Apple Computer, Inc. Display system
US4499499A (en) * 1982-12-29 1985-02-12 International Business Machines Corporation Method for identification and compression of facsimile symbols in text processing systems
US4779189A (en) 1985-06-28 1988-10-18 International Business Machines Corporation Peripheral subsystem initialization method and apparatus
JPS62282328A (ja) 1986-02-21 1987-12-08 Hitachi Ltd 多重画面制御方式
US4937036A (en) * 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
JP2585535B2 (ja) * 1986-06-02 1997-02-26 株式会社日立製作所 複合計算機システムにおけるプロセス結合方法
US5062060A (en) 1987-01-05 1991-10-29 Motorola Inc. Computer human interface comprising user-adjustable window for displaying or printing information
US4887204A (en) 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5175852A (en) 1987-02-13 1992-12-29 International Business Machines Corporation Distributed file access structure lock
US5202971A (en) * 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US5072412A (en) 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US4949281A (en) 1987-04-23 1990-08-14 H. Berthold Ag Method and apparatus for generating and producing two-dimensional graphic object by polynominal parametric curves
US4903218A (en) * 1987-08-13 1990-02-20 Digital Equipment Corporation Console emulation for a graphics workstation
US5367688A (en) 1987-09-04 1994-11-22 Digital Equipment Corporation Boot system for distributed digital data processing system
US4974173A (en) 1987-12-02 1990-11-27 Xerox Corporation Small-scale workspace representations indicating activities by other users
US5014221A (en) * 1988-01-29 1991-05-07 Digital Equipment Corporation Mechanism for arbitrating client access to a networked print server
JPH01246656A (ja) 1988-03-29 1989-10-02 Nec Corp プロセッサ間共有メモリ管理方式
US5103303A (en) * 1988-04-19 1992-04-07 Konica Corporation Multicolor imaging forming apparatus
US4958303A (en) 1988-05-12 1990-09-18 Digital Equipment Corporation Apparatus for exchanging pixel data among pixel processors
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
US5155847A (en) 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5255361A (en) 1988-12-19 1993-10-19 International Business Machines Corporation Method of and system for updating a display unit
US5031089A (en) 1988-12-30 1991-07-09 United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Dynamic resource allocation scheme for distributed heterogeneous computer systems
EP0381645A3 (de) 1989-01-18 1992-08-05 International Business Machines Corporation Übertragungssystem und -verfahren zwischen einer Vielzahl von Prozessoren
US5349678A (en) * 1991-08-21 1994-09-20 Norand Corporation Versatile RF data capture system
US5341477A (en) 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
DE69030340T2 (de) 1989-02-24 1997-11-20 Digital Equipment Corp Makler für die Auswahl von Rechnernetzwerkservern
KR930003126B1 (ko) 1989-04-20 1993-04-19 가부시기가이샤 도시바 곡선정합에 있어서 형상을 표시하는 직선쇼트벡터의 접속상태를 판정하는 방법 및 시스템
US5305440A (en) * 1989-05-15 1994-04-19 International Business Machines Corporation File extension by clients in a distributed data processing system
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
EP0414624B1 (de) 1989-08-24 1996-12-18 International Business Machines Corporation System für den Aufruf von Prozeduren von einem Fernnetzwerkknotenpunkt
US5119319A (en) * 1989-12-14 1992-06-02 Options Unlimited Research Corp. Full-duplex video communication system
US5301270A (en) * 1989-12-18 1994-04-05 Anderson Consulting Computer-assisted software engineering system for cooperative processing environments
US5309555A (en) * 1990-05-15 1994-05-03 International Business Machines Corporation Realtime communication of hand drawn images in a multiprogramming window environment
CA2041992A1 (en) 1990-05-18 1991-11-19 Yeshayahu Artsy Routing objects on action paths in a distributed computing system
EP0463251A1 (de) 1990-06-28 1992-01-02 International Business Machines Corporation Software-Installation
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
EP0475581A3 (en) 1990-08-30 1993-06-23 Hewlett-Packard Company Method and apparatus for window sharing between computer displays
US5583992A (en) 1990-09-14 1996-12-10 Kabushiki Kaisha Toshiba Computer network system for detecting global deadlock
US5303198A (en) * 1990-09-28 1994-04-12 Fuji Photo Film Co., Ltd. Method of recording data in memory card having EEPROM and memory card system using the same
US5204947A (en) 1990-10-31 1993-04-20 International Business Machines Corporation Application independent (open) hypermedia enablement services
US5241625A (en) 1990-11-27 1993-08-31 Farallon Computing, Inc. Screen image sharing among heterogeneous computers
DE69126414T2 (de) * 1990-12-26 1997-10-30 Canon Kk Multimedia-Kommunikationsapparat
US5249290A (en) 1991-02-22 1993-09-28 At&T Bell Laboratories Method of and apparatus for operating a client/server computer network
JPH04271454A (ja) * 1991-02-27 1992-09-28 Toshiba Corp 疎結合計算機システム
JPH04311252A (ja) * 1991-04-10 1992-11-04 Hitachi Ltd ネットワークを利用した情報処理方法
JPH04342055A (ja) * 1991-05-20 1992-11-27 Nec Corp 複数コンピュータシステムの利用者認証方法
CA2069355C (en) 1991-06-07 1998-10-06 Robert C. Pike Global user interface
US5559958A (en) * 1991-06-24 1996-09-24 Compaq Computer Corporation Graphical user interface for computer management system and an associated management information base
US5204897A (en) * 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
JPH0546568A (ja) 1991-08-08 1993-02-26 Internatl Business Mach Corp <Ibm> 分散アプリケーシヨン実行装置および方法
IL99923A0 (en) 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
US5315711A (en) * 1991-11-01 1994-05-24 Unisys Corporation Method and apparatus for remotely and centrally controlling a plurality of host processors
US5619716A (en) * 1991-11-05 1997-04-08 Hitachi, Ltd. Information processing system having a configuration management system for managing the software of the information processing system
US5351129A (en) 1992-03-24 1994-09-27 Rgb Technology D/B/A Rgb Spectrum Video multiplexor-encoder and decoder-converter
WO1993020511A1 (en) * 1992-03-31 1993-10-14 Aggregate Computing, Inc. An integrated remote execution system for a heterogenous computer network environment
FR2690260B1 (fr) 1992-04-17 1997-01-03 Bull Sa Utilisation d'un protocole bidirectionnel de tres haut niveau pour la communication entre un systeme hypermedia et une pluralite d'editeurs.
WO1993025962A1 (en) * 1992-06-18 1993-12-23 International Business Machines Corporation Distributed applications processing network
US5440719A (en) 1992-10-27 1995-08-08 Cadence Design Systems, Inc. Method simulating data traffic on network in accordance with a client/sewer paradigm
US5329619A (en) 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
JP3553987B2 (ja) * 1992-11-13 2004-08-11 株式会社日立製作所 クライアント・サーバシステム
JP2505974B2 (ja) 1992-12-08 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 複数の適用業務プログラムを統合化グラフィカル・ユ―ザ・インタフェ―ス処理環境へ統合化するための方法
US5566302A (en) 1992-12-21 1996-10-15 Sun Microsystems, Inc. Method for executing operation call from client application using shared memory region and establishing shared memory region when the shared memory region does not exist
US5572674A (en) 1993-01-07 1996-11-05 Bmc Software, Inc. Method of dynamically adjusting SNA network control program parameters
US5325527A (en) * 1993-01-19 1994-06-28 Canon Information Systems, Inc. Client/server communication system utilizing a self-generating nodal network
US5469540A (en) 1993-01-27 1995-11-21 Apple Computer, Inc. Method and apparatus for generating and displaying multiple simultaneously-active windows
US5671379A (en) 1993-01-29 1997-09-23 International Business Machines Corporation System and method for managing windows
US5459837A (en) * 1993-04-21 1995-10-17 Digital Equipment Corporation System to facilitate efficient utilization of network resources in a computer network
US5930473A (en) * 1993-06-24 1999-07-27 Teng; Peter Video application server for mediating live video services
US5794207A (en) * 1996-09-04 1998-08-11 Walker Asset Management Limited Partnership Method and apparatus for a cryptographically assisted commercial network system designed to facilitate buyer-driven conditional purchase offers
JP2576762B2 (ja) 1993-06-30 1997-01-29 日本電気株式会社 リング網のノード間情報収集方式
WO1995004968A1 (en) 1993-08-03 1995-02-16 Forte Software, Inc. Flexible multi-platform partitioning for computer applications
US5359593A (en) 1993-08-26 1994-10-25 International Business Machines Corporation Dynamic bandwidth estimation and adaptation for packet communications networks
DE4417588A1 (de) * 1993-08-30 1995-03-02 Hewlett Packard Co Verfahren und Vorrichtung zum Erfassen und Weiterleiten von Fensterereignissen zu einer Mehrzahl von bestehenden Anwendungen zur gleichzeitigen Ausführung
US5844553A (en) 1993-08-30 1998-12-01 Hewlett-Packard Company Mechanism to control and use window events among applications in concurrent computing
GB2281793A (en) 1993-09-11 1995-03-15 Ibm A data processing system for providing user load levelling in a network
US5553242A (en) 1993-11-03 1996-09-03 Wang Laboratories, Inc. Client/server connection sharing
US5574934A (en) 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5548726A (en) 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
US5499343A (en) * 1993-12-17 1996-03-12 Taligent, Inc. Object-oriented networking system with dynamically configurable communication links
US5515508A (en) * 1993-12-17 1996-05-07 Taligent, Inc. Client server system and method of operation including a dynamically configurable protocol stack
US5495411A (en) * 1993-12-22 1996-02-27 Ananda; Mohan Secure software rental system using continuous asynchronous password verification
US5592626A (en) * 1994-02-07 1997-01-07 The Regents Of The University Of California System and method for selecting cache server based on transmission and storage factors for efficient delivery of multimedia information in a hierarchical network of servers
JP3454285B2 (ja) * 1994-02-15 2003-10-06 富士ゼロックス株式会社 データ処理装置およびデータ処理方法
US5473599A (en) 1994-04-22 1995-12-05 Cisco Systems, Incorporated Standby router protocol
CA2145921A1 (en) 1994-05-10 1995-11-11 Vijay Pochampalli Kumar Method and apparatus for executing a distributed algorithm or service on a simple network management protocol based computer network
US5596745A (en) * 1994-05-16 1997-01-21 International Business Machines Corporation System and procedure for concurrent database access by multiple user applications through shared connection processes
US5594490A (en) * 1994-05-23 1997-01-14 Cable Services Technologies, Inc. System for distributing video/audio files from central location to a plurality of cable headends
US5517617A (en) * 1994-06-29 1996-05-14 Digital Equipment Corporation Automatic assignment of addresses in a computer communications network
EP0692891A1 (de) 1994-07-12 1996-01-17 T.R.T. Telecommunications Radioelectriques Et Telephoniques System und Vorrichtung zum Verbinden von Lokalenetzen unter Verwendung eines Quellen-Leitweglenkungsprotokolles
US5655218A (en) 1994-07-29 1997-08-05 Motorola, Inc. Radiotelephone communication unit displaying chronological information
JP3160830B2 (ja) * 1994-08-02 2001-04-25 日本電信電話株式会社 マルチメディアシステムアクセス方式、アクセス方法及び接続制御装置
US5557732A (en) 1994-08-11 1996-09-17 International Business Machines Corporation Method and apparatus for protecting software executing on a demonstration computer
US5485460A (en) * 1994-08-19 1996-01-16 Microsoft Corporation System and method for running multiple incompatible network protocol stacks
TW252248B (en) * 1994-08-23 1995-07-21 Ibm A semiconductor memory based server for providing multimedia information on demand over wide area networks
US5541927A (en) 1994-08-24 1996-07-30 At&T Corp. Method of multicasting
AUPM813394A0 (en) 1994-09-14 1994-10-06 Dolphin Software Pty Ltd A method and apparatus for preparation of a database document in a local processing apparatus and loading of the database document with data from remote sources
US5586312A (en) 1994-10-11 1996-12-17 Unisys Corporation Method and apparatus for using an independent transaction processing application as a service routine
US5838906A (en) 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
US5913920A (en) 1994-12-13 1999-06-22 International Business Machines Corporation Indicating updates from a remote display
US5623656A (en) * 1994-12-15 1997-04-22 Lucent Technologies Inc. Script-based data communication system and method utilizing state memory
US5530852A (en) * 1994-12-20 1996-06-25 Sun Microsystems, Inc. Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics
DE69531599T2 (de) 1994-12-20 2004-06-24 Sun Microsystems, Inc., Mountain View Verfahren und Gerät zum Auffinden und Beschaffen personalisierter Informationen
US5680549A (en) 1994-12-30 1997-10-21 Compuserve Incorporated System for transferring network connections from first to second program where the first enters an inactive state and resumes control of connections when second terminates
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
US5682478A (en) 1995-01-19 1997-10-28 Microsoft Corporation Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server
US5557748A (en) 1995-02-03 1996-09-17 Intel Corporation Dynamic network configuration
JPH08235114A (ja) * 1995-02-28 1996-09-13 Hitachi Ltd サーバアクセス方法と課金情報管理方法
US5819093A (en) 1995-03-03 1998-10-06 Sun Microsystems, Inc. System and method for a distributed debugger for debugging distributed application programs
US5655081A (en) * 1995-03-08 1997-08-05 Bmc Software, Inc. System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture
US5857102A (en) 1995-03-14 1999-01-05 Sun Microsystems, Inc. System and method for determining and manipulating configuration information of servers in a distributed object environment
US5870552A (en) * 1995-03-28 1999-02-09 America Online, Inc. Method and apparatus for publishing hypermedia documents over wide area networks
US5666501A (en) 1995-03-30 1997-09-09 International Business Machines Corporation Method and apparatus for installing software
US5721876A (en) * 1995-03-30 1998-02-24 Bull Hn Information Systems Inc. Sockets application program mechanism for proprietary based application programs running in an emulation environment
US5689708A (en) * 1995-03-31 1997-11-18 Showcase Corporation Client/server computer systems having control of client-based application programs, and application-program control means therefor
US5692183A (en) 1995-03-31 1997-11-25 Sun Microsystems, Inc. Methods and apparatus for providing transparent persistence in a distributed object operating environment
US5701451A (en) 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5710918A (en) * 1995-06-07 1998-01-20 International Business Machines Corporation Method for distributed task fulfillment of web browser requests
US5734865A (en) * 1995-06-07 1998-03-31 Bull Hn Information Systems Inc. Virtual local area network well-known port routing mechanism for mult--emulators in an open system environment
US5737592A (en) 1995-06-19 1998-04-07 International Business Machines Corporation Accessing a relational database over the Internet using macro language files
JP3535267B2 (ja) * 1995-07-03 2004-06-07 富士通株式会社 監視システムの監視状態表示装置
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
JP3137173B2 (ja) * 1995-07-20 2001-02-19 富士ゼロックス株式会社 認証情報管理装置
US5644720A (en) * 1995-07-31 1997-07-01 West Publishing Company Interprocess communications interface for managing transaction requests
US5767849A (en) * 1995-08-18 1998-06-16 International Business Machines Corporation Personality neutral window management subsystem
US5657390A (en) 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
JPH0997227A (ja) * 1995-09-29 1997-04-08 Fujitsu Ltd クライアント/サーバスタイルにおける業務運用システム
US5758186A (en) 1995-10-06 1998-05-26 Sun Microsystems, Inc. Method and apparatus for generically handling diverse protocol method calls in a client/server computer system
US5913060A (en) 1995-10-11 1999-06-15 Citrix Systems, Inc. Method for deadlock avoidance in a distributed process system using a synchronous procedure call
US5826027A (en) 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
JPH09114783A (ja) * 1995-10-13 1997-05-02 Sony Corp 情報処理装置および方法
US5572643A (en) 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
US5802306A (en) 1995-10-31 1998-09-01 International Business Machines Corporation Supporting multiple client-server sessions from a protocol stack associated with a single physical adapter through use of a plurality of logical adapters
US5729734A (en) 1995-11-03 1998-03-17 Apple Computer, Inc. File privilege administration apparatus and methods
US7555529B2 (en) * 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6950991B2 (en) 1995-11-13 2005-09-27 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
ES2180793T3 (es) 1995-11-14 2003-02-16 Ibm Sistema de tratamiento de informacion para permitir que un navegador de red generico acceda a servidores de una pluralidad de tipos de protocolos diferentes.
US5684861A (en) 1995-12-04 1997-11-04 Lewis; Walter F. Apparatus and method for monitoring cellular telephone usage
US6161126A (en) 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
US6101531A (en) 1995-12-19 2000-08-08 Motorola, Inc. System for communicating user-selected criteria filter prepared at wireless client to communication server for filtering data transferred from host to said wireless client
US5748896A (en) * 1995-12-27 1998-05-05 Apple Computer, Inc. Remote network administration methods and apparatus
US5706437A (en) * 1995-12-29 1998-01-06 Mci Communications Corporation System and method for accessing a service on a services network
DE19602718B4 (de) 1996-01-26 2004-03-25 Loewe Opta Gmbh Verfahren zur Beeinflussung mindestens des Verbindungsaufbaus einer Telekommunikationsendeinrichtung an ein Telefonnetz und Schaltungsanordnung hierfür
US5862348A (en) * 1996-02-09 1999-01-19 Citrix Systems, Inc. Method and apparatus for connecting a client node to a server node based on load levels
JPH09233467A (ja) 1996-02-21 1997-09-05 Fujitsu Ltd 画像データ通信装置及び画像データ通信システムにおける通信データ量調整方法
US5961588A (en) 1996-02-22 1999-10-05 Alcatel Usa Sourcing, L.P. Handling of commands passed between the server and client stations of a telecommunications system
US6167432A (en) 1996-02-29 2000-12-26 Webex Communications, Inc., Method for creating peer-to-peer connections over an interconnected network to facilitate conferencing among users
US5761507A (en) * 1996-03-05 1998-06-02 International Business Machines Corporation Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling
US5764915A (en) * 1996-03-08 1998-06-09 International Business Machines Corporation Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack
US5938733A (en) 1996-03-08 1999-08-17 International Business Machines Corporation Object oriented representation of network requests in a client server model
US5838910A (en) 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site
US5748892A (en) * 1996-03-25 1998-05-05 Citrix Systems, Inc. Method and apparatus for client managed flow control on a limited memory computer system
US5625683A (en) * 1996-03-25 1997-04-29 Motorola, Inc. Method of and telephone with call-reminding and auto-dialing
US6101528A (en) * 1996-03-27 2000-08-08 Intel Corporation Method and apparatus for discovering server applications by a client application in a network of computer systems
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
US5905866A (en) * 1996-04-30 1999-05-18 A.I. Soft Corporation Data-update monitoring in communications network
US5802258A (en) 1996-05-03 1998-09-01 International Business Machines Corporation Loosely coupled system environment designed to handle a non-disruptive host connection switch after detection of an error condition or during a host outage or failure
US5864678A (en) * 1996-05-08 1999-01-26 Apple Computer, Inc. System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate
JP4086340B2 (ja) * 1996-05-17 2008-05-14 富士通株式会社 ネットワーク認証システム
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US6034689A (en) * 1996-06-03 2000-03-07 Webtv Networks, Inc. Web browser allowing navigation between hypertext objects using remote control
US6175854B1 (en) 1996-06-11 2001-01-16 Ameritech Services, Inc. Computer system architecture and method for multi-user, real-time applications
US6014133A (en) * 1996-06-14 2000-01-11 Seiko Epson Corporation Data transmitter/receiver apparatus, data transmitter, data receiver, and data compression method
US5881241A (en) * 1996-06-19 1999-03-09 Sun Microsystems, Inc. System for transmitting data packet after matching data packet's routing pattern with predetermined data routes stored in a route table
US6272556B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for migrating a client-server application (#5)
US6031533A (en) * 1996-07-03 2000-02-29 Sun Microsystems, Inc. Graphical user interface for use in a de-centralized network environment
KR100203266B1 (ko) 1996-07-09 1999-06-15 윤종용 윤곽선복호화장치
US5764908A (en) * 1996-07-12 1998-06-09 Sofmap Future Design, Inc. Network system containing program modules residing in different computers and executing commands without return results to calling modules
US5757925A (en) * 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
US6115744A (en) * 1996-07-30 2000-09-05 Bea Systems, Inc. Client object API and gateway to enable OLTP via the internet
US5828840A (en) 1996-08-06 1998-10-27 Verifone, Inc. Server for starting client application on client if client is network terminal and initiating client application on server if client is non network terminal
WO1998006033A1 (en) 1996-08-08 1998-02-12 Agranat Systems, Inc. Embedded web server
US5898835A (en) * 1996-08-16 1999-04-27 Electronic Data Systems Corporation System and method for remotely executing a command
US5842206A (en) 1996-08-20 1998-11-24 Iconovex Corporation Computerized method and system for qualified searching of electronically stored documents
US5805166A (en) * 1996-08-23 1998-09-08 Intenational Business Machines Corp. Segmented status area for dynamically reporting status in a data processing system
US6195678B1 (en) * 1996-09-03 2001-02-27 Fujitsu Limited Remote resource management system for automatically downloading required files from application server depending on contents of selected files on requesting computer
US5979757A (en) 1996-09-05 1999-11-09 Symbol Technologies, Inc. Method and system for presenting item information using a portable data terminal
US5944791A (en) 1996-10-04 1999-08-31 Contigo Software Llc Collaborative web browser
US5960409A (en) 1996-10-11 1999-09-28 Wexler; Daniel D. Third-party on-line accounting system and method therefor
US5884046A (en) * 1996-10-23 1999-03-16 Pluris, Inc. Apparatus and method for sharing data and routing messages between a plurality of workstations in a local area network
GB9623298D0 (en) 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US5870545A (en) * 1996-12-05 1999-02-09 Hewlett-Packard Company System and method for performing flexible workflow process compensation in a distributed workflow management system
US6061695A (en) * 1996-12-06 2000-05-09 Microsoft Corporation Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document
US6065059A (en) * 1996-12-10 2000-05-16 International Business Machines Corporation Filtered utilization of internet data transfers to reduce delay and increase user control
US6067568A (en) * 1996-12-10 2000-05-23 International Business Machines Corporation Automatic setup of services for computer system users
US6131116A (en) 1996-12-13 2000-10-10 Visto Corporation System and method for globally accessing computer services
US5889942A (en) 1996-12-18 1999-03-30 Orenshteyn; Alexander S. Secured system for accessing application services from a remote station
US6374237B1 (en) * 1996-12-24 2002-04-16 Intel Corporation Data set selection based upon user profile
US5978847A (en) 1996-12-26 1999-11-02 Intel Corporation Attribute pre-fetch of web pages
US5941988A (en) 1997-01-27 1999-08-24 International Business Machines Corporation Session and transport layer proxies via TCP glue
GB2321729B (en) 1997-02-04 2001-06-13 Ibm Data processing system, method, and server
US5790977A (en) 1997-02-06 1998-08-04 Hewlett-Packard Company Data acquisition from a remote instrument via the internet
AU740007B2 (en) 1997-02-21 2001-10-25 Dudley John Mills Network-based classified information systems
US5923842A (en) 1997-03-06 1999-07-13 Citrix Systems, Inc. Method and apparatus for simultaneously providing anonymous user login for multiple users
US6067580A (en) * 1997-03-11 2000-05-23 International Business Machines Corporation Integrating distributed computing environment remote procedure calls with an advisory work load manager
JP3884123B2 (ja) * 1997-03-11 2007-02-21 富士通株式会社 ネットワークを利用した各種サービスへのアクセス方式
US5949975A (en) 1997-03-12 1999-09-07 Microsoft Corp. Method and system for negotiating capabilities when sharing an application program with multiple computer systems
US5978848A (en) 1997-03-14 1999-11-02 International Business Machines Corporation Web browser method and system for backgrounding a link access during slow link access time periods
US6023507A (en) * 1997-03-17 2000-02-08 Sun Microsystems, Inc. Automatic remote computer monitoring system
US6263377B1 (en) 1997-03-28 2001-07-17 International Business Machines Corporation Method for managing distributed applications and distributed application manager
GB2323946B (en) 1997-04-04 2002-04-17 Sony Uk Ltd Database accessing method and apparatus
JPH10301874A (ja) 1997-04-22 1998-11-13 Internatl Business Mach Corp <Ibm> 遠隔操作方法、ネットワークを介して端末から遠隔操作されるサーバ及びhtmlファイルを格納する記憶媒体
US6038599A (en) * 1997-04-23 2000-03-14 Mpath Interactive, Inc. Latency server and matchmaker
US6161145A (en) * 1997-05-08 2000-12-12 International Business Machines Corporation Updating server-related data at a client
US6023721A (en) * 1997-05-14 2000-02-08 Citrix Systems, Inc. Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility
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
US5961586A (en) 1997-05-14 1999-10-05 Citrix Systems, Inc. System and method for remotely executing an interpretive language application
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
US5983190A (en) 1997-05-19 1999-11-09 Microsoft Corporation Client server animation system for managing interactive user interface characters
US6038596A (en) * 1997-05-23 2000-03-14 International Business Machines Corporation Method and system in a network for decreasing performance degradation triggered by multiple user redundant input events
US5877757A (en) * 1997-05-23 1999-03-02 International Business Machines Corporation Method and system for providing user help information in network applications
US6035337A (en) * 1997-05-30 2000-03-07 International Business Machines Corp. Method and system for managing data flow within a collaboration system using proximity determination modules
US5930804A (en) * 1997-06-09 1999-07-27 Philips Electronics North America Corporation Web-based biometric authentication system and method
US6292827B1 (en) 1997-06-20 2001-09-18 Shore Technologies (1999) Inc. Information transfer systems and method with dynamic distribution of data, control and management of information
US5999950A (en) 1997-08-11 1999-12-07 Webtv Networks, Inc. Japanese text input method using a keyboard with only base kana characters
US6078956A (en) * 1997-09-08 2000-06-20 International Business Machines Corporation World wide web end user response time monitor
US6393015B1 (en) * 1997-09-12 2002-05-21 Genesys Telecommunications Laboratories, Inc. Method and apparatus for automatic network connection between a small business and a client
US5940075A (en) 1997-09-30 1999-08-17 Unisys Corp. Method for extending the hypertext markup language (HTML) to support enterprise application data binding
US6125387A (en) 1997-09-30 2000-09-26 The United States Of America Represented By The Secretary Of The Navy Operating methods for robust computer systems permitting autonomously switching between alternative/redundant
US5848410A (en) 1997-10-08 1998-12-08 Hewlett Packard Company System and method for selective and continuous index generation
US6009410A (en) 1997-10-16 1999-12-28 At&T Corporation Method and system for presenting customized advertising to a user on the world wide web
US6185609B1 (en) * 1997-10-24 2001-02-06 Sun Microsystems, Inc. Method, apparatus and program to provide client access to a management information service residing on a server in a computer network system
DE19747583B4 (de) * 1997-10-28 2006-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Kommunikationssystem und Verfahren
US6104392A (en) * 1997-11-13 2000-08-15 The Santa Cruz Operation, Inc. Method of displaying an application on a variety of client devices in a client/server network
US5999179A (en) 1997-11-17 1999-12-07 Fujitsu Limited Platform independent computer network management client
US5860068A (en) * 1997-12-04 1999-01-12 Petabyte Corporation Method and system for custom manufacture and delivery of a data product
US6157705A (en) * 1997-12-05 2000-12-05 E*Trade Group, Inc. Voice control of a server
US6141759A (en) * 1997-12-10 2000-10-31 Bmc Software, Inc. System and architecture for distributing, monitoring, and managing information requests on a computer network
US6154749A (en) * 1998-01-15 2000-11-28 At&T Corp. Distributed caching scheme for database systems
US6339826B2 (en) * 1998-05-05 2002-01-15 International Business Machines Corp. Client-server system for maintaining a user desktop consistent with server application user access permissions
US6108712A (en) 1998-05-05 2000-08-22 International Business Machines Corp. Client-server system with central application management and providing export agent capability for retrofitting existing hardware and applications into the system
US6023572A (en) * 1998-05-12 2000-02-08 Unisys Corporation Computer based system and method for modeling activities of people in an organization
US6308212B1 (en) * 1998-05-29 2001-10-23 Hewlett-Packard Company Web user interface session and sharing of session environment information
US6289461B1 (en) 1998-06-09 2001-09-11 Placeware, Inc. Bi-directional process-to-process byte stream protocol
US6338086B1 (en) * 1998-06-11 2002-01-08 Placeware, Inc. Collaborative object architecture
US6446109B2 (en) 1998-06-29 2002-09-03 Sun Microsystems, Inc. Application computing environment
US6256666B1 (en) 1998-07-14 2001-07-03 International Business Machines Corp. Method and system for remotely managing electronic mail attachments
US6266781B1 (en) 1998-07-20 2001-07-24 Academia Sinica Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network
US6157953A (en) * 1998-07-28 2000-12-05 Sun Microsystems, Inc. Authentication and access control in a management console program for managing services in a computer network
US6738809B1 (en) * 1998-08-21 2004-05-18 Nortel Networks Limited Network presence indicator for communications management
US6336138B1 (en) * 1998-08-25 2002-01-01 Hewlett-Packard Company Template-driven approach for generating models on network services
US6311205B1 (en) * 1998-10-19 2001-10-30 International Business Machines Corporation Persistent user groups on servers managed by central servers
US6409602B1 (en) 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
US6510466B1 (en) * 1998-12-14 2003-01-21 International Business Machines Corporation Methods, systems and computer program products for centralized management of application programs on a network
US6272493B1 (en) 1999-01-21 2001-08-07 Wired Solutions, Llc System and method for facilitating a windows based content manifestation environment within a WWW browser
US6263363B1 (en) 1999-01-28 2001-07-17 Skydesk, Inc. System and method for creating an internet-accessible working replica of a home computer on a host server controllable by a user operating a remote access client computer
US6792605B1 (en) 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
AU5759100A (en) * 1999-06-23 2001-01-09 Webango, Inc. Method for buy-side bid management
US20010052932A1 (en) 1999-12-30 2001-12-20 Young Robert S. Digital film processing method and system
JP2001195465A (ja) 2000-01-11 2001-07-19 Fuji Photo Film Co Ltd 出力サービスシステム
US6654784B1 (en) 2000-01-14 2003-11-25 Nexaweb Technologies, Inc Computing architecture
US6271418B1 (en) * 2000-02-22 2001-08-07 Nippon Kayaku Co., Ltd. Process for preparing (hetero) aromatic substituted benzene derivatives
US7237114B1 (en) 2000-04-26 2007-06-26 Pronvest, Inc. Method and system for signing and authenticating electronic documents
US20020029285A1 (en) * 2000-05-26 2002-03-07 Henry Collins Adapting graphical data, processing activity to changing network conditions
US7958185B2 (en) * 2000-09-18 2011-06-07 Bentley Systems, Inc. Spatial data enabled engineering, construction, and operations computer-aided design (CAD) project system, method and computer program product
GB2368930B (en) * 2000-10-17 2005-04-06 Hewlett Packard Co Establishment of a deferred network communication session
US6986040B1 (en) * 2000-11-03 2006-01-10 Citrix Systems, Inc. System and method of exploiting the security of a secure communication channel to secure a non-secure communication channel
US6912582B2 (en) 2001-03-30 2005-06-28 Microsoft Corporation Service routing and web integration in a distributed multi-site user authentication system
US20050198379A1 (en) 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
EP1321853A3 (de) 2001-12-10 2009-12-23 Sap Ag Dynamische Übertragung von Komponenten, basierend auf dem Aushandeln von Ressourcen zwischen Rechnersystemen
US7984157B2 (en) 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7266582B2 (en) 2002-08-09 2007-09-04 Sun Microsystems, Inc. Method and system for automating generation of web services from existing service components
US7296022B2 (en) 2003-07-14 2007-11-13 Microsoft Corporation Method and system for accessing a network database as a web service

Also Published As

Publication number Publication date
EP1141828A1 (de) 2001-10-10
GB9930782D0 (en) 2000-02-16
CA2293127C (en) 2011-03-01
KR100630212B1 (ko) 2006-10-02
PT1141828E (pt) 2004-03-31
HK1040124B (zh) 2004-05-14
JP2002533830A (ja) 2002-10-08
US20050198292A1 (en) 2005-09-08
IL143762A0 (en) 2002-04-21
AU6555299A (en) 2000-07-06
CA2293127A1 (en) 2000-06-29
US6928469B1 (en) 2005-08-09
DK1141828T3 (da) 2004-02-23
ATE252744T1 (de) 2003-11-15
DE69912317D1 (de) 2003-11-27
KR20060096474A (ko) 2006-09-11
GB2349488A (en) 2000-11-01
ES2209549T3 (es) 2004-06-16
WO2000039678A1 (en) 2000-07-06
AU765088B2 (en) 2003-09-11
AU2212900A (en) 2000-07-31
HK1040124A1 (en) 2002-05-24
EP1141828B1 (de) 2003-10-22
US8527615B2 (en) 2013-09-03

Similar Documents

Publication Publication Date Title
DE69912317T2 (de) Vorrichtung und verfahren zur bestimmung einer programmnachbarschaft für einen kundenknoten in einem kundenbedienernetzwerk
DE69832406T2 (de) Kombiniertes internet-und datenzugangssystem
DE69838262T2 (de) Allgemeine benutzer-authentifizierung für netz-rechner
DE60218069T2 (de) Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung
DE69818008T2 (de) Datenzugriffssteuerung
DE60100680T2 (de) Vorrichtung und Verfahren mit sicherem und öffentlichem Zugang
DE69921455T2 (de) System und verfahren zur zugriffssteuerung auf gespeicherte dokumente
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
DE602005003314T2 (de) Spezialisierung der Unterstützung für eine Verbandsbeziehung
DE69633564T2 (de) Zugangskontrolle und überwachungssystem für internetserver
DE69935030T2 (de) System und Verfahren zur Web-Server Benutzerauthentifizierung
DE69734189T2 (de) Verteiltes Netzwerkrechnersystem und Datenaustauschgerät
DE10051021B4 (de) System, Verfahren und Computerprogramm zur Bereitstellung interaktiver Web-Inhalte in statisch verknüpften Dateien
DE60311684T2 (de) Kundenzugang zum internetdienst
DE69832786T2 (de) Vorrichtung und verfahren zur identifizierung von klienten die an netzwer-sites zugreifen
DE602004003135T2 (de) Einheitliches management von netzressourcen für gleichzeitige teilnahme mehrerer nutzer an einer sitzung
DE60127078T2 (de) Vorrichtung für anhaltende Chatsitzungen
DE69732982T2 (de) Automatische konfigurierung eines internetzugriffsgeräts
DE60028561T2 (de) Bereitstellung von kundendiensten, die daten aus datenquellen abrufen, wobei die datenquellen die vom kunden geforderten formate nicht notwendigerweise unterstützen
DE10003907A1 (de) Browser für die Anwendung beim Zugriff auf Hypertext-Dokumente in einer Mehrnutzer-Computerumgebung
DE10314792A1 (de) Verfolgen von Benutzern an einem Webservernetz
DE60210356T2 (de) Verwalter von Dienststufenübereinkommen in einem Datennetz
DE10295700T5 (de) Eine Anordnung und ein Verfahren in Bezug auf Endnutzerstationszugriff auf ein Portal
EP2165510A2 (de) Ressourcenzugriff unter vermittlung durch ein sicherheitsmodul
EP1189149A1 (de) Verfahren und Anordnung zur Modifikation einer Webpage

Legal Events

Date Code Title Description
8364 No opposition during term of opposition