Java IoT

Updates (Oct 3, 2012):

  • Cinterion announce the launch of their latest M2M solution, based on Oracle Java ME Embedded 3.2
  • Qualcomm Technologies and Oracle announce their collaboration on M2M platforms, based on Oracle Java ME Embedded 3.2

The Internet of Things (IoT) is coming. And, with todays launch of the Oracle Java ME Embedded 3.2 product, Java is going to play an even greater role in it.

Java in the Internet of Things

By all accounts, intelligent embedded devices are penetrating the world around us – driving industrial processes, monitoring environmental conditions, providing better health care, analyzing and processing data, and much more. And these devices are becoming increasingly connected, adding another dimension of utility. Welcome to the Internet of Things.

As I blogged yesterday, this is a huge opportunity for the Java technology and ecosystem. To enable and utilize these billions of devices effectively you need a programming model, tools, and protocols which provide a feature-rich, consistent, scalable, manageable, and interoperable platform. 

Java technology is ideally suited to address these technical and business problems, enabling you eliminate many of the typical challenges in designing embedded solutions. By using Java you can focus on building smarter, more valuable embedded solutions faster. To wit, Java technology is already powering around 10 billion devices worldwide.

Delivering on this vision and accelerating the growth of embedded Java solutions, Oracle is today announcing a brand-new product: Oracle Java Micro Edition (ME) Embedded 3.2, accompanied by an update release of the Java ME Software Development Kit (SDK) to version 3.2.

What is Oracle Java ME Embedded 3.2?

Oracle Java ME Embedded 3.2 is a complete Java runtime client, optimized for ARM architecture connected microcontrollers and other resource-constrained systems. The product provides dedicated embedded functionality and is targeted for low-power, limited memory devices requiring support for a range of network services and I/O interfaces. 

What features and APIs are provided by Oracle Java ME Embedded 3.2?

Oracle Java ME Embedded 3.2 is a Java ME runtime based on CLDC 1.1 (JSR-139) and IMP-NG (JSR-228). The runtime and virtual machine (VM) are highly optimized for embedded use. Also included in the product are the following optional JSRs and Oracle APIs:

ME E Overview

  • File I/O API’s (JSR-75) 
  • Wireless Messaging API’s (JSR-120)
  • Web Services (JSR-172)
  • Security and Trust Services subset (JSR-177)
  • Location API’s (JSR-179)
  • XML API’s (JSR-280) 
  • Device Access API
  • Application Management System (AMS) API
  • AccessPoint API
  • Logging API

Additional embedded features are:

  • Remote application management system
  • Support for continuous 24×7 operation
  • Application monitoring, auto-start, and system recovery
  • Application access to peripheral interfaces such as GPIO, I2C, SPIO, memory mapped I/O
  • Application level logging framework, including option for remote logging
  • Headless on-device debugging – source level Java application debugging over IP Connection
  • Remote configuration of the Java VM

What type of platforms are targeted by Oracle Java ME 3.2 Embedded?

The product is designed for embedded, always-on, resource-constrained, headless (no graphics/no UI), connected (wired or wireless) devices with a variety of peripheral I/O. 

The high-level system requirements are as follows:

  • System based on ARM architecture SOCs
  • Memory footprint (approximate)
    • from 130 KB RAM/350KB ROM (for a minimal, customized configuration)
    • to 700 KB RAM/1500 KB ROM (for the full, standard configuration) 
  • Very simple embedded kernel, or a more capable embedded OS/RTOS
  • At least one type of network connection (wired or wireless)

The initial release of the product is delivered as a device emulation environment for x86/Windows desktop computers, integrated with the Java ME SDK 3.2.

A standard binary of Oracle Java ME Embedded 3.2 for ARM KEIL development boards based on ARM Cortex M-3/4 (KEIL MCBSTM32F200 using ST Micro SOC STM32F207IG) will soon be available for download from the Oracle Technology Network (OTN). 

Nanini peter

What types of applications can I develop with Oracle Java ME Embedded 3.2?

The Oracle Java ME Embedded 3.2 product is a full-featured embedded Java runtime supporting applications based on the IMP-NG application model, which is derived from the well-known MIDP 2 application model. The runtime supports execution of multiple concurrent applications, remote application management, versatile connectivity, and a rich set of APIs and features relevant for embedded use cases, including the ability to interact with peripheral I/O directly from Java applications.

This rich feature set, coupled with familiar and best-in class software development tools, allows developers to quickly build and deploy sophisticated embedded solutions for a wide range of use cases. Target markets well supported by Oracle Java ME Embedded 3.2 include wireless modules for M2M, industrial and building control, smart grid infrastructure, home automation, and environmental sensors and tracking.

What tools are available for embedded application development for Oracle Java ME Embedded 3.2?

Along with the release of Oracle Java ME Embedded 3.2, Oracle is also making available an updated version of the Java ME Software Development Kit (SDK), together with plug-ins for the NetBeans and Eclipse IDEs, to deliver a complete development environment for embedded application development. 

OK – sounds great! Where can I find out more? And how do I get started?

There is a complete set of information, data sheet, API documentation, “Getting Started Guide”, FAQ, and download links available:

  • For an overview of Oracle Embeddable Java, see here.
  • For the Oracle Java ME Embedded 3.2 press release, see here.
  • For the Oracle Java ME Embedded 3.2 data sheet, see here.
  • For the Oracle Java ME Embedded 3.2 landing page, see here.
  • For the Oracle Java ME Embedded 3.2 documentation page, including a “Getting Started Guide” and FAQ, see here.
  • For the Oracle Java ME SDK 3.2 landing and download page, see here.
  • Finally, to ask more questions, please see the OTN “Java ME Embedded” forum

To get started, grab the “Getting Started Guide” and download the Java ME SDK 3.2, which includes the Oracle Java ME Embedded 3.2 device emulation. 

Can I learn more about Oracle Java ME Embedded 3.2 at JavaOne and/or Java Embedded @ JavaOne?

Glad you asked ;-) Both conferences, JavaOne and Java Embedded @ JavaOne, will feature a host of content and information around the new Oracle Java ME Embedded 3.2 product, from technical and business sessions, to hands-on tutorials, and demos. Stay tuned, I will post details shortly.

Cheers,

– Terrence