Scott,

That's a tall order. There's lots to say about this space, and it won't be 
contained in one web page. Can't help you with the Xanax, but I can give you 
the brief tour of WS in Java. Here goes...

1. At the high level, your first decision is SOAP vs. REST. REST implies POX 
(plain old XML)--though it's not necessarily the case, that's the way the 
majority of RESTful services are developed. SOAP is just a message format, but 
all of the WS-* standards (and there's a lot of them) and WSDL (at least until 
v.2.0) revolve entirely around using SOAP; hence the perceived complexity 
because there's more to learn. REST has less structure, so it can be simpler 
when developing simple web services; however, if you have other requirements, 
such as security or policy, going with REST could be more difficult and 
error-prone than SOAP. It's over-simplifying a bit, but the distinction can be 
summed up as "go with the standards" in SOAP or "roll your own" with REST. 
Taking a look at some of the more popular web services from Google, Amazon, 
etc. may give you a better feeling for this.

2. Your second decision is going to be which Web Services stack to use. In 
Java, the major ones are Apache Axis 2.0, Apache CXF, Spring Web Services, and 
the JAX-WS reference implementation (on java.net). You'll have to match their 
features against your requirements to see which one fits you best. There's a 
fair amount of overlap in features (and even in the 3rd party libs they use), 
but there are significant differences as well. I'd recommend not using Axis 1.0 
at this stage, since it is about 4-5 times slower than the newer stacks under 
load.

3. JAXB is simply a framework for XML-Java binding, one among many: JiBX, XML 
Beans, Castor, ADB, etc. Which one you use may be decided by which one(s) the 
stack in #2 you choose supports (you'll choose JAXB, for example, if you use 
Sun's JAX-WS reference implementation), but all except JAX-WS RI support more 
than one binding framework.

4. XML Schema is the standard way of defining XML types in SOAP/WSDL, but there 
are others. In WSDL 1.2 and 2.0, for example, you 
can(http://www.w3.org/TR/wsdl20-altschemalangs/) use Relax NG, but--practically 
speaking--XML Schema rules the roost here.

5. Most WS frameworks (from #2) support two basic styles of development: 
top-down (write WSDL, generate Java--WSDL2Java, for instance) and bottom-up 
(generate WSDL and other artifacts from your Java code). I prefer the first, 
but bottom up may be simpler if you are just starting out, esp. if you already 
have code that you are adding a web service to. JSR-181 (JAX-WS) is 
particularly nice for this approach, since you just add annotations to your 
existing code.

6.  If you must buy a book, don't buy anything that's been published more than 
a year ago. The landscape has changed a lot in the last year or two. One of my 
favorites, "J2EE Web Services" by Richard Monson-Haefel, is already 
out-of-date. 

Well, that's it for the nickel tour. The brush strokes are pretty broad here, 
but I hope I've given you a better idea.

Brennan
  ----- Original Message ----- 
  From: [EMAIL PROTECTED] 
  To: axis-user@ws.apache.org 
  Sent: Monday, April 28, 2008 4:37 PM
  Subject: The WS Crazy Train!


  Can someone either provide me a URL for xanax or a site that explains the 
interplay between SOAP/JAXB/WSDL/Schema/blah, blah, yada. yada? I am trying to 
figure out what is actually necessary to produce & consume web services in Java 
and I am hearing that many of these technologies are optional!  In fact, today 
it was decided that WSDL2Java produced too many artifacts and that writing web 
services could be much simpler.  How do RESTful web services play into this 
mix, and what are the pros/cons to the permutations of ws stacks?  I would 
gladly throw down my AMEX if someone can recommend a good book/resource that 
might clear this confusion.

  Peace,
  -- 
  Scott
  [EMAIL PROTECTED] 

Reply via email to