HOBIT Statuscodes
In general a WebService is a synchronous data exchange service of two points connected via a network. This
means after a short time (less than the http timeout, which normally is 300 seconds)
an answer of the WebService server is required.
Bioinformatic programs normally run much longer than five minutes. To avoid problems
with timeout and changes of IP-Address client, HOBIT recommends a technique called
Request and reply with polling: First the client side submits a job with the required
data (program parameters and data etc.) and immediately gets an id after the job was
started which normally takes some seconds (name convention request).
Afterwards the client side is able to get the result using this id. If the computation of the program is not finished, the client side gets back a code with enhanced information.
Otherwise the result of the call is returned (name convention response).
Afterwards the client side is able to get the result using this id. If the computation of the program is not finished, the client side gets back a code with enhanced information.
Otherwise the result of the call is returned (name convention response).
This polling technique completely avoids problems with timeouts. The client side can
even request the results hours or days later or from another host, just with knowledge
of the id. Although there are asynchronous WebService projects, they have hard
restrictions.
Statuscode and description should be represented within the detail part of a SOAP Fault Message as according to hobitStatuscode.xsd.
This could be easily evaluated by all SOAP implementations.
A up-to-date list of HOBIT-recommended statuscodes is located here.
based on diploma thesis of Henning Mersch:
BiBiWS - Ein Framework für die Entwicklung asynchroner WebServices auf dem BiBiServ