Sunday, September 28, 2008

Programming Java Web Services

For someone who is a total newbie to the world of Java Web Services(JWS), here's a list of the different JSRs/standards within the realm of JWS that are available with Java EE 5 and Java SE 6. They all have a particular purpose in the whole orchestration of JWS.
  1. JAX-WS 2.0 (Java API for Xml-Web Services) - specified by JSR 224.
  2. This was formerly JAX-RPC 1.1. JAX-RPC 1.1 was a standards-based implementation, but the binding and parsing layers underneath it were proprietary. When JAX-RPC 1.1 needed a major overhaul, the next JAX-RPC version would have been JAX-RPC 2.0 But the industry evolved more than just doing RPC-style web services. So to accommodate the message-style web services as well, which are becoming more and more common, "RPC" was dropped to become a more general JAX-WS 2.0
  3. JAXB 2.0 (Java API for Xml Binding) - specified by JSR 222.
  4. This specification defines and nominates JAXB as the default mechanism for serializing and de-serializing the XML messages contained within the SOAP message and Java objects. There are sure other ways to do this job via other Java-XML binding mechanisms - like XMLBeans, JiBX, Castor etc. But the JWS specs (defined by Sun) decided to make JAXB 2.0 as the "default" standard.
  5. WS-Metadata 2.0 (Web Services Metadata) - specified by JSR 181.
  6. Deploying Web services is quite a feat. One would normally require a set of deployment descriptors a la typical J2EE applications. But from Java EE 5 onwards, we now have web services-specific metadata annotations to achieve the deployment.
  7. WSEE 1.2 - Web Services for Java EE - specified by JSR 109.
  8. This defines the program model and run-time beahvior of Web Services in the Java EE container.
All these standards can be complex to understand at first, and after surfing a lot on the web for an in-depth perspective, I have finally landed on the book "SOA Using Java Web Services" by Mark D. Hansen.

3 comments:

Anonymous said...

so REST based Webservices are not involved?!

Suneel said...

You may want to add Java REST WebServices - JSR 311 and Project Jersey

kk1010 said...

Thanks about REST. Though aware of REST, I almost forgot that one, being totally engrossed in SOAP services for the moment. I will update my post shortly.