Posted by haroldcarr
on February 9, 2006 at 1:46 PM PST
Sun's Project Tango is ensuring that Java Web Services and Microsoft's
Windows Communication Foundation interoperate with enterprise class
features such as security, reliable messaging and atomic transactions.
This is accomplished by implementing a number of WS-* specifications
and holding plugfests where our engineers work together for a week to
test our implementations of those specifications. This entry maps the
enterprise features to particular specifications and talks about
interoperability testing. Source and binaries will be available in the upcoming weeks.
Java Web Services
(JWS) engineers are working with
Windows Communication Foundation
(WCF) engineers to ensure interoperability of enterprise features.
such as security, reliable messaging and atomic transactions. At Sun,
we call this work "Project Tango" and like to think of Duke doing the
dance. This is accomplished by implementing a number of WS-*
specifications and holding plugfests where our engineers work together
for a week to test our implementations of those specifications. This
entry maps the enterprise features to particular specifications and
talks about interoperability testing. Source and binaries will be available in the upcoming weeks.
The enterprise features fall into four main categories: messaging,
metadata, security and quality-of-service (QoS), as shown in the
Starting with the core
support built into the Java
platform, we use or extend existing features and add new support for:
- SOAP: Support for the SOAP wire protocol is built into
also includes support for Message Transmission
Optimization Mechanism (MTOM) for optimizing the
wire format of SOAP messages.
- WS-Addressing: supports normalized web service addresses,
enabling multiple transports to be used (besides HTTP).
(i.e., JSR 261 ),
the Java APIs for
Web Services Addressing
is available in the
Java Web Services Developer Pack now.
- WSDL: Support for the Web Services Description Language is
- WS-Policy: Policies express and handle requirements and
capabilities of web service consumers and providers.
- WS-MetadataExchange: "WS-MEX" is a protocol to enable a
consumer to obtain a service's metadata (i.e., its WSDL and policies).
Think of it as a bootstrap mechanism for communication.
- WS-SecurityPolicy: Defines specific policies (i.e., assertions)
that describe how messages are secured.
- WS-Security: Provides message content integrity and
confidentiality (even in the presence of intermediaries).
- WS-Trust: Provides methods for issuing, renewing,
and validating security tokens used by WS-Security.
It also provides ways to establish and broker trust relationships
- WS-SecureConversation: Can be viewed as a security
optimization (i.e., better message level security and efficiency
in multiple-message exchanges).
- WS-ReliableMessaging: Enables a messaging system to recover
from failures caused by messages that are lost or
misordered in transit.
- WS-Coord: A framework for providing protocols that coordinate
the actions of distributed applications.
Used by WS-AtomicTransactions.
- WS-AtomicTransactions: Supports two phase commit semantics
such that either all operations invoked within an atomic transaction
succeed or are all rolled back.
From a functional point-of-view the main features enabled by the
above specifications are:
- bootstrapping communication
- securing communication
- optimizing communication
- enabling reliability
- enabling atomic transactions
future entries I will provide more detail on these specifications and
I will show how the specifications play together (i.e., compose) to
provide enterprise features.
Last November 2005 Sun and Microsoft engineers worked in the same
room for a number of days testing the interoperability of our
implementations. We will do this again next month, March 2006, at
is a good place to go to keep
on our plugfest progress and results.
Availability of JWS/WCF Interoperability Software
We plan to make Sun's interoperability software available in time
for this year's
Java One .
Binaries will be available in the
Java Web Services Developer Pack
and source code will be available as part of the