(57)【特許請求の範囲】
【請求項１】
サービスゲートウェイと当該サービスゲートウェイにネットワークを介して接続される計算機を備える分散実行システムであって、
前記サービスゲートウェイは、
プログラムモジュールを受信する受信手段と、
受信したプログラムモジュールが当該サービスゲートウェイのハードウェア機能を利用する命令を使用しているか否かを解析してプログラムモジュールの特性として管理テーブルに登録する解析手段と、
当該サービスゲートウェイがプログラムモジュールの実行を要求されたときに、前記管理テーブルに登録された前記プログラムモジュールの特性に基いて、当該プログラムモジュールを当該サービスゲートウェイで実行させるか、前記計算機で実行させるかを選択する選択手段と、
前記選択手段が当該サービスゲートウェイで前記プログラムモジュールを実行すると選択した場合、前記プログラムモジュールを実行する実行手段と、
前記選択手段が前記計算機で前記プログラムモジュールを実行させると選択した場合、前記プログラムモジュールを前記計算機へ送信する送信手段と、を有し、
前記計算機は、
前記サービスゲートウェイと同じ、プログラムモジュールを実行する実行手段と、
前記プログラムモジュールを受信して前記実行手段で実行させる制御手段と、を有すること
を特徴とする分散実行システム。
【請求項２】
前記サービスゲートウェイは、当該サービスゲートウェイのリソース状況と前記計算機のリソース状況を管理するリソース管理手段を有し、
前記選択手段は、前記リソース状況に基いて、当該プログラムモジュールを当該サービスゲートウェイで実行させるか、前記計算機で実行させるかを選択することを特徴とする請求項１記載の分散実行システム。
【請求項３】
ネットワークを介して接続される計算機にプログラムモジュールを送信して当該プログラムモジュールを実行させるサービスゲートウェイであって、
プログラムモジュールを受信する受信手段と、
受信したプログラムモジュールが当該サービスゲートウェイのハードウェア機能を利用する命令を使用しているか否かを解析してプログラムモジュールの特性として管理テーブルに登録する解析手段と、
当該サービスゲートウェイがプログラムモジュールの実行を要求されたときに、前記管理テーブルに登録された前記プログラムモジュールの特性に基いて、当該プログラムモジュールを当該サービスゲートウェイで実行させるか、前記計算機で実行させるかを選択する選択手段と、
前記選択手段が当該サービスゲートウェイで前記プログラムモジュールを実行すると選択した場合、前記プログラムモジュールを実行する実行手段と、
前記選択手段が前記計算機で前記プログラムモジュールを実行させると選択した場合、前記プログラムモジュールを前記計算機へ送信する送信手段と、
を有することを特徴とするサービスゲートウェイ。
【請求項４】
当該サービスゲートウェイのリソース状況と前記計算機のリソース状況を管理するリソース管理手段を有し、
前記選択手段は、前記リソース状況に基いて、当該プログラムモジュールを当該サービスゲートウェイで実行させるか、前記計算機で実行させるかを選択することを特徴とする請求項３記載のサービスゲートウェイ。
【請求項５】
サービスゲートウェイと当該サービスゲートウェイにネットワークを介して接続される計算機による分散実行方法であって、
前記サービスゲートウェイによる、
プログラムモジュールを受信するステップと、
受信したプログラムモジュールが当該サービスゲートウェイのハードウェア機能を利用する命令を使用しているか否かを解析してプログラムモジュールの特性として管理テーブルに登録するステップと、
当該サービスゲートウェイがプログラムモジュールの実行を要求されたときに、前記管理テーブルに登録された前記プログラムモジュールの特性に基いて、当該プログラムモジュールを当該サービスゲートウェイで実行させるか、前記計算機で実行させるかを選択するステップと、
前記選択するステップで当該サービスゲートウェイで前記プログラムモジュールを実行すると選択した場合、前記プログラムモジュールを実行するステップと、
前記選択するステップで前記計算機で前記プログラムモジュールを実行させると選択した場合、前記プログラムモジュールを前記計算機へ送信するステップと、を有し、
前記計算機による、
前記プログラムモジュールを受信するステップと、
受信した前記プログラムモジュールを実行するステップと、を有すること
を特徴とする分散実行方法。
【請求項６】
請求項３又は４に記載のサービスゲートウェイとしてコンピュータを動作させることを特徴とする分散実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、様々な機器をネットワークに接続するサービスゲートウェイ装置で実行されるプログラムモジュールを分散して実行する技術に関する。
【背景技術】
【０００２】
現在、大規模・中堅企業などでは、様々な機器を接続したＩＣＴサービスの導入が進んでいる。しかし、小規模オフィスや家庭などではコスト面等から大企業等に比べてＩＣＴサービスの導入が遅れている現状がある。小規模オフィスや家庭などへのＩＣＴサービス導入を促進するために、サービス提供者がサービスを普及させやすいプラットフォームを提供することが検討され、その一例として、ホームＩＣＴ基盤の構築・提供が進んでいる。
【０００３】
ホームＩＣＴ基盤では、小規模オフィスや家庭など利用者宅内のネットワークと外部ネットワークを接続するために、利用者宅内にサービスゲートウェイ装置（ＳＧＷ）を設置する。ＳＧＷは、ネットワークで接続した宅内の様々な機器を利用したサービス提供を可能とする。そのため、各種通信プロトコルに対応して機器の接続管理を行うだけでなく、プロトコル変換や機器から取得されるデータ自体を変換したり蓄積したりする機能が求められる。
【０００４】
また、本発明に関連する別の背景技術として、複数の計算機を組み合わせて大量の計算処理をする負荷分散や分散コンピューティングがある。
【０００５】
負荷分散は、例えば、Ｗｅｂサーバに多数のアクセスが集中した場合にでも処理ができるよう複数のＷｅｂサーバを用意し、各サーバの負荷が均等になるようにアクセスを分散する技術である。仮想的なサーバとして負荷分散装置がリクエストを受信した後、複数の実Ｗｅｂサーバにリクエストを分散して送信する。基本的に、複数の実サーバでは、同様な処理が行われ、あらかじめ決められた処理を、あらかじめ用意・インストールされたプログラムにより実行する（非特許文献１参照）。
【０００６】
分散コンピューティングは、プログラムを並列化処理を行う単位（タスク）に分割し、ネットワーク接続された複数の計算機でタスクを並列で処理し、処理したデータを計算機間で送受信しあうことで処理を完了する。分散コンピューティングでは、あらかじめ、プログラムを並列処理可能なタスクに分割しておき、それぞれのタスクを複数の計算機に振り分ける処理が必要となる（非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】“負荷分散入門”、［online］、2006年 11月 14日、富士通株式会社、［平成 24年 6月 1日検索］、インターネット〈 URL：http://fenics.fujitsu.com/products/ipcom/catalog/data/1/1.html〉
【非特許文献２】合田憲人、“３章  分散コンピューティングシステム”、［online］、2010年 5月 11日、社団法人電子情報通信学会、［平成 24年 6月 1日検索］、インターネット〈 URL：http://www.ieice-hbkb.org/portal/doc_479.html〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＳＧＷは家庭内に設置されるなどのことから、ハイスペックの装置は設置できない、或いは、一度設置した装置をスペックの高い装置に置き換えることが容易ではない、という事情がある。サービスの提供においては、限られた計算リソースの中で、多種多様なプロトコルやデータを扱うソフトウェアを動作させる必要があるため、要求されるサービス性能を維持することが難しい、或いは、複数のサービスを同時に提供できないという課題があった。
【０００９】
上記の負荷分散の技術をＳＧＷに適用するためには、負荷分散装置と複数台のＳＧＷを用意する必要があるため、コストが非常に大きくなるという問題がある。さらに、ＳＧＷで行われているように、サービス毎にプログラムモジュールをダウンロードして複数のサービスを同時に実行するためには、複数台のＳＧＷに複数のプログラムモジュールを用意する必要がある。多数のＳＧＷでそれぞれ複数のモジュールをそのバージョンも含めて管理するのは、管理コストが大きくなり非効率である。
【００１０】
また、分散コンピューティングをＳＧＷに適用するためには、並列処理可能なタスクに分割し、タスクを計算機に振り分ける処理を、個々のモジュールに対して行う必要が生じるため、サービス提供者にとって大きな負担となり、ひいてはサービス提供コストが増大するという課題があった。実際には、タスク分割が非効率になってしまうと、データ転送や同期処理など分散化に伴うオーバーヘッドの割合が大きくなってしまうため、効率的なタスク分割が困難であることが多い。
【００１１】
本発明は、上記に鑑みてなされたものであり、限られたスペックのサービスゲートウェイ装置を利用した場合でも様々なサービスを提供できる技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
第１の本発明に係る分散実行システムは、サービスゲートウェイと当該サービスゲートウェイにネットワークを介して接続される計算機を備える分散実行システムであって、前記サービスゲートウェイは、プログラムモジュールを受信する受信手段と、受信したプログラムモジュールが当該サービスゲートウェイのハードウェア機能を利用する命令を使用しているか否かを解析してプログラムモジュールの特性として管理テーブルに登録する解析手段と、当該サービスゲートウェイがプログラムモジュールの実行を要求されたときに、前記管理テーブルに登録された前記プログラムモジュールの特性に基いて、当該プログラムモジュールを当該サービスゲートウェイで実行させるか、前記計算機で実行させるかを選択する選択手段と、前記選択手段が当該サービスゲートウェイで前記プログラムモジュールを実行すると選択した場合、前記プログラムモジュールを実行する実行手段と、前記選択手段が前記計算機で前記プログラムモジュールを実行させると選択した場合、前記プログラムモジュールを前記計算機へ送信する送信手段と、を有し、前記計算機は、前記サービスゲートウェイと同じ、プログラムモジュールを実行する実行手段と、前記プログラムモジュールを受信して前記実行手段で実行させる制御手段と、を有することを特徴とする。
【００１４】
上記分散実行システムにおいて、前記サービスゲートウェイは、当該サービスゲートウェイのリソース状況と前記計算機のリソース状況を管理するリソース管理手段を有し、前記選択手段は、前記リソース状況に基いて、当該プログラムモジュールを当該サービスゲートウェイで実行させるか、前記計算機で実行させるかを選択することを特徴とする。
【００１５】
第２の本発明に係るサービスゲートウェイは、ネットワークを介して接続される計算機にプログラムモジュールを送信して当該プログラムモジュールを実行させるサービスゲートウェイであって、プログラムモジュールを受信する受信手段と、受信したプログラムモジュールが当該サービスゲートウェイのハードウェア機能を利用する命令を使用しているか否かを解析してプログラムモジュールの特性として管理テーブルに登録する解析手段と、当該サービスゲートウェイがプログラムモジュールの実行を要求されたときに、前記管理テーブルに登録された前記プログラムモジュールの特性に基いて、当該プログラムモジュールを当該サービスゲートウェイで実行させるか、前記計算機で実行させるかを選択する選択手段と、前記選択手段が当該サービスゲートウェイで前記プログラムモジュールを実行すると選択した場合、前記プログラムモジュールを実行する実行手段と、前記選択手段が前記計算機で前記プログラムモジュールを実行させると選択した場合、前記プログラムモジュールを前記計算機へ送信する送信手段と、を有することを特徴とする。
【００１６】
第３の本発明に係る分散実行方法は、サービスゲートウェイと当該サービスゲートウェイにネットワークを介して接続される計算機による分散実行方法であって、前記サービスゲートウェイによる、プログラムモジュールを受信するステップと、受信したプログラムモジュールが当該サービスゲートウェイのハードウェア機能を利用する命令を使用しているか否かを解析してプログラムモジュールの特性として管理テーブルに登録するステップと、当該サービスゲートウェイがプログラムモジュールの実行を要求されたときに、前記管理テーブルに登録された前記プログラムモジュールの特性に基いて、当該プログラムモジュールを当該サービスゲートウェイで実行させるか、前記計算機で実行させるかを選択するステップと、前記選択するステップで当該サービスゲートウェイで前記プログラムモジュールを実行すると選択した場合、前記プログラムモジュールを実行するステップと、前記選択するステップで前記計算機で前記プログラムモジュールを実行させると選択した場合、前記プログラムモジュールを前記計算機へ送信するステップと、を有し、前記計算機による、前記プログラムモジュールを受信するステップと、受信した前記プログラムモジュールを実行するステップと、を有することを特徴とする。
【００１７】
第４の本発明に係る分散実行プログラムは、上記サービスゲートウェイとしてコンピュータを動作させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、限られたスペックのサービスゲートウェイ装置を利用した場合でも様々なサービスを提供できる技術を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態における分散実行システムの構成を示す全体構成図である。
【図２】本実施の形態における別の分散実行システムの構成を示す全体構成図である。
【図３】分散実行システムの実施例の構成を示す全体構成図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態について図面を用いて説明する。
【００２１】
図１は、本実施の形態における分散実行システムの構成を示す全体構成図である。同図に示す分散実行システムは、機能モジュールを受信して実行するＳＧＷ１とＳＧＷ１から機能モジュールを受信して実行するパーソナルコンピュータ（ＰＣ）２とを備える。機能モジュールは、ＳＧＷ１やＰＣ２が備えるプログラム実行環境上で動作するプログラムモジュールである。
【００２２】
ＳＧＷ１は、外部のネットワーク１００及び家庭内のネットワークに接続される。家庭内のネットワークには、ＰＣ２、センサ５、および電話端末７などが接続される。ＳＧＷ１は、機能モジュールを動作させて、例えば電話端末７をＩＰ電話機としてネットワーク１００に接続して電話サービスを可能にしたり、外部の電話端末からの問い合わせに応じてセンサ５の測定値を取得して送信するなどの機能を実行する。ＳＧＷ１の負荷が高くて機能モジュールを動作させられない場合は、機能モジュールをＰＣ２に送信してＰＣ２上で機能モジュールを動作させる。
【００２３】
ＳＧＷ１は、ＧＷ機能部１１、ＶＭ１２、機能モジュール制御部１３、およびリソース管理部１４を備え、機能モジュール１５Ａ，１５Ｂ，１５Ｃを受信してＶＭ１２上で実行する。ＳＧＷ１が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはＳＧＷ１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。以下、ＳＧＷ１の各部について説明する。
【００２４】
ＧＷ機能部１１は、外部からの着信を受ける、外部へ発信する、家庭内のネットワークとネットワーク１００との間の通信を中継するなどのゲートウェイ機能を有する。また、実行を要求された機能モジュール１５Ａ，１５Ｂ，１５Ｃについて、ＳＧＷ１とＰＣ２のリソース状況、機能モジュール１５Ａ，１５Ｂ，１５Ｃの特性に基づき、実行可能な装置（ＳＧＷ１自身かＰＣ２か）を決定する。ＰＣ２で実行すると決定した場合は、実行を要求された機能モジュール１５Ａ，１５Ｂ，１５ＣをＰＣ２に送信し、ＰＣ２上で動作させる。
【００２５】
ＶＭ１２は、例えばＪａｖａ（登録商標）ＶＭなどのプログラム実行環境であり、機能モジュール１５Ａ，１５Ｂ，１５Ｃなどを実行する。
【００２６】
機能モジュール制御部１３は、機能モジュール１５Ａ，１５Ｂ，１５Ｃのインストール、実行、削除などを行い、機能モジュール１５Ａ，１５Ｂ，１５Ｃの特性を記載した機能モジュール管理テーブルを有する。本実施の形態では、機能モジュール管理テーブルには、各機能モジュール１５Ａ，１５Ｂ，１５ＣがＳＧＷ１のハードウェアを利用する機能モジュールであるか否かが記載される。なお、機能モジュール管理テーブルに記載する機能モジュールの特性としては、例えば、ＰＣ２で機能モジュールを実行した場合のＳＧＷ１とＰＣ２との間に要求する通信帯域、外部のネットワーク１００に直結しているＳＧＷ１で処理することにより性能が確保されるか否か、などがある。
【００２７】
リソース管理部１４は、ＳＧＷ１自身のリソース状況とＰＣ２のリソース状況を管理する。ＰＣ２のリソース状況はＰＣ２のリソース管理部２３から送信される。本実施の形態では、リソース状況としてＣＰＵ使用率を用いる。なお、メモリ使用量、使用ネットワーク帯域、プロセス数などのリソース状況を用いてもよい。
【００２８】
ＰＣ２は、ＶＭ２１、機能モジュール制御部２２などのＳＧＷ１と同様のプログラム実行環境と、ＰＣ２自身のリソース状況を管理するリソース管理部２３を備える。
【００２９】
機能モジュール制御部２２は、ＳＧＷ１から受信した機能モジュールのインストール、実行、削除などを行う。
【００３０】
リソース管理部２３は、リソース状況を管理するとともに、リソース状況をＳＧＷ１に送信する。
【００３１】
図２は、本実施の形態における別の分散実行システムの構成を示す全体構成図である。同図に示す分散実行システムは、ＰＣ２の代わりに機能サーバ３がＳＧＷ１から機能モジュールを受信して実行する。もちろん、ＰＣ２と機能サーバ３の両方を用いてもよい。
【００３２】
機能サーバ３は、ＳＧＷ１とネットワーク１００を介して接続される。機能サーバ３は、ＶＭ３３、機能モジュール制御部３４などのＳＧＷ１と同様のプログラム実行環境と、ＳＧＷ管理部３１、機能サーバ制御部３２、およびリソース管理部３５を備える。
【００３３】
ＳＧＷ管理部３１は、機能モジュールの実行を依頼したＳＧＷ１を認識・管理する。
【００３４】
機能サーバ制御部３２は、機能モジュールの受信、ＳＧＷ１との間の通信などの機能を有する。
【００３５】
リソース管理部３５は、リソース状況を管理するとともに、リソース状況をＳＧＷ１に送信する。
【００３６】
なお、ＰＣ２、機能サーバ３は、機能モジュールの実行環境だけでなく、ストレージ領域などもＳＧＷ１の機能として確保してもよい。
【００３７】
また、図１，２では、ＰＣ２、機能サーバ３をそれぞれ１台づつ接続しているが、もちろん、複数台接続してもよいし、ＰＣ２と機能サーバ３の両方を接続してもよい。
【００３８】
［実施例］
次に、本実施の形態における分散実行システムの実施例について説明する。
【００３９】
図３は、分散実行システムの一実施例の全体構成図である。同図に示すＳＧＷ１は、温度センサ５を接続し、外部からの問い合わせに応じて、温度センサ５の温度センサ情報（現在の温度情報）を音声に変換して返信する機能を有する。ＳＧＷ１は、ＳＧＷ１自身の負荷が高い場合、機能モジュールをクラウド上の機能サーバ３に送信して実行させる。
【００４０】
図３の実施例では、ＳＧＷ１では、音声認識モジュール１５Ａ、音声合成モジュール１５Ｂ、および暗号モジュール１５Ｃを機能モジュールとして実行する。このうち、音声認識モジュール１５Ａ、音声合成モジュール１５Ｂは、クラウド側のダウンロードサーバ４からダウンロードし、インストールされる。また、暗号モジュール１５Ｃは、ＳＧＷ１のハードウェアを利用してデータを暗号化する機能モジュールである。機能モジュール制御部１３内の機能モジュール管理テーブルでは、音声認識モジュール１５Ａ、音声合成モジュール１５Ｂは、ＳＧＷ１のハードウェアを利用しない機能モジュールとして登録され、暗号モジュール１５Ｃは、ＳＧＷ１のハードウェアを利用する機能モジュールとして登録される。
【００４１】
機能モジュール管理テーブルに機能モジュールの特性を登録する方法としては、機能モジュールをダウンロードした時に、その機能モジュールがＳＧＷ１のハードウェア機能を利用する命令を使用しているか否か解析し、その結果を登録する方法や、ダウンロードした機能モジュールをＳＧＷ１で初めて動作させたときにＳＧＷ１のハードウェアを利用する命令を使用しているか否かを解析し、その結果を登録する方法などがある。
【００４２】
また、ＳＧＷ１はセンサ情報取得部１６を備え、センサ情報取得部１６が温度センサ５から温度センサ情報を取得する
一方、機能サーバ３は、ＳＧＷ１と同じプログラム実行環境であるＶＭ３３を備え、ＳＧＷ１のハードウェアを利用しない音声認識モジュール１５Ａ、音声合成モジュール１５Ｂを実行可能である。なお、図３では、機能サーバ３中に音声認識モジュール１５Ａ、音声合成モジュール１５Ｂが記載されているが、ＳＧＷ１から音声認識モジュール１５Ａ、音声合成モジュール１５Ｂが送信されるまではインストールされない。また、機能サーバ３は、ＳＧＷ１の暗号モジュール１５Ｃで暗号化されたデータを復号する暗号モジュール３６を備える。
【００４３】
以下、電話端末７Ａ，７Ｂ間で通話中の状態でＳＧＷ１の負荷が高いときに、電話端末７ＣがＳＧＷ１に温度センサ情報を問い合せる場合のＳＧＷ１と機能サーバ３の動作について説明する。
【００４４】
まず、利用者は、電話端末７ＣからＳＧＷ１に発呼する。
【００４５】
ＳＧＷ１が電話端末７Ｃから着信すると、ＧＷ機能部１１が音声によるコマンド入力を要求する。
【００４６】
利用者が、電話端末７Ｃを用いて音声入力により、温度センサ情報の取得を要求すると、ＧＷ機能部１１は、入力された音声を解析するために、音声認識モジュール１５Ａを起動しようとする。
【００４７】
まず、ＧＷ機能部１１は、機能モジュール制御部１３に対し、音声認識モジュール１５Ａがハードウェアを利用する機能モジュールであるか否かを問い合わせる。機能モジュール制御部１３は、機能モジュール管理テーブルを参照し、音声認識モジュール１５Ａがハードウェアを利用しない機能モジュールであることをＧＷ機能部１１に通知する。
【００４８】
続いて、ＧＷ機能部１１は、音声認識モジュール１５ＡをＳＧＷ１自身のＶＭ１２上で起動可能であるか否かを、リソース管理部１４に問い合わせる。リソース管理部１４は、ＳＧＷ１のＣＰＵ使用率が所定の閾値を超えているので起動不可であると判断し、ＧＷ機能部１１に通知する。
【００４９】
ＧＷ機能部１１は、ＶＭ１２上で音声認識モジュール１５Ａが起動できないので、機能サーバ３が利用可能か否かをリソース管理部１４に問い合わせる。リソース管理部１４は、機能サーバ３のＣＰＵ使用率を参照して利用可能であると判断し、ＧＷ機能部１１に通知する。
【００５０】
ＧＷ機能部１１は、機能サーバ３が利用可能である通知を受け、機能サーバ３に対して音声認識モジュール１５Ａの実行を依頼するとともに、音声認識モジュール１５Ａを送信する。
【００５１】
機能サーバ制御部３２が音声認識モジュール１５Ａの実行の依頼と音声認識モジュール１５Ａを受信すると、ＳＧＷ管理部３１が依頼元のＳＧＷ１を認識・管理し、機能モジュール制御部３４が受信した音声認識モジュール１５ＡをＶＭ３３上に展開して起動する。
【００５２】
音声認識モジュール１５Ａが機能サーバ３で実行されると、ＧＷ機能部１１は、電話端末７Ｃから受信した利用者の音声データを機能サーバ３に転送する。
【００５３】
機能サーバ３では、音声認識モジュール１５Ａが受信した音声データをテキストデータに変換し、機能サーバ制御部３２が音声認識処理の終わったテキストデータをＳＧＷ１に返送する。また、機能モジュール制御部３４は、音声認識モジュール１５Ａの処理終了をもって、音声認識モジュール１５Ａを終了させてＶＭ３３上から削除する。
【００５４】
ＧＷ機能部１１は、受信したテキストデータから利用者の要求が温度センサ情報の取得であることを認識し、センサ情報取得部１６が温度センサ５に温度センサ情報を要求し、温度センサ情報を得る。
【００５５】
続いて、ＧＷ機能部１１は、取得した温度センサ情報を音声に変換するために、音声合成モジュール１５Ｂを起動しようとする。ＧＷ機能部１１は、音声認識モジュール１５Ａについての処理と同様に、音声合成モジュール１５Ｂがハードウェアを利用する機能モジュールであるか否かを機能モジュール制御部１３に問い合わせ、ＳＧＷ１で起動可能か、機能サーバ３が利用可能か否かをリソース管理部４に問い合わせて、機能サーバ３に対して音声合成モジュール１５Ｂの実行を依頼するとともに、音声合成モジュール１５Ｂを送信する。
【００５６】
機能サーバ制御部３２が音声合成モジュール１５Ｂの実行の依頼と音声合成モジュール１５Ｂを受信すると、ＳＧＷ管理部３１が依頼元のＳＧＷ１を認識・管理し、機能モジュール制御部３４が受信した音声合成モジュール１５ＢをＶＭ３３上に展開して起動する。
【００５７】
音声合成モジュール１５Ｂが機能サーバ３で実行されると、ＧＷ機能部１１は、温度センサ情報を機能サーバ３に転送するが、このとき、ＧＷ機能部１１は、セキュリティのため、温度センサ情報を暗号化した後に送信する。
【００５８】
そこで、ＧＷ機能部１１は、温度センサ情報を暗号化するために、暗号モジュール１５Ｃを起動しようとする。
【００５９】
ＧＷ機能部１１は、機能モジュール制御部１３に対し、暗号モジュール１５Ｃがハードウェアを利用する機能モジュールであるか否かを問い合わせる。機能モジュール制御部１３は、機能モジュール管理テーブルを参照し、暗号モジュール１５Ｃがハードウェアを利用する機能モジュールであることをＧＷ機能部１１に通知する。
【００６０】
ＧＷ機能部１１は、暗号モジュール１５Ｃがハードウェアを利用する機能モジュールであるので、暗号モジュール１５ＣをＳＧＷ１上で起動し、暗号モジュール１５Ｃに温度センサ情報を送り、温度センサ情報を暗号化し、暗号化された温度センサ情報を機能サーバ３へ送信する。
【００６１】
機能サーバ３では、受信した暗号化された温度センサ情報を暗号モジュール３６が復号し、音声合成モジュール１５Ｂが温度センサ情報を音声データに変換した後、機能サーバ制御部３２が音声データをＳＧＷ１に返送する。また、機能モジュール制御部３４は、音声合成モジュール１５Ｂの処理終了をもって、音声合成モジュール１５Ｂを終了させてＶＭ３３上から削除する。
【００６２】
ＧＷ機能部１１は、機能サーバ３から音声データを受信し、電話端末７Ｃに送信することで、利用者は、現在の温度情報を電話端末７Ｃから出力される音声で確認することができる。
【００６３】
なお、よく利用される機能モジュールについては、あらかじめ各装置に配備しておくことにより、機能モジュールの送受信は必ずしもその都度必要でなくなる。
【００６４】
以上説明したように、本実施の形態によれば、ＰＣ２、機能サーバ３に機能モジュール１５Ａ，１５Ｂ，１５Ｃを実行するプログラム実行環境を用意し、実行を要求された機能モジュール１５Ａ，１５Ｂ，１５Ｃについて、ＳＧＷ１、ＰＣ２、機能サーバ３のリソース状況、機能モジュール１５Ａ，１５Ｂ，１５Ｃの特性に基づき、実行可能装置を決定し、ＳＧＷ１以外の装置で実行すると決定した場合は、実行を要求された機能モジュール１５Ａ，１５Ｂ，１５Ｃを送信して実行させることにより、ＳＧＷ１の負荷が高い場合に、ＰＣ２や機能サーバ３に処理を行わせることができるので、ＳＧＷ１自身のリソース（ＣＰＵ、メモリ、記憶装置等）を拡張あるいはＳＧＷ１の置き換えをすることなく、ＰＣ２、機能サーバ３を用意するだけでＳＧＷ１の機能を拡張でき、様々なサービスが提供可能となる。
【００６５】
本実施の形態によれば、機能モジュール１５Ａ，１５Ｂ，１５Ｃの特性として、ＳＧＷ１のハードウェアを利用する機能モジュールであるか否かを機能モジュール管理テーブルに記載することにより、実行を要求された機能モジュール１５Ａ，１５Ｂ，１５ＣがＳＧＷ１以外の装置で実行可能であるか否かを判断できる。
【００６６】
本実施の形態によれば、ＳＧＷ１が自身のリソース状況とＰＣ２や機能サーバ３のリソース状況を管理し、機能モジュール単位で実行する装置を決定することで、個々の機能モジュールを並列処理可能なタスクに分割する必要がなくなる。
【符号の説明】
【００６７】
１…ＳＧＷ
１１…ＧＷ機能部
１２…ＶＭ
１３…機能モジュール制御部
１４…リソース管理部
１５Ａ，１５Ｂ，１５Ｃ…機能モジュール
１６…センサ情報取得部
２…ＰＣ
２１…ＶＭ
２２…機能モジュール制御部
２３…リソース管理部
３…機能サーバ
３１…ＳＧＷ管理部
３２…機能サーバ制御部
３３…ＶＭ
３４…機能モジュール制御部
３５…リソース管理部
３６…暗号モジュール
４…ダウンロードサーバ
５…センサ
７，７Ａ，７Ｂ，７Ｃ…電話端末
１００…ネットワーク
【図１】
0005823919.tif 000002
【図２】
0005823919.tif 000003
【図３】
0005823919.tif 000004