Building a Bridge Between Java & .Net: Web Services Interoperability Technology (WSIT)
Satish Hemachandran is Product Marketing Manager for Sun's SOA and web services platform where he is responsible for strategy, outbound messaging and positioning.
Satish, what is Web Services Interoperability Technology (also known as Project Tango)?
WSIT is a Java™ technology-based implementation of web services (WS-*) specifications. WS-* is the name given for a collection of web services specifications. However a number of these specifications are yet to reach maturation. Given the nature and complexity of the specifications themselves, there is often a difference in the interpretation and implementation of these specifications that tends to defeat the purpose of standardization. Thus was borne the need for organizations such as WS-I, which attempted to reconcile differing interpretations and attempted to bridge the various implementations.
WSIT represents an open-source effort to deliver web services interoperability at the lowest level. WSIT is essentially an extension to JAX-WS (JSR 224) and JAXB (JSR 222), and is based on the Java Platform, Enterprise Edition (Java EE) 5. For this first release, Sun has focused its efforts to ensure interoperability is made possible between Java and .Net based web services. To deliver on this goal, we leveraged our partnership with Microsoft to test every facet of our subset of WS-* implementations with the Microsoft Windows Communication Foundation (WCF).
What is WCF?
Windows Communication Foundation (also known as Indigo) is Microsoft's implementation of WS-* that is currently available as a beta release for Windows XP and will be an integral part of Vista.
What does Sun's web services implementation offer?
At an implementation level, WSIT is focused on the areas of messaging, meta data, security, and Quality of Service (QoS). This translates to the following set of specifications being addressed:
On the tools front, we provide a NetBeans plugin for WSIT that lets developers take advantage of these new features/capabilities.
Although core XML plays a significant role in an enterprise SOA today, web services adoption is still in its infancy in the enterprise. As an active leader and participant/contributor to technology standards and open-source, we decided to make WSIT available via open-source. By delivering this work via Project GlassFish(SM), Sun is making it possible for Engineers worldwide to download, test and contribute to this effort.
Who wants their web services to interoperate with .NET?
Customers almost always have a blend of systems in their data center. Rarely are businesses (unless you are a giant like Walmart) in a position to dictate what systems/interfaces are maintained by their partners and/or suppliers. So, you could have business environments where a Java based warehouse service is powering a .Net based store service or vice versa. This becomes very relevant in the context of a Service-Oriented Architecture where you orchestrate (read: cobble together) a set of hetergeneous services. While the business conditions might differ, the underlying technical need remains the same — that of interoperability. This is what WSIT helps solve.
What was the situation for web service developers like before WSIT?
As I mentioned earlier, there are a variety of technologies here that are in different stages of adoption. Customers and developers looking to adopt some of the more "specialized" web services across their organization were being impeded by the plethora of specifications and implementations — these customers often had the right use case in mind for WS adoption, but their efforts were stymied by implementations that in reality only offered partial interoperability. By focusing our efforts on interoperability testing, WSIT now helps these customers move forward in their adoption.
How is interoperability testing accomplished?
This actually is a good question, since it's important for developers and customers to understand what goes on behind the scenes to ensure that everything is working. As with any software testing, interoperability testing also relies on a set of agreed-upon use cases consisting of message exchanges between the two nodes, WSIT and WCF.
To ensure interoperability, Sun has participated in "engineering workshops" (aka Plugfests) where the goal has been a live forum to test out implementations and fix issues as they come up.
Can my IDE help me with all these tasks?
Absolutely! The way we see developers coming in contact with WSIT is through the use of IDEs. We made a clear decision at the very beginning of the development cycle to ensure that we coordinated the delivery of the WS implementation with the appropriate tooling. We accomplished that goal when we announced WSIT at JavaOne along with a plugin for NetBeans.
Where can I get the WSIT plug-in for NetBeans from?
Satish, thank you very much for the interview!