LinuxDevices.com Archive Index (1999-2012) | 2013-current at LinuxGizmos.com | About  

Sun GPLs Java, targets mobile phones

Nov 13, 2006 — by LinuxDevices Staff — from the LinuxDevices Archive — views

Sun is releasing all of its Java Platform implementations — including Standard, Micro, and Enterprise Editions — under the GPLv2. The company's “Mobile and Embedded” site, launched today, already hosts a fully open, buildable CLDC/MIDP implementation for feature phones, along with components of a CDC implementation, testing tools, and documentation.

Spread the word:
digg this story

Launched in 1995, Java was positioned as the “write once, run anywhere” answer to platform proliferation, because Java applications could run on any platform for which a Java Virtual Machine (JVM) existed. JVMs quickly appeared for Windows and Macintosh, as well as for Solaris and all the various Unix flavors.

As the open source movement gathered momentum, Sun became a leading proponent, releasing Solaris, the SPARC architecture, OpenOffice, and the NetBeans IDE (integrated development environment) for Java applications. Yet, the company resisted opening Java, due to concerns that compatibility — Java's central design consideration — could be compromised if the technology forked.

What changed? Eric Chu, senior director for the mobile and embedded market at Sun, explains, “Java is 11 years old now. One of the key things we care about is compatibility. In the past, there were concerns about the potential risk that the Java implementation or Java Platform set will fork. I guess we're now at a point where we believe that the community is mature enough, and that there is enough appreciation [of the value of] of compatibility.”

Why the GPLv2, the most common open source license, but one that in theory allows anyone to create their own fork? Chu said, “We've chosen this direction because we wanted a license that, especially on the SE side, is the same as Linux, so people can distribute Linux with Java in it. We also believe the license will minimize proprietary forks, because people will need to share innovation back into open source.”

Chu adds, “When we first started with Java ME, a lot of device manufacturers started introducing device-specific APIs, doing the same thing, differently. Now, five to six years later, when we talk to the same OEMs [original equipment manufacturers], they are a lot more committed to standards. They have recognized the cost to the community based on these deviations, where it doesn't add value. So we think the community is ready, and committed to compatibility.”

Free Java, anyone?

Sun will publish open source versions of its Java Platform implementations through three online communities, all hosted within Java.net:

  • OpenJDK — This community will be seeded initially with Sun's HotSpot Java Virtual Machine and javac Java compiler. It will also host existing open source components currently being developed within the existing JDK community. Over the next six to nine months, it will gain additional components, until, “When we're done, all of JDK 6.0 will be there,” Chu said.
  • Mobile and Embedded community — Launched today, this site hosts technical resources to make mobile application developers more successful, Chu said. It will also host GPL-licensed projects, including:

    • phoneME — A Sun contribution that currently includes a buildable feature phone implementation of Java ME based on CLDC (connected limited device configuration) and MIDP, along with components for and a roadmap toward a full CDC (connected device configuration) implementation. As a whole, phoneME aims to make Java more of a “first class citizen” in phones, enabling Java addressbooks and other core components, in addition to games and other limited applications.
    • cqME — Another Sun contribution, the cqME project hosts a testing tools framework aimed at helping developers validate Java applications. It aims to “involve the community in the evolution of our test tools, and over time provide additional tools for developers who are involved in the evolution of the platform,” Chu said.
    • Additional projects initiated and started by the community, including many existing projects that will migrate from the Java.net umbrella

  • Java EE Community — This project will host a GPLv2 version of GlassFish, an implementation of Enterprise Edition that was first released in 2005 under Sun's OSI-approved but still somewhat tepidly received CDDL license, derived from the Mozilla Public License. EE is used on back-end servers in client-server and Web-based applications.

Chu emphasizes the significance to mobile developers of Sun's decision to license all its Java implementations under the GPLv2. He said, “A lot of developers we talk to are building end-to-end mobile applications, and the backend is built using Java EE. So what we're making available is everything, both the client and server platform.”

Additionally, Sun has begun to promote Java SE for embedded devices, in light of the growing memory and processing resources available in embedded platforms today.

What does the GPLv2 mean for device developers and JVM providers?

In theory, starting today, anyone could build a mobile phone or other device using a GPL'd build of Java ME, and avoid paying royalties to Sun or another commercial runtime provider. Commercial Java Virtual Machine (JVM) runtime providers today include not only Sun, but also IBM, Aplix, Aonix, Esmertec, NewMonics (recently acquired by Aonix), and others.

However, the commercial JVM market may not change significantly. Device makers may still wish to license a commercial runtime from Sun or someone else, in order to benefit from license indemnification, license consolidation, and obviously, from proprietary technology extensions.

Additionally, JVM vendors are likely to continue their commercial relationships with Sun, in order to be able to innovate on top of Java without the onus of sharing their advances with competitors.

Chu explains, “A lot of these vendors sell a derivative of Sun's implementation. Even the Aplix implementation consists of Sun's code, at the VM level. So from that perspective, we don't think things are going to change, because we're going to continue to have a commercial licensing relationship with many of these VM suppliers. They'll just be able to benefit from the innovation that we are able to harness as part of this open source effort, which we will channel into the commercial product, to make it available to OEMs and also to other VM suppliers.”

Chu adds, “We won't be able to put everything out there [under the GPL]. For example, in our commercial product, we have integration with Jazelle. Obviously, we cannot put that code into open source. So in the open source version, we will take out some of the pieces that have third party IP, that we don't have the right to open source. Whereas with the commercial product, in some cases, we already have some of those commercial relationships in place that allow us to include those pieces.”

Additionally, the existence of a GPL'd version will not discourage Sun and other JVM providers from delivering service around Java, be it commercial or open source. Chu said, “Just like any other business that is based on an open source codebase, we have an engineering services engagement where we do customization, porting, and what not, so we'll be doing additional work on top of the open source codebase to make the codebase better and more integrated with specific handsets, for example.”

In such circumstances, the amount of the work that gets put back into open source could be determined by “what the customer's comfortable with,” Chu said.

A closer look at Sun's “phoneME” project

The flagship project within Sun's new Mobile and Embedded Community is clearly phoneME. With the number of shipping phones far outstripping the number of computers sold, and Java already having shipped on approximately 1.2 billion phones according to Sun, mobile phones clearly top the company's list of priorities, where devices are concerned.

The GPLv2-licensed phoneME project aims to “reduce implementation variation, increase the rate of innovation, and enable new devices to leverage the power of Java ME,” Sun says.

PhoneME actually comprises two sub-projects. The “phoneME Feature” project targets low-cost, high-volume feature phones, while the “phoneME Advanced” project targets more advanced smartphones. Both are available today as MR1s (milestone release 1s), with MR2 to be developed in cooperation with the open source community expected by year's end.

Like other projects within Java.net, both phoneME projects are available pre-configured for use with Sun's open source NetBeans IDE. They target Linux/ARM and Windows/i386, with configurations available for the Texas Instruments (TI) P2SAMPLE64-V6 platform and Windows/i386 in emulation mode.

phoneME Feature, for feature phones

Today, phoneME Feature is available as a “fully buildable” MR1 (milestone release 1), Sun says. It is described as a high-performance, modular implementation of JME based on CLDC 1.1, HotSpot 1.1.3, SJWC (Sun Java wireless client) version 1.1.3, and MIDP 2.0.

On top of that, phoneME Feature MR1 includes extensions to support MIDlet multitasking — that is, running multiple MIDP-compatible games or applications concurrently.

Additional optional JSR APIs in MR1 include:

  • Personal Information and File Management (JSR 75)
  • Bluetooth and OBEX (JSR 82)
  • Wireless Messaging 2.0 (JSR 205)
  • Scalable 2d Vector Graphics (JSR 226)
  • J2ME Web Services support (JSR 172)
  • Security and Trust Services API support (JSR 177)

MR2 of phoneME Feature, due by year's end, with participation from the community, will add “full-stack multitasking safety,” and increased portability, as well as full or partial implementations of JSR APIs that include:

  • Personal Information and File Management (JSR 75)
  • Bluetooth and OBEX (JSR 82)
  • Wireless Messaging API (JSR 120)
  • Mobile Media API (JSR 135)
  • J2ME Web Services support (JSR 172)
  • Security and Trust Services API support (JSR 177)
  • Location API for J2ME (JSR 179)
  • SIP API for J2ME (JSR 180)
  • Java Technology for the Wireless Industry (JSR 185)
  • Wireless Messaging API 2.0 (JSR 205)
  • Content Handler API (JSR 211)
  • Scalable 2D Vector Graphics (JSR 226)
  • Payment API (JSR 229)
  • Mobile Internationalization API (JSR 238)
  • Java Binding for the OpenGL(R) ES API (JSR 239)

phoneME Advanced, for smartphones

The MR1 release of phoneME Advanced includes:

  • CDC VM 1.1.1
  • Foundation Profile 1.1 (JSR 219)
  • Personal Basis Profile 1.1 (JSR 217)
  • Personal Profile 1.1 (JSR 216 )
  • CDC AMS (Application Management System)

MR2 of phoneME Advanced will add a full MIDP implementation compatible with phoneME Feature, along with JSRs as follows:

  • Personal Information and File Management
  • Bluetooth and OBEX (JSR 82)
  • Wireless Messaging API (JSR 120)
  • Mobile Media API (JSR 135)
  • 3D Graphics (JSR 184)
  • Wireless Messaging API 2.0 (JSR 205)
  • Scalable 2D Vector Graphics (JSR 226)

Rich Green, EVP of software at Sun, stated, “By open sourcing Sun's implementation of Java technology, we will inspire a new phase of developer collaboration and innovation using the NetBeans Integrated Development Environment (IDE).”

Tim O'Reilly, CEO of O'Reilly Media, added, “Everyone has been expecting that one day Sun would open source Java technology, but no one expected just how far they'd go — GPL. A bold move, and a great opportunity both for Sun and for free and open source software.”


 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.