What are the differences between JAX-RPC, JAX-WS, JAX-RS, Apache Axis, SAAJ, Apache SOAP, JWSDP, Metro, Jersey and GlassFish?
JAX-RPC is a specification/API for Java developers to develop SOAP based interoperable web services. This API is now obsolete, and may be dropped from the next JEE version.
JAX-WS is the successor to JAX-RPC. It requires Java 5.0, and is not backwards-compatible to JAX-RPC. This article describes the high-level differences to JAX-RPC.
SAAJ is another specification/API for using SOAP envelopes with or without attachments. It operates on a lower level than JAX-RPC or JAX-WS, both of which will use SOAP envelopes based on SAAJ if needed.
Apache Axis is an open source implementation of the Java WS APIs for sending and receiving SOAP messages. Axis 1 supports JAX-RPC and SAAJ, while Axis 2 supports SAAJ and JAX-WS.
Apache SOAP was the first SOAP implementation. It is now obsolete, and has been superseded by Apache Axis.
Sun JWSDP - Sun Java Webservices Developer Pack, is an implementation of JAX-RPC, SAAJ and various other XML Java technologies. It is now deprecated in favor of the Metro stack.
GlassFish is the open source JEE reference implementation. As such, it contains implementations of JAX-RS and JAX-WS.
Metro is the SOAP stack used in GlassFish. It supports SAAJ, JAX-WS, WS-Security and other standards.
JAX-RS is the standard Java API for RESTful web services.
Jersey is the reference implementation of the JAX-RS API, as defined in the JSR-311 standard for RESTful web services.
What is REST?
Compared to SOAP, REST is a lighter-weight and less feature-rich approach to building web services. As such, it does not support the infrastructure built on top of SOAP (like WSDL, UDDI and WS-Security).
RESTful Web Services (2007) ISBN 0596529260 Explains the principles of REpresentational STate transfer and Resource Oriented Architecture (ROA). Specifies design procedures for resource URIs and resource (state) representations (XML being only one option). Many examples use Ruby but one example does use the Restlet framework. Also looks at AJAX applications as REST clients. Leonard Richardsons and Sam Rubys posts during the book promotion.
J2EE Web Services (2004) ISBN 0321146182Bunkhouse ReviewAuthor's Blog Examines web service technology in a J2EE 1.4 context. Covers XML, XML Schema, SOAP 1.1, WSDL 1.1, WS-I Basic Profile 1.0a, UDDI 2.0 as general web service standards and the Java APIs using them: (the now dated) JAX-RPC (incl. EJB endpoints), JAXR (level 0), JAXP, SAAJ, SwA; deployment descriptors are also covered.
SOA in Practice: The Art of Distributed System Design (2007) ISBN 0596529554Web page Need an SOA instead of a JaBoWS (Just another Bunch of Web Services)? While not specifically written for web service based SOAs but more towards large distributed systems in general this book presents some of the benefits that you can realize by adopting service-orientation and SOA practices. More importantly it reveals that large distributed systems can turn some common sense best practices established for smaller or component-based systems on their heads (example: the perceived need for a common business object model across the entire system). Interview