Re: data transport



RedGrittyBrick wrote:
Arne Vajhøj wrote:

Web services has somehow gotten the reputation of being complex
in the Java world.

Not very justified in my opinion.

In a J2EE 1.4 and higher app server you just add a few lines
to a deployment descriptor and voila a web services is created.

In Axis 1.x you just rename a class file from .java to .jws and
sump it into the Axis web app and voila it is a web service.

Ofcourse if people start wanting to write and read XML manually
it soon becomes complex.

But they should not.


I think you're describing developing a web service given a certain toolset that implements the standards.

The standards themselves *are* complex. The set of Java classes that implement those standards *do* form a quite large and complex API.

Yes.

Using web service toolkits are simple.

Creating one is work - a lot of work !

My irritation with Web-services in Java is from implementing JSE clients not JEE servers. For this the developer toolset seems much more complex.

Is it ?

You give your IDE the URL of the WSDL, it generates a stub class
and you call that.

JBuilder, Eclipse, Visual Studio etc..

* There isn't a set of web-service classes for clients included in JSE 1.6 (AFAIK).

I thought WS client support was in 1.6 as well.

* Hence you have to evaluate and select a toolkit to use. I found this non trivial. Axis, XFire/CXF, ...

We like Java because we have choices.

We hate Java because we have choices.

* As soon as you want to use something like WS-Security with PKCS12 files, I find things get more complex for the developer. WSS4J, ...

True.

But I do not consider it surprisingly that doing complex stuff becomes
complex.

Using web-services should give you significant benefits but in many cases it does not. A small change to the interface will result in a new WSDL or whatever and your old server or old client will not simply ignore a new extraneous XML element received. This may be a good thing but it makes it harder to build in flexibility and backwards-compatibility.

Part of the problem with CSV (say) is having both ends agree on the implicit meaning of the columns. The tagnames in XML should overcome that issue but in practice they do not. Inserting a new column in CSV requires that both ends definition be updated. Inserting a new element in XML also, in practice, seems to require that both ends are given an updated XSD, WSDL or other definition and rebuilt. XML ought to be more self explanatory than CSV (or JSON) but in practice it is equally useless without an external definition in XSD or some other form.

For CSV you need to modify the code.

For XML you just need to rebuild (whicg regenerates the stub).

And there are versioning patterns that can be used to reduce
the problem.

Arne
.



Relevant Pages

  • Re: Java Web Services: what tools do I need?
    ... World" web service. ... Do I need an applications server -- or will Apache + Tomcat be OK? ... Server which supports Java Servlet technology like Orion, Jetty, ... Webservice framework you want to work with: ...
    (comp.lang.java.programmer)
  • HttpWebRequest adding junk characters
    ... I am trying to invoke a remote Web Service that accepts XML data over https ... but the server is returning a "The data at the root level is invalid. ...
    (microsoft.public.dotnet.framework.aspnet.webservices)
  • Re: data transport
    ... in the Java world. ... My irritation with Web-services in Java is from implementing JSE clients not JEE servers. ... A small change to the interface will result in a new WSDL or whatever and your old server or old client will not simply ignore a new extraneous XML element received. ...
    (comp.lang.java.programmer)
  • Re: Receiving xml problem
    ... I dont have an answer for you, but theres an example here that accepts XML ... data as a post submission and deserializes it in a web service. ... > The remote server returned an error: ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Pushing data from the server to the client
    ... have data pushed from the Java webservice to your client? ... > information on the client machine, and it's never any older than ... So I mocked up a facade web service on my side in .NET ... > the remoting dll on each client machine and the stub on the server. ...
    (microsoft.public.dotnet.languages.csharp)