(57)【特許請求の範囲】
【請求項１】
携帯機器とサーバとの間の移動エージェントの転送を可能にする携帯機器向け移動エージェント転送システムであって、
前記携帯機器と前記サーバとを接続する情報転送装置を備え、且つ、
前記サーバが、
移動エージェントを動作させるサーバ側計算処理部と、
移動エージェントの内部状態およびプログラムコードと、前記携帯機器上にエージェント展開部，携帯側計算処理部およびエージェント送信部を構築するためのプレースコードとを前記携帯機器へ転送するエージェント転送部と、
前記携帯機器から転送されてきた移動エージェントの識別子および内部状態を含むメッセージに基づいて移動エージェントを復元し、再び前記サーバ側計算処理部で動作を開始できる状態にするエージェント受信部と、
前記携帯機器に移動するために待機中の移動エージェントを示す待機リストを前記携帯機器へ送信する待機リスト生成部とを備え、
携帯機器が、
前記サーバから送られてきた移動エージェントの内部状態およびプログラムコードと、プレースコードとを取得するプログラム取得部と、
該プログラム取得部が取得したプレースコードに基づいて、自携帯機器上に、エージェント展開部，携帯側計算処理部およびエージェント送信部を構築するプログラム制御部と、
前記サーバから送られてきた待機リストを提示すると共に、提示した待機リストによって示される移動エージェントの内の、選択された移動エージェントを前記プログラム取得部に通知する待機リスト表示部とを備え、
前記エージェント展開部が、前記サーバから送られてきた移動エージェントの内部状態およびプログラムコードに基づいて移動エージェントを再構築する構成を有し、
前記携帯側計算処理部が、前記エージェント展開部で再構築された移動エージェントを動作させる構成を有し、
前記エージェント送信部が、前記携帯側計算処理部での動作を終えた移動エージェントの識別子および内部状態を含むメッセージを前記サーバへ送信する構成を有し、
前記プログラム取得部が、前記待機リスト表示部から通知された移動エージェントの取得を前記サーバに対して要求する構成を有することを特徴とする携帯機器向け移動エージェント転送システム。
【請求項２】
携帯機器とサーバとの間の移動エージェントの転送を可能にする携帯機器向け移動エージェント転送システムにおける携帯機器であって、
前記サーバから送られてきた移動エージェントの内部状態およびプログラムコードと、プレースコードとを取得するプログラム取得部と、
該プログラム取得部が取得したプレースコードに基づいて、自携帯機器上に、エージェント展開部，携帯側計算処理部およびエージェント送信部を構築するプログラム制御部と、
前記サーバから送られてきた、前記携帯機器に移動するために待機中の移動エージェントを示す待機リストを提示すると共に、提示した待機リストによって示される移動エージェントの内の、選択された移動エージェントを前記プログラム取得部に通知する待機リスト表示部とを備え、
前記エージェント展開部が、前記サーバから送られてきた移動エージェントの内部状態およびプログラムコードに基づいて移動エージェントを再構築する構成を有し、
前記携帯側計算処理部が、前記エージェント展開部で再構築された移動エージェントを動作させる構成を有し、
前記エージェント送信部が、前記携帯側計算処理部での動作を終えた移動エージェントの識別子および内部状態を含むメッセージを前記サーバへ送信する構成を有し、
前記プログラム取得部が、前記待機リスト表示部から通知された移動エージェントの取得を前記サーバに対して要求する構成を有することを特徴とする携帯機器。
【請求項３】
携帯機器とサーバとの間の移動エージェントの転送を可能にする移動エージェント転送方法であって、
前記サーバが、移動エージェントの内部状態およびプログラムコードと、前記携帯機器上にエージェント展開部，携帯側計算処理部およびエージェント送信部を構築するためのプレースコードとを前記携帯機器へ転送し、
前記携帯機器が、前記サーバから送られてきたプレースコードに基づいて、自携帯機器上に、エージェント展開部，携帯側計算処理部及びエージェント送信部を構築し、
前記エージェント展開部が、前記サーバから送られてきた移動エージェントの内部状態およびプログラムコードに基づいて移動エージェントを再構築し、
前記携帯側計算処理部が、前記エージェント展開部で再構築された移動エージェントを実行し、
前記エージェント送信部が、前記携帯側計算処理部での動作を終えた移動エージェントの識別子および内部状態を含むメッセージを前記サーバへ送信し、
前記サーバが、前記携帯機器から転送されてきた移動エージェントの識別子および内部状態を含むメッセージに基づいて移動エージェントを復元し、再び動作を開始できる状態にし、
前記サーバが、前記携帯機器に移動するために待機中の移動エージェントを示す待機リストを前記携帯機器へ送信し、
前記携帯機器が、前記サーバから送られてきた待機リストを提示すると共に、提示した待機リストによって示される移動エージェントの内の、選択された移動エージェントを前記サーバに対して要求することを特徴とする移動エージェント転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は携帯機器向けプログラム転送技術に関し、特に、携帯機器とサーバとの間で、移動エージェントの転送を可能にする携帯機器向け移動エージェント転送技術に関する。
【０００２】
【従来の技術】
従来の携帯機器向けプログラム転送システムの一例が、２０００年９月、サン・マイクロシステムズ発行、モバイル・インフォメーション・デバイス・プロファイル（ジェイ・エス・アール−３７）(Sun Microsystems 発行、Mobile Information Device Profile(JSR-37)) に記載されている。この種の携帯機器向けプログラム転送システムは、Web サーバのような情報転送装置から携帯機器に実行コードを転送し、携帯機器上で実行させるシステムである。
【０００３】
図２４に示すように、この従来の携帯機器向けプログラム転送システムは、プログラム取得部５１及びプログラム制御部５２を有する携帯機器５と、情報転送装置６とから構成されている。情報転送装置６は、携帯機器５上で動作するプログラムの実行コードや画像などのプログラムが利用するリソースを含んだアーカイブと、プログラムを開発販売するベンダ名や、プログラムのサイズ等の様々なプログラム属性が記入されたプログラム記述ファイルとを持つ。
【０００４】
このような構成を有する従来の携帯機器向けプログラム転送システムは、次のように動作する。図２５を用いて説明を行なう。
【０００５】
まず、プログラム取得部５１は、情報転送装置６に特定のプログラム記述ファイルを示すユニフォーム・リソース・ロケータ(Uniform Resource Locator; URL) の様な識別子を送り、その識別子が示すプログラム記述ファイルを情報転送装置６に要求する（ステップＳ１０）。情報転送装置６は、識別子で指定されたプログラム記述ファイルをプログラム取得部５１に転送する（ステップＳ１１）。プログラム記述ファイルの中には実行コードやリソースを含んだアーカイブの場所を示す識別子が入っている。
【０００６】
そこで次に、プログラム取得部５１は、取得したプログラム記述ファイルに記されたアーカイブの場所を示す識別子を情報転送装置６に転送し、その識別子が示すアーカイブを転送するように情報転送装置６に要求する（ステップＳ１２）。情報転送装置６は識別子で指定されたアーカイブをプログラム取得部５１に転送する（ステップＳ１３）。プログラム制御部５２はプログラム取得部５１が取得したプログラム（実行コード）を実行、管理する。プログラム制御部５２は携帯機器５のユーザの操作に応じてプログラムの起動、終了、一時停止、再開を行なう。
【０００７】
一方、従来の移動エージェントの一例が、１９９８年、アジソン−ウェスレイ発行のプログラミング・アンド・デプロイング・ジャバ・モバイル・エージェンツ・ウィズ・アグレッツ（Addison-Wesley発行、Programming and Deploying Java Mobile Agents with Aglets）に記載されている。移動エージェントとはネットワークで接続されたプレースの間を移動して、移動先のプレース上で計算処理等を行なうものである。従来の移動エージェントは、移動先に、移動エージェントを受け入れ、移動エージェントが動作するための環境を提供するプレースを必要とする。図２６は移動エージェントのデータ構造を示す図である。図２６に示すように、移動エージェントは、システム全体の中で移動エージェントを一意に定める識別子と、移動エージェントの計算処理等の途中結果を保存する内部状態、移動エージェントが動作するために必要なプログラムコードから構成される。
【０００８】
【発明が解決しようとする課題】
しかし、従来の技術では、移動エージェントを携帯機器に移動させて動作させることは出来ない。なぜならば、第一に、従来の移動エージェントは、移動先にプレースが存在することを前提とするが、携帯電話機等の携帯機器はプレースを持たないためである。第二に、従来の携帯機器向けプログラム転送システムは、プログラムコードの転送しか考慮されておらず、従って、移動エージェントの識別子や、内部状態を携帯機器に転送できないためである。
【０００９】
そこで、本発明の目的は、携帯機器とサーバとの間で、移動エージェントを転送できるようにすることにある。
【００１０】
【課題を解決するための手段】
本発明の携帯機器向け移動エージェント転送システムは、上記目的を達成するため、
携帯機器とサーバとの間の移動エージェントの転送を可能にする携帯機器向け移動エージェント転送システムであって、
前記携帯機器と前記サーバとを接続する情報転送装置を備え、且つ、
前記サーバが、
移動エージェントを動作させるサーバ側計算処理部と、
移動エージェントの内部状態およびプログラムコードと、前記携帯機器上にエージェント展開部，携帯側計算処理部およびエージェント送信部を構築するためのプレースコードとを前記携帯機器へ転送するエージェント転送部と、
前記携帯機器から転送されてきた移動エージェントの識別子および内部状態を含むメッセージに基づいて移動エージェントを復元し、再び前記サーバ側計算処理部で動作を開始できる状態にするエージェント受信部と、
前記携帯機器に移動するために待機中の移動エージェントを示す待機リストを前記携帯機器へ送信する待機リスト生成部とを備え、
携帯機器が、
前記サーバから送られてきた移動エージェントの内部状態およびプログラムコードと、プレースコードとを取得するプログラム取得部と、
該プログラム取得部が取得したプレースコードに基づいて、自携帯機器上に、エージェント展開部，携帯側計算処理部およびエージェント送信部を構築するプログラム制御部と、
前記サーバから送られてきた待機リストを提示すると共に、提示した待機リストによって示される移動エージェントの内の、選択された移動エージェントを前記プログラム取得部に通知する待機リスト表示部とを備え、
前記エージェント展開部が、前記サーバから送られてきた移動エージェントの内部状態およびプログラムコードに基づいて移動エージェントを再構築する構成を有し、
前記携帯側計算処理部が、前記エージェント展開部で再構築された移動エージェントを動作させる構成を有し、
前記エージェント送信部が、前記携帯側計算処理部での動作を終えた移動エージェントの識別子および内部状態を含むメッセージを前記サーバへ送信する構成を有し、
前記プログラム取得部が、前記待機リスト表示部から通知された移動エージェントの取得を前記サーバに対して要求する構成を有する。
【００１１】
この構成によれば、サーバから携帯機器へ送ったプレースコードにより、携帯機器上に移動エージェントの実行環境が構築されるので、サーバと携帯機器との間で移動エージェントを転送することが可能になる。
【００１４】
更に、この構成によれば、サーバから携帯機器に対して、携帯機器に移動するために待機中になっている移動エージェントを示す待機リストを送信するようにしているので、携帯機器のユーザ等は、自携帯機器に移動するために待機中になっている移動エージェントを確認することが可能になる。
【００１６】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１７】
図１は本発明に係る携帯機器向け移動エージェント転送システムの前提技術の構成例を示すブロック図である。全体の構成は、プログラムを動作させることのできる携帯電話などの携帯機器１−１〜１−ｎと、移動エージェントを携帯機器１−１〜１−ｎに転送するサーバ３と、サーバ３と携帯機器１−１〜１−ｎをネットワークを通して接続するWeb サーバ等の情報転送装置２からなる。
【００１８】
携帯機器１−１は、プログラム取得部１１、プログラム制御部１２、エージェント展開部１３、携帯側計算処理部１４、エージェント送信部１５及び記録媒体Ｋ１を備えている。尚、他の携帯機器１−２〜１−ｎも携帯機器１−１と同様の構成を有する。
【００１９】
プログラム取得部１１は、情報転送装置２を通して、サーバ３内のエージェント転送部３２からプログラム記述ファイルと、アーカイブとを取得する。
【００２０】
プログラム制御部１２は、プログラム取得部１１が取得したアーカイブに含まれるプログラムコード，プレースコードを実行、管理する。プレースコードを実行することにより、携帯機器１−１上には、エージェント展開部１３、携帯側計算処理部１４及びエージェント送信部１５が実現される。
【００２１】
エージェント展開部１３は、プログラム記述ファイル及びアーカイブ内にある情報を元に移動エージェントを再構築し、移動エージェントが携帯側計算処理部１４で実行を開始できるようにする。
【００２２】
携帯側計算処理部１４は、移動エージェントが処理実行するための環境を提供する。
【００２３】
エージェント送信部１５は、携帯側計算処理部１４での動作を終了した移動エージェントを、情報転送装置２を通して、サーバ３内のエージェント受信部３４に転送する。
【００２４】
記録媒体Ｋ１は、ディスク，半導体メモリ，その他の記録媒体であり、携帯機器１−１を携帯機器向け移動エージェント転送システムの一部として機能させるためのプログラムが記録されている。このプログラムは、携帯機器１−１のＣＰＵ（図示せず）によって読み取られ、その動作を制御することで、携帯機器１−１上にプログラム取得部１１，プログラム制御部１２を実現する。
【００２５】
サーバ３は、エージェント転送部３２、エージェント受信部３４、サーバ側計算処理部３５及び記録媒体Ｋ３を備えている。
【００２６】
サーバ側計算処理部３５は、移動エージェントが処理実行を行なうための実行環境を提供する。
【００２７】
エージェント転送部３２は、サーバ側計算処理部３５での動作を終了し、携帯機器へ移動するために待機中の移動エージェントを、携帯機器１−１〜１−ｎの内の、上記移動エージェントが指定した携帯機器へ転送する。また、エージェント転送部３２は、携帯機器１−１〜１−ｎ内のプログラム取得部１１からプログラム記述ファイル及びアーカイブを要求されたら、情報転送装置２を用いて、要求されたプログラム記述ファイル，アーカイブを要求元のプログラム取得部１１に転送する。
【００２８】
エージェント受信部３４は、情報転送装置２を通して、携帯機器１−１〜１−ｎ内のエージェント送信部１５から送られてきた、移動エージェントの識別子，内部状態を含むメッセージを受け付ける。受け付けたメッセージから移動エージェントを復元し、再びサーバ側計算処理部３５で動作を開始できる状態にする。
【００２９】
記録媒体Ｋ３は、ディスク，半導体メモリ，その他の記録媒体であり、コンピュータからなるサーバ３を携帯機器向け移動エージェント転送システムの一部として機能させるためのプログラムが記録されている。このプログラムは、サーバ３により読み取られ、その動作を制御することで、サーバ３上にエージェント転送部３２，エージェント受信部３４，サーバ側計算処理部３５を実現する。
【００３０】
エージェント転送部３２について更に詳細に構成を説明する。図２は、エージェント転送部３２の構成例を示すブロック図である。エージェント転送部３２は、複数の要素から構成することができ、プログラム記述ファイル生成部３２１と、プログラムアーカイブ生成部３２２と、エージェント待機部３２３とからなる。
【００３１】
エージェント待機部３２３は、サーバ側計算処理部３５で動作している移動エージェントが携帯機器への移動処理を開始してから携帯機器に転送される迄の間（移動エージェントが待機中の間）、上記移動エージェントの情報を管理する。エージェント待機部３２３が管理する待機中の移動エージェントの情報は、プログラム記述ファイル生成部３２１とプログラムアーカイブ生成部３２２とによって利用される。
【００３２】
プログラム記述ファイル生成部３２１は、携帯機器１−１〜１−ｎ内のプログラム取得部１１からプログラム記述ファイルを要求されると、プログラム記述ファイルを生成し、要求元に返す。プログラム記述ファイルを生成する際に、プログラム記述ファイル生成部３２１は、エージェント待機部３２３から移動エージェントの情報を取得する。また、プログラム記述ファイル生成部３２１は、プログラムアーカイブ生成部３２２に対してアーカイブの生成要求を出し、プログラムアーカイブ生成部３２２から上記生成要求に応答して生成したアーカイブの場所の情報を取得する。
【００３３】
プログラムアーカイブ生成部３２２は、プログラム記述ファイル生成部３２１からアーカイブの生成要求がくると、エージェント待機部３２３からアーカイブの生成に必要な移動エージェントの情報を取得して、アーカイブを生成した後、生成したアーカイブの場所をプログラム記述ファイル生成部３２１に返す。また、携帯機器１−１〜１−ｎ内のプログラム取得部１１からアーカイブの取得要求が来たら、要求元にアーカイブを返す。
【００３４】
次に、図３〜図６のフローチャートと、図７〜図１２のデータ構造を参照して本発明の前提技術の動作について詳細に説明する。
【００３５】
図３は、携帯機器１−ｊ（１≦ｊ≦ｎ）がサーバ３からプログラム記述ファイルとアーカイブを取得し、携帯機器１−ｊ上で移動エージェントを動作させた後、再びサーバ３へ移動エージェントを転送するまでの処理を説明するフローチャートである。図４は、サーバ３側でプログラム記述ファイルを生成し送り返すまでの処理の流れを説明するフローチャートである。図５は、サーバ３側でアーカイブを生成し送り返すまでの処理の流れを説明するフローチャートである。図６は、携帯機器１−ｊから送信された移動エージェントをサーバ３側で受信する処理の流れを説明するフローチャートである。
【００３６】
図７は、移動エージェントをサーバ３から携帯機器１−ｊに転送する際に、エージェント転送部３２から携帯機器１−ｊ内のプログラム取得部１１へ転送することが必要になる情報を示したものであり、上記移動エージェントの識別子，内部状態，プログラムコードと、プレースコードとを含む。これらの情報を、転送情報４００と呼ぶことにする。プレースコードは、移動エージェントを動作させるために必要な機能を持った、エージェント展開部１３、携帯側計算処理部１４、エージェント送信部１５を実行させるための実行コードである。尚、転送情報４００中の、移動エージェントの内部状態，プログラムコード及びプレースコードは、アーカイブにより転送し、識別子は、プログラム記述ファイルにより転送するものとする。
【００３７】
図８は、プログラムアーカイブ生成部３２２により生成されるアーカイブ４１０の一例を示すデータ構造図である。図９は、プログラム記述ファイル生成部３２１により生成されるプログラム記述ファイル４２０の一例を示すデータ構造図である。図１０は、移動エージェントを携帯機器１−ｊからサーバ３へ転送するために、エージェント送信部１５からエージェント受信部３４に送るメッセージ４５０の一例を示すデータ構造図である。図１１と図１２は、エージェント待機部３２３を特徴付けるデータ構造の一例を示す図である。
【００３８】
まず、携帯機器１−ｊ内のプログラム取得部１１に、携帯機器１−ｊを利用するユーザか、或いは組み込まれた他のシステムから、移動エージェントを表す識別子と、情報転送装置２の場所と、情報転送装置２が解釈するサーバ３の場所とが与えられる（図３，ステップＡ１０）。情報転送装置２の場所やサーバ３の場所は、具体的には、たとえば、ユニフォーム・リソース・ロケータ（Uniform Resource Locator; URL)でも良い。
【００３９】
プログラム取得部１１は、指定された移動エージェントの識別子を含んだプログラム記述ファイル要求メッセージを生成し、エージェント転送部３２内のプログラム記述ファイル生成部３２１に転送する（ステップＡ２０）。尚、エージェント転送部３２がメッセージの送信元を判別する手段を持たない場合、プログラム取得部１１は、上記メッセージに送信元である携帯機器１−ｊを表す携帯機器識別子を含める。また、プログラム記述ファイル要求メッセージに、移動エージェントの識別子を含ませるようにしたが、その代わりに移動エージェントの識別子を取得するための連想表の鍵を含ませるようにしても良い。この場合には、エージェント転送部３２内に、鍵と移動エージェントの識別子との対応関係を示す連想表を登録しておくことが必要になる。
【００４０】
プログラム記述ファイル生成部３２１は、携帯機器１−ｊからのプログラム記述ファイル要求メッセージを受け付けると、エージェント待機部３２３を参照し、上記メッセージ中の識別子によって特定される移動エージェントが待機中であるか否かを確認する（図４，ステップＣ１０，Ｃ２０）。
【００４１】
ステップＣ２０の処理を詳しく説明すると、次のようになる。エージェント待機部３２３は、携帯機器１−１〜１−ｎに移動するために待機している移動エージェントの情報を管理している。エージェント待機部３２３が管理している待機中の移動エージェントの情報は、具体的には、例えば、図１１に示すように、携帯機器識別子を鍵として移動エージェントを示す識別子のリストを値にする第１の連想表４３０と、図１２に示すように、移動エージェントの識別子を鍵として、移動エージェントのプログラムコードの場所と内部状態との組を値とする第２の連想表４４０の２つの連想表である。これらの連想表４３０，４４０は、サーバ側計算処理部３５で動作する移動エージェントが携帯機器への移動処理を行なう時に更新される。より具体的には、或る移動エージェントが待機中になった時、その移動エージェントの識別子を移動先の携帯機器識別子に対応付けて第１の連想表４３０に登録すると共に、上記移動エージェントの識別子，内部状態，プログラムコードの場所を第２の連想表４４０に登録する。また、移動エージェントが、携帯機器に転送された時、上記移動エージェントに関する情報を、第１，第２の連想表から削除する。
【００４２】
エージェント待機部３２３が管理している情報が、図１１，図１２に示すものである場合、プログラム記述ファイル生成部３２１は、プログラム記述ファイル要求メッセージの転送元の携帯機器１−ｊの携帯機器識別子を用いて第１の連想表４３０を検索し、上記携帯機器識別子に対応して登録されている移動エージェントの識別子のリストを取得する。そして、そのリストに上記プログラム記述ファイル要求メッセージに示された識別子が含まれているかどうかの検査をすることで、指定された識別子の移動エージェントが待機中であるかどうかを確認する。以上が、ステップＣ２０の処理である。
【００４３】
そして、識別子が含まれていない場合（ステップＣ２０がＮＯ）は、指定された識別子で示される移動エージェントは待機中ではないため、プログラム記述ファイル生成部３２１は、携帯機器１−ｊ内のプログラム取得部１１にエラーを返す（ステップＣ６０）。これに対して、含まれていた場合（ステップＣ２０がＹＥＳ）は、指定された識別子を持つ移動エージェントを転送するためにステップＣ３０の処理に進む。
【００４４】
ステップＣ３０では、先ず、プログラム記述ファイル生成部３２１が、プログラムアーカイブ生成部３２２に対してアーカイブの生成要求を出す。この生成要求は、上記プログラム記述ファイル要求メッセージに示された移動エージェントの識別子を含む。これにより、プログラムアーカイブ生成部３２２は、上記識別子を用いて、エージェント待機部３２３内の第２の連想表４４０から移動エージェントのプログラムコードの場所及び内部状態を取得し、更にプログラムコードの場所に基づいてプログラムコードを取得する。その後、プログラムアーカイブ生成部３２２は、取得した移動エージェントのプログラムコード及び内部状態に加え、自身が内部に保持している、全ての移動エージェントに共通のプレースコードを含んだアーカイブを生成する。以上がステップＣ３０で行う処理である。図８にプログラムアーカイブ生成部３２２が生成するアーカイブ４１０のデータ構造の一例を示す。尚、アーカイブにはコードを実行するために必要な実行情報を含めてもよい。例えば、コードが複数の実行ファイル又はクラスから構成されている場合、最初に実行するべきファイル又はクラスの名前をアーカイブに入れておく。また、プログラムが利用する画像等のリソースを含めるようにしても良い。
【００４５】
次のステップＣ４０では、先ず、プログラムアーカイブ生成部３２２が、プログラム記述ファイル生成部３２１に対してアーカイブを生成した場所を返す。具体的には、例えば、アーカイブをファイルシステム等に保存しておき、アーカイブの場所を表現するために、ディレクトリを含むファイル名、もしくは、ユニフォーム・リソース・ロケータなどを用いても良い。プログラム記述ファイル生成部３２１は、プログラムアーカイブ生成部３２２からアーカイブの場所が返却されると、返却されたアーカイブの場所を含んだ、例えば、図９に示すようなプログラム記述ファイル４２０を生成する。以上がステップＣ４０で行う処理である。
【００４６】
図９に示したプログラム記述ファイル４２０は、アーカイブの場所以外に、携帯機器１−ｊに転送する移動エージェントの識別子と、転送先の携帯機器１−ｊの携帯機器識別子と、プログラム関連情報とを含んでいる。
【００４７】
ここで、移動エージェントの識別子は、エージェント展開部１３が、プログラム取得部１１、もしくは、プログラム制御部１２から移動エージェントの識別子（プログラム取得部１１がサーバ３へ転送したプログラム記述ファイル要求メッセージに含まれている移動エージェントの識別子）を取得する方法が提供されていない場合に必要になるものであり、もし、そのような方法が提供されているのであれば、不要にすることができる。尚、プログラム取得部１１が送出するプログラム記述ファイル要求メッセージに、移動エージェントの識別子を含ませるようにした場合は、それをそのままプログラム記述ファイル４２０中の移動エージェントの識別子とすることができるが、プログラム記述ファイル要求メッセージに、連想表の鍵を含ませるようにした場合は、上記鍵に対応する連想表中の値（移動エージェントの識別子）をプログラム記述ファイル４２０中の識別子とする。
【００４８】
また、携帯機器識別子は、エージェント受信部３４がメッセージの送信元を判別できず、かつ、エージェント展開部１３が自身が動作している携帯機器１−ｊを示す携帯機器識別子を携帯機器１−ｊから取得する方法が提供されていない場合に必要になるものであり、もし、そのような方法が提供されているのであれば、不要にすることができる。
【００４９】
プログラム関連情報は、携帯機器１−ｊ上でプログラムを動作させるために必要となる情報である。具体的には、例えば、文献、２０００年９月、モバイル・インフォメーション・デバイス・プロファイル（ジェイ・エス・アール−３７）(Mobile Information Device Profile(JSR-37))では、アーカイブの名前、アーカイブのバージョン、アーカイブを作成したベンダ名、アーカイブの場所を示すユニフォーム・リソース・ロケータ、アーカイブのサイズをアプリケーション記述ファイルに含めなければならないと指定されている。これらの情報はプログラム取得部１１によって解釈される。
【００５０】
また、図９の例には示していないが、エージェント展開部１３が、プログラム取得部１１、もしくは、プログラム制御部１２から情報転送装置２の場所と、情報転送装置２が解釈するサーバ３の場所を取得する方法が提供されない場合、プログラム記述ファイルに情報転送装置２の場所と、情報転送装置２が解釈するサーバ３の場所も含めることが必要になる。
【００５１】
プログラム記述ファイル生成部３２１は、図９に示すようなプログラム記述ファイルを生成すると（ステップＣ４０）、それを携帯機器１−ｊ内のプログラム取得部１１に返却する（ステップＣ５０）。
【００５２】
携帯機器１−ｊ内のプログラム取得部１１は、プログラム記述ファイル生成部３２１からの返り値をチェックする（図３，ステップＡ３０）。返り値がエラーの場合、処理に失敗したわけであり、例えば、携帯機器１の画面（図示せず）に障害が発生した旨を表示し処理を終える（ステップＡ７０）。プログラム記述ファイルの取得に成功した場合、次のステップＡ４０の処理に進む。
【００５３】
ステップＡ４０では、プログラム取得部１１は、ステップＡ３０において取得したプログラム記述ファイル４２０に記述された中身を解析し、プログラムアーカイブ生成部３２２にアーカイブを要求する、アーカイブ要求メッセージを送信する。このアーカイブ要求メッセージには、プログラム記述ファイル４２０に示されるアーカイブの場所を含める。
【００５４】
プログラムアーカイブ生成部３２２は、アーカイブの場所を含んだアーカイブ要求メッセージを受け付けると、指定されたアーカイブの場所にアーカイブがあるか検査する（図５，ステップＤ１０，Ｄ２０）。正常な処理の流れで進めば、ステップＣ３０において既にアーカイブ４１０は指定の場所に生成されているが、存在しなかった場合エラーを返す（ステップＤ４０）。指定のアーカイブ４１０が存在すれば、プログラムアーカイブ生成部３２２は、それをプログラム取得部１１に転送する（ステップＤ３０）。
【００５５】
プログラム取得部１１は、プログラムアーカイブ生成部３２２からの返り値をチェックする（図３，ステップＡ５０）。返り値がエラーの場合、処理に失敗したわけであり、例えば携帯機器１−ｊの画面に障害が発生した旨表示し処理を終える（Ａ７０）。アーカイブ４１０の取得に成功した場合、次のステップＡ６０の処理に進む。
【００５６】
ステップＡ６０では、プログラム制御部１２が、プログラム取得部１１が取得したプログラム記述ファイル４２０とアーカイブ４１０とを利用して、アーカイブ４１０に含まれたプレースコードを実行する。これにより、アーカイブ４１０やプログラム記述ファイル４２０に含まれる移動エージェント本体を受け入れ、動作環境を提供するプレースの機能が、まず携帯機器１−ｊ上で動作する。より具体的には、携帯機器１−ｊ上にエージェント展開部１３，携帯側計算処理部１４，エージェント送信部１５が実現される。
【００５７】
次に、エージェント展開部１３に制御が移る。エージェント展開部１３は、アーカイブ４１０から移動エージェントの内部状態およびプログラムコードを取得する（ステップＡ８０）。エージェント展開部１３は、この２つを用いて、携帯側計算処理部１４上に移動エージェントを再構築する（ステップＡ９０）。移動エージェントは、携帯機器１−ｊの携帯側計算処理部１４上で処理を行なう（ステップＡ１００）。
【００５８】
移動エージェントが処理を終えると、エージェント送信部１５は、移動エージェントを移動元であるサーバ３に移動させるために、エージェント受信部３４にメッセージ４５０を送る（ステップＡ１１０）。図１０にメッセージ４５０のデータ構造の一例を示す。メッセージ４５０は、移動エージェントの識別子および内部状態から構成される。エージェント送信部１５は、エージェント展開部１３から、携帯側計算処理部１４上で動作する移動エージェントの識別子を取得すると共に、移動エージェントからその内部状態を取得し、上記メッセージ４５０を作成する。
【００５９】
エージェント受信部３４は、メッセージ４５０を受け付ける（図６，ステップＦ１０）。図１０のメッセージ４５０に含まれる識別子、内部状態より移動エージェントを復元し、再びサーバ側計算処理部３５で動作を開始できる状態にする（ステップＦ２０）。
【００６０】
以上、本発明の前提技術を挙げた。この前提技術では、サーバ３から携帯機器１−１〜１−ｎへ移動エージェントを転送するために、アーカイブに移動エージェントのコードと内部状態、プログラム記述ファイルにアーカイブの場所、識別子、携帯機器識別子等の情報を格納した。移動エージェントのコードとアーカイブの場所を除く他の情報、例えば識別子、携帯機器識別子等は、アーカイブもしくはエージェント記述ファイルのどちらに含めてもよい。ただし、内部状態は、プログラム記述ファイルに設定される他の情報と比較してサイズが大きい。従って、内部状態はアーカイブに含めた方が良い。
【００６１】
次に、本発明の第一の実施の形態について詳細に説明する。図１３は、本発明に係る携帯機器向け移動エージェント転送システムの第一の実施の形態の構成例を示すブロック図である。本実施の形態は、携帯機器１−１〜１−ｎの代わりに携帯機器１−１ａ〜１−ｎａを備えている点、及びサーバ３の代わりにサーバ３ａを備えている点が図１に示した本発明の前提技術と相違している。
【００６２】
携帯機器１−１ａは、待機リスト表示部１６が追加されている点、プログラム取得部１１の代わりにプログラム取得部１１ａを備えている点、及び記録媒体Ｋ１の代わりに記録媒体Ｋ１ａを備えている点が、図１に示した携帯機器１−１と相違している。尚、他の携帯機器１−２ａ〜１−ｎａも携帯機器１−１ａと同様の構成を有している。
【００６３】
待機リスト表示部１６は、携帯機器１−１ａのユーザ等の要求に応じてサーバ３ａから待機リストを取得し、携帯機器１−１ａの画面に表示する機能を有する。ここで、待機リストは、携帯機器１−１ａに移動するためにサーバ３ａで待機中の移動エージェントのリストである。従って、待機リストは、０個以上の待機状態にある移動エージェントの識別子を含む。更に、待機リストは、各識別子に対して付加的な情報を加えた表になっていても良い。図１５に待機リスト４７０の一例を示す。待機リスト４７０は、移動エージェントの識別子と人間が解釈する文字列（例えば、移動エージェントを特徴付ける文字列）とから構成される。この待機リスト４７０は、文字列に基づいてどのような移動エージェントが待機中であるのかをユーザが認識することができるので、非常に有効である。また、待機リスト表示部１６は、画面に表示した待機リスト中の、ユーザ等が選択した移動エージェントの識別子を含む移動エージェント取得要求をプログラム取得部１１ａに対して出力する機能を有する。
【００６４】
プログラム取得部１１ａは、図１に示したプログラム取得部１１が備えている機能に加え、待機リスト表示部１６からの移動エージェント取得要求を受け付ける機能を有する。
【００６５】
記録媒体Ｋ１ａは、ディスク，半導体メモリ，その他の記録媒体であり、携帯機器１−１ａを携帯機器向け移動エージェント転送システムの一部として機能させるためのプログラムが記録されている。このプログラムは、携帯機器１−１ａ内のＣＰＵ（図示せず）によって読み取られ、その動作を制御することで、携帯機器１−１ａ上に、待機リスト表示部１６，プログラム取得部１１ａ，プログラム制御部１２を実現する。
【００６６】
サーバ３ａは、待機リスト生成部３１が追加されている点、及び記録媒体Ｋ３の代わりに記録媒体Ｋ３ａを備えている点が図１に示したサーバ３と相違している。
【００６７】
待機リスト生成部３１は、或る携帯機器１−ｊａ（１≦ｊ≦ｎ）から待機リストが要求されたら、待機リストを生成し、情報転送装置２を用いて要求元の携帯機器１−ｊａに転送する機能を有する。ここで、待機リスト生成部３１は、図１４に示すように、エージェント転送部３２内のエージェント待機部３２３と接続されており、そこから携帯機器１−ｊａに移動するために待機中の移動エージェントの識別子のリストを取得し、待機リストを生成する。
【００６８】
記録媒体Ｋ３ａは、ディスク，半導体メモリ，その他の記録媒体であり、サーバ３ａを携帯機器向け移動エージェント転送システムの一部として機能させるためのプログラムが記録されている。このプログラムは、コンピュータからなるサーバ３ａによって読み取られ、その動作を制御することで、サーバ３ａ上に待機リスト生成部３１，エージェント転送部３２，エージェント受信部３４，サーバ側計算処理部３５を実現する。
【００６９】
次に、本実施の形態の動作について説明する。尚、ここでは、待機リスト表示部１６及び待機リスト生成部３１の動作を中心に説明する。
【００７０】
携帯機器１−ｊａ内の待機リスト表示部１６は、ユーザ等の指示に従って、待機リスト生成部３１に待機リストを要求する待機リスト要求メッセージを送る（図１６，ステップＥ１０）。尚、待機リスト生成部３１がメッセージの送信元を判別する手段を持たない場合、待機リスト要求メッセージに自携帯機器１−ｊａの携帯機器識別子を含める。
【００７１】
待機リスト生成部３１は、待機リスト表示部１６からの待機リスト要求メッセージを受け付ける（図１７，ステップＧ１０）。メッセージの送信元である携帯機器１−ｊａの携帯機器識別子を鍵にして、エージェント待機部３２３から携帯機器１−ｊａに移動するために待機中の移動エージェントの識別子のリストを取得し、その識別子を利用して待機リストを生成し（ステップＧ２０）、待機リスト表示部１６へ返す（ステップＧ３０）。
【００７２】
待機リスト表示部１６は、待機リストが返却されると、待機リスト表示部１６を利用するものに待機リストの中から一つの移動エージェントを選択させる（図１６，ステップＥ２０）。ここで、待機リスト表示部１６を人間（ユーザ）が利用する場合は、例えば、携帯機器１−ｊの画面に待機リストを表示して、ユーザに待機リストに載っている移動エージェントのうちの一つを選択させる。また、待機リスト表示部１６を携帯機器１−ｊの他のシステムが利用する場合は、例えば、待機リストを他のシステムに渡して、その内の一つの移動エージェントを選択させる。
【００７３】
待機リスト表示部１６は待機リストの中から選択された識別子を引数にして、プログラム取得部１１ａに移動エージェント取得要求を出す（ステップＥ３０）。これによりプログラム取得部１１ａは、図３のフローチャートに示す処理を行う。以後の動作は、本発明の前提技術と同様である。
【００７４】
次に、本発明の第二の実施の形態について説明する。図１８は本発明に係る携帯機器向け移動エージェント転送システムの第二の実施の形態の構成例を示すブロック図である。本実施の形態は、サーバ３の代わりにサーバ３ｂを備えている点が図１に示した本発明の前提技術と相違している。
【００７５】
サーバ３ｂは、移動番号管理部３３が追加されている点と、エージェント転送部３２，エージェント受信部３４，記録媒体Ｋ３の代わりにエージェント転送部３２ｂ，エージェント受信部３４ｂ，記録媒体Ｋ３ｂを備えている点が図１に示したサーバ３と相違している。
【００７６】
本実施の形態で追加された移動番号管理部３３の役割は、サーバ３ｂから或る携帯機器１−ｊへ移動し、再びサーバ３ｂへ戻ってくる移動エージェントが一つであることを保証するために利用する移動番号を管理することである。例えば、ネットワークの障害等により、携帯機器１−ｊのエージェント送信部１５から送信された複数の同じ内容のメッセージ４５０がエージェント受信部３４に到着するかも知れない。その様な場合に、移動番号はエージェント受信部３４が最初の一つのメッセージだけを受付け、あとのメッセージを無視することを可能にする。図１９は移動番号管理部３３が管理する移動番号管理データ４６０の一例を示す図であり、移動エージェントの識別子と移動番号とを項目にした表を移動番号管理データ４６０として管理する。
【００７７】
エージェント転送部３２ｂは、図２０に示す構成を有するものであり、プログラム記述ファイル生成部３２１の代わりにプログラム記述ファイル生成部３２１ｂを備えている点が、本発明の前提技術におけるエージェント転送部３２と相違している。プログラム記述ファイル生成部３２１ｂは、プログラム記述ファイル生成部３２１が備えている機能に加え、移動番号管理部３３から移動番号を取得する機能や、プログラム記述ファイルに移動番号を含める機能を有する。
【００７８】
エージェント受信部３４ｂは、本発明の前提技術におけるエージェント受信部３４が備えている機能に加え、移動番号管理部３３から移動番号を取得する機能や、移動番号管理部３３から取得した移動番号と携帯機器１−ｊからのメッセージ４５０ｂ（移動エージェントをサーバ３ｂへ転送するためのメッセージであり、後で図２２を参照して説明する）に含まれている移動番号とに基づいてメッセージ４５０ｂを受け付けるか否かを判定する機能や、移動番号管理部３３に対して新しい移動番号の設定を要求する機能を有する。
【００７９】
記録媒体Ｋ３ｂは、ディスク，半導体メモリ，その他の記録媒体であり、コンピュータからなるサーバ３ｂを携帯機器向け移動エージェント転送システムの一部として機能させるためのプログラムが記録されている。このプログラムは、サーバ３ｂによって読み取られ、その動作を制御することで、サーバ３ｂ上にエージェント転送部３２ｂ，移動番号管理部３３，エージェント受信部３４ｂ，サーバ側計算処理部３５を実現する。
【００８０】
次に、本実施の形態の動作を説明する。尚、ここでは、移動番号管理部３３で管理されている移動番号がどのように利用されるのかを中心にして、本発明の前提技術で説明した動作と異なる動作について説明する。
【００８１】
本実施の形態では、図４に示したフローチャートのステップＣ３０，Ｃ４０の動作が、本発明の前提技術で説明した動作と異なるものになる。
【００８２】
ステップＣ３０では、プログラム記述ファイル生成部３２１ｂが、プログラム記述ファイル生成部３２１が行う処理に加え、移動番号管理部３３に対して移動エージェントの識別子を渡す処理、および移動番号管理部３３から返却される移動番号を受け取る処理を行う。また、移動番号管理部３３は、プログラム記述ファイル生成部３２１ｂから移動エージェントの識別子が渡されると、図１９の移動番号管理データ４６０から上記識別子に対応する移動番号を検索し、検索した移動番号をプログラム記述ファイル生成部３２１ｂに返り値として返す。また、ステップＣ３０では、プログラムアーカイブ生成部３２２が、アーカイブ４１０を生成するが、本実施の形態で生成するアーカイブ４１０に含まれるプレースコードは、携帯機器１−ｊｂ上にエージェント送信部１５の代わりにエージェント送信部１５ｂを構築するものであり、その点が本発明の前提技術のアーカイブ４１０とは相違している。
【００８３】
また、ステップＣ４０では、プログラム記述ファイル生成部３２１ｂは、プログラム記述ファイル生成部３２１が生成するプログラム記述ファイル４２０に、ステップＣ３０で受け取った移動番号を追加した図２１に示すプログラム記述ファイル４２０ｂを生成する。
【００８４】
更に、本実施の形態では、図３のフローチャートのステップＡ１１０の動作が、本発明の前提技術で説明した動作とは異なる。
【００８５】
ステップＡ１１０では、エージェント送信部１５が移動エージェントをサーバ３ｂへ返すためのメッセージを生成するが、本実施の形態では、本発明の前提技術におけるメッセージ４５０に移動番号を追加した、図２２に示すようなメッセージ４５０ｂを生成する。
【００８６】
更に、本実施の形態では、エージェント受信部３４ｂの動作が本発明の前提技術のエージェント受信部３４と異なるものになる。このエージェント受信部３４ｂの動作を図２３のフローチャートを用いて説明する。
【００８７】
エージェント受信部３４ｂは、エージェント送信部１５から送られてきた、移動番号を含んだメッセージ４５０ｂを受信する（ステップＨ１０）。次に、エージェント受信部３４ｂは、メッセージ４５０ｂに含まれる移動エージェントの識別子を移動番号管理部３３に渡し、移動番号管理部３３は、識別子に対応する移動番号を返す（ステップＨ２０）。エージェント受信部３４ｂは、移動番号管理部３３から取得した移動番号と、上記メッセージ４５０ｂに含まれる移動番号とを比較する（ステップＨ３０）。もし同じであれば、初めて受け取るメッセージであるので次の処理へ進むが、異る場合は、既にそのメッセージは受け付けていると判断してなにもしない。エージェント受信部３４ｂは、移動番号管理部３３に識別子を渡し、新しい移動番号の設定を要求する。移動番号管理部３３は移動番号管理データ４６０の識別子に対応する移動番号を新しく生成して、設定する（ステップＨ４０）。その後、エージェント受信部３４ｂが、移動エージェントを復元する（ステップＨ５０）。
【００８８】
任意の移動エージェントの転送に対して割り当てられる移動番号は、システムが起動し終了するまでの間、前記移動エージェントの携帯機器への過去または未来の別の転送に対して割り当てられる他の移動番号と異る必要がある。その様な移動番号を生成する一つの実施例としてカウンタがある。移動番号として、例えば最初に０を設定しておき、新しい移動番号の設定要求が来ると、その番号を一つ増やす。以上のような処理により、なんらかの障害によって複数の同じ内容のメッセージが到着したとしても、最初のメッセージの到着後に移動番号が変更されるため、次に到着した同じ内容のメッセージを無視することが可能になる。
【００８９】
図１の携帯機器１と情報転送装置２の間の通信は、１９９９年６月、アール・エフ・シー２６１６、ハイパーテキスト・トランスファー・プロトコル--エイチ・ティ・ティ・ピィ／１．１（RFC2616, Hypertext Transfer Protocol--HTTP/1.1）記載の、エイチ・ティ・ティ・ピィ（HTTP）を用いることで容易に実現できる。情報転送装置２とサーバ３の間の通信は、Web サーバと、１９９９年１２月、サン・マイクロシステムズ発行、ジャバ・サーブレット・スペシフィケーション、v2.2（Sun Microsystems発行、Java Servlet Specification, v2.2）に記載のServlet を利用することで容易に実現できる。
【００９０】
また、本発明は、前述した第一，第二の実施の形態以外に種々の変形が可能である。
【００９１】
【発明の効果】
以上説明したように、本発明は、サーバから携帯機器へ、携帯機器上に移動エージェントの実行環境を構築するためのプレースコードを送り、携帯機器がプレースコードに基づいて移動エージェントの実行環境（エージェント展開部，携帯側計算処理部，エージェント送信部等）を構築するので、サーバと携帯機器との間で移動エージェントを転送することが可能になる。
【００９２】
また、本発明は、携帯機器に移動するために待機中の移動エージェントを示す待機リストを、サーバから携帯機器へ送信し、携帯機器においてユーザ等に待機リストを提示するようにしているので、ユーザ等が自携帯機器に移動するために待機中の移動エージェントを容易に認識することが可能になる。
【００９３】
更に、本発明は、移動番号管理部を備えているので、ネットワーク障害などにより、サーバ側で同一の移動エージェントが複数動作してしまうという事態の発生を防ぐことが可能になる。
【図面の簡単な説明】
【図１】  本発明の前提技術の構成例を示すブロック図である。
【図２】  エージェント転送部３２の構成例を示すブロック図である。
【図３】  携帯機器１−１〜１−ｎの処理の流れを示すフローチャートである。
【図４】  プログラム記述ファイル作成処理の流れを示すフローチャートである。
【図５】  アーカイブの転送処理の流れを示すフローチャートである。
【図６】  移動エージェントの受信処理の流れを示すフローチャートである。
【図７】  転送情報４００の一例を示す図である。
【図８】  アーカイブ４１０の一例を示す図である。
【図９】  プログラム記述ファイル４２０の一例を示す図である。
【図１０】  メッセージ４５０の一例を示す図である。
【図１１】  エージェント待機部３２３が管理する第１の連想表４３０の一例を示す図である。
【図１２】  エージェント待機部３２３が管理する第２の連想表４４０の一例を示す図である。
【図１３】  本発明の第一の実施の形態の構成例を示すブロック図である。
【図１４】  エージェント転送部３２と待機リスト生成部３１との接続関係を示すブロック図である。
【図１５】  待機リスト４７０の一例を示す図である。
【図１６】  待機リスト取得処理の流れを示すフローチャートである。
【図１７】  待機リスト生成処理の流れを示すフローチャートである。
【図１８】  本発明の第二の実施の形態の構成例を示すブロック図である。
【図１９】  移動番号管理データ４６０の一例を示す図である。
【図２０】  エージェント転送部３２ｂの構成例を示すブロック図である。
【図２１】  プログラム記述ファイル４２０ｂの一例を示す図である。
【図２２】  メッセージ４５０ｂの一例を示す図である。
【図２３】  移動番号を利用した場合の移動エージェントの受信処理の流れを示すフローチャートである。
【図２４】  従来の携帯機器向けプログラム転送システムの一例を示すブロック図である。
【図２５】  従来の移動エージェント転送システムの一例を示すシーケンス図である。
【図２６】  移動エージェント４８０の一例を示す図である。
【符号の説明】
１−１〜１−ｎ，１−１ａ〜１−ｎａ…携帯機器
１１，１１ａ…プログラム取得部
１２…プログラム制御部
１３…エージェント展開部
１４…携帯側計算処理部
１５…エージェント送信部
１６…待機リスト表示部
Ｋ１，Ｋ１ａ…記録媒体
２…情報転送装置
３，３ａ，３ｂ…サーバ
３１…待機リスト生成部
３２，３２ｂ…エージェント転送部
３２１，３２１ｂ…プログラム記述ファイル生成部
３２２…プログラムアーカイブ生成部
３２３…エージェント待機部
３３…移動番号管理部
３４…エージェント受信部
３５…サーバ側計算処理部
Ｋ３，Ｋ３ａ，Ｋ３ｂ…記録媒体
４００…転送情報
４１０…アーカイブ
４２０，４２０ｂ…プログラム記述ファイル
４３０…第１の連想表
４４０…第２の連想表
４５０，４５０ｂ…メッセージ
４６０…移動番号管理データ
４７０…待機リスト
４８０…移動エージェント
５…携帯機器
５１…プログラム取得部
５２…プログラム制御部
６…情報転送装置
【図１】
0003815231.tif 000002
【図２】
0003815231.tif 000003
【図３】
0003815231.tif 000004
【図４】
0003815231.tif 000005
【図５】
0003815231.tif 000006
【図６】
0003815231.tif 000007
【図７】
0003815231.tif 000008
【図８】
0003815231.tif 000009
【図９】
0003815231.tif 000010
【図１０】
0003815231.tif 000011
【図１１】
0003815231.tif 000012
【図１２】
0003815231.tif 000013
【図１３】
0003815231.tif 000014
【図１４】
0003815231.tif 000015
【図１５】
0003815231.tif 000016
【図１６】
0003815231.tif 000017
【図１７】
0003815231.tif 000018
【図１８】
0003815231.tif 000019
【図１９】
0003815231.tif 000020
【図２０】
0003815231.tif 000021
【図２１】
0003815231.tif 000022
【図２２】
0003815231.tif 000023
【図２３】
0003815231.tif 000024
【図２４】
0003815231.tif 000025
【図２５】
0003815231.tif 000026
【図２６】
0003815231.tif 000027