OpenDDR
Upcoming SlideShare
Loading in...5
×
 

OpenDDR

on

  • 3,656 views

OpenDDR is the ultimate open solution to the device fragmentation issues. Because of the wide ...

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.

Statistics

Views

Total Views
3,656
Views on SlideShare
3,621
Embed Views
35

Actions

Likes
0
Downloads
20
Comments
0

3 Embeds 35

http://www.php-talks.com 31
http://www.phptalks.de 3
http://www.php-talks.de 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

OpenDDR OpenDDR Presentation Transcript

  • Let’s enable optimized contents. Together. Werner Keil ( [email_address] ) Nov 4 th , 2011
  • Titolo presentazione - data
    • Introduction
    • Project Brief
    • Google Code and Group
    • Implementation and Sample
    • Test Results
    • Benefits
    • Conclusions
    AGENDA
    • OpenDDR: let's enable optimized contents. Together
      Day after day we all experience an incredible growth of devices available on the market and accurately tracking their specs has became a 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 available worldwide.
    Titolo presentazione - data OpenDDR INTRODUCTION
  • Titolo presentazione - data What is a DDR Project Brief
  • Titolo presentazione - data What is a DDR Project Brief
  • 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 device Device 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 APIs
                  • OR
    • Let you access this information for free only for developing non-commercial applications
    • Need different Approach: OpenDDR Project
    Titolo presentazione - data What is a DDR 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 APIs implementation , no binding to OpenDDR implementation
    • Adopting a W3C standard, the Copyright of the interfaces you need is owned and protected by W3C against any intellectual property and patent claim
    OpenDDR is released under Open Database License (ODbL), and OpenDDR Simple APIs are released under Lesser General Public License (LGPL). This means that you are completely free to use both OpenDDR repository and/or APIs in open source or proprietary software Titolo presentazione - data Why open standards? Project Brief
  • 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
    Volantis Wide device coverage Only commercial licenses
    • Repository license : commercial license
    • API license : commercial license
    WURFL Community 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) Titolo presentazione - data DDR Projects Comparison 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 Agent exposed by the manufactures is no more sufficient. OpenDDR considers the device as a set of three important aspects : Physical Device, Operating System, Web Browser
    • OpenDDR can identify custom builds of the operating system and third parties web browsers. If a particular version of a browser or an operating system is not recognized, OpenDDR returns information about the closest version rather than not returning any information at all.
    • OpenDDR identifies a device, a web browser or an operating system with a certain Confidence . You can specify the threshold as a target to achieve in the identification process. More high is the confidence more slow is the process; more low is the confidence more fast is the process, even if you can have less accurate results.
    • OpenDDR supports Patching of the data source
    Titolo presentazione - data What's different in OpenDDR? Project Brief
  • We have uploaded OpenDDR source code and resources at: http://code.google.com/p/openddr/ We have also created a discussion group related to OpenDDR project: http://groups.google.com/group/openddr We adopt a subversion repository. In the trunk directory you find the source java code of the OpenDDR API in the src folder. In the directory resources you can find the DDRs, the vocabularies, and the BuilderDatasource: a document used in the process of device identification Titolo presentazione - data The repository Google Code and Group
  • OpenDDR implements the W3C Simple API interface. It supports the core vocabulary 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_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 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%. Titolo presentazione - data Implementation Implementation and Sample
  • To create the identification service we use the ServiceFactory in the W3C DDR-Simple-API.jar Service identificationService = ServiceFactory.newService("org.openddr.simpleapi.oddr.ODDRService", ODDR_VOCABULARY_IRI, initializationProperties); The first argument is the class of the DDRService; the second argument is the default vocabulary used in the identification if the vocabulary is not specified; the third argument is the Open DDR properties file. The following is an example of the code to get “ displayWidth ”, “model” and “vendor” properties of the default vocabulary 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); } Titolo presentazione - data Implementation Implementation and Sample
  • 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 the startup from the datasource. In most case developers need only a subset of properties from the datasource.
    We compared OpenDDR with WURFL API (1.3.1) in terms of memory load in two situations:
    • Without a limited vocabulary
    • With a limited vocabulary
    We used jMeter a s workload generator, configuring it in order to generate 100 requests per seconds from 10 worker with a different user agent. The user agents set contained ten of the most used user agent observed in a real environment. Both OpenDDR and WURFL API was tested in a simple web app. Titolo presentazione - data Introduction to test result Test Result (1)
  • Results for WURFL Titolo presentazione - data WURFL Memory load Test Result (2)
  • Results for not reduced OpenDDR Titolo presentazione - data no reduced OpenDDR Memory load Test Result (3)
  • Results for reduced OpenDDR Titolo presentazione - data Reduced OpenDDR Memory load Test Result (4)
    • We chose as limited vocabulary the W3C core vocabulary
    • The memory load of OpenDDR with limited vocabulary is only of 50MB and, after the initialization, OpenDDR doesn't have memory spike.
    • Both APIs identified correctly all the user agents in the HTTP request
    Titolo presentazione - data Result Test Result (5)
    • Open , free and based on a W3C standard . Update to DDR comes from the community and from device manufacturers.
    The identification is not only for the device as a single entity but is extended to the web browser and to the operating system. OpenDDR can identify third parties web browsers and custom builds of o perating systems . A developer can specify the vocabulary and the aspects of the property he wants to know.
    • Based on identification threshold . When a particular version of a browser is not recognized, OpenDDR returns properties of the nearest version, if this supposition satisfies the threshold decided by the developer.
    • The developer can choose which properties must be loaded in memory, specifying a limited vocabulary: no memory waste .
    • 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.
    Titolo presentazione - data Why OpenDDR? Benefits