以下、本発明のプログラム動作状態制御方法およびプログラム動作状態制御システムの実施例を説明する。実施例にかかる主たる発明は発明1であり、その下位概念の発明として発明2、3、4、5および6がある。発明1〜6には、さらに下位概念または類似概念の発明があり、発明1−1のように枝番号を付して、それらを区別する。また、同一または類似の機能を有する構成要素同士の符号を等しくし、重複説明を省略する。
[発明1−1]
発明1は、発明1−1と発明1−2に分類される。まず、発明1−1を説明する。
図1は、発明1−1の全体図を示す。
各ユーザ宅に配置されたサービスゲートウェイと称される装置(以下、SGW)1は、インターネットなどの通信網を介してサービスを管理する管理システム2に接続される。また、SGW1は、各種ホームネットワークを介して、各種家電機器やAV機器などの機器3(図では、HDDレコーダ、ドアロック)に接続される。以下、1つのSGW1(単にSGW1という)と管理システム2での処理を説明することとなるが、他のSGW1と管理システム2でも同様に行われる。
図2は、SGW1の機能ブロックを示す。
SGW1は、管理システム送受信機能部11、プログラム状態制御機能部12、プログラム動作状態収集機能部13を備える。管理システム送受信機能部11は、管理システム2と情報の送受信を行い、管理システム2から受信したプログラム動作状態変更命令601をプログラム状態制御機能部12に渡す機能を有する。
プログラム動作状態変更命令601には、以下のような、機器3を制御するための機器制御プログラム(略す場合は、単にプログラムという)に関する動作制御の命令が含まれる。つまり、プログラム動作状態変更命令601に添付されたプログラムファイルを用いてSGW1にプログラムを新たにインストールする処理命令、SGW1にインストール済みプログラムをプログラム動作状態変更命令601に添付されたプログラムファイルを用いたプログラムに更新(バージョンアップなど)する処理命令、インストール済みのプログラムを起動、停止、アンインストールする処理命令などである。このようなインストール、更新、起動、停止、アンインストールなどのことをプログラムの動作状態の制御という。
プログラム状態制御機能部12は、管理システム送受信機能部11から渡されるプログラム動作状態変更命令601に含まれる各処理命令を実行する機能を有する。プログラム動作状態収集機能部13は、インストール済みのプログラムに関する動作状態の情報を収集し、管理システム送受信機能部11に渡す機能を有する。管理システム送受信機能部11は、その情報により作成された動作状態変更命令実行報告701を管理システム2に送信する機能を有する。
図3は、SGW1の具体的な機能ブロックを示す。
SGW1では、プログラムの実行環境を提供し、その実行状態を管理・制御するプログラム実行環境提供部101により、SGW動作管理プログラム102や各種家電機器やAV機器などの機器3を制御するための機器制御プログラム(図では、HDDレコーダ制御プログラム、ドアロック制御プログラム)103が動作する。これら機器制御プログラム103は、ホームネットワーク用のネットワーク通信インターフェイス(以下、インターフェイスをIFと略す)104を介した通信により機器3を制御する機能を有する。
プログラム実行環境提供部101は、SGW動作管理プログラム102から、実行環境上でインストールされているプログラムの動作状態の情報を収集する依頼を受け付け、収集した情報をSGW動作管理プログラム102に渡す機能を有する。また、プログラム実行環境提供部101は、SGW動作管理プログラム102から、指定されたプログラムファイルを用いて、プログラム実行環境提供部101の上で動作するプログラムをインストールや更新する依頼、インストール済みのプログラムを起動、停止、アンインストールする依頼などを受け付け、その依頼を実行する機能を有する。つまり、プログラムの動作状態を制御する機能を有する。
また、SGW動作管理プログラム102は、ネットワーク通信IF104を介して管理システム2と通信し、管理システム2との情報伝達を行う機能を有する。
SGW1のプログラム実行環境提供部101の例としては、OSGiフレームワークが考えられる。この場合、SGW動作管理プログラム102やその他プログラムは同一プロセス上でOSGiの用語でバンドルと呼ばれる単位で実行されることになるが、SGW動作管理プログラム102はOSGiフレームワークに対して、指定されたプログラムファイルによる新規のプログラムインストールや、指定されたプログラムファイルによるインストール済みのプログラムの更新や、起動中のプログラムの停止や、停止中のプログラムの起動や、OSGiフレームワーク上からのアンインストールが可能である。
なお、ここではプログラム実行環境提供部101とSGW動作管理プログラム102の組み合わせの例として、OSGiフレームワークとバンドルを挙げたが、本発明はこれに限定されない。つまり、プログラム実行環境提供部101とSGW動作管理プログラム102により、管理システム送受信機能部11、プログラム状態制御機能部12、プログラム動作状態収集機能部13が実現されればよい。
図4は、管理システム2の機能ブロックを示す。
管理システム2は、管理システム2のオペレーションに関する各種情報を蓄積するオペレーション情報蓄積データベース21(以下、OP情報DB21)、SGW1で動作すべきプログラムのリストであるプログラム理想動作状態リストLI(:List Ideal)を作成する理想動作状態導出機能部22、動作状態変更命令実行報告701を作成する動作変更命令作成機能部23、通信網との間のネットワーク通信IF24、プログラムファイルが蓄積された配信プログラムファイル蓄積サーバ25を備える。
図5は、OP情報DB21が備えるユーザ利用SGW情報211を示す。
OP情報DB21は、ユーザIDと、そのユーザIDのユーザが使用するSGW1を示すSGWIDとからなるレコードを蓄積したユーザ利用SGW情報211を備える。レコードはエントリともいう。
図6は、OP情報DB21が備えるユーザ契約サービス情報212を示す。
OP情報DB21は、ユーザIDと、契約サービスIDリスト(そのユーザIDのユーザが契約しているサービスを示す契約サービスIDのリスト)とからなるレコードを蓄積したユーザ契約サービス情報212を備える。
図7は、OP情報DB21が備えるサービス構成プログラム情報213を示す。
OP情報DB21は、契約サービスIDと、構成プログラムIDリスト(その契約サービスIDのサービスを契約したユーザの使用するSGW1で動作させる必要があるプログラムのプログラムIDでありかつ管理システム2で有効なプログラムIDのリスト)とからなるレコードを蓄積したサービス構成プログラム情報213を備える。
図8は、OP情報DB21が備えるプログラム情報214を示す。
OP情報DB21は、管理システム2で有効なプログラムIDと、SGW1で有効なプログラムIDと、そのバージョンとからなるレコードを蓄積したプログラム情報214を備える。
以下、管理システム2で有効なプログラムIDを単にプログラムID、SGW1で有効なプログラムIDをSGW上プログラムIDという。
SGW上プログラムIDは、プログラム固有のIDであり、プログラム更新(バージョンアップ)により変化しない。よって、SGW上プログラムIDにより、SGW1間で一意にプログラムを特定できる。そして、SGW上プログラムIDとバージョンとを組み合わせることにより、プログラムファイルが特定され、そのプログラムファイルに対して1つのプログラムIDが割り当てられる。
例えば、プログラムID「p301」、SGW上プログラムID「gp302」、バージョン「1.1」のレコードをプログラム情報214に既に備え、ここで新しいバージョン1.2のプログラムファイルが用意された場合には、元のレコードはそのままで、新たにプログラムID「p302」、SGW上プログラムID「gp302」、バージョン「1.2」のレコードがプログラム情報214に作られる。
また、管理システム2における配信プログラムファイル蓄積サーバ25は、各プログラムIDが割り当てられたプログラムファイルを備え、指定されたプログラムIDのプログラムファイルを返す機能を有する。配信プログラムファイル蓄積サーバ25は、いわゆるデータベースサーバであってもよい。
なお、管理システム2におけるOP情報DB21や配信プログラムファイル蓄積サーバ25は、単一のコンピュータで構成してもよいし、複数のコンピュータで構成してもよい。また、OP情報DB21と配信プログラムファイル蓄積サーバ25を同一のコンピュータで構成してもよい。
図9、図10は、処理シーケンスの一例を示す。図11および図12は、それぞれ図9と図10に対応する管理システム2での処理フローを示す。
まず、図9、図10に示すように、SGW1は、SGW1におけるプログラムの動作状態の情報を収集するとともに、その収集した情報を用いてプログラム動作状態リストLSG(:List SGw)つまりSGW1にインストールされたプログラムの動作状態のリストを作成し(プログラム動作状態リスト作成ステップD1)、そのプログラム動作状態リストLSGを含むプログラム動作状態報告501を管理システム2に送信する(プログラム動作状態報告送信ステップD3)。プログラム動作状態リストLSGの作成方法は後述する。
管理システム2は、SGW1からプログラム動作状態報告501を受信する(プログラム動作状態報告受信ステップD5)。
また、管理システム2は、OP情報DB21の各種情報を用いて、SGW1での理想的な各プログラムの動作状態を導出し、導出した各プログラムの動作状態を示すプログラム理想動作状態リストLI、つまり、SGW1を利用しているユーザが契約したサービスの提供の為にSGW1で動作すべきプログラムのリストであるプログラム理想動作状態リストLIを作成する(プログラム理想動作状態リスト作成ステップD7)。
管理システム2でプログラム理想動作状態リスト作成ステップD7が実行されるタイミングに応じて異なる形態を採用できる。
つまり、図9に示すように、プログラム動作状態報告受信ステップD5でプログラム動作状態報告501を受信してから、後述する動作状態変更命令送信ステップD11を実行するまでの間のタイミングでプログラム理想動作状態リスト作成ステップD7を実行する形態や、図10に示すように、OP情報DB21の情報が更新されるタイミングで、その更新内容に関連する全てのSGW1についてプログラム理想動作状態リスト作成ステップD7を実行する形態を採用できる。
重要な点は、動作状態変更命令送信ステップD11の前に、その時点において最新のOP情報DB21を基にプログラム理想動作状態リストLIを作成することである。具体的なプログラム理想動作状態リストLIの作成方法は後述する。
図9、図10に示すように、管理システム2は、プログラム動作状態報告受信ステップD5で受信したプログラム動作状態報告501のプログラム動作状態リストLSGを、プログラム理想動作状態リスト作成ステップD7で作成されたプログラム理想動作状態リストLIと比較し、プログラム動作状態リストLSGの状態が、後述するプログラム動作状態変更命令601がSGW1で実行された後に、プログラム理想動作状態リストLIの状態となるようなプログラム動作状態変更命令601を作成し(動作状態変更命令作成ステップD9)、SGW1に送信する(動作状態変更命令送信ステップD11)。動作状態変更命令作成ステップD9と動作状態変更命令送信ステップD11を合わせて、動作状態変更命令作成送信ステップという。なお、プログラム動作状態変更命令601の作成方法は後述する。
SGW1は、動作状態変更命令送信ステップD11で送信されたプログラム動作状態変更命令601を受信し、プログラム動作状態変更命令601内の各処理命令を実行する(動作状態変更命令実行ステップD13)。
図9の場合の管理システム2では、図11に示すように、SGW1からプログラム動作状態報告501(プログラム動作状態リストLSG)を受信したならば(D5)、OP情報DB21からプログラム理想動作状態リストLIを作成し(D7)、プログラム動作状態リストLSGとプログラム理想動作状態リストLIを比較して、プログラム動作状態リストLSGの状態をプログラム理想動作状態リストLIの状態にするためのプログラム動作状態変更命令601を作成し(D9)、作成したプログラム動作状態変更命令601をSGW1に送信する(D11)。
一方、図10の場合の管理システム2では、図12に示すように、OP情報DB21の更新時にOP情報DB21からプログラム理想動作状態リストLIを作成しておき、SGW1からプログラム動作状態報告501(プログラム動作状態リストLSG)を受信したならば、プログラム動作状態リストLSGと予め作成しておいたプログラム理想動作状態リストLIを比較して、プログラム動作状態リストLSGの状態をプログラム理想動作状態リストLIの状態にするためのプログラム動作状態変更命令601を作成し(D9)、作成したプログラム動作状態変更命令601をSGW1に送信する(D11)。
次に、SGW1がプログラム動作状態リストLSGを作成するときの方法の例を説明する。
SGW動作管理プログラム102は、プログラム実行環境提供部101の機能を用いて、プログラム実行環境提供部101が管理しているインストール済みのプログラム(但し、SGW動作管理プログラム102は除く)の、SGW上プログラムID、バージョン、動作状態の情報を収集し、それぞれをプログラム動作状態リストLSG内に列挙する。動作状態の情報とは、「動作中」または「停止中」である。
次に、管理システム2がプログラム理想動作状態リストLIを作成するときの方法の例を説明する。
まず、ユーザ利用SGW情報211から、SGW1のSGWIDに対応するユーザIDを読み出し、ユーザ契約サービス情報212から、そのユーザIDに対応する契約サービスIDリストを読み出す。次に、サービス構成プログラム情報213から、その契約サービスIDリスト内の各契約サービスIDにつき、対応する構成プログラムIDリストを読み出す。次に、プログラム情報214から、その構成プログラムIDリスト内の各プログラムIDにつき、対応するSGW上プログラムIDおよびバージョンの組を読み出す。この組を列挙したものをプログラム理想動作状態リストLIとする。
ここで、図13の処理フローを参照して、プログラム動作状態変更命令601、つまり、それがSGW1で実行された後のプログラム動作状態が理想動作状態となるようなプログラム動作状態変更命令601の作成方法の例を説明する。
まず、プログラム動作状態リストLSG、プログラム理想動作状態リストLIにおいて、SGW上プログラムIDをキーとして、SGW上プログラムIDの和集合のプログラムリスト1000を作成する(S1)。プログラムリスト1000から要素(SGW上プログラムID)を1つを選択し(S3、S5)、そのSGW上プログラムIDについて、以下のように、分類を行う。
そのSGW上プログラムIDがプログラム理想動作状態リストLIに含まれないなら(S7:NO)、「アンインストール」に分類する(S9)。そのSGW上プログラムIDがプログラム理想動作状態リストLIに含まれるなら次へ移り、そこでプログラム動作状態リストLSGに含まれない(S11:NO)と判断すれば、「インストール後起動」に分類する(S13)。プログラム動作状態リストLSGに含まれるなら次へ移り、そこでSGW上プログラムIDのプログラム理想動作状態リストLIでのバージョンとプログラム動作状態リストLSGでのバージョンが同じ(S15:YES)であり、しかも、そのSGW上プログラムIDについてプログラム動作状態リストLSGの動作状態が「停止中」(S17:NO)なら、「起動」に分類する(S19)。一方、バージョンが異なる(S15:NO)ならば次へ移り、そこでSGW上プログラムIDについてプログラム動作状態リストLSGの動作状態が「動作中」(S21:YES)と判断すれば、「更新」に分類し(S23)、「停止中」ならば、「更新後、起動」に分類する(S25)。
これをプログラムリスト1000の全てのSGW上プログラムIDについて実行し(S3:NO)、分類された1つのSGW上プログラムIDとそれについての分類結果の組である処理命令を各SGW上プログラムIDについて有する処理命令リスト2000を作成する。
更に、「インストール」、「更新」の処理命令については、プログラム理想動作状態リストLIのSGW上プログラムIDおよびバージョンに該当するプログラムIDをプログラム情報214から読み出し、配信プログラムファイル蓄積サーバ25から、そのプログラムIDのプログラムファイルを取得し、各処理命令に添付する。
動作状態変更命令実行ステップD13においては、SGW1が、受信したプログラム動作状態変更命令601の処理命令リスト2000の各処理命令を実行する。
その際、「インストール」、「更新」の処理命令については、その処理命令に添付されたプログラムファイルをインストール及び更新する。その他の処理命令について、その処理命令に従った処理を行う。
このように、管理システム2は、SGW1から送信されるプログラム動作状態報告501のプログラム動作状態リストLSGと、管理システム2のOP情報DB21から作成されるプログラム理想動作状態リストLIとを比較して、プログラム動作状態変更命令601、つまり、それがSGW1で実行された後のプログラム動作状態が理想動作状態となるようなプログラム動作状態変更命令601を作成し、それをSGW1に送信し、SGW1が、そのプログラム動作状態変更命令601を実行することにより、以下のことが可能になる。
まず、インストール済みプログラムの更新だけではなく、新規プログラムのインストールや起動、停止、アンインストール、更新などの動作状態制御も可能となる。
また、ユーザが契約したサービスに応じて、各SGW1に配信し動作させるプログラムを差別化することが可能となる。
また、SGW1でのプログラム動作状態が、管理システム2で導出された理想動作状態とが異なった場合、例えば、管理システム2からの処理命令により起動されたプログラムが、その後のSGW1での不具合で停止した場合、プログラム理想動作状態リストLIにはそのプログラムのSGW上プログラムIDおよびバージョンが含まれ、プログラム動作状態リストLSGには、そのSGW上プログラムID、バージョンに加えて、「停止中」を示す動作状態が含まれる為、それらを比較して作成されたプログラム動作状態変更命令601には、そのプログラムを起動させる処理命令が含まれることになり、これにより、動作状態を修復することができる。
なお、ここで説明したOP情報DB21の構成、プログラム理想動作状態リストLIやプログラム動作状態リストLSGの作成方法、プログラム動作状態変更命令601の作成方法は、一例であり、本発明はこれに限定されるものではない。
したがって、発明1−1のプログラム動作状態制御方法は、管理システム2が、自身に備わった情報(OP情報DB21)を用いて、SGW1での理想的な各プログラムの動作状態を導出し、導出した各プログラムの動作状態を示すプログラム理想動作状態リストLIを作成するプログラム理想動作状態リスト作成ステップD7と、SGW1が、自身での各プログラムの動作状態を調べ、調べた各プログラムの動作状態を示すプログラム動作状態リストLSGを作成し(D1)、それを含むプログラム動作状態報告501を管理システムに送信するプログラム動作状態報告ステップ(D1およびD3)と、管理システム2が、送信されたプログラム動作状態報告501を受信するプログラム動作状態報告受信ステップD5と、管理システム2が、送信されたプログラム動作状態報告501内のプログラム動作状態リストLSGと、導出したプログラム理想動作状態リストLIとを比較し、プログラムのインストール、更新、起動、停止、アンインストールの中の1以上の処理命令を含み、かつ、プログラム動作状態リストLSGが示す動作状態を、プログラム理想動作状態リストLIが示す動作状態に変更するためのプログラム動作状態変更命令601を作成し(D9)、SGW1に送信する動作状態変更命令作成送信ステップ(D9およびD11)と、SGW1が、送信されたプログラム動作状態変更命令601内の処理命令を実行する動作状態変更命令実行ステップD13とを備える。
また、発明1−1のプログラム動作状態制御システムは、管理システム2が、自身に備わった情報(OP情報DB21)を用いて、SGW1での理想的な各プログラムの動作状態を導出し、導出した各プログラムの動作状態を示すプログラム理想動作状態リストLIを作成するプログラム理想動作状態リスト作成手段(D7)と、SGW1から送信されたプログラム動作状態報告501を受信するプログラム動作状態報告受信手段(D5)と、SGW1から送信されたプログラム動作状態報告501内のプログラム動作状態リストLSGと、導出したプログラム理想動作状態リストLIとを比較し、プログラムのインストール、更新、起動、停止、アンインストールの中の1以上の処理命令を含み、かつ、プログラム動作状態リストLSGが示す動作状態をプログラム理想動作状態リストLIが示す動作状態に変更するためのプログラム動作状態変更命令601を作成し(D9)、SGW1に送信する動作状態変更命令作成送信手段(D9およびD11)とを備え、SGW1が、SGW1での各プログラムの動作状態を調べ、調べた各プログラムの動作状態を示すプログラム動作状態リストLSGを作成し、それを含むプログラム動作状態報告501を管理システムに送信するプログラム動作状態報告手段(D1およびD3)と、管理システム2から送信されたプログラム動作状態変更命令601内の処理命令を実行する動作状態変更命令実行手段(D13)とを備える。
したがって、発明1によれば、プログラムの更新のみならず、インストール、起動、停止、アンインストールを行うことができる。
また、発明1−1によれば、動作状態変更命令作成送信ステップ(D7およびD9)では、インストール、更新の処理命令に、そのために必要なプログラムファイルを添付し、動作状態変更命令実行ステップD13では、インストール、更新の処理命令に添付されたプログラムファイルを用いたので、プログラムのインストール、更新を行うことができる。
[発明1−2]
次に、発明1−2を説明する。ここでは、発明1−1との差異を説明する。
まず、第1の相違点は、図2において、SGW1側の構成要素として示したプログラム状態制御機能部12が、管理システム送受信機能部11を介して管理システム2から受信する情報と、そのプログラム状態制御機能部12の機能である。
発明1−1では、プログラム状態制御機能部12が管理システム送受信機能部11から渡されるプログラム動作状態変更命令601には、「インストール」、「更新」の処理命令については、そのプログラムファイルが添付され、プログラム状態制御機能部12は、そのプログラムファイルを用いてプログラムのインストールや更新を実行した。
発明1−2では、プログラムファイルの代わりに、http://などで始まるURL(Uniform Resource Locator)が添付されており、プログラム状態制御機能部12は、そのURLの場所にアクセスして得られるプログラムファイルを用いてプログラムのインストールや更新を実行する。
より具体的な実施の形態の例を以下に記す。
図3と同様に、プログラム実行環境提供部101により、SGW動作管理プログラム102や各種家電機器やAV機器などの機器3を制御するための機器制御プログラム(HDDレコーダ制御プログラム、ドアロック制御プログラム)103が動作する。これら機器制御プログラム103は、ホームネットワーク用のネットワーク通信IF104を介した通信により機器3を制御する機能を有する。
プログラム実行環境提供部101は、SGW動作管理プログラム102から、実行環境上でインストールされているプログラムの動作状態の情報を収集する依頼を受け付け、収集した情報をSGW動作管理プログラム102に渡す機能を有する。また、プログラム実行環境提供部101は、SGW動作管理プログラム102から指定されたURLの場所からダウンロードして得られるプログラムファイルを用いて、プログラム実行環境提供部101の上で動作するプログラムをインストールや更新する依頼、インストール済みプログラムを起動、停止、アンインストールする依頼などを受け付け、その依頼を実行する機能を有する。つまり、プログラムの動作状態を制御する機能を有する。
また、SGW動作管理プログラム102は、ネットワーク通信IF104を介して管理システム2と通信し、管理システム2との情報伝達を行う機能を有する。
SGW1のプログラム実行環境提供部101の例としては、OSGiフレームワークが考えられる。この場合、SGW動作管理プログラム102やその他プログラムは同一プロセス上でOSGiの用語でバンドルと呼ばれる単位で実行されることになるが、SGW動作管理プログラム102はOSGiフレームワークに対して、指定されたURLの場所からダウンロードしたプログラムファイルによる新規のプログラムインストールや、指定されたURLの場所からダウンロードしたプログラムファイルによるインストール済みのプログラムの更新や、起動中のプログラムの停止や、停止中のプログラムの起動や、OSGiフレームワーク上からのアンインストールが可能である。
なお、ここではプログラム実行環境提供部101とSGW動作管理プログラム102の組み合わせの例として、OSGiフレームワークとバンドルを挙げたが、本発明はこれに限定されない。つまり、プログラム実行環境提供部101とSGW動作管理プログラム102により、管理システム送受信機能部11、プログラム状態制御機能部12、プログラム動作状態収集機能部13が実現されればよい。
第2の相違点は、管理システム2の構成と、配信プログラムファイル蓄積サーバ25の処理内容である。
図14は、管理システム2の機能ブロックを示す。
配信プログラムファイル蓄積サーバ25は、動作変更命令作成機能部23にプログラムファイルを渡すのでなく、URLを指定して行われるSGW1からのアクセスに対し、そのURLで指定されたプロトコルにしたがって、そのURLの場所にあるプログラムファイルを読み出し、別のネットワーク通信IF251を介して、そのSGW1に送信するようになっている。
なお、配信プログラムファイル蓄積サーバ25は、URLがhttp://やhttps://で始まる場合は、HTTPサーバ(webサーバ)、URLがftp://で始まる場合は、FTPサーバとなるが、本発明はこれに限定されない。
第3の相違点は、管理システム2のOP情報DB21が備える情報である。
図15は、OP情報DB21が備えるプログラム情報214を示す。
OP情報DB21は、サービス構成プログラム情報213と、プログラム情報214、ユーザ契約サービス情報212、ユーザ利用SGW情報211を有するが、このプログラム情報214においては、プログラムID、SGW上プログラムIDおよびバージョンを備えたレコードに対し、そのプログラムIDの配信プログラムファイル蓄積サーバ25でのURLを含ませる。なお、このURLをSGW上プログラムIDとして用いることも可能で、その場合は、プログラム情報214のレコードのフィールドを減らすことができる(図16)。
次に、処理手順における相違点を説明する。
図17は、発明1−1の処理シーケンスであり、図18は、発明1−2の処理シーケンスである。
まず、プログラム動作状態変更命令601、つまり、それがSGW1で実行された後のプログラム動作状態が理想動作状態となるようなプログラム動作状態変更命令601の作成方法が異なる。
発明1−1では、プログラムリスト1000のSGW上プログラムIDについての分類を行い、「インストール」、「更新」の処理命令については、対応するプログラムIDをプログラム情報214から読み出し、そのプログラムIDのプログラムファイルを配信プログラムファイル蓄積サーバ25から取得し、その処理命令に添付し(動作状態変更命令作成ステップD9)、こうして作成されたプログラム動作状態変更命令601をSGW1に送信する(動作状態変更命令実行ステップD13)。
そして、動作状態変更命令実行ステップD13において、「インストール」、「更新」の処理命令については、その処理命令に添付されたプログラムファイルを用いてインストールや更新を行う。その他の処理命令について、その処理命令に従った処理を行う。
一方、発明1−2では、「インストール」、「更新」の処理命令については、対応するURLをプログラム情報214から読み出し、その処理命令に添付し(動作状態変更命令作成ステップD9)、こうして作成されたプログラム動作状態変更命令601をSGW1に送信する(動作状態変更命令実行ステップD13)。
そして、動作状態変更命令実行ステップD13において、「インストール」、「更新」の処理命令については、その処理命令に添付されたURLの場所にアクセスしてプログラムファイルをダウンロードし(D131,D132)、それを用いてインストールや更新を行う。その他の処理命令について、その処理命令に従った処理を行うことは、発明1−1と同じである。
発明1−2によれば、以下の効果が得られる。
まず、処理命令にはURLが添付され、プログラムファイルは添付されない。そして、SGW動作管理プログラム102が、そのURLを指定したアクセスによりプログラムファイルを取得する。これにより、管理システム2では、処理命令(プログラム動作状態変更命令601)を作成する機器と、プログラムファイルを配信する機器とを異ならせることができる。つまり、動作変更命令作成機能部23を有する機器と、配信プログラムファイル蓄積サーバ25を有する機器とを異ならせることができる。
また、配信プログラムファイル蓄積サーバ25は、URLでアクセス可能であり、広く普及しているロードバランサー(負荷分散装置)などにより、膨大なSGW1からアクセスに耐えうるようなシステム拡張が容易に行える。
なお、ここで説明したプログラム理想動作状態リストLIやプログラム動作状態リストLSGの作成方法、プログラム動作状態変更命令601の作成方法は、一例であり、本発明はこれに限定されるものではない。
[発明1−2の別の実施例(プログラムの依存関係を考慮したプログラム動作状態変更命令601の作成および実行)]
また、発明1−2では、別の実施例も考えられる。
ユーザが契約する1つのサービスは、1つ以上のプログラムが連携動作することで提供されるが、プログラムの間で、依存関係が存在する可能性もある。例えば、サービスAはプログラム1とプログラム2によって成立し、サービスBはプログラム3によって成立し、プログラム1が動作するにはプログラム3が動作していることが必要となる場合がある。このように、プログラム1の動作にはプログラム3の動作が必要となる場合、「プログラム1がプログラム3に依存している」という。この場合、プログラム3の停止中にプログラム1を動作させようとしてもプログラム1は正常に動作せず、エラーが発生する可能性がある。
そこで、この別の実施例では以下のようにする。
図19は、この場合のOP情報DB21が備えるプログラム間依存情報215を示す。
OP情報DB21は、ユーザ利用SGW情報211、ユーザ契約サービス情報212、サービス構成プログラム情報213およびプログラム情報214に加え、プログラム間依存情報215を備える。プログラム間依存情報215は、プログラムIDと、対応するプログラムが依存するプログラムのプログラムIDからなる依存プログラムIDリストとからレコードを蓄積してなるものである。
次に、プログラム動作状態変更命令601の作成方法の例を説明する。
まず、図13で説明したように、プログラム動作状態リストLSGとプログラム理想動作状態リストLIとから、プログラムリスト1000を作成し、そのSGW上プログラムIDを分類して、処理命令リスト2000を作成する。
次に、前述の依存関係に基づき、処理命令リスト2000に対し、「プログラムの一時停止の処理命令」つまり「あるプログラムが動作中の状態において、そのプログラムが依存する他プログラムが必ず動作中となる状態を保つために必要な処理命令」と、「処理順番号」つまり各処理命令の処理順を示す処理順番号とを加える。なお、処理順番号は、SGW1が処理順を判定できるフォーマットで生成される。
この「一時停止の処理命令」および「処理順番号」について説明する。
例えば、プログラムAがプログラムBに依存し、プログラムAをインストール後起動する処理を例にすると、プログラムAの起動前にプログラムBを起動状態にする必要がある。よって、プログラムBに関しての「インストール後起動」の処理命令が、処理命令リスト2000に含まれる場合、その処理はプログラムAのインストール後の起動処理よりも先に行うように処理順番号をつける。また、プログラム動作状態リストLSGでのプログラムBの動作状態が「停止中」だった場合、プログラムAをインストールして起動する前にプログラムBを起動させるように処理順番号をつける。
次に、プログラムCを更新する処理を例に説明する。
この場合、起動中のプログラムCの更新処理実行時には、プログラムCの旧プログラムが停止し、新しいプログラムファイルにより、旧プログラムに交換された新プログラムが起動する。
ここで、プログラムDがプログラムCに依存し、プログラム動作状態リストLSGでのプログラムDの動作状態が「動作中」だった場合、プログラムCが更新処理により停止する前にプログラムDを一時停止させ、プログラムCの新プログラムが起動した後に、プログラムDを起動させる必要がある。さもなくば、プログラムDが動作しているにも関わらず、そのプログラムDが依存するプログラムCが停止する期間が発生し、プログラムDが正常に動作せず、エラーを発生する可能性がある。
そこで、プログラム動作状態変更命令601に含まれる処理命令リスト2000の処理命令と処理順番号を、以下のようなものにする。つまり、処理順番号にしたがって処理命令が実行されたときに、あらゆるプログラムにつき、そのプログラムが動作中にも関わらず、そのプログラムが依存するプログラムがインストール済みかつ動作中でない状況が一切ないような、処理命令と処理順番号とする。これにより、動作状態変更命令実行ステップD13でのエラー発生を防ぐことができる。
さて、サービスAはプログラム1とプログラム2によって成立し、サービスBはプログラム3によって成立し、プログラム1の動作にはプログラム3の動作が必要となる場合があると前述したが、この例は、サービスAに必要なプログラムの動作にはサービスBに必要なプログラムの動作が必要である、つまり、「サービスAがサービスBに依存している」ということができる。
この場合、やはり、サービスBのプログラム3の停止中にサービスAのプログラム1を動作させようとしてもプログラム1は正常に動作せず、エラーが発生する可能性がある。
そこで、この別の実施例では、以下のようにすることもできる。
図20は、この場合のOP情報DB21が備えるサービス間依存情報216を示す。
OP情報DB21は、ユーザ利用SGW情報211、ユーザ契約サービス情報212、サービス構成プログラム情報213およびプログラム情報214に加え、サービス間依存情報216を備える。サービス間依存情報216は、契約サービスIDと、対応するサービスが依存するサービスを示す契約サービスIDからなる依存サービスIDリストとからレコードを蓄積してなるものである。
次に、プログラム動作状態変更命令601の作成方法の例を説明する。なお、プログラム間での依存関係はないものとする。また、サービス間依存情報216は、サービス構成プログラム情報213の更新つまり構成プログラムIDリストの更新、追加、削除などにより変化しないこととする。
管理システム2は、自身が提供する全てのサービスに関して、サービス間依存情報216を基にして、サービス依存関係の木構造(サービス間依存木)を作成する。この木構造は、各ノードをサービスに割り当て、木構造の親ノードに該当するサービスが依存するサービスのノードを子ノードに配置する処理を、全てのサービスに関して、再帰的に行うことでの作成が可能である。
この結果、独立したサービス間依存木が複数作成される可能性もある。ここで各サービス間依存木に関して、親は子より1つ大きな階層番号を有するように各ノードの階層番号を設定する。例えば最下層の子ノードの階層番号を1として、必ず親子のノードの間で親ノードが子ノードより1つ大きな値を、木構造に沿って設定していく。各ノードの階層番号をサービス間階層番号という。
次に、各サービスを構成するプログラム間での依存関係に関する木構造(サービス内依存木)を同様に作成する。同様に、階層番号(サービス内階層番号)を各ノードに付与する。ここでサービス内階層番号の最大値以上の数値Nを1つ選ぶ。
そして、各プログラムに関して、(そのプログラムが提供するサービスのノードに該当するサービス間階層番号)×N+(サービス内階層番号)を処理順番号として算出する。依存されているプログラムと依存しているプログラムとの間でこの処理順番号を比較すると、必ず前者は後者より低い番号となる。
また、図13で説明したように、プログラム動作状態リストLSGとプログラム理想動作状態リストLIとから、プログラムリスト1000を作成し、そのSGW上プログラムIDを分類して、処理命令リスト2000を作成する。
そして、プログラム動作状態リストLSGとプログラム理想動作状態リストLIの和集合であるプログラムリスト1000のうち、処理命令リスト2000に含まれないプログラムのリストをプログラムリスト3000とする。
ここで、処理命令リスト2000における「更新後起動」や「更新」の処理命令に対応するプログラムのリストを抽出し、これをプログラムリスト4000とする。
プログラムリスト4000の各プログラムにつき、サービス構成プログラム情報213から、対応する契約サービスIDを読み出し、サービス間依存木について、その契約サービスIDのサービスのノード以下の枝に属するサービスのノードを構成するプログラムのリストを抽出し、これをプログラムリスト5000とする。
プログラムリスト5000とプログラムリスト3000の両方に含まれるプログラムに関して、そのプログラムに対する「プログラムの一時停止の処理命令」を作成し、それらを処理命令リスト2000に加えて、これを処理命令リスト6000とする。
そして、処理命令リスト6000の各処理命令に対して、上記で算出した各プログラムの処理順番号を付与し、これを処理命令リスト7000とする。
そして、管理システム2は、動作状態変更命令送信ステップD11では、この処理命令リスト7000を含むプログラム動作状態変更命令601を送信する。
そして、SGW1は、受信したプログラム動作状態変更命令601に含まれる処理命令リスト7000の各処理命令を動作状態変更命令実行ステップD13で処理するが、処理命令の内容と処理順番号とを考慮に入れて、以下のようにする。ここでは、同じ処理順番号ならば処理順は問わないこととする。
1.「更新」、「停止」、「アンインストール」の処理命令については、処理順番号の降順に停止処理を行う。
2.「アンインストール」の処理命令については、処理順番号の降順にアンインストール処理を行う。
3.「更新」、「インストール」の処理命令については、処理順番号の昇順に、更新処理、インストール処理を行う。
4.「起動」の処理命令については、処理順番号の昇順に起動処理を行う。
この方法によれば、処理順番号が高いプログラムが動作中の際には、必ず処理順番号が低いプログラムが動作中となり、エラーの発生を防ぐことできる。
なお、各処理命令に処理順番号を付与した処理命令リスト7000ではなく、動作状態変更命令実行ステップD13での処理順を示す処理順番号を付与したものをプログラム動作状態変更命令601に含ませ、動作状態変更命令実行ステップD13では、各処理命令をその処理順番号にしたがって実行するという実施例も考えられる。
この場合、処理順番号とを考慮に入れたアルゴリズムを予めSGW1に設定する必要がない。また、そのアルゴリズムによるプログラム動作状態変更命令601の解釈が不要なので、動作状態変更命令実行ステップD13の際のSGW1の負担軽減が図れる。
したがって、発明1−2によれば、動作状態変更命令作成送信ステップ(D7およびD9)では、インストール、更新の処理命令に、そのために必要なプログラムファイルの場所を示す情報を添付し、動作状態変更命令実行ステップD13では、インストール、更新の処理命令に添付された情報の場所からプログラムファイルを取得し用いるたので、プログラムのインストール、更新を行うことができる。
[発明2]
次に、発明2を説明する。ここでは、発明1を前提に説明する。発明1としては、発明1−1と発明1−2のどちらを実施してもよい。
図21は、処理シーケンスを示す。
まず、SGW1が起動し(C1)、それに応じてプログラム実行環境提供部101が自動的に起動した(C3)後に、それに応じてSGW動作管理プログラム102が自動的に起動する(C5)。
次に、SGW動作管理プログラム102がプログラム動作状態報告送信ステップD3を行い、以後、同様に、プログラム動作状態報告受信ステップD5、プログラム理想動作状態リスト作成ステップD7、動作状態変更命令作成ステップD9、動作状態変更命令送信ステップD11、動作状態変更命令実行ステップD13が行われる。
発明2によれば、SGW1を起動または再起動するだけで、SGW1上のプログラムを最新の状態にすることができる為、ユーザにとってわかりやすく容易な操作でプログラムを最新の状態にできる。よって、プログラムを最新の状態にするために、Webブラウザを用いてユーザポータルへアクセスする等の動作が不要となる。
また、発明2は、以下の場面でも効果を奏する。
例えば、ユーザ宅にSGW1を設置する前に、ユーザはサービスAを契約したとする。SGW1がユーザ宅に配達された後、ユーザはSGW1を起動するだけで、SGW1に設置前に契約したサービスAに必要なプログラムがインストールおよび起動され、ユーザは契約したサービスAを利用できるようになる。
また、契約中のサービスを構成するプログラムが更新される処理においては、そのプログラムだけではなく、そのプログラムに依存した他プログラムも一時停止する可能性があるが、SGW1を再起動する際にはそもそも全てのプログラムは停止しているので、停電や電源ケーブルを誤って抜いたなどの場合を除いて、ユーザの意図に反してサービスが一時停止して困ることがない。
また、SGW1と管理システム2の間は、高い信頼性を有する専用線など回線でなく、ADSLや無線などの不安定な回線で接続されることが想定され、この場合、プログラム動作状態報告501やプログラム動作状態変更命令601が紛失し、プログラムの動作状態の制御が行えない可能性があるが、発明2では、そのようなときは、ユーザがSGW1を起動すればよいので、プログラムの動作状態の制御が行えるようになる。
したがって、発明2によれば、サービスゲートウェイが、自身の起動により、プログラム動作状態報告ステップを行うので、発明1の効果に加えて、ユーザがサービスゲートウェイを起動すれば、各プログラムを理想的な動作状態にすることができるという効果が得られる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、Webブラウザなどを用いて、いわゆるポータルサイトにアクセスするなどが不要になる。
また、ユーザの明示的行動によるので、更新などの際のプログラムの一時停止がユーザの意図に反して起きるのを防止することができる。
[発明2−1]
発明2において、SGW動作管理プログラム102の起動前や動作状態変更命令実行ステップD13の前に機器制御プログラム103が起動する場合を考える。この場合、動作状態変更命令実行ステップD13が終了した時のSGW1は、プログラム理想動作状態リストLIの状態になるが、その前に最新ではないインストール済みのプログラムや、本来動作してはならないプログラムが動作している時間が発生する可能性がある。
そこで、次に、発明2−1を説明する。
図22に示すように、SGW1が起動し(C1)、それに応じてプログラム実行環境提供部101が自動的に起動した(C3)後に、それに応じてSGW動作管理プログラム102が自動的に起動する(C5)ときに、機器制御プログラム103の起動を抑制する(プログラム起動抑制ステップC7)。
そして、SGW動作管理プログラム102がプログラム動作状態報告送信ステップD3を行い、以後、同様に、プログラム動作状態報告受信ステップD5、プログラム理想動作状態リスト作成ステップD7、動作状態変更命令作成ステップD9、動作状態変更命令送信ステップD11、動作状態変更命令実行ステップD13が行われる。
つまり、動作状態変更命令実行ステップD13の前においては、機器制御プログラム103は起動せず、動作状態変更命令実行ステップD13が終了した時のSGW1は、プログラム理想動作状態リストLIの状態になる。
したがって、発明2−1によれば、SGW1が、自身の起動によるプログラム動作状態報告ステップ(D1およびD3)に先立ち、各プログラムの起動を抑制するので、発明1や2の効果に加えて、本来、動作してはならないプログラム、つまり更新、アンインストールされるプログラムが起動してしまうのを防ぐことができるという効果が得られる。
[発明3]
次に、発明3を説明する。ここでも、発明1を前提にする。発明1としては、発明1−1と発明1−2のどちらを実施してもよい。
図23は、SGW1の機能ブロック、図24は、処理シーケンスを示す。
SGW1は、そのハードウェアとして操作ボタンを有し、図23に示すように、SGW1は、管理システム送受信機能部11、プログラム状態制御機能部12、プログラム動作状態収集機能部13に加え、そのボタン操作を検出する機能を有するボタン操作検出機能部14を備える。ボタンの形状や数、押し方などは、本発明の制限されるところではない。例えば、1つのボタンを押し続ける時間や、複数のボタンを同時に押下するなどは任意である。つまり、ある所定の操作をすると、その操作が行われたことを検出するような機能をボタン操作検出機能部14が備えていればよい。
図24に示すように、SGW1がボタン操作を検出し(ボタン操作検出ステップT1)、その後、SGW動作管理プログラム102がプログラム動作状態報告送信ステップD3を行い、以後、同様に、プログラム動作状態報告受信ステップD5、プログラム理想動作状態リスト作成ステップD7、動作状態変更命令作成ステップD9、動作状態変更命令送信ステップD11、動作状態変更命令実行ステップD13が行われる。
発明3によれば、ユーザの明示的行動により動作状態変更命令実行ステップD13が実行されるので、ユーザの意図に反してサービスが一時停止して困ることがない。
また、発明2とは違い、つまり、動作状態変更命令実行ステップD13を実行させるために、SGW1が起動中の場合は再起動させる必要があり、さらに、SGW1がモデムやルータなどの機能を備えている場合は、それらを含めたSGW1の全機能が一旦停止する発明2と違い、発明3では再起動が必要なく、一旦停止するサービスを、その必要のあるサービスに限定することができる。
また、SGW1と管理システム2の間は、高い信頼性を有する専用線など回線でなく、ADSLや無線などの不安定な回線で接続されることが想定され、この場合、プログラム動作状態報告501やプログラム動作状態変更命令601が紛失し、プログラムの動作状態の制御が行えない可能性があるが、発明3では、そのようなときは、ユーザがボタン操作を行えばよいので、プログラムの動作状態の制御が行えるようになる。
したがって、発明3によれば、SGW1が、自身への操作を検出する操作検出ステップ(T1)を備え、それにより、SGW1が、プログラム動作状態報告ステップ(D1およびD3)を行うので、発明1の効果に加えて、ユーザがSGW1を操作すれば、各プログラムを理想的な動作状態にすることができるという効果が得られる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、ユーザの明示的行動によるので、プログラムがユーザの意図に反して一時停止するのを防止することができる。また、SGW1の起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。
[発明4]
次に、発明4を説明する。ここでも、発明1を前提にする。発明1としては、発明1−1と発明1−2のどちらを実施してもよい。
図25は、全体図、図26は、SGW1の機能ブロック、図26は、処理シーケンスを示す。
図25に示すホームネットワーク内の機器3(図では、HDDレコーダ、ドアロック、リモコン(リモートコントローラ)、携帯電話)は、ユーザの所定の操作を契機に、赤外線通信IrDAやBluetooth、Zigbee、無線LAN、有線LANなどを介して、SGW1に操作通知を送信する。機器3としては、PC(パーソナルコンピュータ)やTV(テレビジョン受像機)などが考えられる。
機器3では、そのプログラムがユーザインターフェイスを提供し、ユーザがユーザインターフェイスに対して入力処理を行うことが、所定の操作に当たる。なお、本発明は機器3やホームネットワークの種別により限定されるものではない。
図26に示すように、SGW1は、SGW1は、管理システム送受信機能部11、プログラム状態制御機能部12、プログラム動作状態収集機能部13に加え、機器3からの操作通知を検出する機能を有する操作通知検出機能部15を備える。
図27に示すように、機器3がユーザによる所定の操作を検出し(操作検出ステップT11)、それを契機に、機器3が操作通知をSGW1に送信し(T13)、SGW1が操作通知を検出した(操作通知検出ステップT15)後、SGW動作管理プログラム102がプログラム動作状態報告送信ステップD3を行い、以後、同様に、プログラム動作状態報告受信ステップD5、プログラム理想動作状態リスト作成ステップD7、動作状態変更命令作成ステップD9、動作状態変更命令送信ステップD11、動作状態変更命令実行ステップD13が行われる。
発明4によれば、発明3と同様に、ユーザの明示的行動により動作状態変更命令実行ステップD13が実行されるので、ユーザの意図に反してサービスが一時停止して困ることがない。
また、SGW1の全機能が一旦停止する発明2と違い、そして、発明3と同様に、発明4では、再起動が必要なく、一旦停止するサービスを、その必要のあるサービスに限定することができる。
また、プログラム動作状態報告501やプログラム動作状態変更命令601の紛失により、プログラムの動作状態の制御が行えないときは、ユーザが機器3に所定の操作を行えばよいので、プログラムの動作状態の制御が行えるようになる。
したがって、発明4によれば、機器3が、自身への操作を検出する操作検出ステップ(T11)と、機器3が、SGW1に操作通知を行う操作通知ステップ(T13)とを備え、それにより、SGW1が、プログラム動作状態報告ステップ(D1およびD3)を行うので、発明1の効果に加えて、ユーザが機器3を操作すれば、各プログラムを理想的な動作状態にすることができるという効果が得られる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、ユーザの明示的行動によるので、プログラムがユーザの意図に反して一時停止するのを防止することができる。また、SGW1の起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。
[発明5]
次に、発明5を説明する。ここでも、発明1を前提にする。発明1としては、発明1−1と発明1−2のどちらを実施してもよい。
図28は、全体図、図29は、管理システム2の機能ブロック、図30は、処理シーケンスを示す。
図28に示すように、ユーザの外出先などに配置されたPC等が備えるWebブラウザ4は、インターネットなどの通信網を介して管理システム2に接続される。
図29に示すように、管理システム2では、Webページ管理機能部26が、Webブラウザ4からのWebアクセス、文字、ボタン操作の入力受付、Webブラウザ4へのページ出力などを行うWebサーバ27とともに動作する。
そして、管理システム2は、Webブラウザ4を用いてアクセスしてきたユーザをユーザIDにより認証する機能を有するアクセスユーザ認証機能部28を有する。
アクセスユーザ認証機能部28が行う認証としては、パスワード認証や、トークンを用いた認証、指紋やアイリスなどの生体情報を用いた認証など、様々なものが考えられるが、本発明はこれに限定されない。
また、管理システム2は、Webブラウザ4から、Webサーバ27とWebページ管理機能部26を介して、後述する動作状態変更処理依頼301を受け付ける機能を有する動作状態変更処理依頼受付機能部29を備える。
図30に示すように、管理システム2では、Webブラウザ4からのWebアクセスを受け付け(K1)、認証によりユーザIDを特定する(K3)。その後、Webブラウザ4を制御して、動作状態変更処理依頼301を受け付けるボタンなどを含むページを表示させ(K5)、ユーザがボタンを押した操作に該当する処理情報(動作状態変更処理依頼301)をhttpプロトコルのPOSTなどのメソッドを通じてWebサーバ27が受信する(動作状態変更処理依頼受付ステップK7)と、Webページ管理機能部26は、管理システム2の動作状態変更処理依頼受付機能部29に、特定したユーザIDを渡す。動作状態変更処理依頼受付機能部29は、OP情報DB21のユーザ利用SGW情報211から、そのユーザIDに対応するSGWIDを読み出し、そのSGWIDのSGW1に対して、ネットワーク通信IF24を介して、プログラム動作状態報告依頼401を送信する(プログラム動作状態報告依頼ステップK9)。
SGW1では、SGW動作管理プログラム102がプログラム動作状態報告依頼401を受信すると、プログラム動作状態リストLSGを作成し(D1)、以後、プログラム動作状態報告送信ステップD3、プログラム動作状態報告受信ステップD5、プログラム理想動作状態リスト作成ステップD7、動作状態変更命令作成ステップD9、動作状態変更命令送信ステップD11、動作状態変更命令実行ステップD13が行われる。
発明5によれば、ユーザの明示的行動により動作状態変更命令実行ステップD13が実行されるので、プログラムの更新があった場合などに、ユーザの意図に反して、サービスが一時停止して困ることがない。
また、発明2ではSGW1自体が停止するため、全てのプログラムが停止するので、SGW1がモデムやルータなどの機能を兼ねているとそれらの機能まで停止するが、発明5では、停止する必要があるサービスだけを停止させることができる。
また、発明3と違い、外出先などからであっても、動作状態変更命令実行ステップD13を実行させることができる。
したがって、発明5によれば、管理システム2が、Webブラウザ4からのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定ステップ(K1およびK3)と、管理システム2が、動作状態変更処理依頼301つまり動作状態変更命令作成送信ステップ(D9およびD11)を行う旨の依頼をWebブラウザ4から受け付ける動作状態変更処理依頼受付ステップ(K7)と、管理システム2が、特定されたユーザに使用されるSGW1にプログラム動作状態報告依頼401つまりプログラム動作状態報告ステップ(D1およびD3)を行う旨の依頼を行うプログラム動作状態報告依頼ステップ(K9)とを備え、それにより、特定されたユーザに使用されるSGW1が、プログラム動作状態報告ステップ(D1およびD3)を行うので、発明1の効果に加えて、ユーザが動作状態変更命令作成送信ステップ(K7)の依頼の操作を行えば、各プログラムを理想的な動作状態にすることができるという効果が得られる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、SGW1の起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。
また、Webブラウザによるので、外出先から、各プログラムを理想的な動作状態にすることができる。
[発明5−1(動作状態変更命令実行ステップD13の要否を表示)]
次に、発明5−1を説明する。
図31は、管理システム2の機能ブロック、図32は、処理シーケンスを示す。
図31に示すように、管理システム2は、各部21〜29に加え、SGW1での動作状態変更命令実行ステップD13の要否を確認する機能を有する動作状態変更処理要否確認機能部210を備える。
図32に示すように、管理システム2が、ユーザID特定ステップK3の後、特定されたユーザIDのユーザが利用するSGW1での動作状態変更命令実行ステップD13の要否を、管理システム2のOP情報DB21を用いて確認する(動作状態変更処理要否確認ステップK11)。
そして、Webブラウザ4を制御して、その要否を表示する(変更処理要否情報表示ステップK13)。
ここで、動作状態変更命令実行ステップD13が必要と表示され、それを見たユーザが、動作状態変更命令実行ステップD13を依頼する旨の操作を行うと、Webブラウザ4は、その依頼を示す動作状態変更処理依頼301を管理システム2に送信し、これを管理システム2が受信する(動作状態変更処理依頼受付ステップK7)。
管理システム2では、この動作状態変更処理依頼301を受信すると、対応するSGW1に対し、プログラム動作状態報告依頼401を送信する(プログラム動作状態報告依頼ステップK9)。
SGW1では、SGW動作管理プログラム102がプログラム動作状態報告依頼401を受信すると、プログラム動作状態リストLSGを作成し(D1)、以後、プログラム動作状態報告送信ステップD3、プログラム動作状態報告受信ステップD5、プログラム理想動作状態リスト作成ステップD7、動作状態変更命令作成ステップD9、動作状態変更命令送信ステップD11、動作状態変更命令実行ステップD13が行われる。
発明5−1によれば、動作状態変更命令実行ステップD13の要否を表示するので、動作状態変更命令実行ステップD13を依頼する旨の操作を行ったときは、既に契約して利用中のサービスのどれかが一時停止する可能性があることを認識することができる。
つまり、サービスが一時停止しても困らない場合は、当該操作を行い、困る場合は、当該操作をしないという選択肢をユーザに与えることができる。
また、動作状態変更命令実行ステップD13が不要であると表示されれば、当該操作は行われないので、動作状態変更処理依頼受付ステップK7以降の処理が不要となる。つまり、それら処理に応じた負担軽減が図れる。
さて、管理システム2が、動作状態変更処理要否確認ステップK11を行うときの実施方法としては、様々なものが考えられる。ここでは、方法A、方法Bおよび方法Cを説明する。
方法Aでは、Webブラウザ4からのアクセスの際、管理システム2はSGW1にプログラム動作状態報告依頼401を送信し、それにより返信されたプログラム動作状態リストLSGを受信し、管理システム2のOP情報DB21から、その際のSGW1のプログラム理想動作状態リストLIを作成し、プログラム動作状態リストLSGとプログラム理想動作状態リストLIを比較し、差異が有れば、動作状態変更命令実行ステップD13が必要と判断し、無ければ、動作状態変更命令実行ステップD13が不要と判断する。
さて、方法Aでは、実際に動作状態変更命令実行ステップD13が行われるか否かに関わらず、Webブラウザ4からのアクセスの度に、SGW1がプログラム動作状態リストLSGを作成し管理システム2に送信なければならない。そのため、Webブラウザ4からのアクセスの度にSGW1に負荷がかかる。また、Webブラウザ4からのアクセスの度に、管理システム2がプログラム動作状態報告依頼401を送信し、プログラム動作状態リストLSGの返信を待たなければならないので、変更処理要否情報表示ステップK13までの時間が長くなる。
そこで、方法Bでは、管理システム2がプログラム動作状態リストLSGを管理する手段を備え、一方、SGW1は、SGW1にインストールされているプログラムの動作状態に変更が生じた際には、その都度、プログラム動作状態リストLSGを作成し、管理システム2に送信する。そして、管理システム2は、これを受信して管理する。
そして、Webブラウザ4からのアクセスの際、管理システム2は、管理しているプログラム動作状態リストLSGを読み出し、管理システム2のOP情報DB21から、その際のSGW1のプログラム理想動作状態リストLIを作成し、プログラム動作状態リストLSGとプログラム理想動作状態リストLIを比較し、差異が有れば、動作状態変更命令実行ステップD13が必要と判断し、無ければ、動作状態変更命令実行ステップD13が不要と判断する。よって、方法Bでは、Webブラウザ4からのアクセスの度にSGW1に負荷がかからず、また、変更処理要否情報表示ステップK13までの時間を短くできる。
さて、プログラム動作状態リストLSGは比較的に情報量が多いので、方法Bでは、管理システム2において、容量の大きい記憶手段が必要になる。
そこで、方法C(簡易SGW現状管理方式)では、管理システム2のOP情報DB21がSGW1毎に2つのIDを保持する。なお、これら2つのIDはプログラム動作状態リストLSGよりも情報量が少なく、よって、容量の大きい記憶手段が不要である。
1.一方のIDは、Snapshot IDというものであり、具体的には、そのIDに対応するSGW1に管理システム2のOP情報DB21での変更を反映させる必要が生じたときに単調増加される状態版番号である。以下、これをSGW単位SIDという。
(ア)管理システム2では、OP情報DB21が備えるユーザ契約サービス情報212の契約サービスIDリストが変更された際、そこから変更に関わるユーザIDを読み出し、ユーザ利用SGW情報211から、その読み出したユーザIDに対応するSGWIDを読み出し、そのSGWIDのSGW単位SIDを単調増加させる。
(イ)また、管理システム2では、OP情報DB21が備えるサービス構成プログラム情報213の構成プログラムIDリストが変更された際、そこから変更に関わる契約サービスIDを読み出し、ユーザ契約サービス情報212から、その読み出した契約サービスIDに対応するユーザIDを読み出し、ユーザ利用SGW情報211から、その読み出したユーザIDに対応するSGWIDを読み出し、そのSGWIDのSGW単位SIDを単調増加させる。
2.他方のIDは、Synchronized SIDというものであり、具体的には、そのIDに対応するSGW1で動作状態変更命令実行ステップD13が完了したときに、そのSGW1についてのSGW単位SIDで更新される状態版番号である。以下、これをSGW単位SySIDという。
管理システム2は、プログラム動作状態変更命令601を作成した際のSGW単位SIDをプログラム動作状態変更命令601に含めてSGW1に送信する(動作状態変更命令送信ステップD11)。
SGW1は、このプログラム動作状態変更命令601を受信して、動作状態変更命令実行ステップD13を実行した後、プログラム動作状態変更命令601に含まれていたSGW単位SIDならびに動作状態変更命令実行ステップD13が成功したか否かを示す処理成否を含む動作状態変更命令実行報告701を管理システム2に送信する。
管理システム2は、受信した動作状態変更命令実行報告701の処理成否が成功ならば、その動作状態変更命令実行報告701の送信元であるSGW1のSGW単位SySIDを、動作状態変更命令実行報告701に含まれたSGW単位SIDで更新する。
そして、ユーザ認証が成功した際、SGW単位SIDとSGW単位SySIDを比較し、SGW単位SIDがSGW単位SySIDより大きければ、動作状態変更命令実行ステップD13が必要と判断し、SGW単位SIDとSGW単位SySIDが等しいければ、動作状態変更命令実行ステップD13が不要と判断する。
さて、管理システム2では、動作状態変更命令実行報告701の送信元のSGW1を様々な方法で検出できる。
例えば、SGW1が、自身のSGWIDを動作状態変更命令実行報告701に含めれば、管理システム2が、それを読み出すことで、その動作状態変更命令実行報告701の送信元を検出できる。
また、管理システム2とSGW1とを接続する通信チャネルに割り当てられた情報(例えば、SGW1のIPアドレス)によっても、動作状態変更命令実行報告701の送信元を検出できる。
なお、本発明は、その方法を限定するものではない。
したがって、方法Cによれば、方法Aと違い、Webブラウザ4からのアクセスの度にSGW1に負荷がかからない。また、方法Bと違い、管理システム2において、容量の大きな記憶手段が不要である。つまり、プログラム動作状態リストLSGのような詳細かつ多量の情報を管理する必要がなく、SGW単位SIDとSGW単位SySIDという単純かつ少量の情報の管理をするだけでよい。
また、プログラム動作状態報告501やプログラム動作状態変更命令601の紛失により、プログラムの動作状態の制御が行えないときは、ユーザがWebブラウザ4を操作すればよいので、プログラムの動作状態の制御が行えるようになる。
したがって、発明5−1によれば、管理システム2が、Webブラウザ4からのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定ステップ(K1およびK3)と、管理システム2が、自身に備わった情報(OP情報DB21)を用いて、特定されたユーザに使用されるSGW1での動作状態変更命令実行ステップD13の要否を確認し、Webブラウザ4を制御して表示させる動作状態変更命令実行要否確認表示ステップ(K11およびK13)と、管理システム2が、動作状態変更命令作成送信ステップ(D7およびD9)を行う旨の依頼(301)をWebブラウザ4から受け付ける動作状態変更処理依頼受付ステップK7と、管理システム2が、特定されたユーザに使用されるSGW1にプログラム動作状態報告ステップ(D1およびD3)を依頼するプログラム動作状態報告依頼ステップK9とを備え、それにより、特定されたユーザに使用されるSGW1が、プログラム動作状態報告ステップ(D1およびD3)を行うので、発明1および5の効果に加えて、必要と表示されたときにのみ、動作状態変更命令作成送信ステップ(D9およびD11)の依頼の操作を行えば、各プログラムを理想的な動作状態にすることができるという効果が得られる。
[発明5−2(動作状態変更命令実行ステップD13の要否と、サービスやプログラムに及ぼす影響を表示)]
次に、発明5−2を説明する。
図33は、管理システム2の機能ブロック、図34は、処理シーケンスを示す。
図33に示すように、管理システム2は、SGW1での動作状態変更命令実行ステップD13の影響を導出する機能を有する変更処理影響導出機能部21Aを備える。
図34に示すように、管理システム2が、ユーザID特定ステップK3の後、特定されたユーザIDのユーザが利用するSGW1での動作状態変更命令実行ステップD13の要否を確認し(動作状態変更処理要否確認ステップK11)、動作状態変更命令実行ステップD13が必要ならば、特定されたユーザIDのユーザが利用するSGW1での動作状態変更命令実行ステップD13がそのSGW1で提供中のサービスやプログラムに対して及ぼす影響を導出する(変更処理影響導出ステップK21)。
そして、Webブラウザ4を制御して、要否を表示し、動作状態変更命令実行ステップD13が必要ならば、導出した影響を示す変更処理影響情報201を表示する(変更処理影響情報表示ステップK23)。
それを見たユーザが、動作状態変更命令実行ステップD13を依頼する旨の操作を行うと、Webブラウザ4は、その依頼を示す動作状態変更処理依頼301を管理システム2に送信し、これを管理システム2が受信する(動作状態変更処理依頼受付ステップK7)。
次に、変更処理影響情報201の作成方法の例を説明する。なお、プログラム間での依存関係はないものとする。また、サービス間依存情報216は、サービス構成プログラム情報213の更新つまり構成プログラムIDリストの更新、追加、削除などにより変化しないこととする。また、ここでは、発明5−1の方法Cを改良した方法を説明する。
まず、管理システム2のOP情報DB21にSGW1毎に、方法Cと同様に、SGW単位SIDとSGW単位SySIDを保持する。さらに、SGW1毎にSGWプログラムリストを保持する。このSGWプログラムリストは、そのSGW1で動作しているプログラムのプログラムID、そのプログラムが提供するサービスを示す契約サービスID、SGWプログラム単位SIDおよび契約フラグからなるレコードをプログラムIDごとに蓄積したものである。
Onである契約フラグは、それを含むレコードのプログラムIDのプログラムを動作させるべきであることを示しており、一方、Offである契約フラグは、それを含むレコードのプログラムIDのプログラムを動作させるべきでないことを示している。
また、管理システム2では、プログラムの更新時に、古いプログラムIDと新しいプログラムIDとを含むレコードが格納される更新プログラム情報218を備える。更新プログラム情報218は、SGW1毎に備えるのでなく、各SGW1に共通な1つの更新プログラム情報218を管理システム2が備える。
以下、SGWプログラムリスト、SGW単位SIDおよびSGW単位SySIDの更新のタイミングについて説明する。
1.OP情報DB21が備えるユーザ契約サービス情報212の契約サービスIDリストが変更された際のタイミングで更新する場合
(ア)この場合、管理システム2では、ユーザ契約サービス情報212から変更に関わるユーザIDを読み出し、ユーザ利用SGW情報211から、その読み出したユーザIDに対応するSGWIDを読み出し、そのSGWIDのSGW単位SIDを単調増加させる。
(イ)次に、変更された契約サービスIDリストに含まれる契約サービスIDに対応する構成プログラムIDリストをサービス構成プログラム情報213から読み出す。
(ウ−i)新たに契約されたサービスの契約サービスIDに対応する構成プログラムIDリストについては、そこからプログラムIDを読み出し、その1つのプログラムIDと、対応する契約サービスIDと、対応するSGW単位SIDが設定されたSGWプログラム単位SIDと、Onの契約フラグとを有する新たなレコードをSGWプログラムリストに加える。
(ウ−ii) 解約されたサービスの契約サービスIDに対応する構成プログラムIDリストについては、そこからプログラムIDを読み出し、そのプログラムIDを有するレコードをSGWプログラムリストから検索し、そのレコードのSGWプログラム単位SIDを、対応するSGW単位SIDで更新し、契約フラグをOffにする。
2.OP情報DB21が備えるサービス構成プログラム情報213の構成プログラムIDリストが変更された際のタイミングで更新する場合
(ア)この場合、管理システム2では、サービス構成プログラム情報213から変更に関わる契約サービスIDを読み出し、ユーザ契約サービス情報212から、その読み出した契約サービスIDに対応するユーザIDを読み出し、ユーザ利用SGW情報211から、その読み出したユーザIDに対応するSGWIDを読み出し、そのSGWIDのSGW単位SIDを単調増加させる。
(イ)次に、構成プログラムIDリストの変更でその構成プログラムIDリストから削除されたプログラムIDについては、そのプログラムIDを有するレコードをSGWプログラムリストから検索し、そのレコードのSGWプログラム単位SIDを、対応するSGW単位SIDで更新し、契約フラグをOffにする。
(ウ)また、構成プログラムIDリストの変更でその構成プログラムIDリストに追加されたプログラムIDについては、そのプログラムIDと、対応する契約サービスIDと、対応するSGW単位SIDが設定されたSGWプログラム単位SIDと、Onの契約フラグとを有する新たなレコードをSGWプログラムリストに加える。
また、変更前の構成プログラムIDリストに含まれるプログラムID(旧プログラムID)と、変更後の構成プログラムIDリストに含まれるプログラムID(新プログラムID)とからなる組で、その組の新プログラムIDおよび旧プログラムIDに対応するSGWプログラムID同士が等しく、しかも、対応するバージョン同士が異なる組が存在すれば、その組の旧プログラムIDと新プログラムIDを更新プログラム情報218に加える。また、同様の組で、その組の新旧のプログラムIDに対応するSGWプログラムID同士が等しく、しかも、対応するバージョン同士が等しい組が存在すれば、SGWプログラムリストにおいて、その組の新プログラムIDを含むレコードにOnの一時停止フラグを加える。
(エ)次に、サービス間依存情報216から、その契約サービスID(サービス構成プログラム情報213から読み出した契約サービスID)に対応する依存サービスIDリストを読み出す。
(i) そして、その依存サービスIDリスト内の各契約サービスIDに関して、以下を実行する。
(ii) その契約サービスIDをユーザが契約しているか否かをユーザ契約サービス情報212から調べ、契約していれば、サービス構成プログラム情報213から、そのユーザのユーザIDに対応する構成プログラムIDリスト(プログラムIDのリスト)を読み出し、SGWプログラムリストにおいて、その各プログラムIDを含むレコードの一時停止フラグをOnにする。
(iii) そして、その契約サービスIDに対応する依存サービスIDリストを読み出し、(i)〜(ii)の処理を再帰的に行う。
3.発明5−1と同様に、管理システム2は、プログラム動作状態変更命令601を作成した際のSGW単位SIDをプログラム動作状態変更命令601に含めてSGW1に送信する(動作状態変更命令送信ステップD11)。
SGW1は、このプログラム動作状態変更命令601を受信して、動作状態変更命令実行ステップD13を実行した後、プログラム動作状態変更命令601に含まれていたSGW単位SIDならびに動作状態変更命令実行ステップD13が成功したか否かを示す処理成否を含む動作状態変更命令実行報告701を管理システム2に送信する。
管理システム2は、受信した動作状態変更命令実行報告701の処理成否が成功ならば、その動作状態変更命令実行報告701の送信元であるSGW1のSGW単位SySIDを、動作状態変更命令実行報告701に含まれたSGW単位SIDで更新する。
発明5−1と同様、このSGW単位SIDとSGW単位SySIDを用いると、ユーザが利用するSGW1での動作状態変更命令実行ステップD13の要否を、OP情報DB21を検索して即座に判別することができる。
発明5−2では、さらに、SGW単位SySIDと、SGWプログラムリストにおけるSGWプログラム単位SIDとを比較し、SGW単位SySIDよりSGWプログラム単位SIDが大きいプログラムについては処理が必要であると判定され、それにより、以下の処理が行われる。
その際のアルゴリズムの例を説明する。
まず、変更処理影響導出ステップK21において、SGW単位SySIDと、SGWプログラムリストにおけるSGWプログラム単位SIDとを比較し、SGW単位SySIDよりSGWプログラム単位SIDが大きい部分(動作状態変更処理必要リスト)をSGWプログラムリストから抽出する。
そして、動作状態変更処理必要リストの各エントリに含まれるプログラムIDのプログラムに対して行うべき処理内容を、以下の方法で、「インストール」、「更新」、「一時停止」、「アンインストール」に分類する。
まず、契約フラグがOnのエントリを抽出し、その中のプログラムIDが、更新プログラム情報218のいずれかのレコード内の新しいプログラムIDに一致した場合、「更新」に分類する。
それ以外のエントリで、一時停止フラグがOnのエントリについては、「一時停止」に分類する。
次に、契約フラグがOffのエントリで、既に「インストール」、「更新」、「一時停止」に分類されていないエントリについては、「アンインストール」に分類する。
そして、動作状態変更処理必要リストに基づくプログラムリストに分類結果を対応づけた変更処理影響情報201が作成される。
変更処理影響情報表示ステップK23では、このように作成された変更処理影響情報201が表示されるのである。
よって、変更処理影響情報201を見たユーザは、動作状態変更命令実行ステップD13を依頼する旨の操作を行うと、どのプログラムが、更新、一時停止、インストールあるいはアンインストールされるかを事前に知ることができる。
ユーザは、更新や一時停止すると表示されたプログラムのいずれかが一時停止しても困らない場合は依頼の操作をし、困る場合はしないということになる。
なお、ここでは、プログラムリストを表示したが、サービスのリストを表示してもよい。このリストには、契約サービスIDではなく、ユーザが理解しやすいサービスのメタ情報を用いるのがよい。その場合、サービス構成プログラム情報213の1つのエントリにメタ情報のフィールドを作り、そこにメタ情報を格納しておけばよい。メタ情報とは、例えば、サービス提供者の名前やサービス名などの文字列である。サービスのメタ情報を表示することにより、ユーザによる理解が容易になる。
発明5−2によれば、どのプログラムやサービスについて、更新、一時停止、インストールあるいはアンインストールがなされるかを、ユーザに対し事前に知らせることができる。よって、一時停止して困る場合は依頼操作をし、困らない場合は依頼操作をするという選択肢をユーザに与えることができる。
また、プログラム動作状態報告501やプログラム動作状態変更命令601の紛失により、プログラムの動作状態の制御が行えないときは、ユーザがWebブラウザ4を操作すればよいので、プログラムの動作状態の制御が行えるようになる。
[発明5−2の別の実施例(詳細SnapshotID方式の改良)]
さて、発明5−2では、図35に示すように、変更処理影響導出ステップK21が終了してからプログラム理想動作状態リスト作成ステップD7が終了するまでの間において、サービスを構成するプログラムが変更になったなどの理由でOP情報DB21が更新された場合(L1)、その後の動作状態変更命令実行ステップD13による影響と、事前に変更処理影響導出ステップK21で導出された影響とが相違する可能性がある。
これを例で説明する。SGW1のユーザは、サービスAとサービスBを契約していて、変更処理影響導出ステップK21では、サービスAの更新による一時停止が導出され、それが表示されていた場合、ユーザはサービスAのみが一時停止するものだと考えて、依頼の操作を行う。
しかし、変更処理影響導出ステップK21の後に、サービスBが更新されると、その後の動作状態変更命令実行ステップD13では、ユーザが承知していないサービスBまでが一時停止してしまうことになる。
そこで、以下のような別の実施例が考えられる。ここでは、発明5−2における方法Cを例に説明する。
図36は、その処理シーケンスを示す。
まず、変更処理影響情報表示ステップK23では、そのときのSGW1のSGW単位SIDを通知し、以降、そのSGW単位SIDを動作状態変更処理依頼受付ステップK7、プログラム動作状態報告依頼ステップK9、プログラム動作状態報告送信ステップD3においても通知する。
そし、プログラム動作状態報告送信ステップD3が行われると、まず、OP情報DB21の変更を禁止(ロック)またはOP情報DB21の複製(コピー)を確保する。そして、直前のプログラム動作状態報告送信ステップD3で通知されたSGW単位SIDと、この通知元のSGW1について管理システム2に保持されたSGW単位SIDとを比較し(D6)、保持されたSGW単位SIDが通知されたSGW単位SIDより大きい場合、OP情報DB21をロックしてあったならそれを解除し、プログラム理想動作状態リスト作成ステップD7および以降の処理を中止する。一方、両者が同じ場合、OP情報DB21をロックしてあったならそれをプログラム理想動作状態リスト作成ステップD7の終了後に解除し、動作状態変更命令作成ステップD9および以降の処理を実行する。
つまり、OP情報DB21が更新される(L1)と、その変更が影響するSGW1について管理システム2に保持されたSGW単位SIDが単調増加する(L2)ので、保持されたSGW単位SIDが通知されたSGW単位SIDより大きくなり、動作状態変更命令作成ステップD9および以降の処理が中止される。つまり、ユーザが承知していない処理が実行されるのを防ぐことができる。
なお、図37に示すように、このようなSGW単位SIDの比較とその結果による以降の処理についての実行制御は、プログラム動作状態報告送信ステップD3のときだけではなく、動作状態変更処理依頼受付ステップK7が行われたときにおいても実行するのがよい。
これにより、変更処理影響導出ステップK21が終了してから、動作状態変更処理依頼受付ステップK7の間にOP情報DB21が変更されると、プログラム動作状態報告依頼ステップK9からプログラム動作状態報告送信ステップD3までの間の処理が不要となり、この処理も中止することで、管理システム2とSGW1の負担軽減が図れる。
また、プログラム動作状態報告501やプログラム動作状態変更命令601の紛失により、プログラムの動作状態の制御が行えないときは、ユーザがWebブラウザ4を操作すればよいので、プログラムの動作状態の制御が行えるようになる。
したがって、発明5−2によれば、管理システム2が、Webブラウザ4からのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定ステップ(K1およびK3)と、管理システム2が、自身に備わった情報(OP情報DB21)を用いて、特定されたユーザに使用されるSGW1で動作状態変更命令実行ステップD13を行ったときの影響を導出し、Webブラウザ4を制御して表示させる変更処理影響導出表示ステップ(K21およびK23)と、管理システム2が、動作状態変更命令作成送信ステップ(D7およびD9)を行う旨の依頼(301)をWebブラウザ4から受け付ける動作状態変更処理依頼受付ステップ(K7)と、管理システム2が、特定されたユーザに使用されるSGW1にプログラム動作状態報告ステップ(D1およびD3)を依頼するプログラム動作状態報告依頼ステップ(K9)とを備え、それにより、特定されたユーザに使用されるSGW1が、プログラム動作状態報告ステップ(D1およびD3)を行うので、発明1および5の効果に加えて、影響を見て必要と判断したときにのみ、動作状態変更命令作成送信ステップ(D9およびD11)の依頼の操作を行えば、各プログラムを理想的な動作状態にすることができるという効果が得られる。
[発明6:SGW状態報告番号をプログラム動作状態報告に含め、それを含むプログラム動作状態変更命令のみを実行する]
次に、発明6を説明する。ここでも、発明1を前提にするが、発明1としては、発明1−1と発明1−2のどちらを実施してもよく、また、発明2〜5のいずれかを合わせて実施してもよい。
発明6では、SGW状態報告番号という番号がSGW1の記憶領域に記憶されていることとする。SGW状態報告番号は、例えば、SGW1が起動または再起動した際に初期化され、プログラム動作状態報告送信ステップD3ごとに単調増加されるものである。
SGW1が、プログラム動作状態報告送信ステップD3の際に、記憶領域からSGW状態報告番号を読み出し、これを単調増加させてプログラム動作状態報告501に含ませ、管理システム2に送信するとともに、その単調増加後のSGW状態報告番号で記憶領域のSGW状態報告番号を更新する。
管理システム2は、受信したプログラム動作状態報告501に含まれたSGW状態報告番号を、対応するプログラム動作状態変更命令601に含ませてSGW1に送信する。
SGW1は、受信したプログラム動作状態変更命令601に含まれたSGW状態報告番号と、記憶領域に記憶されているSGW状態報告番号とが等しい場合には、動作状態変更命令実行ステップD13を行い、等しくない場合には、動作状態変更命令実行ステップD13を中止する。
ここで、発明6との比較のために、図38に示すような場合を考える。つまり、発明1のプログラム動作状態報告送信ステップD3(プログラム動作状態報告送信ステップD31という)が終了してから、それに対応する動作状態変更命令実行ステップD13(動作状態変更命令実行ステップD131という)が終了するまでの間に、別のプログラム動作状態報告送信ステップD3(プログラム動作状態報告送信ステップD32という)が実行される場合である。
この場合、プログラム動作状態報告送信ステップD32に対応する動作状態変更命令実行ステップD13(動作状態変更命令実行ステップD132という)もいずれ実施される。
しかしながら、発明6では、図39に示すように、動作状態変更命令実行ステップD131が中止され、動作状態変更命令実行ステップD132が実行される。
まず、プログラム動作状態報告送信ステップD31で送信されるプログラム動作状態報告依頼401に含まれたSGW状態報告番号が「101」である場合、SGW状態報告番号の更新により、そのときの記憶領域にはSGW状態報告番号「102」が記憶され、プログラム動作状態報告送信ステップD32で送信されるプログラム動作状態報告依頼401に含まれるSGW状態報告番号は「102」となる。また、プログラム動作状態報告送信ステップD31に対応する動作状態変更命令送信ステップD11(動作状態変更命令送信ステップD111という)で送信されるプログラム動作状態変更命令601に含まれるSGW状態報告番号は「101」となる。このSGW状態報告番号「101」と、記憶されたSGW状態報告番号は「102」とは等しくなく、よって、動作状態変更命令実行ステップD131が中止される。一方、プログラム動作状態報告送信ステップD32に対応する動作状態変更命令送信ステップD11(動作状態変更命令送信ステップD112)で送信されるプログラム動作状態変更命令601に含まれるSGW状態報告番号は「102」なので、このSGW状態報告番号「102」と、記憶されたSGW状態報告番号は「102」とは等しく、よって、動作状態変更命令実行ステップD132が実行される。
よって、発明6によれば、動作状態変更命令実行ステップD131のみが実行されるので、SGW1での負担軽減が図れる。
さらに、発明6では、SGW1での負担軽減のみならず、SGW1が理想的な動作状態にできなくなってしまう不都合を防止することができる。これを具体的に説明する。
図38や図39に示すように、プログラム動作状態報告送信ステップD31が終了してから、動作状態変更命令実行ステップD131が終了するまでの間に、プログラム動作状態報告送信ステップD32が実行される場合においては、さらに、プログラム動作状態報告送信ステップD31が終了してから、プログラム動作状態報告送信ステップD32が実行されるまでの間に、SGW1の状態が変化する場合がある。ここで、変化前の状態を「状態1」、変化後の状態を「状態2」という。
この場合、「状態2」にも関わらず、「状態1」を基にした動作状態変更命令実行ステップD131が実行され、これにより、「状態1’」となってしまう。そして、さらに、「状態1’」にも関わらず、「状態2」を基にした動作状態変更命令実行ステップD132が実行され、これにより、SGW1は、「状態2」を基に導出された理想状態とはほど遠い状態となってしまう可能性がある。
しかし、図39に示すように、発明6では、「状態2」を基にした動作状態変更命令実行ステップD131のみが実行されるので、SGW1を、「状態2」を基に導出された理想状態にすることができる。
なお、プログラム動作状態報告送信ステップD31が終了してから、動作状態変更命令実行ステップD131が終了するまでの間に、プログラム動作状態報告送信ステップD32が実行されるのは、例えば、発明3や発明4において、1回目のSGW1や機器3への操作に対応するプログラム動作状態報告送信ステップD31が終了してから、それに対応する動作状態変更命令実行ステップD131が終了するまでの間に、2回目の操作に対応するプログラム動作状態報告送信ステップD32が実行される場合などである。
また、発明2や発明5でも同様なことが発生しうる。つまり、Webブラウザ4からの動作状態変更処理依頼受付ステップK7によるプログラム動作状態報告送信ステップD31が終了してから、それに対応する動作状態変更命令実行ステップD131が終了するまでの間に、SGW1の再起動ならびにその再起動によるプログラム動作状態報告送信ステップD32が実行される場合がある。
したがって、発明6によれば、プログラム動作状態報告ステップ(D1およびD3)では、SGW1が、予め記憶された状態報告番号(SGW状態報告番号)を読み出し単調増加させ、それを含むプログラム動作状態報告501を管理システム2に送信するとともに、予め記憶された状態報告番号を単調増加後の状態報告番号で更新し、動作状態変更命令作成送信ステップ(D9およびD11)では、管理システム2が、作成されるプログラム動作状態変更命令601に対応するプログラム動作状態報告501に含まれた状態報告番号をプログラム動作状態変更命令601に含ませてSGW1に送信し、SGW1は、送信されたプログラム動作状態変更命令601内の状態報告番号と、更新された状態報告番号とが互いに等しくないときは、動作状態変更命令実行ステップD13を中止するので、発明1の効果に加えて、サービスゲートウェイでの負荷軽減が図れるという効果が得られる。
また、仮に、状態報告番号が互いに等しくない場合の動作状態変更命令実行ステップ(D131)が中止されずに行われたとすると、状態報告番号が互いに等しい場合の動作状態変更命令実行ステップ(D132)をもってしても理想的な動作状態にできないという不都合が生じるが、状態報告番号が互いに等しくない場合の動作状態変更命令実行ステップ(D131)を中止することで、この不都合を防止することができる。
[発明6−1:ランダムなSGW状態報告番号をプログラム動作状態報告に含め、それを含むプログラム動作状態変更命令のみを実行する]
次に、発明6−1を説明する。ここでは、発明6との差異を説明する。
発明6−1では、SGW1が起動または再起動してから、最初のプログラム動作状態報告依頼401の作成が終了するまでの間にSGW状態報告番号の初期値としてランダムな値を設定する。
ここで、発明6−1との比較のために、図40に示すような場合を考える。つまり、発明6において、SGW1の起動によるプログラム動作状態報告送信ステップD31が終了してから、それに対応する動作状態変更命令実行ステップD131が終了するまでの間に、SGW1の再起動ならびにその再起動によるプログラム動作状態報告送信ステップD32が実行される場合があり、初期値を一定にすると、プログラム動作状態報告送信ステップD31で送信されるSGW状態報告番号と、プログラム動作状態報告送信ステップD32で送信されるSGW状態報告番号とが等しくなり、これにより、動作状態変更命令実行ステップD131と動作状態変更命令実行ステップD132の両方が実行されてしまう。
しかしながら、発明6−1では、図41に示すように、初期値をランダムな値としているので、プログラム動作状態報告送信ステップD31で送信されるSGW状態報告番号と、プログラム動作状態報告送信ステップD32で送信されるSGW状態報告番号とが等しくなる確率は非常に低く、これにより、実質的に動作状態変更命令実行ステップD131と動作状態変更命令実行ステップD132の両方が実行されてしまうのを防ぐことができる。
したがって、発明6−1によれば、プログラム動作状態報告ステップ(D1およびD3)では、SGW1が、ランダムな状態報告番号(SGW状態報告番号)を含むプログラム動作状態報告501を管理システム2に送信するとともに当該状態報告番号を記憶し、動作状態変更命令作成送信ステップ(D9およびD11)では、管理システム2が、作成されるプログラム動作状態変更命令601に対応するプログラム動作状態報告501に含まれた状態報告番号をプログラム動作状態変更命令601に含ませてSGW1に送信し、送信されたプログラム動作状態変更命令601内の状態報告番号と、記憶された状態報告番号とが互いに等しくないときは、動作状態変更命令実行ステップD13を中止するので、発明1と6の効果に加えて、以下のような、不都合が発生する可能性を下げる効果、つまり、サービスゲートウェイの起動などに伴う状態報告番号の初期化により、等しくない動作状態の状態報告番号が等しくなってしまい、その場合の動作状態変更命令実行ステップD13により理想的な動作状態にできないという不都合が発生する可能性を下げる効果が得られる。
なお、SGW1や管理システム2をコンピュータにより実現するためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納し、陳列などして流通させたり、当該コンピュータプログラムをインターネットなどの通信網を介して伝送させてもよい。