JAXWS 2.1 FCS - Fast and Furious
Phew, what a ride! As usual there has been a few last minutes test failures and
re-spinning the build, making sure the
Orb is blue in the break area, but finally we are here... JAX-WS 2.1 RI is
Final! It was
non-stop months of effort by everyone in the JAX-WS team and of
course hudson which kept reminding us
of any regression we caused before anyone else noticed!
JAX-WS 2.1 RI provides convenient programming model built on JAX-WS 2.1
standard APIs and also provides extensions on which middleware developers can
build the solutions to enhance it, such as
WSIT,
Open JBI component, and
Glassfish v2. See
Kohsuke's blog on extending JAX-WS 2.1
and
Jitu's blog on plugging in the
Tube and also many
developer
productivity features.
It has been well tested with unit tests, SQE tests and all of the Java
compatibility tests(TCK) on top of
Glassfish v2 M4
and Tomcat 5.5.x using JDK 1.5_06 and
JDK 6. Get the JAX-WS 2.1 RI from
here or from
maven repository and send your feedback to
users@jax-ws.dev.java.net or to
the JAX-WS
Forum and report your issues and feature requests at
IssueTracker.
Here is JAX-WS 2.1 RI release announcement:
JAX-WS team is pleased to announce general availability of
JAX-WS 2.1 RI.
We have put tremendous effort in bringing this where it is! Besides cool features and JAX-WS 2.1 API, two main
architectural changes that went in to this release - Performance and
Extensibility.JAX-WS 2.1 RI is built on Java standards such as JAX-WS -2.1 (JSR
224), JAXB 2.1 (JSR 222), SAAJ, StAX and whole bunch of related Java
standards. Not only that, the Web Services standards and profiles
compliance is at the core - from tools to the complete runtime
system.Important thing about
JAX-WS 2.1 RI is that it is a complete re-architecture and re-write of JAX-WS 2.0.
We did it for two main reasons - to make it high performing and
extensible! See the
reason we did it and also our
2.0.1 M1 release with these architectural changes and
merge of 2.0.1 into 2.1.JAX-WS 2.1 RI brings in new
productivity features and also extension
APIs for the middleware developers to enhance JAX-WS 2.1 with their
custom extensions, such as
WSIT,
Open JBI component,
and Glassfish v2 .
Key Features
- Reference Implementation (RI) of JAX-WS 2.1. Full
JAX-WS 2.1 Specification
compliance- Development Tools
- WSDL to Java generator
- Wsimport
comman line tool,
ant task
and
Maven2 plugin- Java to WSDL generator
- Wsgen
command line tool, ant Task
and
Maven2 plugin- Integrated with
NetBeans
5.5.1- Standards
- Web Services Addressing 1.0 - Core,
SOAP Binding and WSDL Binding- WS-Addressing - Member Submission
- SOAP 1.1 and 1.2
- REST and XML/HTTP
- WS-I Basic Profile 1.1,
Simple SOAP Binding Profile 1.0 and Attachment Profile 1.0- MTOM
- Extensions (May not be final unless says so)
- Web Services Interoperable Technologies (
WSIT) -
enables .NET 3.0 interoperability
- WS-ReliableMessaging
- WS-Policy
- WS-MEX
- WS-Security/WS-Security Policy
- WS-Trust/WS-Secure Conversation
- WS-AT/WS-Tx (Supported only on Glassfish v2)
- SOAP/TCP
- Spring support
- Pluggable
Transport
- In-VM transport
- Servlet transport (bundled with the RI)
- JMS transport
- SOAP over TCP transport (part of
WSIT)- FastInfoset (bundled with JAX-WS
2.1 RI)- JBI Service Engine and Binding Component(part of Glassfish v2)
- HTTP Binding Component, used by
Open JBI component- Data binding - JAXB 2.1.2 RI
- Server Side Asynchrony -
AsyncProvider- Stateful Web Services
- Support for
custom WebServiceFeature
Hosting API
- These APIs can be used by a J2EE application server to integrate JAX-WS 2.1 RI for hosting JAX-WS
services- Endpoint Deployment
- Glassfish v2
- Tightly integrated with Glassfish
- Supports EJB and Web endpoints
- 109 based deployment support for better portability
- JAX-WS RI specific deployment descriptor support
- Sun One Application Server 9.0 ur1
- Light weight HTTP server
- On JDK 1.5 through http.jar distributed with the JAX-WS 2.1 RI bundle
- Bundled with JDK 6
- Any other container that supports Servlet 2.4, such as Tomcat,
Jetty, Geronimo, JBoss, Resin, ... You name it!
Performance comparison with Axis2 1.1.1
We ran our benchmark tests against Axis2 1.1.1. Details on this benchmark can
be found
here.
People usually care about the server-side performance so the
benchmark tests measures the performance on the server side. Large numbers of
clients were used to invoke the endpoints simultaneously so we measured number
of invocations per second. Since invocations per second varies greatly
from tests to tests, we normalized the number so that you'll always see Axis2 as
'100%'.
On tests like echoVoid where the payload is small, the benchmark tends
to reflect the performance of the web service toolkit itself, and
there you can see JAX-WS RI 2.1 to be about twice as fast than Axis2.
On tests like echoArray where the payload is bigger, the benchmark
reflects the data binding performance as well, and here you still see
us at least 25% faster.
The types of data included empty message (echoVoid), int, float, String,
Date, structures of varying sizes(echoStruct) , arrays of varying sizes (echo
Array) and binary data of varying sizes (echoSynthetic).
You can see in the graph below for simple types you are looking at the
performance comparison with the least amount of data binding and for larger
messages the comparisons show performance with respect to data binding.
As it looks above in the graph JAX-WS 2.1 RI is performing lot better than
Axis2 for all different message sizes. In each of the tests invocations per
second includes all the server-side network processing/container etc., so
achieving overall 2x performance means that the web services stack has to
perform more than double.
So get the JAX-WS 2.1 from
here or from
maven repository and continue providing feedback to
users@jax-ws.dev.java.net or to
the JAX-WS
Forum and report your issues and feature requests at
IssueTracker.
- Login or register to post comments
- Printer-friendly version
- vivekp's blog
- 1702 reads






