3. Einleitung OpenDDR
OpenDDR: Lasst uns Mobile Inhalte gemeinsam optimieren
Das Wachstum an Mobilen 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 das Device Description Repository –
kurz DDR - beigetragen wird und Anwender dieses selbst verwaltet können.
OpenDDR, das beste quelloffene, freie (auch zur kommerziellen Nutzung) Repository
für Gerätebeschreibungen zur Nutzung u.a. mit Java APIs, die den W3C Standard
DDR Simple API implementieren.
Titolo presentazione - data
3
7. Projektübersicht Was ist ein DDR?
Wenn Sie komfortable Benutzererlebnisse schaffen wollen, benötigen Sie
dynamisch anpassbare Inhalte nach den Hardware-und Browser Spezifikationen
des Geräts.
Device Description Repository (DDR) sind Datenbanken, die eine riesige Menge
von Informationen über Mobiltelefone, Tabletten, Interactive TV, Set-Top-Boxen und
jedes Gerät mit einem Web-Browser speichern. DDR ermöglichen es Entwicklern,
Anwendungen zu realisieren mit angemessenem Benutzererlebnis auf jedem Client.
Es gibt mehrere DDR-Projekte, aber:
die meisten davon verlangen eine Gebühr für ihre Datenbanken und APIs
ODER
Gewährt Zugriff auf diese Informationen kostenlos nur für die Entwicklung von nicht-
kommerzielle Anwendungen
Ein Ausweg aus diesem Dilemma: Das OpenDDR Projekt
Titolo presentazione - data
7
8. Projektvergleiche Verschiedene DDR Projekte/Produkte
PROJECT STRENGHTS WEAKNESSES LICENSE
● Device repository only with
commercial mobileAware DDR ● Repository license: commercial
(tha APIs are bundled with a small
The interface is a license only
MaDDR sample DDR)
W3C standard ● API license: commercial license
Project ● The maDDR Project cannot offer
OR Simple DDR API
an adaptation technology that
implementation licensed as LGPL
uses repository knowledge to
guide its processes
Data is multi- ● Repository license: commercial
sourced from
DeviceAtlas Only commercial licenses license
industry-leading ● API license: commercial license
partners
Wide device ● Repository license: commercial
Volantis coverage Only commercial licenses license
● API license: commercial license
● Repository license: use not
● the license does not allow to use
allowed if accessed without
the DDR without accessing
Community WURFL APIs
WURFL through the WURFL API
project ● the API does not allow use in
● API license: dual licensing AGPL
Titolo presentazione - data
and commercial
projects with a proprietary license
(Changed since August 2011)
8
10. Projektvergleiche WURFL Mauerbau August 2011
Titolo presentazione - data
10
11. Projektvergleiche WURFL nicht mehr Open Source
Titolo presentazione - data
11
12. Vorteile Warum Offene Standards?
OpenDDR basiert auf Offenen Standards:
Repository ist kompatibel zum W3C DDR Standard
Client Bibliothek implementiert die W3C DDR Simple APIs
Aus Entwicklersicht:
Erlaubt es Anwendungen im Vertrauen darauf zu entwickeln, dass diese kompatibel ist, mit jeder
W3C DDR Simple API Implementation, also man sich nicht fix an jene von OpenDDR binden muss.
Adaptiert einen W3C Standard, demnach sind Copyright der Schnittstellen definiert und geschützt
durch W3C gegen IP oder Patentansprüche.
OpenDDR ist veröffentlicht unter der Open Database License (ODbL), die OpenDDR Simple APIs
unter der Lesser General Public License (LGPL). Das bedeutet, dass es ihnen als Entwickler frei steht,
sowohl das OpenDDR Repository, als auch die APIs in Open Source bzw. Freier, ebenso wie in
Kommerzieller Software zu nutzen.
Titolo presentazione - data
12
13. Vorteile Was ist anders bei OpenDDR?
Anwender können der 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. OpenDDR betrachtet das Gerät als ein Kombination dreier wichtiger Aspekte:
Physical Device
Operating System
Web Browser
OpenDDR kann spezielle Versionen ihres Betriebssystems und Webbrowser von Drittherstellern
erkennen. Falls die Version eines bestimmten Browsers oder ein Betriebssystem nicht genau
bekannt ist, liefert OpenDDR die Information der nächst gelegenen Version, statt gar keiner.
OpenDDR erkennt ein Gerät, einen Browser oder ein Betriebssystem mit einem gewissen
Vertrauensgrad.
Sie können den gewünschten Präzisionsgrad beim Erkennungsprozess selbst bestimmen.
Größerer Vertrauensgrad kann längere Erkennungszeiten bewirken; während ein geringerer
Vertrauensgrad die Erkennung beschleunigt, dabei aber das Risiko weniger präziser Erkennung birgt.
OpenDDR erlaubt das Patchen der Datenquelle.
13
14. Code und Forum Open Source Projekt
Die offizielle OpenDDR Website:
http://www.openddr.org
OpenDDR Quellcode und Ressourcen bei GitHub:
https://github.com/OpenDDR-org
Ein OpenDDR Forum wurde bei Google Groups gegründet:
http://groups.google.com/group/openddr
Titolo presentazione - data
14
15. Anwendungsbeispiele Konfiguration
OpenDDR implementiert die W3C Simple API Schnittstelle. Es unterstützt das Basisvokabular, das im
DDR W3C Recommendation Dokument festgelegt wurde.
Um OpenDDR Simple API zu nutzen, müssen Sie lediglich Werte der folgenden 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.openddr.org/oddr-vocabulary
oddr.threshold=70
Die oddr.threshold Eigenschaft erlaubt dem Entwickler, den gewünschten Vertrauensgrad festzulegen.
n diesem Fall wählen wir einen Vertrauensgrad von zumindest 70%.
Titolo presentazione - data
15
16. Anwendungsbeispiele Implementation
Zur Erstellung eines Identification Service nutzen wir die ServiceFactory aus der W3C DDR-Simple-API.jar
Service identificationService = ServiceFactory.newService("org.openddr.simpleapi.oddr.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 OpenDDR Properties Datei.
Hier ein kurzes Beispiel um “displayWidth”, “model” und “vendor” Eigenschaften aus dem Standardvokabular zu erhalten.
and the default aspect (as specified in vocabulary).
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);
}
PropertyRef[] propertyRefs = new PropertyRef[] {displayWidth, vendorRef, modelRef};
Evidence e = new ODDRHTTPEvidence();
e.put("User-Agent", request.getHeader("User-Agent"));
try {
PropertyValues propertyValues = identificationService.getPropertyValues(e, propertyRefs);
PropertyValue displayWidth = propertyValues.getValue(displayWidthRef);
PropertyValue vendor = propertyValues.getValue(vendorRef);
PropertyValue model = propertyValues.getValue(modelRef);
if (displayWidth.exist() && vendor.exists() && model.exists()) {
... Titolo presentazione - data
}
} catch (Exception ex) {
throw new RuntimeException(ex);
}
16
18. Zusammenfassung Warum OpenDDR?
Offen, Frei und basierend auf W3C Standards.
Aktualisierung des DDR erfolgt durch Mitglieder der Gemeinschaft und Gerätehersteller.
Die Erkennung erfolgt nicht nur für das Gerät als Einzelnes, sondern in Erweiterter Form gemeinsam
mit Webbrowser und Betriebssystem. OpenDDR kann darüber hinaus Browser von Drittherstellern
und speziell angepasste Versionen von Betriebssystemen erkennen. Entwickler können das Vokabular
zur Erkennung angeben, sowie Aspekte und Eigenschaften, die sie darin nutzen wollen.
Basierend auf dem identification threshold. Falls eine bestimmte Version eines Browsers oder Geräts
nicht gefunden wird, liefert OpenDDR 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.
23
19. Ausblick Apache DeviceMap
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ört zu den Gründungsmitgliedern des DeviceMap Inkubators und stellt insbesondere
die Java Clients und damit verbundenen Quellcode als Initial Contribution zur Verfügung.
Mehr unter:
http://incubator.apache.org/devicemap/
Bzw. dem Proposal Wiki:
http://wiki.apache.org/incubator/DeviceMapProposal
Titolo presentazione - data
24