OpenDDR Deutsch

19
Geräteerkennung für Mobile Webanwendungen Werner Keil ([email protected]) 16. Januar 2012 #WMFra @OpenDDR @wernerkeil

description

Präsentation vom WebMontag Frankfurt

Transcript of OpenDDR Deutsch

Page 1: OpenDDR Deutsch

1

Geräteerkennung für Mobile Webanwendungen

Werner Keil ([email protected]) 16. Januar 2012

#WMFra @OpenDDR @wernerkeil

Page 2: OpenDDR Deutsch

2

Titolo presentazione - data

Einleitung Projektübersicht Projektvergleiche Vorteile Code und Forum Anwendungsbeispiele Zusammenfassung Ausblick

AGENDA

Page 3: OpenDDR Deutsch

3

Titolo presentazione - data

OpenDDR Einleitung

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.

Page 4: OpenDDR Deutsch

4

Titolo presentazione - data

Was ist ein DDR? Projektübersicht

Page 5: OpenDDR Deutsch

5

Titolo presentazione - data

Was ist ein DDR? Projektübersicht

Page 6: OpenDDR Deutsch

6

Titolo presentazione - data

Was ist ein DDR? Projektübersicht

Page 7: OpenDDR Deutsch

7

Titolo presentazione - data

Was ist ein DDR? Projektübersicht

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

Page 8: OpenDDR Deutsch

8

Titolo presentazione - data

Verschiedene DDR Projekte/Produkte Projektvergleiche

PROJECT STRENGHTS WEAKNESSES LICENSE

MaDDR Project

The interface is a W3C standard

●Device repository only with commercial mobileAware DDR (tha APIs are bundled with a small sample DDR)●The maDDR Project cannot offer an adaptation technology that uses repository knowledge to guide its processes

●Repository license: commercial license only●API license: commercial license OR Simple DDR API implementation licensed as LGPL

DeviceAtlas

Data is multi-sourced from industry-leading partners

Only commercial licenses

●Repository license: commercial license ●API license: commercial license

VolantisWide device coverage Only commercial licenses

●Repository license: commercial license ●API license: commercial license

WURFLCommunity project

●the license does not allow to use the DDR without accessing through the WURFL API●the API does not allow use in projects with a proprietary license

●Repository license: use not allowed if accessed without WURFL APIs●API license: dual licensing AGPL and commercial(Changed since August 2011)

Page 9: OpenDDR Deutsch

9

Titolo presentazione - data

WURFL Mauerbau Projektvergleiche

Page 10: OpenDDR Deutsch

10

Titolo presentazione - data

WURFL Mauerbau August 2011 Projektvergleiche

Page 11: OpenDDR Deutsch

11

Titolo presentazione - data

WURFL nicht mehr Open Source Projektvergleiche

Page 12: OpenDDR Deutsch

12

Titolo presentazione - data

Warum Offene Standards? Vorteile

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.

Page 13: OpenDDR Deutsch

13

Was ist anders bei OpenDDR? Vorteile

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.

Page 14: OpenDDR Deutsch

14

Titolo presentazione - data

Open Source Projekt Code und Forum

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

Page 15: OpenDDR Deutsch

15

Titolo presentazione - data

Konfiguration Anwendungsbeispiele

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%.

Page 16: OpenDDR Deutsch

16

Titolo presentazione - data

Implementation Anwendungsbeispiele

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()) {

...

}

} catch (Exception ex) {

throw new RuntimeException(ex);

}

Page 17: OpenDDR Deutsch

17

Titolo presentazione - data

Montagsdemo Anwendungsbeispiele

Page 18: OpenDDR Deutsch

23

Warum OpenDDR? Zusammenfassung

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.

Page 19: OpenDDR Deutsch

24

Titolo presentazione - data

Apache DeviceMap Ausblick

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