Find JSRs
Submit this Search

Ad Banner

Summary  |  Proposal  |  Detail (Summary & Proposal)
JSRs: Java Specification Requests
JSR 124: J2EETM Client Provisioning Specification

Stage Access Start Finish
Final Release Download page 24 Oct, 2003  
Final Approval Ballot View results 23 Sep, 2003 06 Oct, 2003
Proposed Final Draft Download page 04 Mar, 2003  
Public Review Download page 19 Sep, 2002 19 Oct, 2002
Community Draft Ballot View results 09 Jul, 2002 15 Jul, 2002
Community Review Login page 07 Jun, 2002 15 Jul, 2002
Expert Group Formation   15 May, 2001 02 May, 2002
JSR Review Ballot View results 01 May, 2001 14 May, 2001
Status: Final
JCP version in use: 2.5
Java Specification Participation Agreement version in use: 2.0

This JSR aims to define Java standard which partitions server applications that provision client applications.

Please direct comments on this JSR to the Spec Lead(s)

Specification Leads
Star Spec Lead Danny Coward Oracle
Expert Group
  Art Technology Group Inc.(ATG) BEA Systems Mobilitec, Inc
  Motorola Nokia Corporation Oracle
  PalmSource, Inc. Research In Motion, LTD (RIM) SAP SE
  Sprint Sun Microsystems, Inc. Symbian Ltd
  Tira Wireless

Updates to the Original JSR

The following information has been updated from the original proposal.

Oracle took over as Maintenance Lead from Sun Microsystems.

Maintenance Lead: Oracle America, Inc.

Contact: Danny Coward

E-mail address:

Telephone: +1 408 276 7049

Original Java Specification Request (JSR)

Identification | Request | Contributions
Original Summary: This JSR aims to define Java standard which partitions server applications that provision client applications in such a way that the details of any one client provisioning model are abstracted and standardized.

Section 1. Identification

Submitting Member: Sun Microsystems, Inc.

Name of Contact Person: Danny Coward

E-Mail Address:

Telephone Number: +1 408 863 3551

Fax Number: +1 408 863 3195

Specification Lead: Danny Coward

E-Mail Address:

Telephone Number: +1 408 863 3551

Fax Number: +1 408 863 3195

Initial Expert Group Membership:

  • ATG
  • BEA
  • Ellipsus
  • Mobilitec
  • Palm
  • Sun

Section 2: Request

2.1 Please describe the proposed Specification:

There is considerable interest in using J2EE for provisioning client applications to different client platforms. Several client platforms have defined a model by which they can discover a list of suitable client applications hosted on a server and by which client application code is delivered to the client device. They define interaction models for discovery and selection, and also the network protocols used to support the discovery and transfer process. The term provisioning is used here to cover hosting application client code and associated resources on a server, client discovery of suitable client applications to run, and transfer and delivery of client applications to the client platform. Provisioning facilities for client devices are commonly encapsulated by a piece of software known as a provisioning adapter that is written to support a particular model for discovery and delivery of client application code in a secure manner.

This JSR does not attempt to define provisioning models or conventions for any particular client platform, or attempt to define any network protocols used for the provisioning task.

This JSR does aim to investigate and define a programming model, a Java framework and APIs to enable J2EE applications to interact in a standard way with provisioning adapters.? Such a J2EE application is known here as a provisioning application.

This JSR identifies the different communities and areas of expertise of the provisioning application developer and the provisioning adapter provider. The provisioning application developer is an expert in the business model of the organization that is provisioning client applications. The provisioning adapter provider is an expert in the protocols and interaction model for provisioning to a particular client platform. The concepts of this JSR here describes the ways in which these two development roles can be partitioned on the J2EE platform.

The purpose of enabling portable J2EE provisioning applications is to allow a high degree of flexibility in integrating one or more provisioning models with enterprise services exposed into the J2EE platform in a particular enterprise setting. These applications enable a standard integration of the common elements of provisioning with these services. They allow a high degree of flexibility in the way that provisioning can be configured for a particular client device, a particular user who is possibly known to be at a particular location and with a particular business model in mind. Provisioning applications written to this specification do not have to deal with details about the network protocols or interaction models involved in provisioning to a particular client platform. Provisioning adapters written for this specification do not have to deal with the details of the business model of any particular setting in which they will be deployed.

This JSR will define deployment conventions and possibly deployment packaging formats for client application code and associated descriptive configuration data to enable storage and management of client applications for provisioning to target client platforms. It will define a Java framework and APIs that can be used to interact? with existing and emerging provisioning protocols and conventions in a standardized way. It will provide a portable way to negotiate a list of suitable client applications available for delivery and monitoring the activity of delivering a client application.

This JSR will aim for a design of the provisioning framework so that it can be layered on top of existing J2EE APIs in such a way that provisioning adapters may also be written portably on the platform.

The general architecture outlined here is illustrated in the following diagram.


The scope of this JSR will include a Java SPI layer whereby provisioning adapters for particular client types may be plugged into the framework.

The specification will study initially the following client platforms:-

Java Web Start
Java TV

though may extend to include others.

The reference implementation of this specification will include the provisioning framework together with one or more provisioning adapters.

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)

Java 2 Enterprise Edition.

This JSR aims to layer any provisioning APIs and conventions using the standard J2EE API set, deployment formats and capabilities of the J2EE platform. It also has the goal of ensuring that provisioning adapters written for the provisioning framework be portable across J2EE implementations.

2.3 What need of the Java community will be addressed by the proposed specification?

Currently, there is no convention or abstraction of the complex system level details of writing a J2EE application that provisions. Developers writing applications that provision to client platforms are required to work at a client platform specific level. They have to deal with the specific network protocol and client specific interaction model used for provisioning on a per client type basis. Developers of client applications for a target device are forced to repackage client application code in order that it can be deployed on a server.

2.4 Why isn't this need met by existing specifications?

The J2EE platform's basic networking protocol support enables the provisioning tasks outlined above at a basic level. However, there are no specifications that define the abstraction required to standardize the interaction model between provisioning adapters and provisioning applications that integrates the provisioning tasks with other enterprise services, nor that define the deployment conventions for client application code within a J2EE application suitably to support the common elements of the provisioning task.

2.5 Please give a short description of the underlying technology or technologies:

The underlying technologies include standardization of the deployment format and conventions for packaging client application code into the provisioning framework, a provisioning API and programming model available to the J2EE application developer, and investigation of an SPI layer for pluggability of provisioning adapters.

2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)

To be determined

2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?


2.8 Are there any security issues that cannot be addressed by the current security model?


2.9 Are there any internationalization or localization issues?

The provisioning framework will need to take into account the locale of the client to which it is provisioning applications.

2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?


2.11 Please describe the anticipated schedule for the development of this specification.

The schedule will be determined by the expert group.

2.12 Please describe the anticipated working model for the Expert Group working on developing this specification.

The expert group members will determine the nature of the working model. It is anticipated that a mixture of email discussion, feedback on regular drafts and face to face meetings will work well.

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.

Java Network Launching Protocol (JNLP)

3.2 Explanation of how these items might be used as a starting point for the work.

The expert group will study the provisioning models defined by these client platforms in order to abstract the common tasks of provisioning across the different client platforms.