Windows 8: Kacheln für den besseren Überblick

Dank der datengesteuerten Architektur von Windows 8 können Sie mehrere Anwendungen gleichzeitig ausführen, ohne Leistungseinbußen oder eine Beeinträchtigung der Akkulaufzeit in Kauf nehmen zu müssen.

Ryan Haveson

Heutzutage hat so ziemlich jeden PC, Laptop oder mobile Umgebung irgendeine Form von Gadget, Widget oder Plug-in-Modell, das Sie auf einen Blick Informationen gibt. TV News, Sport oder Wetter innerhalb einer strukturierten Bildschirm kannst du mit vielen Datenquellen kommen zusammen in Echtzeit sehen. Sie erwarten, dass man schnell überprüfen, Ihre Aktien, Wetter, E-mail, Termine oder auch soziale Netzwerke Status in einer Angelegenheit von Sekunden immer wieder auf was auch immer du tust.

Daraus ergibt sich eine massive Belastung für die Leistung und Lebensdauer der Batterie. In vielerlei Hinsicht könnte man argumentieren, dass moderne PCs hat einigen Nachholbedarf in diesem Bereich im Vergleich zu Laptops und anderen mobilen Geräten. Die Herausforderung war bei der Konzeption der Benachrichtigungsinfrastruktur in Windows 8, wie das PC-Gefühl mit Aktivität lebendig machen, während er weiterhin für einen effizienten Betrieb in Bezug auf Leistung und Bandbreiten-Nutzung.

Windows 8 Start Bildschirm macht diese Art der Operation aus Sicht der Benutzer effizient, denn Sie erhalten eine Vollbildanzeige Heads-up ohne zu stören Ihren Desktop oder andere apps. Neben wirksamen, wollten wir sicherstellen, dass Sie installieren könnte so vielen notifizierende apps wie Sie wollen, ohne sich Sorgen um die Auswirkungen auf die Leistung oder Batterie Leben. Windows 8 Start-Bildschirm können Sie als eine einheitliche und sehr lesbaren Heads-up-Display für Line-of-Business (LOB) Anwendungen. Auf diese Weise ist es ein Vergrößerer Produktivität geworden.

Mit unserer neuen Plattform der Push-Benachrichtigungen die Skalierbarkeit, kann Windows 8 diese Fähigkeiten mit minimalen Auswirkungen liefern. Auch die meisten hardcore nur Desktop-Person finden sehr viel Wert im Startbildschirm als ein zentrales, gut präsentiert und kontrollierte Infobereich, die nur einen Tastendruck entfernt ist.

Benachrichtigung-Ziele

Hunderte von live app Fliesen ermöglicht während Sie gleichzeitig sicherstellen, dass keine Performance-Einbußen macht es den Anschein, wie wir widersprüchliche Ziele haben. Schließlich verbraucht eine "Aktivität" per definitionem Ressourcen. Immer eine Benachrichtigung von der Wolke, nutzt das Netzwerk. Rendern die Benachrichtigung auf eine Kachel verwendet Prozessorressourcen. Um das Design richtig zu machen, mussten wir auf die Ziele konzentrieren, die begannen wir mit:

  • Hunderte von live-Kacheln zu ermöglichen, ohne Performance-Einbußen
  • Ausgehen Sie hin, Luftballons, Buttons und Text, mit attraktiven Bildern
  • Machen Sie es einfach für Entwickler, so dass sie nur "fire and forget können"
  • Real-Time-Lieferung zu erreichen, so dass "instant Messages" liefern sofortige ist

Basierend auf diese Ziele, wurde die erste grundlegende architektonische Entscheidung, dass die Plattform von datengesteuerten wäre. Kein app-Code sollte im Hintergrund, macht Sie im Bildschirm Start ausgeführt. Wenn Sie über die Anatomie eines Benachrichtigungsübermittlung Systems denken, geht es um mehrere Stücke. Es gibt Logik für die Verbindung, Authentifizierung, lokale Zwischenspeicherung, rendern, Fehlerbehandlung, Backoff-Algorithmen, Drosseln und so weiter. Das System muss auch behandeln dienstseitige Themen wie das wissen, wenn Sie verbunden sind. Es muss nicht übermittelten Inhalte zwischenspeichern und behandeln komplexe Szenarien für wiederholen können.

Können Sie sich vorstellen, wenn jede einzelne app mit einem live-Ziegel seine eigene Version der gesamten Client/Server-Code hatte? Nicht nur müssen Sie verschiedene Fehler in jede Implementierung aber Duplikate der im Wesentlichen den gleichen Code für jede app in den Speicher geladen. Dieser Code würde ständig ein-und auf die Festplatte ausgelagert werden. Dies wäre sehr ineffizient, da alle Ihre apps aller Zeiten, der Startbildschirm lebendig zu halten ausgeführt werden würde. Sogar auf einem Rechner mit viel Speicher würde schließlich Systemleistung auf ein Schneckentempo mahlen.

Sie erhöhen die Anzahl der Prozesse, DLLs und gleichzeitig ausgeführten Dienste beeinträchtigt die Leistung. Wenn jede live-Kachel mit seinem eigenen Code ausgeführt wurde, wäre Hunderte von Leben Fliesen ohne Performance-Einbußen gestattet unmöglich. Die Lösung war eine datengesteuerte Modell zu bauen.

Dies bedeutet, dass ein app-Entwickler seine Fliese mit einem Satz von vordefinierten Eigenschaften und Vorlagen zum Ausdruck bringen kann. In diesem Fall wird ein XML-Schema verwendet. Die Fliese für XML-Daten ist dann zu Windows Push Notification Services (WNS) über einen einfachen HTTP-POST geschickt und der Rest kümmert sich Windows 8. Der Code für verbinden, erneuter Versuch, Authentifizierung, Zwischenspeichern, Rendering und Fehlerbehandlung in einheitlich und leistungseffiziente unternommen.

Die Entscheidung für ein Modell von datengesteuerten half uns die ersten beiden Ziele Leistung und eine originalgetreue Erfahrung. Jedoch blieb die Herausforderung zur Bestimmung wie Real-Time-Lieferung und Feuer-und-vergessen-It-Effizienz zu erreichen.

Umfrage und push

Es gibt zwei allgemeine Design-Muster mit Client/Server-Content-Delivery — Abruf- und Stoß. Abruf der Mittel, die der Client mit dem Dienst in regelmäßigen Abständen (z.B. alle 90 Minuten) auf neue Inhalte überprüfen überprüft. Push bedeutet, dass wenn die neuer Inhalt vorhanden ist, der Dienst die Daten auf dem Client direkt sendet.

Sofortbenachrichtigungen mit einem Abrufintervall Modell unterstützen die einzige Möglichkeit wäre auf eine ausreichend hohe Frequenz (z. B. alle 5 Sekunden) Abfragen. Auf diese Weise sollte eine neue Nachricht eingetroffen sein, würde Sie es sofort sehen. Aber tun damit das Leistungsniveau töten würde. Mit einem Abrufintervall von 5 Sekunden der Radio-Netzwerkstapel wäre nie im Leerlauf, Akkulaufzeit wäre schrecklich und desktop-Rechner würde immer eingeschaltet.

Es wäre ein wenig wie sprechen auf Ihrem Handy den ganzen Tag. Ihres Telefons Batterie würde nicht lange dauern. Darüber hinaus wäre es äußerst verschwenderisch den Server überprüft alle 5 Sekunden für Inhalt, als die meiste Zeit gäbe nichts Neues. System Tray Benachrichtigungen und desktop Gadgets in Windows Vista eingeführt haben in der Vergangenheit eine Abrufmechanismus verwendet. Aber mit jedem Abrufmechanismus ist das Intervall noch nicht kurz genug für heutige Echtzeit-Dienste.

Das ist, warum Windows 8 einen Push-basierte Service nutzt. Das war eine große Entscheidung, denn es bedeutete, dass die Plattform auf globaler Ebene schließlich Einschalten der Fliesen für Hunderttausende von apps und mehr als 1 Milliarde Menschen gebaut wurde. Der Wert war klar. Entwickler erhalten effiziente Echtzeit-Benachrichtigungen für ihre Kunden kostenlos, ohne zu bauen oder pflegen dauerhafte Verbindungen an den Client.

Die Stoß-Plattform

Werfen wir einen genaueren Blick auf die verschiedenen Komponenten der Plattform erklären einige der subtileren Teile des Designs. Es gibt drei wichtige Elemente:

  1. **WNS:**Diese Befugnisse Leben Fliesen und Benachrichtigungen Rösten.
  2. **App-Service:**Dies ist der Webdienst, der läuft apps und sendet Toast Benachrichtigungen und Fliese-updates über WNS. Ein Beispiel hierfür wäre die Back-End-Dienst für die Wetter-app, die in der Developer Preview versendet oder eine Back-End-Dienst hosten Fotos für eine Sozialnetzwerkanschluß-app.
  3. **Windows 8 Client-Plattform:**Dies entspricht der tatsächlichen PC und Unterkomponenten im Betriebssystem, die die Grundstruktur für die End-to-End-Erfahrung bilden.

Hier ist eine typische Verwendungsszenario zu veranschaulichen, wie das funktioniert. Genommen Sie an, ein app-Dienst ist eine social-networking-Website, die sendet ein Kachel-Update, wenn jemand einen zu einem Foto Kommentar. Dies könnte genauso leicht eine LOB-Anwendung sein, die Sie mit neuen Aufgaben aktualisiert oder wenn eine Spesenabrechnung Aufmerksamkeit benötigt. Wenn es ein Update, sendet der app-Dienst eine Benachrichtigung an WNS.

Von dort schiebt WNS die Benachrichtigung auf dem Client. Wenn es die Zeit das Fliese-Update auf dem Bildschirm Start zu zeigen ist, holt das OS dieses Bild aus der app-Service, basierend auf der URL in der Benachrichtigung XML. Sobald die Anmeldung und das Image heruntergeladen werden, wird die app rendert die live Kachel, basierend auf der Vorlage in den XML-Code angegeben und stellt sie auf dem Bildschirm Start.

Machen Sie dies wirklich "fire and forget" — und sicherzustellen, dass die Entwickler nicht haben, um komplexe Schreibcache und wiederholen Sie Mechanismen für wann der PC angeschlossen ist nicht — wir Zwischenspeichern einer Benachrichtigung pro app in der Wolke WNS bis zum nächsten Mal, die PC online ist.

Wie wir die Client-Plattform-Komponenten entwickelt, wollten wir sicherstellen, dass alles auf hohe Leistung und niedrigen Stromverbrauch ausgelegt war. Einer der wichtigsten Teile dieser war die Benachrichtigung Nutzlast aus der Nutzlast Bild trennen. Eine typische XML-Benachrichtigung ist weniger als 1 KB Daten. Ein Bild kann bis zu 150 KB sein. Diese Trennung half uns erhebliche Netzwerkbandbreite für Szenarien speichern wo es viele Bild duplizieren.

Beispielsweise könnte das Bild für eine Kachel ein Profilbild eines Freundes sein. Ihr PC kann dies einmal heruntergeladen und lokal zwischengespeichert. Trennen die Benachrichtigung aus dem Bild hilft uns be smart über ungenutzte Benachrichtigungen verwerfen, bevor Sie das Bild herunterladen. Wenn ein Bildschirm ausgeschaltet ist, gibt es keinen Sinn, Herunterladen von Bildern für Fliesen, die nur durch nachfolgende Aktualisierungen vor der nächsten Zeit ersetzt werden, die das Gerät verwendet wird.

Das Authentifizierungsmodell

Da Leben Fliesen und Benachrichtigungen einen wichtigen Teil der app-Erlebnis darstellen, ist es wichtig, daß der Kommunikationskanal authentifiziert ist und sicher. Daher wird Windows 8 anonyme Authentifizierungsmechanismus, der die Verbindung zwischen dem PC und WNS eindeutig. Apps und app-Services authentifizieren auch bei der Kommunikation mit WNS.

Beide Verbindungen mit WNS Authentifizierung schützt vor live-Kachel Update Missbrauch, wie spoofing-Angriffe. WNS explizit verwendeten Authentifizierungsmechanismus verbindet die Anwendungen und Dienste. Es tut dies in einer Weise, die hält, andere Anwendungen (oder Personen) senden von Inhalt an eine Kachel, die sie nicht besitzen. Und natürlich die gesamte Kommunikation erfolgt über einen sicheren Kanal.

Dies funktioniert unabhängig davon, ob Sie in Windows mit eine Windows Live ID angemeldet sind Windows 8 ist am besten, wenn Sie einen verbundenen Kontos haben, wie Sie Zugang zu Verbesserungen wie app-Cloud-Speicher haben; servergespeicherten Windows und app-Einstellungen; und single-Sign-on für mehrere Anwendungen. Die Push-Benachrichtigung-Plattform verwendet einen anonyme Authentifizierungsmechanismus, so dass selbst wenn Sie mit einer Windows Live ID unterzeichnen, der app-Entwickler die Benachrichtigung Pipeline nicht mithilfe Ihrer Windows Live ID, Systeminfo oder Ort suchen.

Gebäude skalieren

Die Plattform hat eine unglaublich große Anzahl von Benutzern und Anwendungen zu unterstützen. Während der Pre-Beta Entwicklungsphase waren wir schon fast 90 Millionen Ziegel Updates pro Tag senden. Die Aktien-app ist eine der populären apps aus dem Developer Preview Build testen. Wenn die Vorschau für Entwickler veröffentlicht wurde, sahen wir sorgfältig Datenverkehr, der durch die Rechenzentren, die Skalierung zu überwachen.

Das WNS-Design basiert auf der Architektur des Windows Live Messenger. In der Tat wurde vom selben Team der Serviceteil der Benachrichtigungen-Plattform gebaut. Hier sind ein paar Statistiken zu Ihnen heute eine Vorstellung vom Ausmaß der Windows Live Messenger-Service:

  • 300 Millionen monatlich aktive Nutzer
  • 630 Millionen täglichen Anmeldungen
  • 10 Milliarden täglichen Benachrichtigungen
  • Mehr als 40 Millionen Maximum für gleichzeitige online Verbindungen (SOCs)
  • Mehr als 3.000 Maschinen Weiterleiten von Nachrichten auf der ganzen Welt

Um die Leistung der Plattform Mitteilungen sorgfältig zu überwachen, fügten wir Metriken in der neue Task Manager, lassen Sie verfolgen wie viel Bandbreite die Fliese-Plattform für jede app in Anspruch nimmt. Ressource: Einsatz für Fliesen sollten relativ gering sein.

In Windows 8 machten wir uns eine Plattform für Benachrichtigungen zu entwerfen, die auf einen Blick Informationen, ohne alle die Leistung und die Batterie Lebens sorgen bieten würde, die traditionelle plug-in und Gadget-basierten Modellen konfrontiert. Zu diesem Zweck wurde jede Entwurfsentscheidung, die wir durch die Linse der Leistung und die Batterie Lebens Effizienz betrachtet.

Um es einfach für app-Entwickler an, bauten wir WNS also Entwickler live Kacheln erstellen könnte, ohne kompliziertes Netzwerk Konnektivität Code schreiben zu müssen. Da WNS standard Web-Technologien wie z. B. HTTP POST verwendet, ist es einfach für Entwickler, Benachrichtigungen, basierend auf ihrer bestehenden Webservices zu integrieren.

Das Ergebnis ist eine Benachrichtigungen-Plattform, die auf einen Blick Informationen liefert. Noch können Sie trotzdem installieren so viele apps wie Sie wollen, ohne sich Gedanken über die Auswirkungen auf die Leistung oder Batterie-Leben.

Ryan Haveson

Ryan Haveson hat mehr als 15 Jahre Erfahrung führender engineering-Teams und die Bereitstellung von Software und Services für einige der weltweit bekanntesten Marken, darunter Xbox und Windows. Er war eine Gruppenmanager im Windows Experience-Team für Windows 8. Er und sein Team konzipiert und geliefert, Endbenutzer und Entwickler gerichteten Funktionen wie die live-Kachel Benachrichtigungen-Plattform und den neuen Task-Manager. Er führt derzeit der Entwicklungsgruppe Systeme bei Qualcomm Inc. für die Windows/Windows Phone auf Snapdragon Division im sonnigen San Diego. Sie erreichen ihn unter ryanhaveson@hotmail.com oder linkedin.com/in/ryanha

Verwandte Inhalte