(57)【特許請求の範囲】
【請求項１】
第１のプロセッサ及び第１の通信手段を有するオリジンサイトであって、前記第１のプロセッサによってソフトウェアエージェントを生成し、前記第１の通信手段を介して前記ソフトウェアエージェントを送出するようにプログラムされているオリジンサイト；
第２のプロセッサ及び第２の通信手段を有する行き先サイトであって、前記第２の通信手段を介してソフトウェアエージェントを受信し、前記第２のプロセッサによって前記ソフトウェアエージェントを実行し、前記第２の通信手段を介して前記ソフトウェアエージェントを返送するようにプログラムされている行き先サイト；
第３のプロセッサ及び第３の通信手段を有する信頼出来るサイトであって、前記第３の通信手段を介してソフトウェアエージェントを受信し、このソフトウェアエージェントに関する指紋を前記第３のプロセッサによって生成し、前記第３の通信手段を介して前記ソフトウェアエージェントを前記行き先サイトに転送し、前記第３のプロセッサによって前記オリジンサイトからの前記ソフトウェアエージェントに関する指紋と前記行き先サイトから返送された前記ソフトウェアエージェントに関する指紋とを比較し、この比較に基づいた検証通知を前記第３の通信手段を介して前記オリジンサイトに送出するようにプログラムされている信頼出来るサイト；及び、
３つの前記サイトが相互に通信状態にあるオープンコミュニケーションネットワーク、
を有するシステム。
【請求項２】
前記オープンコミュニケーションネットワークが、インターネットである請求項１のシステム。
【請求項３】
前記オープンコミュニケーションネットワークが、ワールドワイドウェブプロトコルを使用して作動する請求項１のシステム。
【請求項４】
前記指紋の生成が、単方向ハッシュ関数である請求項１のシステム。
【請求項５】
前記ソフトウェアエージェントは、複数の固定フィールドと複数の可変フィールドとを含んでおり、前記指紋は、前記固定フィールドから実質的に得られた情報を含んでいる、請求項１のシステム。
【請求項６】
前記固定フィールドは、前記ソフトウェアエージェントが前記行き先サイトから前記信頼出来るサイトへと前記第３の通信手段を介して返送された場合、前記信頼できるサイトの前記第３のプロセッサによって実行されるべき一組のルールを含んでいる、請求項５のシステム。
【請求項７】
前記一組のルールによって、前記信頼出来るサイトの前記第３のプロセッサが、前記可変フィールド内の可変情報が前記行き先サイトで適切に変更されたか否かをチェックすることが可能になっている、請求項６のシステム。
【請求項８】
前記ルールに基づいた情報が、前記ソフトウェアエージェントに関連して可変の各データの値の許容範囲を含んでいる、請求項７のシステム。
【請求項９】
前記固定フィールドは、前記信頼出来るサイトが前記第３の通信手段によって前記オープンコミュニケーションネットワークを介して前記ソフトウェアエージェントをルーティングすることを可能にする一組のルーティングフィールドを含んでいる、請求項５のシステム。
【請求項１０】
前記可変フィールドは、前記信頼出来るサイトの前記第３のプロセッサが前記ソフトウェアエージェントをルーティングエージェントとして識別することができるように、新しいエージェントフラグフィールドを含んでいる、請求項５のシステム。
【請求項１１】
前記固定フィールドは、タスク実行の間に変更されないままであるように設計されている固定データ及び／又は固定されている実行可能なコードを含んでいる、請求項５のシステム。
【請求項１２】
前記可変フィールドは、タスク実行の間に変更されるように設計されている可変データ及び／又は可変の実行可能なコードを含んでいる、請求項５のシステム。
【請求項１３】
前記ソフトウェアエージェントは、ユーザのサイトを識別すると共に他の特定の情報をロッキングアウトするセキュリティフィールドを含んでいる、請求項５のシステム。
【請求項１４】
分散コンピューティングシステムにおけるプロセッサ及び通信手段を有する信頼出来るサイトに実施される方法であって、
前記通信手段を介してソフトウェアエージェントを受信するステップ；
前記通信手段を介して前記オリジンサイトから受信された前記ソフトウェアエージェントの指紋を前記プロセッサによって生成するステップ；
前記通信手段を介して行き先サイトに前記ソフトウェアエージェントを送出するステップ；
前記通信手段を介して前記行き先サイトから返送された前記ソフトウェアエージェントを受信するステップ；
返送された前記ソフトウェアエージェントの指紋を前記プロセッサによって生成するステップ；
前記通信手段を介して前記オリジンサイトから受信された前記ソフトウェアエージェントの指紋と前記返送されたソフトウェアエージェントの指紋と比較して検証結果を形成するステップ；及び、
前記検証結果を、前記通信手段を介して前記オリジンサイトに送出するステップ、
を有する方法。
【請求項１５】
前記プロセッサによってエージェントリターンタイマーを起動するステップ；
前記通信手段を介した前記行き先サイトからの前記ソフトウェアエージェントの返送を、前記プロセッサによってモニタするステップ；
前記エージェントリターンタイマーが徒過した場合、前記プロセッサによって、前記通信手段を介して前記オリジンサイトにタイムアウト通知を送出し、前記エージェントリターンタイマーが徒過していない場合、前記行き先サイトから返送された前記ソフトウェアエージェントに応じて、返送された前記ソフトウェアエージェントの指紋を生成するステップ；
を有する請求項１４の方法。
【請求項１６】
前記プロセッサによって、可変エージェント情報の適切な処理を前記信頼出来るサイトに知らせるように設計されているエージェントルールを実行するステップ；
前記プロセッサによって、前記行き先サイトからの前記ソフトウェアエージェントの返送に応じて、前記可変エージェント情報を前記エージェントルールに対してチェックするステップ；及び、
前記可変情報が適切に変更されたか否かを前記オリジンサイトが決定することができるように、前記通信手段を介して前記オリジンサイトに通知を送出するステップ、
を更に備える請求項１４の方法。
【請求項１７】
前記ソフトウェアエージェントのアクティビティをログファイルに記録するステップを更に含む請求項１４の方法。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、ソフトウェアエージェントとそれらのアクティビティに関し、特に、ソフトウェアエージェントと分散コンピューティング環境におけるそれらのアクティビティの検証に関する。
【０００２】
【従来の技術】
情報集約型のコンピューティング環境の場合、ユーザは、情報を過剰にロードし、かつ計算リソースを非効率的に消費する傾向がある。このような過剰なロードと非効率性を軽減するために、ソフトウェアプログラマは、ソフトウェアエージェントとして広く知られているプログラムを構成してきた。実際に、ソフトウェアエージェントは周知のユーザツールである。
【０００３】
典型的には、ソフトウェアエージェントは、例えば、ユーザに代わって一つ以上のタスクを達成することを扱う。例えば、あるソフトウェアエージェントは、情報をサーチし、フィルターをかけ、分析し、かつ情報に優先順位を割り当てる。他の具体例として、あるソフトウェアエージェントは、銀行業務タスクとそれに関連する口座情報、電子商取引とそれに関連するクレジットカード情報、そしてトレードシークレットまたはトレード機密に関わる情報を有するその他の取引のような、機密に関わるタスクとそれに関連する情報を扱う。
【０００４】
タスクを達成するために、ソフトウェアエージェントは、典型的には、例えば、サーバにより管理されるサービスを得るため、および／または他のエージェントと対話するために、コンピューティング環境に働く。このような条件下で、ソフトウェアエージェントは、いろいろに破損される。例えば、ソフトウェアエージェントは、そのコードを変更させること等によりウイルスを組み込みまたは他の望ましくない機能を与えて、破損させる(例えば、悪意をもって改悪する)ことができる。ウイルスにより破損されたエージェントは、典型的には、そのウイルスをコンピューティング環境(例えば、サーバ)内に、および／またはそれが対話する他のエージェント内に拡散させることが出来る。
【０００５】
他の具体例としては、ソフトウェアエージェントそれ自体が、扱うタスクまたはそのタスクに関連する情報の何れかについてのそのコードの変化等により、破損してしまう場合がある。銀行送金タスクを扱うエージェントの場合、送金の内容または送金額を変えるためにそのコードを変更すると、そのエージェントは破損される。
【０００６】
まだ他の具体例の場合、ソフトウェアエージェントに破損は無いが、エージェントは、環境の一部で悪意の演算が実行されることにより、機能的／間接的に破損される。具体的には、銀行送金タスクを扱うエージェントは、一定送金額を第一の口座から第二の口座に送金することを要請する情報を保持するであろう。しかしながら、このエージェントは、送金サーバそれ自体に存在する悪意により破損される場合がある。この場合のエージェントの破損は、(i)異なる金額を送金すること、または、(ii)この送金額を第三口座に送ること、または、(iii)これら両方等により、タスクのインプリメンテーションが変化してしまうことになる。エージェントへのまたはエージェントによる、（または、その他による）、要請されたタスクが適切に実施されたと言う誤った報告が伴うと、エージェントの破損は増大する。
【０００７】
エージェントの破損は、通常、暗号化技術では充分に保護されない。すなわち、暗号化技術は、ソフトウェアエージェントのオリジンを検証することはできるが、これらの技術は、典型的には、破損を妨げる能力に限界を有している。特に、このような破損が暗号化の前または解読の後に発生する場合、暗号化技術が、エージェントの破損を防ぐことは、通常、困難である。
【０００８】
したがって、分散コンピューティング環境におけるソフトウェアエージェントとそれらのアクティビティを検証する方法と装置が、必要とされている。特に、悪意のある演算が環境内に存在する可能性がある場合に、このような方法と装置が必要とされる。
【０００９】
【課題を解決するための手段】
本発明は、ソフトウェアエージェントとそれらのアクティビティを検証するための装置と方法を提供する。分散コンピューティング環境においては、オリジンリソース、行き先リソースおよび信頼出来るリソースが、設けられている。オリジンリソースは、ほとんどの場合、エージェントの情報および／または扱うタスクが、オリジンリソースに関連しているソフトウェアエージェントに、関係している。オリジンリソースは、典型的には、情報を提供し、および／またはソフトウェアエージェントにタスクを託し、そしてエージェント等のリターンにより、エージェントのアクティビティの結果についての情報のレポートを受信するのを期待する。
【００１０】
オリジンリソースは、典型的には、ソフトウェアエージェントを立ち上げる。しかしながら、ソフトウェアエージェントは、一つ以上のオリジンリソースに関係させることができ、かつ、これは、最初、このようなリソースのいずれかによりまたは他のリソースにより立ち上げることができる(例えば、ソフトウェアエージェントは、最初、信頼の置けるリソースまたは行き先リソースにより立ち上げることが出来る)。
【００１１】
行き先リソースは、ほとんどの場合、扱うタスクのパフォーマンスにおいてエージェントを進めることが期待されるソフトウェアエージェントに関連する。行き先リソースは、典型的には、エージェントを受信し、それと対話し、そしてエージェントの扱うタスクの一つ以上のパフォーマンスを実行し、および／またはそれに貢献する。いかなる一つのソフトウェアエージェントも、一つ以上の関連した行き先リソースを有することができる。
【００１２】
信頼出来るリソースが、ソフトウェアエージェントとそのアクティビティについての検証を提供するように機能するという点で、信頼出来るリソースは、ソフトウェアエージェントと関連する。信頼出来るリソースは、ソフトウェアエージェントの受信／転送；全体のソフトウェアエージェント全体または一部の暗号化／解読；ソフトウェアエージェント指紋の取得、格納、検索、そして比較；可変情報のチェックを含む、ルールの実行；リターンタイマーの確立、設定、更新、およびチェック；エージェントとそのアクティビティの検証に関連した検証通知、レポートまたは他のリターン（このような検証リターンは、典型的には、オリジンリソースおよび／または立ち上げリソースに向けられる）の生成；それが対話するソフトウェアエージェントのアクティビティの記録；そしてソフトウェアエージェントの一部または全ての除去、マスキングまたはその他の保護； の内の一つ以上の選択された演算をサポートする選択されたメカニズムを、それと関連づけることが好ましい。
【００１３】
信頼出来るリソースは、破損しないことが好ましい。このために、信頼出来るリソースに常駐するハードウェアおよび／またはソフトウェアが、その信頼出来るリソースそれ自体のセキュリティを遂行することが好ましい。このセキュリティ指向のハードウェア/ソフトウェアは、信頼出来るリソースを、例えば、ソフトウェアエージェントまたはその他の何れにより導入されるにしろ、ウイルスおよびその他の他の破損影響から保護する。さらに、ある破損が、信頼出来るリソースに発生すると仮定すると、セキュリティ指向のハードウェア/ソフトウェアは、信頼出来るリソースと関連するいかなるオペレーティングシステムおよびアプリケーションソフトウェアも含めて、いかなる破損も識別しかつ補正することが出来ることが好ましい。
【００１４】
本発明は、本発明のこの装置と方法を使用して、検証を可能とするように構成されているソフトウェアエージェントも提供する。いずれの種類のエージェントも、一つ以上の固定フィールドと可変フィールドを有することが好ましい。固定フィールドは、典型的には、アドレス、ルール、データまたは他の固定された情報(エージェントが達成することを託されているタスク(一つまたは複数)に拘わらず、変化しない情報)をサポートする。可変フィールドは、典型的には、演算フラグ(例えば、新たな／古いフラグ)、ルール、データまたは他の可変情報(エージェントがその扱うタスク(一つまたは複数)を達成するさいに、変化する情報)をサポートする。いずれの種類のエージェントも、例えば、可変情報の適切な修正のチェックおよび／またはTRルールが、破損されないことの確保のような、選択された演算を可能にするルールを含めて、一定ルールをサポートすることが好ましい。
【００１５】
本発明は、同様な要素には同じ番号が付されている添付の図面と共に、以下の詳細な説明を参照することにより、より良く理解することができるであろう。
【００１６】
【発明を実施するための形態】
ソフトウェアエージェントとそれらのアクティビティについての検証により、ソフトウェアエージェント情報およびタスクが壊されているか否が決定される。ここで使用される用語「破損」とその修飾された語は、(i)エージェントの宛名違いまたはリダイレクション、(ii)ウイルスコードまたは他の望ましくない機能のエージェント内への導入、またはそれとの組み込み、
(iii)エージェントの置換等、(iv)不適切な、許すことのできないまたは承認されていない態様での、エージェント(例えば、そのタスクおよび／または情報)の、全体または一部の、他の修正、追加または変更、および／または(v)(インプリメンテーションの報告が誤っているか否かにかかわらず)エージェントのタスクの期待されたインプリメンテーションとの相違；の何れかまたは全てを意味する。
【００１７】
ソフトウェアエージェントとそれらのアクティビティの検証は、エージェントとそれらのアクティビティの利得クリティカリティとしての、値を向上させる傾向がある。例えば、a)銀行業務タスクと関連する口座情報；b)電子商取引タスクと関連するクレジットカード情報；そしてc)トレードシークレットかトレード機密に関わる情報を有する他の取引；のようなエージェントが、機密に関わる／秘密のタスクおよびその関連情報に託される場合に、クリティカリティが、存在する傾向がある。
【００１８】
本発明によると、検証装置と方法は、コンピューティング環境内で、および／またはその一部で作動する。このようなコンピューティング環境は、インターネット(Internet)またはインターネットのようなシステム、またはワールドワイドウェブ(World Wide Web)またはワールドワイドウェブに類したシステム、または、あらゆるオープンコミュニケーションネットワークまたはサービス、または（環境それ自体の一部の範囲で悪意のある演算によることも含めて）ソフトウェアエージェントが破損される可能性が有る他のいかなる環境、のような分散コンピューティング環境を有することが好ましい。
【００１９】
広義には、本発明の装置と方法は、オリジンリソース、行き先リソースおよび信頼出来るリソースを考察する。オリジン、行き先および信頼出来るリソースの各々は、サイト、サーバ、ソフトウェアアプリケーション、ソフトウェアエージェント、ネットワーク、ファームウェア、または他のハードウェア、ソフトウェアまたはネットワークリソース(物理的および／または論理的)の何れかを、単独であるいは組合せて、一つ以上(以下、通常、「ハードウェア、ソフトウェアおよび／またはネットワークリソース」と称する)有する。
【００２０】
このような各オリジン、行き先および信頼出来るリソースは、一つの物理的位置で、または、コンピューティング環境内またはそれと関連した複数の分布された物理的位置で、実施させることができることは理解されるべきである。例えば、信頼出来るリソースは、ネットワーク内の、典型的にはコンピューティング装置を有している一サイトに有るサーバとして実施させることができる。ここで、サーバは、例えば、オリジンリソースから(または、それに)、行き先リソースに(または、それから)トラバースすることにより、環境に働く選択されたソフトウェアエージェントと(直接または間接的に)対話するように構成されている。他の具体例では、信頼出来るリソースは、コンピューティング環境の一つ以上のネットワークにおける種々のサイトの間に分布する常駐域を有する一つ以上のサーバとして、実施させることができる。これらの2つの具体例にもかかわらず、信頼出来るリソースを、本発明の原理から逸脱することなく、他の態様で実施することができることは理解されるべきである。
【００２１】
オリジンリソースは、ほとんどの場合、エージェントの情報と扱うタスク(一つまたは複数)を、オリジンリソースまたはそれに関連したものとすることが出来るソフトウェアエージェントと関連する。典型的には、オリジンリソースは、情報を提供することによりおよび／またはタスク(一つまたは複数)をソフトウェアエージェントに託すことによりエージェントを規定する。オリジンリソースは、(a)例えば、コードの形でタスクを提供することにより、(b) 例えば、エージェントが、信頼出来るリソース、行き先リソースまたは第二オリジンリソースのような他のリソースにより立ち上げられる場合には、提供されたタスクの中で選択することにより、 (c)(a)と(b)の組合せ、または、(d)他の方法により、タスクを託す。(オリジンリソースは、本明細書では、しばしば"OR"と略記される。)
【００２２】
オリジンリソースは、典型的には、エージェントがコンピューティング環境に働くことに基づいてレポートを受信することを期待する。ここで、このようなレポートは、エージェントのアクティビティの結果についてまたはその情報の何れかである。しかしながら、タスクが託されているソフトウェアエージェント、または特定のオリジンリソースにより提供されるまたはそれに対して提供される情報に、一つ以上の他のオリジンリソースに関連する情報および／またはタスクを託すこともできることは理解されるべきである。
【００２３】
オリジンリソースが、ソフトウェアエージェントを立ち上げることが可能であることが好ましい。しかしながら、特定のオリジンリソースに関連したソフトウェアエージェントを、最初にオリジンリソース以外のものにより立ち上げることができることは理解されるべきである。例えば、ソフトウェアエージェントを、第一および第二オリジンリソースに関連する目的、または単に第一オリジンリソースに代わるのみの目的の何れかで、第二オリジンリソースにより立ち上げることができる。他の具体例では、ソフトウェアエージェントを、例えば、オリジンリソースまたは行き先リソースの何れかに応答させて、あるいは、(例えば、そのサービスを効果的に提供するように)  信頼出来るリソースそれ自体のイニシアティブで、または他の方法で、信頼出来るリソースにより最初に立ち上げることができる。他の具体例の場合、ソフトウェアエージェントを、例えば、オリジンリソースまたは信頼出来るリソースの何れかに応答させて、または、(例えば、そのサービスを進めるために)行き先リソースそれ自体のイニシアティブで、行き先リソースにより最初に立ち上げることができる。この後者の具体例のほとんどの場合、行き先リソースそれ自体を、有効オリジンリソースとすることが出来る。そしてこの場合、オリジンリソース(または信頼出来るリソース)は、有効行き先リソースとすることが出来る、すなわち、行き先リソースは、情報を提供することができ、および／またはタスクを、オリジンリソースでの動作に関係するエージェントに(例えば、エンドユーザにより)託すことができる。
【００２４】
このような具体例から、ソフトウェアエージェントを一つ以上のオリジンリソースと関連させることができ、かつ、このようなリソースのいずれによってもまたは他のいかなるリソースによっても、本発明の原理から逸脱することなく、最初に立ち上げることができることは、理解されるべきである。いかなる場合においても、ソフトウェアエージェントは、最終的にオリジンリソースに関連することが出来るように立ち上げることは、理解されるべきである。
【００２５】
行き先リソースは、ほとんどの場合、扱うタスクを実行することが期待されているソフトウェアエージェントと関連している。典型的には、行き先リソースは、エージェントを受信し、それと対話し、そしてエージェントの扱うタスクの一つ以上の一部または全てのパフォーマンスを実行し、および／またはそれに貢献する(以下、「実行する」は、通常、タスクについて、実際のパフォーマンスとタスクのパフォーマンスへの貢献の両方を、示すために使用される）。しかしながら、いかなる一つのソフトウェアエージェントも、一つ以上の関連する行き先リソースを有することができることは、理解されるべきである。一例として、エージェントの複数の行き先リソースを、(a)各々がタスクのいかなる一つまたは複数を実行できるように、個々に、または(b)いかなる特定のグループも複数のタスクの内のいかなる一つも実行することができるように、いろいろに構成されたグループで、編成することが出来る。(行き先リソースは、本明細書では、しばしば"DR"と略記される。)
【００２６】
信頼出来るリソースは、ソフトウェアエージェントと信頼出来るリソースが、ソフトウェアエージェントとそのアクティビティの検証を提供するように機能するソフトウェアエージェントに関連する。信頼出来るリソースは、一つ以上の選択された検証動作をサポートすることが好ましい。検証動作の具体例は、排気なしで、ソフトウェアエージェントの取得／転送；ソフトウェアエージェント全体または一部の暗号化／解読；ソフトウェアエージェント指紋の取得、格納、検索そして比較；可変情報のチェックを含む、ルールの実行；リターンタイマーの確立、設定、更新、かつチェック；エージェントとそのアクティビティの検証に関連したレポートまたは他のリターンの生成（このような検証リターンは、典型的にはオリジンリソースおよび／または立ち上げリソースに向けられている）；信頼出来るリソースが対話するソフトウェアエージェントのアクティビティの記録；そしてソフトウェアエージェントの全てまたは一部の除去、マスキング、または保護；を含む。(用語「指紋」は、本明細書では、個々にそして集合的に、ソフトウェアエージェントの指紋、署名、プロファイルまたは他の基準情報、およびそれらを取得することを意味する。)
【００２７】
信頼出来るリソースは、破損しないことが好ましい。このために、信頼出来るリソースが、信頼出来るリソースそれ自体のセキュリティを実現させることが好ましい。すなわち、信頼出来るリソースは、ハードウェア、ソフトウェア、および／または、例えば、ソフトウェアエージェント等により導入されるウイルスと他の破損影響から、TRを保護するように構成されているネットワークリソースを有することが好ましい。さらに、信頼出来るリソースに破損が発生すると仮定すると、信頼出来るリソースは、信頼出来るリソースと関連するいかなるオペレーティングシステムとアプリケーションソフトウェアを含めて、いずれの種類の破損も識別しかつ修正することが可能であることが好ましい。
【００２８】
一具体例の実施例の場合、信頼出来るリソースは、コンピューティング環境にリンクされている環境、および／または環境内に信頼出来るサーバを有する。行き先リソースおよびオリジンリソースも、また、コンピューティング環境にリンクされていて、および／または環境内に有る。どの場合にも、リンクは、各通信パスによって達成され、これらのパスは、コンピューティング環境の一部を有するかまたはそれと関連している。一具体例の場合、コンピューティング環境は、インターネットを有し、そして、通信パスは、光ファイバケーブル、ツイストペア電話線、同軸ケーブル、スイッチングおよびルーティング回路、このようなスイッチングとルーティングに対するプロセス、プロトコル、ファームウェアおよび他のハードウェア、ソフトウェアおよび／またはネットワークリソースを含む、単独および種々の組合せの、複数の通信リソースのいずれかを有する。
【００２９】
この実施例の場合、行き先リソースは、インターネットサイトと関連したサーバを有する。ここで、このサイトは、ある演算と機能(例えば、ユーザー口座へ／からの送金を含む、銀行のサービスにゲートウェイを提供する銀行のワールドワイドウェブサイト)をサポートする。この実施例の場合、さらに、オリジンリソースは、ソフトウェアエージェントを規定しかつ立ち上げることが出来、そして典型的には、エンドユーザによって作動される、インターネットクライアントを有する。オリジンリソースがソフトウェアエージェントを立ち上げたあと、エージェントはコンピューティング環境に働き、したがって、オリジンリソースは典型的にはエージェントの制御を失う。エージェントが、それが働く環境のいかなる一部の範囲内においても破損影響に遭遇すると、ソフトウェアエージェントの扱うタスク(一つまたは複数)または情報は、様々に壊されてしまう。しかしながら、いずれの種類の破損も、立ち上げオリジンリソースにも、および／またはエージェントが関連する他のいかなるオリジンリソース（一つまたは複数）にも、未知のままである。さらに、例え、破損がオリジンリソースにレポートされても、このようなレポートは、通常、それに対して修正処置を施すことが出来ない(例えば、扱うタスクの適切な完了およびいかなる悪意のある演算の識別および根絶の何れ／両方が、排除されている)程、破損の発生後かなり時間が経った時点で行われるものと考えることが出来る。
【００３０】
この具体例の実施例のコンピューティング環境に働かせる場合、ソフトウェアエージェントは、典型的には、オリジンリソース中の信頼出来るリソースと行き先リソースをトラバースする通信パスの一つ以上を使用する。インターネットの場合、これにより、プロトコル（例えば、インターネットプロトコル("IP")）の理解されている動作に基づいて、ソフトウェアエージェントは一つのサイトまたはサーバから次のものに導路化／スイッチされる。このような場合、オリジンリソース、行き先リソースおよび信頼出来るリソースは、IPをサポートする。種々のプロトコルは、単独でまたは一緒に、コンピューティング環境に応じて、補足IPの代わりにまたはそれに対して使用することができ、そして通常、オリジンリソース、行き先リソースおよび信頼出来るリソースが、本発明の原理から逸脱することなく、関係するプロトコール(一つまたは複数)をサポートすることは、理解されるべきである。
【００３１】
リソース中のトラバースのまたはそれに関連した、シーケンス、サービス、そして演算は、エージェントの環境への働きおよび／またはインプリメンテーションにより変化する可能性があるが、ソフトウェアエージェントの検証は本発明に従ってサポートされるべきであることは、理解されるべきである。特に、ソフトウェアエージェントは、タスクを実行するリソースといかなるインタラクションも無いエージェントの状態に依存する第一検証事象と、タスクを実行するリソースとのいかなるインタラクションにも従うエージェントの状態に依存する第二検証事象との、少なくとも2つの検証事象に関する検証動作に従う。
【００３２】
検証事象を確実にするために、OR、DRとTRの中の各トラバースは、通常、信頼出来るリソースとのエージェントのインタラクションを考慮する。典型的には、ソフトウェアエージェントは、オリジンリソースから信頼出来るリソースに向けられ、そして最終的に、信頼出来るリソースにより受信され、そしてそこから、ソフトウェアエージェントは、行き先リソースに向けられ、かつ最終的に行き先リソースで受信される。また、典型的には、行き先リソースから、ソフトウェアエージェントは信頼出来るリソースに向けられ、かつ最終的に信頼出来るリソースで受信され、そして、そこから、ソフトウェアエージェントは、オリジンリソースに向けられ、かつ最終的にオリジンリソースで受信される。また、典型的には、ソフトウェアエージェントは、あるインタラクション（例えば、信頼出来るリソースの、エージェントに対するまたはそれに関係して、適切な検証演算の実行）の後、信頼出来るリソースから、向けられる。
【００３３】
信頼出来るリソースは、それを、選択されたハードウェア、ソフトウェアおよび／または一つ以上の選択された検証動作をサポートするネットワークリソースに関連づけることが好ましい。ハードウェア、ソフトウェアおよびネットワークリソースは、単独そして種々の組合せで、複数のメカニズムを有する。典型的な信頼出来るリソースメカニズムは、(a)受取りメカニズム；(b)転送メカニズム；(c)指紋取得メカニズム；(d)指紋格納メカニズム；(e)指紋比較メカニズム；(f)検証リターンメカニズム；(g)タイマーメカニズム；(h)信頼出来るリソースのルールメカニズム；(i)ロギングメカニズム；(j)ハウスキーピングメカニズム；(k)管理メカニズム；(l)セキュリティメカニズム；そして(m)暗号化メカニズム、を含む。個々にリストアップしたが、メカニズムは、個別に、あるいは一つ以上の組合せにより、あるいは他の方法で、本発明の原理から逸脱することなく、実施させることができる。
【００３４】
信頼出来るリソースメカニズムは、いろいろに実施させることができる。典型的には、これらのメカニズムは、一つ以上のコンピューティング装置(例えば、パーソナルコンピュータ、ワークステーションまたはサーバコンピュータ)に作動するソフトウェアとして実施される。ここで、各コンピューティング装置は、通常、オペレーティングシステム(例えば、Unix、Linux、Windos NT等)、通信スタック、通信ハードウェア、プロセッサ(一つまたは複数)および他のロジックハードウェア、メモリシステム(例えば、一つ以上のキャッシュメモリ、動的ランダムアクセスメモリ、大容量記憶装置、記録用記憶装置など）を、選択された組み合わせ(一つまたは複数)で、有している。ソフトウェアとして実施される場合、信頼出来るリソースメカニズムのいかなる一つ以上も、統合ソフトウェアオブジェクト、またはオブジェクト指向のソフトウェアプログラムにおける離散的なソフトウェアオブジェクトの集合として、または単一の一体化されたソフトウェアプログラム、等で実施させることができることは、理解されるべきである。同様に、リソースメカニズムのいかなる組合せも、ソフトウェアオブジェクト、モジュールまたは他のソフトウェアコンポーネントを共有するために実施させることができる。さらに、全体的に、部分的にまたは冗長させた状態で、信頼出来るリソースメカニズムのいかなる一つ以上も、ソフトウェアコンポーネント（一つまたは複数）の有無にかかわらず、ハードウェア(例えば、ファームウェア)において実施させることができることは、理解されるべきである。この事については、信頼出来るリソースに関して一般的に上述したように、いずれの種類のメカニズムも、一つの物理的位置で、またはコンピューティング環境内のまたはそれと関係する複数の物理的位置の中で、実施させることができる。
【００３５】
受取りメカニズムにより、信頼出来るリソースが、コンピューティング環境において、特に、オリジンリソースと関連するソフトウェアエージェントを受信することが、可能になる。このような場合、オリジンリソースは、典型的には、金の支払またはそれに類するものの送金等の有無にかかわらず、信頼出来るリソースのサービスを利用することを可能する。(以下、信頼出来るリソースのサービスを利用することが可能にされたオリジンリソースは、しばしば「予約登録された」または、「予約登録」を有する等と呼ばれる；同様に、予約登録を有するオリジンリソースは、しばしば「予約登録オリジンリソース」と呼ばれ、そして、関連したソフトウェアエージェントは、しばしば「予約登録エージェント」と呼ばれる。)
【００３６】
ソフトウェアエージェントは、種々の検証目的を含めて、種々の目的のためにコンピューティング環境に立ち上げられる。信頼出来るリソースは、その検証サービスに無関係であるエージェントを受信することができるので、TRの受取りメカニズムは、(例えば、検証可能にされたフラグに対する)エージェントの構成および／またはスペックを分析すること等により、どの受信されたエージェントが、予約登録されているかを決定するフィルタコンポーネントを有していることが好ましい。フィルタを実施することはできるが、特に、例えば、予約登録エージェントのみを受信するように、信頼出来るリソースをコンピューティング環境において実施する場合には、フィルタの実施は不必要であることは、理解されるべきである。
【００３７】
受取りメカニズムは、エージェントが、(例えば、オリジンリソースから)新しく受信されているか、または(例えば、行き先リソースから)戻されているか否かを決定することが出来ることも好ましい。受取りメカニズムは、例えば、そのエージェント内のまたはそれに関係する受取りフラッグを設定/再設定することにより、そのエージェントに関する決定を表す。
【００３８】
転送メカニズムにより、信頼出来るリソースは、コンピューティング環境において通信することが可能になる。特に、ソフトウェアエージェントが、信頼出来るリソースからトラバースすることが可能になる。このようなトラバースは、通常、最終的に、一つ以上の適切な行き先リソースまたはオリジンリソースに向かう。そうするために、転送メカニズムは、適用できるプロトコルに従って作動することが、好ましい。
【００３９】
転送メカニズムは、種々の方法で実施させることができる。例えば、指紋取得および／または比較メカニズムが転送と平行して行われるように、転送メカニズムを、受信されたエージェントのコピーが転送されるように実施させることができる。さらに、転送メカニズムを、一つ以上の複数の行き先リソース、複数のオリジンリソース、および補足リソース、冗長リソースまたは他の追加の信頼出来るリソースをサポートするように実施させることもできる。
【００４０】
指紋取得メカニズムは、エージェントの指紋を取得する。指紋取得メカニズムは、様々な技術を使用して実施させることができる。いかなるインプリメンテーションにおいても、この技術は、実際にまたは実質上、エージェントごとにユニークである指紋を提供することが好ましい。具体例の技術は、単方向ハッシュ関数(例えば、MD5 )である。入力としてエージェントを使用する、単方向ハッシュ関数は、ユニークであるのみならず、リバースエンジニアリングを排除する傾向があるハッシュ署名を生成する。
【００４１】
指紋取得メカニズムは、ソフトウェアエージェントの固定情報に基づいて指紋に実施されることが好ましい。例えば、指紋は、アドレス情報(例えば、一つ以上のオリジンアドレス、行き先アドレスおよび信頼出来るリソースアドレス)および／またはエージェント(および／または他の本質的な取引情報)と関連する情報および扱うタスク(一つまたは複数)に基づくことができる。しかしながら、このメカニズムは、単独で、または固定情報(ソフトウェアエージェントの固定フィールドおよび可変フィールドに関する議論を参照のこと)と共に、エージェントの可変情報に基づいて指紋に実施させることができることは、理解されべきである。(以下に記載されるTRルールは、指紋の取得に使用されないことが好ましい。)実際には、指紋は、エージェントそれ自体全体を含む、または、単にそれ自体とすることが出来る。
【００４２】
指紋取得メカニズムは、インプリメンテーションに基づいて、一つ以上のアプローチを使用して始動させることができる。一実施例においては、このメカニズムは、選択されたエージェントに対し受取りメカニズムにより始動される。例えば、この受取りメカニズムを、受取りメカニズムのフィルタコンポーネントが、受信されたエージェントが予約登録していると決定するときのみ、指紋取得メカニズムを始動させるように実施させることができる。他の実施例では、指紋取得メカニズムは、全ての受信されたエージェントに対し、受取りメカニズムにより始動される。この後者の場合、信頼出来るリソースが、予約登録エージェント以外のエージェントを受信すると、指紋取得メカニズムを、受信されたエージェントが予約登録しているか否かを決定するまたはその決定に貢献するように実施させることができる。他の実施例の場合、指紋取得メカニズムは、自己トリガーし、または受取りメカニズム以外のメカニズムにより始動される。いずれの場合にも、少なくとも選択されたエージェントの受取りにより、指紋取得メカニズムが始動されることが好ましい。
【００４３】
指紋格納メカニズムは、指紋の格納と検索を遂行する。格納メカニズムは、（例えば、一体化または分散型にかかわらず、一つ以上の、キャッシュメモリ、動的ランダムアクセスメモリ、大容量記憶装置、記録用記憶装置等）のメモリシステムを使用して、実施されることが好ましい。格納メカニズムは、制御コンポーネントを含むことが好ましい。典型的な一実施例の場合、制御コンポーネントは、例えば、指紋データベースにおける指紋ファイル／エントリとして、メモリシステムの所定の位置内に、取得された指紋を格納し、かつそれから指紋を検索する。一具体例の場合、指紋格納メカニズムを、それが実行する、または他のメカニズムが（例えば、指紋取得と平行して）実行する予約登録決定に基づいて、予約登録エージェントに対応するこれらの指紋のみを、記憶するように実施させる。
【００４４】
指紋格納メカニズムは、インプリメンテーションに基づいて、一つ以上のアプローチを使用して始動させることができる。一実施例の場合、メカニズムは、選択されたエージェントに対し受取りメカニズムにより始動される。例えば、受取りメカニズムのフィルタコンポーネントを受信したエージェントが、予約登録していると決定するときのみ、指紋格納メカニズムが始動するように、受取りメカニズムを実施させることができる。別の実施例では、指紋格納メカニズムは、全ての受信されたエージェントに対し、受取りメカニズムにより始動される。この後者の場合、信頼出来るリソースが予約登録エージェント以外のエージェントを受信すると、受信されたエージェントが、予約登録しているか否かを決定するまたはその決定に貢献するように、格納メカニズムを実施させることができる。他の実施例の場合、指紋格納メカニズムは、受信されたエージェントに対し、指紋取得メカニズムにより始動される。この後者の実施例において、メカニズムを、例えば、それがまたは他のメカニズムが実行する予約登録の決定に基づいて、予約登録エージェントに対応するこれらの指紋のみを格納するようにが実施させることができる。
【００４５】
指紋比較メカニズムは、破損の可能性を示すことができる差または他の不規則性を識別するために、ソフトウェアエージェントの取得された指紋を比較する。典型的な実施例の場合、比較メカニズムは、信頼出来るリソースに戻ったソフトウェアエージェントの以前に取得された指紋(a)を、指紋取得メカニズムにより新しく取得されたエージェントの現在の指紋(b)と比較する。
【００４６】
しかしながら、他の実施例の場合、取得と比較の(例えば、上述した、「以前に、取得された」と「現在の」)時間特性は、実質上または完全に使用できないことを、認識すべきである。特に、ソフトウェアエージェントは、タスクを実行するリソースといかなるインタラクションも無いエージェントの状態に依存する第一検証事象と、タスクを実行するリソースとインタラクションを持つ状態を有するエージェントに依存する第二検証事象の、少なくとも2つの検証事象に関する検証動作に従うことは考慮される。本発明の実施例における2つの検証事象は、完全にまたは実質上時間差が無い。
【００４７】
検証復帰メカニズムは、エージェントとそのアクティビティの検証に関する、通知、レポートまたは他のリターン(以下、個々にかつ集合的に「検証リターンと称する)を生成する。検証復帰メカニズムは、いろいろに実施させることができる。例えば、検証復帰メカニズムは、選択された検証リターン（一つまたは複数）を特定のリソースに向けるように実施させることができる。さらに、検証復帰メカニズムは、元のエージェントのリターンにより直接、または元のエージェントから分離したリターンにより、実施させることができる。第一のケースでは、検証復帰メカニズムは、転送メカニズムに同じものを提供して、リターンを生成させることが好ましい。第二のケースの場合、検証復帰メカニズムは、(a)それ自体のリターン保持エージェントの生成および立ち上げ（このような立ち上げは、転送メカニズムにより、またはそれと協働して行われる）、そして(b)エージェントでないメッセージの生成かつ送り込み、および(c)他の解決法の、一つ以上のいかなる組合せも、サポートすることが好ましい。
【００４８】
加えて、本発明に従って、検証リターンを、いろいろに構成することができる。一例として、検証リターンは、破損が検出されるか否か(例えば、タスクが成功裏に完了したか否か)に基づいて、設定されるかまたは再設定される検証フラグを有することができる。他の具体例の場合、検証リターンは、信頼出来るリソースで行われるいかなる検証動作の結果に関する詳細も有することができる。別の具体例の場合、検証リターンは、エージェントのアクティビティについての情報、またはその結果の情報（例えば、扱うタスクのパフォーマンスにより集められた情報、またはその結果の情報）の一部または全部を表示することが出来る。他の具体例の場合、検証リターンは、修正処置を可能にしまたはサポートするような情報または命令を有することができる。検証リターンは、上記の組み合わせ(一つまたは複数)、または他のリターンと上記のものの一つ以上のいずれかとの組み合わせ(一つまたは複数)を有することができることは理解されるべきである。
【００４９】
検証リターンは、典型的には、オリジンリソース(一つまたは複数)に向けられる。しかしながら、検証リターンは、他の信頼出来るリソースと行き先リソースにも向けることができる。より具体的には、検証リターンは、エージェントまたはそのアクティビティが関連しているそれらのリソースに向けられている。あるポイントでのエージェントが、タスクが託されかつオリジンリソースに関連するようになると、エージェントまたはそのアクティビティは、通常、オリジンリソースに関連している。
【００５０】
検証復帰メカニズムは、インプリメンテーションに基づいて、一つ以上のアプローチを使用して始動させることができる。一実施例の場合、このメカニズムは、指紋比較メカニズムにより始動され、そして検証リターンは、指紋の比較が不規則性を生じるか否かに拘わらず、向けられる。
【００５１】
タイマーメカニズムは、タイマーコンポーネントとモニタリングコンポーネントを有する。典型的な一実施例の場合、コンポーネントは、タイマー事象の一つ以上の選択された第一クラスの発生後、タイマー事象の一つ以上の選択された第二クラスが発生するまで、経過時間を保持する。ここで、タイマー事象のこのような第一および第二クラスは、完全に同じであるか、完全に異なるか、または一部同じである。このようなタイマー事象は、典型的には、ソフトウェアエージェント、その情報およびタスク(一つまたは複数)、および／またはオリジンまたは行き先リソースを反映する。
【００５２】
監視コンポーネントは、経過タイムに対する関連したタイマーコンポーネントを監視することが好ましい。例えば、監視コンポーネントは、所定の最大期間(この期間は、しばしば「タイムアウト期間」と呼ばれ、かつこのタイマー事象は、しばしば「タイムアウト」と呼ばれる)を超える経過タイムに対して、関連したタイマーを監視するように実施させることができる。さらにタイムアウトに応答して、監視コンポーネントは、環境を反映するコンテントおよびパラメータ(例えば、エージェント、その情報とタスク(一つまたは複数)、および／またはオリジンまたは行き先リソース)を有することが好ましい、タイムアウトメッセージを実行させることが好ましい。一具体例の実施例の場合、監視コンポーネントのタイムアウトメッセージは、(a)タイムアウトフラグ、(b) エージェントの元の指紋、および／またはソフトウェアエージェントを識別するために選択された他の情報、および(c)例えば、エージェントの行き先リソース等に関するいかなるニュースのような、コンピューティング環境の状況に関する他の情報、も有している。このそして他の実施例の場合、タイムアウトメッセージは、補正するためのまたは他の適切な動作を可能にするために、充分な情報と方向を有することが好ましい。
【００５３】
タイムアウトメッセージは、復帰メカニズムが適切な検証リターンを生成させかつ導くことに応じて、検証復帰メカニズムに向けられることが好ましい。このようにして、いかなる特定のタイムアウトメッセージも、メッセージが関連を保持する一つ以上のリソースに知らされる。一例として、典型的な一実施例の場合、ソフトウェアエージェントが、タイムアウト期間以内の行き先リソースとのインタラクションから適切に戻ることに失敗すると、検証リターンは、オリジンリソースに向けられる。（このタイムアウト期間は、所定の事象から測定されていて、そしてこのような所定の事象は、例えば、信頼出来るリソースでソフトウェアエージェントを最初に受領する）。この具体例にもかかわらず、かつこれまでの説明から、上述のまたは他のタイムアウトメッセージに応答しかつ適切である検証リターンを、行き先リソース、または他の信頼出来るリソース(一つまたは複数)、またはそれの他の一部を含めて、いかなるリソース(一つまたは複数)にも向けることができることは理解されるべきである。
【００５４】
タイマーとモニタリングコンポーネントは、インプリメンテーションに応じて、一つ以上のアプローチを使用して始動させることができる。具体例の一実施例の場合、タイマーコンポーネントは、エージェント(例えば、予約登録エージェント)が新しく受信されまたは戻っていると言う受取りメカニズムの決定により起動される。他の具体例の実施例の場合、タイマーコンポーネントは、受信されたエージェントの転送メカニズムの（例えば、行き先リソースへの）方向により起動される。
【００５５】
いかなる実施例にもおいて、タイマーコンポーネントは、停止されることがサポートされていることが好ましい。この後者の実施例を具体的に示すと、第一エージェントに関連するタイマーコンポーネントは、エージェントまたは他のあるリターンがタイムアウトの前に到着する場合、停止されるのが好ましい。エージェントとその到着が両方とも適切な場合、タイマーコンポーネントは停止されることが好ましい。
【００５６】
すなわち、アクティブ解除は、通常、エージェントが適切に信頼出来るリソースに戻ったと言う決定を示す。この決定は、(例えば、エージェントリターン事象の識別に応じて)受取りメカニズムにより、(例えば、エージェントの現在の指紋が成功裏に取得されたことに応じて)指紋取得メカニズムにより、(例えば、エージェントの以前に取得された指紋が成功裏に検索されたことに応じて)指紋格納メカニズムにより、等で達成させることが出来る。いずれの種類の実施例においても、関連するモニタリングコンポーネント(一つまたは複数)が、適切に始動されかつ制御されることが好ましい。
【００５７】
ルールメカニズムは、信頼出来るリソースのルール(しばしば、"TRルール"と呼ばれる)を実行する。一例として、TRルールは、オリジンリソースから得られかつオリジンリソースに関連したソフトウェアエージェントにより、信頼出来るリソースに提供される。ここで、この提供は、ソフトウェアエージェントが信頼出来るリソースと最初に対話するときに、行われるのが好ましい。他の具体例の場合、TRルールは、信頼出来るリソースそれ自体から得られる。この後者の具体例の場合、TRルールは、(a)受信されたソフトウェアエージェントの情報および／またはタスク(一つまたは複数)に、(b)オリジンリソースによるTRのサービスの以前の利用に、または(c)他の入力、構成に、または(d) (a)-(c)の組合せ等に応答して、確立させることが出来る。
【００５８】
ルールメカニズムは、TRルールの実行に対していろいろに実施させることができる。一例として、それは、TRルールは、(a)ソフトウェアエージェントの信頼出来るリソースとの最初のインタラクションに関連して、または(b)行き先リソースからのエージェントのリターン、の何れかに、または(c)これら両方に応じて、実行させることができる。さらに、それは、ソフトウェアエージェントの固定情報または可変情報、他の情報またはこれらの組合せを使用して、TRルールを実行することができる。
【００５９】
TRルールは、選択された演算を可能にする。これらの演算は、例えば、(a)TRルールそれ自体が破損されないことを確保する演算、および(b)例えば、可変情報の破損に対するソフトウェアエージェントを点検する演算を含む。後者に関しては、具体例の一実施例の場合、信頼出来るサーバへのエージェントのリターンに応じて、TRルールが、実際の可変情報とこのような制約との照合を実行するように、TRルールは、可変情報に適用できるデータ制約(例えば、範囲、型など)の規定を実施する。
【００６０】
TRルールは、コンピューティング環境の選択された部分にはアクセス出来ないことが好ましい。典型的な具体例として、ORにより立ち上げられかつORから得られるTRルールを有する予約登録ソフトウェアエージェントは、このようなルールが行き先リソースでアクセス出来ないように、構成され、規定され、または処理されることが好ましい。このような具体例の場合、アクセスが出来ないことは、信頼出来るリソースで遂行させることが好ましい。信頼出来るリソースが、TRルールの、除去、マスキング、エンコーディング、暗号化、または他の適切な処理によりアクセス出来ないようにすることが好ましい。そうすることは、ルールを保護し、ルールの不適切な操作をガードし、かつ扱うタスクと関連情報(例えば、所定の可変フィールドに対して許される値または状態をTRルールから決定することに基づく破損)を破損するルールの使用を排除する。要するに、TRルールと関連情報は、アクセス出来ないようにされていて、このことは、エージェントとそのアクティビティの破損を排除し(そして識別する)ことに貢献する。
【００６１】
ロギングメカニズムは、ソフトウェアエージェントに生成する全てのまたは選択された事象に関して、情報を記録する。そのために、ロギングメカニズムは、例えば、(a)例えば、個別のログ、エージェントの指紋ファイル（一つまたは複数）またはデータベース、またはエージェントに関連する情報の他のデータベースに、事象情報を保存する、(b)例えば、ソフトウェアエージェントの履歴のアクティビティを追跡する使用に対して、現在のまたは保存された事象情報を提供する、および／または、(c)例えば、一つのエージェントについてまたはグループまたはエージェントの型についてレポートを提供するために、選択された基準に基づいて、事象情報を処理することが好ましい。具体例としては、所定の型のエージェントが使用する周波数、エージェント全体のトラフィック、そして過去のリターン回数(全体または型ごと等)についてのリポートを含む、またはそれを提供するように処理させることが出来る事象情報を記録するように、ロッギングメカニズムを実施させることが出来る。ロギングメカニズムは、特に、ハウスキーピングと管理メカニズムに入力を提供するために、実施させることが好ましい。
【００６２】
ハウスキーピングメカニズムは、種々のメカニズムおよび信頼出来るリソースを有するコンポーネントのメンテナンスと、検証サービスをサポートする他の同様の機能とを提供する。例えば、ハウスキーピングメカニズムは、所定のファクタ(例えば、完了した検証サービスまたは古臭さ)に基づいて、全体的にあるいは部分的に、指紋エントリ、記録、ファイル、データベースおよび保存されている他の情報を削除するように実施されることが好ましい。他の具体例として、ハウスキーピングメカニズムは、全体的にあるいは部分的に、所定のファクタに基づいて、(例えば、時々ファイル内容に関して実行される目的をレポートするために情報を検討することができるように、不活性エージェントファイルに情報を移動させるために)指紋エントリ、記録、ファイル、データベースおよび保存されている他の情報を更新するように実施させる。他の具体例として、ハウスキーピングメカニズムは、例えば、所定のエージェントの型に対する過去のリターン回数(そのような情報は、典型的には、ロギングメカニズムにより提供される)に基づいて、および／または行き先リソースまたは行き先リソースの型のような他のパラメータ、および／またはエージェントが作動中である場合の時系列のまたはカレンダの内容(すなわち時刻、曜日または季節)に基づいて、タイマーメカニズムにより使用されるタイムアウト期間を変更するために実施される。
【００６３】
管理メカニズムは、検証サービスに付随する管理機能を提供する。例えば、管理メカニズムは、請求書発行および経理処理に実施させることが好ましい。請求書発行に関しては、管理メカニズムは、いろいろに実施させることができる。具体的には、料金は、検証サービスの使用と関連させて(オリジンリソースにより)請求させることができる。このような料金は、(i)エージェントごと、(ii)行き先リソースごと、(iii)エージェントの型ごと、(iv)オリジンリソースの型ごと、(v)行き先リソースの型ごと、(vi)TRルールの型ごと、(vii)これらの基準の一つ以上の組合せごと、(vii)これらの記載されている基準の一つ以上と組み合わせた他の基準ごとの、一つ以上に基づいて確立される。管理メカニズムは、典型的には、ロギングメカニズムから、少なくとも部分的に請求書発行に関連した情報を得る。
【００６４】
他の具体例として、管理メカニズムは、コンピューティング環境を特徴づけている種々のパフォーマンス統計値または他のパラメータを評価するサービスを提供するために実施されることが好ましい。そのために、管理メカニズムは、予約登録オリジンリソース(または、少なくとも、いずれかの種類の評価サービスを利用するために選択するオリジンリソース)から、入力を受信することができることが好ましい。このような入力は、例えば、重要な統計値/パラメータの識別そして評価結果の取得／報告に対するあらゆる制約または選択を含んでいる。具体的には、管理メカニズムは、信頼出来るリソースの検証サービスと並立する、またはそれに置き換わる他の検証指向の提供を識別しかつ追跡するように実施させることができる。このために、管理メカニズムは、並立する／置き換わる提供と対話するエージェントの選択された性能特性(例えば、使用)に資格を与えることができる。他の例として、管理メカニズムは、コンピューティング環境のロードを評価するために実施させることができる。そのために、オリジンリソースの入力は、例えば、一つ以上の現在の負荷のレベルに基づいて、信頼出来るリソースから(例えば、行き先またはオリジンリソースの何れかに)トラバースする一つ以上のそのエージェントを遅延させ、または速め、またはタイミングを取るリクエスト、そしてトラバースの状況に関する進行レポート（一つまたは複数）を要請するリクエスト(例えば、オリジンリソースは、何の進行リポーティングも選ぶこともできないし、また遅延のおよび／またはトラバース開始のレポートを有するように選ぶこともできない)を、含むことができる。
【００６５】
セキュリティメカニズムは、コンピューティング環境の選択された部分を破損から守る。セキュリティメカニズムは、いろいろに実施させることができる。一例として、セキュリティメカニズムは、エージェントそれ自体に潜在的に存在するいかなる破損影響からも、ソフトウェアエージェント、オリジンリソース、行き先リソースおよび信頼出来るリソースの一つ以上を保護するために、(例えば、コンピューティング環境に働くことに付随するソース化された)ソースに関係なく、受信されたエージェントを処理するように実施させることができる。この目的を達成するために、セキュリティメカニズムは、典型的には、破損される可能性のある受信されたエージェントの一部または全てを、除去し、無効にし、または実施不能にさせることが出来る。このようなメカニズムは、エージェントと破損される可能性のある他の潜在的に実行可能な符号を識別するために使用されるモニタリングファームウェアおよび／または他のハードウェアを含むことが好ましい。
【００６６】
他の具体例として、セキュリティメカニズムは、信頼出来るリソースが、規定された手順または手順の組のみを実行することを可能にさせることが出来る。ここで、これらの手順は、処理される情報により、手順におけるステップのまたはステップの組合せにより、またはそれらが生成させる結果等により、識別される。このような破損されないシステムは、例えば、能力ベースのシステムまたはアーキテクチャを含む。これにより、各タスクには、チケット(または他の識別子)が割り当てられ、そして適切チケットが付与されたタスクのみが実行可能となる。能力ベースのシステムの詳細については、オペレーティングおよびプログラミングシステムシリーズ（ P.J. Denning, 1979, N.Y., North Holland社刊）の、Welbey, M.VおよびNeedham, R.Mによる「Cambridge CAPコンピュータとそのオペレーティングシステム」を参照されたい（これは、参照文献として、本明細書に組み込まれるているものとする）。
【００６７】
セキュリティメカニズムは、メカニズムそれ自体を完全にまたは実質上破損されないようにするために、全体に、部分的にまたは冗長させて、(例えば、ファームウェアも含む)ハードウェアで実施させることができる。このインプリメンテーションの場合、他の信頼出来るリソースメカニズムおよびこのソフトウェアコンポーネント(例えば、オペレーティングシステムおよび通信スタック)も、全体に、部分的に、または冗長させて、(例えば、ファームウェアも含む)ハードウェアで実施させることが、好ましい。したがって、これらのメカニズム(そしてコンポーネント）の実施により、(a)信頼出来るリソースが実質上破損から保護されるように作動し、および／または(b)信頼出来るリソースの関係するメカニズム（一つまたは複数）を、例えば、時々ファームウェアのコピーと比較することが可能になるので、破損が発見されると、補正手段を起動させることが出来る。典型的な補正手段は、例えば、自動的であれ、システムオペレータによるような人間による開始によるにしろ、オブジェクトを再ロードすることによる、いかなる外来のコードも削除することによる、コード比較と補正アルゴリズムまたは同様のルーチンの応用による、および／または他の従来のアプローチによる、ソフトウェアの補修を含む。
【００６８】
暗号化メカニズムは、ソフトウェアエージェント、検証リターン、および信頼出来るリソースにより受信されまたはそれから転送される他の関連するメッセージの全てまたは一部を暗号化しかつ解読する。暗号化メカニズムは、いろいろに実施させることができる。例えば、暗号化メカニズムは、パブリックキーの暗号化と証明書を使用して実施させることができる。このようにして、暗号化メカニズムは、(a)機密に関わるまたは秘密の情報を得るために介在者が通信を傍受するリスク(しばしば「盗聴」と呼ばれる)；(b)通信における情報/タスクを変更する介在者による破損のリスク(しばしば「改造」と呼ばれる)；そして、(c)オリジンリソースまたは行き先リソースが、真正でないリスク(しばしば「まね」と呼ばれる)、を含むコンピューティング環境に固有の傾向がある種々のリスクを扱うことを援助する。しかしながら、いかなる暗号化メカニズムも、通常、それがリソースから転送される前、またはそれがリソースで受信された後(すなわち、暗号化の前でかつ解読の後)、ソフトウェアエージェントを常に保護するためには、有効ではない。
【００６９】
信頼出来るリソースメカニズムは、メカニズムの全てまたは選択されたものの中で、演算上の調整に対して実施されることが好ましい。この調整は、それらの各実施に応じて、メカニズムの中で並列、順次または他の動作を生成することができる。典型的な実施例の場合、例えば、格納メカニズムは、指紋取得と比較メカニズムと協働して使用される。ここで、指紋取得メカニズムは、新しく到着するエージェントの指紋を取得し、それに応じて、格納メカニズムが、(例えば、信頼出来るリソースのメモリシステムに)指紋を格納するので、信頼出来るリソースへのエージェントのリターンに応じて、格納メカニズムは、比較メカニズムに供給するために以前に取得された指紋を検索することができる。ここで、この比較メカニズムは、以前に取得された指紋をエージェントの現在の指紋と比較し、このような現在の指紋は、例えば、エージェントを検証するために比較を予想して指紋取得メカニズムにより取得される。
【００７０】
また、この典型的な実施例の場合、指紋比較メカニズムは、検証復帰メカニズムを始動させて検証リターン(一つまたは複数)を生成させる。このようなトリガーと生成は、この比較が破損を検出するか否かにかかわらず、提供されることが好ましい。しかしながら、破損が検出された場合には、指紋比較メカニズムは検証復帰メカニズムに情報を提供することが好ましい。このような情報を使用して、検証復帰メカニズムは、破損を知らせるように構築されている検証リターンを生成することを可能にすることが好ましく、そして修正処置も可能にすることが好ましい。非限定的な具体例として、比較メカニズムの情報は、比較された指紋の各々とそれらの間の差異を含むことができる。検証リターンは、提供されたフォームで、または処理されたフォーム(例えば、修正処置に対する提案)で、これらを含むことができる。検証リターンは、また、他の情報、例えば、経過タイムおよび全てのタイムアウト、(例えば、アドレスごとの)行き先リソース、そして信頼出来るリソースが、エージェントについてまたは破損について学ぶことができた他のいかなるデータも、含むことができる。
【００７１】
さらにこの典型的な実施例の場合、検証復帰メカニズムは、典型的には、検証が関連するオリジンリソースにリターンが向かうように転送メカニズムを調整する。このような方向は、典型的には、検証されたエージェントの一部としてリターンを転送することにより達成され、このようなエージェントそれ自体は、転送メカニズムにより転送される。これを実行する上で、リターンを実行するエージェントを、オリジンリソースへのトラバースにおける破損影響からエージェントを保護するために、暗号化メカニズムにより処理することが、考慮される。これを実効するさいには、検証リターン、ソフトウェアエージェント、オリジンリソースおよび信頼出来るリソースの一つ以上を、戻ったエージェントそれ自体に潜在的に存在する全ての破損影響から保護するために、エージェントは、例えば、破損する可能性のあるエージェントの一部または全てを、除去し、無効にし、または無力化することにより、例えば、セキュリティメカニズムにより処理されることも、考慮される。
【００７２】
この典型的な実施例の場合、タイマーメカニズムのタイマーとモニタリングコンポーネントが、使用される。タイマーコンポーネントは、通常、ソフトウェアエージェントが、信頼出来るリソースに最初に到着したとき(例えば、エージェントの状態が、行き先リソースとのいかなるインタラクションも有しないとき)に起動される。具体的には、タイマーコンポーネントは、エージェントの行き先リソースへの転送に基づいて起動されることが好ましい。
【００７３】
タイマーコンポーネントの起動により、関連する少なくとも一つのモニタリングコンポーネントが、そのタイマーコンポーネントを監視するために起動されることが好ましい。具体的には、監視コンポーネントは、行き先リソースからソフトウェアエージェントのタイムリでかつ適切なリターンを監視するために（この監視は、所定のリターンタイムアウト期間に対して行われる）、起動されることが好ましい。リターンタイムアウトが生成される前に、エージェントが適切に戻されない場合、監視コンポーネントは、環境に適切なコンテントとパラメータにより、リターンタイムアウト事象を示すタイムアウトメッセージを生成する。タイムアウトメッセージは、典型的には、検証リターンの転送に使用される。
【００７４】
調整の他の具体例においては、(a)格納メカニズムが、不適切な指紋を一掃するためにハウスキーピングメカニズムを調整し、そして、(b)特に、管理メカニズムが、それらがタイムアウト期間を設定／更新しかつ請求書を計算することを、それぞれ、可能にする情報を有するために、ハウスキーピングおよび管理メカニズムに入力を提供するよう、ロギングメカニズムを実行させることが好ましい。
【００７５】
本発明のソフトウェアエージェントは、本発明のこの装置と方法を使用する検証を可能にするために実施される。いずれの種類のエージェントも、一つ以上の固定フィールドと可変フィールドを有することが好ましい。固定フィールドは、典型的には、アドレス、ルール、データ、コード、セキュリティプロトコル、または他の固定情報(エージェントが託すタスク(一つまたは複数)に関係なく、変化しないまたは変化すべきでない情報)をサポートする。例えば、固定フィールドアドレスは、オリジン、行き先、および信頼出来るリソースの、コンピューティング環境に適切であるアドレスを含むことができる。これらのアドレスにより、ソフトウェアエージェントは、OR、DRおよびTRの中をトラバースするためにコンピューティング環境に適切に働く。
【００７６】
可変フィールドは、典型的には、演算フラグ(例えば、新たな／古いフラグ)、時間フラグ(例えば、受取り、転送および／またはリターンの時刻／日付)、ルール、データ(例えば、検証リターンデータ)、タスク関連情報、タスク関連コード、または他の可変情報をサポートする。可変情報は、通常、エージェントのアクティビティに応答しまたはそれに関連して、許容限度の範囲内で、変化することができる情報を含む。このようなアクティビティは、例えば、DRに到着する一つ以上のエージェント、それが扱うタスク(一つまたは複数)を達成するエージェント、または（ORまたはDRから)TRに到着するエージェントを含む。可変情報が変化する間、このような変化は、典型的には、一定制限幅に制限される。
【００７７】
本発明のエージェントは、TRルールをサポートすることが好ましい。TRルールは、典型的には、選択された演算を可能にする。これらの演算により、例えば、そのTRルールが、破損されず、および／または可変情報の適切な修正をチェックすることが確実に行われる。後者に関しては、具体例の一実施例の場合、TRルールは、可変情報に適用できるデータ制約(例えば、範囲、型など)を規定するように実施させるので、信頼出来るサーバへのエージェントのリターンに応じて、TRルールが実行され、このような制約に対して実際の可変情報がチェックされる。
【００７８】
そのフィールドにより、ソフトウェアエージェントは、情報および扱うタスク(一つまたは複数)を含む。扱うタスクは、全て、通常、行き先リソースでまたはとそれと関連して実行されるコードの形で、固定フィールドに含まれる。この実行は、典型的には、一つ以上の可変フィールドのコンテント内での変化と言う結果になる。例えば、実行コードは、選択された変数情報を変更し、または行き先リソースから得られたまたはそれと関連したデータを含めて、新たなデータをエージェントに加えることが出来る。実行コードは、ソフトウェアエージェントに含まれる関連情報に依存させることもできる。このような関連情報は、通常、データ形態で、固定フィールドにも含まれる。しかしながら、このような情報は、これに代えて(または、これに加えて)可変フィールドに含ませることも出来る。
【００７９】
本発明のソフトウェアエージェントは、複数のタスクを達成しおよび／または複数の行き先リソースと対話するために実施させることができる。したがって、エージェントの転送は、種々の方法で達成させることができる。一例として、ソフトウェアエージェントは、各々が、行き先リソースDR1、DR2、DR3およびDR4で実行される、タスクT1、T2、T3およびT4を、それに関連させることが出来る。一つのインプリメンテーションの場合、信頼出来るリソースTR1は、各々の行き先リソースと平行してエージェントのコピーを転送する。他のインプリメンテーションの場合、信頼出来るリソースTR1は、エージェントを順次各々の行き先リソースに転送するので、各タスクは、所定のシーケンス、またはリソースの可用性の何れかに基づいて、実行される。他の実施例の場合、信頼出来るリソースTR1は、並列転送と順次転送が組み合わされる。
【００８０】
複数のタスクおよび／または行き先リソースを有するエージェントの検証に関する信頼出来るリソース(一つまたは複数)は、検証演算に関して、いろいろに実施させることができる。一例として、行き先リソース(一つまたは複数)でタスクのシーケンシャルパフォーマンスを監督する信頼出来るリソース(一つまたは複数)は、信号破損に対し、(すなわち、検証リターンにより)、(a)失敗した検証に関連するタスクが存在する場合には、シーケンス全体に、(b)失敗した検証に関連するシーケンシャルタスクのみに、または、(c)失敗した検証およびシークエンス内の全てのサブシークエンスに関するシーケンシャルタスクに、実施させることができる。他の具体例の場合、行き先リソース(一つまたは複数)でタスクの並列パフォーマンスを監督するリソース(一つまたは複数)は、信号破損に対して、(a)失敗した検証に関するタスクのみについて、または、(b)何れかが、失敗した検証に関連する場合、全てのタスクについて、実施させることができる。
【００８１】
特に、複数のタスクおよび／または行き先リソースに関するエージェントについての実施例の場合、複数の信頼出来るリソースを、使用することができる。このような使用は、通常、エージェントの適切な構成(例えば、複数のTRを可能にするフラグおよび／または複数のTRに対するアドレス)、および／またはエージェントが予約登録する信頼出来るリソース(一つまたは複数)の適切な構成により実施される。例えば、エージェントが、信頼出来るリソースTR1のみを予約登録する場合、その予約登録されたリソースは、それ自体、一つ以上の追加の、挿入された、信頼出来るリソースを使用することができる。そのために、TR1は、典型的には、それ自体、並列パフォーマンス、シーケンシャルパフォーマンスまたは他のパフォーマンスに拘わらす、エージェントを、例えば、このような各々配置された信頼出来るリソースに転送するために、エージェントの信頼出来るリソースのアドレス情報を変更する。この例の場合、エージェントは、典型的には、複数のTRが使用可能であることを示すようにフラグを設定する。しかしながら、このようなフラグは、本発明の原理から逸脱することなく、省略させることができることは、理解されるべきである。
【００８２】
配置された信頼出来るリソース(一つまたは複数)の使用は、通常、予約登録された信頼出来るリソース（一つまたは複数）によりエージェントのTRルールを処理することを意味する。前述したように、予約登録された信頼出来るリソースは、通常、エージェントのTRルールに働くように実施される。そうするために、予約登録された信頼出来るリソースは、TRルールへのアクセスを可能にする。したがって、配置された信頼出来るリソース(一つまたは複数)が、TRルールを使用することになっている場合、このようなリソースがアクセスされることが好ましい。このように、予約登録された信頼出来るリソースが、エージェントからTRルールを除去してしまわないことが好ましい。除去は、通常、望ましくないが、特定環境(例えば、TRルールが局所的に配置されたTRに提供される場合、または、TRルールが最終的に加入者TRで実行される場合)の下では、TRルールの除去を、実施することができる。マスキング、コード化、暗号化、または予約登録された信頼出来るリソースで提供されるTRルールの他の処理と同様に、配置された信頼出来るリソース(一つまたは複数)が、TRルールを実行することは、好ましい。このようなリソース(一つまたは複数)は、マスクを外すこと、復号化、(例えば、パブリックキー技術による)解読、または逆プロセス等を可能にする。さらに、配置された信頼出来る全てのリソース(一つまたは複数)がTRルールを保護する場合であっても、その予約登録された信頼出来るリソースが、そのアクセスを維持するように、予約登録されかつ配置されたリソースが、調整されることが好ましい。
【００８３】
エージェントが複数のタスクをサポートする場合にはいつでも、何れかのタスクが検証の異常終了と関連する場合には、残りのタスク(一つまたは複数)を終了させ、中止させ、実行不能にするように、信頼出来るリソースを、実施させることができる。実行不能化の場合には、信頼出来るリソースは、エージェント破損の補正を試みることを可能にさせることが好ましい。このような補正は、典型的には、エージェントに関連するTR指紋ファイルに基づく。さらに、このような補正が、そのように実施される場合、それを、例えば、関係するオリジンリソースからの追加の入力に依存させることが出来る。ここで、このような入力は、通常、検証異常終了に関するそれに向けられている検証リターンに応答する。補正が達成されると、信頼出来るリソースは、関係するオリジンリソースOSに通知し、かつ以前に実行不能にされた残りのタスクを使用可能にすることが好ましい。
【００８４】
従って、本発明は、エージェントとエージェントアクティビティの検証が、信頼出来るリソースの中の検証演算の協働と拡散(例えば、動的に)に基づいて、有効かつ生産的になるように、複数の信頼出来るリソースの使用を企図している。
【００８５】
図1には、本発明の装置と方法を実施するシステム100が、コンピューティング環境108(および、好ましくは一部)と通信する、オリジンサイト102、信頼出来るサイト104、および行き先サイト106を、含むことが図示されている。サイト102、104と106は、通信パス110を介してコンピューティング環境108内で通信する。サイト102、104と106は、それぞれ、オリジンリソース、信頼出来るリソースおよび行き先リソースに対応する。コンピューティング環境108は、典型的には、インターネットの一部である。(ここで、オリジンサイト、信頼出来るサイトおよび行き先サイトは、それぞれ、「OS」、「TS」および「DS」としばしば呼ばれる。)
【００８６】
通常、信頼出来るサイト104は、ソフトウェアと共にサーバとして機能するコンピューティング装置またはコンピューティングシステム(少なくとも2つのコンピューティング装置)である。環境108がインターネットの場合、信頼出来るサイト104はインターネットサーバである。オリジンサイトと行き先サイト102と106は、例えば、ユーザのホームの独立型PCまたはLANに基づくコンピューティング環境のノード、またはそれを無関係なコンピュータプラットホーム、または他のインストールにリンクするために、環境108と通信アクセスを有する他の全てのローカライズされた／閉じたコンピューティング環境のような、いかなるサイトでも良い。
【００８７】
図2には、プロセッサ("P")202と、カップリング206を介してプロセッサ202に結合されているメモリシステム("MEMORY")204を含む信頼出来るサイト200の具体例が、図示されている。プロセッサは、Intel Corporation、Motorola Corporation、Texas Instruments, Inc、IBM、AMID、Cyrix、または他のいかなるディジタルプロセシングデバイスのメーカにより製造された、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ等（これらに限定されるものではないが）を含む、いかなるディジタル処理装置とすることができる。信頼出来るサイト200は、また、プリンタ、ディスプレイターミナル、バッテリーバックアップデバイスおよび電力調節デバイスを含む様々な周辺装置を、これらに限定されることなく、含むことができる。
【００８８】
信頼出来るサーバ200は、ソフトウェア212も含む。ソフトウェアは、メモリシステム204に格納されることが好ましい。ソフトウェア212は、信頼出来るサーバ200に必要とされる必要なタスクを成し遂げるために命令を実行することが可能ないかなるオペレーティングシステムでも良いオペレーティングシステム218を含む。適切なオペレーティングシステムには、ウィンドーオペレーティングシステム、UNIXオペレーティングシステム、または他のいかなるオペレーティングシステムも含まれるが、これらに限定されるものではない。
【００８９】
ソフトウェア212は、ソフトウェアエージェントとそれらのアクティビティを検証するソフトウェアエージェント検証システム220も含む。ソフトウェア212は、また、TSをウイルスまたは他の破損ソフトウェアメカニズムから保護するためのセキュリティーシステム222を含むこともできる。セキュリティーシステムを、本発明の原理から逸脱することなく、検証システム内で一体化させることが出来ることは、認識されるべきである。
【００９０】
TS 200は、入力ポート224と出力ポート230も含む。入力ポート224は、 (カップリング226を介して)プロセッサ202に、そして(パス228を介して)環境108 に結合されている。出力ポート230は、(カップリング232を介して)プロセッサ202 に、そして(パス234を介して)環境108 に結合されている。
【００９１】
図3を参照すると、フローチャート300は、信頼出来るサーバ200に検証システム220を実施する好ましいステップの一組を提供する。フローチャート300は、通常、システムスタートアップで始められる公称スタート302を含む。検証システム220は、ログアップデートステップ304におけるログファイルの全てのソフトウェアエージェントアクティビティを記録することが可能である。ソフトウェアエージェントが、信頼出来るサーバ200に向けられるときに、検証システム220は、受信ステップ306で、ソフトウェアエージェントを受信し、そしてオプションとして、TS完全性を維持するために、ステップ308で、エージェントのセキュリティーチェックを実行する。
【００９２】
受信され、そしてオプションとして、セキュリティがテストされると、検証ソフトウェアは、エージェントの固定されたコード部分の一部を形成するTRルールを実行し(またはセーブし)、更にステップ309で、TRルールのエージェントを除去する(または、このようなルールを保護する)。
【００９３】
ステップ310において、システム220はエージェントに指紋を付ける。
【００９４】
ステップ312において、検証ソフトウェア220は、受信されたソフトウェアエージェント(一つまたは複数)に対してリターンタイマーを起動させる。システム220は、指紋ファイルにおけるエージェント(一つまたは複数)に対するタイムアウト条件をチェックするタイムアウトステップ314を実行する。タイムアウトステップ314は、タイムアウト条件に遭遇すると稼動される割込みルーチンとすることが出来るが、また、所定のあるインタバルでのタイムアウト条件に対する指紋ファイルを走査するルーチンとすることも出来る。タイムアウト条件に遭遇すると、制御は、"yes"ブランチ316に転送され、生成タイムアウト通知ステップ318と送出し通知ステップ320に転送される。ステップ318と320は、タイムアウト通知を生成し、そしてそれを適切なリソース(例えば、オリジンサイト102 )に送出する。次いで、制御は、アップデートログステップ304に転送され、そしてプロセスは、エージェントを監視し続ける。
【００９５】
ステップ314においてタイムアウト条件に遭遇しない場合には、制御は、"no"ブランチ322を経由して、ステップ324に転送され、ここで、受信されたエージェントが"new"であるか否かがテストされる。エージェントが"new"であると、制御は、"yes"ブランチ326を経由して、例えば、指紋ファイルにエージェント指紋を格納するセーブ指紋ステップ328に、転送される。指紋格納の後、システム220は、エージェントリターンタイマーをオン状態に切り替えるタイマー設定ステップ330を実行する。次に、"yes"ブランチ326は、システム220が、エージェントのシステムへのリターンに応じて、エージェントを旧エージェントと識別することが可能となるように、エージェントに情報を加える旧設定ステップ332を実行する。この旧設定ステップ332は、"off'から"on"に (0→1または1→0)、エージェントにおけるフラグビットを設定することが好ましい。(加えて、フラグは、不正行為から守るロックおよびキーのようなセキュリティアルゴリズムを含むことができる。)次いで、"yes"ブランチ326は、エージェント送出しステップ334で、エージェントをその行き先に転送する。次いで、制御は、ログ更新ステップ304に転送され、そしてプロセスは続き、エージェントを監視する。
【００９６】
ステップ324において、エージェントが"old"(すなわち、例えば、以前にステップ332で、旧エージェントフラグが設定されたので、"new"でない)であると、制御は、"no"ブランチ336を経由して、エージェントリターンタイマーをOFF状態に切り替える第二タイマー設定ステップ338に転送される。"no"ブランチ336は、エージェントと関連する以前に取得された／格納された指紋をサーチする元の指紋検索ステップ340を実行し、そして指紋が発見されると、元のエージェントの指紋を検索する。次いで、元の指紋と現在の指紋は、指紋比較ステップ342で比較される。比較ステップ342は、元の指紋における情報が情報リターン指紋と十分に合致するか否かを決定する。
【００９７】
ステップ343において、TRルールが、戻りデータ値に対して実行される。ルールが満足され、そして指紋の比較が肯定的であると、エージェントのタスク(一つまたは複数)が、成功裏に完了したことが示される。指紋の比較と可変データをチェックするルールの実行が、エージェントのタスクを成功裏に完了させることができるように、行き先サイトは、完了情報をエージェントに書き込んでおくことが好ましい。
【００９８】
エージェントが、クライアントの銀行（MYBANK）で一つの口座から他の口座にある預金額を移動させるように設計されていると仮定しよう。このエージェントは、TSアドレス、MYBANKアドレス、口座番号と移動される預金額を有するであろう。エージェントがTSに到着すると、TS検証システムは、エージェントに対する一意の名前を含みかつ取引情報を格納するファイルを生成する。行き先サイトは、検証のためにTSにエージェントを送出する前に、行き先サイトにより実行される取引の記録をソフトウェアエージェントに書き込むように設計されているソフトウェアを有することが、好ましい。エージェントが戻ると、TS検証システムは、元の取引情報を、戻るエージェントにおける取引情報および、行き先サイトによりエージェントに追加されたログ情報と比較する。
【００９９】
ソフトウェアエージェントの署名、指紋、またはプロファイルが、エージェントのほとんど固定された情報(すなわち、非可変フィールドにおける情報または、ソフトウェアエージェントアクティビティの間、変更されてはならないフィールド)のみを有するので、TSに存在する検証チェックアルゴリズムは、エージェントの固定フィールドのいかなる部分におけるエラーまたは不整合をチェックすることが出来るであろう。加えて、エージェントは、ある可変フィールドを、例えば、行き先サイトにより変えることができる態様に関する情報を含む固定されたルールを有することができる。これらのルールは、TSに、可変データが仮定し得る許される範囲を知らせることが出来、TSに、エージェントが取得することができる追加コードの型を知らせることが出来、TSに、エージェントからどの様なコードの型が抽出されたかを知らせることが出来、またはTSに、エージェントの可変フィールドを変更するることができる態様についての、他のいかなる妥当な情報も知らせることが出来る。
【０１００】
比較ステップ342が、2つのエージェント指紋を比較しかつそれらの比較結果を決定すると、それらの結果は、結果チェックステップ343に渡され、このステップの結果は、メッセージ生成ステップ344に渡され、このステップは、これらの比較結果とチェック結果を採用し、適切な通知を生成する。この比較とチェックが何の不規則性も示さない場合には、メッセージステップ344は、成功裏に完了したと言うメッセージまたは通知(すなわち、検証リターン)を生成するであろう。この比較とチェックが不規則性を示す場合には、メッセージステップ344は、例えば、オリジンサイトに、不規則性を知らせるメッセージまたは通知を生成するであろう。
【０１０１】
成功裏に完了されたメッセージは、オリジンサイトがその記録を更新することができるように、エージェントまたは単にエージェント識別子についての詳細を含むことができる。オリジンサイトに不規則性を知らせるメッセージは、オリジンサイトが、即時の修正処置をとるためにに必要でかつ充分な全ての情報を含むことが好ましい。このような情報は、検証システムにより追跡される全てのタイミング情報とともに、両方の指紋を含むことができる。TSは、また、銀行手数料、連邦機関、州機関等のような不規則性を処理するために、関係当局に通知を行うルーチン（一つまたは複数）を含むこともできる。
【０１０２】
適切な通知が生成されると、"no"ブランチ336は、オプションとして指紋ファイルからエージェントの指紋を除去し、その指紋を不活性エージェントファイルに移動させ、またはそのエージェントにフラグを立てることも出来るので、検索ステップ340は、ファイル探索の間、それをスキップするか、またはファイル変更ステップ346で全てを提供するであろう。次いで、通知は、例えば、通知送出ステップ348でオリジンサイトに送出される。次いで、制御は、ログ更新ステップ304に転送され、そして、このプロセスは続き、エージェントを監視する。
【０１０３】
これらのステップの多数は、組み合わせ、グローバルまたは共有にすることができることは、認識されなければならない。例えば、送受信ステップは、組み合わせることができる。加えて、プログラムフローは、呼び出し、コール、または始動等が行われ、かつ実行中に情報を交換する個別オブジェクトまたはモジュールに分割出来るように、再設計することができる。いずれにせよ、フローチャート300の主演算は、十分に、そして効果的に実施される。
【０１０４】
図4には、本発明の具体例のソフトウェアエージェントの構成が、示されている。具体例のエージェント400は、固定フィールド410と可変フィールド450を含む。固定フィールドは、アドレスフィールド412を含む。この説明において、アドレスフィールド412は、オリジンサイトのアドレスフィールド(一つまたは複数) 414、信頼出来るサイトアドレスフィールド(一つまたは複数) 416、そして行き先サイトアドレスフィールド(一つまたは複数) 418を含む。固定フィールド410は、ルールフィールド420、セキュリティフィールド422、固定されたソフトウェアエージェントの実行可能なコードフィールド424と固定データフィールド426も含む。可変フィールド450は、新たな／古いフラグ452、ルールフィールド454、演算結果のフィールド456、可変ソフトウェアエージェントの実行可能なコードフィールド458および可変データフィールド460を含む。
【０１０５】
セキュリティフィールド422は、典型的には、オリジンサイト、信頼出来るサイト、行き先サイト、エージェント(例えば、新たな／古いフラグ)またはこれらのいかなる組合せのセキュリティを向上させる情報／プロトコルを有する。例えば、セキュリティフィールドは、暗号化の有無にかかわらず、ロックとキープロトコール(一つまたは複数)を提供することができる。例えどんなセキュリティプロトコルが実施されても、オリジンサイト、信頼出来るサイトおよび行き先サイトは、(例えば、エージェントまたはその一部のロックを外しかつ解読する)セキュリティプロトコルを遂行するために、それぞれ、適切であるように、レジデント情報／コードサイトを有する。
【０１０６】
本発明は、いくつかの実施例を参照して開示されたが、本明細書を読むことから、当業者は、上述されかつ請求項で請求された本発明の範囲および趣旨から逸脱せずに、変更と修正を行うことが出来ることは、理解されるべきである。
【図面の簡単な説明】
【図１】本発明の分散コンピューティング環境を示すブロック図である。
【図２】本発明の信頼出来るリソースを示すブロック図である。
【図３】本発明の信頼出来るリソースと関連するソフトウェアエージェントとそのアクティビティを検証するステップを示すフローチャートである。
【図４】本発明のソフトウェアエージェントを示すブロック図である。
【符号の説明】
102  オリジンサイト
104  信頼出来るサイト
106  行き先サイト
110  ネットワーク
400  エージェント
410  固定フィールド
450  可変フィールド
412  アドレスフィールド
414  オリジンサイトアドレスフィールド
416  信頼出来るサイトのアドレスフィールド
418  行き先サイトのアドレスフィールド
420  ルールフィールド
422  セキュリティフィールド
426  固定データフィールド
450  可変フィールド
【図１】
0004553491.tif 000002
【図２】
0004553491.tif 000003
【図３】
0004553491.tif 000004
【図４】
0004553491.tif 000005