Software fragt Hardware: Was kannst du? Björn Pilarski 1
Agenda 1. Warum ist Hardwareerkennung notwendig? 2. Was müssen wir über die Hardware wissen? 3. Wie können wir Eigenschaften mobiler Endgeräte erkennen? 4. Wie zuverlässig funktioniert dies in der Praxis? 2
Teil 1 WARUM HARDWAREERKENNUNG NOTWENDIG IST. 3
Diffusion mobiler Endgeräte nimmt zu Die Marktpenetration mobiler Endgeräte lag 2010 bei 133% 104% 96% 86% 79% 68% 72% 59% 118% 131% 132% 133% 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 Marktpenetration mobiler Endgeräte (vgl. Bundesnetzagentur 2011, 86). 4
Akzeptanz mobiler Datendienste steigt Erwartetes Wachstum mobiler Datennutzung von 4000% 3,6 2,2 1,2 0,09 0,2 0,6 2009 2010 2011 2012 2013 2014 Volumen mobiler Datennutzung in Terabytes (vgl. Cisco 2010, 2). 5
Problem: hohe Marktfragmentierung ios Android Symbian OS RIM OS Andere Marktanteile mobiler Betriebssysteme (vgl. AdMob 2010, 10). 6
Lösung: Webseiten und -anwendungen Webbrowser als Abstraktionsschicht Standardisierte Formate für Darstellung 7
Teil 2 WO DIE HERAUSFORDERUNGEN MOBILER WEBANWENDUNGEN LIEGEN. 8
Herausforderung: Heterogenität Ausgabemedium Eingabemedium Browser 9
Herausforderung: Mobilität Kommunikationstechnologien Übertragungskosten Rechenleistung Akkulaufzeit 10
Erkennungsrelevante Eigenschaften Ausgabemedium Eingabemedium Auflösung Farbtiefe Texteingabe Navigation Rendering-Engine Browser Technologien Formate Kommunikationstechnologie Markup Verbindungsart 11
Teil 3 WIE EIGENSCHAFTEN ERKANNT WERDEN KÖNNEN. 12
Erkennungsmöglichkeiten Erkennungsmöglichkeiten direkte Ermittlung indirekte Ermittlung serverseitig (HTTP Request-Header) clientseitig (JavaScript) dezentral (CC/PP mit UAProf) zentral (WURFL, DeviceAtlas, HandsetDetection) 13
Serverseitige Erkennung: HTTP 01 x-wap-profile: 02 http://www.blackberry.net/go/mobile/profiles/uaprof/8310/4.2.2.rdf 03 04 User-Agent: 05 BlackBerry8310/4.2.2 Profile/MIDP-2.0 Configuration/CLDC-l.1 VendorID/l02 06 07 Accept: 08 application/vnd.rim.html,text/html,application/xhtml+xml,application/vnd.wap.xhtml+xml, 09 text/vnd.sun.j2me.app-descriptor,image/vnd.rim.png,image/jpeg,application/x- 10 vnd.rim.pme.b, application/vnd.rim.ucs,image/gif;anim:l,application/vnd.wap.wmlc; 11 q=0.9,17,application/vnd.wap.wmlscriptc;q=0.7,text/vnd.wap.wml;q=0.7,*/*;q=0.5 Blackberry Curve 8310 01 Accept: 02 application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8, 03 image/png,*/*;q=0.5 04 05 User-Agent: 06 Mozilla/5.0 (iphone; U; CPU iphone OS 4_2_1 like Mac OS X; de-de) 07 AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 08 Safari/6533.18.5 iphone 4 14
Clientseitige Erkennung: JavaScript navigator.useragent navigator.mimetypes navigator.plugins window.screen 15
Dezentrale Erkennung: UAProf Profil-Datenbank Endgerät (3) Übermittlung des angeforderten UAProf-Profils (4) Auf Endgerät optimierte Antwort (2) Abruf der referenzierten UAProf-Komponenten an angegebener URI (1) Anfrage mit UAProf-Profil (durch URI referenziert) Webserver 16
Zentrale Erkennung: WURFL (2) Datenbank- oder XML-gestützte Evaluierung von Endgeräteeigenschaften anhand des HTTP Message Headers Endgerät (3) Auf Endgerät optimierte Antwort (1) HTTP-Anfrage an Webserver Webserver 17
HTTP Request Header JavaScript CC/PP und UAProf WURFL Handset- Detection DeviceAtlas Bewertung einzelner Lösungen Umgebungsspezifische Eigenschaften Browser + + - - - - Hardwarespezifische Eigenschaften Eingabemedium -- -- / ++ ++ + Ausgabemedium -- ++ / ++ ++ ++ Kommunikationsnetz -- -- ++ / / / Lösungsspezifische Eigenschaften Integration -- ++ ++ ++ ++ ++ Datenqualität -- -- -- / ++ ++ 18
Teil 4 WIE GUT DIES IN DER PRAXIS FUNKTIONIERT. 19
Untersuchungsbereich Wie zuverlässig funktioniert die Erkennung von Eigenschaften? Untersuchte Lösungen: JavaScript UAProf WURFL DeviceAtlas HandsetDetection 20
Aufbau der Studie (4) Ergänzung der Daten um angegebenen Endgerätetyp (2) Aufzeichnung von erkannten Eigenschaften durch jede Lösung Endgerät (3) Angabe von Endgerätetyp (1) HTTP-Anfrage an Webserver Webserver 21
Ausgewertete Stichprobe 20 unterschiedliche mobile Endgeräte 36 unterschiedliche Browser 6 Desktop-PCs als mobile Endgeräte erkannt Auswertung durch Vergleich der aufgezeichneten Daten mit Spezifikationen 22
Ergebnisse: Vollständigkeit 100 % 90 % 85 % 76 % 24 % WURFL HandsetDetection DeviceAtlas JavaScript UAProf 23
Ergebnisse: Richtigkeit 100 % JavaScript UAProf WURFL HandsetDetection DeviceAtlas 80 % 60 % 40 % 20 % 0 % Auflösung Farbtiefe Komm.-Netz Navigation Texteingabe Formate Standards 24
Zu guter Letzt FAZIT. 25
Fazit Erkennung in vielen Bereichen unvollständig oder Fehlerhaft Fehlerhafte Erkennung führt zu fehlerhafter Optimierung Jedwede Erkennung erzeugt einen Overhead 26
Vielen Dank für Ihre Aufmerksamkeit Fragen? 27