DE112010004847T5 - Verwalteter Kanal für Asynchrone Anforderungen - Google Patents

Verwalteter Kanal für Asynchrone Anforderungen Download PDF

Info

Publication number
DE112010004847T5
DE112010004847T5 DE112010004847T DE112010004847T DE112010004847T5 DE 112010004847 T5 DE112010004847 T5 DE 112010004847T5 DE 112010004847 T DE112010004847 T DE 112010004847T DE 112010004847 T DE112010004847 T DE 112010004847T DE 112010004847 T5 DE112010004847 T5 DE 112010004847T5
Authority
DE
Germany
Prior art keywords
response
client
server
component
request
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.)
Pending
Application number
DE112010004847T
Other languages
English (en)
Inventor
Vincent Burckhardt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010004847T5 publication Critical patent/DE112010004847T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/542Intercept
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Vorrichtung und Verfahren zur Verwendung mit einem Datenverarbeitungssystem, wobei das Datenverarbeitungssystem einen Client und einen Server umfasst, welche Folgendes umfassen: eine Empfängerkomponente zum Empfangen eines Aufrufs von einer Client-Anwendung an ein erstes Verfahren eines Objekts und zum Empfangen einer Rückmeldung auf dem Kanal; eine Abfangkomponente zum Verpacken des Objekts, um einem zweiten Verfahren des verpackten Objekts einen verpackten Aufruf bereitzustellen, und zum Aufrufen einer Antwortenbehandlungsroutine; eine Client-Codierer-Komponente zum Umwandeln des verpackten Aufrufs in eine Nachricht; eine Client-Kanalverwalter-Komponente zum Einrichten eines Kanals zum Server; eine Senderkomponente zum Senden der Nachricht auf dem Kanal; eine Rückmeldungsdecodierer-Komponente zum Decodieren der Rückmeldung, um eine Antwort bereitzustellen; und die Senderkomponente außerdem zum Senden der Antwort an die Client-Anwendung.

Description

  • Technisches Gebiet
  • Die Erfindung betrifft Web-Anwendungen. Insbesondere betrifft die Erfindung eine Vorrichtung, ein Verfahren und ein Computerprogramm zum Verwalten asynchroner Anforderungen von einer Web-Anwendung.
  • Hintergrund der Erfindung
  • Durch Webclients ausgeführte Web-Anwendungen verwenden üblicherweise asynchrone Anforderungen, um von Webservern auf Ressourcen zuzugreifen. Asynchrone Anforderungen werden so verwendet, dass Web-Anwendungen im Hintergrund auf Ressourcen zugreifen können, ohne die bestehende Webseite zu beeinträchtigen.
  • Webbrowser begrenzen die Anzahl gleichzeitig ablaufender asynchroner Anforderungen, die durch eine Web-Anwendung ausgeführt werden können. In der Spezifikation der Hypertext-Transfer-Protocol-(HTTP-)Version 1.1 ist die Grenze auf zwei gleichzeitig ablaufende Anforderungen festgelegt. Ein Beispiel einer zum Realisieren asynchroner Anforderungen verwendeten Technologie ist Ajax (asynchronous JavaScript + Extensible Markup Language). Ajax-Anforderungen von einem Client können Daten asynchron im Hintergrund von einem Server abrufen, ohne eine bestehende Webseite zu beeinträchtigen.
  • Die Grenze hat bei aus Steuerelementen (ein Steuerelement (widget) ist ein Stück dynamischer Inhalt, das in eine Webseite gesetzt werden kann) erstellten Web-Anwendungen erhebliche Leistungseinbußen und Engpässe zur Folge. Steuerelemente können die durch die Browser bereitgestellte native Schnittstelle (zum Beispiel ein XMLHttpRequest-Objekt in JavaScript) verwenden, um über asynchrone Anforderungen Inhalt abzurufen. Die ein Steuerelement einbettende Web-Anwendung hat keine direkte Kontrolle über die durch das Steuerelement ausgeführte Logik und insbesondere darüber, ob das Steuerelement eine asynchrone Anforderung gestartet hat.
  • Weitere Beispiele für durch eine Grenze verursachte Leistungseinbußen sind: eine lange Reaktionszeit für eine Anforderung, die ein Browser in eine Warteschlange einreiht; und ein Überlauf der Anzahl von Anforderungen, wenn eine Webseite geladen wird. Die Grenze hat außerdem eine Unfähigkeit, für die Anforderungen eine Prioritätsstufe festzusetzen, zur Folge. Überdies sind Optimierungen nicht möglich, weil zwei oder mehr (ungefähr) gleichzeitig durch verschiedene Steuerelemente (oder verschiedene Instanzen ein und desselben Steuerelements) gesendete Anforderungen an dieselbe Ressource genauso wie unabhängige Anforderungen behandelt werden, wenn es möglich wäre, die Ressource nur einmal abzurufen.
  • Ein weiteres Beispiel einer durch die Grenze verursachten Leistungsminderung ist die für die Web-Anwendung bestehende Schwierigkeit, die Webbrowser-Warteschlange unter Kontrolle zu haben. Die Webbrowser-Anforderungswarteschlange ist geordnet, was bedeutet, dass eine lange Reaktionszeit bei einer augenblicklich durch den Webbrowser verarbeitet werdenden Anforderung dazu führen kann, dass der Webbrowser die nachfolgenden Anforderungen in die Warteschlange einreiht, bis die Antwort auf die augenblicklich verarbeitet werdende Anforderung empfangen wird, auch wenn die nachfolgenden Anforderungen möglicherweise viel schneller als die augenblicklich verarbeitet werdende Anforderung antworten könnten.
  • Die US-Patentanmeldung mit der Veröffentlichungsnummer US 2009/0144707 A1 offenbart ein Verfahren, System und Computerprogramm-Produkt zum wirkungsvollen Erfüllen von Java-Serverseiten-Anforderungen dynamischer Web-Inhalte. Ein Hilfsprogramm zur asynchronen Verarbeitung definiert eine Anzahl angepasster Klassen vor, um die asynchrone Verarbeitung von Anforderungen zu ermöglichen.
  • Deshalb besteht in diesem Fachgebiet ein Bedarf, das obengenannte Problem zu lösen.
  • Kurzbeschreibung der Erfindung
  • In einer ersten Sichtweise stellt die vorliegende Erfindung eine Client-Vorrichtung zur Verwendung mit einem Datenverarbeitungssystem bereit, welches Datenverarbeitungssystem einen Client und einen Server umfasst, wobei die Vorrichtung Folgendes umfasst: eine Empfängerkomponente zum Empfangen eines Aufrufs von einer Client-Anwendung an ein erstes Verfahren eines Objekts, wobei das erste Verfahren eine erste Anforderung an den Server umfasst und wobei die erste Anforderung eine erste Vielzahl von Attributen umfasst; eine auf das Empfangen des Aufrufs durch die Empfängerkomponente ansprechende Abfangkomponente zum Verpacken des Objekts, um einem zweiten Verfahren des verpackten Objekts einen verpackten Aufruf bereitzustellen, wobei das zweite Verfahren eine zweite Anforderung an den Server umfasst; eine auf das Verpacken des Objekts durch die Abfangkomponente ansprechende Client-Codierer-Komponente zum Umwandeln des verpackten Aufrufs in eine Nachricht, wobei die Nachricht die erste Vielzahl von Attributen umfasst; eine auf das Umwandeln der Anforderung durch die Client-Codierer-Komponente ansprechende, zum Einrichten eines Kanals zum Server dienende Client-Kanalverwalter-Komponente; und eine auf das Einrichten des Kanals durch den Client-Kanalverwalter ansprechende Senderkomponente zum Senden der Nachricht auf dem Kanal.
  • Vorzugsweise stellt die vorliegende Erfindung eine Client-Vorrichtung bereit, wobei die Client-Vorrichtung außerdem umfasst: die außerdem zum Empfangen einer Rückmeldung auf dem Kanal dienende Empfängerkomponente, wobei die Rückmeldung eine zweite Vielzahl von Attributen umfasst; eine auf das Empfangen der Rückmeldung durch die Empfängerkomponente ansprechende Rückmeldungsdecodierer-Komponente zum Decodieren der Rückmeldung, um eine Antwort bereitzustellen, wobei die Antwort die zweite Vielzahl von Attributen umfasst; die auf das Decodieren der Rückmeldung durch die Rückmeldungsdecodierer-Komponente ansprechende, außerdem zum Aufrufen einer Antwortenbehandlungsroutine dienende Abfangkomponente; und die auf das Aufrufen der Antwortenbehandlungsroutine ansprechende, außerdem zum Senden der Antwort an die Client-Anwendung dienende Senderkomponente.
  • Vorzugsweise stellt die vorliegende Erfindung eine Client-Vorrichtung bereit, wobei die Client-Vorrichtung in der Client-Anwendung betreibbar ist. Vorzugsweise stellt die vorliegende Erfindung eine Client-Vorrichtung bereit, wobei die Client-Vorrichtung in einem Webbrowser betreibbar ist.
  • In einer zweiten Sichtweise stellt die vorliegende Erfindung eine Server-Vorrichtung zur Verwendung mit einem Datenverarbeitungssystem bereit, welches Datenverarbeitungssystem einen Client und einen Server umfasst, wobei die Vorrichtung Folgendes umfasst: eine Server-Kanalverwalter-Komponente zum Empfangen einer Nachricht auf einem Kanal von einem Client, wobei die Nachricht eine erste Vielzahl von Attributen umfasst; eine auf das Empfangen der Nachricht durch die Server-Kanalverwalter-Komponente ansprechende Server-Decodierer-Komponente zum Decodieren der Nachricht, um eine Anforderung bereitzustellen, wobei die Anforderung die erste Vielzahl von Attributen umfasst; und eine auf das Bereitstellen der Anforderung zum Abrufen einer Antwort durch die Server-Decodierer-Komponente ansprechende Antwortenabrufer-Komponente zum Senden der Anforderung an eine Ressource.
  • Vorzugsweise stellt die vorliegende Erfindung eine Server-Vorrichtung bereit, wobei die Server-Vorrichtung außerdem umfasst: die außerdem zum Empfangen einer Antwort von der Ressource dienende Antwortenabrufer-Komponente, wobei die Antwort eine zweite Vielzahl von Attributen umfasst; eine auf das Empfangen der Antwort durch die Antwortenabrufer-Komponente ansprechende Antwortencodierer-Komponente zum Codieren der Antwort, um eine Rückmeldung bereitzustellen, wobei die Rückmeldung die zweite Vielzahl von Attributen umfasst; und die auf das Bereitstellen einer Rückmeldung durch die Antwortencodierer-Komponente ansprechende, außerdem zum Senden der Rückmeldung auf dem Kanal dienende Server-Kanalverwalter-Komponente.
  • In einer dritten Sichtweise stellt die vorliegende Erfindung ein Client-Verfahren zur Verwendung mit einem Datenverarbeitungssystem bereit, welches Datenverarbeitungssystem einen Client und einen Server umfasst, wobei das Verfahren die folgenden Schritte umfasst: das Empfangen eines Aufrufs von einer Client-Anwendung an ein erstes Verfahren eines ersten Objekts, wobei das erste Verfahren eine erste Anforderung an den Server umfasst und wobei die erste Anforderung eine erste Vielzahl von Attributen umfasst; auf das Empfangen des Aufrufs hin das Verpacken des Objekts, um einem zweiten Verfahren des verpackten Objekts einen verpackten Aufruf bereitzustellen, wobei das zweite Verfahren eine zweite Anforderung an den Server umfasst; auf das Verpacken des Objekts hin das Umwandeln des verpackten Aufrufs in eine Nachricht, wobei die Nachricht die erste Vielzahl von Attributen umfasst; auf das Umwandeln der Anforderung hin das Einrichten eines Kanals zum Server; und auf das Einrichten des Kanals hin das Senden der Nachricht auf dem Kanal.
  • Vorzugsweise stellt die vorliegende Erfindung ein Client-Verfahren bereit, wobei das Client-Verfahren außerdem die folgenden Schritte umfasst: das Empfangen einer Rückmeldung auf dem Kanal, wobei die Rückmeldung eine zweite Vielzahl von Attributen umfasst; auf das Empfangen der Rückmeldung hin das Decodieren der Rückmeldung, um eine Antwort bereitzustellen, wobei die Antwort die zweite Vielzahl von Attributen umfasst; auf das Decodieren der Rückmeldung hin das Aufrufen einer Antwortenbehandlungsroutine; und auf das Aufrufen der Antwortenbehandlungsroutine hin das Senden der Antwort an die Client-Anwendung.
  • Vorzugsweise stellt die vorliegende Erfindung ein Client-Verfahren bereit, wobei das Client-Verfahren in der Client-Anwendung ausführbar ist. Vorzugsweise stellt die vorliegende Erfindung ein Client-Verfahren bereit, wobei das Client-Verfahren in einem Webbrowser ausführbar ist.
  • In einer vierten Sichtweise stellt die vorliegende Erfindung ein Server-Verfahren zur Verwendung mit einem Datenverarbeitungssystem bereit, welches Datenverarbeitungssystem einen Client und einen Server umfasst, wobei das Verfahren die folgenden Schritte umfasst: das Empfangen einer Nachricht auf einem Kanal von einem Client, wobei die Nachricht eine erste Vielzahl von Attributen umfasst; auf das Empfangen der Nachricht hin das Decodieren der Nachricht, um eine Anforderung bereitzustellen, wobei die Anforderung die erste Vielzahl von Attributen umfasst; und auf das Bereitstellen der Anforderung zum Abrufen einer Antwort hin das Senden der Anforderung an eine Ressource.
  • Vorzugsweise stellt die vorliegende Erfindung ein Server-Verfahren bereit, wobei das Verfahren außerdem die folgenden Schritte umfasst: das Empfangen einer Antwort von der Ressource, wobei die Antwort eine zweite Vielzahl von Attributen umfasst; auf das Empfangen der Antwort hin das Codieren der Antwort, um eine Rückmeldung bereitzustellen, wobei die Rückmeldung die zweite Vielzahl von Attributen umfasst; und auf das Bereitstellen einer Rückmeldung hin das Senden der Rückmeldung auf dem Kanal.
  • In einer weiteren Sichtweise stellt die vorliegende Erfindung ein Systemprogramm bereit, das auf einem computerlesbaren Medium gespeichert ist und in den Teile von Software-Code enthaltenden internen Speicher einer digitalen Rechenanlage geladen werden kann, wenn das Programm, zum Ausführen der Schritte der Erfindung, auf einem Computer ausgeführt wird.
  • Vorteilhafterweise stellt die vorliegende Erfindung eine merkliche Verbesserung der Leistungsniveaus einer aus Fremd-Erweiterungen/-Steuerelementen, die ihre eigene clientseitige Logik wie Steuerelemente einbetten, bestehenden Web-Anwendung bereit.
  • Vorteilhafterweise gestattet die vorliegende Erfindung, alle durch die verschiedenen Komponenten/Steuerelemente auf der Seite erzeugten asynchronen Anforderungen über einen durch eine Web-Anwendung aufrechterhaltenen verwalteten Kanal zwischen einem Client und einem Server auf eine transparente Weise an Aufrufer weiterzuleiten. Diese Erfindung beinhaltet die clientseitigen und serverseitigen Mechanismen zum Erzeugen, Aufrechterhalten, Verwalten und Benutzen eines solchen Kanals zwischen dem Client und dem Server, um die asynchronen Anforderungen auf eine transparente Weise zu leiten. Der Kanal kann entweder permanent über eine „Comet”-Verbindung oder virtuell über eine Reihe aufeinanderfolgender kontrollierter Ajax-Anforderungen aufrechterhalten werden.
  • Ebenso vorteilhafterweise ist dieser Mechanismus für jede eine asynchrone Anforderung erzeugende Komponente verborgen, so dass die gleichen Ergebnisse geliefert werden, wie wenn dem Stand der Technik entsprechende native JavaScript-Objekte zum Senden der Ajax-Anforderungen verwendet werden. Deshalb sind keine Änderungen am Code der Web-Anwendung oder an irgendwelchen darin enthaltenen Fremd-Steuerelementen erforderlich. Eine Web-Anwendung kann die Webbrowser-Warteschlange umgehen und Anforderungen unmittelbar über einen permanenten Kanal an einen Webserver senden.
  • Vorteilhafterweise ist der Mechanismus auf jede Client-Anwendung, die Fremd-Skriptcode (zum Beispiel JavaScript-Code) enthält, und nicht nur auf „grafische” Steuerelemente anwendbar. Zum Beispiel auf ein Steuerelement, das Maße erfasst und die Daten an einen entfernten Server sendet.
  • Die Erfindung lässt sich auf jede Anwendung verallgemeinern, die eine Web-Komponente enthält, welche in der Lage ist, Logik über Skriptcode auszuführen, um asynchrone Anforderungen zu starten.
  • Kurzbeschreibung der Zeichnungen
  • Nun wird die vorliegende Erfindung, nur beispielhaft, unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, wie sie die folgenden Figuren veranschaulichen:
  • 1 ist ein Blockschaltbild, das ein Datenverarbeitungssystem gemäß dem Stand der Technik darstellt, in welchem eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann;
  • 2 ist ein Blockschaltbild, das eine dem Stand der Technik entsprechende Web-Anwendung darstellt;
  • 3 ist ein grober beispielhafter schematischer Ablaufplan, welcher zwecks Interaktion mit einer Server-Vorrichtung einer serverseitigen Web-Anwendung ausgeführte Arbeitsverfahrensschritte einer Client-Vorrichtung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung darstellt; und
  • 4 ist ein Blockschaltbild, das eine Client-Vorrichtung und eine Server-Vorrichtung darstellt, in welchen eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann.
  • Ausführliche Beschreibung der Erfindung
  • 1 ist ein Blockschaltbild, das ein Datenverarbeitungssystem 100 gemäß dem Stand der Technik darstellt, in welchem eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann. Ein Beispiel eines Datenverarbeitungssystems 100 ist das Internet. Ein Webbrowser 130 kann durch einen Benutzer 136 auf einem Datenverarbeitungssystem 100, das eine Arbeitsplatzstation 120 sowie Server 150 und 152 umfasst, betrieben werden. Die Arbeitsplatzstation 120 und die Server können über ein Netzwerk 114, welches drahtgebundene Netzwerke 110 umfassen kann, verbunden werden.
  • Üblicherweise kann auch ein Namenserver 152 mit dem Netzwerk 114 verbunden werden. Ein Namenserver 152 übersetzt einen Uniform Resource Locator (URL) in eine Internet-Protocol-(IP-)Adresse. Der Benutzer 136 greift auf das Internet zu, indem er mit dem auf einer Arbeitsplatzstation 120 betreibbaren Webbrowser 130 interagiert. Auch eine clientseitige Web-Anwendung 140 kann auf der Arbeitsplatzstation 120 unter Datenaustausch mit einer auf dem Server 150 ausführbaren serverseitigen Anwendung 170 ausgeführt werden. Die clientseitige Web-Anwendung 140 ist für den Benutzer 136 durch den Webbrowser 130 sichtbar. Die clientseitige Web-Anwendung 140 interagiert auch mit dem Webbrowser 130. Der Webbrowser 130 tauscht mit einem auf dem Server 150 betreibbaren Webserver 160 Daten aus. Der Webserver 160 interagiert mit der serverseitigen Web-Anwendung 170. Folglich interagiert die clientseitige Web-Anwendung 140 mit der serverseitigen Web-Anwendung 170.
  • 2 ist ein Blockschaltbild 200, das eine dem Stand der Technik entsprechende Web-Anwendung darstellt. Eine clientseitige Web-Anwendung 140, 240 umfasst Anwendungscode 242 und Fremd-Steuerelementecode 244. Ein Steuerelement 244 ist ein Element einer grafischen Benutzeroberfläche, das einen Interaktionspunkt für einen Benutzer 136 bereitstellt.
  • Der Anwendungscode 242 und der Fremd-Steuerelementecode 244 enthalten JavaScript-(JS-)Code. Zur Interaktion mit der serverseitigen Web-Anwendung 170, 270 nutzt der Code 242, 244 die Dokumentobjektmodell-(DOM-)Anwendungsprogrammierschnittstelle (API) 246 mit einem Verfahrensaufruf an ein XMLHttpRequest-(XHR-)Objekt (zum Beispiel ein „send()”- oder ein „open()”-Verfahren), um Anforderungen an einen Webserver 160, 260 zu senden. Ein „send()”-Aufruf vom Code 242, 244 ist ein Befehl, eine Anforderung 236 an den Webserver 160, 260 zu senden. Wenn mehr als eine bestimmte Anzahl von augenblicklich durch den Webbrowser 130, 230 verarbeitet werdenden Anforderungen 236 vorliegen, reiht der Webbrowser 130, 230 eine neue Anforderung 236 in eine geordnete Warteschlange 235 ein. Der Webbrowser 130, 230 sendet die Anforderung 236, sobald er eine Antwort 238 auf eine frühere Anforderung 236 vom Webserver 160, 260 zurückempfängt. Die Beschränkungen der geordneten Warteschlange 235 erzeugen Engpässe und Leistungsprobleme. Die Reihenfolge in der Warteschlange 235 beruht auf dem Windhundverfahren. Web-Anwendungen 140, 240 haben keinerlei Kontrolle über die Warteschlange 235 und erhalten auch keine Informationen über die Inhalte der Warteschlange 235. Sobald eine Antwort 238 empfangen wird, wird sie über das ursprünglich zum Senden der Anforderung verwendete XMLHttpRequest-Objekt an den aufrufenden Code 242, 244 zurückgeleitet.
  • Die Transaktion zwischen dem Browser 130, 230 und dem Webserver 160, 260 wird durch das XHR-Objekt verwaltet. Das XHR-Objekt ist das durch den Webbrowser 130, 260 bereitgestellte native Objekt, das dazu verwendet wird, asynchrone JavaScript- und XML-(Ajax-)Anforderungen in JavaScript an den Server zu senden.
  • 3, die zusammen mit 4 betrachtet werden sollte, ist ein grober beispielhafter schematischer Ablaufplan 300, welcher zwecks Interaktion mit einer Server-Vorrichtung 452 einer serverseitigen Web-Anwendung 170, 470 ausgeführte Arbeitsverfahrensschritte einer Client-Vorrichtung 450 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung darstellt. 4 zeigt ein Blockschaltbild 400, das eine Client-Vorrichtung 450 und eine Server-Vorrichtung 450, Web-Anwendungen 440, 470 darstellt, in welchen eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann.
  • 3 stellt einen Logik-Ablaufplan dar. Als solche sind die dargestellte Reihenfolge und die benannten Schritte für eine Ausführungsform des vorgestellten Verfahrens bezeichnend. Weitere Schritte und Verfahren können erdacht werden, welche in Funktion, Logik oder Wirkung einem oder mehreren Schritten oder Teilen von Schritten des veranschaulichten Verfahrens gleichwertig sind. Außerdem dienen das verwendete Format und die verwendeten Symbole dazu, die logischen Schritte des Verfahrens zu erläutern, und sind sie nicht als den Umfang des Verfahrens begrenzend zu verstehen.
  • Das Verfahren beginnt mit Schritt 301. Eine clientseitige Web-Anwendung 140, 440 umfasst Anwendungscode 442 und Fremd-Steuerelementecode 444. In Schritt 305 empfängt eine Abfangkomponente 455 der Client-Vorrichtung 450 vom Code 442, 444 einen Aufruf an ein XHR-Objekt, eine Anforderung an eine serverseitige Web-Anwendung 170, 470 zu senden. Der XHR-Objekt-Aufruf umfasst Attribute (zum Beispiel einen URL, Vorsätze und Inhalt).
  • In Schritt 305 erzeugt eine Abfangkomponente 455 vor einem ersten Aufruf an das native XHR-Objekt durch den Code 442, 444 eine Verpackung um das native XHR-Objekt. Das verpackte XHR-Objekt verfügt über die gleichen Verfahren wie das native XHR-Objekt. Das Verpacken des nativen XHR-Objekts gestattet der Abfangkomponente 455, alle Aufrufe an eines der Verfahren des nativen XHR-Objekts abzufangen. Alle Verfahren des nativen XHR-Objekts werden verpackt, um die durch den aufrufenden Code 442, 444 festgesetzten Anforderungsattribute aufzuzeichnen. Der aufrufende Code 442, 444 ruft das verpackte XHR-Objekt auf, wie wenn das native XHR-Objekt aufgerufen wird. Wenn der Code 442, 444 eines der Verfahren des nativen XHR-Objekts aufruft, fängt die Abfangkomponente 455 den Aufruf ab und ruft stattdessen eines der Verfahren des verpackten XHR-Objekts auf. Der Code 442, 444 hat keine Kenntnis von dem Mechanismus, den die Client-Vorrichtung 450 und die Server-Vorrichtung 452 verwenden, um die Anforderung weiterzuleiten.
  • In Schritt 310 empfängt die Abfangkomponente 455 der Client-Vorrichtung 450 vom Code 442, 444 einen Aufruf an das native XHR-Objekt, eine Anforderung an eine serverseitige Web-Anwendung 170, 470 zu senden. Der XHR-Objekt-Aufruf umfasst Attribute (zum Beispiel einen URL, Vorsätze und Inhalt).
  • In Schritt 315 ruft die Abfangkomponente 455 eine Client-Anforderungscodierer-Komponente 430 auf, wenn der Code 442, 444 eines der Verfahren des nativen XHR-Objekts aufruft. Der Ausdruck „eine Anforderung” bezieht sich auf einen Aufruf an eines der XHR-Verfahren, ein HTTP an einen Webserver 160 zu senden und eine Antwort des Webservers 160 direkt zurück in den aufrufenden Anwendungscode zu laden.
  • In Schritt 320 codiert die Client-Anforderungscodierer-Komponente 430 die Anforderungsattribute in einem bestimmten Format, so dass sie über einen permanenten Kanal oder einen halbpermanenten Kanal 445 gesendet werden können. Durch das Codieren der Anforderungsattribute wird eine Nachricht in dem bestimmten Format erzeugt, so dass die Nachricht über den Kanal 445 gesendet werden kann. Die Nachricht umfasst sämtliche Attribute der Anforderung.
  • In Schritt 325 richtet eine Client-Kanalverwalter-Komponente 440 einen Kanal 445 zu einer Server-Kanalverwalter-Komponente 465 in einem Server ein. Der Kanal 445 kann auf bestehenden Protokollen wie Bayeux beruhen. Bayeux ist ein Protokoll zum Übertragen asynchroner Nachrichten vor allem über HTTP mit kurzer Wartezeit zwischen einem Webserver. Ein Beispiel einer Umsetzung des Bayeux-Protokolls ist CometD. Der Kanal 445 ist eine einzelne Verbindung, über welche Informationen mehrerer Anforderungen oder Antworten in einem bestimmten Format ausgetauscht werden. In einer bevorzugten Ausführungsform wird der Kanal beim ersten Mal, dass eine Anforderung gesendet wird, erzeugt. Für alle nachfolgenden Anforderungen wird derselbe Kanal wiederverwendet.
  • In Schritt 330 empfängt die Server-Kanalverwalter-Komponente 465 die Nachricht. In Schritt 335 decodiert eine Server-Anforderungsdecodierer-Komponente 460 die Anforderungsattribute in der Nachricht, die über den Kanal 445 gesendet wurden. In Schritt 340 sendet eine Antwortenabrufer-Komponente 472 auf Grundlage der decodierten Attribute echte HTTP-Anforderungen entweder an eine lokale Ressource 474 der serverseitigen Web-Anwendung 470 oder an eine externe Quelle 480. In Schritt 345 empfängt die Antwortenabrufer-Komponente 472 von der lokalen Ressource 474 oder der externen Ressource 480 eine Antwort zurück. In Schritt 345 codiert die Antwortencodierer-Komponente 462 die Antwortattribute in einem bestimmten Format in eine Rückmeldung. In Schritt 355 sendet die Server-Kanalverwalter-Komponente 465 die Rückmeldung über den Kanal 445 an die Client-Kanalverwalter-Komponente 440. Als „Ressource” wird alles bezeichnet, was mittels einer HTTP-Anforderung abgerufen werden kann. Zum Beispiel kann eine Ressource eine statische Ressource oder ein Aufruf an eine Representational-State-Transfer-(REST-)API sein.
  • In Schritt 360 empfängt die Client-Kanalverwalter-Komponente 440 über den Kanal 445 die Rückmeldung, und in Schritt 365 ruft sie eine Rückmeldungsdecodierer-Komponente 435 auf. In Schritt 370 decodiert eine Antwortendecodierer-Komponente 435 die Rückmeldung in eine Antwort. In Schritt 380 ruft die Abfangkomponente 455 eine Antwortenbehandlungsroutine im aufrufenden Code 442, 444 auf. Die Antwortenbehandlungsroutine befindet sich im verpackten XHR-Objekt. Die Antwortenbehandlungsroutine stellt dem aufrufenden Code 442, 444 die Antwort genauso bereit, wie es das native XHR-Objekt gemacht hätte, so dass das Verfahren für den aufrufenden Code 442, 444 transparent ist.
  • Die Client-Anforderungscodierer-Komponente 430 setzt einen eindeutigen Nachrichten-Identifikationscode (ID) für die über den Kanal 445 gesendete Nachricht fest. Die Server-Vorrichtung 452 behält die Nachrichten-ID im Auge und setzt eine Zuordnungs-Rückmeldungs-ID in der Rückmeldung fest, welche der Nachrichtenanforderungs-ID entspricht, so dass die Client-Vorrichtung 450 zuordnen kann, welche Rückmeldung zu welcher über den Kanal 445 gesendeten Nachricht gehört.
  • Das Verfahren endet mit Schritt 399.
  • In einer bevorzugten Ausführungsform verpackt die Abfangkomponente 455 das native XHR-Objekt durch dynamisches Außerkraftsetzen der Eigenschaften/Verfahren dieses Objekts beim Laden der Seite.
  • Die Verfahren und Vorrichtungen eignen sich auch für Skriptsprache-(zum Beispiel JS-)Bibliotheken, welche die Weise, auf welche die Ajax-Anforderungen gesendet werden, abstrahieren, weil das XHR-Objekt immer als eine Grundlage zum Senden asynchroner Anforderungen verwendet wird.
  • Bayeux-Verfahren konzentrieren sich auf das Konzept anwendungsspezifischer Daten, die durch das Protokoll zwischen einem Browser und einem Server gesendet werden, wohingegen die Verfahren und Vorrichtungen einer vorliegenden Erfindung sich auf allgemeine asynchrone Anforderungen beziehen. Clientseitiger Code (zum Beispiel Client-Anwendungen, Steuerelemente 442, 444) nutzt ausdrücklich die Bayeux-Protokolle, wohingegen die vorliegende Erfindung eine transparente Weise, die Anforderung von Code 442, 444 zu kanalisieren, beschreibt. Jedoch kann das Bayeux-Protokoll für eine Realisierung der zugrundeliegenden Struktur dieses Patents verwendet werden.
  • In der bevorzugten Ausführungsform ist die Client-Vorrichtung 450 als JavaScript-Code in der Client-Web-Anwendung 440 realisiert. In einer alternativen Ausführungsform ist die Client-Vorrichtung 450 als Zusatzcode für den Webbrowser 130, 230 realisiert. In einer alternativen Ausführungsform ist die Client-Vorrichtung 450 als eine Abänderung am Kern-Quellcode des Webbrowsers 130, 230 realisiert.
  • In einer alternativen Ausführungsform wird das Verfahren auf das Abfangen weiterer nativer Objekte, welche Client-Anforderungen an einen Server starten, angewendet. Beispiele aus JavaScript sind: „script” zum Laden einer Skriptdatei; „iframe” zum Laden einer Seite; „img” zum Laden eines Bilds; und „link” zum Laden einer Stilvorlage von einem entfernten Server). Wie dem Fachmann klar ist, finden die Vorrichtungen und Verfahren auch bei weiteren Skriptsprachen für Client-Server-Interaktionen Anwendung, obwohl JavaScript zur Veranschaulichung einer bevorzugten Ausführungsform der Erfindung verwendet wurde.
  • Wie dem Fachmann klar ist, kann das Verfahren der bevorzugten Ausführungsformen der vorliegenden Erfindung ganz oder teilweise angemessen und zweckdienlich in einer Logikvorrichtung oder einer Vielzahl von Logikvorrichtungen verkörpert sein, welche zum Ausführen der Schritte des Verfahrens angeordnete Verknüpfungsglieder umfasst, und können solche Verknüpfungsglieder Hardware-Komponenten, Firmware-Komponenten oder eine Kombination daraus umfassen.
  • Man wird erkennen, dass das oben beschriebene Verfahren und die oben beschriebene Anordnung auch ganz oder teilweise in auf einem oder mehreren Prozessoren (in den Figuren nicht dargestellt) laufender Software angemessen ausgeführt werden können und dass die Software in Form eines oder mehrerer auf einem geeigneten Datenträger (ebenfalls in den Figuren nicht dargestellt) wie einer magnetischen oder optischen Speichereinheit oder dergleichen befindlicher Computerprogramm-Elemente bereitgestellt werden kann.
  • Um jeden Zweifel zu vermeiden, ist zu beachten, dass der Ausdruck „umfasst”, wie er hierin überall in der Beschreibung und in den Ansprüchen verwendet wird, nicht „besteht nur aus” bedeutet. Um jeden Zweifel zu vermeiden, ist ferner zu beachten, dass der Ausdruck „Kopieren einer Stelle an eine andere”, wie er hierin überall in der Beschreibung und in den Ansprüchen verwendet wird, „Kopieren des Dateninhalts einer Stelle an die andere Stelle” bedeutet.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 2009/0144707 A1 [0007]

Claims (13)

  1. Client-Vorrichtung zur Verwendung mit einem Datenverarbeitungssystem, welches Datenverarbeitungssystem einen Client und einen Server umfasst, wobei die Vorrichtung Folgendes umfasst: eine Empfängerkomponente zum Empfangen eines Aufrufs von einer Client-Anwendung an ein erstes Verfahren eines Objekts, wobei das erste Verfahren eine erste Anforderung an den Server umfasst und wobei die erste Anforderung eine erste Vielzahl von Attributen umfasst; eine auf das Empfangen des Aufrufs durch die Empfängerkomponente ansprechende Abfangkomponente zum Verpacken des Objekts, um einem zweiten Verfahren des verpackten Objekts einen verpackten Aufruf bereitzustellen, wobei das zweite Verfahren eine zweite Anforderung an den Server umfasst; eine auf das Verpacken des Objekts durch die Abfangkomponente ansprechende Client-Codierer-Komponente zum Umwandeln des verpackten Aufrufs in eine Nachricht, wobei die Nachricht die erste Vielzahl von Attributen umfasst; eine auf das Umwandeln der Anforderung durch die Client-Codierer-Komponente ansprechende Client-Kanalverwalter-Komponente zum Einrichten eines Kanals zum Server; und eine auf das Einrichten des Kanals durch den Client-Kanalverwalter ansprechende Senderkomponente zum Senden der Nachricht auf dem Kanal.
  2. Client-Vorrichtung nach Anspruch 1, wobei die Client-Vorrichtung außerdem umfasst: die außerdem zum Empfangen einer Rückmeldung auf dem Kanal dienende Empfängerkomponente, wobei die Rückmeldung eine zweite Vielzahl von Attributen umfasst; eine auf das Empfangen der Rückmeldung durch die Empfängerkomponente ansprechende Rückmeldungsdecodierer-Komponente zum Decodieren der Rückmeldung, um eine Antwort bereitzustellen, wobei die Antwort die zweite Vielzahl von Attributen umfasst; die auf das Decodieren der Rückmeldung durch die Rückmeldungsdecodierer-Komponente ansprechende, außerdem zum Aufrufen einer Antwortenbehandlungsroutine dienende Abfangkomponente; und die auf das Aufrufen der Antwortenbehandlungsroutine ansprechende, außerdem zum Senden der Antwort an die Client-Anwendung dienende Senderkomponente.
  3. Client-Vorrichtung nach einem der vorstehenden Ansprüche, wobei die Client-Vorrichtung in der Client-Anwendung betreibbar ist.
  4. Client-Vorrichtung nach Anspruch 1 oder 2, wobei die Client-Vorrichtung in einem Webbrowser betreibbar ist.
  5. Server-Vorrichtung zur Verwendung mit einem Datenverarbeitungssystem, welches Datenverarbeitungssystem einen Client und einen Server umfasst, wobei die Vorrichtung Folgendes umfasst: eine Server-Kanalverwalter-Komponente zum Empfangen einer Nachricht auf einem Kanal von einem Client, wobei die Nachricht eine erste Vielzahl von Attributen umfasst; eine auf das Empfangen der Nachricht durch die Server-Kanalverwalter-Komponente ansprechende Server-Decodierer-Komponente zum Decodieren der Nachricht, um eine Anforderung bereitzustellen, wobei die Anforderung die erste Vielzahl von Attributen umfasst; und eine auf das Bereitstellen der Anforderung zum Abrufen einer Antwort durch die Server-Decodierer-Komponente ansprechende Antwortenabrufer-Komponente zum Senden der Anforderung an eine Ressource.
  6. Server-Vorrichtung nach Anspruch 5, wobei die Server-Vorrichtung außerdem umfasst: die außerdem zum Empfangen einer Antwort von der Ressource dienende Antwortenabrufer-Komponente, wobei die Antwort eine zweite Vielzahl von Attributen umfasst; eine auf das Empfangen der Antwort durch die Antwortenabrufer-Komponente ansprechende Antwortencodierer-Komponente zum Codieren der Antwort, um eine Rückmeldung bereitzustellen, wobei die Rückmeldung die zweite Vielzahl von Attributen umfasst; und die auf das Bereitstellen einer Rückmeldung durch die Antwortencodierer-Komponente ansprechende, außerdem zum Senden der Rückmeldung auf dem Kanal dienende Server-Kanalverwalter-Komponente.
  7. Client-Verfahren zur Verwendung mit einem Datenverarbeitungssystem, welches Datenverarbeitungssystem einen Client und einen Server umfasst, wobei das Verfahren die folgenden Schritte umfasst: das Empfangen eines Aufrufs von einer Client-Anwendung an ein erstes Verfahren eines ersten Objekts, wobei das erste Verfahren eine erste Anforderung an den Server umfasst und wobei die erste Anforderung eine erste Vielzahl von Attributen umfasst; auf das Empfangen des Aufrufs hin das Verpacken des Objekts, um einem zweiten Verfahren des verpackten Objekts einen verpackten Aufruf bereitzustellen, wobei das zweite Verfahren eine zweite Anforderung an den Server umfasst; auf das Verpacken des Objekts hin das Umwandeln des verpackten Aufrufs in eine Nachricht, wobei die Nachricht die erste Vielzahl von Attributen umfasst; auf das Umwandeln der Anforderung hin das Einrichten eines Kanals zum Server; und auf das Einrichten des Kanals hin das Senden der Nachricht auf dem Kanal.
  8. Client-Verfahren nach Anspruch 7, wobei das Client-Verfahren außerdem die folgenden Schritte umfasst: das Empfangen einer Rückmeldung auf dem Kanal, wobei die Rückmeldung eine zweite Vielzahl von Attributen umfasst; auf das Empfangen der Rückmeldung hin das Decodieren der Rückmeldung, um eine Antwort bereitzustellen, wobei die Antwort die zweite Vielzahl von Attributen umfasst; auf das Decodieren der Rückmeldung hin das Aufrufen einer Antwortenbehandlungsroutine; und auf das Aufrufen der Antwortenbehandlungsroutine hin das Senden der Antwort an die Client-Anwendung.
  9. Client-Verfahren nach Anspruch 7 oder 8, wobei das Client-Verfahren in der Client-Anwendung ausführbar ist.
  10. Client-Verfahren nach Anspruch 7 oder 8, wobei das Client-Verfahren in einem Webbrowser ausführbar ist.
  11. Server-Verfahren zur Verwendung mit einem Datenverarbeitungssystem, welches Datenverarbeitungssystem einen Client und einen Server umfasst, wobei das Verfahren die folgenden Schritte umfasst: das Empfangen einer Nachricht auf einem Kanal von einem Client, wobei die Nachricht eine erste Vielzahl von Attributen umfasst; auf das Empfangen der Nachricht hin das Decodieren der Nachricht, um eine Anforderung bereitzustellen, wobei die Anforderung die erste Vielzahl von Attributen umfasst; und auf das Bereitstellen der Anforderung zum Abrufen einer Antwort hin das Senden der Anforderung an eine Ressource.
  12. Server-Verfahren nach Anspruch 11, wobei das Verfahren außerdem die folgenden Schritte umfasst: das Empfangen einer Antwort von der Ressource, wobei die Antwort eine zweite Vielzahl von Attributen umfasst; auf das Empfangen der Antwort hin das Codieren der Antwort, um eine Rückmeldung bereitzustellen, wobei die Rückmeldung die zweite Vielzahl von Attributen umfasst; und auf das Bereitstellen einer Rückmeldung hin das Senden der Rückmeldung auf dem Kanal.
  13. Systemprogramm, das auf einem computerlesbaren Medium gespeichert ist und in den Teile von Software-Code enthaltenden internen Speicher einer digitalen Rechenanlage geladen werden kann, wenn das Programm, zum Ausführen des Verfahrens nach einem der Ansprüche 7 bis 12, auf einem Computer ausgeführt wird.
DE112010004847T 2009-12-17 2010-11-23 Verwalteter Kanal für Asynchrone Anforderungen Pending DE112010004847T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP09179596 2009-12-17
EP091795963 2009-12-17
PCT/EP2010/068047 WO2011072993A1 (en) 2009-12-17 2010-11-23 Managed channel for asynchronous requests

Publications (1)

Publication Number Publication Date
DE112010004847T5 true DE112010004847T5 (de) 2012-11-08

Family

ID=43589619

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010004847T Pending DE112010004847T5 (de) 2009-12-17 2010-11-23 Verwalteter Kanal für Asynchrone Anforderungen

Country Status (5)

Country Link
US (1) US9176793B2 (de)
CN (1) CN102687116A (de)
DE (1) DE112010004847T5 (de)
GB (1) GB2499856A (de)
WO (1) WO2011072993A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5617709B2 (ja) 2011-03-16 2014-11-05 富士通株式会社 プログラム、制御装置および方法
US8595752B1 (en) * 2011-06-13 2013-11-26 Google Inc. Hybrid application message passing
US20130046878A1 (en) * 2011-08-15 2013-02-21 Lukas Fryc Asynchronous request interception for testing a request life-cycle
US20140337818A1 (en) * 2013-05-13 2014-11-13 2236008 Ontario Inc. System and method for forwarding a command stream
US20150067024A1 (en) * 2013-08-27 2015-03-05 Apple Inc. Autobatching
US10115174B2 (en) 2013-09-24 2018-10-30 2236008 Ontario Inc. System and method for forwarding an application user interface
US10976986B2 (en) 2013-09-24 2021-04-13 Blackberry Limited System and method for forwarding an application user interface
US8713100B1 (en) * 2013-12-11 2014-04-29 Michael L. Hamm Hybrid asynchronous transmission process
CN107493312B (zh) * 2016-06-12 2020-09-04 中国移动通信集团安徽有限公司 一种服务调用方法及装置
CN107872437B (zh) * 2016-09-27 2021-07-09 阿里巴巴集团控股有限公司 一种用于业务请求的方法、装置及服务器
CN108376092A (zh) * 2018-02-24 2018-08-07 金蝶软件(中国)有限公司 一种网页组件的控制方法及相关装置
CN112215563A (zh) * 2020-09-02 2021-01-12 贵阳朗玛信息技术股份有限公司 实现排班管理的响应管理器的装置及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090144707A1 (en) 2007-12-04 2009-06-04 Goff Robert E Method for client-side aggregation of asynchronous, context-sensitive request operations for java server pages (jsp)

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6164841A (en) * 1998-05-04 2000-12-26 Hewlett-Packard Company Method, apparatus, and product for dynamic software code translation system
US6742124B1 (en) * 2000-05-08 2004-05-25 Networks Associates Technology, Inc. Sequence-based anomaly detection using a distance matrix
US20040003093A1 (en) * 2002-03-27 2004-01-01 Netaphor Software, Inc. Method for providing asynchronous communication over a connected channel without keep-alives
US7574692B2 (en) * 2004-11-19 2009-08-11 Adrian Herscu Method for building component-software for execution in a standards-compliant programming environment
US7743245B2 (en) * 2005-03-10 2010-06-22 Intel Corporation Security protocols on incompatible transports
US20060047780A1 (en) * 2005-11-08 2006-03-02 Gregory Patnude Method and apparatus for web-based, schema-driven application-server and client-interface package using a generalized, data-object format and asynchronous communication methods without the use of a markup language.
US7788341B1 (en) * 2005-12-01 2010-08-31 Oracle America, Inc. Displaying results of server-side form validations without page refresh
US20070168979A1 (en) * 2005-12-30 2007-07-19 Intel Corporation Transparent debugging of programs in dynamic translation systems
US7725574B2 (en) * 2006-01-23 2010-05-25 International Business Machines Corporation Web browser-based programming language error determination and reporting
US20070300150A1 (en) * 2006-06-22 2007-12-27 Lantronix, Inc. Building rich web site applications with an embedded device
US7487201B1 (en) * 2006-06-30 2009-02-03 Sun Microsystems, Inc. Method and system for providing framework for Java based AJAX web applications
US8572202B2 (en) * 2006-08-22 2013-10-29 Yahoo! Inc. Persistent saving portal
US8150939B1 (en) * 2007-05-11 2012-04-03 Oracle America, Inc. Method and system for wrapping and componentizing javascript centric widgets using java components
US7747694B2 (en) * 2007-07-30 2010-06-29 Solace Systems, Inc. Low latency and assured delivery using HTTP
US8032587B2 (en) 2007-08-28 2011-10-04 International Business Machines Corporation Method and apparatus for client-side aggregation of asynchronous fragmented requests
EP2031820B1 (de) * 2007-08-31 2014-07-30 Alcatel Lucent Verfahren zur Anreicherung des Inhaltes einer Webseite mit Präsenzinformationen
US20090132998A1 (en) * 2007-11-16 2009-05-21 Microsoft Corporation Debugging multi-execution environment applications
US20090157859A1 (en) * 2007-12-17 2009-06-18 Morris Robert P Methods And Systems For Accessing A Resource Based On URN Scheme Modifiers
US8924845B2 (en) * 2008-02-20 2014-12-30 Lsi Corporation Web application code decoupling and user interaction performance
US7912927B2 (en) * 2008-03-26 2011-03-22 Microsoft Corporation Wait for ready state
US8910112B2 (en) * 2008-07-30 2014-12-09 Sap Ag Extended enterprise connector framework using direct web remoting (DWR)
US8203566B2 (en) * 2009-05-29 2012-06-19 Microsoft Corporation Fixed function pipeline application remoting through a shader pipeline conversion layer
US8140646B2 (en) * 2009-06-04 2012-03-20 Microsoft Corporation Network application performance enhancement using speculative execution
US8516471B2 (en) * 2009-10-06 2013-08-20 International Business Machines Corporation Detecting impact of operating system upgrades

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090144707A1 (en) 2007-12-04 2009-06-04 Goff Robert E Method for client-side aggregation of asynchronous, context-sensitive request operations for java server pages (jsp)

Also Published As

Publication number Publication date
US9176793B2 (en) 2015-11-03
US20120311024A1 (en) 2012-12-06
WO2011072993A1 (en) 2011-06-23
CN102687116A (zh) 2012-09-19
GB201204295D0 (en) 2012-04-25
GB2499856A (en) 2013-09-04

Similar Documents

Publication Publication Date Title
DE112010004847T5 (de) Verwalteter Kanal für Asynchrone Anforderungen
DE102012213795B4 (de) Durch einen Computer implementiertes Verfahren, das es einer Web-Anwendung ermöglicht, mindestens eine native Funktion einer mobilen Einheit aufzurufen
DE69731318T2 (de) Herstellen von kommunikationsverbindungen in einem computernetzwerk
DE69626535T2 (de) Verfahren und apparat zum serverunabhängigen cachen von dynamisch erstellten angepassten speicherseiten
DE60028561T2 (de) Bereitstellung von kundendiensten, die daten aus datenquellen abrufen, wobei die datenquellen die vom kunden geforderten formate nicht notwendigerweise unterstützen
DE10051024B4 (de) Verfahren zum intermediären Cachen in einem Client-Server-Softwaresystem, Computerprogrammprodukte und Computersystem zur Durchführung eines solchen Verfahrens
EP1559038B1 (de) Verfahren zum vorabübertragen strukturierter datenmengen zwischen einer clienteinrichtung und einer servereinrichtung
DE60208786T2 (de) Übertragungskontrolle für objekte in einem kommunikationsnetzwerk
DE69616839T2 (de) Web-server-mechanismus zur verarbeitung von funktionsaufrufen für dynamische datenabfragen in einer web-seite
DE69732605T2 (de) Dynamisches Cachespeicher-Vorladen über lose gekoppelte administrative Bereiche
CN105100294B (zh) 获取网页的方法、系统、网络服务器、浏览器和gslb
US20090150518A1 (en) Dynamic content assembly on edge-of-network servers in a content delivery network
US11252147B2 (en) Secure web application delivery platform
DE602004008887T2 (de) Verfahren und Server zur Bereitstellung eines multi-modalen Dialogs
DE102012216028A1 (de) Webseiten-skriptverwaltung
EP1369790A2 (de) Verfahren zur dynamischen Generierung strukturierter Dokumente
CN109710331A (zh) 一种从网页上调用本地应用程序的方法
DE19963981A1 (de) Verfahren und Vorrichtung zum Auffinden von Dokumenten unter Verwendung von Hyperlinks
DE10296648T5 (de) Methode für die Integration der elektronischen Post und der Web-Kommunikationen mit einem Benutzer
CN113094612A (zh) 客户端加载网页的方法、装置、电子设备及介质
DE10352400A1 (de) Netzwerkdienst-Abfangvorrichtung
DE102008004693A1 (de) Portabler Datenträger mit CAT-Interpreter
DE112021004695T5 (de) Umgang mit zurückstellbaren netzwerkanforderungen
CN104317819A (zh) 基于浏览器页面间跨域通信的方法和系统
EP3528473A1 (de) Verfahren, client-computer und computerprogramm zur ausführung von quellcode an einem client-computer

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009460000

Ipc: G06F0015163000

Effective date: 20120925

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R084 Declaration of willingness to licence