Friday Oct 25, 2013

Last week’s JavaOne conference provided insights in the roadmap of
the Java platform as well as in the current state of things in the Java
community. The close relationship between Oracle and IBM concerning
Java, the (continuing) lack of such a relationship with Google, the
support from Microsoft for Java applications on its Azure cloud and the
vibrant developer community – with over 200 different Java User Groups in many countries of the world.

There
were no major surprises or stunning announcements. Java EE 7 (release
in June) was celebrated, the progress of Java 8 SE explained as well as
the progress on Java Embedded and ME. The availability of NetBeans 7.4
RC1 and JDK 8 Early Adopters release as well as the open sourcing of
project Avatar probably were the only real news stories. The convergence
of JavaFX and Java SE is almost complete; the upcoming alignment of
Java SE Embedded and Java ME is the next big consolidation step that
will lead to a unified platform where developers can use the same
skills, development tools and APIs on EE, SE, SE Embedded and ME
development. This means that anything that runs on ME will run on SE
(Embedded) and EE – not necessarily the reverse because not all SE APIs
are part of the compact profile or the ME environment. However,
the trimming down of the SE libraries and the increased capabilities of
devices mean that a pretty rich JVM runs on many devices – such as JavaFX 8 on the Raspberry PI.

The
major theme of the conference was Internet of Things. A world of things
that are smart and connected, devices like sensors, cameras and
equipment from cars, fridges and television sets to printers, security
gates and kiosks that all run Java and are all capable of sending data
over local network connections or directly over the internet.

The
number of devices that has these capabilities is rapidly growing. This
means that the number of places where Java programs can help program the
behavior of devices is growing too. It also means
that the volume of data generated is expanding and that we have to find
ways to harvest that data, possibly do a local pre-processing (filter,
aggregate) and channel the data to back end systems.

Terms
typically used are edge devices (small, simple, publishing data),
gateways (receiving data from many devices, collecting and
consolidating, pre-processing, sending onwards to back end – typically
using real time event processing) and enterprise services – receiving
the data-turned-information from the gateways to further consolidate,
distribute and act upon.

A cheap device like the Raspberry PI is a
perfect way to get started as a Java developer with what embedded
(device) programming means and how interaction with physical input and
output takes place.