BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Microsoft Biology Foundationに関するMonoの互換性レポート

Microsoft Biology Foundationに関するMonoの互換性レポート

原文(投稿日:2010/08/03)へのリンク

Microsoft Biology Foundation は、 “ Microsoft .NET Frameworkの拡張として作成された言語非依存な生物情報科学のツールキットで、当初はゲノム科学研究の分野を対象としていた。現在、このツールキットは、生物情報科学において一般的なファイルフォーマットのパーサーや、DNA・RNA・ タンパク質構造を扱うアルゴリズムや、NCBI BLASTなどの生物学Webサービスへの接続インターフェースを実装している。 ” と説明されている。

Microsoft Researchは、このツールがサードパーティベンダのものと互換性を持つようにするという全体的な公約をしていたが、人員の問題により、SilverlightやMonoをサポートするようにリファクタリングする計画が実施できなくなった。Michael Zyskowskiは次のように書いている。

MBFの開発中、私たちは.NET 4.0に強く依存することを決定しました。特に、Parallel Extensionsを使用することで、配列のアラインメントやアセンブリングの実行時にマルチコアをより効率的に使うことができるようになりました。SL4の能力についてはあまり理解していませんでした。それで実質的に、MonoやSL4でも動作するサブセット機能を前提としたフレームワークの準備よりも、.NET 4の機能セットを最大限に活用することを選択したのです。私たちはSL4の互換性に関する再検討を固く決意しました(.NET 4.0 クライアントプロファイルのサブセットについても同様です)。フレームワークをリファクタリングして、それぞれに対応したMBF バージョン1アセンブリを作成するのです。

残念なことに、ここ数カ月の間で主要なメンバーが数人離れることとなり、厳しい代償を支払わざるをえませんでした。そのひとつが、MBFのライブラリをリファクタリングして、クライアントプロファイル用、Silverlight 4用、および.NET Framework Full用のMBFを作ることを延期するという決定です。この件がMBFのバージョン1を6月にリリースした後に私たちがまず取りかかるべき仕事であるのは明らかなのですが、コミュニティの皆さんが調査し、プロトタイプを作り、成果を出したと考えられるコードをコミットしていただけるのであれば、心より歓迎いたします。このプラットフォームにとって最重要と判断される分野については、マイクロソフトに頼ることなく、コミュニティの皆さんが進化させていくことができることが、このプロジェクトの素晴らしい点だと考えています。

詳細な調査は必要だが、Mono Migration Analyzerが検出した互換性の問題はきわめて小さなものである。代表的な問題点は以下の通り。

  • CredentialCache.DefaultCredentialsを呼び出している箇所が2つある。これはNTLM、ネゴシエーション、およびKerberosベースの認証だけで使われるものであるため、それらが使われない時には無視することができる。しかし、もし必要なのであれば、よい回避策は存在しない。
  • Assembly.GetName(Boolean)を呼び出している箇所が4つある。これはアセンブリがシャドウコピーされているときにAssembly.CodeBaseを変更できるという、面白くもない機能を実現している。
  • セキュリティに関連した機能として、Windows Communication FoundationのHttpTransportSecurity.ClientCredentialTypeが使われている。これは単にWCFを使ってWebサービスを呼び出すためだけに使われていて、Monoが対応するまでは別のWebサービス層を用いることができる。
  • アドインパッケージの中に、Win32のGetTickCount関数を呼び出している箇所が2つある。これは単にシステムが最後に起動してからの秒数を返すだけの関数なので、MonoがLinuxおよびOS Xの代替機能を呼び出す層をまだ持っていないことが少々不思議ではある。

全体としてはMonoで動作させるための作業はそれほど多くない。残念ながらSilverlight版はそこまで簡単なものではない。.NET 4.0からの違いがより大きい上に、.NETの機能をフルサポートするようにしていくことには重点を置かれていないためである。

この記事に星をつける

おすすめ度
スタイル

BT