space
Home > Proxy Server > Parameter Passing
space
Parameter Passing

Background

Before the DOI® System and CrossRef came into existence, the scholarly publishing community implemented bilateral linking agreements that used parameters (name/value pairs) included in standard URLs to exchange data. This practice enabled them to gather information about requests coming to their sites, such as which other publisher's site a request came from, and from which journal and article. They could then implement special access rules, or establish pricing for their content based on who was requesting it.

At the time that the publishers began using DOI® names, they also began thinking about how DOI names and the DOI System's proxy server could be used to facilitate the exchange of parameters, and remove the need for individual bilateral linking arrangements. A procedure, evolved over several years time, was agreed on by publishers who are now members of CrossRef, implemented in the proxy server, and has come to be called 'Parameter Passing'.

The DOI® System Proxy Server and Parameter Passing

In Parameter Passing, there are two URLs involved, both of which may be query strings and/or include parameters: (1) the resolution request sent by the 'referrer' to http://dx.doi.org/ that has the DOI name, and (2) the URL associated with that DOI name, registered in the DOI System by the 'referent'. Parameter Passing requires joining the query strings of those two URLs together to form an 'out-bound' link. The names of the parameters used in both strings must be unique and defined for all parties. The OpenURL Format was chosen for the URLs because it specifies a set of parameter names that can be used to eliminate the chance of naming conflicts. (See "Parameter Passing Via the DOI System Proxy" for the OpenURL parameters applicable for use in Parameter Passing, and the specific Common CrossRef Parameter Set.)

The DOI System proxy server accepts a resolution request in the form of an OpenURL. (See the separate document OpenURL for more information.) For example:

http://dx.doi.org/openurl?url_ver=z39.88-2003&rfr_id=ori:rid:crossref.org&rft_id= doi:10.1256/003590&rfr_dat=cr_setver%3d01%26cr_pub%3dSource%20Publisher%26cr_work%3dSource %20Journal%20Title%26cr_src%3dSRC-NAME

would be recognized by the proxy server as a Parameter Passing request. It will resolve the DOI name, and then check the domain of the URL against an 'opt-in' list that identifies organizations participating in Parameter Passing.

If the URL is not in the opt-in list, the proxy server will redirect the user's browser to the registered URL. If the URL is in the opt-in list, the proxy server will construct a new URL as follows:

  • Replace the registered URL's domain name and/or port number with different values, if replacements are specified in the opt-in list.
  • Move all the parameters from the in-bound link to the out-bound link, except for the rft_dat parameter.
  • For the rft_dat parameter, if the registered URL is an OpenURL, move the rft_dat parameter to the out-bound link. If it is not already in OpenURL format, hexencode the entire query string in the URL and place it into the out-bound link as the value of the rft_dat parameter.

The referent is assumed to have implemented a service capable of using the nested parameters. The assumption is that by agreeing to participate in Parameter Passing, a publisher will accept any and all parameters identified in the Common CrossRef Parameter Set. Changes to parameters resulting from changes to the OpenURL format, or from changes in requirements of Parameter Passing participants, will be noted in subsequent versions of "Parameter Passing Via the DOI System Proxy".

 
Updated 4 August 2006

DOI® and DOI.ORG® are registered trademarks and the "doi>" logo is a trademark of the International DOI Foundation. Other trademarks may be the property of their respective owners.