How fast can you deploy a new IoT solution? If you have a business challenge to solve, there are so many aspects to be considered that an IoT project seems to take forever: security, deployment, device management, connectivity, sensors, and more.... The promise of “write once, run anywhere" and 20 years of a vivid ecosystem have empowered Java to be the language for successful IoT stories. In this session, check out how to use Java and many standards (for communication, security, deployment, and coding) to develop a “smart freezer,” address many business concerns, and keep the project on schedule.
2. @leomrlima#FastIoTJ1
About me
Leonardo 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]
3. @leomrlima#FastIoTJ1
Agenda
Aspects of IoT development
Business & Technical Concerns (or Functional & Non
Functional Requirements)
Why Java?
Using Standards – pick your flavor!
IRL
Q&A
7. @leomrlima#FastIoTJ1
It’s here and there
We can talk about these concerns both in embedded
and cloud development
We’re going to focus more on embedded
9. @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
11. @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”
13. @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
15. @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
17. @leomrlima#FastIoTJ1
Standards address common issues
Every 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
19. @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
24. @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
25. @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
26. @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
27. @leomrlima#FastIoTJ1
Addressing the concerns – Integrability
• Extensive Java EE standards for REST and SOAP
WebServices
• JSR 363 helps with interoperability between diverse
systems
28. @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)
29. @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 )
30. @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
33. @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