SlideShare una empresa de Scribd logo
1 de 27
Let’s enable optimized contents. Together. Werner Keil ( [email_address] )   Nov  4 th , 2011
Titolo presentazione - data ,[object Object]
Project Brief
Google Code and Group
Implementation and Sample
Test Results
Benefits
Conclusions AGENDA
[object Object],[object Object],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: ,[object Object]
Need different Approach:  OpenDDR Project Titolo presentazione - data What is a DDR Project Brief
OpenDDR  stakes on open standards:  ,[object Object]
Access library implements the W3C DDR Simple APIs  From a developer point of view: ,[object Object]
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 ,[object Object]
The maDDR Project cannot offer an adaptation technology that uses repository knowledge to guide its processes ,[object Object]
API license : commercial  license OR Simple DDR API implementation licensed as LGPL DeviceAtlas Data is multi-sourced from industry-leading partners Only commercial licenses ,[object Object]
API license : commercial  license  Volantis Wide device coverage Only commercial licenses ,[object Object]
API license : commercial license  WURFL Community project ,[object Object]
the API does not allow use in projects with a proprietary license ,[object Object]
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 ,[object Object]
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

Más contenido relacionado

Similar a OpenDDR

Manish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsManish Chasta - Securing Android Applications
Manish Chasta - Securing Android Applications
Positive Hack Days
 
M9 cloud & open source
M9 cloud & open sourceM9 cloud & open source
M9 cloud & open source
Josep Bardallo
 
Stored-Procedures-Presentation
Stored-Procedures-PresentationStored-Procedures-Presentation
Stored-Procedures-Presentation
Chuck Walker
 

Similar a OpenDDR (20)

Apache DeviceMap - ApacheCon core Europe 2015
Apache DeviceMap - ApacheCon core Europe 2015Apache DeviceMap - ApacheCon core Europe 2015
Apache DeviceMap - ApacheCon core Europe 2015
 
Apache DeviceMap - ApacheCon Europe 2014
Apache DeviceMap - ApacheCon Europe 2014Apache DeviceMap - ApacheCon Europe 2014
Apache DeviceMap - ApacheCon Europe 2014
 
Manish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsManish Chasta - Securing Android Applications
Manish Chasta - Securing Android Applications
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 Introduction
 
Null Mumbai Meet_Android Reverse Engineering by Samrat Das
Null Mumbai Meet_Android Reverse Engineering by Samrat DasNull Mumbai Meet_Android Reverse Engineering by Samrat Das
Null Mumbai Meet_Android Reverse Engineering by Samrat Das
 
Android
Android Android
Android
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
M9 cloud & open source
M9 cloud & open sourceM9 cloud & open source
M9 cloud & open source
 
Android
AndroidAndroid
Android
 
Android My Seminar
Android My SeminarAndroid My Seminar
Android My Seminar
 
Accessing Hardware on Android
Accessing Hardware on AndroidAccessing Hardware on Android
Accessing Hardware on Android
 
Phonebook Directory or Address Book In Android
Phonebook Directory or Address Book In AndroidPhonebook Directory or Address Book In Android
Phonebook Directory or Address Book In Android
 
Android os
Android osAndroid os
Android os
 
Nareshkumar_CV
Nareshkumar_CVNareshkumar_CV
Nareshkumar_CV
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Android Applications Development: A Quick Start Guide
Android Applications Development: A Quick Start GuideAndroid Applications Development: A Quick Start Guide
Android Applications Development: A Quick Start Guide
 
OOW13: Next Generation Optimized Directory (CON9024)
OOW13: Next Generation Optimized Directory (CON9024)OOW13: Next Generation Optimized Directory (CON9024)
OOW13: Next Generation Optimized Directory (CON9024)
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 
Stored-Procedures-Presentation
Stored-Procedures-PresentationStored-Procedures-Presentation
Stored-Procedures-Presentation
 

Más de Werner Keil

Más de Werner Keil (20)

Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21
 
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
 
NoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualNoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 Virtual
 
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
 
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
 
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
 
NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)
 
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR DayHow JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
 
JNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL DatabasesJNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL Databases
 
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabasesEclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
 
Physikal - Using Kotlin for Clean Energy - KUG Munich
Physikal - Using Kotlin for Clean Energy - KUG MunichPhysikal - Using Kotlin for Clean Energy - KUG Munich
Physikal - Using Kotlin for Clean Energy - KUG Munich
 
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
 
Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017
 
Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363
 
Java2Days - Security for JavaEE and the Cloud
Java2Days - Security for JavaEE and the CloudJava2Days - Security for JavaEE and the Cloud
Java2Days - Security for JavaEE and the Cloud
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ Stuttgart
 
The First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
The First IoT JSR: Units of Measurement - JUG Berlin-BrandenburgThe First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
The First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
 
JSR 354: Money and Currency API - Short Overview
JSR 354: Money and Currency API - Short OverviewJSR 354: Money and Currency API - Short Overview
JSR 354: Money and Currency API - Short Overview
 
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaJavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
 
Enterprise 2.0 with Open Source Frameworks like Agorava
Enterprise 2.0 with Open Source Frameworks like AgoravaEnterprise 2.0 with Open Source Frameworks like Agorava
Enterprise 2.0 with Open Source Frameworks like Agorava
 

Último

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

OpenDDR

  • 1. Let’s enable optimized contents. Together. Werner Keil ( [email_address] ) Nov 4 th , 2011
  • 2.
  • 9.
  • 10. Titolo presentazione - data What is a DDR Project Brief
  • 11. Titolo presentazione - data What is a DDR Project Brief
  • 12. Titolo presentazione - data What is a DDR Project Brief
  • 13.
  • 14. Need different Approach: OpenDDR Project Titolo presentazione - data What is a DDR Project Brief
  • 15.
  • 16.
  • 17. 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
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. API license : dual licensing AGPL and commercial (Changed since August 2011) Titolo presentazione - data DDR Projects Comparison Project Brief
  • 25.
  • 26. 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.
  • 27. OpenDDR supports Patching of the data source Titolo presentazione - data What's different in OpenDDR? Project Brief
  • 28. 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
  • 29. 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
  • 30. 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
  • 31.
  • 32.
  • 33. 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)
  • 34. Results for WURFL Titolo presentazione - data WURFL Memory load Test Result (2)
  • 35. Results for not reduced OpenDDR Titolo presentazione - data no reduced OpenDDR Memory load Test Result (3)
  • 36. Results for reduced OpenDDR Titolo presentazione - data Reduced OpenDDR Memory load Test Result (4)
  • 37.
  • 38. The memory load of OpenDDR with limited vocabulary is only of 50MB and, after the initialization, OpenDDR doesn't have memory spike.
  • 39. Both APIs identified correctly all the user agents in the HTTP request Titolo presentazione - data Result Test Result (5)
  • 40.
  • 41. The developer can choose which properties must be loaded in memory, specifying a limited vocabulary: no memory waste .
  • 42. 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