On Tue, Oct 30, 2001 at 10:46:24PM -0000, Matthew Dovey wrote:
> The approach I've outlined would work using the Apache SOAP/Java toolkit
> although the database would be determined by the URN defined in the
> deployment descriptor which is passed in the SOAP request as the HTTP
> HEADER SOAP-Action.
While this should work, it seems messy to me. If you have lots of
arguments passed in a SOAP request, why put some information here
and some information there?
But I agree, its a tricky one. How much of Z39.50 do you make available?
For example, the current scheme seems to rule out cross database
searching. There can only be one database selected. Z39.50 allows
an array of database names to be specified which ZNG is explicitly
disallowing. The URL form for requests may find this difficult.
The SOAP RPC encoding would find it trivial.
It also means you need a different WSDL file per database you want
to talk. Many clients pre-compile the WSDL file. The SOAP-Action is
normally taken from the WSDL file. So using SOAP-Action to pick
the database means you cannot write a generic library (using some
of the SOAP toolkits) that takes database name as an argument.
But then what about server name - should you be able to select
a server and database to search? Should these be parameters to requests
too? Or hard coded into a client library? My current implementation
ended up getting the Z39.50 server name and database name from the
end point URL. My toolkit does not support using SOAP-Action for
this sort of dynamic parameter passing.