私の立場 OSカーネルを手がけるエンジニア 大阪市立大学 創造都市研究科の学生 UNIXのポーティングやドライバ作成、 システム・プリミティブの追加などを仕事にしていました 分散システムの試作開発などの経験もあります 大阪市立大学 創造都市研究科の学生 博士課程に在籍中です 構造化オーバーレイの応用を研究しています IIJ Innovation Institute の研究員です 同社が行った技術開発公募の合格者です 2010年7月までの起業を目標にしています
私の主張 アプリケーションやサービスの並列化は不回避な技術的トレンド P2Pはスケール・アウトを統一的に扱えるアーキテクチュア プロセッサ・レベルではマルチ・コア指向 サーバーは負荷分散や信頼性向上のためにクラスタ化 大規模データを低コストで処理できるGoogleアプローチが注目を集める → クラウド・コンピューティングの出発点? P2Pはスケール・アウトを統一的に扱えるアーキテクチュア 1台であっても100万台であっても同じアプリケーションが動く → オーバーレイ・ネットワークの効用 センターレスでも強大なインフラストラクチュアが構築可能 → ノン・プロフィットなサービスにも活用できる パフォーマンスや信頼性・信用性の確保はP2Pの研究課題 P2Pが商用サービスに耐え得るアーキテクチュアを獲得するためには? きっと何かが必要なのだろう・・・ Webサービス連携の方法はヒントにならないだろうか?
Peer to Peer (P2P)とは 非常に簡単に説明すると・・・ これまでの事例 ネットワーク・アーキテクチュアの1つ 構成要素は対等の関係にあり中央集権的な存在がない 要素間のアドホックな接続によりアプリケーションやサービスを維持する これまでの事例 メッセージ共有ネットワークとしてのP2P Usenet(1979), WWIVnet(1987) データ共有アプリケーションとしてのP2P Napster (1999), Gnutella(2000), BitTorrent(2001), WinMX(2001) Winny(2002), Share(2004) 分散システムのビルディング・ブロックとしてのP2P(構造化オーバーレイ) Chord(2001), Pastrey(2001), Tapestry(2001)
オーバーレイ・ネットワーク 他のネットワークの上に構築される論理的なネットワーク 参加者(ノード)は他者とネットワークを形成していると見えるが 実際のノード間の通信には下位ネットワークの機能が使われる P2Pネットワークはインターネットを下位ネットワークとする オーバーレイ・ネットワークと理解することができる オーバーレイ・ネットワーク導入のメリット → IPアドレスを伴わないルーティング・メッセージを許容する IPアドレスがネットワーク・アクセスから隠蔽される ネットワーク・トポロジの動的変化への対応が容易になる IPルーターへの機能強化が必要ない エンドユーザーが欲しいのはリモート・データやリモート・ジョブの結果であって、 相手がどんなノードかは気にしない。
構造化オーバーレイ ネットワーク構造がアルゴリズムで決定されるオーバーレイ・ネットワーク ハッシュ関数によるリング構造のネットワークを形成する事例が多い → SHA-1を使用した場合は160ビットのハッシュ空間を形成する ネットワークに参加するノードも格納されるデータもハッシュ値で識別する データを格納するノードはハッシュ値計算により決定される データの参照に必要なのはデータ識別子のみ(ノード情報は要らない) ノードはサービスを維持するために自律的に挙動する ネットワーク構造を維持するため他ノードおよび接続の情報を収集する 自律的にデータのキャッシングを行って性能改善と信頼性向上を図る
通常のWebサーバーとの通信 クライアントはサーバーのIPアドレスやドメイン名を指定する http://160.193.95.36/xxx.html
仮想Webサーバーに対する通信 クライアントはドメイン名を指定して仮想サーバーに接続 サーバー・サイドはロードバランサー等で動的に実際のサーバーを割り当てる http://xxx.info.gscc.osaka-cu.ac.jp/xxx.html
オーバーレイ・ネットワークでの通信 サーバー・データは自律的にキャッシュされてネットワーク全体に展開される クライアントは任意の(例えば最も近い)ノードにアクセスする http://ハッシュ値 HTTP P2P Protocol
データ一貫性を保証する仕組み DBなどはネットワーク的に近いノード・グループで一貫性保証する その他のノードへは従来のP2Pプロトコルで展開 HTTP P2P Protocol Consistency Protocol
言語グリッドをP2P化したら・・・ 現在のピアがノード・グループに置き換わる? ノード・グループ間のやり取りは? HTTP?P2P? HTTP