PowerPoint プレゼンテーション

私の立場
• OSカーネルを手がけるエンジニア
– UNIXのポーティングやドライバ作成、
システム・プリミティブの追加などを仕事にしていました
– 分散システムの試作開発などの経験もあります
• 大阪市立大学 創造都市研究科の学生
– 博士課程に在籍中です
– 構造化オーバーレイの応用を研究しています
• IIJ Innovation Institute の研究員です
– 同社が行った技術開発公募の合格者です
– 2010年7月までの起業を目標にしています
私の主張
• アプリケーションやサービスの並列化は不回避な技術的トレンド
• プロセッサ・レベルではマルチ・コア指向
• サーバーは負荷分散や信頼性向上のためにクラスタ化
• 大規模データを低コストで処理できる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.ht
ml
仮想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