Announcing Metro - Naming the Web Services stack in GlassFish

Guest Author
The GlassFish V2 Web services
stack consists of JAX-WS as the core
platform and Project Tango (aka Web
Services Interoperability Technology, WSIT) as an implementation of
key WS-\*
on top of it. This stack, so far referred as "JAX-WS RI +
Project Tango", now has a new name - Project

Why name Project Metro ? - JAX-WS, the core platform, uses

as a basic processing unit that represents SOAP-level protocol handling
code such as MustUnderstand and WS-Addressing processing. Multiple tubes are put
together in a sequential fashion to complete the SOAP message handling. Project
Tango uses this extensible architecture to implement they
key WS-\* specs,
such as Reliable Messaging and Atomic Transactions, as Tubes as well.
Effectively, all your SOAP messages are moved from one point (client) to another
(endpoint), potentially spanning intermediaries, through Tubes. This is a direct
correlation to Metro (aka Rapid
Transport) that exists all over the world.

What is Metro ? - A picture is worth a thousand words - this shows all the components of Metro.

The two main components of Metro are:

  • JAX-WS - The Core Web services platform

  • WSIT - Implementation of key WS-\* specs and interoperability with .NET


The Core
Web services that provides all the SOAP message functionality, including WS-Addressing and MTOM,
is available from JAX-WS. Project Tango
implements Security, Reliability and Transactions on this Core layer that interoperate with Windows
Communication Foundation. All the applications on Metro can be easily developed using
NetBeans 5.5.1 and deployed on
GlassFish V2.

How does Metro provide interoperability with .NET 3.0 ? - Metro
provides a complete Web services solution for both homogeneous and heterogeneous
architectures. For any Web service, there is a Client that invokes an Endpoint.
The Endpoint advertises the metadata which the Client uses to bootstrap
communication with the Endpoint. This metadata indicates which of the
capabilities - security, reliability and transactions - are supported at the
Endpoint. For a Metro Client or Endpoint, NetBeans IDE 5.5.1 or later takes care
of processing all the details.

The figure shows a pair of Client and Endpoint - one using the
Metro Web services stack and the other using .NET 3.0. The Metro Client and
Endpoint can be deployed on any of the GlassFish V2 supported platforms (Solaris
Sparc, Solaris X86, Windows, Linux and MacOS). The .NET 3.0 Client and Endpoint
can be deployed on any of the .NET 3.0 supported platforms (Windows Vista,
Windows 2003 Server and Windows XP + SP2).

For a homogeneous architecture, where both Client and Endpoint
are using Metro, the arrow labeled 1 shows a Metro Client invoking a Metro
Endpoint. If this serves your purpose, then all you need is GlassFish V2 for
WSIT runtime, NetBeans IDE for tooling and
WSIT tutorial.

For a heterogeneous architecture, where only one of Client or
Endpoint is using Metro and the other is based on .NET 3.0, the arrow labeled 2
and 3 shows a Metro client can invoke a .NET 3.0 endpoint and a .NET 3.0 client
can invoke a Metro endpoint respectively. This use case has been extensively
tested as well by participating in multiple
plug-fests with Microsoft.

What is the change ? - The biggest change you'll notice is a unified
single name for what was called "GlassFish Web services stack" or "JAX-WS RI +
Tango" so far. This is only a consolidation of our multiple offerings and is
backed up high quality, high-performance and production-ready Web services stack
integrated in GlassFish V2. This
stack is also tested on Tomcat and has been reported to run on
Jetty and
as well.

Metro Binary 1.0 M5, aligned

Tango Milestone 5
, already integrated in

GlassFish V2 b50
, is available for download. The JAX-WS and Tango binaries
and documentation are still available for download but will be aligned with
Metro over time.

Discover Metro

Use Metro

Extend Metro



Join the discussion

Comments ( 10 )
  • Mikael Gueck Tuesday, June 19, 2007
  • Arun Gupta's Blog Thursday, June 21, 2007
    [Trackback] Project Metro was announced 2 days ago and got picked up my multiple sites: Project Metro: the new name for web services stack from Sun (TheServerSide) Sun Announces Metro (InfoQ) Announcing Metro (webservices.org) Sun Names "Metro Web-Services St...
  • Arun Gupta's Blog Thursday, June 28, 2007
    [Trackback] Before I explain the differences between WS-I and WSIT, let me point out the similarities: They both are working to achieve interoperability of Web services The first three letters in their short name stand for the exact same words "Web...
  • Arun Gupta's Blog Friday, July 13, 2007
    [Trackback] Metro - the Web services stack in GlassFish - was announced recently. It was basically creating a single entity for two related projects - JAX-WS RI and Project Tango. The next logical step is to create a single place where...
  • acer Thursday, November 27, 2008

    Metro Binary 1.0 M5, aligned with Tango Milestone 5, already integrated in GlassFish V2 b50, is available for download. The JAX-WS and Tango binaries and documentation are still available for download but will be aligned with Metro over time.

  • arav Tuesday, January 18, 2011

    Does Oracle has an official public maven repository for the jee 5 and 6 apis?

  • Arun Gupta Wednesday, January 19, 2011

    The Maven coordinates for Java EE APIs are listed at:


  • arav Wednesday, January 19, 2011

    Thanks arun. I am also looking for JEE 5 artifacts. The link you have provided helps me in getting the JEE 5 api only.

  • arav Wednesday, January 19, 2011

    I meant the link provides only JEE 6 api

  • Arun Gupta Thursday, January 20, 2011

    Java EE 5 APIs are available at:


    Is that what you are looking for ?

Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.