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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
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 Internet120 auf Information zuzugreifen und Anwendungen auszuführen wünscht, normalerweise über eine Computer-Arbeitsstation110 , welche ein Anwendungsprogramm, das als ein Webbrowser112 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 Webbrowser112 bereitgestellt. Der Benutzer kommuniziert mit dem Webbrowser112 und dem AICP114 über eine Benutzerschnittstelle116 , 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 Webbrowsers112 sendet die Benutzerarbeitsstation110 eine Webseitenabfrage122 über das Internet120 . Webseitendaten können die Form von Text, Grafiken und andere Formen von Information aufweisen. Jedes Webserver-Computersystem130 im Internet120 weist eine bekannte Adresse (URL) auf, welche der Benutzer an den Webbrowser112 liefern muss, um mit dem entsprechenden Webserver130 die Verbindung herzustellen. Da der Webserver130 mehr als eine Webseite enthalten kann, gibt der Benutzer in der Adresse auch an, welche konkrete Webseite124 er auf dem Webserver130 sehen möchte. Das Webserver-Computersystem130 führt ein Webserver-Anwendungsprogramm132 , Monitorabfragen und Dienstabfragen, für welche es die Verantwortung hat, aus. Wenn eine Abfrage einen Webserver130 auswählt, greift das Webserver-Anwendungsprogramm132 im Allgemeinen auf eine Webseite124 zu, welche der konkreten Webseitenabfrage122 entspricht, und überträgt die Webseite124 an die Benutzerarbeitsstation110 . Die Webseitenabfrage122 umfasst in einer Ausführungsform auch eine Abfrage zur Ausführung eines Anwendungsprogramms in dem Webserver-Computersystem130 . 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 Anwendungskomponenten136 , welche durch den AICP114 benötigt werden. - Im Allgemeinen enthält eine Webseite die visuellen Primärdaten, welche auf der Benutzerschnittstelle
116 der Benutzerarbeitsstation110 angezeigt werden. Wenn der Webserver130 eine Webseitenabfrage122 empfängt, baut er eine Webseite in HTML auf und überträgt sie über das Internet120 an den abfragenden Webbrowser112 . Der Webbrowser112 interpretiert die HTML und gibt die Webseite124 an den Monitor der Benutzerarbeitsstation10 aus. Die Webseite124 , 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 Serversystem130 ein Betriebssystem410 , eine Webserveranwendung132 , Anwendungsprogramme420 , Anwendungskomponenten136 , ein Transaktionsprozessor430 , Zustandsinformation, Objektinformation und Daten (nicht dargestellt), sowie eine oder mehr Instanzen eines AISPs134 . - Die Anwendungsprogramme
420 werden durch die zentrale Verarbeitungseinheit CPU (nach engl. central processing unit) des Serversystems130 unter der Kontrolle des Betriebssystems410 ausgeführt. Die Anwendungsprogramme420 können unter Verwendung von Programmdaten als Eingabe, wie beispielsweise jene, die vom AICP114 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 Webserveranwendung132 empfängt, die Information interpretiert, um zu bestimmen, ob eine bestimmte Instanz eines AISPs134 erforderlich ist, und die Instanz AISP134 startet, um die vom AICP114 empfangene Abfrage weiter zu verarbeiten. - Unter Bezugnahme auf
3 umfasst die vorliegende Erfindung den AICP114 und den AISP134 . Der AICP114 bereitet die grafische Benutzerschnittstelle (GUI), welche dem Benutzer an der Benutzerschnittstelle116 angezeigt wird, auf. Der AICP114 erhält auch eine Beziehung zwischen den Steuerobjekten, welche auf der Benutzerschnittstelle116 angezeigt werden, und den Anwendungskomponenten136 , welche auf dem Webserver130 aufrechterhalten werden, aufrecht. Der AISP134 überwacht den Zustand der Anwendungskomponenten136 zusammen mit den Steuerobjekten, welche auf der Benutzerarbeitsstation110 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 AICP114 und der AISP134 basierend auf der Datenbeschreibung, welche die Beziehung zwischen den GUI-Steuerungen und den Serveranwendungskomponenten136 (im Folgenden als Serverkomponenten bezeichnet), die sie darstellen, definiert, die entsprechende Maßnahme. - Ebenfalls unter Bezugnahme auf
4 umfasst die Beziehung446 zwischen den Steuerobjekten624 , welche an der Benutzerschnittstelle116 der Benutzerarbeitsstation110 angezeigt werden, und den Serverkomponenten136 , 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 Benutzerarbeitsstation110 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 Anwendungskomponenten136 geändert, und diese Zustandsänderungen330 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 Anwendungskomponente136 verbunden ist, welche ein Thermostat steuert, und wenn dann der Benutzer mit der Bildlaufleiste an der Benutzerschnittstelle116 kommuniziert, die Zustandsänderung an das Webserver-Anwendungsprogramm132 übertragen, welches den Zustand der entsprechenden Anwendungskomponente136 ä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 in2 ) 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 Beziehung446 (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 AISP134 . 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 in2 ) umfassen. Wann immer ein Steuerobjekt624 mit einer Serverkomponente136 innerhalb eines GUI-Layouts (eines Dialogfensters) verbunden wird, wird die Verbindungsbeschreibung (im Kontext) mit der Layoutinformation aufgenommen. Dies ist die Information, welche der AICP114 verwendet, um die Anwendung ablaufen zu lassen und die Ergebnisse dem Benutzer anzuzeigen. Sobald ein Dialog über den AICP114 abläuft, werden Zustandsänderungen, welche auf den Steuerobjekten (Steuerzustände) oder Serverkomponenten (Komponentenzustand,442 2 ) auftreten, verdichtet und zwischen dem AICP114 und dem AISP134 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 AISP134 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 AICP114 und den AISP134 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 AICP114 und der AISP134 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 und4 führt der AISP134 die folgenden Funktionen aus: er sendet den XML-Datenstrom an den AICP114 , liest die Beschreibungsdatei310 (3 ) (welche als ein XML-Datenstrom übertragen werden kann), spricht auf Abfragen vom AICP114 zum Anschluss an Serverkomponenten136 an, erhält eine zustandsabhängige Verbindung aufrecht und überwacht den Kontext auf dem Webserver130 . Es ist zu erwähnen, dass zu jeder festgelegten Zeit mehrere AISP134' im Speicher des Webservers130 vorhanden sein können. - In Verwendung entwirft ein Entwickler unter Bezugnahme auf
5 das Layout der Benutzerschnittstelle116 (Schritt710 ), welche letzten Endes auf der Benutzerarbeitsstation110 angezeigt wird, und stellt dabei die Beziehungen zwischen den Steuerobjekten624 (4 ) und den Serverkomponenten136 her. Sobald diese Information formuliert ist, wird sie in einer Beschreibungsdatei310 gespeichert (Schritt712 ). Wenn der AICP114 eine Abfrage zur Ausführung eines Anwendungsprogramms420 auf dem Webserver130 überträgt, empfängt der Transaktionsprozessor430 (2 ) die Abfrage (Schritt714 ), instanziert einen AISP134 (Schritt718 ), welcher mit dem Anwendungsprogramm420 verbunden ist, wenn im Speicher noch keine Instanz geladen ist, und startet das Anwendungsprogramm420 (Schritt720 ). Sobald der AICP114 die Beschreibungsdatei310 empfängt, überträgt er eine Verbindungsabfrage an den AISP134 . Der AISP134 empfängt die Verbindungsabfrage (Schritt722 ) und lädt die Beschreibungsdatei310 , welche mit dem abgefragten Anwendungsprogramm420 verbunden ist, in den Serverspeicher (Schritt724 ). - Die Beschreibungsdatei
310 , welche mit dem abgefragten Anwendungsprogramm420 verbunden ist, wird geladen, um den AICP114 mit den entsprechenden Serverkomponenten136 zu verbinden. Die Beschreibungsdatei310 enthält genügend Information in Bezug auf die Beziehungen zwischen den Steuerobjekten624 (4 ) und den Serverkomponenten136 , um zu ermöglichen, dass der AISP134 die Serverkomponenten verwaltet und der AICP114 die Steuerobjekte verwaltet. - Beim Laden der Beschreibungsdatei
310 bildet der AISP134 ein Managerobjekt452 für jede Serverkomponente136 (Schritt726 ), 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 Metaobjekt454 bezeichnet) erzeugt (Schritt728 ). Das Metaobjekt454 speichert Daten, wie beispielsweise Gliedinformation, Dialoginformation, Verbindungsinformation, Objekt-Objekt-Verbindungsinformation und eine Referenz zu einer Client-Managerkomponente, um die Steuerobjekte624 effektiv mit den Serverkomponenten136 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 AICP114 verwendet wird, um die Benutzerschnittstelle116 auf der Benutzerarbeitsstation110 aufzubereiten. Die Dialoginformation gibt auch die Art von Steuerobjekt624 oder Serverkomponente136 , welche an der Verbindung beteiligt sind, an. Die Verbindungsinformation beschreibt die Art und Weise, wie ein bestimmtes Steuerobjekt624 mit einer bestimmten Serverkomponente136 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-Anwendungsprogramm420 zu kommunizieren. Der Client-Manager ist eine Komponentenschnittstelle, welche durch das Serveranwendungsprogramm420 eingebaut werden muss, um das Verhalten des AICPs114 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 AICP114 mit einem Anwendungsprogramm420 auf dem Webserver130 verbunden oder davon getrennt werden möchte. - Wenn ein Dialog im AICP
114 erzeugt wird, wird der AISP134 benachrichtigt, dass er einen physischen Anschluss zu der relevanten Instanz der Serverkomponente136 auf dem Server130 erzeugen muss. Um diesen physischen Anschluss herzustellen, ordnet der AISP134 die Objektsteuerungen an der Benutzerschnittstelle116 den Serverkomponenten136 zu (Schritt732 ). Die Dialogbeschreibung der Serverkomponente136 kann im Metaobjekt454 gefunden werden. An dieser Stelle erhält der AISP134 den Namen des Dialogs, welcher auf dem AICP114 zu erzeugen ist, und erhält Zugriff auf eine Instanz der Serverkomponenten136 . Eine Verbindungsbehandlungsroutine450 wird für jede Steuerung, welche eine Verbindung mit einem Teil der Serverkomponenteninstanz benötigt, instanziert. Die Verbindungsbehandlungsroutine450 initialisiert die Verbindung zwischen dem Steuerobjekt624 und der Serverkomponente136 und erhält sie aufrecht. Nur Verbindungsbehandlungsroutinen450 , 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 AICP114 bereits eine erzeugt. Der Verbindungsbehandlungsroutine450 wird ein Identifizierer618 (4 ) zugewiesen, welcher mit jenem identisch ist, welcher für das Steuerobjekt624 des AICPs114 bereitgestellt wird. Dieser Identifizierer618 wird verwendet, um die Informationsmeldungen, welche zwischen dem AICP114 und dem AISP134 hin- und hergehen, zu synchronisieren. - Ähnlich dem Dialogobjekt, welches im AICP-Abschnitt beschrieben wurde, bildet der Server ein clientseitiges Proxy-Objekt
456 (Schritt730 ), welches Meldungen arbitriert, die zwischen der Client-Seite der Serververbindung und dem AICP114 hin- und hergeschickt werden. Die Verbindungsbehandlungsroutine450 kommuniziert mit diesem Proxy-Objekt456 , als ob es das Steuerobjekt624 selbst wäre. Das Proxy-Objekt456 überträgt einen Wert für das Steuerobjekt624 an den AICP114 , welcher wiederum das Steuerobjekt624 an der Benutzerschnittstelle116 modifiziert. Auf diese Weise kann das Proxy-Objekt456 Anfangszustandsinformation an den AICP114 übertragen (734 ), sowie den AICP114 mit Zustandsänderungen330 einer bestimmten Serverkomponenten136 auf dem Server130 aktualisieren (Schritt (738 ). Auf ähnliche Weise wird, wenn sich der Steuerzustand622 eines Steuerobjekts624 auf dem AICP114 ändert, der modifizierte Steuerzustand über das Proxy-Objekt456 (unter Verwendung des Steuerungsidentifizierers618 , welcher diesem konkreten Steuerobjekt624 zugewiesen ist) an den AISP gesendet. Sobald der modifizierte Steuerzustand durch das Proxy-Objekt456 empfangen wurde, benachrichtigt das Proxy-Objekt456 die Verbindungsbehandlungsroutine450 davon, dass sich der Zustand des Steuerobjekts geändert hat, so dass der modifizierte Zustand in die entsprechende Serverkomponente136 eingefügt werden kann. - Ähnlich dem AICP
114 erhält der AISP134 die Verbindung für die Dauer des Dialogs aufrecht (Schritt736 ). 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 AISP134 jede der Verbindungsbehandlungsroutinen450 , welche mit der Verbindung mit dem Dialog verbunden ist. Außerdem werden auch die Proxy-Objekte456 , welche verwendet werden, um als Vertreter der Steuerobjekte624 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 AICP114 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 AISP134 diese Liste, um die Dialogverbindungsinformation zu suchen, und entfernt die Dialogreferenz aus der Liste. - Obwohl der AICP
114 und der AISP134 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 Steuerobjekte624 auf dem AICP114 mit den Serverkomponenten136 auf dem AISP134 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 AICP114 im Speicher der Benutzerarbeitsstation110 befinden. Der Speicher enthält auch das Betriebssystem612 , welches in der Benutzerarbeitsstation110 eingebaut ist, und das Webbrowser- Anwendungsprogramm112 , in dem der AICP114 gestartet wird. Der AICP114 führt die folgenden Funktionen aus: er liest die Datenbeschreibungsdatei310 , bereitet die Benutzerschnittstelle116 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 AICP114 in der Benutzerarbeitsstation110 installiert. Das üblichste Installationsverfahren ist die manuelle Installation des AICPs114 durch die Systeminstallationsprozedur (z. B. beim Betriebsystem von Microsoft Windows unter Verwendung der Funktion „Add/Remove Programs"). Alternativerweise kann der AICP114 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 AICP114 etliche Lösungen beim Herstellen der Anfangsverbindung mit dem serverseitigen Anwendungsprogramm420 . Die Information, welche durch den AICP114 benötigt wird, um mit dem Anwendungsprogramm420 zu kommunizieren, umfasst: den Namen des auszuführenden Server-Prozesses, den Standort der Beschreibungsdatei310 auf einem Netzserver, alle Ausgangsargumente, welche bei Verbindung an das Anwendungsprogramm420 übertragen werden müssen, und die aktuelle Version der Beschreibungsdatei. Diese Information kann in einer Initialisierungsdatei enthalten sein, welche geladen wird, wenn der AICP114 gestartet wird. - Wenn der AICP
114 gestartet wird, greift er auf die Initialisierungsdatei zu (Schritt810 ) und überträgt unter Verwendung der darin enthaltenen Information eine Abfrage zur Ausführung des gewünschten Anwendungsprogramms420 an den Server134 . Wie bereits erwähnt, sendet der Transaktionsprozessor430 auf dem Server130 eine Beschreibungsdatei310 an den AICP114 , welcher dann den Versionsstempel der Beschreibungsdatei, die er empfängt, mit dem vergleicht, der im lokalen Speicher610 der Benutzerarbeitsstation110 enthalten ist (und von einer früheren Transaktion oder während der Installation des AICPs114 erhalten wurde). Der AICP114 kann dann bestimmen (Schritt812 ), welche Version der Beschreibungsdatei310 er lädt. Standardmäßig lädt der AICP114 nur die Beschreibungsdatei310 vom Transaktionsprozessor430 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 Beschreibungsdatei310 wird nur durch ein bestimmtes Anwendungsprogramm420 benutzt. - Sobald die Beschreibungsdatei
310 heruntergeladen (oder von einem Dateizwischenspeicher lokal geladen) ist, versorgt sie den AICP114 mit der Dialogbeschreibung des Anwendungsprogramms420 . Der AICP114 nimmt dann die Interpretation der Beschreibungsdaten dieses Dialogs vor (Schritt814 ), um die Steuerobjekte624 aufzubauen, welche innerhalb des Dialogs bestehen, und die Steuerobjekte624 an der Benutzerschnittstelle116 zur Darstellung für den Benutzer zu gestalten. - Unterdessen überträgt der AICP
114 eine Abfrage zur Herstellung einer logischen Verbindung mit den Serverkomponenten36 an den AISP134 (Schritt816 ). Bei erfolgreicher Verbindung mit den Serverkomponenten136 auf dem Server130 empfängt der AICP114 die Dialogsteuerobjekte624 und besetzt sie anschließend mit der Steuerzustandinformation622 , welche dem Serverkomponentenzustand442 entspricht (Schritt818 ). - 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 Steuerobjekte624 aktiv mit den Serverkomponenten136 verbunden, so dass Zustandsänderungen auf jeder Seite auf der anderen wiedergegeben werden. Sobald die Steuerobjekte624 den aktuellen Serverkomponentenzustand442 wiedergeben, wird dann der Dialog über die Benutzerschnittstelle116 dem Benutzer angezeigt (Schritt (820 ). - Die Steuerobjekte
624 werden durch eine Referenzeigenschaft, welche als Teil der Beschreibung des Steuerobjekts624 , der in der gesamten Dialoglayoutbeschreibung enthalten ist, bereitgestellt wird, mit den Serverkomponenten136 verbunden. Diese Referenz kann der Name, welcher der Verbindungsbeschreibung zugewiesen wurde, und die Art der verbundenen Serverkomponente136 sein. Ein eindeutiger Steuerungsidentifizierer618 wird für jedes der Steuerobjekte624 , welche mit den Serverkomponenten136 verbunden sind, berechnet. Dieser Steuerungsidentifizierer618 wird verwendet, um die Zustandsänderungen330 mit dem AISP134 beim Verbinden mit der entsprechenden Serverkomponenteninstanz, welche diesem Steuerobjekt624 zugewiesen wird, zu koordinieren. Es ist zu erwähnen, dass viele Steuerobjekte an dieselbe Serverkomponente136 gebunden werden können. - Da der AICP
114 und der AISP134 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 Steuerobjekt624 des Clients an eine Anwendungskomponente136 des Servers auf dem AICP114 oder dem AISP134 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 Verbindungsbehandlungsroutinen450 eine zustandsabhängige Echtzeitverbindung mit den verbundenen Serverkomponenten136 aufrecht (Schritt822 ). Die Verbindungsbehandlungsroutine450 spricht entweder auf Zustandsänderungen beim Clientsteuerobjekt624 oder seiner zugehörigen Serverkomponente136 an. Die Verbindungsbehandlungsroutine450 ist auch imstande, die Daten, welche auf einem Satz von Regeln basieren, die durch den Entwickler definiert werden, umzuwandeln. Die Verbindungsbehandlungsroutine450 ist imstande, den Zustand auf jeder Seite der Verbindung durch Aufrechterhalten von Referenzen zu den Steuerobjekten624 , welche an der Verbindung beteiligt sind, aufrechtzuerhalten (Schritt822 ). - 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 Verbindungsbehandlungsroutine450 eine Eigenschaftsänderung feststellt, führt sie die entsprechende Verbindungsumwandlung aus. Wenn außerdem ein Steuerobjekt624 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 Steuerobjekte624 mit Zustandsänderungen330 , welche vom AISP134 empfangen werden, aktualisiert (Schritt824 ), und die Zustandsänderungen, welche in einem Steuerobjekt624 auftreten, werden an den AISP134 übertragen, um die entsprechenden Serverkomponenten136 zu aktualisieren (Schritt826 ). - 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 AISP134 wichtig, diesen Kontext mit den Serverkomponenten136 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 Datenbeziehungen446 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 Benutzerarbeitsstation110 erzeugt wird. Dieses Container-Objekt überwacht die Dauer des Dialogs in Bezug auf die Serverkomponente136 . Das Container-Objekt stellt fest, wenn der Dialog durch den Benutzer beendet wird, und ergreift die entsprechende Maßnahme, um die Verbindungsbehandlungsroutinen450 , welche mit den Steuerobjekten624 innerhalb des Dialogs verbunden sind, abzuschließen. Das Container-Objekt koordiniert auch die Verarbeitung von Zustandsänderungsmeldungen, welche zwischen dem AICP114 und dem AISP134 hin- und herfließen. Wann immer das Container-Objekt eine Zustandsänderung330 vom AISP134 empfängt, entnimmt es den Steuerungsidentifizierer618 , welcher in der Meldung enthalten ist, lokalisiert die Steuerobjekte624 , welche mit diesem Steuerungsidentifizierer618 verbunden sind, und verwendet die Komponentenschnittstelle des Steuerobjekts624 , um die Zustandsänderung direkt am Steuerobjekt624 durchzuführen. Gleichermaßen wird, wenn das Steuerobjekt624 den Zustand ändert, das Container-Objekt von der Änderung benachrichtigt, und es verdichtet die Zustandsänderungsmeldung und sendet sie an den AISP134 . - Das Container-Objekt sendet Zustandsänderungen an den AISP
134 für die Teile der Schnittstelle des Steuerobjekts, an welchen die Verbindungsbehandlungsroutine450 interessiert ist. Die Verbindungsbehandlungsroutine450 ist an den Steuergliedern interessiert, die in der Beschreibungsdatei310 dargestellt sind und die verwendet wurden, um die Verbindungsbehandlungsroutine450 zu erzeugen. Das Container-Objekt, welches den Dialog umhüllt, erzeugt auch ein Container-Objekt für jedes Steuerobjekt624 , welches innerhalb des Dialogs instanziert wird, um seine zustandsabhängige Lebensdauer aufrechtzuerhalten. - Sowohl der AICP
114 als auch der AISP134 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 AICP114 und den AISP134 auf Objekte Bezug genommen wird. Wenn zum Beispiel ein Dialog mit einer Serverkomponente136 verbunden wird, erzeugt der AICP114 einen Container für den Dialog, und der AISP134 erzeugt einen Container für die Serverkomponente136 . 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 Beschreibungsdatei310 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 Steuerungsidentifizierer618 , welcher verwendet wird, um Meldungen an den AISP134 zu senden und auf die entsprechenden Serverkomponenten136 zuzugreifen. Wenn der AISP134 anfänglich Zustandsdaten an den AICP114 überträgt, stellt der Steuerungscontainer den Zustand am Steuerobjekt624 während der Initialisierung ein. Der Steuerungscontainer empfängt auch Zustandsänderungsmeldungen während der Verbindungslebensdauer des Steuerobjekts624 und aktualisiert das Steuerobjekt624 dementsprechend. Wenn sich der Zustand des Steuerobjekts624 ändert, stellt der Steuerungscontainer die Änderung fest und sendet eine Zustandsänderungsmeldung über den AISP134 an das entsprechende Serverelement (unter Verwendung des Steuerungsidentifizierers618 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 Steuerobjekt624 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 Serverkomponente136 erzeugt, welche mit einem Client-Dialog verbunden ist. Der Komponenten-Container fügt eine Referenzzählung zur Serverkomponente136 hinzu, so dass sie während der Lebensdauer des entfernten Client-Dialogs nicht verloren geht. Für jedes Glied der Serverkomponente136 , welches an einer Verbindung mit einem Steuerobjekt624 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 Steuerobjekt624 beteiligt ist. Der Glieder-Container errechnet und speichert einen eindeutigen Steuerungsidentifizierer, welcher verwendet wird, um Meldungen an den AICP114 zu senden, um auf das korrekte Steuerobjekt624 zuzugreifen. Der Glieder- Container sendet während der Initialisierung des Dialogs auch Anfangszustandsinformation an das Steuerobjekt624 . Außerdem empfängt der Glieder-Container Datenänderungsmeldungen vom AICP114 und aktualisiert das entsprechende Glied der Serverkomponente136 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 Steuerungsidentifizierers618 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.
Claims (38)
- 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 ). - 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. - 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. - Verfahren nach Anspruch 3, wobei der Kommunikationskanal (
120 ) asynchron ist. - 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. - Verfahren nach Anspruch 5, wobei die Beschreibungsdatei (
310 ) im XML-Format ist. - 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. - 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. - Verfahren nach Anspruch 8, welches des Weiteren Erzeugen eines Container-Objekts für jede Anwendungskomponente (
136 ) und jedes Steuerobjekt (624 ) umfasst. - 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 ). - 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. - 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. - 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. - 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. - System nach Anspruch 14, wobei der Kommunikationskanal (
120 ) asynchron ist. - 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. - System nach Anspruch 16, wobei die Beschreibungsdatei (
310 ) im XML-Format ist. - 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. - 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. - System nach Anspruch 19, welches des Weiteren ein Container-Objekt für jede Anwendungskomponente (
136 ) und jedes Steuerobjekt (624 ) umfasst. - 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. - 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. - 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. - 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. - 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. - Server-Knoten nach Anspruch 25, wobei die Beschreibungsdatei (
310 ) im XML-Format ist. - 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. - Server-Knoten nach Anspruch 27, welcher des Weiteren ein Container-Objekt für jede Anwendungskomponente (
136 ) umfasst. - 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.
- 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.
- 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. - 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. - 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. - Client-Knoten nach Anspruch 33, wobei die Beschreibungsdatei (
310 ) im XML-Format ist. - 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. - Client-Knoten nach Anspruch 35, welcher des Weiteren ein Container-Objekt für jedes Steuerobjekt (
624 ) umfasst. - 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. - 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.
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)
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 | 株式会社半導体エネルギー研究所 | 半導体装置の作製方法 |
US7966078B2 (en) | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media 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 |
JP2004531780A (ja) * | 2000-06-22 | 2004-10-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 |
DK1312209T3 (en) * | 2000-08-25 | 2017-06-26 | Opentv Inc | Individualized remote control |
US7142934B2 (en) * | 2000-09-01 | 2006-11-28 | Universal Electronics Inc. | Audio converter device and method for using the same |
US7728838B2 (en) * | 2000-09-15 | 2010-06-01 | Invensys Systems, Inc. | Method and system for animating graphical user interface elements via a manufacturing/process control 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 |
US7051084B1 (en) * | 2000-11-02 | 2006-05-23 | Citrix Systems, Inc. | Methods and apparatus for regenerating and transmitting a partial page |
US7346842B1 (en) * | 2000-11-02 | 2008-03-18 | Citrix Systems, Inc. | Methods and apparatus for incorporating a partial page on a client |
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 |
US20020111995A1 (en) * | 2001-02-14 | 2002-08-15 | Mansour Peter M. | Platform-independent distributed user interface system architecture |
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 |
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 |
AU2002258769A1 (en) * | 2001-04-09 | 2002-10-21 | America Online Incorporated | 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 |
US20050120101A1 (en) * | 2001-06-11 | 2005-06-02 | David Nocera | Apparatus, method and article of manufacture for managing changes on a compute infrastructure |
JP4233775B2 (ja) * | 2001-07-06 | 2009-03-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ通信方法、データ通信システムおよびプログラム |
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 |
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 |
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 |
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 |
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 |
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 |
CN1757015B (zh) * | 2002-12-26 | 2010-11-10 | 捷讯研究有限公司 | 用于建立和执行平台-中性的普通服务客户应用程序的系统和方法 |
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 |
US7475125B2 (en) | 2003-11-24 | 2009-01-06 | Microsoft Corporation | Seamless discovery of workstation-installed remote applications from an extranet |
US7590713B2 (en) | 2003-11-24 | 2009-09-15 | Microsoft Corporation | Presenting a merged view of remote application shortcuts from multiple providers |
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 |
US7805523B2 (en) * | 2004-03-15 | 2010-09-28 | Mitchell David C | Method and apparatus for partial updating of client interfaces |
WO2005089338A2 (en) * | 2004-03-15 | 2005-09-29 | Bungee Labs, Inc. | Declarative computer programming language method and system |
US20050222937A1 (en) * | 2004-03-31 | 2005-10-06 | Coad Edward J | Automated customer exchange |
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 |
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 |
US20090132428A1 (en) * | 2004-11-15 | 2009-05-21 | Stephen Jeffrey Wolf | Method for creating and marketing a modifiable debt product |
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 |
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 |
CA2577244A1 (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 |
US20090189892A1 (en) * | 2008-01-27 | 2009-07-30 | Nitin Desai | Methods and systems for detecting a dirty region within a frame encompassing three dimensional graphics |
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 |
CN103492978B (zh) * | 2010-10-05 | 2017-02-15 | 西里克斯系统公司 | 用于远程化的应用的触摸支持 |
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 |
US9304662B2 (en) * | 2011-08-25 | 2016-04-05 | Vmware, Inc. | User interface virtualization techniques |
US9250854B2 (en) | 2011-08-25 | 2016-02-02 | Vmware, Inc. | User interface virtualization for remote devices |
US20140053234A1 (en) | 2011-10-11 | 2014-02-20 | Citrix Systems, Inc. | Policy-Based Application Management |
US9143530B2 (en) | 2011-10-11 | 2015-09-22 | Citrix Systems, Inc. | Secure container for protecting enterprise data on a mobile device |
US9280377B2 (en) | 2013-03-29 | 2016-03-08 | Citrix Systems, Inc. | Application with multiple operation modes |
US8806570B2 (en) | 2011-10-11 | 2014-08-12 | Citrix Systems, Inc. | Policy-based application management |
US9215225B2 (en) | 2013-03-29 | 2015-12-15 | Citrix Systems, Inc. | Mobile device locking with context |
US20140032733A1 (en) | 2011-10-11 | 2014-01-30 | Citrix Systems, Inc. | Policy-Based Application Management |
WO2013097895A1 (en) | 2011-12-28 | 2013-07-04 | Nokia Corporation | Provision of an open instance of an application |
WO2013097896A1 (en) * | 2011-12-28 | 2013-07-04 | Nokia Corporation | Application switcher |
US8996729B2 (en) | 2012-04-12 | 2015-03-31 | Nokia Corporation | Method and apparatus for synchronizing tasks performed by multiple devices |
US9542080B2 (en) | 2012-04-25 | 2017-01-10 | Vmware, Inc. | User interface virtualization of context menus |
KR20140012317A (ko) | 2012-07-19 | 2014-02-03 | 삼성전자주식회사 | 프로세스 전송 시스템, 프로세스 전송 서버의 프로세스 전송 방법, 및 클라이언트의 프로세스 처리 방법 |
US20140108558A1 (en) | 2012-10-12 | 2014-04-17 | Citrix Systems, Inc. | Application Management Framework for Secure Data Sharing in an Orchestration Framework for Connected Devices |
US9516022B2 (en) | 2012-10-14 | 2016-12-06 | Getgo, Inc. | Automated meeting room |
US20140109176A1 (en) | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Configuring and providing profiles that manage execution of mobile applications |
US8910239B2 (en) | 2012-10-15 | 2014-12-09 | Citrix Systems, Inc. | Providing virtualized private network tunnels |
US20140109171A1 (en) | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Providing Virtualized Private Network tunnels |
US20140109072A1 (en) | 2012-10-16 | 2014-04-17 | Citrix Systems, Inc. | Application wrapping for application management framework |
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 |
US9606774B2 (en) | 2012-10-16 | 2017-03-28 | Citrix Systems, Inc. | Wrapping an application with field-programmable business logic |
US8813179B1 (en) | 2013-03-29 | 2014-08-19 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US8910264B2 (en) | 2013-03-29 | 2014-12-09 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US9985850B2 (en) | 2013-03-29 | 2018-05-29 | Citrix Systems, Inc. | Providing mobile device management functionalities |
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 |
US9413736B2 (en) | 2013-03-29 | 2016-08-09 | Citrix Systems, Inc. | Providing an enterprise application store |
US8850049B1 (en) | 2013-03-29 | 2014-09-30 | Citrix Systems, Inc. | Providing mobile device management functionalities for a managed browser |
US10621276B2 (en) | 2013-10-24 | 2020-04-14 | Wmware, Inc. | User interface virtualization for web applications |
US9339159B2 (en) | 2014-06-13 | 2016-05-17 | Aerus Llc | Vacuum brush drive |
CN109257941B (zh) * | 2017-05-12 | 2020-05-22 | 苹果公司 | 用于数字助理的同步和任务委派的方法、电子设备和系统 |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
US11438452B1 (en) | 2019-08-09 | 2022-09-06 | Apple Inc. | Propagating context information in a privacy preserving manner |
Family Cites Families (137)
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 |
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 |
US5297283A (en) * | 1989-06-29 | 1994-03-22 | Digital Equipment Corporation | Object transferring 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 |
JPH09502547A (ja) * | 1992-11-13 | 1997-03-11 | マイクロソフト コーポレイション | 遠隔手続き呼び出しのためのインターフェイスポインタをマーシャリングする方法及びシステム |
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 |
US5701451A (en) | 1995-06-07 | 1997-12-23 | International Business Machines Corporation | Method for fulfilling requests of a web browser |
US5710918A (en) * | 1995-06-07 | 1998-01-20 | International Business Machines Corporation | Method for distributed task fulfillment of web browser requests |
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 |
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 |
US5944791A (en) * | 1996-10-04 | 1999-08-31 | Contigo Software Llc | Collaborative web browser |
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 |
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 |
US5978842A (en) | 1997-01-14 | 1999-11-02 | Netmind Technologies, Inc. | Distributed-client change-detection tool with change-detection augmented by multiple clients |
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 |
US5946697A (en) * | 1997-04-22 | 1999-08-31 | Microsoft Corporation | Rapid transfer of HTML files |
JPH10301874A (ja) | 1997-04-22 | 1998-11-13 | Internatl Business Mach Corp <Ibm> | 遠隔操作方法、ネットワークを介して端末から遠隔操作されるサーバ及びhtmlファイルを格納する記憶媒体 |
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 |
WO1999060504A1 (en) * | 1998-05-15 | 1999-11-25 | Unicast Communications Corporation | A technique for implementing browser-initiated network-distributed advertising and for interstitially displaying an advertisement |
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 |
AU2582401A (en) * | 1999-12-17 | 2001-06-25 | 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 | 半導体装置の製造方法 |
DE60121484T2 (de) * | 2000-07-17 | 2007-09-27 | Hitachi, Ltd. | Steuerungsverfahren und Steuerungssystem für ein Kraftfahrzeug |
AU2001278095A1 (en) * | 2000-07-31 | 2002-02-13 | James A. Starkey | Method and apparatus for generating web pages from templates |
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 |
US7051084B1 (en) * | 2000-11-02 | 2006-05-23 | Citrix Systems, Inc. | Methods and apparatus for regenerating and transmitting a partial page |
US7346842B1 (en) * | 2000-11-02 | 2008-03-18 | Citrix Systems, Inc. | Methods and apparatus for incorporating a partial page on a client |
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調整剤配合組成物 |
-
1999
- 1999-09-07 US US09/391,068 patent/US6356933B2/en not_active Expired - Lifetime
-
2000
- 2000-09-07 EP EP00961609A patent/EP1214667B1/de not_active Expired - Lifetime
- 2000-09-07 WO PCT/US2000/024492 patent/WO2001018691A2/en active IP Right Grant
- 2000-09-07 IL IL14846100A patent/IL148461A0/xx unknown
- 2000-09-07 DE DE60008555T patent/DE60008555T2/de not_active Expired - Lifetime
- 2000-09-07 ES ES00961609T patent/ES2219393T3/es not_active Expired - Lifetime
- 2000-09-07 KR KR1020027002964A patent/KR20020085873A/ko not_active Application Discontinuation
- 2000-09-07 AU AU73538/00A patent/AU7353800A/en not_active Abandoned
- 2000-09-07 CA CA002383849A patent/CA2383849A1/en not_active Abandoned
- 2000-09-07 JP JP2001522434A patent/JP2003509739A/ja not_active Withdrawn
-
2001
- 2001-11-02 US US10/004,199 patent/US6920480B2/en not_active Expired - Lifetime
-
2002
- 2002-10-16 HK HK02107520A patent/HK1046321A1/xx not_active IP Right Cessation
-
2005
- 2005-07-18 US US11/184,757 patent/US7596593B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20050251551A1 (en) | 2005-11-10 |
WO2001018691A3 (en) | 2002-01-10 |
AU7353800A (en) | 2001-04-10 |
US7596593B2 (en) | 2009-09-29 |
JP2003509739A (ja) | 2003-03-11 |
HK1046321A1 (en) | 2003-01-03 |
US20010042094A1 (en) | 2001-11-15 |
DE60008555D1 (de) | 2004-04-01 |
US20020116455A1 (en) | 2002-08-22 |
IL148461A0 (en) | 2002-09-12 |
CA2383849A1 (en) | 2001-03-15 |
KR20020085873A (ko) | 2002-11-16 |
EP1214667B1 (de) | 2004-02-25 |
EP1214667A2 (de) | 2002-06-19 |
US6356933B2 (en) | 2002-03-12 |
US6920480B2 (en) | 2005-07-19 |
ES2219393T3 (es) | 2004-12-01 |
WO2001018691A2 (en) | 2001-03-15 |
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 | |
DE69837508T2 (de) | Verfahren zum Inhaltswiederauffinden über ein Netzwerk | |
DE69637436T2 (de) | Objektorientiertes Kommunikationssystem mit Unterstützung für mehrere entfernte Maschinentypen | |
DE69819211T2 (de) | Verteilte interfacearchitektur einer programmierbaren industriellen steuerung | |
DE60132901T2 (de) | Internetzugriff zu geerbten anwendungen | |
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 | |
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 | |
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 |