JP2002524788A - System and method for exchanging information about a target customer application - Google Patents

System and method for exchanging information about a target customer application

Info

Publication number
JP2002524788A
JP2002524788A JP2000569297A JP2000569297A JP2002524788A JP 2002524788 A JP2002524788 A JP 2002524788A JP 2000569297 A JP2000569297 A JP 2000569297A JP 2000569297 A JP2000569297 A JP 2000569297A JP 2002524788 A JP2002524788 A JP 2002524788A
Authority
JP
Japan
Prior art keywords
target customer
information
customer application
user
agent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000569297A
Other languages
Japanese (ja)
Inventor
スティーブ・ゴールドバンド
ロン・ヴァン・オス
ジェフリー・バース
Original Assignee
プレヴュー・システムズ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by プレヴュー・システムズ・インコーポレーテッド filed Critical プレヴュー・システムズ・インコーポレーテッド
Publication of JP2002524788A publication Critical patent/JP2002524788A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 一つあるいは二つ以上のターゲットの顧客アプリケーションに関する情報を、オペレーティングシステムを持ち、その上でターゲットの顧客アプリケーションが走るコンピュータプラットフォームと遠隔サーバーとの間で交換する方法であって、該方法は、渡されたメッセージと、ターゲットの顧客アプリケーションとオペレーティングシステムとの間で呼ばれる機能のうち、少なくとも一つを妨げる段階と、ターゲットの顧客処理から、さらなる処理のために第2の処理へと、選ばれた動作を非同期にメッセージ告知する段階と、上記の告知に対応して、上記の第2の処理へのあるいはそれからのターゲットの顧客アプリケーションに関する情報を転送させる段階とを含む。 (57) [Abstract] A method of exchanging information about one or more target customer applications between a computer platform having an operating system on which the target customer applications run and a remote server. Disposing at least one of the passed message, the function called between the target customer application and the operating system, and the second processing for further processing from the target customer processing. And asynchronously announcing the selected action in a message, and in response to the announcing, transferring information regarding the target customer application to or from the second process.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】TECHNICAL FIELD OF THE INVENTION

本発明は、コンピュータのプログラムを監視し、拡大することに関する。 The present invention relates to monitoring and expanding computer programs.

【0002】[0002]

【従来の技術】[Prior art]

かっては、コンピュータのプログラムは通常、変化しなかった。すなわち、一
旦、ユーザーがコンピュータのプログラムを学ぶと、プログラムの使用では、命
令/応答、命令/応答のパターンが続き、プログラムは、おそらくすべきことを
して、ユーザーがそうあって欲しいと期待することをするが、それ以上では無か
った。もっと最近では、コンピュータのプログラムをもっと動的にし、もっと使
い易くて楽しいものにすることが求められた。
In the past, computer programs usually did not change. That is, once the user learns the computer program, the use of the program is followed by a command / response, command / response pattern, and the program will probably do what it expects the user to do. I did things, but nothing more. More recently, there has been a need to make computer programs more dynamic, more usable and more fun.

【0003】 コンピュータのプログラムを監視し、強化するための様々な機構が知られてい
る。ここに参考のために組み入れる、米国特許第5432940号には、コンピ
ュータベースの訓練(CBT)システムが載っており、ユーザーとターゲットの
アプリケーションとの間のやり取りができる。このシステムでは、希望するター
ゲットとなるアプリケーションの様々な出来事を監視する。これらの出来事から
のメッセージは、CBTメッセージとしてメッセージエンジン(Message Engine
)に入力され、報告される。このメッセージエンジンは、スクリプトの制御の下
で動作するスクリプトエンジン(Script Engine)によって記述されるハンドラ
に従ってメッセージを迅速に送る。CBTスクリプトは、シーンの連続したもの
として、構成されており、各シーンは、レッスン(lesson)の中の特定なところ
で発生する動作を記述している。例えば、シーンは、ターゲットのアプリケーシ
ョンの中で特定のメニュウ項目が選ばれたときに、CBTシステムに対していく
つかのテキストを含むウィンドゥを表示するように指示する。レッスンのスクリ
プトが進むにつれて、新しいシーンが作られる。この処理は、ユーザーがCBT
システムを出る選択をするか、レッスンが終了するまで継続する。
Various mechanisms are known for monitoring and enhancing computer programs. U.S. Pat. No. 5,432,940, incorporated herein by reference, describes a computer-based training (CBT) system that allows interaction between a user and a target application. The system monitors various events of the desired target application. Messages from these events will be represented as CBT messages by the Message Engine
) Is entered and reported. This message engine sends messages quickly according to a handler described by a script engine that operates under the control of the script. A CBT script is structured as a sequence of scenes, each scene describing an action that occurs at a specific point in a lesson. For example, the scene instructs the CBT system to display a window containing some text when a particular menu item is selected in the target application. As the lesson script progresses, new scenes are created. This process is performed when the user
Choose to leave the system or continue until the lesson is over.

【0004】 これもここに参考のために組み入れる、国際特許出願WO97/07656号
には、コンピュータネットワークのデータベースからの広告や他の情報をユーザ
ーが定義した好みに基づいて選択し、選択した広告を通信リンク上を通信してい
る他の処理による妨害を最小の状態で、コンピュータネットワークと末端のコン
ピュータとの間の通信リンク上で、バックグランドモードで送信し、選択した広
告をユーザーのコンピュータ上に表示するシステムが記載されている。このシス
テムは、ユーザーと広告とのやり取りを監視し、ユーザーの広告に対する応答と
同様に、特定の広告が何回アクセスされたかの生のデータを作り出す。関係のあ
る情報が記憶され、広告主に利用可能になっているネットワークサーバーへと送
り返される。他の種類の情報コンテント、例えば、ニュースや天気や株の時価や
スポーツの結果やソフトウェアの更新や旅行予約情報なども送信することができ
る。
[0004] International Patent Application WO 97/07656, also incorporated herein by reference, discloses that advertisements and other information from a computer network database are selected based on user-defined preferences, and that the selected advertisements are selected. Transmit in the background mode on the communication link between the computer network and the terminal computer, with minimal disruption by other processes communicating on the communication link, and place the selected advertisement on the user's computer. A display system is described. The system monitors user interaction with the advertisement and produces raw data of how many times a particular advertisement has been accessed, as well as the user's response to the advertisement. Relevant information is stored and sent back to a network server made available to the advertiser. Other types of information content can also be transmitted, such as news, weather, stock quotes, sports results, software updates, travel booking information, and the like.

【0005】[0005]

【発明が解決しようとする課題】[Problems to be solved by the invention]

しかし、以上のシステムは、実際、押しつけがましく、システムの性能に重要
な影響を与える。
However, these systems are, in fact, intrusive and have a significant effect on system performance.

【0006】[0006]

【課題を解決するための手段】[Means for Solving the Problems]

本発明は、広く、ソフトウェアのユーザーと知的なやり取りができる、透過性
のソフトウェアを監視し/助言的な機構を提供する。ユーザーのマシンにインス
トールされたソフトウェアのエージェント(agent)は、ターゲットの顧客アプ
リケーションに埋め込まれるようにフック(hook)を作る。ユーザーが特徴を選
ぶためのメッセージは、ターゲットの顧客アプリケーションの中にフックされ、
受信スレッド(thread)と第1スレッドとを含む多重スレッドを含むフック監視
処理に送られる。受信側スレッドは、フックされたメッセージを受信し、これら
のメッセージを第1スレッドへと“非同期メッセージの反射”をする。第1スレ
ッドは、メッセージの目録を作り、将来的にサーバーへアップロードするための
メッセージに基づいて特徴の使用回数を更新する。また、第1スレッドは、特定
のメッセージに、それに関連する報告、例えば広告や調査等があるかを決定する
。もし、そうなら、第1スレッドは、その報告を配布するためにヘルパー処理を
呼び出す。ソフトウェアエージェント(agent)は、“仮想接続”すなわちユー
ザーの気付かないインターネット接続を用いた間隔で、遠隔サーバーによる通信
を行う。ダウンリンクの方向において、サーバーは、エージェントの行動を規制
するエージェント命令ファイルを送る。エージェントは、例えば広告や調査やソ
フトウェアの更新等の、命令ファイル内に含まれる、命令を実行するのに必要な
サーバー資源から復元をする。アップリンクの方向において、使用回数の情報の
ような選ばれた情報を、命令ファイルに従ってサーバーにアップロードする。“
仮想”インターネット接続は、LAN接続あるいはダイヤルアップ接続でよい。
ダイヤルアップ接続の場合、誤ってダイヤルアウトを引き起こさないように注意
をする。転送機構によって、接続を用いた第1の交信の資源利用と影響とが最小
化される。
The present invention broadly provides a transparent software monitoring / advisory mechanism that can intelligently interact with the software user. A software agent installed on the user's machine creates a hook to be embedded in the target customer application. The message for the user to pick a feature is hooked into the target customer application,
It is sent to the hook monitoring process including the multiple threads including the receiving thread (thread) and the first thread. The receiving thread receives the hooked messages and "reflects the asynchronous message" to these messages to the first thread. The first thread catalogs the message and updates the feature usage count based on the message for future upload to the server. The first thread also determines whether a particular message has an associated report, such as an advertisement or survey. If so, the first thread calls a helper process to distribute the report. Software agents communicate with remote servers at intervals using "virtual connections", ie, Internet connections that are transparent to the user. In the downlink direction, the server sends an agent command file that regulates agent behavior. The agent recovers from the server resources required to execute the instructions, such as advertisements, surveys, and software updates, contained in the instructions file. In the uplink direction, selected information, such as usage count information, is uploaded to the server according to the command file. “
The "virtual" Internet connection may be a LAN connection or a dial-up connection.
Be careful not to inadvertently cause dial-out for dial-up connections. The forwarding mechanism minimizes the resource utilization and impact of the first contact using the connection.

【0007】[0007]

【発明の実施の形態】BEST MODE FOR CARRYING OUT THE INVENTION

本発明は添付した図面を組み合わせて、以下の記載からより良く理解される。 図1は、本発明の一般的なブロック図である。 図2は、エージェントアクティベーションの画面表示の図である。 図3は、図1のエージェントのさらに詳細なブロック図である。 The invention will be better understood from the following description, taken in conjunction with the accompanying drawings. FIG. 1 is a general block diagram of the present invention. FIG. 2 is a diagram of a screen display of agent activation. FIG. 3 is a more detailed block diagram of the agent of FIG.

【0008】 ここで、図1を参照して、本発明の一般的なアーキテクチャが記述される。オ
ペレーティングシステムやウェブブラウザやそういったものにより与えられる実
行時間環境を含み、また一つあるいは二つ以上のコンピュータプログラムが走る
ものとする。コンピュータプログラムとは、ソフトウェアアプリケーションやシ
ステムソフトウェアや埋め込まれたコンピュータプログラムである。システム的
な個別のソフトウェアのやり取りは、永続的な顧客のユーザーマシンや、サーバ
ーと二方向通信で交信するエージェントとを備えることで可能となる。このエー
ジェントは、アプリケーションと同時に導入され、ユーザーマシン上に予めロー
ドされ、ディスクからあるいはダウンロード等で別々に導入される。エージェン
トとサーバーとの間の接続は、仮想接続である、すなわち、物理的な通信チャネ
ルとターゲットの通信とで時分割を行う接続である。実施形態の一例において、
仮想接続では、サーバーと通信するのに間欠的なインターネット接続の予備の帯
域幅を用いる。エージェントは、インターネット同時接続でなく、アプリケーシ
ョンとやり取りをすることができ、通常そのようにする。
Referring now to FIG. 1, the general architecture of the present invention will be described. It includes the runtime environment provided by the operating system, web browser, and the like, and shall run one or more computer programs. Computer programs are software applications, system software, and embedded computer programs. System-specific exchange of software can be achieved by providing a permanent customer's user machine or an agent that communicates with the server in two-way communication. This agent is installed at the same time as the application, is pre-loaded on the user machine, and is installed separately from a disk or by downloading. The connection between the agent and the server is a virtual connection, that is, a connection that performs a time division between the physical communication channel and the target communication. In one example of the embodiment,
A virtual connection uses the extra bandwidth of an intermittent Internet connection to communicate with the server. Agents can, and usually do, interact with the application, rather than having a simultaneous Internet connection.

【0009】 エージェントとサーバーとの間の通信は任意のものである。実施形態の一例に
おいて、エージェントが最初に特定のアプリケーションのために起動されると、
図2のような画面をユーザーに表示する。図2の例において、画面表示は、“顧
客の希望する記載(preferred customer enrollment)”の画面である。適当な
ボタンをクリックすることで、ユーザーは、顧客の希望するプログラムに入るこ
とを受けるかあるいは断ることができる。もし、顧客が受ければ、顧客は、ソフ
トウェアのベンダー(vendor)との、もたらされた関係に入って行き、個々のサ
ービスを与えるためにアプリケーションの構成と使用とに関する個人的な情報を
維持するソフトウェアベンダーに同意する。
[0009] Communication between the agent and the server is optional. In one example of an embodiment, when an agent is first launched for a particular application,
A screen as shown in FIG. 2 is displayed to the user. In the example of FIG. 2, the screen display is a screen of “preferred customer enrollment”. By clicking on the appropriate button, the user can accept or decline the customer's desired program. If the customer receives, the customer enters into the resulting relationship with the software vendor and maintains personal information about the composition and use of the application to provide individual services. Agree to software vendor.

【0010】 エージェントとサーバーとの間の通信も二方向である。アップリンクの方向に
おいて、エージェントは、制御と、構成及び使用の情報と、調査情報等を伝達す
る。ダウンリンクの方向において、サーバーは、実行不可能のコンテントや実行
可能なコンテントやその両方を、制御情報やエージェント交信等を含んで伝達す
る。実行不可能のコンテントは、ティップや提供されたものや広告や調査等を含
んでいて良い。それにもかかわらず、実行不可能なコンテントは、アクティブと
はなりうる、すなわち、ユーザーが関連するウェブサイトへと“クリックスルー
(click through)”することができるHTTPリンクを含むことができること
に注意したい。実行可能なコンテントは、アプリケーションあるいはエージェン
トあるいはその両方に関係する可能性がある。アプリケーションに関係する実行
可能なコンピュータは、交信やバグの修正や付加的なコードモジュール等を含ん
でいて良い。エージェントに関係する実行可能なコンテントは、エージェントに
対してフィールド内の新しい能力を透過的に更新させ、エージェントの衰微の潜
在的問題を回避する。
[0010] Communication between the agent and the server is also two-way. In the uplink direction, agents convey control, configuration and usage information, survey information, and the like. In the downlink direction, the server communicates non-executable content, executable content, or both, including control information, agent contacts, and the like. Non-executable content may include tips, offers, advertisements, surveys, and the like. Nevertheless, it should be noted that non-executable content can be active, that is, include an HTTP link that allows the user to "click through" to the relevant website. . Executable content may relate to an application and / or an agent. The executable computer associated with the application may include communications, bug fixes, additional code modules, and the like. The executable content associated with the agent allows the agent to transparently update new capabilities in the field, avoiding the potential problem of agent degradation.

【0011】 図3を参照すると、エージェントの詳細なブロック図が示されている。Referring to FIG. 3, a detailed block diagram of the agent is shown.

【0012】 実施形態の一例において、エージェントは、プラグインのアーキテクチャに従
う。従って、エージェントは、駐在するエージェントと、駐在するエージェント
にプラグインのAPIを通してインターフェイスする様々なプラグインとを含ん
でいる。実施形態の一例において、プラグインは、命令プロセッサのプラグイン
や、メッセージのプラグインや、調査のプラグインや、インターネットへの仮想
的に接続を扱うInetプラグインや、フックのプラグインを含む。メッセージ
のプラグインや、調査のプラグインや、多分他のプラグインは、処理と顧客アプ
リケーションの顧客インターフェイス(UI)内とに行動を起こすことができる
。他のプラグインは、エージェントに含まれることができるか、ダウンロードに
よってエージェントに加えられる。もし、プラグインが、他のプラグインの助け
を必要とすると、エージェントは、パラメータを透過的にターゲットのエージェ
ントに渡すであろう。永続的な記憶場所が、駐在するエージェントと同様に、例
えば、登録ファイルシステム内に、プラグインに与えられる。
In one embodiment, the agent follows a plug-in architecture. Thus, the agents include resident agents and various plug-ins that interface with the resident agents through a plug-in API. In an example of the embodiment, the plug-ins include an instruction processor plug-in, a message plug-in, a survey plug-in, an Inet plug-in that handles a virtual connection to the Internet, and a hook plug-in. Message plug-ins, survey plug-ins, and possibly other plug-ins can take action and take action within the customer interface (UI) of the customer application. Other plugins can be included in the agent or added to the agent by download. If a plug-in needs the help of another plug-in, the agent will pass the parameters transparently to the target agent. Permanent storage is provided to the plug-in, as well as the resident agent, for example, in a registered file system.

【0013】 エージェントのプラグインのアーキテクチャから得られるモジュール方式は、
ユーザーに透過性の動作を許すという観点から重要である。核となるエージェン
トとプラグインは全て、容易にダウンロードすることができる小さなモジュール
(典型的には、約12kバイトより小さい)である。モジュールをダウンロード
するのに必要な時間は、典型的にはわずか数秒である。
The modularity obtained from the architecture of the plug-in of the agent is:
This is important in terms of allowing the user to operate transparently. The core agents and plugins are all small modules (typically less than about 12 Kbytes) that can be easily downloaded. The time required to download a module is typically only a few seconds.

【0014】 エージェントの核となるタスクには、以下が含まれる。 1.プラグインとインタープラグインの通信を管理する。 2.コンテント(命令ファイル)をダウンロードし、命令ファイルを扱うため の適当な命令インタープリタを決定する。サーバーから命令インタープリタ のプラグインを復元し、ダウンロード命令ファイルで呼びかける。 3.システムが故障や再起動を起こさないように、状態(例えば、現在の命令 ファイル)を維持する。オペレーティングシステムの登録は、プラグインや イベントの状況や登録済み顧客アプリケーションなどの構成を含む状況情報 を永続的に記憶するのに使用することができる。 4.システムのインターネット接続とスケジュールのアップロードとダウンロ ードとを監視する。 5.ターゲットアプリケーションを追跡し、その使用を決定する。この情報と 命令ファイルデータとから、スケジュールの動作は、プラグインのインター フェイスを通してターゲットユーザーインターフェイス(UI)空間の中で 取られるように実行される。 6.サーバーに応えて不活性になることを含む動作のレベルと種類とを変更す る。The core tasks of the agent include: 1. Manages communication between plugins and interplugins. 2. Download the content (instruction file) and determine the appropriate instruction interpreter to handle the instruction file. Restore the command interpreter plug-in from the server and call it in the download command file. 3. Maintain state (eg, current instruction file) so that the system does not fail or restart. Operating system registration can be used to permanently store status information, including configuration of plug-ins and events, and registered customer applications. 4. Monitor the system's Internet connection and schedule uploads and downloads. 5. Track the target application and determine its use. From this information and the instruction file data, the schedule action is performed as taken in the target user interface (UI) space through the plug-in interface. 6. Change the level and type of activity, including becoming inactive in response to the server.

【0015】 エージェントは、アプリケーションそれ自身を修正せずに、あらゆる観点から
ソフトウェアアプリケーションと相互作用をすることができる。特に、小さなフ
ック(例えば、DLL)が、ユーザーマシン上で表示される表示画面の親タスク
へと挿入される。ターゲット顧客アプリケーションを識別する情報は、フックに
アクセスできる永続的記憶場所(例えば、オペレーティングシステム登録)内に
記憶される。各フックは、モジュールの実行可能な名前を決定し、かつ、登録内
に記憶されたエージェントの維持する顧客のルックアップテーブルを用いること
により、ターゲット顧客アプリケーションの中に埋め込まれているかどうかを決
定する。もし、ターゲット顧客アプリケーションの中に埋め込まれていれば、フ
ックは、そのままである。もし、そうでなければ、フックは、それが取り除かれ
るべきであると要求する。
An agent can interact with a software application from any point of view without modifying the application itself. In particular, a small hook (eg, a DLL) is inserted into the parent task of the display screen displayed on the user machine. Information identifying the target customer application is stored in a permanent storage location (e.g., operating system registration) that can access the hook. Each hook determines the executable name of the module and whether it is embedded in the target customer application by using an agent-maintained customer look-up table stored in the registration. . If embedded in the target customer application, the hook remains intact. If not, the hook requests that it be removed.

【0016】 フックは、どれかの関連する“特徴の選択”の動作が、監視されたアプリケー
ションの中で起こっているかを決定し、もしそうならば、この情報をフックのプ
ラグインへと渡す。特に、フックは、ポスト(POST)を通してメッセージを
フックのプラグインのメッセージ待ち行列の中に渡す。フックのプラグインは、
ユーザーのシステムの性能あるいはアプリケーションの性能を下げないように設
計される。さらに特化して、実施形態の一例において、エージェントは、最初に
始めたときに、分離した受信側のスレッドであるTrxの実行を開始するフック
のプラグインをロードする。この受信側のスレッドは、顧客のアプリケーション
のフックとやり取りをするために高い利用可能性を持つように設計されている。
分離したスレッドを用いることで、顧客のアプリケーションのメッセージの処理
が著しく減速されないことを保証している。
The hook determines if any relevant "feature selection" actions are taking place in the monitored application and, if so, passes this information to the hook's plug-in. In particular, the hook passes the message through the POST (POST) into the hook's plug-in message queue. The hook plug-in
It is designed not to degrade the performance of the user's system or the performance of the application. More specifically, in one example of an embodiment, the agent loads a plug-in of a hook that, when first started, initiates the execution of a separate receiving thread, Trx. This receiving thread is designed to be highly available for interacting with hooks in customer applications.
The use of a separate thread ensures that the processing of messages in the customer application is not significantly slowed down.

【0017】 エージェントは、顧客アプリケーションの中の動作しているUIスレッド当た
り一つのフックを置くだけで、ただ一つのフックが置かれていることを確かめる
(しかし、もし多数の動作しているスレッドが顧客の中にあれば、一つの顧客ア
プリケーションが多数のフックを持つことができることに注意したい)。この置
かれたフックは、互いに呼び合うことはできず、従って機能的方法は起こり得な
い。
The agent only places one hook per running UI thread in the customer application and makes sure that only one hook is placed (but if multiple running threads are Note that a single customer application can have multiple hooks if it is among the customers). The placed hooks cannot call each other, and thus no functional method can occur.

【0018】 受信側スレッドは、フックされたメッセージを受信し、これらのメッセージを
第1スレッド Tpri へと“非同期メッセージの反射”をする。第1スレッドは、
メッセージの目録を作り、将来的にサーバーへアップロードするためのメッセー
ジに基づいて特徴の使用回数を更新する。また、第1スレッドは、特定のメッセ
ージに、それに関連する報告、例えば広告や調査等があるかを決定する。もし、
そうなら、第1スレッドは、その報告を配布するためにヘルパー処理(広告のプ
ラグインや調査のプラグイン等)を呼び出す。
[0018] The receiving thread receives the hooked messages and "reflects the asynchronous message" on these messages to the first thread Tpri. The first thread is
Inventory messages and update feature usage based on messages for future upload to server. The first thread also determines whether a particular message has a report associated with it, such as an advertisement or survey. if,
If so, the first thread calls a helper process (such as an advertising plugin or a survey plugin) to distribute the report.

【0019】 ユーザーの動作を検出することと、ユーザーの後をすぐに追う様に計時される
勧告メッセージとの間の待ち時間は、勧告コンテントが実際にアプリケーション
の一部であるという印象を伝えるように最小化される。実施形態の一例において
、対話を、約50ミリ秒以内にロードすることができる。この素早い応答は、予
めメモり内へと対話をロードしておいたことと、適当なイベントがの知らせが受
信されると、オペレーティングシステムに選択した対話を表示するように呼び出
すこととにより得られる。
The latency between detecting the user's activity and the advisory message being timed to follow the user immediately may convey the impression that the advisory content is indeed part of the application. To be minimized. In one example embodiment, the interaction can be loaded within about 50 milliseconds. This quick response is obtained by pre-loading the dialogue into the memory and by calling the operating system to display the selected dialogue when an appropriate event notification is received. .

【0020】 勧告的な対話は、“ウィンドゥを下位に位置づける”ことにより、既に存在し
ているウィンドゥへと“くっつけ”られる。勧告的対話は、ユーザーが対話に関
していくつかの動作を課するまで、ユーザーの関心が顧客のアプリケーションか
ら取り除かれるような形式となっている。
An advisory dialog is “attached” to an already existing window by “laying down the window”. The advisory interaction is in a form such that the user's interest is removed from the customer's application until the user imposes some action on the interaction.

【0021】 維持している使用回数と勧告メッセージの提示に加えて、第1スレッドも、時
間の関数としてユーザーの動作を追跡することができる、例えば、アプリケーシ
ョンが動き始めた時と終了した時に、どのくらい長くアプリケーションがユーザ
ーの関心を持っていたか、あるいは、どの位の時間ユーザーが実際に何かをやっ
ていたかなどである。実施形態の一例において、後者の測定の目的のために、も
し、少なくとも一つのイベントが1分の間に受信されると、ユーザーは、その時
間の間にアプリケーションを動的に使っていたと考えられる。
In addition to presenting the usage count and advisory messages maintained, the first thread can also track the user's actions as a function of time, for example, when the application starts and ends, How long the application has been interested in the user, or how long the user has actually been doing something. In one example of an embodiment, for the purpose of the latter measurement, if at least one event is received during a minute, the user is considered to have dynamically used the application during that time. .

【0022】 Inetのプラグインは、全てのインターネットの交信を扱うことに責任があ
る。実施形態の一例において、エージェントをサーバーに登録したり、ユーザー
IDを得たり、ユーザーIDを用いて命令ファイルを復元したり、データをサー
バーにアップロードしたり、サーバーから資源をダウンロードしたりすることを
含んでインターネット処理の様々な種類を提供する。データは、例えば、HTT
P1.1プロトコルにおけるようにPOSTとGET命令を用いて交換すること
ができる。Inetのプラグインは、もしどれかの処理がインターネットを通じ
て終了しないと、適切に故障終了する。
The Inet plug-in is responsible for handling all Internet traffic. In one embodiment, registering an agent with a server, obtaining a user ID, restoring an instruction file using the user ID, uploading data to the server, and downloading resources from the server. Provides various types of internet processing, including: The data is, for example, HTT
It can be exchanged using POST and GET commands as in the P1.1 protocol. The Inet plug-in will fail properly if any process does not end via the Internet.

【0023】 命令プロセッサのプラグインは、命令ファイルを実際の動作へと変換する責任
がある。例えば、このプラグインは、命令ファイルを走査して、命令ファイルが
必要とする全ての資源のダウンロードのスケジュールを立てる、マクロを展開し
、命令ファイルの新しい版を作成する。その後に、命令ファイルを処理し、既存
の命令ファイと混ぜ合わせ、命令ファイルから全ての完了したイベントを取り除
き、エージェントが取るべき全てのイベントと動作とのスケジュールを立てる。
最後に、命令ファイルを永続的な記憶場所で動いているものとして印を付け、ま
た、ーバーが顧客アプリケーションの中のイベントの実行を追跡することのでき
る命令ファイル状態更新をアップロードする。
The instruction processor plug-in is responsible for translating the instruction file into actual operations. For example, the plug-in scans the instruction file, schedules the download of all resources required by the instruction file, expands macros, and creates new versions of the instruction file. Thereafter, the command file is processed and mixed with the existing command file, removing all completed events from the command file and scheduling all events and actions that the agent should take.
Finally, it marks the instruction file as running in permanent storage and uploads an instruction file status update that allows the server to track the execution of events in the customer application.

【0024】 エージェントの制御パネルのアプレットによって、ユーザーのエージェントと
のやり取りが、エージェントの将来の動作を制御することが可能となるが、典型
的にはユーザーは、制御パネルを使用する機会はないだろう。上述したように、
ユーザーは、この初期の決定以上に、制御を追加して与えられることがある。例
えば、ユーザーは、後から、やり取りの程度や送信された情報の種類や総量を修
正することを選択することができたり、エージェントとサーバーとの間の全ての
通信をすっかり引き出したり中止したりすることができる。ユーザーは、アップ
リンク動作を継続する(例えば、エージェントが従来からの種類の顧客サービス
を監視すること)代わりに、ダウンリンク動作を中止することを望むことができ
る。代わりに、ユーザーは、アップリンク動作と限定されたダウンリンク動作の
部分集合、例えばアップグレードの通知を継続することを望むことができる。様
々な他の選択肢が与えられる。
The agent's control panel applet allows the user's interaction with the agent to control the agent's future behavior, but typically the user has no opportunity to use the control panel. Would. As mentioned above,
The user may be given additional control beyond this initial decision. For example, the user can later choose to modify the extent of the interaction, the type or amount of information sent, or pull or abort all communication between the agent and the server. be able to. The user may wish to abort the downlink operation instead of continuing the uplink operation (e.g., an agent monitoring a traditional type of customer service). Alternatively, the user may wish to continue with a subset of uplink operations and limited downlink operations, eg, notification of an upgrade. Various other options are provided.

【0025】 制御パネルのアプレットの代わりに、動的にメニュウ入力を顧客のメニュウバ
ーに加える機構を使用することができ、この機構が機能してユーザーはその顧客
内でエージェントの機能性を制御することができる。動的にメニュウ入力を加え
ることは、以下の方法で達成される。 2.エージェントは、顧客がメニュウ項目を顧客メニュウバーに加えるのを知 る。 2.ユーザーがこのメニュウをクリックすると、エージェントは(フックを通 じて)このイベントを知らされ、プラグインは 顧客UI制御内で様々なエ ージェントの特徴を制御するのに示される。
Instead of a control panel applet, a mechanism can be used that dynamically adds menu entries to the customer's menu bar, which mechanism allows the user to control agent functionality within the customer. be able to. Dynamically adding menu entries is accomplished in the following manner. 2. The agent knows that the customer adds a menu item to the customer menu bar. 2. When the user clicks on this menu, the agent will be notified of this event (through a hook) and the plug-in will be shown to control various agent features within the customer UI control.

【0026】 実施形態の一例において、駐在するエージェントは、スケジューラ/マネージ
ャ、遠隔ダイヤルアップモニタ、命令ファイルプリプロセッサを含んでいる。駐
在するエージェントは、また、顧客マップ、イベントマップ、プラグインマップ
を含んでいる。駐在エージェントは、動作しているプラグインと、登録されてい
る顧客アプリケーションと、顧客アプリケーション上で動作するイベントとの構
成と状態とを動的に維持することに責任がある。命令の待ち行列には、実際のイ
ベント情報が含まれ、各エージェントの開始により処理される。実施形態の一例
において、エージェントは、オペレーティングシステムの登録内にあるマシン開
始テーブルによって開始される。
In one example embodiment, the resident agent includes a scheduler / manager, a remote dial-up monitor, and a command file preprocessor. Resident agents also include customer maps, event maps, and plug-in maps. The resident agent is responsible for dynamically maintaining the configuration and state of running plug-ins, registered customer applications, and events running on the customer applications. The instruction queue contains the actual event information and is processed by the start of each agent. In one example of an embodiment, the agent is started by a machine start table in the operating system registry.

【0027】 スケジューラ/マネージャは、Inetプラグインを通じて、サーバーとの周
期的なインターネット接続を確立する責任がある。もし、接続が利用可能になる
と、各顧客のオブジェクトは、顧客の要求にサービスするための帯域幅が与えら
れる。次に、全ての未決定のPOST処理が処理される。スケジューラ/マネー
ジャは、ダイヤルアップのインターネットアクセス時に、イベントドリブン法に
よるか、あるいは直接(もしくは代理)のLANベースのインターネットアクセ
ス時に、周期的な間隔のいずれかによって、呼び出すことができる。ダイヤルア
ップのアクセス時には、異なるダイヤルアップのアクセス法を、ユーザーマシン
のソフトウェア構成に依存して使用することができる。遠隔ダイヤルアップモニ
タは、どのダイヤルアップアクセス法が使用され、従ってインターネット接続の
確立が検出されるかを決定する。
The scheduler / manager is responsible for establishing a periodic Internet connection with the server through the Inet plugin. If a connection becomes available, each customer object is given the bandwidth to service the customer's request. Next, all undetermined POST processes are processed. The scheduler / manager can be invoked either on a dial-up Internet access, in an event driven manner, or on a direct (or proxy) LAN-based Internet access, either at periodic intervals. For dial-up access, different dial-up access methods can be used depending on the software configuration of the user machine. The remote dial-up monitor determines which dial-up access method is used, and thus the establishment of an Internet connection is detected.

【0028】 さらに特化して、ダイヤルアップ接続の場合には、登録は、ダイヤルアップに
使われる特別の顧客アプリケーションを識別するために読まれる。その後、エー
ジェントは、そのアプリケーションをフックする。登録を読むことにより、フッ
クは、目的が、ダイヤルアップを監視することであると決定し、従ってダイヤル
アップのイベントに関するメッセージを渡すだけである。これらのメッセージは
、遠隔ダイヤルアップモニターによって受信される。通常のダイヤルアップイベ
ントのシークエンスが検出されると、遠隔ダイヤルアップモニターは、計数を開
始する。計数の時間が終了すると、もしダイヤルアップアプリケーションがまだ
動作中であれば、遠隔ダイヤルアップモニターは、接続のスケジュールを行う。
More specifically, in the case of a dial-up connection, the registration is read to identify the particular customer application used for dial-up. Thereafter, the agent hooks the application. By reading the registration, the hook determines that the purpose is to monitor dial-up, and thus only passes on messages about dial-up events. These messages are received by the remote dial-up monitor. When a normal dial-up event sequence is detected, the remote dial-up monitor starts counting. At the end of the counting period, if the dial-up application is still running, the remote dial-up monitor will schedule the connection.

【0029】 いくつかの例において、遠隔ダイヤルアップモニターは、だまして、接続が存
在していないのに存在していると“考える”ことがある。例えば、ダイヤルアッ
プは、取り消されて開始したかも知れない。エージェントは、サーバーを周期的
に調べることに依存しているので、既存の接続に似たものは、エージェントに接
続を起こさせるのに十分である。何も存在しないところで接続を誤って開始する
(ユーザーの透過性を乱す)可能性を避けるために、システムは、しばらくの間
、ダイヤルアップアクセスモードをLANアクセスモードに切り替え、TCPス
タックは−既に初期化されていない場合のパーセントは小さい−初期化され、シ
ステムは、ダイヤルアクセスモードに戻される。
In some examples, a remote dial-up monitor may trick and “think” that a connection is present when it is not. For example, dial-up may have been canceled and started. Because the agent relies on periodically examining the server, something similar to an existing connection is sufficient to cause the agent to make a connection. To avoid the possibility of accidentally starting a connection where nothing is present (disrupting the user's transparency), the system will switch dial-up access mode to LAN access mode for a while and the TCP stack will- The percentage if not initialized is small-initialized and the system is returned to dial access mode.

【0030】 唯一つの例において、時間切れを起こし、もしダイヤルアップ保護が実行され
ていなければ、ダイヤルアップの対話が現れるように、Inetアクセスの企て
をスケジュールする。これは、ユーザーがダイヤルアップの試みを取り止め、ダ
イヤルアップマネージャが存在しない場合である。もし、時間切れの前にユーザ
ーがダイヤルアッププログラムにいれば、Inetアクセスは試みられない。ダ
イヤルアップ保護の機構は、以下の理由に必要である。もし、システムがダイヤ
ルアップ(RAS)モード中であれば、Inetアクセスの要求はいずれかの方
法でサービスされる。例えば、ウィンドゥズのオペレーティングシステム(NT
と95/98)によって使用される多点トンネルプロトコルの結果、試みは、L
ANを横断して接続するようになされ、一方ダイヤルアップ接続も確立される。
最初に成功した接続は、元々要求を出した顧客のところに回される。LAN接続
無しでシステムがLANモードにあり、Inetアクセス要求が出されたとき、
TCPスタックは初期化され、その結果時間切れとなる。たとえ、システムにモ
デムがあったとしても、それは使用されないであろう。従って、全ての接続を試
みる前にLANモードに切り換えることでダイヤルアップは回避される。
In one example, an Inet access attempt is scheduled to expire, and if dial-up protection is not implemented, dial-up interaction will occur. This is the case when the user stops dialing up and there is no dialup manager. If the user is in the dial-up program before the time expires, no Inet access will be attempted. A mechanism for dial-up protection is necessary for the following reasons. If the system is in dial-up (RAS) mode, requests for Inet access are serviced in any manner. For example, the Windows operating system (NT
As a result of the multi-point tunneling protocol used by
A connection is made across the AN, while a dial-up connection is also established.
The first successful connection is routed to the customer who originally made the request. When the system is in LAN mode without LAN connection and an Inet access request is issued,
The TCP stack is initialized, resulting in a timeout. Even if the system had a modem, it would not be used. Thus, dial-up is avoided by switching to LAN mode before attempting all connections.

【0031】 LANとダイヤルアップの両方の接続において、エージェントの交信は、他の
交信に対して低い優先順位を透けジュールされ、性能上ユーザーが知覚できる影
響は無いと保証する。“丁寧な”接続を実現する他の方法は、それがTCP/I
Pスタックを監視することを含む限り、より下等であり、それは支援DLLをロ
ードすることを要求し、その結果メモリのフットプリントを増加させる。
In both LAN and dial-up connections, agent communications are scheduled through lower priorities with respect to other communications, ensuring that there is no perceptible user impact on performance. Another way to achieve a "attentive" connection is to use TCP / I
Lower as long as it involves monitoring the P-stack, which requires loading the supporting DLL, thus increasing the memory footprint.

【0032】 顧客マップとイベントマップとプラグインマップは、共に、それを通じて顧客
とサーバーとの間のやり取りが発生する“顧客チャネル”を確定する。顧客マッ
プは、一つあるいは二つ以上の顧客オブジェクトからなる。最低限、そこに顧客
を加え、顧客マップからエージェントを取り除き、また、エージェントを加え、
プラグインマップからエージェントを取り除くことのできる特権的顧客オブジェ
クトがある。他の全ての顧客チャネルは、イベントをスケジュールし、エージェ
ントをサーバーからコンテントをダウンロードするように導くのに使用されるだ
けである。顧客マップ内の顧客オブジェクトは、イベント内に対応するイベント
オブジェクトと、プラグインマップ内に対応するイベントオブジェクトとを持っ
ている。顧客マップと結合したイベントマップは、顧客アプリケーションUI空
間内でのやり取りを引き起こす。
The customer map, the event map, and the plug-in map together define a “customer channel” through which interactions between the customer and the server occur. The customer map includes one or more customer objects. At a minimum, add customers to it, remove agents from the customer map, add agents,
There are privileged customer objects that can remove agents from the plugin map. All other customer channels are only used to schedule events and direct agents to download content from the server. The customer object in the customer map has an event object corresponding to the event and an event object corresponding to the plug-in map. The event map combined with the customer map causes interaction within the customer application UI space.

【0033】 既にフィールド内にあるアプリケーションのコピーに対する好ましい支援は、
新しいアプリケーションモジュール名を顧客ルックアップテーブルに加えるよう
にエージェントに単に指示することによって、加えることができることには注意
したい。続いて、エージェントは、新しい顧客のためにチェックインし、命令情
報を受信する。
Preferred assistance for copying an application already in the field is
Note that the new application module name can be added by simply instructing the agent to add it to the customer lookup table. Subsequently, the agent checks in for the new customer and receives the order information.

【0034】 エージェントは、アプリケーションに対するチェックインの間隔が経過すると
、サーバーにチェックインする。エージェントは、サーバーから命令ファイルに
受信し返し、これはエージェントがその後に解釈する。命令ファイルを解釈する
ことで、エージェントにサーバーから資源をフェッチさせおよび/または情報を
その上に置き戻させることができる。エージェントは、また、他の命令ファイル
をチェックインするように指示されることができる。特権的顧客も、エージェン
トにとってアプリケーションと考えることができる。従って、エージェントは、
他のアプリケーションのチェックイン間隔とは別のチェックイン間隔で適当なサ
ーバーにチェックインする。また、アプリケーションの命令ファイルは、特権的
な顧客にチェックインさせることができ、逆も真である。
The agent checks into the server when the check-in interval for the application elapses. The agent receives back from the server in the command file, which the agent subsequently interprets. Interpreting the instruction file may cause the agent to fetch resources from the server and / or put information back on it. The agent can also be instructed to check in other instruction files. Privileged customers can also be considered applications by agents. Therefore, the agent
Check in to the appropriate server at a check-in interval different from the check-in interval of other applications. Also, the application's instruction file can be checked in by privileged customers and vice versa.

【0035】 エージェントが、実際に何かをするためにサーバーから資源と命令とを受け取
ると、すぐにユーザーに適切なメッセージを表示するか、あるいは(さらに普通
に)ターゲットのアプリケーションが実行され、アプリケーションの文脈中で動
作するまで待つように指示することができる。エージェントは、ベンダーから来
るようにユーザーに見えるメッセージと共に、アプリケーションの画面ウィンド
ゥ内においてアプリケーションが実行されている間だけ、システムイベントデー
タをプラグインに付属する明白な動作のイベントへと変換する。これらの結果、
顧客とベンダーとの間の接続度と信用の意味となる。イベントの典型的なシーク
エンスは、以下のようである。
As soon as the agent receives the resources and instructions from the server to actually do something, it will either display the appropriate message to the user or (typically) execute the target application, Can be instructed to wait until it works in the context of. The agent translates the system event data into explicit action events attached to the plug-in only while the application is running in the application's screen window, with a message appearing to the user as coming from the vendor. As a result of these,
It means the connection and trust between the customer and the vendor. A typical sequence of events is as follows.

【0036】 1.フックは、新しいアプリケーションが始まったか、あるいはユーザーの関 心を得たかを決定する。 2.エージェントは、アプリケーションが顧客であるかどうかを見るために、 顧客オブジェクトを調べる。もし顧客で無ければ、エージェントは、休止が 続く。 3.ユーザー入力を持つ正しい顧客は、エージェントに、フックにアプリケー ションの詳細な監視を開始させ、フックのプラグインを通じて選択したアプ リケーションを回送することをさせる。 4.フックのプラグインは、エージェントに非同期にメッセージを反射し、こ れは現在のユーザー名の元でイベントをカタログする。 5.エージェントは、碁打ちするものを捜すために、顧客イベントマップを調 べる。 6.もし合致が存在すれば、イベントは実行され、これはアプリケーション内 のUI空間内の動作を引き受けるプラグインを呼び出すことを含むことがで きる。もし見えるコンテントがアプリケーションのUI空間内に示されれば 、顧客アプリケーションは、一時的に使用不可能になり、ユーザーの関心を 受けられない。 7.もし、いずれかのアップロード可能なコンテントが、このイベント内に作 られれば、Inetプラグインに渡され、これは、次の回の帯域幅が利用可 能で送られるように、送信するかスケジュールする。 8.イベントの終了後、ユーザーの関心は、顧客アプリケーションに送り返さ れる。 9.エージェントは、顧客のアプリケーションが関心を失うまで、上のステッ プ4に戻る。顧客のアプリケーションが、関心を失うと、エージェントは、 いずれかの顧客アプリケーション関連のデータを永続的な記憶場所に転送 し、そこでエージェントは、上のステップ1に戻る。1. Hooks determine whether a new application has begun or is of interest to the user. 2. The agent examines the customer object to see if the application is a customer. If not a customer, the agent remains on hold. 3. The correct customer with user input causes the agent to have the hook start monitoring the application closely and forward the selected application through the hook's plug-in. 4. The hook plugin reflects messages asynchronously to the agent, which catalogs events under the current username. 5. The agent examines the customer event map to find what to go. 6. If there is a match, the event is fired, which can include calling a plug-in that takes on the actions in the UI space within the application. If visible content is shown in the UI space of the application, the customer application is temporarily unavailable and may not be of interest to the user. 7. If any uploadable content is created within this event, it is passed to the Inet plugin, which sends or schedules the next round of bandwidth to be available and sent. . 8. After the event, the user's interest is sent back to the customer application. 9. The agent returns to step 4 above until the customer's application loses interest. When the customer's application loses interest, the agent transfers any customer application related data to a permanent storage location, where the agent returns to step 1 above.

【0037】 エージェントの構造と機能を記述したので、サーバーのことを簡単に記述して
おく。
Now that the structure and function of the agent have been described, the server will be briefly described.

【0038】 サーバーに必須の仕事は、適当な命令ファイルを特定のエージェントに配布す
ることである。エージェント内の命令ファイルは、エージェントが取ろうとする
動作を決定し−いずれかの時間にユーザー処理等に関して様々な種類の動作のそ
れを実行する。サーバーは、アプリケーションのユーザー一人一人の記録を保存
する。ユーザーの一人のために動作しているエージェントがサーバーに接続する
ときに、もしあるなら、サーバーがアプリケーションのために持っている潜在的
命令ファイルのいずれがエージェントに適切かを決定する規則のテーブルを参考
に調べる。それらの規則は、そのユーザーに関するデータベース内の全てのデー
タに基づいた属性である。
The essential task of the server is to distribute the appropriate instruction file to the particular agent. The instruction file in the agent determines what action the agent is going to take-at any time to execute it for various types of actions, such as for user processing. The server keeps a record of each user of the application. When an agent running for one of the users connects to the server, the server, if any, has a table of rules that determines which of the potential instruction files the application has for the agent is appropriate for the agent. Find out for reference. Those rules are attributes based on all data in the database for that user.

【0039】 規則の一例は、“もしこのアプリケーションを導入したのが60日あるいはそ
れより前なら、命令ファイルAを送れ”であり、これは、エージェントに何らか
の動作を起こさせ、また、“そしてもし導入が60日前よりも最近なら、命令フ
ァイルBを送れ”であり、これは、他の動作を起こす。二つの動作は、特定のユ
ーザーがプログラムに対して持つ経験の度合いにより異なるだろう。例えば、更
新が利用可能になった場合において、出版者は、経験レベルに適した経験のある
ユーザーへ一つの更新メッセージを送ったり、経験レベルに適した経験の少ない
ユーザーへ他の更新メッセージを送ることを選択することができる。経験レベル
は、例えば、導入から経過した時間に基づいて決定することができる。
An example of a rule is “If you installed this application 60 days or earlier, send command file A”, which causes the agent to take some action and “and if If installation is more recent than 60 days ago, send command file B ", which causes another action. The two behaviors will depend on the particular user's experience with the program. For example, when an update becomes available, the publisher sends one update message to experienced users suitable for the experience level or another update message to less experienced users suitable for the experience level. That you can choose. The experience level can be determined, for example, based on the time elapsed since the introduction.

【0040】 サーバーは、時間的に特定の点でサーバーを調べる特定のエージェントに対し
て、それらの規則のうちいずれが、もしあるならば、正しいものであるかを段階
的に決定するテーブル内で作られた規則を適用する。それらの一つあるいはそれ
より多くの規則が“点火”したすなわち、それが正しいことを発見して、対応す
る一つあるいはそれより多くの命令ファイルがエージェントにダウンロードされ
る。従って出版者は、そのエージェントの属性に基づいて、エージェントの動作
の超“微粒子”制御を受ける。非常に鋭いターゲットの結果、いずれかの特定の
情報が、その特性とヒストリーに基づいて特定のエージェントに送られる。
The server may, for a particular agent examining the server at a particular point in time, enter into a table that progressively determines which of those rules, if any, are correct. Apply the rules made. One or more of those rules have "ignited", ie, discovering that it is correct, and the corresponding one or more instruction files are downloaded to the agent. Thus, the publisher receives ultra-fine control over the agent's behavior based on the agent's attributes. The result of a very sharp target is that any particular information is sent to a particular agent based on its characteristics and history.

【0041】 当業者にとって、それの精神あるいは必須な特徴から離れることなく、本発明
は他の特定な形式でも具現化できることは分かるであろう。従って、現在開示さ
れた実施形態は、全ての点から、図示されたが制限を設けるものでは無いと考え
られる。本発明の範囲は、前述したものよりも添付された請求の範囲によって示
され、それの等価物の意味と範囲内での全ての変更は、その中に受け入れられる
ものである。
It will be apparent to those skilled in the art that the present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. Thus, the presently disclosed embodiments are illustrated in all respects, but are not to be construed as limiting. The scope of the invention is indicated by the appended claims rather than by the foregoing, and all changes within the meaning and range of equivalents are to be embraced therein.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本発明の一般的なブロック図である。FIG. 1 is a general block diagram of the present invention.

【図2】 エージェントアクティベーションの画面表示の図である。FIG. 2 is a diagram of a screen display of agent activation.

【図3】 図1のエージェントのさらに詳細なブロック図である。FIG. 3 is a more detailed block diagram of the agent of FIG.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロン・ヴァン・オス アメリカ合衆国・カリフォルニア・ 94086・サニーヴェール・ティンバーパイ ン・アベニュ・715 (72)発明者 ジェフリー・バース アメリカ合衆国・カリフォルニア・ 94305・スタンフォード・フレンチマン ズ・ロード・745──────────────────────────────────────────────────続 き Continued on the front page (72) Inventor Ron Van Oss, USA 94086 Sunnyvale Timberpine Avenue 715 (72) Inventor Jeffrey Bath United States California 94305 Stamford French Man's Road 745

Claims (20)

【特許請求の範囲】[Claims] 【請求項1】 一つあるいは二つ以上のターゲットの顧客アプリケーション
に関する情報を、オペレーティングシステムを持ち、その上でターゲットの顧客
アプリケーションが走るコンピュータプラットフォームと遠隔サーバーとの間で
交換する方法であって、該方法は、 渡されたメッセージと、ターゲットの顧客アプリケーションとオペレーティン
グシステムとの間で呼ばれる機能のうち、少なくとも一つを妨げる段階と、 ターゲットの顧客処理から、さらなる処理のために第2の処理へと、選ばれた
動作を非同期にメッセージ告知する段階と、 上記の告知に対応して、上記の第2の処理へのあるいはそれからのターゲット
の顧客アプリケーションに関する情報を転送させる段階と を含むことを特徴とする方法。
1. A method for exchanging information about one or more target customer applications between a computer platform having an operating system on which the target customer applications run and a remote server, The method comprises the steps of interfering with at least one of the passed message, a function called between the target customer application and the operating system, and from the target customer processing to a second processing for further processing. And annunciating the selected action asynchronously as a message, and in response to the annunciating, transferring information about the target customer application to or from the second process. And how.
【請求項2】 ターゲットの顧客アプリケーションのメッセージ待ち行列に
メッセージを挿入することなく、ユーザーが顧客処理に関係していると分かる動
作を実行する段階 をさらに含むことを特徴とする請求項1記載の方法。
2. The method of claim 1, further comprising the step of performing an action that the user knows is involved in the customer process without inserting a message into the message queue of the target customer application. Method.
【請求項3】 ターゲット顧客アプリケーションに関する情報を交換するこ
とは、コンピュータプラットフォームと遠隔サーバーとの間の情報交換をスケジ
ュールすることを含む ことを特徴とする請求項2記載の方法。
3. The method of claim 2, wherein exchanging information about the target customer application includes scheduling an exchange of information between the computer platform and the remote server.
【請求項4】 遠隔サーバーへの仮想接続を確立する段階と、 ターゲットの顧客アプリケーションに関する情報を遠隔サーバーに送信する段
階とをさらに含み、 上記のターゲット顧客アプリケーションに関する情報を交換する段階は、実質
的にターゲットの顧客アプリケーションのユーザーには分からないこと を特徴とする請求項3記載の方法。
4. The method of claim 1, further comprising: establishing a virtual connection to the remote server; and transmitting information about the target customer application to the remote server, wherein exchanging information about the target customer application comprises substantially: 4. The method of claim 3 wherein the target customer application user is unknown.
【請求項5】 上記の仮想接続を確立する段階は、 処理が接続を開始したことを検出する段階と、 転送処理を開始する段階と、 転送処理の優先順位を、接続を開始した処理よりも低い優先順位に設定する段
階と を含むことを特徴とする請求項4記載の方法。
5. The step of establishing the virtual connection includes the steps of detecting that the process has started a connection, starting the transfer process, and setting the priority of the transfer process to be lower than the process of starting the connection. Setting the priority to a low priority.
【請求項6】 上記の第2の処理は、エージェントの処理であり、上記の転
送処理は、エージェント処理によって総計された増加する少量のデータを転送す
ることを特徴とする請求項5記載の方法。
6. The method according to claim 5, wherein said second processing is an agent processing, and said transfer processing transfers an increasing small amount of data aggregated by the agent processing. .
【請求項7】 ターゲットの顧客アプリケーションに関する情報の交換を行
うことは、ターゲットの顧客アプリケーションのユーザーインターフェイス空間
内で情報の表示を行う段階を含むことを特徴とする請求項2記載の方法。
7. The method of claim 2, wherein exchanging information about the target customer application comprises displaying the information in a user interface space of the target customer application.
【請求項8】 メニュウ入力を、ターゲットの顧客アプリケーションに加え
る段階をさらに含むことを特徴とする請求項7記載の方法。
8. The method of claim 7, further comprising adding a menu entry to a target customer application.
【請求項9】 メニュウ入力は、情報の交換の少なくとも一つの面を制御す
ることを特徴とする請求項8記載の方法。
9. The method of claim 8, wherein the menu entry controls at least one aspect of the exchange of information.
【請求項10】 上記情報の表示の間に、ターゲットの顧客アプリケーショ
ンからユーザーの関心を取り除く段階をさらに含むことを特徴とする請求項7記
載の方法。
10. The method of claim 7, further comprising removing the user's interest from the target customer application during the displaying of the information.
【請求項11】 情報の表示を行う段階とユーザーの関心を取り除く段階と
は、形式的な対話をターゲットの顧客アプリケーションのウィンドゥに付ける段
階を含むことを特徴とする請求項10記載の方法。
11. The method of claim 10, wherein displaying information and removing user interest comprises applying a formal interaction to a window of a target customer application.
【請求項12】 ターゲットの顧客アプリケーションのユーザーインターフ
ェイス区間内に情報を表示する前に、遠隔サーバーへの仮想接続を確立する段階
と、情報の表示を起こす、ターゲットの顧客アプリケーションに関する情報をコ
ンピュータプラットフォームに送信する段階とをさらに含み、上記情報の送信は
、実質的にターゲットの顧客アプリケーションのユーザーには分からないことを
特徴とする請求項7記載の方法。
12. Establishing a virtual connection to a remote server prior to displaying information in a user interface section of the target customer application, and providing information about the target customer application to the computer platform causing the display of the information. Transmitting the information, wherein the transmitting of the information is substantially transparent to a target customer application user.
【請求項13】 上記の仮想接続を確立する段階は、 処理が接続を開始したことを検出する段階と、 転送処理をスケジュールする段階と、 転送処理の優先順位を、接続を開始した処理よりも低い優先順位に設定する 段階と を含むことを特徴とする請求項12記載の方法。13. The step of establishing a virtual connection includes the steps of: detecting that the process has started a connection; scheduling a transfer process; 13. The method of claim 12, further comprising: setting a low priority. 【請求項14】 上記の第2の処理は、エージェントの処理であり、上記の
転送処理は、エージェント処理によって総計された増加する少量のデータを転送
することを特徴とする請求項13記載の方法。
14. The method according to claim 13, wherein said second processing is an agent processing, and said transferring processing transfers an increasing small amount of data aggregated by the agent processing. .
【請求項15】 コンピュータプラットフォーム上の処理を検出する段階と
、 上記処理を識別する段階と、 上記処理が、コンピュータプラットフォームと遠隔サーバーとの間で情報が交
換されるはずの、ターゲットの顧客アプリケーションであるかどうかを決定する
段階と をさらに含むことを特徴とする請求項1記載の方法。
15. A process for detecting a process on a computer platform, identifying the process, wherein the process is performed at a target customer application where information is to be exchanged between the computer platform and a remote server. Determining if there is any.
【請求項16】 ターゲットの顧客アプリケーションに関する情報を、オペ
レーティングシステムを持ち、その上でターゲットの顧客アプリケーションが走
るコンピュータプラットフォームと遠隔サーバーとの間で交換する方法であって
、該方法は、 ターゲットの顧客アプリケーションとオペレーティングシステムとの間で渡さ
れたメッセージを妨げる段階と、 上記メッセージから引き出されたターゲットの顧客アプリケーションに関する
情報を交換するための転送処理をスケジュールする段階と、 転送処理の優先順位を、低い優先順位に設定する段階と を含むことを特徴とする方法。
16. A method for exchanging information about a target customer application between a computer platform having an operating system and running the target customer application and a remote server, the method comprising: Interfering with the message passed between the application and the operating system; scheduling a transfer to exchange information about the target customer application derived from the message; and lowering the priority of the transfer. Setting the priorities.
【請求項17】 上記の転送処理は、エージェント処理によって総計された
少量のデータを転送することを特徴とする請求項16記載の方法。
17. The method according to claim 16, wherein said transferring process transfers a small amount of data summed up by an agent process.
【請求項18】 LANタイプのインターネット接続を確立する段階と、 転送処理を実行する段階とをさらに含み、 上記転送処理の実行は、実質的にユーザーには分からないこと を特徴とする請求項16記載の方法。18. The method according to claim 16, further comprising: establishing a LAN-type Internet connection; and performing a transfer process, wherein the execution of the transfer process is substantially unknown to a user. The described method. 【請求項19】 接続が開始されたかも知れないことを検出する段階と、 転送処理を開始する段階と、 転送処理の優先順位を、接続を開始した処理よりも低い優先順位に設定する段
階と をさらに含むことを特徴とする請求項16記載の方法。
19. A step of detecting that a connection may have been started, a step of starting a transfer process, and a step of setting a priority of the transfer process to a lower priority than a process of starting the connection. 17. The method of claim 16, further comprising:
【請求項20】 転送処理を実行する前に、ダイヤルアップをできないよう
にし、転送処理の実行が開始した後に、ダイヤルアップをできるようにする段階
をさらに含み、 転送処理の実行は、実質的にユーザーに分からないこと を特徴とする請求項19記載の方法。
20. The method of claim 19, further comprising the step of disabling dial-up before performing the transfer process, and enabling dial-up after the transfer process has begun. 20. The method of claim 19, wherein the information is unknown to a user.
JP2000569297A 1998-08-24 1999-08-17 System and method for exchanging information about a target customer application Pending JP2002524788A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13840398A 1998-08-24 1998-08-24
US09/138,403 1998-08-24
PCT/US1999/018547 WO2000014617A2 (en) 1998-08-24 1999-08-17 System and method for exchanging information relating to a target client application

Publications (1)

Publication Number Publication Date
JP2002524788A true JP2002524788A (en) 2002-08-06

Family

ID=22481845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000569297A Pending JP2002524788A (en) 1998-08-24 1999-08-17 System and method for exchanging information about a target customer application

Country Status (4)

Country Link
EP (1) EP1105786A4 (en)
JP (1) JP2002524788A (en)
CA (1) CA2341428A1 (en)
WO (1) WO2000014617A2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2918781B1 (en) * 2007-07-13 2013-10-11 Infovista Sa METHOD OF MEASURING THE PERFORMANCE OF A TARGET SERVER HAVING A DYNAMIC MONITORING TOOL
CN109683880A (en) * 2018-12-25 2019-04-26 百度在线网络技术(北京)有限公司 Webpage exchange method, device, equipment and storage medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2096374C (en) * 1992-05-18 2006-08-08 Michael A. Sandifer Computer aided maintenance and repair information system for equipment subject to regulatory compliance
US5315703A (en) * 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system
DE69409445D1 (en) * 1993-07-27 1998-05-14 Ibm Process monitoring in a multiple processing provider
US5655081A (en) * 1995-03-08 1997-08-05 Bmc Software, Inc. System for monitoring and managing computer resources and applications across a distributed computing environment using an intelligent autonomous agent architecture
US5913040A (en) * 1995-08-22 1999-06-15 Backweb Ltd. Method and apparatus for transmitting and displaying information between a remote network and a local computer
US5796633A (en) * 1996-07-12 1998-08-18 Electronic Data Systems Corporation Method and system for performance monitoring in computer networks
EP1021755A4 (en) * 1996-12-06 2000-08-09 Streamix Corp Interstitial content display using event-capture code running in web browser address space
US5872976A (en) * 1997-04-01 1999-02-16 Landmark Systems Corporation Client-based system for monitoring the performance of application programs

Also Published As

Publication number Publication date
EP1105786A4 (en) 2004-08-04
WO2000014617A2 (en) 2000-03-16
CA2341428A1 (en) 2000-03-16
EP1105786A2 (en) 2001-06-13
WO2000014617A3 (en) 2000-11-23

Similar Documents

Publication Publication Date Title
US6434532B2 (en) Interactive customer support for computer programs using network connection of user machine
US20190058789A1 (en) Method and apparatus for remote control and updating of wireless mobile devices
CA2496524C (en) Server processing in providing messages for a wireless device connecting to a server
EP1470544B1 (en) Wireless device and method for displaying a message
US6112240A (en) Web site client information tracker
US6173445B1 (en) Dynamic splash screen
EP1568189B1 (en) Session-return enabling stateful web applications
US20060212548A1 (en) Method and system for installing applications via a display page
CN108174302B (en) Method and device for updating activity function playing method in live broadcast application
KR20140027507A (en) Web application architecture
JP2007523567A5 (en)
CN101383842A (en) System and method for displaying network information by computer background screen
US11561814B2 (en) Browser-driven capture of application installations for application virtualization
US6981251B1 (en) Agent system for mobile agents, computer network and method for downloading an agent system from a host computer to a client computer of a computer network
JP4353036B2 (en) Remote connection system, server computer, remote connection method and program
US7197712B2 (en) Server visualization and control
JP2005323093A (en) Remote operation control program utilizing web server
JP2002524788A (en) System and method for exchanging information about a target customer application
US20030076351A1 (en) Method for display of contents
KR100296537B1 (en) Internet billing processing method
KR101573752B1 (en) Analysis System and Method for Mobile Applications
US20080102959A1 (en) Displaying a game menu screen by flash in an on-line game application
JP2002351677A (en) System for controlling execution order of application program
WO2003044662A1 (en) Incrementally increasing or decreasing the available functionalities of a computer program
WO2002101518A2 (en) Technique for integrating information from one or more remotely located sources