Java as a global language for embedded solutions
Régis Latawiec gives us an expert overview of the evolving embedded market, and explains why Java is his number one choice for bringing the world of interconnected objects to life.
JAXenter met with Régis Latawiec, COO of embedded systems
solutions providers IS2T, at embedded world this
spring to discuss, among other things, the evolution of embedded
technology, why Java was their language of choice for in-device
software solutions, and what the company envisions for the future
of the IoT.
JAX: What kind of services does your company
Latawiec: IS2T is a software editor
that provides solutions for embedded system software development.
Our flagship product is the MicroEJ® virtual platform, which
provides a unified execution environment across a wide range of
processors for the embedded world. Of course, virtual platforms
could be using other languages than Java, but we have chosen Java
technology because it is one of the “world languages for
applications”, with a large community of more than nine million
engineers. We believe that Java, in synergy with C – its native
companion language – is a good choice when providing virtualization
in object-oriented programming.
When did you start your business?
We started in late 2005. Fred Rivard (CEO of IS2T)
previously worked at OTI and was part of the Eclipse Java compiler
team. A few years later, in the IBM Java virtual machine team, he
got again deeply involved in the Java technology design. Having
generated one million euros with an initial round of fundraising,
we designed the MicroEJ technology and our first products to offer
customized Java platforms to the Industry.
In 2009, we began to form partnerships within our
embedded ecosystem (software & silicon vendors) and to deliver
ready-to-use standard platforms. The embedded market is very
fragmented as there are lots of different microprocessors, RTOS,
communication stacks, user interface stacks, linkers… and to
simplify this complex world in order to reduce the difficulties met
when developing a new product, customers from various vertical
markets asked for generic standard software platforms.
Soon, we had to quickly design different Java
platforms, based on Java Virtual Machines (JVM) that could run on
any kind of microprocessors or microcontrollers. To do so, we
internally developed tools, processes, and software components.
Today we have more than 20 different Java Virtual Machines adapted
to each market but still providing the very same unique interface
to develop embedded Java applications. Although we mainly target
embedded processors, we can make new ready-to-use Java platform
(not a “port”) for any kind of architecture within few months only.
This is unique in the industry: as far as we know, none of our
competitors can do that.
With how many people?
Not many, just a few. It depends on the microprocessor
architecture, the RTOS complexities, and the hardware IP blocks
(such as bus accelerators, DMA, pipelines,) that are included in
How do you do that?
When you design software, the expressive power of the
language you use is a key. Take a look at other famous software
companies: they all have their own – and sometimes several –
languages: Oracle with Java, Microsoft with their Java-like C#, SAP
with Abab, etc…
We followed a similar strategy, and wanted to control
our programming language to develop our Java Virtual Machines.
Today, it allows us to have high productivity and tremendous
execution performance. Not surprisingly, it is an extension of both
C and Java languages, combined together in a unified language.
Can you tell us more about this
Not at this point. It is one of the assets of the
company. We will release it one day.
What are your markets?
We focus on design-to-cost embedded systems, from
small connected devices with HMIs, to more complex IoT solutions.
We don’t provide any virtual platforms for PCs or servers, but we
can address a multitude of market segments because our technology
is so small that we can fit it onto any kind of microprocessor. We
also compete with our challengers on smartphones and tablets.
In the past, companies built their own software
platforms, but everything in their system was tightly coupled and
hard to maintain. Today, things have changed and companies can buy
ready-to-use platforms to save time and resources. The market is
now mature enough and ready for outsourcing strategies when it
comes to quickly launching embedded devices onto the market. Built
upon customers’ request, the MicroEJ solution finally came right on
Did you see this coming when you
Yes. We did spot the trend. The Java language was
really popular when Java application platforms emerged in the early
nineties. Not only because it is an object oriented programming
paradigm and offers a virtual machine, but also because of its
productivity and scalability. Since then, the embedded market has
evolved and today’s ARM Cortex M4, for example, has roughly the
same CPU power as PCs at that time. The design process that
everyone uses for PC or servers worlds is now available for
embedded software design: virtual application platforms are now a
commonly used technology.
Thanks to the Java portability, IS2T provides the
ability to make a simulation system for prototyping and validation.
Usually, once a customer has prototyped their system on a PC, the
are not able to simulate the sensors or actuators implemented by
the embedded system. IS2T provides the ability to extend the
simulator with virtual sensors or actuators to fully test software
applications on PC before deploying it onto the embedded
The simulator also provides the memory footprint
required for the software, so that the most suitable hardware
system can be selected to run the functionalities expected by
marketing teams. If prototyping is possible and if the technology
that is used for prototyping stays the same until the end of the
process (this is the case with MicroEJ), software and hardware
systems may be designed in parallel. This allows switching to Agile
processes like Extreme Programming, Scrum etc. MicroEJ is not only
a technology, it also includes a fast go-to-market development
process with the just-needed-Bill-Of-Material for the device.
OK, so aside from your thoughts on embedded
Java, what’s your stance on the IoT in general?
IS2T’s vision of IoT is driven by portability and
ubiquity. “Compile once, run anywhere” is fine as long as your
hardware runs Java. This is what we saw coming: every device can
run Java technology, from the one-dollar microcontroller to the
fifteen-dollar one. Once you know every device can run Java
technology, you can deploy a Java program in the Cloud, on a
gateway or on edge devices.
Today we work with gateways just this size [shows a
square of the size of two credit cards], which you can connect any
device from home with. It works the same way in wearable devices.
You’ve got Nike here [at embedded world], or Adidas. Data is
collected when a device is being used. Complex data fusion is then
needed to integrate to provide consistent data to help you to
monitor your activity.
Unfortunately this cannot be remotely controlled by
your smartphone because it has to be instantaneous, immediate and
may use wired communication with textiles. That’s why a wearable
gateway is needed. So to make this happen, we focus on small memory
footprints… And you probably know about OSGi?
Yes, I remember reading that you’re an OSGi
The OSGi framework is a great software component with
a large community of engineers (all Eclipse plugins are OSGi based
components). But it has to rely on an infrastructure that provides
secured control of the resources that a service can use (RAM, CPU
load, data, IOs access). Either you use a lot of cryptography means
which are very complicated (code size, logistics) or you provide a
Java Virtual Machine that allows to identify each vendor service,
every object’s owner, every task’s owner, and so on…Therefore you
regulate the services with a built-in hypervisor. This is what we
Can you elaborate on this?
The Java Virtual Machine can run services in a
protected way. The kernel of the Java Virtual Machine keeps track
of all the services called “Features” (a group of OSGi bundles).
When a Feature needs to access to another Feature, this will be
handled by the kernel. The kernel rules everything. It’s like a
hypervisor. If a feature starts to behave very strangely, the
kernel can kill it and roll back to the previous state, like OSGi
does, but in a safe way. MicroEJ has all the power of OSGi, but
safely and at a price of less than an extra 20K for the built-in
What do you think about the future of Java in
general? Last year it was announced at JavaOne that JavaSE and
JavaME are going to be unified. What are the consequences of this
for Java and the Internet of Things?
Oh, this is very good for the entire Java ecosystem.
We are very happy that Oracle decided to unify everything into a
unique set of core APIs that can be used across all devices from
Java SE for PC to MicroEJ based devices.
So you think Java is finally going to fulfill its
promise to “Write once, run anywhere”?
This is why we are here. Our first Virtual Machine ran
on an 8-bit microcontroller. We expanded to the 32-bit core
architectures like ARM Cortex M series which are now very common.
Our starting point was a very restricted hardware, and we tried to
come up with an architecture that could be ported everywhere. Now
we are on Cortex M0+ to Cortex A8 and massive multi-cores.
Today ARM was awarded embedded award for its
new technology the V8R which can run multiple operating systems.
How do you think that’s going to affect the embedded community as a
This will change the way people will program things.
It’s very good news for IS2T actually because a Java Virtual
Machine basically aims at simplifying software design approaches
that are getting more complex with multi cores. With a Java Virtual
Machine, developers don’t have to know anything about the hardware.
IS2T is involved in many projects with 256 to 1024 cores within one
chip. For these particular projects IS2T can provide a unified
programming model even if it deals with a very complex (under the
What are the biggest challenges for the
embedded market at the moment?
Bringing Java developers to the embedded field – and
bringing embedded developers to Java. [laughs]