Push -Technologie

Push -Technologie oder Serverschub ist ein Stil von Internet-basierte Kommunikation, bei der die Anfrage für eine bestimmte Transaktion vom Verlag oder Zentral initiiert wird Server. Es steht im Gegensatz zu mit ziehen/Get, wo die Anfrage zur Übertragung von Informationen vom Empfänger oder vom Empfänger ausgelöst wird oder Klient.

Push -Dienste basieren häufig auf den im Voraus geäußerten Informationspräferenzen. Dies wird a genannt veröffentlichen/abonnieren Modell. Ein Client "abonniert" verschiedene Informationen "Kanäle", die von einem Server bereitgestellt wurden. Immer wenn neue Inhalte auf einem dieser Kanäle verfügbar sind, überträgt der Server diese Informationen an den Client.

Push wird manchmal mit einem emuliert Umfragen Technik, insbesondere unter Umständen, bei denen ein echter Push nicht möglich ist, wie Standorte mit Sicherheitsrichtlinien, die die Ablehnung eingehender HTTP/s -Anforderungen erfordern.

Allgemeiner Gebrauch

Synchronkonferenzen und Instant Messaging sind typische Beispiele für Push -Dienste. Chat -Nachrichten und manchmal Dateien werden an den Benutzer weitergegeben, sobald er vom Messaging -Dienst eingeht. Beide dezentralisiert Peer-To-Peer Programme (wie z. ABFALL) und zentralisierte Programme (wie z. IRC oder XMPP) Pushing -Dateien zulassen, was bedeutet, dass der Absender eher die Datenübertragung als den Empfänger initiiert.

Email Kann auch ein Push -System sein: SMTP ist ein Push -Protokoll (siehe E-Mail schießen). Der letzte Schritt - vom Mailserver zum Desktop -Computer - verwendet jedoch typisch ein Pull -Protokoll wie Pop3 oder IMAP. Moderne E-Mail-Kunden lassen diesen Schritt wiederholt augenblicklich erscheinen Umfragen Der Mailserver überprüft ihn häufig auf neue E -Mails. Das IMAP -Protokoll enthält das LEERLAUF Befehl, mit dem der Server dem Client mitteilen kann, wann neue Nachrichten eintreffen. Das Original Brombeere war das erste beliebte Beispiel für Push-Eemail in einem drahtlosen Kontext.

Ein anderes Beispiel ist das Pointcast -Netzwerk, was in den 1990er Jahren weit verbreitet war. Es lieferte Nachrichten und Aktienmarktdaten als Bildschirmschoner. Beide Netscape und Microsoft integrierte Push -Technologie durch die Kanaldefinitionsformat (CDF) in ihre Software auf dem Höhepunkt der Browserkriege, aber es war nie sehr beliebt. CDF verblasste und wurde aus den Browsern der Zeit entfernt, ersetzt in den 2000er Jahren durch RSS (ein Pull -System.)

Andere Verwendungen von Push-fähig Web Applikationen Integrieren Sie die Verbreitung von Software -Updates ("Push -Updates"), Marktdatenverteilung (Stock Tickers), Online -Chat-/Messaging -Systeme (Systemeinternetchat), Auktionen, Online -Wetten und Spiele, Sportergebnisse, Überwachung von Konsolen und Sensornetzwerk Überwachung.

Beispiele

Webpush

Der Webpush -Vorschlag der Internettechnik-Arbeitsgruppe ist ein einfaches Protokoll verwendet HTTP Version 2 Echtzeitveranstaltungen wie eingehende Anrufe oder Nachrichten zu liefern, die zeitnah geliefert (oder „gedrückt“) werden können. Das Protokoll konsolidiert alle Echtzeit Ereignisse in eine einzelne Sitzung, die eine effizientere Nutzung von Netzwerk- und Funkressourcen gewährleistet. Ein einzelner Dienst konsolidiert alle Ereignisse und vertreibt diese Ereignisse an Anwendungen, sobald sie ankommen. Dies erfordert nur eine Sitzung, wobei die doppelten Gemeinkosten vermieden werden.[1]

Webbenachrichtigungen sind Teil von W3c Standard und definiert eine API Für Endbenutzerbenachrichtigungen. Eine Benachrichtigung ermöglicht es, den Benutzer außerhalb des Kontextes einer Webseite eines Auftretens zu alarmieren, z. B. die Lieferung von E -Mails.[2] Im Rahmen dieser von W3C definierten Standard -Push -API wird jetzt von Chrome, Firefox, implementiert, Randund Safari.[3]

HTTP -Server Push

HTTP -Server -Push (auch als HTTP -Streaming bekannt) ist ein Mechanismus zum Senden unerwünschter (asynchroner) Daten von a Webserver zu einem Webbrowser. Der HTTP -Server -Push kann durch mehrere Mechanismen erreicht werden.

Als Teil von html5 die Websocket API ermöglicht es einem Webserver und einem Client, über a zu kommunizieren Vollduplex TCP -Verbindung.

Im Allgemeinen beendet der Webserver eine Verbindung nicht, nachdem die Antwortdaten einem Client zugestellt wurden. Der Webserver lässt die Verbindung geöffnet, so dass, wenn ein Ereignis auftritt (z. B. eine Änderung der internen Daten, die an einen oder mehrere Clients gemeldet werden muss), sofort gesendet werden kann. Andernfalls müsste die Veranstaltung in die Warteschlange gestellt werden, bis der nächste Antrag des Kunden eingegangen ist. Die meisten Webserver bieten diese Funktionalität über CGI (z. B. Skripte mit nicht paratierten Headern auf Apache HTTP Server). Der zugrunde liegende Mechanismus für diesen Ansatz ist Chunked Transfer -Codierung.

Ein weiterer Mechanismus hängt mit einem besonderen zusammen MIME Typ genannt Mehrfach-/X-Misch-Replace, was vorgestellt wurde von Netscape 1995 interpretieren Webbrowser dies als ein Dokument, das sich ändert, wenn der Server eine neue Version zum Client drückt.[4] Es wird immer noch unterstützt von Feuerfuchs, Oper, und Safari Heute, aber es wird von ignoriert von Internet Explorer[5] und wird nur teilweise unterstützt von Google Chrome.[6] Es kann auf angewendet werden Html Dokumente und auch zum Streaming von Bildern in Webcam Anwendungen.

Das Waswg Webanwendungen 1.0 Vorschlag[7] Beinhaltet einen Mechanismus, um Inhalte an den Client zu bringen. Am 1. September 2006 implementierte der Opera Webbrowser dieses neue experimentelle System in einer Funktion namens "Server-Sent-Ereignisse".[8][9] Es ist jetzt Teil der HTML5 Standard.[10]

Drang

In dieser Technik nutzt der Server die Vorteile Persistente HTTP -Verbindungenund die Antwort ständig "offen" (d. H. Der Server beendet die Antwort nie) und täuscht den Browser effektiv, um im "Laden" -Modus zu bleiben, nachdem die Last der Anfangsseiten als vollständig angesehen werden kann. Der Server sendet dann regelmäßig JavaScript -Snippets, um den Inhalt der Seite zu aktualisieren, wodurch die Push -Fähigkeit erreicht wird. Durch die Verwendung dieser Technik benötigt der Kunde nicht Java -Applets oder andere Plug-Ins, um eine offene Verbindung zum Server zu erhalten; Der Client wird automatisch über neue Ereignisse benachrichtigt, die vom Server gedrückt wurden.[11][12] Ein schwerwiegender Nachteil dieser Methode ist jedoch die mangelnde Kontrolle, die der Server über das Browser -Timing hat. Eine Aktualisierung von Seite ist immer erforderlich, wenn am Browserende eine Auszeit eintritt.

Lange Umfragen

Lange Umfragen ist selbst kein wahrer Schub; Lange Umfragen ist eine Variation des Traditionellen Umfragen Technik, aber es ermöglicht die Emulation eines Push -Mechanismus unter Umständen, unter denen ein echter Push nicht möglich ist, z.

Mit langer Umfragen fordert der Client Informationen vom Server genau wie bei normalen Umfragen an, aber mit der Erwartung reagiert der Server möglicherweise nicht sofort. Wenn der Server bei Empfang der Umfrage keine neuen Informationen für den Client hat, anstatt eine leere Antwort zu senden, hält der Server die Anforderung geöffnet und wartet darauf, dass Antwortinformationen verfügbar werden. Sobald es neue Informationen enthält, sendet der Server sofort eine HTTP/S -Antwort an den Client, wobei die Open HTTP/S -Anforderung abgeschlossen wird. Nach Erhalt der Serverantwort stellt der Client häufig eine andere Serveranforderung sofort aus. Auf diese Weise wird die übliche Antwortlatenz (die Zeit zwischen den Informationen zuerst bei der nächsten Client -Anfrage) beseitigt, da sie mit den Polling -Clients verbunden sind.[13]

Zum Beispiel, Bosh ist eine beliebte, langlebige HTTP-Technik, die als langwierige Alternative zu einer kontinuierlichen TCP-Verbindung verwendet wird, wenn eine solche Verbindung schwierig oder unmöglich zu verwenden ist (z. B. in einem Webbrowser);[14] Es ist auch eine zugrunde liegende Technologie in der XMPP, was Apple für seine iCloud -Push -Unterstützung verwendet.

Flash XMLSocket -Relais

Diese Technik, die von verwendet wird Plaudern Anwendungen nutzen die Xmlsocket Objekt in einem Einzelpixel Adobe Flash Film. Unter der Kontrolle von JavaScript, der Kunde legt a fest TCP -Verbindung zu einem unidirektional Relay auf den Server. Der Relay -Server liest nichts daraus Steckdose; Stattdessen sendet es sofort dem Kunden a eindeutige Kennung. Als nächstes macht der Kunde eine HTTP -Anfrage auf den Webserver, einschließlich dieser Kennung. Die Webanwendung kann dann Nachrichten an den Client an eine lokale Schnittstelle des Relay -Servers verschieben, die sie über den Flash -Socket weiterleitet. Der Vorteil dieses Ansatzes besteht darin, dass er die natürliche Les-Schreib-Asymmetrie schätzt, die für viele Webanwendungen, einschließlich Chat, typisch ist und infolgedessen eine hohe Effizienz bietet. Da es keine Daten zu ausgehenden Sockets akzeptiert, muss der Relay -Server keine ausgehenden TCP -Verbindungen befragen überhauptEs ermöglicht, Zehntausende von gleichzeitigen Verbindungen offen zu halten. In diesem Modell ist die Grenze zu skalieren der TCP -Stapel des zugrunde liegenden Server -Betriebssystems.

Zuverlässige Gruppendatenzustellung (RGDD)

In Diensten wie Cloud Computing, um die Zuverlässigkeit und Verfügbarkeit von Daten zu erhöhen, wird sie normalerweise auf mehrere Maschinen übertragen (repliziert). Zum Beispiel stellt das Hadoop Distributed Dateisystem (HDFS) 2 zusätzliche Kopien eines gespeicherten Objekts vor. RGDD konzentriert sich darauf, ein Objekt effizient von einem Ort an viele zu werfen und gleichzeitig die Bandbreite zu sparen, indem die minimale Anzahl von Kopien (nur eines im besten Fall) des Objekts über einen beliebigen Link über das Netzwerk gesendet wird. Zum Beispiel DataCast [15] ist ein Schema für die Lieferung an viele Knoten innerhalb von Rechenzentren, die sich auf regelmäßige und strukturierte Topologien und DCCast beruhen [16] ist ein ähnlicher Ansatz für die Bereitstellung über die Datencenter.

Push-Benachrichtigung

Eine Push -Benachrichtigung ist eine Nachricht, die von Backend Server oder Anwendung zur Benutzeroberfläche "gedrückt" wird, z. (aber nicht beschränkt auf) mobile Anwendungen[17] und Desktop -Anwendungen. Push -Benachrichtigungen wurden zuerst von vorgestellt von Apfel in 2009.[18][zweifelhaft ] In 2010 Google veröffentlichte seinen eigenen Service, Google Cloud to Device Messaging (seitdem zuerst ersetzt von Google Cloud Messaging und dann Firebase Cloud Messaging).[19] November 2015, Microsoft kündigte an, dass die Windows -Benachrichtigungsdienst würde erweitert, um die universelle Windows -Plattformarchitektur zu nutzen, sodass Push -Daten gesendet werden können Windows 10, Windows 10 Mobile, Xboxsowie andere unterstützte Plattformen, die universelle API -Anrufe und Postanfragen verwenden.[20]

Push -Benachrichtigungen sind hauptsächlich in 2 Ansätze, lokale Benachrichtigungen und Fernbenachrichtigungen unterteilt.[21] Für lokale Benachrichtigungen plant die Anwendung die Benachrichtigung mit dem Betriebssystem des lokalen Geräts. Bei Remote -Benachrichtigungen legt die Anwendung einen Timer in der Anwendung selbst fest, sofern sie kontinuierlich im Hintergrund ausgeführt werden kann. Wenn die geplante Zeit des Ereignisses erreicht ist oder der programmierte Zustand des Ereignisses erfüllt ist, wird die Nachricht in der Benutzeroberfläche der Anwendung angezeigt.

Remote -Benachrichtigungen werden von einem Remote -Server behandelt. Unter diesem Szenario muss die Client -Anwendung auf dem Server mit einem eindeutigen Schlüssel registriert werden (z. B. a Uuid). Der Server füllt dann die Nachricht gegen den eindeutigen Schlüssel, um die Nachricht über ein vereinbartes Client/Server -Protokoll wie z. Http oder XMPP und der Client zeigt die empfangene Nachricht an. Wenn die Push -Benachrichtigung eintrifft, kann sie kurze Benachrichtigungen und Nachrichten übertragen, Abzeichen für Anwendungssymbole festlegen, blinken oder kontinuierlich aufleuchten Benachrichtigung geführt, oder spielen Sie Alarm -Sounds, um die Aufmerksamkeit des Benutzers zu erregen.[22] Push -Benachrichtigungen werden normalerweise von Anwendungen verwendet, um Informationen auf die Aufmerksamkeit der Benutzer zu lenken. Der Inhalt der Nachrichten kann in den folgenden Beispielkategorien klassifiziert werden:

  • Chat -Nachrichten, z. B.: Nachrichten von Facebook Messenger von anderen Benutzern gesendet.[23]
  • Anbieter -Sonderangebote, z. B. ein Anbieter, möchte möglicherweise ihre sozialen Angebote für die Kunden bewerben.
  • Ereigniserinnerung, z. B.: Eine Anwendung kann es dem Kunden ermöglichen, Erinnerungen oder Warnung für eine bestimmte Zeit zu erstellen.
  • Abonnierte Themenänderungen, z. B.: Benutzer möchten möglicherweise Aktualisierungen des Wetters an ihrem Standort erhalten oder eine Webseite überwachen, um beispielsweise Änderungen zu verfolgen.

In Echtzeit-Push-Benachrichtigungen können Datenschutzprobleme aufgeworfen werden, da sie verwendet werden können, um virtuelle Identitäten sozialer Netzwerk-Pseudonyme an die tatsächlichen Identitäten der Smartphone-Eigentümer zu binden.[24] Die Verwendung unnötiger Push -Benachrichtigungen für Werbezwecke wurde als Beispiel von kritisiert Aufmerksamkeitsdiebstahl.[25]

Siehe auch

Verweise

  1. ^ M. Thomson, E. Damaggio und B. Raymor (22. Oktober 2016). "Generische Ereignisbereitstellung mit HTTP -Push". Internetentwurf. Internettechnik-Arbeitsgruppe. Abgerufen 28. Oktober, 2016.
  2. ^ "Web -Benachrichtigungen".
  3. ^ "Web -Push -API".
  4. ^ CGI -Programmierung im World Wide Web O'Reilly-Buch, in dem erklärt wird, wie man Netscape Server-Push verwendet
  5. ^ Server-Push-Dokumente (HTML & XHTML: Der definitive Handbuch) Archiviert 2008-04-17 bei der Wayback -Maschine O'Reilly-Buch erklärt Server-Push
  6. ^ Entfernen Sie die Unterstützung für die Hauptressourcen mit mehrteiler/x-mixed-Replace
  7. ^ "Webanwendungen 1.0 Spezifikation".
  8. ^ "Event -Streaming für Webbrowser". 2006-09-01. Abgerufen 2007-03-23.
  9. ^ "Opera übernimmt die Führung mit AJAX -Unterstützung unter den Browsern: effizienteres Streaming". 2006-09-01. Archiviert von das Original am 2007-03-18. Abgerufen 2007-03-23.
  10. ^ "HTML Standard-Server-Sent-Ereignisse". html.spec.whatwg.org. 31. März 2022. Abgerufen 1. April 2022.{{}}: CS1 Wartung: URL-Status (Link)
  11. ^ Drücken Einführung
  12. ^ Van den Broecke, Just (1. März 2000). "Busings: Senden Sie Ereignisse von Servlets an DHTML -Client -Browser". JavaRld. Abgerufen 2020-07-13.
  13. ^ Saint-Andre, Peter; Loreto, Salvatore; Salsano, Stefano; Wilkins, Greg (April 2011). "RFC6202 - Bekannte Probleme und Best Practices für die Verwendung langer Umfragen und Streaming in bidirektionaler HTTP". Abgerufen 2016-05-14. {{}}: Journal zitieren erfordert |journal= (Hilfe)
  14. ^ "XEP-0124: Bidirektionale Streams über synchronem HTTP (Bosh)". Abgerufen 2012-06-26.
  15. ^ C. Guo; et al. (1. November 2012). "DataCast: Ein skalierbarer und effizienter zuverlässiger Gruppendatenertragsdienst für Rechenzentren". Microsoft Research. ACM. Abgerufen 6. Juni, Juni, 2017.
  16. ^ M. NoorMohammadpour; et al. (10. Juli 2017). "DCCAST: Effizienter Punkt zu Multipoint -Transfers in den Rechenzentren". Usenix. Abgerufen 6. Juni, Juni, 2017.
  17. ^ Wohllebe, Atilla. (2020). "Akzeptanz von App -Push -Benachrichtigungen der Verbraucher: systematische Überprüfung zum Einfluss der Häufigkeit". Internationales Journal of Interactive Mobile Technologies. 14 (13): 36–47. doi:10.3991/ijim.v14i13.14563.
  18. ^ "iPhone -Push -Benachrichtigungsdienst für Entwickler angekündigt". Engadget. Abgerufen 2016-10-18.
  19. ^ "Google Cloud Messaging für Android (GCM) enthüllt, um das C2DM -Framework zu ersetzen.". Infoq. Abgerufen 2016-10-18.
  20. ^ Mijacobs. "Windows Push Benachrichtigungsdienste (WNS) Übersicht". docs.microsoft.com. Abgerufen 2017-10-20.
  21. ^ "Lokale und entfernte Benachrichtigungen ausführlich". Entwickler.apple.com. Abgerufen 2016-10-18.
  22. ^ "Android und iOS -Push -Benachrichtigungen - Blog - Jatapp". jatapp.com. Abgerufen 2017-10-20.
  23. ^ "Wie kann ich meine mobilen Push -Benachrichtigungen von Facebook anpassen? | Facebook Help Center | Facebook". www.facebook.com. Abgerufen 2016-10-18.
  24. ^ Loreti, Pierpaolo; Bracciale, Lorenzo; Caponi, Alberto (2018). "Push -Angriff: Bindende virtuelle und reale Identitäten mithilfe mobiler Push -Benachrichtigungen". Zukünftiges Internet. 10 (2): 13. doi:10.3390/fi10020013.
  25. ^ McFedries, Paul (22. Mai 2014). "Hör auf, Aufmerksamkeitsdieb!". IEEE -Spektrum. Institut für Elektro- und Elektronikingenieure. Abgerufen 9. August 2021.

Externe Links