Metro is a high-performance, extensible, easy-to-use
web service stack
Stack may refer to:
Places
* Stack Island, an island game reserve in Bass Strait, south-eastern Australia, in Tasmania’s Hunter Island Group
* Blue Stack Mountains, in Co. Donegal, Ireland
People
* Stack (surname) (including a list of people ...
. Although historically an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
part of the
GlassFish
GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by Payara, Oracle and Red Hat. The supported v ...
application server
An application server is a server that hosts applications or software that delivers a business application through a communication protocol.
An application server framework is a service layer model. It includes software components available to a ...
, it can also be used in a stand-alone configuration. Components of Metro include:
JAXB
Java XML Binding (JAXB; formerly Java Architecture for XML Binding) is a software framework that allows Java EE developers to map Java classes to XML representations. JAXB provides two main features: the ability to ''marshal'' Java objects in ...
RI,
JAX-WS
The Jakarta XML Web Services (JAX-WS; formerly Java API for XML Web Services) is a Jakarta EE Application programming interface, API for creating web services, particularly SOAP services. JAX-WS is one of the Java XML programming APIs.
Overview
...
RI,
SAAJ
Jakarta SOAP with Attachments (SAAJ; formerly SOAP with Attachments API for Java), as part of Jakarta XML Web Services (JAX-WS), provides a standard way to send XML documents over the Internet from the Jakarta EE platform.
SAAJ enables developers ...
RI,
StAX
Streaming API for XML (StAX) is an application programming interface (API) to read and write XML documents, originating from the Java programming language community.
Traditionally, XML APIs are either:
* DOM based - the entire document is read in ...
(SJSXP implementation) and
WSIT. Originally available under the
CDDL
The Common Development and Distribution License (CDDL) is a free and open-source software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL). Files licensed under the CDDL can be combined with files licensed under oth ...
and
GPLv2
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
with
classpath exception A GPL linking exception modifies the GNU General Public License (GPL) in a way that enables software projects which provide library code to be " linked to" the programs that use them, without applying the full terms of the GPL to the using program. ...
, it is now available under
History
Originally, the Glassfish project developed two semi-independent projects:
*JAX-WS RI, the Reference implementation of the
JAX-WS
The Jakarta XML Web Services (JAX-WS; formerly Java API for XML Web Services) is a Jakarta EE Application programming interface, API for creating web services, particularly SOAP services. JAX-WS is one of the Java XML programming APIs.
Overview
...
specification
*
WSIT, a Java implementation of some of the
WS-*
There are a variety of specifications associated with web services. These specifications are in varying degrees of maturity and are maintained or supported by various standards bodies and entities. These specifications are the basic web services ...
and an enhanced support for interoperability with the
.NET Framework
The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
. 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.
Features
Metro compares well with other web service frameworks in terms of functionality. Codehaus started a comparison which compared
Apache Axis
Apache Axis (Apache eXtensible Interaction System) is an open-source, XML based Web service framework. It consists of a Java and a C++ implementation of the SOAP server, and various utilities and APIs for generating and deploying Web service appl ...
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.
Metro includes
JAXB
Java XML Binding (JAXB; formerly Java Architecture for XML Binding) is a software framework that allows Java EE developers to map Java classes to XML representations. JAXB provides two main features: the ability to ''marshal'' Java objects in ...
RI,
JAX-WS
The Jakarta XML Web Services (JAX-WS; formerly Java API for XML Web Services) is a Jakarta EE Application programming interface, API for creating web services, particularly SOAP services. JAX-WS is one of the Java XML programming APIs.
Overview
...
RI,
SAAJ
Jakarta SOAP with Attachments (SAAJ; formerly SOAP with Attachments API for Java), as part of Jakarta XML Web Services (JAX-WS), provides a standard way to send XML documents over the Internet from the Jakarta EE platform.
SAAJ enables developers ...
RI, SJSXP, and
WSIT, along with libraries that those components depend on, such as xmlstreambuffer, mimepull, etc.
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 Asynchrony
Supported WS-* Standards
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
Fast Infoset (or FI) is an international standard that specifies a binary encoding format for the XML Information Set (''XML Infoset'') as an alternative to the XML document format. It aims to provide more efficient serialization than the text-b ...
), reliable messaging, and transactional behavior for SOAP web services.
Market share
Metro is bundled with
Java SE
Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).
The platform uses Ja ...
6 in order to allow consumers of Java SE 6 to consume Web Services.
Metro is bundled with numerous application servers such as:
*
GlassFish
GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by Payara, Oracle and Red Hat. The supported v ...
*
Sun Java System Application Server Platform Edition 9.x
*
Oracle WebLogic Server
Oracle WebLogic Server is a Java EE application server currently developed by Oracle Corporation. Oracle acquired WebLogic Server when it purchased BEA Systems in 2008.
Application Server versions
* WebLogic Server 14c (14.1.1) - March 30, 20 ...
*
JBoss
WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat. WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification. It runs on multip ...
(version 5.x only)
*
TmaxSoft
TmaxSoft is a South Korea-based multinational corporation specializing in enterprise software. It was founded in 1997 by Professor Daeyeon Park, former professor at KAIST (Korea Advanced Institute of Science and Technology). The company is separat ...
JEUS 6.x
The
JAXB
Java XML Binding (JAXB; formerly Java Architecture for XML Binding) is a software framework that allows Java EE developers to map Java classes to XML representations. JAXB provides two main features: the ability to ''marshal'' Java objects in ...
reference implementation developed for Metro is used in virtually every Java Web Services framework (
Apache Axis2
Apache Axis2 is a web service engine. It is a complete redesign and re-write of the widely used Apache Axis SOAP stack. Implementations of Axis2 are available in Java and C.
Axis2 provides the capability to add Web services interfaces to Web ...
,
Codehaus XFire
Apache CXF is an open source software project developing a Web services framework. It originated as the combination of Celtix developed by IONA Technologies and Codehaus XFire, XFire developed by a team hosted at Codehaus in 2006. These two proje ...
,
Apache CXF
Apache CXF is an open source software project developing a Web services framework. It originated as the combination of Celtix developed by IONA Technologies and XFire developed by a team hosted at Codehaus in 2006. These two projects were combin ...
) and Application Servers.
References
External links
*
Eclipse Metroproject as a part of Eclipse Enterprise for Java (EE4J)
{{GlassFish
Web services
Java enterprise platform
Free software programmed in Java (programming language)