2.1 Please describe the proposed Specification:

The Work Manager for Application Servers specification will contain an API that provides a simple, container-manageable programming model for concurrent execution of work. These work items execute out of a thread pool managed by a container. The Work Manager API provides a higher level of abstraction for concurrent programming than java.lang.Thread, which is inappropriate for use by applications hosted in managed environments such as EJB containers and Servlet containers.

This API can be used within any environment, but is specifically designed for the requirements of managed environments.

This specification does not require any changes to existing JavaTM 2 Enterprise Edition (J2EE) APIs or deployment descriptor formats. Components can access the work service through a lookup in the local Java environment in JNDI, provided the container supports this API and the application has been properly configured.

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

There is commonly a need to perform application-level work concurrently. For example, a Servlet or JSP may need to pull data form several backend data sources or services before rendering HTML. This API will provide a means by which an application can specify the work that can be executed concurrently. It provides concurrency operations, including joining on two common conditions: all work items completing, and any of the work items completing.

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

There is presently no standard API for application-level concurrent programming within managed environments such as Servlets and EJBs. java.lang.Thread should not be used within these environments, and the JCA Work API is only appropriate for use within Resource Adapters.

JSR-166 is targeted specifically at J2SE, and does not provide the proper interfaces for used within managed environments. However, alignment with base interfaces defined by JSR-166 may be possible. Also, JSR 166 is targeted at J2SE 1.5, this JSR targets a solution for J2EE 1.4.

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

This API can be implemented with existing Java APIs for concurrent programming, including java.lang.Thread or JSR-166.

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

javax.work, javax.util, or javax.util.work

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?

The J2EE Connector Architecture specification may consider using this specification as a base in the future, as it currently defines a work manager API specific to JCA.

This API is meant to be complementary to JSR 166 (Concurrency Utilities for Java), as JSR 166 is primarily targeted at J2SE. It is possible that a follow-on to this JSR, or a follow-on to JSR-166, could rationalize these specifications.

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

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

E-mail, teleconferences, and infrequent face-to-face meetings. The environment of the expert group will be totally non-confidential. We will also use or create an open mailing list for discussions by other interested people outside the expert group. As the outbound licenses will be Royalty Free, expert group members will need to ensure that their contributions are similarly made on that basis. Non-EG contributors to the mailing list will also be requested to provide that assurance. Precise details of the leadership processes of the expert group (for example: running calls, decision making, issue resolution) will be discussed by the leaders once the group?s size and dynamics are known.

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.
BEA will be responsible for developing the RI, although assistance 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).

N/A

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.

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
Reference Implementation License

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.
You agree not to remove any of the copyright statements or disclaimers contained in the Software.
You agree to defend, indemnify, hold harmless IBM and its suppliers from and against any claims, lawsuits, demands, liabilities, damages, costs and expenses including, without limitation, attorney fees, in any way related to, connected with, or arising out of, your use, modification, reproduction, distribution and/or sublicensing of the Software.

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.
No Liability. IN NO EVENT WILL IBM OR ITS SUPPLIERS BE LIABLE FOR ANY LOST PROFITS, LOST SAVINGS, LOST REVENUE, LOST DATA, PROCUREMENT OF SUBSTITUE GOODS, OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, EVEN IF IBM OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES OR DAMAGES. IN ADDITION IBM AND ITS SUPPLIERS WILL NOT BE LIABLE FOR ANY DAMAGES CLAIMED BY YOU BASED ON ANY THIRD PARTY CLAIM.

Some jurisdictions do not allow the exclusion of implied warranties, or the limitation for consequential damages, so the above may not apply to you.
Note to U.S. Government Users - Documentation related to Restricted Rights - Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corporation.

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.
Reciprocity. You may have, or may have in the future, the ability to reference implementations developed or distributed pursuant to the Java Community Process ("Java Materials"). You acknowledge that under this license you are receiving the Software under reasonable royalty-free terms. While you are not obligated to make Java materials available, if you do so and do not license them under reasonable royalty-free terms, the licensor reserves the right to revoke this license upon reasonable notice. In the event this occurs, the licensor will make available to you a substitute license under commercial terms, including possibly royalties and other restrictions. For the purpose of this paragraph, terms are not reasonable terms if they are more restrictive than this license or if they discriminate against any individual or group of JCP members or against implementers of independent implementations or open source implementations.

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.
No Warranties. The TCK contained herein is provided on an "AS IS" basis and to the maximum extent permitted by applicable law, this material is provided AS IS AND WITH ALL FAULTS, and the developers of this material hereby disclaim all other warranties and conditions, either express, implied or statutory, including, but not limited to, any (if any) implied warranties, duties or conditions of merchantability, of fitness for a particular purpose, of accuracy or completeness of responses, of results, of workmanlike effort, of lack of viruses, and of lack of negligence. ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT WITH REGARD TO THIS MATERIAL.

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.
Reciprocity. You may have, or may have in the future, the ability to license specifications and/or test suites developed or distributed pursuant to the Java Community Process ("Java Materials"). You acknowledge that under this license you are receiving the TCK under reasonable royalty-free terms. While you are not obligated to make Java Materials available, if you do so and do not license them under reasonable royalty-free terms, the licensor reserves the right to revoke this license upon reasonable notice. In the event this occurs, the licensor will make available to you a substitute license under commercial terms, including possibly royalties and other restrictions. For the purpose of this paragraph, terms are not reasonable terms if they are more restrictive than this license or if they discriminate against any individual or group of JCP members or against implementers of independent implementations or open source implementations.
Compatibility Claims. You may not claim that any version or release of software passes the TCK, and therefore is compatible with the Specification, unless it is capable of passing the most current version of the TCK available 120 days prior to the date of its first shipment to customers. You will make available information regarding the version of the TCK passed, upon request. You agree that any claims regarding compliance with the Specification will be factually accurate and will not be misleading.

General.
No other rights 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 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