Http post vs java client

Hi all,
can anyone please tell me the main advantages and disadvantages of using http post over custom java client to invoke an IS service.
to put in a different way, which method is better to invoke an IS service from a client? HTTP post or using client code generated by developer? in my case the client that needs to invoke the IS service is within the intranet.


Some of the reasons I can think of are :

  1. In a java client you can use guaranteed delivery to retry on failure.
  2. You dont need SSL libraries to setup SSL connectivity. Specially, is you are using client certs http post is not easy to implement.
  3. A java client gives you back an IData object from which you can easily retrieve the results. For an http client you get back a string that you have to parse.
  4. Java clients can automatically reroute to an alternate server in a cluster if the primary server is down. For http clients you would have to custom code this.

Actually both clients do HTTP POSTs! The IS client posts the IData binary directly in the body of the POST so I guess the advantage is not making IS parsing it, and having methods on the API to put or get values from the pipeline.

If integrating resources that already post XML (for example) then you also have the possibility to invoke it.

You can use both…

I have a question about the performance between integration API and HTTP call. Which one would give me faster performance, say calling the same service with the same input/output data?