It bears repeating: More than ever, the Java platform is the best technology for many embedded use cases. Java’s platform independence, high level of functionality, security, and developer productivity address the key pain points in building embedded solutions.

Transitioning from 16 to 32 bit or even 64 bit? Need to support multiple architectures and operating systems with a single code base? Want to scale on multi-core systems? Require a proven security model? Dynamically deploy and manage software on your devices? Cut time to market by leveraging code, expertise, and tools from a large developer ecosystem? Looking for back-end services, integration, and management?

The Java platform has got you covered. Java already powers around 10 billion devices worldwide, with traditional desktops and servers being only a small portion of that. And the ‘Internet of Things‘ is just really starting to explode … it is estimated that within five years, intelligent and connected embedded devices will outnumber desktops and mobile phones combined, and will generate the majority of the traffic on the Internet. Is your platform and services strategy ready for the coming disruptions and opportunities?

To further prove Oracle’s commitment, in 2012 for the first time there will be a dedicated sub-conference focused on the business aspects of embedded Java: Java Embedded @ JavaOne. This conference will run for two days in parallel to JavaOne in San Francisco, will have its own business-oriented track and content, and targets C-level executives, architects, business leaders, and decision makers.

Registration and Call For Papers for Java Embedded @ JavaOne are now live. We expect a lot of interest in this new event and space is limited, so be sure to submit your paper and register soon.

Java SE for Embedded is the product line that brings Java SE to a number of embedded platforms and includes many features and performance enhancements targeted to embedded requirements, such as low footprint, power usage, and performance

Just back from Brazil and no time to catch my breath … so much happening:

JavaOne Latin America was a blast – so much enthusiasm in the developer community! Check out some of the videos and podcasts, including the JavaOne Community Keynote, OTN interviews with a variety of Java luminaries, as well as the Java Spotlight Podcast #60: JavaOne Latin America: Videos and Podcasts

Java 7u2 has been released, featuring an updated VM, support for Oracle Solaris 11, support for Firefox 5 and later, and security fixes. Also, JavaFX 2.0.2 is now included with Java SE to make developing and running JavaFX applications even easier: Java SE 7u2 Release Notes, JavaFX 2.0.2 Release Notes

Aligning with mainline JDK development, Java SE Embedded 7u2 has been released as well. This release includes new ports to Linux on PPC and performance improvements on ARM systems by 20-40%. Also, Oracle intends to port JavaFX to Linux on ARM in order to support a broad range of platforms from mid-range embedded all the way to desktops: Henrik’s blog on the Java SE Embedded 7u2 release.

Lots of activity around JavaFX as well – interest is really taking off. Point in case: A new project, eFX, has been started on java.net aiming to create a generic application framework for JavaFX 2.0 based on the NetBeans platform: Geertjan’s blog on eFX

Finally, OTN put together a list of their “Most Popular Tech Articles of 2011”. Java topics, from Java SE 7 and 8 features, Java EE 6, JSF, and JavaFX dominate the list. Have a look: Our Most Popular Tech Articles of 2011

A couple of days ago I blogged about the release of a new embedded Java product called “Oracle Java ME Embedded Client”. The interest has been tremendous, and I plan to follow up with more information and a webinar on this topic.

In the meantime, I would like to point your attention to another embedded Java product: Java SE for Embedded. Unlike the Oracle Java ME Embedded Client, which is a Java ME (CDC)-based runtime, the Java SE for Embedded product is a full-blown Java SE 6 runtime, optimized for embedded use in a number of important ways (footprint, memory, power, platform support, and more).

My colleague, Jim Conners, has created an excellent webcast called “Java SE Embedded Development Made Easy”. It consists of two 15-minute video with slides and demos covering all the basics of embedded Java SE development:

Embedded Microprocessor Trends, covering ARM, Intel, and Freescale

Getting Started with the SheevaPlug

The Java SE Embedded Runtime Environment: Downloading and Installing

Running Apache Tomcat on the SheevaPlug

Installing and Setting Up NetBeans for Embedded Java Development

Running the ScoreBoard Application locally and on the SheevaPlug

Live, Remote Debugging of the ScoreBoard Application

Monitoring the Remote ScoreBoard Application using JMX and JConsole

Once you’re on Jim’s blog you should also check out his entry “The Unofficial Java SE Embedded SDK”, which talks about using your favorite desktop Java IDE for embedded Java development.

The first ever OTN Developer Daydedicated to Java is coming up next week, Nov 4th, in New York City.

The agenda covers a full day with four tracks: Server, Desktop, Mobile, and Embedded. I will be talking on two topics: Developing embedded applications with LWUIT as well as building compelling embedded solutions using Java.

The event happens at the Millennium Broadway Hotel on 145 West 44th Street, and registration is FREE.

Mark expanded on the Java platform evolution announced by Thomas Kurian on Monday. The audience clearly liked what they heard – there was spontaneous applause several times during Mark’s talk.

Next, Roberto spoke on Java EE, Glassfish, and the features and evolution of the platform, accompanied by demos. No big surprises here … Java EE is progressing well and is clearly aligned with Oracle’s mainstay business.

Finally, Greg discussed the announcements and future of Java ME, focusing on mobile as well as the embedded space, including project Verrazano. An interesting factoid: The number of (non-mobile phone) embedded devices outnumbers mobile devices by a factor of 1000! A huge opportunity for embedded Java.

Overall, the keynote was well received and confirmed in greater detail the previous announcements. Unfortunately, at this point it appears that the videos of the keynotes are not yet available in the OTN archives – so you’ll have to wait to watch them in full length.

For completeness, here are links to the official Oracle press releases:

But there are lots of interesting sessions and labs that might be easily overlooked so today I’d like to share my recommended list – basically, things that interest me from a core platform/language/mobile/embedded perspective. Guaranteed to be totally subjective ;-). So, here we go:

Embedded systems are becoming ever more powerful and affordable. Check out the GuruPlug, which is scheduled for release in a couple of weeks and has amazing specs:

Linux 2.6

1.2 GHz ARM processor with 512 MB DRAM

512 MB Flash, Ethernet, WiFi, 2 x USB, Bluetooth, GPIO

Low power consumption and small footprint

Java and OSGi available from distributor

Retail price: US $99 (standard version)

I haven’t played with one of these yet but at this price this is an awesome embedded platform for all sorts of interesting uses. I know I will get myself one!

The GuruPlug is but one in an amazing range of interesting devices: Be it the BUG, the ACME Systems FOX G20 board, the PC Engines ALIX 3D2 (a very compact and cheap PC-class SBC), the Nokia N900, the Marvell plug computer (as exemplified by the GuruPlug/SheevaPlug above), the Sun SPOT, and many more.

But it’s clear that with embedded devices being increasingly powerful and complex the old-school embedded development paradigm is becoming more and more outdated … a simple executable, a C compiler, and some cobbled-together libraries just don’t cut it anymore to build feature-rich embedded solutions on time.

Embedded Java is a perfect match:

Platform independence

A productive language

Multithreading and memory management built-in

Full-featured networking support

Comprehensive libraries for access to many platform features

Rich development tools

It’s all there to make embedded development so much more productive.

So, how do you get embedded Java onto your embedded devices? Pretty much all of these run Linux, so putting Java on them is actually pretty straightforward (sans the Sun SPOT, which runs Java out of the box already).

First, the question is about the processor architecture.

If you have an X86-based platform, such as the ALIX or a similar PC-class single board computer (SBC) it’s very easy since PC-compatibility is usually a given. So you can either run the standard Sun/Oracle Java SE for Linux distribution, or OpenJDK, or if you are developing an embedded solution, you should look at Java SE for Embedded (more on Java SE for Embedded below).

ARM-based platforms, however, often offer significant cost, size, and power consumption benefits over traditional X86-based solutions. The really cost efficient, low-power platforms such as most mobile devices, handheld systems such as the N900, or embedded systems such as the plug computer, all utilize ARM SOC (system-on-a-chip) designs.

Java on ARM requires a little more planning than Java on X86. The reason is that you typically need to factor in your design priorities: Is cost and footprint of overriding concern and therefore you forgo a JIT (just-in-time) compiler to save memory? Or does your embedded solution require highest Java performance and thus require the additional 8 to 64 MB memory budget needed (depending on the system) for a JIT compiler? And finally, is a JIT compiler supported for your architecture?

Cacao, JavaVM, and phoneME have a long history in the embedded space. phoneME is a proven, robust solution with very effective optimization technologies, including a mature JIT compiler. But the other stacks offer benefits as well. See here for a series of blog entries comparing the different Java runtimes.

OpenJDK hasn’t been designed for embedded use per se, but there are various efforts under way to add JIT compilation for non-X86 platforms such as ARM, PPC, MIPS, and others: See the Zero/Shark project.

Java SE for Embedded is now available with full ARM support, including a JIT compiler – in fact, it supports 28 different ISA/OS combinations. Java SE for Embedded is fully Java SE-compliant, purpose built (for example, available in headless configurations) and is free for development purposes. Once you go to deployment Sun/Oracle offers affordable licensing. Check out the FAQ for details.

Jalimo is not a Java stack in itself, but a project which aims to bring Java to Linux-based devices, and which offers a robust build environment and packages leveraging different existing Java runtimes.

So, as you can see, there are plenty of options.

And once you have Java running on your target device you then have all the joys of development with Java: Advanced tools (NetBeans and many others), developing and testing on the host (no more complicated cross-compilation), and easy of deployment to the target (just run the class files on the target via memory card, Bluetooh, ftp/ssh, NFS, SMB, or other methods that works best for your situation).

I’m sure I have missed interesting projects and details – the area of embedded Java is wide and active, but I thought it would be useful to write-up some of the info that I’ve been collecting. Please feel free to post comments, corrections, or additional info!