DE102012218528B4 - Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen - Google Patents

Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen Download PDF

Info

Publication number
DE102012218528B4
DE102012218528B4 DE102012218528.3A DE102012218528A DE102012218528B4 DE 102012218528 B4 DE102012218528 B4 DE 102012218528B4 DE 102012218528 A DE102012218528 A DE 102012218528A DE 102012218528 B4 DE102012218528 B4 DE 102012218528B4
Authority
DE
Germany
Prior art keywords
request
push
browser
server
http
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.)
Active
Application number
DE102012218528.3A
Other languages
English (en)
Other versions
DE102012218528A1 (de
Inventor
Erik John Burckart
Andrew J. Ivory
Aaron K. Shook
David M. Stecher
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 DE102012218528A1 publication Critical patent/DE102012218528A1/de
Application granted granted Critical
Publication of DE102012218528B4 publication Critical patent/DE102012218528B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Verfahren, aufweisend:- Empfangen einer Browser-Sendeabrufanforderung an einer Datenverarbeitungseinheit, wobei die Browser-Sendeabrufanforderung entweder eine Hypertext-Transfer-Protocol- (HTTP-) Anforderung oder eine Extensible-Markup-Language- (XML-) HTTP-Anforderung (XMLHttpRequest - XHR) aufweist;- Ermitteln, ob die HTTP-Anforderung oder die XHR der Browser-Sendeabrufanforderung durch eine Push-Benachrichtigung zu ersetzen ist, in Abhängigkeit davon, ob die Browser-Sendeabrufanforderung umfasst: eine dauerhafte Anfrage nach Aktualisierungen bei angefragten Daten über einen Zeitraum oder eine Anfrage, deren Beantwortung länger dauern wird als eine konfigurierte Zeit; und- Ersetzen HTTP-Anforderung oder der XHR der Browser-Sendeabrufanforderung durch die Push-Benachrichtigung als Reaktion auf das Feststellen, dass die Browser-Sendeabrufanforderung eine dauerhafte Anfrage nach Aktualisierungen bei angefragten Daten über einen Zeitraum oder eine Anfrage, deren Beantwortung länger als eine konfigurierte Zeit dauern wird, umfasst.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft das Verarbeiten von Web-Browser-Anforderungen. Insbesondere betrifft die vorliegende Erfindung das Verwenden von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen.
  • Ein von einer Datenverarbeitungseinheit ausgeführter Web-Browser öffnet eine Hypertext-Transfer-Protocol- (HTTP-) Verbindung mit einem Web-Server, um Daten von dem Web-Server anzufordern. Der Web-Server antwortet auf die Anforderung über die offene HTTP-Verbindung. Die HTTP-Verbindung kann geschlossen werden, nachdem die Antwort von dem Web-Server durch den Web-Browser an der Datenverarbeitungseinheit empfangen wurde.
  • Aus US 2007 / 0 192 325 A ist ein Kommunikationsprotokoll bekannt, nach dem Information bezüglich einer Ressource praktisch in Echtzeit an einen Empfänger übermittelt wird, der über eine erste HTTP-Anforderung die dauerhafte Übermittlung von Information anfordern kann.
  • Aus US 2006 / 0 168 139 A ist die asynchrone Verarbeitung von Anfragen bekannt.
  • Aus US 2004 / 0 199 665 A ist ein System zum Verschieben von Informationsinhalten von einer Quelle über ein Netzwerk zu einem mobilen Kommunikationsgerät bekannt.
  • Aus US 2008 / 0 168 130 A ist ein System bekannt, das zur Festlegung dient, ob synchrone oder asynchrone Ressourcen-Anfragen verschickt werden.
  • Aus US 2009 / 0 204 666 A ist ein Model für die Kommunikation zwischen Client und Server bekannt, bei dem z.B. auf das HTTP-Protokoll zurückgegriffen wird.
  • Ausgehend von diesem Stand der Technik stellt sich die Erfindung die Aufgabe, die Bearbeitung von Browser-Anforderungen bzw. genauer Browser-Sendeabrufanforderung effizienter zu machen.
  • Diese Aufgabe wird erfindungsgemäß gelöst durch das Verfahren nach Anspruch 1, das System nach Anspruch 8 und das Computerprogrammprodukt nach Anspruch 9. Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der Unteransprüche.
  • KURZE ZUSAMMENFASSUNG
  • Das erfindungsgemäße Verfahren enthält unter anderem als Merkmale das Empfangen einer Browser-Anforderung an einer Datenverarbeitungseinheit; das Ermitteln auf der Grundlage von Eigenschaften der Browser-Anforderung, ob die Browser-Anforderung durch eine Push-Benachrichtigung zu ersetzen ist; und das Ersetzen der Browser-Anforderung durch die Push-Benachrichtigung als Reaktion auf das Feststellen auf der Grundlage der Eigenschaften der Browser-Anforderung, dass die Browser-Anforderung durch die Push-Benachrichtigung zu ersetzen ist.
  • Das erfindungsgemäße System enthält ein Nachrichtenaustausch-Schnittstellenmodul und einen Prozessor, der so programmiert ist, dass er das erfindungsgemäße Verfahren durchführt.
  • Das erfindungsgemäße Computerprogrammprodukt enthält ein durch einen Computer lesbares Speichermedium, das durch einen Computer lesbaren Programmcode enthält, wobei der durch einen Computer lesbare Programmcode bei Ausführung auf einem Computer den Computer dazu veranlasst, das erfindungsgemäße Verfahren durchzuführen.
  • Figurenliste
  • Die Erfindung wird im folgenden anhand von Ausführungsbeispielen erläutert, wobei Bezug genommen wird auf die beigefügte Zeichnung.
    • 1 zeigt ein Blockschaltbild eines Beispiels einer Umsetzung eines Systems zur Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen gemäß einer Ausführungsform des vorliegenden Gegenstands;
    • 2 zeigt ein Blockschaltbild eines Beispiels einer Umsetzung eines Kernverarbeitungsmoduls, das in der Lage ist, mit der automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen in Zusammenhang stehende Arbeitsschritte gemäß einer Ausführungsform des vorliegenden Gegenstands durchzuführen;
    • 3 zeigt einen Nachrichtenablaufplan eines Beispiels einer Umsetzung eines von einer Client-Datenverarbeitungseinheit stammenden Datenaustauschs, der eine client-gesteuerte Verarbeitung zur Konfiguration der automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen gemäß einer Ausführungsform des vorliegenden Gegenstands unterstützt;
    • 4 zeigt einen Nachrichtenablaufplan eines Beispiels einer Umsetzung eines von einer Web-Server-Einheit stammenden Datenaustauschs, der eine server-gesteuerte Verarbeitung zur Konfiguration der automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen gemäß einer Ausführungsform des vorliegenden Gegenstands unterstützt;
    • 5 zeigt einen Ablaufplan eines Beispiels einer Umsetzung eines Prozesses zur automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen gemäß einer Ausführungsform des vorliegenden Gegenstands;
    • 6 zeigt einen Ablaufplan eines Beispiels einer Umsetzung eines Prozesses zur automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen an einer Client-Datenverarbeitungseinheit gemäß einer Ausführungsform des vorliegenden Gegenstands;
    • 7 zeigt einen Ablaufplan eines Beispiels einer Umsetzung eines Prozesses zur automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen an einer Push-Server-Einheit gemäß einer Ausführungsform des vorliegenden Gegenstands; und
    • 8 zeigt einen Ablaufplan eines Beispiels einer Umsetzung eines Prozesses zur automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen an einer Web-Server-Einheit gemäß einer Ausführungsform des vorliegenden Gegenstands.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Der hierin beschriebene Gegenstand stellt eine Technologie zum Verwenden von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen bereit. Push-Benachrichtigungen werden dazu verwendet, Web-Browser-Anforderungen/Antworten wie Hypertext-Transfer-Protocol- (HTTP-) Anforderungen oder Extensible-Markup-Language-HTTP-Anforderungen (XMLHttpRequest - XHR) sowie die entsprechenden Antworten zu ersetzen, so dass offene Verbindungen verringert werden können. Der vorliegende Gegenstand passt eine oder mehrere Datenverarbeitungseinheiten so an, dass sie Situationen erkennen, in denen es sich bei einer Anforderung entweder um eine dauerhafte Anforderung von Aktualisierungen handelt (z.B. „Keepalive“) oder in der es eine gewisse Zeit dauern kann, bis ein Web-Server eine Antwort formuliert und diese rückmeldet. In einer beliebigen derartigen Situation funktioniert der vorliegende Gegenstand so, dass er HTTP-Anforderungen oder XHRs umwandelt, damit diese über Push-Benachrichtigungen von einem Push-Server umgesetzt werden. Der vorliegende Gegenstand kann entweder auf einer Client-Datenverarbeitungseinheit oder auf einer Web-Servereinheit umgesetzt werden, um über die entsprechende Datenverarbeitungseinheit Situationen zu erkennen, in denen HTTP-Anforderungen oder XHRs in Push-Benachrichtigungen umgewandelt werden können, und um den entsprechenden Nachrichtenaustausch durchzuführen, um die Umwandlung umzusetzen und den Push-Server dazu zu veranlassen, die Ergebnisse der entsprechenden Anforderung an die Client-Datenverarbeitungseinheit zu senden, wie nachfolgend ausführlich beschrieben wird.
  • Hierin wird eine Vielfalt an möglichen Umsetzungen beschrieben. Eine Client-Einheit kann zum Beispiel entscheiden, eine HTTP-Anforderung, die normalerweise an einen Web-Server gesendet werden würde, in eine XHR-Anforderung umzuwandeln, die stattdessen an einen Push-Server gesendet wird, um den Push-Server anzuweisen, an den Web-Server eine HTTP-Anforderung auszugeben, und um den Push-Server anzuweisen, an die Client-Einheit eine Push-Benachrichtigung mit den angeforderten Daten auszugeben, wenn die angeforderten Daten von dem Web-Server erhalten werden. Alternativ kann die Client-Einheit eine HTTP-Anforderung oder eine XHR-Anforderung an einen Web-Server ausgeben. Der Web-Server kann die HTTP-Anforderung oder die XHR-Anforderung über eine offene HTTP-Verbindung empfangen und ableiten, dass eine Push-Benachrichtigung verwendet werden kann, um die ausstehende Anforderung zu ersetzen. Der Web-Server kann den Web-Browser anweisen, die offene HTTP-Verbindung zu schließen, und angeben, dass der Web-Server die angeforderten Daten mit Push-Operation übertragen wird, wenn die Daten verfügbar sind. Als solcher kann der vorliegende Gegenstand in einer Vielfalt von Weisen umgesetzt werden, um Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen zu verwenden.
  • Zum Zweck der vorliegenden Beschreibung werden HTTP- und/oder XHR-Anforderungen und HTTP-Verbindungen beispielhaft für Web-Browser-Anforderungen bzw. Web-Browser-Verbindungen verwendet. Es sollte jedoch klar sein, dass die vorliegende Technologie ohne Abweichung von dem Umfang des vorliegenden Gegenstands auf jede beliebige Art von Web-Browser-Anforderungen und Web-Browser-Verbindungen angewendet werden kann. Des Weiteren können Push-Benachrichtigungen wie hierin beschrieben in jedem beliebigen Format umgesetzt werden, das für eine gegebene Umsetzung geeignet ist. Entsprechend wird jede beliebige Art von Push-Benachrichtigung als sich innerhalb des Umfangs des vorliegenden Gegenstands befindlich angesehen.
  • Unter weiterer Bezugnahme auf eine Client-Einheit, die eine HTTP- oder XHR-Anforderung an einen Web-Server sendet, kann der Web-Server bei einer Umsetzung, in der ein Web-Server feststellt, dass eine Push-Benachrichtigung zum Ersetzen der ausstehenden Anforderung verwendet werden kann, eine Push-Kennung (ID) an die Client-Einheit senden, mit der Anweisung, die HTTP-Verbindung zu schließen. Die Client-Einheit weist eine oder mehrere RückrufFunktionen/Routinen zu, die als Reaktion auf das Empfangen einer anschließenden, die Push-ID enthaltenden Push-Benachrichtigung aufzurufen ist. Die Client-Einheit verwendet die Push-ID zum Registrieren der zugewiesenen Rückruffunktion(en). Der Web-Server kann anfordern, dass ein Push-Server eine Push-Benachrichtigung an die Client-Einheit ausgibt, welche die angeforderten Daten und die Push-ID enthält. Als Reaktion auf das Empfangen der Push-Benachrichtigung kann die Client-Einheit die zugewiesene(n) Rückruffunktion(en) unter Verwendung der Push-ID nachschlagen und die zugewiesene(n) Rückruffunktion(en) aufrufen, um die angeforderten und empfangenen Daten zu verarbeiten. Die Push-ID kann zum Beispiel einen Hash-Wert eines Zeitstempels, wann die Anforderung durch den Web-Server empfangen wurde, eine numerische Kennung, eine alphanumerische Kennung oder jede beliebige andere für eine gegebene Umsetzung geeignete Kennung aufweisen.
  • Außerdem können für periodische oder auf der Änderung eines Zustands beruhende Datenanforderungen wie Sportergebnisse, Aktienkurse, Daten-Abonnement-Anforderungen oder andere Formen von periodischen oder auf der Änderung eines Zustands beruhende Datenanforderungen andauernde Push-Benachrichtigungen konfiguriert werden, um einen Push-Server dazu zu veranlassen, zusätzliche Push-Benachrichtigungen mit Datenaktualisierungen von der entsprechenden Datenquelle in einem gegebenen periodischen Intervall oder als Reaktion auf Statusänderungs- oder Datenänderungsereignisse auszugeben. Außerdem können für Verbindungsanforderungen mit zeitlich festgelegter Dauer wie Anforderungen, auf Grund derer Daten in einem Zeitraum angefordert werden (z.B. Keep-alive-Verbindungsanforderungen), Push-Benachrichtigungen konfiguriert werden, um einen Push-Server dazu zu veranlassen, Push-Benachrichtigungen mit Datenaktualisierungen von der entsprechenden Datenquelle bei jeder Aktualisierung auszugeben, die während des konfigurierten Zeitraums verfügbar ist. Es gibt viele andere Möglichkeiten zur Verbesserung der Verwendung von Web-Browser-Verbindungen unter Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen, und sämtliche derartige Möglichkeiten werden als sich innerhalb des Umfangs des vorliegenden Gegenstands angesehen.
  • Es sei angemerkt, dass sich die Konzeption des vorliegenden Gegenstands aus der Erkennung bestimmter Einschränkungen ergab, die mit der herkömmlichen Verwendung von HTTP-Verbindungen in Zusammenhang stehen. Man hat zum Beispiel erkannt, dass die herkömmliche Verwendung von HTTP-Verbindungen dazu führt, dass viele HTTP-Verbindungen längere Zeiträume offen sind, zum Beispiel wenn Daten nicht unverzüglich von einem Web-Server verfügbar sind, oder wenn periodische Aktualisierungen von einem Web-Server über eine offene HTTP-Verbindung angefordert werden. Der vorliegende Gegenstand verbessert die Verwendung von HTTP-Verbindungen durch das automatische Erkennen durch eine Datenverarbeitungseinheit, wenn eine Push-Benachrichtigung zum Ersetzen einer HTTP-Verbindung verwendet werden kann, und durch das Verwenden einer oder mehrerer Push-Benachrichtigungen zur Bereitstellung der von einer Client-Datenverarbeitungseinheit angeforderten Daten an Stelle der HTTP-Verbindung, wie oben sowie nachfolgend ausführlicher beschrieben ist. Als solche kann man eine geringere und verbesserte Verwendung von HTTP-Verbindungen erlangen, indem Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen verwendet werden, wie hierin beschrieben ist.
  • Die hierin beschriebene automatisierte Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen kann in Echtzeit durchgeführt werden, um eine sofortige Verringerung der Browser-Verbindungen zu ermöglichen. Zum Zweck der vorliegenden Beschreibung soll Echtzeit jeden beliebigen Zeitrahmen von ausreichend kurzer Dauer beinhalten, um eine angemessen kurze Antwortzeit für die Informationsverarbeitung bereitzustellen, die für einen Benutzer des beschriebenen Gegenstands annehmbar ist. Außerdem soll der Begriff „Echtzeit“ auch den allgemeinen Begriff „nahezu Echtzeit“ beinhalten - was allgemein jeden beliebigen Zeitrahmen von ausreichend kurzer Dauer beinhaltet, um eine angemessen kurze Antwortzeit für die Informationsverarbeitung auf Anforderung bereitzustellen, die für einen Benutzer des beschriebenen Gegenstands annehmbar ist (z.B. innerhalb eines Bruchteils einer Sekunde oder innerhalb von ein paar Sekunden). Es ist zwar schwierig, diese Begriffe genau zu definieren, aber einem Fachmann sind sie bestens bekannt.
  • 1 zeigt ein Blockschaltbild eines Beispiels einer Umsetzung eines Systems 100 zur Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen. Eine Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 tauscht über ein Netzwerk 106 Daten mit einem Server 108 und einem Push-Server 110 aus. Die Datenverarbeitungseinheiten 102 bis 104 können zum Zweck der vorliegenden Beschreibung als Client-Datenverarbeitungseinheiten angesehen werden.
  • Wie nachfolgend ausführlicher in Verbindung mit den 2 bis 8 beschrieben wird, arbeiten jede der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104, der Server 108 sowie der Push-Server 110 zusammen, um die automatisierte Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen bereitzustellen. Die automatisierte Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen beruht auf der Erkennung von Situationen durch einen Computer, in denen Web-Browser-Verbindungen wie HTTP-Verbindungen oder XHR-Verbindungen für das Bereitstellen von Daten an Client-Einheiten wie die Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 als Antworten auf Browser-Anforderungen durch Push-Benachrichtigungen ersetzt werden können.
  • Es sei angemerkt, dass es sich bei der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 um tragbare Datenverarbeitungseinheiten handeln kann, entweder dadurch, dass ein Benutzer in der Lage ist, die entsprechende Datenverarbeitungseinheit an verschiedene Orte zu bringen, oder durch die entsprechende Zugehörigkeit der Datenverarbeitungseinheit zu einer portablen Plattform wie einem Flugzeug, einem Zug, einem Automobil oder einem anderen sich bewegenden Fahrzeug. Es sei auch angemerkt, dass es sich bei der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 um jede beliebige Datenverarbeitungseinheit handeln kann, die in der Lage ist, Daten wie oben und nachfolgend ausführlicher beschrieben zu verarbeiten. Zu der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 können zum Beispiel Geräte wie ein Personal Computer (z.B. ein Desktop-Computer, ein Laptop-Computer usw.) oder ein Handheld-Computer (z.B. ein Mobiltelefon, ein elektronischer Assistent (PDA, personal digital assistant), eine E-Mail-Einheit, ein Musikaufnahme- oder -wiedergabegerät usw.) oder jede beliebige andere Einheit, die in der Lage ist, Daten wie nachfolgend ausführlicher beschrieben zu verarbeiten.
  • Das Netzwerk 106 kann jede beliebige Form von Verbindungen aufweisen, die für den beabsichtigten Zweck geeignet sind, darunter ein privates oder öffentliches Netzwerk wie ein Intranet bzw. das Internet, eine direkte Verbindung zwischen Modulen, Einwahl, drahtlos oder jeder beliebige andere Verbindungsmechanismus, der in der Lage ist, die entsprechenden Einheiten miteinander zu verbinden.
  • Als Server 108 kommt jede beliebige Einheit in Betracht, die in der Lage ist, über ein Netzwerk wie das Netzwerk 106 Daten zum Verbrauch durch eine Einheit wie die Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 bereitzustellen. Als solche können zu dem Server 108 ein Web-Server, ein Anwendungsserver oder eine sonstige Datenservereinheit gehören. Als Push-Server 110 kommt jede beliebige Einheit infrage, die in der Lage ist, Client-Einheiten wie der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 Push-Benachrichtigungen mit von dem Server 108 erhaltenen Daten bereitzustellen.
  • 2 zeigt ein Blockschaltbild eines Beispiels einer Umsetzung eines Kernverarbeitungsmoduls 200, das in der Lage ist, mit der automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen in Zusammenhang stehende Arbeitsschritte durchzuführen. Das Kernverarbeitungsmodul 200 kann entweder der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104, dem Server 108 oder dem Push-Server 110 zugehörig sein. Die entsprechenden Module sind innerhalb der vorliegenden Beschreibung der Kürze halber in Verbindung mit dem Kernverarbeitungsmodul 200 beschrieben. Es wird jedoch darauf hingewiesen, dass das Kernverarbeitungsmodul 200 innerhalb jeder entsprechenden Einheit, wie jeweils für die gegebene Umsetzung zutreffend, unterschiedlich umgesetzt werden kann. Ferner kann das Kernverarbeitungsmodul 200 eine andere und ergänzende Verarbeitung zur Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen in Verbindung mit der jeweiligen Umsetzung bereitstellen, wie nachfolgend ausführlicher beschrieben wird. Als solches sei für jedes beliebige der nachfolgenden Beispiele darauf hingewiesen, dass jeder beliebige in Bezug auf eine beliebige Einheit beschriebene Aspekt von Funktionalität, der in Verbindung mit einer anderen Einheit beschrieben wird (z.B. sendet/Senden usw.), so aufzufassen ist, dass er gleichzeitig die Funktionalität der entsprechenden anderen Einheit beschreibt (z.B. empfängt/Empfangen usw.).
  • Eine Zentraleinheit (CPU) 202 stellt das Ausführen von Computeranweisungen, die Berechnung und andere Funktionen innerhalb des Kernverarbeitungsmoduls 200 bereit. Eine Anzeige 204 stellt einem Benutzer des Kernverarbeitungsmoduls 200 visuelle Informationen bereit, und eine Eingabeeinheit 206 stellt dem Benutzer Möglichkeiten zur Eingabe bereit.
  • Bei der Anzeige 204 kann es sich um eine Anzeigeeinheit wie eine Kathodenstrahlröhre (CRT), eine Flüssigkristallanzeige (LCD), eine Leuchtdiode (LED), Anzeigen mit elektronischer Tinte (electronic ink displays), Projektion, einen Touchscreen oder ein sonstiges Anzeigeelement oder -feld handeln. Zu der Eingabeeinheit 206 können eine Computertastatur, ein Ziffernblock, eine Maus, ein Stift, ein Joystick oder jede beliebige andere Art von Eingabeeinheit gehören, mit welcher der Benutzer Daten austauschen und auf Informationen auf der Anzeige 204 reagieren kann.
  • Es sei angemerkt, dass die Anzeige 204 und die Eingabeeinheit 206 innerhalb 2 in einer gestrichelten Liniendarstellung veranschaulicht sind, um anzuzeigen, dass sie für bestimmte Umsetzungen optionale Komponenten des Kernverarbeitungsmoduls 200 sein können. Entsprechend kann das Kernverarbeitungsmodul 200 als vollständig automatisierte eingebettete Einheit ohne direkte Konfigurierbarkeit für oder Rückmeldungen an den Benutzer arbeiten. Das Kernverarbeitungsmodul 200 kann jedoch auch Rückmeldungen an Benutzer und Konfigurierbarkeit über die Anzeige 204 bzw. die Eingabeeinheit 206 bereitstellen. Zum Beispiel können die Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 jeweils die Anzeige 204 und die Eingabeeinheit 206 zur Verwendung in Verbindung mit einem Web-Browser aufweisen, während der Server 108 und die Push-Server 110 ohne direkte Konfigurierbarkeit für oder Rückmeldungen an den Benutzer fernkonfigurierbar sein können, oder jede Einheit kann die Anzeige 204 und die Eingabeeinheit 206 aufweisen, wie jeweils für die gegebene Umsetzung zutreffend ist.
  • Ein Kommunikationsmodul 208 stellt Anschlussfunktionen bereit, die es dem Kernverarbeitungsmodul 200 ermöglichen, mit anderen Modulen innerhalb des Systems 100 Daten auszutauschen, um Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen zu verwenden. Das Kommunikationsmodul 208 kann zum Zweck der vorliegenden Beschreibung als „Nachrichtenaustauschschnittstelle“ oder Nachrichtenaustausch-Schnittstellen-Modul angesehen werden. Das Kommunikationsmodul 208 kann alle beliebigen elektrischen, Protokoll- und Protokollumwandlungsfunktionen aufweisen, die zur Bereitstellung der Anschlussmöglichkeiten verwendet werden können. Obwohl das Kommunikationsmodul 208 der leichteren Veranschaulichung und Beschreibung halber als Modul auf Komponentenebene veranschaulicht ist, sei angemerkt, dass das Kommunikationsmodul 208 jede(n) beliebige(n) Hardware, programmierte(n) Prozessor(en) und Speicher enthalten kann, die zum Ausführen der oben sowie unten ausführlicher beschriebenen Funktionen des Kommunikationsmoduls 208 verwendet werden. Das Kommunikationsmodul 208 kann zum Beispiel zusätzliche Controller-Schaltungen in Form von anwendungsspezifischen integrierten Schaltungen (ASICs), Prozessoren, Antennen und/oder einzelnen integrierten Schaltungen und Komponenten zur Durchführung von mit dem Kommunikationsmodul 208 in Zusammenhang stehenden Datenübertragungs- und elektrischen Steueraktivitäten aufweisen. Außerdem kann das Kommunikationsmodul 208, wie jeweils zutreffend, Module auf Interrupt-, Stack- und Anwendungsebene aufweisen. Des Weiteren kann das Kommunikationsmodul 208 alle beliebigen Speicherkomponenten aufweisen, die zur Speicherung, zur Ausführung und zur Datenverarbeitung zur Durchführung von mit dem Kommunikationsmodul 208 in Zusammenhang stehenden Verarbeitungsaktivitäten verwendet werden. Das Kommunikationsmodul 208 kann ohne Abweichung von dem Umfang des vorliegenden Gegenstands auch Teil einer anderen beschriebenen Schaltung sein.
  • Zu einem Speicher 210 gehört ein Datenspeicherbereich 212, der Daten innerhalb des Kernverarbeitungsmoduls 200 speichert. Zur Umsetzung des Kernverarbeitungsmoduls 200 an dem Server 108 kann der Datenspeicherbereich 212 Daten zum Abrufen durch entweder den Push-Server 110 oder die Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 speichern. Zur Umsetzung des Kernverarbeitungsmoduls 200 an dem Push-Server 110 kann der Datenspeicherbereich 212 von dem Server 108 abgerufene Daten zum Bereitstellen an eine der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 speichern. Zur Umsetzung des Kernverarbeitungsmoduls 200 an einer der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 kann der Datenspeicherbereich 212 von dem Push-Server 110 abgerufene/erhaltene Daten zum Bereitstellen speichern, wie nachfolgend ausführlicher beschrieben wird.
  • Der Speicher 210 enthält auch einen Web-Browser 214, der durch die Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 innerhalb des in Zusammenhang mit Client-Einheiten umgesetzten Kernverarbeitungsmoduls 200 ausgeführt werden kann. Der Web-Browser 214 kann jede beliebige Web-Browser-Anwendung enthalten, die für eine gegebene Umsetzung geeignet ist.
  • Der Web-Browser 214 ist so gezeigt, dass er eine Web-Anwendung 216 enthält. Die Web-Anwendung 216 kann von einem Server wie dem Server 108 über den Push-Server 110 oder anderweitig erhaltenen ausführbaren Code enthalten. Die Web-Anwendung kann ausführbaren, in Java®-Programmiersprache ausgeführten oder in JavaScript® ausgeführten Anwendungscode oder sonstigen ausführbaren Code enthalten, der heruntergeladen und innerhalb des Web-Browsers 214 ausgeführt werden kann, wie für eine gegebene Umsetzung geeignet ist.
  • Der Web-Browser 214 ist auch so gezeigt, dass er eine Browser-Implementierung 218 enthält. Die Browser-Implementierung 218 stellt einen Betriebssystem- (OS-) umsetzungsspezifischen Teil des Web-Browsers 214 dar.
  • Der Web-Browser 214 ist innerhalb der 2 auch in einer gestrichelten Liniendarstellung veranschaulicht, um zu zeigen, dass er den Datenverarbeitungseinheiten 102 bis 104 zugehörig sein kann. Die Web-Anwendung 216 ist in einer durchgängigen Liniendarstellung veranschaulicht, um zu zeigen, dass sie von dem Server 108 und/oder dem Push-Server 110 heruntergeladen werden kann. Die Browser-Implementierung 216 ist in einer gestrichelten Liniendarstellung veranschaulicht, um zu zeigen, dass sie den Datenverarbeitungseinheiten 102 bis 104 zugehörig sein kann und beruhend auf dem durch die entsprechende Client-Datenverarbeitungseinheit ausgeführten Betriebssystem ausgewählt werden kann.
  • Ein Betriebssystem 220 wird durch die CPU 202 zur Betriebssteuerung innerhalb des Kernverarbeitungsmoduls 200 ausgeführt. Bei dem Betriebssystem 220 kann es sich um jedes beliebige Betriebssystem handeln, das zur Umsetzung des Kernverarbeitungsmoduls 200 innerhalb der entsprechenden Umsetzung der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104, des Servers 108 und des Push-Servers 110 geeignet ist. Eine Schnittstelle über das Betriebssystem 220 mit der Browser-Implementierung 218, zum Beispiel für den Nachrichtenaustausch von der Web-Anwendung 216 aus, kann zum Zweck der vorliegenden Beschreibung zusätzlich zu dem Kommunikationsmodul 208 für externe, von anderen Einheiten (z.B. dem Server 108 und dem Push-Server 110) empfangene Datenübertragungen als „Nachrichtenaustauschschnittstelle“ oder Nachrichtenaustausch-Schnittstellen-Modul angesehen werden.
  • Es wird darauf hingewiesen, dass der Speicher 210 jede beliebige Kombination aus flüchtigen und nichtflüchtigen Speichern enthalten kann, die für den beabsichtigten Zweck geeignet und wie jeweils zutreffend verteilt oder lokalisiert sind, und andere, einer einfachen Veranschaulichung halber nicht innerhalb des vorliegenden Beispiels veranschaulichte Speicherelemente enthalten kann. Der Speicher 210 kann zum Beispiel ohne Abweichung von dem Umfang des vorliegenden Gegenstands einen Codespeicherbereich, einen Codeausführungsbereich und einen Datenbereich aufweisen.
  • Es wird auch ein Push-Benachrichtigungsverarbeitungsmodul 222 veranschaulicht. Das Push-Benachrichtigungsverarbeitungsmodul 222 stellt für das Kernverarbeitungsmodul 200 Funktionen zur Entscheidungsfindung bezüglich Push-Benachrichtigungen und für das Verarbeiten von Push-Benachrichtigungen bereit, wie oben und nachfolgend ausführlicher beschrieben wird. Das Push-Benachrichtigungsverarbeitungsmodul 222 setzt die automatisierte Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen des Kernverarbeitungsmoduls 200 um. Das Push-Benachrichtigungsverarbeitungsmodul 222 kann die Browser-Implementierung 218 anweisen, das Push-Benachrichtigungen zugehörige Verarbeiten durchzuführen, wie in Verbindung mit 3 und 4 beschrieben ist. Alternativ kann das Push-Benachrichtigungsverarbeitungsmodul 222, wie nachfolgend beschrieben wird, ohne Abweichung von dem Umfang des vorliegenden Gegenstands innerhalb der Browser-Implementierung 218 umgesetzt werden. Als solche können sich die hierin beschriebenen Beispiele untereinander austauschbar auf das Push-Benachrichtigungsverarbeitungsmodul 222 bzw. die Browser-Implementierung 218 beziehen.
  • Obwohl das Push-Benachrichtigungsverarbeitungsmodul 222 der leichteren Veranschaulichung und Beschreibung halber als Modul auf Komponentenebene veranschaulicht ist, sei angemerkt, dass das Push-Benachrichtigungsverarbeitungsmodul 222 jede(n) beliebige(n) Hardware, programmierte(n) Prozessor(en) und Speicher enthalten kann, die zum Ausführen der Funktionen dieses Moduls verwendet werden. Das Push-Benachrichtigungsverarbeitungsmodul 222 kann zum Beispiel zusätzliche Controller-Schaltungen in Form von anwendungsspezifischen integrierten Schaltungen (ASICs), Prozessoren und/oder einzelnen integrierten Schaltungen und Komponenten zur Durchführung von mit den entsprechenden Einheiten in Zusammenhang stehenden Datenübertragungs- und elektrischen Steueraktivitäten aufweisen. Außerdem kann das Push-Benachrichtigungsverarbeitungsmodul 222 gegebenenfalls Module auf Interrupt-, Stack- und Anwendungsebene aufweisen. Des Weiteren kann das Push-Benachrichtigungsverarbeitungsmodul 222 alle Speicherkomponenten aufweisen, die zur Speicherung, zur Ausführung und zur Datenverarbeitung zur Durchführung von mit dem Modul in Zusammenhang stehenden Verarbeitungsaktivitäten verwendet werden.
  • Es sei auch angemerkt, dass das Push-Benachrichtigungsverarbeitungsmodul 222 ohne Abweichung von dem Umfang des vorliegenden Gegenstands auch Teil einer anderen beschriebenen Schaltung sein kann. Ferner kann das Push-Benachrichtigungsverarbeitungsmodul 222 alternativ als innerhalb des Speichers 210 gespeicherte Anwendung umgesetzt sein. In einer derartigen Umsetzung kann das Push-Benachrichtigungsverarbeitungsmodul 222 von der CPU 202 zum Durchführen der hierin beschriebenen Funktionalität ausgeführte Anweisungen enthalten. Die CPU 202 kann diese Anweisungen ausführen, um die oben und nachfolgend ausführlicher beschriebenen Verarbeitungsfunktionen für das Kernverarbeitungsmodul 200 bereitzustellen. Das Push-Benachrichtigungsverarbeitungsmodul 222 kann ohne Abweichung von dem Umfang des vorliegenden Gegenstands Teil eines Unterbrechungs-Serviceprogramms (ISR, interrupt service routine), Teil eines Betriebssystems, Teil einer Browser-Anwendung wie die Browser-Implementierung 218 oder Teil einer separaten Anwendung sein.
  • Ein Zeitgeber/Takt-Modul 224 ist veranschaulicht, das zum Festlegen von Zeitgebungs- und Datumsinformationen wie die Zeitgebung zur Verwendung in Verbindung mit periodischen Push-Benachrichtigungen verwendet wird, wie oben und nachstehend ausführlicher beschrieben wird. Als solches kann das Push-Benachrichtigungsverarbeitungsmodul 222 von dem Zeitgeber/Takt-Modul 224 abgeleitete Informationen für das Verarbeiten von Aktivitäten wie die automatisierte Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen verwenden.
  • Die CPU 202, die Anzeige 204, die Eingabeeinheit 206, das Kommunikationsmodul 208, der Speicher 210, das Push-Benachrichtigungsverarbeitungsmodul 222 und das Zeitgeber/Takt-Modul 224 sind über eine Verbindung 226 miteinander verbunden. Die Verbindung 226 kann einen Systembus, ein Netzwerk oder jede beliebige andere Verbindung beinhalten, die in der Lage ist, die entsprechenden Komponenten mit geeigneter gegenseitiger Verbindung für den entsprechenden Zweck bereitzustellen.
  • Obwohl das Kernverarbeitungsmodul 200 mit bestimmten beschriebenen Komponenten veranschaulicht ist, können dem Kernverarbeitungsmodul 200 ohne Abweichung von dem Umfang des vorliegenden Gegenstands andere Module und Komponenten zugehörig sein. Außerdem sei angemerkt, dass die Komponenten innerhalb des Kernverarbeitungsmoduls 200 ohne Abweichung von dem Umfang des vorliegenden Gegenstands benachbart oder verteilt bzw. über ein Netzwerk miteinander verbunden sein können, obwohl das Kernverarbeitungsmodul 200 der Veranschaulichung halber als einzelne Einheit beschrieben ist. Bei einer verteilten Anordnung können sich die Anzeige 204 und die Eingabeeinheit 206 an einem Kiosk oder einem anderen Ort befinden, während sich die CPU 202 und der Speicher 210 in einem lokalen oder fernen Server befinden können. Es sind viele andere mögliche Anordnungen der Komponenten des Kernverarbeitungsmoduls 200 möglich, die allesamt als sich innerhalb des Umfangs des vorliegenden Gegenstands befindlich angesehen werden. Entsprechend kann das Kernverarbeitungsmodul 200 viele Formen annehmen und vielen Plattformen zugehörig sein.
  • Zum Zweck der folgenden Beispiele werden die folgenden Pseudo-Syntax-Beispiele verwendet. Eine beispielhafte Pseudo-Syntax-XMLHttpRequest (XHR), die wie hierin beschrieben verändert werden kann, wird wie folgt dargestellt:
    • var pollingRequest= new XMLHttpRequest();
    • pollingRequest.onreadystatechange = handler;
    • pollingRequest.open(„GET“, „updates.json“),
    • pollingRequest.send();
  • Eine an einer Datenverarbeitungseinheit ausgeführte Web-Applikation kann die beispielhafte Pseudo-Syntax-XHR erzeugen, um eine Datenanforderung an einen Web-Server einzuleiten. Bei der Anforderung handelt es sich um eine Sendeabrufanforderung, die zu wiederholten Antworten führt, wenn für die angeforderte Datei Aktualisierungen verfügbar sind (updates.json).
  • In einer derartigen Situation kann die Browser-Implementierung dann an den Web-Server eine HTTP-Nachricht senden, die wie hierin beschrieben abgeändert sein kann, wie zum Beispiel die folgende Pseudo-Syntax-HTTP-Nachricht:
    • GET updates.json HTTP/1.1
    • Host: foo.com
    • Connection: keep-alive
  • Diese Anforderung kennzeichnet die Verbindung als eine Verbindung, die für einige Zeit offen bleiben soll (z.B. Keepalive). Der Web-Server würde letztendlich eine Antwort wie die folgende beispielhafte Pseudo-Syntax-Antwort mit dem angeforderten JSON-Dokument (z.B. updates.json) angehängt rückmelden:
    • HTTP/1.1 200 OK
    • Date: Tues, Jan 1 2011 10:10:10 GMT
    • Content-Iength: 100
  • Die obige Nachrichtenaustauschfolge kann beruhend auf dem hierin beschriebenen Gegenstand entweder durch eine Client-Einheit wie die Datenverarbeitungseinheit_1 102 oder durch eine Server-Einheit wie den Server 108 abgeändert werden. In dem Fall, in dem die Abänderung der Verarbeitung und des Nachrichtenaustauschs durch einen Client gesteuert wird, kann die Browser-Implementierung 218 der entsprechenden Client-Datenverarbeitungseinheit zugrunde liegende Push-Anwendungsprogrammierschnittstellen (APIs) verwenden, die für jede Betriebssystemumsetzung unterschiedlich sein können, um ein Ereignis zu registrieren, um die Datei „updates.json“ zu erhalten und Aktualisierungen dieser Datei von dem Push-Server 110 zu abonnieren. Der Push-Server 110 kann dann die vorherige HTTP-Anforderung an den Server 108 im Namen der anfordernden Client-Einheit stellen, die Aktualisierungen empfangen und die Aktualisierungen an die registrierte Client-Einheit senden.
  • In dem Fall, in dem die Abänderung der Verarbeitung und des Nachrichtenaustauschs durch einen Server gesteuert wird, kann die Browser-Implementierung 218 eine Anforderung wie die folgende Pseudo-Syntax-Anforderung an den Server 108 senden:
    • GET updates.json HTTP/1.1
    • Host: foo.com
    • Connection: keep-alive
    • Push-Control: id=xyz@telco.com
  • Der Server 108 kann erkennen, dass es sich bei der Verbindung um eine Anforderung für dauerhafte Aktualisierungen (z.B. Keepalive) handelt, und den Nachrichtenaustausch abändern, um die offene HTTP-Verbindung zu vermeiden. Der Server 108 kann eine Fortsetzen-Nachricht (z.B. „100 Fortsetzen“) mit einem Hinweis darauf senden, dass die Verarbeitung durch Push-Steuerung aktiviert ist, wie zum Beispiel die folgende Pseudo-Syntax-Antwort, um den Empfang der Anforderung von der Client-Einheit zu bestätigen:
    • HTTP/1.1 100 Continue
    • Push-Control: enabled, 00:30:00
  • Diese Antwort würde die entsprechende Browser-Implementierung 218 der Client-Einheit darüber informieren, dass der Server 108 diese Anforderung annimmt und dass der Server 108 für die nächsten dreißig (30) Minuten sämtliche Änderungen der angeforderten Datei (z.B. updates.json) für die Kennung (ID) xyz@telco.com über den Push-Server 110 an die anfordernde Client-Einheit mit Push-Operation überträgt.
  • 3 zeigt einen Nachrichtenablaufplan eines Beispiels einer Umsetzung eines von einer Client-Datenverarbeitungseinheit wie der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 stammenden Datenaustauschs 300, der eine client-gesteuerte Verarbeitung zur Konfiguration der automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen gemäß einer Ausführungsform des vorliegenden Gegenstands unterstützt. Die Datenverarbeitungseinheit_1 102 ist gemeinsam mit dem Server 108 und dem Push-Server 110 veranschaulicht. Die Web-Anwendung 216 und die Browser-Implementierung 218 funktionieren innerhalb des wie oben beschriebenen Speichers 210 der Datenverarbeitungseinheit_1 102 unter Steuerung durch die CPU 202. Wie ebenfalls oben beschrieben wurde, kann die innerhalb des vorliegenden, der Browser-Implementierung 218 zugehörigen Beispiels beschriebene Funktionalität auch oder alternativ innerhalb des Push-Benachrichtigungsverarbeitungsmoduls 222 in Client-Einheiten wie der Datenverarbeitungseinheit_1 102 umgesetzt werden. Bei dem Server 108 und dem Push-Server 110 funktioniert das Push-Benachrichtigungsverarbeitungsmodul 222 so, dass es die innerhalb des vorliegenden Beispiels beschriebene Funktionalität umsetzt, entweder als eigenständiges Modul oder als ein über die CPU 202 ausgeführter Prozess.
  • Innerhalb des vorliegenden Beispiels gibt die Web-Anwendung 216 an die Browser-Implementierung 218 eine HTTP-Anforderung aus (Zeile 1), wie zum Beispiel in Verbindung mit einer für den Server 108 bestimmten Datenanforderung. Zum Zweck des vorliegenden Beispiels wird angenommen, dass die ursprüngliche HTTP-Anforderung der oben beschriebenen Pseudo-Syntax-Beispiele durch die Web-Anwendung 216 ausgegeben wird.
  • Die Browser-Implementierung 218 erkennt die HTTP-Anforderung und stellt fest, dass es sich bei der Anforderung um eine Sendeabrufanforderung handelt, die dazu führen würde, dass die HTTP-Verbindung für einen Zeitraum offen wäre (z.B. anders als eine Einzelanforderung). Als Folge dessen ermittelt die Browser-Implementierung 218, dass die Verwendung einer Push-Benachrichtigung umgesetzt werden kann, um eine dauerhaft offene Browser-Verbindung, die sich aus der offenen HTTP-Verbindung ergeben würde, zu verringern.
  • Die Browser-Implementierung 218 öffnet ein Socket zu dem Push-Server 110 und blockiert einen Thread, der über die Web-Anwendung 216 läuft, welche die HTTP-Anforderung ausgegeben hat. Die Browser-Implementierung 218 sendet eine Push-Anforderung, um sich für die angeforderten Daten an dem Push-Server 110 zu registrieren (Zeile 2). Der Push-Server 110 öffnet eine HTTP-Verbindung zu dem Server 108 und erzeugt eine HTTP-Anforderung für die Daten und sendet diese an den Server 108 (Zeile 3). Der Server 108 sendet eine Benachrichtigung an die Browser-Implementierung 218, welche die Browser-Implementierung 218 anweist, das offene Socket zu schließen (Zeile 4). Die Browser-Implementierung 218 schließt das offene Socket und gibt somit eine offene HTTP-Verbindung frei. Als solche kann die Browser-Implementierung 218 bei Batteriestrombetrieb Batteriestrom einsparen, indem sie kein offenes Socket abruft.
  • Zu irgendeinem späteren Zeitpunkt, wenn die angeforderten Daten verfügbar sind oder wenn eine Aktualisierung des angeforderten Abonnements verfügbar ist, erzeugt der Server 108 eine HTTP-Antwort und sendet diese an den Push-Server 110, welche die angeforderten Daten enthält (Zeile 5). Der Push-Server 110 schließt die HTTP-Verbindung mit dem Server 108 und erzeugt eine Push-Benachrichtigung, welche die angeforderte(n) Daten/Aktualisierung enthält, und sendet diese an die Browser-Implementierung 218 (Zeile 6). Die Browser-Implementierung 218 blockiert den Thread der Web-Anwendung 216 nicht mehr und meldet die Ergebnisse der ursprünglichen HTTP-Anforderung an die Web-Anwendung 216 (Zeile 7) zurück.
  • Als solcher veranschaulicht der Nachrichtenfluss 300 ein Beispiel einer Situation, in der eine Client-Einheit eine Anforderung erkennt, die abgeändert werden kann, um eine Push-Benachrichtigung zu verwenden. Die Client-Einheit tauscht Daten mit einem Push-Server aus, um sich für die angeforderten Daten zu registrieren, und der Push-Server tauscht über eine HTTP-Verbindung Daten mit einem Web-Server aus, um die angeforderten Daten abzurufen. Es sei angemerkt, dass der Push-Server 110 bei periodischen Aktualisierungen periodisch eine HTTP-Verbindung öffnen kann, um die angeforderten Daten abzurufen, und die HTTP-Verbindung als Reaktion auf das Empfangen der angeforderten Daten für jede Aktualisierungsperiode schließen kann.
  • Als solche können offene HTTP-Verbindungen auf ein Mindestmaß beschränkt werden.
  • 4 zeigt einen Nachrichtenablaufplan eines Beispiels einer Umsetzung eines von einer Web-Server-Einheit wie dem Server 108 stammenden Datenaustauschs 400, der eine servergesteuerte Verarbeitung zur Konfiguration der automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen unterstützt. Wie in der 3 ist die Datenverarbeitungseinheit_1 102 gemeinsam mit dem Server 108 und dem Push-Server 110 veranschaulicht. Die Web-Anwendung 216 und die Browser-Implementierung 218 funktionieren innerhalb des wie oben beschriebenen Speichers 210 der Datenverarbeitungseinheit_1 102 unter Steuerung durch die CPU 202. Wie ebenfalls oben beschrieben wurde, kann die innerhalb des vorliegenden, der Browser-Implementierung 218 zugehörigen Beispiels beschriebene Funktionalität auch oder alternativ innerhalb des Push-Benachrichtigungsverarbeitungsmoduls 222 in Client-Einheiten wie der Datenverarbeitungseinheit_1 102 umgesetzt werden. Bei dem Server 108 und dem Push-Server 110 funktioniert das Push-Benachrichtigungsverarbeitungsmodul 222 so, dass es die innerhalb des vorliegenden Beispiels beschriebene Funktionalität umsetzt.
  • Innerhalb des vorliegenden Beispiels gibt die Web-Anwendung 216 an den Server 108 eine XHR-Anforderung aus (Zeile 1). Zum Zweck des vorliegenden Beispiels wird angenommen, dass die ursprüngliche XHR-Anforderung der oben beschriebenen Pseudo-Syntax-Beispiele durch die Web-Anwendung 216 ausgegeben wird.
  • Der Server 108 erkennt möglicherweise, dass es sich bei der Anforderung um eine Sendeabrufanforderung handelt, die dazu führen würde, dass die HTTP-Verbindung für einen längeren Zeitraum offen wäre oder dass das Ausführen der Datenanforderung einige Zeit in Anspruch nehmen könnte. Als Folge dessen stellt der Server 108 fest, dass die Verwendung einer Push-Benachrichtigung umgesetzt werden kann, um eine dauerhaft offene Browser-Verbindung, die sich aus der der XHR-Anforderung zugehörigen offenen HTTP-Verbindung ergeben würde, zu verringern.
  • Der Server 108 erzeugt eine Bestätigung der XHR-Anforderung und sendet diese an die Web-Anwendung 216 (Zeile 2), wie die in Verbindung mit dem letzten Beispiel für Pseudosyntax oben beschriebene. Die Bestätigung dient dazu, die Web-Anwendung 216 darüber zu benachrichtigen, dass der Server 108 die Verwendung einer Push-Benachrichtigung zum Rückmelden der angeforderten Daten beabsichtigt. Zum Zweck des vorliegenden Beispiels erzeugt der Server 108 auch einen Hash-Wert (H) eines Zeitstempels (z.B. unter Verwendung des Takts/Zeitgebers 224), zu dem die XHR-Anforderung empfangen wurde, und sendet den Hash-Wert (H) gemeinsam mit der Bestätigung an die Web-Anwendung 216.
  • Als Reaktion auf das Empfangen der Bestätigung von dem Server 108 schließt die Web-Anwendung 216 in Block 402 die mit der anfänglichen XHR in Zusammenhang stehende HTTP-Anforderungsverbindung und weist eine oder mehrere RückrufFunktionen/Routinen zu, die als Reaktion auf das Empfangen der Push-Benachrichtigung durchzuführen sind. Die Web-Anwendung 216 sendet eine Anforderung, um sich an der Browser-Implementierung 218 für die Push-Benachrichtigung zu registrieren (Zeile 3).
  • Zu irgendeinem späteren Zeitpunkt, wenn die angeforderten Daten verfügbar sind oder wenn eine Aktualisierung des angeforderten Abonnements verfügbar ist, erzeugt der Server 108 eine HTTP-Antwort und sendet diese an den Push-Server 110, welche die angeforderten Daten sowie den Hash-Wert (H) des der Anforderung zugehörigen ursprünglichen Zeitstempels enthält (Zeile 4). Der Push-Server 110 schließt die HTTP-Verbindung mit dem Server 108, schlägt die Registrierungsdaten für die Push-Anforderung nach und erzeugt eine Push-Benachrichtigung, welche die angeforderte(n) Daten/Aktualisierung sowie den Hash-Wert (H) des Zeitstempels enthält, und sendet diese an die Browser-Implementierung 218 (Zeile 5). Die Browser-Implementierung 218 meldet die Ergebnisse der ursprünglichen XHR-Anforderung sowie den Hash-Wert (H) des Zeitstempels an die Web-Anwendung 216 zurück (Zeile 6). Die Web-Anwendung 216 verwendet den Hash-Wert (H) des Zeitstempels zum Aufrufen der entsprechenden zugewiesenen Rückruffunktion(en) in Block 404 und verarbeitet die von dem Server 108 rückgemeldeten Ergebnisse.
  • Als solcher veranschaulicht der Nachrichtenfluss 400 ein Beispiel einer Situation, in der eine Server-Einheit eine Anforderung erkennt, die abgeändert werden kann, um eine Push-Benachrichtigung zu verwenden. Die Server-Einheit bestätigt die Anforderung der Client-Einheit und informiert die Client-Einheit, dass eine Push-Benachrichtigung verwendet werden wird, um die angeforderten Daten rückzumelden, und enthält eine Kennung, um die Push-Benachrichtigung mit der Bestätigung in Wechselbeziehung zu bringen. Es sei angemerkt, dass das vorliegende Beispiel als Wechselbeziehungskennung einen Hash-Wert (H) eines Zeitstempels eines Zeitpunkts verwendet, zu dem die Anforderung empfangen wurde. Es kann jedoch jede beliebige für eine gegebene Umsetzung geeignete Kennung verwendet werden. Die Client-Einheit weist eine oder mehrere RückrufFunktionen/Routinen zu, um die Push-Benachrichtigung zu verarbeiten, und registriert sich an der Browser-Implementierung, um die Push-Benachrichtigung zu empfangen. Der Server tauscht Daten mit einem Push-Server aus, um die angeforderten Daten und die Wechselbeziehungskennung über eine HTTP-Verbindung mit dem Push-Server zu senden. Die Push-Benachrichtigung mit der Wechselbeziehungskennung wird an die anfordernde Client-Einheit übertragen. Die Client-Einheit schlägt die Push-Benachrichtigung unter Verwendung der Wechselbeziehungskennung nach und ruft die zugewiesene(n) Rückruffunktion(en) auf. Es sei angemerkt, dass der Push-Server bei periodischen Aktualisierungen periodisch eine HTTP-Verbindung öffnen kann, um die angeforderten Daten zu senden, und die HTTP-Verbindung als Reaktion auf das Empfangen der angeforderten Daten durch den Push-Server für jede Aktualisierungsperiode schließen kann. Als solche können offene HTTP-Verbindungen auf ein Mindestmaß beschränkt werden.
  • Die nachfolgend beschriebenen 5 bis 8 stellen beispielhafte Prozesse dar, die durch Einheiten wie das Kernverarbeitungsmodul 200 ausgeführt werden können, um die mit dem vorliegenden Gegenstand in Zusammenhang stehende automatisierte Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen durchzuführen. Es sind viele weitere Abwandlungen des beispielhaften Prozesses möglich, die allesamt als sich innerhalb des Umfangs des vorliegenden Gegenstands befindlich angesehen werden. Die beispielhaften Prozesse können durch Module wie das Push-Benachrichtigungsverarbeitungsmodul 222 durchgeführt und/oder von der CPU 202 über die derartigen Einheiten zugehörige Browser-Implementierung 218 ausgeführt werden. Es sei angemerkt, dass Zeitüberschreitungsverfahren und andere fehlerkorrigierende Verfahren innerhalb der beschriebenen beispielhaften Prozesse einer einfachen Veranschaulichung halber nicht veranschaulicht sind. Es sei jedoch darauf hingewiesen, dass alle derartigen Verfahren als sich innerhalb des Umfangs des vorliegenden Gegenstands befindlich angesehen werden. Ferner können die beschriebenen Prozesse kombiniert werden, Folgen der beschriebenen Verarbeitung können geändert werden, und eine zusätzliche Verarbeitung kann hinzugefügt werden, ohne von dem Umfang des vorliegenden Gegenstands abzuweichen.
  • 5 zeigt einen Ablaufplan eines Beispiels einer Umsetzung eines Prozesses 500 zur automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen. In Block 502 empfängt der Prozess 500 eine Browser-Anforderung an einer Datenverarbeitungseinheit. In Block 504 ermittelt der Prozess 500 auf der Grundlage von Eigenschaften der Browser-Anforderung, ob die Browser-Anforderung durch eine Push-Benachrichtigung zu ersetzen ist. In Block 506 ersetzt der Prozess 500 als Reaktion auf das Feststellen auf der Grundlage der Eigenschaften der Browser-Anforderung, dass die Browser-Anforderung durch die Push-Benachrichtigung zu ersetzen ist, die Browser-Anforderung durch die Push-Benachrichtigung.
  • 6 zeigt einen Ablaufplan eines Beispiels einer Umsetzung eines Prozesses 600 zur automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen in einer Client-Datenverarbeitungseinheit wie der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104. Wie oben beschrieben wurde, kann der Prozess 600 durch die Browser-Implementierung 218 oder das Push-Benachrichtigungsverarbeitungsmodul 222 oder die entsprechende Client-Datenverarbeitungseinheit umgesetzt werden, wie jeweils für die gegebene Umsetzung geeignet.
  • An Entscheidungspunkt 602 ermittelt der Prozess 600, ob eine Browser-Anforderung empfangen/erkannt wurde. Wie oben beschrieben wurde, kann die Browser-Anforderung eine HTTP-Anforderung oder XHR enthalten und von einem Web-Anwendungscode wie der Web-Anwendung 216 empfangen werden.
  • Als Reaktion auf das Feststellen, dass eine Browser-Anforderung empfangen/erkannt wurde, ermittelt der Prozess 600 an dem Entscheidungspunkt 604, ob die Browser-Anforderung eine Anforderung von Aktualisierungen im Zeitverlauf enthält (z.B. eine Sendeabrufanforderung oder eine Anforderung mit einer Reihe von „Keepalive“-Attributen). Eine Browser-Anforderung von Aktualisierungen im Zeitverlauf ist ein Beispiel einer Situation, die dazu verwendet werden kann, eine Browser-Anforderung durch eine Push-Benachrichtigung zu ersetzen und Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen zu verwenden. Es sei jedoch angemerkt, dass es viele andere Möglichkeiten zur Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen gibt, und all diese werden als sich innerhalb des Umfangs des vorliegenden Gegenstands angesehen. Ferner kann ohne Abweichung von dem Umfang des vorliegenden Gegenstands die Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen für sämtliche Browser-Anforderungen umgesetzt werden, ohne eine Ermittlung wie die Ermittlung an Entscheidungspunkt 604 durchzuführen, wenn dies für eine gegebene Umsetzung geeignet ist.
  • Als Reaktion auf das Feststellen, dass die Anforderung keine Anforderung von Aktualisierungen im Zeitverlauf enthält, sendet der Prozess 600 die Anforderung an einen Web-Server wie den Server 108 in Block 606. An Entscheidungspunkt 608 ermittelt der Prozess, ob eine Antwort von dem Web-Server empfangen wurde. Es sei angemerkt, dass die Antwort von dem Web-Server eine Antwort auf die Browser-Anforderung enthalten kann, welche die Anforderung erfüllende Daten enthält, oder eine Bestätigung von dem Web-Server enthalten kann, die einen Hinweis (z.B. einen Push-Hinweis) enthält, dass der Web-Server die Antwort auf die Web-Anforderung über einen Push-Server wie den Push-Server 110 mit Push-Operation übertragen wird.
  • Als Reaktion auf das Feststellen an Entscheidungspunkt 608, dass eine Antwort empfangen wurde, ermittelt der Prozess 600 an Entscheidungspunkt 610, ob die Antwort einen Push-Hinweis enthält. Es sei angemerkt, dass die Bestätigung ferner eine der Browser-Anforderung durch den Web-Server zugewiesene Kennung enthalten kann, die dazu verwendet werden kann, jede beliebige nachfolgende Push-Benachrichtigung mit der ursprünglichen Browser-Anforderung in Wechselbeziehung zu bringen.
  • Als Reaktion auf das Feststellen an Entscheidungspunkt 610, dass die Antwort keinen Push-Hinweis enthält, meldet der Prozess 600 in Block 612 die Ergebnisdaten (Ergebnisse) in der Antwort an die Browser-Anwendung zurück. Der Prozess 600 kehrt zu Entscheidungspunkt 602 zurück und wird wie oben beschrieben wiederholt.
  • Als Reaktion auf das Feststellen an Entscheidungspunkt 610, dass die Antwort einen Push-Hinweis enthält, weist der Prozess 600 in Block 614 eine oder mehrere Rückruffunktionen zu, die als Reaktion auf das Empfangen der von dem Web-Server zu empfangenen Push-Benachrichtigung auszuführen sind. In Block 616 registriert sich der Prozess 600 an dem entsprechenden Push-Server für die Push-Benachrichtigungen. An Entscheidungspunkt 618 ermittelt der Prozess 600, ob eine Push-Benachrichtigung von dem Push-Server empfangen wurde. Als Reaktion auf das Feststellen, dass eine Push-Benachrichtigung von dem Push-Server empfangen wurde, führt der Prozess 600 in Block 620 die zugewiesene(n) Rückruffunktion(en) aus. Die der Browser-Anforderung durch den Web-Server zugewiesene Kennung kann dafür verwendet werden, die zugewiesene(n) Rückruffunktion(en) zur Ausführung der entsprechenden Rückruffunktion(en) nachzuschlagen. Der Prozess 600 kehrt zu Entscheidungspunkt 602 zurück und wird wie oben beschrieben wiederholt.
  • Zurück zu der Beschreibung des Entscheidungspunkts 604, wo der Prozess 600 in Block 622 als Reaktion auf das Feststellen, dass die Browser-Anforderung eine Anforderung von Aktualisierungen im Zeitverlauf enthält (z.B. eine Sendeabrufanforderung oder eine Anforderung mit einer Reihe von „Keepalive“-Attributen), ein Socket für den Datenaustausch mit einem Push-Server wie dem Push-Server 110 öffnet. In Block 624 benachrichtigt der Prozess 600 den entsprechenden Push-Server, dass er die HTTP-Anfrage an den der Web-Anforderung zugehörigen Web-Server ausgeben soll. Diese Benachrichtigung kann zum Beispiel unter Verwendung einer zugrunde liegenden Push-Anwendungsprogrammierschnittstelle (API) durchgeführt werden, die für jede Betriebssystemumsetzung unterschiedlich sein kann, um sich für die entsprechenden der Web-Anforderung zugehörigen Aktualisierungen zu registrieren. Der Push-Server kann dann die vorherige Web-Anforderung zum Beispiel über eine HTTP-Anforderung an den entsprechenden Web-Server im Namen der anfordernden Client-Einheit stellen, die Aktualisierungen empfangen und die Aktualisierungen an die registrierte Client-Einheit senden/mit Push-Operation übertragen, wie nachfolgend ausführlicher beschrieben wird. Ferner kann die Push-Anforderung an den Push-Server eine Anforderung einer Reihe von Push-Benachrichtigungen enthalten, die auszugeben sind, um die Browser-Anforderung für die Aktualisierungen der angeforderten Daten im Zeitverlauf zu ersetzen, und als solche den Push-Server dazu zu veranlassen, eine Reihe von Push-Benachrichtigungen mit Datenaktualisierungen an die Client-Datenverarbeitungseinheit auszugeben.
  • An Entscheidungspunkt 626 ermittelt der Prozess 600, ob eine Anweisung zum Schließen des der Web-Anforderung zugehörigen Socket von dem der ursprünglichen Browser-Anforderung zugehörigen Web-Server empfangen wurde. Der Hinweis von dem Web-Server stellt eine Bestätigung der Benachrichtigung von dem Push-Server dar, damit die Browser-Anforderung an den Web-Server ausgegeben wird. Als solche wird die Datenübertragungsschleife zwischen den drei Einheiten durch das Empfangen der Anweisung zum Schließen des Socket bestätigt. Der Prozess 600 schließt das Socket in Block 628.
  • An Entscheidungspunkt 630 ermittelt der Prozess 600, ob eine erste Push-Benachrichtigung von dem Push-Server mit den Ergebnissen einer Web-Antwort auf die von dem Push-Server an den Web-Server ausgegebene Browser-Anforderung empfangen wurde. Als Reaktion auf das Feststellen, dass eine Push-Benachrichtigung von dem Push-Server mit den Ergebnissen einer Web-Antwort auf die von dem Push-Server an den Web-Server ausgegebene Browser-Anforderung empfangen wurde, meldet der Prozess 600 in Block 632 die Ergebnisse an die Browser-Anwendung zurück.
  • Als Reaktion entweder auf das Abschließen des Rückmeldens der Ergebnisse an die Browser-Anwendung in Block 632 oder auf das Feststellen an dem Entscheidungspunkt 630, dass keine Push-Benachrichtigung empfangen wurde, ermittelt der Prozess 600 an Entscheidungspunkt 634, ob das Verarbeiten von Push-Benachrichtigungen für die entsprechende ursprüngliche Browser-Anforderung abgeschlossen wurde (z.B. wenn eine der ursprünglichen Anforderung zugehörige Zeitspanne abgelaufen ist oder eine festgelegte Anzahl an Push-Benachrichtigungen empfangen wurde). Wie oben beschrieben wurde, kann die ursprüngliche Push-Anforderung an den Push-Server eine Anforderung einer Reihe von Push-Benachrichtigungen enthalten, die auszugeben sind, um die Browser-Anforderung für die Aktualisierungen der angeforderten Daten im Zeitverlauf zu ersetzen, um den Push-Server dazu zu veranlassen, eine Reihe von Push-Benachrichtigungen auszugeben, die mit der ursprünglichen Browser-Anforderung in Zusammenhang stehende Datenaktualisierungen enthält.
  • Als Reaktion auf das Feststellen an Entscheidungspunkt 634, dass die Verarbeitung von Push-Benachrichtigungen nicht abgeschlossen wurde, kehrt der Prozess 600 zu Entscheidungspunkt 630 zurück und wird wie oben beschrieben wiederholt. Als Reaktion auf das Feststellen an Entscheidungspunkt 634, dass die Verarbeitung von Push-Benachrichtigungen abgeschlossen wurde, kehrt der Prozess 600 zu Entscheidungspunkt 602 zurück und wird wie oben beschrieben wiederholt.
  • Als solcher wird der Prozess 600 an einer Client-Datenverarbeitungseinheit durchgeführt, um zu ermitteln, ob eine Browser-Anforderung durch eine oder mehrere Push-Benachrichtigungen ersetzt werden kann. Das Ermitteln kann auf Eigenschaften der Browser-Anforderung beruhen, wie zum Beispiel, dass die Browser-Anforderung eine Anforderung von Aktualisierungen im Zeitverlauf enthält (z.B. eine Sendeabrufanforderung oder eine „Keepalive“-Anforderung). Der Prozess 600 kann Push-Hinweise von einem Web-Server verarbeiten, die einen Hinweis darauf enthalten, dass der Web-Server die Antwort auf die Browser-Anforderung mit Push-Operation übertragen wird, und er kann eine oder mehrere RückrufFunktionen/Routinen zuweisen, um die Push-Benachrichtigung(en) zu verarbeiten. Der Prozess 600 kann alternativ selbständig die Push-Benachrichtigungsverarbeitung einleiten, indem er eine Push-Anforderung an einen Push-Server sendet, die den Push-Server auffordert, als Proxy für die Client-Datenverarbeitungseinheit zu fungieren und die Browser-Anforderung an den Web-Server auszugeben. Der Prozess 600 kann mehrere Push-Benachrichtigungen im Zeitverlauf verarbeiten, die andernfalls eine offene Browser-Verbindung während der Dauer erfordert hätten. Als solche können offene Browser-Verbindungen unter Verwendung von Push-Benachrichtigungen verringert werden, wie hierin beschrieben ist.
  • 7 zeigt einen Ablaufplan eines Beispiels einer Umsetzung eines Prozesses 700 zur automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen an einer Push-Server-Einheit wie dem Push-Server 110. Wie oben beschrieben wurde, kann der Prozess 700 durch das Push-Benachrichtigungsverarbeitungsmodul 222 des Push-Servers 110 umgesetzt werden.
  • An Entscheidungspunkt 702 ermittelt der Prozess 700, ob eine Push-Anforderung empfangen wurde. Wie oben beschrieben wurde, kann eine Push-Anforderung zum Beispiel von einer Client-Datenverarbeitungseinheit wie der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 an einem Push-Server wie dem Push-Server 110 empfangen werden. Die Push-Anforderung kann den Push-Server 110 dazu veranlassen, eine HTTP-Verbindung und - Anforderung an einen Web-Server wie den Server 108 als Proxy und im Namen der anfordernden Client-Datenverarbeitungseinheit einzuleiten. Als Reaktion auf das Feststellen, dass keine Push-Anforderung empfangen wurde, ermittelt der Prozess 700 an Entscheidungspunkt 704, ob Ergebnisse einer Browser-Anforderung empfangen wurden. Wie oben beschrieben wurde, können Ergebnisse einer Browser-Anforderung von einem Web-Server wie dem Server 108 als Reaktion auf das Einleiten einer Browser-Anforderung durch eine Client-Datenverarbeitungseinheit empfangen werden. Ferner können die empfangenen Ergebnisse eine der Browser-Anforderung von der Web-Servereinheit zugewiesene Kennung aufweisen (z.B. einen Hash-Wert eines Zeitstempels eines Zeitpunkts, zu dem die ursprüngliche Browser-Anforderung empfangen wurde), um es der Client-Datenverarbeitungseinheit zu ermöglichen, Rückruf-Funktionen/Routinen zum Verarbeiten der anschließenden Ergebnisse, die über eine Push-Benachrichtigung rückgemeldet werden, zu verwenden. Als Reaktion auf das Feststellen, dass keine Ergebnisse einer Browser-Anforderung empfangen wurden, kehrt der Prozess 700 zu dem Entscheidungspunkt 702 zurück und wird wie oben beschrieben wiederholt.
  • Zurück zu der Beschreibung des Entscheidungspunkts 702, wo der Prozess 700 in Block 706 als Reaktion auf das Feststellen, dass eine Push-Anforderung empfangen wurde, eine HTTP-Anforderung unter Verwendung von innerhalb der Push-Anforderung empfangenen Daten bildet, die den Ziel-Web-Server und die angeforderten Daten kennzeichnen. In Block 708 sendet der Prozess 700 die HTTP-Anforderung an den vorgesehenen/gekennzeichneten Web-Server. An Entscheidungspunkt 710 ermittelt der Prozess 700, ob eine HTTP-Antwort von dem vorgesehenen Web-Server empfangen wurde. Als Reaktion auf das Feststellen, dass die HTTP-Antwort empfangen wurde, sendet der Prozess 700 in Block 712 eine Push-Benachrichtigung an die anfordernde Client-Einheit mit den Ergebnissen der durch den Push-Server 110 eingeleiteten HTTP-Anforderung. Der Prozess 700 kehrt zu Entscheidungspunkt 702 zurück und wird wie oben beschrieben wiederholt.
  • Zurück zu der Beschreibung des Entscheidungspunkts 704, wo der Prozess 700 in Block 714 als Reaktion auf das Feststellen, dass Ergebnisse einer Browser-Anforderung empfangen wurden, eine Push-Benachrichtigung an eine Client-Einheit sendet, die innerhalb der Ergebnisse der über einen Web-Server 108 eingeleiteten Browser-Anforderung vorgesehen/gekennzeichnet ist. Wie oben beschrieben wurde, können die Ergebnisse eine der ausstehenden Browser-Anforderung von dem Web-Server zugewiesene Kennung aufweisen (z.B. einen Hash-Wert eines Zeitstempels eines Zeitpunkts, zu dem die ursprüngliche Browser-Anforderung empfangen wurde), die von der Client-Datenverarbeitungseinheit dazu verwendet werden kann, eine Rückrufroutine zum Verarbeiten der Ergebnisse der Browser-Anforderung aufzurufen. Der Prozess 700 kehrt zu Entscheidungspunkt 702 zurück und wird wie oben beschrieben wiederholt.
  • Als solcher wird der Prozess 700 durchgeführt, um sowohl von Client-Datenverarbeitungseinheiten eingeleitete Push-Anforderungen zu verarbeiten als auch selbständig Ergebnisse zu empfangen, die Kennungen ursprünglicher Browser-Anforderungen enthalten. Entsprechend wird der Prozess 700 durchgeführt, um die oben beschriebenen beispielhaften Umsetzungen zu ermöglichen, damit Datenaustauschvorgänge zwischen mehreren Datenverarbeitungseinheiten Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen verwenden können.
  • 8 zeigt einen Ablaufplan eines Beispiels einer Umsetzung eines Prozesses 800 zur automatisierten Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen an einer Web-Server-Einheit wie dem Server 108. Wie oben beschrieben wurde, kann der Prozess 800 durch das Push-Benachrichtigungsverarbeitungsmodul 222 des Servers 108 umgesetzt werden.
  • An Entscheidungspunkt 802 ermittelt der Prozess 800, ob eine Push-Server-HTTP-Anforderung empfangen wurde, die den Server 108 dazu anweist, über eine HTTP-Antwort dem Push-Server 110 mit den Ergebnissen zu antworten. Wie oben beschrieben wurde, kann eine Push-Server-HTTP-Anforderung zum Beispiel von einem Push-Server wie dem Push-Server 110 als Reaktion auf eine von der anfordernden Client-Datenverarbeitungseinheit empfangene Push-Anforderung empfangen werden. Als Reaktion auf das Feststellen, dass keine Push-Server-HTTP-Anforderung empfangen wurde, ermittelt der Prozess 800 an Entscheidungspunkt 804, ob eine Browser-Anforderung (z.B. HTTP oder XHR) von einer Client-Datenverarbeitungseinheit wie einer der Datenverarbeitungseinheit_1 102 bis Datenverarbeitungseinheit_N 104 empfangen wurde. Als Reaktion auf das Feststellen, dass keine Browser-Anforderung von einer Client-Datenverarbeitungseinheit empfangen wurden, kehrt der Prozess 800 zu dem Entscheidungspunkt 802 zurück und wird wie oben beschrieben wiederholt.
  • Zurück zu der Beschreibung des Entscheidungspunkts 802, wo der Prozess 800 in Block 806 als Reaktion auf das Feststellen, dass eine Push-Server-HTTP-Anforderung empfangen wurde, die den Server 108 anweist, dem Push-Server 110 über eine HTTP-Antwort mit den Ergebnissen zu antworten, eine Nachricht an die anfordernde Client-Datenverarbeitungseinheit sendet, welche die Client-Datenverarbeitungseinheit anweist, sämtliche offenen Sockets zu schließen, die mit Datenübertragungen an den Push-Server 110 in Zusammenhang stehen. In Block 808 erhält der Prozess 800 die der ursprünglichen Browser-Anfrage zugehörigen angeforderten Ergebnisse so wie sie von dem Push-Server 110 innerhalb der Push-Server-Anforderung empfangen wurden. In Block 810 bildet der Prozess 800 eine HTTP-Antwort, welche die angeforderten Daten enthält. In Block 812 sendet der Prozess 800 die HTTP-Antwort an den Push-Server 110. Wie oben beschrieben wurde, kann der Push-Server 110 eine Push-Benachrichtigung verwenden, um der anfordernden Client-Datenverarbeitungseinheit die Ergebnisse bereitzustellen. Der Prozess 800 kehrt zu Entscheidungspunkt 802 zurück und wird wie oben beschrieben wiederholt.
  • Zurück zu der Beschreibung des Entscheidungspunkts 804, wo der Prozess 800 an Entscheidungspunkt 814 als Reaktion auf das Feststellen, dass eine Browser-Anforderung (z.B. HTTP oder XHR) von einer Client-Datenverarbeitungseinheit empfangen wurde, ermittelt, ob die Browser-Anforderung durch eine oder mehrere Push-Benachrichtigungen zu ersetzen ist. Es kann jedes beliebige für eine gegebene Umsetzung geeignete Entscheidungskriterium verwendet werden. Der Prozess 800 kann zum Beispiel feststellen, dass die Browser-Anforderung eine Anforderung von Aktualisierungen im Zeitverlauf enthält, oder dass das Ausführen der Anforderung auf Grund von Datenvorbereitungszeiten oder anderen Faktoren lange dauern kann. Als Reaktion auf das Feststellen, dass die Browser-Anforderung nicht durch eine oder mehrere Push-Benachrichtigungen zu ersetzen ist, bildet der Prozess 800 in Block 816 eine Antwort auf die Browser-Anforderung, sendet die Antwort auf die Browser-Anforderung in Block 818 an die anfordernde Client-Datenverarbeitungseinheit und kehrt zu dem Entscheidungspunkt 802 zurück und wird wie oben beschrieben wiederholt.
  • Als Reaktion auf das Feststellen in Entscheidungsblock 814, dass die Browser-Anforderung durch eine oder mehrere Push-Benachrichtigungen zu ersetzen ist, weist der Prozess 800 in Block 820 der von der Client-Einheit empfangenen Browser-Anforderung (z.B. der HTTP-Anforderung oder der XHR) eine Kennung zu. Wie oben beschrieben wurde, kann die zugewiesene Kennung einen Hash-Wert (H) eines Zeitstempels eines Zeitpunkts enthalten, zu dem die Browser-Anforderung empfangen wurde. Dieser Hash-Wert kann unter Verwendung von Daten erzeugt werden, die von einem Modul wie dem Zeitgeber/Takt-Modul 224 abgeleitet werden.
  • In Block 822 sendet der Prozess 800 eine Bestätigung an die Client-Datenverarbeitungseinheit, die eine der Browser-Anforderung zugewiesene Kennung enthält. Wie oben beschrieben wurde, können im Zeitverlauf angeforderte Aktualisierungen (z.B. Sportergebnisse, Aktienkurse usw.) periodisch, bei Datenänderungen (z.B. Ergebnis- oder Preisänderungen) oder anderweitig wie jeweils für eine gegebene Umsetzung geeignet erzeugt werden. Als solche sind viele Abwandlungen für Aktualisierungsereignisse möglich, und sämtliche Abwandlungen werden als sich innerhalb des Umfangs des vorliegenden Gegenstands befindlich angesehen.
  • An Entscheidungspunkt 824 ermittelt der Prozess 800, ob Ergebnisse zum Ausführen mindestens einer Wiederholung der Browser-Anforderung verfügbar sind.
  • Als Reaktion auf das Feststellen, dass Ergebnisse verfügbar sind, um mindestens eine Wiederholung der Browser-Anforderung auszuführen, sendet der Prozess 800 in Block 826 Ergebnisse der Browser-Anforderung an den Push-Server 110 mit einer Anweisung, die Ergebnisse über eine Push-Benachrichtigung an die anfordernde Client-Einheit mit Push-Operation zu übertragen. Die an den Push-Server 110 gesendeten Ergebnisse können die der Browser-Anforderung zugewiesene Kennung enthalten (z.B. den Hash-Wert des Zeitstempels des Zeitpunkts, zu dem die Anforderung empfangen wurde).
  • An Entscheidungspunkt 828 ermittelt der Prozess 800, ob die Verarbeitung der ausstehenden Anforderung abgeschlossen wurde (z.B., ob es sich um eine Anforderung eines Einzelergebnis-Datensatzes oder eine Browser-Anforderung von Aktualisierungen im Zeitablauf gehandelt hat). Als Reaktion auf das Feststellen, dass die Verarbeitung der ausstehenden Anforderung nicht abgeschlossen ist, kehrt der Prozess 800 zu Entscheidungspunkt 824 zurück und wird wie oben beschrieben wiederholt, um zusätzliche Ergebnisdatensätze zu verarbeiten. Als Reaktion auf das Feststellen an Entscheidungspunkt 828, dass die Verarbeitung der ausstehenden Anforderung abgeschlossen wurde, kehrt der Prozess 800 zu Entscheidungspunkt 802 zurück und wird wie oben beschrieben wiederholt.
  • Als solcher wird der Prozess 800 ausgeführt, um Browser-Anforderungen entweder von einem Push-Server oder von einer Client-Datenverarbeitungseinheit zu verarbeiten. Der Prozess 800 kann Browser-Anforderungen Kennungen zuweisen und anfordernde Client-Einheiten darüber informieren, dass er Push-Benachrichtigungen verwenden wird, um offene Browser-Verbindungen zu verringern. Der Prozess 800 kann Ergebnisse für die Browser-Anforderung im Zeitverlauf erhalten und diese an den Push-Server senden, um sie über Push-Benachrichtigungen an die anfordernde Client-Datenverarbeitungseinheit zu senden, um offene Browser-Verbindungen zu verringern.
  • Wie oben in Verbindung mit den 1 bis 8 beschrieben wurde, sehen die beispielhaften Systeme und Prozesse die Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen vor. Es sind viele andere Abwandlungen und zusätzliche mit der Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen in Zusammenhang stehende Aktivitäten möglich, und all diese werden als sich innerhalb des Umfangs des vorliegenden Gegenstands angesehen.
  • Ein Fachmann wird bei der Betrachtung der oben aufgeführten Lehren erkennen, dass bestimmte der oben genannten Beispiele auf der Verwendung eines programmierten Prozessors wie einer CPU 202 beruhen.

Claims (9)

  1. Verfahren, aufweisend: - Empfangen einer Browser-Sendeabrufanforderung an einer Datenverarbeitungseinheit, wobei die Browser-Sendeabrufanforderung entweder eine Hypertext-Transfer-Protocol- (HTTP-) Anforderung oder eine Extensible-Markup-Language- (XML-) HTTP-Anforderung (XMLHttpRequest - XHR) aufweist; - Ermitteln, ob die HTTP-Anforderung oder die XHR der Browser-Sendeabrufanforderung durch eine Push-Benachrichtigung zu ersetzen ist, in Abhängigkeit davon, ob die Browser-Sendeabrufanforderung umfasst: eine dauerhafte Anfrage nach Aktualisierungen bei angefragten Daten über einen Zeitraum oder eine Anfrage, deren Beantwortung länger dauern wird als eine konfigurierte Zeit; und - Ersetzen HTTP-Anforderung oder der XHR der Browser-Sendeabrufanforderung durch die Push-Benachrichtigung als Reaktion auf das Feststellen, dass die Browser-Sendeabrufanforderung eine dauerhafte Anfrage nach Aktualisierungen bei angefragten Daten über einen Zeitraum oder eine Anfrage, deren Beantwortung länger als eine konfigurierte Zeit dauern wird, umfasst.
  2. Verfahren nach Anspruch 1, wobei das Ersetzen der Browser-Sendeabrufanforderung durch die Push-Anforderung als Reaktion auf das Feststellen, dass die Browser-Sendeabrufanforderung durch die Push-Anforderung zu ersetzen ist, das Veranlassen des Ausgebens einer Reihe von Push-Benachrichtigungen aufweist, um die Browser-Sendeabrufanforderung für die Aktualisierungen der angeforderten Daten im Zeitverlauf zu ersetzen.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Datenverarbeitungseinheit eine Client-Datenverarbeitungseinheit aufweist, die eine Web-Browser-Implementierung und eine Web-Anwendung ausführt, und wobei: - das Empfangen einer Browser-Sendeabrufanforderung an der Datenverarbeitungseinheit das Empfangen einer HTTP-Anforderung von der Web-Anwendung an der Web-Browser-Implementierung aufweist; - das Ersetzen der Browser-Sendeabrufanforderung durch die Push-Anforderung als Reaktion auf das Feststellen, dass die Browser-Sendeabrufanforderung durch die Push-Anforderung zu ersetzen ist, das Benachrichtigen eines Push-Servers aufweist, dass er die HTTP-Anforderung an einen Web-Server ausgeben soll; und - ferner aufweisend: - Empfangen der Push-Benachrichtigung von dem Push-Server mit den Ergebnissen einer HTTP-Antwort auf die von dem Push-Server an den Web-Server ausgegebene HTTP-Anforderung.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei die Datenverarbeitungseinheit eine Client-Datenverarbeitungseinheit aufweist, die eine Web-Browser-Implementierung und eine Web-Anwendung ausführt, und ferner aufweisend das Senden der Browser-Sendeabrufanforderung an einen Web-Server; und - wobei das Ersetzen der Browser-Sendeabrufanforderung durch die Push-Benachrichtigung als Reaktion auf das Feststellen, dass die Browser-Sendeabrufanforderung durch die Push-Anforderung zu ersetzen ist, aufweist: - Empfangen einer Bestätigung von dem Web-Server, die einen Hinweis darauf aufweist, dass der Web-Server eine Antwort auf die Browser-Sendeabrufanforderung mit Push-Operation übertragen wird; - Zuweisen mindestens einer Rückruffunktion, die als Reaktion auf das Empfangen der Push-Benachrichtigung auszuführen ist; - Registrieren für die Push-Benachrichtigung an einem Push-Server; - Empfangen der Push-Benachrichtigung von dem Push-Server; und - Ausführen der zugewiesenen mindestens einen Rückruffunktion als Reaktion auf das Empfangen der Push-Benachrichtigung.
  5. Verfahren nach Anspruch 4, wobei die Bestätigung von dem Web-Server ferner eine der Browser-Sendeabrufanforderung zugewiesene Kennung aufweist, wobei das Zuweisen der mindestens einen Rückruffunktion, die als Reaktion auf das Empfangen der Push-Benachrichtigung auszuführen ist, das Verknüpfen der mindestens einen Rückruffunktion mit der der Browser-Sendeabrufanforderung zugewiesenen Kennung aufweist, wobei die von dem Push-Server empfangene Push-Benachrichtigung die der Browser-Sendeabrufanforderung zugewiesene Kennung aufweist, und wobei: - das Ausführen der zugewiesenen mindestens einen Rückruffunktion als Reaktion auf das Empfangen der Push-Benachrichtigung aufweist: - Erkennen der zugewiesenen mindestens einen Rückruffunktion unter Verwendung der in der Push-Benachrichtigung empfangenen Kennung; und - Ausführen der zugewiesenen mindestens einen Rückruffunktion als Reaktion auf das Erkennen der zugewiesenen mindestens einen Rückruffunktion unter Verwendung der in der Push-Benachrichtigung empfangenen Kennung.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Datenverarbeitungseinheit eine Web-Server-Datenverarbeitungseinheit aufweist, und wobei: - das Empfangen einer Browser-Sendeabrufanforderung an der Datenverarbeitungseinheit das Empfangen entweder einer HTTP-Anforderung oder einer XHR von einer Client-Datenverarbeitungseinheit an der Web-Server-Datenverarbeitungseinheit aufweist; und - das Ersetzen der Browser-Sendeabrufanforderung durch die Push-Anforderung als Reaktion auf das Feststellen, dass die Browser-Sendeabrufanforderung durch die Push-Anforderung zu ersetzen ist, aufweist: - Zuweisen einer Kennung entweder zu der HTTP-Anforderung oder der XHR, die von der Client-Datenverarbeitungseinheit empfangen wurden; - Senden einer Bestätigung an die Client-Datenverarbeitungseinheit, die eine entweder der HTTP-Anforderung oder der XHR zugewiesene Kennung aufweist; und - Senden von Ergebnissen entweder der HTTP-Anforderung oder der XHR an einen Push-Server, wobei die Kennung entweder der HTTP-Anforderung oder der XHR zugeordnet ist.
  7. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Datenverarbeitungseinheit eine Web-Server-Datenverarbeitungseinheit aufweist, und wobei: - das Empfangen einer Browser-Sendeabrufanforderung an der Datenverarbeitungseinheit das Empfangen entweder einer HTTP-Anforderung oder einer XHR von einer Client-Datenverarbeitungseinheit an der Web-Server-Datenverarbeitungseinheit aufweist; - das Ermitteln, ob die Browser-Sendeabrufanforderung durch eine Push-Anforderung zu ersetzen ist, das Ermitteln aufweist, ob das Rückmelden von entweder von der HTTP-Anforderung oder der XHR angeforderte Daten an die Client-Datenverarbeitungseinheit länger als eine konfigurierte Zeit dauert; und - das Ersetzen der Browser-Sendeabrufanforderung durch die Push-Anforderung als Reaktion auf das Feststellen, dass die Browser-Sendeabrufanforderung durch die Push-Anforderung zu ersetzen ist, das Ersetzen entweder der HTTP-Anforderung oder der XHR durch die Push-Benachrichtigung als Reaktion auf das Feststellen, dass das Rückmelden der entweder von der HTTP-Anforderung oder der XHR angeforderten Daten an die Client-Datenverarbeitungseinheit länger als eine konfigurierte Zeit dauert, aufweist.
  8. System, aufweisend: - ein Nachrichtenaustausch-Schnittstellenmodul und einen Prozessor, der so programmiert ist, dass er die Schritte des Verfahrens nach einem der Ansprüche 1 bis 7 ausführt
  9. Computerprogrammprodukt aufweisend: - ein durch einen Computer lesbares Speichermedium, das durch einen Computer lesbaren Programmcode enthält, wobei der durch einen Computer lesbare Programmcode bei Ausführung auf einem Computer den Computer dazu veranlasst, das Verfahren nach einem der Ansprüche 1 bis 7 auszuführen.
DE102012218528.3A 2011-10-27 2012-10-11 Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen Active DE102012218528B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/282,916 US8954555B2 (en) 2011-10-27 2011-10-27 Using push notifications to reduce open browser connections
US13/282,916 2011-10-27

Publications (2)

Publication Number Publication Date
DE102012218528A1 DE102012218528A1 (de) 2013-05-02
DE102012218528B4 true DE102012218528B4 (de) 2021-05-06

Family

ID=47358595

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012218528.3A Active DE102012218528B4 (de) 2011-10-27 2012-10-11 Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen

Country Status (4)

Country Link
US (2) US8954555B2 (de)
CN (1) CN103164506B (de)
DE (1) DE102012218528B4 (de)
GB (1) GB2496046B (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9503540B2 (en) * 2013-05-09 2016-11-22 Nokia Technologies Oy Method and apparatus for asynchronous distribution of content
CN104331403B (zh) * 2013-07-22 2020-09-11 腾讯科技(深圳)有限公司 一种基于浏览器的动态消息查看方法、装置及系统
CN104378399B (zh) * 2013-08-15 2019-08-23 腾讯科技(深圳)有限公司 一种数据推送方法、平台服务器、客户端以及系统
US9460180B2 (en) * 2014-01-31 2016-10-04 Sap Se Data pulls
US9736256B2 (en) 2014-02-13 2017-08-15 Microsoft Technology Licensing, Llc Implementing server push at server stack
CN103957254B (zh) * 2014-05-01 2015-10-21 刘莎 一种互联网信息通用精准推送方法
US11088807B2 (en) * 2014-05-30 2021-08-10 Apple Inc. Application-level acknowledgements
NL2016189B1 (en) * 2016-02-01 2017-08-10 Head Tech Int A data link device.
CN106095886B (zh) * 2016-06-03 2020-10-09 腾讯科技(深圳)有限公司 一种数据处理方法及其装置
GB2557975A (en) * 2016-12-21 2018-07-04 Gurulogic Microsystems Oy Secure log-in procedure
US11233867B2 (en) * 2017-03-13 2022-01-25 Microsoft Technology Licensing, Llc On-demand push notification mechanism
US10951723B2 (en) * 2017-10-03 2021-03-16 International Business Machines Corporation Theme-based push notifications
CN111125142B (zh) * 2019-12-27 2024-04-05 北京深睿博联科技有限责任公司 一种数据更新方法及系统
CN111352550A (zh) * 2020-02-28 2020-06-30 网易(杭州)网络有限公司 一种信息处理方法、装置、电子设备和存储介质
CN111782306A (zh) * 2020-06-30 2020-10-16 平安银行股份有限公司 接口调用信息的处理方法及装置、电子设备、存储介质
CN112532595B (zh) * 2020-11-18 2022-07-22 四川安迪科技实业有限公司 卫星网络数据权限控制方法、装置及存储介质
KR20220151474A (ko) * 2021-05-06 2022-11-15 삼성전자주식회사 AI(artificial intelligent) 에이전트 서비스를 통해 업데이트 정보를 제공하기 위한 전자 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199665A1 (en) * 2001-07-12 2004-10-07 Omar Salim H. System and method for pushing data from an information source to a mobile communication device including transcoding of the data
US20060168139A1 (en) * 2001-10-05 2006-07-27 Bea Systems, Inc. System for integrating java servlets with asynchronous message
US20070192325A1 (en) * 2006-02-01 2007-08-16 Morris Robert P HTTP publish/subscribe communication protocol
US20080168130A1 (en) * 2007-01-09 2008-07-10 Wen-Tzer Thomas Chen Method and system for determining whether to send a synchronous or asynchronous resource request
US20090204666A1 (en) * 2008-02-13 2009-08-13 Microsoft Corporation Push mechanism for efficiently sending aggregated data items to client

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311206B1 (en) 1999-01-13 2001-10-30 International Business Machines Corporation Method and apparatus for providing awareness-triggered push
US7299349B2 (en) 2002-01-31 2007-11-20 Microsoft Corporation Secure end-to-end notification
WO2004055659A1 (en) 2002-12-13 2004-07-01 Bea Systems, Inc. System and method for mobile communication
US8856346B2 (en) 2004-01-15 2014-10-07 Unwired Planet, Llc Stateful push notifications
US7478402B2 (en) * 2004-02-12 2009-01-13 Microsoft Corporation Configurable message pipelines
US20070022198A1 (en) * 2005-07-19 2007-01-25 Samsung Electronics Co., Ltd. Method and system for pushing asynchronous notifications to networked devices
CN101296256B (zh) 2008-06-19 2012-07-04 中国电信股份有限公司 一种利用互联网实现信息精确推送的方法及系统
US7958247B2 (en) 2008-10-14 2011-06-07 Hewlett-Packard Development Company, L.P. HTTP push to simulate server-initiated sessions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199665A1 (en) * 2001-07-12 2004-10-07 Omar Salim H. System and method for pushing data from an information source to a mobile communication device including transcoding of the data
US20060168139A1 (en) * 2001-10-05 2006-07-27 Bea Systems, Inc. System for integrating java servlets with asynchronous message
US20070192325A1 (en) * 2006-02-01 2007-08-16 Morris Robert P HTTP publish/subscribe communication protocol
US20080168130A1 (en) * 2007-01-09 2008-07-10 Wen-Tzer Thomas Chen Method and system for determining whether to send a synchronous or asynchronous resource request
US20090204666A1 (en) * 2008-02-13 2009-08-13 Microsoft Corporation Push mechanism for efficiently sending aggregated data items to client

Also Published As

Publication number Publication date
DE102012218528A1 (de) 2013-05-02
CN103164506B (zh) 2016-08-24
GB2496046A (en) 2013-05-01
US9009283B2 (en) 2015-04-14
US20130111003A1 (en) 2013-05-02
GB2496046B (en) 2014-02-26
GB201219152D0 (en) 2012-12-12
US8954555B2 (en) 2015-02-10
CN103164506A (zh) 2013-06-19
US20130110997A1 (en) 2013-05-02

Similar Documents

Publication Publication Date Title
DE102012218528B4 (de) Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen
DE102006032108B4 (de) System und Verfahren für eine Mehr-Ort-Testausführung
DE10105153B4 (de) System zur automatischen Konfiguration eines tragbaren Gerätes eines Nutzers, wie insbesondere eines tragbaren Computergerätes, Software-Produkt und Verfahren zur automatischen Konfiguration eines Computersystems eines Nutzers und Programmierbares Speichermedium
DE602006000456T2 (de) Elektronisches Mobilgerät und Verfahren zur Informationsbereitstellung an ein elektronisches Mobilgerät benutzend einen Webdienst
DE102012109829A1 (de) Verfahren und Vorrichtung zum Steuern von Straßenlampen
DE112013007104B4 (de) Überwachungssystem, Gebäudemanagementgerät, Überwachungsverfahren und Programm
DE112011103486T5 (de) Kontinuierliche Anwendungsausführung zwischen mehreren Vorrichtungen
DE202016008208U1 (de) Peer-Gestützte Offline-Übermittlung von Benachrichtigungen
DE112012004330T5 (de) Überwachen und Steuern mehrerer Einheiten
EP2826224A1 (de) Zugriff von clients auf einen serverdienst mittels einer opc-ua
DE112012002631T5 (de) Stream-Verarbeitung unter Verwendung einer Client-Server-Architektur
DE112012004747T5 (de) Verborgenes automatisiertes Spiegeln von Daten für native Schnittstellen in verteilten virtuellen Maschinen
DE10204609A1 (de) Computersystem eines Typs einer verteilten Umgebung, das aufeinanderfolgende Nachrichtenkommunikationen mit hoher Geschwindigkeit durch eine Dienstschicht erreichen kann
DE202014011541U1 (de) System zum Herstellen einer Vertrauensverknüpfung
DE202019005859U1 (de) System und Einrichtung zum Auswählen eines Edge-Servers
DE112012003395T5 (de) Verfahren und System zum Aufbauf eines Netzes zum Aufladen von Elektrofahrzeugen
DE112012001357T5 (de) Verwalten einer Portalanwendung
DE102014225538A1 (de) Verwaltungsvorrichtung und verwaltungsverfahren für eine verwaltungsvorrichtung
CN109657952A (zh) 客户的分配方法、装置和存储介质
DE102013108346B4 (de) Betrieb im Schlafmodus bei vernetzten Endgeräten
DE102006010005A1 (de) Verfahren und System zum Bereitstellen von Wartungsinformationen einer medizinischen Einrichtung für das Mobilgerät eines Servicetechnikers
DE102006010539B4 (de) Verfahren zur Übertragung von Programmaktualisierungen für programmgesteuerte Einrichtungen in einem Kommunikationsnetz
CN107958052A (zh) 一种大规模网络爬虫程序的访问方法及装置
DE102013201973A1 (de) Verteilte Anwendung mit Vorwegnahme von Server-Antworten
CN102065074B (zh) 事件获取控制方法、获取装置及处理装置

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final