SlideShare a Scribd company logo
Submit Search
Upload
Pushing Java EE outside of the Enterprise - Home Automation
Report
Share
David Delabassee
DevRel - Java Platform Group - Oracle
Follow
•
3 likes
•
3,079 views
1
of
67
Pushing Java EE outside of the Enterprise - Home Automation
•
3 likes
•
3,079 views
Report
Share
Download Now
Download to read offline
Technology
Presented during JavaOne (San Francisco Sept.2014)
Read more
David Delabassee
DevRel - Java Platform Group - Oracle
Follow
Recommended
Building a Thought Controlled Drone by
Building a Thought Controlled Drone
Jim McKeeth
5.4K views
•
51 slides
IoT gateway dream team - Eclipse Kura and Apache Camel by
IoT gateway dream team - Eclipse Kura and Apache Camel
Henryk Konsek
6.3K views
•
34 slides
Ansible- Durham Meetup: Using Ansible for Cisco ACI deployment by
Ansible- Durham Meetup: Using Ansible for Cisco ACI deployment
Joel W. King
4K views
•
32 slides
RTP NPUG: Ansible Intro and Integration with ACI by
RTP NPUG: Ansible Intro and Integration with ACI
Joel W. King
2.5K views
•
52 slides
Why You Cannot Use Neural Engine to Run Your NN Models on A11 Devices? by
Why You Cannot Use Neural Engine to Run Your NN Models on A11 Devices?
Koan-Sin Tan
2K views
•
21 slides
One tool, two fabrics: Ansible and Nexus 9000 by
One tool, two fabrics: Ansible and Nexus 9000
Joel W. King
3.2K views
•
29 slides
More Related Content
What's hot
Leveraging Android for the Internet of Things with Eclipse M2M by
Leveraging Android for the Internet of Things with Eclipse M2M
Benjamin Cabé
27.6K views
•
74 slides
De leukste Bug by
De leukste Bug
Marcel Offermans
899 views
•
49 slides
OpenStack Deployment in the Enterprise by
OpenStack Deployment in the Enterprise
Cisco Canada
2.4K views
•
63 slides
What Is OpenStack | OpenStack Tutorial For Beginners | OpenStack Training | E... by
What Is OpenStack | OpenStack Tutorial For Beginners | OpenStack Training | E...
Edureka!
2.9K views
•
49 slides
V mware nsx_network_virtualization_open_stack by
V mware nsx_network_virtualization_open_stack
EMC
936 views
•
20 slides
Configuration Management Tools on NX-OS by
Configuration Management Tools on NX-OS
Cisco DevNet
2.7K views
•
51 slides
What's hot
(20)
Leveraging Android for the Internet of Things with Eclipse M2M by Benjamin Cabé
Leveraging Android for the Internet of Things with Eclipse M2M
Benjamin Cabé
•
27.6K views
De leukste Bug by Marcel Offermans
De leukste Bug
Marcel Offermans
•
899 views
OpenStack Deployment in the Enterprise by Cisco Canada
OpenStack Deployment in the Enterprise
Cisco Canada
•
2.4K views
What Is OpenStack | OpenStack Tutorial For Beginners | OpenStack Training | E... by Edureka!
What Is OpenStack | OpenStack Tutorial For Beginners | OpenStack Training | E...
Edureka!
•
2.9K views
V mware nsx_network_virtualization_open_stack by EMC
V mware nsx_network_virtualization_open_stack
EMC
•
936 views
Configuration Management Tools on NX-OS by Cisco DevNet
Configuration Management Tools on NX-OS
Cisco DevNet
•
2.7K views
Open Source & The Internet of Things by All Things Open
Open Source & The Internet of Things
All Things Open
•
639 views
Extending TripleO for OpenStack Management by Keith Basil
Extending TripleO for OpenStack Management
Keith Basil
•
3.6K views
Nanog75, Network Device Property as Code by Damien Garros
Nanog75, Network Device Property as Code
Damien Garros
•
834 views
From Data to Actions and Insights at Conviva with Rui Zhang and Yan Li by Databricks
From Data to Actions and Insights at Conviva with Rui Zhang and Yan Li
Databricks
•
999 views
ISUCONインフラ提供から見るCycloudのこれから #ca_base_next / future of Cycloud see from ISUCO... by whywaita
ISUCONインフラ提供から見るCycloudのこれから #ca_base_next / future of Cycloud see from ISUCO...
whywaita
•
835 views
OpenStack Certification | Red Hat OpenStack Certification | OpenStack Trainin... by Edureka!
OpenStack Certification | Red Hat OpenStack Certification | OpenStack Trainin...
Edureka!
•
848 views
Building Cloud Virtual Topologies with Ravello and Ansible by Damien Garros
Building Cloud Virtual Topologies with Ravello and Ansible
Damien Garros
•
1.1K views
Getting a Neural Network Up and Running with OpenLab by Melvin Hillsman
Getting a Neural Network Up and Running with OpenLab
Melvin Hillsman
•
78 views
USING VISION SENSORS FOR INNOVATIVE HCI by Rakuten Group, Inc.
USING VISION SENSORS FOR INNOVATIVE HCI
Rakuten Group, Inc.
•
824 views
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip... by HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
•
1.6K views
Open Source IoT Building Blocks for Startups by Charalampos Doukas
Open Source IoT Building Blocks for Startups
Charalampos Doukas
•
644 views
OpenStack Overview and History by Mirantis
OpenStack Overview and History
Mirantis
•
5.4K views
How to Achieve more through Collaboration by Damien Garros
How to Achieve more through Collaboration
Damien Garros
•
411 views
What's new OpenStack kilo by Anil Bidari ( CEO , Cloud Enabled)
What's new OpenStack kilo
Anil Bidari ( CEO , Cloud Enabled)
•
2.2K views
Viewers also liked
Keynote on industrial internet by
Keynote on industrial internet
Benedict Evans
50.2K views
•
20 slides
Overview of IoT and Security issues by
Overview of IoT and Security issues
Anastasios Economides
16.7K views
•
46 slides
La metodología Lean Startup by
La metodología Lean Startup
Jaume Teixi
5.2K views
•
4 slides
IoT Developer Survey 2015 by
IoT Developer Survey 2015
Ian Skerrett
29.7K views
•
26 slides
LUMA's State of the State 2015 at DMS 15 by
LUMA's State of the State 2015 at DMS 15
LUMA Partners
110K views
•
88 slides
Getting Started with WebSocket and Server-Sent Events in Java by
Getting Started with WebSocket and Server-Sent Events in Java
Arun Gupta
6.7K views
•
39 slides
Viewers also liked
(12)
Keynote on industrial internet by Benedict Evans
Keynote on industrial internet
Benedict Evans
•
50.2K views
Overview of IoT and Security issues by Anastasios Economides
Overview of IoT and Security issues
Anastasios Economides
•
16.7K views
La metodología Lean Startup by Jaume Teixi
La metodología Lean Startup
Jaume Teixi
•
5.2K views
IoT Developer Survey 2015 by Ian Skerrett
IoT Developer Survey 2015
Ian Skerrett
•
29.7K views
LUMA's State of the State 2015 at DMS 15 by LUMA Partners
LUMA's State of the State 2015 at DMS 15
LUMA Partners
•
110K views
Getting Started with WebSocket and Server-Sent Events in Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events in Java
Arun Gupta
•
6.7K views
Server-Side Programming Primer by Ivano Malavolta
Server-Side Programming Primer
Ivano Malavolta
•
1.9K views
Debugging microservices in production by bcantrill
Debugging microservices in production
bcantrill
•
7K views
Lessons for the Industrial Internet (pdf with notes) by Tim O'Reilly
Lessons for the Industrial Internet (pdf with notes)
Tim O'Reilly
•
17.5K views
Industrial internet big data china market study by Business Finland
Industrial internet big data china market study
Business Finland
•
10.8K views
Home and building automation systems by Dario Bonino
Home and building automation systems
Dario Bonino
•
21.2K views
Swarm Extreme by Baturalp Torun
Swarm Extreme
Baturalp Torun
•
4.3K views
Similar to Pushing Java EE outside of the Enterprise - Home Automation
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De... by
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...
JAXLondon2014
512 views
•
65 slides
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab... by
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Codemotion Tel Aviv
659 views
•
55 slides
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC... by
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Tomek Borek
1.6K views
•
26 slides
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ... by
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Marco Antonio Maciel
1.2K views
•
40 slides
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me... by
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Codemotion
1.2K views
•
22 slides
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl... by
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Bart Jonkers
554 views
•
32 slides
Similar to Pushing Java EE outside of the Enterprise - Home Automation
(20)
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De... by JAXLondon2014
Pushing Java EE outside of the Enterprise: Home Automation and IoT - David De...
JAXLondon2014
•
512 views
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab... by Codemotion Tel Aviv
Pushing JavaEE outside of the enterprise: Home Automation & IoT - David Delab...
Codemotion Tel Aviv
•
659 views
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC... by Tomek Borek
Łukasz Romaszewski on Internet of Things Raspberry Pi and Java Embedded JavaC...
Tomek Borek
•
1.6K views
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ... by Marco Antonio Maciel
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Marco Antonio Maciel
•
1.2K views
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me... by Codemotion
Sviluppo IoT - Un approccio standard da Nerd ad Impresa, prove pratiche di Me...
Codemotion
•
1.2K views
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl... by Bart Jonkers
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Bart Jonkers
•
554 views
HTTP/2 Comes to Java - What Servlet 4.0 Means to You by David Delabassee
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
David Delabassee
•
13.8K views
Virtual Compute Appliance Oracle IaaS by Fran Navarro
Virtual Compute Appliance Oracle IaaS
Fran Navarro
•
3K views
Plataforma Java Embedded & Internet of Things (IoT) by Marco Antonio Maciel
Plataforma Java Embedded & Internet of Things (IoT)
Marco Antonio Maciel
•
811 views
WebSockets in Enterprise Applications by Pavel Bucek
WebSockets in Enterprise Applications
Pavel Bucek
•
8K views
Simplify IT: Oracle SuperCluster by Fran Navarro
Simplify IT: Oracle SuperCluster
Fran Navarro
•
2.4K views
JDK 8 and JDK 8 Updates in OpenJDK by Wolfgang Weigend
JDK 8 and JDK 8 Updates in OpenJDK
Wolfgang Weigend
•
2.5K views
A practical introduction to Oracle NoSQL Database - OOW2014 by Anuj Sahni
A practical introduction to Oracle NoSQL Database - OOW2014
Anuj Sahni
•
3.7K views
Managing Oracle Solaris Systems with Puppet by glynnfoster
Managing Oracle Solaris Systems with Puppet
glynnfoster
•
5.1K views
Desayuno Tecnico OVN - Xsigo by Fran Navarro
Desayuno Tecnico OVN - Xsigo
Fran Navarro
•
819 views
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c by Bruno Borges
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Bruno Borges
•
57K views
Oracle Database Cloud Service by Jean-Philippe PINTE
Oracle Database Cloud Service
Jean-Philippe PINTE
•
3.3K views
Introduction to MySQL by Ted Wennmark
Introduction to MySQL
Ted Wennmark
•
917 views
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX by Bruno Borges
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Bruno Borges
•
2.5K views
OpenStack with OpenDaylight by Vikram G Hosakote
OpenStack with OpenDaylight
Vikram G Hosakote
•
553 views
More from David Delabassee
JVMs in Containers - Best Practices by
JVMs in Containers - Best Practices
David Delabassee
726 views
•
37 slides
JVMs in Containers by
JVMs in Containers
David Delabassee
1.3K views
•
38 slides
Serverless Java Challenges & Triumphs by
Serverless Java Challenges & Triumphs
David Delabassee
1.2K views
•
46 slides
Serverless Java - Challenges and Triumphs by
Serverless Java - Challenges and Triumphs
David Delabassee
282 views
•
41 slides
Randstad Docker meetup - Serverless by
Randstad Docker meetup - Serverless
David Delabassee
322 views
•
37 slides
Java Serverless in Action - Voxxed Banff by
Java Serverless in Action - Voxxed Banff
David Delabassee
232 views
•
22 slides
More from David Delabassee
(20)
JVMs in Containers - Best Practices by David Delabassee
JVMs in Containers - Best Practices
David Delabassee
•
726 views
JVMs in Containers by David Delabassee
JVMs in Containers
David Delabassee
•
1.3K views
Serverless Java Challenges & Triumphs by David Delabassee
Serverless Java Challenges & Triumphs
David Delabassee
•
1.2K views
Serverless Java - Challenges and Triumphs by David Delabassee
Serverless Java - Challenges and Triumphs
David Delabassee
•
282 views
Randstad Docker meetup - Serverless by David Delabassee
Randstad Docker meetup - Serverless
David Delabassee
•
322 views
Java Serverless in Action - Voxxed Banff by David Delabassee
Java Serverless in Action - Voxxed Banff
David Delabassee
•
232 views
Serverless Kotlin by David Delabassee
Serverless Kotlin
David Delabassee
•
251 views
REST in an Async World by David Delabassee
REST in an Async World
David Delabassee
•
2.3K views
JAX-RS 2.1 Reloaded by David Delabassee
JAX-RS 2.1 Reloaded
David Delabassee
•
1.7K views
Java EE 8 - February 2017 update by David Delabassee
Java EE 8 - February 2017 update
David Delabassee
•
6K views
Java EE Next by David Delabassee
Java EE Next
David Delabassee
•
2.2K views
Java EE Next - BeJUG JavaOne Afterglow 2016 by David Delabassee
Java EE Next - BeJUG JavaOne Afterglow 2016
David Delabassee
•
433 views
HTTP/2 comes to Java by David Delabassee
HTTP/2 comes to Java
David Delabassee
•
5.9K views
Java EE 8 - Work in progress by David Delabassee
Java EE 8 - Work in progress
David Delabassee
•
2.5K views
HTTP/2 comes to Java (Dec. 2015 version) by David Delabassee
HTTP/2 comes to Java (Dec. 2015 version)
David Delabassee
•
690 views
EJB and CDI - Alignment and Strategy by David Delabassee
EJB and CDI - Alignment and Strategy
David Delabassee
•
31.9K views
HTTP/2 Comes to Java by David Delabassee
HTTP/2 Comes to Java
David Delabassee
•
2.9K views
Java EE 8 - What’s new on the Web front by David Delabassee
Java EE 8 - What’s new on the Web front
David Delabassee
•
960 views
HTTP/2 Comes to Java by David Delabassee
HTTP/2 Comes to Java
David Delabassee
•
10.8K views
What's coming in Java EE 8 by David Delabassee
What's coming in Java EE 8
David Delabassee
•
2.3K views
Recently uploaded
Info Session November 2023.pdf by
Info Session November 2023.pdf
AleksandraKoprivica4
13 views
•
15 slides
Five Things You SHOULD Know About Postman by
Five Things You SHOULD Know About Postman
Postman
36 views
•
43 slides
Ransomware is Knocking your Door_Final.pdf by
Ransomware is Knocking your Door_Final.pdf
Security Bootcamp
59 views
•
46 slides
Future of AR - Facebook Presentation by
Future of AR - Facebook Presentation
ssuserb54b561
15 views
•
27 slides
Democratising digital commerce in India-Report by
Democratising digital commerce in India-Report
Kapil Khandelwal (KK)
18 views
•
161 slides
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker
40 views
•
69 slides
Recently uploaded
(20)
Info Session November 2023.pdf by AleksandraKoprivica4
Info Session November 2023.pdf
AleksandraKoprivica4
•
13 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About Postman
Postman
•
36 views
Ransomware is Knocking your Door_Final.pdf by Security Bootcamp
Ransomware is Knocking your Door_Final.pdf
Security Bootcamp
•
59 views
Future of AR - Facebook Presentation by ssuserb54b561
Future of AR - Facebook Presentation
ssuserb54b561
•
15 views
Democratising digital commerce in India-Report by Kapil Khandelwal (KK)
Democratising digital commerce in India-Report
Kapil Khandelwal (KK)
•
18 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker
•
40 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software
•
280 views
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft Viva
Richard Harbridge
•
12 views
MVP and prioritization.pdf by rahuldharwal141
MVP and prioritization.pdf
rahuldharwal141
•
31 views
Mini-Track: AI and ML in Network Operations Applications by Network Automation Forum
Mini-Track: AI and ML in Network Operations Applications
Network Automation Forum
•
10 views
Powerful Google developer tools for immediate impact! (2023-24) by wesley chun
Powerful Google developer tools for immediate impact! (2023-24)
wesley chun
•
10 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
IttrainingIttraining
•
58 views
NET Conf 2023 Recap by Lee Richardson
NET Conf 2023 Recap
Lee Richardson
•
10 views
SUPPLIER SOURCING.pptx by angelicacueva6
SUPPLIER SOURCING.pptx
angelicacueva6
•
16 views
Voice Logger - Telephony Integration Solution at Aegis by Nirmal Sharma
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma
•
39 views
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdf
Aitana
•
16 views
PRODUCT LISTING.pptx by angelicacueva6
PRODUCT LISTING.pptx
angelicacueva6
•
14 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10
•
300 views
Microsoft Power Platform.pptx by Uni Systems S.M.S.A.
Microsoft Power Platform.pptx
Uni Systems S.M.S.A.
•
53 views
6g - REPORT.pdf by Liveplex
6g - REPORT.pdf
Liveplex
•
10 views
Pushing Java EE outside of the Enterprise - Home Automation
1.
1
2.
Pushing Java EE
outside of the Enterprise Home Automation David Delabassee -‐ @delabassee Software Evangelist – Java EE Oracle September, 2014 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 2
3.
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 3
4.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Program Agenda Home Automation Java EE Demo Wrap-‐up 1 2 3 4 4
5.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Program Agenda Home Automation Java EE Demo Wrap-‐up 1 2 3 4 5
6.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Home Automation • “Devices” control - Lights, windows, blinders, audio, doors, wall-‐plugs, heating, etc. - From different “terminal” • Monitoring & dashboard - Power consumption, weather, motion/presence, intrusion, etc. • Scenario, scene, scheduling & automation • “Flexible” configuration Features 6
7.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Home Automation Benefits • Better control • Improves day-‐to-‐day life • Improves security • More Eco friendly • … 7
8.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Home Automation Market • Crowded space • Just the beginning! • IoT 8
9.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Home Automation Technologies • X10 / PCLBUS • RF433 • EnOcean • Z-‐Wave • ZigBee • Domologic 9 • Domintell • NikoBus / HomeControl • Chacon / DI-‐O • Somfy RTS • io-‐homecontrol • VelBus • Domologic • KNX • BLE • HomeKit • Thread • …
10.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Home Automation • Sensors - Switches, motion, temperature, CO2, humidity, wind speed, etc. • Actuators - Lights, blinders, windows, doors, audio, wall-‐plugs, etc. • Network - Wired or/and wireless + TCP/IP • Hub, box, gateway - Provides added values Actors 10
11.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Z-‐Wave “Z-‐Wave, The Interoperable Standard” • “Interoperable wireless RF-‐based communications technology designed for control, monitoring and status reading applications in residential and light commercial environments.” • Proprietary • Z-‐Wave Alliance - Consortium of 250 manufacturers and service providers worldwide ! http://www.z-‐wavealliance.org 11
12.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Z-‐Wave “Z-‐Wave, The Interoperable Standard” • Meshed wireless network • Range 100 ft (open-‐sight) • 232 modules per controller • Cheap and simple 12
13.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Connectivity • Physical connectivity - Razberry-‐Pi Daughter Card - Aeon Labs Z-‐Stick, … • Middleware - OpenZwave - RaZberry / Z-‐Wave-‐me / Z-‐Way - Domoticz, … 13
14.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Principles 14 Switch Z-‐Wave Chip 1 1 Z-‐Wave Midd. App. Set(0) Set(0) Set(0) Get() Get() 1 (inv.) 0 (valid.) 0
15.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | In real life 15
16.
“The worldwide STANDARD
for home and building control” - 40,189 KNX Partners in 125 countries - 100 Scientific Partners in 28 countries - 13 User clubs in 12 countries Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | KNX • ISO/IEC 14543-‐3 • KNX Association - 340 KNX Members in 37 countries - 40 KNX National Groups - 275 Training Centres in 51 countries ! http://www.knx.org 16
17.
“The worldwide STANDARD
for home and building control” Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | KNX • Media - TP, PL, RF and IP • Engineering Tool Software - Manufacturer independent configuration software tool - Design and configure intelligent home and building KNX installations 17
18.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Connectivity • Physical connectivity - KNX/USB Router - KNX/IP Router - Eelectron Raspberry Pi KNX interface 18
19.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Calimero • Java library for KNX/EIB applications - KNX Network services and data encodings - Routing - Local device management - Datapoint type and property type translation - ETS4 import, … • Min Java 2 Micro-‐Edition CDC Foundation Profile • http://calimero.sourceforge.net 19
20.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Config only Optional Principles KNX Bus Bus Power Supply IP KNX KNX Output module KNX Input module ETS IP Controller Gateway … 110/220v 20
21.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | In real life 21
22.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Z-‐Wave Vs. KNX • Proprietary • 232 devices per controller • Residential grade • Wireless, more sensible • Powered via batteries and PL • Controller is the Single PoF • Simple, non intrusive • Cheap • ISO Standard • Up to 58.000 bus devices • Industrial, professional grade • Wired, more reliable • Powered through the Bus • No real PoF • Complex, intrusive • Expensive 22
23.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Program Agenda Home Automation Java EE Demo Wrap-‐up 1 2 3 4 23
24.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Java EE ENTERPRISE EDITION ▪Batch ▪Concurrency ▪Simplified JMS DEVELOPER PRODUCTIVITY ▪More annotated POJOs ▪Less boilerplate code ▪Cohesive integrated platform ▪WebSockets ▪JSON ▪Servlet 3.1 NIO ▪REST MEETING ENTERPRISE DEMANDS Java EE 7 24
25.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Java EE ENTERPRISE EDITION Java EE 25 • Connectivity - EE to clients - EE to HA • Events
26.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | JSON-‐P • API to parse and generate JSON • Streaming API (javax.json.stream) - Low-‐level, efficient way to parse/generate JSON - Similar to StAX API in XML world • Object model API (javax.json) - Simple, easy to use high-‐level API - Similar to DOM API in XML world JSR 353 26
27.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | public class Notification { ! // bunch of Getters & Setters ! public String toJson() { JsonObject model = Json.createObjectBuilder() .add("source", getSource()) .add("target", getTarget()) .add("val", getValue()) .add("type", getType()) .add("medium", getMedium()) .add("cyclic", isCyclic()) .add("time", getTimestamp()) .build(); return model; } 27 JSON-‐P
28.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Java API for Web Socket • Bidirectional full-‐duplex messaging - Initial HTTP handshake - Over a single TCP connection • IETF defined protocol: RFC 6455 • HTML5 / W3C defined JavaScript API • JSR 356 - Client & Server API JSR 356 28
29.
WebSocket Server Endpoint
(1/2) @ServerEndpoint("/wsEndPt") public class InboundWebsocket implements Serializable { ! static Queue<Session> queue = new ConcurrentLinkedQueue<>(); @OnOpen public void openConnection(Session session) { Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | queue.add(session); } ! public void onEvent(Notification notif) { sendAllEndpoints(notif.toJson()); } ! … 29
30.
WebSocket Server Endpoint
(2/2) Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | ! … public static synchronized void sendAllEndpoints(String payload) { try { for (Session session : queue) { if (session.isOpen()) { session.getBasicRemote().sendText(payload); } } } catch (IOException e) { // Oooops } } 30
31.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | WebSocket Client Endpoint function connect() { wsocket = new WebSocket('ws://' + window.location.host + '/dashboard/wsEndPt'); wsocket.onmessage = onMessage; } ! function onMessage(evt) { jsonData = JSON.parse(evt.data); targetDiv = jsonData.target; var myDiv = document.getElementById(targetDiv); ! if (jsonData.type === "switch") { if (jsonData.val === "true") value = "ON"; else value = "OFF"; } else value = jsonData.val; $(myDiv).text(value); } 31
32.
Contexts and Dependency
Injection for Java EE 1.1 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | JSR 346 • Core component model - Enabled by default in implicit bean archives • Expanded use of CDI Interceptors - Transactional interceptors - Method-‐level validation interceptors • New CDI scopes - @TransactionScoped - @FlowScoped 32
33.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | CDI Events • Observer Design Pattern • Defined by - A java object (the event object) - Event Qualifier(s) JSR 346 33
34.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | CDI Events JSR 346 34 !public class producerClass { ! @Inject Event<SomeEvent> someEvent; public void someMethod(...) { ... someEvent.fire(myEvent); } } !public class anotherClass { public void someObserver(@Observes SomeEvent someEvent ) { ... ! } }
35.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | 35 CDI Events MDB ! @MessageDriven( … ) public class KnxMdb implements KnxListener { ! @Inject @HomeEvent Event<Notification> homeEvent; ! @KnxMessage(type="sensor") public void handleKnxSensor(Notification notif) { … homeEvent.fire(notif); } ! }
36.
CDI Events @ServerEndpoint("/wsEndPt")
public class InboundWebsocket implements Serializable { Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | !! @Inject @HomeEvent Event<Notification> homeEvent; ! @OnOpen public void openConnection(Session session) { … } ! public void onEvent(@Observes @HomeEvent Notification notif) { sendAllEndpoints(notif.toJson()); } … 36 WebSocker Server Endpoint
37.
Java API for
RESTful Web Services 2.0 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | • Filters and Interceptors • Asynchronous Processing • Hypermedia • Validation • Client API JSR 339 37
38.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | JAX-‐RS Client !! private void zwaveCommand(String url, String node, boolean val) { //http://host/ZWaveAPI/Run/devices[3].instances[0].commandClasses[0x25].Set(false) ! String zwaveUrl = url + node + ".Set(" + val + ")"; ! private final Client jaxrsClient = ClientBuilder.newClient(); ! String zwaveResp = jaxrsClient.target(zwaveUrl) .request(MediaType.TEXT_PLAIN_TYPE) .get(String.class); } 38
39.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | REST Endpoint ! @Path("/zwave") public class ZwaveEndpoint { @Inject @HomeEvent Event<Notification> homeEvent; ! @PUT @Path("/{id}/{val}/") @Produces("text/plain") public String swithZ(@PathParam("id") String id, @PathParam("val") String val) { Notification notif = new Notification(id, "switch" , val, "ZWAVE"); notif.setTarget(id); // target is required to identify the Zwave device notif.setValue(val); homeEvent.fire(notif); } ! } 39
40.
Java Connector Architecture
1.7 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | • Resource Adapter - JCA component for a specific EIS - Mediates communication between the container and the EIS by means of contracts - Packaged as a RAR • EIS - Packaged Applications, ERP, CICS, mail server, MoM, etc. • Contracts - Lifecycle, Connection (inc. pooling), TX, Work Management, CCI, … 40 JSR 322
41.
Java Connector Architecture
1.7 Outbound Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 41 JSR 322 Java EE Container Java EE Application Resource Adapter EIS Inbound
42.
Java Connector Architecture
1.7 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 42 JSR 322 Java EE Container Java EE Application Resource Adapter EIS MDB Inbound
43.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Message Driven Bean @MessageDriven ( activationConfig = { @ActivationConfigProperty( propertyName="destinationLookup", propertyValue="…"), @ActivationConfigProperty( propertyName="destinationType", propertyValue="javax.jms.Queue") } ) ! public class MyJmsMdb implements MessageListener { @Override public void onMessage(Message message) { //do the work } ! } 43 JMS
44.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Message Driven Bean 44 • “A MDB is an asynchronous message consumer…” • “A MDB is invoked by the container as a result of the arrival of a message at the destination or endpoint that is serviced by the MDB…” • “MDB listen to an Inbound Ressource Adapter” - Eg. JMS
45.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | 45 Message Driven Bean KNX @MessageDriven( activationConfig = { @ActivationConfigProperty( propertyName = “knx", propertyValue = "10.0.0.60") } ) ! public class KnxMdb implements KnxListener { ! @Override public void onMessage(Message message) { //handle the KNX Message } ! }
46.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | 46 Message Driven Bean KNX @MessageDriven( activationConfig = { @ActivationConfigProperty( propertyName = “knx", propertyValue = "10.0.0.60") } ) ! !public class KnxMdb implements KnxListener { @KnxMessage(type="sensor") public void handleKnxSensor(Notification notif) { … } @KnxMessage(type=“switch") public void switchKnx(Notification notif) { … } ! }
47.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Inbound RA • public interface KnxListener { } - Will be implemented by the MDB • public class KnxResourceAdapter implements ResourceAdapter {…} - Do the actual work, without real constraints (e.g. threads) - Handle MDB activation - Will listen on the KNX bus via WorkManager • public class KnxActivationSpec implements ActivationSpec {…} - Expose RA configuration to the application !! 47
48.
Inbound RA @Override
public void endpointActivation(MessageEndpointFactory endpointFactory, ActivationSpec spec) throws ResourceException { Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | tSpec = (TrafficActivationSpec) spec; Class endpointClass = endpointFactory.getEndpointClass(); tSpec.setBeanClass(endpointClass); tSpec.findCommandsInMDB(); ObtainEndpointWork work = new ObtainEndpointWork(this, endpointFactory); workManager.scheduleWork(work); } 48
49.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Inbound RA public void findCommandsInMDB() { ! for (Method method : beanClass.getMethods()) { if (method.isAnnotationPresent(KnxMessage.class)) { KnxMessage tCommand = method.getAnnotation(KnxMessage.class); commands.put(tCommand.type(), method); } } … } 49
50.
KNX (real) Listener
// KNX ProcessedEvent from the Calimero stack switch (actor) { Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | case "0/7/4": messageType = "sensor"; notif.setType("humidity"); processedEvent = Float.toString(knxSensorHumidity(pe)); notif.setValue(processedEvent); // and so on… break; } ! if (spec.getCommands().containsKey(messageType)) { // Does the MDB support this message? Method mdbMethod = spec.getCommands().get(messageType); try { callMdb(mdb, mdbMethod, notif); } catch (ResourceException ex) { // Ooops! } } else { // Unknown command ?! } 50
51.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | KnxMessage ! /* Annotation to decorate methods in the MDB */ @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface KnxMessage { String type() default ""; String info() default ""; } 51
52.
Inbound connector private
Notif callMdb(MessageEndpoint mdb, Method command, Notification param) Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | throws ResourceException { ! try { mdb.beforeDelivery(command); Object ret = command.invoke(mdb, param); notif = (Notif) ret; } catch (NoSuchMethodException | ResourceException | IllegalAccessException | IllegalArgumentException |InvocationTargetException ex) { // MDB invocation error :( … } mdb.afterDelivery(); return notif; } 52
53.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | KNX MDB 53 @MessageDriven( activationConfig = { @ActivationConfigProperty( propertyName = “knx", propertyValue = "10.0.0.60") } ) ! public class KnxMdb implements KnxListener { ! @KnxMessage(type="sensor") public void handleKnxSensor(Notification notif) { … } @KnxMessage(type=“switch") public void switchKnx(Notification notif) { … } ! }
54.
Java Connector Architecture
1.7 Outbound Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 54 JSR 322 Java EE Container Java EE Application Resource Adapter EIS
55.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | And more… • EJB • CDI Interceptors • JAX-‐RS Interceptors • Concurrency Utilities for Java EE • Java Persistence API • JavaServer Faces • OpenMQ Stomp support • Jersey SSE, MVC… 55
56.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Program Agenda Home Automation Java EE Demo Wrap-‐up 1 2 3 4 56
57.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Dashboard • HTML Client - “Pure” JS - Real-‐time notifications via WebSocket - Control devices via REST • Java EE 7 backend - KNX (JCA) & Z-‐Wave (REST) - In & Outbound 57
58.
KNX Sensors Copyright
© 2014, Oracle and/or its affiliates. All rights reserved. | KNX Bus Bus Power Supply IP KNX KNX Output module VPN IP Java EE 110/220v 58 KNX Output module KNX Input module KNX Input module KNX Input module Z-‐Wave Output module Z-‐Wave KNX Sensors Z-‐Wave Input module Demo JCA REST
59.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Program Agenda Home Automation Java EE Demo Wrap-‐up 1 2 3 4 59
60.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | • Connectivity - JAX-‐RS, JCA, WebSocket, JMS… • ‘Event’ driven capabilities - MDB, CDI event • Non blocking IO • Asynchronous • Scheduling • Persistence • Component models • UI - JSF, JAX-‐RS • Container - Lifecycle - Monitoring & Management - Ressources pooling - Logging - … Java EE for Home Automation 60
61.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | What’s next • PoC - KNX, Z-‐Wave & InfraRed • Improvements - Additional ‘connectors’, e.g. RF433 - More types, e.g. range for blinders - State Management - User interface - Add ‘scenario’s - Leverage Java EE more, e.g. CDI Interceptors 61
62.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Java EE and IoT • Connected devices • Messages / data producer • Data aggregation / processing - Deeper in the network • Scaling • Security 62
63.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Java EE 8 • CDI 2.0 • JMS 2.1 • MVC 1.0 • JAX-‐RS 2.1 • JSON-‐B + JSON-‐P TBC! 63
64.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | Resources • The Java EE 7 Tutorial - http://docs.oracle.com/javaee/7/tutorial/doc/home.htm • GlassFish 4.1 - http://glassfish.org • NetBeans 8.0.1 - http://netbeans.org 64
65.
Copyright © 2014,
Oracle and/or its affiliates. All rights reserved. | 65
66.
66
67.
67