モバイルエージェントの基礎技術①遠隔プログラミング モバイルエージェントの基礎技術 ①遠隔プログラミング モバイルエージェントの基礎技術 分散プログラミングと、遠隔プログラミング 遠隔プログラミングと、移動プログラムの粒度 コード移動 コード移動の事例 コード移動と実行制御 プロセス移動 プロセス移動の目的 オブジェクト移動 オブジェクト移動の特性 エージェント移動 プログラム移動の比較 モバイルエージェントの基礎技術①遠隔プログラミング モバイルエージェントの基礎技術 分散システムとして プロセス/オブジェクト移動 遠隔手続き呼び出し プログラミング言語として オブジェクト指向 仮想機械 人工知能として マルチエージェント モバイルエージェントの基礎技術①遠隔プログラミング 分散プログラミングと、遠隔プログラミング 分散プログラミング → プログラム間相互作用=コンピュータ間通信 プログラム A プログラム B コンピュータA コンピュータB 遠隔プログラミング → プログラム間相互作用=コンピュータ内通信 プログラム移動 コンピュータA プログラム A プログラム B コンピュータB 移動するプログラムとはプロセス、オブジェクト、コード、エージェント? モバイルエージェントの基礎技術①遠隔プログラミング 遠隔プログラミングと、移動プログラムの粒度 移動プログラムの粒度により分類: コード移動 プログラムコードだけが移動 オブジェクト移動 オブジェクトの状態(とコード)が移動 エージェント移動 エージェントプログラムの状態(とコード)が移動 プロセス移動 プロセスの仮想記憶空間(スタック、データ、コード)が移動 モバイルエージェントの基礎技術①遠隔プログラミング コード移動 プログラムコードを他のコンピュータに移動し、 移動先で初期状態から実行を開始 コード移動 プログラム コード コンピュータA (ftpサーバ、 httpサーバ) プログラム コード 初期状態 コンピュータB モバイルエージェントの基礎技術①遠隔プログラミング コード移動の事例 コード移動の例: ページ記述言語 例:PostScript データベース 例:SQL(問い合わせ)の遠隔実行 Webスクリプティング 例: HTML、Dynamic HTML、XML JavaScript、 VB Script、Scriplets Java Applets、Shockwave、Flash モバイルエージェントの基礎技術①遠隔プログラミング コード移動と実行制御 移動先では初期状態から実行を開始 ○状態保存処理が不要 → 処理が高速 ×計算途中状態は移動しない → 移動先では初期状 態から実行 program(){ int a = 1; A // この時点でコード移動が発生 B; B } a->1 A 移動 go() A コンピュータ1 a->1 コンピュータ2 モバイルエージェントの基礎技術①遠隔プログラミング プロセス移動 プロセス単位のコンピュータ間移動(Process Migration、移送) プロセスの状態も移動 プロセス 移動 コード領域 ヒープ領域 スタック領域 リンクテーブル コンピュータA コンピュータB オペレーティングシステムにより実現 仮想記憶空間全体(記憶ページ)の移動 プレページングとオンデマンドページング モバイルエージェントの基礎技術①遠隔プログラミング プロセス移動の目的 各コンピュータの計算負荷を平均化 各プロセスの応答時間を平均化 特定プロセスの応答時間を最適化 計算資源の有効利用 耐故障性・信頼性の向上 セキュリティの向上 多くのプロセス移動システムでは、 移動先・タイミングはシステムにより管理(×プロセス) 例:DEMOS/MP, LOCUS, V-System, Sprite モバイルエージェントの基礎技術①遠隔プログラミング オブジェクト移動 分散プログラミング:プログラム間相互作用=コンピュータ間 通信 プロセスA オブジェクト A コンピュータ 間通信 オブジェクト B オブジェクト C コンピュータA コンピュータB プロセスB プロセスA オブジェクト A コンピュータA プロセスB 移動 オブジェクト B オブジェクト C コンピュータB モバイルエージェントの基礎技術①遠隔プログラミング オブジェクト移動の特性 プロセス全体の移動はコストが大きい オブジェクト指向プログラミング/OSの登場 → プロセスを構成する特定オブジェクトのみ移動 例:Emerald (Black 1987) (Jul 1988), Apertos (Yokote 1992),他 問題点:プログラムの部分移動 → リンク情報の補完が困難 プロセス オブジェクト A 移動 オブジェクト C オブジェクト B モバイルエージェントの基礎技術①遠隔プログラミング エージェント移動 エージェントは複数のオブジェクトから実現 エージェントは一つのプロセスとして実行 移動対象となるプログラムの粒度により分類: オブジェクト移動 オブジェクトの状態(とコード)が移動 エージェント移動 中間 エージェントプログラムの状態(とコード)が移動 プロセス移動 プロセスの仮想記憶空間(スタック、データ、コード)が移動 モバイルエージェントの基礎技術①遠隔プログラミング プログラム移動の比較 プロセス移動 オブジェクト移動 負荷分散や耐故障性などが目的 → 移動先の計算環境が既知かつ予測可能 → 移動プロセス/オブジェクトの処理内容は既知であること多い 受動的オブジェクトが移動対象 → オブジェクトとして実装されたデータの受け渡しを実現 移動対象のプログラムは完備でないことがある → 移動後も参照関係を維持しなければならない エージェント移動 移動対象は完備かつ能動的プログラム 移動エージェントの用途・処理内容は多様 移動先の計算環境は多様かつ予測不可能 通信方式が多様、また常時接続も仮定できない
© Copyright 2024 ExpyDoc