Integration of the bioinformatics web services
http://togows.dbcls.jp/entry/database/entry_id[,entry_id2,...]/field[.format]
TogoWS リソース
これまでに開発された TogoWS 関連リソースです。
Towards an integrated web service in life science
統合ウェブサービスのプロポーザル
平成19年度に TogoWS を開発するにあたり作成したプロポーザルです。
国内外のウェブサービスを統合的・安定的に利用するためのサーバ構築
バイオインフォマティクスの様々なデータベースやツールが SOAP/WSDL による ウェブサービスによって公開されるようになってきている。日本は、DDBJ XML (WABI) や KEGG API、PDBj など、この分野でのウェブサービスの提供で世界の先陣を切っていたが、その後のサービスの増加や普及には繋がっていない。ワークフローの構築を考えた場合、ウェブサービスだけで実現可能な範囲がまだ狭いのも一因と考えられるが、それ以前の問題としてウェブサービス利用環境の不備も理由として考えられる。
一方、海外では、EBI や NCBI においてウェブサービスの開発が進められるとともに、英国・欧州の myGrid プロジェクトや、カナダ・米国の BioMOBY プロジェクトなどにより、世界中で公開されている数十のウェブサービスを統合的に利用するためのインフラ整備がきわめて精力的に行われており、この分野の統合は SOAP/WSDL で進められる気運である。
この際に問題となってきているのが、サービスプロバイダごとの仕様や命名規則のバラツキと、受け渡しされるデータ構造が標準化されていないこと、計算に時間がかかる場合やデータが巨大な場合のタイムアウトに対する処理が統一されていないことなどである。さらに、サービスが一時的に利用不可能だったり処理に失敗した場合などの挙動もサーバ依存である。また、これら多くの仕様は十分にドキュメント化されていない。そのため、これらのサービス毎に異なる使い方の違いや、データ型変換、例外処理を利用するユーザが個々人で対応することは非効率であり、普及の妨げとなっている。
このため、ライフサイエンス統合データベースセンターでは、国内外のウェブサービスを対象として、それぞれの使い方とデータ型を調査し、手始めに命名規則や使い方が統一されたプロキシー的なサービスを提供したい。この際、
といった点を考慮したいと考えている。
これらを実現することにより、多くの研究者に使いやすい環境を提供できるだけなく、ライフサイエンス統合データベースセンターとの連携で CBRC において構想されているワークフロー構築のためのインフラとして機能することができ、結果的に、ライフサイエンス統合データベースセンターと国内の様々なウェブサービスプロバイダ、それぞれのアクセス数が共に向上することが期待される。また、国際的にも日本の有用なリソースが活用されることにより高いプレゼンスを示すことができると考えられる。
一方で、サービスの種類や質の増加も課題であり、ライフサイエンス統合データベースセンターで開発される様々な統合データベースやサービスに対するウェブサービスの提供も並行して進めていくのが良いと思われる。
方法
ウェブサービスを統合的に利用するための環境は、CBRC によるワークフロー構築計画の他、myGrid による Taverna をはじめ様々なものが開発されてきているため、ここではあくまでも使いやすい統合的なウェブサービスのサーバを提供することに注力する。そこで、
といった点を勘案すると、SOAP/WSDL が安定的に利用できる言語・ライブラリ環境が必要となり、候補として考えられるのは以下の言語環境である。
Java
Ruby
Perl
Python
C++
現実的には、この中で Java か Ruby を採用するのが良いと思われるが、データの型変換にはバイオインフォマティクスに特化したライブラリの再利用が可能であり、
といった点を考え、対案がなければ Ruby を採用したい。
技術的な課題としては、時間のかかるサービスも多いため、ジョブIDによる管理システムの構築を含めたタイムアウトの処理と、どこまで巨大なデータを転送することができるか、という点にチャレンジがある。
必要な人材
SOAP/WSDL と Ruby (Ruby on Rails, ActionWebService, SOAP4R) に詳しく、DDBJ XML, KEGG API, PDBj, EBI, NCBI の各ウェブサービスを使うことができ、日本語、英語ともにドキュメントの読み書きが堪能で、他のチームとのコミュニケーション能力が高く、開発が迅速でかつ、メンテナンスの容易なきれいなコードを書くことができる人。
必要な機材
最終的には月間数千万アクセス以上をさばけるもの。