Use of JCP site is subject to the
JCP Terms of Use and the
Oracle Privacy Policy
|
Community Summary
|
Community Files
JSR #278 Resource Management API for JavaTM ME
Community Summary The materials on this page are provided by the Spec Lead of this JSR for evaluation and feedback. These materials are not final, and are subject to change as the JSR progresses through the process. Section 1:
Request Title: * Summary: * Section 2:
Request 2.1 Please describe
the proposed Specification: * Traditionally,
Java platforms that run in a single operating system process do not provide
explicit management of resources since it is taken care of by the operating
system?s intrinsic features. The only resource management facility provided by
the virtual machine is the Garbage Collector which is solely responsible of
managing memory for all Java objects (regardless of which application they
belong to) within a virtual machine. The main limitation of the garbage
collector is its inability to handle native resources such as files, sockets,
and native memory allocated by JNI native methods. Furthermore, reachability of
Java objects may not be sufficient for determining whether an object is indeed
?alive? or not, since an object may be reachable through a shared collection of
objects (or repository) and yet be bound to a particular application whose
lifecycle determines the liveness of the object. However, several
containment frameworks such as Xlet engines typically run in a single virtual
machine within a single operating system process and provide an environment
that can initiate, run, and terminate multiple applications. When these
containment frameworks are embedded in systems requiring high availability,
they necessitate explicit management of resources in order to provide a robust
and long running environment. The core of this
API is an interface called ResourceManager which defines an interface that all
resource managers must provide. The functionality provided by ResourceManager
is the ability to force the reclamation of all resources bound to a specific
application execution environment. Also, resource managers (classes
implementing the ResourceManager interface) may be dynamically added to a repository of
resource managers which is responsible for controlling the resource
reclamation of all resources bound to a specific
application. This way, the Resource Management API provides
extensibility, by which new profiles can be
added to the Java platform and benefit from the integrated resource management features. The
extensibility feature of this API is the most important factor for proposing it
in the standard JCP process. Any existing or newly profiles that utilizes this
API will benefit from its functionality and reversely, any Java platform that
supports this API will be able to provide robustness as long as any plug-in
profiles support this API. This API assumes
(or may include) the definition of application execution environment, which
provides a unique isolated computing environment within a virtual machine that
is particular to each application. The Application Isolation API Specification
(JSR-121) is particularly well-fit to serve this purpose. It clearly states
that resource control is not within its scope. This API
particularly targets J2ME platforms. It basically targets support for explicit resource
management feature within single
process virtual
machines, but the same API may be used to provide
inter-process resource management capability for multi-process virtual machines
as well. This API will
focus on the ability to control the usage of resources among different
applications within a single or multi-process Java Virtual Machines.
RM API will
have a resource manager for each resource such as file, thread, socket, image,
etc.? These resource managers will
be kept alive as long as the Java VM is running. All the resources which are
bound to a specific application execution environment will be freed by the
resource managers upon termination of the environment.? The resource managers should be
bookkeeping all the resources. The unit of
management for the RM API is an application execution environment. The
abstraction introduced by the Application Isolation API (JSR 121) best serves
this feature. 2.2 What is the
target Java platform? (i.e., desktop, server, personal, embedded, card, etc.) * It targets both
J2ME CLDC and CDC based Java platforms. Typical J2ME CDC-based Home
devices include
Digital TV,
Digital Set-top boxes, and Home gateways. J2ME CLDC-based devices include
mobile phones. 2.3 The Executive
Committees would like to ensure JSR submitters think about how their proposed
technology relates to all of the Java platform editions. Please provide details
here for which platform editions are being targeted by this JSR, and how this
JSR has considered the relationship with the other platform editions.* The RM
API JSR
targets both
J2ME CLDC and CDC. 2.4 Should this JSR
be voted on by both Executive Committees? * No. 2.5 What need of
the Java community will be addressed by the proposed specification? * Containment
frameworks such as Xlet engines require support for robust application
management and resource control particularly if they are embedded in a system
requiring high availability. J2ME CDC-based
middlewares such as OCAP (Open Cable Application Platform) and MHP (Multimedia
Home Platform) necessitate a robust Xlet execution environment that provides
efficient resource management facilities for dynamic and responsive application
execution and lifecycle control. J2ME CLDC-based
containment frameworks require the same level of robustness support as in
CDC-based middlewares. 2.6 Why isn't this need
met by existing specifications? * The Application
Isolation API Specification (JSR-121) defines the features for supporting
isolation of application execution environments, but resource management is not
covered within its scope. Other API specifications are either irrelevant or
inappropriate for J2ME platforms. 2.7 Please give a
short description of the underlying technology or technologies: * The technology
used to implement this API will vary widely depending on the level of control
in the resource management functionality. Native implementation is mandatory to
support efficient management and reclamation of native resources. On the other
hand, simple Java-based implementations are also viable to support simple
resource management functionalities. 2.8 Is there a
proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.) * javax.microedtion.rm,
java.lang.rm 2.9 Does the
proposed specification have any dependencies on specific operating systems,
CPUs, or I/O devices that you know of? * 2.10 Are there any
security issues that cannot be addressed by the current security model? * 2.11 Are there any
internationalization or localization issues? * 2.12 Are there any existing
specifications that might be rendered obsolete, deprecated, or in need of
revision as a result of this work? * 2.13 Please
describe the anticipated schedule for the development of this specification: * January 2006: EG
formed 2.14 Please
describe the anticipated working model for the Expert Group working on
developing this specification.: * It is anticipated that a combination
of email discussion, feedback on regular drafts, conference calls and
face-to-face meetings will work well. 2.15 It is
important to the success of the community and each JSR that the work of the Expert
Group be handled in a manner which provides the community and the public with
insight into the work the Expert Group is doing, and the decisions that the
Expert Group has made. The Executive Committees would like to ensure Spec Leads
understand the value of this transparency and ask that each JSR have an
operating plan in place for how their JSR will address the involvement of the
community and the public. Please provide your plan here, and refer to the Spec
Lead Guide for a more detailed description and a set of example questions you
may wish to answer in your plan. * Interim drafts of the
specification will be made available on the JSR community page. The schedule
will be defined by the expert group. 2.16 Please
describe how the RI and TCK will be delivered, i.e. as part of a profile or
platform edition, or stand-alone, or both. Include version information for the
profile or platform in your answer.: * RI and TCK will be produced as
a part of this JSR with each being licensed separately. 2.17 Please state
the rationale if previous versions are available stand-alone and you are now
proposing in 2.16 to only deliver RI and TCK as part of a profile or platform
edition (See sections 1.1.5 and 1.1.6 of the JCP 2 document).: * N/A 2.18 Please provide
a description of the business terms for the Specification, RI and TCK that will
apply when this JSR is final.: * We will license to all
interested parties. TCK and RI will be licensed separately. For TCK we will charge a
single one time fee of max $50000 USD and an annual maintenance fee, max $50000
USD/pa. TCK will include the binary environment and source code of the test
suite. Maintenance fee covers limited basic support, first level TCK appeals
process, bug fixes and updates, which are due to changes in the specification,
and when made available by the specification lead. Major new releases (esp.
follower JSR) might be subject to additional single one time fee. For RI in source code form we
will charge one time access fee, and annual maintenance fee. Maintenance covers
bug fixes, updates and new releases necessary due to spec changes, and when
made generally available by specification lead. Section 3:
Contributions 3.1 Please
list any existing documents, specifications, or implementations that describe the
technology. Please include links to the documents if they are publicly
available. * JSR 121: Application
Isolation API Specification 3.2
Explanation of how these items might be used as a starting point for the work. *
|