![]() |
||||
|
| ||||
Composable Web Services Using Interoperable Technologies From Sun's "Project Tango" (TS-4661) 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:
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 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 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:
Join the Sun Developer Network (SDN):
Download the sources and binaries:
Contribute to the communities: For More Information
Sun Interoperability
A Brochure on Sun and Microsoft Interoperability
Java API for XML Web Services (JAX-WS)
Java Architecture for XML Binding (JAXB)
Java API for XML Web Services Addressing (JAX-WSA)
Java.net
Advanced Web Services Interoperability (TS-9866), 2005 | ||||
Comments | About
Sun | Privacy | Terms
of Use | Trademarks | Third
Party Content Disclaimer Conference content is subject to change. Copyright 1996 - 2006 Sun Microsystems, Inc. |
![]() |
|