39
Fitness-Geräte und -Portale mit Java EE und Agorava QUANTIFIED SOCIAL Werner Keil @wernerkeil

JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Embed Size (px)

Citation preview

Page 1: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Fitness-Geräte und -Portale mit Java EE und Agorava

QUANTIFIED SOCIAL

Werner Keil@wernerkeil

Page 2: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Überblick• Einführung• Smart Home• Quantified Self• Fitness Geräte und Portale• APIs• Standards• Demos• Fazit / Q&A

2 © 2012-2016 Creative Arts & Technologies

Page 3: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Werner Keil | Bio• Consultant – Coach• Creative Cosmopolitan• Software Architekt• Java Godfather• JCP Executive Committee Member• Unit JSR (363) Spec Lead• Agorava Mitbegründer• DevOps Guy

@wernerkeil

Page 4: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Internet der DingeTransportation & Logistics Logistics

Medical &Healthcare

Industrial &EnergyCommunication

Infrastructure

Security & Surveillance

Internetof Things

4 © 2007-2015 Creative Arts & Technologies, Eclipse Foundation. Made available under EPL 1.0

Page 5: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Smart Home | Tür an Tür

5 © 2012-2015 Creative Arts & TechnologiesBild: ARD Degeto/NDR/Marc Meyerbroeker

Page 6: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Smart Home | Realität

6 © 2012-2015 Creative Arts & Technologies

Page 7: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Nest Thermostat

7 © 2012-2015 Creative Arts & Technologies Bild: Google

Page 8: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Quantified Self

8 © 2013-2015 Creative Arts & Technologies

Page 9: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

IoT | Gesundheit/Fitness

CommunicationInfrastructure

SmartPill

Boxes

HeartbeatSensor

WeightScales

BloodPressure

MedicalSmart

ServicesGateway

Near field

BloodSugar

Internetof Things

9 © 2007-2015 Creative Arts & Technologies, Eclipse Foundation. Made available under EPL 1.0

Page 10: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

• Herzfrequenz Monitor – Fern-bedienbar durch

Geräte wie Google Glass oder MobilemBrowser Ihrer Wahl

• In der Java EmbeddedChallenge bei JavaOne

10 © 2013-2015 Creative Arts & Technologies

Heart of GlassJavaOne 2013

Page 11: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

• Raspberry Pi | Things API | Unit-API• RXTX (gnu.io)• Polar Herzfrequenzmesser• Java EE | HTML 5 (Tomcat/Glassfish)• Google Glass (bevorzugt) oder anderes

Web-fähiges Mobilgerät11 © 2013-2015 Creative Arts & Technologies

Heart of Glass InternaVerwendete Technologien

Page 12: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Demo

Page 13: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Wearables

13 © 2013-2015 Creative Arts & Technologies Bild: HDWallpaperImages.com

Page 14: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Smart Watch

14 © 2012-2015 Creative Arts & Technologies Bild: L'Atelier

Page 15: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Top 5 GeräteherstellerRang Hersteller 2Q15

Verkauft

2Q15 Anteil

2Q14 Verkauft

2Q14 Anteil

Steigerung

1 Fitbit 4,4 24,3% 1,7 30,4% 158,8%2 Apple 3,6 19,9% 0 0,0% Neuzugang3 Xiaomi 3,1 17,1% 0 0,0% Neuzugang4 Garmin 0,7 3,9% 0,5 8,9% 40%5 Samsung 0,6 3,3% 0,8 14,3% -25%

Andere 5,7 31,5% 2,6 46,4% 119,2%Gesamt 18,1 100,0% 5,6 100,0% 223,2%

15 © 2012-2016 Creative Arts & TechnologiesQuelle: IDC Worldwide Quarterly Wearable Device Tracker, August 27, 2015

Verkaufte Einheiten in Millionen

Page 16: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Top Betriebssysteme

16 © 2012-2016 Creative Arts & Technologies Quelle: Business Wire

Page 17: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Geräte VergleichGerät/Hersteller

Kompatibilität Datenkontrolle

Anmerkungen

Apple Nur Apple Produkte/OS -1Fitbit Windows, Mac, Android,

iOS0 Allergien bei manchen

BändernGarmin Windows, Mac, Android,

iOS+2

Jawbone iOS, Android rudimentär -2 Ladeprobleme (UP1)LG Android -2Motorola Android -2Polar Windows, Mac +1Samsung Nur Samsung Produkte -3Sony Android -2Suunto Windows, Mac, Android,

iOS+2

Withings Android, iOS 0Intel/Basis Android, iOS 0

17 © 2012-2016 Creative Arts & Technologies

Page 18: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Gesundheitsportale

18 © 2013-2015 Creative Arts & Technologies Bild: HealthDay

Page 19: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Apple Health

19 © 2014-2015 Creative Arts & Technologies Bild: Apple

Page 20: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Fitbit

20 © 2013-2015 Creative Arts & Technologies Bild: fitbit

Page 21: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Google Fit

21 © 2014-2015 Creative Arts & Technologies Bild: Google

Page 22: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Runtastic

22 © 2013-2015 Creative Arts & Technologies Bild: Runtastic

Page 23: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

RunKeeper

23 © 2013-2016 Creative Arts & Technologies Bild: RuntKeeper

Page 24: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Strava

24 © 2013-2015 Creative Arts & Technologies Bild: Singletrack Magazine

Page 25: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Portal VergleichPortal API Kompatibilität Datenkontroll

eAnmerkungen

Apple Health

? Nur Apple Produkte -1

Endomondo

? Geräte-abhängig 0 Herstellerneutral

Fitbit Ja Windows, Mac, Android, iOS

0

Garmin Via Strava

Windows, Mac +2

Google Fit Ja Zumeist Android Geräte -3 HerstellerneutralJawbone Ja Zumeist iOS -1Polar Nein Windows, Mac, Linux +1RunKeeper Ja Geräte-abhängig +1 HerstellerneutralRuntastic Nein Geräte-abhängig 0 HerstellerneutralStrava Ja Geräte-abhängig 0 HerstellerneutralSuunto Via

StravaWindows, Mac +2

Withings Ja Windows, Mac, Android, iOS

0

25 © 2012-2016 Creative Arts & Technologies

Page 26: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Top 10 APIsPortal Trend LinkApple Health -  http://www.programmableweb.com/api/apple-healthkitFitbit + http://www.programmableweb.com/api/fitbitRunKeeper Graph + http://www.programmableweb.com/api/runkeeper-health

-graphNike+ - http://www.programmableweb.com/api/nike-plusWithings + http://www.programmableweb.com/api/withingsGoogle Fit + http://www.programmableweb.com/api/google-fit-restJawbone Up - http://www.programmableweb.com/api/jawboneMapMyFitness + http://www.programmableweb.com/api/mapmyfitnessMoves - http://www.programmableweb.com/api/movesWahoo Fitness - http://www.programmableweb.com/api/wahoo-fitness

26 © 2012-2016 Creative Arts & Technologies Quelle: Programmable Web

Page 27: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Social Media Standards

Maybe...

27

• Alle gängigen Social Media Dienste nutzen REST als Übertragungsprotokoll

• Die meisten übertragen Daten im JSON Format, einige nutzen XML o.dgl.

• Identifikation & Authentifizierung basieren fast überall auf dem OAuth Protokoll

Page 28: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Maybe...

28

REST• REpresentational State Transfer :

Aufrufe von Ressource Ansichten (customer, book, order, exercise,…)

• REST basiert auf low level HTTP• Jede Ressource hat eindeutige ID

(URI). 4 HTTP Verben können auf URI angewendet werden: GET, POST, PUT, DELETE

• Java REST Standard: JAX-RS. Version 1.0 enthielt kein Client API, JAX-RS 2.0 schon.

Page 29: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Maybe...

29

JSON 1: { 2: "firstName": "John", 3: "lastName" : "Smith", 4: "age" : 25, 5: "address" : 6: { 7: "streetAddress": "21 2nd Street", 8: "city" : "New York", 9: "state" : "NY",10: "postalCode" : "10021"11: },12: "phoneNumber":13: [14: {15: "type" : "home",16: "number": "212 555-1234"17: },18: {19: "type" : "fax",20: "number": "646 555-4567"21: }22: ]23: }

• JavaScript Object Notation: Von JavaScript inspiriertes Datenformat. Wurde zum de-facto Standard für APIs und Online Dienste wie Social Media.

Page 30: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

30

OAuth• OAuth ist ein Protokoll, das den

Zugriff auf eine Applikation von eine anderen aus regelt, für einen Benutzer, der die Rechte gewährt hat, ohne dafür Benutzername oder Passwort preiszugeben.

• Ursprünglich entwickelt von Twitter, Magnolia und Google, wurde es April 2010 als IETF Standard RFC 5849 anerkannt.

Page 31: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

31

OAuth (2)• Version 2.0, einfacher, aber oft für zu viele

Implementationen kritisiert wurde im Oktober 2012 unter RFC 6749 und 6750 standardisiert. Und ist bereits weit verbreitet (Facebook, Google, Microsoft,…)

• Alle Social Media Dienste basieren aufOAuth 1.0a oder 2.0.

• Um OAuth zu nutzen, muss man eine Applikation im Zielsystem deklarieren als Einstiegspunkt für den Benutzer

Page 32: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

32

OAuth umfasst 3 Schritte• Erstellen einer Anwendung

einem OAauth Service• Initialisierung: Rechtegewährung

auch OAuth “Tanz” genannt. An dessen Ende erhält man einenAccess Token (aus öffentlichem und geheimem Teil bestehend) für die

• Signatur: Jeder Aufruf wird mit dem Access Token verschlüsselt um die OAuth Anwendung zu identifizieren

Bild © 2003 Universal Pictures. All Rights Reserved.

Page 33: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

33

Agorava Makroarchitektur– Agorava core ist das

«smart module» des Frameworks

– Module umfassen u.A. REST API und JSON Mapping

– Agorava nutzt die volle CDI Implementation

– In Arbeit ab 0.7 sind:• Java SE Support (z.B. CDI 2)• Unterstützung von JSR 330

(Guice / Dagger, bei Bedarf auch Spring)

Page 34: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

“A coordinated observation infrastructure composed of a distributed collection of resources that can collectively behave as a single, autonomous, task-able, dynamically adaptive and reconfigurable observing system that provides raw and processed data, along with associated meta-data, via a set of standards-based service-oriented interfaces.” (Glenn, 2007)

Sensor Web | Was ist das?

34

Page 35: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

OGC Sensor Web Enablement• SensorML• O&M• TransducerML• GeographyML

Web Services• Web Services Description

Language• REST

National Institute for Standards and Technology• Semantic Interoperability

Communityof Practice

• Sensor Standards Harmonization

W3C Semantic Web• Resource Description

Framework• RDF Schema• Web Ontology Language• Semantic Web Rule

Language

• SAWSDL

• SA-REST

• SML-S

• O&M-S

• TML-S

Sensor Ontology

Sensor Ontology

Daten Standards

Unicode Consortium• CLDR• ICU4J

Units

UCUM/Regenstrief• Unified Code for Units of

Measure

35

Page 36: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Demo

Page 37: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

37

Agorava Buch–Das erste Agorava

Buch ist für das 1. Halbjahr 2016 zur Veröffentlichung geplant. (Amazon, Google Play!, iTunes, etc.)

Page 38: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Fazit• Zahlreiche API Anbieter werfen (Java)

Entwicklern Steine in den Weg– Kommerzielle Zertifizierung oder hohe

Lizenzgebühren bevor Entwicklung möglich

– APIs oft für SE/Desktop/Android maßgeschneidert

– Bot- oder Malware-Blocker missverstehen legitime Java EE Anwendungen als potentielle Angreifer

– „OAuth Hell“

Page 39: JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava

Links• UOM @ GitHub:

http://unitsofmeasurement.github.io• Ich @ GitHub:

http://www.github.com/keilw• Agorava:

http://www.agorava.org

• Twitter: @wernerkeil