27
1 OpenDDR: Let’s enable optimized contents. Together. Werner Keil ([email protected]) June 8th, 2012 @DMConf @OpenDDR @wernerkeil

OpenDDR

Embed Size (px)

DESCRIPTION

OpenDDR is the ultimate open solution to the device fragmentation issues. Because of the wide diversity of devices available on the market, the developers dealing with web content optimization need to know hardware and software specs of each device. To face this situation the most effective solution is using a Device Description Repository, a database storing a huge amount of information concerning mobile phones, tablets, Interactive TVs, set top boxes and any device with a Web browser.

Citation preview

Page 1: OpenDDR

1

OpenDDR: Let’s enable optimized contents. Together.

Werner Keil ([email protected]) June 8th, 2012

@DMConf

@OpenDDR

@wernerkeil

Page 2: OpenDDR

2

Titolo presentazione - data

Introduction

Project Brief and Comparisons

Benefits

Implementation and Sample

Test Results

News and Outlook

Conclusion

AGENDA

Page 3: OpenDDR

3

Who am I?

Werner Keil

Consultant – CoachCreative CosmopolitanOpen Source EvangelistSoftware ArchitectJava Godfather…

Twitter @wernerkeil

Introduction

Page 4: OpenDDR

4

Titolo presentazione - data

ProliferationIntroduction

Page 5: OpenDDR

5

Titolo presentazione - data

OpenDDRIntroduction

OpenDDR: let's enable optimized contents. Together

Day after day we all experience an incredible growth and fragmentation of devices available on a more and more proliferated market. Accurately tracking their specs has become very hard work.

But this complexity can be reduced if managed by a community daily involved in improving the Device Description Repository (DDR).This is the essence of OpenDDR project, the best open and completely free repository of device description currently available.

Page 6: OpenDDR

6

Titolo presentazione - data

What is a DDR?Project Brief

Page 7: OpenDDR

7

Titolo presentazione - data

What is a DDR?Project Brief

Page 8: OpenDDR

8

Titolo presentazione - data

What is a DDR?Project Brief

Page 9: OpenDDR

9

Titolo presentazione - data

What is a DDR?Project Brief

If you want a comfortable user experience, you need dynamically adaptable content according to hardware and browser specifications of your deviceDevice Description Repositories (DDR) are databases that store a huge amount of information concerning mobile phones, tablets, Interactive TVs, set top boxes and any device having a Web browser. DDR allow developers to realize applications providing appropriate user experience on each client

There are several DDR projects across the web but:demand you a fee to access to their databases and APIsORLet you access this information for free only for developing non-commercial applications

Need different Approach: OpenDDR Project

Page 10: OpenDDR

10

Titolo presentazione - data

DDR Projects ComparisonProject ComparisonProject Strength Weakness 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: Commercial license onlyAPI: Commercial license OR Simple DDR API implementation licensed as LGPL

DeviceAtlas Data is multi-sourced from industry-leading partners

Only commercial licenses Repository: Commercial licenseAPI: Commercial license

Volantis Relatively wide device coverage

Only commercial licenses Repository: Commercial licenseAPI: Commercial license

WURFL Former Community project (till Aug 2011)

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

Repository: Use not allowed if accessed without WURFL APIsAPI license: dual licensing AGPL and commercial(Changed since August 2011)

51Degrees.mobi Predictable product catalogue, .NET Support

Free license contains fewer devices, could be less accurate

Repository: MPL or Commercial („Pro Edition“)API: Mozilla Public License

Page 11: OpenDDR

11

Titolo presentazione - data

WURFL WallProject Comparison

Page 12: OpenDDR

12

Titolo presentazione - data

WURFL Wall since August 2011Project Comparison

Page 13: OpenDDR

13

Titolo presentazione - data

WURFL no longer Open SourceProject Comparison

Page 14: OpenDDR

14

Titolo presentazione - data

Why Open Standards?Project Brief

OpenDDR stakes on open standards: • Repository is fully compliant with W3C DDR • Access library implements the W3C DDR Simple APIs

From a developer point of view:• You can start developing your application with confidence that your product

will work with any W3C DDR Simple API implementation, no binding to OpenDDR implementation

• Adopting a W3C standard, the Copyright of the interfaces you need isowned and protected by W3C against any intellectual property andpatent claim

OpenDDR is released under Open Database License (ODbL), and OpenDDRSimple APIs are released under Gnu Lesser General Public License (LGPL).

This means that you are completely free to use both OpenDDR repository and/orAPIs in open source or proprietary software

Page 15: OpenDDR

15

What's different in OpenDDR?Project Brief

Users can update the operating systems of their devices (also with custom builds) and/or install new web browsers. The identification of a device through the original User Agentexposed by manufactures is no longer sufficient. OpenDDR considers the device as a set of three important aspects:

Physical DeviceOperating SystemWeb Browser

OpenDDR can identify custom builds of the operating system and third party browsers.

If a particular version of a browser or an operating system is not recognized,OpenDDR returns information about the closest version rather thannot returning any information at all.

Page 16: OpenDDR

16

What's different in OpenDDR?Project Brief

OpenDDR identifies a device, a web browser or an operating system with a certain level of Confidence.

You can specify the threshold as a target to achieve in the identification process.The higher the confidence the slower the process may be;

Lowering the confidence speeds upthe process, even if you can have less accurate results.OpenDDR supports Patching the data source

Page 17: OpenDDR

17

Titolo presentazione - data

ConfigurationImplementation

OpenDDR implements the W3C Simple API interface. It supports the corevocabulary as specified in the DDR W3C recommendation document.

To use the OpenDDR Simple API you need to configure a property file as the follow:oddr.ua.device.builder.path=PATH/BuidlerDataSource.xmloddr.ua.device.datasource.path=PATH/DeviceDataSource.xmloddr.ua.device.builder.patch.paths=PATH/BuilderDataSourcePatch.xmloddr.ua.device.datasource.patch.paths=PATH/DeviceDataSourcePatch.xmloddr.ua.browser.datasource.path=PATH/BrowserDataSource.xmlddr.vocabulary.core.path=PATH/coreVocabulary.xmloddr.vocabulary.path=PATH/oddrVocabulary.xmloddr.limited.vocabulary.path=PATH/oddrLimitedVocabulary.xmloddr.vocabulary.device=http://www.openddr.org/oddr-vocabularyoddr.threshold=70

The oddr.threshold property allows the developer to specify what is the desired confidence to achieve the identification.In this case we want a confidence of at least, 70%.

Page 18: OpenDDR

19

Titolo presentazione - data

DemoImplementation

Page 19: OpenDDR

20

Titolo presentazione - data

Introduction to test resultTest Result (1)

In OpenDDR we can specify a reduced vocabulary in order to limit the memory load.It can be specified in the oddr.limited.vocabulary.path property of the oddr properties file.It allows developers to choose which properties need to be loaded in memory at thestartup from the datasource. In most case developers need only a subsetof properties from the datasource.

We compared OpenDDR with WURFL API (1.3.1) in terms of memory load in two situations:Without limited vocabulary With limited vocabulary

We used jMeter as workload generator, configuring it in order to generate 100 requestsper secondsfrom 10 worker with a different user agent. The user agents set contained ten of most common user agent observed in a real environment.Both OpenDDR and WURFL API was tested in a simple web app.

Page 20: OpenDDR

21

Titolo presentazione - data

WURFL Memory loadTest Result (2)

Results for WURFL

Page 21: OpenDDR

22

Titolo presentazione - data

no reduced OpenDDR Memory loadTest Result (3)

Results for not reduced OpenDDR

Page 22: OpenDDR

23

Titolo presentazione - data

Reduced OpenDDR Memory loadTest Result (4)

Results for reduced OpenDDR

Page 23: OpenDDR

24

ResultTest Result (5)

We chose as limited vocabulary the W3C core vocabulary

The memory load of OpenDDR with limited vocabulary is only of 50MB and, after initialization, OpenDDR doesn't show a memory spike.

Both APIs identified correctly all the user agents in the HTTP request

Page 24: OpenDDR

25

Titolo presentazione - data

“Metro” - Open DDR for C#News

Page 25: OpenDDR

26

Titolo presentazione - data

Apache DeviceMapOutlook

In late 2011 a few months after OpenDDR started, Apache Foundation and committing members like Adobe got aware of the technology and its relevance,too. Deciding to create both a unified Device Repository and APIs for some of the most common languages including Java

OpenDDR is a Founding Member of the DeviceMap Incubator.And will contribute Client Libraries for Java and other relevant languagesto its repositories.

More at:http://incubator.apache.org/devicemap/

Also see the Proposal Wiki:http://wiki.apache.org/incubator/DeviceMapProposal

Page 26: OpenDDR

27

Why OpenDDR?Conclusion

Open, free and based on a W3C standard. Update to DDR coming from the community and device manufacturers.Identification is not only for the device as a single entity but extended to the web browser and the operating system. OpenDDR can identify third parties web browsers and custom builds of operating systems. A developer can specify the vocabulary and the aspects of the property he wants to know.

Based on identification threshold. When a particular browser version is not recognized,OpenDDR returns properties of the nearest version, if this supposition satisfies the thresholddecided by the developer.

The developer can choose which properties must be loaded in memory, specifying a limited vocabulary → No Waste of Memory.

Patch Support: if you want to change or update your repository you can do that.It is simple to add new properties updating your DDR and your vocabulary.

Future-Proof: Joint Effort of Apache DeviceMap Project will be compatible with OpenDDR

Page 27: OpenDDR

28

Titolo presentazione - data

Open Source ProjectResources

OpenDDR Organization and Repositories at GitHub:https://github.com/OpenDDRdotORG

We have also created a discussion group related to OpenDDR project:http://groups.google.com/group/openddr

[email protected]

Twitter@OpenDDR or @wernerkeil