(57)【要約】　【課題】　本発明の目的は、他の存在位置に関する情報を絶えず得る必要なくユーザとプログラムとの間で入出力できるようにするためのシステム及び方法を提供することである。　【解決手段】　移動ユーザ、又は移動プログラムとで相互会話するユーザが、いかなる時もプログラム状態要求を初期化できる方法である。プログラム状態要求はイベントのシーケンスを初期化して、それによって、現在のプログラムの位置が決定され、現在のユーザの位置がプログラムに対して変更する位置を知る必要性なく利用可能になる。　さらに、プログラムのためのエージェント・スクリプトは、入力変数を格納する入力バッファと、ユーザに示すべき出力値を格納する出力バッファと、プログラム状態データ構造と、必要に応じてプログラムが将来の実行の最中に必要となる入力値を一時的に格納するバッグバッファとを含む複合データ構造を保持する。プログラム又はユーザが位置を変更したかどうかに関わりなく、そのような複合データ構造を保持することによって、すべての必要な情報はプログラム位置で提供される。【選択図】図６
2004094969.tif 000002
【特許請求の範囲】
【請求項１】
プログラムが入力値を必要とする前に、ユーザに実行プログラムへの入力値を提供することを可能にするための方法であって、
　プログラム内の、変数名／変数値の対のバッグバッファを保全するステップと、
　前記ユーザから、入力値を含む通信を受信するステップと、
　前記バッグバッファ内に、前記入力値を一時的に記憶するステップと、
を含む方法。
【請求項２】
前記プログラムが、次に、前記バッグバッファのコンテンツを検索し、前記ユーザから入力を要求する前に、必要とされる入力値を位置する、請求項１に記載の方法。
【請求項３】
前記プログラム内のバッグバッファを保全するステップをさらに含み、前記検索するステップが、
　バッグバッファ内で、前記入力変数と関連する入力値を検索するステップと、
　発見された場合は、前記入力値とともに前記入力変数を更新するステップと、
　発見されなかった場合は、入力バッファ内に、前記入力変数を配置するステップと、
　適切な値が、前記バッグバッファ内に発見されなかった場合には、電子手段を介して、オプションで前記ユーザに通知するステップと、
を含む、請求項２に記載の方法。
【請求項４】
前記電子手段がページャである、請求項３に記載の方法。
【請求項５】
前記電子手段がビーパである、請求項３に記載の方法。
【請求項６】
前記電子手段が電子メールである、請求項３に記載の方法。
【請求項７】
前記電子手段がスマートフォンである、請求項３に記載の方法。
【請求項８】
ユーザに表示するために、出力値を記憶するための出力バッファと、
　変数に対し、要求されるユーザ入力値を記憶するための、入力バッファと、
　前記プログラムの少なくとも前記現在の状態を記憶するための、プログラム状態バッファと、
を含む、コンピュータプログラムデータ構造。
【請求項９】
入力変数を記憶するためのバッグバッファを更に含む、請求項８に記載のデータ構造。
【請求項１０】
前記バッグバッファがアレイデータ構造である、請求項９に記載のデータ構造。
【請求項１１】
前記バッグバッファがハッシュテーブルデータ構造である、請求項９に記載のデータ構造。
【請求項１２】
前記バッグバッファが、タプルスペースデータ構造である、請求項９に記載のデータ構造。
【請求項１３】
前記モバイルプログラムに関するルーティング情報を保全するためのルーティングコンポーネンツと、
　前記プログラムに関するユーザ状態要求を処理するためのプロセッサコンポーネンツと、
　前記プログラムの少なくとも部分を実行するための実行コンポーネンツと、
を含む、モバイルプログラム用の実行シェル。
【請求項１４】
ユーザ入力を受信し、該ユーザ入力を、前記プログラム用の少なくとも一つのデータ構造に記憶するためのデータ処理コンポーネンツを更に含む、請求項１３に記載の実行シェル。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明はコンピュータプログラムの入力及び出力機能に関する。より特徴的には、本発明は、プログラムとユーザとの間における位置独立及び位置透過な相互対話を可能とすることに関連づけられ、プログラムとユーザの一又は双方は移動するものである。
【背景技術】
【０００２】
　ユーザとプログラムとの間における相互対話を支援するために、現行のシステムはプログラム及びユーザに対し常に互いの位置を知らせることを要求している。もし、移動エージェント・プログラムのようなプログラムが異なったホストに移動する場合、入力を受け取るため又はユーザへ出力を表示するために、そのプログラムがユーザの位置に戻らなければならないか又はそのプログラムはユーザの位置で他のプログラムを介して通信しなければならない。これは、ユーザが移動する場合（例えば、ラップトップ又はハンドヘルドの装置を使用している場合）、それゆえにプログラムが送り出されてからいつも最初の位置にいるわけではない場合に問題となる。同様に、ユーザがもしネットワーク上で他の位置に移動することを選択する場合、そのユーザは、入力を提供し又はプログラムからの出力を受け取るために、プログラムを実行している機器へアクセスしなければならない。
【０００３】
　従来のシステムにおいては、プログラムとユーザとの間の相互対話は、標準入出力構成を用いて取り扱われている。例えば、Ｃプログラミング言語においては、入力構成は”scanf()”機能であり、出力構成は”printf()”機能である。Ｊａｖａ言語では、入力は“java.io.InputStremReader”及び“java.io.InputStream,”のような階層での方法を用いて実行される。一方、出力は“java.io.PrintWriter”及び“java.io.PrintStream”のような階層での方法を用いて実行される。そのようなプログラムのためにユーザとプログラムの双方は同じ位置にいなければならない。
【０００４】
　ホワイト他、「ネットワーク上での移動、実行及びプロセスの相互対話に基づく分配計算のためのシステム及び方法」との名称を有する米国特許第５６０３０３１号（１９９７年２月１１日に発行）、及び、ランジ他による「ＩＢＭ　Aglets Workbench--Java Mobile Agents in Java（Ｊａｖａによる移動エージェントプログラム）」（１９９７年ワールド・ワイド・コンピューティング及びその利用253頁から266頁における日本での報告）に記載されているような従来技術においては、一つのホスト位置でそのコード部分をプログラムが実行し、次に、コードの新しい部分を実行する他のホスト位置に移動する。ユーザに対するデータの表示やユーザからの入力の受信が必要とされる場合、そのようなシステムにおける移動エージェントとユーザとの間の相互対話が、ユーザの装置に移動してユーザの装置にて実行するエージェントによって達成される。
【０００５】
　従来のシステムは、３つの制限を有する。第一に、プログラム及びユーザの両者とも、相互の位置を常に知ることが必要なことである。第二に、プログラムがユーザの位置に移動しなければならない状態では、いかなる場合でもユーザの装置がプログラムを実行し及びホストを利用可能にするプログラム実行環境を持たなければならないことである。第三に、プログラムの実行開始以前にプログラムにイニシャルパラメータを供給するためのメカニズムが存在する一方で、プログラムが実行を開始した後に、プログラム実行中又はプログラムがそれらを求める前に、プログラムの状態を決定することとプログラムに入力を供給することとの双方をユーザに許可するメカニズムがないことである。
【特許文献１】米国特許第５６０３０３１号
【特許文献２】米国特許明細書０８／８４７，０７９
【非特許文献１】ランジ他による「ＩＢＭ　Aglets Workbench--Java Mobile Agents in Java（Ｊａｖａによる移動エージェントプログラム）」（１９９７年ワールド・ワイド・コンピューティング及びその利用253頁から266頁における日本での報告）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
　本発明の目的は、他の存在位置に関する情報を絶えず得る必要なくユーザとプログラムとの間で入出力できるようにするためのシステム及び方法を提供することである。
【０００７】
　本発明の他の目的は、プログラムが実行できるようにするためにそのプログラムを利用できる実行環境を有することをユーザの装置に要求することなく、ユーザとプログラムとの間で入出力できるようにするためのシステム及び方法を提供することである。
【０００８】
　本発明の他の目的は、実行中の移動プログラムの状態を決定することと、プログラム実行中に及び入力が実際に必要とされる前にプログラムへの入力を供給することとの双方をユーザに提供することである。
【課題を解決するための手段】
【０００９】
　この発明のこれらの及び他の目的は、システム及び方法からなる本発明によって達成される。ここでは、移動するユーザ又は移動プログラムと相互対話するユーザは、いかなる場合にもプログラム状況の要求を初期化することができる。プログラム状況の要求は、イベントのシーケンスを初期化する。それによって現在のプログラムの位置は決定され、現在のユーザの位置は、位置を変更するエンティティーのどちらか一方の必要性なく利用可能にされる。さらに、プログラムのエージェント・スクリプトは、利用可能な入力を格納する入力バッファを含む複合データ構造と、出力値を格納する出力バッファ、プログラム状況データ構造と、及び必要に応じて将来の実行の最中にプログラムが必要とするであろう入力値を一時的に格納するバッグ・バッファとを保持する。そのような複合データ構造を得ることによって、プログラム又はユーザが新しい場所に変わったかどうかに関わりなく、プログラム位置にてすべての必要な情報が提供される。
【発明を実施するための最良の形態】
【００１０】
　本明細書において用いられる用語の定義は以下の通りである。
【００１１】
　ホスト又はホスト装置とは、プログラムが実行される計算システムをいい、例えば、メインフレーム、デスクトップ・パーソナル・コンピュータ、ポータブル・ラップトップ・コンピューター又はハンドヘルド装置のような計算システムをいう。
【００１２】
　ネットワークとは、物理的及び論理的通信インフラストラクチャーにより相互接続されたホスト一式をいう。
【００１３】
　ユーザ（user）とは、ネットワーク環境でのユーザ（human user）をいう。
【００１４】
　クライアントとは、ネットワークに対するユーザのインターフェースであり、通信能力を備えたコンピューター、ハンドヘルド・ポータブル装置、又は他の装置がありうる。
【００１５】
　プログラムとは、ホスト装置で実行する命令のシーケンスをいう。
【００１６】
　移動プログラムとは、移動エージェント、例えば、各ホスト装置でいくつかの命令を実行しながらあるホスト装置から他のホスト装置まで移動するプログラムをいう。
【００１７】
　エージェント・サーバーとは、移動エージェントのための実行環境を備えたホストマシーンをいう。
【００１８】
　エージェント実行シェル（ＡＥＳ）とは、ホストのエージェント・サーバーで移動エージェントが命令の一部を実行するソフトウエアサブシステムをいう。
【００１９】
　以下、移動エージェントのような移動プログラムにおいて最適な実施例を示す。
【００２０】
　図１は、本発明の特徴が含まれるシステムを表した図である。ここで、ネットワーク・システム１００はこのシステムにおいて別の役割を有するコンピュータを接続する。１０２、１０４ａ、１０４ｂ及び１０６で示されるコンピュータは、ＯＳ／２、ＵＮＩＸ、ＡＩＸ又はウィンドウズＮＴのような従来のオペレーティングシステムで制御可能なコンピュータであり、これらは通信プロトコルにより結合され通信ネットワーク１０８を介して相互に接続されている。通信プロトコルは、ＵＤＰ／ＩＰ又はＴＣＰ／ＩＰで動作し得る、例えば、サンマイクロシステムズＲＰＣが用いられ得る。ネットワーク１０８はＬＡＮ、インターネット又はイントラネットがあり得る。クライアント１０２及びエージェントサーバー１０４ａ、１０４ｂは、ＩＢＭ−ＰＣのような従来のパーソナルコンピュータ（ＰＣ）によって具体化され得る。各コンピュータには、ネットワーク１０８上を通信していたオペレーティングシステムにおけるＴＣＰ／ＩＰスタックのような従来の通信システム１１２がある。さらに、クライアントもまた、パームパイロット（ＰａｌｍＰｉｌｏｔ）又はスマート・セルラーホンのようなハンドヘルド・ポータブル移動装置によって実現され得る。これらの移動装置は、通信ネットワーク１０８に接続するために、セルラーホン技術、赤外線通信手段又は他の均等な手段を用いて専用のオペレーティング・システムを動作させることができる。クライアント装置１０２とエージェント・サーバー１０４ａ、１０４ｂとの間の区別は論理的又は物理的であるかもしれないこと、及び、クライアントは関連するプログラムのための実行環境を提供することができる必要はない点に注意すべきである。
【００２１】
　図１にはクライアントが一つのみ示されているが、ネットワークシステム１００には多くのクライアントが存在しうる。エージェント・パーソナル・アシスタント（ＡＰＡ）１１０と呼ばれるサブシステムを用いて、エージェントプログラムは、クライアント装置１０２から送り出される。エージェントの送り出しに加えて、このサブシステムはデバッグし、更新し及びエージェント状態をチェックする能力がある。このようなサブシステムはデヴァラコンダ他の米国特許明細書０８／８４７，０７９に開示されており、１９９７年５月１日に出願された「ダイナミック移動エージェント」と題されている。本発明においては、ＡＰＡ１１０は、ウェブ・インターフェースの応用として具体化されていることが好ましい。これらのタスクを成し遂げるため、ＡＰＡ１１０は、ウェブ・サーバー１０６内に配置されているデスクトップ・サーバー１１４と相互対話を行う。
【００２２】
　ネットワーク・システム１００内には、複数のエージェント・サーバーが存在し得る。エージェント・サーバ１０４ａ、１０４ｂのそれぞれは、エージェント実行シェル（ＡＥＳ）１２０といわれるソフトウエア・サブシステムを含む実行環境を支援する。このＡＥＳ１２０はエージェントの実行のために唯一のコーディネーターとして動作し、現在アクティブなすべてのエージェントの状態を含む内部テーブルを保持する。各エージェント・サーバーは、移動エージェントが動き始める位置と動き終わる位置を記録するための少なくとも一つの経路指定テーブルをさらに保持する。
【００２３】
　図２は、本発明で用いられるエージェント・コードの典型的な例を示す。ステップ２００では、装置内である計算をした後に、エージェントは次のホスト装置Ｑへ移動する。次のホストはコード内で特定されてもよいし、前記特許明細書での記載又は参考文献に含まれる開示によって示されたように動的に決定されてもよい。エージェント・コードは、出力を供給するためのＰＲＩＮＴステートメント、及び、マシーンＱからの入力値を読むためのＲＥＡＤステートメントを含んでもよい。図示されるように、ステップ２０２ａでは、ＰＲＩＮＴステートメントによりエージェントはユーザに結果を表示することができ、一方でステップ２０４ａでＲＥＡＤステートメントによりエージェントがユーザからの入力を要求できる。ＲＥＡＤステートメント、ＰＲＩＮＴステートメント又は他の構文の実行のような、要求された計算を果たした後、エージェントはステップ２０６で装置Ｒに移動する。再びエージェントコードはＰＲＩＮＴステートメント及びＲＥＡＤステートメントを含む場合がある。それらは２０４ａ、２０４ｂでそれぞれ実行され得る。ステップ２０８でコードは実行終了となる。
【００２４】
　図３は、本発明により通信ネットワーク１０８を介して移動する場合のエージェント・スクリプト３０２に関する複合データ構造を示す。エージェント・スクリプトが動くに従って複合データ構造の構成要素の内容が変化する間、バッグ３０４、ＳＴＤアウト３０６，ＳＴＤイン３０８を含むデータ構造の構成要素、及び、プログラム状態３１０は利用可能な状態にとどまる。“バッグ”３０４はバッファであり、将来のプログラムを利用するためにプリセットや入力が動的になされる変数名や変数値のペアを１セット含んでいる。プログラムが入力を要求する場合、エージェント・スクリプトは変数の値を配置して次にその値を検索するためバッグの内容を検査する。特定の変数名のための値は、同一名に対する次の要求に対しシーケンシャルに応答されるであろう値のセットの場合もある。バッグが必要とされる変数の値を含まない場合、エージェント・スクリプトはブロックして、ユーザが必要データを入力するのを待つ。バッグ・バッファは、アレー、ハッシュ・テーブル、タプル・スペース又はその他の均等なデータ構造として実現されるかもしれない。“ＳＴＤアウト”バッファ３０６は、エージェントによって生成されるすべての出力を含む。ＳＴＤアウト・バッファ３０６の内容は、要求された時にユーザに表示される。“ＳＴＤイン”バッファ３０８は、エージェントスクリプトがユーザからの入力値を待っているための変数名を含む。入力変数の値をエージェント・スクリプトに通信するためにＳＴＤイン・バッファ３０８がＡＥＳ１２０によって用いられる。最後に、プログラム、スタック及び可変データ構造が、エージェント・スクリプトのプログラム状態３１０を表すために含まれている。
【００２５】
　図４は、エージェントのプログラム・ステートメント実行中にＡＥＳ１２０の実施例により成し遂げられる方法を示す。本発明に適切なステートメントのみが図４に示されている。ステップ４０２で、ＡＥＳ１２０は次の実行ステートメントを検査する。ステップ４０４で、ＡＥＳ１２０はステートメントがＥＮＤステートメントかどうかを判定する。ＥＮＤステートメントの場合、ＡＥＳステップ４０６でエージェントの実行を終了する。次のステートメントがＥＮＤステートメントでない場合、ＡＥＳ１２０はステップ４０８でステートメントがＰＲＩＮＴステートメントかどうかを判定する。もし次のステートメントがＰＲＩＮＴステートメントである場合、ステップ４１０において、ＡＥＳ１２０はプログラム状態３１０からのＰＲＩＮＴステートメントに対する引き数を検索し、あらかじめ決定されたフォーマットでＳＴＤアウト・バッファ３０６にその値を付加する。
【００２６】
　ステップ４０８で、ステートメントがＰＲＩＮＴステートメントでないと結論づけられた場合には、ＡＥＳ１２０は次のステップ４１２においてステートメントがＲＥＡＤステートメントかどうかを判定する。ステップ４１２においてステートメントがＲＥＡＤステートメントである場合には、ＡＥＳ１２０はステップ４２４において必要な変数の値がバッグ３０４で利用可能であるかどうかをチェックする。もし値が利用可能である場合には、ステップ４２６においてその値は検索されバッグ３０４から再移動される。変数が更新され、そしてＡＥＳ１２０はステップ４０２に戻ってプログラムの実行を継続する。ステップ４２４により値が利用可能でないと判定された場合には、ＡＥＳ１２０はステップ４１４においてＳＴＤイン・バッファ３０８にＲＥＡＤステートメントの引き数名を付与する。場合により、ステップ４１６において、ＡＥＳ１２０は入力を必要とされるページャー、ビーパー、電子メールのような電子手段を経由してユーザに通知する。エージェント・スクリプトが送り出されたときにユーザにより通知することが指定されるようにするのが好ましい。
【００２７】
　ステップ４１８では、ＡＥＳ１２０は、プログラムの実行を保留し、入力値が利用可能となる通知を待つ。入力値についてＡＥＳ１２０を通知するロジックは図５に示されており、下記に説明がなされている。ステップ４２０において、ＡＥＳ１２０が通知を受け取った後に、ステップ４２２において、ＡＥＳ１２０は新たな値と共にプログラム状態３１０を更新する。そしてステップ４０２に戻りプログラムの実行を継続する。ユーザが、後のステップにおいてプログラムにより要求されるであろう、既知の入力を提供した場合、ＡＥＳは更にバッグの内容を更新する。ステップ４１２において、ステートメントがＲＥＡＤステートメントでないと判定された場合には、ステップ４２３においてＡＥＳ１２０は他のステートメントを適切に処理し、そしてステップ４０２に戻ってプログラムの実行を継続する。一の最適な実施例において、バッグの全内容は一時に用いられることができ（バッグは直ちに要求される入力以上の内容を含むと仮定する）、プログラム実行の各入力時において、バッグの内容を再び検査しなければならないということなく、用いられた入力を役立たせることになる。
【００２８】
　図５は、本発明の実施例においてユーザがエージェントと対話を行うステップを示す。ユーザが、ＡＰＡ１１０からエージェントに向けて状態要求を開始する。要求はＡＰＡ１１０によってウェブ・サーバーにあるデスクトップ・サーバー１１４に転送される。次に、デスクトップ・サーバー１１４は、エージェントが初期に送り出されたエージェント・サーバーにあるＡＥＳ１２０に対し状態要求として要求を転送する。ＡＥＳ１２０は、ステップ５０２において、デスクトップ・サーバー１１４によって転送された状態要求を受け取る。次にＡＥＳ１２０はステップ５０４において内部状態テーブルからエージェント状態を検索する。次にＡＥＳ１２０はステップ５０６においてエージェントが現在の位置においてまだ実行中であるかどうかを判定する。エージェントが現在の位置においてもはや実行していない場合には、ＡＥＳ１２０はその経路指定テーブルをチェックする。そして次にステップ５０８において状態要求をエージェントが送られた場所に転送する（そして次の装置においてステップ５０２から再開する）。
【００２９】
　ステップ５０６においてエージェントが現在の場所で現在実行していると判定された場合には、ＡＥＳ１２０は、ステップ５１０において、エージェント状態でそれぞれ関連づけられたＳＴＤアウト・バッファ３０６及びＳＴＤイン・バッファ３０８を検索する。ＳＴＤイン・バッファが、入力の要求があった場合のように空きでない場合には、ＡＥＳは更に現在のエージェントの論理アドレスを示す。ステップ５１２において、ＡＥＳ１２０は、ＳＴＤアウト・バッファ３０６及びＳＴＤインバッファ３０８を含んでいるデスクトップ・サーバー１１４にメッセージを送る。ＳＴＤイン・バッファ３０８が空きでない場合、ＡＥＳ１２０はメッセージ内のエージェントの現在の論理アドレスも送る。その結果、ユーザの入力は適切に経路指定がなされる。
【００３０】
　ステップ５１４においてデスクトップサーバ１１４は状態要求に対する返答を受け取る。デスクトップ・サーバ１１４は、メッセージからＳＴＤアウト・バッファ及びＳＴＤイン・バッファの内容を抽出する。ステップ５１６においてデスクトップ・サーバ１１４はＡＰＡ１１０を経由してユーザに対しＳＴＤアウトバッファの内容を表示する。ＳＴＤインバッファが空きでなかった場合、デスクトップサーバー１１４はユーザからの入力も要求する。ユーザ入力の受信に伴って、ステップ５１８において、デスクトップサーバー１１４は、エージェントが現在いる位置のＡＥＳ１２０にメッセージを送る。ステップ５２０において、ＡＥＳ１２０はメッセージを受信し、新しい値をエージェントに通知し、必要に応じてバッファーを更新する。図４において述べたように、エージェントは、通知を受信した後に、実行を再開する。
【００３１】
　図６から図９は、図２におけるサンプル・スクリプト３０２に基づく本発明の代表的な処理フローである。図６において、Ｐ位置にいるユーザ６０２はクライアント装置１０２ａから、Ｐ位置、Ｑ位置及びＲ位置に及ぶ通信ネットワーク１０８に向けて移動スクリプト３０２を送り出す。エージェント・サーバー１０４ａはＱ位置で処理される。エージェント・サーバー１０４ｂ及びウェブ・サーバー１０６はＲ位置で処理される。いくつかの計算処理の遂行後、移動スクリプト３０２はＱ位置に移動する。
【００３２】
　図７において、スクリプトはＱ位置においてＰＲＩＮＴステートメントを実行する。実行の結果、ＰＲＩＮＴステートメントの出力、すなわち、「Ｉ　ａｍ　ａｔ　ｍａｃｈｉｎｅ　Ｑ（私は装置Ｑにいる）」はＳＴＤアウト・バッファに加えられる。次にスクリプト３０２は、“ＲＥＡＤ　Ａ”ステートメントを実行する。Ａの値がバッグにおいて利用可能ではないので、スクリプト３０２は場合によってはユーザ６０２に通知を送り、応答を待つ。ユーザの通知はビーパー、ページャー、電子メール、スマートホン又はハンドヘルドポータブル移動装置等の技術を用いて実行される。（図５を参照して説明したように）ユーザがスクリプト３０２の状態をチェックした後に、ユーザ６０２はスクリプト３０２に変数Ａの値を供給する。更に、最適にするため、任意に、ユーザは変数Ｂの値をも提供する。これらの値を受け取って、直ちに変数Ａの値を用いながらスクリプト３０２は実行を再開する。変数の値Ｂはまだスクリプト３０２によって必要とされていないので、スクリプト３０２で関連づけられたバッグが配置される（図８参照）。
【００３３】
　図８においては、位置ＲにおいてＰＲＩＮＴステートメントの実行の結果としてスクリプト３０２は「Ｉ　ａｍ　ａｔ　ｍａｃｈｉｎｅ　Ｒ（私は装置Ｒにいる）」との出力を発生させる。出力はスクリプト３０２のＳＴＤアウトバッファに付加される。次に、スクリプト３０２は”ＲＥＡＤ　Ｂ”ステートメントを実行する。変数Ｂの値はすでにバッグ内で利用可能なので、ユーザへの準備及び通知の送信を必要とすることなくプログラムはバッグから値を検索し実行を完了する。明らかに、ユーザにとっては一以上の追加の値を入力することができ、プログラムにとっては一以上の値をその後の使用のためにバッグ・バッファに格納することができる。
【００３４】
　好適な実施例によって説明されてきた本発明は、当業者により種々の改良及び改善が可能である。好適な実施例は一例として提供されたものであり、この実施例によって何ら限定されるものではない。すなわち、通知と共に、装置にはそのようなデータを受け取る能力があると仮定した場合（例えばページャーやスマートホン等）、ＳＴＤアウトバッファ３０６の内容はユーザの装置に送信され得る。更にユーザが本発明のシステムを使用するに際し、電子メールを経由した特別なＡＥＳと通信するようにするのも任意である。
【図面の簡単な説明】
【００３５】
【図１】本発明が含まれるネットワークシステムを示す。
【図２】入出力ステートメントによって動作するスクリプトの例を示す。
【図３】本発明の態様による移動動作のスクリプトの適切なデータ構造の具体例を示す。
【図４】本発明に係る図１の示すシステムのエージェント実行シェル（The Agent Excution Shell）による入出力を処理するためのロジックの具体例を示す。
【図５】本発明に係るユーザの状態要求の処理のためのロジックの具体例を示す。
【図６】ユーザがある地理的位置からスクリプトを送り出し、移動中に継続的にプログラムをモニターし、プログラムの結果を一覧し、必要とされる入力値を供給する実施例を示す。
【図７】ユーザがある地理的位置からスクリプトを送り出し、移動中に継続的にプログラムをモニターし、プログラムの結果を一覧し、必要とされる入力値を供給する実施例を示す。
【図８】ユーザがある地理的位置からスクリプトを送り出し、移動中に継続的にプログラムをモニターし、プログラムの結果を一覧し、必要とされる入力値を供給する実施例を示す。
【図９】ユーザがある地理的位置からスクリプトを送り出し、移動中に継続的にプログラムをモニターし、プログラムの結果を一覧し、必要とされる入力値を供給する実施例を示す。
【符号の説明】
【００３６】
１００　ネットワーク・システム
１０２　クライアント装置
１０４ａ　エージェント・サーバ
１０４ｂ　エージェント・サーバ
１０６　ウェブ・サーバ
１０８　通信ネットワーク
１１０　エージェント・バーソナル・アシスタント（ＡＰＡ）
１１２　従来の通信システム
１１４　デスクトップ・サーバ
１２０　エージェント実行シェル
３０２　エージェント・スクリプト
３０４　バッグ
３０６　ＳＴＤアウト・バッファ
３０８　ＳＴＤイン・バッファ
３１０　プログラム状態
６０２　ユーザ
【図１】
2004094969.tif 000003
【図２】
2004094969.tif 000004
【図３】
2004094969.tif 000005
【図４】
2004094969.tif 000006
【図５】
2004094969.tif 000007
【図６】
2004094969.tif 000008
【図７】
2004094969.tif 000009
【図８】
2004094969.tif 000010
【図９】
2004094969.tif 000011