Problem Analysis

In absence of a functional specification, this section formulates a few major assumptions and axioms all further discussions in this proposal are based upon.

Requirements Analysis

Use Case Analysis

Figure 1 gives an overview over the anticipated use cases for proposed JSR-181 implementation. The actors are:

Figure 1: Use case analysis for the JSR-181 implementation.

Use Case: Generate Code

"WS Developer" and "IDE" invoke WSM to generate (Java) code from a service definition (.wsdl) file. The generated code consists of skeletons (annotated Java Web Service source file) and simplifies and accelerates the development of the Web Service when a service description exists. "Generate Code" corresponds to the JSR-181 Start with WSDL processor mode.

Use Case: Validate

"WS Developer" and "IDE" invoke WSM to validate a Web Service implementation against a service description (.wsdl) file. This is particularly useful to keep initially auto-generated but later modified code in sync with the original service description. For instance, "IDE" may choose to use WSM on the fly to signal any inconsistencies while a file is being edited.

Use Case: Generate Service Description

"WS Developer" invokes WSM to generate a service description from an existing implementation for a Web Service, e.g. to publish the Web Services’s capabilities in a standard WSDL file.

Use Case: Generate Web Service

"WS Developer" invokes WSM to auto-generate the artifacts required to deploy a Web Service to a runtime from an annotated Java Web Service file. One of the artifacts can be a service description file (see above).

Depending on the chosen deployment model, a runtime may choose to automate the deployment process by automatically invoking WSM to generate a Web Service from an annotated Java Web Service file if such a file is dropped into a monitored directory. In other words, runtimes that support this automated deployment would take the burden of explicitly invoking WSM from "WS Developer", which in turn would only be required to author the original annotated Java Web Service file. \[The Axis runtime currently supports a similar mechanism for un-annotated .jws files.\]

The "Generated Web Service" use case corresponds to the JSR-181 Start with Java processor mode.

Use Case: Semantic Error Checking

WSM also check for errors at a semantic level, which cannot be caught by the Java compiler.

Use Case: Package Artifacts

In order to create a deployable Web Service, WSM needs to package the generated artifacts appropriately. For some runtimes, packaging may not be necessary.

Project Deliverables

Deliverables

The use case analysis suggests structuring the JSR-181 implementation into the following deliverables:

Non-Deliverables

Suggested Road Map

Phase 1

Later Phases

Supported JSR-181 Annotation Types

The required annotation types for Java Web Services as specified in JSR-181 are:

Additional annotation types may be added later, for instance to support service controls or asynchronous Web Services.