On Wed, Mar 04, 2020 at 03:59:29PM -0800, Gary Browne wrote:
> How about I describe what I *think* happens, and you can tell me where I'm
> wrong, where I'm right (if anywhere!) and anything I'm missing?
>
> A user issues a request in a browser for something like
>
https://hdl.handle.net/2123/21886 , which sends a HTTP request to
>
hdl.handle.net. At CNRI, the
handle.net proxies or root handle service
> resolve the handle prefix to a homed handle server and forward the request
> (UDP on port 2641?) on to it.
Yes, so far this is the way Handle always works.
> In this case, this is our standalone handle
> server homed to 2123. The Remote-Handle-Resolver plugin in turn forwards
> the request on to the DSpace server
Correct so far.
> where
> the handle server on the DSpace server (by some process unknown to me)
Nope, there is no Handle server on the DSpace server -- or, there need
not be one. The Handle resolver plugin sends an HTTP request to
DSpace's web UI (/handleresolver/resolve/**), which dispatches it to
org.dspace.app.xmlui.aspect.handle.HandleResolverReader, a Cocoon
Reader. This generates the HTTP response body by calling the
HandleService to look that handle up in the database's handle table,
composing the result into a JSON object, and returning it to the
plugin.
> resolves the handle to a URL from the database. The DSpace server then
> issues this HTTP response back to the requesting client with a DSpace URL.
It is the (remote) Handle server which responds to the request with a
redirect to the DSpace GUI, having received the URL from DSpace.
This is similar to the way that Handle resolution always worked in
DSpace, except for the insertion of a kind of remote procedure call
machinery which allows the Handle and DSpace services to communicate
between separate hosts via network, instead of the Handle server just
querying the database itself.
--
Mark H. Wood
Lead Technology Analyst
University Library
Indiana University - Purdue University Indianapolis
755 W. Michigan Street
Indianapolis, IN 46202
317-274-0749
www.ulib.iupui.edu