Use of JCP site is subject to the
JCP Terms of Use and the
Oracle Privacy Policy
|
JSRs: Java Specification Requests
JSR 235: Service Data Objects
JCP version in use: 2.6 Java Specification Participation Agreement version in use: 2.0 Description: Defines core infrastructure APIs for heterogeneous data access that supports common application design patterns and supports higher-level tools and frameworks. Please direct comments on this JSR to the Spec Lead(s) Team
The following information has been updated from the original proposal. 2007.12.20: Specification Leads: Radu Preotiuc-Prieto, Kelvin Goodson E-Mail Address: radup Telephone Number: +1 425 896 4116, +44 1962 818178 Fax Number: +1 206 675 8250, - Original Java Specification Request (JSR)
Identification |
Request |
Contributions |
Additional Information
Section 1. Identification Submitting Member: BEA Systems, Inc. and IBM Corporation Name of Contact Person: Rahul Patel & Mike Edwards E-Mail Address: rahulp@bea.com & mike_edwards@uk.ibm.com Telephone Number: +1 408 570 8720 & +44 1962 818014 Fax Number: +1 415 402 7213 & +44 1962 818999 Specification Lead: Rahul Patel & Stephen Brodsky E-Mail Address: rahulp@bea.com & sbrodsky@us.ibm.com Telephone Number: +1 408 570 8720 & 1 408 463 5659 Fax Number: +1 415 402 7213 & 1 408 463 3873 Initial Expert Group Membership: BEA Systems, Inc. Supporting this JSR: BEA Systems, Inc. Section 2: Request
2.1 Please describe the proposed Specification:This specification will define core infrastructure APIs for heterogeneous data access that supports common application patterns and supports higher-level tools and frameworks. An established best-practice in J2EE programming is encapsulating business data passed between tiers of an n-tier application in a by-value Java object that is independent of the technologies used to implement the tiers (note that these tiers are sometimes purely logical - that is, in the same Java VM). [1] [2] [3] [5] [7] This pattern, called "Data Transfer Object" [1] [5] [7] and "Transfer Object" [2] [3], will be called Service Data Objects (SDOs) here. SDOs are used in several standard patterns.
* Service Data Objects are used to pass data from the presentation tier (e.g. servlets and JSPs) to the business logic tier (e.g. An EJB session bean facade) * Data Access Objects [4] [6] abstract and encapsulate a data source by creating and using Service Data Objects as the neutral form of data across applications and data sources. Data Access Objects will be called Data Mediator Services (DMS) here. In simple scenarios, Service Data Objects can be implemented simply by defining a straightforward Java class. However, supporting more sophisticated scenarios can be very challenging and requires more than a simple JavaBean-based approach. This proposed specification for Service Data Objects addresses a range of more sophisticated scenarios:
1. Change History.
2. Compound Data Objects.
3. Navigation
4. Dynamic APIs, with support for generated APIs
5. Meta-Data
6. Faithfully represent the semantics of business data without exposing the details of underlying storage technology.
7. Support for XML, XML Schema and Web Services
8. Import/generation from popular interface definition formats
9. Validation and Constraints
10. Relationship integrity
11. Integration with presentation-tier technologies
12. Serialization
JSR 12 JDO
JSR 31 JAXB 1.0
JSR 40 - JMI
JSR 114 - RowSet Implementations JSR-227 -- A Standard Data Binding & Data Access Facility for J2EE JSR-227 proposes a facility to declaratively bind Web user interface components to heterogeneous back-end data sources. For example, JavaServer Faces components (e.g., a grid component) could be bound to relational data or XML data from a Web service. The SDO specification provides the lower-level primitives that could be used by JSR-227. [1] EJB Design Patterns: Advanced Patterns, Processes, and Idioms, by Floyd Marinescu, 2002. [2] Core J2EE Patterns, Best Practices and Design Strategies, second edition, by Deepak Alur, John Crupi, Dan Malks, 2003. [3] Core J2EE Patterns Transfer Object http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html [4] Core J2EE Patterns Data Access Object http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html [5] Patterns of Enterprise Application Architecture, by Martin Fowler 2003. Data Transfer Object Pattern http://www.martinfowler.com/eaaCatalog/dataTransferObject.html [6] Patterns of Enterprise Application Architecture, by Martin Fowler 2003. Remote Facade Pattern http://www.martinfowler.com/eaaCatalog/remoteFacade.html [7] Enterprise Solution Patterns, Data Transfer Object http://msdn.microsoft.com/practices/type/Patterns/Enterprise/DesDTO [8] XPath 1.0 specification http://www.w3.org/TR/xpath [9] EMOF compliance point from Meta Object Facility 2.0 Core Final Submission, http://www.omg.org/cgi-bin/doc?ad/2003-04-07 [10] OMG MOF 2.0 XMI specification http://www.omg.org/docs/ad/03-04-04.pdf [11] XML Schema part 1: Structures, http://www.w3.org/TR/xmlschema-1 2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)Java 2 Standard Edition 2.3 What need of the Java community will be addressed by the proposed specification?Data Transfer Objects are an established J2EE application development pattern. The Service Data Objects proposed specification standardizes Data Objects in terms of change history, compound data objects, dynamic and generated API, meta-data, support for XML and Web Services, neutral representation of business data, import/export from common formats, validation and constraints, relationship integrity, and navigation. 2.4 Why isn't this need met by existing specifications?This area of technology is not covered by existing standards. 2.5 Please give a short description of the underlying technology or technologies:This is described in section 2.1. 2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)javax.sdo 2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?No 2.8 Are there any security issues that cannot be addressed by the current security model?No 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 2.11 Please describe the anticipated schedule for the development of this specification.This specification timeframe should allow possible inclusion in the Java 1.6 Standard Edition.
Winter 2003: Expert Group Formed 2.12 Please describe the anticipated working model for the Expert Group working on developing this specification.IBM will lead the specification and implementation work, with experts contributing to the API specification. 2.13 Please describe how the RI and TCK will de 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.The RI and TCK will be made available in stand-alone form at the time of the final release. There will most likely be earlier versions of the RI and TCK that are developed as this JSR progresses. The RI will be generic to any particular container and not use any proprietary interfaces, and therefore should work with existing container implementations.
IBM will be responsible for developing the TCK, although contributions from any Expert Group member would be welcome. 2.14 Please state the rationale if previous versions are available stand-alone and you are now proposing in 2.13 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).Not applicable. 2.15 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.The Specification will be offered under royalty-free terms and thus be freely implementable. This license will comply with the terms defined by the JSPA. For an approximation of the Specification license, please see the license statements included in the specifications listed in section 3.1. The intention is to release the RI and TCK under licenses of a form of the draft licenses included as Exhibit A and Exhibit B in section 4.1, respectively. At this stage it is expected that IBM and BEA will strive to use a common license for the RI and similarly for the TCK. 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.The following specification will serve as input into the expert group: 3.2 Explanation of how these items might be used as a starting point for the work.This specification will serve as a starting point for expert group discussion. Section 4: Additional Information (Optional)
4.1 This section contains any additional information that the submitting Member wishes to include in the JSR.Exhibit A BY DOWNLOADING OR USING THE SOFTWARE AND/OR DOCUMENTATION DESCRIBED IN EXHIBIT A HERETO (COLLECTIVELY THE "SOFTWARE"), YOU AGREE TO THE FOLLOWING TERMS AND CONDITIONS ("AGREEMENT"). IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT, YOU MAY NOT DOWNLOAD OR USE THE SOFTWARE.
License Grant. International Business Machines Corporation or one of its subsidiaries collectively ("IBM") hereby grants you (an individual or an entity) a non-exclusive, non-transferable, worldwide, royalty free license to modify and prepare derivative works of the Software and to use, reproduce, distribute object code versions of, display, and perform the Software and such derivative works. The above license includes the right to sublicense the above rights to third parties acting on your behalf.
To the extent IBM provides you with error corrections, upgrades, enhancements, additions, improvements, extension or other modifications to the Software such error corrections, upgrades, enhancements, additions, improvements, extension or other modifications shall be considered Software and shall be subject to the terms and conditions of this Agreement. Compatibility Claims. You agree that you will distribute, or sublicense others to distribute, the Software and derivative works thereof only if you or such third party have tested the Software and derivative works thereof with the applicable JSR __ TCK and such Software and derivative work have complied with the relevant portions of such TCK. You may not claim that the Software or derivative works thereof pass the applicable TCK, and therefore is compatible with the applicable JSR __ specification, unless it is capable of passing the most current version of the TCK available 120 days prior to the date of shipment. You will make available information regarding the version of the TCK passed, upon request. Additional rules, if any, regarding your ability to make claims regarding your use of the TCK or any result there from can be found at __________________. As a condition to your license, you agree to abide by all such rules. Support. Although IBM may try to answer technical support questions you may have regarding your use of the Software, IBM has no obligation to provide error corrections, upgrades, enhancements, additions, improvements, extension or other modifications to the Software or to provide any end user or technical support for the Software. You shall be responsible for any and all maintenance, end-user support and technical support with respect to the Software.
No Warranties. THE SOFTWARE AND ANY SUPPORT ARE PROVIDED "AS IS" WITHOUT WARRANTY OR CONDITION OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, AND STATUTORY ARE HEREBY DISLCAIMED. THE ENTIRE RISK ARISING OUT OF THE USE OR PERFORMANCE OF THE SOFTWARE AND SUPPORT REMAINS WITH YOU.
Some jurisdictions do not allow the exclusion of implied warranties, or the limitation for consequential damages, so the above may not apply to you.
Covenant Not to Assert. To the extent that you have any patents which cover the use of the Software in any manner permitted under this Agreement, you hereby agree not to assert any such patents against the developers or distributors of the Software or any other parties who have entered into a license substantially similar to this Agreement for the licensed use of the Software. General. You agree to comply with applicable export laws and regulations. No other rights or licenses are granted by implication, estoppel or otherwise. If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. Your rights under this Agreement shall terminate if you fail to comply with any of the material terms or conditions of this Agreement and do not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all your rights under this Agreement terminate, you agree to cease use of the Software immediately. This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. This Agreement is the only understanding and agreement we have with respect to the Software. It supersedes all other communications, understandings or agreements (oral or written) that we may have had with respect to the Software prior to this Agreement. Only a written agreement signed by both of us can modify this Agreement. Exhibit B Technology Compatibility Kit License Agreement BY DOWNLOADING OR USING THE SOFTWARE AND/OR DOCUMENTATION DESCRIBED IN EXHIBIT A HERETO (COLLECTIVELY THE "SOFTWARE"), YOU AGREE TO THE FOLLOWING TERMS AND CONDITIONS ("AGREEMENT"). IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT, YOU MAY NOT DOWNLOAD OR USE THE SOFTWARE.
License Grant. You are hereby granted a personal, non-transferable and non-sublicenseable, nonexclusive, world-wide, royalty free license to use the JSR __ Technology Compatibility Kit (including software and documentation) (the "TCK") solely for the purpose of testing compliance with the relevant portions of specifications or standards to which it applies (the "Specification"). You may not modify or create derivative works of any of the TCK except as is necessary to fulfill the purpose described above. You may not distribute copies of the TCK to other parties for any purpose, including for the purpose of allowing such other party to use the TCK. Nor may you modify or incorporate the TCK into any other software. Limitation of Liability. IN NO EVENT WILL ANY AUTHOR, DEVELOPER, LICENSOR, OR DISTRIBUTOR OF THIS MATERIAL BE LIABLE TO ANY OTHER PARTY FOR THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, INDIRECT, PUNITIVE, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS MATERIAL, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
Covenant Not to Assert. As a material condition to this license you hereby agree, to the extent that you have any patents which cover the use of the TCK in any manner permitted under this License, not to assert any such patents against the developers or distributors of the TCK or any other parties who have entered into a license substantially similar to this License for the licensed use of the TCK.
General. If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. Your rights under this Agreement shall terminate if you fail to comply with any of the material terms or conditions of this Agreement and do not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If your rights under this Agreement terminate, you agree to cease use of the TCK immediately and cease making any claims of compatibility regarding the Specification based on the use of the TCK. This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. Exhibit C
NOTE: participants in this expert group must sign a supplemental license agreement to enable an external specification, which has already been published with royalty free patent grants for essential claims, to remain in sync with any enhancements done by the expert group while the expert group completes its work. To that end, the supplemental agreement changes the timing of some of the IP grants that EG members must make. The agreement may be downloaded here.
|