Upload
werner-keil
View
3.351
Download
1
Tags:
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
1
OpenDDR: Let’s enable optimized contents. Together.
Werner Keil ([email protected]) June 8th, 2012
@DMConf
@OpenDDR
@wernerkeil
2
Titolo presentazione - data
Introduction
Project Brief and Comparisons
Benefits
Implementation and Sample
Test Results
News and Outlook
Conclusion
AGENDA
3
Who am I?
Werner Keil
Consultant – CoachCreative CosmopolitanOpen Source EvangelistSoftware ArchitectJava Godfather…
Twitter @wernerkeil
Introduction
4
Titolo presentazione - data
ProliferationIntroduction
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.
6
Titolo presentazione - data
What is a DDR?Project Brief
7
Titolo presentazione - data
What is a DDR?Project Brief
8
Titolo presentazione - data
What is a DDR?Project Brief
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
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
11
Titolo presentazione - data
WURFL WallProject Comparison
12
Titolo presentazione - data
WURFL Wall since August 2011Project Comparison
13
Titolo presentazione - data
WURFL no longer Open SourceProject Comparison
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
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.
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
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%.
19
Titolo presentazione - data
DemoImplementation
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.
21
Titolo presentazione - data
WURFL Memory loadTest Result (2)
Results for WURFL
22
Titolo presentazione - data
no reduced OpenDDR Memory loadTest Result (3)
Results for not reduced OpenDDR
23
Titolo presentazione - data
Reduced OpenDDR Memory loadTest Result (4)
Results for reduced 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
25
Titolo presentazione - data
“Metro” - Open DDR for C#News
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
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
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
Twitter@OpenDDR or @wernerkeil