using java and standards for fast iot development [con5513]
TRANSCRIPT
![Page 1: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/1.jpg)
@leomrlima#FastIoTJ1
Using Java and Standards for Fast IoT Development [CON5513]
Leonardo Lima@leomrlima http://v2com.mobi
![Page 2: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/2.jpg)
@leomrlima#FastIoTJ1
About meLeonardo Lima
•Computer engineer, server & embedded SW developer•From São Paulo, Brasil, now in Austin, TX•CTO at
•Spec Lead – JSR363•V2COM’s Representative at JCP Executive Committee
[www.linkedin.com/in/leomrlima]
![Page 3: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/3.jpg)
@leomrlima#FastIoTJ1
AgendaAspects of IoT developmentBusiness & Technical Concerns (or Functional & Non Functional Requirements)Why Java?Using Standards – pick your flavor!IRLQ&A
![Page 4: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/4.jpg)
@leomrlima#FastIoTJ1
ASPECTS OF IOT DEVELOPMENTOh so many things to consider!
![Page 5: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/5.jpg)
@leomrlima#FastIoTJ1
IoT Development…Is not just connecting things
Has a lot of constraints
Has many horizontal aspects and as many vertical aspects
![Page 6: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/6.jpg)
@leomrlima#FastIoTJ1
On connecting thingsThe buzz of IoT is connecting things
Does everything needs to be connected?
The implications of connectivity
![Page 7: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/7.jpg)
@leomrlima#FastIoTJ1
It’s here and thereWe can talk about these concerns both in embedded and cloud development
We’re going to focus more on embedded
![Page 8: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/8.jpg)
@leomrlima#FastIoTJ1
So many constraints!Hardware constraintsSoftware constraintsProtocol constraintsReal life considerations
![Page 9: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/9.jpg)
@leomrlima#FastIoTJ1
Aspects deep and wide Business considerations• What process are we replacing, enhancing or
creating?• Who’s being impacted, equipment and people
wise?Technical considerations• Even very different verticals have the same
technical requirements – and this lets us leverage standards
![Page 10: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/10.jpg)
@leomrlima#FastIoTJ1
BUSINESS & TECHNICAL CONCERNS (OR FUNCTIONAL & NON FUNCTIONAL
REQUIREMENTS)
What do you need, commander?
![Page 11: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/11.jpg)
@leomrlima#FastIoTJ1
It starts very simple”Just need this value in this system”
”Can’t you just connect a cable and read it?”
”Just put a chip in there and it’ll work”
”But it’s just a modem”
![Page 12: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/12.jpg)
@leomrlima#FastIoTJ1
But it gets complicatedExplicit concerns
And ones they don’t even think about
![Page 13: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/13.jpg)
@leomrlima#FastIoTJ1
It gets down to• Safety• Security, Trust & Privacy • Resilience • Integrability, Interoperability and Composability • Connectivity • Data Management • Analytics and Advanced Data Processing• Device Management
![Page 14: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/14.jpg)
@leomrlima#FastIoTJ1
WHY JAVA?would you like a cup of java with that, sir?
![Page 15: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/15.jpg)
@leomrlima#FastIoTJ1
Java……is a programming language and computing platform first released by Sun Microsystems in 1995. …has a vibrant ecosystem where open source plays a major role…virtual machine allows true ”write once, compile once and run anywhere” for embedded and server environments
![Page 16: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/16.jpg)
@leomrlima#FastIoTJ1
USING STANDARDS – PICK YOUR FLAVOR!Oh so many choices!
![Page 17: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/17.jpg)
@leomrlima#FastIoTJ1
Standards address common issuesEvery major concern in our bucket list has at least one standard to address it
But sometimes too many standards do get in the way
Standards and open source go very well together
![Page 18: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/18.jpg)
@leomrlima#FastIoTJ1
Data Management • Query, Publish and Subscribe
• Storage, Persistence and Retrieval
• Integration
• Description and Presence
• Rights Management
![Page 19: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/19.jpg)
@leomrlima#FastIoTJ1
Security, Trust & Privacy • Endpoint security
• Communication security between the endpoints
• Data distribution and secure storage
• Management and monitoring security of both the endpoints and the communication mechanism
![Page 20: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/20.jpg)
@leomrlima#FastIoTJ1
Connectivity• Communication Transport • Get data there
• Connectivity Framework • How data is structured and used
![Page 21: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/21.jpg)
@leomrlima#FastIoTJ1
Integrability, Interoperability and Composability • Integrability
• Interoperability
• Composability
![Page 22: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/22.jpg)
@leomrlima#FastIoTJ1
Device Management
• Day-to-day operations (who’s not online and why)
• Firmware & configuration management
• Billing
• Non-functional aspects
![Page 23: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/23.jpg)
@leomrlima#FastIoTJ1
IRL (IN REAL LIFE)What would you choose?
![Page 24: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/24.jpg)
@leomrlima#FastIoTJ1
A Smart Freezer
• ”Simple” business concept• Monitor temperature to avoid product loss
• ”Since we are doing this, why not…”• Monitor stock level• Check if others are using our freezer for something
else
• Server and embedded development
![Page 25: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/25.jpg)
@leomrlima#FastIoTJ1
Addressing the concerns – Connectivity & Security• Use JCA (Java Crytography Architecture) for security
concerns• Or, alternatively BouncyCastle framework
• JavaCard/PKCS11 helps with authentication and cryptography
• Standard protocols for IoT communication• HTTPS (TLS/SSL) if you can afford• MQTT• CoAP
![Page 26: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/26.jpg)
@leomrlima#FastIoTJ1
Addressing the concerns – Data Integration
• Java has plenty of standards for data parsing and representation
• JSR 363 for measurements• JSR 353 for JSON-P • JSR 339 for JAX-RS (REST)• JSR 343 for Messaging (JMS 2.0)• You can use an MQ that exposes MQTT to the devices and
JMS to your servers
• Using these standards in a Java EE environment will lead to a very efficient development
![Page 27: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/27.jpg)
@leomrlima#FastIoTJ1
Addressing the concerns – Integrability
• Extensive Java EE standards for REST and SOAP WebServices
• JSR 363 helps with interoperability between diverse systems
![Page 28: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/28.jpg)
@leomrlima#FastIoTJ1
It gets more complicated...
• When thinking of expansion, it does get more complicated as there are many different aspects to consider• Device management• Multiple WANs• Multiple legacy protocols
• There are plenty of options that encapsulate (some) of these concerns, for a cost (or not)
![Page 29: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/29.jpg)
@leomrlima#FastIoTJ1
Going the open source route…
• iot.Eclipse.org has a ever increasing (20+) suite of tools and frameworks for IoT that helps to address some concerns we discussed• You can get professional support on top of them
• Kura (OSGi for services gateways)• Paho (open-source implementations of open and
standard messaging protocols)
• For server side, we get a LOT of options (just look at your session catalog )
![Page 30: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/30.jpg)
@leomrlima#FastIoTJ1
… Or closed systems
• Major IT vendors have something to offer in IoT now
• For device development• Standard framework for development• Tight integration with backend system
• And server side• Device management• Message Routing• Analytics and Processing
![Page 31: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/31.jpg)
@leomrlima#FastIoTJ1
Major IoT offerings
• Oracle IoT CS• IBM BlueMix• GE Predix• Microsoft Azure IoT• Amazon AWS IoT• PTC ThingWorx
![Page 32: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/32.jpg)
@leomrlima#FastIoTJ1
Q & A
![Page 33: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/33.jpg)
@leomrlima#FastIoTJ1
In the end…
• There are plenty of options to match plenty of requirements
• Each project is a project, and you’ll be re-evaluating requirements for each of them
• It pays to have a broad knowledge of what’s available and do a quick survey of their strengths
• Standardized solutions will always be the ones with better support and odds of being the best tool
![Page 34: Using Java and Standards for Fast IoT Development [CON5513]](https://reader035.vdocument.in/reader035/viewer/2022081517/58d0b34a1a28ab1d3a8b529b/html5/thumbnails/34.jpg)
@leomrlima#FastIoTJ1
Thanks!