モバイルP2Pを用いた携帯電話 動画配信手法の提案 第3回 種田研究室 FM10019 古江 和栄
目次 1.前回のおさらい 2.PIAX on Androidについて 3.PIAXの詳細 4.参考文献
1.前回のおさらい Overlay Weaver オーバレイ構築ツールキット。 Chord、Kademlia、Koorde、Pastry、Tapestryなどのプロトコルを実装。 ルーティングドライバによってどのプロトコルを実装するかを自由に決定できる。 PIAX P2P Interactive Agent eXtensionsの略。 モバイルエージェント機能とP2P構造化オーバーレイネットワーク機能とをあわせ持つJavaのクラスライブラリである。 モバイルエージェントの機構を、P2Pネットワークのピア発見機能やピア間メッセージングにより強化したものと言える。
2.PIAX on Androidについて PIAX on Androidを開発している大阪大学の寺西 裕一先生にメールを出しました。 今ソースを整理中とのことで、公開はもう少し先になりそう、ということです。 しかし、バイナリモジュールは近いうちに公開されるそうなのでそちらを使って開発を行っていく予定です。
3.PIAXの詳細 PIAXは、ユビキタスP2Pサービスの1つの実現形であり、アプリケーション開発をオーバーレイネットワークにより機能強化した分散エージェントを使って行える点が特徴。 PIAXの扱うこのような分散エージェントのことを、P2Pエージェントと呼ぶ。 オーバーレイネットワークの持つ強力な資源探索(discovery)機能を活用することで、“what to find” (アドレスではなく、属性を指定することで必要なオブジェクトを見つけ出す機能) をスケーラブルに実現することができる。 これまでの分散エージェントの場合、アドレスが分からないとエージェント同士の通信が出来なかった。P2Pエージェントの場合は、アドレスが分からなくても必要なエージェントを発見し、通信を行うことが出来る。これにより、自律性と自由度の高いエージェントの分散環境が構築出来る。
PIAXでは、P2Pエージェントに対し弱モビリティ(スタックを含むコンテキストの移動まではしない)をサポートしている。 帯域の効率的利用 通信頻度の高い相手の近傍にP2Pエージェントを移動させることで、ネットワーク全体の帯域消費を抑える。 負荷の平準化 負荷の高いP2Pエージェントを複製し、リクエスト元の近傍に移動させることで、全体負荷を平準化させる。 サービスの持続性 頻繁なピアの参加、離脱、停止により引き起こされるP2Pネットワークの構成変化や、ユーザーのアクセスピアの移動に対して、耐性を持つ必要がある。このため、離脱するピアのP2Pエージェントを安定したピアへ退避させることや、P2Pエージェントの複製を他のピアに持たせる事により、サービスの持続性を図る。
Physical Network 物理ネットワークの通信機能をsocketを使って実現している。NAT越えの機能も、このレイヤーによって実現される。PIAXでは、グローバルIPアドレスを持っているリレーピアが、NATの内側にあるピアの通信を中継することでNAT越えを実現している。 Overlay Transport 上位のレイヤーに対し物理的な通信インタフェースを隠蔽し、代わりに※RPC(Remote Procedure Call・リモートプロシージャコール)とストリーミングの2種類の抽象度の高い通信インタフェースを提供する。 ※プログラムから別のアドレス空間(通常、共有ネットワーク上の別のコンピュータ上)にあるサブルーチンや手続きを実行することを可能にする技術。 Multi-Overlay オーバーレイネットワークを実現するレイヤーで、複数のオーバーレイネットワークを処理できるようになっている。さらに、プラグインの機構により、複数のオーバーレイネットワークを管理し、用途に応じてオーバーレイネットワークを切り替えることができる。これによって、上位レイヤーに対して必要な機能を提供する。現在、DHT、LL-Net、ソーシャルネットの3種類のオーバーレイネットワークが実現されている。
Overlay Transportをさらに詳細に分ける。 Overlay TransportはID層とLocator層に分かれている。 IDはPeerID(P2Pネットワーク上のID)である。 PeerIDは普通はランダム生成されるが、ピア起動時に設定することも可能。 Locatorは通信ポート情報の事。IP+ポート番号の組のことである。 1つのピアは必ずこのLocatorを持ち、標準では TcpLocator, UdpLocator, UdpXLocator が使える。 普通は TCP を使う TcpLocator を使う。 また、同じLocator同士でないと通信が出来ないため、1システム内ではLocatorを統一しておく必要がある。 EndPoint直指定の通信の場合はLocator層を利用し、IDで相手を指定する場合はID層を利用する。
4.参考文献 PIAX を絡めた開発するときに知っておきたい知識 http://d.hatena.ne.jp/nas774/20091108/1257697065 PIAX http://www.piax.org/
ご清聴ありがとうございました