http://java.sun.com/ http://java.sun.com/ http://www.sun.com/javaone
JavaOne - Experiencing Java technology through education, industry, and community
2006 Conference
Topics
Sessions
   General Sessions
Hands-on Labs
Schedule
Schedule Builder
Register
Pavilion
   Cosponsors
   Exhibitors
   Media
   Presentation Theater
Java University
Daily Activities
Event Connect
Alumni
   Alumni FAQ
Multimedia Sessions
Community
JavaOne Online
Forums
java.sun.com
java.net
java.com
sun.com/developers
Java Wear & Books
Home > Technical Session

Composable Web Services Using Interoperable Technologies From Sun's "Project Tango" (TS-4661)

by Janice J. Heiss

On April 2, 2004, Sun Microsystems and Microsoft established a new relationship based on cooperative competition. The companies signed a collaborative 10-year intellectual-property licensing and technology agreement embarking on a variety of projects designed to improve interoperability between implementations and technologies. (See http://www.sun.com/software/javaenterprisesystem/sun_microsoft_interop.pdf .) Since then, both companies have reaffirmed their commitment to collaboration.

Among other things, the companies have done the following:

  • Provided a specification that enables single sign-on and authentication across Microsoft Active Directory and Sun's identity products

  • Reiterated their commitment to the jointly authored Web Service-Management (WS-Management) protocol, which, when fully implemented, will enable full system management across Sun's Solaris Operating Environment and the Microsoft Windows platform.

  • Licensed Microsoft's Remote Display Protocol (RDP) for the Sun Ray ultra-thin client, which ultimately will seamlessly enable mobility with security for users of the Microsoft Windows platform on Sun Ray clients.

  • Announced continuing efforts toward certifying and optimizing Microsoft Windows performance on Sun's AMD Opteron processor-powered workstations, servers, and storage technologies.

Perhaps of greatest significance for Java technology developers, in March of 2005, Sun initiated Project Tango, which has now rolled out at the 2006 JavaOne conference. The technology session "Composable Web Services Using Interoperable Technologies From Sun's 'Project Tango,'" led by Sun's Nicholas Kassem, technology director, and Harold Carr, lead architect of Project Tango, explored ways in which Project Tango will enable -- with the help of the larger community of Java developers -- the next generation of web services technologies.

Project Tango provides a roadmap for product support and interoperability testing of the many next-generation web services specifications (known as WS* and pronounced WS Star) that Microsoft's Windows Communication Foundation (WCF), formerly known as Indigo, is implementing. Project Tango's goal is to deliver web services technologies enabling first-class interoperability between Sun's Java technology products and Windows operating environments supporting WCF. Sun is releasing Web Services Interoperability (WSIT) products as a central part of Project Tango. "We feel very strongly that this project is not only good but necessary," commented Kassem.

In establishing an interoperability strategy, Sun decided to build on existing Java APIs. "One of the worst things we could have done with Project Tango was file a dozen JSRs and spend a few years getting consensus," observed Kassem. "We felt that would be counterproductive."

The second key aspect of the Project Tango strategy involved working closely with Microsoft. "Why do that?" asked Kassem. "We could have taken many different approaches. One approach was to overanalyze the specs. But our key objective was to deliver real on-the-wire interoperability -- not some abstract hypothetical interoperability but actual on-the-wire interoperability. The only way that was doable was if both parties worked closely together. Hence the term 'Tango' -- it really takes two to pull this off, and it has frankly paid off."

The third and equally important strategic element is to build an active open-source community centered around Project GlassFish. The strategy is to build the technology, push it out, get visible development going, and then arrive at industrial strength by 2007.

The Meaning of Interoperability

Harold Carr was quick to point out that the real action was not with the Project Tango specifications that help establish interoperability with Microsoft. "The big thing will be the interoperability that it brings you," he insisted.

Carr elaborated on five key features of interoperability:

  • Bootstrapping
  • Optimizing communication
  • Security optimization
  • Reliable messaging
  • Enabling atomic transactions

Bootstrapping

Bootstrapping refers to finding ways to communicate with the other side. Finding a URL through a web service -- something that Project Tango does not specify -- is not enough in itself, according to Carr. "You need to know a description of the service and its capabilities," he explained. "Will it do reliable messaging? Will it need a certain kind of security? What optimizations are in order?

"WCF has an svcutil that will get metadata that is basically packaged in the WSDL (Web Services Description Language), which is a description of the service. It creates the client proxy automatically. With JAX-WS (Java API for XML-Based Web Services), we have wsimport, which uses a spec called WS-Transfer/MEX, which gets the right metadata back to generate the code. As a developer, the only thing you need to know is the address of the service and the name of this tool. That's it. It generates the client-side code for you."

Optimizing Communication

In sending out large binary attachments, Project Tango relies on Message Transmission Optimization Mechanism (MTOM) and XML-binary Optimized Packaging (XOP), which are built into the underlying JAX-WS 2.0 platform, and enable optimized binary encodings of XML content within SOAP 1.2 payloads. They further enable encoding of XML content as MIME body parts and encapsulate those parts within SOAP 1.2 envelopes. In addition, they describe how to encapsulate XML body parts directly within HTTP packets. Reduced XML size fosters improved communication.

Security Optimization

With security optimization, when many messages flow back and forth between two endpoints, it shouldn't be necessary to get a new key and perform full encryption using the key with each communication. Optimization involves sharing a context and using derived keys, which are faster to compute and faster to encrypt, resulting in increased security and performance.

Carr pointed to a couple of levels in securing communication. On one level, security is used for signing and encryption. Many people have used SSL, which is still available. But if there are a lot of intermediaries and SSL doesn't work, Project Tango has an option of signing header elements or the body so that a message is protected, no matter how many intermediaries a message passes through.

Carr addressed the issue of WS-Trust, which requires that security tokens be acquired. "To do this in an interoperable manner," said Carr, "we can do it whether the user is using Microsoft as a trust service to get tokens, or Sun, or someone else. We now have established protocols, so the user doesn't have to deal with this because the Project Tango infrastructure will contact the right security token services and get the right token and establish the trust for the user."

Reliable Messaging

With reliable messaging," said Carr, "with the right infrastructure underneath, all you do is make your call as you've always done and that's it. But underneath, the system keeps track and makes sure things are sent in the right order, and if they need to be resent, it resends them. It's all a part of the infrastructure."

Enabling Atomic Transactions

Project Tango relies on the exact same atomic transactions that have been in the Java Platform, Enterprise Edition (Java EE) for a number of years. "It's the same," explained Carr. "If your code is transactional with an annotation -- or whatever you use -- the only difference is that before, you could do that using SOAP. Now this will work with web services too."

Core WS* Concepts

Nick Kassem next discussed the nature of the core WS*, the next-generation web services specifications that Microsoft's WCF is implementing. He began with a warning: "We are still using WS*, but don't assume that everything with the WS* tag makes sense to us by definition -- because some of it doesn't."

Hiding Information

Being able to hide information is a key tenet of the web services world. The idea is to be able to expose only information that a service provider feels it is necessary to expose. "One of the cardinal rules of web services is that if you don't get it right, you can run into migration issues, capability issues, and version issues down the road, so you have to protect yourself against future change," said Kassem.

Configurable Stacks

Kassem contrasted "configurable stacks" with "composable stacks," which, he explained, are taken to be synonymous with composable services. "A configurable stack is a key aspect of the WS* family of specifications," explained Kassem. "The theory is that you should be able to pick and choose the set of services that you want to be able to elicit. The ability to configure a stack is central to some of the WS* concepts."

Wire Protocol Centricity

Kassem explained that it is important to focus on wire protocols to an almost religious degree. The key is to avoid making assumptions about the end nodes. Developers cannot assume that they own both ends of the pile.

Project Tango: Few Demands on Developers

Harold Carr offered a clarification: "I'm afraid we may have confused some people. When we say WSIT and Project Tango, they are the same thing. They may have some subtle differences internally, but essentially they are the same." He went on to repeat a point that he said could "not be emphasized enough": Developers do not have to learn much to use Project Tango's creations. "If developers know how to use JAX-WS, EJBs, and JAXB (Java API for XML Binding), they can benefit from Project Tango," said Carr. "The rest will just be a matter of checking boxes. The main thing you do is supply a configuration file that you can write by hand, or use the NetBeans IDE, which is a lot easier."

The one relatively minor area where developers will need guidance will be in learning what boxes to check when using a particular feature. But the larger point is that we live in a world of heterogeneous software, and Project Tango provides a bridge in that world. "If you want to talk to applications that build using WCF," said Carr, "this will work."

Early Access

Early Access delivery has begun at the 2006 JavaOne conference with source code available on java.net and binaries through Project GlassFish. The first customer shipment (FCS) is scheduled for the first half of calendar year 2007.

Call To Action

Test drive the technology:
http://java.sun.com/webservices/interop/downloads/index.jsp

Join the Sun Developer Network (SDN):
http://developers.sun.com/

Download the sources and binaries:
http://wsit.dev.java.net/

Contribute to the communities:
GlassFish community
https://glassfish.dev.java.net/
NetBeans IDE
http://www.netbeans.org/

For More Information

Sun Interoperability
http://www.sun.com/products/interoperability/

A Brochure on Sun and Microsoft Interoperability
http://www.sun.com/products/interoperability/sun_microsoft_interop.pdf

Java API for XML Web Services (JAX-WS)
http://java.sun.com/webservices/jaxws/index.jsp

Java Architecture for XML Binding (JAXB)
http://java.sun.com/xml/ns/jaxb/index.html

Java API for XML Web Services Addressing (JAX-WSA)
http://java.sun.com/webservices/jaxwsa/index.jsp

Java.net
http://java.net

Advanced Web Services Interoperability (TS-9866), 2005
http://developers.sun.com/learning/javaoneonline/2005/interoperability/TS-9866.html

 Back to top


Rate and Review
Tell us what you think of the content of this page.
Excellent   Good   Fair   Poor  
Comments:
If you would like a reply to your comment, please submit your email address:
Note: We may not respond to all submitted comments.