Volume 24, No.4 Pages 388 - 393
2. ビームライン/BEAMLINES
所外実験データ転送システムBENTEN
Experimental Data Transfer System BENTEN
(公財)高輝度光科学研究センター 情報処理推進室 Information-technology Promotion Division, JASRI
- Abstract
- SPring-8で計測した実験データを所外からアクセスするための基盤として、実験データ転送システムBENTEN(Beamline ExperimeNTal stations oriENted data transfer system)を開発し、2019年3月より運用を始めました。BENTENはユーザー認証機能を持ち、データを一般に公開する機能(オープンデータ)、および実験課題の共同メンバーのみにデータ共有を行うアクセス制限機能を実装しています。現在、BENTENはBL14B2においてX線吸収微細構造(XAFS)標準試料のデータ公開や、ユーザー実験の計測データへの所外からのアクセスで利用されています。今後は硬X線光電子分光(HAXPES)標準試料のデータ公開を進めるとともに、共用ビームラインの複数の実験ステーションへと展開していき、様々な実験データの利活用を進めていく予定です。
1. はじめに
SPring-8で計測した実験データを所外に転送するための実験データ転送システムBENTENを開発し、2019年3月より運用を開始しました[1,2][1] T. Matsumoto et al.: AIP Conference Proceedings 2054 (2019) 060076.
[2] T. Matsumoto et al.: Proceedings of ICALEPCS (2019), to be published.。本稿では、BENTENによるデータ公開を中心に紹介いたします。
オープンデータとは、データをインターネット上に公開し、誰でも無料で利活用できるようにすることです。近年、科学分野ではマテリアルズ・インフォマティクスなどデータ科学が注目されています。データ科学ではデータから知を創出するため、SPring-8など放射光施設で計測された実験データに関してもオープンにして皆が利活用できる形にすることが強く求められています。
社会的にも公的資金を用いて計測した実験データについては、一定期間後にオープンにすべきとのデータポリシーの考えがあります。ESRFなど海外の放射光施設では計測してから3年後にデータを公開する動きが出てきています[3][3] https://www.esrf.eu/datapolicy。
SPring-8におけるオープンデータの取り組みとしては、BL14B2におけるXAFSの標準試料のデータ公開を2013年よりJASRI産業利用推進室を中心に行ってきました。現在公開しているXAFSの測定データ数は800程度であり、世界第2位の統計量になっています[4][4] K. Asakura et al.: J. Synchrotron Rad. 25 (2018) 967-971.。公開されたXAFS標準試料データは実験計測時の参照資料などで活用されています。
データ公開にあたっては、実験データ転送システムSP8DRを整備し運用を行ってきました[5][5] H. Sakai et al.: Proceedings of ICALEPCS (2013) 577-579.。SPring-8では、遠隔実験や測定代行において実験の共同メンバーのみにデータ共有範囲を制限する利用ケースもあります。このため、SP8DRではシステム利用時にSPring-8/SACLA電子申請システムのアカウント(SPring-8 ID)認証を行い、アクセス制限付きのデータ転送にも対応しています。このSPring-8 IDのアカウント登録は一般に公開されているため、オープンデータに関して誰でもアクセスできるようになっています。
このように実験データ転送システムを運用してきましたが、SP8DRでは1ビームライン単位でシステムを構築する必要性があるなど、導入のためのハードルが高く管理コストがかかること、使い方が難しいなど課題がありました。これらの課題を解消するため、実験データ転送システムBENTENを新規に開発して対応しました。
2. 実験データ転送システムBENTENについて
実験データ転送システムBENTENは、SPring-8の複数の共用ビームラインの実験におけるデータ転送で汎用的に利用でき、かつ簡易に使えるソフトウェアとして開発しました。
BENTENはオープンデータの基盤としても利用できますが、公開したデータを利活用するためには、データ自身がFAIR原則を満たすことが推奨されています[6][6] https://www.force11.org/group/fairgroup/fairprinciples。FAIRとはFindable(見つけられる)、Accessible(アクセスできる)、Interoperable(他施設ともデータの相互運用ができる)、Re-usable(再利用できる)の頭文字をとったものです。よって、データを単に公開するだけでは不十分であり、人がデータを理解して利用できるように、測定条件など充分なメタデータを付加し、データを正規化する必要があります。また、データは機械学習などのAIでの利用も想定されるため、機械可読性を高めることも重要になります。他にも、システム運用時には適切なデータマネージメントを行う必要があります。
このため、BENTENでは以下の要件を満たすように設計しました。
・データ登録やデータ検索、ダウンロードなどの各機能が簡易に利用できること。
・複数のビームラインの実験で利用でき、多種多様な実験データフォーマットに対応できること。
・登録したメタデータ項目を用いて実験データが柔軟に検索できること。
・データのライフサイクル管理(登録、更新、一般公開や限定公開などデータ共有範囲の設定、およびデータ消去)が簡易に行えること。
・データを引用するため、各データセットにはユニークで永続的なPID(Persistent ID)が割り当てられており、また、データの責任者が把握できること。
BENTENソフトウェアはSPring-8以外でも独立にインストールして利用することができます。将来、BENTENはOSS(オープンソースソフトウェア)として提供することで、他の放射光施設でも利用できるようにする予定です。
BENTENシステムの概要を図1に示します。BENTENシステムでは、BENTEN agentのサーバーが、認証、データ登録、データ検索、ダウンロードなど全ての実験データ転送機能へのインターフェースを提供するように設計しました。BENTEN agentでの通信にはWebサービスでよく使われているREST API[7][7] https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htmと呼ばれるhttpに基づくプロトコルを用いており、応答はJSON形式で行います。BENTEN agentはPythonによるWebフレームワークであるDjango[8][8] https://djangoproject.comを用いて構築しました。インターフェースをREST APIで統一することで、Webポータルや、他のユーザーアプリケーションで簡易に利用することができます。REST APIの機能を簡易に利用するためPython APIも開発しました。データ登録はPython APIを用いて作成されたコマンドを用いて簡易に行うことができます。所内外からのデータアクセスはDjangoで構築されたWebポータルから行います。データアクセスにPython APIを利用することもできますが、セキュアなデータアクセスのため、現在のところ利用は所内に限定しています。
BENTENシステムでは、ユーザー毎に適切なアクセス制限を行うため、利用にあたっては始めに認証が必要になります。データ登録時にはビームラインのアカウント、データアクセス時にはSPring-8 IDのアカウント認証が必要です。認証には、近年クラウドでの認証でもよく使われているOpenID Connect 1.0[9][9] http://openid.net/connect/を用いています。
図1 BENTENシステムの概要
2.1 データ登録
データ登録の際は、図1に示すように、実験データに対してメタデータが記述されたファイルを作成し、これらのファイルを纏めてBENTENシステムに登録します。
様々な実験データの利活用を効率的に行うためには、共通データフォーマットを定義し、そのフォーマットに従って実験データを記録することが望まれます。海外施設ではNeXus[10][10] https://www.nexusformat.orgと呼ばれるHDF5[11][11] https://www.hdfgroup.orgによるデータコンテナをベースとして作られたデータフォーマットで標準化する方向で進んでいます。しかし、日本ではデータフォーマットの標準化は進んでおらず、各実験で様々なデータフォーマットが使われています。
このため、実験データはそのままの形で扱い、メタデータ記述をJSON形式のデータフォーマットで統一する手法を採用しました。JSONは人の可読性や機械可読性に優れたテキストベースのデータフォーマットです。メタデータ項目はサンプル、測定パラメータ、装置などカテゴリに分類して定義しています。メタデータ項目の例を表1に示します。階層構造を持つデータにも対応できるように、異なる文節を“@”でつなげる形でメタデータ項目名を定義しています。
項目名 | 説 明 | 値の例 |
@subject@correspondance | Contact name | Takahiro Matsumoto |
@subject@correspondance@affiliation | Affiliation of contact name | JASRI |
@subject@proposal_number | proposal number | 2014S0000 |
@subject@pid | Persistent ID | spring8.784d08a8-f39a-4ba0-ac13-6440688b54fd |
@measurement@method | Measurement method | XAFS |
メタデータ項目は、実験により様々な項目があり、これらを柔軟に定義する必要があります。このため、メタデータを管理するデータベースにはElasticsearch[12][12] https://www.elastic.co/products/elasticsearchを採用しました。Elasticsearchはスキーマレスのデータベースであり、必要に応じてメタデータ項目を随時追加することができます。また、全文検索にも対応しており、柔軟にデータ検索をすることができます。
メタデータの記述にあたっては、必須の記述項目をいくつか定義しています。最も重要なメタデータ項目は課題番号です。課題番号は実験課題毎に割り当てられますが、実験課題の共同メンバーも課題番号と関連付けて課題データベースに登録しています。よって、課題番号を用いることで、実験課題の共同メンバーに限定したデータアクセスが実現できるように設定できます。このように、課題番号は実験データの共有範囲を決める側面もあるため、極めて重要なメタデータ項目です。
その他は、データ公開・非公開のアクセス条件を示すフラグも必要になります。データを公開する際には、データの責任者とその所属を設定することが必要になります。
このシステムでは、1データセットとして、複数のデータファイルと複数のメタデータのファイルで構成されることを想定しています。以下に、データ登録における1データセットのファイル構成例を示します。
・<X>.json, <X>.system.json, <X>.user.json, …
・<X>/AAA.csv, <X>/BBB.tiff, …
ここで、<X>はデータ登録時に指定する登録名です。この際、“<X>.”で始まる同名ファイルが1つのデータセットとみなされます。メタデータを示すファイルにはjsonの拡張子が付いています。メタデータは用途毎に生成することもあるため、複数のメタデータファイルが登録できるようにしています。また、<X>のディレクトリを作成し、ディレクトリ以下のファイルを登録対象とすることもできます。ディレクトリは複数の実験データファイルをまとめて登録する際に利用できます。
データ登録後、データセットのコンテンツを更新する際は実験データやメタデータファイルの内容を更新して再登録します。
このように、データ登録・更新はファイルをベースに手続きが可能であり、データベースを直接編集する必要はないため、簡易に利用することができます。
2.2 データアクセス
データ登録後は、図2に示すように、所外からWebポータル経由でデータにアクセスできます。利用の際は、SPring-8 IDのアカウントでの認証が必要になります。なりすましによる不正アクセスを防ぐため、2要素認証を実装しています。アカウントでのログインの後、利用にあたってはメールアドレスによる本人同意が必要になります。
図2 BENTEN Webポータルでのデータアクセス例
図2の左側には認証したアカウントでアクセス権のあるデータのディレクトリツリーを表示しています。ここでディレクトリ構造は以下の形をとっています。
・/<施設名>/<分類名(ビームライン名など)>/<ディスク名>/ …
図2の例では、施設名がSPring-8、分類名がBL14B2になっています。このようなディレクトリ構成をとることで、複数施設、およびビームラインのデータを一元的に扱うことができます。分類名の下は、用途毎にストレージ領域を分けてデータ管理するため、ディスク名のディレクトリを設置しています。図2ではXAFS標準試料を扱うため、ディスク名にStandardを設定しています。
ディスク名の下は、各ビームラインでのストレージ領域がそのまま見える形にしています。これにより、ユーザーが管理しやすい形でデータ公開をすることができます。
データの検索は、ディレクトリツリーをたどることにより行うこともできますが、登録されたメタデータ項目を用いて横断的にデータ検索することもできます。
図2ではZrの試料名を指定して全文検索を行っています。検索にマッチしたファイルは図2の右上にリストされます。それぞれのファイルを選択すると、図2の右下にデータに基づくメタデータ項目とその値のリストを閲覧することができます。データは、ファイルやディレクトリを指定し、zipファイルでまとめてダウンロードできます。
3. SPring-8におけるBENTEN利用
BENTENは2019年3月よりSPring-8で運用を開始しました。所外からの実験データアクセスのためのWeb portalも設置しています[13][13] https://benten.spring8.or.jp。
BENTENはSPring-8の共用ビームラインで汎用的に活用できますが、BL14B2における旧実験データ転送システムSP8DRの更新を最初のターゲットとして利用整備を進めました。現在、BL14B2でのBENTEN利用は試験中ですが、既に本番環境としても利用できる形で運用を行っています。
BENTEN運用を行うにあたり、データ共有範囲を管轄する課題番号をどのように正確に定義するかが大きな課題になりました。これを解決するため、課題番号発行機を開発し対応しました。
課題番号発行時は、ビームラインスタッフがユーザーにUSBデバイスを貸与します。ユーザーは課題番号発行機にUSBデバイスを差し込むとともに、ユーザーカードをカードリーダーにかざします。その後、課題番号発行機ではユーザーに紐付く課題番号リストが表示されます。ユーザーが対象の課題番号を選択するとUSBデバイスに課題番号が保存されます。次に、ユーザーは課題番号発行機からUSBデバイスを取り出し、実験計測の計算機に差し込むことで、課題番号をメタデータとして入力することができます。このように、USBデバイスに物理的に課題番号情報を保存し、利用することで間違って課題番号を設定することを防ぐようにしました。
BL14B2では、ユーザー実験においてBENTENシステムを自動測定で利用できるように調整し、運用を開始しました。自動測定で利用するため、メタデータは課題番号の他はほとんど定義されていませんが、所外から実験課題の共同メンバーのみに制限してデータアクセスができるため、便利に活用されています。
また、XAFS標準試料のデータ公開も開始しました。XAFS標準試料に関しては、オープンデータで活用するため、充分なメタデータを入力してオフラインでデータ登録しています。なるべく効率よくメタデータ入力を行うため、メタデータ項目の多くは自動抽出しています。サンプル情報や測定条件、測定器のパラメータの一部など自動抽出が難しい項目に関しては手動でも登録して対応しました。
図3にBENTEN WebポータルにおけるXAFS標準試料のデータアクセスの例を示します。データセット毎にサムネイルを付加することで、メタデータ項目のリストとともに閲覧することができます。
図3 BENTEN WebポータルにおけるXAFSスペクトルのサムネイル表示例
4. まとめと今後の予定
本稿では、BENTENにおける所外実験データ転送について紹介しました。BENTENは放射光実験のデータ転送において汎用的、かつ簡易に利用できるソフトウェアとして設計しました。
2019年3月よりSPring-8でBENTENの運用を開始し、XAFS標準試料のオープンデータやBL14B2でのユーザー実験におけるアクセス制限付きのデータ転送で活用されています。
今後はSPring-8の共用ビームラインでの利用展開を進めていく予定です。現在は、HAXPESの標準試料のデータ公開や、CT計測での画像データの遠隔からのアクセスなど整備を進めています。
謝辞
BENTENの開発および運用を進めるにあたって、JASRI産業利用推進室の方々には多大なご協力を頂きました。この場を借りてお礼を申し上げます。
参考文献
[1] T. Matsumoto et al.: AIP Conference Proceedings 2054 (2019) 060076.
[2] T. Matsumoto et al.: Proceedings of ICALEPCS (2019), to be published.
[3] https://www.esrf.eu/datapolicy
[4] K. Asakura et al.: J. Synchrotron Rad. 25 (2018) 967-971.
[5] H. Sakai et al.: Proceedings of ICALEPCS (2013) 577-579.
[6] https://www.force11.org/group/fairgroup/fairprinciples
[7] https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
[8] https://djangoproject.com
[9] http://openid.net/connect/
[10] https://www.nexusformat.org
[11] https://www.hdfgroup.org
[12] https://www.elastic.co/products/elasticsearch
[13] https://benten.spring8.or.jp
(公財)高輝度光科学研究センター 情報処理推進室
〒679-5198 兵庫県佐用郡佐用町光都1-1-1
TEL : 0791-58-0980 ext 3270
e-mail : matumot@spring8.or.jp
(公財)高輝度光科学研究センター 情報処理推進室
〒679-5198 兵庫県佐用郡佐用町光都1-1-1
TEL : 0791-58-0980 ext 3912
e-mail : yokota@spring8.or.jp
(公財)高輝度光科学研究センター 情報処理推進室
〒679-5198 兵庫県佐用郡佐用町光都1-1-1
TEL : 0791-58-0868
e-mail : matusita@spring8.or.jp