(57)【要約】【課題】一つの機能（例えばＡＰ機能）を移動端末側とセンタ側に効率よく分散配置することができる機能分散システムを実現する。【解決手段】ＡＰ機能が分割された移動端末側の部分プラットフォーム７と組み合わせて使用されるＡＰ機能の分割部分である複数のセンタ側の部分プラットフォーム２と、センタ側の部分プラットフォーム２の負荷条件と移動端末が存在する地域条件に基づいて、複数のセンタ側の部分プラットフォーム２の中から、移動端末側の部分プラットフォーム７と組み合わせるのに最適なものを選択する構成エージェント１２と、を備えたことを特徴とする。【選択図】　　図１
2004072265.tif 000002
【特許請求の範囲】
【請求項１】
特定機能を分散して配置する機能分散システムであって、
前記特定機能を分割して備える移動端末の該機能と組み合わせて使用される前記特定機能の分割部分を備える複数のセンタ側装置と、
前記センタ側装置の負荷条件と前記移動端末が存在する地域条件に基づいて、前記複数のセンタ側装置の機能の中から、前記移動端末の機能と組み合わせるのに最適なものを選択する負荷分散制御手段と、
を備えたことを特徴とする機能分散システム。
【請求項２】
前記負荷分散制御手段は、前記移動端末の機能と接続履歴がある前記センタ側装置の機能を選択することを特徴とする請求項１に記載の機能分散システム。
【請求項３】
前記負荷分散制御手段は、前記移動端末の機能と直前に接続していた前記センタ側装置の機能を選択することを特徴とする請求項２に記載の機能分散システム。
【請求項４】
前記特定機能は、エージェントプラットホームであることを特徴とする請求項１乃至請求項３のいずれかの項に記載の機能分散システム。
【請求項５】
特定機能を分割して備える移動端末の該機能と組み合わせて使用される前記特定機能の分割部分を備える複数のセンタ側装置を、具備する機能分散システムにおける負荷分散方法であって、
前記センタ側装置の負荷条件と前記移動端末が存在する地域条件に基づいて、前記複数のセンタ側装置の機能の中から、前記移動端末の機能と組み合わせるのに最適なものを選択することを特徴とする負荷分散方法。
【請求項６】
特定機能を分割して備える移動端末の該機能と組み合わせて使用される前記特定機能の分割部分を備える複数のセンタ側装置を、具備する機能分散システムにおける負荷分散処理を行うためのコンピュータプログラムであって、
前記センタ側装置の負荷条件と前記移動端末が存在する地域条件に基づいて、前記複数のセンタ側装置の機能の中から、前記移動端末の機能と組み合わせるのに最適なものを選択する処理をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、機能分散システムおよび負荷分散方法、並びにその機能分散システムをコンピュータを利用して実現するためのコンピュータプログラムに関する。
【０００２】
【従来の技術】
ＦＩＰＡ（Ｆｏｕｎｄａｔｉｏｎ　ｆｏｒ　Ｉｎｔｅｌｌｉｇｅｎｔ　Ｐｈｙｓｉｃａｌ　Ａｇｅｎｔｓ）において、エージェント通信に関する標準化が行われており、自律行動型プログラムの一種であるエージェントのソフトウェア実行環境としてエージェントプラットホーム（ＡＰ）のリファレンスモデルが定義されている。ＡＰは、ＡＣＣ（Ａｇｅｎｔ　Ｃｏｍｍｕｎｉｃａｔｉｏｎ　Ｃｈａｎｎｅｌ）とＡＭＳ（Ａｇｅｎｔ　Ｍａｎａｇｅｍｅｎｔ　Ｓｙｓｔｅｍ）とＤＦ（Ｄｉｒｅｃｔｏｒｙ　Ｆａｃｉｌｉｔａｔｏｒ）から構成される。ＡＣＣは、ＡＰ内のエージェント間、あるいはＡＰ内とＡＰ外のエージェント間、のメッセージ交換を行うメッセージルータである。全てのメッセージはＡＣＣを経由して転送される。ＡＭＳは、ＡＰ内のエージェントの状態を管理する。例えばＡＰ内に存在しているエージェントのエージェント識別子などの検索が可能である。ＤＦは、エージェントが提供するサービスの検索を可能とするディレクトリサーバである。
【０００３】
また、従来の負荷分散方式として、例えば特開２００１−９２７６６号公報に記載されるものが知られている。この公報に記載の方式は、クライアントと複数のサーバからなるクライアントサーバシステムにおいて、各サーバの負荷状態に応じてサーバの負荷分散を行う。また、特開２００２−９９２１１号公報には、地理的な階層構成により登録局を形成し、地域性に基づいて負荷分散する公開鍵証明書発行要求処理システムが記載されている。
【０００４】
【発明が解決しようとする課題】
ところで、近年、上記エージェントを携帯電話機等の移動端末に具備してエージェント通信を行うことが検討されている。移動端末上のエージェントが通信を行うためには、上記ＡＰを移動端末内に構築する必要がある。しかしながら、移動端末ではＡＰ機能の全てを実現することは処理能力不足等の理由から難しく、移動端末とセンタ側装置にＡＰ機能を効率よく分散配置したいという要望がある。また、ＡＰ機能を移動端末側とセンタ側に分散配置する場合、センタ側に配置された一つの部分プラットフォームに対して移動端末からアクセスが集中する虞があり、この負荷分散を行うことが重要な課題となる。上記部分プラットフォームとは、エージェントプラットホームの機能の一部のことをいう。
【０００５】
しかし、上述した従来の負荷分散方式では、例えば各サーバの負荷状態に応じてサーバの負荷分散を行う方式では、遠い地域のサーバにアクセスする場合もあり、地域分散方式と比較して全体として通信量が多くなる。また、地域性に基づいて負荷分散する方式では、地域間で負荷の偏りが生じる虞がある。
【０００６】
本発明は、このような事情を考慮してなされたもので、その目的は、一つの機能（例えばＡＰ機能）を移動端末側とセンタ側に効率よく分散配置することができる機能分散システムを提供することにある。
【０００７】
また、本発明は、適切な負荷分散を行うことができる機能分散システムおよび負荷分散方法を提供することも目的とする。
【０００８】
また、本発明は、その機能分散システムをコンピュータを利用して実現するためのコンピュータプログラムを提供することも目的とする。
【０００９】
【課題を解決するための手段】
上記の課題を解決するために、請求項１に記載の機能分散システムは、特定機能を分散して配置する機能分散システムであって、前記特定機能を分割して備える移動端末の該機能と組み合わせて使用される前記特定機能の分割部分を備える複数のセンタ側装置と、前記センタ側装置の負荷条件と前記移動端末が存在する地域条件に基づいて、前記複数のセンタ側装置の機能の中から、前記移動端末の機能と組み合わせるのに最適なものを選択する負荷分散制御手段と、を備えたことを特徴としている。
【００１０】
請求項２に記載の機能分散システムにおいては、前記負荷分散制御手段は、前記移動端末の機能と接続履歴がある前記センタ側装置の機能を選択することを特徴とする。
【００１１】
請求項３に記載の機能分散システムにおいては、前記負荷分散制御手段は、前記移動端末の機能と直前に接続していた前記センタ側装置の機能を選択することを特徴とする。
【００１２】
請求項４に記載の機能分散システムにおいては、前記特定機能は、エージェントプラットホームであることを特徴とする。
【００１３】
上記の課題を解決するために、請求項５に記載の負荷分散方法は、特定機能を分割して備える移動端末の該機能と組み合わせて使用される前記特定機能の分割部分を備える複数のセンタ側装置を、具備する機能分散システムにおける負荷分散方法であって、前記センタ側装置の負荷条件と前記移動端末が存在する地域条件に基づいて、前記複数のセンタ側装置の機能の中から、前記移動端末の機能と組み合わせるのに最適なものを選択することを特徴としている。
【００１４】
上記の課題を解決するために、請求項６に記載のコンピュータプログラムは、特定機能を分割して備える移動端末の該機能と組み合わせて使用される前記特定機能の分割部分を備える複数のセンタ側装置を、具備する機能分散システムにおける負荷分散処理を行うためのコンピュータプログラムであって、前記センタ側装置の負荷条件と前記移動端末が存在する地域条件に基づいて、前記複数のセンタ側装置の機能の中から、前記移動端末の機能と組み合わせるのに最適なものを選択する処理をコンピュータに実行させることを特徴としている。
これにより、前述の機能分散システムがコンピュータを利用して実現できるようになる。
【００１５】
【発明の実施の形態】
以下、図面を参照し、本発明の一実施形態について説明する。
図１は、本発明の一実施形態による機能分散システムの構成を示すブロック図である。この図１において本実施形態の機能分散システムは、エージェントプラットホーム（ＡＰ）１を構成している。
【００１６】
エージェントプラットフォーム１は、複数のセンタ側の部分プラットフォーム２と、複数の移動端末側の部分プラットフォーム７と、複数の構成エージェント（Ａｇｅｎｔ）１２と、エージェント管理用データベース１３とから構成される。構成エージェント１２は、センタ側の部分プラットフォーム２に具備されている。
【００１７】
本実施形態のエージェントプラットフォーム１においては、移動端末側とセンタ側にエージェントプラットフォーム機能を分散して配置している。センタ側の部分プラットフォーム２は、機能分割されたエージェントコミュニケーションチャンネル（ＡＣＣ）３とディレクトリファシリテータ（ＤＦ）４とエージェントマネージメントシステム（ＡＭＳ）５を有する。移動端末側の部分プラットフォーム７は、機能分割されたＡＣＣ８とＡＭＳ９とＤＦ１０とを有する。
【００１８】
移動端末側の部分プラットフォーム７は、いずれかのセンタ側の部分プラットフォーム２と連携して動作することによって、一つのエージェントプラットフォーム機能を実現する。センタ側の部分プラットフォーム２は、複数の部分プラットフォーム７と連携して動作することができる。
センタ側の部分プラットフォーム２は、各地区（東京、名古屋、大阪等）に対応して設けられている。
【００１９】
また、一般エージェント６，１１が、センタ側の部分プラットフォーム２または移動端末側の部分プラットフォーム７に具備されている。一般エージェント６，１１は、部分プラットフォーム２あるいは部分プラットフォーム７上で実行可能な自律行動型プログラムである。部分プラットフォーム２内に存在する一般エージェント６は、部分プラットフォーム２内に存在する他のエージェントやソフトウェア等と協調して動作することによりサービスを提供する。同様に部分プラットフォーム７内に存在する一般エージェント１１は、部分プラットフォーム７内に存在する他のエージェントやソフトウェア等と協調して動作することによりサービスを提供する。また、一般エージェント６と１１は、お互いに協調して動作することも可能である。
【００２０】
なお、上記ＡＣＣ３，ＤＦ４，ＡＭＳ５，ＡＣＣ８，ＡＭＳ９，及びＤＦ１０は、各々エージェント（自律行動型プログラム）の一つである。
【００２１】
エージェント情報管理用データベース１３は、エージェントプラットフォーム１内のエージェントの状態や、エージェントが提供するサービスを一元的に管理するための情報を記憶している。
【００２２】
エージェントプラットフォーム１は、非同期に自律的に通信を行うエージェント３〜６、８〜１１及び１２に対して、通信相手のエージェント識別子を指定することによって、メッセージ通信を可能とするための通信基盤である。また、エージェントプラットフォーム１に含まれるエージェント３〜６、８〜１１及び１２と、外部のエージェントプラットフォーム１４に含まれるエージェントとの間のメッセージ通信機能も有する。
【００２３】
エージェントプラットフォーム１において、移動端末側とセンタ側の通信は、携帯電話網等の無線通信網を介して行われる。外部エージェントプラットフォーム１４は、エージェントプラットフォーム１とインターネット等を介して通信する。エージェントプラットフォーム１と外部エージェントプラットフォーム１４は、予め定められたエージェント通信言語（例えばＦＩＰＡ　ＡＣＬ）により通信を行う。なお、エージェントプラットフォーム１の移動端末側とセンタ側の通信は、無線通信網に限定されず、固定電話網等の有線通信網やインターネット等を介して行うことも可能である。例えば移動端末としてＰＤＡ（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ　Ａｓｓｉｓｔａｎｔｓ：個人用情報機器）を利用する場合、携帯電話機と接続して無線電話回線によりセンタ側装置と接続してもよく、あるいは固定電話用の有線電話回線によりセンタ側装置と接続してもよく、あるいはＬＡＮ等を介してインターネットに接続し、センタ側装置と接続するようにしてもよい。
【００２４】
部分プラットフォーム２は、該機能を実現するためプログラムをセンタ側装置内のＣＰＵで実行することにより実現される。部分プラットフォーム７は、該機能を実現するためプログラムを移動端末内のＣＰＵで実行することにより実現される。
【００２５】
センタ側の部分プラットフォーム２は、エージェントプラットフォーム１において、一つ、あるいは負荷分散のために複数存在している。部分プラットフォーム２内では、その基本機能として、ＡＣＣ３，ＤＦ４，ＡＭＳ５，一般エージェント６および構成エージェント１２が実行され、エージェントプラットフォーム１内のメッセージの交換、エージェント状態の管理やサービスの管理を提供する。
【００２６】
部分プラットフォーム２において、ＡＣＣ３はメッセージルータであり、センタ側の部分プラットフォーム２及び移動端末側の部分プラットフォーム７の全ての組み合わせ、および部分プラットフォーム２，７と外部エージェントプラットフォーム１４との間で、各プラットフォーム内に存在するエージェント間のメッセージ交換機能を提供する。ＡＣＣ３は、自分の部分プラットフォーム２内のエージェントや他の部分プラットフォーム２，７内のＡＣＣ３，ＡＣＣ８あるいは外部エージェントプラットフォーム１４からメッセージの送信要求を受け付け、エージェント管理用データベース１３を参照し、送信先が自分の部分プラットフォーム２内のエージェントであった場合はそのエージェントに直接メッセージを転送する。一方、送信先が自分の部分プラットフォーム２内のエージェントでなかった場合には、適切なＡＣＣ３，ＡＣＣ８あるいは外部エージェントプラットフォーム１４にメッセージを転送する。なお、適切な送信相手がいない場合は、エラーを送信要求元に通知する。
【００２７】
ＤＦ４は、エージェントプラットフォーム１内に存在するエージェントあるいは外部エージェントプラットフォーム１４に対して、サービスの登録（サービス名称と提供するエージェントの識別子、詳細条件等）、削除（サービス名称と提供するエージェントの識別子）、変更（サービス名称と提供するエージェントの識別子、条件の変更内容）および条件検索（サービス名あるいは付加的な条件を検索条件とし、検索結果としてサービスを提供するエージェントの識別子が返される）などのインタフェースを提供する。
【００２８】
ＡＭＳ５は、部分プラットフォーム２内に存在するエージェントまたは移動端末側の部分プラットフォーム７に対して、エージェントの状態の登録（エージェントの識別子、状態等）、削除（エージェントの識別子）、変更（エージェントの識別子、状態等）、およびエージェント自身の起動、転入および転出に関するインタフェースを提供する。
【００２９】
構成エージェント１２（負荷分散制御手段）は、部分プラットフォーム２内に存在するエージェントであり、エージェントプラットフォーム１内に少なくとも１つが具備される。構成エージェント１２は、移動端末側の部分プラットフォーム７からの問い合わせに対して、現在の各部分プラットフォーム２に関する負荷状態と、該部分プラットフォーム７に関する情報（地域性や、過去のセンタ側へのアクセスの負荷）を考慮して、該部分プラットフォーム７と今回組み合わせるのに適切な部分プラットフォーム２を選択して通知する。
【００３０】
部分プラットフォーム７は、携帯電話機、あるいはＰＤＡ（Ｐｅｒｓｏｎａｌ　ＤｉｇｉｔａｌＡｓｓｉｓｔａｎｔｓ：個人用情報機器）等の移動端末毎に存在している。このため、部分プラットフォーム７は一般的に非常に多数存在する。部分プラットフォーム７は移動端末側の操作により、起動および停止が可能である。起動時には予め定められたデフォルトの部分プラットフォーム２に接続する。そして、予め定められた構成エージェント１２に問い合わせして、今回組となる部分プラットフォーム２の通知を受け、以降、該部分プラットフォーム２を経由して通信や管理を実施する。
【００３１】
部分プラットフォーム７において、ＡＣＣ８はメッセージルータであり、自分の部分プラットフォーム７内のエージェント間、あるいは自分の部分プラットフォーム７内のエージェントとエージェントプラットフォーム１内に存在する他のエージェントや外部エージェントプラットフォーム１４に存在するエージェントとの間で、メッセージを交換する機能を提供する。ＡＣＣ８は、自分の部分プラットフォーム７内のエージェントやＡＣＣ３からメッセージの送信要求を受け付け、ＡＭＳ９を参照し、送信先が自分の部分プラットフォーム７内のエージェントであった場合はそのエージェントに直接メッセージを転送する。一方、送信先が自分の部分プラットフォーム７内のエージェントでなかった場合には、予め選択してあるＡＣＣ３にメッセージを転送する。なお、適切な送信相手がいない場合は、エラーを送信要求元に通知する。
また、ＡＣＣ８は、上記構成エージェント１２へ、今回組となる部分プラットフォーム２を問い合わせる。
【００３２】
ＡＭＳ９は、部分プラットフォーム７内に存在するエージェントに対して、エージェントの状態の登録（エージェントの識別子、状態等）、削除（エージェントの識別子）、変更（エージェントの識別子、状態等）、およびエージェント自身の起動、転入および転出に関するインタフェースを提供する。また、部分プラットフォーム７の所有者が所有しているエージェント（これは部分プラットフォーム７内にあるとは限らない）に関しての、削除、変更、転入および転出の機能を上記インタフェースと同一インタフェースを介して提供する。これら要求された操作に伴う状態変更は、常に予め選択してあるＡＭＳ５に通知し、該ＡＭＳ５によってエージェント情報管理用データベース１３に格納されて保管される。
【００３３】
ＤＦ１０は、部分プラットフォーム７内に存在するエージェントに対して、サービスの登録（サービス名称と提供するエージェントの識別子、詳細条件等）、削除（サービス名称と提供するエージェントの識別子）、変更（サービス名称と提供するエージェントの識別子、条件の変更内容）および条件検索（サービス名あるいは付加的な条件を検索条件とし、検索結果としてサービスを提供するエージェントの識別子が返される）などのインタフェースを提供する。実際には、過去の検索内容だけはキャッシュメモリに記憶されており、そのキャッシュメモリに検索内容が存在している場合は、検索結果をキャッシュメモリから取り出して返送する。一方、キャッシュメモリに検索内容が存在していない場合は、予め定められたＤＦ４に処理を依頼し、その結果を依頼元に返送する。
【００３４】
次に、図２〜図４を参照して、上記図１のエージェントプラットフォーム１において、センタ側の負荷分散を行う動作を説明する。図２は、移動端末が起動時に行う処理の流れを示すフローチャートである。図２及び図３は、構成エージェント１２が行う負荷分散処理の流れを示す第１及び第２のフローチャートである。
【００３５】
初めに、図２を参照して移動端末側の処理を説明する。
図２において、移動端末の起動時に、部分プラットフォーム７は初期化処理を行う（ステップＳ１０１）。この初期化処理において、通信に係る内部の設定ファイルから、デフォルトのＡＣＣ３（センタ側）とＡＭＳ５（センタ側）とＤＦ４（センタ側）と構成エージェント１２の各識別子Ｉ＿３ｄ，Ｉ＿５ｄ，Ｉ＿４ｄ，Ｉ＿ｃを取得する。
【００３６】
次いで、デフォルトのＡＣＣ３（Ｉ＿３ｄ）経由で、構成エージェント１２（Ｉ＿ｃ）に対して、今回の組となるセンタ側の部分プラットフォーム２のＡＣＣ３、ＡＭＳ５、ＤＦ４を問い合せる。そして、この問い合せの結果として、構成エージェント１２（Ｉ＿ｃ）から、以降の接続先となるＡＣＣ３とＡＭＳ５とＤＦ４の各識別子Ｉ＿３ａ，Ｉ＿５ａ，Ｉ＿４ａを取得する（ステップＳ１０２）。次いで、これらＡＣＣ３（Ｉ＿３ａ）とＡＭＳ５（Ｉ＿５ａ）とＤＦ４（Ｉ＿４ａ）を新たな接続先として設定変更し、起動時の処理が完了する。
【００３７】
以降、部分プラットフォーム７は、以下に示す通常の処理を実行する。
部分プラットフォーム７は、自部分プラットフォーム内のＡＣＣ８及びＡＣＣ３（Ｉ＿３ａ）経由で全てのメッセージ通信を行う。また、自部分プラットフォーム内の一般エージェント１１からのサービス検索及び登録及び削除及び更新などの要求は、自部分プラットフォーム内のＤＦ１０に対して行われ、さらにＤＦ１０がキャッシュメモリの記憶内容に基づいて処理できない操作は、ＤＦ１０がＤＦ４（Ｉ＿４ａ）に対して操作要求を行う。また、自部分プラットフォーム内の一般エージェント１１からのエージェント検索及び登録及び削除及び更新などの要求は、自部分プラットフォーム内のＡＭＳ９に対して行われ、さらにＡＭＳ９は、ＡＭＳ５（Ｉ＿５ａ）に管理操作を依頼し、ＡＭＳ５（Ｉ＿５ａ）が管理情報をエージェント情報管理用データベース１３に格納し保管する。
【００３８】
次に、図３及び図４を参照して、構成エージェント１２が行う負荷分散処理を説明する。
構成エージェント１２（Ｉ＿ｃ）は、上記図２のステップＳ１０２の問い合せを移動端末側の部分プラットフォーム７から受けると、図３の処理を開始する。以下、構成エージェント１２の識別子は省略する。また、センタ側の部分プラットフォーム２の割り当ては、ＡＣＣ３，ＤＦ４，ＡＭＳ５の別にそれぞれ可能であるが、説明の便宜上、同一部分プラットフォーム２内のＡＣＣ３，ＤＦ４，ＡＭＳ５を一括で割り当てるものとする。
【００３９】
先ず、構成エージェント１２は、問い合せ元の部分プラットフォーム７の識別子Ｐ＿７ｊを取得する。この識別子Ｐ＿７ｊは、移動端末側から受信した要求メッセージに含まれている送信元の識別子から取得する（ステップＳ２０１）。次いで、構成エージェント１２は、該識別子Ｐ＿７ｊに基づいてエージェント情報管理用データベース１３を検索し、該部分プラットフォーム７（Ｐ＿７ｊ）に関する情報と現在の各部分プラットフォーム２に関する情報を取得する（ステップＳ２０２、Ｓ２０３）。
【００４０】
部分プラットフォーム７（Ｐ＿７ｊ）に関する情報とは、移動端末の現在位置および過去の位置（地区）の履歴Ｘ＿７ｊ［ｎｏｗ］，Ｘ＿７ｊ［ｎｏｗ−１］，…，Ｘ＿７ｊ［ｎｏｗ−ｎ］、過去のセンタ側の部分プラットフォーム２の割り当て履歴、過去に移動端末から送信されたメッセージの送信数の履歴（通信頻度）等である。これらの情報は、例えばエージェントプラットフォーム１のセンタ側部分プラットフォーム２や携帯電話網によって収集され、エージェント情報管理用データベース１３に蓄積されている。
【００４１】
現在の各部分プラットフォーム２に関する情報とは、現在稼動している部分プラットフォーム２（Ｐ＿２ｉ）の一覧、この一覧内の各々についての稼動状況（単位時間あたりメッセージ処理数Ｍ＿２ｉ、現在接続中の部分プラットフォーム７の数Ｎ＿２ｉ）を取得する。これらの情報は、センタ側で随時収集され、エージェント情報管理用データベース１３に蓄積されている。
【００４２】
また、個々の部分プラットフォーム２（Ｐ＿２ｉ）毎に許可可能な最大負荷Ｌ＿２ｉが予め定められている。また、全ての移動端末側の部分プラットフォーム７の単位時間あたりの平均メッセージ送信数ｍが、予め算出される。この平均メッセージ送信数ｍは、エージェント情報管理用データベース１３に記録されている履歴等から計算できる。これら最大負荷Ｌ＿２ｉおよび平均メッセージ送信数ｍはエージェント情報管理用データベース１３に格納されており、構成エージェント１２は、これらの情報も取得する。
【００４３】
また、予め、全ての地区に対して、個々の部分プラットフォーム２（Ｐ＿２ｉ）が少なくとも１つ割り当てられている。この情報はエージェント情報管理用データベース１３に格納されており、構成エージェント１２は、該情報も取得する。
【００４４】
次いで、構成エージェント１２は、各部分プラットフォーム２（Ｐ＿２ｉ）における、予測負荷ＥＬ＿２ｉを（１）式により計算する（ステップＳ２０４）。この（１）式では、部分プラットフォーム２（Ｐ＿２ｉ）の現在の負荷として、単位時間あたりメッセージ処理数Ｍ＿２ｉを使用する。
ＥＬ＿２ｉ＝ｔ×Ｍ＿２ｉ＋（１−ｔ）×ｍ×Ｎ＿２ｉ　・・・（１）
但し、ｔは比例係数である。
【００４５】
次いで、構成エージェント１２は、部分プラットフォーム７（Ｐ＿７ｊ）を接続した場合に、新たに加わる負荷ＥＬ＿７ｊを（２）式により見積もる（ステップＳ２０５）。
ＥＬ＿７ｊ＝ｍａｘ｛ａｖｅ（ｍ＿７ｊ），ｍ｝　・・・（２）
但し、ａｖｅ（ｍ＿７ｊ）は部分プラットフォーム７（Ｐ＿７ｊ）の過去の通信メッセージ数の平均値、ｍａｘ｛Ａ，Ｂ｝はＡまたはＢのいずれか大きい方の値である。
【００４６】
次いで、構成エージェント１２は、（３）式を満たす全ての部分プラットフォーム２（Ｐ＿２ｉ）からなる集合Ｓを求める（ステップＳ２０６〜Ｓ２０９）。
Ｌ＿２ｉ＞ＥＬ＿２ｉ＋ＥＬ＿７ｊ　・・・（３）
この集合Ｓには、部分プラットフォーム７（Ｐ＿７ｊ）を接続しても、負荷が最大負荷Ｌ＿２ｉに達しない部分プラットフォーム２（Ｐ＿２ｉ）が全て含まれている。
【００４７】
次いで、図４において、構成エージェント１２は、部分プラットフォーム７（Ｐ＿７ｊ）に最適な地区Ｘ＿７ｊを、当該移動端末の現在位置Ｘ＿７ｊ［ｎｏｗ］および過去の位置の履歴Ｘ＿７ｊ［ｎｏｗ−１］，…，Ｘ＿７ｊ［ｎｏｗ−ｎ］から求める（ステップＳ２０７）。例えば、過去になるほど減少する重みをつけて、現在及び過去の位置の各々のスコアを算出し、トータルでもっともスコアの高い地区を選択する。
【００４８】
次いで、構成エージェント１２は、最適な地区Ｘ＿７ｊに割り当てられている全ての部分プラットフォーム２（Ｐ＿２ｉ）からなる集合Ｔを求める（ステップＳ２１１〜Ｓ２１４）。
【００４９】
次いで、構成エージェント１２は、集合Ｓと集合Ｔの両方に含まれる部分プラットフォーム２（Ｐ＿２ｉ）が存在すれば、先ずその中から部分プラットフォーム７（Ｐ＿７ｊ）が直前に接続していたものがあるか否かを検査する（ステップＳ２１５）。この結果、直前に接続していたものがあれば、該部分プラットフォーム２（Ｐ＿２ｉ）を部分プラットフォーム７（Ｐ＿７ｊ）の今回の接続先として選択し、部分プラットフォーム７（Ｐ＿７ｊ）へ通知する（ステップＳ２１６）。
【００５０】
一方、直前に接続していたものがなかった場合には、集合Ｓと集合Ｔの両方に含まれる部分プラットフォーム２（Ｐ＿２ｉ）の中に、過去に部分プラットフォーム７（Ｐ＿７ｊ）と接続した履歴がある部分プラットフォーム２（Ｐ＿２ｉ）があるか否かを検査する（ステップＳ２１７）。この結果、過去の接続履歴有りのものがあれば、該部分プラットフォーム２（Ｐ＿２ｉ）を選択して部分プラットフォーム７（Ｐ＿７ｊ）へ通知する（ステップＳ２１８）。この際、過去の接続履歴有りの部分プラットフォーム２（Ｐ＿２ｉ）が複数あった場合は、「Ｌ＿２ｉ−（ＥＬ＿２ｉ＋ＥＬ＿７ｊ）」の値が最大であるものを選択する。
【００５１】
さらに、集合Ｓと集合Ｔの両方に含まれる部分プラットフォーム２（Ｐ＿２ｉ）の中に、過去の接続履歴有りのものもなかった場合には、
「Ｌ＿２ｉ−（ＥＬ＿２ｉ＋ＥＬ＿７ｊ）」の値が最大であるものを選択する（ステップＳ２１９、Ｓ２２０）。
【００５２】
他方、集合Ｓと集合Ｔの両方に含まれる部分プラットフォーム２（Ｐ＿２ｉ）が存在しなければ、集合Ｓに含まれる部分プラットフォーム２（Ｐ＿２ｉ）のうち、「Ｌ＿２ｉ−（ＥＬ＿２ｉ＋ＥＬ＿７ｊ）」の値が最大であるものを選択する（ステップＳ２２１、Ｓ２２２）。
【００５３】
一方、集合Ｓに含まれる部分プラットフォーム２（Ｐ＿２ｉ）が存在しなければ、集合Ｔに含まれる部分プラットフォーム２（Ｐ＿２ｉ）の中から、以下の優先順位に従って選択する。先ず、部分プラットフォーム７（Ｐ＿７ｊ）が直前に接続していた部分プラットフォーム２（Ｐ＿２ｉ）を最優先に選択する。次に、過去の接続履歴有りの部分プラットフォーム２（Ｐ＿２ｉ）を選択する。過去に接続履歴のある部分プラットフォーム２（Ｐ＿２ｉ）も無ければ、「Ｌ＿２ｉ−（ＥＬ＿２ｉ）」の値が最大である部分プラットフォーム２（Ｐ＿２ｉ）を選択する（ステップＳ２２３）。
【００５４】
上述したように本実施形態では、移動端末側の部分プラットフォーム７の接続先となるセンタ側の部分プラットフォーム２を選択する際に、センタ側の負荷条件（予測負荷と新たに加わる負荷の予測値）と移動端末が存在する地域条件に基づいて最適なものを選ぶ。この選択時には、地域条件を負荷条件よりも優先する。また、地域条件として、先ず直前に接続していたものを最優先し、次に過去に接続した履歴があるものを優先する。このように、接続履歴があるものを選択することによって、ＤＦ４やＡＣＣ３等においてキャッシュメモリの記憶内容を有効に活用することが可能となる。特に、直前に接続していた部分プラットフォーム２は、キャッシュメモリに有効な情報が残っている可能性が高いので、部分プラットフォーム７の接続先として最も適切なものである。
一方、接続履歴のある部分プラットフォーム２がない場合には、負荷が軽いものを優先する。
【００５５】
上述した実施形態によれば、センタ側部分プラットフォーム２の負荷条件と移動端末が存在する地域条件に基づいて、複数のセンタ側部分プラットフォーム２の中から、移動端末側部分プラットフォーム７と組み合わせるのに最適なものが選択されるので、エージェントプラットフォーム（ＡＰ）機能を移動端末側とセンタ側に効率よく分散配置することができる。また、移動端末についての地域条件を優先するので、移動端末側部分プラットフォーム７に対してより適したセンタ側部分プラットフォーム２を割り当てることができ、適切な負荷分散を行うことが可能となる。
【００５６】
これにより、従来の負荷分散方式で問題となっていた、新規クライアントの大量アクセスによる負荷バランスの崩れや、地域的な偏りを解決し、エージェントプラットフォームにおいて多数のエージェントを管理し、大量のメッセージ交換を行うことが可能となる。
【００５７】
なお、上述した実施形態では、説明の便宜上、部分プラットフォーム２単位で移動端末側の部分プラットフォーム７と組み合わせたが、センタ側のＡＣＣ３，ＤＦ４，ＡＭＳ５については、異なる部分プラットフォーム２内のものを組み合わせて利用することができる。
【００５８】
なお、上述した実施形態においては、エージェントプラットフォームを移動端末側とセンタ側で分散配置するシステムに適用したが、エージェントプラットフォームに限らず、移動端末側とセンタ側で一つの機能を分散配置するシステムに同様に適用することができる。例えば、移動端末をクライアント端末として利用するクライアントサーバシステムにも適用可能である。
【００５９】
また、図３及び図４に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより負荷分散処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００６０】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００６１】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００６２】
【発明の効果】
以上説明したように、本発明によれば、センタ側装置の負荷条件（予測負荷と新たに加わる負荷の予測値）と移動端末が存在する地域条件に基づいて、複数のセンタ側装置の機能の中から、移動端末の機能と組み合わせるのに最適なものが選択されるので、一つの機能（例えばＡＰ機能）を移動端末側とセンタ側に効率よく分散配置することができる。
【００６３】
また、移動端末の機能と接続履歴があるセンタ側装置の機能を選択するようにすれば、過去の通信内容の記録（例えばキャッシュメモリの記憶内容）を有効に活用することができるので、移動端末の機能に対してより適したセンタ側装置の機能を割り当てることができ、適切な負荷分散が可能となる。
さらに、移動端末の機能と直前に接続していたセンタ側装置の機能を選択するようにすれば、過去の通信内容の記録が残っている可能性が高いので、より高い効果が得られる。
【図面の簡単な説明】
【図１】本発明の一実施形態による機能分散システムの構成を示すブロック図である。
【図２】移動端末側部分プラットフォーム７の起動時の処理の流れを示すフローチャートである。
【図３】構成エージェント１２が行う負荷分散処理の流れを示す第１のフローチャートである。
【図４】構成エージェント１２が行う負荷分散処理の流れを示す第２のフローチャートである。
【符号の説明】
１…エージェントプラットフォーム、２…センタ側の部分プラットフォーム、３，８…エージェントコミュニケーションチャンネル（ＡＣＣ）、４，１０…ディレクトリファシリテータ（ＤＦ）、５，９…エージェントマネージメントシステム（ＡＭＳ）、６，１１…一般エージェント、７…移動端末側の部分プラットフォーム、１２…構成エージェント、１３…エージェント管理用データベース、１４…外部エージェントプラットフォーム
【図１】
2004072265.tif 000003
【図２】
2004072265.tif 000004
【図３】
2004072265.tif 000005
【図４】
2004072265.tif 000006