How does a standalone handle server work?

95 views
Skip to first unread message

Gary Browne

unread,
Feb 2, 2020, 4:53:45 PM2/2/20
to DSpace Technical Support
Hi all,

I'm not after a "how to" here, rather a conceptual/technical description of how a set up with CNRI handle.net, a standalone handle server with the https://github.com/DSpace/Remote-Handle-Resolver plugin, and DSpace (with its in-built handle server) works together to resolve handles to a DSpace URL.

If anyone can shed some light, it would be very much appreciated.

Thanks,
Gary

Gary Browne

unread,
Mar 4, 2020, 6:59:29 PM3/4/20
to DSpace Technical Support
Hi all,

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. 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 (and my knowledge is muddy here) where the handle server on the DSpace server (by some process unknown to me) 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.

Is that close?

Thanks a lot,
Gary

Mark H. Wood

unread,
Mar 5, 2020, 10:06:04 AM3/5/20
to DSpace Technical Support
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
signature.asc

Gary Browne

unread,
Mar 5, 2020, 5:31:22 PM3/5/20
to DSpace Technical Support
Hi Mark,

This is perfect, exactly the information I was after!

Thanks a bundle (if you'll pardon the DSpace pun).

Cheers,
Gary

Gary Browne | Digital Services Engineer
Digital Services, The University of Sydney Library
Rm 110 Fisher Library F03 | The University of Sydney | NSW | 2006
+61 2 9351 5946 | +61 405 647 868
gary....@sydney.edu.au | library.sydney.edu.au <https://library.sydney.edu.au/>
We acknowledge the tradition of custodianship and law of the Country on which the University of Sydney campuses stand. We pay our respects to those who have cared and continue to care for Country.
CRICOS 00026A
This email plus any attachments to it are confidential. Any unauthorised use is strictly prohibited.
If you receive this email in error, please delete it and any attachments.
Please think of our environment and only print this email if necessary
Sent from my plain old desktop computer
--
All messages to this mailing list should adhere to the DuraSpace Code of Conduct: https://duraspace.org/about/policies/code-of-conduct/
---
You received this message because you are subscribed to a topic in the Google Groups "DSpace Technical Support" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dspace-tech/mB0CnC6Hh8M/unsubscribe.
To unsubscribe from this group and all its topics, send an email to dspace-tech...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dspace-tech/20200305150327.GB26670%40IUPUI.Edu.


Reply all
Reply to author
Forward
0 new messages