DE60008555T2 - Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache - Google Patents

Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache Download PDF

Info

Publication number
DE60008555T2
DE60008555T2 DE60008555T DE60008555T DE60008555T2 DE 60008555 T2 DE60008555 T2 DE 60008555T2 DE 60008555 T DE60008555 T DE 60008555T DE 60008555 T DE60008555 T DE 60008555T DE 60008555 T2 DE60008555 T2 DE 60008555T2
Authority
DE
Germany
Prior art keywords
application
server
client
user interface
independent
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
DE60008555T
Other languages
English (en)
Other versions
DE60008555D1 (de
Inventor
C. David MITCHELL
Ben Walters
Dale Mitchell
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
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of DE60008555D1 publication Critical patent/DE60008555D1/de
Application granted granted Critical
Publication of DE60008555T2 publication Critical patent/DE60008555T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Client-Server-Netze und insbesondere Verfahren und Vorrichtungen zur Fernausführung einer Anwendung und Fernanzeige einer Anwendungsausgabe.
  • Allgemeiner Stand der Technik
  • Moderne Computernetze bestehen aus etlichen Computersystemen, welche Knoten genannt werden und mit anderen Computersystemen über Kommunikationsverbindungsleitungen in Verbindung stehen. Normalerweise sind einige der Knoten Client-Knoten, und andere Knoten sind Server-Knoten. Ein Client-Knoten formuliert und übermittelt Abfragen an einen Server-Knoten. Ein Benutzer des Client-Knotens gibt die Abfragen durch eine Benutzerschnittstelle, welche auf dem Client-Knoten funktioniert, ein. Der Server-Knoten wertet die Abfragen aus und übermittelt Antworten an den Client-Knoten zur Anzeige auf der Client-Benutzerschnittstelle.
  • Normalerweise beherbergen die Server-Knoten eine Vielfalt von Anwendungsprogrammen oder -prozessen, auf welche durch Client-Knoten zugegriffen werden kann und welche durch dieselben ausgeführt werden können. Wenn ein Client-Knoten ein Anwendungsprogramm startet, kann die Ausführung dieses Anwendungsprogramms in Abhängigkeit vom Rechenmodell, dem das Computernetz folgt, entweder am Client-Knoten oder am Server-Knoten erfolgen.
  • Bei einem clientbasierten Rechenmodell wird das Anwendungsprogramm verdichtet und an den Client-Knoten hinunter gesendet oder in diesem vorinstalliert, wodurch dem Client-Knoten erlaubt wird, die Anwendung unter Verwendung der Betriebsmittel des Client-Knotens ablaufen zu lassen. Diese Lösung weist mehrere Nachteile auf. Erstens muss der Client-Knoten über genügend Speicherkapazität, Festplattenspeicherplatz und Verarbeitungsleistung verfügen, um die Anwendung effektiv auszuführen. Ein verwandtes Problem, das bei Verwenden dieses Modells auftritt, ist, dass die Anzahl von Anwendungen, die ein bestimmter Client ausführen kann, infolge der Betriebsmitteleinschränkungen des Clients begrenzt ist. Außerdem ist es kompliziert, Anwendungen, welche auf diese Weise aufgebaut sind, zu entwickeln und aufrechtzuerhalten, und erfordern normalerweise eine Modifikation oder „Portieren" für alle Arten von unterstützten Client-Computersystemen. Außerdem vergrößert diese Technik die Verwaltungslast auf einem Netzverwalter.
  • Bei einem serverbasierten Rechenmodell führt der Server-Knoten das Anwendungsprogramm aus, und es wird nur die Steuerinformation für die Client-Benutzerschnittstelle über das Computernetz an den Client-Knoten zur Anzeige übertragen. Bei Verwenden dieser Lösung müssen Benutzerschnittstellenereignisse zwischen dem Client und dem Server hin- und hergeschickt werden, damit die Serveranwendung die Ereignisse verarbeitet. Dies führt zu wahrgenommenen Antwortverzögerungen an der Benutzerschnittstelle. Außerdem muss das Anwendungsprogramm speziell geschrieben oder geändert werden, um die Benutzerschnittstelle am Client-Knoten zu unterstützen. Dies erhöht die Komplexität der Anwendung und verhindert, dass diese Technik für serienmäßig hergestellte Anwendungen brauchbar ist.
  • Eine Verbesserung des serverbasierten Modells ist, den Gerätetreiber zu ersetzen, an welchen die Anwendung überträgt, um Bildschirm- und Geräteaktualisierungen zwischen dem Client und dem Server hin- und herzuschicken. Diese Lösung vermeidet, dass Anwendungen neu geschrieben werden müssen. Diese Lösung erfordert jedoch, dass Geräteinformation zwischen dem Client und dem Server hin- und hergeschickt wird, um die Client-Anzeige aufrechtzuerhalten, wodurch wiederum eine wahrgenommene Wartezeit in die Schnittstelle eingeführt wird. Außerdem werden serverseitige Verarbeitungsanforderungen erhöht, um der resultierenden Geräteinformation, welche zur Kommunikation mit jedem angeschlossenen Client erforderlich ist, zu genügen.
  • Eine kürzliche weitere Verbesserung des serverbasierten Modells ist, den Benutzerschnittstellenteil der Anwendung als ein Markup-Sprache-Dokument, wie beispielsweise ein Hypertext-Markup-Sprache-Dokument (HTML nach engl. Hyper Text Markup Language), einzusetzen. Bei Verwenden dieser Lösung jedoch beginnt Information, welche von der Serveranwendung an den Client gesendet wird, unverzüglich zu „altern". Mit anderen Worten, die Information kann sich auf dem Server ändern, aber der Client würde weder automatisch benachrichtigt noch aktualisiert werden. Außerdem erfordert Interaktivität bei dieser Lösung sogar zur Durchführung einfacher Aufgaben kontextbezogenes Umschalten zwischen Seiten.
  • Die vorliegende Erfindung vermeidet diese Unzulänglichkeiten.
  • Kurzdarstellung der Erfindung
  • Die vorliegende Erfindung, wie beansprucht, stellt einen Mechanismus bereit, durch welchen der Benutzerschnittstellenteil der Anwendung entweder auf demselben Gerät, auf dem die Anwendung abläuft, oder auf einem anderen Gerät, welches von den Gerät, das die Anwendung ausführt, entfernt ist, an den Computerbenutzer übermittelt werden kann. Die Erfindung trennt die Benutzerschnittstelle von der zu Grunde liegenden Anwendung, wodurch der interaktive Benutzerteil der Anwendung äußerst einfach sein kann. Die Erfindung ermöglicht es auch, dass der interaktive Benutzerteil in einer großen Auswahl von Client-Hardwareumgebungen eingesetzt wird, ohne dass er die gesamte Logik mit sich bringt, die zum Ausführen der Funktionalität einer bestimmten Anwendung erforderlich ist. Diese Merkmale haben für den Benutzer die Wirkung, dass er mit der ganzen Anwendung direkt kommunizieren kann, selbst wenn der Hauptteil der Anwendung potenziell irgendwo anders abläuft.
  • Somit überwindet die vorliegende Erfindung viele der Probleme, denen die zuvor umrissenen herkömmlichen Lösungen gegenüberstanden. Die Benutzerschnittstelle, die Ereignisbehandlung und die Bildschirmaufbereitungslogik bleiben auf dem Client, wodurch der Netzverkehr und die Wartezeit enorm reduziert werden. Die gesamte Benutzerschnittstelle und die Art und Weise, wie diese Schnittstelle mit Anwendungskomponenten auf dem Server die Verbindung herstellt, werden als reine Datenbeschreibung (eher als Code) an den Client gesendet. Diese Beschreibung wird durch den Client so „interpretiert", dass er die grafische Benutzerschnittstelle (GUI nach engl. graphics user interface) aufbereitet und die Verbindung mit der Anwendung (durch Zustandsübertragung), welche entweder auf demselben Prozessplatz (demselben Gerät) oder auf dem Server (dem entfernten Gerät) abläuft, herstellt.
  • Da der Server mit einem bestimmten Anwendungs-Client einfach über eine Datenbeschreibung kommunizieren kann, braucht kein zusätzlicher Code auf dem Client-Gerät installiert zu werden. Ein anwendungsunabhängiger Client-Prozess (AICP nach engl. application-independent client process) liest die Beschreibung und stellt diese Beschreibung dem Benutzer als eine typische Client-Benutzerschnittstelle dar. Daher kann der AICP mit einer unbegrenzten Anzahl von Serveranwendungen mit einer neuen Datendateibeschreibung für jedes Programm (welche je nach Bedarf oder wie durch den Client angegeben automatisch zwischengespeichert werden kann) kommunizieren. Es ist keine anwendungsspezifische Verwaltung zur Ausführung einer AICP-einsetzenden Anwendung, welche diese Lösung verwendet, erforderlich.
  • Mit dem AICP wird weder zum Aufbereiten des Benutzerschnittstellenabschnitts noch zum Behandeln des GUI-Ereignisabschnitts der Anwendung eine serverseitige Verarbeitung benötigt. Der Server koordiniert jedoch Zustandsinformation, welche an den und vom Client weitergeleitet wird, und sendet diese Information automatisch an die entsprechenden beteiligten Anwendungskomponenten (sowohl vom Client als auch vom Server ausgelöste Datenänderungen).
  • Bei Verwenden des AICP kann der Entwickler sich in erster Linie auf den Funktions- oder Geschäftslogikteil der Anwendung konzentrieren und die Behandlung der Gesamtheit der Benutzerschnittstellenaufbereitung, Ereignisbehandlung und Verbindung der Benutzerschnittstellensteuerungen mit den zu Grunde liegenden Anwendungskomponenten dem AICP überlassen. Eine Builder-Komponente erlaubt es dem Entwickler, die Benutzerschnittstellenfenster zu gestalten, sowie eine Beziehung zwischen der visuellen Kontrolle und der zu Grunde liegenden Serveranwendungskomponente, mit welcher sie verbunden ist, herzustellen. Bei dem AICP braucht kein anwendungsspezifischer Code an den Client gesendet werden. Nur Benutzerschnittstellensteuerungen müssen nötigenfalls gesendet werden. Selbst wenn kein Code auf dem Client vorhanden ist, ist die Erfahrung des Benutzers mit der Client-Anwendung ähnlich den manuell codierten Clients, welche im clientbasierten Modus vorzufinden sind. In einer Ausführungsform ist der AICP in eine HTML-Browserumgebung eingebunden, welche den Webeinsatz innerhalb einer HTML-Seite ohne die Begrenzung, die mit HTML verbunden ist, möglich macht.
  • Die vorhergehenden und andere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden konkreteren Beschreibung der Ausführungsformen der Erfindung, wie in den beiliegenden Zeichnungen veranschaulicht, ersichtlich.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm einer Ausführungsform des Systems der Erfindung;
  • 2 ist ein Blockdiagramm einer Ausführungsform der Speicherkonfiguration eines Servers, welcher gemäß der Erfindung aufgebaut ist;
  • 3 ist ein Funktionsblockdiagramm, welches eine Ausführungsform der Kommunikationen zwischen einem Server und einem Client-Knoten darstellt, welche gemäß der Erfindung aufgebaut sind;
  • 4 ist ein Blockdiagramm einer Ausführungsform der Speicherkonfiguration eines Clients, welcher gemäß der Erfindung aufgebaut ist;
  • 5 ist ein Ablaufdiagramm einer Ausführungsform der Betriebsweise des Servers, welcher gemäß der Erfindung aufgebaut ist; und
  • 6 ist ein Ablaufdiagramm einer Ausführungsform der Betriebsweise des Client-Knoten, welcher gemäß der Erfindung aufgebaut ist.
  • Ausführliche Beschreibung der Erfindung
  • Obwohl das Verfahren und die Vorrichtung der vorliegenden Erfindung im Zusammenhang mit einem Webserver- und Webbrowserprozess, welcher über das Internet überträgt, beschrieben werden, ist für die Fachleute zu erkennen, dass die vorliegende Erfindung auch über jede andere Netzwerkart (z. B. Telefon, Kabel, LAN, WAN, drahtlos, Faser) innerhalb desselben physischen Computersystems oder mit Teilen der Erfindung (z. B. dem anwendungsunabhängigen Client-Prozess), welche in einem Internetgerät oder einer Set-Top-Box eines Kabel-TVs laufen, ausgeführt werden kann. Für jene Personen, die mit dem Internet, dem World Wide Web, Webservern und Webbrowsern nicht vertraut sind, wird hier ein kurzer Überblick über diese Konzepte gegeben.
  • Unter Bezugnahme auf 1 verfügt ein Benutzer, der im Internet 120 auf Information zuzugreifen und Anwendungen auszuführen wünscht, normalerweise über eine Computer-Arbeitsstation 110, welche ein Anwendungsprogramm, das als ein Webbrowser 112 bekannt ist, ausführt. Ein anwendungsunabhängiger Client-Prozess (AICP) 114 gemäß der vorliegenden Erfindung wird in einer Ausführungsform als ein Plug-in zum Webbrowser 112 bereitgestellt. Der Benutzer kommuniziert mit dem Webbrowser 112 und dem AICP 114 über eine Benutzerschnittstelle 116, welche in einer Ausführungsform ein Dateneingabegerät (z. B. eine Tastatur) und ein visuelles Anzeigegerät (z. B. einen Computermonitor) umfasst. Unter der Kontrolle des Webbrowsers 112 sendet die Benutzerarbeitsstation 110 eine Webseitenabfrage 122 über das Internet 120. Webseitendaten können die Form von Text, Grafiken und andere Formen von Information aufweisen. Jedes Webserver-Computersystem 130 im Internet 120 weist eine bekannte Adresse (URL) auf, welche der Benutzer an den Webbrowser 112 liefern muss, um mit dem entsprechenden Webserver 130 die Verbindung herzustellen. Da der Webserver 130 mehr als eine Webseite enthalten kann, gibt der Benutzer in der Adresse auch an, welche konkrete Webseite 124 er auf dem Webserver 130 sehen möchte. Das Webserver-Computersystem 130 führt ein Webserver-Anwendungsprogramm 132, Monitorabfragen und Dienstabfragen, für welche es die Verantwortung hat, aus. Wenn eine Abfrage einen Webserver 130 auswählt, greift das Webserver-Anwendungsprogramm 132 im Allgemeinen auf eine Webseite 124 zu, welche der konkreten Webseitenabfrage 122 entspricht, und überträgt die Webseite 124 an die Benutzerarbeitsstation 110. Die Webseitenabfrage 122 umfasst in einer Ausführungsform auch eine Abfrage zur Ausführung eines Anwendungsprogramms in dem Webserver-Computersystem 130. Ein anwendungsunabhängiger Server-Prozess (AISP nach engl. application-independent server process) 134 empfängt Information, welche. in dieser Abfrage enthalten ist, und antwortet durch Ausführen des gewünschten Anwendungsprogramms und Zugreifen auf Anwendungskomponenten 136, welche durch den AICP 114 benötigt werden.
  • Im Allgemeinen enthält eine Webseite die visuellen Primärdaten, welche auf der Benutzerschnittstelle 116 der Benutzerarbeitsstation 110 angezeigt werden. Wenn der Webserver 130 eine Webseitenabfrage 122 empfängt, baut er eine Webseite in HTML auf und überträgt sie über das Internet 120 an den abfragenden Webbrowser 112. Der Webbrowser 112 interpretiert die HTML und gibt die Webseite 124 an den Monitor der Benutzerarbeitsstation 10 aus. Die Webseite 124, welche auf dem Bildschirm des Benutzers angezeigt wird, kann Text, Grafiken und Verknüpfungen (welche Adressen anderer Webseite sind) enthalten. Diese anderen Webseiten (d. h. jene, die durch Verknüpfungen dargestellt sind) können auf demselben oder auf anderen Webservern sein. Der Benutzer kann durch Anklicken dieser Querverweise mithilfe einer Maus oder eines anderen Zeigegeräts auf diese anderen Webseiten gehen. Das gesamte System von Webseiten mit Verknüpfungen zu anderen Webseiten auf anderen Servern auf der ganzen Welt ist als das „World Wide Web" bekannt.
  • Bei der vorliegenden Erfindung ist eine interaktive grafische Benutzerschnittstelle in der Webseite eingebunden und kann als ein getrennter Dialog von der Webseite geöffnet werden. In einer Ausführungsform ist der AICP eine ActiveX-Steuerung, welche in der zuvor erwähnten HTML-Seite eingebunden ist. Die ActiveX-Steuerung interpretiert XML-Daten (nach engl. Extensible Markup Language), welche anschließend in einer Beschreibungsdatei (wird im Folgenden beschrieben) heruntergeladen werden, und bereitet eine grafische Benutzerschnittstelle auf. Diese eingebundene Steuerung ist eine Ausführungsform des AICPs.
  • Unter Bezugnahme auf 2 befinden sich im Speicher im Serversystem 130 ein Betriebssystem 410, eine Webserveranwendung 132, Anwendungsprogramme 420, Anwendungskomponenten 136, ein Transaktionsprozessor 430, Zustandsinformation, Objektinformation und Daten (nicht dargestellt), sowie eine oder mehr Instanzen eines AISPs 134.
  • Die Anwendungsprogramme 420 werden durch die zentrale Verarbeitungseinheit CPU (nach engl. central processing unit) des Serversystems 130 unter der Kontrolle des Betriebssystems 410 ausgeführt. Die Anwendungsprogramme 420 können unter Verwendung von Programmdaten als Eingabe, wie beispielsweise jene, die vom AICP 114 empfangen werden, ausgeführt werden. Anwendungsprogramme können auch ihre Ergebnisse als Programmdaten im Speicher ausgeben.
  • Der Transaktionsprozessor 430 ist ein Programm, welches über eine gemeinsame Netzübergangsschnittstelle (nicht dargestellt) Information von der Webserveranwendung 132 empfängt, die Information interpretiert, um zu bestimmen, ob eine bestimmte Instanz eines AISPs 134 erforderlich ist, und die Instanz AISP 134 startet, um die vom AICP 114 empfangene Abfrage weiter zu verarbeiten.
  • Unter Bezugnahme auf 3 umfasst die vorliegende Erfindung den AICP 114 und den AISP 134. Der AICP 114 bereitet die grafische Benutzerschnittstelle (GUI), welche dem Benutzer an der Benutzerschnittstelle 116 angezeigt wird, auf. Der AICP 114 erhält auch eine Beziehung zwischen den Steuerobjekten, welche auf der Benutzerschnittstelle 116 angezeigt werden, und den Anwendungskomponenten 136, welche auf dem Webserver 130 aufrechterhalten werden, aufrecht. Der AISP 134 überwacht den Zustand der Anwendungskomponenten 136 zusammen mit den Steuerobjekten, welche auf der Benutzerarbeitsstation 110 angezeigt werden und welche Aktualisierungen dieser Anwendungskomponenten benötigen. Wann immer sich der Zustand auf dem Client (Steuerzustand) oder dem Server (Komponentenzustand) ändert, ergreifen der AICP 114 und der AISP 134 basierend auf der Datenbeschreibung, welche die Beziehung zwischen den GUI-Steuerungen und den Serveranwendungskomponenten 136 (im Folgenden als Serverkomponenten bezeichnet), die sie darstellen, definiert, die entsprechende Maßnahme.
  • Ebenfalls unter Bezugnahme auf 4 umfasst die Beziehung 446 zwischen den Steuerobjekten 624, welche an der Benutzerschnittstelle 116 der Benutzerarbeitsstation 110 angezeigt werden, und den Serverkomponenten 136, welche auf dem Webserver aufrechterhalten werden, Daten, welche eine deutliche Beziehung zwischen ihren jeweiligen Objektschnittstellen beschreiben. Diese Daten werden im Folgenden als eine Verbindung bezeichnet. Der AICP und der AISP enthalten eine Logik, welche die Verbindungen interpretieren kann, die eine visuelle Kontrolle mit einer Anwendungskomponente in Beziehung bringen.
  • Eine Bildlaufleistensteuerung ist zum Beispiel repräsentativ für eine Art von Steuerobjekt, welche an der Benutzerschnittstelle 116 der Benutzerarbeitsstation 110 angezeigt werden kann. Die Bildlaufleistensteuerung kann mit dem Wert einer Anwendungskomponente, wie zum Beispiel der Temperatur eines industriellen Prozesses, verbunden werden. Wenn die Serveranwendung eine Temperaturänderung feststellt, wird der Zustand der Anwendungskomponenten 136 geändert, und diese Zustandsänderungen 330 werden an den Client weitergeleitet. Die Bildlaufleiste wird durch den AICP anschließend neu gezeichnet, um den neuen Wert wiederzugeben. Gleichermaßen wird, wenn eine Bildlaufleiste mit einer Anwendungskomponente 136 verbunden ist, welche ein Thermostat steuert, und wenn dann der Benutzer mit der Bildlaufleiste an der Benutzerschnittstelle 116 kommuniziert, die Zustandsänderung an das Webserver-Anwendungsprogramm 132 übertragen, welches den Zustand der entsprechenden Anwendungskomponente 136 ändern würde, welche anschließend das Thermostat einstellen würde.
  • Obwohl dies ein einfaches Beispiel ist, können Verbindungen Beziehungen (z. B. Datenbeziehungen 446 in 2) zwischen sehr komplexen Objektarten wie zusammengesetzten Komponenten (Komponenten, welche Komponentenreferenzen enthalten), sowie Komponentensammlungen (eine Liste von Komponenten) bilden. Steuerungen können zu komplexen Komponenten oder einer Zusammensetzung aus Steuerungen (gemeinhin als ein Dialog bezeichnet) zusammengefügt (verbunden) werden. Je komplexer die Beziehung 446 (2) ist, umso wortreicher ist die Verbindungsinformation. Verbindungsinformation kann jedoch als eine benannte Entität verdichtet werden, auf welche in einem anderen Kontext Bezug genommen werden kann, so dass eine Wiederverwendung der Verbindung möglich ist.
  • Es besteht eine physische Verbindung zwischen dem AICP 114 und dem AISP 134. Diese physische Verbindung kann entweder eine netzbasierte (wobei der Server und der Client verschiedene Knoten in einem Netzwerk sind) oder eine speicherbasierte (wobei der Server und der Client in demselben Computersystem sind) sein. Dies bedeutet, dass Steuerobjekte mit Serverkomponenten verbunden werden können, wenn sie beide auf denselben oder verschiedenen physischen Geräten (sowie in demselben Prozess auf demselben Gerät oder in verschiedenen Prozessen auf verschiedenen Geräten) vorhanden sind.
  • Die Verbindungsinformation kann in einer Beschreibungsdatei in einer Vielfalt von Formaten, wie beispielsweise im XML-Format, wie später erörtert wird, dargestellt werden. Die XML-Daten können auch die GUI-Layoutbeschreibung (d. h. Benutzerschnittstellendaten 448 in 2) umfassen. Wann immer ein Steuerobjekt 624 mit einer Serverkomponente 136 innerhalb eines GUI-Layouts (eines Dialogfensters) verbunden wird, wird die Verbindungsbeschreibung (im Kontext) mit der Layoutinformation aufgenommen. Dies ist die Information, welche der AICP 114 verwendet, um die Anwendung ablaufen zu lassen und die Ergebnisse dem Benutzer anzuzeigen. Sobald ein Dialog über den AICP 114 abläuft, werden Zustandsänderungen, welche auf den Steuerobjekten (Steuerzustände) oder Serverkomponenten (Komponentenzustand, 442 2) auftreten, verdichtet und zwischen dem AICP 114 und dem AISP 134 hin- und hergeschickt. Dies ist eine Zweiwegverbindung, und sie ist asynchron, um die interaktive Wartezeit auf ein Minimum herabzusetzen.
  • Die Beschreibungsdatei kann in einem XML-Format sein, welches ein praktisches Format für den Einsatz von Daten über ein Netzwerk ist und einer Attributdateistruktur ähnelt, wie zum Beispiel im Anhang dargestellt. Etliche andere geeignete Datenbankformate sind ebenso verfügbar, wie beispielsweise eine lineare Datei, SQL, OODB usw. Das XML-Format besteht aus Name, Art und Wertpaaren, welche es sowohl dem AICP 114 als auch dem AISP 134 erlauben, die Information während der Ablaufzeit in demselben Dateiformat zu durchlaufen und zu interpretieren. Die XML-Datei, welche durch den Client und die AISP zur Ablaufzeit interpretiert wird, kann identisch sein. Die Daten, welche in der XML-Datei enthalten sind, werden durch den AICP 114 und den AISP 134 gemäß den verschiedenen Funktionen, welche auf jeder Seite der Verbindung auszuführen sind, unterschiedlich interpretiert. Obwohl die Beschreibungsdatei hierin so erörtert wird, dass sie sich in denselben Computersystemen wie der AICP 114 und der AISP 134 befindet, ist für die Fachleute zu erkennen, dass sich die Beschreibungsdatei an jedem vernetzten Ort, auf welchen durch den AICP und den AISP zugegriffen werden kann, befinden kann.
  • Unter Bezugnahme auf 2 und 4 führt der AISP 134 die folgenden Funktionen aus: er sendet den XML-Datenstrom an den AICP 114, liest die Beschreibungsdatei 310 (3) (welche als ein XML-Datenstrom übertragen werden kann), spricht auf Abfragen vom AICP 114 zum Anschluss an Serverkomponenten 136 an, erhält eine zustandsabhängige Verbindung aufrecht und überwacht den Kontext auf dem Webserver 130. Es ist zu erwähnen, dass zu jeder festgelegten Zeit mehrere AISP 134' im Speicher des Webservers 130 vorhanden sein können.
  • In Verwendung entwirft ein Entwickler unter Bezugnahme auf 5 das Layout der Benutzerschnittstelle 116 (Schritt 710), welche letzten Endes auf der Benutzerarbeitsstation 110 angezeigt wird, und stellt dabei die Beziehungen zwischen den Steuerobjekten 624 (4) und den Serverkomponenten 136 her. Sobald diese Information formuliert ist, wird sie in einer Beschreibungsdatei 310 gespeichert (Schritt 712). Wenn der AICP 114 eine Abfrage zur Ausführung eines Anwendungsprogramms 420 auf dem Webserver 130 überträgt, empfängt der Transaktionsprozessor 430 (2) die Abfrage (Schritt 714), instanziert einen AISP 134 (Schritt 718), welcher mit dem Anwendungsprogramm 420 verbunden ist, wenn im Speicher noch keine Instanz geladen ist, und startet das Anwendungsprogramm 420 (Schritt 720). Sobald der AICP 114 die Beschreibungsdatei 310 empfängt, überträgt er eine Verbindungsabfrage an den AISP 134. Der AISP 134 empfängt die Verbindungsabfrage (Schritt 722) und lädt die Beschreibungsdatei 310, welche mit dem abgefragten Anwendungsprogramm 420 verbunden ist, in den Serverspeicher (Schritt 724).
  • Die Beschreibungsdatei 310, welche mit dem abgefragten Anwendungsprogramm 420 verbunden ist, wird geladen, um den AICP 114 mit den entsprechenden Serverkomponenten 136 zu verbinden. Die Beschreibungsdatei 310 enthält genügend Information in Bezug auf die Beziehungen zwischen den Steuerobjekten 624 (4) und den Serverkomponenten 136, um zu ermöglichen, dass der AISP 134 die Serverkomponenten verwaltet und der AICP 114 die Steuerobjekte verwaltet.
  • Beim Laden der Beschreibungsdatei 310 bildet der AISP 134 ein Managerobjekt 452 für jede Serverkomponente 136 (Schritt 726), welche wahrscheinlich an dieser Client/Server-Verbindung beteiligt ist. Zusätzlich wird auch für jede Steuerung, welche auf dem Client instanziert werden könnte, ein eindeutiges Managerobjekt (als das Metaobjekt 454 bezeichnet) erzeugt (Schritt 728). Das Metaobjekt 454 speichert Daten, wie beispielsweise Gliedinformation, Dialoginformation, Verbindungsinformation, Objekt-Objekt-Verbindungsinformation und eine Referenz zu einer Client-Managerkomponente, um die Steuerobjekte 624 effektiv mit den Serverkomponenten 136 zu verbinden.
  • Die Gliedinformation umfasst Eigenschaften, Funktionen und Ereignisse, welche an der Schnittstelle eines Steuerobjekts verfügbar sind. Diese Information wird verwendet, um einer Verbindungsbehandlungsroutine 450 mitzuteilen, wie sie mit bestimmten Steuerobjekten (sowie Serverkomponenten), die an der Verbindung beteiligt sind, während der Ablaufzeit kommunizieren soll. Die Dialoginformation ist die GUI-Layoutinformation, welche durch den AICP 114 verwendet wird, um die Benutzerschnittstelle 116 auf der Benutzerarbeitsstation 110 aufzubereiten. Die Dialoginformation gibt auch die Art von Steuerobjekt 624 oder Serverkomponente 136, welche an der Verbindung beteiligt sind, an. Die Verbindungsinformation beschreibt die Art und Weise, wie ein bestimmtes Steuerobjekt 624 mit einer bestimmten Serverkomponente 136 verbunden wird. Die Objekt-Objekt-Verbindungsinformation stellt eine Verbindungsbeschreibung bereit, welche eine Verbindung Client-Serverkomponente und eine Verbindung Serverkomponente-Serverkomponente ermöglicht. Dies erlaubt Serverkomponenten, miteinander zu kommunizieren, ohne irgendwelche bestimmten Einzelheiten der Objekte, mit welchen sie verbunden sind, zu kennen.
  • Die Client-Managerkomponente stellt eine Standardschnittstelle bereit, welche es dem AISP 134 erlaubt, mit dem Back-End-Anwendungsprogramm 420 zu kommunizieren. Der Client-Manager ist eine Komponentenschnittstelle, welche durch das Serveranwendungsprogramm 420 eingebaut werden muss, um das Verhalten des AICPs 114 zu initialisieren. Die Komponentenschnittstelle des Client-Managers umfasst in einer Ausführungsform vier Funktionen: ClientCanConnect(), ClientCanDisconnect(), ClientConnected() und ClientDisconnected(). Diese Funktionen werden abgerufen, wann immer ein neuer AICP 114 mit einem Anwendungsprogramm 420 auf dem Webserver 130 verbunden oder davon getrennt werden möchte.
  • Wenn ein Dialog im AICP 114 erzeugt wird, wird der AISP 134 benachrichtigt, dass er einen physischen Anschluss zu der relevanten Instanz der Serverkomponente 136 auf dem Server 130 erzeugen muss. Um diesen physischen Anschluss herzustellen, ordnet der AISP 134 die Objektsteuerungen an der Benutzerschnittstelle 116 den Serverkomponenten 136 zu (Schritt 732). Die Dialogbeschreibung der Serverkomponente 136 kann im Metaobjekt 454 gefunden werden. An dieser Stelle erhält der AISP 134 den Namen des Dialogs, welcher auf dem AICP 114 zu erzeugen ist, und erhält Zugriff auf eine Instanz der Serverkomponenten 136. Eine Verbindungsbehandlungsroutine 450 wird für jede Steuerung, welche eine Verbindung mit einem Teil der Serverkomponenteninstanz benötigt, instanziert. Die Verbindungsbehandlungsroutine 450 initialisiert die Verbindung zwischen dem Steuerobjekt 624 und der Serverkomponente 136 und erhält sie aufrecht. Nur Verbindungsbehandlungsroutinen 450, welche als „run on the Server" (laufen auf dem Server) gekennzeichnet sind, würden an dieser Stelle erzeugt werden. Wären sie als „run on the client" (laufen auf dem Client) gekennzeichnet, hätte der AICP 114 bereits eine erzeugt. Der Verbindungsbehandlungsroutine 450 wird ein Identifizierer 618 (4) zugewiesen, welcher mit jenem identisch ist, welcher für das Steuerobjekt 624 des AICPs 114 bereitgestellt wird. Dieser Identifizierer 618 wird verwendet, um die Informationsmeldungen, welche zwischen dem AICP 114 und dem AISP 134 hin- und hergehen, zu synchronisieren.
  • Ähnlich dem Dialogobjekt, welches im AICP-Abschnitt beschrieben wurde, bildet der Server ein clientseitiges Proxy-Objekt 456 (Schritt 730), welches Meldungen arbitriert, die zwischen der Client-Seite der Serververbindung und dem AICP 114 hin- und hergeschickt werden. Die Verbindungsbehandlungsroutine 450 kommuniziert mit diesem Proxy-Objekt 456, als ob es das Steuerobjekt 624 selbst wäre. Das Proxy-Objekt 456 überträgt einen Wert für das Steuerobjekt 624 an den AICP 114, welcher wiederum das Steuerobjekt 624 an der Benutzerschnittstelle 116 modifiziert. Auf diese Weise kann das Proxy-Objekt 456 Anfangszustandsinformation an den AICP 114 übertragen (734), sowie den AICP 114 mit Zustandsänderungen 330 einer bestimmten Serverkomponenten 136 auf dem Server 130 aktualisieren (Schritt (738). Auf ähnliche Weise wird, wenn sich der Steuerzustand 622 eines Steuerobjekts 624 auf dem AICP 114 ändert, der modifizierte Steuerzustand über das Proxy-Objekt 456 (unter Verwendung des Steuerungsidentifizierers 618, welcher diesem konkreten Steuerobjekt 624 zugewiesen ist) an den AISP gesendet. Sobald der modifizierte Steuerzustand durch das Proxy-Objekt 456 empfangen wurde, benachrichtigt das Proxy-Objekt 456 die Verbindungsbehandlungsroutine 450 davon, dass sich der Zustand des Steuerobjekts geändert hat, so dass der modifizierte Zustand in die entsprechende Serverkomponente 136 eingefügt werden kann.
  • Ähnlich dem AICP 114 erhält der AISP 134 die Verbindung für die Dauer des Dialogs aufrecht (Schritt 736). Wenn der Dialog durch den Benutzer oder auf irgendeine andere Weise (z. B. eine Benachrichtigung durch eine Serverkomponente, alle damit verbundenen Dialoge zu beenden) beendet wird, entfernt und löscht der AISP 134 jede der Verbindungsbehandlungsroutinen 450, welche mit der Verbindung mit dem Dialog verbunden ist. Außerdem werden auch die Proxy-Objekte 456, welche verwendet werden, um als Vertreter der Steuerobjekte 624 zu übertragen, verworfen.
  • Der AISP 134 verwendet einen Komponentenmanager (nicht dargestellt), um eine Liste von Komponenten aufrechtzuerhalten, welche an clientseitigen Verbindungen beteiligt sind. Der Komponentenmanager ist über alle Dialoge auf dem Laufenden, welche für die Dauer des Dialogs aktiv an die Serverkomponenten angeschossen sind. Immer wenn auf einem AICP 114 ein Dialog erzeugt wird, wird der Liste, welche durch den Komponentenmanager geführt wird, eine Referenz zu diesem Dialog hinzugefügt. Diese Referenz identifiziert alle serverseitigen Verbindungsbehandlungsroutinen, welche wiederum auf die Steuerungsproxys hinweisen, welche an einer Verbindung beteiligt sind. Wenn ein Dialog beendet wird, konsultiert der AISP 134 diese Liste, um die Dialogverbindungsinformation zu suchen, und entfernt die Dialogreferenz aus der Liste.
  • Obwohl der AICP 114 und der AISP 134 verschiedene Rollen spielen, ist vieles von ihren jeweiligen Codes identisch. Der Schlüssel dafür, den AICP und den AISP beinahe identisch zu machen, liegt in der Bereitstellung einer Standardobjektschnittstelle, welche die Steuerobjekte 624 auf dem AICP 114 mit den Serverkomponenten 136 auf dem AISP 134 verbindet. Die Interpretierlogik der anwendungsunabhängigen Prozesse kann die jeweiligen Seiten (Client oder Server) auf genau dieselbe Weise (durch eine Standardobjektschnittstelle) miteinander verbinden. Die Tatsache, dass das Steuerobjekt visuell ist, ist nur ein Nebeneffekt der Realisierung des Objekts. Die vorliegende Erfindung kann daher auf etliche Realisierungen angewendet werden, welche keine visuelle Darstellung benötigen.
  • Unter neuerlicher Bezugnahme auf 4 kann sich der AICP 114 im Speicher der Benutzerarbeitsstation 110 befinden. Der Speicher enthält auch das Betriebssystem 612, welches in der Benutzerarbeitsstation 110 eingebaut ist, und das Webbrowser- Anwendungsprogramm 112, in dem der AICP 114 gestartet wird. Der AICP 114 führt die folgenden Funktionen aus: er liest die Datenbeschreibungsdatei 310, bereitet die Benutzerschnittstelle 116 auf, schließt verbundene Steuerungen an, erhält eine zustandsabhängige Verbindung aufrecht und überwacht den Kontext auf dem Client.
  • Unter Bezugnahme auf 6 wird ebenfalls zuerst der AICP 114 in der Benutzerarbeitsstation 110 installiert. Das üblichste Installationsverfahren ist die manuelle Installation des AICPs 114 durch die Systeminstallationsprozedur (z. B. beim Betriebsystem von Microsoft Windows unter Verwendung der Funktion „Add/Remove Programs"). Alternativerweise kann der AICP 114 durch ein webbasiertes Plug-In-Protokoll automatisch installiert werden.
  • Da auf dem Client kein Code vorhanden ist, welcher das Anwendungsprogramm 420 darstellt, unterstützt der AICP 114 etliche Lösungen beim Herstellen der Anfangsverbindung mit dem serverseitigen Anwendungsprogramm 420. Die Information, welche durch den AICP 114 benötigt wird, um mit dem Anwendungsprogramm 420 zu kommunizieren, umfasst: den Namen des auszuführenden Server-Prozesses, den Standort der Beschreibungsdatei 310 auf einem Netzserver, alle Ausgangsargumente, welche bei Verbindung an das Anwendungsprogramm 420 übertragen werden müssen, und die aktuelle Version der Beschreibungsdatei. Diese Information kann in einer Initialisierungsdatei enthalten sein, welche geladen wird, wenn der AICP 114 gestartet wird.
  • Wenn der AICP 114 gestartet wird, greift er auf die Initialisierungsdatei zu (Schritt 810) und überträgt unter Verwendung der darin enthaltenen Information eine Abfrage zur Ausführung des gewünschten Anwendungsprogramms 420 an den Server 134. Wie bereits erwähnt, sendet der Transaktionsprozessor 430 auf dem Server 130 eine Beschreibungsdatei 310 an den AICP 114, welcher dann den Versionsstempel der Beschreibungsdatei, die er empfängt, mit dem vergleicht, der im lokalen Speicher 610 der Benutzerarbeitsstation 110 enthalten ist (und von einer früheren Transaktion oder während der Installation des AICPs 114 erhalten wurde). Der AICP 114 kann dann bestimmen (Schritt 812), welche Version der Beschreibungsdatei 310 er lädt. Standardmäßig lädt der AICP 114 nur die Beschreibungsdatei 310 vom Transaktionsprozessor 430 herunter, wenn der Versionsstempel der Datei auf dem Server jüngeren Datums ist als eine zwischengespeicherte Datei, welche sich bereits auf dem Client befindet. Die Beschreibungsdatei 310 wird nur durch ein bestimmtes Anwendungsprogramm 420 benutzt.
  • Sobald die Beschreibungsdatei 310 heruntergeladen (oder von einem Dateizwischenspeicher lokal geladen) ist, versorgt sie den AICP 114 mit der Dialogbeschreibung des Anwendungsprogramms 420. Der AICP 114 nimmt dann die Interpretation der Beschreibungsdaten dieses Dialogs vor (Schritt 814), um die Steuerobjekte 624 aufzubauen, welche innerhalb des Dialogs bestehen, und die Steuerobjekte 624 an der Benutzerschnittstelle 116 zur Darstellung für den Benutzer zu gestalten.
  • Unterdessen überträgt der AICP 114 eine Abfrage zur Herstellung einer logischen Verbindung mit den Serverkomponenten 36 an den AISP 134 (Schritt 816). Bei erfolgreicher Verbindung mit den Serverkomponenten 136 auf dem Server 130 empfängt der AICP 114 die Dialogsteuerobjekte 624 und besetzt sie anschließend mit der Steuerzustandinformation 622, welche dem Serverkomponentenzustand 442 entspricht (Schritt 818).
  • Zustandsänderungen für einen bestimmten visuellen Kontext (z. B. einen Dialog) werden aus Optimierungsgründen als ein logisches Paket an den AICP 114 gesendet, obwohl die Struktur des Zustandsänderungspakets ungeachtet dessen, ob eine einzige Zustandsänderung oder eine Mehrzahl von Zustandsänderungen auftritt, identisch ist. An dieser Stelle werden die Steuerobjekte 624 aktiv mit den Serverkomponenten 136 verbunden, so dass Zustandsänderungen auf jeder Seite auf der anderen wiedergegeben werden. Sobald die Steuerobjekte 624 den aktuellen Serverkomponentenzustand 442 wiedergeben, wird dann der Dialog über die Benutzerschnittstelle 116 dem Benutzer angezeigt (Schritt (820).
  • Die Steuerobjekte 624 werden durch eine Referenzeigenschaft, welche als Teil der Beschreibung des Steuerobjekts 624, der in der gesamten Dialoglayoutbeschreibung enthalten ist, bereitgestellt wird, mit den Serverkomponenten 136 verbunden. Diese Referenz kann der Name, welcher der Verbindungsbeschreibung zugewiesen wurde, und die Art der verbundenen Serverkomponente 136 sein. Ein eindeutiger Steuerungsidentifizierer 618 wird für jedes der Steuerobjekte 624, welche mit den Serverkomponenten 136 verbunden sind, berechnet. Dieser Steuerungsidentifizierer 618 wird verwendet, um die Zustandsänderungen 330 mit dem AISP 134 beim Verbinden mit der entsprechenden Serverkomponenteninstanz, welche diesem Steuerobjekt 624 zugewiesen wird, zu koordinieren. Es ist zu erwähnen, dass viele Steuerobjekte an dieselbe Serverkomponente 136 gebunden werden können.
  • Da der AICP 114 und der AISP 134 zum Großteil identische Prozesse sind, können sich einige der Verbindungen auf dem Client befinden. Manchmal ist es nützlich, die Verbindungslogik, welche ein Steuerobjekt 624 des Clients an eine Anwendungskomponente 136 des Servers auf dem AICP 114 oder dem AISP 134 bindet, zu instanzieren. Die Wahl dessen, wo die Verbindungslogik instanziert wird, hängt vom Volumen des Informationsflusses, welcher in jede Seite der Verbindung kommt, ab. Wenn zum Beispiel die Belastung auf der Clientseite am stärksten ist, dann ist es besser, die Verbindungsbehandlungsroutine auf dem Client zu instanzieren. Auf diese Weise kann die Bandbreitennutzung basierend auf der Verbindungsart, sowie dem Client und den Serverkomponenten, die beteiligt sind, angepasst werden.
  • Solange ein Dialog auf einem bestimmten AICP 114 angezeigt wird, erhalten die Verbindungsbehandlungsroutinen 450 eine zustandsabhängige Echtzeitverbindung mit den verbundenen Serverkomponenten 136 aufrecht (Schritt 822). Die Verbindungsbehandlungsroutine 450 spricht entweder auf Zustandsänderungen beim Clientsteuerobjekt 624 oder seiner zugehörigen Serverkomponente 136 an. Die Verbindungsbehandlungsroutine 450 ist auch imstande, die Daten, welche auf einem Satz von Regeln basieren, die durch den Entwickler definiert werden, umzuwandeln. Die Verbindungsbehandlungsroutine 450 ist imstande, den Zustand auf jeder Seite der Verbindung durch Aufrechterhalten von Referenzen zu den Steuerobjekten 624, welche an der Verbindung beteiligt sind, aufrechtzuerhalten (Schritt 822).
  • Die Verbindungsbehandlungsroutine 450 erhält auch eine zustandsabhängige Verbindung aufrecht, wann immer sich ein Glied einer komplexen Komponente ändert. Dies geschieht, wenn eine Eigenschaft (welche ein Glied einer komplexen Komponente ist, welche einen Wert einer bestimmten Art enthalten oder leer sein kann) einer komplexen Steuerung einem neuen Wert (welcher selbst eine komplexe oder einfache Komponente sein kann) zugewiesen wird. Wenn die Verbindungsbehandlungsroutine 450 eine Eigenschaftsänderung feststellt, führt sie die entsprechende Verbindungsumwandlung aus. Wenn außerdem ein Steuerobjekt 624 an diese Eigenschaft angeschlossen wurde, würde es nicht mit dem neuen Wert verbunden werden. Die beteiligte Verbindungsbehandlungsroutine würde die Referenz zu dem alten Wert entfernen und eine Referenz zu dem neu zugewiesenen Wert (der Eigenschaft) erzeugen. Auf diese Weise werden die Steuerobjekte 624 mit Zustandsänderungen 330, welche vom AISP 134 empfangen werden, aktualisiert (Schritt 824), und die Zustandsänderungen, welche in einem Steuerobjekt 624 auftreten, werden an den AISP 134 übertragen, um die entsprechenden Serverkomponenten 136 zu aktualisieren (Schritt 826).
  • Eine GUI-Anwendung bringt mehrere Beziehungen mit sich, welche den Benutzerzugriff auf die zu Grunde liegende Anwendung beschreiben. Zum Beispiel kann ein Dialog eine Taste (welche ein Beispiel für ein Steuerobjekt ist) enthalten, die, wenn ausgewählt, einen anderen Dialog einblendet. Es ist für den AICP 114 und den AISP 134 wichtig, diesen Kontext mit den Serverkomponenten 136 aktiv aufrechtzuerhalten. Ein Einblenddialog stellt normalerweise ein komplexes Eigenschaftsglied einer komplexen Komponente dar. Ein anderes Einblendszenarium ist, wenn der Einblenddialog ein Argument für eine Funktion bereitstellt, welche ein Glied einer komplexen Komponente ist. Diese Datenbeziehungen 446 stellen den Anwendungskontext dar, welcher durch den AIP überwacht wird, wodurch der Entwickler davon befreit wird, sie ausdrücklich erzeugen und aufrechterhalten zu müssen.
  • Der AICP 114 erzeugt ein Container-Objekt für jeden Dialog, welcher auf der Benutzerarbeitsstation 110 erzeugt wird. Dieses Container-Objekt überwacht die Dauer des Dialogs in Bezug auf die Serverkomponente 136. Das Container-Objekt stellt fest, wenn der Dialog durch den Benutzer beendet wird, und ergreift die entsprechende Maßnahme, um die Verbindungsbehandlungsroutinen 450, welche mit den Steuerobjekten 624 innerhalb des Dialogs verbunden sind, abzuschließen. Das Container-Objekt koordiniert auch die Verarbeitung von Zustandsänderungsmeldungen, welche zwischen dem AICP 114 und dem AISP 134 hin- und herfließen. Wann immer das Container-Objekt eine Zustandsänderung 330 vom AISP 134 empfängt, entnimmt es den Steuerungsidentifizierer 618, welcher in der Meldung enthalten ist, lokalisiert die Steuerobjekte 624, welche mit diesem Steuerungsidentifizierer 618 verbunden sind, und verwendet die Komponentenschnittstelle des Steuerobjekts 624, um die Zustandsänderung direkt am Steuerobjekt 624 durchzuführen. Gleichermaßen wird, wenn das Steuerobjekt 624 den Zustand ändert, das Container-Objekt von der Änderung benachrichtigt, und es verdichtet die Zustandsänderungsmeldung und sendet sie an den AISP 134.
  • Das Container-Objekt sendet Zustandsänderungen an den AISP 134 für die Teile der Schnittstelle des Steuerobjekts, an welchen die Verbindungsbehandlungsroutine 450 interessiert ist. Die Verbindungsbehandlungsroutine 450 ist an den Steuergliedern interessiert, die in der Beschreibungsdatei 310 dargestellt sind und die verwendet wurden, um die Verbindungsbehandlungsroutine 450 zu erzeugen. Das Container-Objekt, welches den Dialog umhüllt, erzeugt auch ein Container-Objekt für jedes Steuerobjekt 624, welches innerhalb des Dialogs instanziert wird, um seine zustandsabhängige Lebensdauer aufrechtzuerhalten.
  • Sowohl der AICP 114 als auch der AISP 134 weisen Container-Objekte auf, welche den Zustand der Komponenten verwalten, mit welchen sie verbunden sind. Diese Container überwachen den Zustand der Objekte, sowie den Anwendungskontext, in welchem sich diese Objekte befinden. Der Anwendungskontext bezieht sich auf die Art und Weise, auf welche durch den AICP 114 und den AISP 134 auf Objekte Bezug genommen wird. Wenn zum Beispiel ein Dialog mit einer Serverkomponente 136 verbunden wird, erzeugt der AICP 114 einen Container für den Dialog, und der AISP 134 erzeugt einen Container für die Serverkomponente 136. Wenn der Benutzer den Dialog beendet, stellt der Client-Container diese Handlung fest und benachrichtigt den Server-Container. Jeder Container kann basierend auf der Art von Operation die entsprechende Maßnahme ergreifen. Die Beschaffenheit der Container ist hierarchisch, in dem jeder Container basierend auf der Komplexität der Objekte, welche an einer bestimmten Verbindung beteiligt sind, andere Container enthalten kann.
  • Es gibt zwei Arten von Client-Containern – einen Dialog-Container und einen Steuerungscontainer. Der Dialog-Container verwaltet die Lebensdauer des Dialogs, und der Steuerungscontainer verwaltet den Fluss von Zustandsinformation zur einzelnen Steuerung. Diese Container ermöglichen den Anschluss der Benutzerschnittstellenelemente an serverseitige Objekte und erhalten die Zustandsintegrität während der Lebensdauer der Verbindung aufrecht.
  • Der Dialog-Container ist ein Objekt, welches für jedes Fenster erzeugt wird, das auf der Benutzerschnittstelle 116 angezeigt wird. Der Dialog-Container wird gemäß der XML-Beschreibung in der Beschreibungsdatei 310 erzeugt. Der Dialog-Container verarbeitet die XML-Beschreibung und erzeugt das Dialoglayout, sowie die Steuerobjekte, welche in der Beschreibung enthalten sind. Außerdem erzeugt der Dialog-Container einen Steuerungscontainer für jede Steuerung, welche mit Daten auf dem Server verbunden ist. Steuerungen, welche nur zu Anzeigezwecken erzeugt werden, brauchen keinen Steuerungscontainer (zum Beispiel eine Etikett- oder eine Bitmap-Ausschmückung).
  • Der Dialog-Container unterstützt mehrere Funktionen, welche umfassen: Aufbereiten des Fensters selbst, Erzeugen der Steuerungscontainer je nach Bedarf, Benachrichtigen des AISPs 134, wenn der Dialog beendet wird, und Löschen von untergeordneten Steuerungs-Container-Objekten und gegebenenfalls Schließen von Kind-Dialogen, welche von Eltern-Dialogen abhängigen.
  • Der Steuerungscontainer wird für jedes Steuerobjekt 624, welches an Daten gebunden ist, erzeugt. Der Steuerungscontainer errechnet und enthält einen eindeutigen Steuerungsidentifizierer 618, welcher verwendet wird, um Meldungen an den AISP 134 zu senden und auf die entsprechenden Serverkomponenten 136 zuzugreifen. Wenn der AISP 134 anfänglich Zustandsdaten an den AICP 114 überträgt, stellt der Steuerungscontainer den Zustand am Steuerobjekt 624 während der Initialisierung ein. Der Steuerungscontainer empfängt auch Zustandsänderungsmeldungen während der Verbindungslebensdauer des Steuerobjekts 624 und aktualisiert das Steuerobjekt 624 dementsprechend. Wenn sich der Zustand des Steuerobjekts 624 ändert, stellt der Steuerungscontainer die Änderung fest und sendet eine Zustandsänderungsmeldung über den AISP 134 an das entsprechende Serverelement (unter Verwendung des Steuerungsidentifizierers 618 und eines Identifizierers der AISP-Instanz). Es ist erwähnenswert, dass nur der Steuerungscontainer die Zustandsänderungen verarbeitet, welche an einer Verbindungsbeschreibung beteiligt sind, und dass die meisten Zustandsänderungen am Steuerobjekt 624 die Verbindung nicht einbeziehen, weshalb unnötiger Netzverkehr reduziert wird.
  • Zusätzlich zu den Steuerungscontainern gibt es zwei Arten von Server-Containern – Komponenten-Container und Glieder-Container. Solange der Client-Dialog geöffnet ist, erhält der Serverkomponenten-Container eine Referenz zu der zu Grunde liegenden Instanz, mit welcher der Client verbunden ist, aufrecht. Der Glieder-Container verwaltet den Fluss von Zustandsinformation über das einzelne Glied der Komponente (ähnlich der Funktion und Eigenschaft). Diese Container ermöglichen den Anschluss der Benutzerschnittstellenglieder an clientseitige Steuerobjekte und erhalten die Zustandsintegrität während der Lebensdauer der Verbindung aufrecht.
  • Ein Komponenten-Container wird durch den AISP 134 für jede Serverkomponente 136 erzeugt, welche mit einem Client-Dialog verbunden ist. Der Komponenten-Container fügt eine Referenzzählung zur Serverkomponente 136 hinzu, so dass sie während der Lebensdauer des entfernten Client-Dialogs nicht verloren geht. Für jedes Glied der Serverkomponente 136, welches an einer Verbindung mit einem Steuerobjekt 624 beteiligt ist, wird ein Glieder-Container-Objekt erzeugt, welches für die Aufrechterhaltung des Zustands des Gliedes während der Lebensdauer der Verbindung verantwortlich ist. Wenn der Dialog auf dem Client beendet wird, zerstört der Komponenten-Container alle Kind-Glieder-Container, welche verwendet wurden, um die Verbindung dieses Dialogs auf dem Server aufrechtzuerhalten.
  • Ein Glieder-Container wird für jedes Glied einer Serverkomponente 136 erzeugt, welches an einer Verbindung mit einem Steuerobjekt 624 beteiligt ist. Der Glieder-Container errechnet und speichert einen eindeutigen Steuerungsidentifizierer, welcher verwendet wird, um Meldungen an den AICP 114 zu senden, um auf das korrekte Steuerobjekt 624 zuzugreifen. Der Glieder- Container sendet während der Initialisierung des Dialogs auch Anfangszustandsinformation an das Steuerobjekt 624. Außerdem empfängt der Glieder-Container Datenänderungsmeldungen vom AICP 114 und aktualisiert das entsprechende Glied der Serverkomponente 136 demgemäß.
  • Wann immer sich der Zustand des Komponentenglieds ändert, stellt der Glieder-Container die Änderung fest und schickt anschließend eine Meldung, welche die Zustandsänderungsinformation enthält, an das entsprechende Steuerobjekt 624 (unter Verwendung des Steuerungsidentifizierers 618 und des Serverinstanzidentifizierers). Es ist erwähnenswert, dass nur der Glieder-Container die Zustandsänderungen verarbeitet, welcher an der Verbindungsbeschreibung beteiligt ist, und dass die meisten Zustandsänderungen auf dem Server nicht an einer Verbindung beteiligt sind, weshalb unnötiger Netzverkehr reduziert wird.
  • Eine der Fähigkeiten der AIP-Erfindung ist ihr Vermögen, mehreren AICP zu erlauben, an denselben AISP angeschossen zu werden. Das erste Mal, wenn ein Client eine Verbindung mit einem Server anfordert, wird ein AISP instanziert, welcher der Anwendung zugewiesen ist. Der AISP wiederum instanziert das Client-Manager-Objekt für diese Anwendung. Ein anderer Client kann jederzeit anfordern, an dieselbe Anwendungsinstanz auf dem Server angeschlossen zu werden. Anstatt einen anderen AISP für diese Anwendung zu instanzieren, wird dieselbe AIP-Instanz (sowie der Client-Manager, der für sie erzeugt wurde) verwendet. Wenn dann zwei Clients auf dieselbe Serverkomponenteninstanz auf dem Server zugreifen, sind sie imstande, zu kommunizieren und auf denselben Zustand zuzugreifen. Dies erlaubt gemeinsamen Echtzeitzugriff auf einen geteilten Zustand, der mit herkömmlichen Formen des Client-Einsatzes nicht leicht bereitgestellt wird.
  • Bei gemeinsamem Einsatz wird eine Liste von Dialogen, welche auf einem bestimmten Client ablaufen, mit einem Client-Manager-Objekt verbunden, welches sich auf dem Server befindet. Eine Liste von Client-Managern befindet sich innerhalb des AISPs (welche die aktuelle Anzahl von aktiven Clients wiedergibt, die an dieselbe Serveranwendung angeschlossen sind). Selbst wenn viele Clients dieselbe Information auf dem Server sehen können, haben sie nicht immer genau dieselben Komponenten auf dieselbe Weise zu betrachten. Der Client-Manager kann verschiedene Clients so lenken, dass sie verschiedene Dialogdarstellungen derselben Serverkomponenten aufweisen. Basierend auf der Navigation der Client-Benutzer durch ihre eigenen Dialoginstanzen kann jeder Client-Benutzer zu jeder festgelegten Zeit auch eine völlig verschiedene Information sehen.
  • Die vorliegende Erfindung kann als ein oder mehr computerlesbare Programme, welche auf oder in einem oder mehreren Fertigfabrikaten enthalten sein können. Das Fertigfabrikat kann eine Diskette, eine Festplatte, eine CD-ROM, eine Flash-Speicherkarte, ein PROM, ein RAM, ein ROM oder ein Magnetband sein. Im Allgemeinen können die computerlesbaren Programme in jeder Programmiersprache verwirklicht werden. Einige Beispiele für Sprachen, welche verwendet werden können, umfassen C, C++ oder JAVA. Die Software-Programme können auf oder in einem oder mehreren Fertigfabrikaten als Objektcode gespeichert werden.
  • Obwohl die Erfindung insbesondere unter Bezugnahme auf mehrere beispielhafte Ausführungsformen davon dargestellt und beschrieben wurde, versteht es sich für die Fachleute von selbst, dass verschiedene Änderungen in Form und Detail daran vorgenommen werden können, ohne sich vom Rahmen der Erfindung, wie beansprucht, zu entfernen.
  • Figure 00320001
  • Figure 00330001
  • Figure 00340001
  • Figure 00350001
  • Figure 00360001
  • Figure 00370001

Claims (38)

  1. Verfahren zur Übertragung von Daten zwischen einem Client (110) und einem Server (130), welches die folgenden Schritte umfasst: Ausführen durch einen Server-Knoten (130) eines Anwendungsprogramms (132), welches eine Serverkomponente (136), die einem Element der grafischen Benutzerschnittstelle entspricht, beeinflusst; Bereitstellen eines anwendungsunabhängigen Client-Prozesses (114), wobei der anwendungsunabhängige Client-Prozess (114) eine Anzeige eines oder mehrerer Elemente der grafischen Benutzerschnittstelle auf dem Client (110), welcher mit dem Anwendungsprogramm (132) verbunden ist, beeinflusst; Bereitstellen eines anwendungsunabhängigen Server-Prozesses (134), wobei der anwendungsunabhängige Server-Prozess (134) Daten (310) an den anwendungsunabhängigen Client-Prozess (114) überträgt und die übertragenen Daten (310) für eine Änderung einer der Anwendungskomponenten (136), welche durch das Anwendungsprogramm (132) beeinflusst werden, repräsentativ sind; und Aktualisieren durch den anwendungsunabhängigen Client-Prozess (114) eines der Elemente der grafischen Benutzerschnittstelle auf dem Client (110) als Reaktion auf die übertragenen Daten (310).
  2. Verfahren nach Anspruch 1, welches des Weiteren Übertragen von Daten (330) vom anwendungsunabhängigen Client-Prozess (114) an den anwendungsunabhängigen Server-Prozess (134) umfasst, wobei die übertragenen Daten für eine Änderung eines der Elemente der grafischen Benutzerschnittstelle repräsentativ sind.
  3. Verfahren nach Anspruch 1, welches des Weiteren Herstellen eines Kommunikationskanals (120) zwischen dem anwendungsunabhängigen Client-Prozess (114) und dem anwendungsunabhängigen Server-Prozess (134) umfasst.
  4. Verfahren nach Anspruch 3, wobei der Kommunikationskanal (120) asynchron ist.
  5. Verfahren nach Anspruch 1, welches des Weiteren Zugreifen durch den anwendungsunabhängigen Client-Prozess (114) auf eine Beschreibungsdatei (310) umfasst, welche (i) eine Layoutbeschreibung der Elemente der grafischen Benutzerschnittstelle und (ii) eine Verbindungsbeschreibung zwischen den Elementen der grafischen Benutzerschnittstelle und der entsprechenden Anwendungskomponente (136) umfasst.
  6. Verfahren nach Anspruch 5, wobei die Beschreibungsdatei (310) im XML-Format ist.
  7. Verfahren nach Anspruch 1, welches des Weiteren Erzeugen durch den anwendungsunabhängigen Client-Prozess (114) einer Instanz eines Steuerobjekts (624) für jedes Element der grafischen Benutzerschnittstelle umfasst, wobei die Steuerobjektinstanz (624) das Element der grafischen Benutzerschnittstelle darstellt.
  8. Verfahren nach Anspruch 7, bei welchem die Anwendungskomponente (136) ein oder mehrere Glieder umfasst, wobei jedes Glied für ein Attribut der Anwendungskomponente (136) repräsentativ ist, die durch einen Benutzer änderbar oder dem Benutzer anzeigbar ist, und welches des Weiteren Erzeugen einer Instanz von Management-Code (452) durch den anwendungsunabhängigen Server-Prozess (134) umfasst, wobei die Management-Code-Instanz (452) die Korrespondenz zwischen dem Steuerobjekt (624) und dem Anwendungskomponentenglied zuordnet.
  9. Verfahren nach Anspruch 8, welches des Weiteren Erzeugen eines Container-Objekts für jede Anwendungskomponente (136) und jedes Steuerobjekt (624) umfasst.
  10. Verfahren nach Anspruch 9, welches des Weiteren umfasst: Überwachen wenigstens des Anwendungskomponentenglieds oder des Steuerobjekts (624); und Übertragen von Daten als Reaktion einer Zustandsänderung wenigstens des verbundenen Anwendungskomponentenglieds oder des Steuerobjekts (624).
  11. Verfahren nach Anspruch 9, welches des Weiteren umfasst: Erzeugen eines eindeutigen Identifizierers wenigstens für das Anwendungskomponentenglied oder das Steuerobjekt (624); und Speichern des eindeutigen Identifizierers in einer Proxy-Schicht.
  12. System zur Übertragung von Daten zwischen einem Client (110) und einem Server (130), umfassend: einen Server-Knoten (130), welcher umfasst: ein Anwendungsprogramm (132), welches wenigstens eine Anwendungskomponente (136) umfasst; und einen anwendungsunabhängigen Server-Prozess (134) in Kommunikation mit dem Anwendungsprogramm (132), wobei der anwendungsunabhängige Server-Prozess (134) eine Zustandsänderung der Anwendungskomponente (136) feststellt; und einen Client-Knoten (110), welcher umfasst: einen anwendungsunabhängigen Client-Prozess (114) in Kommunikation mit dem anwendungsunabhängigen Server-Prozess (134), wobei der anwendungsunabhängige Client-Prozess (114) als Reaktion auf den Empfang von übertragenen Daten (310) vom anwendungsunabhängigen Server-Prozess (134), wobei die Daten als Reaktion auf die festgestellte Zustandsänderung der Anwendungskomponente (136) übertragen werden, ein Element der grafischen Benutzerschnittstelle auf dem Client-Knoten (110) aktualisiert, wobei das Element der grafischen Benutzerschnittstelle der Anwendungskomponente (136) entspricht.
  13. System nach Anspruch 12, wobei der anwendungsunabhängige Client-Prozess (114) eine Änderung der grafischen Benutzerschnittstelle feststellt und als Reaktion auf die festgestellte Änderung Daten (330) an den anwendungsunabhängigen Server-Prozess (134) überträgt; und wobei der anwendungsunabhängige Server-Prozess (134) als Reaktion auf die empfangenen Übertragungsdaten (330) die Anwendungskomponente (136) aktualisiert.
  14. System nach Anspruch 12, welches des Weiteren einen Kommunikationskanal (120) umfasst, welcher den Server-Knoten (130) mit dem Client-Knoten (110) verbindet, wobei der anwendungsunabhängige Client-Prozess (114) und der anwendungsunabhängige Server-Prozess (134) über den Kommunikationskanal (120) miteinander kommunizieren.
  15. System nach Anspruch 14, wobei der Kommunikationskanal (120) asynchron ist.
  16. System nach Anspruch 12, welches des Weiteren eine Beschreibungsdatei (310) umfasst, welche (i) eine Layoutbeschreibung des Elements der grafischen Benutzerschnittstelle und (ii) eine Verbindungsbeschreibung zwischen dem Element der grafischen Benutzerschnittstelle und der entsprechenden Anwendungskomponente (136) umfasst.
  17. System nach Anspruch 16, wobei die Beschreibungsdatei (310) im XML-Format ist.
  18. System nach Anspruch 12, wobei der anwendungsunabhängige Client-Prozess (114) des Weiteren eine Instanz eines Steuerobjekts (624) für jedes der einen oder mehr Elemente der grafischen Benutzerschnittstelle umfasst und die Steuerobjektinstanz (624) das Element der grafischen Benutzerschnittstelle darstellt.
  19. System nach Anspruch 18, wobei die Anwendungskomponente (136) ein oder mehr Glieder umfasst, wobei jedes Glied ein Attribut der Anwendungskomponente (136) darstellt, die durch den Benutzer änderbar oder dem Benutzer anzeigbar ist; und wobei der anwendungsunabhängige Server-Prozess (134) des Weiteren eine Instanz von Management-Code (452) umfasst und die Management-Code-Instanz (452) die Korrespondenz zwischen dem Steuerobjekt (624) und dem Anwendungskomponentenglied zuordnet.
  20. System nach Anspruch 19, welches des Weiteren ein Container-Objekt für jede Anwendungskomponente (136) und jedes Steuerobjekt (624) umfasst.
  21. System nach Anspruch 20, wobei das Container-Objekt des Weiteren so konfiguriert ist, dass es wenigstens das Anwendungskomponentenglied oder das Steuerobjekt (624), welche mit diesem Container-Objekt verbunden sind, überwacht und als Reaktion auf eine Zustandsänderung wenigstens des verbundenen Anwendungskomponentenglieds oder des verbundenen Steuerobjekts (624) eine Datenübertragung einleitet.
  22. System nach Anspruch 20, welches des Weiteren eine Proxy-Schicht umfasst, um einen eindeutigen Identifizierer für jedes Steuerobjekt (624) zu erzeugen und den eindeutigen Identifizierer in der Proxy-Schicht zu speichern.
  23. Server-Knoten (130) zur Übertragung von Zustandsdaten, umfassend: ein Anwendungsprogramm (132), welches wenigstens eine Anwendungskomponente (136) umfasst; einen anwendungsunabhängigen Server-Prozess (134) in Kommunikation mit dem Anwendungsprogramm (132), wobei der anwendungsunabhängige Server-Prozess (134) eine Zustandsänderung der Anwendungskomponente (136) feststellt und als Reaktion auf eine festgestellte Zustandsänderung der Anwendungskomponente (136) Daten (310) überträgt, wobei die Daten zur Verwendung durch einen Client (110) sind, um ein Element der grafischen Benutzerschnittstelle auf dem Client-Knoten (110) zu aktualisieren, wobei das Element der grafischen Benutzerschnittstelle der Anwendungskomponente (136) entspricht.
  24. Server-Knoten nach Anspruch 23, wobei der anwendungsunabhängige Server-Prozess (134) des Weiteren so konfiguriert ist, dass er die Anwendungskomponente (136) als Reaktion auf die empfangenen Übertragungsdaten (330) aktualisiert, wobei die Daten eine Feststellung einer Zustandsänderung der grafischen Benutzerschnittstelle auf dem Client (110) darstellen.
  25. Server-Knoten nach Anspruch 23, welcher des Weiteren eine Beschreibungsdatei (310) umfasst, welche (i) eine Layoutbeschreibung des Elements der grafischen Benutzerschnittstelle und (ii) eine Verbindungsbeschreibung zwischen dem Element der grafischen Benutzerschnittstelle und der entsprechenden Anwendungskomponente (136) umfasst.
  26. Server-Knoten nach Anspruch 25, wobei die Beschreibungsdatei (310) im XML-Format ist.
  27. Server-Knoten nach Anspruch 23, wobei die Anwendungskomponente (136) ein oder mehrere Glieder umfasst, wobei jedes Glied für ein Attribut der Anwendungskomponente repräsentativ ist, die durch den Benutzer änderbar oder dem Benutzer anzeigbar ist; und wobei der anwendungsunabhängige Server-Prozess (134) des Weiteren eine Instanz von Management-Code (452) umfasst und die Management-Code-Instanz (452) die Korrespondenz zwischen dem Anwendungskomponentenglied und einem Steuerobjekt (624), das sich auf dem Client (110) befindet, zuordnet.
  28. Server-Knoten nach Anspruch 27, welcher des Weiteren ein Container-Objekt für jede Anwendungskomponente (136) umfasst.
  29. Server-Knoten nach Anspruch 28, wobei das Container-Objekt des Weiteren so konfiguriert ist, dass es wenigstens das Anwendungskomponentenglied, welches mit diesem Container-Objekt verbunden ist, überwacht und als Reaktion auf eine Zustandsänderung des verbundenen Anwendungskomponentenglieds eine Datenübertragung einleitet.
  30. Server-Knoten nach Anspruch 28, welcher des Weiteren eine Proxy-Schicht umfasst, um einen eindeutigen Identifizierer für jedes Anwendungskomponentenglied zu erzeugen und den eindeutigen Identifizierer zu speichern.
  31. Client-Knoten (110) zur Anzeige von Anwendungsdaten, welche durch eine Anwendung (132) ausgegeben werden, die auf einem entfernten Server (130) abläuft, wobei der Client-Knoten umfasst: einen anwendungsunabhängigen Client-Prozess (114) in Kommunikation mit dem Server (130), wobei der anwendungsunabhängige Client-Prozess (114) als Reaktion auf den Empfang von übertragenen Zustandsdaten (310), welche eine festgestellte Zustandsänderung der Anwendungskomponente (136) darstellen, ein Element der grafischen Benutzerschnittstelle auf dem Client (110) aktualisiert, wobei das Element der grafischen Benutzerschnittstelle einer Anwendungskomponente (136) der Anwendung (132), welche auf dem Server (130) abläuft, entspricht.
  32. Client-Knoten nach Anspruch 31, wobei der anwendungsunabhängige Client-Prozess (114) des Weiteren so konfiguriert ist, dass er eine Zustandsänderung der grafischen Benutzerschnittstelle feststellt und als Reaktion auf die festgestellte Änderung Daten (330) an den Server (130) überträgt.
  33. Client-Knoten nach Anspruch 31, welcher des Weiteren eine Beschreibungsdatei (310) umfasst, welche (i) eine Layoutbeschreibung des Elements der grafischen Benutzerschnittstelle und (ii) eine Verbindungsbeschreibung zwischen dem Element der grafischen Benutzerschnittstelle und der entsprechenden Anwendungskomponente (136) umfasst.
  34. Client-Knoten nach Anspruch 33, wobei die Beschreibungsdatei (310) im XML-Format ist.
  35. Client-Knoten nach Anspruch 31, wobei der anwendungsunabhängige Client-Prozess (114) des Weiteren eine Instanz eines Steuerobjekts (624) für jedes Element der grafischen Benutzerschnittstelle umfasst und die Steuerobjektinstanz (624) das Element der grafischen Benutzerschnittstelle darstellt.
  36. Client-Knoten nach Anspruch 35, welcher des Weiteren ein Container-Objekt für jedes Steuerobjekt (624) umfasst.
  37. Client-Knoten nach Anspruch 36, wobei das Container-Objekt des Weiteren so konfiguriert ist, dass es das Steuerobjekt (624), welches mit dem Container-Objekt verbunden ist, überwacht und als Reaktion auf eine Zustandsänderung des verbundenen Steuerobjekts (624) eine Datenübertragung einleitet.
  38. Client-Knoten nach Anspruch 36, welcher des Weiteren eine Proxy-Schicht umfasst, um einen eindeutigen Identifizierer für das Steuerobjekt (624) zu erzeugen und den eindeutigen Identifizierer zu speichern.
DE60008555T 1999-09-07 2000-09-07 Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache Expired - Lifetime DE60008555T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/391,068 US6356933B2 (en) 1999-09-07 1999-09-07 Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
US391068 1999-09-07
PCT/US2000/024492 WO2001018691A2 (en) 1999-09-07 2000-09-07 Methods and apparatus for efficiently transmitting interactive application data between a client and server using markup language

Publications (2)

Publication Number Publication Date
DE60008555D1 DE60008555D1 (de) 2004-04-01
DE60008555T2 true DE60008555T2 (de) 2004-08-05

Family

ID=23545092

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60008555T Expired - Lifetime DE60008555T2 (de) 1999-09-07 2000-09-07 Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache

Country Status (11)

Country Link
US (3) US6356933B2 (de)
EP (1) EP1214667B1 (de)
JP (1) JP2003509739A (de)
KR (1) KR20020085873A (de)
AU (1) AU7353800A (de)
CA (1) CA2383849A1 (de)
DE (1) DE60008555T2 (de)
ES (1) ES2219393T3 (de)
HK (1) HK1046321A1 (de)
IL (1) IL148461A0 (de)
WO (1) WO2001018691A2 (de)

Families Citing this family (181)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
JP4476390B2 (ja) * 1998-09-04 2010-06-09 株式会社半導体エネルギー研究所 半導体装置の作製方法
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US7966234B1 (en) 1999-05-17 2011-06-21 Jpmorgan Chase Bank. N.A. Structured finance performance analytics system
US6356933B2 (en) * 1999-09-07 2002-03-12 Citrix Systems, Inc. Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
US6687745B1 (en) 1999-09-14 2004-02-03 Droplet, Inc System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection
US7529806B1 (en) * 1999-11-04 2009-05-05 Koninklijke Philips Electronics N.V. Partitioning of MP3 content file for emulating streaming
US20030200301A1 (en) * 1999-11-10 2003-10-23 Trzcinko Alan P. Web-based network management system
US6421673B1 (en) * 1999-12-13 2002-07-16 Novient, Inc. Method for mapping applications and or attributes in a distributed network environment
US7051015B1 (en) * 2000-01-10 2006-05-23 Wind River Systems, Inc. System and method for implementing a flexible data-driven target object model
US7702719B1 (en) * 2000-02-08 2010-04-20 International Business Machines Corporation Methods and apparatus for reducing the number of server interactions in network-based applications using a dual-MVC approach
US6640317B1 (en) * 2000-04-20 2003-10-28 International Business Machines Corporation Mechanism for automated generic application damage detection and repair in strongly encapsulated application
US6850979B1 (en) * 2000-05-09 2005-02-01 Sun Microsystems, Inc. Message gates in a distributed computing environment
US6757900B1 (en) * 2000-05-18 2004-06-29 Microsoft Corporation State management of server-side control objects
US7249095B2 (en) 2000-06-07 2007-07-24 The Chase Manhattan Bank, N.A. System and method for executing deposit transactions over the internet
CN1300677C (zh) * 2000-06-22 2007-02-14 微软公司 分布式计算服务平台
US7117239B1 (en) * 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US20020059629A1 (en) * 2000-08-21 2002-05-16 Markel Steven O. Detection and recognition of data receiver to facilitate proper transmission of enhanced data
US20020057286A1 (en) * 2000-08-25 2002-05-16 Markel Steven O. Device independent video enhancement scripting language
EP1312209B1 (de) * 2000-08-25 2017-03-08 OpenTV, Inc. Individuell angepasste fernbedienung
US7142934B2 (en) 2000-09-01 2006-11-28 Universal Electronics Inc. Audio converter device and method for using the same
WO2002023368A1 (en) * 2000-09-15 2002-03-21 Wonderware Corporation A method and system for administering a concurrent user licensing agreement on a manufacturing/process control information portal server
US7185014B1 (en) * 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7392212B2 (en) * 2000-09-28 2008-06-24 Jpmorgan Chase Bank, N.A. User-interactive financial vehicle performance prediction, trading and training system and methods
AU2002232594A1 (en) * 2000-10-30 2002-05-15 Tririga, Inc. Item specification object management system
US7346842B1 (en) * 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US7051084B1 (en) * 2000-11-02 2006-05-23 Citrix Systems, Inc. Methods and apparatus for regenerating and transmitting a partial page
US7313541B2 (en) * 2000-11-03 2007-12-25 Jpmorgan Chase Bank, N.A. System and method for estimating conduit liquidity requirements in asset backed commercial paper
US7133908B1 (en) * 2000-11-24 2006-11-07 Xerox Corporation Metrics and status presentation system and method using persistent template-driven web objects
US20020105548A1 (en) * 2000-12-12 2002-08-08 Richard Hayton Methods and apparatus for creating a user interface using property paths
US7080120B2 (en) * 2001-01-19 2006-07-18 Digital Orchid, Inc. System and method for collaborative processing of distributed applications
US20020129096A1 (en) * 2001-02-14 2002-09-12 Mansour Peter M. Platform-independent distributed user interface client architecture
US7155681B2 (en) * 2001-02-14 2006-12-26 Sproqit Technologies, Inc. Platform-independent distributed user interface server architecture
US20020111995A1 (en) * 2001-02-14 2002-08-15 Mansour Peter M. Platform-independent distributed user interface system architecture
US20020194491A1 (en) * 2001-04-02 2002-12-19 Expand Networks Ltd. Method and system for reducing traffic in a channel of communication while protecting user privacy
US7587669B2 (en) 2001-04-09 2009-09-08 Aol Llc Server-based browser system
US7596526B2 (en) * 2001-04-16 2009-09-29 Jpmorgan Chase Bank, N.A. System and method for managing a series of overnight financing trades
JP2005502104A (ja) * 2001-06-11 2005-01-20 トータルイーケア・インコーポレイテッド 計算インフラストラクチャに対する変更を管理するシステム
JP4233775B2 (ja) * 2001-07-06 2009-03-04 インターナショナル・ビジネス・マシーンズ・コーポレーション データ通信方法、データ通信システムおよびプログラム
US7526572B2 (en) * 2001-07-12 2009-04-28 Research In Motion Limited System and method for providing remote data access for a mobile communication device
US7051119B2 (en) * 2001-07-12 2006-05-23 Yahoo! Inc. Method and system for enabling a script on a first computer to communicate and exchange data with a script on a second computer over a network
US20030023754A1 (en) * 2001-07-27 2003-01-30 Matthias Eichstadt Method and system for adding real-time, interactive functionality to a web-page
US20030041142A1 (en) * 2001-08-27 2003-02-27 Nec Usa, Inc. Generic network monitoring tool
US7146617B2 (en) * 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US7203948B2 (en) 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7461119B2 (en) 2001-09-29 2008-12-02 Siebel Systems, Inc. Method, apparatus, and system for managing status of requests in a client server environment
JP4064652B2 (ja) * 2001-10-12 2008-03-19 株式会社シンクプラス プロキシサーバ付きブラウザおよび情報複写システム
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7065746B2 (en) * 2002-01-11 2006-06-20 Stone Bond Technologies, L.P. Integration integrity manager
US7305397B2 (en) * 2002-01-31 2007-12-04 Tririga Llc Caching data communications to reduce latency
US20060075070A1 (en) * 2002-04-02 2006-04-06 Patrick Merissert-Coffinieres Development and deployment of mobile and desktop applications within a flexible markup-based distributed architecture
US7191217B2 (en) * 2002-04-10 2007-03-13 Nippon Telegraph And Telephone Corporation Distributed server-based collaborative computing
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
EP1363187A1 (de) * 2002-05-15 2003-11-19 Sony International (Europe) GmbH Aussendung von Anwendungsprogrammschritten in einer Client-Serverumgebung
US8224723B2 (en) 2002-05-31 2012-07-17 Jpmorgan Chase Bank, N.A. Account opening system, method and computer program product
US7290215B2 (en) * 2002-06-03 2007-10-30 Microsoft Corporation Dynamic wizard interface system and method
US20030233457A1 (en) * 2002-06-12 2003-12-18 Henrik Basilier Signaling framework for wireless networks
US7454458B2 (en) * 2002-06-24 2008-11-18 Ntt Docomo, Inc. Method and system for application load balancing
US7797403B2 (en) * 2002-07-12 2010-09-14 Microsoft Corporation Deployment of configuration information
US20040015537A1 (en) * 2002-07-15 2004-01-22 Richard Doerksen Handheld client framework system
US7698434B2 (en) * 2002-08-29 2010-04-13 Bea Systems, Inc. J2EE connector architecture
CN101453491B (zh) * 2002-12-26 2012-07-18 捷讯研究有限公司 建立组件应用程序的方法和设备
US20050044033A1 (en) * 2003-01-10 2005-02-24 Gelson Andrew F. Like-kind exchange method
US20040148247A1 (en) * 2003-01-24 2004-07-29 Lawrence Miller Network-based systems, methods, and software for initiating or executing financial transactions
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
KR100930353B1 (ko) * 2003-03-06 2009-12-08 엘지전자 주식회사 디스크 플레이어의 접속요청 처리방법
US7634435B2 (en) * 2003-05-13 2009-12-15 Jp Morgan Chase Bank Diversified fixed income product and method for creating and marketing same
US7770184B2 (en) * 2003-06-06 2010-08-03 Jp Morgan Chase Bank Integrated trading platform architecture
US20040260806A1 (en) * 2003-06-20 2004-12-23 Eric Martin System supporting communication between a web enabled application and another application
EP1494116A1 (de) * 2003-07-01 2005-01-05 Amadeus S.A.S. Verfahren und Vorrichtung zum Erstellen von graphischen Benutzerschnittstellen
US20050015324A1 (en) * 2003-07-15 2005-01-20 Jacob Mathews Systems and methods for trading financial instruments across different types of trading platforms
US7970688B2 (en) * 2003-07-29 2011-06-28 Jp Morgan Chase Bank Method for pricing a trade
US7469302B2 (en) * 2003-08-29 2008-12-23 Yahoo! Inc. System and method for ensuring consistent web display by multiple independent client programs with a server that is not persistently connected to client computer systems
US20050060256A1 (en) * 2003-09-12 2005-03-17 Andrew Peterson Foreign exchange trading interface
US7593876B2 (en) * 2003-10-15 2009-09-22 Jp Morgan Chase Bank System and method for processing partially unstructured data
US7720906B2 (en) * 2003-11-24 2010-05-18 Microsoft Corporation Web service for remote application discovery
US7590713B2 (en) 2003-11-24 2009-09-15 Microsoft Corporation Presenting a merged view of remote application shortcuts from multiple providers
US7475125B2 (en) 2003-11-24 2009-01-06 Microsoft Corporation Seamless discovery of workstation-installed remote applications from an extranet
US20050125385A1 (en) * 2003-12-08 2005-06-09 Honeywell International, Inc. Framework enabling access of data from disparate databases in a manufacturing plant
US7634583B2 (en) * 2003-12-18 2009-12-15 Microsoft Corporation Systems and methods that utilize persisted push/pull state to provide reliable message publishing
US20050183021A1 (en) * 2004-02-13 2005-08-18 Allen Joel E. Method for electronically packaging a user's personal computing environment on a computer or device, and mobilizing it for transfer over a network
GB2411331A (en) * 2004-02-19 2005-08-24 Trigenix Ltd Rendering user interface using actor attributes
EP1569109A1 (de) 2004-02-27 2005-08-31 Research In Motion Limited System und Verfahren zum Abbilden zwischen Nachrichten- und Datenbereichen mittels einer durch Metadaten definierten Abbildung
US7836428B2 (en) * 2004-03-15 2010-11-16 Bungee Labs, Inc. Declarative computer programming language method and system
US7805523B2 (en) * 2004-03-15 2010-09-28 Mitchell David C Method and apparatus for partial updating of client interfaces
US8423447B2 (en) * 2004-03-31 2013-04-16 Jp Morgan Chase Bank System and method for allocating nominal and cash amounts to trades in a netted trade
US20050222937A1 (en) * 2004-03-31 2005-10-06 Coad Edward J Automated customer exchange
US20050223080A1 (en) * 2004-04-05 2005-10-06 Microsoft Corporation Updatable user experience
US7580867B2 (en) * 2004-05-04 2009-08-25 Paul Nykamp Methods for interactively displaying product information and for collaborative product design
US20050251478A1 (en) * 2004-05-04 2005-11-10 Aura Yanavi Investment and method for hedging operational risk associated with business events of another
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US20050257196A1 (en) * 2004-05-17 2005-11-17 Gideon Hollander System and method for developing new services from legacy computer applications
US7627671B1 (en) * 2004-05-22 2009-12-01 ClearApp, Inc. Monitoring and performance management of component-based applications
US7693770B2 (en) 2004-08-06 2010-04-06 Jp Morgan Chase & Co. Method and system for creating and marketing employee stock option mirror image warrants
US7543032B2 (en) * 2004-10-22 2009-06-02 Canyonbridge, Inc. Method and apparatus for associating messages with data elements
US7450128B2 (en) * 2004-11-15 2008-11-11 Hewlett-Packard Development Company, L.P. Systems and methods of providing image copy and modify commands to a receiver with an associated display
US20090132428A1 (en) * 2004-11-15 2009-05-21 Stephen Jeffrey Wolf Method for creating and marketing a modifiable debt product
US7467389B2 (en) * 2004-11-23 2008-12-16 Sybase, Inc. System and methodology providing service invocation for occasionally connected computing devices
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
US7779410B2 (en) * 2004-12-17 2010-08-17 Sap Ag Control interfaces for distributed system applications
US20090164384A1 (en) * 2005-02-09 2009-06-25 Hellen Patrick J Investment structure and method for reducing risk associated with withdrawals from an investment
US8688569B1 (en) 2005-03-23 2014-04-01 Jpmorgan Chase Bank, N.A. System and method for post closing and custody services
WO2006110991A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited Method and system for controlling software version updates
US20090187512A1 (en) * 2005-05-31 2009-07-23 Jp Morgan Chase Bank Asset-backed investment instrument and related methods
US7577879B2 (en) * 2005-06-07 2009-08-18 Microsoft Corporation Patching a mobile computing device software error
US7822682B2 (en) 2005-06-08 2010-10-26 Jpmorgan Chase Bank, N.A. System and method for enhancing supply chain transactions
US20110035306A1 (en) * 2005-06-20 2011-02-10 Jpmorgan Chase Bank, N.A. System and method for buying and selling securities
US7817849B2 (en) * 2005-08-18 2010-10-19 Hewlett-Packard Development Company, L.P. Method and apparatus for graphical data compression
US7567928B1 (en) 2005-09-12 2009-07-28 Jpmorgan Chase Bank, N.A. Total fair value swap
US7818238B1 (en) 2005-10-11 2010-10-19 Jpmorgan Chase Bank, N.A. Upside forward with early funding provision
KR20070052645A (ko) * 2005-11-17 2007-05-22 삼성전자주식회사 사용자 인터페이스를 관리하는 장치 및 방법
US8095565B2 (en) * 2005-12-05 2012-01-10 Microsoft Corporation Metadata driven user interface
US20070174454A1 (en) * 2006-01-23 2007-07-26 Mitchell David C Method and apparatus for accessing Web services and URL resources for both primary and shared users over a reverse tunnel mechanism
US8280794B1 (en) 2006-02-03 2012-10-02 Jpmorgan Chase Bank, National Association Price earnings derivative financial product
US8316293B2 (en) * 2006-03-27 2012-11-20 Research In Motion Limited System and method for rendering presentation pages based on locality
US7620578B1 (en) 2006-05-01 2009-11-17 Jpmorgan Chase Bank, N.A. Volatility derivative financial product
US7647268B1 (en) 2006-05-04 2010-01-12 Jpmorgan Chase Bank, N.A. System and method for implementing a recurrent bidding process
US9811868B1 (en) 2006-08-29 2017-11-07 Jpmorgan Chase Bank, N.A. Systems and methods for integrating a deal process
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US7987443B2 (en) * 2006-10-30 2011-07-26 Hewlett-Packard Development Company, L.P. Declarative association of dialog fields
US7827096B1 (en) 2006-11-03 2010-11-02 Jp Morgan Chase Bank, N.A. Special maturity ASR recalculated timing
US8065397B2 (en) * 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US20080162488A1 (en) * 2006-12-29 2008-07-03 Karle Christopher J Method, system and program product for updating browser page elements over a distributed network
US8510371B2 (en) * 2007-01-16 2013-08-13 Gizmox Ltd. Method and system for creating IT-oriented server-based web applications
US7574682B2 (en) * 2007-02-28 2009-08-11 Freescale Semiconductor, Inc. Yield analysis and improvement using electrical sensitivity extraction
US8335813B2 (en) * 2007-05-01 2012-12-18 Illinois Institute Of Technology Systems, methods, and protocols for process migration and group membership management
US8478861B2 (en) 2007-07-06 2013-07-02 Axeda Acquisition Corp. Managing distributed devices with limited connectivity
US9009292B2 (en) * 2007-07-30 2015-04-14 Sybase, Inc. Context-based data pre-fetching and notification for mobile applications
US8204870B2 (en) * 2007-08-03 2012-06-19 Sybase, Inc. Unwired enterprise platform
US20090094313A1 (en) * 2007-10-03 2009-04-09 Jay Feng System, method, and computer program product for sending interactive requests for information
EP2293192B1 (de) 2008-01-27 2021-03-31 Citrix Systems, Inc. Verfahren und systeme zur löschung dreidimensionaler graphiken
US20100037240A1 (en) * 2008-08-08 2010-02-11 Microsoft Corporation Non Intrusive Application Mechanism
US8001213B2 (en) 2008-12-22 2011-08-16 Nokia Corporation Method, apparatus and computer program product for providing unrestricted content on a user terminal
US8271005B2 (en) 2009-01-12 2012-09-18 Jlt Group, Inc. Mobile communication device and system with limited data transfer
US20100274858A1 (en) * 2009-04-27 2010-10-28 Nokia Corporation Mid-service sharing
US8738514B2 (en) 2010-02-18 2014-05-27 Jpmorgan Chase Bank, N.A. System and method for providing borrow coverage services to short sell securities
US20110208670A1 (en) * 2010-02-19 2011-08-25 Jpmorgan Chase Bank, N.A. Execution Optimizer
US8352354B2 (en) * 2010-02-23 2013-01-08 Jpmorgan Chase Bank, N.A. System and method for optimizing order execution
KR101680344B1 (ko) 2010-05-06 2016-11-28 엘지전자 주식회사 이동 단말기 및 그 제어방법
US10210160B2 (en) 2010-09-07 2019-02-19 Opentv, Inc. Collecting data from different sources
US9699503B2 (en) 2010-09-07 2017-07-04 Opentv, Inc. Smart playlist
US8949871B2 (en) 2010-09-08 2015-02-03 Opentv, Inc. Smart media selection based on viewer user presence
CN106843715B (zh) * 2010-10-05 2020-06-26 西里克斯系统公司 用于远程化的应用的触摸支持
US8793706B2 (en) 2010-12-16 2014-07-29 Microsoft Corporation Metadata-based eventing supporting operations on data
EP2518617A1 (de) * 2011-04-27 2012-10-31 Tieto Oyj Dynamischer Benutzer und gerätespezifische Benutzerschnittstellenerzeugung basierend auf Verfahrensbeschreibungen
US9250854B2 (en) * 2011-08-25 2016-02-02 Vmware, Inc. User interface virtualization for remote devices
US9304662B2 (en) 2011-08-25 2016-04-05 Vmware, Inc. User interface virtualization techniques
US9143530B2 (en) 2011-10-11 2015-09-22 Citrix Systems, Inc. Secure container for protecting enterprise data on a mobile device
US20140032733A1 (en) 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US9280377B2 (en) 2013-03-29 2016-03-08 Citrix Systems, Inc. Application with multiple operation modes
US9215225B2 (en) 2013-03-29 2015-12-15 Citrix Systems, Inc. Mobile device locking with context
US8881229B2 (en) 2011-10-11 2014-11-04 Citrix Systems, Inc. Policy-based application management
US8799994B2 (en) 2011-10-11 2014-08-05 Citrix Systems, Inc. Policy-based application management
RU2600106C2 (ru) * 2011-12-28 2016-10-20 Нокиа Текнолоджиз Ой Переключатель приложений
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices
RU2601831C2 (ru) 2011-12-28 2016-11-10 Нокиа Текнолоджиз Ой Предоставление открытого экземпляра приложения
US9542080B2 (en) 2012-04-25 2017-01-10 Vmware, Inc. User interface virtualization of context menus
KR20140012317A (ko) 2012-07-19 2014-02-03 삼성전자주식회사 프로세스 전송 시스템, 프로세스 전송 서버의 프로세스 전송 방법, 및 클라이언트의 프로세스 처리 방법
US8613070B1 (en) 2012-10-12 2013-12-17 Citrix Systems, Inc. Single sign-on access in an orchestration framework for connected devices
US9516022B2 (en) 2012-10-14 2016-12-06 Getgo, Inc. Automated meeting room
US20140109171A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Providing Virtualized Private Network tunnels
US8910239B2 (en) 2012-10-15 2014-12-09 Citrix Systems, Inc. Providing virtualized private network tunnels
US20140109176A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US9606774B2 (en) 2012-10-16 2017-03-28 Citrix Systems, Inc. Wrapping an application with field-programmable business logic
US20140108793A1 (en) 2012-10-16 2014-04-17 Citrix Systems, Inc. Controlling mobile device access to secure data
US9971585B2 (en) 2012-10-16 2018-05-15 Citrix Systems, Inc. Wrapping unmanaged applications on a mobile device
WO2014062804A1 (en) 2012-10-16 2014-04-24 Citrix Systems, Inc. Application wrapping for application management framework
US9355223B2 (en) 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
US10284627B2 (en) 2013-03-29 2019-05-07 Citrix Systems, Inc. Data management for an application with multiple operation modes
US8849979B1 (en) 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing mobile device management functionalities
US20140297840A1 (en) 2013-03-29 2014-10-02 Citrix Systems, Inc. Providing mobile device management functionalities
US8849978B1 (en) 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing an enterprise application store
US8813179B1 (en) 2013-03-29 2014-08-19 Citrix Systems, Inc. Providing mobile device management functionalities
US9985850B2 (en) 2013-03-29 2018-05-29 Citrix Systems, Inc. Providing mobile device management functionalities
US9339159B2 (en) 2014-06-13 2016-05-17 Aerus Llc Vacuum brush drive
US10621276B2 (en) 2013-10-24 2020-04-14 Wmware, Inc. User interface virtualization for web applications
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
KR101978352B1 (ko) * 2017-05-12 2019-05-14 애플 인크. 디지털 어시스턴트의 동기화 및 태스크 위임
US11438452B1 (en) 2019-08-09 2022-09-06 Apple Inc. Propagating context information in a privacy preserving manner

Family Cites Families (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57157362A (en) 1981-03-25 1982-09-28 Hitachi Ltd Method and apparatus of execution path career data pickup for architecture program
US5481740A (en) * 1986-04-14 1996-01-02 National Instruments Corporation Method and apparatus for providing autoprobe features in a graphical data flow diagram
US5737622A (en) * 1986-04-14 1998-04-07 National Instruments Corporation Method and apparatus for more efficient function synchronization in a data flow program
US5291587A (en) * 1986-04-14 1994-03-01 National Instruments, Inc. Graphical system for executing a process and for programming a computer to execute a process, including graphical variable inputs and variable outputs
US5341477A (en) 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US5297283A (en) 1989-06-29 1994-03-22 Digital Equipment Corporation Object transferring system and method in an object based computer operating system
US5187790A (en) 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
US5129084A (en) 1989-06-29 1992-07-07 Digital Equipment Corporation Object container transfer system and method in an object based computer operating system
US5057996A (en) 1989-06-29 1991-10-15 Digital Equipment Corporation Waitable object creation system and method in an object based computer operating system
US5297279A (en) 1990-05-30 1994-03-22 Texas Instruments Incorporated System and method for database management supporting object-oriented programming
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
US5423041A (en) 1990-09-28 1995-06-06 Texas Instruments Incorporated Coupling rules to an object-oriented program
US5291487A (en) 1991-01-24 1994-03-01 Micom Communications Corp. Apparatus for, and method of, packing and unpacking information in transmission lines
JPH0546568A (ja) 1991-08-08 1993-02-26 Internatl Business Mach Corp <Ibm> 分散アプリケーシヨン実行装置および方法
EP0546682A3 (en) 1991-12-12 1993-12-08 Ibm Parent class shadowing
US5386558A (en) 1992-02-24 1995-01-31 Adapsys, Inc. Method and apparatus for executing control system functions in a computer system
US5371891A (en) 1992-04-09 1994-12-06 Microsoft Corporation Method for object construction in a compiler for an object-oriented programming language
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.
US5327562A (en) 1992-05-06 1994-07-05 Microsoft Corporation Method for implementing virtual function tables in a compiler for an object-oriented programming language
US5339430A (en) 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
WO1994011810A1 (en) 1992-11-13 1994-05-26 Microsoft Corporation A method and system for marshalling interface pointers for remote procedure calls
US5515536A (en) 1992-11-13 1996-05-07 Microsoft Corporation Method and system for invoking methods of an object through a dispatching interface
US5887133A (en) 1997-01-15 1999-03-23 Health Hero Network System and method for modifying documents sent over a communications network
US5315703A (en) 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system
US5437025A (en) 1993-01-26 1995-07-25 International Business Machines Corporation System and method for run time configuration of objects in an object oriented computing environment
US5369766A (en) 1993-03-25 1994-11-29 Taligent, Inc. Object-oriented loader system with support for different load formats
US5325533A (en) 1993-06-28 1994-06-28 Taligent, Inc. Engineering system for modeling computer programs
US5519867A (en) 1993-07-19 1996-05-21 Taligent, Inc. Object-oriented multitasking system
US5485617A (en) 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
US5499343A (en) 1993-12-17 1996-03-12 Taligent, Inc. Object-oriented networking system with dynamically configurable communication links
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5517617A (en) 1994-06-29 1996-05-14 Digital Equipment Corporation Automatic assignment of addresses in a computer communications network
JP3508258B2 (ja) 1994-09-09 2004-03-22 株式会社デンソー 内燃機関用点火装置
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
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
US5819093A (en) * 1995-03-03 1998-10-06 Sun Microsystems, Inc. System and method for a distributed debugger for debugging distributed application programs
US5710918A (en) 1995-06-07 1998-01-20 International Business Machines Corporation Method for distributed task fulfillment of web browser requests
US5701451A (en) 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5737592A (en) 1995-06-19 1998-04-07 International Business Machines Corporation Accessing a relational database over the Internet using macro language files
US5657390A (en) 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
US6249291B1 (en) * 1995-09-22 2001-06-19 Next Software, Inc. Method and apparatus for managing internet transactions
US5660639A (en) * 1995-10-17 1997-08-26 Ford Motor Company Method and apparatus for plasma treating an article
US5572643A (en) 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
US6370552B1 (en) 1997-05-14 2002-04-09 Citrix Systems, Inc. Apparatus and method for displaying application output in an HTML document
US6169540B1 (en) * 1995-12-01 2001-01-02 Immersion Corporation Method and apparatus for designing force sensations in force feedback applications
US6161126A (en) * 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
IL116804A (en) 1996-01-17 1998-12-06 R N S Remote Networking Soluti Application user interface redirector
US5859971A (en) 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
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
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
US5933841A (en) 1996-05-17 1999-08-03 Ameritech Corporation Structured document browser
US6434578B1 (en) * 1996-06-26 2002-08-13 Microsoft Corporation Generating instruction sequences using independently executable pane renderers
US6112242A (en) 1996-07-10 2000-08-29 Uln Corporation System and method for dynamic data interaction in a hypertext data processing system
US5757925A (en) * 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
EP0853788A1 (de) 1996-08-08 1998-07-22 Agranat Systems, Inc. Eingebetteter web-server
US5944791A (en) * 1996-10-04 1999-08-31 Contigo Software Llc Collaborative web browser
US6029182A (en) 1996-10-04 2000-02-22 Canon Information Systems, Inc. System for generating a custom formatted hypertext document by using a personal profile to retrieve hierarchical documents
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
US5889942A (en) * 1996-12-18 1999-03-30 Orenshteyn; Alexander S. Secured system for accessing application services from a remote station
US5978842A (en) 1997-01-14 1999-11-02 Netmind Technologies, Inc. Distributed-client change-detection tool with change-detection augmented by multiple clients
US5983268A (en) * 1997-01-14 1999-11-09 Netmind Technologies, Inc. Spreadsheet user-interface for an internet-document change-detection tool
US6012087A (en) * 1997-01-14 2000-01-04 Netmind Technologies, Inc. Unique-change detection of dynamic web pages using history tables of signatures
US6101510A (en) 1997-01-29 2000-08-08 Microsoft Corporation Web browser control for incorporating web browser functionality into application programs
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
US5796952A (en) * 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US6314456B1 (en) 1997-04-02 2001-11-06 Allegro Software Development Corporation Serving data from a resource limited system
US6262729B1 (en) 1997-04-14 2001-07-17 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
JPH10301874A (ja) 1997-04-22 1998-11-13 Internatl Business Mach Corp <Ibm> 遠隔操作方法、ネットワークを介して端末から遠隔操作されるサーバ及びhtmlファイルを格納する記憶媒体
US5946697A (en) 1997-04-22 1999-08-31 Microsoft Corporation Rapid transfer of HTML files
US6230309B1 (en) * 1997-04-25 2001-05-08 Sterling Software, Inc Method and system for assembling and utilizing components in component object systems
US5937160A (en) 1997-05-01 1999-08-10 Reedy Creek Technologies, Inc. Systems, methods and computer program products for updating hypertext documents via electronic mail
US5877757A (en) * 1997-05-23 1999-03-02 International Business Machines Corporation Method and system for providing user help information in network applications
US5983227A (en) 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US5978828A (en) 1997-06-13 1999-11-02 Intel Corporation URL bookmark update notification of page content or location changes
US6304895B1 (en) 1997-08-22 2001-10-16 Apex Inc. Method and system for intelligently controlling a remotely located computer
US6192382B1 (en) 1997-09-24 2001-02-20 Mediaone Group, Inc. Method and system for web site construction using HTML fragment caching
US6035332A (en) * 1997-10-06 2000-03-07 Ncr Corporation Method for monitoring user interactions with web pages from web server using data and command lists for maintaining information visited and issued by participants
US6081830A (en) 1997-10-09 2000-06-27 Gateway 2000, Inc. Automatic linking to program-specific computer chat rooms
US5946687A (en) 1997-10-10 1999-08-31 Lucent Technologies Inc. Geo-enabled personal information manager
US5907681A (en) 1997-10-20 1999-05-25 International Business Machines Corporation Intelligent method, apparatus and computer program product for automated refreshing of internet web pages
US6311185B1 (en) 1997-10-30 2001-10-30 At&T Corp. Method and apparatus for modifying an information page transmitted in a communications network
US5999179A (en) * 1997-11-17 1999-12-07 Fujitsu Limited Platform independent computer network management client
US5999941A (en) 1997-11-25 1999-12-07 Micron Electronics, Inc. Database access using active server pages
US6490584B2 (en) 1997-11-26 2002-12-03 International Business Machines Corporation User-centered push methods and system
US6601107B1 (en) * 1998-02-02 2003-07-29 Hughes Electronics Corporation Adaptive fuzzy control of data acquisition and broadcasting
US6275585B1 (en) * 1998-04-28 2001-08-14 Motorola, Inc. Method for reprogramming a vehicle system or a user system in a vehicle
US6094662A (en) 1998-04-30 2000-07-25 Xerox Corporation Apparatus and method for loading and reloading HTML pages having cacheable and non-cacheable portions
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
US6209029B1 (en) 1998-05-12 2001-03-27 Silverstream Software, Inc. Method and apparatus for accessing data sources in a three tier environment
EP1076871A1 (de) * 1998-05-15 2001-02-21 Unicast Communications Corporation Verfahren zur implementation browser-initiierter und über das netzwerk verbreiteter werbung und zum zwischenzeitlichen anzeigen einer werbeanzeige
US6397231B1 (en) 1998-08-31 2002-05-28 Xerox Corporation Virtual documents generated via combined documents or portions of documents retrieved from data repositories
US6480865B1 (en) 1998-10-05 2002-11-12 International Business Machines Corporation Facility for adding dynamism to an extensible markup language
US6397253B1 (en) 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
US6271858B1 (en) 1998-10-16 2001-08-07 Microsoft Corporation Incremental update for dynamic/animated textures on three-dimensional models
US6313854B1 (en) 1998-10-16 2001-11-06 International Business Machines Corporation Display mechanism for HTML frames
US6134568A (en) * 1998-10-30 2000-10-17 Kinko's Ventures, Inc. Previewing an assembled document
US6393422B1 (en) 1998-11-13 2002-05-21 International Business Machines Corporation Navigation method for dynamically generated HTML pages
US6249844B1 (en) 1998-11-13 2001-06-19 International Business Machines Corporation Identifying, processing and caching object fragments in a web environment
US8418131B2 (en) * 1998-11-25 2013-04-09 Helmut Emmelmann Interactive server side components
US6305012B1 (en) 1998-12-03 2001-10-16 International Business Machines Corporation Method and apparatus for dynamic selection of instructions for compiling using tags
US6571245B2 (en) * 1998-12-07 2003-05-27 Magically, Inc. Virtual desktop in a computer network
US6360250B1 (en) 1998-12-28 2002-03-19 Lucent Technologies Inc. Apparatus and method for sharing information in simultaneously viewed documents on a communication system
US6311187B1 (en) 1998-12-29 2001-10-30 Sun Microsystems, Inc. Propogating updates efficiently in hierarchically structured data under a push model
US6889379B1 (en) * 1998-12-31 2005-05-03 Microsoft Corporation Transporting objects between a client and a server
US6507856B1 (en) 1999-01-05 2003-01-14 International Business Machines Corporation Dynamic business process automation system using XML documents
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
US6870551B1 (en) * 1999-01-28 2005-03-22 International Business Machines Corporation Method and apparatus for displaying full and selected dynamic data in a data processing system
US6434738B1 (en) 1999-04-22 2002-08-13 David Arnow System and method for testing computer software
US6515681B1 (en) * 1999-05-11 2003-02-04 Prophet Financial Systems, Inc. User interface for interacting with online message board
GB9913165D0 (en) * 1999-06-08 1999-08-04 Secr Defence Access control in a web environment
US6691281B1 (en) * 1999-06-15 2004-02-10 Microsoft Corporation Publishing/republishing data tables in HTML documents while maintaining formatting and functionality for restoring back the data tables
US6742045B1 (en) * 1999-07-02 2004-05-25 Cisco Technology, Inc. Handling packet fragments in a distributed network service environment
US6457103B1 (en) 1999-07-22 2002-09-24 International Business Machines Corporation Method and apparatus for caching content in a data processing system with fragment granularity
US6557076B1 (en) * 1999-07-22 2003-04-29 International Business Machines Corporation Method and apparatus for aggressively rendering data in a data processing system
US6031747A (en) 1999-08-02 2000-02-29 Lockheed Martin Missiles & Space Company Interleaved synchronous flyback converter with high efficiency over a wide operating load range
US6496849B1 (en) 1999-08-30 2002-12-17 Zaplet, Inc. Electronic media for communicating information among a group of participants
US6356933B2 (en) * 1999-09-07 2002-03-12 Citrix Systems, Inc. Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
US6701388B1 (en) * 1999-09-28 2004-03-02 Texas Instruments Incorporated Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller
US6587858B1 (en) * 1999-09-30 2003-07-01 Steven Paul Strazza Systems and methods for the control of dynamic data and request criteria in a data repository
US6920607B1 (en) * 1999-12-15 2005-07-19 Microsoft Corp. Methods and systems for dynamically creating user interfaces
WO2001045018A1 (en) * 1999-12-17 2001-06-21 Dorado Network Systems Corporation Purpose-based adaptive rendering
WO2001052090A2 (en) * 2000-01-14 2001-07-19 Saba Software, Inc. Method and apparatus for a web content platform
US6912571B1 (en) * 2000-02-22 2005-06-28 Frank David Serena Method of replacing content
US7509404B2 (en) * 2000-03-08 2009-03-24 Oracle International Corporation Methods and systems for partial page caching of dynamically generated content
JP2001332630A (ja) * 2000-05-19 2001-11-30 Sharp Corp 半導体装置の製造方法
EP1174303B1 (de) * 2000-07-17 2004-11-10 Hitachi, Ltd. Steuerungsverfahren und Steuerungssystem für das Anfahren eines Kraftfahrzeugs
EP1337936A2 (de) * 2000-07-31 2003-08-27 James A. Starkey System und verfahren zur erzeugung von webseiten nach vorlagen
US6684388B1 (en) * 2000-08-22 2004-01-27 International Business Machines Corporation Method for generating platform independent, language specific computer code
US6920609B1 (en) * 2000-08-24 2005-07-19 Yahoo! Inc. Systems and methods for identifying and extracting data from HTML pages
US6738804B1 (en) * 2000-09-15 2004-05-18 Yodlee.Com, Inc. Method and apparatus for enabling sectored data refreshing of Web-site data during session
US7346842B1 (en) * 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US7051084B1 (en) * 2000-11-02 2006-05-23 Citrix Systems, Inc. Methods and apparatus for regenerating and transmitting a partial page
US20020099738A1 (en) * 2000-11-22 2002-07-25 Grant Hugh Alexander Automated web access for back-end enterprise systems
JP5013856B2 (ja) 2006-12-27 2012-08-29 小林製薬株式会社 カルニチン塩及びpH調整剤配合組成物

Also Published As

Publication number Publication date
ES2219393T3 (es) 2004-12-01
US20050251551A1 (en) 2005-11-10
HK1046321A1 (en) 2003-01-03
CA2383849A1 (en) 2001-03-15
US6356933B2 (en) 2002-03-12
KR20020085873A (ko) 2002-11-16
AU7353800A (en) 2001-04-10
JP2003509739A (ja) 2003-03-11
WO2001018691A2 (en) 2001-03-15
WO2001018691A3 (en) 2002-01-10
US7596593B2 (en) 2009-09-29
DE60008555D1 (de) 2004-04-01
US20010042094A1 (en) 2001-11-15
US20020116455A1 (en) 2002-08-22
IL148461A0 (en) 2002-09-12
US6920480B2 (en) 2005-07-19
EP1214667B1 (de) 2004-02-25
EP1214667A2 (de) 2002-06-19

Similar Documents

Publication Publication Date Title
DE60008555T2 (de) Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache
DE60125913T2 (de) Datenübertragungsverfahren und vorrichtung
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE60224926T2 (de) Verfahren und Rechnersystem zur Behandlung von inkrementalen Daten in Klient-Server Kommunikation.
DE60127795T2 (de) System und Verfahren zur Metrik- und Statusdarstellung
DE60218069T2 (de) Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung
DE69637436T2 (de) Objektorientiertes Kommunikationssystem mit Unterstützung für mehrere entfernte Maschinentypen
DE69819211T2 (de) Verteilte interfacearchitektur einer programmierbaren industriellen steuerung
DE60218189T2 (de) Datenverarbeitungssystem und verfahren zum impliziten einreichen ungesicherter daten für eine world-wide-anwendung
DE60033286T2 (de) System und verfahren zur bereitstellung einer unmittelbaren visuellen antwort auf eine benutzereingabe in einem anwendersystem
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE60028561T2 (de) Bereitstellung von kundendiensten, die daten aus datenquellen abrufen, wobei die datenquellen die vom kunden geforderten formate nicht notwendigerweise unterstützen
DE60225476T2 (de) Verfahren und vorrichtung zum netzwerk-caching
DE10051024B4 (de) Verfahren zum intermediären Cachen in einem Client-Server-Softwaresystem, Computerprogrammprodukte und Computersystem zur Durchführung eines solchen Verfahrens
DE60121987T2 (de) Zugreifen auf Daten, die bei einer Zwischenstation gespeichert sind, von einem Dienst aus
DE60308489T2 (de) Anwendungsfensterschließung als Reaktion auf ein Ereignis in einem Parent-Fenster
DE602005002679T2 (de) WEB-Dienst-Anwendungsprotokoll und SOAP-Verarbeitungsmodell
DE60317917T2 (de) Verfahren und vorrichtung zum weiterleiten von sitzungsinformationen von einem portal-server
DE10295699T5 (de) Eine Anordnung und ein Verfahren in Bezug auf Sitzungsverwaltung in einer Portalstruktur
DE102004010180A1 (de) Verfahren und Vorrichtungen zum Zugriff auf verteilte Daten für Prozesssteuersysteme
DE202012013445U1 (de) System, um Offline Zugriff in einem gehosteten Dokument-Service zur Verfügung zu stellen
DE69837550T2 (de) System und Verfahren zur Datenübermittlung von einer Serverapplikation an Klientknoten
DE10222361C2 (de) Verfahren zum Betreiben eines verteilten Rechnernetzwerks umfassend mehrere verteilt angeordnete Rechner
DE602005005954T2 (de) Verfahren und System zur Serverfernadministration
DE102004030781A1 (de) SCADA-System und Verfahren zum Betreiben eines solchen Systems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition