Printed: Apr 19, 2024
From: http://jcp.org/en/jsr/detail?id=101
|
Specification Leads | |||
Roberto Chinnici | Oracle | ||
Expert Group | |||
Art Technology Group Inc.(ATG) | BEA Systems | Cisco Systems | |
Electronic Data Systems (EDS) | Fujitsu Limited | Hewlett-Packard | |
Oracle | Pramati Technologies | Progress Software | |
Sabin, Miles | Sun Microsystems, Inc. |
Updates to the Original Java Specification Request (JSR)
The following sections have been updated since the original JSR:
2010.02.15
The Maintenance Lead has changed from Sun Microsystems to Oracle.
Section 1. Identification
Specification Lead: Rahul Sharma
E-Mail Address: rahul.sharma@sun.com
Telephone Number: +1 408 276 7282
Fax Number:
Identification |
Request |
Contributions |
Additional Information
Section 1. Identification
Submitting Member: Sun Microsystems
Name of Contact Person: Graham Hamilton
E-Mail Address: kgh@eng.sun.com
Telephone Number: (408) 343 1426
Fax Number: (408) 863 3195
Specification Lead: Eduardo Pelegri-Llopart
E-Mail Address: pelegri@eng.sun.com
Telephone Number: (408) 343 1456
Fax Number: (408) 863 3195
Endorsers and initial Expert Group Members:
Allaire
Apple
ATG
BEA
Bowstreet
Commerce One
HP/Bluestone
iPlanet
SilverStream
Sun Microsystems
webGain
webMethods
Section 2: Request
There is considerable interest in using XML for "Remote Procedure Calls", where a procedure call (or method call) on one computer is transmitted over a network as XML and is then delivered as procedure call (or method call) on another computer. In particular, there is now a W3C Protocol Working Group developing a standard XML protocol, "XP", which supports XML based RPC.
The goal of this JSR is to develop APIs and conventions for supporting XML based RPC protocols in the Java platform. There are three main needs to be addressed:
As part of mapping between XML based RPC data types and Java types, this JSR will attempt to include support for existing Java language to XML mappings, such as those defined in JSR-031 "XML Data Binding" (and possibly also those defined in JSR-057 "JavaBeans Persistence").
The expert group will evaluate to what extent the XML based RPC mappings and APIs should be aligned with the existing CORBA and RMI APIs and mappings.
The JSR will make reasonable efforts to define APIs and conventions that are independent of specific protocols and data formats, and to define APIs that are "pluggable" and can allow different protocols to be substituted. However, the initial primary focus will be on the emerging W3C XP standard.
Where possible, the JSR will attempt to use or learn from existing work on Java XML based RPC systems, especially work such as the Apache SOAP project.
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 for the specifications defined by the appropriate network standards organizations.
J2SE
This specification will provide consistent Java APIs for using emerging XML based RPC standards.
(See also section 4.1 below.)
There are already two major RPC systems in the Java platform, the OMG CORBA Object Request Broker, and the Java Remote Method Invocation (RMI) APIs. However, neither of these systems have been designed to work with XML based RPC. Where practicable, this JSR should attempt to align with this existing RPC work.
There are several existing JSRs that define XML APIs. These include JSR-031 "XML Data Binding", JSR-057 "JavaBeans Persistence", JSR-063 "Java APIs for XML Processing 1.1", JSR-067 "Java APIs for XML Messaging", and JSR-093 "Java APIs for XML Registries". None of these APIs address XML based RPC. However, the Java APIs for XML based RPC should attempt to align with and exploit these existing APIs.
In particular, it is expected there will be close liaison between this RPC JSR and the existing XML Messaging JSR, as it appears that it will be beneficial for these two JSRs to be closely aligned. Both styles of communication (asynchronous messaging and synchronous RPCs) are likely to be important, for different use cases.
For an overview of RPC systems, see the references, especially the classic Birrell & Nelson paper "Implementing RPC".
To Be Determined.
No.
No.
No.
No. Both the existing CORBA ORB support and the existing RMI support will continue to be supported and extended, to reflect their own distinct needs and user communities.
The final schedule will need to be determined by the expert group, and will also be dependent on the progress of the relevant industry standards. However, it is anticipated that a reasonably solid draft should be available in the early summer.
The goal will be to attempt to develop a consensus in the
expert group over the main APIs and technologies.
Section 3: Contributions
"Remote Procedure Call", Bruce Jay Nelson, CMU PhD Thesis, 1981. Available as Xerox PARC Technical Report CSL-81-9
"Implementing Remote Procedure Calls", A. D. Birrell & B. J. Nelson, ACM Transactions on Computer Systems. Vol. 2, No. 1, February 1984, pp. 39-59.
W3C XML Protocol Activity web site. This includes a variety of information on the W3C's work on "XP", which includes support for RPC using XML.
OMG CORBA 2.4 Specification (5.8 Megs of PDF).
Web Services Definition Language (WSDL) 1.0
SOAP Protocol Specification 1.1.
The Apache SOAP project web site.
This JSR will aim to support the W3C XP standard (and possibly others). In doing this it will attempt to benefit from existing industry work on RPC, and specifically on XML based RPC.
Section 4: Additional Information (Optional)
As noted in Section 2.4, there are already two major RPC systems in the Java Platform, OMG CORBA and Java RMI. Both of these RPC systems were very considerable undertakings, raising many subtle issues. Even more daunting was the RMI-IIOP specification, which provides a partial unification of CORBA and RMI. Mapping between language level semantics and network protocol semantics is not a trivial undertaking.
It is therefore with considerable trepidation that we propose adding a third RPC system to the Java platform. However, it has been a consistent goal of the Java Platform to allow Java programmers to conveniently use common industry infrastructure and common industry protocols. So it is in that spirit that we propose support for XML based RPC standards. It is important to allow Java developers convenient access to merging web standards. We hope that in developing these new APIs and mappings we will be able to benefit from the existing experience in the Java community, and from the lessons learned in projects like RMI-IIOP.