(57)【特許請求の範囲】
【請求項１】
通信網で管理システムに接続されたサービスゲートウェイから機器を遠隔制御するための前記サービスゲートウェイにおける各プログラムの動作状態を制御するプログラム動作状態制御方法であって、
前記管理システムが、インターネットに接続可能なコンピュータに搭載されたＷｅｂブラウザからの当該インターネットを介してのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定ステップと、
前記管理システムが、前記Ｗｅｂブラウザから依頼により、前記特定されたユーザに対し予め識別情報を介して対応づけられた前記サービスゲートウェイに依頼を行う依頼ステップと、
前記サービスゲートウェイが、前記依頼ステップの依頼により、当該サービスゲートウェイで動作しているプログラムのリストを作成し、当該リストを含むプログラム動作状態報告を前記管理システムに送信するプログラム動作状態報告ステップと、
前記管理システムが、前記送信されたプログラム動作状態報告を受信するプログラム動作状態報告受信ステップと、
前記管理システムが、前記プログラム動作状態報告が送信された場合に作成したまたは予め作成した前記サービスゲートウェイにおいて動作すべきプログラムのリストと当該プログラム動作状態報告内のプログラムのリストとが一致しない場合において、当該リスト同士を一致させるためのプログラムのインストール、更新、起動、停止、アンインストールの中の１以上の処理命令を含むプログラム動作状態変更命令を作成し、前記サービスゲートウェイに送信する動作状態変更命令作成送信ステップと、
前記サービスゲートウェイが、前記送信されたプログラム動作状態変更命令内の処理命令を実行する動作状態変更命令実行ステップと
を備えることを特徴とするプログラム動作状態制御方法。
【請求項２】
前記管理システムが、前記Ｗｅｂブラウザから前記依頼により、前記動作状態変更命令実行ステップの要否を、前記サービスゲートウェイにおいて動作しているプログラムのリストと予め作成された前記サービスゲートウェイにおいて動作すべきプログラムのリストとが一致するか否かにより判定し、当該判定により得た前記動作状態変更命令実行ステップの要否を、前記Ｗｅｂブラウザを制御して表示させるステップを備え、
前記動作状態変更命令実行ステップの要否を表示させたことにより行われる前記Ｗｅｂブラウザからの依頼により、前記依頼ステップ以降の各ステップを行う
ことを特徴とする請求項１記載のプログラム動作状態制御方法。
【請求項３】
前記管理システムが、前記Ｗｅｂブラウザから前記依頼により、前記予め作成した前記サービスゲートウェイにおいて動作すべきプログラムのリストと予め当該サービスゲートウェイから送信されたプログラム動作状態報告内のプログラムのリストとの比較結果に基づいて、前記サービスゲートウェイにおいて変更が必要なプログラムのリストを含む変更処理影響情報を作成し、前記Ｗｅｂブラウザを制御して表示させるステップを備え、
当該変更処理影響情報を表示させたことにより行われる前記Ｗｅｂブラウザからの依頼により、前記依頼ステップ以降の各ステップを行う
ことを特徴とする請求項１記載のプログラム動作状態制御方法。
【請求項４】
通信網で管理システムに接続されたサービスゲートウェイから機器を遠隔制御するための前記サービスゲートウェイにおける各プログラムの動作状態を制御するプログラム動作状態制御システムであって、
前記管理システムが、
インターネットに接続可能なコンピュータに搭載されたＷｅｂブラウザからの当該インターネットを介してのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定手段と、
前記Ｗｅｂブラウザから依頼により、前記特定されたユーザに対し予め識別情報を介して対応づけられた前記サービスゲートウェイに依頼を行う依頼手段と、
前記サービスゲートウェイから送信されるプログラム動作状態報告を受信するプログラム動作状態報告受信手段と、
前記プログラム動作状態報告が送信された場合に作成したまたは予め作成した前記サービスゲートウェイにおいて動作すべきプログラムのリストと当該プログラム動作状態報告内のプログラムのリストとが一致しない場合において、当該リスト同士を一致させるためのプログラムのインストール、更新、起動、停止、アンインストールの中の１以上の処理命令を含むプログラム動作状態変更命令を作成し、前記サービスゲートウェイに送信する動作状態変更命令作成送信手段とを備え、
前記サービスゲートウェイが、
前記依頼手段による依頼により、当該サービスゲートウェイで動作しているプログラムのリストを作成し、当該リストを含むプログラム動作状態報告を前記管理システムに送信するプログラム動作状態報告手段と、
前記送信されたプログラム動作状態変更命令内の処理命令を実行する動作状態変更命令実行手段と
を備えることを特徴とするプログラム動作状態制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
通信網で管理システムに接続されたサービスゲートウェイから機器を遠隔制御するためのサービスゲートウェイにおける各プログラムの動作状態を制御するプログラム動作状態制御方法およびプログラム動作状態制御システムに関する。
【背景技術】
【０００２】
通信網を介したプログラム配信の方法として、端末装置用のプログラムを端末装置に送信する方法が、下記の特許文献１に記載されている。
【０００３】
この方法では、図４２に示すように、端末装置１Ａ用のプログラムファイル（ここではプログラムという）を蓄積したセンタ装置２Ａは、プログラムが変更されると、端末装置１Ａにプログラム変更通知を送信し（Ｅ１）、それにより端末装置１Ａはセンタ装置２Ａにプログラム配信要求を送信し（Ｅ３）、それによりセンタ装置２は、変更されたプログラムを端末装置１Ａに送信する（Ｅ５）。また、端末装置１Ａからセンタ装置２Ａへのアクセスにより、ステップＥ１以降がなされ、これにより、端末装置１Ａの生存確認を行うことなく、プログラム配信ができる。また、センタ装置２がプログラム配信状況を記憶することで、プログラムを配信していない端末装置１Ａだけに配信することができる。
【特許文献１】特開平８−６３３６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、近年では、図１に示すコンピュータシステム、つまり、一般のユーザ宅にホームネットワークを構築し、そのホームネットワークを介して家電機器や設備機器などの機器３（図では、ＨＤＤレコーダ、ドアロック）を制御するというサービスを提供するコンピュータシステムが考えられている。そのために、サービスゲートウェイと称される制御装置１（以下、ＳＧＷ１）がユーザ宅に設置され、そのＳＧＷ１上で動作する機器制御プログラムにより機器３が制御される。
【０００５】
図１のシステムでは、ＳＧＷ１をユーザに提供する事業者等により管理システム２が配備され、ここでは、ＳＧＷ１で動作すべきプログラムのプログラムファイルが管理される。また、管理システム２は、ユーザがどのＳＧＷ１を使用しているかを示す情報、ユーザがどのサービスを契約しているかを示すユーザ契約サービス情報、サービスがどのプログラムファイルを必要とするかを示すサービス構成プログラム情報といったものを管理する。
【０００６】
さて、図１のシステムに従来の方法を適用した場合、管理システム２においてプログラムファイルが変更されたときに、その変更後のプログラムファイルがＳＧＷ１に送信される。よって、ユーザは、そのプログラムファイルでＳＧＷ１のプログラムを更新することができる。
【０００７】
しかし、図１のシステムでは、プログラムの自動更新が必要とされており、従来の方法では、これが行えない。つまり、従来の方法では、プログラムファイルの送信までを行うので、プログラムの更新はユーザが行わなければならない。
【０００８】
そこで、従来の方法を拡張し、プログラムの更新をＳＧＷ１が行うようにした場合であっても、以下のことが行えない。
【０００９】
まず、図１のシステムで必要とされる、プログラムの自動インストールや自動アンインストールが行えない。
【００１０】
例えば、ユーザが新たなサービスを契約すると、ユーザ契約サービス情報が変更される。そして、そのサービスを提供するためのプログラムがＳＧＷ１にない場合は、それをＳＧＷ１に送信し、それによりＳＧＷ１がプログラムをインストール、つまり、プログラムとして動作可能な状態にしなければならない。
【００１１】
逆に、ユーザがサービスを解約した場合であっても、ユーザ契約サービス情報が変更される。それにより、ＳＧＷ１がプログラムをアンインストール、つまり、プログラムとして動作不可能な状態にしなければならない。
【００１２】
また、図１のシステムでは、あるサービスを提供するために新たなプログラムが必要となったり、あるプログラムが不要になったり、あるプログラムが変更になったりすると、サービス構成プログラム情報が変更され、この場合にも、自動インストール、自動アンインストール、自動更新が必要となる。
【００１３】
また、図１のシステムでは、停止したプログラムを起動させる必要があり、従来の方法ではこれが行えない。
【００１４】
例えば、図１のシステムでは、ＳＧＷ１と機器３との接続が絶たれ、それにより、その機器３を制御するＳＧＷ１上のプログラムが停止する場合がある。そして、再び接続されたとしても、そのプログラムは停止したままになることがある。
【００１５】
また、多大な開発コストをかけられないプログラムは、不意に停止することがあり、本来ならば、プログラムを修正すべきだが、とりあえず、起動させたい場合がある。
【００１６】
つまり、一度動作したプログラムが、必ず動作を継続している保証はなく、管理システム２とは無関係に停止する可能性があるので、停止したプログラムを起動させることが必要になる。
【００１７】
逆に、図１のシステムでは、動作中のプログラムを停止させることが必要な場合がある。
【００１８】
例えば、プログラムの更新やアンインストールに停止が必要となるのは勿論だが、例えば、あるプログラムＡが動作するには他のプログラムＢが動作していることが必要とすると、プログラムＢを更新する場合には、プログラムＡを一旦停止させなければならない。つまり、停止させないと、プログラムＢが更新に伴って停止した際に、プログラムＡが正常動作せず、エラーが発生する可能性が生じてしまう。
【００１９】
したがって、図１のシステムでは、プログラムファイルの送信のみならず、インストール、更新、起動、停止、アンインストールというような、プログラムの動作状態の制御が必要なのである。
【００２０】
また、図１のシステムでは、あるユーザが契約しているサービスを、他のユーザが契約していない場合があり、この場合、契約しているユーザ宅にあるＳＧＷ１上プログラムを動作状態の制御対象にする必要があるが、図１のシステムに従来の方法を単純に適用すると、契約していないユーザ宅にあるＳＧＷ１上のプログラムまでもが動作状態の制御対象になってしまう。
【００２１】
また、ＳＧＷ１と管理システム２の間は、高い信頼性を有する専用線など回線でなく、ＡＤＳＬ（Asymmetric Digital Subscriber Line）や無線などの不安定な回線で接続されることが想定され、この場合、ＳＧＷ１と管理システム２の間でやりとりすべき情報が紛失し、プログラムの動作状態の制御が行えない可能性があるが、従来の方法では、これを解決できない。
【００２２】
本発明は、上記従来の課題に鑑みなされたものであり、通信網で管理システムに接続されたサービスゲートウェイから機器を遠隔制御するためのサービスゲートウェイにおける各プログラムの動作状態を制御するプログラム動作状態制御方法およびプログラム動作状態制御システムを提供することにある。
【課題を解決するための手段】
【００２３】
上記の課題を解決するために、本発明に係るプログラム動作状態制御方法は、通信網で管理システムに接続されたサービスゲートウェイから機器を遠隔制御するための前記サービスゲートウェイにおける各プログラムの動作状態を制御するプログラム動作状態制御方法であって、前記管理システムが、インターネットに接続可能なコンピュータに搭載されたＷｅｂブラウザからの当該インターネットを介してのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定ステップと、前記管理システムが、前記Ｗｅｂブラウザから依頼により、前記特定されたユーザに対し予め識別情報を介して対応づけられた前記サービスゲートウェイに依頼を行う依頼ステップと、前記サービスゲートウェイが、前記依頼ステップの依頼により、当該サービスゲートウェイで動作しているプログラムのリストを作成し、当該リストを含むプログラム動作状態報告を前記管理システムに送信するプログラム動作状態報告ステップと、前記管理システムが、前記送信されたプログラム動作状態報告を受信するプログラム動作状態報告受信ステップと、前記管理システムが、前記プログラム動作状態報告が送信された場合に作成したまたは予め作成した前記サービスゲートウェイにおいて動作すべきプログラムのリストと当該プログラム動作状態報告内のプログラムのリストとが一致しない場合において、当該リスト同士を一致させるためのプログラムのインストール、更新、起動、停止、アンインストールの中の１以上の処理命令を含むプログラム動作状態変更命令を作成し、前記サービスゲートウェイに送信する動作状態変更命令作成送信ステップと、前記サービスゲートウェイが、前記送信されたプログラム動作状態変更命令内の処理命令を実行する動作状態変更命令実行ステップとを備える。
【００２４】
また、本発明に係るプログラム動作状態制御システムは、通信網で管理システムに接続されたサービスゲートウェイから機器を遠隔制御するための前記サービスゲートウェイにおける各プログラムの動作状態を制御するプログラム動作状態制御システムであって、前記管理システムが、インターネットに接続可能なコンピュータに搭載されたＷｅｂブラウザからの当該インターネットを介してのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定手段と、前記Ｗｅｂブラウザから依頼により、前記特定されたユーザに対し予め識別情報を介して対応づけられた前記サービスゲートウェイに依頼を行う依頼手段と、前記サービスゲートウェイから送信されるプログラム動作状態報告を受信するプログラム動作状態報告受信手段と、前記プログラム動作状態報告が送信された場合に作成したまたは予め作成した前記サービスゲートウェイにおいて動作すべきプログラムのリストと当該プログラム動作状態報告内のプログラムのリストとが一致しない場合において、当該リスト同士を一致させるためのプログラムのインストール、更新、起動、停止、アンインストールの中の１以上の処理命令を含むプログラム動作状態変更命令を作成し、前記サービスゲートウェイに送信する動作状態変更命令作成送信手段と備え、前記サービスゲートウェイが、前記依頼手段による依頼により、当該サービスゲートウェイで動作しているプログラムのリストを作成し、当該リストを含むプログラム動作状態報告を前記管理システムに送信するプログラム動作状態報告手段と、前記送信されたプログラム動作状態変更命令内の処理命令を実行する動作状態変更命令実行手段とを備える。
【００２５】
したがって、本発明によれば、プログラムの更新のみならず、インストール、起動、停止、アンインストールを行うことができる。
【００２６】
また、本発明では、動作状態変更命令作成送信ステップで、インストール、更新の処理命令に、そのために必要なプログラムファイルを添付し、動作状態変更命令実行ステップでは、インストール、更新の処理命令に添付されたプログラムファイルを用いることで、プログラムのインストール、更新を行うことができる。
【００２７】
また、本発明では、動作状態変更命令作成送信ステップで、インストール、更新の処理命令に、そのために必要なプログラムファイルの場所を示す情報を添付し、動作状態変更命令実行ステップでは、インストール、更新の処理命令に添付された情報の場所からプログラムファイルを取得し用いることで、プログラムのインストール、更新を行うことができる。
【００２８】
また、本発明では、サービスゲートウェイが、自身の起動により、プログラム動作状態報告ステップを行うことで、ユーザがサービスゲートウェイを起動すれば、各プログラムを理想的な動作状態にすることができる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、Ｗｅｂブラウザなどを用いて、いわゆるポータルサイトにアクセスするなどが不要になる。また、ユーザの明示的行動によるので、更新などの際のプログラムの一時停止がユーザの意図に反して起きるのを防止することができる。
【００２９】
また、本発明では、サービスゲートウェイが、自身の起動によるプログラム動作状態報告ステップに先立ち、各プログラムの起動を抑制することで、更新、アンインストールされるプログラムが起動してしまうのを防ぐことができる。
【００３０】
また、本発明では、サービスゲートウェイが、自身への操作を検出する操作検出ステップを備え、それにより、サービスゲートウェイが、プログラム動作状態報告ステップを行うことで、ユーザがサービスゲートウェイを操作すれば、各プログラムを理想的な動作状態にすることができる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、ユーザの明示的行動によるので、プログラムがユーザの意図に反して一時停止するのを防止することができる。また、サービスゲートウェイの起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。
【００３１】
また、本発明では、機器が、自身への操作を検出する操作検出ステップと、機器が、サービスゲートウェイに操作通知を行う操作通知ステップとを備え、それにより、サービスゲートウェイが、プログラム動作状態報告ステップを行うので、ユーザが機器を操作すれば、各プログラムを理想的な動作状態にすることができる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、ユーザの明示的行動によるので、プログラムがユーザの意図に反して一時停止するのを防止することができる。また、サービスゲートウェイの起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。
【００３２】
また、本発明では、管理システムが、Ｗｅｂブラウザからのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定ステップと、管理システムが、動作状態変更命令作成送信ステップの依頼をＷｅｂブラウザから受け付ける動作状態変更処理依頼受付ステップと、管理システムが、特定されたユーザに使用されるサービスゲートウェイにプログラム動作状態報告ステップを依頼するプログラム動作状態報告依頼ステップとを備え、それにより、特定されたユーザに使用されるサービスゲートウェイが、プログラム動作状態報告ステップを行うことで、ユーザが動作状態変更命令作成送信ステップの依頼の操作を行えば、各プログラムを理想的な動作状態にすることができる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。
【００３３】
また、ユーザの明示的行動によるので、プログラムがユーザの意図に反して一時停止するのを防止することができる。また、サービスゲートウェイの起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。また、Ｗｅｂブラウザによるので、外出先から、各プログラムを理想的な動作状態にすることができる。
【００３４】
例えば、本発明に係るプログラム動作状態制御方法は、前記管理システムが、前記Ｗｅｂブラウザから前記依頼により、前記動作状態変更命令実行ステップの要否を、前記サービスゲートウェイにおいて動作しているプログラムのリストと予め作成された前記サービスゲートウェイにおいて動作すべきプログラムのリストとが一致するか否かにより判定し、当該判定により得た前記動作状態変更命令実行ステップの要否を、前記Ｗｅｂブラウザを制御して表示させるステップを備え、前記動作状態変更命令実行ステップの要否を表示させたことにより行われる前記Ｗｅｂブラウザからの依頼により、前記依頼ステップ以降の各ステップを行う。
【００３５】
また、ユーザの明示的行動によるので、プログラムがユーザの意図に反して一時停止するのを防止することができる。また、サービスゲートウェイの起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。また、Ｗｅｂブラウザによるので、外出先から、各プログラムを理想的な動作状態にすることができる。
【００３６】
例えば、本発明に係るプログラム動作状態制御方法は、前記管理システムが、前記Ｗｅｂブラウザから前記依頼により、前記予め作成した前記サービスゲートウェイにおいて動作すべきプログラムのリストと予め当該サービスゲートウェイから送信されたプログラム動作状態報告内のプログラムのリストとの比較結果に基づいて、前記サービスゲートウェイにおいて変更が必要なプログラムのリストを含む変更処理影響情報を作成し、前記Ｗｅｂブラウザを制御して表示させるステップを備え、当該変更処理影響情報を表示させたことにより行われる前記Ｗｅｂブラウザからの依頼により、前記依頼ステップ以降の各ステップを行う。
【００３７】
また、ユーザの明示的行動によるので、プログラムがユーザの意図に反して一時停止するのを防止することができる。また、サービスゲートウェイの起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。また、Ｗｅｂブラウザによるので、外出先から、各プログラムを理想的な動作状態にすることができる。
【００３８】
また、本発明では、プログラム動作状態報告ステップは、サービスゲートウェイが、予め記憶された状態報告番号を読み出し単調増加させ、それを含むプログラム動作状態報告を管理システムに送信するとともに、予め記憶された状態報告番号を単調増加後の状態報告番号で更新し、動作状態変更命令作成送信ステップでは、管理システムが、作成されるプログラム動作状態変更命令に対応するプログラム動作状態報告に含まれた状態報告番号をプログラム動作状態変更命令に含ませてサービスゲートウェイに送信し、サービスゲートウェイは、送信されたプログラム動作状態変更命令内の状態報告番号と、更新された状態報告番号とが互いに等しくないときは、動作状態変更命令実行ステップを中止することで、サービスゲートウェイでの負荷軽減が図れる。
【００３９】
また、仮に、状態報告番号が互いに等しくない場合の動作状態変更命令実行ステップが中止されずに行われたとすると、状態報告番号が互いに等しい場合の動作状態変更命令実行ステップをもってしても理想的な動作状態にできないという不都合が生じるが、状態報告番号が互いに等しくない場合の動作状態変更命令実行ステップを中止することで、この不都合を防止することができる。
【００４０】
また、本発明では、プログラム動作状態報告ステップで、サービスゲートウェイが、ランダムな状態報告番号を含むプログラム動作状態報告を管理システムに送信するとともに当該状態報告番号を記憶し、動作状態変更命令作成送信ステップでは、管理システムが、作成されるプログラム動作状態変更命令に対応するプログラム動作状態報告に含まれた状態報告番号をプログラム動作状態変更命令に含ませてサービスゲートウェイに送信し、サービスゲートウェイは、送信されたプログラム動作状態変更命令内の状態報告番号と、記憶した状態報告番号とが互いに等しくないときは、動作状態変更命令実行ステップを中止することで、サービスゲートウェイでの負荷軽減が図れる。
【００４１】
また、仮に、状態報告番号が互いに等しくない場合の動作状態変更命令実行ステップが中止されずに行われたとすると、状態報告番号が互いに等しい場合の動作状態変更命令実行ステップをもってしても理想的な動作状態にできないという不都合が生じるが、状態報告番号が互いに等しくない場合の動作状態変更命令実行ステップを中止することで、この不都合を防止することができる。
【００４２】
また、仮に、ランダムな状態報告番号にしない場合、サービスゲートウェイの起動などに伴う状態報告番号の初期化により、等しくない動作状態の状態報告番号が等しくなってしまい、その場合の動作状態変更命令実行ステップにより理想的な動作状態にできないという不都合が発生するが、ランダムな状態報告番号にすることで、この可能性を下げることができる。
【発明の効果】
【００４３】
本発明によれば、管理システムが、サービスゲートウェイでの理想的な各プログラムの動作状態を示すプログラム理想動作状態リストを作成し、サービスゲートウェイが、自身での各プログラムの動作状態を示すプログラム動作状態リストを作成し、それを含むプログラム動作状態報告を管理システムに送信し、管理システムが、プログラム動作状態報告内のプログラム動作状態リストと、プログラム理想動作状態リストとを比較し、プログラムのインストール、更新、起動、停止、アンインストールの中の１以上の処理命令を含み、かつ、プログラム動作状態リストが示す動作状態を、プログラム理想動作状態リストが示す動作状態に変更するためのプログラム動作状態変更命令を作成し、サービスゲートウェイに送信し、サービスゲートウェイが、プログラム動作状態変更命令内の処理命令を実行するので、プログラムの更新のみならず、インストール、起動、停止、アンインストールを行うことができる。
【００４４】
また、プログラムの動作状態の制御を、ユーザの明示的行動により行うことで、更新などの際のプログラムの一時停止がユーザの意図に反して起きるのを防止することができる。
【００４５】
また、サービスゲートウェイが、自身の起動によるプログラム動作状態リストの作成に先立ち、各プログラムの起動を抑制することで、更新、アンインストールされるプログラムが起動してしまうのを防ぐことができる。
【００４６】
また、プログラムの動作状態の制御を、サービスゲートウェイや機器への操作やＷｅｂブラウザからのアクセスにより行うことで、サービスゲートウェイにおける制御対象以外のプログラムの停止を防止することができる。
【００４７】
また、プログラムの動作状態の制御を、Ｗｅｂブラウザからのアクセスにより行うことで、外出先から、各プログラムを理想的な動作状態にすることができる。
【００４８】
また、サービスゲートウェイが、状態報告番号を単調増加させ、それを含むプログラム動作状態報告を管理システムに送信するとともに、増加前の状態報告番号を増加後の状態報告番号で更新し、管理システムが、プログラム動作状態報告に含まれた状態報告番号をプログラム動作状態変更命令に含ませてサービスゲートウェイに送信し、サービスゲートウェイは、送信されたプログラム動作状態変更命令内の状態報告番号と、更新された状態報告番号とが互いに等しくないときは、動作状態変更命令実行ステップを中止することで、あるいは、サービスゲートウェイが、ランダムな状態報告番号を含むプログラム動作状態報告を管理システムに送信するとともに当該状態報告番号を記憶し、管理システムが、プログラム動作状態報告に含まれた状態報告番号をプログラム動作状態変更命令に含ませてサービスゲートウェイに送信し、サービスゲートウェイは、送信されたプログラム動作状態変更命令内の状態報告番号と、記憶された状態報告番号とが互いに等しくないときは、動作状態変更命令実行ステップを中止することで、サービスゲートウェイでの負荷軽減が図れ、しかも、理想的な動作状態にできないという不都合を防止できる。
【００４９】
また、仮にランダムな状態報告番号にしないと、状態報告番号の初期化により、理想的な動作状態にできない場合があるが、ランダムな状態報告番号にすることで、この可能性を下げることができる。
【発明を実施するための最良の形態】
【００５０】
以下、本発明のプログラム動作状態制御方法およびプログラム動作状態制御システムの実施例を説明する。実施例にかかる主たる発明は発明１であり、その下位概念の発明として発明２、３、４、５および６がある。発明１〜６には、さらに下位概念または類似概念の発明があり、発明１−１のように枝番号を付して、それらを区別する。また、同一または類似の機能を有する構成要素同士の符号を等しくし、重複説明を省略する。
【００５１】
［発明１−１］
発明１は、発明１−１と発明１−２に分類される。まず、発明１−１を説明する。
【００５２】
図１は、発明１−１の全体図を示す。
【００５３】
各ユーザ宅に配置されたサービスゲートウェイと称される装置（以下、ＳＧＷ）１は、インターネットなどの通信網を介してサービスを管理する管理システム２に接続される。また、ＳＧＷ１は、各種ホームネットワークを介して、各種家電機器やＡＶ機器などの機器３（図では、ＨＤＤレコーダ、ドアロック）に接続される。以下、１つのＳＧＷ１（単にＳＧＷ１という）と管理システム２での処理を説明することとなるが、他のＳＧＷ１と管理システム２でも同様に行われる。
【００５４】
図２は、ＳＧＷ１の機能ブロックを示す。
【００５５】
ＳＧＷ１は、管理システム送受信機能部１１、プログラム状態制御機能部１２、プログラム動作状態収集機能部１３を備える。管理システム送受信機能部１１は、管理システム２と情報の送受信を行い、管理システム２から受信したプログラム動作状態変更命令６０１をプログラム状態制御機能部１２に渡す機能を有する。
【００５６】
プログラム動作状態変更命令６０１には、以下のような、機器３を制御するための機器制御プログラム（略す場合は、単にプログラムという）に関する動作制御の命令が含まれる。つまり、プログラム動作状態変更命令６０１に添付されたプログラムファイルを用いてＳＧＷ１にプログラムを新たにインストールする処理命令、ＳＧＷ１にインストール済みプログラムをプログラム動作状態変更命令６０１に添付されたプログラムファイルを用いたプログラムに更新（バージョンアップなど）する処理命令、インストール済みのプログラムを起動、停止、アンインストールする処理命令などである。このようなインストール、更新、起動、停止、アンインストールなどのことをプログラムの動作状態の制御という。
【００５７】
プログラム状態制御機能部１２は、管理システム送受信機能部１１から渡されるプログラム動作状態変更命令６０１に含まれる各処理命令を実行する機能を有する。プログラム動作状態収集機能部１３は、インストール済みのプログラムに関する動作状態の情報を収集し、管理システム送受信機能部１１に渡す機能を有する。管理システム送受信機能部１１は、その情報により作成された動作状態変更命令実行報告７０１を管理システム２に送信する機能を有する。
【００５８】
図３は、ＳＧＷ１の具体的な機能ブロックを示す。
【００５９】
ＳＧＷ１では、プログラムの実行環境を提供し、その実行状態を管理・制御するプログラム実行環境提供部１０１により、ＳＧＷ動作管理プログラム１０２や各種家電機器やＡＶ機器などの機器３を制御するための機器制御プログラム（図では、ＨＤＤレコーダ制御プログラム、ドアロック制御プログラム）１０３が動作する。これら機器制御プログラム１０３は、ホームネットワーク用のネットワーク通信インターフェイス（以下、インターフェイスをＩＦと略す）１０４を介した通信により機器３を制御する機能を有する。
【００６０】
プログラム実行環境提供部１０１は、ＳＧＷ動作管理プログラム１０２から、実行環境上でインストールされているプログラムの動作状態の情報を収集する依頼を受け付け、収集した情報をＳＧＷ動作管理プログラム１０２に渡す機能を有する。また、プログラム実行環境提供部１０１は、ＳＧＷ動作管理プログラム１０２から、指定されたプログラムファイルを用いて、プログラム実行環境提供部１０１の上で動作するプログラムをインストールや更新する依頼、インストール済みのプログラムを起動、停止、アンインストールする依頼などを受け付け、その依頼を実行する機能を有する。つまり、プログラムの動作状態を制御する機能を有する。
【００６１】
また、ＳＧＷ動作管理プログラム１０２は、ネットワーク通信ＩＦ１０４を介して管理システム２と通信し、管理システム２との情報伝達を行う機能を有する。
【００６２】
ＳＧＷ１のプログラム実行環境提供部１０１の例としては、ＯＳＧｉフレームワークが考えられる。この場合、ＳＧＷ動作管理プログラム１０２やその他プログラムは同一プロセス上でＯＳＧｉの用語でバンドルと呼ばれる単位で実行されることになるが、ＳＧＷ動作管理プログラム１０２はＯＳＧｉフレームワークに対して、指定されたプログラムファイルによる新規のプログラムインストールや、指定されたプログラムファイルによるインストール済みのプログラムの更新や、起動中のプログラムの停止や、停止中のプログラムの起動や、ＯＳＧｉフレームワーク上からのアンインストールが可能である。
【００６３】
なお、ここではプログラム実行環境提供部１０１とＳＧＷ動作管理プログラム１０２の組み合わせの例として、ＯＳＧｉフレームワークとバンドルを挙げたが、本発明はこれに限定されない。つまり、プログラム実行環境提供部１０１とＳＧＷ動作管理プログラム１０２により、管理システム送受信機能部１１、プログラム状態制御機能部１２、プログラム動作状態収集機能部１３が実現されればよい。
【００６４】
図４は、管理システム２の機能ブロックを示す。
【００６５】
管理システム２は、管理システム２のオペレーションに関する各種情報を蓄積するオペレーション情報蓄積データベース２１（以下、ＯＰ情報ＤＢ２１）、ＳＧＷ１で動作すべきプログラムのリストであるプログラム理想動作状態リストＬＩ（：List Ideal）を作成する理想動作状態導出機能部２２、動作状態変更命令実行報告７０１を作成する動作変更命令作成機能部２３、通信網との間のネットワーク通信ＩＦ２４、プログラムファイルが蓄積された配信プログラムファイル蓄積サーバ２５を備える。
【００６６】
図５は、ＯＰ情報ＤＢ２１が備えるユーザ利用ＳＧＷ情報２１１を示す。
【００６７】
ＯＰ情報ＤＢ２１は、ユーザＩＤと、そのユーザＩＤのユーザが使用するＳＧＷ１を示すＳＧＷＩＤとからなるレコードを蓄積したユーザ利用ＳＧＷ情報２１１を備える。レコードはエントリともいう。
【００６８】
図６は、ＯＰ情報ＤＢ２１が備えるユーザ契約サービス情報２１２を示す。
【００６９】
ＯＰ情報ＤＢ２１は、ユーザＩＤと、契約サービスＩＤリスト（そのユーザＩＤのユーザが契約しているサービスを示す契約サービスＩＤのリスト）とからなるレコードを蓄積したユーザ契約サービス情報２１２を備える。
【００７０】
図７は、ＯＰ情報ＤＢ２１が備えるサービス構成プログラム情報２１３を示す。
【００７１】
ＯＰ情報ＤＢ２１は、契約サービスＩＤと、構成プログラムＩＤリスト（その契約サービスＩＤのサービスを契約したユーザの使用するＳＧＷ１で動作させる必要があるプログラムのプログラムＩＤでありかつ管理システム２で有効なプログラムＩＤのリスト）とからなるレコードを蓄積したサービス構成プログラム情報２１３を備える。
【００７２】
図８は、ＯＰ情報ＤＢ２１が備えるプログラム情報２１４を示す。
【００７３】
ＯＰ情報ＤＢ２１は、管理システム２で有効なプログラムＩＤと、ＳＧＷ１で有効なプログラムＩＤと、そのバージョンとからなるレコードを蓄積したプログラム情報２１４を備える。
【００７４】
以下、管理システム２で有効なプログラムＩＤを単にプログラムＩＤ、ＳＧＷ１で有効なプログラムＩＤをＳＧＷ上プログラムＩＤという。
【００７５】
ＳＧＷ上プログラムＩＤは、プログラム固有のＩＤであり、プログラム更新（バージョンアップ）により変化しない。よって、ＳＧＷ上プログラムＩＤにより、ＳＧＷ１間で一意にプログラムを特定できる。そして、ＳＧＷ上プログラムＩＤとバージョンとを組み合わせることにより、プログラムファイルが特定され、そのプログラムファイルに対して１つのプログラムＩＤが割り当てられる。
【００７６】
例えば、プログラムＩＤ「ｐ３０１」、ＳＧＷ上プログラムＩＤ「ｇｐ３０２」、バージョン「１．１」のレコードをプログラム情報２１４に既に備え、ここで新しいバージョン１．２のプログラムファイルが用意された場合には、元のレコードはそのままで、新たにプログラムＩＤ「ｐ３０２」、ＳＧＷ上プログラムＩＤ「ｇｐ３０２」、バージョン「１．２」のレコードがプログラム情報２１４に作られる。
【００７７】
また、管理システム２における配信プログラムファイル蓄積サーバ２５は、各プログラムＩＤが割り当てられたプログラムファイルを備え、指定されたプログラムＩＤのプログラムファイルを返す機能を有する。配信プログラムファイル蓄積サーバ２５は、いわゆるデータベースサーバであってもよい。
【００７８】
なお、管理システム２におけるＯＰ情報ＤＢ２１や配信プログラムファイル蓄積サーバ２５は、単一のコンピュータで構成してもよいし、複数のコンピュータで構成してもよい。また、ＯＰ情報ＤＢ２１と配信プログラムファイル蓄積サーバ２５を同一のコンピュータで構成してもよい。
【００７９】
図９、図１０は、処理シーケンスの一例を示す。図１１および図１２は、それぞれ図９と図１０に対応する管理システム２での処理フローを示す。
【００８０】
まず、図９、図１０に示すように、ＳＧＷ１は、ＳＧＷ１におけるプログラムの動作状態の情報を収集するとともに、その収集した情報を用いてプログラム動作状態リストＬＳＧ（：List ＳＧｗ）つまりＳＧＷ１にインストールされたプログラムの動作状態のリストを作成し（プログラム動作状態リスト作成ステップＤ１）、そのプログラム動作状態リストＬＳＧを含むプログラム動作状態報告５０１を管理システム２に送信する（プログラム動作状態報告送信ステップＤ３）。プログラム動作状態リストＬＳＧの作成方法は後述する。
【００８１】
管理システム２は、ＳＧＷ１からプログラム動作状態報告５０１を受信する（プログラム動作状態報告受信ステップＤ５）。
【００８２】
また、管理システム２は、ＯＰ情報ＤＢ２１の各種情報を用いて、ＳＧＷ１での理想的な各プログラムの動作状態を導出し、導出した各プログラムの動作状態を示すプログラム理想動作状態リストＬＩ、つまり、ＳＧＷ１を利用しているユーザが契約したサービスの提供の為にＳＧＷ１で動作すべきプログラムのリストであるプログラム理想動作状態リストＬＩを作成する（プログラム理想動作状態リスト作成ステップＤ７）。
【００８３】
管理システム２でプログラム理想動作状態リスト作成ステップＤ７が実行されるタイミングに応じて異なる形態を採用できる。
【００８４】
つまり、図９に示すように、プログラム動作状態報告受信ステップＤ５でプログラム動作状態報告５０１を受信してから、後述する動作状態変更命令送信ステップＤ１１を実行するまでの間のタイミングでプログラム理想動作状態リスト作成ステップＤ７を実行する形態や、図１０に示すように、ＯＰ情報ＤＢ２１の情報が更新されるタイミングで、その更新内容に関連する全てのＳＧＷ１についてプログラム理想動作状態リスト作成ステップＤ７を実行する形態を採用できる。
【００８５】
重要な点は、動作状態変更命令送信ステップＤ１１の前に、その時点において最新のＯＰ情報ＤＢ２１を基にプログラム理想動作状態リストＬＩを作成することである。具体的なプログラム理想動作状態リストＬＩの作成方法は後述する。
【００８６】
図９、図１０に示すように、管理システム２は、プログラム動作状態報告受信ステップＤ５で受信したプログラム動作状態報告５０１のプログラム動作状態リストＬＳＧを、プログラム理想動作状態リスト作成ステップＤ７で作成されたプログラム理想動作状態リストＬＩと比較し、プログラム動作状態リストＬＳＧの状態が、後述するプログラム動作状態変更命令６０１がＳＧＷ１で実行された後に、プログラム理想動作状態リストＬＩの状態となるようなプログラム動作状態変更命令６０１を作成し（動作状態変更命令作成ステップＤ９）、ＳＧＷ１に送信する（動作状態変更命令送信ステップＤ１１）。動作状態変更命令作成ステップＤ９と動作状態変更命令送信ステップＤ１１を合わせて、動作状態変更命令作成送信ステップという。なお、プログラム動作状態変更命令６０１の作成方法は後述する。
【００８７】
ＳＧＷ１は、動作状態変更命令送信ステップＤ１１で送信されたプログラム動作状態変更命令６０１を受信し、プログラム動作状態変更命令６０１内の各処理命令を実行する（動作状態変更命令実行ステップＤ１３）。
【００８８】
図９の場合の管理システム２では、図１１に示すように、ＳＧＷ１からプログラム動作状態報告５０１（プログラム動作状態リストＬＳＧ）を受信したならば（Ｄ５）、ＯＰ情報ＤＢ２１からプログラム理想動作状態リストＬＩを作成し（Ｄ７）、プログラム動作状態リストＬＳＧとプログラム理想動作状態リストＬＩを比較して、プログラム動作状態リストＬＳＧの状態をプログラム理想動作状態リストＬＩの状態にするためのプログラム動作状態変更命令６０１を作成し（Ｄ９）、作成したプログラム動作状態変更命令６０１をＳＧＷ１に送信する（Ｄ１１）。
【００８９】
一方、図１０の場合の管理システム２では、図１２に示すように、ＯＰ情報ＤＢ２１の更新時にＯＰ情報ＤＢ２１からプログラム理想動作状態リストＬＩを作成しておき、ＳＧＷ１からプログラム動作状態報告５０１（プログラム動作状態リストＬＳＧ）を受信したならば、プログラム動作状態リストＬＳＧと予め作成しておいたプログラム理想動作状態リストＬＩを比較して、プログラム動作状態リストＬＳＧの状態をプログラム理想動作状態リストＬＩの状態にするためのプログラム動作状態変更命令６０１を作成し（Ｄ９）、作成したプログラム動作状態変更命令６０１をＳＧＷ１に送信する（Ｄ１１）。
【００９０】
次に、ＳＧＷ１がプログラム動作状態リストＬＳＧを作成するときの方法の例を説明する。
【００９１】
ＳＧＷ動作管理プログラム１０２は、プログラム実行環境提供部１０１の機能を用いて、プログラム実行環境提供部１０１が管理しているインストール済みのプログラム（但し、ＳＧＷ動作管理プログラム１０２は除く）の、ＳＧＷ上プログラムＩＤ、バージョン、動作状態の情報を収集し、それぞれをプログラム動作状態リストＬＳＧ内に列挙する。動作状態の情報とは、「動作中」または「停止中」である。
【００９２】
次に、管理システム２がプログラム理想動作状態リストＬＩを作成するときの方法の例を説明する。
【００９３】
まず、ユーザ利用ＳＧＷ情報２１１から、ＳＧＷ１のＳＧＷＩＤに対応するユーザＩＤを読み出し、ユーザ契約サービス情報２１２から、そのユーザＩＤに対応する契約サービスＩＤリストを読み出す。次に、サービス構成プログラム情報２１３から、その契約サービスＩＤリスト内の各契約サービスＩＤにつき、対応する構成プログラムＩＤリストを読み出す。次に、プログラム情報２１４から、その構成プログラムＩＤリスト内の各プログラムＩＤにつき、対応するＳＧＷ上プログラムＩＤおよびバージョンの組を読み出す。この組を列挙したものをプログラム理想動作状態リストＬＩとする。
【００９４】
ここで、図１３の処理フローを参照して、プログラム動作状態変更命令６０１、つまり、それがＳＧＷ１で実行された後のプログラム動作状態が理想動作状態となるようなプログラム動作状態変更命令６０１の作成方法の例を説明する。
【００９５】
まず、プログラム動作状態リストＬＳＧ、プログラム理想動作状態リストＬＩにおいて、ＳＧＷ上プログラムＩＤをキーとして、ＳＧＷ上プログラムＩＤの和集合のプログラムリスト１０００を作成する（Ｓ１）。プログラムリスト１０００から要素（ＳＧＷ上プログラムＩＤ）を１つを選択し（Ｓ３、Ｓ５）、そのＳＧＷ上プログラムＩＤについて、以下のように、分類を行う。
【００９６】
そのＳＧＷ上プログラムＩＤがプログラム理想動作状態リストＬＩに含まれないなら（Ｓ７：ＮＯ）、「アンインストール」に分類する（Ｓ９）。そのＳＧＷ上プログラムＩＤがプログラム理想動作状態リストＬＩに含まれるなら次へ移り、そこでプログラム動作状態リストＬＳＧに含まれない（Ｓ１１：ＮＯ）と判断すれば、「インストール後起動」に分類する（Ｓ１３）。プログラム動作状態リストＬＳＧに含まれるなら次へ移り、そこでＳＧＷ上プログラムＩＤのプログラム理想動作状態リストＬＩでのバージョンとプログラム動作状態リストＬＳＧでのバージョンが同じ（Ｓ１５：ＹＥＳ）であり、しかも、そのＳＧＷ上プログラムＩＤについてプログラム動作状態リストＬＳＧの動作状態が「停止中」（Ｓ１７：ＮＯ）なら、「起動」に分類する（Ｓ１９）。一方、バージョンが異なる（Ｓ１５：ＮＯ）ならば次へ移り、そこでＳＧＷ上プログラムＩＤについてプログラム動作状態リストＬＳＧの動作状態が「動作中」（Ｓ２１：ＹＥＳ）と判断すれば、「更新」に分類し（Ｓ２３）、「停止中」ならば、「更新後、起動」に分類する（Ｓ２５）。
【００９７】
これをプログラムリスト１０００の全てのＳＧＷ上プログラムＩＤについて実行し（Ｓ３：ＮＯ）、分類された１つのＳＧＷ上プログラムＩＤとそれについての分類結果の組である処理命令を各ＳＧＷ上プログラムＩＤについて有する処理命令リスト２０００を作成する。
【００９８】
更に、「インストール」、「更新」の処理命令については、プログラム理想動作状態リストＬＩのＳＧＷ上プログラムＩＤおよびバージョンに該当するプログラムＩＤをプログラム情報２１４から読み出し、配信プログラムファイル蓄積サーバ２５から、そのプログラムＩＤのプログラムファイルを取得し、各処理命令に添付する。
【００９９】
動作状態変更命令実行ステップＤ１３においては、ＳＧＷ１が、受信したプログラム動作状態変更命令６０１の処理命令リスト２０００の各処理命令を実行する。
【０１００】
その際、「インストール」、「更新」の処理命令については、その処理命令に添付されたプログラムファイルをインストール及び更新する。その他の処理命令について、その処理命令に従った処理を行う。
【０１０１】
このように、管理システム２は、ＳＧＷ１から送信されるプログラム動作状態報告５０１のプログラム動作状態リストＬＳＧと、管理システム２のＯＰ情報ＤＢ２１から作成されるプログラム理想動作状態リストＬＩとを比較して、プログラム動作状態変更命令６０１、つまり、それがＳＧＷ１で実行された後のプログラム動作状態が理想動作状態となるようなプログラム動作状態変更命令６０１を作成し、それをＳＧＷ１に送信し、ＳＧＷ１が、そのプログラム動作状態変更命令６０１を実行することにより、以下のことが可能になる。
【０１０２】
まず、インストール済みプログラムの更新だけではなく、新規プログラムのインストールや起動、停止、アンインストール、更新などの動作状態制御も可能となる。
【０１０３】
また、ユーザが契約したサービスに応じて、各ＳＧＷ１に配信し動作させるプログラムを差別化することが可能となる。
【０１０４】
また、ＳＧＷ１でのプログラム動作状態が、管理システム２で導出された理想動作状態とが異なった場合、例えば、管理システム２からの処理命令により起動されたプログラムが、その後のＳＧＷ１での不具合で停止した場合、プログラム理想動作状態リストＬＩにはそのプログラムのＳＧＷ上プログラムＩＤおよびバージョンが含まれ、プログラム動作状態リストＬＳＧには、そのＳＧＷ上プログラムＩＤ、バージョンに加えて、「停止中」を示す動作状態が含まれる為、それらを比較して作成されたプログラム動作状態変更命令６０１には、そのプログラムを起動させる処理命令が含まれることになり、これにより、動作状態を修復することができる。
【０１０５】
なお、ここで説明したＯＰ情報ＤＢ２１の構成、プログラム理想動作状態リストＬＩやプログラム動作状態リストＬＳＧの作成方法、プログラム動作状態変更命令６０１の作成方法は、一例であり、本発明はこれに限定されるものではない。
【０１０６】
したがって、発明１−１のプログラム動作状態制御方法は、管理システム２が、自身に備わった情報（ＯＰ情報ＤＢ２１）を用いて、ＳＧＷ１での理想的な各プログラムの動作状態を導出し、導出した各プログラムの動作状態を示すプログラム理想動作状態リストＬＩを作成するプログラム理想動作状態リスト作成ステップＤ７と、ＳＧＷ１が、自身での各プログラムの動作状態を調べ、調べた各プログラムの動作状態を示すプログラム動作状態リストＬＳＧを作成し（Ｄ１）、それを含むプログラム動作状態報告５０１を管理システムに送信するプログラム動作状態報告ステップ（Ｄ１およびＤ３）と、管理システム２が、送信されたプログラム動作状態報告５０１を受信するプログラム動作状態報告受信ステップＤ５と、管理システム２が、送信されたプログラム動作状態報告５０１内のプログラム動作状態リストＬＳＧと、導出したプログラム理想動作状態リストＬＩとを比較し、プログラムのインストール、更新、起動、停止、アンインストールの中の１以上の処理命令を含み、かつ、プログラム動作状態リストＬＳＧが示す動作状態を、プログラム理想動作状態リストＬＩが示す動作状態に変更するためのプログラム動作状態変更命令６０１を作成し（Ｄ９）、ＳＧＷ１に送信する動作状態変更命令作成送信ステップ（Ｄ９およびＤ１１）と、ＳＧＷ１が、送信されたプログラム動作状態変更命令６０１内の処理命令を実行する動作状態変更命令実行ステップＤ１３とを備える。
【０１０７】
また、発明１−１のプログラム動作状態制御システムは、管理システム２が、自身に備わった情報（ＯＰ情報ＤＢ２１）を用いて、ＳＧＷ１での理想的な各プログラムの動作状態を導出し、導出した各プログラムの動作状態を示すプログラム理想動作状態リストＬＩを作成するプログラム理想動作状態リスト作成手段（Ｄ７）と、ＳＧＷ１から送信されたプログラム動作状態報告５０１を受信するプログラム動作状態報告受信手段（Ｄ５）と、ＳＧＷ１から送信されたプログラム動作状態報告５０１内のプログラム動作状態リストＬＳＧと、導出したプログラム理想動作状態リストＬＩとを比較し、プログラムのインストール、更新、起動、停止、アンインストールの中の１以上の処理命令を含み、かつ、プログラム動作状態リストＬＳＧが示す動作状態をプログラム理想動作状態リストＬＩが示す動作状態に変更するためのプログラム動作状態変更命令６０１を作成し（Ｄ９）、ＳＧＷ１に送信する動作状態変更命令作成送信手段（Ｄ９およびＤ１１）とを備え、ＳＧＷ１が、ＳＧＷ１での各プログラムの動作状態を調べ、調べた各プログラムの動作状態を示すプログラム動作状態リストＬＳＧを作成し、それを含むプログラム動作状態報告５０１を管理システムに送信するプログラム動作状態報告手段（Ｄ１およびＤ３）と、管理システム２から送信されたプログラム動作状態変更命令６０１内の処理命令を実行する動作状態変更命令実行手段（Ｄ１３）とを備える。
【０１０８】
したがって、発明１によれば、プログラムの更新のみならず、インストール、起動、停止、アンインストールを行うことができる。
【０１０９】
また、発明１−１によれば、動作状態変更命令作成送信ステップ（Ｄ７およびＤ９）では、インストール、更新の処理命令に、そのために必要なプログラムファイルを添付し、動作状態変更命令実行ステップＤ１３では、インストール、更新の処理命令に添付されたプログラムファイルを用いたので、プログラムのインストール、更新を行うことができる。
【０１１０】
［発明１−２］
次に、発明１−２を説明する。ここでは、発明１−１との差異を説明する。
【０１１１】
まず、第１の相違点は、図２において、ＳＧＷ１側の構成要素として示したプログラム状態制御機能部１２が、管理システム送受信機能部１１を介して管理システム２から受信する情報と、そのプログラム状態制御機能部１２の機能である。
【０１１２】
発明１−１では、プログラム状態制御機能部１２が管理システム送受信機能部１１から渡されるプログラム動作状態変更命令６０１には、「インストール」、「更新」の処理命令については、そのプログラムファイルが添付され、プログラム状態制御機能部１２は、そのプログラムファイルを用いてプログラムのインストールや更新を実行した。
【０１１３】
発明１−２では、プログラムファイルの代わりに、http://などで始まるＵＲＬ（Uniform Resource Locator)が添付されており、プログラム状態制御機能部１２は、そのＵＲＬの場所にアクセスして得られるプログラムファイルを用いてプログラムのインストールや更新を実行する。
【０１１４】
より具体的な実施の形態の例を以下に記す。
【０１１５】
図３と同様に、プログラム実行環境提供部１０１により、ＳＧＷ動作管理プログラム１０２や各種家電機器やＡＶ機器などの機器３を制御するための機器制御プログラム（ＨＤＤレコーダ制御プログラム、ドアロック制御プログラム）１０３が動作する。これら機器制御プログラム１０３は、ホームネットワーク用のネットワーク通信ＩＦ１０４を介した通信により機器３を制御する機能を有する。
【０１１６】
プログラム実行環境提供部１０１は、ＳＧＷ動作管理プログラム１０２から、実行環境上でインストールされているプログラムの動作状態の情報を収集する依頼を受け付け、収集した情報をＳＧＷ動作管理プログラム１０２に渡す機能を有する。また、プログラム実行環境提供部１０１は、ＳＧＷ動作管理プログラム１０２から指定されたＵＲＬの場所からダウンロードして得られるプログラムファイルを用いて、プログラム実行環境提供部１０１の上で動作するプログラムをインストールや更新する依頼、インストール済みプログラムを起動、停止、アンインストールする依頼などを受け付け、その依頼を実行する機能を有する。つまり、プログラムの動作状態を制御する機能を有する。
【０１１７】
また、ＳＧＷ動作管理プログラム１０２は、ネットワーク通信ＩＦ１０４を介して管理システム２と通信し、管理システム２との情報伝達を行う機能を有する。
【０１１８】
ＳＧＷ１のプログラム実行環境提供部１０１の例としては、ＯＳＧｉフレームワークが考えられる。この場合、ＳＧＷ動作管理プログラム１０２やその他プログラムは同一プロセス上でＯＳＧｉの用語でバンドルと呼ばれる単位で実行されることになるが、ＳＧＷ動作管理プログラム１０２はＯＳＧｉフレームワークに対して、指定されたＵＲＬの場所からダウンロードしたプログラムファイルによる新規のプログラムインストールや、指定されたＵＲＬの場所からダウンロードしたプログラムファイルによるインストール済みのプログラムの更新や、起動中のプログラムの停止や、停止中のプログラムの起動や、ＯＳＧｉフレームワーク上からのアンインストールが可能である。
【０１１９】
なお、ここではプログラム実行環境提供部１０１とＳＧＷ動作管理プログラム１０２の組み合わせの例として、ＯＳＧｉフレームワークとバンドルを挙げたが、本発明はこれに限定されない。つまり、プログラム実行環境提供部１０１とＳＧＷ動作管理プログラム１０２により、管理システム送受信機能部１１、プログラム状態制御機能部１２、プログラム動作状態収集機能部１３が実現されればよい。
【０１２０】
第２の相違点は、管理システム２の構成と、配信プログラムファイル蓄積サーバ２５の処理内容である。
【０１２１】
図１４は、管理システム２の機能ブロックを示す。
【０１２２】
配信プログラムファイル蓄積サーバ２５は、動作変更命令作成機能部２３にプログラムファイルを渡すのでなく、ＵＲＬを指定して行われるＳＧＷ１からのアクセスに対し、そのＵＲＬで指定されたプロトコルにしたがって、そのＵＲＬの場所にあるプログラムファイルを読み出し、別のネットワーク通信ＩＦ２５１を介して、そのＳＧＷ１に送信するようになっている。
【０１２３】
なお、配信プログラムファイル蓄積サーバ２５は、ＵＲＬがhttp://やhttps://で始まる場合は、ＨＴＴＰサーバ（ｗｅｂサーバ）、ＵＲＬがftp://で始まる場合は、ＦＴＰサーバとなるが、本発明はこれに限定されない。
【０１２４】
第３の相違点は、管理システム２のＯＰ情報ＤＢ２１が備える情報である。
【０１２５】
図１５は、ＯＰ情報ＤＢ２１が備えるプログラム情報２１４を示す。
【０１２６】
ＯＰ情報ＤＢ２１は、サービス構成プログラム情報２１３と、プログラム情報２１４、ユーザ契約サービス情報２１２、ユーザ利用ＳＧＷ情報２１１を有するが、このプログラム情報２１４においては、プログラムＩＤ、ＳＧＷ上プログラムＩＤおよびバージョンを備えたレコードに対し、そのプログラムＩＤの配信プログラムファイル蓄積サーバ２５でのＵＲＬを含ませる。なお、このＵＲＬをＳＧＷ上プログラムＩＤとして用いることも可能で、その場合は、プログラム情報２１４のレコードのフィールドを減らすことができる（図１６）。
【０１２７】
次に、処理手順における相違点を説明する。
【０１２８】
図１７は、発明１−１の処理シーケンスであり、図１８は、発明１−２の処理シーケンスである。
【０１２９】
まず、プログラム動作状態変更命令６０１、つまり、それがＳＧＷ１で実行された後のプログラム動作状態が理想動作状態となるようなプログラム動作状態変更命令６０１の作成方法が異なる。
【０１３０】
発明１−１では、プログラムリスト１０００のＳＧＷ上プログラムＩＤについての分類を行い、「インストール」、「更新」の処理命令については、対応するプログラムＩＤをプログラム情報２１４から読み出し、そのプログラムＩＤのプログラムファイルを配信プログラムファイル蓄積サーバ２５から取得し、その処理命令に添付し（動作状態変更命令作成ステップＤ９）、こうして作成されたプログラム動作状態変更命令６０１をＳＧＷ１に送信する（動作状態変更命令実行ステップＤ１３）。
【０１３１】
そして、動作状態変更命令実行ステップＤ１３において、「インストール」、「更新」の処理命令については、その処理命令に添付されたプログラムファイルを用いてインストールや更新を行う。その他の処理命令について、その処理命令に従った処理を行う。
【０１３２】
一方、発明１−２では、「インストール」、「更新」の処理命令については、対応するＵＲＬをプログラム情報２１４から読み出し、その処理命令に添付し（動作状態変更命令作成ステップＤ９）、こうして作成されたプログラム動作状態変更命令６０１をＳＧＷ１に送信する（動作状態変更命令実行ステップＤ１３）。
【０１３３】
そして、動作状態変更命令実行ステップＤ１３において、「インストール」、「更新」の処理命令については、その処理命令に添付されたＵＲＬの場所にアクセスしてプログラムファイルをダウンロードし（Ｄ１３１，Ｄ１３２）、それを用いてインストールや更新を行う。その他の処理命令について、その処理命令に従った処理を行うことは、発明１−１と同じである。
【０１３４】
発明１−２によれば、以下の効果が得られる。
【０１３５】
まず、処理命令にはＵＲＬが添付され、プログラムファイルは添付されない。そして、ＳＧＷ動作管理プログラム１０２が、そのＵＲＬを指定したアクセスによりプログラムファイルを取得する。これにより、管理システム２では、処理命令（プログラム動作状態変更命令６０１）を作成する機器と、プログラムファイルを配信する機器とを異ならせることができる。つまり、動作変更命令作成機能部２３を有する機器と、配信プログラムファイル蓄積サーバ２５を有する機器とを異ならせることができる。
【０１３６】
また、配信プログラムファイル蓄積サーバ２５は、ＵＲＬでアクセス可能であり、広く普及しているロードバランサー（負荷分散装置）などにより、膨大なＳＧＷ１からアクセスに耐えうるようなシステム拡張が容易に行える。
【０１３７】
なお、ここで説明したプログラム理想動作状態リストＬＩやプログラム動作状態リストＬＳＧの作成方法、プログラム動作状態変更命令６０１の作成方法は、一例であり、本発明はこれに限定されるものではない。
【０１３８】
［発明１−２の別の実施例（プログラムの依存関係を考慮したプログラム動作状態変更命令６０１の作成および実行）］
また、発明１−２では、別の実施例も考えられる。
【０１３９】
ユーザが契約する１つのサービスは、１つ以上のプログラムが連携動作することで提供されるが、プログラムの間で、依存関係が存在する可能性もある。例えば、サービスＡはプログラム１とプログラム２によって成立し、サービスＢはプログラム３によって成立し、プログラム１が動作するにはプログラム３が動作していることが必要となる場合がある。このように、プログラム１の動作にはプログラム３の動作が必要となる場合、「プログラム１がプログラム３に依存している」という。この場合、プログラム３の停止中にプログラム１を動作させようとしてもプログラム１は正常に動作せず、エラーが発生する可能性がある。
【０１４０】
そこで、この別の実施例では以下のようにする。
【０１４１】
図１９は、この場合のＯＰ情報ＤＢ２１が備えるプログラム間依存情報２１５を示す。
【０１４２】
ＯＰ情報ＤＢ２１は、ユーザ利用ＳＧＷ情報２１１、ユーザ契約サービス情報２１２、サービス構成プログラム情報２１３およびプログラム情報２１４に加え、プログラム間依存情報２１５を備える。プログラム間依存情報２１５は、プログラムＩＤと、対応するプログラムが依存するプログラムのプログラムＩＤからなる依存プログラムＩＤリストとからレコードを蓄積してなるものである。
【０１４３】
次に、プログラム動作状態変更命令６０１の作成方法の例を説明する。
【０１４４】
まず、図１３で説明したように、プログラム動作状態リストＬＳＧとプログラム理想動作状態リストＬＩとから、プログラムリスト１０００を作成し、そのＳＧＷ上プログラムＩＤを分類して、処理命令リスト２０００を作成する。
【０１４５】
次に、前述の依存関係に基づき、処理命令リスト２０００に対し、「プログラムの一時停止の処理命令」つまり「あるプログラムが動作中の状態において、そのプログラムが依存する他プログラムが必ず動作中となる状態を保つために必要な処理命令」と、「処理順番号」つまり各処理命令の処理順を示す処理順番号とを加える。なお、処理順番号は、ＳＧＷ１が処理順を判定できるフォーマットで生成される。
【０１４６】
この「一時停止の処理命令」および「処理順番号」について説明する。
【０１４７】
例えば、プログラムＡがプログラムＢに依存し、プログラムＡをインストール後起動する処理を例にすると、プログラムＡの起動前にプログラムＢを起動状態にする必要がある。よって、プログラムＢに関しての「インストール後起動」の処理命令が、処理命令リスト２０００に含まれる場合、その処理はプログラムＡのインストール後の起動処理よりも先に行うように処理順番号をつける。また、プログラム動作状態リストＬＳＧでのプログラムＢの動作状態が「停止中」だった場合、プログラムＡをインストールして起動する前にプログラムＢを起動させるように処理順番号をつける。
【０１４８】
次に、プログラムＣを更新する処理を例に説明する。
【０１４９】
この場合、起動中のプログラムＣの更新処理実行時には、プログラムＣの旧プログラムが停止し、新しいプログラムファイルにより、旧プログラムに交換された新プログラムが起動する。
【０１５０】
ここで、プログラムＤがプログラムＣに依存し、プログラム動作状態リストＬＳＧでのプログラムＤの動作状態が「動作中」だった場合、プログラムＣが更新処理により停止する前にプログラムＤを一時停止させ、プログラムＣの新プログラムが起動した後に、プログラムＤを起動させる必要がある。さもなくば、プログラムＤが動作しているにも関わらず、そのプログラムＤが依存するプログラムＣが停止する期間が発生し、プログラムＤが正常に動作せず、エラーを発生する可能性がある。
【０１５１】
そこで、プログラム動作状態変更命令６０１に含まれる処理命令リスト２０００の処理命令と処理順番号を、以下のようなものにする。つまり、処理順番号にしたがって処理命令が実行されたときに、あらゆるプログラムにつき、そのプログラムが動作中にも関わらず、そのプログラムが依存するプログラムがインストール済みかつ動作中でない状況が一切ないような、処理命令と処理順番号とする。これにより、動作状態変更命令実行ステップＤ１３でのエラー発生を防ぐことができる。
【０１５２】
さて、サービスＡはプログラム１とプログラム２によって成立し、サービスＢはプログラム３によって成立し、プログラム１の動作にはプログラム３の動作が必要となる場合があると前述したが、この例は、サービスＡに必要なプログラムの動作にはサービスＢに必要なプログラムの動作が必要である、つまり、「サービスＡがサービスＢに依存している」ということができる。
【０１５３】
この場合、やはり、サービスＢのプログラム３の停止中にサービスＡのプログラム１を動作させようとしてもプログラム１は正常に動作せず、エラーが発生する可能性がある。
【０１５４】
そこで、この別の実施例では、以下のようにすることもできる。
【０１５５】
図２０は、この場合のＯＰ情報ＤＢ２１が備えるサービス間依存情報２１６を示す。
【０１５６】
ＯＰ情報ＤＢ２１は、ユーザ利用ＳＧＷ情報２１１、ユーザ契約サービス情報２１２、サービス構成プログラム情報２１３およびプログラム情報２１４に加え、サービス間依存情報２１６を備える。サービス間依存情報２１６は、契約サービスＩＤと、対応するサービスが依存するサービスを示す契約サービスＩＤからなる依存サービスＩＤリストとからレコードを蓄積してなるものである。
【０１５７】
次に、プログラム動作状態変更命令６０１の作成方法の例を説明する。なお、プログラム間での依存関係はないものとする。また、サービス間依存情報２１６は、サービス構成プログラム情報２１３の更新つまり構成プログラムＩＤリストの更新、追加、削除などにより変化しないこととする。
【０１５８】
管理システム２は、自身が提供する全てのサービスに関して、サービス間依存情報２１６を基にして、サービス依存関係の木構造（サービス間依存木）を作成する。この木構造は、各ノードをサービスに割り当て、木構造の親ノードに該当するサービスが依存するサービスのノードを子ノードに配置する処理を、全てのサービスに関して、再帰的に行うことでの作成が可能である。
【０１５９】
この結果、独立したサービス間依存木が複数作成される可能性もある。ここで各サービス間依存木に関して、親は子より１つ大きな階層番号を有するように各ノードの階層番号を設定する。例えば最下層の子ノードの階層番号を１として、必ず親子のノードの間で親ノードが子ノードより１つ大きな値を、木構造に沿って設定していく。各ノードの階層番号をサービス間階層番号という。
【０１６０】
次に、各サービスを構成するプログラム間での依存関係に関する木構造（サービス内依存木）を同様に作成する。同様に、階層番号（サービス内階層番号）を各ノードに付与する。ここでサービス内階層番号の最大値以上の数値Ｎを１つ選ぶ。
【０１６１】
そして、各プログラムに関して、（そのプログラムが提供するサービスのノードに該当するサービス間階層番号）×Ｎ＋（サービス内階層番号）を処理順番号として算出する。依存されているプログラムと依存しているプログラムとの間でこの処理順番号を比較すると、必ず前者は後者より低い番号となる。
【０１６２】
また、図１３で説明したように、プログラム動作状態リストＬＳＧとプログラム理想動作状態リストＬＩとから、プログラムリスト１０００を作成し、そのＳＧＷ上プログラムＩＤを分類して、処理命令リスト２０００を作成する。
【０１６３】
そして、プログラム動作状態リストＬＳＧとプログラム理想動作状態リストＬＩの和集合であるプログラムリスト１０００のうち、処理命令リスト２０００に含まれないプログラムのリストをプログラムリスト３０００とする。
【０１６４】
ここで、処理命令リスト２０００における「更新後起動」や「更新」の処理命令に対応するプログラムのリストを抽出し、これをプログラムリスト４０００とする。
【０１６５】
プログラムリスト４０００の各プログラムにつき、サービス構成プログラム情報２１３から、対応する契約サービスＩＤを読み出し、サービス間依存木について、その契約サービスＩＤのサービスのノード以下の枝に属するサービスのノードを構成するプログラムのリストを抽出し、これをプログラムリスト５０００とする。
【０１６６】
プログラムリスト５０００とプログラムリスト３０００の両方に含まれるプログラムに関して、そのプログラムに対する「プログラムの一時停止の処理命令」を作成し、それらを処理命令リスト２０００に加えて、これを処理命令リスト６０００とする。
【０１６７】
そして、処理命令リスト６０００の各処理命令に対して、上記で算出した各プログラムの処理順番号を付与し、これを処理命令リスト７０００とする。
【０１６８】
そして、管理システム２は、動作状態変更命令送信ステップＤ１１では、この処理命令リスト７０００を含むプログラム動作状態変更命令６０１を送信する。
【０１６９】
そして、ＳＧＷ１は、受信したプログラム動作状態変更命令６０１に含まれる処理命令リスト７０００の各処理命令を動作状態変更命令実行ステップＤ１３で処理するが、処理命令の内容と処理順番号とを考慮に入れて、以下のようにする。ここでは、同じ処理順番号ならば処理順は問わないこととする。
【０１７０】
１．「更新」、「停止」、「アンインストール」の処理命令については、処理順番号の降順に停止処理を行う。
【０１７１】
２．「アンインストール」の処理命令については、処理順番号の降順にアンインストール処理を行う。
【０１７２】
３．「更新」、「インストール」の処理命令については、処理順番号の昇順に、更新処理、インストール処理を行う。
【０１７３】
４．「起動」の処理命令については、処理順番号の昇順に起動処理を行う。
【０１７４】
この方法によれば、処理順番号が高いプログラムが動作中の際には、必ず処理順番号が低いプログラムが動作中となり、エラーの発生を防ぐことできる。
【０１７５】
なお、各処理命令に処理順番号を付与した処理命令リスト７０００ではなく、動作状態変更命令実行ステップＤ１３での処理順を示す処理順番号を付与したものをプログラム動作状態変更命令６０１に含ませ、動作状態変更命令実行ステップＤ１３では、各処理命令をその処理順番号にしたがって実行するという実施例も考えられる。
【０１７６】
この場合、処理順番号とを考慮に入れたアルゴリズムを予めＳＧＷ１に設定する必要がない。また、そのアルゴリズムによるプログラム動作状態変更命令６０１の解釈が不要なので、動作状態変更命令実行ステップＤ１３の際のＳＧＷ１の負担軽減が図れる。
【０１７７】
したがって、発明１−２によれば、動作状態変更命令作成送信ステップ（Ｄ７およびＤ９）では、インストール、更新の処理命令に、そのために必要なプログラムファイルの場所を示す情報を添付し、動作状態変更命令実行ステップＤ１３では、インストール、更新の処理命令に添付された情報の場所からプログラムファイルを取得し用いるたので、プログラムのインストール、更新を行うことができる。
【０１７８】
［発明２］
次に、発明２を説明する。ここでは、発明１を前提に説明する。発明１としては、発明１−１と発明１−２のどちらを実施してもよい。
【０１７９】
図２１は、処理シーケンスを示す。
【０１８０】
まず、ＳＧＷ１が起動し（Ｃ１）、それに応じてプログラム実行環境提供部１０１が自動的に起動した（Ｃ３）後に、それに応じてＳＧＷ動作管理プログラム１０２が自動的に起動する（Ｃ５）。
【０１８１】
次に、ＳＧＷ動作管理プログラム１０２がプログラム動作状態報告送信ステップＤ３を行い、以後、同様に、プログラム動作状態報告受信ステップＤ５、プログラム理想動作状態リスト作成ステップＤ７、動作状態変更命令作成ステップＤ９、動作状態変更命令送信ステップＤ１１、動作状態変更命令実行ステップＤ１３が行われる。
【０１８２】
発明２によれば、ＳＧＷ１を起動または再起動するだけで、ＳＧＷ１上のプログラムを最新の状態にすることができる為、ユーザにとってわかりやすく容易な操作でプログラムを最新の状態にできる。よって、プログラムを最新の状態にするために、Ｗｅｂブラウザを用いてユーザポータルへアクセスする等の動作が不要となる。
【０１８３】
また、発明２は、以下の場面でも効果を奏する。
【０１８４】
例えば、ユーザ宅にＳＧＷ１を設置する前に、ユーザはサービスＡを契約したとする。ＳＧＷ１がユーザ宅に配達された後、ユーザはＳＧＷ１を起動するだけで、ＳＧＷ１に設置前に契約したサービスＡに必要なプログラムがインストールおよび起動され、ユーザは契約したサービスＡを利用できるようになる。
【０１８５】
また、契約中のサービスを構成するプログラムが更新される処理においては、そのプログラムだけではなく、そのプログラムに依存した他プログラムも一時停止する可能性があるが、ＳＧＷ１を再起動する際にはそもそも全てのプログラムは停止しているので、停電や電源ケーブルを誤って抜いたなどの場合を除いて、ユーザの意図に反してサービスが一時停止して困ることがない。
【０１８６】
また、ＳＧＷ１と管理システム２の間は、高い信頼性を有する専用線など回線でなく、ＡＤＳＬや無線などの不安定な回線で接続されることが想定され、この場合、プログラム動作状態報告５０１やプログラム動作状態変更命令６０１が紛失し、プログラムの動作状態の制御が行えない可能性があるが、発明２では、そのようなときは、ユーザがＳＧＷ１を起動すればよいので、プログラムの動作状態の制御が行えるようになる。
【０１８７】
したがって、発明２によれば、サービスゲートウェイが、自身の起動により、プログラム動作状態報告ステップを行うので、発明１の効果に加えて、ユーザがサービスゲートウェイを起動すれば、各プログラムを理想的な動作状態にすることができるという効果が得られる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、Ｗｅｂブラウザなどを用いて、いわゆるポータルサイトにアクセスするなどが不要になる。
【０１８８】
また、ユーザの明示的行動によるので、更新などの際のプログラムの一時停止がユーザの意図に反して起きるのを防止することができる。
【０１８９】
［発明２−１］
発明２において、ＳＧＷ動作管理プログラム１０２の起動前や動作状態変更命令実行ステップＤ１３の前に機器制御プログラム１０３が起動する場合を考える。この場合、動作状態変更命令実行ステップＤ１３が終了した時のＳＧＷ１は、プログラム理想動作状態リストＬＩの状態になるが、その前に最新ではないインストール済みのプログラムや、本来動作してはならないプログラムが動作している時間が発生する可能性がある。
【０１９０】
そこで、次に、発明２−１を説明する。
【０１９１】
図２２に示すように、ＳＧＷ１が起動し（Ｃ１）、それに応じてプログラム実行環境提供部１０１が自動的に起動した（Ｃ３）後に、それに応じてＳＧＷ動作管理プログラム１０２が自動的に起動する（Ｃ５）ときに、機器制御プログラム１０３の起動を抑制する（プログラム起動抑制ステップＣ７）。
【０１９２】
そして、ＳＧＷ動作管理プログラム１０２がプログラム動作状態報告送信ステップＤ３を行い、以後、同様に、プログラム動作状態報告受信ステップＤ５、プログラム理想動作状態リスト作成ステップＤ７、動作状態変更命令作成ステップＤ９、動作状態変更命令送信ステップＤ１１、動作状態変更命令実行ステップＤ１３が行われる。
【０１９３】
つまり、動作状態変更命令実行ステップＤ１３の前においては、機器制御プログラム１０３は起動せず、動作状態変更命令実行ステップＤ１３が終了した時のＳＧＷ１は、プログラム理想動作状態リストＬＩの状態になる。
【０１９４】
したがって、発明２−１によれば、ＳＧＷ１が、自身の起動によるプログラム動作状態報告ステップ（Ｄ１およびＤ３）に先立ち、各プログラムの起動を抑制するので、発明１や２の効果に加えて、本来、動作してはならないプログラム、つまり更新、アンインストールされるプログラムが起動してしまうのを防ぐことができるという効果が得られる。
【０１９５】
［発明３］
次に、発明３を説明する。ここでも、発明１を前提にする。発明１としては、発明１−１と発明１−２のどちらを実施してもよい。
【０１９６】
図２３は、ＳＧＷ１の機能ブロック、図２４は、処理シーケンスを示す。
【０１９７】
ＳＧＷ１は、そのハードウェアとして操作ボタンを有し、図２３に示すように、ＳＧＷ１は、管理システム送受信機能部１１、プログラム状態制御機能部１２、プログラム動作状態収集機能部１３に加え、そのボタン操作を検出する機能を有するボタン操作検出機能部１４を備える。ボタンの形状や数、押し方などは、本発明の制限されるところではない。例えば、１つのボタンを押し続ける時間や、複数のボタンを同時に押下するなどは任意である。つまり、ある所定の操作をすると、その操作が行われたことを検出するような機能をボタン操作検出機能部１４が備えていればよい。
【０１９８】
図２４に示すように、ＳＧＷ１がボタン操作を検出し（ボタン操作検出ステップＴ１）、その後、ＳＧＷ動作管理プログラム１０２がプログラム動作状態報告送信ステップＤ３を行い、以後、同様に、プログラム動作状態報告受信ステップＤ５、プログラム理想動作状態リスト作成ステップＤ７、動作状態変更命令作成ステップＤ９、動作状態変更命令送信ステップＤ１１、動作状態変更命令実行ステップＤ１３が行われる。
【０１９９】
発明３によれば、ユーザの明示的行動により動作状態変更命令実行ステップＤ１３が実行されるので、ユーザの意図に反してサービスが一時停止して困ることがない。
【０２００】
また、発明２とは違い、つまり、動作状態変更命令実行ステップＤ１３を実行させるために、ＳＧＷ１が起動中の場合は再起動させる必要があり、さらに、ＳＧＷ１がモデムやルータなどの機能を備えている場合は、それらを含めたＳＧＷ１の全機能が一旦停止する発明２と違い、発明３では再起動が必要なく、一旦停止するサービスを、その必要のあるサービスに限定することができる。
【０２０１】
また、ＳＧＷ１と管理システム２の間は、高い信頼性を有する専用線など回線でなく、ＡＤＳＬや無線などの不安定な回線で接続されることが想定され、この場合、プログラム動作状態報告５０１やプログラム動作状態変更命令６０１が紛失し、プログラムの動作状態の制御が行えない可能性があるが、発明３では、そのようなときは、ユーザがボタン操作を行えばよいので、プログラムの動作状態の制御が行えるようになる。
【０２０２】
したがって、発明３によれば、ＳＧＷ１が、自身への操作を検出する操作検出ステップ（Ｔ１）を備え、それにより、ＳＧＷ１が、プログラム動作状態報告ステップ（Ｄ１およびＤ３）を行うので、発明１の効果に加えて、ユーザがＳＧＷ１を操作すれば、各プログラムを理想的な動作状態にすることができるという効果が得られる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、ユーザの明示的行動によるので、プログラムがユーザの意図に反して一時停止するのを防止することができる。また、ＳＧＷ１の起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。
【０２０３】
［発明４］
次に、発明４を説明する。ここでも、発明１を前提にする。発明１としては、発明１−１と発明１−２のどちらを実施してもよい。
【０２０４】
図２５は、全体図、図２６は、ＳＧＷ１の機能ブロック、図２６は、処理シーケンスを示す。
【０２０５】
図２５に示すホームネットワーク内の機器３（図では、ＨＤＤレコーダ、ドアロック、リモコン（リモートコントローラ）、携帯電話）は、ユーザの所定の操作を契機に、赤外線通信IrＤＡやBluetooth、Zigbee、無線ＬＡＮ、有線ＬＡＮなどを介して、ＳＧＷ１に操作通知を送信する。機器３としては、ＰＣ（パーソナルコンピュータ）やＴＶ（テレビジョン受像機）などが考えられる。
【０２０６】
機器３では、そのプログラムがユーザインターフェイスを提供し、ユーザがユーザインターフェイスに対して入力処理を行うことが、所定の操作に当たる。なお、本発明は機器３やホームネットワークの種別により限定されるものではない。
【０２０７】
図２６に示すように、ＳＧＷ１は、ＳＧＷ１は、管理システム送受信機能部１１、プログラム状態制御機能部１２、プログラム動作状態収集機能部１３に加え、機器３からの操作通知を検出する機能を有する操作通知検出機能部１５を備える。
【０２０８】
図２７に示すように、機器３がユーザによる所定の操作を検出し（操作検出ステップＴ１１）、それを契機に、機器３が操作通知をＳＧＷ１に送信し（Ｔ１３）、ＳＧＷ１が操作通知を検出した（操作通知検出ステップＴ１５）後、ＳＧＷ動作管理プログラム１０２がプログラム動作状態報告送信ステップＤ３を行い、以後、同様に、プログラム動作状態報告受信ステップＤ５、プログラム理想動作状態リスト作成ステップＤ７、動作状態変更命令作成ステップＤ９、動作状態変更命令送信ステップＤ１１、動作状態変更命令実行ステップＤ１３が行われる。
【０２０９】
発明４によれば、発明３と同様に、ユーザの明示的行動により動作状態変更命令実行ステップＤ１３が実行されるので、ユーザの意図に反してサービスが一時停止して困ることがない。
【０２１０】
また、ＳＧＷ１の全機能が一旦停止する発明２と違い、そして、発明３と同様に、発明４では、再起動が必要なく、一旦停止するサービスを、その必要のあるサービスに限定することができる。
【０２１１】
また、プログラム動作状態報告５０１やプログラム動作状態変更命令６０１の紛失により、プログラムの動作状態の制御が行えないときは、ユーザが機器３に所定の操作を行えばよいので、プログラムの動作状態の制御が行えるようになる。
【０２１２】
したがって、発明４によれば、機器３が、自身への操作を検出する操作検出ステップ（Ｔ１１）と、機器３が、ＳＧＷ１に操作通知を行う操作通知ステップ（Ｔ１３）とを備え、それにより、ＳＧＷ１が、プログラム動作状態報告ステップ（Ｄ１およびＤ３）を行うので、発明１の効果に加えて、ユーザが機器３を操作すれば、各プログラムを理想的な動作状態にすることができるという効果が得られる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、ユーザの明示的行動によるので、プログラムがユーザの意図に反して一時停止するのを防止することができる。また、ＳＧＷ１の起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。
【０２１３】
［発明５］
次に、発明５を説明する。ここでも、発明１を前提にする。発明１としては、発明１−１と発明１−２のどちらを実施してもよい。
【０２１４】
図２８は、全体図、図２９は、管理システム２の機能ブロック、図３０は、処理シーケンスを示す。
【０２１５】
図２８に示すように、ユーザの外出先などに配置されたＰＣ等が備えるＷｅｂブラウザ４は、インターネットなどの通信網を介して管理システム２に接続される。
【０２１６】
図２９に示すように、管理システム２では、Ｗｅｂページ管理機能部２６が、Ｗｅｂブラウザ４からのＷｅｂアクセス、文字、ボタン操作の入力受付、Ｗｅｂブラウザ４へのページ出力などを行うＷｅｂサーバ２７とともに動作する。
【０２１７】
そして、管理システム２は、Ｗｅｂブラウザ４を用いてアクセスしてきたユーザをユーザＩＤにより認証する機能を有するアクセスユーザ認証機能部２８を有する。
【０２１８】
アクセスユーザ認証機能部２８が行う認証としては、パスワード認証や、トークンを用いた認証、指紋やアイリスなどの生体情報を用いた認証など、様々なものが考えられるが、本発明はこれに限定されない。
【０２１９】
また、管理システム２は、Ｗｅｂブラウザ４から、Ｗｅｂサーバ２７とＷｅｂページ管理機能部２６を介して、後述する動作状態変更処理依頼３０１を受け付ける機能を有する動作状態変更処理依頼受付機能部２９を備える。
【０２２０】
図３０に示すように、管理システム２では、Ｗｅｂブラウザ４からのＷｅｂアクセスを受け付け（Ｋ１）、認証によりユーザＩＤを特定する（Ｋ３）。その後、Ｗｅｂブラウザ４を制御して、動作状態変更処理依頼３０１を受け付けるボタンなどを含むページを表示させ（Ｋ５）、ユーザがボタンを押した操作に該当する処理情報（動作状態変更処理依頼３０１）をhttpプロトコルのＰＯＳＴなどのメソッドを通じてＷｅｂサーバ２７が受信する（動作状態変更処理依頼受付ステップＫ７）と、Ｗｅｂページ管理機能部２６は、管理システム２の動作状態変更処理依頼受付機能部２９に、特定したユーザＩＤを渡す。動作状態変更処理依頼受付機能部２９は、ＯＰ情報ＤＢ２１のユーザ利用ＳＧＷ情報２１１から、そのユーザＩＤに対応するＳＧＷＩＤを読み出し、そのＳＧＷＩＤのＳＧＷ１に対して、ネットワーク通信ＩＦ２４を介して、プログラム動作状態報告依頼４０１を送信する（プログラム動作状態報告依頼ステップＫ９）。
【０２２１】
ＳＧＷ１では、ＳＧＷ動作管理プログラム１０２がプログラム動作状態報告依頼４０１を受信すると、プログラム動作状態リストＬＳＧを作成し（Ｄ１）、以後、プログラム動作状態報告送信ステップＤ３、プログラム動作状態報告受信ステップＤ５、プログラム理想動作状態リスト作成ステップＤ７、動作状態変更命令作成ステップＤ９、動作状態変更命令送信ステップＤ１１、動作状態変更命令実行ステップＤ１３が行われる。
【０２２２】
発明５によれば、ユーザの明示的行動により動作状態変更命令実行ステップＤ１３が実行されるので、プログラムの更新があった場合などに、ユーザの意図に反して、サービスが一時停止して困ることがない。
【０２２３】
また、発明２ではＳＧＷ１自体が停止するため、全てのプログラムが停止するので、ＳＧＷ１がモデムやルータなどの機能を兼ねているとそれらの機能まで停止するが、発明５では、停止する必要があるサービスだけを停止させることができる。
【０２２４】
また、発明３と違い、外出先などからであっても、動作状態変更命令実行ステップＤ１３を実行させることができる。
【０２２５】
したがって、発明５によれば、管理システム２が、Ｗｅｂブラウザ４からのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定ステップ（Ｋ１およびＫ３）と、管理システム２が、動作状態変更処理依頼３０１つまり動作状態変更命令作成送信ステップ（Ｄ９およびＤ１１）を行う旨の依頼をＷｅｂブラウザ４から受け付ける動作状態変更処理依頼受付ステップ（Ｋ７）と、管理システム２が、特定されたユーザに使用されるＳＧＷ１にプログラム動作状態報告依頼４０１つまりプログラム動作状態報告ステップ（Ｄ１およびＤ３）を行う旨の依頼を行うプログラム動作状態報告依頼ステップ（Ｋ９）とを備え、それにより、特定されたユーザに使用されるＳＧＷ１が、プログラム動作状態報告ステップ（Ｄ１およびＤ３）を行うので、発明１の効果に加えて、ユーザが動作状態変更命令作成送信ステップ（Ｋ７）の依頼の操作を行えば、各プログラムを理想的な動作状態にすることができるという効果が得られる。つまり、ユーザの明示的行動により、各プログラムを理想的な動作状態にすることができる。また、ＳＧＷ１の起動が不要なので、制御対象以外のプログラムが停止するのを防止することができる。
【０２２６】
また、Ｗｅｂブラウザによるので、外出先から、各プログラムを理想的な動作状態にすることができる。
【０２２７】
［発明５−１（動作状態変更命令実行ステップＤ１３の要否を表示）］
次に、発明５−１を説明する。
【０２２８】
図３１は、管理システム２の機能ブロック、図３２は、処理シーケンスを示す。
【０２２９】
図３１に示すように、管理システム２は、各部２１〜２９に加え、ＳＧＷ１での動作状態変更命令実行ステップＤ１３の要否を確認する機能を有する動作状態変更処理要否確認機能部２１０を備える。
【０２３０】
図３２に示すように、管理システム２が、ユーザＩＤ特定ステップＫ３の後、特定されたユーザＩＤのユーザが利用するＳＧＷ１での動作状態変更命令実行ステップＤ１３の要否を、管理システム２のＯＰ情報ＤＢ２１を用いて確認する（動作状態変更処理要否確認ステップＫ１１）。
【０２３１】
そして、Ｗｅｂブラウザ４を制御して、その要否を表示する（変更処理要否情報表示ステップＫ１３）。
【０２３２】
ここで、動作状態変更命令実行ステップＤ１３が必要と表示され、それを見たユーザが、動作状態変更命令実行ステップＤ１３を依頼する旨の操作を行うと、Ｗｅｂブラウザ４は、その依頼を示す動作状態変更処理依頼３０１を管理システム２に送信し、これを管理システム２が受信する（動作状態変更処理依頼受付ステップＫ７）。
【０２３３】
管理システム２では、この動作状態変更処理依頼３０１を受信すると、対応するＳＧＷ１に対し、プログラム動作状態報告依頼４０１を送信する（プログラム動作状態報告依頼ステップＫ９）。
【０２３４】
ＳＧＷ１では、ＳＧＷ動作管理プログラム１０２がプログラム動作状態報告依頼４０１を受信すると、プログラム動作状態リストＬＳＧを作成し（Ｄ１）、以後、プログラム動作状態報告送信ステップＤ３、プログラム動作状態報告受信ステップＤ５、プログラム理想動作状態リスト作成ステップＤ７、動作状態変更命令作成ステップＤ９、動作状態変更命令送信ステップＤ１１、動作状態変更命令実行ステップＤ１３が行われる。
【０２３５】
発明５−１によれば、動作状態変更命令実行ステップＤ１３の要否を表示するので、動作状態変更命令実行ステップＤ１３を依頼する旨の操作を行ったときは、既に契約して利用中のサービスのどれかが一時停止する可能性があることを認識することができる。
【０２３６】
つまり、サービスが一時停止しても困らない場合は、当該操作を行い、困る場合は、当該操作をしないという選択肢をユーザに与えることができる。
【０２３７】
また、動作状態変更命令実行ステップＤ１３が不要であると表示されれば、当該操作は行われないので、動作状態変更処理依頼受付ステップＫ７以降の処理が不要となる。つまり、それら処理に応じた負担軽減が図れる。
【０２３８】
さて、管理システム２が、動作状態変更処理要否確認ステップＫ１１を行うときの実施方法としては、様々なものが考えられる。ここでは、方法Ａ、方法Ｂおよび方法Ｃを説明する。
【０２３９】
方法Ａでは、Ｗｅｂブラウザ４からのアクセスの際、管理システム２はＳＧＷ１にプログラム動作状態報告依頼４０１を送信し、それにより返信されたプログラム動作状態リストＬＳＧを受信し、管理システム２のＯＰ情報ＤＢ２１から、その際のＳＧＷ１のプログラム理想動作状態リストＬＩを作成し、プログラム動作状態リストＬＳＧとプログラム理想動作状態リストＬＩを比較し、差異が有れば、動作状態変更命令実行ステップＤ１３が必要と判断し、無ければ、動作状態変更命令実行ステップＤ１３が不要と判断する。
【０２４０】
さて、方法Ａでは、実際に動作状態変更命令実行ステップＤ１３が行われるか否かに関わらず、Ｗｅｂブラウザ４からのアクセスの度に、ＳＧＷ１がプログラム動作状態リストＬＳＧを作成し管理システム２に送信なければならない。そのため、Ｗｅｂブラウザ４からのアクセスの度にＳＧＷ１に負荷がかかる。また、Ｗｅｂブラウザ４からのアクセスの度に、管理システム２がプログラム動作状態報告依頼４０１を送信し、プログラム動作状態リストＬＳＧの返信を待たなければならないので、変更処理要否情報表示ステップＫ１３までの時間が長くなる。
【０２４１】
そこで、方法Ｂでは、管理システム２がプログラム動作状態リストＬＳＧを管理する手段を備え、一方、ＳＧＷ１は、ＳＧＷ１にインストールされているプログラムの動作状態に変更が生じた際には、その都度、プログラム動作状態リストＬＳＧを作成し、管理システム２に送信する。そして、管理システム２は、これを受信して管理する。
【０２４２】
そして、Ｗｅｂブラウザ４からのアクセスの際、管理システム２は、管理しているプログラム動作状態リストＬＳＧを読み出し、管理システム２のＯＰ情報ＤＢ２１から、その際のＳＧＷ１のプログラム理想動作状態リストＬＩを作成し、プログラム動作状態リストＬＳＧとプログラム理想動作状態リストＬＩを比較し、差異が有れば、動作状態変更命令実行ステップＤ１３が必要と判断し、無ければ、動作状態変更命令実行ステップＤ１３が不要と判断する。よって、方法Ｂでは、Ｗｅｂブラウザ４からのアクセスの度にＳＧＷ１に負荷がかからず、また、変更処理要否情報表示ステップＫ１３までの時間を短くできる。
【０２４３】
さて、プログラム動作状態リストＬＳＧは比較的に情報量が多いので、方法Ｂでは、管理システム２において、容量の大きい記憶手段が必要になる。
【０２４４】
そこで、方法Ｃ（簡易ＳＧＷ現状管理方式）では、管理システム２のＯＰ情報ＤＢ２１がＳＧＷ１毎に２つのＩＤを保持する。なお、これら２つのＩＤはプログラム動作状態リストＬＳＧよりも情報量が少なく、よって、容量の大きい記憶手段が不要である。
【０２４５】
１．一方のＩＤは、Snapshot ＩＤというものであり、具体的には、そのＩＤに対応するＳＧＷ１に管理システム２のＯＰ情報ＤＢ２１での変更を反映させる必要が生じたときに単調増加される状態版番号である。以下、これをＳＧＷ単位ＳＩＤという。
【０２４６】
（ア）管理システム２では、ＯＰ情報ＤＢ２１が備えるユーザ契約サービス情報２１２の契約サービスＩＤリストが変更された際、そこから変更に関わるユーザＩＤを読み出し、ユーザ利用ＳＧＷ情報２１１から、その読み出したユーザＩＤに対応するＳＧＷＩＤを読み出し、そのＳＧＷＩＤのＳＧＷ単位ＳＩＤを単調増加させる。
【０２４７】
（イ）また、管理システム２では、ＯＰ情報ＤＢ２１が備えるサービス構成プログラム情報２１３の構成プログラムＩＤリストが変更された際、そこから変更に関わる契約サービスＩＤを読み出し、ユーザ契約サービス情報２１２から、その読み出した契約サービスＩＤに対応するユーザＩＤを読み出し、ユーザ利用ＳＧＷ情報２１１から、その読み出したユーザＩＤに対応するＳＧＷＩＤを読み出し、そのＳＧＷＩＤのＳＧＷ単位ＳＩＤを単調増加させる。
【０２４８】
２．他方のＩＤは、Synchronized ＳＩＤというものであり、具体的には、そのＩＤに対応するＳＧＷ１で動作状態変更命令実行ステップＤ１３が完了したときに、そのＳＧＷ１についてのＳＧＷ単位ＳＩＤで更新される状態版番号である。以下、これをＳＧＷ単位ＳｙＳＩＤという。
【０２４９】
管理システム２は、プログラム動作状態変更命令６０１を作成した際のＳＧＷ単位ＳＩＤをプログラム動作状態変更命令６０１に含めてＳＧＷ１に送信する（動作状態変更命令送信ステップＤ１１）。
【０２５０】
ＳＧＷ１は、このプログラム動作状態変更命令６０１を受信して、動作状態変更命令実行ステップＤ１３を実行した後、プログラム動作状態変更命令６０１に含まれていたＳＧＷ単位ＳＩＤならびに動作状態変更命令実行ステップＤ１３が成功したか否かを示す処理成否を含む動作状態変更命令実行報告７０１を管理システム２に送信する。
【０２５１】
管理システム２は、受信した動作状態変更命令実行報告７０１の処理成否が成功ならば、その動作状態変更命令実行報告７０１の送信元であるＳＧＷ１のＳＧＷ単位ＳｙＳＩＤを、動作状態変更命令実行報告７０１に含まれたＳＧＷ単位ＳＩＤで更新する。
【０２５２】
そして、ユーザ認証が成功した際、ＳＧＷ単位ＳＩＤとＳＧＷ単位ＳｙＳＩＤを比較し、ＳＧＷ単位ＳＩＤがＳＧＷ単位ＳｙＳＩＤより大きければ、動作状態変更命令実行ステップＤ１３が必要と判断し、ＳＧＷ単位ＳＩＤとＳＧＷ単位ＳｙＳＩＤが等しいければ、動作状態変更命令実行ステップＤ１３が不要と判断する。
【０２５３】
さて、管理システム２では、動作状態変更命令実行報告７０１の送信元のＳＧＷ１を様々な方法で検出できる。
【０２５４】
例えば、ＳＧＷ１が、自身のＳＧＷＩＤを動作状態変更命令実行報告７０１に含めれば、管理システム２が、それを読み出すことで、その動作状態変更命令実行報告７０１の送信元を検出できる。
【０２５５】
また、管理システム２とＳＧＷ１とを接続する通信チャネルに割り当てられた情報（例えば、ＳＧＷ１のＩＰアドレス）によっても、動作状態変更命令実行報告７０１の送信元を検出できる。
【０２５６】
なお、本発明は、その方法を限定するものではない。
【０２５７】
したがって、方法Ｃによれば、方法Ａと違い、Ｗｅｂブラウザ４からのアクセスの度にＳＧＷ１に負荷がかからない。また、方法Ｂと違い、管理システム２において、容量の大きな記憶手段が不要である。つまり、プログラム動作状態リストＬＳＧのような詳細かつ多量の情報を管理する必要がなく、ＳＧＷ単位ＳＩＤとＳＧＷ単位ＳｙＳＩＤという単純かつ少量の情報の管理をするだけでよい。
【０２５８】
また、プログラム動作状態報告５０１やプログラム動作状態変更命令６０１の紛失により、プログラムの動作状態の制御が行えないときは、ユーザがＷｅｂブラウザ４を操作すればよいので、プログラムの動作状態の制御が行えるようになる。
【０２５９】
したがって、発明５−１によれば、管理システム２が、Ｗｅｂブラウザ４からのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定ステップ（Ｋ１およびＫ３）と、管理システム２が、自身に備わった情報（ＯＰ情報ＤＢ２１）を用いて、特定されたユーザに使用されるＳＧＷ１での動作状態変更命令実行ステップＤ１３の要否を確認し、Ｗｅｂブラウザ４を制御して表示させる動作状態変更命令実行要否確認表示ステップ（Ｋ１１およびＫ１３）と、管理システム２が、動作状態変更命令作成送信ステップ（Ｄ７およびＤ９）を行う旨の依頼（３０１）をＷｅｂブラウザ４から受け付ける動作状態変更処理依頼受付ステップＫ７と、管理システム２が、特定されたユーザに使用されるＳＧＷ１にプログラム動作状態報告ステップ（Ｄ１およびＤ３）を依頼するプログラム動作状態報告依頼ステップＫ９とを備え、それにより、特定されたユーザに使用されるＳＧＷ１が、プログラム動作状態報告ステップ（Ｄ１およびＤ３）を行うので、発明１および５の効果に加えて、必要と表示されたときにのみ、動作状態変更命令作成送信ステップ（Ｄ９およびＤ１１）の依頼の操作を行えば、各プログラムを理想的な動作状態にすることができるという効果が得られる。
【０２６０】
［発明５−２（動作状態変更命令実行ステップＤ１３の要否と、サービスやプログラムに及ぼす影響を表示）］
次に、発明５−２を説明する。
【０２６１】
図３３は、管理システム２の機能ブロック、図３４は、処理シーケンスを示す。
【０２６２】
図３３に示すように、管理システム２は、ＳＧＷ１での動作状態変更命令実行ステップＤ１３の影響を導出する機能を有する変更処理影響導出機能部２１Ａを備える。
【０２６３】
図３４に示すように、管理システム２が、ユーザＩＤ特定ステップＫ３の後、特定されたユーザＩＤのユーザが利用するＳＧＷ１での動作状態変更命令実行ステップＤ１３の要否を確認し（動作状態変更処理要否確認ステップＫ１１）、動作状態変更命令実行ステップＤ１３が必要ならば、特定されたユーザＩＤのユーザが利用するＳＧＷ１での動作状態変更命令実行ステップＤ１３がそのＳＧＷ１で提供中のサービスやプログラムに対して及ぼす影響を導出する（変更処理影響導出ステップＫ２１）。
【０２６４】
そして、Ｗｅｂブラウザ４を制御して、要否を表示し、動作状態変更命令実行ステップＤ１３が必要ならば、導出した影響を示す変更処理影響情報２０１を表示する（変更処理影響情報表示ステップＫ２３）。
【０２６５】
それを見たユーザが、動作状態変更命令実行ステップＤ１３を依頼する旨の操作を行うと、Ｗｅｂブラウザ４は、その依頼を示す動作状態変更処理依頼３０１を管理システム２に送信し、これを管理システム２が受信する（動作状態変更処理依頼受付ステップＫ７）。
【０２６６】
次に、変更処理影響情報２０１の作成方法の例を説明する。なお、プログラム間での依存関係はないものとする。また、サービス間依存情報２１６は、サービス構成プログラム情報２１３の更新つまり構成プログラムＩＤリストの更新、追加、削除などにより変化しないこととする。また、ここでは、発明５−１の方法Ｃを改良した方法を説明する。
【０２６７】
まず、管理システム２のＯＰ情報ＤＢ２１にＳＧＷ１毎に、方法Ｃと同様に、ＳＧＷ単位ＳＩＤとＳＧＷ単位ＳｙＳＩＤを保持する。さらに、ＳＧＷ１毎にＳＧＷプログラムリストを保持する。このＳＧＷプログラムリストは、そのＳＧＷ１で動作しているプログラムのプログラムＩＤ、そのプログラムが提供するサービスを示す契約サービスＩＤ、ＳＧＷプログラム単位ＳＩＤおよび契約フラグからなるレコードをプログラムＩＤごとに蓄積したものである。
【０２６８】
Ｏｎである契約フラグは、それを含むレコードのプログラムＩＤのプログラムを動作させるべきであることを示しており、一方、Ｏｆｆである契約フラグは、それを含むレコードのプログラムＩＤのプログラムを動作させるべきでないことを示している。
【０２６９】
また、管理システム２では、プログラムの更新時に、古いプログラムＩＤと新しいプログラムＩＤとを含むレコードが格納される更新プログラム情報２１８を備える。更新プログラム情報２１８は、ＳＧＷ１毎に備えるのでなく、各ＳＧＷ１に共通な１つの更新プログラム情報２１８を管理システム２が備える。
【０２７０】
以下、ＳＧＷプログラムリスト、ＳＧＷ単位ＳＩＤおよびＳＧＷ単位ＳｙＳＩＤの更新のタイミングについて説明する。
【０２７１】
１．ＯＰ情報ＤＢ２１が備えるユーザ契約サービス情報２１２の契約サービスＩＤリストが変更された際のタイミングで更新する場合
（ア）この場合、管理システム２では、ユーザ契約サービス情報２１２から変更に関わるユーザＩＤを読み出し、ユーザ利用ＳＧＷ情報２１１から、その読み出したユーザＩＤに対応するＳＧＷＩＤを読み出し、そのＳＧＷＩＤのＳＧＷ単位ＳＩＤを単調増加させる。
【０２７２】
（イ）次に、変更された契約サービスＩＤリストに含まれる契約サービスＩＤに対応する構成プログラムＩＤリストをサービス構成プログラム情報２１３から読み出す。
【０２７３】
（ウ−ｉ）新たに契約されたサービスの契約サービスＩＤに対応する構成プログラムＩＤリストについては、そこからプログラムＩＤを読み出し、その１つのプログラムＩＤと、対応する契約サービスＩＤと、対応するＳＧＷ単位ＳＩＤが設定されたＳＧＷプログラム単位ＳＩＤと、Ｏｎの契約フラグとを有する新たなレコードをＳＧＷプログラムリストに加える。
【０２７４】
（ウ−ｉｉ）  解約されたサービスの契約サービスＩＤに対応する構成プログラムＩＤリストについては、そこからプログラムＩＤを読み出し、そのプログラムＩＤを有するレコードをＳＧＷプログラムリストから検索し、そのレコードのＳＧＷプログラム単位ＳＩＤを、対応するＳＧＷ単位ＳＩＤで更新し、契約フラグをＯｆｆにする。
【０２７５】
２．ＯＰ情報ＤＢ２１が備えるサービス構成プログラム情報２１３の構成プログラムＩＤリストが変更された際のタイミングで更新する場合
（ア）この場合、管理システム２では、サービス構成プログラム情報２１３から変更に関わる契約サービスＩＤを読み出し、ユーザ契約サービス情報２１２から、その読み出した契約サービスＩＤに対応するユーザＩＤを読み出し、ユーザ利用ＳＧＷ情報２１１から、その読み出したユーザＩＤに対応するＳＧＷＩＤを読み出し、そのＳＧＷＩＤのＳＧＷ単位ＳＩＤを単調増加させる。
【０２７６】
（イ）次に、構成プログラムＩＤリストの変更でその構成プログラムＩＤリストから削除されたプログラムＩＤについては、そのプログラムＩＤを有するレコードをＳＧＷプログラムリストから検索し、そのレコードのＳＧＷプログラム単位ＳＩＤを、対応するＳＧＷ単位ＳＩＤで更新し、契約フラグをＯｆｆにする。
【０２７７】
（ウ）また、構成プログラムＩＤリストの変更でその構成プログラムＩＤリストに追加されたプログラムＩＤについては、そのプログラムＩＤと、対応する契約サービスＩＤと、対応するＳＧＷ単位ＳＩＤが設定されたＳＧＷプログラム単位ＳＩＤと、Ｏｎの契約フラグとを有する新たなレコードをＳＧＷプログラムリストに加える。
【０２７８】
また、変更前の構成プログラムＩＤリストに含まれるプログラムＩＤ（旧プログラムＩＤ）と、変更後の構成プログラムＩＤリストに含まれるプログラムＩＤ（新プログラムＩＤ）とからなる組で、その組の新プログラムＩＤおよび旧プログラムＩＤに対応するＳＧＷプログラムＩＤ同士が等しく、しかも、対応するバージョン同士が異なる組が存在すれば、その組の旧プログラムＩＤと新プログラムＩＤを更新プログラム情報２１８に加える。また、同様の組で、その組の新旧のプログラムＩＤに対応するＳＧＷプログラムＩＤ同士が等しく、しかも、対応するバージョン同士が等しい組が存在すれば、ＳＧＷプログラムリストにおいて、その組の新プログラムＩＤを含むレコードにＯｎの一時停止フラグを加える。
【０２７９】
（エ）次に、サービス間依存情報２１６から、その契約サービスＩＤ（サービス構成プログラム情報２１３から読み出した契約サービスＩＤ）に対応する依存サービスＩＤリストを読み出す。
【０２８０】
（ｉ）  そして、その依存サービスＩＤリスト内の各契約サービスＩＤに関して、以下を実行する。
【０２８１】
（ｉｉ）  その契約サービスＩＤをユーザが契約しているか否かをユーザ契約サービス情報２１２から調べ、契約していれば、サービス構成プログラム情報２１３から、そのユーザのユーザＩＤに対応する構成プログラムＩＤリスト（プログラムＩＤのリスト）を読み出し、ＳＧＷプログラムリストにおいて、その各プログラムＩＤを含むレコードの一時停止フラグをＯｎにする。
【０２８２】
（ｉｉｉ）  そして、その契約サービスＩＤに対応する依存サービスＩＤリストを読み出し、（ｉ）〜（ｉｉ）の処理を再帰的に行う。
【０２８３】
３．発明５−１と同様に、管理システム２は、プログラム動作状態変更命令６０１を作成した際のＳＧＷ単位ＳＩＤをプログラム動作状態変更命令６０１に含めてＳＧＷ１に送信する（動作状態変更命令送信ステップＤ１１）。
【０２８４】
ＳＧＷ１は、このプログラム動作状態変更命令６０１を受信して、動作状態変更命令実行ステップＤ１３を実行した後、プログラム動作状態変更命令６０１に含まれていたＳＧＷ単位ＳＩＤならびに動作状態変更命令実行ステップＤ１３が成功したか否かを示す処理成否を含む動作状態変更命令実行報告７０１を管理システム２に送信する。
【０２８５】
管理システム２は、受信した動作状態変更命令実行報告７０１の処理成否が成功ならば、その動作状態変更命令実行報告７０１の送信元であるＳＧＷ１のＳＧＷ単位ＳｙＳＩＤを、動作状態変更命令実行報告７０１に含まれたＳＧＷ単位ＳＩＤで更新する。
【０２８６】
発明５−１と同様、このＳＧＷ単位ＳＩＤとＳＧＷ単位ＳｙＳＩＤを用いると、ユーザが利用するＳＧＷ１での動作状態変更命令実行ステップＤ１３の要否を、ＯＰ情報ＤＢ２１を検索して即座に判別することができる。
【０２８７】
発明５−２では、さらに、ＳＧＷ単位ＳｙＳＩＤと、ＳＧＷプログラムリストにおけるＳＧＷプログラム単位ＳＩＤとを比較し、ＳＧＷ単位ＳｙＳＩＤよりＳＧＷプログラム単位ＳＩＤが大きいプログラムについては処理が必要であると判定され、それにより、以下の処理が行われる。
【０２８８】
その際のアルゴリズムの例を説明する。
【０２８９】
まず、変更処理影響導出ステップＫ２１において、ＳＧＷ単位ＳｙＳＩＤと、ＳＧＷプログラムリストにおけるＳＧＷプログラム単位ＳＩＤとを比較し、ＳＧＷ単位ＳｙＳＩＤよりＳＧＷプログラム単位ＳＩＤが大きい部分（動作状態変更処理必要リスト）をＳＧＷプログラムリストから抽出する。
【０２９０】
そして、動作状態変更処理必要リストの各エントリに含まれるプログラムＩＤのプログラムに対して行うべき処理内容を、以下の方法で、「インストール」、「更新」、「一時停止」、「アンインストール」に分類する。
【０２９１】
まず、契約フラグがＯｎのエントリを抽出し、その中のプログラムＩＤが、更新プログラム情報２１８のいずれかのレコード内の新しいプログラムＩＤに一致した場合、「更新」に分類する。
【０２９２】
それ以外のエントリで、一時停止フラグがＯｎのエントリについては、「一時停止」に分類する。
【０２９３】
次に、契約フラグがＯｆｆのエントリで、既に「インストール」、「更新」、「一時停止」に分類されていないエントリについては、「アンインストール」に分類する。
【０２９４】
そして、動作状態変更処理必要リストに基づくプログラムリストに分類結果を対応づけた変更処理影響情報２０１が作成される。
【０２９５】
変更処理影響情報表示ステップＫ２３では、このように作成された変更処理影響情報２０１が表示されるのである。
【０２９６】
よって、変更処理影響情報２０１を見たユーザは、動作状態変更命令実行ステップＤ１３を依頼する旨の操作を行うと、どのプログラムが、更新、一時停止、インストールあるいはアンインストールされるかを事前に知ることができる。
【０２９７】
ユーザは、更新や一時停止すると表示されたプログラムのいずれかが一時停止しても困らない場合は依頼の操作をし、困る場合はしないということになる。
【０２９８】
なお、ここでは、プログラムリストを表示したが、サービスのリストを表示してもよい。このリストには、契約サービスＩＤではなく、ユーザが理解しやすいサービスのメタ情報を用いるのがよい。その場合、サービス構成プログラム情報２１３の１つのエントリにメタ情報のフィールドを作り、そこにメタ情報を格納しておけばよい。メタ情報とは、例えば、サービス提供者の名前やサービス名などの文字列である。サービスのメタ情報を表示することにより、ユーザによる理解が容易になる。
【０２９９】
発明５−２によれば、どのプログラムやサービスについて、更新、一時停止、インストールあるいはアンインストールがなされるかを、ユーザに対し事前に知らせることができる。よって、一時停止して困る場合は依頼操作をし、困らない場合は依頼操作をするという選択肢をユーザに与えることができる。
【０３００】
また、プログラム動作状態報告５０１やプログラム動作状態変更命令６０１の紛失により、プログラムの動作状態の制御が行えないときは、ユーザがＷｅｂブラウザ４を操作すればよいので、プログラムの動作状態の制御が行えるようになる。
【０３０１】
［発明５−２の別の実施例（詳細SnapshotＩＤ方式の改良）］
さて、発明５−２では、図３５に示すように、変更処理影響導出ステップＫ２１が終了してからプログラム理想動作状態リスト作成ステップＤ７が終了するまでの間において、サービスを構成するプログラムが変更になったなどの理由でＯＰ情報ＤＢ２１が更新された場合（Ｌ１）、その後の動作状態変更命令実行ステップＤ１３による影響と、事前に変更処理影響導出ステップＫ２１で導出された影響とが相違する可能性がある。
【０３０２】
これを例で説明する。ＳＧＷ１のユーザは、サービスＡとサービスＢを契約していて、変更処理影響導出ステップＫ２１では、サービスＡの更新による一時停止が導出され、それが表示されていた場合、ユーザはサービスＡのみが一時停止するものだと考えて、依頼の操作を行う。
【０３０３】
しかし、変更処理影響導出ステップＫ２１の後に、サービスＢが更新されると、その後の動作状態変更命令実行ステップＤ１３では、ユーザが承知していないサービスＢまでが一時停止してしまうことになる。
【０３０４】
そこで、以下のような別の実施例が考えられる。ここでは、発明５−２における方法Ｃを例に説明する。
【０３０５】
図３６は、その処理シーケンスを示す。
【０３０６】
まず、変更処理影響情報表示ステップＫ２３では、そのときのＳＧＷ１のＳＧＷ単位ＳＩＤを通知し、以降、そのＳＧＷ単位ＳＩＤを動作状態変更処理依頼受付ステップＫ７、プログラム動作状態報告依頼ステップＫ９、プログラム動作状態報告送信ステップＤ３においても通知する。
【０３０７】
そし、プログラム動作状態報告送信ステップＤ３が行われると、まず、ＯＰ情報ＤＢ２１の変更を禁止（ロック）またはＯＰ情報ＤＢ２１の複製（コピー）を確保する。そして、直前のプログラム動作状態報告送信ステップＤ３で通知されたＳＧＷ単位ＳＩＤと、この通知元のＳＧＷ１について管理システム２に保持されたＳＧＷ単位ＳＩＤとを比較し（Ｄ６）、保持されたＳＧＷ単位ＳＩＤが通知されたＳＧＷ単位ＳＩＤより大きい場合、ＯＰ情報ＤＢ２１をロックしてあったならそれを解除し、プログラム理想動作状態リスト作成ステップＤ７および以降の処理を中止する。一方、両者が同じ場合、ＯＰ情報ＤＢ２１をロックしてあったならそれをプログラム理想動作状態リスト作成ステップＤ７の終了後に解除し、動作状態変更命令作成ステップＤ９および以降の処理を実行する。
【０３０８】
つまり、ＯＰ情報ＤＢ２１が更新される（Ｌ１）と、その変更が影響するＳＧＷ１について管理システム２に保持されたＳＧＷ単位ＳＩＤが単調増加する（Ｌ２）ので、保持されたＳＧＷ単位ＳＩＤが通知されたＳＧＷ単位ＳＩＤより大きくなり、動作状態変更命令作成ステップＤ９および以降の処理が中止される。つまり、ユーザが承知していない処理が実行されるのを防ぐことができる。
【０３０９】
なお、図３７に示すように、このようなＳＧＷ単位ＳＩＤの比較とその結果による以降の処理についての実行制御は、プログラム動作状態報告送信ステップＤ３のときだけではなく、動作状態変更処理依頼受付ステップＫ７が行われたときにおいても実行するのがよい。
【０３１０】
これにより、変更処理影響導出ステップＫ２１が終了してから、動作状態変更処理依頼受付ステップＫ７の間にＯＰ情報ＤＢ２１が変更されると、プログラム動作状態報告依頼ステップＫ９からプログラム動作状態報告送信ステップＤ３までの間の処理が不要となり、この処理も中止することで、管理システム２とＳＧＷ１の負担軽減が図れる。
【０３１１】
また、プログラム動作状態報告５０１やプログラム動作状態変更命令６０１の紛失により、プログラムの動作状態の制御が行えないときは、ユーザがＷｅｂブラウザ４を操作すればよいので、プログラムの動作状態の制御が行えるようになる。
【０３１２】
したがって、発明５−２によれば、管理システム２が、Ｗｅｂブラウザ４からのアクセスを受け付け、その後のユーザ認証によりユーザを特定するユーザ特定ステップ（Ｋ１およびＫ３）と、管理システム２が、自身に備わった情報（ＯＰ情報ＤＢ２１）を用いて、特定されたユーザに使用されるＳＧＷ１で動作状態変更命令実行ステップＤ１３を行ったときの影響を導出し、Ｗｅｂブラウザ４を制御して表示させる変更処理影響導出表示ステップ（Ｋ２１およびＫ２３）と、管理システム２が、動作状態変更命令作成送信ステップ（Ｄ７およびＤ９）を行う旨の依頼（３０１）をＷｅｂブラウザ４から受け付ける動作状態変更処理依頼受付ステップ（Ｋ７）と、管理システム２が、特定されたユーザに使用されるＳＧＷ１にプログラム動作状態報告ステップ（Ｄ１およびＤ３）を依頼するプログラム動作状態報告依頼ステップ（Ｋ９）とを備え、それにより、特定されたユーザに使用されるＳＧＷ１が、プログラム動作状態報告ステップ（Ｄ１およびＤ３）を行うので、発明１および５の効果に加えて、影響を見て必要と判断したときにのみ、動作状態変更命令作成送信ステップ（Ｄ９およびＤ１１）の依頼の操作を行えば、各プログラムを理想的な動作状態にすることができるという効果が得られる。
【０３１３】
［発明６：ＳＧＷ状態報告番号をプログラム動作状態報告に含め、それを含むプログラム動作状態変更命令のみを実行する］
次に、発明６を説明する。ここでも、発明１を前提にするが、発明１としては、発明１−１と発明１−２のどちらを実施してもよく、また、発明２〜５のいずれかを合わせて実施してもよい。
【０３１４】
発明６では、ＳＧＷ状態報告番号という番号がＳＧＷ１の記憶領域に記憶されていることとする。ＳＧＷ状態報告番号は、例えば、ＳＧＷ１が起動または再起動した際に初期化され、プログラム動作状態報告送信ステップＤ３ごとに単調増加されるものである。
【０３１５】
ＳＧＷ１が、プログラム動作状態報告送信ステップＤ３の際に、記憶領域からＳＧＷ状態報告番号を読み出し、これを単調増加させてプログラム動作状態報告５０１に含ませ、管理システム２に送信するとともに、その単調増加後のＳＧＷ状態報告番号で記憶領域のＳＧＷ状態報告番号を更新する。
【０３１６】
管理システム２は、受信したプログラム動作状態報告５０１に含まれたＳＧＷ状態報告番号を、対応するプログラム動作状態変更命令６０１に含ませてＳＧＷ１に送信する。
【０３１７】
ＳＧＷ１は、受信したプログラム動作状態変更命令６０１に含まれたＳＧＷ状態報告番号と、記憶領域に記憶されているＳＧＷ状態報告番号とが等しい場合には、動作状態変更命令実行ステップＤ１３を行い、等しくない場合には、動作状態変更命令実行ステップＤ１３を中止する。
【０３１８】
ここで、発明６との比較のために、図３８に示すような場合を考える。つまり、発明１のプログラム動作状態報告送信ステップＤ３（プログラム動作状態報告送信ステップＤ３１という）が終了してから、それに対応する動作状態変更命令実行ステップＤ１３（動作状態変更命令実行ステップＤ１３１という）が終了するまでの間に、別のプログラム動作状態報告送信ステップＤ３（プログラム動作状態報告送信ステップＤ３２という）が実行される場合である。
【０３１９】
この場合、プログラム動作状態報告送信ステップＤ３２に対応する動作状態変更命令実行ステップＤ１３（動作状態変更命令実行ステップＤ１３２という）もいずれ実施される。
【０３２０】
しかしながら、発明６では、図３９に示すように、動作状態変更命令実行ステップＤ１３１が中止され、動作状態変更命令実行ステップＤ１３２が実行される。
【０３２１】
まず、プログラム動作状態報告送信ステップＤ３１で送信されるプログラム動作状態報告依頼４０１に含まれたＳＧＷ状態報告番号が「１０１」である場合、ＳＧＷ状態報告番号の更新により、そのときの記憶領域にはＳＧＷ状態報告番号「１０２」が記憶され、プログラム動作状態報告送信ステップＤ３２で送信されるプログラム動作状態報告依頼４０１に含まれるＳＧＷ状態報告番号は「１０２」となる。また、プログラム動作状態報告送信ステップＤ３１に対応する動作状態変更命令送信ステップＤ１１（動作状態変更命令送信ステップＤ１１１という）で送信されるプログラム動作状態変更命令６０１に含まれるＳＧＷ状態報告番号は「１０１」となる。このＳＧＷ状態報告番号「１０１」と、記憶されたＳＧＷ状態報告番号は「１０２」とは等しくなく、よって、動作状態変更命令実行ステップＤ１３１が中止される。一方、プログラム動作状態報告送信ステップＤ３２に対応する動作状態変更命令送信ステップＤ１１（動作状態変更命令送信ステップＤ１１２）で送信されるプログラム動作状態変更命令６０１に含まれるＳＧＷ状態報告番号は「１０２」なので、このＳＧＷ状態報告番号「１０２」と、記憶されたＳＧＷ状態報告番号は「１０２」とは等しく、よって、動作状態変更命令実行ステップＤ１３２が実行される。
【０３２２】
よって、発明６によれば、動作状態変更命令実行ステップＤ１３１のみが実行されるので、ＳＧＷ１での負担軽減が図れる。
【０３２３】
さらに、発明６では、ＳＧＷ１での負担軽減のみならず、ＳＧＷ１が理想的な動作状態にできなくなってしまう不都合を防止することができる。これを具体的に説明する。
【０３２４】
図３８や図３９に示すように、プログラム動作状態報告送信ステップＤ３１が終了してから、動作状態変更命令実行ステップＤ１３１が終了するまでの間に、プログラム動作状態報告送信ステップＤ３２が実行される場合においては、さらに、プログラム動作状態報告送信ステップＤ３１が終了してから、プログラム動作状態報告送信ステップＤ３２が実行されるまでの間に、ＳＧＷ１の状態が変化する場合がある。ここで、変化前の状態を「状態１」、変化後の状態を「状態２」という。
【０３２５】
この場合、「状態２」にも関わらず、「状態１」を基にした動作状態変更命令実行ステップＤ１３１が実行され、これにより、「状態１’」となってしまう。そして、さらに、「状態１’」にも関わらず、「状態２」を基にした動作状態変更命令実行ステップＤ１３２が実行され、これにより、ＳＧＷ１は、「状態２」を基に導出された理想状態とはほど遠い状態となってしまう可能性がある。
【０３２６】
しかし、図３９に示すように、発明６では、「状態２」を基にした動作状態変更命令実行ステップＤ１３１のみが実行されるので、ＳＧＷ１を、「状態２」を基に導出された理想状態にすることができる。
【０３２７】
なお、プログラム動作状態報告送信ステップＤ３１が終了してから、動作状態変更命令実行ステップＤ１３１が終了するまでの間に、プログラム動作状態報告送信ステップＤ３２が実行されるのは、例えば、発明３や発明４において、１回目のＳＧＷ１や機器３への操作に対応するプログラム動作状態報告送信ステップＤ３１が終了してから、それに対応する動作状態変更命令実行ステップＤ１３１が終了するまでの間に、２回目の操作に対応するプログラム動作状態報告送信ステップＤ３２が実行される場合などである。
【０３２８】
また、発明２や発明５でも同様なことが発生しうる。つまり、Ｗｅｂブラウザ４からの動作状態変更処理依頼受付ステップＫ７によるプログラム動作状態報告送信ステップＤ３１が終了してから、それに対応する動作状態変更命令実行ステップＤ１３１が終了するまでの間に、ＳＧＷ１の再起動ならびにその再起動によるプログラム動作状態報告送信ステップＤ３２が実行される場合がある。
【０３２９】
したがって、発明６によれば、プログラム動作状態報告ステップ（Ｄ１およびＤ３）では、ＳＧＷ１が、予め記憶された状態報告番号（ＳＧＷ状態報告番号）を読み出し単調増加させ、それを含むプログラム動作状態報告５０１を管理システム２に送信するとともに、予め記憶された状態報告番号を単調増加後の状態報告番号で更新し、動作状態変更命令作成送信ステップ（Ｄ９およびＤ１１）では、管理システム２が、作成されるプログラム動作状態変更命令６０１に対応するプログラム動作状態報告５０１に含まれた状態報告番号をプログラム動作状態変更命令６０１に含ませてＳＧＷ１に送信し、ＳＧＷ１は、送信されたプログラム動作状態変更命令６０１内の状態報告番号と、更新された状態報告番号とが互いに等しくないときは、動作状態変更命令実行ステップＤ１３を中止するので、発明１の効果に加えて、サービスゲートウェイでの負荷軽減が図れるという効果が得られる。
【０３３０】
また、仮に、状態報告番号が互いに等しくない場合の動作状態変更命令実行ステップ（Ｄ１３１）が中止されずに行われたとすると、状態報告番号が互いに等しい場合の動作状態変更命令実行ステップ（Ｄ１３２）をもってしても理想的な動作状態にできないという不都合が生じるが、状態報告番号が互いに等しくない場合の動作状態変更命令実行ステップ（Ｄ１３１）を中止することで、この不都合を防止することができる。
【０３３１】
［発明６−１：ランダムなＳＧＷ状態報告番号をプログラム動作状態報告に含め、それを含むプログラム動作状態変更命令のみを実行する］
次に、発明６−１を説明する。ここでは、発明６との差異を説明する。
【０３３２】
発明６−１では、ＳＧＷ１が起動または再起動してから、最初のプログラム動作状態報告依頼４０１の作成が終了するまでの間にＳＧＷ状態報告番号の初期値としてランダムな値を設定する。
【０３３３】
ここで、発明６−１との比較のために、図４０に示すような場合を考える。つまり、発明６において、ＳＧＷ１の起動によるプログラム動作状態報告送信ステップＤ３１が終了してから、それに対応する動作状態変更命令実行ステップＤ１３１が終了するまでの間に、ＳＧＷ１の再起動ならびにその再起動によるプログラム動作状態報告送信ステップＤ３２が実行される場合があり、初期値を一定にすると、プログラム動作状態報告送信ステップＤ３１で送信されるＳＧＷ状態報告番号と、プログラム動作状態報告送信ステップＤ３２で送信されるＳＧＷ状態報告番号とが等しくなり、これにより、動作状態変更命令実行ステップＤ１３１と動作状態変更命令実行ステップＤ１３２の両方が実行されてしまう。
【０３３４】
しかしながら、発明６−１では、図４１に示すように、初期値をランダムな値としているので、プログラム動作状態報告送信ステップＤ３１で送信されるＳＧＷ状態報告番号と、プログラム動作状態報告送信ステップＤ３２で送信されるＳＧＷ状態報告番号とが等しくなる確率は非常に低く、これにより、実質的に動作状態変更命令実行ステップＤ１３１と動作状態変更命令実行ステップＤ１３２の両方が実行されてしまうのを防ぐことができる。
【０３３５】
したがって、発明６−１によれば、プログラム動作状態報告ステップ（Ｄ１およびＤ３）では、ＳＧＷ１が、ランダムな状態報告番号（ＳＧＷ状態報告番号）を含むプログラム動作状態報告５０１を管理システム２に送信するとともに当該状態報告番号を記憶し、動作状態変更命令作成送信ステップ（Ｄ９およびＤ１１）では、管理システム２が、作成されるプログラム動作状態変更命令６０１に対応するプログラム動作状態報告５０１に含まれた状態報告番号をプログラム動作状態変更命令６０１に含ませてＳＧＷ１に送信し、送信されたプログラム動作状態変更命令６０１内の状態報告番号と、記憶された状態報告番号とが互いに等しくないときは、動作状態変更命令実行ステップＤ１３を中止するので、発明１と６の効果に加えて、以下のような、不都合が発生する可能性を下げる効果、つまり、サービスゲートウェイの起動などに伴う状態報告番号の初期化により、等しくない動作状態の状態報告番号が等しくなってしまい、その場合の動作状態変更命令実行ステップＤ１３により理想的な動作状態にできないという不都合が発生する可能性を下げる効果が得られる。
【０３３６】
なお、ＳＧＷ１や管理システム２をコンピュータにより実現するためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納し、陳列などして流通させたり、当該コンピュータプログラムをインターネットなどの通信網を介して伝送させてもよい。
【図面の簡単な説明】
【０３３７】
【図１】全体図（発明１−１）
【図２】ＳＧＷ１の機能ブロック（発明１−１）
【図３】ＳＧＷ１の具体的な機能ブロック（発明１−１）
【図４】管理システム２の機能ブロック（発明１−１）
【図５】ＯＰ情報ＤＢ２１が備えるユーザ利用ＳＧＷ情報２１１の例（発明１−１）
【図６】ＯＰ情報ＤＢ２１が備えるユーザ契約サービス情報２１２の例（発明１−１）
【図７】ＯＰ情報ＤＢ２１が備えるサービス構成プログラム情報２１３の例（発明１−１）
【図８】ＯＰ情報ＤＢ２１が備えるプログラム情報２１４の例（発明１−１）
【図９】処理シーケンス（発明１−１：プログラム理想動作状態リストＬＩをプログラム動作状態報告５０１受信時に作成）
【図１０】処理シーケンス（発明１−１：プログラム理想動作状態リストＬＩをＯＰ情報ＤＢ２１更新時に作成）
【図１１】管理システム２での処理フロー（発明１−１：プログラム理想動作状態リストＬＩをプログラム動作状態報告５０１受信時に作成）
【図１２】管理システム２での処理フロー（発明１−１：プログラム理想動作状態リストＬＩをＯＰ情報ＤＢ２１更新時に作成）
【図１３】プログラム動作状態変更命令６０１の作成方法についての処理フローの例
【図１４】管理システム２の機能ブロック（発明１−２）
【図１５】ＯＰ情報ＤＢ２１が備えるプログラム情報２１４の例（発明１−２）
【図１６】ＯＰ情報ＤＢ２１が備えるプログラム情報２１４の例（発明１−２）
【図１７】処理シーケンス（発明１−１）
【図１８】処理シーケンス（発明１−２）
【図１９】ＯＰ情報ＤＢ２１が備えるプログラム間依存情報２１５の例（発明１−２）
【図２０】ＯＰ情報ＤＢ２１が備えるサービス間依存情報２１６の例（発明１−２）
【図２１】処理シーケンス（発明２）
【図２２】処理シーケンス（発明２−１）
【図２３】ＳＧＷ１の機能ブロック（発明３）
【図２４】処理シーケンス（発明３）
【図２５】全体図（発明４）
【図２６】ＳＧＷ１の機能ブロック（発明４）
【図２７】処理シーケンス（発明４）
【図２８】全体図（発明５）
【図２９】管理システム２の機能ブロック（発明５）
【図３０】処理シーケンス（発明５）
【図３１】管理システム２の機能ブロック（発明５−１）
【図３２】処理シーケンス（発明５−１）
【図３３】管理システム２の機能ブロック（発明５−２）
【図３４】処理シーケンス（発明５−２）
【図３５】処理シーケンス（発明５−２）
【図３６】処理シーケンス（発明５−２）
【図３７】処理シーケンス（発明５−２）
【図３８】処理シーケンス（発明１）
【図３９】処理シーケンス（発明６）
【図４０】処理シーケンス（発明６）
【図４１】処理シーケンス（発明６−１）
【図４２】従来の方法のシーケンス
【符号の説明】
【０３３８】
１…サービスゲートウェイ（ＳＧＷ）
２…管理システム
３…機器
４…Ｗｅｂブラウザ
１１…管理システム送受信機能部
１２…プログラム状態制御機能部
１３…プログラム動作状態収集機能部
１４…ボタン操作検出機能部
１５…操作通知検出機能部
２１…オペレーション情報蓄積データベース（ＯＰ情報ＤＢ）
２１Ａ…変更処理影響導出機能部
２２…理想動作状態導出機能部
２３…動作変更命令作成機能部
２５…配信プログラムファイル蓄積サーバ
２６…Ｗｅｂページ管理機能部
２７…Ｗｅｂサーバ
２８…アクセスユーザ認証機能部
２９…動作状態変更処理依頼受付機能部
１０１…プログラム実行環境提供部
１０２…ＳＧＷ動作管理プログラム
１０３…機器制御プログラム
２０１…変更処理影響情報
２１０…動作状態変更処理要否確認機能部
２１１…ユーザ利用ＳＧＷ情報
２１２…ユーザ契約サービス情報
２１３…サービス構成プログラム情報
２１４…プログラム情報
２１５…プログラム間依存情報
２１６…サービス間依存情報
２１８…更新プログラム情報
３０１…動作状態変更処理依頼
４０１…プログラム動作状態報告依頼
５０１…プログラム動作状態報告
６０１…プログラム動作状態変更命令
７０１…動作状態変更命令実行報告
Ｃ７…プログラム起動抑制ステップ
Ｄ１…プログラム動作状態リスト作成ステップ
Ｄ３…プログラム動作状態報告送信ステップ
Ｄ５…プログラム動作状態報告受信ステップ
Ｄ７…プログラム理想動作状態リスト作成ステップ
Ｄ９…動作状態変更命令作成ステップ
Ｄ１１…動作状態変更命令送信ステップ
Ｄ１３…動作状態変更命令実行ステップ
Ｋ７…動作状態変更処理依頼受付ステップ
Ｋ９…プログラム動作状態報告依頼ステップ
Ｋ１１…動作状態変更処理要否確認ステップ
Ｋ１３…変更処理要否情報表示ステップ
Ｋ２１…変更処理影響導出ステップ
Ｋ２３…変更処理影響情報表示ステップ
ＬＩ…プログラム理想動作状態リスト
ＬＳＧ…プログラム動作状態リスト
Ｔ１…ボタン操作検出ステップ
Ｔ１１…操作検出ステップ
Ｔ１３…操作通知ステップ
Ｔ１５…操作通知検出ステップ
【図１】
0004684118.tif 000002
【図２】
0004684118.tif 000003
【図３】
0004684118.tif 000004
【図４】
0004684118.tif 000005
【図５】
0004684118.tif 000006
【図６】
0004684118.tif 000007
【図７】
0004684118.tif 000008
【図８】
0004684118.tif 000009
【図９】
0004684118.tif 000010
【図１０】
0004684118.tif 000011
【図１１】
0004684118.tif 000012
【図１２】
0004684118.tif 000013
【図１３】
0004684118.tif 000014
【図１４】
0004684118.tif 000015
【図１５】
0004684118.tif 000016
【図１６】
0004684118.tif 000017
【図１７】
0004684118.tif 000018
【図１８】
0004684118.tif 000019
【図１９】
0004684118.tif 000020
【図２０】
0004684118.tif 000021
【図２１】
0004684118.tif 000022
【図２２】
0004684118.tif 000023
【図２３】
0004684118.tif 000024
【図２４】
0004684118.tif 000025
【図２５】
0004684118.tif 000026
【図２６】
0004684118.tif 000027
【図２７】
0004684118.tif 000028
【図２８】
0004684118.tif 000029
【図２９】
0004684118.tif 000030
【図３０】
0004684118.tif 000031
【図３１】
0004684118.tif 000032
【図３２】
0004684118.tif 000033
【図３３】
0004684118.tif 000034
【図３４】
0004684118.tif 000035
【図３５】
0004684118.tif 000036
【図３６】
0004684118.tif 000037
【図３７】
0004684118.tif 000038
【図３８】
0004684118.tif 000039
【図３９】
0004684118.tif 000040
【図４０】
0004684118.tif 000041
【図４１】
0004684118.tif 000042
【図４２】
0004684118.tif 000043