(57)【特許請求の範囲】
【請求項１】
ゲートウェイからデバイスを遠隔制御するプログラムを当該ゲートウェイにインストールするためのインストール命令が当該ゲートウェイに送信されたときの送信元が予め定められた管理システムのときに限り、当該ゲートウェイが当該インストール命令内の１以上の権限マクロで構成される権限マクロ群により示される１以上の権限を当該プログラムに付与する場合のゲートウェイ管理方法であって、
前記管理システムは、前記ゲートウェイにインストールできるプログラムを提供するプロバイダにより管理されるプロバイダサーバから送信されるプログラムと権限マクロ群とが記憶されるレコードで構成されるプログラム情報テーブルと、前記ゲートウェイに送信されるプログラムへ付与することを許可または禁止されている権限を示す１以上の権限マクロの定義で構成される権限マクロ定義リストとを備え、
前記管理システムに構成された管理部が、前記プログラム情報テーブルにおいて、前記ゲートウェイにインストールできるプログラムを提供するプロバイダにより管理されるプロバイダサーバから送信されたプログラムと権限マクロ群とを含むレコードを作成し、
前記管理システムに構成された権限付与適否判定部が、前記作成されたレコードのプログラムに当該レコードの権限マクロ群に応じた権限が付与されることの適否を当該権限マクロ群と前記権限マクロ定義リストとにより判定し、
前記管理システムに構成されたゲートウェイインタフェース部が、前記判定で肯定的な判定結果が得られた場合に当該プログラムが記憶された場所を示すＵＲＬと当該権限マクロ群を含むインストール命令をゲートウェイに送信し、
前記管理システムに構成されたプログラム配信部が、前記ゲートウェイからの前記ＵＲＬによるアクセスがあった場合、前記ＵＲＬの場所に記憶されたプログラムを当該ゲートウェイに送信する
ことを特徴とするゲートウェイ管理方法。
【請求項２】
前記ゲートウェイは、
該ゲートウェイに接続されたデバイスのアドレスと当該デバイスを遠隔制御するプログラムのプログラム識別名が記憶されるレコードで構成されるデバイス情報テーブルを備え、
当該ゲートウェイに送信されたインストール命令内の通信に関わる権限マクロにつき、前記デバイス情報テーブルから、当該権限マクロ内のプログラム識別名を含むレコードを検索し、当該権限マクロを、当該検索されたレコード内のアドレスを含む権限マクロに置き換え、当該置き換え後の権限マクロに応じた権限を、当該インストール命令内のＵＲＬにより送信されたプログラムに付与する
ことを特徴とする請求項１記載のゲートウェイ管理方法。
【請求項３】
前記ゲートウェイは、
該ゲートウェイに接続されたデバイスのアドレスと当該アドレスの種類を示すアドレス種情報と当該デバイスを遠隔制御するプログラムのプログラム識別名が記憶されるレコードで構成されるデバイス情報テーブルを備え、
当該ゲートウェイに送信されたインストール命令内の通信に関わる権限マクロにつき、前記デバイス情報テーブルから、当該権限マクロ内の予め決められた位置の文字列と当該インストール命令内のプログラム識別名とを含むレコードを検索し、当該権限マクロを、当該検索されたレコード内のアドレスを含む権限マクロに置き換え、当該置き換え後の権限マクロに応じた権限を、当該インストール命令内のＵＲＬにより送信されたプログラムに付与する
ことを特徴とする請求項１記載のゲートウェイ管理方法。
【請求項４】
前記ゲートウェイは、
該ゲートウェイに送信されたインストール命令内のプログラム識別名またはプロバイダ名に応じた記憶領域名で記憶領域を作成し、当該インストール命令内の記憶領域へのアクセスに関わる権限マクロを、当該記憶領域名を含む権限マクロに置き換え、当該置き換え後の権限マクロに応じた権限を、当該インストール命令内のＵＲＬにより送信されたプログラムに付与する
ことを特徴とする請求項１記載のゲートウェイ管理方法。
【請求項５】
前記ゲートウェイに構成されたエージェントとプログラムの間でアプリケーションプログラムインタフェースを介してメッセージを送受し、
前記管理システムとプロバイダサーバの間でアプリケーションプログラムインタフェースを介して前記メッセージを送受する
ことを特徴とする請求項１記載のゲートウェイ管理方法。
【請求項６】
前記ゲートウェイにおいてオペレーションシステム、Ｊａｖａ（登録商標）のＶＭ、ＯＳＧｉで構成された実行環境が権限付与を行うことを特徴とする請求項１ないし４のいずれかに記載のゲートウェイ管理方法。
【請求項７】
ゲートウェイからデバイスを遠隔制御するプログラムを当該ゲートウェイにインストールするためのインストール命令が当該ゲートウェイに送信されたときの送信元が予め定められた管理システムのときに限り、当該ゲートウェイが当該インストール命令内の１以上の権限マクロで構成される権限マクロ群により示される１以上の権限を当該プログラムに付与する場合の当該管理システムであって、
前記ゲートウェイにインストールできるプログラムを提供するプロバイダにより管理されるプロバイダサーバから送信されるプログラムと権限マクロ群とが記憶されるレコードで構成されるプログラム情報テーブルと、
前記ゲートウェイに送信されるプログラムへ付与することを許可または禁止されている権限を示す１以上の権限マクロの定義で構成される権限マクロ定義リストと、
前記プログラム情報テーブルにおいて、前記ゲートウェイにインストールできるプログラムを提供するプロバイダにより管理されるプロバイダサーバから送信されたプログラムと権限マクロ群とを含むレコードを作成する管理部と、
前記作成されたレコードのプログラムに当該レコードの権限マクロ群に応じた権限が付与されることの適否を当該権限マクロ群と前記権限マクロ定義リストとにより判定する権限付与適否判定部と、
前記判定で肯定的な判定結果が得られた場合に当該プログラムが記憶された場所を示すＵＲＬと当該権限マクロ群を含むインストール命令をゲートウェイに送信するゲートウェイインタフェース部と、
前記ゲートウェイからの前記ＵＲＬによるアクセスがあった場合、前記ＵＲＬの場所に記憶されたプログラムを当該ゲートウェイに送信するプログラム配信部と
を備えることを特徴とする管理システム。
【請求項８】
請求項１ないし６のいずれかに記載のゲートウェイ管理方法を管理システムまたは管理システムとゲートウェイに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロバイダにより提供されるプログラム間での動作妨害を防止できるゲートウェイ管理方法に関するものである。
【背景技術】
【０００２】
近年では、個人宅の各種家電機器などのデバイスがゲートウェイなる装置により制御される。例えば、非特許文献１では、ゲートウェイにＪａｖａ（登録商標）ベースのフレームワークを配置し、その上でバンドルなるプログラムをインストールおよび実行して、デバイスを制御する仕組みが提案されている。
【０００３】
また、特許文献１には、管理システムからゲートウェイへのプログラム送信や、管理システムとゲートウェイの間でのデータ交換についての記載がある。
【０００４】
また、特許文献２には、デバイスからの情報取得やデバイスへの情報提示についての記載がある。
【特許文献１】特開２００３−２７１４８０号公報
【特許文献２】特許第００３６８８５７５号の明細書
【非特許文献１】OSGi Service Platform, The OSGi Alliance, Release 3, ISBN1586033155, ISBN4274905594 C3055(ページ３９〜ページ８７（４．２３節の冒頭））
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、非特許文献１では、複数のプロバイダにより提供されるプログラムが同一のゲートウェイで動作する場合についての記載がない。また、特許文献１では、そのようなプログラム間での動作妨害を配慮した記載がない。また、特許文献２では、かかる動作妨害を検出し、それを電子メールで通知する記載があるが、動作妨害を防止する記載がない。  本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、複数のプロバイダにより提供されるプログラム間での動作妨害を防止できるゲートウェイ管理方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、請求項１の本発明は、ゲートウェイからデバイスを遠隔制御するプログラムを当該ゲートウェイにインストールするためのインストール命令が当該ゲートウェイに送信されたときの送信元が予め定められた管理システムのときに限り、当該ゲートウェイが当該インストール命令内の１以上の権限マクロで構成される権限マクロ群により示される１以上の権限を当該プログラムに付与する場合のゲートウェイ管理方法であって、前記管理システムは、前記ゲートウェイにインストールできるプログラムを提供するプロバイダにより管理されるプロバイダサーバから送信されるプログラムと権限マクロ群とが記憶されるレコードで構成されるプログラム情報テーブルと、前記ゲートウェイに送信されるプログラムへ付与することを許可または禁止されている権限を示す１以上の権限マクロの定義で構成される権限マクロ定義リストとを備え、前記管理システムに構成された管理部が、前記プログラム情報テーブルにおいて、前記ゲートウェイにインストールできるプログラムを提供するプロバイダにより管理されるプロバイダサーバから送信されたプログラムと権限マクロ群とを含むレコードを作成し、前記管理システムに構成された権限付与適否判定部が、前記作成されたレコードのプログラムに当該レコードの権限マクロ群に応じた権限が付与されることの適否を当該権限マクロ群と前記権限マクロ定義リストとにより判定し、前記管理システムに構成されたゲートウェイインタフェース部が、前記判定で肯定的な判定結果が得られた場合に当該プログラムが記憶された場所を示すＵＲＬと当該権限マクロ群を含むインストール命令をゲートウェイに送信し、前記管理システムに構成されたプログラム配信部が、前記ゲートウェイからの前記ＵＲＬによるアクセスがあった場合、前記ＵＲＬの場所に記憶されたプログラムを当該ゲートウェイに送信することを特徴とするゲートウェイ管理方法をもって解決手段とする。
【０００７】
請求項２の本発明は、前記ゲートウェイは、該ゲートウェイに接続されたデバイスのアドレスと当該デバイスを遠隔制御するプログラムのプログラム識別名が記憶されるレコードで構成されるデバイス情報テーブルを備え、当該ゲートウェイに送信されたインストール命令内の通信に関わる権限マクロにつき、前記デバイス情報テーブルから、当該権限マクロ内のプログラム識別名を含むレコードを検索し、当該権限マクロを、当該検索されたレコード内のアドレスを含む権限マクロに置き換え、当該置き換え後の権限マクロに応じた権限を、当該インストール命令内のＵＲＬにより送信されたプログラムに付与することを特徴とする請求項１記載のゲートウェイ管理方法をもって解決手段とする。
【０００８】
請求項３の本発明は、前記ゲートウェイは、該ゲートウェイに接続されたデバイスのアドレスと当該アドレスの種類を示すアドレス種情報と当該デバイスを遠隔制御するプログラムのプログラム識別名が記憶されるレコードで構成されるデバイス情報テーブルを備え、当該ゲートウェイに送信されたインストール命令内の通信に関わる権限マクロにつき、前記デバイス情報テーブルから、当該権限マクロ内の予め決められた位置の文字列と当該インストール命令内のプログラム識別名とを含むレコードを検索し、当該権限マクロを、当該検索されたレコード内のアドレスを含む権限マクロに置き換え、当該置き換え後の権限マクロに応じた権限を、当該インストール命令内のＵＲＬにより送信されたプログラムに付与することを特徴とする請求項１記載のゲートウェイ管理方法をもって解決手段とする。
【０００９】
請求項４の本発明は、前記ゲートウェイは、該ゲートウェイに送信されたインストール命令内のプログラム識別名またはプロバイダ名に応じた記憶領域名で記憶領域を作成し、当該インストール命令内の記憶領域へのアクセスに関わる権限マクロを、当該記憶領域名を含む権限マクロに置き換え、当該置き換え後の権限マクロに応じた権限を、当該インストール命令内のＵＲＬにより送信されたプログラムに付与することを特徴とする請求項１記載のゲートウェイ管理方法をもって解決手段とする。
【００１０】
請求項５の本発明は、前記ゲートウェイに構成されたエージェントとプログラムの間でアプリケーションプログラムインタフェースを介してメッセージを送受し、前記管理システムとプロバイダサーバの間でアプリケーションプログラムインタフェースを介して前記メッセージを送受することを特徴とする請求項１記載のゲートウェイ管理方法をもって解決手段とする。
【００１１】
請求項６の本発明は、前記ゲートウェイにおいてオペレーションシステム、Ｊａｖａ（登録商標）のＶＭ、ＯＳＧｉで構成された実行環境が権限付与を行うことを特徴とする請求項１ないし４のいずれかに記載のゲートウェイ管理方法をもって解決手段とする。
【００１２】
請求項７の本発明は、ゲートウェイからデバイスを遠隔制御するプログラムを当該ゲートウェイにインストールするためのインストール命令が当該ゲートウェイに送信されたときの送信元が予め定められた管理システムのときに限り、当該ゲートウェイが当該インストール命令内の１以上の権限マクロで構成される権限マクロ群により示される１以上の権限を当該プログラムに付与する場合の当該管理システムであって、前記ゲートウェイにインストールできるプログラムを提供するプロバイダにより管理されるプロバイダサーバから送信されるプログラムと権限マクロ群とが記憶されるレコードで構成されるプログラム情報テーブルと、前記ゲートウェイに送信されるプログラムへ付与することを許可または禁止されている権限を示す１以上の権限マクロの定義で構成される権限マクロ定義リストと、前記プログラム情報テーブルにおいて、前記ゲートウェイにインストールできるプログラムを提供するプロバイダにより管理されるプロバイダサーバから送信されたプログラムと権限マクロ群とを含むレコードを作成する管理部と、前記作成されたレコードのプログラムに当該レコードの権限マクロ群に応じた権限が付与されることの適否を当該権限マクロ群と前記権限マクロ定義リストとにより判定する権限付与適否判定部と、前記判定で肯定的な判定結果が得られた場合に当該プログラムが記憶された場所を示すＵＲＬと当該権限マクロ群を含むインストール命令をゲートウェイに送信するゲートウェイインタフェース部と、前記ゲートウェイからの前記ＵＲＬによるアクセスがあった場合、前記ＵＲＬの場所に記憶されたプログラムを当該ゲートウェイに送信するプログラム配信部とを備えることを特徴とする管理システムをもって解決手段とする。
【００１３】
請求項８の本発明は、請求項１ないし６のいずれかに記載のゲートウェイ管理方法を管理システムまたは管理システムとゲートウェイに実行させるコンピュータプログラムをもって解決手段とする。
【発明の効果】
【００１４】
本発明によれば、インストール命令の送信元を管理システムに限り、その管理システムでは権限付与の適否を判定することで、複数のプロバイダにより提供されるプログラム間での動作妨害を生じさせる虞のある権限付与を防止でき、よって、かかる動作妨害を防止することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面を参照して説明する。
【００１６】
図１は、本発明の実施の形態に係るシステム構成図である。
【００１７】
管理システム１は、各ユーザ宅に配置されたホームゲートウェイと称される装置（ゲートウェイという）２に対し、インターネットなどの通信網Ｎ１を介して接続される。また、ゲートウェイ２は、ホームネットワークと称される通信網ＨＮを介して、各種家電機器やＡＶ機器などのデバイス３に接続される。また、ゲートウェイ２のユーザが使用するコンピュータ４と管理システム１は通信網Ｎ２（通信網Ｎ１と共通でもよい）で接続される。また、ゲートウェイ２で実行されるプログラムを提供（立案や作成や販売など）するプロバイダにより管理されるプロバイダサーバ５と管理システム１は通信網Ｎ３（通信網Ｎ１やＮ２と共通でもよい）で接続される。
【００１８】
ゲートウェイ２は、ここでは、図２に示すような、オペレーティングシステム、Ｊａｖａ（登録商標）のＶＭ、ＯＳＧｉ（または相当のミドルウェア）で構成される実行環境２１と、ここでは、ＯＳＧｉのバンドル（プログラム）で構成されるエージェント２２と、エージェント２２と他のプログラム間のインタフェースであるアプリケーションプログラムインタフェース（ＡＰＩ）２３と、デバイス３の情報が記憶されるデバイス情報テーブル２４とを備える。また、ゲートウェイ２では、デバイス３を制御するプログラムが実行される。
【００１９】
管理システム１は、管理システム１の動作を管理する管理部１１と、各種テーブルを備えたデータベース部１２と、ゲートウェイ２にインストールするプログラムを配信するプログラム配信部１３と、ゲートウェイ２との通信のためのゲートウェインタフェース部１４と、管理システム１のオペレータにより操作される入力装置や当該オペレータのための表示を行う表示装置との通信のためのオペレータインタフェース部１５と、ゲートウェイ２のユーザがオペレータとなって操作するコンピュータ４との通信のためのユーザインタフェース部１６と、プロバイダサーバ５との通信のためのプロバイダサーバインタフェース部１７と、プロバイダサーバ５から送信される権限マクロ群に応じた権限が当該権限マクロ群とともに送信されるプログラムに付与されることの適否を判定する権限付与適否判定部１８とを備える。
【００２０】
データベース部１２は、管理システム１やコンピュータ４やプロバイダサーバ５のオペレータに関する情報が記憶されるオペレータ情報テーブル１２１と、ゲートウェイ２に関する情報が記憶されるゲートウェイ情報テーブル１２２と、プログラムに関する情報が記憶されるプログラム情報テーブル１２３と、プログラムに対応するサービスに関する情報が記憶されるサービス情報テーブル１２４と、プログラムからのメッセージが記憶されるメッセージテーブル１２５と、プロバイダの略名であるプロバイダ略名が記憶されるプロバイダ略名テーブル１２６とを備える。
【００２１】
また、データベース部１２は、ゲートウェイ２に送信されるプログラムへの適用を許可される権限マクロの定義で構成される権限マクロ定義リストＬ１と、ゲートウェイ２に送信されるプログラムへの適用を禁止される権限マクロの定義で構成される権限マクロ定義リストＬ２と、ゲートウェイ２に送信されるプログラムがもつことを禁止されるプログラムコードの定義で構成される禁止プログラムコードリストＬ３を備える。
【００２２】
なお、データベース部１２は、例えば、リレーショナルデータベースの技術を利用して実現される。
【００２３】
プログラム配信部１３は、ゲートウェイ２にインストールされるプログラム（ＯＳＧｉのバンドル）を、アクセス元のゲートウェイ２に送信するようになっている。
【００２４】
なお、プログラム配信部１３は、HTTP サーバや、FTPサーバで構成することができる。
【００２５】
管理システム１は、図示しない表示装置と入力装置を備え、オペレータインタフェース部１５は、入力装置に対する操作内容を管理部１１に伝え、また、管理部１１の指示により表示装置への表示を行うようになっている。
【００２６】
なお、管理システム１は、例えば、Servlet,EJB,Relational Databaseで構成される。また、Web ServerとPHP,Relational Database による構成も可能である。また、CORBA,Web Serviceによる構成も可能である。
【００２７】
コンピュータ４は、図示しない表示装置と入力装置を備え、管理システム１のユーザインタフェース部１４は、コンピュータ４からその入力装置に対する操作内容を示す情報を受信し、その情報により操作内容を管理部１１に伝え、また、管理部１１の指示によりコンピュータ４へ表示内容を送信し、コンピュータ４がこの表示内容を表示装置に表示するようになっている。
【００２８】
プロバイダサーバ５は、図示しない表示装置と入力装置を備え、管理システム１のプロバイダサーバインタフェース部１７は、プロバイダサーバ５からその入力装置に対する操作内容を示す情報を受信し、その情報により操作内容を管理部１１に伝え、また、管理部１１の指示によりプロバイダサーバ５へ表示内容を送信し、プロバイダサーバ５がこの表示内容を表示装置に表示するようになっている。
【００２９】
図３は、オペレータ情報テーブル１２１の一例を示す。オペレータ情報テーブル１２１は、管理システム１のオペレータ、コンピュータ４のオペレータ、プロバイダサーバ５のオペレータとして想定される人ごとのレコードで構成され、各レコードは、対応するオペレータの種類（当該オペレータが管理システム１、コンピュータ４、プロバイダサーバ５のどれを操作するかを示す、オペレータの種類）、当該オペレータのオペレータ名およびパスワードが記憶される。プロバイダサーバ５のオペレータの種類が記憶されるレコードには、当該プロバイダサーバ５を管理するプロバイダのプロバイダ名が記憶される。
【００３０】
図４は、ゲートウェイ情報テーブル１２２の一例を示す。ゲートウェイ情報テーブル１２２は、ゲートウェイ２ごとのレコードで構成され、各レコードは、対応するゲートウェイ２のゲートウェイＩＤと、当該ゲートウェイ２のアドレスとが記憶される。
【００３１】
図５は、プログラム情報テーブル１２３の一例を示す。プログラム情報テーブル１２３は、複数のプログラムを想定したものであり、プログラムごとのレコードで構成され、各レコードは、対応するプログラムと、そのプログラムのプログラム名と、そのプログラムのバージョン情報と、そのプログラムを管理システム１に送信したプロバイダサーバ５を管理するプロバイダのプロバイダ名と、そのプログラムを管理システム１に送信したときにプロバイダサーバ５を操作していたオペレータのオペレータ名であるプロバイダオペレータ名と、そのプログラムへの付与を所望された各権限を示す権限マクロからなる権限マクロ群と、そのプログラムが全く新しいものか古いものを変更したものか使用不可とされたものかを示す区分情報、そのプログラムの管理システム１における状態を示す状態情報、そのプログラムなどを受信した順番を示す受付番号と、その受信の日付や日付および時刻を示す受付日付情報と、当該権限マクロ群に応じた権限付与の適否を判定したオペレータのオペレータ名である適否判定オペレータ名と、その判定の日付や日付および時刻を示す適否判定日付情報とが記憶される。
【００３２】
図６は、サービス情報テーブル１２４の一例を示す。サービス情報テーブル１２４は、１つのゲートウェイ２で１つのプログラムをインストールして実行することを１つのサービスとしたときのサービスごとのレコードで構成され、各レコードは、対応するゲートウェイ２のゲートウェイＩＤと、対応するプログラムのプログラム名と、そのプログラムを提供するプロバイダのプロバイダ名と、対応するサービスの契約日時を示す契約日時情報と、その契約を行ったユーザを示す契約ユーザＩＤとが記憶される。
【００３３】
図７は、メッセージテーブル１２５の一例を示す。メッセージテーブル１２５は、プログラムからそのプログラムを提供するプロバイダに管理されるプロバイダサーバ５へ送信されるメッセージごとのレコードで構成され、各レコードは、対応するメッセージと、そのメッセージの送信元であるプログラムのプログラム名と、当該メッセージの送信先であるプロバイダサーバ５を管理するプロバイダのプロバイダ名と、メッセージの日付や日付および時刻を示すメッセージ日付情報とが記憶される。
【００３４】
なお、メッセージテーブル１２５は、例えば、プロバイダ名を「sp」、プログラム名を「program」、メッセージを「Message」、日付情報を「date」として、以下のスキーマにより、実現される。 
{
String sp,
String program,
Date   date,
String Messsage
}
【００３５】
図８は、プロバイダ略名テーブル１２６の一例を示す。プロバイダ略名テーブル１２６は、プロバイダごとのレコードで構成され、各レコードは、対応するプロバイダのプロバイダ名と、当該プロバイダに割り当てられたプロバイダ略名とが記憶される。また、互いに提携するプロバイダについては、それらプロバイダのプロバイダ名が記憶されるレコードどうしが関連づけられる。
【００３６】
図９（ａ）は、権限マクロ定義リストＬ１の一例を示す。権限マクロ定義リストＬ１は、ゲートウェイ２に送信されるプログラムへの適用を許可される権限マクロの定義で構成されるリストである。
【００３７】
図９（ｂ）は、権限マクロ定義リストＬ２の一例を示す。権限マクロ定義リストＬ２は、ゲートウェイ２に送信されるプログラムへの適用を禁止される権限マクロの定義で構成されるリストである。
【００３８】
図９（ｃ）は、禁止プログラムコードリストＬ３の一例を示す。禁止プログラムコードリストＬ３は、ゲートウェイ２に送信されるプログラムがもつことを禁止されるプログラムコードの定義で構成されるリストである。
【００３９】
図１０は、デバイス情報テーブル２４の一例を示す。デバイス情報テーブル２４は、１デバイスおよび１プログラムよりなる組ごとのレコードで構成され、各レコードは、対応するデバイスのアドレスと、当該アドレスの種類を示すアドレス種情報、対応するプログラムのプログラム名と、当該プログラムを提供するプロバイダのプロバイダ名とが記憶され、当該デバイスが設置などされた際に作成される。なお、当該レコードには、対応するデバイスのデバイス名と、当該デバイスの種類を示す情報とが記憶される場合がある。
【００４０】
（本実施の形態の動作）
（動作１）まず、管理システム１が全く新しいプログラムを受信して記憶する動作を説明する。
【００４１】
あるプロバイダサーバ５をそのオペレータが操作することにより、そのプロバイダサーバ５から、そのプロバイダサーバ５を管理するプロバイダのプロバイダ名と、当該オペレータのオペレータ名と、当該オペレータのパスワードとがプロバイダサーバインタフェース部１７に送信される。また、同様に、当該動作に応じたＡＰＩ名などと、全く新しいプログラムと、そのプログラムのプログラム名と、そのプログラムのバージョン情報と、そのプログラムへの付与を所望された各権限を示す権限マクロからなる権限マクロ群とがプロバイダサーバインタフェース部１７に送信される。そして、そのプロバイダ名、オペレータ名およびパスワード、当該プログラム、当該プログラム名、当該バージョン情報、当該権限マクロ群とがプロバイダサーバインタフェース部１７から管理部１１に与えられると、管理部１１は、オペレータ情報テーブル１２１において、当該プロバイダ名、オペレータ名およびパスワードを含むレコードの有無を判定し、なければ、プロバイダ名やオペレータ名やパスワードが不適である旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【００４２】
一方、あれば、管理部１１は、プログラム情報テーブル１２３において、総レコード数に１を加算した受付番号と、現在の日付や日付および時刻を示す受付日付情報と、当該プログラムと、当該プログラム名と、当該バージョン情報と、当該プロバイダ名と、プロバイダオペレータ名としての当該オペレータ名と、当該権限マクロ群と、そのプログラムが全く新しいものであることを示す区分情報「新プログラム」と、そのプログラムへの権限付与の適否判定が未実施であることを示す状態情報「承認待ち」とを含むレコードを作成する。そして、当該受付番号をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【００４３】
なお、（動作１）については、ＡＰＩにより実現できる、つまり、ＡＰＩ名を「resisterService」とし、プログラムとそのバイト数を「byte[] programData」、プログラム名を「name」、バージョン情報を「version」、権限マクロ群とその中の権限マクロ数を「Permission[] requiredPerm」とすると、以下のスキーマにより、実現される。 
int resisterService( byte[] programData, String name, String version, Permission[] requiredPerm);
【００４４】
（動作２）古いプログラムを変更したプログラムを管理システム１が受信して記憶する動作は、（動作１）に対して、ＡＰＩ名などが変わることとと、区分情報「新プログラム」が、古いプログラムを変更したものであることを示す区分情報「変更プログラム」に変わることが異なる。
【００４５】
なお、（動作２）は、ＡＰＩ名を「updateService」とし、プログラムとそのバイト数を「byte[] programData」、プログラム名を「name」、バージョン情報を「version」、権限マクロ群とその中の権限マクロ数を「Permission[] requiredPerm」とすると、以下のスキーマにより、実現される。 
int updateService( byte[] programData, String name, String version, Permission[] requiredPerm);
【００４６】
（動作３）次に、管理システム１のプログラムが使用不可にされる動作を説明する。
【００４７】
（動作１）と同様に、プロバイダ名、オペレータ名およびパスワードがプロバイダサーバインタフェース部１７に送信される。また、同様に、当該動作に応じたＡＰＩ名などと、使用不可にしたいプログラムのプログラム名とがプロバイダサーバインタフェース部１７に送信される。そして、そのプロバイダ名、オペレータ名およびパスワード、当該プログラム名と、使用不可にしたい旨の情報とがプロバイダサーバインタフェース部１７から管理部１１に与えられると、管理部１１は、オペレータ情報テーブル１２１において、当該プロバイダ名、オペレータ名およびパスワードを含むレコードの有無を判定し、なければ、プロバイダ名やオペレータ名やパスワードが不適である旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【００４８】
一方、あれば、管理部１１は、プログラム情報テーブル１２３において、総レコード数に１を加算した受付番号と、現在の日付や日付および時刻を示す受付日付情報と、そのプログラム名と、当該プロバイダ名と、プロバイダオペレータ名としての当該オペレータ名と、そのプログラムが使用不可であることを示す区分情報「使用不可プログラム」と、状態情報「承認待ち」とを含むレコードを作成する。そして、当該受付番号をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【００４９】
なお、（動作３）は、ＡＰＩ名を「deleteService」とし、プログラム名を「name」とすると、以下のスキーマにより、実現される。 
int deleteService(String name);
【００５０】
（動作４）次に、権限付与の適否を管理システムのオペレータが判定するときの動作を、図１１のシーケンス図で説明する。
【００５１】
管理システム１をオペレータが操作することにより、オペレータインタフェース部１５から、当該オペレータのオペレータ名と、当該オペレータのパスワードとが管理部１１に与えられる。また、当該動作に応じたＡＰＩ名などが管理部１１に与えられる（Ｓ１）。
【００５２】
管理部１１は、オペレータ情報テーブル１２１において、当該オペレータ名およびパスワードを含むレコードの有無を判定し、なければ、オペレータ名やパスワードが不適である旨をオペレータインタフェース部１５をして管理システム１の表示装置に表示させる。  一方、あれば、管理部１１は、プログラム情報テーブル１２３から、状態情報「承認待ち」を含むレコードを検索し、そのレコード内の情報を読み出し（Ｓ２）、オペレータインタフェース部１５をして管理システム１の表示装置に、読み出した情報をレコードごとに表示させる（Ｓ３）。
【００５３】
そして、管理システム１のオペレータが、表示された権限マクロ群に応じた権限が、同じく表示されたプログラム（ソースプログラムであるもの）に付与されることの適否を判定する。ここでは、後述するフローチャートの判定と同様に判定する。そして、判定結果を入力する操作を行い、判定結果と判定の対象となったプログラムとがオペレータインタフェース部１５を介して管理部１１に通知される（Ｓ４）と、管理部１１は、プログラム情報テーブル１２３から、通知されたプログラムを含むレコードを選択する。
【００５４】
管理部１１は、判定結果が肯定的なものだったなら、選択したレコードにおいて状態情報「承認待ち」を状態情報「承認済み」に更新し、オペレータインタフェース部１５から与えられたオペレータ名に等しい適否判定オペレータ名と、当日の日付や日付とそのときの時刻を示す適否判定日付情報とを含ませる（Ｓ５）。また、選択したレコード内のプログラム名と同じプログラム名を含むレコードをプログラム情報テーブル１２３から検索し、検索したレコードに含まれるバージョン情報が、選択したレコードに含まれるバージョン情報より古いものだったなら、検索したレコードに含まれる状態情報を「旧プログラム」に更新する（Ｓ５）。
【００５５】
一方、管理部１１は、判定結果が否定的なものだったなら、選択したレコードにおいて状態情報「承認待ち」を状態情報「承認拒否済み」に更新し、オペレータインタフェース部１５から与えられたオペレータ名に等しい適否判定オペレータ名と、当日の日付や日付とそのときの時刻を示す適否判定日付情報とを含ませる（Ｓ５）。
【００５６】
次に、管理部１１は、状態情報を「旧プログラム」に更新したなら、選択したレコードからプログラムとプログラム名とプロバイダ名とを読み出し、管理システム１のドメイン名と当該プロバイダ名と当該プログラム名とを含むＵＲＬ（Uniform Resource Locator:プログラムの配置場所を示す情報であり、例えば、プログラム配信部１３をHTTP サーバで構成した場合のＵＲＬは、http://「管理システム１のドメイン名(FQDN)」/「当該プロバイダ名」/「当該プログラム名」.jarのような、bundle location(OSGi用語)である。なお、ここではＪａｖａ（登録商標）のＶＭを使用するので、ＵＲＬはコードベースとも呼ばれる。以下、ＵＲＬについて同様）と、当該プログラムをゲートウェイ２に送信することを禁止する指示をプログラム配信部１３に与える。プログラム配信部１３は、当該ＵＲＬの場所からプログラムを削除する。
【００５７】
次に、管理部１１は、判定結果が肯定的なものだったなら、選択したレコードからプログラムとプログラム名とプロバイダ名とを読み出し、管理システム１のドメイン名と当該プロバイダ名と当該プログラム名とを含むＵＲＬと、当該プログラムと、当該プログラムをゲートウェイ２に送信してよいという許可をプログラム配信部１３に与える（Ｓ６）。プログラム配信部１３は、当該ＵＲＬの場所に当該プログラムを記憶させる（Ｓ６）。なお、プログラム（ソースプログラムであるもの）はコンパイルされ、バイナリプログラムとなって記憶される。
【００５８】
なお、（動作４）は、ＡＰＩ名を「excuteService」とし、プログラム名を「name」とすると、以下のスキーマにより、実現される。 
int excuteService(String name);
【００５９】
（動作５）次に、権限与の適否をプログラム自体の適否と合わせて権限付与適否判定部１８が判定するときの動作を、図１２のフローチャートで説明する。
【００６０】
権限付与適否判定部１８は、予め定められたタイミングに、あるいは、管理システム１のオペレータの操作でオペレータインタフェース部１５を介して管理部１１により指示があった際に、プログラム情報テーブル１２３から、状態情報「承認待ち」を含むレコードを検索し、各レコードのプログラムにつき、図１２の処理を行う。なお、ここでの途中結果はメモリなどに記憶され、必要時に読み出される。
【００６１】
まず、権限付与適否判定部１８は、当該レコードから権限マクロ群を読み出し、その各権限マクロにつき処理を行うにあたり、未処理の権限マクロの有無を判定する（Ｓ１１）。ＹＥＳと判定された場合は、未処理の権限マクロの１つにつき、その権限マクロが、権限マクロ定義リストＬ１に含まれるいずれかの定義に該当するか否かを判定する（Ｓ１３）。
【００６２】
例えば、「％ＳＰ＿ＰＫＧ」を含む定義については、権限付与適否判定部１８は、検索したレコードからプログラム識別名を読み出し、プロバイダ略名テーブル１２６から、当該プログラム識別名内のプロバイダ名を含むレコードを検索し、そのレコードからプロバイダ略名を読み出し、そのプロバイダ略名を含む権限マクロについては、当該定義に該当することとする。
【００６３】
また、「％ＣＯＭ＿ＰＫＧ」を含む定義については、権限付与適否判定部１８は、自身に予め設定されたプロバイダ略名を含む権限マクロについては、当該定義に該当することとする。
【００６４】
また、「％ＡＬＬＩＡＮＣＥ＿ＰＫＧ」を含む定義については、権限付与適否判定部１８は、検索したレコードからプログラム識別名を読み出し、プロバイダ略名テーブル１２６から、当該プログラム識別名内のプロバイダ名を含むレコードと当該レコードに関連づけられたレコードとを検索し、それらのレコードからプロバイダ略名を読み出し、そのいずれかのプロバイダ略名を含む権限マクロについては、当該定義に該当することとする。
【００６５】
また、「％ＡＮＹ」を含む定義については、権限付与適否判定部１８は、「％ＡＮＹ」以外の部分に等しい部分をもつ権限マクロについては、当該定義に該当することとする。  また、「％ＳＰ＿ＰＫＧ」、「％ＣＯＭ＿ＰＫＧ」、「％ＡＬＬＩＡＮＣＥ＿ＰＫＧ」、「％ＡＮＹ」を含まない定義については、当該定義に等しい権限マクロが当該定義に該当することとする。
【００６６】
さて、Ｓ１３でＹＥＳと判定された場合は、Ｓ１１に戻り、ＮＯと判定された場合は、その権限マクロが、権限マクロ定義リストＬ２に含まれるいずれかの定義に該当するか否かを判定する（Ｓ１５）。
【００６７】
例えば、「％ＯＵＴＳＩＤＥ＿ＨＮＷ」を含む定義については、権限付与適否判定部１８は、予めプライベートアドレスの先頭部分として自身に設定されたもの（例えば、192.168）以外から始まるアドレスを含む権限マクロについては、当該定義に該当することとする。
【００６８】
また、「％ＡＮＹ」を含む定義については、権限付与適否判定部１８は、「％ＡＮＹ」以外の部分に等しい部分をもつ権限マクロについては、当該定義に該当することとする。  さて、Ｓ１５でＹＥＳと判定された場合は、否定的な判定結果とその判定対象となったプログラムを管理部１１に通知し（Ｓ１７）、図１２の処理を終え、ＮＯと判定された場合は、Ｓ１１に戻る。
【００６９】
ステップＳ１１でＮＯと判定された場合は、当該レコードからプログラムを読み出し、その中に、禁止プログラムコードリストＬ３に含まれる定義に該当するプログラムコードがあるか否かを判定する（Ｓ１９）。ＹＥＳと判定された場合は、Ｓ１７へ進み、ＮＯと判定された場合は、肯定的な判定結果とその判定対象となったプログラムを管理部１１に通知し（Ｓ２１）、図１２の処理を終える。
【００７０】
以降は、（動作４）で管理システムのオペレータにより管理部１１に通知された判定結果とプログラムによる処理が、権限付与適否判定部１８により管理部１１に通知された判定結果とプログラムにより行われる。
【００７１】
なお、Ｓ１９は、Byte Code Engineering Library(http://jakarta.apache.org/bcel/index.html)を用いることで、実現することができる。
【００７２】
また、（動作５）で用いるリストに、より複雑な定義（例えば、AspectJ(http://www.eclipse.org/aspectj/)で提案されている表記および実装により可能となる定義）を含ませてもよい。
【００７３】
また、（動作５）では、Ｓ１３でＮＯと判定された場合に、Ｓ１５ではなくＳ１７へ進み、Ｓ１３でＹＥＳと判定された場合に、Ｓ１１ではなくＳ１５へ進むようにしてもよい。
【００７４】
また、これらリストＬ１、Ｌ２、Ｌ３をプロバイダごとに設け、判定対象のプログラムを提供するプロバイダのリストを選択して用いるようにしてもよい。
【００７５】
（動作６）次に、管理システム１がプロバイダサーバ５に状態情報を送信し、表示させる動作を説明する。
【００７６】
（動作１）と同様に、プロバイダ名とプロバイダサーバオペレータ名とパスワードがプロバイダサーバインタフェース部１７に送信される。また、同様に、当該動作に応じたＡＰＩ名などと、（動作１）などで表示された受付番号とがプロバイダサーバインタフェース部１７に送信される。そして、そのプロバイダ名、オペレータ名およびパスワード、当該受付番号がプロバイダサーバインタフェース部１７から管理部１１に与えられると、管理部１１は、オペレータ情報テーブル１２１において、当該プロバイダ名、オペレータ名およびパスワードを含むレコードの有無を判定し、なければ、プロバイダ名やオペレータ名やパスワードが不適である旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【００７７】
一方、あれば、管理部１１は、プログラム情報テーブル１２３から、当該受付番号を含むレコードを検索し、該当レコードがなければ、当該受付番号がない旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【００７８】
一方、あれば、そのレコードに当該プロバイダ名があるか否かを判定し、なければ、当該受付番号は他のプロバイダのものである旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【００７９】
一方、あれば、当該レコードから状態情報を読み出し、それをプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【００８０】
（動作７）次に、管理システム１のプログラムがゲートウェイ２へインストールされるときの動作を、図１３のシーケンス図で説明する。なお、この実施の形態では、同様な方法でプログラムがアンインストールされる。
【００８１】
（動作１）と同様に、プロバイダ名とプロバイダサーバオペレータ名とパスワードがプロバイダサーバインタフェース部１７に送信される。また、同様に、当該動作に応じたＡＰＩ名などと、インストールしたいプログラムのプログラム名とがプロバイダサーバインタフェース部１７に送信される。
【００８２】
そして、そのプロバイダ名、オペレータ名およびパスワード、当該プログラム名がプロバイダサーバインタフェース部１７から管理部１１に与えられる（Ｓ３１）と、管理部１１は、オペレータ情報テーブル１２１において、当該プロバイダ名、オペレータ名およびパスワードを含むレコードの有無を判定し（Ｓ３３）、なければ、プロバイダ名やオペレータ名やパスワードが不適である旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【００８３】
一方、あれば、管理部１１は、プログラム情報テーブル１２３において、当該プログラム名、当該プロバイダ名および状態情報「承認済み」を含むレコードの有無を判定し、なければ、条件が充足されていない旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【００８４】
一方、あれば、管理部１１は、サービス情報テーブル１２４から、当該プログラム名と当該プロバイダ名を含むレコード内のゲートウェイＩＤを読み出す（Ｓ３５）。
【００８５】
次に、管理部１１は、ゲートウェイ情報テーブル１２２から、読み出したゲートウェイＩＤを含むレコード内のアドレスを読み出す（Ｓ３７）。
【００８６】
次に、管理部１１は、当該プログラム名、当該プロバイダ名および状態情報「承認済み」を含むレコードから権限マクロ群を読み出し、当該プロバイダ名および当該プログラム名の２つを含むプログラム識別名（例えば、http://「管理システム１のドメイン名(FQDN)」/「当該プロバイダ名」/「当該プログラム名」.jarのような、bundle location(OSGi用語)、以下、プログラム識別名について同様）を生成し、管理システム１のドメイン名と当該プロバイダ名と当該プログラム名とを含むＵＲＬと、当該生成したプログラム識別名と、当該権限マクロ群の３つを含むインストール命令を作成し、ゲートウェインタフェース部１４をして、作成したインストール命令を、読み出したアドレスのゲートウェイ２に対して送信させる（Ｓ３９）。
【００８７】
さて、インストール命令を送信されたゲートウェイ２では、エージェント２２が、そのインストール命令の送信元が、管理システム１か否かを判定する（Ｓ４０）。例えば、ゲートウェイ２が予め管理システム１のＩＤやアドレスを記憶しておき、ゲートウェイ２が、インストール命令の送信元のＩＤやアドレスと、予め記憶したＩＤやアドレスとが一致するか否かを判定する。
【００８８】
Ｓ４０でＹＥＳと判定された場合は、そのインストール命令に含まれる権限マクロ群とプログラム識別名を読み出し、各権限マクロにつき、その権限マクロの一部の置き換えなどを行う（Ｓ４１）。
【００８９】
例えば、その権限マクロの一部をアドレスに置き換える。具体的には、その権限マクロが、「＄ＳＰ＿」と「＿ＤＥＶＩＣＥ」を含む場合、エージェント２２は、デバイス情報テーブル２４において、「＄ＳＰ＿」と「＿ＤＥＶＩＣＥ」の間の文字列に等しいアドレス種情報、当該プログラム識別名内のプロバイダ名およびプログラム名の３つを含むレコードを検索し、そのレコードのアドレスを読み出し、当該権限マクロにおける「＄ＳＰ＿」と当該文字列と「＿ＤＥＶＩＣＥ」の部分を当該アドレスに置き換えた権限マクロを作成し、それで当該権限マクロ群における当該権限マクロを置き換える。
【００９０】
「＄ＳＰ＿」と「＿ＤＥＶＩＣＥ」の間の文字列は、例えば、Universal Serial Busの略称である「ＵＳＢ」や、IP Addressを示す「ＩＰ」や、LonWorks（ネットワークアーキテクチャの１つ）を示す「ＬＯＷ」などである。
【００９１】
また、プログラムのための記憶領域を作成し、権限マクロの一部を記憶領域名に置き換える。具体的には、その権限マクロが、「＄ＳＰ＿ＰＲＯＧＲＡＭ＿ＤＡＴＡ＿ＤＩＲ」を含む場合、エージェント２２は、当該インストール命令からプログラム識別名を読み出し、当該プログラム識別名に応じた記憶領域名の記憶領域がなればそれを作成し、その記憶領域名で当該権限マクロにおける「＄ＳＰ＿ＰＲＯＧＲＡＭ＿ＤＡＴＡ＿ＤＩＲ」を置き換えた権限マクロを作成し、それで当該権限マクロにおける当該権限マクロを置き換える。
【００９２】
また、プロバイダのための記憶領域を作成し、権限マクロの一部を記憶領域名に置き換える。具体的には、その権限マクロが、「＄ＳＰ＿ＤＡＴＡ＿ＤＩＲ」を含む場合、エージェント２２は、当該インストール命令からプログラム識別名を読み出し、当該プログラム識別名におけるプロバイダ名に応じた記憶領域名をもつ記憶領域がなればそれを作成し、その記憶領域名で当該権限マクロにおける「＄ＳＰ＿ＤＡＴＡ＿ＤＩＲ」を置き換えた権限マクロを作成し、それで当該権限マクロにおける当該権限マクロを置き換える。  そして、エージェント２２は、当該インストール命令内のプログラム識別名と、置き換え後の権限マクロ群とを実行環境２１に与え、実行環境２１が当該プログラム識別名と権限マクロ群とを対応づけて記憶（設定）する（Ｓ４３）。
【００９３】
なお、Ｓ４３は、エージェント２２が、実行環境２１を構成するＯＳＧｉのPermissionAdminサービスを呼び出すことで、実現される。
【００９４】
また、エージェント２２は、インストール命令に含まれるＵＲＬによりプログラム配信部１３にアクセスして、そのＵＲＬの場所に記憶されたプログラムをプログラム配信部１３から自身に送信させ（Ｓ４５）、それをインストールする（Ｓ４７）。
【００９５】
なお、Ｓ４５は、エージェント２２が、実行環境２１を構成するＯＳＧｉのBundleContent.installBundle()サービスを呼び出すことで、実現される。また、Ｓ４７は、エージェント２２が、実行環境２１を構成するＯＳＧｉのBundleContent.updateBundle()サービスを呼び出すことで、実現される。
【００９６】
実行環境２１を構成するＯＳＧｉは、コードベース（ＵＲＬ）単位で、そのＵＲＬからダウンロードしたプログラムへの権限付与を管理する。これは、OSGi Service Platform Release 3 March 2003, 7章に記載がある。例えば、以下のようにする。
【００９７】
インストールされたプログラムが実行され、そのプログラムが、あるデバイスのアドレスを含む、ある種類の通信のコマンドと、自身のプログラム識別名とを実行環境２１に与えると、実行環境２１は、当該プログラム識別名に対応づけられた権限マクロ群の中に、当該アドレスを含む、当該種類の通信に関わる権限マクロがあるか否かを判定し、あれば、当該プログラムと当該デバイスの間で行われる当該種類の通信に介在する。一方、なければ、介在せず、つまり、当該種類の通信が禁止される。
【００９８】
よって、アドレス種情報に等しい文字列を「＄ＳＰ＿」と「＿ＤＥＶＩＣＥ」の間に配置し、それを、許可したい種類の通信についての権限マクロに含ませることで、当該の種類の通信が可能となる。一方、それ以外の種類の通信（禁止したい種類の通信）については、その種類の通信についての権限マクロを権限マクロ群に含ませないことで、当該種類の通信を禁止することができる。
【００９９】
また、インストールされたプログラムが実行され、そのプログラムが、「＄ＳＰ＿ＰＲＯＧＲＡＭ＿ＤＡＴＡ＿ＤＩＲ」や「＄ＳＰ＿ＤＡＴＡ＿ＤＩＲ」を置き換えた記憶領域名を含む、記憶領域へのアクセスコマンドと、自身のプログラム識別名とを実行環境２１に与えると、実行環境２１は、当該プログラム識別名に対応づけられた権限マクロ群の中に、当該記憶領域名を含む、記憶領域へのアクセスに関わる権限マクロがあるか否かを判定し、あれば、当該プログラムと当該記憶領域の間で当該記憶領域へのアクセスに介在する。一方、なければ、介在せず、つまり、アクセスが禁止される。
【０１００】
よって、あるプログラムのプログラム識別名に応じた記憶領域名をもつ記憶領域が、そのプログラムを提供するプロバイダにより提供される他のプログラムや他のプロバイダにより提供されるプログラムによりアクセスされるのを防止することができる。
【０１０１】
また、あるプログラムを提供するプロバイダのプロバイダ名に応じた記憶領域名をもつ記憶領域が、他のプロバイダにより提供されるプログラムによりアクセスされるのを防止することができる。
【０１０２】
（動作８）次に、プロバイダサーバ５からゲートウェイ２にプログラムのパラメータが設定されるときの動作を、図１４のシーケンス図で説明する。
【０１０３】
（動作１）と同様に、プロバイダ名とプロバイダサーバオペレータ名とパスワードがプロバイダサーバインタフェース部１７に送信される。また、同様に、当該動作に応じたＡＰＩ名などと、設定したいパラメータと、そのパラメータ名と、当該パラメータが適用されるプログラムのプログラム名と、当該プログラムがインストールされているゲートウェイ２のゲートウェイＩＤとがプロバイダサーバインタフェース部１７に送信される。そして、そのプロバイダ名、オペレータ名およびパスワード、当該パラメータと、当該パラメータ名と、当該プログラム名と、当該ゲートウェイＩＤとがプロバイダサーバインタフェース部１７から管理部１１に与えられる（Ｓ５１）と、管理部１１は、オペレータ情報テーブル１２１において、当該プロバイダ名、オペレータ名およびパスワードを含むレコードの有無を判定し（Ｓ５３）、なければ、プロバイダ名やオペレータ名やパスワードが不適である旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【０１０４】
あった場合、管理部１１は、サービス情報テーブル１２４において、当該ゲートウェイＩＤの有無を判定し（Ｓ５５）、なければ、当該ゲートウェイＩＤが不適である旨を当該プロバイダサーバ５の表示装置に表示させる。
【０１０５】
一方、あれば、管理部１１は、ゲートウェイ情報テーブル１２２から、当該ゲートウェイＩＤを含むレコード内のアドレスを読み出す（Ｓ５７）。
【０１０６】
次に、管理部１１は、当該プロバイダ名および当該プログラム名を含むプログラム識別名と、当該パラメータと、当該パラメータ名とを含むパラメータ設定命令を作成し、ゲートウェインタフェース部１４をして、作成したパラメータ設定命令を、読み出したアドレスのゲートウェイ２に対して送信させる（Ｓ５９）。
【０１０７】
パラメータ設定命令を送信されたゲートウェイ２では、エージェント２２が、Ｓ４０と同様に、そのパラメータ設定命令の送信元が、管理システム１か否かを判定する（Ｓ６０）。
【０１０８】
Ｓ６０でＹＥＳと判定された場合は、エージェント２２が、当該パラメータ設定命令からパラメータ、パラメータ名およびプログラム識別名を読み出し、当該パラメータ、パラメータ名を当該プログラム識別名のプログラムに与え、当該プログラムは、これらを対応づけて記憶させる（Ｓ６１）。これにより、そのプログラムは、当該パラメータ名で定義される動作のときは当該パラメータを用いる。
【０１０９】
あるいは、エージェント２２は、当該パラメータ設定命令からパラメータ、パラメータ名、プログラム識別名を読み出し、これらを実行環境２１に与え、実行環境２１は、当該パラメータ、パラメータ名を当該プログラム識別名のプログラムに与え、当該プログラムは、これらを対応づけて記憶させる（Ｓ６３）。これにより、そのプログラムは、当該パラメータ名で定義される動作のときは当該パラメータを用いる。
【０１１０】
なお、Ｓ６１、Ｓ６３は、実行環境２１を構成するＯＳＧｉのConfigurationAdminサービスを呼び出すことで、実現される。
【０１１１】
なお、（動作８）は、ＡＰＩ名を「setServiceParam」とし、ゲートウェイＩＤを「hgwid」、プログラム名を「name」、パラメータ名をを「parameterName」、パラメータを「parameterValue」とすると、以下のスキーマにより、実現される。 
int setServiceParam( int hgwid, String name, String parameterName, String parameterValue);
【０１１２】
（動作９）次に、プロバイダサーバ５がゲートウェイ２からプログラムのパラメータを取得するときの動作を、図１５のシーケンス図で説明する。
【０１１３】
（動作１）と同様に、プロバイダ名とプロバイダサーバオペレータ名とパスワードがプロバイダサーバインタフェース部１７に送信される。また、同様に、当該動作に応じたＡＰＩ名などと、取得したいパラメータのパラメータ名と、当該パラメータが適用されるプログラムのプログラム名と、当該プログラムがインストールされているゲートウェイ２のゲートウェイＩＤとがプロバイダサーバインタフェース部１７に送信される。そして、そのプロバイダ名、オペレータ名およびパスワード、当該パラメータ名と、当該プログラム名と、当該ゲートウェイＩＤとがプロバイダサーバインタフェース部１７から管理部１１に与えられる（Ｓ７１）と、管理部１１は、オペレータ情報テーブル１２１において、当該プロバイダ名、オペレータ名およびパスワードを含むレコードの有無を判定し（Ｓ７３）、なければ、プロバイダ名やオペレータ名やパスワードが不適である旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【０１１４】
あった場合、管理部１１は、サービス情報テーブル１２４において、当該ゲートウェイＩＤの有無を判定し（Ｓ７５）、なければ、当該ゲートウェイＩＤが不適である旨を当該プロバイダサーバ５の表示装置に表示させる。
【０１１５】
一方、あれば、管理部１１は、ゲートウェイ情報テーブル１２２から、当該ゲートウェイＩＤを含むレコード内のアドレスを読み出す（Ｓ７７）。
【０１１６】
次に、管理部１１は、当該プロバイダ名および当該プログラム名を含むプログラム識別名と、当該パラメータ名とを含むパラメータ送信命令を作成し、ゲートウェインタフェース部１４をして、作成したパラメータ送信命令を、読み出したアドレスのゲートウェイ２に対して送信させる（Ｓ７９）。
【０１１７】
パラメータ送信命令を送信されたゲートウェイ２では、エージェント２２が、Ｓ４０と同様に、そのパラメータ送信命令の送信元が、管理システム１か否かを判定する（Ｓ８０）。
【０１１８】
Ｓ８０でＹＥＳと判定された場合は、エージェント２２が、当該パラメータ送信命令から、パラメータ名、プログラム識別名を読み出し、当該パラメータ名を当該プログラム識別名のプログラムに与え、当該プログラムから当該パラメータ名に対応するパラメータを受け取る（Ｓ８１）。
【０１１９】
あるいは、エージェント２２は、当該パラメータ送信命令から、パラメータ名、プログラム識別名を読み出し、これらを実行環境２１に与え、実行環境２１は、当該パラメータ名を当該プログラム識別名のプログラムに与え、実行環境２１は、当該プログラムから当該パラメータ名に対応するパラメータを受け取り、エージェント２２は、実行環境２１から当該プログラムから当該パラメータ名に対応するパラメータを受け取る（Ｓ８３）。
【０１２０】
なお、Ｓ８１、Ｓ８３は、実行環境２１を構成するＯＳＧｉのConfigurationAdminサービスを呼び出すことで、実現される。
【０１２１】
プログラムあるいは実行環境２１からパラメータを受け取ると、エージェント２２は、当該パラメータを管理システム１に送信する。
【０１２２】
管理システム１では、送信されたパラメータをゲートウェインタフェース部１４が受信し、管理部１１に与え（Ｓ８５）、管理部１１は、そのパラメータをプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５に送信しその表示装置に表示させる（Ｓ８７）。
【０１２３】
なお、（動作９）は、ＡＰＩ名を「getServiceParam」とし、ゲートウェイＩＤを「hgwid」、プログラム名を「name」、パラメータ名をを「parameterName」とすると、以下のスキーマにより、実現される。 
int setServiceParam( int hgwid, String name, String parameterName);
【０１２４】
（動作１０）次に、プロバイダサーバ５からゲートウェイ２のプログラムへメッセージを送信するときの動作を、図１６のシーケンス図で説明する。
【０１２５】
（動作１）と同様に、プロバイダ名とプロバイダサーバオペレータ名とパスワードがプロバイダサーバインタフェース部１７に送信される。また、同様に、当該動作に応じたＡＰＩ名などと、送信したいメッセージと、当該メッセージの送信先のプログラムのプログラム名と、当該プログラムがインストールされているゲートウェイ２のゲートウェイＩＤとがプロバイダサーバインタフェース部１７に送信される。そして、そのプロバイダ名、オペレータ名およびパスワード、当該メッセージと、当該プログラム名と、当該ゲートウェイＩＤとがプロバイダサーバインタフェース部１７から管理部１１に与えられる（Ｓ９１）と、管理部１１は、オペレータ情報テーブル１２１において、当該プロバイダ名、オペレータ名およびパスワードを含むレコードの有無を判定し（Ｓ９３）、なければ、プロバイダ名やオペレータ名やパスワードが不適である旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【０１２６】
あった場合、管理部１１は、サービス情報テーブル１２４において、当該ゲートウェイＩＤの有無を判定し（Ｓ９５）、なければ、当該ゲートウェイＩＤが不適である旨を当該プロバイダサーバ５の表示装置に表示させる。
【０１２７】
一方、あれば、管理部１１は、ゲートウェイ情報テーブル１２２から、当該ゲートウェイＩＤを含むレコード内のアドレスを読み出す（Ｓ９７）。
【０１２８】
次に、管理部１１は、当該プロバイダ名および当該プログラム名を含むプログラム識別名と、当該メッセージとを含むメッセージ通知を作成し、ゲートウェインタフェース部１４をして、作成したメッセージ通知を、読み出したアドレスのゲートウェイ２に対して送信させる（Ｓ９９）。
【０１２９】
メッセージ送信命令を送信されたゲートウェイ２では、エージェント２２が、Ｓ４０と同様に、そのメッセージ送信命令の送信元が、管理システム１か否かを判定する（Ｓ１００）。
【０１３０】
Ｓ１００でＹＥＳと判定された場合は、エージェント２２が、当該メッセージ送信命令からプログラム識別名とメッセージを読み出し、当該プログラム識別名のプログラムに当該メッセージを与える（Ｓ１０１）。
【０１３１】
なお、（動作１０）は、ＡＰＩ名を「sendMessage」とし、ゲートウェイＩＤを「hgwid」、プログラム名を「name」、メッセージを「message」とすると、このＡＰＩは、図（ａ）に示すスキーマにより、実現される。 
int sendMessage( int hgwid, String name, String message);
【０１３２】
（動作１１）次に、ゲートウェイ２のプログラムから管理システム１へメッセージを送信し、これをプロバイダサーバ５が取得するときの動作を、図１７のシーケンス図で説明する。
【０１３３】
あるプログラムからメッセージが与えられる（Ｓ１１１）と、エージェント２２は、当該メッセージと、当該プログラムのプログラム識別名とを管理システム１に送信する。
【０１３４】
なお、Ｓ１１１を実現するＡＰＩは、アプリケーションプログラムインタフェース２３に含まれ、メッセージを「Message」とすると、以下のスキーマで実現される。 
void send(String Message);
【０１３５】
管理システム１では、送信されたメッセージ等をゲートウェインタフェース部１４が受信し、管理部１１に与え（Ｓ１１３）、管理部１１は、メッセージテーブル１２５において、当該メッセージと、当該プログラム識別名内のプログラム名およびプロバイダ名と、当日の日付や日付とそのときの時刻を示すメッセージ日付情報とを含むレコードを作成する（Ｓ１１５）。
【０１３６】
一方で、（動作１）と同様に、プロバイダ名とプロバイダサーバオペレータ名とパスワードがプロバイダサーバインタフェース部１７に送信される。また、同様に、当該動作に応じたＡＰＩ名などがプロバイダサーバインタフェース部１７に送信される。そして、そのプロバイダ名、オペレータ名およびパスワードがプロバイダサーバインタフェース部１７から管理部１１に与えられる（Ｓ１２１）と、管理部１１は、オペレータ情報テーブル１２１において、当該プロバイダ名、オペレータ名およびパスワードを含むレコードの有無を判定し（Ｓ１２３）、なければ、プロバイダ名やオペレータ名やパスワードが不適である旨をプロバイダサーバインタフェース部１７をして当該プロバイダサーバ５の表示装置に表示させる。
【０１３７】
一方、あれば、管理部１１は、メッセージテーブル１２５において、当該プログラム名を含むレコードを検索し、該当レコードが複数あったときは、最も古い日付や日付および時刻を示すメッセージ日付情報を含むレコードを選択し、そのレコードからメッセージとプログラム名を読み出し（Ｓ１２５）、当該レコードをメッセージテーブル１２５から削除する（Ｓ１２７）。
【０１３８】
そして、管理部１１は、サービス情報テーブル１２４から、当該プログラム名および当該プロバイダ名を含むレコードを検索し、そのレコードからゲートウェイＩＤを読み出し、当該メッセージと当該プログラム名と当該ゲートウェイＩＤとを、プロバイダサーバインタフェース部１７をして当該プロバイダサーバ５に送信しその表示装置に表示させる（Ｓ１２９）。
【０１３９】
なお、続けて、当該ＡＰＩ名などがプロバイダサーバインタフェース部１７に送信されたなら、Ｓ１２３へ戻る。こうして、当該プロバイダ名、当該プログラム名、当該ゲートウェイＩＤについての、全てのメッセージが表示される。
【０１４０】
なお、（動作１１）は、ＡＰＩ名を「MsgInfo receiveMessage」とし、ゲートウェイＩＤを「hgwid」、プログラム名を「name」、メッセージを「message」とすると、以下のスキーマにより、実現される。 
MsgInfo receiveMessage();
class MsgInfo{
int hgwid;
String name;
String message;
};
【０１４１】
なお、管理システム１では、プロバイダサーバ５のアドレスと当該プロバイダサーバ５を管理するプロバイダのプロバイダ名とを対応づけておき、送信されたメッセージとプログラム識別名をゲートウェインタフェース部１４から与えられた管理部１１が、ただちに、サービス情報テーブル１２４から、当該プログラム識別名内のプログラム名およびプロバイダ名を含むレコードを検索し、そのレコードからゲートウェイＩＤを読み出し、当該プロバイダ名に対応づけられたアドレスを読み出し、当該メッセージと当該プログラム名と当該ゲートウェイＩＤとを、プロバイダサーバインタフェース部１７をして、当該アドレスをもつプロバイダサーバ５に送信しその表示装置に表示させるようにしてもよい。いわゆるコールバックである。
【０１４２】
なお、デバイス情報テーブル２４の管理は、例えば、以下のように行えばよい。
【０１４３】
（Ａ）管理システムのオペレータにより、管理システム１が行う。
【０１４４】
（Ｂ）コンピュータ４のオペレータ（ゲートウェイ２のユーザ）により、管理システム１が行う。
【０１４５】
（Ｃ）プロバイダサーバ５のオペレータによる管理内容を、管理システムのオペレータが確認したのち、管理システム１が行う。
【０１４６】
また、図１８（ａ）に示すように、実行環境２１は、オペレーティングシステム、．ＮＥＴ  Ｆｒａｍｅｗｏｒｋ（Ｊａｖａ（登録商標）のＶＭに類似したもの）、ＯＳＧｉ相当のミドルウェアで構成してもよい。これにより、上記同様の動作が可能となる。
【０１４７】
また、図１８（ｂ）に示すように、実行環境２１は、ＳＥＬｉｎｕｘで構成してもよい。ＳＥＬｉｎｕｘは、Ｌｉｎｕｘから派生した仕組みであり、オペレーティングシステム上で動作するプログラムに細かな権限を付与することができる。このＳＥＬｉｎｕｘを使用する場合、プログラムは１つのプロセスとして実現される。まずは、プログラムに狭い権限を与えておき、Ｓ４３により、広い権限を与えるようにする。また、Ｓ６１とＳ８１は、プロセス間通信で実現する。これにより、上記同様の動作が可能となる。
【０１４８】
したがって、本実施の形態によれば、インストール命令の送信元を管理システムに限り、その管理システムでは権限付与の適否を判定することで、複数のプロバイダにより提供されるプログラム間での動作妨害を生じさせる虞のある権限付与を防止でき、よって、かかる動作妨害を防止することができる。
【０１４９】
また、通信に関わる権限マクロ内にアドレスを含ませることによる動作妨害、例えば、あるプロバイダにより作成された権限マクロ内のアドレスが他のプロバイダのデバイスのアドレスであることにより他のプロバイダのデバイスが制御されるという動作妨害を防止することができる。
【０１５０】
例えば、あるプロバイダのプログラムのプログラム識別名に応じた記憶領域名で作成した記憶領域が、他のプロバイダのプログラムによりアクセスされるという動作妨害を防止することができる。
【０１５１】
また、プログラム識別名内のプロバイダ名に応じた記憶領域名で記憶領域を作成すれば、例えば、あるプロバイダのプロバイダ名に応じた記憶領域名で作成した記憶領域が、他のプロバイダのプログラムによりアクセスされるという動作妨害を防止することができる。
【０１５２】
なお、上記のゲートウェイ管理方法を管理システム１に実行させるコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納し、陳列などして流通させたり、当該コンピュータプログラムをインターネットなどの通信網を介して伝送させてもよい。
【図面の簡単な説明】
【０１５３】
【図１】本発明の実施の形態に係るシステム構成図
【図２】実行環境２１の一例
【図３】オペレータ情報テーブル１２１の一例
【図４】ゲートウェイ情報テーブル１２２の一例
【図５】プログラム情報テーブル１２３の一例
【図６】サービス情報テーブル１２４の一例
【図７】メッセージテーブル１２５の一例
【図８】プロバイダ略名テーブル１２６
【図９】権限マクロ定義リストＬ１、Ｌ２、禁止プログラムコードリストＬ３それぞれの一例
【図１０】デバイス情報テーブル２４の一例
【図１１】動作４のシーケンス図
【図１２】動作５のシーケンス図
【図１３】動作７のシーケンス図
【図１４】動作８のシーケンス図
【図１５】動作９のシーケンス図
【図１６】動作１０のシーケンス図
【図１７】動作１１のシーケンス図
【図１８】実行環境２１の他の一例
【符号の説明】
【０１５４】
１…管理システム
２…ゲートウェイ
３…デバイス
５…プロバイダサーバ
１１…管理部
１２…データベース部
１３…プログラム配信部
１４…ゲートウェインタフェース部
１５…オペレータインタフェース部
１６…ユーザインタフェース部
１７…プロバイダサーバインタフェース部
１８…権限付与適否判定部
２１…実行環境２１
２２…エージェント
２４…デバイス情報テーブル
１２１…オペレータ情報テーブル
１２２…ゲートウェイ情報テーブル
１２３…プログラム情報テーブル
１２４…サービス情報テーブル
１２５…メッセージテーブル
１２６…プロバイダ略名テーブル
Ｌ１、Ｌ２…権限マクロ定義リスト
Ｌ３…禁止プログラムコードリスト
【図１】
0004643491.tif 000002
【図２】
0004643491.tif 000003
【図３】
0004643491.tif 000004
【図４】
0004643491.tif 000005
【図５】
0004643491.tif 000006
【図６】
0004643491.tif 000007
【図７】
0004643491.tif 000008
【図８】
0004643491.tif 000009
【図９】
0004643491.tif 000010
【図１０】
0004643491.tif 000011
【図１１】
0004643491.tif 000012
【図１２】
0004643491.tif 000013
【図１３】
0004643491.tif 000014
【図１４】
0004643491.tif 000015
【図１５】
0004643491.tif 000016
【図１６】
0004643491.tif 000017
【図１７】
0004643491.tif 000018
【図１８】
0004643491.tif 000019