phoneME Project Vision

Java Platform, Mobile Edition (Java ME platform) is the prevailing technology in the mobile industry, with 1.2 billion mobile handsets deployed.

Downloadable applications and end-to-end solutions have fueled a robust economy for all the participants in the mobile value chain. Tools and resources to support the development and deployment of these devices have evolved rapidly along with the core technologies. Today, Java ME technology is used by more application developers than any other single technology in the mobile space.

The ubiquity and widespread deployment of Java ME technology has created unparalleled opportunities for advancing the platform. With community participation and the free flow of ideas and code, there is an opportunity to advance the platform to a new level of sophistication, robustness, and quality for the devices of tomorrow.

Java Technology and Mobile Handsets

Java ME technology is essential for accelerating the deployment of rich multimedia applications and web services on all future mobile devices. The phoneME open source project provides a centralized forum for collaboration on Java ME platform technologies, with the intent of rapidly advancing the platform to support the next generation of applications and services.

Making Java ME Technology a First Class Citizen on Mobile Devices

The goal of the phoneME project is to make Java ME technology integral to more key applications on mobile devices. Java ME technology will serve as the foundation for not only games, but for implementing core applications such as address books and messaging, or even the mobile device user interface.

This goal highlights several technology areas that should be advanced through community efforts:

  • Accessing phone functions
    Location APIs, messaging, Bluetooth, PIM functionality, and graphics acceleration are all examples of phone features that have been standardized in the Java ME platform.  The breadth of phone functionality exposed by Java ME technology today supports a wide range of applications. The community should continue the trend for new API's and abstractions to allow access to phone functionality while it promotes porting existing API's to an ever-expanding set of devices, widening the reach of Java ME technology. In addition, there is opportunity for the community to port existing API's to an ever-expanding set of devices.
  • Multitasking
    Java ME technology has established the necessary facilities and client infrastructure to allow multiple Java ME applications to run concurrently. This technology spans the range from low-end devices with very limited hardware and OS support, all the way to more capable devices with process-oriented operating systems. Community contributions to exploit and advance this technology to allow an ever richer user experience are encouraged. Multitasking should become a way to seamlessly integrate native device user experience with Java ME technology, allowing Java ME applications to run alongside native applications with uniform look and feel.

  • Robustness
    As more capable, concurrent Java ME applications are written, consumers expect reliability and robustness -- the desire for a crash proof environment. To that end, the community should advance the state of the art in Java ME technology for inter-application isolation, reliable termination of untrusted code and resource management. These technologies all contribute to a robust, 24x7 environment of concurrent Java ME applications, giving developers increased confidence in the expanded use of Java ME on mobile devices.

  • Responsive start-up and execution
    Increasing emphasis will be placed on application start-up and responsive execution as the role of Java ME technology grows within the mobile device platform.  Community participation to improve the performance of the Java ME platform virtual machines and libraries in this area, including new JIT compiler optimizations, OS integration, and use of hardware acceleration are planned. There are also opportunities for increased inter-application memory and resource sharing.

Integrating with Web 2.0 Technologies and Declarative UI

The past few years have seen dramatic advances in Web technologies. Markup-oriented UI description has become more prevalent and capable, enabling a rich and compelling look. Scripting has become widespread as a way to glue UI logic together and to allow rapid application development. Web services have become prevalent and easier to use; mashups integrate services for the creation of higher-level applications.

The integration of rich markup-based UI, scripting, and web service access has resulted in compelling web-oriented content, commonly referred to as Web 2.0 technologies. With its ever-present deployment on more than a billion devices, its wide developer base, and its ever-evolving access to platform features, the Java programming language offers a unique way of taking advantage of these technologies.

Community participation, encompassing several areas of work, can provide the infrastructure to allow this integration to proceed:

  • Web rendering
    This involves establishing modes of interaction between web content and the Java programming language, defining how web content can invoke Java APIs and how Java virtual machines can render web content. Included in this work is an effort to provide lightweight rendering technology for web content, spanning the range from XHTML and CSS to SVG. When this vision is realized, it will be possible to incorporate web content seamlessly inside a Java application. This includes the implementation of an ECMA Script engine inside a Java virtual machine, sharing infrastructure between the two.

  • Separation of UI from application logic
    Web content is compelling because it establishes a healthy separation between application logic and application UI. The separation allows application UI to be replaced while retaining application logic. It also allows different developer communities to come together to create rich applications. Graphics and interaction designers can put together compelling content, programmers can use Java ME technology to write application logic, and tooling conventions bring the products of these communities together. Community participation can make possible these integrated applications incorporating Java ME and web technology.

  • Libraries for easy use of web services
    The past few years have seen an explosion in the number of web services from providers such as eBay, Amazon, Google, and Yahoo. In addition, the use of services such as deli.cio.us and Flickr have enabled individuals to produce compelling content and share it on the web. Lightweight Java ME technology libraries could allow developers easy access to web services for getting and publishing information without the need to master the plethora of XML-based technologies and their resource-intensive implementations commonly used on larger systems. The Java ME platform's local processing capability, access to permanent storage, and phone functions make it ideal for creating compelling applications incorporating web services.

Improving Platform Consistency and Compatibility

Key factors in the continued success of Java ME technology are consistency and compatibility across platform implementations. Developing applications and content in today's heterogeneous marketplace is a challenge. Developers need a predictable and cohesive platform to rapidly and effectively create and deploy interesting new content.

Driving such a consistent platform is significantly fostered by enabling and encouraging all stakeholders in the industry to come together as a community with a common vision. By collaborating on all parts of the technology, including the platform software, tools, applications, and content, the community will ensure the platform continues to evolve to meet the needs of all parties. The goal is that this compelling cycle of innovation and collaboration will lead to industry-wide adoption of a common implementation, thereby making the Java ME platform and ecosystem more valuable for everybody.

Bridging CDC- and CLDC-Based Technologies

The past few years have seen the development of several Java ME technologies at a breakneck pace. The community should establish the infrastructure and architecture to allow applications written to these technologies to co-exist and run in a uniform way. An example of this diversity is the use of Java ME CLDC technology that forms the basis for the MIDP profile, and the use of Java ME CDC technology, with each presenting different approaches to key platform features.

  • Make the platform uniform
    We intend to clarify and explain differences between CDC- and CLDC-oriented approaches to Java ME technology. We also intend to establish the architecture, best practices, and knowledge base to allow libraries to be written to run both in a CDC and a CLDC context.

  • Container architecture for abstraction
    We are developing and would like to enhance technology to allow current and future application models to run concurrently on any given device. Our container technology abstracts application model differences in lifecycle, security, and runtime expectations. It prepares the Java ME platform for execution of backwards-compatible technologies alongside new, cutting edge technologies in a uniform fashion.

We hope you find our vision for the Java ME mobile platform exciting and will join us in creating the most innovative and widely-deployed application platform on the planet. Get involved - share your ideas, ask questions, write code. What are the future applications that you want to enable for mobile devices? To which devices would you like to port Java ME technology? What new features would you like to add to the platform? Your active participation is critical to the success of the Mobile & Embedded Community.