SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
#WMFra

  @OpenDDR

  @wernerkeil




Geräteerkennung für Mobile Webanwendungen

Werner Keil (werner@openddr.org)
16. Januar 2012
                                            1
AGENDA
Einleitung

Projektübersicht

Projektvergleiche

Vorteile

Code und Forum

Anwendungsbeispiele

Zusammenfassung
                 Titolo presentazione - data
Ausblick


                                               2
Einleitung                                                                          OpenDDR




    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.
                                                                   Titolo presentazione - data




                                                                                                 3
Projektübersicht            Was ist ein DDR?




                   Titolo presentazione - data




                                                 4
Projektübersicht            Was ist ein DDR?




                   Titolo presentazione - data




                                                 5
Projektübersicht            Was ist ein DDR?




                   Titolo presentazione - data




                                                 6
Projektübersicht                                                        Was ist ein DDR?



 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
                                                               Titolo presentazione - data




                                                                                             7
Projektvergleiche                                                  Verschiedene DDR Projekte/Produkte


 PROJECT       STRENGHTS            WEAKNESSES                            LICENSE
                                    ● Device repository only with
                                    commercial mobileAware DDR            ● Repository license: commercial
                                    (tha APIs are bundled with a small
               The interface is a                                         license only
 MaDDR                              sample DDR)
               W3C standard                                               ● API license: commercial license
 Project                            ● The maDDR Project cannot offer
                                                                          OR Simple DDR API
                                    an adaptation technology that
                                                                          implementation licensed as LGPL
                                    uses repository knowledge to
                                    guide its processes
               Data is multi-                                             ● Repository license: commercial
               sourced from
 DeviceAtlas                        Only commercial licenses              license
               industry-leading                                           ● API license: commercial license
               partners
               Wide device                                                ● Repository license: commercial
 Volantis      coverage             Only commercial licenses              license
                                                                          ● API license: commercial license


                                                                          ● Repository license: use not
                                    ● the license does not allow to use
                                                                          allowed if accessed without
                                    the DDR without accessing
               Community                                                  WURFL APIs
 WURFL                              through the WURFL API
               project              ● the API does not allow use in
                                                                          ● API license: dual licensing AGPL
                                                                                   Titolo presentazione - data
                                                                          and commercial
                                    projects with a proprietary license
                                                                          (Changed since August 2011)



                                                                                                                 8
Projektvergleiche          WURFL Mauerbau




                    Titolo presentazione - data




                                                  9
Projektvergleiche   WURFL Mauerbau August 2011




                        Titolo presentazione - data




                                                 10
Projektvergleiche   WURFL nicht mehr Open Source




                         Titolo presentazione - data




                                                  11
Vorteile                                                                   Warum Offene Standards?



  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.


                                                                            Titolo presentazione - data




                                                                                                      12
Vorteile                                                             Was ist anders bei OpenDDR?



  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.




                                                                                                   13
Code und Forum                                                Open Source Projekt



  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




                                                         Titolo presentazione - data




                                                                                  14
Anwendungsbeispiele                                                                   Konfiguration



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

                                                                         Titolo presentazione - data




                                                                                                  15
Anwendungsbeispiele                                                                                      Implementation


  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()) {
                  ...                                                                       Titolo presentazione - data
               }

          } catch (Exception ex) {
              throw new RuntimeException(ex);
          }

                                                                                                                          16
Anwendungsbeispiele               Montagsdemo




                      Titolo presentazione - data




                                               17
Zusammenfassung                                                                  Warum OpenDDR?



  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.




                                                                                                   23
Ausblick                                                                     Apache DeviceMap



   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




                                                                      Titolo presentazione - data




                                                                                               24

Weitere ähnliche Inhalte

Andere mochten auch (20)

Cuáles son-los-pasos-para-manejar-la-depresión
Cuáles son-los-pasos-para-manejar-la-depresiónCuáles son-los-pasos-para-manejar-la-depresión
Cuáles son-los-pasos-para-manejar-la-depresión
 
Presentaciojjjjjjn ufps
Presentaciojjjjjjn ufpsPresentaciojjjjjjn ufps
Presentaciojjjjjjn ufps
 
When god made everything spanish cb
When god made everything spanish cbWhen god made everything spanish cb
When god made everything spanish cb
 
En Banya Llarga
En Banya LlargaEn Banya Llarga
En Banya Llarga
 
Narela perez evaluacion de matematica
Narela perez evaluacion de matematicaNarela perez evaluacion de matematica
Narela perez evaluacion de matematica
 
La paradoja
La paradojaLa paradoja
La paradoja
 
Sp loc-08-15-la lampara
Sp loc-08-15-la lamparaSp loc-08-15-la lampara
Sp loc-08-15-la lampara
 
Brandschutznachweise von Bauteilen - Heißbemessung
Brandschutznachweise von Bauteilen - HeißbemessungBrandschutznachweise von Bauteilen - Heißbemessung
Brandschutznachweise von Bauteilen - Heißbemessung
 
12_Fragen
12_Fragen12_Fragen
12_Fragen
 
Power el agua[1]
Power el agua[1]Power el agua[1]
Power el agua[1]
 
L7+obedece
L7+obedeceL7+obedece
L7+obedece
 
Gratitud
GratitudGratitud
Gratitud
 
such+den+Punkt!
such+den+Punkt!such+den+Punkt!
such+den+Punkt!
 
En Busca De La Unidad
En Busca De La UnidadEn Busca De La Unidad
En Busca De La Unidad
 
Social Media Web 2.0
Social Media Web 2.0Social Media Web 2.0
Social Media Web 2.0
 
Perl Style
Perl StylePerl Style
Perl Style
 
Vocab ppt
Vocab pptVocab ppt
Vocab ppt
 
Adn
AdnAdn
Adn
 
Responsabilidad social y etica empresarial
Responsabilidad social y etica empresarialResponsabilidad social y etica empresarial
Responsabilidad social y etica empresarial
 
Oracinamimismo
OracinamimismoOracinamimismo
Oracinamimismo
 

Ähnlich wie OpenDDR Deutsch

Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartWerner Keil
 
Die wichtigsten Technologien für die Entwicklung von Webanwendungen
Die wichtigsten Technologien für die Entwicklung von WebanwendungenDie wichtigsten Technologien für die Entwicklung von Webanwendungen
Die wichtigsten Technologien für die Entwicklung von WebanwendungenYUHIRO
 
Applikationsentwicklung für Android
Applikationsentwicklung für AndroidApplikationsentwicklung für Android
Applikationsentwicklung für AndroidThorsten Weiskopf
 
Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Georg Klauser
 
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentationbneselov
 
Smartphone Betriebssysteme Android
Smartphone Betriebssysteme AndroidSmartphone Betriebssysteme Android
Smartphone Betriebssysteme Androiddm-development
 
Docker und IBM Bluemix
Docker und IBM BluemixDocker und IBM Bluemix
Docker und IBM BluemixStephan Max
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrGunther Pippèrr
 
Oracle Lizenzierung bei Einsatz von Virtualisierungslösungen - DOAG Konferenz...
Oracle Lizenzierung bei Einsatz von Virtualisierungslösungen - DOAG Konferenz...Oracle Lizenzierung bei Einsatz von Virtualisierungslösungen - DOAG Konferenz...
Oracle Lizenzierung bei Einsatz von Virtualisierungslösungen - DOAG Konferenz...OPITZ CONSULTING Deutschland
 
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013goobi_org
 
Remote Access auf Windows Server in einer neuen Dimension
Remote Access auf Windows Server in einer neuen DimensionRemote Access auf Windows Server in einer neuen Dimension
Remote Access auf Windows Server in einer neuen DimensionHOB
 
Cloud Databases, Developer Week Nuernberg 2014
Cloud Databases, Developer Week Nuernberg 2014Cloud Databases, Developer Week Nuernberg 2014
Cloud Databases, Developer Week Nuernberg 2014Romeo Kienzler
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureJan Hentschel
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgDNUG e.V.
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Gregor Biswanger
 

Ähnlich wie OpenDDR Deutsch (20)

Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ Stuttgart
 
Die wichtigsten Technologien für die Entwicklung von Webanwendungen
Die wichtigsten Technologien für die Entwicklung von WebanwendungenDie wichtigsten Technologien für die Entwicklung von Webanwendungen
Die wichtigsten Technologien für die Entwicklung von Webanwendungen
 
Applikationsentwicklung für Android
Applikationsentwicklung für AndroidApplikationsentwicklung für Android
Applikationsentwicklung für Android
 
2020 oracle lizenznews
2020 oracle lizenznews2020 oracle lizenznews
2020 oracle lizenznews
 
PHP auf IBM Plattformen
PHP auf IBM PlattformenPHP auf IBM Plattformen
PHP auf IBM Plattformen
 
Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114Deutsche Wolke Präsentation 100114
Deutsche Wolke Präsentation 100114
 
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
2014 borys neselovskyi_web_logic_server_auf_oda_praesentation
 
Smartphone Betriebssysteme Android
Smartphone Betriebssysteme AndroidSmartphone Betriebssysteme Android
Smartphone Betriebssysteme Android
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
PHPblue LOS!NRW
PHPblue LOS!NRWPHPblue LOS!NRW
PHPblue LOS!NRW
 
Docker und IBM Bluemix
Docker und IBM BluemixDocker und IBM Bluemix
Docker und IBM Bluemix
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
 
Oracle Lizenzierung bei Einsatz von Virtualisierungslösungen - DOAG Konferenz...
Oracle Lizenzierung bei Einsatz von Virtualisierungslösungen - DOAG Konferenz...Oracle Lizenzierung bei Einsatz von Virtualisierungslösungen - DOAG Konferenz...
Oracle Lizenzierung bei Einsatz von Virtualisierungslösungen - DOAG Konferenz...
 
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
Leistungsvergleich Präsentationsoberflächen für digitale Sammlungen 2013
 
Remote Access auf Windows Server in einer neuen Dimension
Remote Access auf Windows Server in einer neuen DimensionRemote Access auf Windows Server in einer neuen Dimension
Remote Access auf Windows Server in einer neuen Dimension
 
Cloud Databases, Developer Week Nuernberg 2014
Cloud Databases, Developer Week Nuernberg 2014Cloud Databases, Developer Week Nuernberg 2014
Cloud Databases, Developer Week Nuernberg 2014
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows Azure
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
 

Mehr von Werner Keil

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 '21Werner Keil
 
OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021Werner Keil
 
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 2021Werner Keil
 
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualOpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualWerner Keil
 
NoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualNoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualWerner Keil
 
JCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDRJCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDRWerner Keil
 
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 2020Werner Keil
 
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)Werner Keil
 
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)Werner Keil
 
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)Werner Keil
 
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 DayWerner Keil
 
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 DatabasesWerner Keil
 
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 DatabasesWerner Keil
 
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 MunichWerner Keil
 
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 2017Werner Keil
 
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 2017Werner Keil
 
Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363Werner Keil
 
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 CloudWerner Keil
 
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-BrandenburgWerner Keil
 
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 OverviewWerner Keil
 

Mehr von 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
 
OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021
 
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
 
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualOpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
 
NoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualNoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 Virtual
 
JCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDRJCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDR
 
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
 
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
 

OpenDDR Deutsch

  • 1. #WMFra @OpenDDR @wernerkeil Geräteerkennung für Mobile Webanwendungen Werner Keil (werner@openddr.org) 16. Januar 2012 1
  • 3. Einleitung OpenDDR 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. Titolo presentazione - data 3
  • 4. Projektübersicht Was ist ein DDR? Titolo presentazione - data 4
  • 5. Projektübersicht Was ist ein DDR? Titolo presentazione - data 5
  • 6. Projektübersicht Was ist ein DDR? Titolo presentazione - data 6
  • 7. Projektübersicht Was ist ein DDR? 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 Titolo presentazione - data 7
  • 8. Projektvergleiche Verschiedene DDR Projekte/Produkte PROJECT STRENGHTS WEAKNESSES LICENSE ● Device repository only with commercial mobileAware DDR ● Repository license: commercial (tha APIs are bundled with a small The interface is a license only MaDDR sample DDR) W3C standard ● API license: commercial license Project ● The maDDR Project cannot offer OR Simple DDR API an adaptation technology that implementation licensed as LGPL uses repository knowledge to guide its processes Data is multi- ● Repository license: commercial sourced from DeviceAtlas Only commercial licenses license industry-leading ● API license: commercial license partners Wide device ● Repository license: commercial Volantis coverage Only commercial licenses license ● API license: commercial license ● Repository license: use not ● the license does not allow to use allowed if accessed without the DDR without accessing Community WURFL APIs WURFL through the WURFL API project ● the API does not allow use in ● API license: dual licensing AGPL Titolo presentazione - data and commercial projects with a proprietary license (Changed since August 2011) 8
  • 9. Projektvergleiche WURFL Mauerbau Titolo presentazione - data 9
  • 10. Projektvergleiche WURFL Mauerbau August 2011 Titolo presentazione - data 10
  • 11. Projektvergleiche WURFL nicht mehr Open Source Titolo presentazione - data 11
  • 12. Vorteile Warum Offene Standards? 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. Titolo presentazione - data 12
  • 13. Vorteile Was ist anders bei OpenDDR? 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. 13
  • 14. Code und Forum Open Source Projekt 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 Titolo presentazione - data 14
  • 15. Anwendungsbeispiele Konfiguration 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%. Titolo presentazione - data 15
  • 16. Anwendungsbeispiele Implementation 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()) { ... Titolo presentazione - data } } catch (Exception ex) { throw new RuntimeException(ex); } 16
  • 17. Anwendungsbeispiele Montagsdemo Titolo presentazione - data 17
  • 18. Zusammenfassung Warum OpenDDR? 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. 23
  • 19. Ausblick Apache DeviceMap 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 Titolo presentazione - data 24