Metro is a high-performance, extensible, easy-to-use web service stack. Although historically an open-source part of the GlassFish application server, it can also be used in a stand-alone configuration. Components of Metro include: JAXB RI, JAX-WS RI, SAAJ RI, StAX (SJSXP implementation) and WSIT. Originally available under the CDDL and GPLv2 with classpath exception, it is now available under Eclipse Distribution License [Wikidata]
History
Originally, the Glassfish project developed two semi-independent projects:
- JAX-WS RI, the Reference implementation of the JAX-WS specification
- WSIT, a Java implementation of some of the WS-* and an enhanced support for interoperability with the .NET Framework. It is based on JAX-WS RI as "Web Service layer".
In June 2007, it was decided to bundle these two components as a single component named Metro.3
Features
Metro compares well with other web service frameworks in terms of functionality. Codehaus started a comparison4 which compared Apache Axis 1.x, Axis 2.x, Celtix, Glue, JBossWS, Xfire 1.2 and JAX-WS RI + WSIT (the bundle was not yet named Metro at that time). This was later updated by the ASF to replace Celtix with CXF and to include OracleAS 10g.5
Metro includes JAXB RI, JAX-WS RI, SAAJ RI, SJSXP, and WSIT, along with libraries that those components depend on, such as xmlstreambuffer, mimepull, etc.6
Its features include:
- Basic Profile 1.1 Compliant
- Easily Create Services from POJOs
- RPC-Encoding
- Spring Support
- REST Support
- Soap 1.1/1.2
- Streaming XML (StAX based)
- WSDL 1.1 ->Code (Client)/(Server)
- Server and Client-side Asynchrony7
Supported WS-* Standards8
WS-Addressing | WS-Atomic Transaction | WS-Coordination |
WS-Metadata Exchange | WS-ReliableMessaging | WS-Policy |
WS-Secure Conversation | WS-Security Policy | WS-Security |
WS-Trust | WSDL 1.1 Support |
Supported Transport protocols include:
- HTTP
- JMS
- SMTP/POP3
- TCP
- In-VM
Metro augments the JAX-WS environment with advanced features such as trusted, end-to-end security; optimized transport (MTOM, Fast Infoset), reliable messaging, and transactional behavior for SOAP web services.
Market share
Metro is bundled with Java SE 6 in order to allow consumers of Java SE 6 to consume Web Services.9
Metro is bundled with numerous application servers such as:10
- GlassFish
- Sun Java System Application Server Platform Edition 9.x
- Oracle WebLogic Server
- JBoss (version 5.x only)
- TmaxSoft JEUS 6.x
The JAXB reference implementation developed for Metro is used in virtually every Java Web Services framework (Apache Axis2, Codehaus XFire, Apache CXF) and Application Servers.
External links
- Free and open-source software portal
- Official website
- Eclipse Metro project as a part of Eclipse Enterprise for Java (EE4J)
References
"metro: Discover Metro". Archived from the original on 2007-07-08. https://web.archive.org/web/20070708134345/https://metro.dev.java.net/discover/ ↩
"metro: Metro FAQ". http://metro.java.net/discover/faq.html ↩
Gupta, Arun (June 19, 2007). "Announcing Metro - Naming the Web Services stack in GlassFish". Miles to go…. blogs.sun.com. Archived from the original on 2009-09-26. https://web.archive.org/web/20090926144443/http://blogs.sun.com/arungupta/entry/announcing_metro_naming_the_web ↩
"Stack Comparison". XFire. xfire.codehaus.org. Archived from the original on 2006-12-30. https://web.archive.org/web/20061230114334/http://xfire.codehaus.org/Stack+Comparison ↩
"StackComparison". Apache Web Services Wiki. Apache Wiki Farm. Archived from the original on 2017-09-04. https://web.archive.org/web/20170904141955/https://wiki.apache.org/ws/StackComparison ↩
"StackComparison". Apache Web Services Wiki. Apache Wiki Farm. Archived from the original on 2017-09-04. https://web.archive.org/web/20170904141955/https://wiki.apache.org/ws/StackComparison ↩
"StackComparison". Apache Web Services Wiki. Apache Wiki Farm. Archived from the original on 2017-09-04. https://web.archive.org/web/20170904141955/https://wiki.apache.org/ws/StackComparison ↩
"JAX-WS FAQ". jax-ws. Archived from the original on 2007-08-07. https://web.archive.org/web/20070807124130/https://jax-ws.dev.java.net/faq/index.html#different_versions ↩
Gupta, Arun (July 22, 2007). "Metro - Now on Tomcat 6.x also". GlassFish. blogs.sun.com. Archived from the original on 2009-06-15. https://web.archive.org/web/20090615134727/http://blogs.sun.com/theaquarium/entry/metro_now_on_tomcat_6 ↩