Das Wachstum an Mobiltelefonen, Tablets und ähnlichen Geräten, die den Markt geradezu überschwemmen erleben wir Tag für Tag.
Die Spezifikation jedes Einzelnen genau zu verfolgen ist ein Knochenjob. Diese Mühe kann reduziert werden, wenn zur Verbesserung dasDevice Description Repository – kurz DDR - beigesteuert wird und Anwender dieses selbst verwaltet können.
Apache DeviceMap enstand als Kooperation von Adobe, OpenDDR und anderen, um ein umfassendes Open Source Daten-Repository mit Geräteinformationen, Bilder und andere relevante Informationen für alle Arten von mobilen Geräten zu schaffen, Smartphones, Tablets, Smart-TV, u.dgl.
Das Projekt begann im Januar 2012, im Herbst 2012 wurden DDR APis für Java und .NET von OpenDDR beigesteuert. Die nächsten Schritte sind ein gemeinschaftliches Device Repository, eine Speicher-Struktur, die langfristige Erhaltung und Pflege dieser Daten durch die Apache Gemeinde erlaubt, unter Nutzung geläufiger Formate, wahrscheinlich JSON und / oder XML.
2. Titolo presentazione - data
Einleitung
Geschichte
Projektvergleiche
Grundlagen
Anwendungsbeispiele
Benchmarks
Demos
Zusammenfassung
Links
Agenda
3. Titolo presentazione - data
Einleitung
Consultant – Coach
Creative Cosmopolitan
Open Source Evangelist
Software Architect
Java Godfather
UOMo Project Lead
JSR 363 Co Spec Lead
ETCS Guy …
Email wkeil@apache.org
Twitter @wernerkeilWas bin ich?
Werner Keil
4. Titolo presentazione - data
Einleitung
Das Wachstum an Geräten, die den Markt überschwemmen
schreitet beinahe täglich voran.
Von Mobiltelefonen, Tablets über Smart TV bis zum Auto
oder gar zur Smart Watch reichen vernetzte Geräte im IoT Zeitalter.
Lasst uns Mobile Inhalte gemeinsam optimieren
Apache DeviceMap
6. Titolo presentazione - data
Einleitung
Die Spezifikation jedes Einzelnen genau zu verfolgen ist ein Knochenjob.
Diese Mühe kann reduziert werden, wenn zur Erkennung
Informationen bereitstehen, die möglichst viele
Anwender/Entwickler selbst mit verwaltet können.
Wenn Sie ansprechende Benutzererlebnisse schaffen wollen,
benötigen Sie dynamisch anpassbare Inhalte
gemäß den Hardware-und Browser Spezifikationen
des jeweiligen Geräts.
Apache DeviceMap
Lasst uns Mobile Inhalte gemeinsam optimieren
10. Titolo presentazione - data
Es hilft, wenn zur Erkennung ein
Device Description Repository – kurz DDR beigezogen wird
Device Description Repository (DDR) ist eine Datenbank, die große
Mengen an Information über Mobiltelefone, Tablets, Interactive TV,
Set-Top-Boxen und jedes Gerät mit einem Web-Browser speichert.
DDR ermöglichen es Entwicklern, Anwendungen mit angemessenem
Benutzererlebnis für jeden Client zu realisieren.
Apache DeviceMap ist das derzeit beste Open Source Repository
zur Geräteerkennung für die Nutzung mit Java (und anderen) APIs,
das den W3C Standard DDR Simple API implementiert.
Einleitung
DDR
14. Geschichte
Ende 2011 wurde ein paar Monate nach dem Start von
OpenDDR auch die Apache Foundation auf das Thema
aufmerksam. Und beschloss, ein Device Repository
sowie APIs für die wichtigsten Plattformen und Sprachen zu
schaffen.
OpenDDR gehörte zu den Gründungsmitgliedern des
DeviceMap Inkubators und stellte wesentliche Grundlagen des
Client Code (Java, .NET) sowie DDR Ressource Daten und damit
verbundenen Quellcode als Initial Contribution zur Verfügung.
Ursprüngliches Proposal im Apache Wiki:
http://wiki.apache.org/incubator/DeviceMapProposal
15. Titolo presentazione - data
Es gibt einige DDR oder DDR-artige Projekte, aber:
die meisten davon erheben Lizenzen oder eine Gebühr für „ihre“
Datenbanken und APIs
ODER
Gewähren Zugriff auf diese Informationen kostenlos nur für die
Entwicklung von nicht-kommerzielle Anwendungen
Einer der wenigen Auswege aus diesem Dilemma:
Das Apache DeviceMap Projekt
Projektvergleiche
16. Titolo presentazione - data
Projekt Stärken Schwächen Lizenz
MaDDR Projekt Kompatibel zu W3C
Standard
Device Repository funktioniert nur
mit kommerziellem mobileAware
DDR (APIs beinhalten einfaches
Beispiel DDR) Das maDDR Projekt
bietet keine adaptive Technologie für
optimierte Geräteerkennung
Repository: Nur kommerzielle
Lizenz
API: Kommerzielle Lizenz oder
Simple DDR API mit LGPL Lizenz
DeviceAtlas Daten werden von
verschiedenen , führenden
Partnern aus der Industrie
geliefert
Nur kommerzielle Lizenz Repository: Kommerzielle Lizenz
API: Kommerzielle Lizenz
Volantis Relativ breite
Geräteabdeckung
Nur kommerzielle Lizenz Repository: Kommerzielle Lizenz
API: Kommerzielle Lizenz
WURFL Ehemals Community
Projekt (bis Aug 2011)
Die Lizenz erlaubt keine Nutzung des
Repositories ohne das kommerzielle
API
Die API erlaubt keine Nutzung in
Projekten mit eigener Lizenz!
Repository: Nutzung ohne WURFL
API unzulässig
API: Kommerzielle Lizenz, „Alibi“
AGPL, kommerzielle Nutzung
unzulässig
51Degrees.mobi Vorhersehbare
Produktpalette, .NET
Unterstützung
Eingeschränkter Umfang und
Nutzungsmöglichkeit freier Daten
Repository: MPL oder
Kommerziell („Pro Edition“)
API: Mozilla Public Lizenz
Projektvergleiche
17. Grundlagen
DeviceMap basiert auf Offenen Standards:
Repository ist kompatibel zum W3C DDR Standard
Client Bibliothek implementiert W3C DDR Simple APIs
Aus Entwicklersicht:
Erlaubt es Anwendungen im Vertrauen darauf zu entwickeln,
dass diese kompatibel zu anderen W3C DDR Simple API
Implementationen sind, also man sich nicht fix an jene von
DeviceMap binden muss.
Adaptiert W3C Standard, demnach sind Schnittstellen definiert
und geschützt durch W3C sowie Apache Foundation gegen IP
oder Patentansprüche.
DeviceMap unterliegt der Apache License 2.0. APIs und Daten
sind in freier oder kommerzieller Software nutzbar.
18. Grundlagen
Anwender können bzw. müssen Betriebssysteme ihrer Geräten
aktualisieren (auch eigene Builds) und / oder einen neuen Web-
Browser installieren. Die Identifizierung eines Gerätes durch
den ursprünglichen User Agent, der von Herstellern
bereitgestellt wird, ist oft nicht mehr ausreichend.
DeviceMap betrachtet das Gerät als ein Kombination dreier
wichtiger Aspekte:
Physical Device
Operating System
Web Browser
19. Grundlagen
DeviceMap kann spezielle Versionen ihres Betriebssystems
und Webbrowser von Drittherstellern erkennen. Falls die
Version eines bestimmten Browsers oder ein Betriebssystem
nicht genau bekannt ist, liefert DeviceMap die Information der
nächst gelegenen Version, statt gar keiner.
DeviceMap erkennt ein Gerät, einen Browser oder ein
Betriebssystem mit einem gewissen Vertrauensgrad. Sie
können dessen gewünschte Präzision beim Erkennungsprozess
selbst bestimmen. Größerer Vertrauensgrad kann längere
Erkennungszeiten bewirken; während geringerer
Vertrauensgrad die Erkennung beschleunigt, dabei aber das
Risiko weniger präziser Erkennung birgt.
DeviceMap erlaubt auch das Patchen der Datenquelle.
21. Titolo presentazione - data
DeviceMap implementiert die W3C Simple API Schnittstelle. Es unterstützt das
Basisvokabular, das im DDR W3C Recommendation Dokument festgelegt wurde.
Um DeviceMap Simple API zu nutzen, müssen Sie lediglich Werte einer
derartigen Property Datei anpassen:
oddr.ua.device.builder.path=PATH_TO_FILE/BuidlerDataSource.xml
oddr.ua.device.datasource.path=PATH_TO_FILE/DeviceDataSource.xml
oddr.ua.device.builder.patch.paths=PATH_TO_FILE/BuilderDataSourcePatch.xml
oddr.ua.device.datasource.patch.paths=PATH_TO_FILE/DeviceDataSourcePatch.xml
oddr.ua.browser.datasource.path=PATH_TO_FILE/BrowserDataSource.xml
ddr.vocabulary.core.path=PATH_TO_FILE/coreVocabulary.xml
oddr.vocabulary.path=PATH_TO_FILE/oddrVocabulary.xml
oddr.limited.vocabulary.path=PATH_TO_FILE/oddrLimitedVocabulary.xml
oddr.vocabulary.device=http://www.DeviceMap.org/oddr-vocabulary
oddr.threshold=70
Die oddr.threshold Eigenschaft erlaubt dem Entwickler, den gewünschten Vertrauensgrad
festzulegen. In diesem Fall wählten wir einen Vertrauensgrad von zumindest 70%.
Anwendungsbeispiele
22. Anwendungsbeispiele
Titolo presentazione - data
Zur Erstellung eines Identification Service nutzen wir die ServiceFactory der
W3C DDR-Simple-API.jar
Service identificationService = ServiceFactory.newService
("org.apache.devicemap.simpleapi.ODDRService",
ODDR_VOCABULARY_IRI, initializationProperties);
Das erste Argument ist die implementierende Klasse des DDRService;
das zweite Argument ist das Standardvokabular zur
Identifikation, falls kein Vokabular explizit angegeben wurde;
das dritte Argument ist die DeviceMap Properties Datei.
Hier ein kurzes Beispiel um “displayWidth”, “model” und “vendor”
Eigenschaften aus dem Standardvokabular zu erhalten.
PropertyRef displayWidthRef;
PropertyRef vendorRef;
PropertyRef modelRef;
try {
displayWidthRef = identificationService.newPropertyRef("displayWidth");
vendorRef = identificationService.newPropertyRef("vendor");
modelRef = identificationService.newPropertyRef("model");
} catch (NameException ex) {
throw new RuntimeException(ex); }
[…]
26. Titolo presentazione - data
Benchmarks
Wir wählten für den Test das limitierte W3C core vocabulary
Der Speicherbedarf von DeviceMap mit limited vocabulary
ist lediglich 50MB und nach einer initialen Startphase hat
DeviceMap keinen erhöhten Speicherbedarf mehr.
Beide APIs konnten alle User Agents aus den HTTP requests
korrekt erkennen.
28. Zusammenfassung
Offen, Frei und basierend auf W3C Standards.
Unter der Apache Lizenz.
Aktualisierung des DDR erfolgt durch Mitglieder der
Gemeinschaft oder Gerätehersteller
Die Erkennung erfolgt nicht nur für das Gerät als Einzelnes,
sondern in Erweiterter Form zusammen mit Webbrowser und
Betriebssystem. DeviceMap kann darüber hinaus Browser von
Drittherstellern und speziell angepasste Versionen von
Betriebssystemen erkennen → Embedded/Automotive,…
Entwickler können das Vokabular zur Erkennung angeben,
sowie Aspekte und Eigenschaften, die sie darin nutzen wollen.
29. Zusammenfassung
Basierend auf identification threshold. Falls eine bestimmte
Version des Browsers oder Geräts nicht gefunden wird, liefert
DeviceMap die Eigenschaften der nächst gelegenen Version,
so lange diese Annahme die vom Entwickler gewünschte
Genauigkeit erfüllt.
Entwickler können entscheiden, welche und wie viele
Eigenschaften sie benötigen, und so ein
limitiertes Vokabular nutzen → Keine Speicherverschwendung.
Patch Unterstützung: Falls eine geänderte oder neuere Version
des Repositories erforderlich ist, kann diese Änderung einfach
durch Anpassung der entsprechenden Eigenschaften
vorgenommen werden. Und neues Repository und Vokabular
werden genutzt.
30. Links
Die DeviceMap Incubator Site:
http://incubator.apache.org/devicemap/
DeviceMap Quellcode und Ressourcen:
http://incubator.apache.org/devicemap/source.html
Mailing Listen:
http://incubator.apache.org/devicemap/mailing-lists.html
BrowserMap GitHub Mirror:
https://github.com/apache/devicemap-browsermap