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.