(57)【特許請求の範囲】
【請求項１】
複数の移動型のエージェントが動作する計算機である、複数のエージェントシステムとエージェント認証サーバとがネットワーク接続された分散構成計算機システムにおいて、
前記各エージェントシステムは、エージェント名とユーザ名とを指定したユーザによるエージェントに対するアクセス権限の問合せを前記エージェント認証サーバへ送出するアクセス権限問合せ手段を有し、
前記エージェント認証サーバは、
前記エージェントに対するアクセス権限を記憶保持するアクセス権限保持手段と、
前記エージェントシステムからの前記アクセス権限の問合せを受信すると、前記アクセス権限保持手段を参照して当該エージェント名とユーザ名とに基づき当該エージェントに対するアクセス権限の有無を判定するアクセス権限判定手段と、
このアクセス権限判定手段による判定結果を問合せ元のエージェントシステムへ返送する判定結果返送手段とを有する
ことを特徴とする分散構成計算機システム。
【請求項２】
複数の移動型のエージェントが動作する計算機である、複数のエージェントシステムとエージェント認証サーバとがネットワーク接続された分散構成計算機システムにおいて、
前記エージェント認証サーバは、
ユーザによるエージェントに対するアクセス権限を記憶保持するアクセス権限保持手段と、
前記アクセス権限の変更が生じた際に当該エージェントシステムへ当該アクセス権限を設定するためのアクセス権限設定手段を有し、
前記各エージェントシステムは、
前記アクセス権限設定手段により設定されたアクセス権限を記憶保持するアクセス権限保持手段を有する
ことを特徴とする分散構成計算機システム。
【請求項３】
複数の移動型のエージェントが動作する計算機である、複数のエージェントシステムとエージェント認証サーバとがネットワーク接続された分散構成計算機システムにおいて、
前記エージェント認証サーバは、前記各エージェントシステムがエージェント生成の権限を持っているか否かを記憶保持し、
前記各エージェントシステムは、
ユーザ名を指定したエージェント生成要求入力に応じて、自己がエージェント生成の権限を持っているか否かを前記エージェント認証サーバに問合わせ、
生成権限を有すればエージェントを生成し、前記ユーザ名を生成したエージェント内に保持させ、
生成権限を有さないとエージェント生成を中止する
ことを特徴とする分散構成計算機システムに於ける移動型エージェント管理制御方法。
【請求項４】
前記エージェント認証サーバは、前記各ユーザによる各エージェントに対するアクセス権限を記憶保持し、
エージェントの移動元のエージェントシステムにあってはエージェントの保持するユーザ名を取り出してエージェント移動要求に付加し、
エージェントの移動先のエージェントシステムにあっては他のエージェントシステムからエージェントの移動要求を受領すると、当該移動要求に含まれるエージェント名とユーザ名とを取り出し、エージェントに対するアクセス権限を持っているか否かを前記エージェント認証サーバに問合わせて、前記アクセス権限を有していればエージェント移動を許可し、前記アクセス権限がない場合はエージェント移動を拒否する
ことを特徴とする請求項３記載の分散構成計算機システムに於ける移動型エージェント管理制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークコンピューティング等に於けるエージェント技術に関するものであり、特にセキュリティや認証、アクセス制御等に係わる分散構成計算機システム、及び分散構成計算機システムに於ける移動型エージェント管理制御方法に関する。
【０００２】
【従来の技術】
従来、ネットワークコンピューティング等に於けるエージェント技術、特に移動型エージェントでは、エージェント自体のコードの移動と、データの移動を伴いながら、適切な場所で適切な処理を行うことを目的としている。エージェントが移動し、必要に応じてエージェント間で通信を行いながら処理を続けていくことで、柔軟性の高いシステムを構築することができる。
【０００３】
移動型エージェント技術に基づいて作成されるアプリケーションシステムは、異なる計算機で動作するプログラムの集合とみることが可能である。従来からのオブジェクト指向技術に基づいたオブジェクトに移動性を持たせたものをエージェントとみることもできる。
【０００４】
エージェントは、複数の計算機を移動しながら処理を進めていき、当初の作業が終了すると、結果を保持して戻ってくるという動作をする。
【０００５】
一般に、エージェントは、各計算機から情報を収集したり、処理結果を取得しながら移動する。
【０００６】
エージェントは、移動先の計算機においてはエージェントを生成したユーザの代理者として動作することになる。
【０００７】
エージェントの振る舞いは、遠隔地にある計算機にユーザの代わりに移動してデータ収集や機器操作を行うことになるが、不正なユーザによるエージェントの生成はウィルスプログラムと同様な振る舞いをすることにもなる。このような背景から、エージェント技術が実用的なシステムに適用されないという問題も生じていた。
【０００８】
【発明が解決しようとする課題】
上述したように、このためにエージェントの生成者情報を正確に保持し、エージェント移動中に、当該情報が改竄されることのないようにし、且つ移動先計算機でその情報をエージェントから取り出し、代理人であることを認証する必要がある。
【０００９】
移動型エージェントは、利用者の代理人として移動先で処理を実行する。このためには、正しいユーザが生成したエージェントであるか、或いはそのユーザが動作させることのできるエージェントであるかを調べる仕組みが必要となる。
【００１０】
本発明は上記事情を考慮して成されたもので、エージェントを安全に動作させるために上述した不具合等を解消するものであり、以下の（１）乃至（４）に示すセキュリティや認証、アクセス制御の改善を図る移動型エージェントシステム、及び分散構成計算機システムに於ける移動型エージェント管理制御方法を提供することを目的とする。
【００１１】
（１）ユーザの権限を正確にエージェントに保持させる機能
（２）エージェント及びその実行コードの移動中の盗聴や改竄を防止する防機能
（３）実行可能なエージェントであるか否かをチェックする機能
（４）移動先のリソースにアクセスできるか否かをチェックする機能
尚、上記（１）の機能はユーザの権限に従わない不正なエージェントの生成を防止するものである。（２）の機能はネットワーク上でエージェントのデータの盗聴や改竄を防止するものである。（３）の機能はエージェントが移動するときに当該計算機で実行可能であるかをチェックすることでノードの破壊を防止するものである。そして（４）の機能はエージェントのリソースのアクセス権をチェックすることでエージェントによる計算機資源の不正アクセスを防止するものである。
【００１２】
【課題を解決するための手段】
本発明は、上記目的を達成するため、以下の（１）乃至（４）に示す機能をもつ構成とした。
【００１３】
（１）  複数の移動型のエージェントが動作する計算機である、複数のエージェントシステムとエージェント認証サーバとがネットワーク接続された分散構成計算機システムにおいて、各エージェントシステムは、エージェント名とユーザ名とを指定したユーザによるエージェントに対するアクセス権限の問合せをエージェント認証サーバへ送出するアクセス権限問合せ手段を有し、エージェント認証サーバは、エージェントに対するアクセス権限を記憶保持するアクセス権限保持手段と、エージェントシステムからのアクセス権限の問合せを受信すると、アクセス権限保持手段を参照して当該エージェント名とユーザ名とに基づき当該エージェントに対するアクセス権限の有無を判定するアクセス権限判定手段と、このアクセス権限判定手段による判定結果を問合せ元のエージェントシステムへ返送する判定結果返送手段とを有することを特徴とする。
【００１４】
このような機能をもつ構成によれば、各エージェントに対するアクセス権限等は、エージェント認証サーバによって、一元管理することになる。これによって、アクセス権限の変更があった場合にも一括して修正を行うことができるようになる。
【００１７】
（２）  複数の移動型のエージェントが動作する計算機である、複数のエージェントシステムとエージェント認証サーバとがネットワーク接続された分散構成計算機システムにおいて、前記エージェント認証サーバは、ユーザによるエージェントに対するアクセス権限を記憶保持するアクセス権限保持手段と、前記アクセス権限の変更が生じた際に当該エージェントシステムへ当該アクセス権限を設定するためのアクセス権限設定手段を有し、前記各エージェントシステムは、前記アクセス権限設定手段により設定されたアクセス権限を記憶保持するアクセス権限保持手段を有することを特徴とする。
【００１８】
このような機能をもつ構成によれば、エージェントの実行権限やエージェントのリソースアクセス権限を一元管理し、該当するエージェントシステムにアクセス権限情報を配布することにより、毎回エージェント認証サーバへアクセスする必要がなくなるため、動作効率を上げることができる。又、アクセス権限の変更があった場合にも一括して修正を行うことができるようになるとともに、エージェントが移動してきたときやエージェントが計算機リソースにアクセスときにローカルに権限検査を行うことが可能になる。
【００２３】
（３）  複数の移動型のエージェントが動作する計算機である、複数のエージェントシステムとエージェント認証サーバとがネットワーク接続された分散構成計算機システムにおいて、エージェント認証サーバは、各エージェントシステムがエージェント生成の権限を持っているか否かを記憶保持し、各エージェントシステムは、ユーザ名を指定したエージェント生成要求入力に応じて、自己がエージェント生成の権限を持っているか否かをエージェント認証サーバに問合わせ、生成権限を有すればエージェントを生成し、ユーザ名を生成したエージェント内に保持させ、自己がエージェントの生成権限を有さないとエージェント生成を中止することを特徴とする分散構成計算機システムに於ける移動型エージェント管理制御方法である。
【００２４】
このような機能を備えた構成によれば、エージェントの生成権限をエージェント認証サーバで行うことにより、計算機システム内に不正なエージェントが生成されないようにすることができる。
【００２５】
（４）  上記（３）に加えて、エージェント認証サーバは、前記各ユーザによる各エージェントに対するアクセス権限を記憶保持し、エージェントの移動元のエージェントシステムにあってはエージェントの保持するユーザ名を取り出してエージェント移動要求に付加し、エージェントの移動先のエージェントシステムにあっては他のエージェントシステムからエージェントの移動要求を受領すると、当該移動要求に含まれるエージェント名とユーザ名とを取り出し、エージェントに対するアクセス権限を持っているか否かを前記エージェント認証サーバに問合わせて、アクセス権限を有していればエージェント移動を許可し、アクセス権限がない場合はエージェント移動を拒否する。
【００２６】
このような機能を備えた構成によれば、エージェントの移動権限のチェックをエージェント認証サーバで行うことにより、計算機システム内の特定の計算機に許可されない不正なエージェントが移動しないようにすることができる。
【００４７】
【発明の実施の形態】
以下、図面を参照して本発明の一実施の形態を説明する。
【００４８】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る複数のエージェントから構成される複数のエージェントシステム１００とエージェントの認証サーバ１２０から成る分散構成計算機システムの実施形態を示す概略構成図である。
【００４９】
具体的には、エージェントが正しいユーザによって生成され、許可されたリソースにアクセスしているか否かをチェックするときの運用の形態を示す図である。
【００５０】
図示するように、エージェントクライアントＣ１（１０１），…，エージェントクライアントＣｎ（１０１）、エージェントプラットフォームＰ１（１０２），…，エージェントプラットフォームＰｎ（１０２）等がネットワーク１１０を介して接続されている。
【００５１】
例えば、エージェントクライアントＣ１（１０１）から発行されたエージェントが幾つかのエージェントプラットフォーム（１０２，…）をネットワーク１１０を経由して移動し、最後にエージェントクライアントＣ１（１０１）に戻ってくるような動作をする。
【００５２】
尚、エージェントクライアント１０１，…，１０１とエージェントプラットフォーム１０２，…，１０２の違いは、ユーザが直接操作をするか否かであり、両者を区別しない場合には、エージェントシステム１００，…，１００と呼ぶことにする。又、本実施形態にあっては、各（或いは特定の）エージェントシステム、エージェントクライアント、エージェントプラットフォーム並びにこれらに係わるものを説明する場合、特別の場合を除き、単にエージェントシステムは１００、エージェントクライアントは１０１、エージェントプラットフォームは１０２等として説明する。
【００５３】
エージェント認証サーバ１２０は、アクセスコントロールリストを保持し、エージェントが正しいユーザに作成され、計算機資源にアクセスすることができるか否かを判断するためのサーバである。
【００５４】
図２に、エージェント認証サーバ１２０が具備するモジュール構成を示す。
【００５５】
エージェント認証サーバ１２０は、エージェントに対するアクセス権限を保持するアクセス権限保持部１２１、アクセス権限について問い合わせがあったときにアクセスが正当であるか否かを返答すアクセス権限検査部１２２、アクセス権限の変更があったときに当該エージェントシステムへエージェント操作の権限を設定するためのアクセス権限設定部１２３等を有して構成される。
【００５６】
図３は各エージェントシステム１００が具備するモジュール構成を示している。ここでは、エージェントシステムの代表例としてエージェントシステムＣｍ（１００）を用いて説明するが、他の場合も同様である。
【００５７】
エージェントシステム１００には、ユーザが行いたい作業となるアプリケーションであるエージェント１０３と、エージェント１０３のライフサイクルを管理するエージェントマネージャ１０４が存在する。エージェント１０３は、エージェントマネージャ１０４が生成する。エージェントマネージャ１０４は、エージェントシステムが稼動するときに生成してもよいし、動的に生成されてもよい。本実施形態では、エージェントマネージャは次のような管理モジュールを総称したものとなる。
【００５８】
即ち、エージェントマネージャ１０４は、エージェント操作の権限をチェックするためのエージェント認証サーバ１２０に問い合わせを行うアクセス権限問合せ部１０５、エージェントの生成を行うエージェント生成部１０６、エージェントが移動してくる際にエージェントがその計算機で実行可能であるかを判断し実行するエージェント実行制御部１０７等から構成される。
【００５９】
エージェント１０３は、エージェントシステム１０４で生成される。
【００６０】
上記構成につき、図４のフローチャートを参照して、エージェントが生成されるときのエージェントシステムとエージェント認証サーバの動作について説明する。尚、フローチャートでの処理の流れは、どこで処理が主体的に成されているかが把握できるよう、例えば（エージェントシステム）、（エージェント認証サーバ）等の領域に当該処理等を記すようにしてあり（除：端子記号）、これは本発明の実施形態の全て渡って共通している。
【００６１】
エージェント１０３が生成されるときに、エージェントシステム１００のエージェント生成部１０６は、エージェント１０３を生成しようとしているユーザ情報を計算機より取り出す（ステップＳ４０２）。
【００６２】
ここでは、ユーザ情報としてはユーザ名とする。
【００６３】
ユーザ名の取り出しは、現在計算機にログインしているユーザの情報から取得できるものとする。
【００６４】
別の方法としは、ＩＣカード等からユーザ情報を読み取り、利用する方法もある。いずれの場合に於いても、エージェントシステムの外部において、ユーザ情報が取得されるものとする。
【００６５】
エージェント生成部１０６は、ユーザ情報を取得すると、アクセス権限問合せ部１０５にユーザ名と生成するエージェント名を渡し、エージェントが生成可能であるか否かを判断する（ステップＳ４０４）。
【００６６】
アクセス権限問合せ部１０５は、ユーザ名とエージェント名をエージェント認証サーバ１２０へ送る。
【００６７】
エージェント認証サーバ１２０では、アクセス権限検査部１２２にてアクセス権限保持部１２１より当該ユーザ名とエージェント名のアクセスコントロールリストを取り出し（ステップＳ４０６）、実行権限があるか否かを判断する（ステップＳ４０８）。
【００６８】
実行権限があると判断した場合には（ステップＳ４０６のＹＥＳ）、「成功」のメッセージを返し（ステップＳ４１０）、実行権限がないと判断した場合には（ステップＳ４０６のＮＯ）、「失敗」のメッセージを返す（ステップＳ４１２）。
【００６９】
アクセス権限問合せ部１０６は、エージェント認証サーバ１２０から「成功」が返されたときには（ステップＳ４１４のＹＥＳ）、エージェントの生成が可能であると判断し、エージェント生成部１０６に於いてエージェント生成のパラメータとしてユーザ名を渡すことでユーザ名を保持させる。そして、エージェントプール１０８に入れることでエージェントを実行する（ステップＳ４１６）。
【００７０】
一方、アクセス権限問い合せ部１０５は、エージェント認証サーバ１２０から「失敗」のメッセージが返されたときには（ステップＳ４１４のＮＯ）、エージェントの生成が不可能であると判断し、エージェント生成部１０６ではエージェントの生成を行わず、生成者に対して実行権限がないことを通知して（ステップＳ４１８）処理を終了する。
【００７１】
尚、より生成を確かなものにする方法として、例えば、Ｊａｖａアプレットでエージェントを生成するものとし、アプレットを呼び出すページに対して、読み出しアクセス権限を設定することで、生成者を限定することも可能である。
【００７２】
次に、エージェントが移動してくるときの動作について図５のフローチャートを参照して説明する。ここでは、エージェントシステムＡ１からエージェントシステムＡ２にエージェントＢが移動することを考える。
【００７３】
エージェントシステムＡ１は、エージェントが保持するエージェント名とエージェント生成者であるユーザ名をエージェントから取り出し（ステップＳ５０２）、エージェントシステムＡ２に対するエージェント移動要求に付加する（ステップＳ５０４）。
【００７４】
エージェントシステムＡ２のエージェント実行制御部１０７では、移動要求に含まれるエージェント名とユーザ名から当該エージェントシステムで動作可能であるか否かを調べるために（ステップＳ５０６）、アクセス権限問合せ部１０５に対してエージェント名とユーザ名を渡す。
【００７５】
アクセス権限問合せ部１０５は、ユーザ名とエージェント名をエージェント認証サーバ１２０へ送る。
【００７６】
エージェント認証サーバ１２０では、アクセス権限検査部１２２によってアクセス権限保持部１２１より当該ユーザ名とエージェント名のアクセスコントロールリストを取り出し（ステップＳ５０８）、実行権限があるか否かを判断する  （ステップＳ５１０）。
【００７７】
実行権限がある場合には（ステップＳ５１０のＹＥＳ）、「成功」のメッセージを返し（ステップＳ５１２）、実行権限がない場合には（ステップＳ５１０のＮＯ）、「失敗」のメッセージを返す（ステップＳ５１４）。
【００７８】
アクセス権限問合せ部１０５は、エージェント認証サーバ１２０から「成功」が返されたときには（ステップＳ５１６のＹＥＳ）、エージェントの移動が可能であると判断してこの旨を通知し（ステップＳ５１８）、エージェント実行制御部１０７に於いてエージェントシステムＡ１からエージェントＢの受け入れを行う（ステップＳ５２０）。
【００７９】
エージェントＢの受け入れをし、エージェントプール１０８に入れることでエージェントを実行する（ステップＳ５２２）。
【００８０】
一方で、アクセス権限問合せ部１０５は、エージェント認証サーバ１２０から「失敗」が返されたときには（ステップＳ５１６のＮＯ）、エージェントの移動が不可能であると判断し、エージェント実行制御部１０７ではエージェントの移動を行わず、エージェントシステムＡ１に対して移動権限がないことを通知し  （ステップＳ５２４）、処理を終了する。
【００８１】
同様に、エージェントが実行中にエージェントシステム内のエージェントが所有権を有しない計算機リソースにアクセスする場合について図６のフローチャートを参照して説明する。
【００８２】
ここでは、ユーザＵの作成したエージェントＢが計算機リソースＲ１をアクセスすることを考える。
【００８３】
エージェントＢが動作するエージェントシステムのエージェント実行制御部１０７では、リソースアクセスの要求に含まれるリソース名とユーザ名から当該エージェントがアクセス可能なリソースであるかを調べるために、アクセス権限問合せ部１０５に対してリソース名とユーザ名を渡す（ステップＳ６０２、Ｓ６０４）。アクセス権限問合せ部１０５は、ユーザ名とリソース名をエージェント認証サーバ１２０へ送る。
【００８４】
エージェント認証サーバ１２０では、アクセス権限検査部１２２によってアクセス権限保持部１２１より当該ユーザ名とリソース名のアクセスコントロールリストを取り出し（ステップＳ６０６）、実行権限があるか否かを判断する（ステップＳ６０８）。
【００８５】
実行権限がある場合には（ステップＳ６０８のＹＥＳ）、「成功」のメッセージを返し（ステップＳ６１０）、実行権限がない場合には（ステップＳ６０８のＮＯ）、「失敗」のメッセージを返す（ステップＳ６１２）。
【００８６】
アクセス権限問合せ部１０５は、エージェント認証サーバ１２０から「成功」が返されたときには（ステップＳ６１４のＹＥＳ）、エージェントがリソースＲにアクセス可能であると判断し、実際にリソースへのアクセスを実行する（ステップＳ６１６）。
【００８７】
一方、アクセス権限問合せ部１０５は、エージェント認証サーバ１２０から  「失敗」が返されたときには（ステップＳ６１４のＮＯ）、エージェント実行制御部１０７ではエージェントがリソースＲにアクセスすることを拒否し、アクセス権限なしの通知をして、エージェントの実行を中止する（ステップＳ６１８）。
【００８８】
尚、上述した実施形態の処理動作はミドルウェアによって実現されるものであり、その内容は、フロッピーディスクやハードディスク等の磁気ディスク、ＣＤ−ＲＯＭ、ＭＯ等の光ディスク、或いはネットワークを経由した配布形式によって提供され実現されることは勿論可能である。
【００８９】
（第２の実施形態）
以下に本発明の第２の実施形態について、説明する。
【００９０】
図７は本実施形態の複数のエージェントから構成される複数のエージェントシステムから成る分散構成計算機システムの実施形態を示す構成図である。具体的には、エージェントが正しいユーザによって生成され、許可されたリソースにアクセスしているか否かをチェックするときの運用の形態を示す図である。
【００９１】
図示するように、エージェントクライアントＣ１（２０１），…，Ｃｎ（２０１）、エージェントプラットフォームＰ１（２０２），…，Ｐｎ（２０２）がネットワーク２１０を介して接続されている。例えば、エージェントクライアントＣ１（２０１）から発行されたエージェントが幾つかのエージェントプラットフォーム２０２をネットワーク２１０を経由して移動し、最後にエージェントクライアントＣ１（２０１）に戻ってくるような動作をする。
【００９２】
尚、エージェントクライアント２０１とエージェントプラットフォーム２０２の違いは、ユーザが直接操作をするか否かであり、両者を区別しない場合には、単にエージェントシステム２００と呼ぶことにする。又、本実施形態にあっては、各或いは特定のエージェントシステム、エージェントクライアント、エージェントプラットフォーム並びにこれらに係わるものを説明する場合、特別の場合を除き、単にエージェントシステムは２００、エージェントクライアントは２０１、エージェントプラットフォームは２０２等として説明する。
【００９３】
図８に、エージェントシステム２００が具備するモジュール構成を示す。エージェントシステム２００には、ユーザが行いたい作業となるアプリケーションであるエージェント２０３と、エージェント２０３のライフサイクルを管理するエージェントマネージャ２０４とが存在する。
【００９４】
エージェント２０３は、エージェントマネージャ２０４が生成する。エージェントマネージャ２０４は、エージェントシステムが稼動するときに生成してもよいし、動的に生成されてもよい。
【００９５】
本実施形態では、エージェントマネージャは次のような管理モジュールを総称したものとなる。即ちエージェントマネージャは、エージェント操作の権限を別のエージェントシステムに設定するためのアクセス権限配布部２０５、エージェント操作の権限を保持しローカルに判断するためのアクセス権限保持部２０６、エージェントの生成を行うエージェント生成部２０７、エージェントが移動してくるときにエージェントがその計算機で実行可能であるかを判断し実行するエージェント実行制御部２０８等から構成される。
【００９６】
上記構成につき、ユーザがエージェント実行権限やリソースアクセス権限等のアクセス権限を変更し、関連するエージェントシステムにその変更を反映する方法について図９のフローチャートを参照して説明する。
【００９７】
ユーザは、図示しない手段を用いてアクセス権限を変更するために、エージェントシステム２００のアクセス権限保持部２０６内にあるアクセスコントロールリストを修正する。例えば、エディタでアクセスコントロールリストを修正する。説明を簡単にするため、ユーザはエージェントシステムＡ１内に保持されているアクセスコントロールリストのうち、エージェントシステムＡ２に関連した部分を変更したものとする。
【００９８】
エージェントシステムＡ１のアクセス権限保持部２０６ではアクセスコントロールリストが変更されると、他のエージェントシステムに変更された情報を送付するためにアクセス権限配布部２０６に変更されたアクセスコントロールリストを渡す。
【００９９】
エージェントシステムＡ１のアクセス権限配布部２０５では、アクセスコントロールリストから各エージェントシステムに関する情報を取り出し（ステップＳ９０２）、夫々のアクセス権限保持部２０６に送る（ステップＳ９０４）。この例ではエージェントシステムＡ２のアクセス権限保持部２０６に変更となったアクセスコントロールリストを送ることになる。
【０１００】
エージェントシステムＡ２のアクセス権限保持部２０６は、送付されてきたアクセスコントロールリストを新しい情報として内部に保持する（ステップＳ９０６、Ｓ９０８）。
【０１０１】
次に、エージェントが生成される場合のエージェントシステム動作について図１０のフローチャートを参照して説明する。
【０１０２】
エージェントが生成されるときに、エージェントシステム２００のエージェント生成部２０７は、エージェントを生成しようとしているユーザ情報を計算機より取り出す（ステップＳ１００２）。ここでは、ユーザ情報としてはユーザ名とする。
【０１０３】
エージェント生成部２０７は、ユーザ情報を取得すると、アクセス権限保持部２６にユーザ名と生成するエージェント名を渡し、エージェントが生成可能であるか否かを判断する。
【０１０４】
アクセス権限保持部２０６は、当該ユーザ名とエージェント名のアクセスコントロールリストを取り出し（ステップＳ１００４）、実行権限があるか否かを判断する（ステップＳ１００６）。
【０１０５】
実行権限がある場合には（ステップＳ１００６のＹＥＳ）、「成功」のメッセージを返し、実行権限がない場合には（ステップＳ１００６のＮＯ）、「失敗」のメッセージを返す。
【０１０６】
エージェント生成部２０７は、アクセス権限保持部２０６から「成功」が返されたときには、エージェントの生成が可能であると判断し、エージェント生成のパラメータとしてユーザ名を渡すことでユーザ名を保持させる。そして、エージェントプール２０９に入れることでエージェントを実行する（ステップＳ１００８）。
【０１０７】
一方、エージェント生成部２０７が、アクセス権限保持部２０６から「失敗」が返されたときには、エージェントの生成が不可能であると判断し、生成者に対して実行権限がないことを通知して（ステップＳ１０１０）処理を終了する。
【０１０８】
次に、エージェントが移動してくるときの動作について図１１のフローチャートを参照して説明する。
【０１０９】
ここでは、エージェントシステムＡ１からエージェントシステムＡ２にエージェントＢが移動することを考える。
【０１１０】
エージェントシステムＡ１は、エージェントが保持するエージェント名とエージェント生成者であるユーザ名をエージェントから取り出し（ステップＳ１１０２）、エージェントシステムＡ２に対するエージェント移動要求に付加する（ステップＳ１１０４）。
【０１１１】
エージェントシステムＡ２のエージェント実行制御部２０８では、移動要求に含まれるエージェント名とユーザ名から当該エージェントシステムで動作可能であるかを調べるために、アクセス権限保持部２０６に対してエージェント名とユーザ名を渡す。
【０１１２】
エージェントシステムＡ２のアクセス権限保持部２０６は、当該ユーザ名とエージェント名のアクセスコントロールリストを取り出し（ステップＳ１１０６）、実行権限があるか否かを判断する（ステップＳ１１０８）。
【０１１３】
実行権限がある場合には（ステップＳ１１０８のＹＥＳ）、「成功」のメッセージを返し、実行権限がない場合には（ステップＳ１１０８のＮＯ）、「失敗」のメッセージを返す。
【０１１４】
エージェントシステムＡ２のエージェント実行制御部２０８は、アクセス権限保持部２０６から「成功」が返された場合には、エージェントの移動が可能であると判断し、この旨を通知して、エージェントシステムＡ１からエージェントＢの受け入れを行う（ステップＳ１１１０、Ｓ１１１２）。そして、エージェントＢの受け入れをし、エージェントプール２０９に入れることでエージェントを実行する（ステップＳ１１１４）。
【０１１５】
一方、エージェント実行制御部２０８が、アクセス権限保持部２０６から「失敗」を返されたときには、エージェントの移動が不可能であると判断し、エージェントシステムＡ１に対して移動権限がないことを通知して（ステップＳ１１１６）、処理を終了する。
【０１１６】
同様に、エージェントが実行中にエージェントシステム内のエージェントが所有権を有しない計算機リソースにアクセスする場合について図１２のフローチャートを参照して説明する。ここでは、ユーザＵの作成したエージェントＢが計算機リソースＲ１をアクセスすることを考える。
【０１１７】
エージェントＢが動作するエージェントシステムのエージェント実行制御部２０８では、リソースアクセスの要求に含まれるリソース名とユーザ名から当該エージェントがアクセス可能なリソースであるかを調べるために、アクセス権限保持部２０６に対してリソース名とユーザ名を渡す。
【０１１８】
アクセス権限保持部２０６は当該ユーザ名とリソース名のアクセスコントロールリストを取り出し（ステップＳ１２０２）、実行権限があるか否かを判断する（ステップＳ１２０４）。
【０１１９】
実行権限がある場合には（ステップＳ１２０４のＹＥＳ）、「成功」のメッセージを返し、実行権限がない場合には（ステップＳ１２０４のＮＯ）、「失敗」のメッセージを返す。
【０１２０】
エージェント実行制御部２０８は、アクセス権限保持部２０６から「成功」が返されたときには、エージェントがリソースＲにアクセス可能であると判断し、実際にリソースへのアクセスを実行する（ステップＳ１２０６）。
【０１２１】
一方、エージェント実行制御部２０８が、アクセス権限保持部２０６から「失敗」が返されたときには、この旨を通知して、リソースＲにアクセスすることを拒否し、エージェントの実行を中止する（ステップＳ１２０８）。
【０１２２】
この例ではユーザ名でアクセスコントロールの確認を行ったが、エージェント内に保持されているユーザ情報から操作グループ情報を取り出し、ユーザ名の代わりにグループ名でアクセスコントロールリストの確認を行ってもよい。又、アクセスコントロールリストへの確認を一度で行う方法もある。
【０１２３】
即ち、ユーザＵの作成したエージェントＢがエージェントシステムＡ１にある計算機資源Ｒ１，Ｒ２、Ｒ３にアクセスするものとする。
【０１２４】
エージェントＢが動作するエージェントシステムのエージェント実行制御部２０８では、リソースにアクセスする前に、アクセス権限保持部２０６に対してユーザ名を渡す。
【０１２５】
アクセス権限保持部２０６は当該ユーザ名のアクセスコントロールリストを取り出し（図１２のステップＳ１２０２に相当）、実行権限があるリソースのテーブルを作成し、エージェント実行制御部２０８に返す。
【０１２６】
エージェント実行制御部２０８は、返されたリソーステーブルをユーザ名と対で保持する。
【０１２７】
エージェントＢがリソースＲ１にアクセスしようとするときに、エージェント実行制御部２０８では、リソーステーブルを使ってＲ１にアクセス可能であるかを判定する（上記ステップＳ１２０４に相当）。
【０１２８】
リソースＲ１にアクセス可能であるときは、実際にリソースへのアクセスを実行する（上記ステップＳ１２０６に相当）。
【０１２９】
一方、アクセスが不可であるときは、この旨を通知し、リソースＲにアクセスすることを拒否しエージェントの実行を中止する（上記ステップＳ１２０８に相当）。
【０１３０】
（第３の実施形態）
以下に、本発明の第３の実施形態を説明する。本実施形態では、図１３に示す複数のエージェントから構成される複数のエージェントシステムから成る分散構成計算機システムの構成図と、図１４に示すエージェントシステムが具備するモジュール構成を示す図と、図１５に示すエージェント認証サーバが具備するモジュール構成を示す図とを参照して、前述した第１並びに第２の実施形態と同様にその構成を説明する。
【０１３１】
エージェント認証サーバ３２０は、ユーザ情報をもとにして一定期間だけ有効な識別コードを発行する識別コード管理部３２１、有効な識別コードを保持する識別コード保持部３２２、識別コードが有効なものであるかを判断するための識別コード判定部３２３等から構成される。
【０１３２】
エージェント３０３はエージェントシステム３００で生成される。
【０１３３】
上記構成につき、以下にエージェントが生成されるときのエージェントシステムとエージェント認証サーバの動作について図１６のフローチャートを参照して説明する。
【０１３４】
エージェントが生成されるときに、エージェントシステム３００のエージェント生成部３０７は、エージェントを生成しようとしているユーザ情報を計算機より取り出す（ステップＳ１６０２）。
【０１３５】
ここでは、ユーザ情報としてはユーザ名とする。
【０１３６】
エージェント生成部３０７は、ユーザ情報を取得すると、アクセス権限問合せ部にユーザ名と生成するエージェント名を渡し、エージェントが生成可能であるか否かを判断する（ステップＳ１６０４）。
【０１３７】
アクセス権限問合せ部は、ユーザ名とエージェント名をエージェント認証サーバ３２０へ送る。
【０１３８】
エージェント認証サーバ３２０では、アクセス権限検査部によってアクセス権限保持部３０６より当該ユーザ名とエージェント名のアクセスコントロールリストを取り出し（ステップＳ１６０６）、実行権限があるか否かを判断する（ステップＳ１６０８）。
【０１３９】
実行権限がある場合には（ステップＳ１６０６のＹＥＳ）、一定期間有効な識別コードを返し（ステップＳ１６１０）、実行権限がない場合には（ステップＳ１６０６のＮＯ）、「失敗」を返す（ステップＳ１６１２）。
【０１４０】
アクセス権限問合せ部３０５は、エージェント認証サーバ３２０から識別コードが返されたときには（ステップＳ１６１４のＹＥＳ）、エージェントの生成が可能であると判断して、エージェント生成部３０６に於いてエージェント生成のパラメータとして識別コードを渡すことで識別コードを保持させる。そして、エージェントプールに入れることでエージェントを実行する（ステップＳ１６１６）。
【０１４１】
一方、アクセス権限問合せ部３０５は、エージェント認証サーバから「失敗」が返されたときには（ステップＳ１６１４のＮＯ）、エージェントの生成が不可能であると判断し、エージェント生成手段ではエージェントの生成を行わず、生成者に対して実行権限がないことを通知し（ステップＳ１６１８）、処理を終了する。
【０１４２】
次に、エージェントが移動してくるときの動作について図１７のフローチャートを参照してで説明する。ここでは、エージェントシステムＡ１からエージェントシステムＡ２にエージェントＢが移動することを考える。
【０１４３】
エージェントシステムＡ１は、エージェントが保持する識別コードＩ１をエージェントから取り出し（ステップＳ１７０２）、エージェント認証サーバ３２０に対して、識別コードの有効期間が充分にあるか否かを判断してもらう（ステップＳ１７０４）。
【０１４４】
エージェント認証サーバ３２０の識別コード管理部３２１では、識別コードの有効期間を調べ（ステップＳ１７０６）、システムで定義された有効期間が残っている場合（充分残っている場合）には「成功」を返す（ステップＳ１７０６のＹＥＳ、Ｓ１７０８）。
【０１４５】
有効期間が少ない場合には（ステップＳ１７０６の少ない）、新たな識別コードＩ２を発行し返す（ステップＳ１７１０）。
【０１４６】
識別コードが無効であるときには（ステップＳ１７０６の無効）、「失敗」を返す（ステップＳ１７１２）。
【０１４７】
エージェントシステムＡ１では、エージェント認証サーバ３２０から返された結果によって、次のように振る舞う。
【０１４８】
即ち、「成功」が返されたときには（Ｓ１７０８）、エージェントシステムＡ２に対してエージェント名と識別コードＩ１を付加してエージェント移動要求を行う（ステップＳ１７１４）。
【０１４９】
新しい識別コードが返されたときには（ステップＳ１７１０）、エージェント内に新しい識別コードＩ２を埋め込み、エージェントシステムＡ２に対してエージェント名と識別コードＩ２を付加してエージェント移動要求を行う（ステップＳ１７１４）。
【０１５０】
「失敗」が返されたときには（ステップＳ１７１２）、移動する権限がないため、移動の処理を中断する。
【０１５１】
エージェントシステムＡ２のエージェント実行制御部３０８では、移動要求に含まれるエージェント名と識別コードから当該エージェントシステムで動作可能であるか否かを調べるために、アクセス権限問合せ部３０５に対してエージェント名と識別コードを渡す（ステップＳ１７１６）。
【０１５２】
アクセス権限問合せ部３０５は、ユーザ名と識別コードをエージェント認証サーバ３２０へ送る。
【０１５３】
エージェント認証サーバ３２０では、識別コード判定部３２３によって識別コード保持部３２２より当該識別コードとエージェント名のアクセスコントロールリストを取り出し（ステップＳ１７１８）、実行権限があるか否かを判断する  （ステップＳ１７２０）。
【０１５４】
実行権限がある場合には（ステップＳ１７２０のＹＥＳ）、「成功」のメッセージを返す（ステップＳ１７２２）。実行権限がない場合には（ステップＳ１７２０のＮＯ）、「失敗」のメッセージを返す（ステップＳ１７２４）。
【０１５５】
エージェントシステムＡ２のアクセス権限問合せ部３０５は、エージェント認証サーバ３２０から「成功」が返されたときには（ステップＳ１７２６のＹＥＳ）、エージェントの移動が可能であると判断し、エージェント実行制御部２０８に於いてエージェントシステムＡ１からエージェントＢの受け入れを通知し（ステップＳ１７２８）、受け入れを行う（ステップＳ１７３０）。
【０１５６】
そして、エージェントＢの受け入れをし、エージェントプールに入れることでエージェントを実行する（ステップＳ１７３０）。
【０１５７】
一方、アクセス権限問合せ部３０５は、エージェント認証サーバ３２０から  「失敗」が返されたときには（ステップＳ１７２６のＮＯ）、エージェントの移動が不可能であると判断し、エージェント実行制御部３０７ではエージェントの移動を行わず、エージェントシステムＡ１に対して移動権限がないことを通知し、処理を終了する（ステップＳ１７３４）。
【０１５８】
続いて、エージェントが移動してくるときの動作についての他の方法を図１８のフローチャートを参照して説明する。ここでは、エージェントシステムＡ１からエージェントシステムＡ２にエージェントＢが移動することを考える。
【０１５９】
エージェントシステムＡ１は、エージェントが保持する識別コードＩ１をエージェントから取り出し（ステップＳ１８０２）、エージェントシステムＡ２に対してエージェント名と識別コードＩ１を付加してエージェント移動要求を行う  （ステップＳ１８０４）。
【０１６０】
エージェントシステムＡ２のエージェント実行制御部３０７では、移動要求に含まれるエージェント名と識別コードから当該エージェントシステムで動作可能であるか否かを調べるために（ステップＳ１８０６）、アクセス権限問合せ部３０５に対してエージェント名と識別コードを渡す。
【０１６１】
アクセス権限問合せ部３０５は、ユーザ名と識別コードをエージェント認証サーバ３２０へ送る。
【０１６２】
エージェント認証サーバ３２０では、識別コード判定部３２３によって識別コード保持部３２２より当該識別コードとエージェント名のアクセスコントロールリストを取り出し（ステップＳ１８０８）、実行権限があるか否かを判断する  （ステップＳ１８１０）。
【０１６３】
実行権限がある場合には（ステップＳ１８１０のＹＥＳ）、新しい識別コードＩ２を発行しそれを返す（ステップＳ１８１２）。
【０１６４】
実行権限がない場合には（ステップＳ１８１０のＮＯ）、「失敗」を返す（ステップＳ１８１２）。
【０１６５】
エージェントシステムＡ２のアクセス権限問合せ部３０５は、エージェント認証サーバ３２０から新しい識別コードＩ２が返された場合には（ステップＳ１８１６のＹＥＳ）、エージェントの移動が可能であると判断し、エージェント実行制御部３０７に於いてエージェントシステムＡ１からエージェントＢの受け入れを通知する（ステップＳ１８１８）。
【０１６６】
そして、エージェントＢの受け入れを行い（ステップＳ１８２０）、エージェントに識別コードＩ２を埋め込み、エージェントプールに入れることでエージェントを実行する（ステップＳ１８２２）。
【０１６７】
一方、アクセス権限問合せ部３０５は、エージェント認証サーバ３２０から  「失敗」が返された場合には（ステップＳ１８１６のＮＯ）、エージェントの移動が不可能であると判断し、エージェント実行制御部３０７ではエージェントの移動を行わず、エージェントシステムＡ１に対して移動権限がないことを通知し（ステップＳ１８２４）、処理を終了する。
【０１６８】
尚、上述したエージェント認証サーバ３２０の動作を次のように変更することも可能である。即ち、エージェント認証サーバ３２０では、識別コード判定部３２３によって識別コード保持部３２２より当該識別コードとエージェント名のアクセスコントロールリストを取り出し、実行権限があるか否かを判断する。実行権限がある場合には識別コードＩ１に移動要求があったことを記録し、新しい識別コードＩ２として返し、実行権限がない場合には「失敗」を返す。又、単に移動要求があったことを識別コードに記録するだけでなく、エージェント認証サーバ３２０内の識別コード保持部３２２にも同様の記録を行うとともに、判定に於いて過去の通過記録を比較し正当な識別コードであるかチェックすることも可能である。
【０１６９】
【発明の効果】
以上詳記したように本発明によれば、ユーザの権限を正確にエージェントに保持させることができるとともに、エージェント及びその実行コードの移動中の盗聴や改竄を防止でき、更に実行可能なエージェントであるかをチェックすることができるとともに、移動先のリソースにアクセスできるか否かをチェックできるので、エージェントを安全に動作させる上で問題となることを解消できるとともに、セキュリティ機能や認証、アクセス制御の改善を図れる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係る複数のエージェントから構成される複数のエージェントシステムとエージェントの認証サーバからなる分散構成計算機システムの構成を示すブロック図。
【図２】同実施の形態に係る、エージェント認証サーバが具備するモジュール構成を示すブロック図。
【図３】同実施の形態に係る、各エージェントシステムが具備するモジュール構成を示すブロック図。
【図４】同実施の形態に係る、エージェントが生成されるときのエージェントシステムとエージェント認証サーバの動作について説明するフローチャート。
【図５】同実施の形態に係る、エージェントが移動してくるときの動作について説明するフローチャート。
【図６】同実施の形態に係る、エージェントが実行中にエージェントシステム内のエージェントが所有権を有しない計算機リソースにアクセスする場合の動作について説明するフローチャート。
【図７】本発明の第２の実施形態に係る複数のエージェントから構成される複数のエージェントシステムから成る分散構成計算機システムの構成を示すブロック図。
【図８】同実施の形態に係る、エージェントシステムが具備するモジュール構成を示すブロック図。
【図９】同実施の形態に係る、ユーザがエージェント実行権限やリソースアクセス権限等のアクセス権限を変更し、関連するエージェントシステムにその変更を反映する方法を説明するフローチャート。
【図１０】同実施の形態に係る、エージェントが生成される場合のエージェントシステム動作について説明するフローチャート。
【図１１】同実施の形態に係る、エージェントが移動してくるときの動作について説明するフローチャート。
【図１２】同実施の形態に係る、エージェントが実行中にエージェントシステム内のエージェントが所有権を有しない計算機リソースにアクセスする場合について説明するフローチャート。
【図１３】本発明の第３の実施形態に係る複数のエージェントから構成される複数のエージェントシステムから成る分散構成計算機システムの構成を示すブロック図。
【図１４】同実施の形態に係る、エージェントシステムが具備するモジュール構成を示すブロック図。
【図１５】同実施の形態に係る、エージェント認証サーバが具備するモジュール構成を示すブロック図。
【図１６】同実施の形態に係る、エージェントが生成されるときのエージェントシステムとエージェント認証サーバの動作について説明するフローチャート。
【図１７】同実施の形態に係る、エージェントが移動してくるときの動作について説明するフローチャート。
【図１８】同実施の形態に係る、エージェントが移動してくるときの動作についての他の方法の動作について説明するフローチャート。
【符号の説明】
１００，２００，３００…エージェントシステム
１０１，２０１，３０１…エージェントクライアント
１０２，２０２，３０２…エージェントプラットフォーム
１０３，２０３，３０３…エージェント
１０４，２０４，３０４…エージェントマネージャ
１０５…アクセス権限問合せ部
１０６，２０７，３０７…エージェント生成部
１０７，２０８，３０８…エージェント実行制御部
１０８，２０９，３０９…エージェントプール
１１０，２１０，３１０…ネットワーク
１２０，２２０，３２０…エージェント認証サーバ
１２１，２０６，３０６…アクセス権限保持部
１２２…アクセス権限検査部
１２３…アクセス権限設定部
２０５，３０５…アクセス権限配布部
【図１】
0004116157.tif 000002
【図２】
0004116157.tif 000003
【図３】
0004116157.tif 000004
【図４】
0004116157.tif 000005
【図５】
0004116157.tif 000006
【図６】
0004116157.tif 000007
【図７】
0004116157.tif 000008
【図８】
0004116157.tif 000009
【図９】
0004116157.tif 000010
【図１０】
0004116157.tif 000011
【図１１】
0004116157.tif 000012
【図１２】
0004116157.tif 000013
【図１３】
0004116157.tif 000014
【図１４】
0004116157.tif 000015
【図１５】
0004116157.tif 000016
【図１６】
0004116157.tif 000017
【図１７】
0004116157.tif 000018
【図１８】
0004116157.tif 000019