(57)【要約】  複数アプリケーションから同一の機器に対し同時に送信されるＲＰＣの競合を防止し、協調する一連の処理の未完了を許容できない多対多接続のＩｏＴシステムの機器制御に対しＲＰＣを適用可能な機器制御装置、機器制御方法、及び機器制御システムを提供する。機器制御装置は、機器（３０）とこの機器（３０）の識別子に関する情報が記憶された記憶部（１３ｈ）と、アプリ（２０）毎の機器（３０）の権限を記憶した記憶部（１３ｉ）とを備える。そして、装置、方法、及びシステムは、例えばアプリ（２０ａ）からの申請信号に従ってアプリ（２０ａ）が制御の対象となる複数の機器（３０）全てに制御権限を有していれば、制御権をアプリ（２０ａ）に与え、また機器（３０）に対する他のアプリ（２０ｂ、２０ｃ）からの制御権を排除した上で、アプリ（２０ａ）からの遠隔制御信号を制御対象の機器（３０ａ、３０ｂ）に送信する。
2019203221.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、当該プロセッサに接続されたメモリとを備える、機器制御装置であって、
前記プロセッサが、
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させ、
前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定し、
前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与し、
前記第１アプリケーションに対し前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止し、
前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する、
ように構成された、機器制御装置。
【請求項２】
前記プロセッサがさらに、前記第１アプリケーションが指定する前記被制御機器に対する制御権限が前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかにより取得された結果、前記第１アプリケーションが前記被制御機器に対する遠隔制御の制御権限を取得できないと判定された場合に、前記第１アプリケーションに対して制御権限の取得を失敗した旨を返答するように構成された、
請求項１に記載の機器制御装置。
【請求項３】
前記プロセッサがさらに、
前記被制御機器の接続情報を前記メモリに記憶させ、
前記メモリに記憶された被制御機器の接続情報に基づいて、前記第１アプリケーションからの前記申請信号により制御権限が申請された複数の被制御機器が接続されていることを確認し、
前記第１アプリケーションからの前記申請信号により申請された複数の被制御機器に対する制御権限が、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかに付与されているか否かを判定し、
前記複数の被制御機器の接続が確認され、かつ前記申請信号により申請された複数の被制御機器に対する制御権限が前記第１アプリケーションを除いた前記複数のアプリケーションのいずれにも付与されていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与するように構成された、請求項１に記載の機器制御装置。
【請求項４】
前記プロセッサがさらに、
前記複数のアプリケーションのうち少なくとも１つのアプリケーションから、当該アプリケーションが前記制御権限を取得可能な前記複数の被制御機器のリストの出力を要求する第１のリスト要求信号が送信された場合に、当該第１のリスト要求信号を受信し、
前記第１のリスト要求信号が受信された場合に、前記メモリに記憶されたアプリケーション別制御権限情報に基づいて、前記制御権限の取得がなされていない前記被制御機器のリストを、前記第１のリスト要求信号の送信元となるアプリケーションに出力する
ように構成された、請求項１に記載の機器制御装置。
【請求項５】
前記プロセッサがさらに、
前記複数のアプリケーションのうち少なくとも１つのアプリケーションから、当該アプリケーションが現時点で前記制御権限を取得している前記複数の被制御機器のリストの出力を要求する第２のリスト要求信号が送信された場合に、当該第２のリスト要求信号を受信し、
前記第２のリスト要求信号が受信された場合に、前記メモリに記憶された情報に基づき、前記第２のリスト要求信号の送信元となるアプリケーションが現時点で制御権限を取得している前記複数の被制御機器のリストを出力する
ように構成された、請求項１に記載の機器制御装置。
【請求項６】
前記プロセッサがさらに、
前記複数の被制御機器の各々を遠隔制御対象として実行可能な関数、この関数に必要な引数、及び前記関数により遠隔制御を実行した結果のデータ型を前記メモリに記憶させ、
前記遠隔制御信号に関数、及びこの関数に必要な引数が含まれている場合に、当該関数および引数が前記メモリに記憶された内容と一致するか否かを判定し、
前記遠隔制御信号に基づき前記複数の被制御機器に対する遠隔制御を実行して得た前記結果のデータ型が、前記メモリに記憶された前記データ型と一致するか否かを判定する、
ように構成された、請求項１に記載の機器制御装置。
【請求項７】
プロセッサと当該プロセッサに接続されたメモリとを備える機器制御装置が実行する機器制御方法であって、
前記プロセッサが、複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させる過程と、
前記プロセッサが、前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定する過程と、
前記プロセッサが、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与する過程と、
前記プロセッサが、前記第１アプリケーションに対し前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止する過程と、
前記プロセッサが、前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する過程と
を備える、機器制御方法。
【請求項８】
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションを実行可能な少なくとも１つのデバイスからの遠隔制御信号を、前記遠隔制御の対象とする前記複数の被制御機器へ中継する機器制御装置を備えた機器制御システムであって、
前記複数のアプリケーションのそれぞれは、前記少なくとも１つのデバイスが備えるプロセッサにより、
前記複数の被制御機器に対する制御権限の取得を申請し、
前記複数の被制御機器の制御権限を取得した場合、前記複数の被制御機器を遠隔制御する遠隔制御信号を送信する
ように構成され、
前記機器制御装置は、プロセッサと当該プロセッサに接続されたメモリとを備え、
前記機器制御装置が備えるプロセッサは、
前記複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させ、
前記制御権限を取得する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定し、
前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与し、
前記第１アプリケーションに対し前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止し、
前記第１アプリケーションに前記制御権限が付与され、その後前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する
ように構成され、
前記複数の被制御機器のそれぞれは、各々が備えるプロセッサにより、
前記機器制御装置から受信した前記遠隔制御信号に基づいて動作するように構成された、
機器制御システム。
【請求項９】
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報をメモリに記憶させることと、
前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定することと、
前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与することと、
前記第１アプリケーションに対し前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止することと、
前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送することと
をプロセッサに実行させるための命令を記憶した非一時的な有形のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器制御装置、機器制御方法、及び機器制御システムに関する。
【背景技術】
【０００２】
近年、様々なセンサまたはアクチュエータを搭載した機器をネットワークに接続し、前記機器からのデータを収集・活用するＩｏＴ（Ｉｎｔｅｒｎｅｔ Ｏｆ Ｔｈｉｎｇｓ）システムがある。【０００３】
このＩｏＴシステムに複数のアプリケーション（装置、ソフトウェアまたはプロセス）を接続し、当該複数のアプリケーションが、前記機器に制御信号を送信することで当該機器の動作を制御する場合がある。【０００４】
前記制御信号を用いた具体的な制御手法として、遠隔関数呼び出し（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ、以下「ＲＰＣ」と呼ぶ）が利用されている（非特許文献１を参照。）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】加藤聰彦 and 藤長昌彦. "分散処理システムの相互接続のためのＲＰＣプロトコル変換." 全国大会講演論文集 ネットワーク (1991): 125-126.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
単一のアプリケーションであれば、前記ＲＰＣを用いて機器を問題なく動作させることができる。【０００７】
しかし、複数のアプリケーションを備えたＩｏＴシステムにおいて、例えば一方のアプリケーションが他方のアプリケーションと協調（連携）せずに同一の機器を制御すると、前記同一の機器側では複数のアプリケーションからの複数のＲＰＣを同時或いは連続的に受信してしまう。この結果、複数の制御が競合してしまう場合がある。【０００８】
ここで、競合とは、同一の機器の動作を制御する権利を複数のアプリケーションが有することを指す。【０００９】
このような場合、まず一方のアプリケーションからのＲＰＣにより一連の処理を実行した後、次いで他方のアプリケーションからのＲＰＣにより一連の処理を実行することで、全体の処理を達成すべきところ、前記競合が原因で、例えば機器の一部が異なる処理を行ってしまい、全体として所望する一連の処理を達成できないという問題が発生する。【００１０】
因みに、遠隔制御の対象となる機器がデータ処理を行う機器であってそのデータ処理に不具合が生じた場合には、データ処理の結果得られたデータを一度取り消して初期状態に戻せばよい。【００１１】
例えば、データベースにおける複数のデータの更新処理などは、一連の処理をトランザクションとして扱い、途中で処理が失敗した場合には、ロールバック処理を行うことで初期状態に戻すことができる。【００１２】
しかし、例えば工業用途の制御機器の制御を失敗した場合には、前記ロールバック処理のように、一度実行した処理を取り消して再度実行することが不可能な状況（例えば、不可逆的な処理）が存在する。【００１３】
具体的には、機器により素材の変形・変質等を伴う加工を行う場合である。この場合、一連の途中で処理が失敗すると初期状態に戻すことができない。【００１４】
このため、ロールバックが不可能な一連の処理を達成するには、複数のアプリケーションが複数の機器に対してネットワークを通じた遠隔制御を行っても、その遠隔制御が競合せず、各アプリケーションが指定した一連の処理をそれぞれ確実に完了させる仕組みが必要となる。【００１５】
また、前記ネットワークを介した機器の制御において、ＩｏＴシステムが想定しない不正なＲＰＣを送信するアプリケーションがある場合、当該機器が不正に操作される可能性がある。【００１６】
機器が不正に制御されると、この不正に制御された機器を制御する他のアプリケーションの処理が滞る可能性や、機器の破損等が発生する危険性がある。【００１７】
そこで、不正なＲＰＣが機器に送信されないようにする仕組みが必要である。【００１８】
本発明は、前記課題に鑑みてなされたものであり、複数アプリケーションから同一の機器に対し同時に送信されるＲＰＣの競合を防止し、これにより協調する一連の処理の未完了を許容できない多対多接続のＩｏＴシステムの機器制御に対しＲＰＣを適用できるようにする機器制御装置、機器制御方法、及び機器制御システムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明に係る機器制御装置は、複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を記憶するアプリケーション別制御権限情報記憶部と、前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定する制御権限判定手段と、前記制御権限判定手段により、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与する制御権限付与手段と、前記制御権限付与手段により前記第１アプリケーションに対し前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止する制御権限禁止手段と、前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する転送手段と、を備える。
【発明の効果】
【００２０】
本発明によれば、複数アプリケーションから同一の機器に対し同時に送信されるＲＰＣの競合を防止し、これにより協調する一連の処理の未完了を許容できない多対多接続のＩｏＴシステムの機器制御に対しＲＰＣを適用可能になる。
【図面の簡単な説明】
【００２１】
【図１】図１は、実施形態のＲＰＣゲートウェイ１０を備えた機器制御システム１の構成を示すブロック図である。
【図２】図２は、前記機器制御システム１が備えるＲＰＣゲートウェイ１０の回路構成を示すブロック図である。
【図３】図３は、前記ＲＰＣゲートウェイ１０の記憶装置１３内における機器識別子対応情報記憶部１３ｈに記憶された被制御機器３０（３０ａ〜３０ｅ）毎の識別子を示す図である。
【図４Ａ】図４Ａは、前記ＲＰＣゲートウェイ１０の記憶装置１３内に設けられる制御権限管理記憶部１３ｉの概念図である。
【図４Ｂ】図４Ｂは、前記ＲＰＣゲートウェイ１０の記憶装置１３内における制御権限管理記憶部１３ｉに記憶された被制御機器３０毎のアプリケーション２０による制御権限取得状況を示す図である。
【図４Ｃ】図４Ｃは、前記ＲＰＣゲートウェイ１０に接続された被制御機器３０ｃに対するアプリケーション２０ｂからの制御権限の取得の申請を拒否する様子を示す図である。
【図４Ｄ】図４Ｄは、前記ＲＰＣゲートウェイ１０に接続された被制御機器３０を遠隔制御可能なアプリケーション２０を示した図である。
【図５Ａ】図５Ａは、前記ＲＰＣゲートウェイ１０による機器制御処理（制御権限申請受付処理）を示すフローチャートである。
【図５Ｂ】図５Ｂは、前記ＲＰＣゲートウェイ１０による機器制御処理（ＲＰＣ実行要求受付処理）を示すフローチャートである。
【図５Ｃ】図５Ｃは、前記ＲＰＣゲートウェイ１０による機器制御処理（制御権限解放受付処理）を示すフローチャートである。
【図６Ａ】図６Ａは、前記ＲＰＣゲートウェイ１０による更新処理（１）を示すフローチャートである。
【図６Ｂ】図６Ｂは、前記ＲＰＣゲートウェイ１０による更新処理（２）を示すフローチャートである。
【図７Ａ】図７Ａは、前記ＲＰＣゲートウェイ１０による前記更新処理（２）を用いた被制御機器一覧提供処理を示すフローチャートである。
【図７Ｂ】図７Ｂは、前記ＲＰＣゲートウェイ１０による前記更新処理（２）を用いたリアルタイム制御機器提供処理を示すフローチャートである。
【図８】図８は、前記ＲＰＣゲートウェイ１０による新規関数情報登録通知処理を示すフローチャートである。
【図９】図９は、前記ＲＰＣゲートウェイ１０による関数情報一致確認処理を示すフローチャートである。
【図１０】図１０は、前記ＲＰＣゲートウェイ１０によるフォーマット確認処理を示すフローチャートである。
【図１１】図１１は、前記ＲＰＣゲートウェイ１０によるログ記憶処理を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態に係る機器制御装置、機器制御方法、及び機器制御システムについて図面を参照して説明する。
【００２３】
図１は、実施形態に係る機器制御装置としてのＲＰＣゲートウェイ１０を備えた機器制御システム１の構成を示したブロック図である。
【００２４】
機器制御システム１は、ＲＰＣゲートウェイ１０、アプリケーション２０（２０ａ〜２０ｃ）、及び被制御機器３０（３０ａ〜３０ｅ）を備える。
【００２５】
アプリケーション２０（２０ａ〜２０ｃ）は、ＣＰＵを備えるデバイスが、記憶媒体に記憶されたプログラムを実行することによって実現される。以下、図にブロックで示したアプリケーション２０（２０ａ〜２０ｃ）は、各アプリケーション２０（２０ａ〜２０ｃ）を実行可能なデバイスを指すものとして説明する。ただし、図は単なる一例であって、各アプリケーション２０が別個のデバイスに配置される必要はなく、複数のアプリケーションが単一のデバイス上に配置され単一のデバイスによって実行されてもよい。図１において、アプリケーション（を実行可能なデバイス）２０（２０ａ〜２０ｃ）は、アプリケーション接続部１４を介してＲＰＣゲートウェイ１０と接続される。
【００２６】
被制御機器３０（３０ａ〜３０ｅ）は、被制御機器接続部１５を介してＲＰＣゲートウェイ１０と接続される。
【００２７】
尚、アプリケーション２０ａ〜２０ｃを区別しない場合には、単にアプリケーション２０と呼び、同様に被制御機器３０ａ〜３０ｅを区別しない場合には、単に被制御機器３０と呼ぶ。
【００２８】
アプリケーション２０は、ＲＰＣゲートウェイ１０へＲＰＣ信号を送信する。
ＲＰＣ信号には、ＲＰＣ申請信号、ＲＰＣ実行要求（遠隔制御）信号、及びＲＰＣ制御権限解放要求信号がある。
【００２９】
ＲＰＣ申請信号は、被制御機器３０の動作を独占して制御する権限（以下、制御権限）を取得（ゲット）するための信号である。
【００３０】
ＲＰＣ実行要求信号は、前記制御権限を付与されたアプリケーション２０から送信される信号であって、複数の被制御機器３０（３０ａ〜３０ｅ）の動作を遠隔制御するための信号である。
【００３１】
ＲＰＣ制御権限解放要求信号は、それまで取得していた制御権限を解放（リリース）するための信号である。このＲＰＣ制御権限解放要求信号は、被制御機器３０による遠隔制御が実行された後にアプリケーション２０からＲＰＣゲートウェイ１０へ送信される。
【００３２】
上記のように、各アプリケーション２０または各アプリケーションを実行可能なデバイス２０は、被制御機器３０（３０ａ〜３０ｅ）に対する制御権限の取得を申請するＲＰＣ申請信号をＲＰＣゲートウェイ１０に出力する申請手段（申請部）と、当該申請手段により被制御機器３０の制御権限を取得した場合に当該被制御機器３０を遠隔制御するＲＰＣ実行要求信号（遠隔制御信号）をＲＰＣゲートウェイ１０に送信する手段（送信部）と、ＲＰＣ制御権限解放要求信号をＲＰＣゲートウェイ１０に送信する手段（送信部）とを備える。また、アプリケーション２０は、ＲＰＣゲートウェイ１０から、ＲＰＣ遠隔制御信号に基づいて動作した被制御機器３０の実行結果（図１中、ＲＰＣゲートウェイ１０から各アプリケーション２０に向かう矢印）を受信する。
【００３３】
ＲＰＣ申請信号及びＲＰＣ制御権限解放要求信号のフォーマットとして、自身（アプリケーション２０）のアドレス又は識別子、送信先（制御対象とする被制御機器３０（３０ａ〜３０ｅ）の識別子、が記述されている。
【００３４】
ＲＰＣ実行要求信号のフォーマットとして、自身（アプリケーション２０）のアドレス又は識別子、送信先（制御対象とする被制御機器３０（３０ａ〜３０ｅ）の識別子の他、被制御機器３０に対する制御内容（動作を制御する関数情報（［関数名］及び引数［データ含む］））、が記述されている。
【００３５】
ＲＰＣゲートウェイ１０は、アプリケーション２０による被制御機器３０への遠隔制御が競合しないよう中継する機能を有する。
【００３６】
具体的には、ＲＰＣゲートウェイ１０は、
（１）所定の条件（他のアプリケーション２０と競合がないこと）を満足した場合に当該アプリケーション２０に被制御機器３０を遠隔制御する制御権限を付与し、また制御権限が付与されたアプリケーション２０から受信したＲＰＣ遠隔制御信号を、自身（ＲＰＣゲートウェイ１０）を中継して被制御機器３０（３０ａ〜３０ｅ）へ送信する機能、
（２）ＲＰＣゲートウェイ１０に接続されているアプリケーション２０及び被制御機器３０をリアルタイムに把握する更新機能、
（３）アプリケーション２０からの問合せに応じて、いずれのアプリケーション２０からも制御権限の取得がなされていない被制御機器３０の一覧を提供する被制御機器一覧提供機能、
（４）アプリケーション２０からの問合せに応じて、当該アプリケーション２０が現時刻において制御権限取得している被制御機器３０の一覧を提供するリアルタイム被制御機器一覧提供機能、
（５）ＲＰＣゲートウェイ１０に、新たな関数情報（関数名、及び引数［データ含む］）に基づいて動作する被制御機器３０が接続された際に、当該被制御機器３０とこの被制御機器３０の制御に際し必要となる関数情報とを登録し、これをアプリケーション２０に通知する新規関数情報登録通知機能、
（６）アプリケーション２０からのＲＰＣ遠隔制御信号に記述された前記関数情報に誤りがないか否か、またこのＲＰＣ遠隔制御信号に従い動作した被制御機器３０からの結果に誤りがないか否かをチェックする関数情報一致機能／結果確認機能、及び
（７）ＲＰＣゲートウェイ１０の全体動作をログに記録するログ記録機能、
を有する。
【００３７】
被制御機器３０は、プロセッサと当該プロセッサに接続されたメモリとを備え、前記プロセッサが、前記メモリに記憶された命令を受けて、ＲＰＣゲートウェイ１０によって中継された前記ＲＰＣ遠隔制御信号を受信し、当該ＲＰＣ遠隔制御信号に従った所定の制御を実行すると、これを実行結果（例えば、成功：Ｔｒｕｅ、失敗：Ｆａｌｓｅ、結果の内容を示す“データ列”のいずれかの情報）としてＲＰＣゲートウェイ１０へ送信する機能を有する。
【００３８】
図２は、前記機器制御システム１が備えるＲＰＣゲートウェイ１０の回路構成を示したブロック図である。
【００３９】
図３は、前記ＲＰＣゲートウェイの記憶装置１３内における機器識別子対応情報記憶部１３ｈに記憶された被制御機器３０（３０ａ〜３０ｅ）毎の識別子を示した図である。
【００４０】
図４Ａ〜図４Ｄは、前記ＲＰＣゲートウェイ１０の記憶装置１３内に設けられる、アプリケーション別制御権限情報記憶部および被制御機器情報記憶部としての制御権限管理記憶部１３ｉの概念図と、この制御権限管理記憶部１３ｉに記憶され、時間毎に変化する被制御機器３０（３０ａ〜３０ｅ）に対するアプリケーション２０（２０ａ〜２０ｃ）の制御権限の取得状況を示した図である。
【００４１】
ＲＰＣゲートウェイ１０は、制御部としてのＣＰＵ１１を備えている。
【００４２】
ＣＰＵ１１は、システムバス１６を介して、メモリ１２、記憶装置１３、アプリケーション接続部１４、及び被制御機器接続部１５に接続される。
【００４３】
メモリ１２は、作業エリア１２ａを備える。
記憶装置１３は、ハードディスクや、フラッシュメモリ等から構成され、機器制御処理プログラム１３ａ、更新処理プログラム１３ｂ、被制御機器一覧提供プログラム１３ｃ、リアルタイム制御機器一覧提供プログラム１３ｄ、新規関数情報登録通知処理プログラム１３ｅ、確認処理プログラム１３ｆ及びログ記憶処理プログラム１３ｇを記憶する。また記憶装置１３は、機器識別子対応情報記憶部１３ｈ、制御権限管理記憶部１３ｉ、関数情報記憶部１３ｊ及びログ記憶部１３ｋを備える。
【００４４】
機器制御処理プログラム１３ａ〜ログ記憶処理プログラム１３ｇのそれぞれは、前記ＣＰＵ１１により作業エリア１２ａを用いて起動・実行され、当該機器制御処理プログラム１３ａ〜ログ記憶処理プログラム１３ｇに基づいたＣＰＵ１１からの制御信号に従って、回路各部の動作を制御することで後述する機器制御処理、更新処理（１）、更新処理（２）、被制御機器一覧提供処理、リアルタイム被制御機器一覧提供処理、新規関数情報登録通知処理、確認処理、及びログ記憶処理を実現する。
【００４５】
機器識別子対応情報記憶部１３ｈは、被制御機器３０（３０ａ〜３０ｅ）と、それら被制御機器３０（３０ａ〜３０ｅ）に対応する識別子とを記憶する。
【００４６】
図３に示すように、被制御機器３０ａの識別子を“ｄｅｖｉｃｅ００１”、被制御機器３０ｂの識別子を“ｄｅｖｉｃｅ００２”、被制御機器３０ｃの識別子を“ｄｅｖｉｃｅ００３”、被制御機器３０ｄの識別子を“ｄｅｖｉｃｅ００４”、被制御機器３０ｅの識別子を“ｄｅｖｉｃｅ００５”とする。
【００４７】
アプリケーション別制御権限情報記憶部および被制御機器情報記憶部としての制御権限管理記憶部１３ｉは、アプリケーション別制御権限情報および被制御機器の接続情報として、被制御機器３０（３０ａ〜３０ｅ）に対するアプリケーション２０（２０ａ〜２０ｃ）別の制御権限の取得状況を記憶する（図４Ａ〜図４Ｄを参照。）。
【００４８】
まず、図４Ａに示すように、制御権限管理記憶部１３ｉには被制御機器３０（３０ａ〜３０ｅ）と、この被制御機器３０に対して制御権限を有するアプリケーション２０（２０ａ〜２０ｃ）と、が対応して記憶される。
【００４９】
図４Ａは初期状態を示すため、被制御機器３０（３０ａ〜３０ｅ）に対していずれのアプリケーション２０（２０ａ〜２０ｃ）も制御権限を取得していない状態である。
【００５０】
図４Ｂは、アプリケーション２０ａが被制御機器３０（３０ａ〜３０ｃ）に対して制御権限を取得した様子を一例として示した図である。
【００５１】
ここでは、アプリケーション２０ｂにより被制御機器３０ｄに対する制御権限が取得されているものとする。
【００５２】
つまり、被制御機器３０（３０ａ〜３０ｃ）に対しては、いずれのアプリケーション２０も制御権限を取得していないことから、アプリケーション２０ａは被制御機器３０（３０ａ〜３０ｃ）に対して制御権限を取得することができる。
【００５３】
しかし、図４Ｃに示すように、アプリケーション２０ａによって被制御機器３０（３０ａ〜３０ｃ）に対する制御権限が取得されている場合では、例えばアプリケーション２０ｂからの被制御機器３０ｃに対する制御権限の取得の申請は否認される。すなわち、矢印で示した箇所にアプリケーション２０ｂを追加することはできない。
【００５４】
したがって、アプリケーション２０ｂは被制御機器３０ｃの他、他の被制御機器３０ｄ、及び３０ｅについても制御権限を取得できない。
【００５５】
このように、制御権限管理記憶部１３ｉを参照することで所定の時刻（例えば、被制御機器３０を遠隔制御したい時刻）における、被制御機器３０（３０ａ〜３０ｅ）毎のアプリケーション２０による制御権限の取得状況を把握することができ、また制御権限の取得の可否は、他のアプリケーション２０との関係で随時変化するものである。
【００５６】
例えば、所定の時刻において図４Ｄに示すような制御権限の取得状況を得た場合を考える。  
図示するように、所定の時刻ではアプリケーション２０ａが被制御機器３０（３０ａ〜３０ｃ）に対する制御権限を取得し、アプリケーション２０ｂが被制御機器３０ｄに対する制御権限を取得している。
【００５７】
つまり、図４Ｄの内容に従えば、制御権限を解放するまでアプリケーション２０ａは被制御機器３０（３０ａ〜３０ｃ）の動作を遠隔制御可能とし、またアプリケーション２０ｂは被制御機器３０ｄの動作を遠隔制御可能となる。
【００５８】
しかし、ＲＰＣゲートウェイ１０は、これ以外の組み合わせについては遠隔制御信号を送信したアプリケーション２０へエラーを返すものとする。
【００５９】
なお、制御権限管理記憶部１３ｉは、現時点でＲＰＣゲートウェイ１０に接続されているアプリケーション２０情報を記憶してもよい。
【００６０】
関数情報記憶部１３ｊは、被制御機器３０毎の関数情報を記憶する。
関数情報には、［被制御機器３０の動作内容を示す関数名（例えば、ｍｏｖｅ処理）、引数［データ含む］（例えば、ｘ、ｙ、ｚ：”1”,”1”,”1”）］、及び受信すべき被制御機器３０による実行結果のデータ型（成功：Ｔｒｕｅ、失敗：Ｆａｌｓｅ、データ列など）が記憶される。
【００６１】
前記アプリケーション接続部１４は、前記制御信号に従いアプリケーション２０（２０ａ〜２０ｃ）とＲＰＣ信号及び実行結果（Ｔｒｕｅ、Ｆａｌｓｅ、或いはデータ列）の授受を行う。
【００６２】
前記被制御機器接続部１５は、前記制御信号に従い被制御機器３０（３０ａ〜３０ｅ）とＲＰＣ信号及び実行結果（Ｔｒｕｅ、Ｆａｌｓｅ、或いはデータ列）の授受を行う。
【００６３】
このように構成されたＲＰＣゲートウェイ１０は、前記ＣＰＵ１１が機器制御処理プログラム１３ａ〜ログ記録処理プログラム１３ｇに記述された命令に従い回路各部の動作を制御し、ソフトウェアとハードウェアとが協働して動作することにより、以下の動作説明にて述べるような処理を実現する。次に、前記構成の機器制御システム１の動作を説明する。
【００６４】
［機器制御処理］
図５Ａ、図５Ｂ、及び図５Ｃは、前記ＲＰＣゲートウェイ１０による機器制御処理を示すフローチャートである。以下の機器制御処理は、大きく分けて（１）制御権限申請受付処理、（２）ＲＰＣ遠隔信号受付処理、及び（３）制御権限解放処理に分類される。
【００６５】
なお、以下の処理では、理解を容易にするため、一例としてアプリケーション２０ａによる機器制御処理（制御権限申請受付処理（図５Ａ）、ＲＰＣ遠隔信号受付処理（図５Ｂ）、及び制御権限解放受付処理（図５Ｃ））に着目する。
【００６６】
まず、図５Ａを用いて（１）制御権限申請受付処理について説明する。
（１）制御権限申請受付処理  
アプリケーション２０に被制御機器３０の動作を独占的に制御する制御権限を付与する際、ＲＰＣゲートウェイ１０を駆動して機器制御処理プログラム１３ａを起動させる。すると、ＲＰＣゲートウェイ１０のＣＰＵ１１は、アプリケーション接続部１４を介してアプリケーション２０からＲＰＣ申請信号を受信したか否かを判定する（ステップＳ１）。
【００６７】
例えば、アプリケーション２０ａからＲＰＣ申請信号を受信したと判定すると（ステップＳ１、ＹＥＳ）、ＲＰＣゲートウェイ１０は、次いで要求元であるアプリケーション２０ａからのＲＰＣ申請信号のフォーマットが正しいか否かをチェックする（ステップＳ２）。ＲＰＣ申請信号が正しいフォーマットであれば（ステップＳ２、ＹＥＳ）、ＲＰＣゲートウェイ１０は、次いで他のアプリケーション２０（２０ｂ、２０ｃ）からのＲＰＣ申請信号に基づいた制御権限管理記憶部１３ｉの書き換え処理（図中、参照・更新処理）が行われていないか判定する（ステップＳ４）。つまり、ＲＰＣゲートウェイ１０は、他のアプリケーション２０（２０ｂ、２０ｃ）からのＲＰＣ申請信号による制御権限の書き換え処理の有無を判定する（ステップＳ４）。
【００６８】
制御権限の参照・更新処理が行われていないと判定すると（ステップＳ４、ＹＥＳ）、ＲＰＣゲートウェイ１０は、アプリケーション２０ａからのＲＰＣ申請信号に基づき、以下の制御権限の申請処理を開始する（ステップＳ５）。
【００６９】
まず、ＲＰＣゲートウェイ１０は、ＲＰＣ申請信号内に含まれる制御対象としての被制御機器３０のうち、１つ目の被制御機器３０（例えば、３０ａ）を選択する（ステップＳ６）。
【００７０】
具体的には、ＲＰＣゲートウェイ１０は、まず作業エリア１２ａを用いてｎに“１”を設定する。ここで、ｎはＲＰＣ申請信号に記述された制御対象とする被制御機器３０の数を示す。
【００７１】
例えば、アプリケーション２０ａが被制御機器３０（３０ａ、３０ｂ、３０ｃ）を遠隔制御の対象機器としていればｎ＝３となる。
【００７２】
次いで、ＲＰＣゲートウェイ１０は、ＣＰＵ１１を制御権限判定手段（接続確認手段および権限付与判定手段）として用いて、制御権限管理記憶部１３ｉに基づいて、アプリケーション２０ａが指定した被制御機器３０ａに対して他のアプリケーション２０（２０ｂ、２０ｃ）が制御権限を有しているか否か、言い換えれば、例えば図４Ａの被制御機器３０ａに対応するアプリケーション２０の欄に他のアプリケーション２０（２０ｂ、２０ｃのいずれかのアプリケーション２０）が記憶されていないか否かについて確認する（ステップＳ７）。
【００７３】
被制御機器３０ａに対する制御権限が他のアプリケーション２０（２０ｂ、２０ｃ）により取得されていなければ（ステップＳ７、ＹＥＳ、図４Ｂ左側を参照。）、ＲＰＣゲートウェイ１０は、次いで、ＲＰＣ申請信号に含まれる被制御機器（３０ａ、３０ｂ、３０ｃ）の全てに対してステップＳ７の処理を実行したか否かを確認する（ステップＳ１０）。
【００７４】
また、制御対象となる全ての被制御機器３０（３０ａ、３０ｂ、及び３０ｃ）についてステップＳ７の処理が終了していない場合には（ステップＳ１０（ＮＯ））、ＲＰＣゲートウェイ１０は、ｎに“ｎ＋１”を代入して、２つ目に指定した被制御機器３０ｂを選択した後、ステップＳ７の処理を実行する（ステップＳ１０（ＮＯ）→ステップＳ６→ステップＳ７）。
【００７５】
ＣＰＵ１１は、３つ目に指定した被制御機器３０ｃについても同様の処理を実行する（ステップＳ１０（ＮＯ）→ステップＳ６→ステップＳ７）。
【００７６】
制御対象となる全ての被制御機器３０（３０ａ、３０ｂ、及び３０ｃ）に対してステップＳ７の処理が完了した結果、いずれのアプリケーション２０（２０ｂ、２０ｃ）も制御権限を取得しておらず（図４Ｂ左側を参照。）、全ての被制御機器３０（３０ａ、３０ｂ、及び３０ｃ）に対する制御権限を取得可能であると判定すると（ステップＳ１０、ＹＥＳ）、ＲＰＣゲートウェイ１０は、ＣＰＵ１１を制御権限付与手段として用いて、被制御機器３０（３０ａ、３０ｂ、及び３０ｃ）を制御するアプリケーション２０として、申請元であるアプリケーション２０ａに関する情報（例えば、識別子など）を制御権限管理記憶部１３ｉに書き込み、記憶させる（ステップＳ１１、図４Ｂ右側を参照。）。
【００７７】
その後、ＲＰＣゲートウェイ１０は、被制御機器３０（３０ａ、３０ｂ、及び３０ｃ）の動作を遠隔制御する制御権限を付与した旨を申請元のアプリケーション２０ａに返答し（ステップＳ１２）、且つＣＰＵ１１を制御権限禁止手段として用いて、他のアプリケーション２０（２０ｂ、２０ｃ）による被制御機器３０（３０ａ、３０ｂ、３０ｃ）への制御権限を排除（exclude）（または制御権限の付与を禁止（forbid））した上で（すなわち、他のアプリケーション２０（２０ｂ、２０ｃ）の被制御機器３０（３０ａ、３０ｂ、３０ｃ）への制御権限取得要求を遮断した上で）、制御権限管理記憶部１３ｉの更新処理を終了し（ステップＳ１３）、次の（２）ＲＰＣ実行要求受付処理に移行する。
【００７８】
なお、ＲＰＣゲートウェイ１０は、ステップＳ１にてＲＰＣ申請信号を受信していなければ（ステップＳ１、ＮＯ）、当該ＲＰＣ申請信号を受信するまで待機する。またＲＰＣゲートウェイ１０は、ＲＰＣ申請信号が正しいフォーマットで送信されていない場合には（ステップＳ２、ＮＯ）、申請元のアプリケーション２０ａに対して制御権限の取得を失敗した旨を返答し（ステップＳ３）、新たなＲＰＣ申請信号の受信処理に移行する（ステップＳ１）。ＲＰＣゲートウェイ１０は、さらにＲＰＣ申請信号を受信した際に、他のアプリケーション２０による制御権限の申請処理が行われている場合には（ステップＳ４、ＮＯ）、この制御権限の申請処理が終了するまで待機する。そしてＲＰＣゲートウェイ１０は、アプリケーション２０ａが指定した被制御機器３０（３０ａ、３０ｂ、及び３０ｃ）のうちいずれかの被制御機器３０に対して他のアプリケーション２０による制御権限が取得されている場合には（ステップＳ７、ＮＯ、一例として図４Ｃを参照。）、ＣＰＵ１１をエラー処理手段として用いて、アプリケーション２０ａが指定した被制御機器３０を独占して制御することができないため申請元のアプリケーション２０ａに対して制御権限の取得を失敗した旨を返答しつつ（ステップＳ８）、本処理（制御権限申請処理）を終了し（ステップＳ９）、新たなＲＰＣ申請信号の受信処理に移行する（ステップＳ１）。
【００７９】
（２）ＲＰＣ実行要求受付処理
図５Ｂに示すように、ＲＰＣゲートウェイ１０は、制御権限を付与したアプリケーション２０ａからＲＰＣ実行要求信号を受信すると（ステップＰ１、ＹＥＳ）、次いで要求元のアプリケーション２０ａからのＲＰＣ実行要求信号のフォーマットが正しいか否かをチェックする（ステップＰ２）。正しいフォーマットであれば（ステップＰ２、ＹＥＳ）、次いで制御権限管理記憶部１３ｉの書き換え処理（図中、参照・更新処理）が行われていないか判定する（ステップＰ３）。
【００８０】
制御権限の参照・更新処理が行われていないと判定すると（ステップＰ３、ＹＥＳ）、ＲＰＣゲートウェイ１０は、以下の制御権限参照処理を開始する（ステップＰ４）。
【００８１】
まず、ＲＰＣゲートウェイ１０は、ＲＰＣ実行要求信号にて指定された被制御機器３０（３０ａ、３０ｂ、３０ｃ）の制御権限をアプリケーション２０ａが有しているか否かを判定する（ステップＰ５）。
【００８２】
アプリケーション２０ａが指定した被制御機器３０（３０ａ、３０ｂ、３０ｃ）の制御権限を有していると判定すれば（ステップＰ５、ＹＥＳ）、ＲＰＣゲートウェイ１０は、ステップＰ４で開始した制御権限参照処理を終了し（ステップＰ８）、ＣＰＵ１１を転送手段として用いて、アプリケーション２０ａからのＲＰＣ実行要求信号、具体的には当該ＲＰＣ実行要求信号に記述された［関数名］と［引数（データ含む）］とを被制御機器３０（３０ａ、３０ｂ、３０ｃ）へと転送（中継）する（ステップＰ９）。
【００８３】
その後、ＲＰＣゲートウェイ１０は、遠隔制御した被制御機器３０からＲＰＣ実行結果について受信処理を実行し（ステップＰ１０）、当該受信処理に基づきＲＰＣ実行結果が正しいフォーマットに従っているか否かを判定する（ステップＰ１１）。
【００８４】
正しいフォーマットに従っていれば（ステップＰ１１、ＹＥＳ）、ＲＰＣゲートウェイ１０は、被制御機器３０による実行結果を要求元のアプリケーション２０ａへ送信し（ステップＰ１２）、後述する（３）制御権限解放処理に移行する。
【００８５】
なお、ＲＰＣゲートウェイ１０は、ステップＰ２にてＲＰＣ実行要求信号が正しいフォーマットに従っていなければ（ステップＰ２、ＮＯ）、再度の受信処理に移行し（ステップＰ２→Ｐ１）、またＲＰＣ実行要求信号を受信した際に制御権限管理記憶部１３ｉの参照・申請処理が行われている場合には（ステップＰ３、ＮＯ）、この参照・申請処理が終了するまで待機し、さらにＲＰＣ実行要求信号にて指定した被制御機器３０に対する制御権限を有していない場合には（ステップＰ５、ＮＯ）、ステップＰ４における制御権限参照処理を終了した後に、ＲＰＣ実行要求信号による遠隔制御を実行できない旨を要求元のアプリケーション２０ａへ返信し、ＲＰＣ実行要求受付処理を終了する（ステップＰ６→Ｐ７→終了）。
【００８６】
また更に、ＲＰＣゲートウェイ１０は、遠隔制御した被制御機器３０の実行結果を受信せず（ステップＰ１０、ＮＯ）、そして被制御機器３０の実行結果を受信した場合であっても（ステップＰ１０、ＹＥＳ）、被制御機器３０の実行結果が正しいフォーマットに従っていなければ（ステップＰ１１、ＮＯ）、ＲＰＣ実行要求信号による遠隔制御を実行できない旨を要求元のアプリケーション２０ａへ返信し、ＲＰＣ実行要求受付処理を終了する（ステップＰ７→終了）。
【００８７】
（３）制御権限解放受付処理
図５Ｃに示すようにＲＰＣゲートウェイ１０が実行結果を受信したアプリケーション２０ａからそれまで遠隔制御していた被制御機器３０（３０ａ、３０ｂ、３０ｃ）を解放（解除）したい旨を示す制御権限解放要求信号を受信すると（ステップＱ１、ＹＥＳ）、ＲＰＣゲートウェイ１０は、次いで要求元のアプリケーション２０ａからの制御権限解放要求信号のフォーマットが正しいか否かをチェックする（ステップＱ２）。正しいフォーマットであれば（ステップＱ２、ＹＥＳ）、ＲＰＣゲートウェイ１０は、次いで制御権限管理記憶部１３ｉの書き換え処理（図中、参照・更新処理）が行われていないか判定する（ステップＱ４）。
【００８８】
制御権限の参照・更新処理が行われていないと判定すると（ステップＱ４、ＹＥＳ）、ＲＰＣゲートウェイ１０は、アプリケーション２０ａからの制御権限解放要求信号に基づき、以下の制御権限更新処理を開始する（ステップＱ５）。
【００８９】
すなわち、ＲＰＣゲートウェイ１０は、被制御機器３０（３０ａ、３０ｂ、３０ｃ）に対して制御権限を有する要求元アプリケーション２０ａに関する情報を制御権限管理記憶部１３ｉから削除し（ステップＱ６）、制御権限解放要求信号を送信した要求元のアプリケーション２０ａへ制御権限を解放した旨の返答をした後に（ステップＱ７）、制御権限更新処理を終了する（ステップＱ８）。
【００９０】
なお、ＲＰＣゲートウェイ１０は、制御権限解放要求信号を受信しない場合には、受信するまで待機し（ステップＱ１、ＮＯ）、制御権限解放要求信号が正しいフォーマットに従っていなければ（ステップＱ２、ＮＯ）、フォーマットが違っているため制御権限を解放できない旨の結果を、要求元のアプリケーション２０ａに返答し（ステップＱ３）、また制御権限解放要求信号を受信した際に制御権限管理記憶部１３ｉの参照・申請処理が行われている場合には（ステップＱ４、ＮＯ）、この参照・申請処理が終了するまで待機する。
【００９１】
したがって、上述した構成のＲＰＣゲートウェイ１０によれば、当該ＲＰＣゲートウェイ１０に、複数のアプリケーション２０（２０ａ〜２０ｃ）と複数の被制御機器３０（３０ａ〜３０ｅ）とを接続し、被制御機器３０と当該被制御機器３０に対応する識別子と対応付けて記憶された機器識別子対応情報記憶部１３ｈと、アプリケーション２０毎（２０ａ〜２０ｃ）の被制御機器３０（３０ａ〜３０ｅ）に対する制御権限を記憶した制御権限管理記憶部１３ｉとを備える。そして、例えばアプリケーション２０ａが遠隔制御の対象として指定した複数の被制御機器３０（３０ａ、３０ｂ、３０ｃ）の全てがいずれのアプリケーション２０からも制御権限の取得がなされていなければ（図４Ｂ左側を参照。）、アプリケーション２０ａからのＲＰＣ申請信号に従い被制御機器３０（３０ａ、３０ｂ、３０ｃ）の動作を遠隔制御する制御権限をアプリケーション２０ａに与え、当該被制御機器３０（３０ａ、３０ｂ、３０ｃ）に対する他のアプリケーション２０（２０ｂ、２０ｃ）の動作を制御する制御権を排除（制御権限の付与を禁止）した上で（すなわち、他のアプリケーション２０（２０ｂ、２０ｃ）による被制御機器３０（３０ａ、３０ｂ、３０ｃ）への制御権限取得要求を遮断した上で）、アプリケーション２０ａからのＲＰＣ実行要求信号を前記遠隔制御の対象とした複数の被制御機器３０（３０ａ、３０ｂ、３０ｃ）に送信する。
【００９２】
これによれば、ＲＰＣゲートウェイ１０は、例えばアプリケーション２０ａへ被制御機器３０（３０ａ、３０ｂ、３０ｃ）に対するグループ単位の排他的（exclusive）な制御権限を付与し、他のアプリケーション２０（２０ｂ、２０ｃ）からの被制御機器３０（３０ａ、３０ｂ、３０ｃ）に対する制御権を排除（exclude）することで、被制御機器３０（３０ａ、３０ｂ、３０ｃ）が複数のＲＰＣ実行要求信号を同時に、又は連続的に受信してしまうことを防止することができる。その結果、例えばアプリケーション２０ａからのＲＰＣ実行要求信号により被制御機器３０（３０ａ、３０ｂ、３０ｃ）に一連の処理を実行させ、制御権限を解放した後、次いで例えばアプリケーション２０ｂからのＲＰＣ申請信号及びＲＰＣ実行要求信号により被制御機器３０（３０ａ、３０ｂ、３０ｃ）に異なる一連の処理を実行させることで、全体の処理を達成することができる。このように、複数の動作が競合してしまうといった誤動作を防止することができる。
【００９３】
また前記構成のＲＰＣゲートウェイ１０によれば、ＲＰＣゲートウェイ１０は、アプリケーション２０から受信したＲＰＣ申請信号に含まれる被制御機器３０に対する制御権限の取得の有無を制御権限管理記憶部１３ｉに基づいて判断する。
これによれば、ＲＰＣ実行要求信号を送信したアプリケーション２０が指定した被制御機器３０に対して当該アプリケーション２０が制御権限を有していない場合には、ＲＰＣゲートウェイ１０は、これを不正アクセスとして判断し、当該アプリケーション２０からのアクセスを遮断することができる。
【００９４】
さらに、上述した構成のＲＰＣゲートウェイ１０によれば、ＲＰＣゲートウェイ１０は、ステップＳ４における制御権限更新処理開始前にアプリケーション２０からのＲＰＣ申請信号のフォーマットが適合しているのかの確認を行う。
【００９５】
これによれば、アプリケーション２０からのＲＰＣ申請信号のフォーマットが適合していない場合には、これを不正アクセスとして判断し、当該アプリケーション２０からのアクセスを遮断することができる。
【００９６】
［更新処理（１）、更新処理（２）／被制御機器一覧提供処理、リアルタイム制御機器一覧提供処理］
以下、図６Ａ、図６Ｂ、図７Ａ、及び図７Ｂを用いて説明する。
ＲＰＣゲートウェイ１０は、当該ＲＰＣゲートウェイ１０に接続されているアプリケーション２０、及び被制御機器３０に基づいて機器識別子対応情報記憶部１３ｈ及び制御権限管理記憶部１３ｉに記憶された情報を更新する機能を有する。当該更新機能により、ＲＰＣゲートウェイ１０はまた、ＣＰＵ１１をリスト出力手段として用いて、いずれのアプリケーション２０にも制御権限が取得されていない被制御機器３０のリストを一覧出力する機能を有する。さらにＲＰＣゲートウェイ１０は、ＣＰＵ１１をリスト出力手段として用いて、上述した制御権限申請受付処理の結果、現時刻において制御権限を有する被制御機器３０のリストをアプリケーション２０毎に一覧出力する機能を有する。
【００９７】
図６Ａは、アプリケーション２０（２０ａ〜２０ｃ）とは異なる新たなアプリケーション２０がアプリケーション接続部１４に接続され、またこの新たに接続されたアプリケーション２０を含む全てのアプリケーション２０からアプリケーション２０が取り外された際の前記ＲＰＣゲートウェイ１０による更新処理（１）を示したフローチャートである。なお、このフローチャートでは、新たなアプリケーション２０の接続、取外しとして、１又は複数のいずれの場合を想定している。以下、図６Ｂに示す被制御機器３０の場合も同様で新たな被制御機器３０の接続、取外しとして、１又は複数のいずれの場合を想定している。
図６Ｂは、被制御機器３０（３０ａ〜３０ｅ）とは異なる新たな被制御機器３０が被制御機器接続部１５に接続され、またこの新たに接続された被制御機器３０を含む全ての被制御機器３０から被制御機器３０が取り外された際の前記ＲＰＣゲートウェイ１０による更新処理（２）を示したフローチャートである。
【００９８】
ＲＰＣゲートウェイ１０を駆動し、更新処理プログラム１３ｂを起動させると、ＲＰＣゲートウェイ１０は、前記アプリケーション接続部１４に新たなアプリケーション２０が接続されか否かを判定する（ステップＴ１）。
【００９９】
新たなアプリケーション２０の接続があったと判定すると（ステップＴ１、ＹＥＳ）、制御権限管理記憶部１３ｉに新たなアプリケーション２０を追加・記憶させる（ステップＴ２）。
【０１００】
その後、アプリケーション２０がＲＰＣゲートウェイ１０から外されたか否かを判定する（ステップＴ３）。また、ステップＴ１にて新たなアプリケーション２０が接続されていないと判定した場合も（ステップＴ１、ＮＯ）、このステップＴ３の動作に移行する（ステップＴ１、（ＮＯ）→ステップＴ３）。
【０１０１】
そして、アプリケーション２０がＲＰＣゲートウェイ１０から外されたことを判定すると（ステップＴ３、ＹＥＳ）、当該外されたアプリケーション２０に関する情報を制御権限管理記憶部１３ｉから削除する（ステップＴ４）。
【０１０２】
これにより、常時制御権限管理記憶部１３ｉの情報を最新の状態とする。
【０１０３】
次に、図６Ｂを用いてＲＰＣゲートウェイ１０による更新処理（２）について説明する。
【０１０４】
ＲＰＣゲートウェイ１０は、前記被制御機器接続部１５に新たな被制御機器３０が接続されたか否かを判定する（ステップＴ１０）。
【０１０５】
新たな被制御機器３０の接続があったと判定すると（ステップＴ１０、ＹＥＳ）、まず、機器識別子対応情報記憶部１３ｈに新たな被制御機器３０とこれに対応する識別子とを追加・記憶する（ステップＴ１１）。次いで、今回新たに追加した被制御機器３０の識別子を制御権限管理記憶部１３ｉに追加・記憶する（ステップＴ１２）。
【０１０６】
その後、ＲＰＣゲートウェイ１０から外された被制御機器３０があるか否かについて判定する（ステップＴ１３）。また、ステップＴ１０にて新たな被制御機器３０が接続されていないと判定した場合も（ステップＴ１０、ＮＯ）、このステップＴ１３の動作に移行する（ステップＴ１０、（ＮＯ）→ステップＴ１３）。
【０１０７】
外された被制御機器３０があると判定すると（ステップＴ１３、ＹＥＳ）、当該外された被制御機器３０について機器識別子対応情報記憶部１３ｈから削除すると共に、機器識別子対応情報記憶部１３ｈから削除した被制御機器３０に関する情報を前記制御権限管理記憶部１３ｉから削除する（ステップＴ１４）。
【０１０８】
この更新処理（２）を実行することで、機器識別子対応情報記憶部１３ｈの他、制御権限管理記憶部１３ｉについても最新の状態を保持することができる。
【０１０９】
なお、前記更新処理（１）、（２）は、ＲＰＣゲートウェイ１０が起動している最中であればどのタイミングで実行してもよく、またアプリケーション２０及び／又は被制御機器３０が接続、取外しされた際に実行してもよいし、更に、例えば下記図７Ａ、及び図７Ｂを用いて説明するようなリアルタイムでの被制御機器３０の接続状況、及び制御権限取得状況を把握したいといった要求に応じて実行してもよい。
【０１１０】
次に、図７Ａを用いてＲＰＣゲートウェイ１０による被制御機器一覧提供処理について説明する。
【０１１１】
図７Ａは、前記更新処理（２）を用いて被制御機器一覧提供処理を実行する前記ＲＰＣゲートウェイ１０による動作を示すフローチャートである。
【０１１２】
ＲＰＣゲートウェイ１０を駆動し、被制御機器一覧提供処理プログラム１３ｃを起動させる。ＲＰＣゲートウェイ１０は、制御権限を取得可能な被制御機器３０の情報を要求する問い合わせ（以下、制御権限確認信号）をアプリケーション２０から受信すると（ステップＵ１、ＹＥＳ）、まず前記更新処理（２）を実行する。
【０１１３】
すなわち、ＲＰＣゲートウェイ１０に接続された被制御機器３０の最新状況を得るべく、ステップＴ１１〜Ｔ１４までの動作を実行することで機器識別子対応情報記憶部１３ｈ内の被制御機器３０に関する情報の追加／削除を実行する（ステップＵ２）。
【０１１４】
その後、ＲＰＣゲートウェイ１０は、ＣＰＵ１１をリスト出力手段として用いて、当該機器識別子対応情報記憶部１３ｈに記憶されている識別子及びこれに対応する被制御機器３０の情報、並びに制御権限管理記憶部１３ｉに記憶され、いずれのアプリケーション２０からも制御権限を取得されていない被制御機器３０に関する情報（リスト）を、前記制御権限確認信号を受けたアプリケーション２０に送信する（ステップＵ３）。
【０１１５】
次に、図７Ｂを用いてＲＰＣゲートウェイ１０によるリアルタイム制御機器一覧提供処理について説明する。
【０１１６】
図７Ｂは、前記更新処理（２）を用いてリアルタイム制御機器一覧提供処理を実行する前記ＲＰＣゲートウェイ１０による動作を示すフローチャートである。
【０１１７】
ＲＰＣゲートウェイ１０を駆動し、リアルタイム制御機器提供処理プログラム１３ｄを起動させる。ＲＰＣゲートウェイ１０は、現在、制御権限を取得している被制御機器３０ついてその情報を要求する問い合わせ（以下、制御権限取得信号）を受信すると（ステップＵ１０、ＹＥＳ）、同様に更新処理（２）を実行する（ステップＵ１１）。
【０１１８】
その後、ＲＰＣゲートウェイ１０は、現在時刻における制御権限を取得している被制御機器３０を提供すべく制御権限管理記憶部１３ｉを参照する（ステップＵ１２）。その後、ＲＰＣゲートウェイ１０は、ＣＰＵ１１をリスト出力手段として用いて、制御権限管理記憶部１３ｉに記憶された情報に基づいて制御権限取得信号を受けたアプリケーション２０に対して、現在時刻にて制御権限を取得している被制御機器３０の一覧情報（リスト）を送信する（ステップＵ１３）。
【０１１９】
したがって、上述した構成のＲＰＣゲートウェイ１０によれば、アプリケーション２０から問い合わせとして制御権限確認信号や制御権限取得信号を受信すると、更新処理（２）を実行し、制御権限管理記憶部１３ｉを参照して現在ＲＰＣゲートウェイ１０に接続された被制御機器３０のうち、いずれのアプリケーション２０からも制御権限を取得されていない被制御機器３０の一覧リストを提供する他、現時点で制御権限を取得している被制御機器３０の一覧をリアルタイムで一覧提供する。
【０１２０】
これによれば、アプリケーション２０を操作するユーザは、現在ＲＰＣゲートウェイ１０に接続されている被制御機器３０であって制御権限を取得可能な被制御機器３０の一覧（リスト）や、現時点で被制御機器３０を制御可能か、すなわちどの被制御機器３０に対して制御権限を有しているのかをリアルタイムで認識することができる。
【０１２１】
［新規関数情報登録通知処理／関数情報一致確認処理、及び結果確認処理］
以下、図８、図９及び図１０を用いて説明する。
図８は、前記ＲＰＣゲートウェイによる新規関数情報登録通知処理を示すフローチャートである。
【０１２２】
ＲＰＣゲートウェイ１０を駆動し、新規関数情報登録通知処理プログラム１３ｅを起動させる。すると、ＲＰＣゲートウェイ１０は新規関数情報登録通知処理プログラム１３ｅを起動して以下図８に示す処理を実行する。
【０１２３】
まず、ＲＰＣゲートウェイ１０は被制御機器接続部１５に新たな被制御機器３０が接続されたか否かを判定し（ステップＪ１）、接続がない場合には（ステップＪ１、ＮＯ）、新たな被制御機器３０の接続があるまで待機する。
【０１２４】
そして、ＲＰＣゲートウェイ１０は、新たな被制御機器３０が接続されたと判定すると（ステップＪ１、ＹＥＳ）、関数情報記憶部１３ｊを参照し（ステップＪ２）、新たに接続された被制御機器３０によって実行可能な関数情報が関数情報記憶部１３ｊに既に記憶（登録）されているか否かを確認する（ステップＪ３）。
【０１２５】
ステップＪ３の結果、新たに接続された被制御機器３０によって実行可能な関数情報が関数情報記憶部１３ｊに記憶（登録）されていないと判定すると（ステップＪ３、ＮＯ）、ＲＰＣゲートウェイ１０は、その新たな関数情報を関数情報記憶部１３ｊに記憶（登録）し（ステップＪ４）、現在ＲＰＣゲートウェイ１０に接続されている全てのアプリケーション２０に対して関数情報記憶部１３ｊに新たな制御関数情報が記憶（登録）されたことを通知する（ステップＪ５）。
【０１２６】
なお、ステップＪ３の結果、新たに接続された被制御機器３０によって実行可能な関数情報が関数情報記憶部１３ｊに記憶（登録）されているのであれば（ステップＪ３、ＹＥＳ）、ＲＰＣゲートウェイ１０は処理を終了する。
【０１２７】
これにより、上記ステップＰ２におけるフォーマット確認処理を、以下のような処理（Ｐ２−１）に置き換えて実行することもできる。
【０１２８】
図９は、ＲＰＣゲートウェイ１０がフォーマット確認処理（ステップＰ２）の代わりに実行する関数情報一致確認処理（Ｐ２−１）を示したフローチャートである。
【０１２９】
関数情報一致確認処理は、前記アプリケーション２０ａが送信したＲＰＣ実行要求信号に記述された関数情報（関数名、引数［データを含む］）の内容に誤りが無く、関数情報記憶部１３ｊに記憶された関数情報（関数名、引数［データを含む］）と一致するか否か、すなわち制御対象となる被制御機器３０にＲＰＣ実行要求信号のフォーマットが対応しているかについて確認する処理である。
【０１３０】
まず、ＲＰＣゲートウェイ１０により、ステップＰ１においてアプリケーション２０ａからＲＰＣ実行要求信号受信した後、当該ＲＰＣ実行要求信号内の関数情報に基づいて関数情報記憶部１３ｊを参照する処理が実行される（ステップＫ１）。
【０１３１】
そして、ＲＰＣゲートウェイ１０は、ＣＰＵ１１を関数情報判定手段として用いて、アプリケーション２０からのＲＰＣ実行要求信号内に含まれる関数情報（関数名、引数［データを含む］）が、当該関数情報記憶部１３ｊに記憶された内容の一部（関数名、引数［データを含む］）と一致するか否かを判定する（ステップＫ２）。
【０１３２】
一致していれば（ステップＫ２、ＹＥＳ）、ＲＰＣゲートウェイ１０は、ステップＰ３の処理へ移行し、制御権限管理記憶部１３ｉの書き換え処理（図中、参照・更新処理）が行われていないか判定する。
【０１３３】
なお、ＲＰＣ遠隔制御信号内に含まれる関数情報（関数名、引数［データを含む］）が、当該関数情報記憶部１３ｊに記憶された内容と一致していなければ（ステップＫ２、ＮＯ）、ＲＰＣゲートウェイ１０は、アプリケーション２０ａにエラーを返して（ステップＫ３）、終了する。
【０１３４】
また、ＲＰＣゲートウェイ１０は、新規関数情報登録通知処理（Ｊ１〜Ｊ５）により得られた関数情報記憶部１３ｊを用いることで下記に示すように被制御機器３０による実行結果に誤りがあるか否かについてチェックする処理を追加実行できる。
【０１３５】
図１０は、上記ステップＰ１１の代わりにＲＰＣゲートウェイ１０が実行するフォーマット確認処理（Ｐ１１−１）を示したフローチャートである。
【０１３６】
まず、ＲＰＣゲートウェイ１０を駆動して確認処理プログラム１３ｆを起動させる。するとステップＰ１０において、遠隔制御させた被制御機器３０によって得られた実行結果を受信した場合（ステップＰ１０、ＹＥＳ）、ＲＰＣゲートウェイ１０は、ＣＰＵ１１を制御結果判定手段として用いて、当該実行結果が関数情報記憶部１３ｊに記憶された情報（受信すべき被制御機器３０による実行結果のデータ型）と一致するか否かを確認する（ステップＰ１１−１）。具体的には、実行結果の内容が“Ｔｒｕｅ”、“Ｆａｌｓｅ”、データ列であるか、または文字列ではないか等のチェックが行われる。
【０１３７】
ここで、実行結果の内容が“Ｔｒｕｅ”、“Ｆａｌｓｅ”やデータ列であれば一致し、それ以外であれば、不一致とする。
【０１３８】
実行結果の内容が関数情報記憶部１３ｊに記憶された前記データ型と一致するのであれば（Ｐ１１−１、ＹＥＳ）、ＲＰＣゲートウェイ１０は、ステップＰ１２へ移行し、被制御機器３０からの実行結果を遠隔制御したアプリケーション２０へ転送する。
【０１３９】
これに対して、実行結果の内容が関数情報記憶部１３ｊに記憶されたデータ型と一致しなければ（Ｐ１１−１、ＮＯ）、ＲＰＣゲートウェイ１０は、アプリケーション２０ａへエラーを返して終了する（Ｐ７）。
【０１４０】
したがって、上記構成のＲＰＣゲートウェイ１０によれば、被制御機器３０の動作を制御するために必要な関数情報（関数名、引数［データを含む］、受信すべき被制御機器３０による実行結果のデータ型）を記憶する関数情報記憶部１３ｊを備える。そしてＲＰＣゲートウェイ１０に新たな被制御機器３０が追加され、追加された当該被制御機器３０が、それまで接続されていた被制御機器３０とは異なる新たな関数で動作する場合には、当該新たな関数を関数情報記憶部１３ｊに追加・記憶させる。この新たに関数情報記憶部１３ｊに追加・記憶された関数を、アプリケーション２０へ通知する。
【０１４１】
これによれば、ＲＰＣゲートウェイ１０の被制御機器接続部１５に新たに被制御機器３０を接続するだけで新たな関数で動作する被制御機器３０を容易に制御することが可能となる。
【０１４２】
更に、上述した構成のＲＰＣゲートウェイ１０であれば、アプリケーション２０からのＲＰＣ遠隔制御信号の内容、及び被制御機器３０からの結果を、関数情報記憶部１３ｊに記憶された内容と一致するかについてチェックする。
【０１４３】
これによれば、新たに接続された被制御機器３０によって実行可能な関数情報が関数情報記憶部１３ｊに記憶された内容と一致していない場合には、例えばアプリケーション２０側にバグが発生していることや、被制御機器３０が旧バージョンであること等を突き止めることができる。
【０１４４】
［ログ記憶処理］
次に、図１１を用いて説明する。
図１１は、前記ＲＰＣゲートウェイ１０によるログ記憶処理を示すフローチャートである。
【０１４５】
以下に説明するログ記憶処理は、例えば機器制御処理（ステップＳ１〜Ｓ１１）を実行している最中に処理され、処理された内容はログ記憶部１３ｋに随時記憶される。
【０１４６】
すなわち、ログ記憶処理によって申請信号を出力したアプリケーション２０や、被制御機器３０を遠隔制御させる関数情報、その実行結果、などがログ記憶部１３ｋに記憶されることになる。
【０１４７】
ＲＰＣゲートウェイ１０を駆動してログ記憶処理プログラム１３ｇを起動させる。すると、ＲＰＣゲートウェイ１０は、前記ステップＳ１にてアプリケーション２０から受信したＲＰＣ遠隔制御信号に基づき、当該「ＲＰＣ遠隔制御信号を送信したアプリケーション２０の情報」、「制御対象とした被制御機器３０の情報」、「被制御機器３０に指示した関数情報」、「被制御機器３０が前記関数を実行した時刻情報」、及び「関数を実行したことで得られた結果情報」などをログ記憶部１３ｋに記憶する（ステップＭ１）。
【０１４８】
その後、ＲＰＣゲートウェイ１０は、アプリケーション２０からログ記憶部１３ｋに記憶したログ情報を提供する旨の要求を受信すると（ステップＭ２、ＹＥＳ）、当該ログ記憶部１３ｋに記憶・蓄積したログ記憶を当該アプリケーション２０に出力する（ステップＭ４）。
【０１４９】
更に、アプリケーション２０からログを提供する旨の要求がなかったとしても（ステップＭ２、ＮＯ）、一定期間Ｔが経過すると、ＲＰＣゲートウェイ１０は、前記ログ記憶部１３ｋに記憶・蓄積したログ記憶を当該アプリケーション２０に出力する（ステップＭ４）。
【０１５０】
したがって、前記構成のＲＰＣゲートウェイ１０によれば、随時ログ記憶処理を実行することで、ログ記憶部１３ｋに「ＲＰＣ遠隔制御信号を送信したアプリケーション２０の情報」、「制御対象とした被制御機器３０の情報」、「被制御機器３０に指示した関数情報」、「被制御機器３０が前記関数を実行した時刻情報」、及び「関数を実行したことで得られた結果情報」などが記憶される。
【０１５１】
これによれば、仮に遠隔制御をした結果、制御対象である被制御機器３０からエラーが返ってきた場合であっても、そのエラーがどのアプリケーション２０からの指示だったのか、どんな関数によってエラーが発生したのか等、機器制御システム１に不具合が発生した際の有効な証拠となる。
【０１５２】
なお、前記機器制御システム１では、通常ＨＴＴＰ（Ｈｙｐｅｒ Ｔｅｘｔ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ）を用いてアプリケーション２０をＲＰＣゲートウェイ１０に接続する。この場合、例えばアプリケーション２０をＡＰＩ（ＡｐｐｌｉｃａｔｉｏｎＰｒｏｇｒａｍｍｉｎｇ Ｉｎｔｅｒｆａｃｅ）経由でＲＰＣゲートウェイ１０と接続させる。
【０１５３】
これに対して、被制御機器３０を、例えばＭＱＴＴ（ＭＱ Ｔｅｌｅｍｅｔｒｙ Ｔｒａｎｓｐｏｒｔ）を用いてＲＰＣゲートウェイ１０と接続させることもできる。
【０１５４】
このように、ＲＰＣゲートウェイ１０ではアプリケーション２０と被制御機器３０とで使用する通信プロトコルが異なることから、自身（ＲＰＣゲートウェイ１０）にプロトコル変換機能を有するプログラム（以下、プロトコル変換機能プログラムと呼ぶ）を備えていても良い。
【０１５５】
この場合、プロトコル変換機能プログラムは、記憶装置１３内に記憶されることになる。
【０１５６】
なお、ＭＱＴＴを用いた接続である場合、ＲＰＣゲートウェイ１０は、どのアプリケーション２０からの遠隔制御によって被制御機器３０によりなされた結果なのかを把握できない。このため、被制御機器３０は、結果の他、送信先のアプリケーション２０（２０ａ〜２０ｃ）の識別子等を送信する必要がある。
【０１５７】
またなお、ＲＰＣゲートウェイ１０がアプリケーション２０から受信し、被制御機器３０に中継して送信するＲＰＣ遠隔制御信号のフォーマットは、例えばＪＳＯＮ（ＪａｖａＳｃｒｉｐｔＯｂｊｅｃｔ Ｎｏｔａｔｉｏｎ）（登録商標）形式で記述された構造であってもよいし、被制御機器３０が認識できるプログラムファイルや設定ファイル、バイナリデータであってもよい。
【０１５８】
この場合、アプリケーション２０から送信されるプログラムファイルや設定ファイル、バイナリデータは、被制御機器３０毎に異なってもよい。
【０１５９】
また、例えば被制御機器３０にてカメラ機能を備えていた場合、ＲＰＣゲートウェイ１０は、当該被制御機器３０からのカメラ画像や動画などをアプリケーション２０へ送信する構成であってもよい。
【０１６０】
本発明の装置は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体（または記憶媒体）に記録することも、ネットワークを通して提供することも可能である。
また、以上の各装置及びそれらの装置部分は、それぞれハードウェア構成、またはハードウェア資源とソフトウェアとの組み合せ構成のいずれでも実施可能となっている。組み合せ構成のソフトウェアとしては、予めネットワークまたはコンピュータ読み取り可能な記録媒体（または記憶媒体）からコンピュータにインストールされ、当該コンピュータのプロセッサに実行されることにより、各装置の機能を当該コンピュータに実現させるためのプログラムが用いられる。
【０１６１】
本発明は、上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
【０１６２】
（付記）
上記各実施形態の一部または全部は、特許請求の範囲のほか以下の付記に示すように記載することも可能であるが、これに限られない。
［Ｃ１］
複数の被制御機器（３０）の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器（３０）のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を記憶するアプリケーション別制御権限情報記憶部（１３）と、
前記複数の被制御機器（３０）の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定する制御権限判定手段（１１）と、
前記制御権限判定手段により、前記第１アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与する制御権限付与手段（１１）と、
前記制御権限付与手段により前記第１アプリケーションに対し前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止する制御権限禁止手段（１１）と、
前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する転送手段（１１）と、
を備える機器制御装置（１０）。
［Ｃ２］
前記制御権限判定手段（１１）により、前記第１アプリケーションが指定する前記被制御機器に対する制御権限が前記第１アプリケーションを除いた前記複数のアプリケーションにより取得された結果、前記第１アプリケーションが前記被制御機器に対する遠隔制御の制御権限を取得できないと判定された場合に、エラー処理を行うエラー処理手段（１１）、
を更に備える［Ｃ１］に記載の機器制御装置。
［Ｃ３］
前記被制御機器の接続情報を記憶する被制御機器情報記憶部（１３）を、更に備え、
前記制御権限判定手段（１１）は、
前記被制御機器情報記憶部（１３）に記憶された被制御機器の接続情報に基づいて、前記第１アプリケーションからの前記申請信号により制御権限が申請された複数の被制御機器が接続されていることを確認する接続確認手段（１１）と、
前記第１アプリケーションからの前記申請信号により申請された複数の被制御機器に対する制御権限が、前記第１アプリケーションを除いた前記複数のアプリケーションに付与されているか否かを判定する権限付与判定手段（１１）と、
を有し、
前記接続確認手段（１１）により、前記複数の被制御機器の接続が確認され、かつ前記権限付与判定手段により申請された複数の被制御機器に対する制御権限が前記第１アプリケーションを除いた前記複数のアプリケーションに付与されていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与する、［Ｃ１］又は［Ｃ２］に記載の機器制御装置。
［Ｃ４］
アプリケーション別に制御権限を取得可能な被制御機器のリストを出力する第１のリスト出力手段（１１）を、更に備え、
前記第１のリスト出力手段は、
前記複数のアプリケーションのうち少なくとも１つのアプリケーションから、当該アプリケーションが前記制御権限を取得可能な前記複数の被制御機器のリストの出力を要求する第１のリスト要求信号が送信された場合に、当該第１のリスト要求信号を受信する手段と、
前記第１のリスト要求信号が受信された場合に、前記アプリケーション別制御権限情報記憶部（１３）に記憶されたアプリケーション別制御権限情報に基づいて、前記制御権限の取得がなされていない前記被制御機器のリストを、前記第１のリスト要求信号の送信元となるアプリケーションに出力するリスト出力手段
を有する［Ｃ１］乃至［Ｃ３］いずれかの一項に記載の機器制御装置。
［Ｃ５］
現時点でのアプリケーション別に制御権限を取得している被制御機器のリストを出力する第２のリスト出力手段を、さらに備え、
前記第２のリスト出力手段は、
前記複数のアプリケーションのうち少なくとも１つのアプリケーションから、当該アプリケーションが現時点で前記制御権限を取得している前記複数の被制御機器のリストの出力を要求する第２のリスト要求信号が送信された場合に、当該第２のリスト要求信号を受信する手段と、
前記第２のリスト要求信号が受信された場合に、前記アプリケーション別制御権限情報記憶部（１３）に記憶された情報に基づき、前記第２のリスト要求信号の送信元となるアプリケーションが現時点で制御権限を取得している前記複数の被制御機器のリストを出力する手段と
を有する［Ｃ１］乃至［Ｃ３］いずれかの一項に記載の機器制御装置。
［Ｃ６］
前記複数の被制御機器の各々を遠隔制御対象として実行可能な関数、この関数に必要な引数、及び前記関数により遠隔制御を実行した結果のデータ型を記憶した関数情報記憶部（１３）と、
前記遠隔制御信号に関数、及びこの関数に必要な引数が含まれている場合に、当該関数および引数が前記関数情報記憶部（１３）に記憶された内容と一致するか否かを判定する関数情報判定手段と、
前記遠隔制御信号に基づき前記複数の被制御機器に対する遠隔制御を実行して得た前記結果のデータ型が、前記関数情報記憶部（１３）に記憶された前記データ型と一致するか否かを判定する制御結果判定手段と、
を更に備える、［Ｃ１］乃至［Ｃ５］いずれかの一項に記載の機器制御装置。
［Ｃ７］
制御部（１１）を備えた機器制御装置（１０）が実行する機器制御方法であって、
前記制御部（１１）により
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を記憶し、
前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定し、
前記第１アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与し、
前記第１アプリケーションに対し前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止し、
前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する、機器制御方法。
［Ｃ８］
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションからの遠隔制御信号を、前記遠隔制御の対象とする前記複数の被制御機器へ中継する機器制御装置（１０）を備えた機器制御システム（１）であって、
前記複数のアプリケーションのそれぞれは、
前記複数の被制御機器に対する制御権限の取得を申請する申請手段と、
前記申請手段により前記複数の被制御機器の制御権限を取得した場合、前記複数の被制御機器を遠隔制御する遠隔制御信号を送信する送信手段と、
を備え、
前記機器制御装置（１０）は、
前記複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を記憶するアプリケーション別制御権限情報記憶部（１３）と、
前記申請手段により前記制御権限を取得する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定する制御権限判定手段（１１）と、
前記制御権限判定手段により、前記第１アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与する制御権限付与手段（１１）と、
前記制御権限付与手段により前記第１アプリケーションに対し前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止する制御権限禁止手段（１１）と、
前記第１アプリケーションに前記制御権限が付与され、その後前記送信手段により前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する転送手段（１１）と、
を備え、
前記被制御機器（３０）は、
前記機器制御装置から受信した前記遠隔制御信号に基づいて動作する機器制御システム（１）。
［Ｃ９］
上記［Ｃ１］乃至［Ｃ６］の何れかに記載の装置の各手段による処理をコンピュータに実行させるプログラム。
【符号の説明】
【０１６３】
１…機器制御システム、１０…ＲＰＣゲートウェイ、１１…ＣＰＵ、１２…メモリ、
１２ａ…作業エリア、１３…記憶装置、１３ａ…機器制御処理プログラム、
１３ｂ…更新処理プログラム、１３ｃ…被制御機器一覧提供プログラム、
１３ｄ…リアルタイム制御機器一覧提供プログラム、
１３ｅ…新規関数情報登録通知処理プログラム、１３ｆ…確認処理プログラム、
１３ｇ…ログ記録処理プログラム、１３ｈ…機器識別子対応情報記憶部、
１３ｉ…制御権限管理記憶部、１３ｊ…関数情報記憶部
１３ｋ…ログ記憶部、１４…アプリケーション接続部、
１５…被制御機器接続部、１６…システムバス、
２０、２０ａ〜２０ｃ…アプリケーション、
３０、３０ａ〜３０ｅ…被制御機器。
【図１】
2019203221.tif 000003
【図２】
2019203221.tif 000004
【図３】
2019203221.tif 000005
【図４Ａ】
2019203221.tif 000006
【図４Ｂ】
2019203221.tif 000007
【図４Ｃ】
2019203221.tif 000008
【図４Ｄ】
2019203221.tif 000009
【図５Ａ】
2019203221.tif 000010
【図５Ｂ】
2019203221.tif 000011
【図５Ｃ】
2019203221.tif 000012
【図６Ａ】
2019203221.tif 000013
【図６Ｂ】
2019203221.tif 000014
【図７Ａ】
2019203221.tif 000015
【図７Ｂ】
2019203221.tif 000016
【図８】
2019203221.tif 000017
【図９】
2019203221.tif 000018
【図１０】
2019203221.tif 000019
【図１１】
2019203221.tif 000020
【手続補正書】
【提出日】令和1年9月10日(2019.9.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、当該プロセッサに接続されたメモリとを備える、機器制御装置であって、
前記プロセッサが、
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションの各々による前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させ、
前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定し、
前記複数の制御機器のいずれに対しても前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記遠隔制御の制御権限の取得がなされていないと判定された場合には、前記複数の被制御機器に対する制御権限を前記第１アプリケーションに対して付与し、前記複数の制御機器の少なくとも１つに対して前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる制御権限の取得がなされていると判定された場合には、前記複数の被制御機器に対する制御権限を前記第１のアプリケーションに対して付与せず、
前記第１アプリケーションに対して前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止し、
前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送し、
前記複数のアプリケーションの各々から当該アプリケーションが制御権限を付与されていない被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記被制御機器に転送せず、
前記制御権限が付与された前記第１アプリケーションから、当該第１アプリケーションが保持する被制御機器の前記制御権限の解放を要求する信号を受信した場合に、前記第１アプリケーションの前記被制御機器への前記制御権限を解放し、
前記第１アプリケーションから前記制御権限の解放を要求する信号を受信するまで、前記第１アプリケーションによる前記被制御機器への制御権限を維持する
ように構成された、機器制御装置。
【請求項２】
前記プロセッサがさらに、前記第１アプリケーションが指定する前記被制御機器に対する制御権限が前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかにより取得された結果、前記第１アプリケーションが前記被制御機器に対する遠隔制御の制御権限を取得できないと判定された場合に、前記第１アプリケーションに対して制御権限の取得を失敗した旨を返答するように構成された、
請求項１に記載の機器制御装置。
【請求項３】
前記プロセッサがさらに、
前記被制御機器の接続情報を前記メモリに記憶させ、
前記メモリに記憶された被制御機器の接続情報に基づいて、前記第１アプリケーションからの前記申請信号により制御権限が申請された複数の被制御機器が接続されていることを確認し、
前記第１アプリケーションからの前記申請信号により申請された複数の被制御機器に対する制御権限が、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかに付与されているか否かを判定し、
前記複数の被制御機器の接続が確認され、かつ前記申請信号により申請された複数の被制御機器に対する制御権限が前記第１アプリケーションを除いた前記複数のアプリケーションのいずれにも付与されていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与するように構成された、請求項１に記載の機器制御装置。
【請求項４】
前記プロセッサがさらに、
前記複数のアプリケーションのうち少なくとも１つのアプリケーションから、当該アプリケーションが前記制御権限を取得可能な前記複数の被制御機器のリストの出力を要求する第１のリスト要求信号が送信された場合に、当該第１のリスト要求信号を受信し、
前記第１のリスト要求信号が受信された場合に、前記メモリに記憶されたアプリケーション別制御権限情報に基づいて、前記制御権限の取得がなされていない前記被制御機器のリストを、前記第１のリスト要求信号の送信元となるアプリケーションに出力する
ように構成された、請求項１に記載の機器制御装置。
【請求項５】
前記プロセッサがさらに、
前記複数のアプリケーションのうち少なくとも１つのアプリケーションから、当該アプリケーションが現時点で前記制御権限を取得している前記複数の被制御機器のリストの出力を要求する第２のリスト要求信号が送信された場合に、当該第２のリスト要求信号を受信し、
前記第２のリスト要求信号が受信された場合に、前記メモリに記憶された情報に基づき、前記第２のリスト要求信号の送信元となるアプリケーションが現時点で制御権限を取得している前記複数の被制御機器のリストを出力する
ように構成された、請求項１に記載の機器制御装置。
【請求項６】
前記プロセッサがさらに、
前記複数の被制御機器の各々を遠隔制御対象として実行可能な関数、この関数に必要な引数、及び前記関数により遠隔制御を実行した結果のデータ型を前記メモリに記憶させ、
前記遠隔制御信号に関数、及びこの関数に必要な引数が含まれている場合に、当該関数および引数が前記メモリに記憶された内容と一致するか否かを判定し、
前記遠隔制御信号に基づき前記複数の被制御機器に対する遠隔制御を実行して得た前記結果のデータ型が、前記メモリに記憶された前記データ型と一致するか否かを判定する、
ように構成された、請求項１に記載の機器制御装置。
【請求項７】
プロセッサと当該プロセッサに接続されたメモリとを備える機器制御装置が実行する機器制御方法であって、
前記プロセッサが、複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションの各々による前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させる過程と、
前記プロセッサが、前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定する過程と、
前記プロセッサが、前記複数の制御機器のいずれに対しても前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記遠隔制御の制御権限の取得がなされていないと判定された場合には、前記複数の被制御機器に対する制御権限を前記第１アプリケーションに対して付与し、前記複数の制御機器の少なくとも１つに対して前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる制御権限の取得がなされていると判定された場合には、前記複数の被制御機器に対する制御権限を前記第１のアプリケーションに対して付与しない過程と、
前記プロセッサが、前記第１アプリケーションに対して前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止する過程と、
前記プロセッサが、前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する過程と、
前記プロセッサが、前記複数のアプリケーションの各々から当該アプリケーションが制御権限を付与されていない被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記被制御機器に転送しない過程と、
前記プロセッサが、前記制御権限が付与された前記第１アプリケーションから、当該第１アプリケーションが保持する被制御機器の前記制御権限の解放を要求する信号を受信するまで、前記第１アプリケーションによる前記被制御機器への制御権限を維持し、前記第１アプリケーションから前記制御権限の解放を要求する信号を受信した場合に、前記第１アプリケーションの前記被制御機器への前記制御権限を解放する過程と
を備える、機器制御方法。
【請求項８】
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションを実行可能な少なくとも１つのデバイスからの遠隔制御信号を、前記遠隔制御の対象とする前記複数の被制御機器へ中継する機器制御装置を備えた機器制御システムであって、
前記複数のアプリケーションのそれぞれは、前記少なくとも１つのデバイスが備えるプロセッサにより、
前記複数の被制御機器に対する制御権限の取得を申請し、
前記複数の被制御機器の制御権限を取得した場合、前記複数の被制御機器を遠隔制御する遠隔制御信号を送信する
ように構成され、
前記機器制御装置は、プロセッサと当該プロセッサに接続されたメモリとを備え、
前記機器制御装置が備えるプロセッサは、
前記複数のアプリケーションと、当該複数のアプリケーションの各々による前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させ、
前記制御権限を取得する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定し、
前記複数の制御機器のいずれに対しても前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記遠隔制御の制御権限の取得がなされていないと判定された場合には、前記複数の被制御機器に対する制御権限を前記第１アプリケーションに対して付与し、前記複数の制御機器の少なくとも１つに対して前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる制御権限の取得がなされていると判定された場合には、前記複数の被制御機器に対する制御権限を前記第１のアプリケーションに対して付与せず、
前記第１アプリケーションに対して前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止し、
前記第１アプリケーションに前記制御権限が付与され、その後前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送し、
前記複数のアプリケーションの各々から当該アプリケーションが制御権限を付与されていない被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記被制御機器に転送せず、
前記制御権限が付与された前記第１アプリケーションから、当該第１アプリケーションが保持する被制御機器の前記制御権限の解放を要求する信号を受信した場合に、前記第１アプリケーションの前記被制御機器への前記制御権限を解放し、
前記第１アプリケーションから前記制御権限の解放を要求する信号を受信するまで、前記第１アプリケーションによる前記被制御機器への制御権限を維持する
ように構成され、
前記複数の被制御機器のそれぞれは、各々が備えるプロセッサにより、
前記機器制御装置から受信した前記遠隔制御信号に基づいて動作するように構成された、
機器制御システム。
【請求項９】
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションの各々による前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報をメモリに記憶させることと、
前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定することと、
前記複数の制御機器のいずれに対しても前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記遠隔制御の制御権限の取得がなされていないと判定された場合には、前記複数の被制御機器に対する制御権限を前記第１アプリケーションに対して付与し、前記複数の制御機器の少なくとも１つに対して前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる制御権限の取得がなされていると判定された場合には、前記複数の被制御機器に対する制御権限を前記第１のアプリケーションに対して付与しないことと、
前記第１アプリケーションに対し前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止することと、
前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送することと、
前記複数のアプリケーションの各々から当該アプリケーションが制御権限を付与されていない被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記被制御機器に転送しないことと、
前記制御権限が付与された前記第１アプリケーションから、当該第１アプリケーションが保持する被制御機器の前記制御権限の解放を要求する信号を受信した場合に、前記第１アプリケーションの前記被制御機器への前記制御権限を解放することと、
前記第１アプリケーションから前記制御権限の解放を要求する信号を受信するまで、前記第１アプリケーションによる前記被制御機器への制御権限を維持することと
をプロセッサに実行させるための命令を記憶した非一時的な有形のコンピュータ可読記憶媒体。
【手続補正書】
【提出日】令和2年6月8日(2020.6.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、当該プロセッサに接続されたメモリとを備える、機器制御装置であって、
前記プロセッサが、
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションの各々による前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させ、
前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定し、
前記複数の制御機器のいずれに対しても前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記遠隔制御の制御権限の取得がなされていないと判定された場合には、前記複数の被制御機器に対する制御権限を前記第１アプリケーションに対して付与し、前記複数の制御機器の少なくとも１つに対して前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる制御権限の取得がなされていると判定された場合には、前記複数の被制御機器に対する制御権限を前記第１のアプリケーションに対して付与せず、
前記第１アプリケーションに対して前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止し、
前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送し、
前記複数のアプリケーションの各々から当該アプリケーションが制御権限を付与されていない被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記被制御機器に転送せず、
前記制御権限が付与された前記第１アプリケーションから、当該第１アプリケーションが保持する被制御機器の前記制御権限の解放を要求する信号を受信した場合に、前記第１アプリケーションの前記被制御機器への前記制御権限を解放し、
前記第１アプリケーションから前記制御権限の解放を要求する信号を受信するまで、前記第１アプリケーションによる前記被制御機器への制御権限を維持する
ように構成された、機器制御装置。
【請求項２】
前記プロセッサがさらに、前記第１アプリケーションが指定する前記被制御機器に対する制御権限が前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかにより取得された結果、前記第１アプリケーションが前記被制御機器に対する遠隔制御の制御権限を取得できないと判定された場合に、前記第１アプリケーションに対して制御権限の取得を失敗した旨を返答するように構成された、
請求項１に記載の機器制御装置。
【請求項３】
前記プロセッサがさらに、
前記被制御機器の接続情報を前記メモリに記憶させ、
前記メモリに記憶された被制御機器の接続情報に基づいて、前記第１アプリケーションからの前記申請信号により制御権限が申請された複数の被制御機器が接続されていることを確認し、
前記第１アプリケーションからの前記申請信号により申請された複数の被制御機器に対する制御権限が、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかに付与されているか否かを判定し、
前記複数の被制御機器の接続が確認され、かつ前記申請信号により申請された複数の被制御機器に対する制御権限が前記第１アプリケーションを除いた前記複数のアプリケーションのいずれにも付与されていないと判定された場合に、前記第１アプリケーションに対し前記複数の被制御機器の制御権限を付与するように構成された、請求項１または請求項２に記載の機器制御装置。
【請求項４】
前記プロセッサがさらに、
前記複数のアプリケーションのうち少なくとも１つのアプリケーションから、当該アプリケーションが前記制御権限を取得可能な前記複数の被制御機器のリストの出力を要求する第１のリスト要求信号が送信された場合に、当該第１のリスト要求信号を受信し、
前記第１のリスト要求信号が受信された場合に、前記メモリに記憶されたアプリケーション別制御権限情報に基づいて、前記制御権限の取得がなされていない前記被制御機器のリストを、前記第１のリスト要求信号の送信元となるアプリケーションに出力する
ように構成された、請求項１乃至請求項３のいずれか一項に記載の機器制御装置。
【請求項５】
前記プロセッサがさらに、
前記複数のアプリケーションのうち少なくとも１つのアプリケーションから、当該アプリケーションが現時点で前記制御権限を取得している前記複数の被制御機器のリストの出力を要求する第２のリスト要求信号が送信された場合に、当該第２のリスト要求信号を受信し、
前記第２のリスト要求信号が受信された場合に、前記メモリに記憶された情報に基づき、前記第２のリスト要求信号の送信元となるアプリケーションが現時点で制御権限を取得している前記複数の被制御機器のリストを出力する
ように構成された、請求項１乃至請求項３のいずれか一項に記載の機器制御装置。
【請求項６】
前記プロセッサがさらに、
前記複数の被制御機器の各々を遠隔制御対象として実行可能な関数、この関数に必要な引数、及び前記関数により遠隔制御を実行した結果のデータ型を前記メモリに記憶させ、
前記遠隔制御信号に関数、及びこの関数に必要な引数が含まれている場合に、当該関数および引数が前記メモリに記憶された内容と一致するか否かを判定し、
前記遠隔制御信号に基づき前記複数の被制御機器に対する遠隔制御を実行して得た前記結果のデータ型が、前記メモリに記憶された前記データ型と一致するか否かを判定する、
ように構成された、請求項１乃至請求項５のいずれか一項に記載の機器制御装置。
【請求項７】
プロセッサと当該プロセッサに接続されたメモリとを備える機器制御装置が実行する機器制御方法であって、
前記プロセッサが、複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションの各々による前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させる過程と、
前記プロセッサが、前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定する過程と、
前記プロセッサが、前記複数の制御機器のいずれに対しても前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記遠隔制御の制御権限の取得がなされていないと判定された場合には、前記複数の被制御機器に対する制御権限を前記第１アプリケーションに対して付与し、前記複数の制御機器の少なくとも１つに対して前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる制御権限の取得がなされていると判定された場合には、前記複数の被制御機器に対する制御権限を前記第１のアプリケーションに対して付与しない過程と、
前記プロセッサが、前記第１アプリケーションに対して前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止する過程と、
前記プロセッサが、前記制御権限が付与された前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する過程と、
前記プロセッサが、前記複数のアプリケーションの各々から当該アプリケーションが制御権限を付与されていない被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記被制御機器に転送しない過程と、
前記プロセッサが、前記制御権限が付与された前記第１アプリケーションから、当該第１アプリケーションが保持する被制御機器の前記制御権限の解放を要求する信号を受信するまで、前記第１アプリケーションによる前記被制御機器への制御権限を維持し、前記第１アプリケーションから前記制御権限の解放を要求する信号を受信した場合に、前記第１アプリケーションの前記被制御機器への前記制御権限を解放する過程と
を備える、機器制御方法。
【請求項８】
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションを実行可能な少なくとも１つのデバイスからの遠隔制御信号を、前記遠隔制御の対象とする前記複数の被制御機器へ中継する機器制御装置を備えた機器制御システムであって、
前記複数のアプリケーションのそれぞれは、前記少なくとも１つのデバイスが備えるプロセッサにより、
前記複数の被制御機器に対する制御権限の取得を申請し、
前記複数の被制御機器の制御権限を取得した場合、前記複数の被制御機器を遠隔制御する遠隔制御信号を送信する
ように構成され、
前記機器制御装置は、プロセッサと当該プロセッサに接続されたメモリとを備え、
前記機器制御装置が備えるプロセッサは、
前記複数のアプリケーションと、当該複数のアプリケーションの各々による前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させ、
前記制御権限を取得する申請信号を前記複数のアプリケーションに含まれる第１アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定し、
前記複数の制御機器のいずれに対しても前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記遠隔制御の制御権限の取得がなされていないと判定された場合には、前記複数の被制御機器に対する制御権限を前記第１アプリケーションに対して付与し、前記複数の制御機器の少なくとも１つに対して前記第１アプリケーションを除いた前記複数のアプリケーションのいずれかによる制御権限の取得がなされていると判定された場合には、前記複数の被制御機器に対する制御権限を前記第１のアプリケーションに対して付与せず、
前記第１アプリケーションに対して前記制御権限が付与された場合に、前記第１アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止し、
前記第１アプリケーションに前記制御権限が付与され、その後前記第１アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送し、
前記複数のアプリケーションの各々から当該アプリケーションが制御権限を付与されていない被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記被制御機器に転送せず、
前記制御権限が付与された前記第１アプリケーションから、当該第１アプリケーションが保持する被制御機器の前記制御権限の解放を要求する信号を受信した場合に、前記第１アプリケーションの前記被制御機器への前記制御権限を解放し、
前記第１アプリケーションから前記制御権限の解放を要求する信号を受信するまで、前記第１アプリケーションによる前記被制御機器への制御権限を維持する
ように構成され、
前記複数の被制御機器のそれぞれは、各々が備えるプロセッサにより、
前記機器制御装置から受信した前記遠隔制御信号に基づいて動作するように構成された、
機器制御システム。
【請求項９】
請求項１乃至請求項６のいずれか一項に記載の機器制御装置の各処理をプロセッサに実行させるためのプログラム。
【国際調査報告】
2019203221.tif 000021
2019203221.tif 000022
2019203221.tif 000023