 |
|
次世代分散環境技術の最有力候補「P2P」
〜その技術的な背景と開発フレームワークを紹介〜 |
 |
P2P技術を活用したアプリケーション開発にはすでに、
さまざまなアイデイアが登場している |
次世代分散環境技術の1つの可能性としてピア・ツー・ピア(以下P2P)の存在は大きい。ファイル交換という非常にインパクトの強いアプリケーションの登場によって、その技術が秘める可能性の高さは証明されている。
エンジニアというものは、基盤技術が確立され、さらに開発フレームワークが整備されれば、その技術的な可能性と自らの創造性を組み合わせることで、まったく新しいアプリケーションを構築していくものである。P2P技術を文字通り1から研究し、開発ノウハウを蓄積、自らもその基盤技術をもとに応用製品を開発・販売するアリエル・ネットワーク(以下アリエル)は、自らP2Pアプリケーションの開発を行うと同時に、同基盤技術をSIベンダに提供することで、市場の拡大を図っている。実際、同社には、P2P技術を活用したアプリケーション開発に関するさまざまな相談が持ち込まれる。このようなニーズに応えて、同社はP2Pアプリケーション構築のためのソフトウェア開発キット「アリエル・フレームワーク・ソフトウェア開発キット」を2004年1月23日に発売した。
同社が独自に開発した製品は、サーバ不要のP2P型グループウェア「アリエル・エアワン」だが、P2P技術は、グループウェアに止まらず、同社が予想することも不可能な用途へと拡大する可能性がある。本稿ではまず、P2P技術の基本的なオーバービューを示し、その後に、アリエル・フレームワークの基本構成などを紹介する。
 |
多ノード間の協調ネットワークを使って何を作るか?
|
P2Pの定義はさまざまだが、広義にとらえれば、“多ノード間の協調ネットワーク”と考えることができる。P2P技術のプロトコルといえば、P2Pコミュニティ「Jnutella」が提唱する「JPPP」が有名であるが、アリエルはあえて独自プロトコル「Ariel
SOMAプロトコル」を開発し、このプロトコルをもとに「Ariel SOMAnet」というP2P技術基盤を構築した。Ariel SOMAプロトコルは、P2Pという基本概念、つまり“多ノード間の協調ネットワーク”に変わりはないものの、既存のプロトコルでP2P型のビジネス・アプリケーションを動作させる場合に不安であったセキュリティ面に大きな特徴がある。Ariel
SOMAプロトコルの最大の特徴は、PKIに基づくリソースの暗号化、署名とリビジョン管理機能を用いた不正書き換えのトラッキング、アクセスコントロールなどなど、といったセキュリティ技術を実装しており、これらを組み合わせることで、構築するアプリケーションのセキュリティレベルを設定できることである。
 |
P2Pの技術解説を行うアリエル・ネットワーク 取締役開発部長 井上誠一郎氏(クリックするとホワイトボードの内容が拡大) |
分散環境のセキュリティに関しては、今後シングル・サイン・オン(SSO)サービスが普及すると考えられる。SSOの標準技術としては、米サン・マイクロシステムズが中心となって進めているLiberty
Allianceプロジェクトなどがあるが、そのカギとして「認証」「暗号」の標準技術の動向は見逃せない。アリエルは将来的なSSOの市場動向も視野にいれ、X.509のようなセキュリティ技術の標準を積極的にサポートしている。
さて、セキュリティ技術の実装はもちろん重要なのだが、P2P技術の特徴はやはりその通信の仕組みにある。一般的にP2P技術には2種類あるとされている。1つはリソースのインデックスを持つサーバにアクセスして通信を行う“ハイブリッド型のP2P”で、もう1つは中心となるサーバが存在しない完全分散型の“ピュアP2P”である。前者の技術を応用したアプリケーションの代表には「Napster」があり、後者の代表には「Gnutella」がある。Ariel
SOMAnetはGnutellaと同様のピュアP2Pタイプに属す。ただし、高速化や効率化に磨きをかけるため、各ノード(クライアント)にデータをキャッシュして検索時に高速な応答を可能にしたり、キャッシュの履歴による検索ルーティングの効率化を行ったりする。だが、サーバを介さないピュアP2Pとはいえ、HTTPしか通さないファイアウォール経由のネットワーク環境へのアクセス対応や、前述したPKIによる通信の暗号化、LDAPによる階層型ユーザー管理への対応など、企業に適用する場合への対応も準備されている。
P2P型アプリケーションの代表であるコラボレーション製品に特有な“盲点”についても指摘しておく。Ariel SOMAnetはノードの集合体で定義されており、ノード同士が互いに複数のセッションを張り合って接続され、この接続されたセッション上にAriel
SOMAnetのプロトコルが流れる仕組みとなっている。つまり、同社のP2P型グループウェア「アリエル・エアワン」においては、あるノードが特定のリソースを探す際は、別ノードにコマンドを投げ、もし見つからない場合は、隣接するノードに次々に
コマンドを投げていく。その結果、リソースを見つけた場合は、所在情報がコマンドを発信した元のノードに帰る間に経由したすべてのノードに対してリソースインデックスとして登録され、次回からは自由にリソースの共有が図れる。ただし、一度もほかのノードからコマンドを受け取ることなく、接続を切られた場合はその限りではない。このような問題の解決策として、同社は常時接続している仮想のノード「ワークグループ・ノード」を追加して対処している。各ノードが作成したリソースは、ワークグループ・ノードに自動的に格納され、あるノードがコマンドを受け取らないで接続を絶った場合でも、ほかのノードがリソースを共有できるようにしているというわけだ。
このような対応策は、実際にP2P技術を活用してアプリケーションを構築し、一定期間の運用を経たうえでないとなかなか出てこないものかもしれない。米Groove
NetworksのP2P型コラボレーションツール「Groove」でもほぼ同じような回避策を採用している。ファイアウォールなどでクライアント同士が直接通信できない場合は、「Relay
Service」と呼ばれる仮想的なサーバを中継して通信する仕組みを採用している。ファイルの同期問題もこの「Relay Service」を活用して回避している。
次のセクションでは、このようなP2P型アプリケーションを開発するためのフレームワークとしてアリエルが提案する「アリエル・フレームワーク」の解説をする。
 |
アリエル・フレームワーク:
その特徴は、軽さと多様なセキュリティ技術の実装にある |
「アリエル・フレームワーク」は、アリエルが開発したAriel SOMAnetをベースにアプリケーション開発のためのインターフェイスを強化・拡張したものである。P2Pネットワークで課題とされるアクセスコマンドの過多や重複による負荷を軽減した作りになっているのが特徴で、セキュリティ対策としては前述したようにPKIを始めとしたさまざまな仕組みを実装することが可能だ。セキュアなネットワーク環境の構築という条件こそ、アリエルが考えるP2P型アプリケーションの第1条件である。結果的に、通常のクライアント/サーバ型のネットワークでは困難だったスピーディな情報共有やファイアウォールを超えた組織横断型のシステム構築を低コストで実現することが可能となっている。なお、このフレームワークはTCP/IP上に構築されており、非常にコンパクトである。
 |
アリエル・フレームワークおよび同開発キットの優位性を解説するアリエル・ネットワーク 最高執行責任者
小松宏行氏 |
「アリエル・フレームワーク」には、アリエルが実際にP2P型グループウェア「アリエル・エアワン」を開発したノウハウが詰め込まれている。開発に必要なモジュール群のほかに、P2P型分散アプリケーション開発を支援するデザインパターンもそろっている。データ交換についてもデータスキーマパターンを備えている。
IPv6をサポートしているという点もP2P分散アプリケーション構築環境では特徴的であろう。実際、「アリエル・エアワン」のIPv6版はすべてのPC(クライアント)にグローバルIPアドレスが付与されるため、サーバを介さないP2P通信が可能になる。また、IPv6とIPv4の混在環境でも利用可能だ。
最後に、このフレームワークには、Microsoft Windows/Microsoft Visual C++.NET 2003、または
Linux(Debian GNU/Linux 3.0、Red Hat Linux 9)/GCC3.0の環境でビジネスP2Pソフトウェアを構築できるライブラリ群と、30種類以上のサンプルコード、P2Pファイル共有アプリケーションのインプリメンテーションサンプルコードが含まれる。基本的には、CおよびC++による開発がメインとなるが、同社では、Javaなどほかの開発言語のサポートも検討している、という。
 |
アリエル・フレームワークを構成するモジュール群 |
libapr, libaprutil |
OSの差異を吸収するポータブルレイヤ |
libcrypt(openssl) |
暗号、署名、証明書(X.509)ライブラリ |
libiconv, libcharset |
文字コード変換ライブラリ |
libxml, libxslt |
XMLパーサ、XSLTプロセッサ |
libariel-util |
ユーティリティライブラリ |
libsoma |
ネットワークコアレイヤ |
libsomat |
バックエンドのストレージ管理、XMLデータ交換レイヤ |
libariel-http, libariel-html |
HTTPプロトコルおよびHTMLキャッシュレイヤ |
libair-util |
アリエルフレームワークのAPIレイヤ |
(注)以下のモジュールはオープンソースを使用している。
・libapr, libaprutil
・libcrypt(openssl)
・libiconv, libcharset
・libxml, libxslt |
各モジュールの解説 |
|
「アリエル・フレームワーク」を基盤とした「アリエル・フレームワーク・ソフトウェア開発キット」はアリエルが主催するテクノロジーパートナープログラムに参加すること
により、入手可能である。テクノロジーパートナープログラムに参加する企業・個人は、ビジネスP2Pアプリケーション開発のサポートやコンサルテーションサービスを受けることができる。参加価格は、法人基本料金20万円、個人基本料金5万円。テクノロジーパートナープログラムの詳細、参加申込みは下記のアリエル・ネットワークのWebサイトを参照してほしい。
また、アリエルでは、「アリエル・フレームワーク・ソフトウェア開発キット」を使用したビジネスP2Pアプリケーション構築を解説する、活用セミナーを2004年3月11日に開催する予定。このセミナーでは、アリエルの技術者が、P2P分散アプリケーション開発に関するノウハウを詳細に解説する。
P2P技術を活用したコラボレーションツールとして有名な米Groove
Networksはロータスノーツの生みの親であるレイ・オジー氏が設立した企業である。 レイ・オジー氏はロータスを退社後、1997年8月にGrooveの製品コンセプトを作成し、同年10月にGroove
Networksとして会社を立ち上げた。一方、アリエル・ネットワークは、代表取締役の栗村信一郎氏、最高執行責任者の小松宏行氏、取締役
開発部長の井上誠一郎氏など、旧ロータスでLotus Notesや旧DEC社のVAX Notesの開発に従事していた5人のソフトウェア技術者によって設立された企業である。ノーツというグループウェアの代名詞ともいえるソフトウェアの開発に携わってきたエンジニアが、別々の国でP2Pという技術に次世代のアプリケーション開発の可能性を見出したことは何を意味するのだろうか。おそらく、ノーツの技術的な限界を突破する1つの解がP2Pであり、ますます普及する分散環境に最適化されたアプリケーションを開発するための基盤技術として、P2Pが技術進化の正統な位置付けにあるという証左なのかもしれない。 |
アリエルの来歴とP2P技術の変遷 |
|
|