Find JSRs
Submit this Search


Ad Banner
 
 
 
 

JSRs: Java Specification Requests
JSR 172: J2METM Web Services Specification

NOTICE: Please be aware the CDC 1.0 specification initially related to this JSR has been replace (superseded) with the newer CDC 1.1 specification. CDC 1.0 will no longer be supported after 18-Aug-2009. This JSR and other optional technologies based on the CDC 1.0 standards are fully compatible with the CDC 1.1 standards. All development and certification efforts should be updated to use the current, supported technology.


Updates to the Original JSR

The following information has been updated from the original proposal:

2011.09.09: The Maintenance Lead changed the JCP version of this JSR from JCP 2.1 to 2.7.

2008.12.12:
The Maintenance Lead was changed to:

Specification Lead: Jean-Yves Bitterlich

E-Mail Address: jean-yves.bitterlich@sun.com

Telephone Number: +49 89 46008 1097

Fax Number: -


Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1. Identification

Submitting Member: Sun Microsystems, Inc.

Name of Contact Person: Danny Coward

E-Mail Address: danny.coward@sun.com

Telephone Number: +1 408 276 7049

Fax Number: +1 408 276 7191


Specification Lead: Jon Ellis, Mark Young

E-Mail Address: jon.ellis@sun.com, mark.young@sun.com

Telephone Number: +1 408 276 7633

Fax Number: +1 408 276 7191


Initial Expert Group Membership:

TBD



Section 2: Request

2.1 Please describe the proposed Specification:

There is great interest and activity in the Java community in the use of web services standards and infrastructures to provide the programming model for the next generation of enterprise services. There is considerable interest in the developer community in extending enterprise services out to J2ME clients.

This JSR is designed to provide an infrastructure as two optional packages for J2ME to:-

  • provide basic XML processing capabilities
  • enable reuse of web service concepts when designing J2ME clients to enterprise services
  • provide APIs and conventions for programming J2ME clients of enterprise services
  • adhere to web service standards and conventions around which the web services and Java developer community is consolidating
  • enable interoperability of J2ME clients with web services
  • provide a programming model for J2ME client communication with web services, consistent with that for other Java clients such as J2SE
The following technologies will be addressed:
  • APIs for basic manipulation of structured XML data (parsing)
    • these APIs will be based around a suitable strict subset of the APIs already defined by JAXP
  • APIs and conventions for enabling XML based RPC communication from J2ME, including
    • definition of a strict subset of the WSDL to Java mappings defined by JSR-101 (JAX-RPC), suitable for J2ME
    • definition of stub APIs based on the mapping above for XML based RPC communication, which will focus around subsetting the mapping and conventions produced by JSR-101.
    • definition of runtime APIs to support stubs generated according to this mapping supporting XML as a transport and encoding component
    • Investigation of a suitable and compact encoding mechanism for XML based RPC messages
NOTE: This JSR will not attempt to develop, define, or constrain network protocols or network data formats or network interface definition languages. The definitions of such protocols, data formats, and definition languages belong at network interoperability standards groups such as W3C or OASIS. This JSR is merely trying to provide convenient Java Platform support in J2ME for the specifications defined by the appropriate network standards organizations.

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

The specification is targeted for the J2ME platform including the CLDC- and CDC-based profiles.

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

Since J2ME contains only low level programming and communication APIs to support web services, the barrier is high for the developer to take advantage of the new web service technologies. Currently the enterprise developer of J2ME clients to enterprise services is offered a number of non-standard and proprietary approaches for communicating with web services.

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

Although JSR 63 (JAXP) and JSR 101 (JAX-RPC) define Java APIs and conventions for XML processing and XML based RPC targeted at the J2SE and J2EE platforms, they will not provide such facilities for the J2ME developer. This is because the desgn center for these specifications does not take into account the different constraints, such as footprint, on J2ME devices.

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

See 2.1

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

Where this optional package uses APIs that are subsets of established packages, the original package name will be used. Should any original APIs be created by this JSR, they would be in javax.microedition.

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

No. The goal of this work is to provide optional packages suitable for J2ME devices.

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

An implementation should take advantage of the security model of the underlying environment.

2.9 Are there any internationalization or localization issues?

No

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

No. We aim that this work will leverage the protocols, data formats, and definition languages belonging to network interoperability standards groups such as W3C or OASIS. We aim that this specification will subset the APIs and conventions defined by JAXP and JAXRPC where possible, and so will be complementary with the existing and ongoing work in the Java Community on XML processing (JAXP) and XML based RPC messaging.

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

Community Review: Dec 2002
Final Release: Summer 2003

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

We anticipate the expert group will follow the model of the JSR118 expert group and others, using in the main email communications with occasional telephone and possibly face to face meetings, which will be teleconferenced.





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.

J2ME Platform specification
http://jcp.org/jsr/detail/68.jsp

J2ME Connected, Limited Device Configuration (CLDC) Version 1.0, May 2000
http://jcp.org/aboutJava/communityprocess/final/jsr030/index.html
http://java.sun.com/products/cldc

J2ME Mobile Information Device Profile (MIDP)
http://jcp.org/aboutJava/communityprocess/final/jsr037/index.html (Version 1.0)
http://jcp.org/jsr/detail/118.jsp (MIDP_NG)
http://java.sun.com/products/midp

J2ME Connected Device Configuration
http://jcp.org/jsr/detail/36.jsp

JavaTM API for XML Processing 1.1
http://jcp.org/jsr/detail/63.jsp

JavaTM APIs for XML based RPC
http://jcp.org/jsr/detail/101.jsp

W3C Web Services Activity web site. This includes a variety of information on the W3C's work on XML Protocol, which includes support for RPC using XML.
http://www.w3.org/2002/ws

WSDL specification 1.0
http://www.w3.org/TR/wsdl

SOAP Protocol Specification v 1.1
http://www.w3.org/TR/SOAP/

WAP Binary XML Content Format
http://www.w3.org/TR/wbxml/

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

This optional package should work with CLDC- and CDC-based profiles, in particular MIDP, should subset the APIs defined in JSRs 063 and 101, and should support standard industry protocols for connecting with web services.