By: by Tom Angelucci, Oracle
As the Internet of Things continues to grow, it is changing the nature of the devices that are attached and how we interact with them and their data into an object-oriented paradigm. This opens a path for a software system like embedded Java to be a natural means of development, control and interaction.
Change is afoot in the world of embedded systems. As the Internet of Things (IoT) creeps closer to the precipice of delivering the scale of machine-to-machine (M2M) communication that’s long been promised, so, too, are new ways of doing things starting to displace tried-and-true tools and strategies.
Nowhere is this more evident than on the platform front. Having dominated embedded system design for decades, stalwart languages C and Assembly have been rapidly ceding market share to modern, object-oriented alternatives, most notably Java. There are numerous reasons for this shift, from the ramped-up time-to-market pressures enterprises face to the “write once, run anywhere” portability Java Embedded affords. The bottom line is that Java Embedded appears to be staking its claim as the preferred programming language businesses use to develop IoT applications.
Java is “the language of choice within the enterprise, and what will drive M2M is not only the engineering community, but also businesses embracing it,” Michael Azoff, principal analyst at research firm Ovum, wrote in a recent report.
And what businesses need right now is the ability to make quicker, better and smarter decisions with the IoTs’ fountain of data. So, when a motion sensor at the entrance to a building detects a break-in, it shouldn’t merely turn on the alarm system; it should also automatically start recording video of the burglary and trigger a feed of that video to a security supervisor’s smart phone as well as the local police. Likewise, when an aircraft’s engine sensors detect a mechanical issue, its embedded system should diagnose the situation, send the data to the appropriate location of a repair team who can more quickly and efficiently address the problem and then effect repairs.
Engineering teams are, of course, eager to satisfy business demands. So it’s no surprise that survey findings from VDC Research indicate that the portion of embedded systems design projects powered by Java rose from 12.3 percent in 2008 to 27.8 percent in 2013. Meanwhile, use of C during the same period dropped from 91.6 percent to 59.8 percent, and use of Assembly fell from 47.4 percent to 19.1 percent.
With billions of devices expected to join the IoT over the next several years, analysts expect organizations to continue this migration away from the legacy static languages that have been traditionally used. This steady integration into the IoT will have significant impact on device design (Figure 1).
“The Internet of Things is rendering many incumbent embedded engineering technologies and design processes insufficient and antiquated,” Chris Rommel, vice president of M2M and embedded technology at VDC, wrote in a research report accompanying the firm’s survey findings. “Engineering organizations now need new solutions that address these evolving requirements and speed development and time to revenue.”
It is only set to get worse—or better, depending on one’s perspective. A recent survey of 1,867 Internet experts and stakeholders conducted by the Pew Research Internet Project found that there’s no perceived limit to where the IoT will show up in the near future. Respondents predicted that the IoT will be evident in most goods and services, ubiquitous in our homes, communities and environments, and will even be making appearances in our bodies.
The research survey noted commentary from Patrick Tucker, author of “The Naked Future: What Happens in a World That Anticipates Your Every Move?,” offering a succinct written analysis of where he sees the IoT heading: “Here are the easy facts: In 2008, the number of Internet-connected devices first outnumbered the human population, and they have been growing far faster than we have,” wrote Tucker.
As the array of predictions in the Pew survey indicates, the range of devices that will make up IoT is likely to vary wildly in footprint and function. As such, developers can expect to see embedded system design projects pop up everywhere from assembly line machinery and building automation systems to pacemakers and even toothbrushes.
Working with these devices is definitely a new and different domain for most application developers. And the changes that will come to the devices themselves as they are integrated into the IoT will call for ways to make their development more approachable (Figure 2). For starters, these devices are often “resource constrained.” They might have a smaller memory footprint, and they don’t have a human on the other end that can click on an option or push a button to upgrade. A lot of these devices will be field-deployed in some cases for 10 or 15 years without anyone ever touching them. They will, however, be producing huge volumes of sensor data, making independent decisions and integrating with enterprise systems (such as analytics databases), all needs for which Java Embedded is well suited.
But Java Embedded delivers a number of other advantages as well. First, there’s the fact that Java’s runtime environment, the Java Virtual Machine, can run multiple applications simultaneously and securely without having one affect the other, enabling programming to be broken down into reusable modules. Right there, we’re talking shorter development cycles and lower costs.
That modularity, in turn, offers a significant security payoff by preventing malicious programs from affecting multiple applications, a critical layer of protection when embedded IoT systems are accessing firmware updates. Java Embedded also addresses the issue of these devices being deployed in-field for the long term by enabling on-the-fly application downloads and updates, remote operation—often in challenging environments, and the ability to add new capabilities without impacting the existing functions. This extends the lifetime, flexibility and value of embedded solutions by enabling application upgrades in the field, without compromising the integrity and security of the system. All this goes to create a chain of data and services that runs from the smallest connected device to the Cloud (Figure 3).
There is also abundant evidence that Java speeds up embedded system design efforts, not to mention interoperability and portability. Where embedded systems built using C are generally device specific, the ability of Java Embedded to enable code reuse in a variety of IoT settings can further cut development time and costs significantly by breaking down embedded system silos.
In the past, people would choose the components that go into a device and then write all the software in native code, so there weren’t a lot of considerations about interoperability or reusability of the code for other similar applications. Java, with its “write once, run anywhere” capabilities, allows developers to get started more quickly and to reuse code across devices.
Oracle Java Embedded also delivers important staffing and resource benefits. To start, with a population of 9 million and growing, the Java programming community is large, making it much simpler for companies to find the developers they need. What’s more, because Java is an established enterprise asset in most companies, Java programmers can apply their skills as readily to enterprise application and Cloud development efforts as they can to embedded IoT projects.
Still, with the IoT in its relative infancy, there aren’t a lot of large-scale deployments that demonstrate the potential of this new approach to embedded system design. With that in mind, Oracle and Oracle PartnerNetwork (OPN) member ProSyst Software GmbH decided to provide a proof point that would demonstrate how its technology could be combined with Oracle Java Embedded to connect millions of devices to powerful backend systems via an open, standards-based platform. ProSyst makes middleware designed for the IoT.
Another OPN member, V2COM, has spearheaded development of a vertical IoT solution that leverages Oracle Java Embedded, along with security vendor Gemalto, to help modernize electrical power delivery in Latin America. The solution is designed to support leading-edge smart metering, as well as big data integration and power network automation, to improve energy efficiency and quality of service.
V2COM’s smart grid uses Gemalto’s Cinterion M2M modules, along with Oracle Java Embedded, to securely transmit energy usage data over wireless networks into backend utility systems. Oracle’s device-to-data-center solution is intended to enable electricity providers to reduce energy losses and fraudulent incidents by improving remote monitoring and management of energy consumption, and speeding up response times when outages occur.
Early adoption is already occurring in healthcare as well, with Java Embedded showing up in lifestyle health devices, patient monitoring technologies and home healthcare or telehealth tools.
In the auto industry, meanwhile, the Java Embedded-enabled IoT sensors and devices are increasingly being deployed for multiple use cases from fleet management and logistics to pushing offers to rental car drivers.
As ambitious as these efforts have been, this is only the beginning for IoT.
And in many cases, Java Embedded will be under the hood, making it all happen.
Redwood Shores, CA
+49 221 6604-0
Sao Paulo, Brazil
+55 11 3031 3322
© 2009 RTC Group, Inc., 905 Calle Amanecer, Suite 250, San Clemente, CA 92673