You are currently browsing the tag archive for the ‘Java SE for Embedded’ tag.
07/03/2012 in Mobile & Embedded | Tags: ARM, Call for Papers, Embedded Java, Java Embedded, Java Embedded @ JavaOne, Java ME, Java SE Embedded, Java SE for Embedded, JavaOne San Francisco, PowerPC | 1 comment
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?
It should come as no surprise that Oracle is keenly focused on Java for Embedded. At JavaOne 2012 San Francisco the dedicated track for Java ME, Java Card, and Embedded keeps growing, with 52 sessions, tutorials, Hands-on-Labs, and BOFs scheduled for this track alone, plus keynotes, demos, booths, and a variety of other embedded content.
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.
Hope to see you there!
Update: For more information, see the Java Embedded @ JavaOne Q & A
- For the first time, official support for Mac OS X
- Includes the highly anticipated G1 (“Garbage First”) garbage collector, improving memory management for very large applications
- Next step in converging Oracle JRockit and HotSpot VMs, offering the best features of both technologies
- Numerous performance improvements to the JVM
- OpenJDK continues to host the development of Java SE 7 on Mac OS X and the JDK 8 reference implementation
- Available for Windows and Mac OS X (with Linux support currently as preview release)
- Includes playback of MPEG-4 multimedia containing H.264/AVC video and AAC audio
- Support for enhanced font rendering on LCD displays, including sub-pixel rendering
- Additional UI enhancements such as combo box, stacked chart, and application-wide menu bar
- Bundled with the Java 7u4 release
- Oracle has started the OpenJFX project in OpenJDK as part of the plan to open source JavaFX
- 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
- Java SE 7u4 Embedded and Java SE 6u32 Embedded 6 releases are now available, following Java SE releases in lockstep
- For more details, see here
To download, go here.
Quick News: JavaOne LAD videos and podcasts, Java SE 7u2 and JavaFX 2.0.2, eFX project, popular tech articles of 2011
12/16/2011 in Mobile & Embedded | Tags: ARM, Embedded Java, embedded Linux, Java SE 7, Java SE for Embedded, Java Spotlight Podcast, JavaFX, JavaOne Latin America, JDK 7, Linux, NetBeans, NetBeans IDE, NetBeans RCP, OpenJDK, Oracle Technology Network, OTN | Leave a comment
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.
Week 3 of The Java Spotlight Podcast: An interview with Greg Bollella, Chief Architect of Embedded Java at Oracle, plus news and “What’s Cool”.
Java SE for embedded devices is now available in an updated release. This release delivers a host of improvements, among them:
- The Java Runtime Environments (JRE) for Linux on ARM, PowerPC, and x86 are now aligned with the latest Java SE update 21 release for desktop and servers
- Adds multi-core support for ARM and PowerPC processors including parallel garbage collection, background JIT compilation, and more
- Improved performance and throughput in many areas, including a 20% speed-up on Caffeinmark and nearly 2x performance over Android on common benchmarks
- Hundreds of enhancements, security improvements, and bug fixes
Why would you use Java SE Embedded vs. the normal Java SE (for desktop) release?
- Java SE Embedded is available on a number of additional ISAs (ARM, PowerPC, and more) and OSes (Windows XP-Embedded, and more) – check with us for a full list
- Java SE Embedded is optimized for embedded environments in a number of ways, such as reduced footprint and tuned memory management
- Java SE Embedded offers a headless configuration which saves additional footprint in embedded solutions which do not require graphics
Java SE Embedded is a great solution if you need the full power of Java SE for your embedded product.
Read more about the release in The Daily Dose.
Check out this video with John Muhlner, Group Manager Embedded Solutions at Oracle.
Finally, see the Java Embedded home page with all the infos and downloads.
The first ever OTN Developer Day dedicated 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.
See you there!
- 9/22: A detailed write-up of the keynote by Janice Heiss
A quick summary of yesterday’s General Technical Keynote, with Mark Reinhold (Chief Architect, Java Platform Group), Roberto Chinnici (Architect, Java EE), Greg Bollela (Chief Architect, Embedded Java):
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:
- Oracle Outlines Plans for Java Platform
- Oracle Announces JDK Roadmap for Advancing Java SE
- Oracle Increases Investment in JavaFX and Outlines Product Roadmap
- Oracle Extends Commitment to Java and Open Source Developer Communities
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:
Sunday: (full schedule listing)
- 12:30PM -01:30PM: Java User Group Community: Opening Session
- 02:30PM -04:30PM: GlassFish Community Event
Monday: (full schedule listing)
- 10:00AM -11:00AM: Groovy and Concurrency
- 10:00AM -11:00AM: JDK 7 and Java SE 7
- 10:00AM -11:00AM: Script Bowl 2010: A Scripting Languages Shoot-out
- 10:00AM -11:00AM: Writing Stunning Cross-Platform Applications Using LWUIT
- 10:00AM -11:00AM: Crossing the Java Frontier: How to Interact with Physical Worlds, Using Arduino
- 11:30AM -12:30PM: Developing Applications with Oracle Berkeley DB for Java and Java ME Smartphones
- 11:30AM -12:30PM: Groovy: To Infinity and Beyond
- 11:30AM -12:30PM: Multiple Languages, One Virtual Machine
- 01:00PM -02:00PM: Examining FOSS Java Implementations for ARM Systems
- 01:00PM -02:00PM: Attractive and Portable Mac OS X Swing Clients for Java
- 01:00PM -02:00PM: HTML5 and Java: Opening the Door to New Possibilities
- 02:30PM -03:30PM: The Next Big Java Virtual Machine Language
- 02:30PM -03:30PM: Funky Java, Objective Scala
- 04:00PM -05:00PM: Developing Java TV Applications with LWUIT for DTVi-J
- 07:30PM -08:15PM: Java SE Platform Q&A BOF
Tuesday: (full schedule listing)
- 08:00AM -09:00AM: Systems Architecture Is Not Network Topology: Connecting the Consumer Device
- 08:00AM -09:00AM: Augmented Reality on Mobile Phones with Java ME
- 09:30AM -10:30AM: Bringing Web Widgets to MSA-Empowered Phones
- 01:00PM -02:00PM: BD-J: Behind the Scenes with Blu-ray
- 01:00PM -02:00PM: Java SE for Embedded Meets Oracle Berkeley DB at the Edge
- 06:00PM -06:45PM: Blu-ray APIs for Stereoscopic 3D
- 06:00PM -06:45PM: Meet the Java Posse
- 07:00PM -07:45PM: OpenJDK BOF
- 07:00PM -07:45PM: Java Community Process: What You Like and What You Don’t Like
- 07:00PM -07:45PM: Java ME Checkpoint: Current Status and Future
- 08:00PM -08:45PM: LWUIT Cheat Sheet: How to Optimize Your LWUIT-Based Java ME Applications
- 09:00PM -09:45PM: Java ME for Emerging Markets and the Developing World
Wednesday: (full schedule listing)
- 11:30AM -12:30PM: Mobile Apps: Where Do We Go from Here?
- 11:30AM -12:30PM: Developing for Mobile Devices: Oracle Application Development Framework and Java
- 01:00PM -02:00PM: Polyglot Programming in the Java Virtual Machine (JVM)
- 01:00PM -02:00PM: Using Capabilities of the Java ME Platform from Web Applications
- 01:00PM -02:00PM: Techniques, Benefits, and Best Practices for Using Java in Embedded Devices
- 02:15PM -03:00PM: Apache Harmony: An Open Innovation
Thursday: (full schedule listing)
- 12:30PM -01:30PM: Spice Up Your Blu-ray Home Video with Java
Hands-on Labs: (search Schedule Builder with session type ‘Hands-on Lab’ for full listing)
- Wednesday, 10:00AM: Sun SPOT Sensor Network Application Architecture Lab
- Thursday, 12:30PM: Spice Up Your Blu-ray Home Video with Java
- Thursday, 03:30PM: Where My Friends Are: Java ME Location API in Practice
And if you’re into Rich Internet Applications, check out Stephen Chin’s JavaOne Expert RIA Track.
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!