DOI® HANDBOOK

5.3 DOIリゾルバ

  1. DOIハンドブック
  2. 第5章 DOI識別子/解決サービス
  3. 5.3 DOIリゾルバ

DOI®システムのコア解決サービスを利用するためには、DOIリゾルバが必要です。DOIリゾルバは、Handleシステム®のクライアントです。

5.3.1 DOIプロキシ

DOIシステムのHTTPSプロキシサーバー(https://doi.org)を使うことにより、ユーザーは標準的なウェブブラウザからURL構文を使ってDOI名を解決することができます。例えば、DOI名「10.10.123/456」は、アドレス「https://doi.org/10.123/456」から解決できます。

注:初期のプロキシアドレス(https://dx.doi.org)も維持されていますが、使用は推奨しません。

DOIプロキシサービスの特徴

DOIプロキシはIPv6でアクセスでき、DNSSECをサポートします。

DOIプロキシは、複数の場所で稼働する複数のサーバーで構成され、負荷はすべてのサーバーに均等に分散されます。

注:コアDOI名解決サービスをDOIプロキシによって使用されますが、DOIプロキシの制約は受けません。

DOIプロキシの解決機能

DOIプロキシはDOIのシングルレゾリューションとマルチプルレゾリューションをサポートします(5.4 DOI解決機能参照)。

解決プロセスは、以下のとおりです。

  1. DOIプロキシはHTTPSまたはHTTPのDOI名解決リクエストをリクエスタから受け取ります。リクエストフォーマットはhttps://doi.org/<doi-name>?<parameters>です。詳しくは10.3 DOIプロキシのクエリコマンドフォーマットを参照してください。
  2. DOIプロキシがDOI名の解決をGHRにリクエスト(あるいは、レコードがキャッシュにあり、権威クエリ(authoritative query)が行われない場合には、キャッシュから取得)すると、GHRがそれを担当のDOI LHSにリダイレクトします。解決リクエストを送る前に、必要に応じてDOIプロキシはパーセントエンコードされたDOI名をデコードします(10.2.2 URLで使用する際のDOI名のエンコーディング参照)。
  3. 担当のDOI LHSはDOIレコードをDOIプロキシに返します。
  4. DOIプロキシが実行するアクションはクエリパラメータに依存します。通常のプロセスは次の通りです。
    • DOIレコードが10320/loc要素を含む場合、DOIプロキシはそのXMLコードを解釈し、リダイレクトするHTTP(S)にその結果のURLを埋め込み、リクエスタに返します(5.4.2 DOIマルチプルレゾリューション参照)。
    • そうでない場合、DOIプロキシはリクエスタをDOIレコードで最初に見つかったURL値にリダイレクトします(5.4.1 DOIシングルレゾリューション参照)。

注:解決を高速化するため、プロキシサーバーはDOIレコード値をキャッシュし、TTL(有効期限)を1時間に設定しています。つまり、DOIレコード値が変更された場合に新しい値が返されるまでに最大1時間かかることを意味します。この設定は現在のプロキシシステムに固有のもので、異なるDOIソフトウェアクライアントは異なる動作をするように設定される可能性があります。デフォルトのHandleレコードTTL設定は24時間で、これはインターネットアプリケーションの一般的なTTLです。現在DOIプロキシでは1時間の設定が維持されていますが、より慎重な「24時間」設定を想定して様々なDOIワークフローを設計するのが最善でしょう。

DOIプロキシの保守・維持の取り組み

DOI技術サポートサービスプロバイダーとDOI財団は、DOIプロキシを永続的に保つことに注力しています。これがDOI名方式ウェブリンクの何百万にも及ぶインスタンスの整合性を維持するために不可欠な要素となるからです。それらのリンクの有用性を長期間にわたって維持するには、コアDOIシステムと、それらのリンクが参照し、コアDOIシステムへのアクセスを得るために使用するゲートウェイサービス(doi.org)の両方を維持する必要があります。もちろん、これは何ら特別なことではなく、サービスを重ね合わせるインターネットのテーマのバリエーションにすぎません。doi.org自体はドメイン名システム(DNS)に依存しており、DNS自体はIPアドレッシング/ルーティングなどに依存しています。

5.3.2 カスタムDOIリゾルバ

DOIプロキシの運用に一切支障をきたすことなく、追加のDOIリゾルバを構築し、追加の方法を用いてコアDOI名前解決システムにアクセスすることも可能です。詳細については、7.5 DOIリゾルバの開発を参照してください。

5.3.3 DOI REST API

DOI REST APIは、HTTP(S)を使用しDOI名解決サービスへのプログラムでのアクセスを可能にします。REST APIリクエストは標準的なHTTP GETを実行することによって作成できます。APIはJSON形式で応答します。

DOI REST APIは、Handleシステムを使用に関する仕様を提供しますが、ユーザーがハンドルシステムを直接かつ詳細に操作する必要がありません。このAPIは、DOIシステムのサービスやアプリケーションに対応するために作成されたコードの移植性を保証します。

技術的な詳細については、10.4 DOI REST APIのリクエスト(要求)/レスポンス(応答)フォーマットを参照してください。

注:Javaに加えて、Python、Perl、C用のAPIライブラリも用意されています。