Embedding Java on the IoT and the Web of Things
Although often conflated under one common umbrella as the "Internet of Things," the current environment of ubiquitously connected wireless sensor and machine-to-machine networks is defined by two approaches to building the necessary infrastructure.
One, of course, is IoT, which is a bottom up approach and an embedded design point of view. Here the primary concern has been how to connect devices with constrained resources together at the lower network and transport layer level. Its building blocks are various protocols such as RFID, Zigbee, Bluetooth, or 6LoWPAN; publish/subscribe message schemes such as real-time DDS (data distribution service) and the more recent MQTT; microkernel RTOSes; and the C language or some subset of it.
The other approach is the Web of Things, driven in part by the emergence of mobile phone standards such as Android and now consumer IoT. Here the concern is less with creating apps that can run in constrained environments and more in with regrouping the basic building blocks of the current Internet and World Wide Web into frameworks, such as OSGi, that allow construction of an application layer for connection to physical objects such as smart watches, wearables, and medical appliances, many of which require human interaction.
While there have been efforts, such as the recently proposed Californium, to merge the two strains into a coherent whole, for now embedded developers will have to determine for themselves which is the best development environment for them.
If your focus is on the consumer IoT and WoT market, it will be important to keep up to date on the various Java technologies you will need. One great venue for that is JavaOne, which will be coming to San Francisco September 28 - October 2 as part of Oracle OpenWorld 2014..
Not only will you get a chance to upgrade your knowledge of the newest versions of the language and its platforms, there will be a track of more than 90 classes, seminars, and panel sessions on the use of Java in the IoT and WoT environment. Among these several I can recommend include:
OSGi-Based Architecture for Internet of Things Gateways [CON3875]
Dimitar Valtchev of ProSyst Software will talk about an IoT architecture based on OSGi and discuss the various aspects of this architecture, particularly as it relates to the underlying JVM and the new Java SE Embedded 8 and Java ME 8.
Creating a Java Internet of Things Gateway [CON5260]
Wes Johnson of Eurotech, Inc. will discusses and demonstrates Eclipse Kura, a Java- and OSGi-based application framework that abstracts the developer from the hardware subsystems and ensures application portability across architectures.
Java-Based Architecture for the Internet of Things [CON3027]
Pete St. Pierre and Noel Poore of Oracle will explore how Java-based components can be used to create a secure platform for distributing application logic that enables the monitoring and control of devices in the Internet of Things.
Another resource for updating your knowledge on all things Java is Embedded.com, where we continue to publish design articles on the use of Java in embedded, IoT and WoT applications, some of which have been included in this week's Tech Focus Newsletter. Of these my Editor's Top Picks include:
Implementing a Java-programmable, IP-addressable, secure MCU for the IoT
Why resource-constrained MCUs for the IoT need an operating system appropriate to the connectivity and how the jNet's JavaCard-based OS can satisfy this requirement.
Using ARM DBX to accelerate Java in space-constrained embedded apps
Chris Porthouse of ARM reviews the traditional software-only and hybrid Java techniques and describes how the Jazelle DBX hardware accelerated approach can be used to full advantage in space-contrained apps.
OSGI middleware for IoT sensor networks as a service paradigm
An OSGi-based middleware, called Sensor Node Plug-in System (SNPS), where sensors are no longer low-level devices producing raw measurement data, but act as “services” to be used and composed over the Internet in a simple and standardized way.
OSGi and the software fabric for the Internet of Things
How to use the Java-based OSGi (Open Service Gateway initiative) specification to turn the Internet of Things into a collection of loosely coupled software modules interacting through standard Web services interfaces.
Imperfect and confusing as it is, the fragmented state of the Internet of Things is not likely to settle down soon to a common set of languages, tools, and frameworks. It is a complex environment and is becoming more so. But I hold great hopes for efforts such as Californium, which, in its attempt to create a common cloud framework for the two approaches to work together, makes extensive use of many of Java's tools and building blocks.
Embedded.com Site Editor Bernard Cole is also editor of the twice-a-week Embedded.com newsletters as well as a partner in the TechRite Associates editorial services consultancy. He welcomes your feedback. Send an email to email@example.com, or call 928-525-9087.