(57)【要約】      （修正有）【課題】運用状況に応じて所定の機能の実行可否を変更できる通信システムを提供する。【解決手段】通信システムは、機能を有するデバイスと、デバイスとネットワークを介して接続される情報処理装置（ゲートウェイ１００）と、情報処理装置を通じてデバイスに機能を実行させる指令を出力する処理部とを含む。情報処理装置は、デバイスが実行可能な機能を取得する機能取得部と、機能取得部によって取得されるデバイスが実行可能な機能のうち、所定の事象が生じていない状況下では実行を許可しない機能を選択する機能選択部と、所定の事象が生じていない状況下では、機能取得部によって取得されるデバイスが実行可能な機能から機能選択部によって選択される実行を許可しない機能を除いた残りの機能を処理部に通知し、所定の事象が生じている状況下では、機能取得部によって取得されるデバイスが実行可能な機能を処理部に通知する、通知処理部とを有する。【選択図】図５
2020204964.tif 000002
【特許請求の範囲】
【請求項１】
機能を有するデバイスと、
前記デバイスとネットワークを介して接続される情報処理装置と、
前記情報処理装置を通じて前記デバイスに機能を実行させる指令を出力する処理部と
を含み、
前記情報処理装置は、
前記デバイスが実行可能な機能を取得する機能取得部と、
前記機能取得部によって取得される前記デバイスが実行可能な機能のうち、所定の事象が生じていない状況下では実行を許可しない機能を選択する機能選択部と、
前記所定の事象が生じていない状況下では、前記機能取得部によって取得される前記デバイスが実行可能な機能から前記機能選択部によって選択される実行を許可しない機能を除いた残りの機能を前記処理部に通知し、前記所定の事象が生じている状況下では、前記機能取得部によって取得される前記デバイスが実行可能な機能を前記処理部に通知する、通知処理部と
を有する、通信システム。
【請求項２】
前記所定の事象が生じている状況下において、前記機能取得部によって取得される前記デバイスが実行可能な機能について制限される属性を取得する制限取得部をさらに含み、
前記通知処理部は、前記所定の事象が生じている状況下では、前記機能取得部によって取得される前記デバイスが実行可能な機能から、前記制限取得部によって取得される前記制限される属性を除いた情報を前記処理部に通知する、請求項１記載の通信システム。
【請求項３】
前記情報処理装置は、前記デバイスに所定状態が生じているかどうかを検出するデバイス状態検出部をさらに有し、
前記機能選択部は、前記所定の事象が生じている状況下において、前記デバイス状態検出部によって前記所定状態が生じていることが検出された場合に実行を許可しない機能をさらに選択し、
前記通知処理部は、前記所定の事象が生じている状況下において前記所定状態が生じている場合には、前記機能取得部によって取得される前記デバイスが実行可能な機能から、前記機能選択部によって選択される、前記デバイス状態検出部によって前記所定状態が生じていることが検出された場合に実行を許可しない機能を除いた残りの機能を前記処理部に通知する、請求項１又は２記載の通信システム。
【請求項４】
前記情報処理装置は、前記デバイスに所定状態が生じているかどうかを検出するデバイス状態検出部をさらに有し、
前記制限取得部は、前記機能取得部によって取得される前記デバイスが実行可能な機能から、前記機能選択部によって選択される前記所定の事象が生じていない状況下では実行を許可しない機能を除いた残りの機能について、前記所定の事象が生じている状況下において前記所定状態が生じている場合に属性が制限される機能をさらに取得し、
前記通知処理部は、前記所定の事象が生じている状況下において前記所定状態が生じている場合には、前記機能取得部によって取得される前記デバイスが実行可能な機能のうち、前記制限取得部によって取得される属性が制限される機能については、制限される属性を前記処理部に通知する、請求項２記載の通信システム。
【請求項５】
前記所定の事象は、前記デバイス又は前記ネットワークの障害である、請求項１乃至４のいずれか一項記載の通信システム。
【請求項６】
機能を有するデバイスとネットワークを介して接続され、処理部から出力される前記デバイスに機能を実行させる指令を、前記デバイスに送信する情報処理装置であって、
前記デバイスが実行可能な機能を取得する機能取得部と、
前記機能取得部によって取得される前記デバイスが実行可能な機能のうち、所定の事象が生じていない状況下では実行を許可しない機能を選択する機能選択部と、
前記所定の事象が生じていない状況下では、前記機能取得部によって取得される前記デバイスが実行可能な機能から前記機能選択部によって選択される実行を許可しない機能を除いた残りの機能を前記処理部に通知し、前記所定の事象が生じている状況下では、前記機能取得部によって取得される前記デバイスが実行可能な機能を前記処理部に通知する、通知処理部と
を含む、情報処理装置。
【請求項７】
機能を有するデバイスとネットワークを介して接続され、処理部から出力される前記デバイスに機能を実行させる指令を前記デバイスに送信するコンピュータに実行させる情報処理プログラムであって、
前記デバイスが実行可能な機能を取得することと、
前記取得される前記デバイスが実行可能な機能のうち、所定の事象が生じていない状況下では実行を許可しない機能を選択することと、
前記所定の事象が生じていない状況下では、前記取得される前記デバイスが実行可能な機能から前記選択される実行を許可しない機能を除いた残りの機能を前記処理部に通知し、前記所定の事象が生じている状況下では、前記取得される前記デバイスが実行可能な機能を前記処理部に通知することと
を含む処理を前記コンピュータに実行させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、情報処理装置、及び、情報処理プログラムに関する。
【背景技術】
【０００２】
従来より、コマンドを実行可能であるかについての権限情報を有するコマンド権限情報を格納するメモリを備える情報処理装置がある。入力コマンドがユーザコマンドまたはシステムコマンドのどちらから呼び出されたコマンドであるかに基づき、入力コマンドがコマンド実行可否判定の対象であるか判定し、入力コマンドがコマンド実行可否判定の対象の場合、コマンド権限情報を参照して、入力コマンドが実行可能か判定するコマンド判定部をさらに備える（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１２８６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来は、ネットワークを介して情報処理装置に接続される端末等と情報処理装置とを含むシステムの運用状況に応じてコマンドの実行可否を変化させるようなことは行っていない。
【０００５】
例えば、ネットワークを介して情報処理装置に接続されるデバイスは、ネットワークに通信障害等のような所定の事象が生じた場合に、復旧を行うための機能（復旧機能）を有する。このような復旧機能は、所定の事象が生じた場合には実行可能であることが必要であるが、所定の事象が生じていない場合には実行不能にしておいた方が、情報処理装置とデバイスを含むシステムの安定的な運用に繋がる。
【０００６】
そこで、運用状況に応じて所定の機能の実行可否を変更できる通信システム、情報処理装置、及び、情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施の形態の通信システムは、機能を有するデバイスと、前記デバイスとネットワークを介して接続される情報処理装置と、前記情報処理装置を通じて前記デバイスに機能を実行させる指令を出力する処理部とを含み、前記情報処理装置は、前記デバイスが実行可能な機能を取得する機能取得部と、前記機能取得部によって取得される実行可能な機能のうち、所定の事象が生じていない状況下では実行を許可しない機能を選択する機能選択部と、前記所定の事象が生じていない状況下では、前記機能取得部によって取得される実行可能な機能から前記機能選択部によって選択される実行を許可しない機能を除いた残りの機能を前記処理部に通知し、前記所定の事象が生じている状況下では、前記機能取得部によって取得される実行可能な機能を前記処理部に通知する、通知処理部とを有する。
【発明の効果】
【０００８】
運用状況に応じて所定の機能の実行可否を変更できる通信システム、情報処理装置、及び、情報処理プログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１の通信システム３００を示す図である。
【図２】ＰＣ２００を実現するコンピュータシステム２０の斜視図である。
【図３】コンピュータシステム２０の本体部２１のブロック図である。
【図４】通信システム３００の特徴を説明する図である
【図５】実施の形態１のＧＷ１００の構成を示す図である。
【図６】データ４００Ａを示す図である。
【図７】データ４００Ｂを示す図である。
【図８】データ４００Ｃを示す図である。
【図９】データ４００Ｄを示す図である。
【図１０】ＧＷ１００の制御装置１１０が実行する処理を表すフローチャートである。
【図１１】デバイス５０のThing  Descriptionの一例を示す図である。
【図１２】実行を失敗した原因と原因を表すステータスコードとを関連付けたテーブル形式のデータを示す図である。
【図１３】実施の形態２のＧＷ１００Ｍの構成を示す図である。
【図１４】データ４００Ｅを示す図である。
【図１５】データ４００Ｆを示す図である。
【図１６】ＧＷ１００Ｍの制御装置１１０Ｍが実行する処理を表すフローチャートである。
【図１７】データ４００Ｇを示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の通信システム、情報処理装置、及び、情報処理プログラムを適用した実施の形態について説明する。
【００１１】
＜実施の形態１＞
図１は、実施の形態１の通信システム３００を示す図である。通信システム３００は、デバイス５０と、ＧＷ(Gateway：ゲートウェイ)１００と、ＰＣ(personal  Computer)２００とを含む。デバイス５０とＧＷ１００とはネットワーク１０Ａによってデータ通信可能に接続されており、ＧＷ１００とＰＣ２００は、ネットワーク１０Ｂによってデータ通信可能に接続されている。図１には１つのデバイス５０を示すが、デバイス５０は複数あってよい。このような通信システム３００は、一例としてＩｏＴ(Internet  of  Things)システムに利用可能なシステムである。
【００１２】
ネットワーク１０Ａ、１０Ｂは、データ通信が可能であればどのような形式のものであってもよい。ここでは、一例として、ネットワーク１０ＡはZigBeeによる通信網であり、ネットワーク１０Ｂはインターネット又は公衆回線網であることとする。ネットワーク１０Ａでは、デバイス５０とＧＷ１００は、データパケットを送受信することでデータ通信を行う。データパケットには、送信元のデバイスを識別できる送信元アドレスが含まれる。  デバイス５０は、ＰＣ２００からＧＷ１００を介して操作可能な機能を有しているものであれば、どのような装置又は機器等であってもよく、ここでは一例としてランプデバイスであることとする。デバイス５０の機能は、ランプ（照明）であり、ＰＣ２００からＧＷ１００を介してオン／オフの切り替えを行うことができる。また、デバイス５０は、一例として、バッテリによって駆動されるデバイスである。
【００１３】
ＧＷ１００は、情報処理装置の一例であり、ネットワーク１０Ｂを介してＰＣ２００から受信したデータのプロトコルを変換してネットワーク１０Ａを介してデバイス５０に転送する。また、ＧＷ１００は、ネットワーク１０Ａを介してデバイス５０から受信したデータのプロトコルを変換してネットワーク１０Ａを介してＰＣ２００に転送する。
【００１４】
ＰＣ２００は、デバイス５０を操作するためのアプリケーションプログラムがインストールされている。ＰＣ２００の利用者は、アプリケーションプログラムを利用して、デバイス５０を操作することができる。ＰＣ２００がアプリケーションプログラムを実行することによって、ＰＣ２００の一つの機能としてアプリケーション処理部２００Ａが実現される。アプリケーション処理部２００Ａは、ＧＷ１００を通じてデバイス５０に機能を実行させる指令を出力する。アプリケーション処理部２００Ａは、処理部の一例である。
【００１５】
図２は、ＰＣ２００を実現するコンピュータシステム２０の斜視図である。図２に示すコンピュータシステム２０は、本体部２１、ディスプレイ２２、キーボード２３、マウス２４、及びモデム２５を含む。
【００１６】
本体部２１は、ＣＰＵ（Central  Processing  Unit：中央演算装置）、ＨＤＤ（Hard  Disk  Drive：ハードディスクドライブ）、及びディスクドライブ等を内蔵する。ディスプレイ２２は、本体部２１からの指示により画面２２Ａ上に処理結果等を表示する。ディスプレイ２２は、例えば、液晶モニタであればよい。キーボード２３は、コンピュータシステム２０に種々の情報を入力するための入力部である。マウス２４は、ディスプレイ２２の画面２２Ａ上の任意の位置を指定する入力部である。モデム２５は、外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする。また、モデム２５は、ネットワーク１０Ｂを介してＧＷ１００に接続し、データ通信を行う。
【００１７】
コンピュータシステム２０にＰＣ２００としての機能を持たせるプログラムは、ディスク２７等の可搬型記録媒体に格納されるか、モデム２５等の通信装置を使って他のコンピュータシステムの記録媒体２６からダウンロードされ、コンピュータシステム２０に入力されてコンパイルされる。
【００１８】
コンピュータシステム２０にＰＣ２００としての機能を持たせるプログラムは、コンピュータシステム２０をＰＣ２００として動作させる。このプログラムは、例えばディスク２７等のコンピュータ読み取り可能な記録媒体に格納されていてもよい。コンピュータ読み取り可能な記録媒体は、ディスク２７、ＩＣカードメモリ、フロッピー（登録商標）ディスク等の磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＵＳＢ(Universal  Serial  Bus)メモリ等の可搬型記録媒体に限定されるものではない。コンピュータ読み取り可能な記録媒体は、モデム２５又はＬＡＮ等の通信装置を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００１９】
なお、ここではＰＣ２００を実現するコンピュータシステム２０について説明したが、ＧＷ１００を実現するコンピュータシステムも同様の構成を有する。このため、以下では、ＧＷ１００も図２に示すコンピュータシステム２０によって実現されるものとして説明する。
【００２０】
図３は、コンピュータシステム２０の本体部２１内の要部の構成を説明するブロック図である。本体部２１は、バス３０によって接続されたＣＰＵ３１、ＲＡＭ又はＲＯＭ等を含むメモリ部３２、ディスク２７用のディスクドライブ３３、及びハードディスクドライブ（ＨＤＤ）３４を含む。
【００２１】
なお、コンピュータシステム２０は、図２及び図３に示す構成のものに限定されず、各種周知の要素を付加してもよく、又は代替的に用いてもよい。
【００２２】
図４は、通信システム３００の特徴を説明する図である。デバイス５０は様々な機能を有しており、例えば、ランプデバイスであれば、オン／オフを切り替える機能、明るさ（照度）を調整する機能、ＧＷ１００との間の通信チャネルを変更する機能、及び、リブート(reboot)する機能等を有する。
【００２３】
これらのうち、オン／オフを切り替える機能、明るさ（照度）を調整する機能は、通信システム３００の内部で障害が生じていない通常時に利用する機能である。また、リブートする機能は、通信システム３００の内部で障害が発生したときにデバイス５０を復旧させる際に利用する機能であり、ＧＷ１００との間の通信チャネルを変更する機能は、通信システム３００の内部で障害が発生したときにデバイス５０とＧＷ１００との間の通信を復旧させる際に利用する機能である。
【００２４】
デバイス５０にはランプデバイス以外の種々のデバイスがあるため、通信システム３００の内部で障害が生じていない通常時に利用する機能、及び、通信システム３００の内部で障害が発生したときに利用する機能には、上述した機能以外の種々の機能がある。なお、通信システム３００の内部で障害が発生することは、所定の事象が生じていることの一例である。
【００２５】
ここで、障害は、例えば、複数のデバイス５０が発生する電波同士が干渉して、ＧＷ１００との間でデータが欠落すること、デバイス５０とＧＷ１００との間の複数の通信チャネルのうちの一部が利用不能になること、及び、いずれかのデバイス５０のバッテリの残量の低下によってＧＷ１００との通信が不能になること等である。
【００２６】
ＩｏＴシステムの運用環境には、一般には上述のような障害による不安定さが発生しうるため、通信システム３００は、このような不安定さの発生を抑制し、安定的な運用を実現するものである。
【００２７】
例えば、障害が発生したときに利用するデバイス５０のリブート機能及び通信チャネルの変更機能等の障害から復旧させる機能は、障害が生じていない通常時には利用しない機能であり、認証が破られて権限を持たない利用者によって実行されると、そのデバイス５０とＧＷ１００とが通信不能になるという重大な影響を与えうる機能である。
【００２８】
また、正当な権限を持った利用者であっても誤操作等で実行するおそれがあり、デバイス５０とＧＷ１００とが通信不能になるという重大な影響を与えうる機能である。
【００２９】
そこで、通信システム３００では、図４の上側に示すように、通常時はデバイス５０のすべての機能をＧＷ１００に通知し、ＧＷ１００は、デバイス５０の機能をフィルタリングし、障害が発生したときに利用する復旧機能以外の通常時に必要な機能のみをアプリケーション処理部２００Ａに通知する。
【００３０】
なお、通常時に必要な機能とは、障害が生じていない通常時に、デバイス５０が有するすべての機能から復旧機能を除いたすべての動作を行わせるために求められる機能である。また、通常時に必要な機能のみとは、通常時に必要な機能に限られることであり、復旧機能を含まないことを意味する。
【００３１】
また、通信システム３００では、図４の下側に示すように、障害発生時はデバイス５０のすべての機能をＧＷ１００に通知し、ＧＷ１００は、デバイス５０の機能をフィルタリングせずに、障害が発生したときに利用する復旧機能を含むすべての機能をアプリケーション処理部２００Ａに通知する。
【００３２】
これにより、障害が生じていない通常時に復旧機能が実行されることを抑制する。このために、ＧＷ１００は、アプリケーション処理部２００Ａに通知するデバイス５０の機能をフィルタリングする機能を有し、通信システム３００の運用状況に応じて復旧機能の実行可否を変更する。
【００３３】
図５は、実施の形態１のＧＷ１００の構成を示す図である。ＧＷ１００は、制御装置１１０及び通信部１２０を有する。
【００３４】
制御装置１１０は、ＣＰＵ、ＲＡＭ又はＲＯＭ等を含むメモリ部、及び、ハードディスクドライブ（ＨＤＤ）等を含むコンピュータシステムによって実現される。制御装置１１０のコンピュータシステムとしての構成は、図３に示すコンピュータシステム２０と同様である。
【００３５】
制御装置１１０は、主制御部１１１、プロトコル変換部１１２、機能取得部１１３、障害検出部１１４、機能選択部１１５、制限取得部１１６、通知処理部１１７、及びメモリ１１８を有する。主制御部１１１、プロトコル変換部１１２、機能取得部１１３、障害検出部１１４、機能選択部１１５、制限取得部１１６、通知処理部１１７は、制御装置１１０が実行するプログラムの機能（ファンクション）を機能ブロックとして示したものである。また、メモリ１１８は、制御装置１１０のメモリを機能的に表したものである。
【００３６】
主制御部１１１は、ＧＷ１００の制御を統括する処理部であり、プロトコル変換部１１２、機能取得部１１３、障害検出部１１４、機能選択部１１５、制限取得部１１６、及び通知処理部１１７が実行する処理以外の処理を実行する。
【００３７】
プロトコル変換部１１２は、デバイス５０からネットワーク１０Ａ（図１参照）及び通信部１２０を介して受信するデータのプロトコル（一例として、Bluetooth（登録商標）のプロトコル）をＧＷ１００とＰＣ２００との間のネットワーク１０Ｂ（図１参照）を介して通信するデータのプロトコル（一例として、ＨＴＴＰ(Hypertext  Transfer  Protocol)）に変換する。
【００３８】
また、プロトコル変換部１１２は、ＰＣ２００からネットワーク１０Ｂを介して受信するデータのプロトコルをデバイス５０とＧＷ１００との間でネットワーク１０Ａを介して通信するデータのプロトコルに変換する。
【００３９】
機能取得部１１３は、ネットワーク１０Ａを介してデバイス５０が実行可能なすべての機能を取得し、取得した機能の種類を判定する。機能取得部１１３は、取得した機能を表すデータをメモリ１１８に格納する。
【００４０】
障害検出部１１４は、ＧＷ１００とデバイス５０との間の通信状況等に基づいて、障害が発生していることを検出し、発生している障害の種類を分析する。障害検出部１１４は、分析することで障害の種類を特定する。障害検出部１１４は、障害が発生している箇所、発生時刻、及び障害の種類をメモリ１１８に格納する。
【００４１】
ここで、ＧＷ１００とデバイス５０との間の通信状況から分かる障害とは、例えば、パケットロスが生じたこと、ＧＷ１００とデバイス５０との間のチャネル占有率が所定値を超えたこと、及び、特定の通信チャネルが使用不能になったこと等である。
【００４２】
障害検知部１１４は、通信システム３００内で生じる障害を検知する。以下では、一例として、障害検知部１１４は、ＧＷ１００とデバイス５０との間の通信チャネルのチャネル占有率に基づいて通信障害が生じたことを検知することとする。このため、以下では障害とは、一例として通信障害であることとする。障害検知部１１４は、通信障害を検知した場合は、どの通信チャネルで何時に通信障害が生じたかを検知する。
【００４３】
なお、ここでは障害検知部１１４がＧＷ１００とデバイス５０との間の通信チャネルにおける通信障害が生じたかを検知する形態について説明するが、通信障害以外の障害を検知してもよい。
【００４４】
機能選択部１１５は、通信障害が生じていない状況下ではデバイス５０に実行を許可しない機能を選択し、選択した機能の実行を許可する実行許可条件を設定する。機能選択部１１５は、選択した実行を許可しない機能をメモリ１１８に格納する。
【００４５】
通信障害が生じていない状況下は、所定の事象が生じていない状況下の一例である。また、実行を許可しない機能の一例は、復旧機能である。また、実行許可条件は、通信障害が生じていない状況下ではデバイス５０に実行を許可しない機能の実行を、通信障害が生じたときに許可する際の通信障害に関する条件である。復旧機能と実行許可条件の詳細については後述する。
【００４６】
制限取得部１１６は、機能取得部１１３によって取得される、通信障害が生じている状況下においてデバイス５０が実行可能な機能について制限される属性があるかどうかを判定し、そのような属性がある場合には取得してメモリ１１８に格納する。デバイス５０が実行可能な機能について制限される属性については後述する。
【００４７】
通知処理部１１７は、通信障害が生じていない状況下では、機能取得部１１３によって取得される実行可能な機能から機能選択部１１５によって選択される実行を許可しない機能を除いた残りの機能をＰＣ２００のアプリケーション処理部２００Ａに通知する。このように、通知処理部１１７が機能取得部１１３によって取得される実行可能な機能から、実行を許可しない機能を除く処理は、フィルタリングである。
【００４８】
また、通知処理部１１７は、通信障害が生じている状況下では、機能取得部１１３によって取得される実行可能なすべてのデバイス５０の機能から、機能選択部１１５によって選択される通信障害が生じている状況下においてデバイス５０に実行を許可しない機能を除いた残りの機能をＰＣ２００のアプリケーション処理部２００Ａに通知する。このように、通知処理部１１７がデバイス５０の実行可能なすべての機能から、通信障害が生じている状況下においてデバイス５０に実行を許可しない機能を除く処理は、フィルタリングである。
【００４９】
また、通知処理部１１７は、通信障害が生じている状況下では、制限取得部１１６によって取得されるデバイス５０が実行可能な機能について制限される属性を除いた機能をＰＣ２００のアプリケーション処理部２００Ａに通知する。このように、通信障害が生じている状況下で、通知処理部１１７が制限取得部１１６によって取得されるデバイス５０が実行可能な機能について制限される属性を除く処理は、フィルタリングである。
【００５０】
メモリ１１８は、ＧＷ１００が処理を行うために必要なプログラム及びデータを格納するとともに、上述のように機能取得部１１３、機能選択部１１５、及び制限取得部１１６によって取得又は選択されるデータを格納する。また、メモリ１１８は、ＧＷ１００が処理を行うために必要なその他のデータ等を格納する。
【００５１】
通信部１２０は、モデム２５（図２参照）を介してデバイス５０及びＰＣ２００との間でデータの送受信を行う処理部である。
【００５２】
図６は、デバイス５０が実行可能な機能を表すデータ４００Ａを示す図である。デバイス５０が実行可能な機能を表すデータ４００ＡをＧＷ１００に通知することによって、ＧＷ１００がデータ４００Ａをデバイス５０から取得する。
【００５３】
デバイス５０が実行可能な機能を表すデータは、機能、機能実行によるプロパティ変化、及びプロパティ値の範囲の３つの項目を有する。ここで、プロパティは、属性の一例である。
【００５４】
デバイス５０がランプデバイスの場合、機能は、一例として、ランプデバイスをオンにするonlamp、ランプデバイスをオフにするofflamp、ランプデバイスの輝度を設定するbrightness、ＧＷ１００とランプデバイスとの間の通信チャネルを設定するsetChannel、及び、ランプデバイスをリブートするrebootの５つがある。onlamp、offlamp、brightness、setChannel、rebootは、各機能の名称（機能名）でもある。
【００５５】
また、デバイス５０がランプデバイスの場合、機能実行によるプロパティ変化は、一例として、ランプデバイスをオンにすることによるlampstatus  =  ON、ランプデバイスをオフにすることによるlampstatus  =  OFF、ランプデバイスの輝度を設定することによるbrightness  =  bがある。また、ＧＷ１００とランプデバイスとの間の通信チャネルを設定することによるchannel  =  c、及び、ランプデバイスをリブートすることによるdevstatus  =  OFFの５つがある。
【００５６】
また、デバイス５０がランプデバイスの場合、プロパティ値の範囲は、一例として、ランプデバイスをオンにする機能の場合はON、ランプデバイスをオフにする機能の場合はOFF、ランプデバイスの輝度を設定する機能の場合は{0,…,255}の２５６段階の値である。また、ＧＷ１００とランプデバイスとの間の通信チャネルを設定する機能の場合は{11,…,26}の１６チャネル、ランプデバイスをリブートする機能の場合はOFF,ONである。
【００５７】
ＧＷ１００は、デバイス５０が実行可能な機能を表すデータ４００Ａをデバイス５０から取得し、メモリ１１８に格納する。
【００５８】
図７は、データ４００Ｂを示す図である。データ４００Ｂは、図６に示すデバイス５０が実行可能な機能を表すデータ４００Ａに、各機能が復旧機能であるかどうかを表す項目（復旧）と、実行を許可する際の通信障害に関する条件を表す項目（実行許可条件）と、プロパティの制限が可能な機能であるかどうかを表す項目（制限可能機能）と、制限されるプロパティを表す項目（制限プロパティ）とを追加したデータである。
【００５９】
復旧機能であるかどうかを表す項目（復旧）は、項目値が‘１’であれば復旧機能であることを表し、項目値が‘０’であれば復旧機能ではないことを表す。また、実行を許可する際の通信障害に関する条件を表す項目（実行許可条件）は、復旧機能の実行が許可される場合の通信障害の内容を表し、setChannelについてはチャネル占有率がｘ％を超えていることであり、rebootについては、どのような通信障害であっても発生していれば復旧機能の実行を許可する意味のanyに設定されている。
【００６０】
また、プロパティの制限が可能な機能であるかどうかを表す項目（制限可能機能）は、プロパティの制限が可能な復旧機能であるかどうかを表し、項目値が‘１’であれば制限可能な復旧機能であることを表し、項目値が‘０’であれば制限不可能な復旧機能であることを表す。
【００６１】
また、制限されるプロパティを表す項目（制限プロパティ）は、プロパティの制限が可能な復旧機能について通信障害が発生しているときに制限されるプロパティ（又はプロパティ値）を表す。例えば、図７に示すように制限されるプロパティを表す項目（制限プロパティ）が通信障害発生チャネルである場合には、通信障害が発生している通信チャネルの使用が制限される。
【００６２】
復旧機能であるかどうかを表す項目（復旧）と、実行を許可する際の通信障害に関する条件を表す項目（実行許可条件）とは、ＧＷ１００の機能選択部１１５がデータ４００Ａに追加する項目である。機能選択部１１５は、機能名に基づいて復旧機能を選択し、選択した機能の実行を許可する実行許可条件を設定する。
【００６３】
復旧機能であるかどうかの判定は、一例として、機能名に基づいて行えばよい。例えば、復旧機能を表す機能名としてsetChannel及びrebootをメモリ１１８に格納しておき、機能選択部１１５がメモリ１１８に格納された復旧機能を表す機能名と照合することによって、復旧機能であるかどうかの判定を行えばよい。
【００６４】
また、実行許可条件の設定については、例えば、各復旧機能について実行許可条件をメモリ１１８に格納しておき、機能選択部１１５がメモリ１１８に格納された実行許可条件をデータ４００Ｂ内で各復旧機能に割り当てることによって設定すればよい。
【００６５】
プロパティの制限が可能な機能であるかどうかを表す項目（制限可能機能）と、制限されるプロパティを表す項目（制限プロパティ）とは、ＧＷ１００の制限取得部１１６がデータ４００Ｂに追加する項目である。制限取得部１１６は、機能名に基づいてプロパティの制限が可能な機能であるかどうかを判定し、プロパティの制限が可能と判定した機能について制限されるプロパティをデータ４００Ｂに追加する。
【００６６】
プロパティの制限が可能な機能であるかどうかの判定は、一例として、機能名に基づいて行えばよい。例えば、プロパティの制限が可能な機能を表す機能名としてsetChannelをメモリ１１８に格納しておき、制限取得部１１６がメモリ１１８に格納されたプロパティの制限が可能な機能を表す機能名と照合することによって、プロパティの制限が可能な機能であるかどうかの判定を行えばよい。
【００６７】
また、プロパティの制限が可能と判定した機能について制限されるプロパティは、例えば、プロパティの制限が可能な機能について制限されるプロパティをメモリ１１８に格納しておき、制限取得部１１６がメモリ１１８に格納された制限されるプロパティを読み出してデータ４００Ｂに追加すればよい。
【００６８】
なお、ここでは、一例として、復旧機能であるかどうかの判定と、プロパティの制限が可能な機能であるかどうかの判定とを機能名に基づいて行うとともに、復旧機能についての実行許可条件と、制限されるプロパティとをメモリ１１８から読み出す形態について説明する。しかしながら、復旧機能であるかどうかを表す項目（復旧）と、実行を許可する際の通信障害に関する条件を表す項目（実行許可条件）と、プロパティの制限が可能な機能であるかどうかを表す項目（制限可能機能）と、制限されるプロパティを表す項目（制限プロパティ）とをデバイス５０が保持していてＧＷ１００がデバイス５０から取得してもよい。また、ＧＷ１００がインターネット等のネットワークを介してデバイス５０の販売供給元（ベンダ）のウェブサイトにアクセスし、ウェブサイト上で公開されているレポジトリから取得してもよい。
【００６９】
図８は、通常時にアプリケーション処理部２００Ａに通知されるデバイス５０の機能を表すデータ４００Ｃを示す図である。通常時とは、通信障害が発生していないときのことである。
【００７０】
通常時には、ＧＷ１００の通知処理部１１７は、図７に示すデータ４００Ｂの復旧機能であるかどうかの項目を参照し、図６に示すデータ４００Ａから復旧機能を除いた残りの機能を表すデータ４００Ｃを生成する。
【００７１】
通常時にアプリケーション処理部２００Ａに通知されるデバイス５０の機能を表すデータ４００Ｃでは、データ４００Ａと比べると、復旧機能である通信チャネルの設定(setChannel)とランプデバイスのリブート(reboot)が削除されている。通知処理部１１７は、生成したデータ４００Ｃをアプリケーション処理部２００Ａに通知する。
【００７２】
アプリケーション処理部２００Ａは、データ４００Ｃを参照して、通常時にランプデバイスのオン(onlamp)、ランプデバイスのオフ(offlamp)、ランプデバイスの輝度設定(brightness)の機能を実行することができる。
【００７３】
図９は、通信障害時にアプリケーション処理部２００Ａに通知されるデバイス５０の機能を表すデータ４００Ｄを示す図である。通信障害時とは、通信障害が発生しているときのことである。データ４００Ｄは、一例として、チャネル占有率がｘ％を超える通信障害が通信チャネル１１で生じていることが障害検知部１１４によって検知された場合に、通知処理部１１７によって生成されるデータである。
【００７４】
通信チャネル１１でチャネル占有率がｘ％を超える通信障害が生じた場合には、図７に示すデータ４００Ｂにおいて、通信チャネルの設定(setChannel)とランプデバイスのリブート(reboot)との両方の許可条件を満たす。このため、データ４００Ｄには、データ４００Ａ（図６参照）と同様に、復旧機能として通信チャネルの設定(setChannel)とランプデバイスのリブート(reboot)とが含まれる。
【００７５】
また、通信チャネルの設定(setChannel)については、チャネル占有率がｘ％を超える通信障害が生じている通信チャネル１１が除かれ、{12,…,26}の１５チャネルに制限されている。この点が、データ４００Ｄとデータ４００Ａ（図６参照）との違いである。
【００７６】
通信チャネル１１でチャネル占有率がｘ％を超える通信障害が生じたときには、ＧＷ１００の通知処理部１１７は、図７に示すデータ４００Ｂの復旧機能であるかどうかの項目を参照し、復旧機能を含めたデバイス５０の実行可能なすべての機能から、通信チャネルの設定(setChannel)の機能について通信チャネル１１を除くことによって、データ４００Ｄを生成する。通知処理部１１７は、データ４００Ｄをアプリケーション処理部２００Ａに送信する。
【００７７】
アプリケーション処理部２００Ａは、データ４００Ｄを参照して、通信チャネルの設定(setChannel)及びランプデバイスのリブート(reboot)の復旧機能を実行することができる。このときに、通信障害が生じた通信チャネル１１は、通信チャネルの設定(setChannel)のプロパティから除かれているため、通信チャネル１２〜２６のいずれかで通信が再開することになる。
【００７８】
なお、通信チャネル１１以外の通信チャネルで通信障害が生じた場合は、通信障害が生じた通信チャネルが通信チャネルの設定(setChannel)のプロパティから除かれる。例えば、通信チャネル２６で通信障害が生じた場合は、通信チャネル２６が通信チャネルの設定(setChannel)のプロパティから除かれる。
【００７９】
図１０は、ＧＷ１００の制御装置１１０が実行する処理を表すフローチャートである。ここでは、デバイス５０からＧＷ１００が受信するデータは、プロトコル変換部１１２によってプロトコルが変換されているものとして説明する。また、ここでは、実行を許可しない機能が一例として復旧機能である形態について説明する。
【００８０】
主制御部１１１は、一連の処理をスタートする。
【００８１】
機能取得部１１３は、ネットワーク１０Ａを介してデバイス５０が実行可能なすべての機能を取得し、メモリ１１８に格納する（ステップＳ１）。ステップＳ１では、ある１つのデバイス５０が実行可能なすべての機能が取得され、メモリ１１８に格納される。
【００８２】
機能選択部１１５は、ステップＳ１で取得された機能の機能名に基づいて、復旧機能と実行許可条件を選択し、メモリ１１８に格納する（ステップＳ２）。ステップＳ２の処理により、図７に示すデータ４００Ｂのように、ステップＳ１で取得された機能を表すデータに対して復旧機能と実行許可条件の項目が追加される。
【００８３】
なお、実行許可条件が存在しない場合には、実行許可条件の欄のみがあり、実行許可条件を表すデータは存在しないことになる（空欄になる）。また、ステップＳ２の段階では、図７に示すデータ４００Ｂにおける制限可能機能と制限プロパティの項目は設けられていない。
【００８４】
通知処理部１１７は、機能取得部１１３によって取得される実行可能なすべての機能から機能選択部１１５によって選択される復旧機能を除いた残りの機能をアプリケーション処理部２００Ａに通知する（ステップＳ３）。ステップＳ３では、通知処理部１１７は、デバイス５０から取得されてメモリ１１８に格納されたデータ４００Ａ（図６参照）から復旧機能を除いた残りの機能を表すデータ４００Ｃ（図８参照）をアプリケーション処理部２００Ａに通知する。
【００８５】
なお、ステップＳ３の処理は、一連の処理が開始された直後に行われるため、通信障害が発生していない状況下で行われている。
【００８６】
障害検出部１１４は、ＧＷ１００とデバイス５０との間の通信状況等に基づいて、通信障害が生じているかどうかを判定する（ステップＳ４）。障害検出部１１４は、通信障害が生じていない（Ｓ４：ＮＯ）と判定すると、通信障害が生じていると判定するまでステップＳ４の処理を繰り返し実行する。なお、ステップＳ４では、通信障害が生じている通信チャネルが特定される。
【００８７】
障害検出部１１４が通信障害が生じている（Ｓ４：ＹＥＳ）と判定すると、次のステップＳ５からステップＳ９までの各復旧機能についての処理（（開始）から（終了）まで）が行われる。
【００８８】
障害検出部１１４は、生じている通信障害が、復旧機能についての実行可能条件を満たすかどうかを判定する（ステップＳ５）。通信障害が実行可能条件を満たすとは、実行可能条件が表す条件を、生じている通信障害が満たすかどうかということである。
【００８９】
障害検出部１１４が実行可能条件を満たす（Ｓ５：ＹＥＳ）と判定すると、制限取得部１１６は、復旧機能がプロパティの制限が可能な機能であるかどうかを判定する（ステップＳ６）。
【００９０】
制限取得部１１６は、プロパティの制限が可能な機能である（Ｓ６：ＹＥＳ）と判定すると、復旧機能について、プロパティの制限が可能な機能であるかどうかを表す情報と、制限されるプロパティを表す情報とを取得できたかどうかを判定する（ステップＳ７）。
【００９１】
制限取得部１１６は、情報を取得できた（Ｓ７：ＹＥＳ）と判定すると、プロパティの制限が可能な機能であるかどうかを表す項目（制限可能機能）と、制限されるプロパティを表す項目（制限プロパティ）とをメモリ１１８に格納するとともに、生じている通信障害と制限プロパティの内容とに応じてプロパティ値の範囲を制限する（ステップＳ８）。
【００９２】
ステップＳ８の処理により、例えば、図７のデータ４００ＢにおけるsetChannelのように、プロパティの制限が可能な機能であるかどうかを表す項目（制限可能機能）と、制限されるプロパティを表す項目（制限プロパティ）とが追加され、制限可能機能の項目値が‘１’に設定され、制限プロパティの項目に制限されるプロパティを表すデータが入力される。
【００９３】
また、例えば、生じている通信障害が通信チャネル１１でのチャネル占有率がｘ％を超えたことである場合には、ステップＳ８の処理により、さらにsetChannelのプロパティ値が{12,…,26}に制限される。
【００９４】
また、ステップＳ６において、制限取得部１１６は、プロパティの制限が可能な機能ではない（Ｓ６：ＮＯ）と判定すると、プロパティの制限が可能な機能であるかどうかを表す項目（制限可能機能）と、制限されるプロパティを表す項目（制限プロパティ）とを空欄にしてメモリ１１８に格納する（ステップＳ９）。これにより、図７のデータ４００Ｂにおけるrebootのように、制限可能機能の項目値が‘０’に設定され、制限プロパティの項目値は無し（空欄）にされる。
【００９５】
また、制限取得部１１６は、復旧機能について制限されるプロパティの情報を取得できていない（Ｓ７：ＮＯ）と判定すると、ステップＳ９の処理を行う。
【００９６】
通知処理部１１７は、ステップＳ８又はＳ９で得られたデータ４００Ｂ（図７参照）から、復旧、実行許可条件、制限可能機能、及び、制限プロパティの項目を除いたデータ４００Ｄ（図９参照）を生成し、アプリケーション処理部２００Ａに通知する（ステップＳ１０）。
【００９７】
主制御部１１１は、一連の処理を終了する（エンド）。
【００９８】
以上のように、通信システム３００では、通信障害が生じていない通常時には、デバイス５０が実行可能なすべての機能から復旧機能を除いた、復旧機能以外の機能のみをアプリケーション処理部２００Ａに通知する。
【００９９】
また、通信システム３００では、通信障害が生じているときは、デバイス５０のすべての機能をＧＷ１００からアプリケーション処理部２００Ａに通知する。このため、通信障害が生じていない通常時に復旧機能が実行されることを抑制することができる。
【０１００】
したがって、運用状況に応じて所定の機能の実行可否を変更できる通信システム３００、ＧＷ１００、及び、情報処理プログラムを提供することができる。
【０１０１】
また、通信障害が生じているときは、通信障害の内容と、制限プロパティが表す内容とに基づいて、制限プロパティに該当するプロパティに制限を与えることができる。これは、例えば、通信チャネル１１でチャネル占有率がｘ％を超える通信障害が生じている場合に、setChannelのプロパティ値を{12,…,26}に制限することである。
【０１０２】
このように、通信障害の内容に対応するプロパティを制限できるので、通信障害が生じているときに、利用可能な復旧機能を効率的に利用することができる。
【０１０３】
なお、以上では、アプリケーション処理部２００ＡがＧＷ１００とネットワーク１０Ｂを介して接続されるＰＣ２００にある形態について説明したが、アプリケーション処理部２００Ａは、ＧＷ１００にあってもよい。
【０１０４】
また、以上では、アプリケーション処理部２００ＡがＰＣ２００にある形態について説明したが、ＰＣ２００の代わりに、スマートフォン端末機、タブレットコンピュータ、又はサーバ等に設けられていてもよい。
【０１０５】
また、以上では、通信障害が生じているときは、通信障害の内容と、制限プロパティが表す内容とに基づいて、制限プロパティに該当するプロパティに制限を与える形態について説明したが、プロパティに制限を与えなくてもよい。
【０１０６】
この場合には、制限取得部１１６は、ステップＳ８において、プロパティの制限が可能な機能であるかどうかを表す項目（制限可能機能）と、制限されるプロパティを表す項目（制限プロパティ）とをメモリ１１８に格納すればよい。
【０１０７】
また、以上では、通信チャネル１１でチャネル占有率がｘ％を超える通信障害が生じている場合に、setChannelのプロパティ値を{12,…,26}に制限する形態について説明したが、通信チャネル１１でＧＷ１００と通信しているデバイス５０が１つのみである場合には、復旧機能として、ＧＷ１００からデータパケットを送信する際の電波の強度を増大させる機能を用いてもよい。通信チャネル１１でＧＷ１００と通信しているデバイス５０が１つのみであるかどうかは、ＧＷ１００が通信チャネル１１でデバイス５０から受信するデータパケットの送信元アドレスに基づいて判定すればよい。
【０１０８】
また、このようなデータパケットを送信する際の電波の強度を増大させる復旧機能は、通信障害が生じた通信チャネルで通信しているデバイス５０が複数ある場合には、利用不可能な復旧機能にすればよい。通信障害が生じた通信チャネル以外の通信チャネルでの通信に影響を与えるおそれがあるからである。
【０１０９】
また、例えば、ＧＷ１００が通信チャネル１１を通じてデータＡを収集するとともに、通信チャネル１５を通じてデータＡよりも優先度の高いデータＢを収集しているとする。優先度とは、ＧＷ１００の内部でのデータ処理における優先度である。
【０１１０】
このような場合に通信チャネル１１で通信障害が生じたときに、復旧機能としてのsetChannelのプロパティの範囲から通信チャネル１５を除外するようにしてもよい。この場合には、setChannelのプロパティの範囲は、{12,13,14,16,…,26}になる。このように優先度の高いデータＢを収集する通信チャネル１５を除外することにより、通信チャネル１５以外の通信チャネルで通信障害が生じた場合でも、データＢを収集する通信チャネル１５を確保することができ、通信障害が生じる前と同様の状態で引き続きデータＢを収集することができる。
【０１１１】
また、デバイス５０がＷｏＴ(Web  of  Things)に対応したデバイスであり、Thing  Description(ＴＤ)に自身のメタデータ（自身についての付加的なデータ）を記載してあるとする。メタデータは、例えば、デバイス５０の属性、機能、プロパティ等である。また、ここでいうデバイス５０の属性は、上述した実行可能な機能について制限される属性（プロパティの上位概念）とは異なり、デバイス５０の名称、又は、デバイス５０の種類を表す値等である。
【０１１２】
図１１は、デバイス５０のThing  Descriptionの一例を示す図である。図１１に示すように、ＴＤには、id、name、action(デバイスの機能と、機能を実行するためにアクセスするURL)、properties(動作状態又は照度等のデバイスの状態)のデータ形式、及び、各データの値が取りうる範囲等が記載されている。  このようなメタデータを記載したＴＤを用いると、ＧＷ１００及びアプリケーション処理部２００Ａは、ＴＤを取得することで、デバイス５０のすべての機能（復旧機能を含む）を取得することができる。
【０１１３】
また、ＧＷ１００は、復旧機能の種別、実行許可条件、制限可能機能、制限プロパティ等については、例えば、インターネット等のネットワークを介してデバイス５０の販売供給元（ベンダ）のウェブサイトにアクセスし、ウェブサイト上で公開されているレポジトリから取得すればよい。  また、アプリケーション処理部２００ＡがＧＷ１００を通じてデバイス５０を操作する際に、権限が与えられていない機能を操作しようとした場合、禁止若しくは制限されているプロパティ値に設定しようとした場合、又は、通常時に復旧機能を実行しようとした場合に、実行を失敗した原因をＧＷ１００からアプリケーション処理部２００Ａに通知し、ＰＣ２００のディスプレイ２２に表示させるようにしてもよい。このような処理は、例えば、主制御部１１１が行えばよい。主制御部１１１は、原因通知部として失敗原因をアプリケーション処理部２００Ａに通知する。
【０１１４】
ここで、権限が与えられていない機能とは、アプリケーション処理部２００Ａに通知されるデータ４００Ｃ（図８参照）又はデータ４００Ｄ（図９参照）に含まれない機能である。例えば、ＰＣ２００のディスプレイ２２に表示の更新が遅れて、データ４００Ｃ又は４００Ｄに含まれない機能が表示されているような場合には、ＰＣ２００の利用者が権限が与えられていない機能を選択して実行しようとする場合が有り得る。
【０１１５】
また、禁止されているプロパティ値とは、例えば、ＧＷ１００が通信チャネル１１を通じてデータＡを収集するとともに、通信チャネル１５を通じてデータＡよりも優先度の高いデータＢを収集していて、通信チャネル１５以外の通信チャネルで通信障害が生じた場合に、復旧機能としてのsetChannelのプロパティの範囲から除外される通信チャネル１５のことである。
【０１１６】
また、制限されているプロパティ値は、通信チャネルで通信障害が生じたときの復旧機能としてのsetChannelのプロパティの範囲から除外される、通信障害が生じた通信チャネルのことである。
【０１１７】
また、通常時に復旧機能を実行しようとした場合とは、例えば、通信障害から復旧した後に、ＰＣ２００のディスプレイ２２に表示の更新が遅れて復旧機能を含むデータ４００Ｄが表示されているような場合に、ＰＣ２００の利用者が復旧機能を選択して実行しようとする場合である。
【０１１８】
図１２は、実行を失敗した原因と、原因を表すステータスコードとを関連付けたテーブル形式のデータを示す図である。図１２では、実行失敗原因とステータスコードとが関連付けられている。
【０１１９】
図１２には、実行失敗原因の一例として、実行権限がない（権限が与えられていない）、禁止若しくは制限されているプロパティ値に設定しようとした、及び、通常時に復旧機能を実行しようとした、の３つの実行失敗原因になる操作がある。
【０１２０】
これらの実行失敗原因になる操作が行われた場合にはステータスコードに記載されているように、それぞれ、403  Forbidden、404  Not  Found（禁止されているプロパティ値に設定しようとした場合）、400  Bad  Request(制限されているプロパティ値に設定しようとした場合)、404  Not  FoundがＰＣ２００のディスプレイ２２に表示される。
【０１２１】
これにより、ＰＣ２００の利用者は、実行を失敗した原因を理解することができる。
【０１２２】
なお、ここでは、禁止若しくは制限されているプロパティ値を選択して実行に失敗した場合について説明したが、禁止若しくは制限されている機能を選択して実行に失敗した場合に同様にステータスコードを表示してもよい。
【０１２３】
また、図１２に示すような実行失敗原因と原因を表すステータスコードとを関連付けたテーブル形式のデータを用いて、実行失敗原因になる操作が行われた場合にステータスコードをＰＣ２００のディスプレイ２２に表示する代わりに、次のようにしてもよい。
【０１２４】
ＰＣ２００のアプリケーション処理部２００ＡからＧＷ１００にデバイス５０の機能を実行させるコマンドが送信され、実行失敗原因になる操作が行われた場合に、ＧＷ１００からアプリケーション処理部２００Ａに送信するレスポンスのボディにＴＤを格納してもよい。このＴＤには、その時点で利用可能なデバイス５０の最新の機能を記載しておけばよい。ＧＷ１００からアプリケーション処理部２００Ａに送信するレスポンスのステータスコードは、404  Not  Foundでよい。
【０１２５】
このようにすれば、アプリケーション処理部２００Ａに、デバイス５０の最新の機能を通知することができる。なお、レスポンスのステータスコードは、図１２に示すように、実行失敗原因に応じて異なるコードを用意してもよい。
【０１２６】
また、ＧＷ１００からアプリケーション処理部２００Ａに送信するレスポンスのボディにＴＤを格納してデバイス５０の最新の機能を通知する代わりに、アプリケーション処理部２００Ａからデバイス５０へのアクセスを、ＴＤに記載されたリソースにリダイレクトさせてもよい。
【０１２７】
例えば、レスポンスのステータスコードをSee  Otherにして、ＴＤに記載されたリソースにリダイレクトさせてもよい。また、レスポンスにおけるContent-Dispositionレスポンスヘッダを用いてファイルを保存させるようにリダイレクトしてもよい。
【０１２８】
＜実施の形態２＞
図１３は、実施の形態２のＧＷ１００Ｍの構成を示す図である。ＧＷ１００Ｍは、制御装置１１０Ｍ及び通信部１２０を有する。以下では、実施の形態１と同様の構成要素には同一符号を付し、その説明を省略する。また、以下では実施の形態１との相違点を中心に説明する。
【０１２９】
制御装置１１０Ｍは、主制御部１１１、プロトコル変換部１１２、機能取得部１１３、障害検出部１１４、デバイス状態検出部１１９、機能選択部１１５、制限取得部１１６、通知処理部１１７、及びメモリ１１８を有する。制御装置１１０Ｍは、実施の形態１の制御装置１１０にデバイス状態検出部１１９を追加した構成を有する。デバイス状態検出部１１９は、制御装置１１０Ｍが実行するプログラムの機能（ファンクション）を機能ブロックとして示したものである。
【０１３０】
デバイス状態検出部１１９は、デバイス５０とＧＷ１００との間で通信障害が生じている通信チャネルにおけるチャネル占有率を表すデータを受信し、通信障害が生じている状況下においてチャネル占有率がｙ％を超えているかどうかを判定する。
【０１３１】
すなわち、デバイス状態検出部１１９は、デバイス５０とＧＷ１００との間で通信障害が生じている通信チャネルと同一の通信チャネルにおけるチャネル占有率を表すデータを受信し、通信障害が生じている通信チャネルでのチャネル占有率がｙ％を超えているかどうかを判定する。ｙ％は、一例として実施の形態１におけるｘ％よりも大きな値である。チャネル占有率がｙ％を超えていることは、所定の状態が生じていることの一例である。
【０１３２】
デバイス状態検出部１１９は、通信障害が生じている状況下においてチャネル占有率がｙ％を超えている場合に、デバイス５０の所定の機能に制限を課す。通信チャネルで生じている通信障害を抑制するためである。
【０１３３】
デバイス状態検出部１１９は、通信障害が生じている状況下において、デバイス５０の状態が制限条件を満たすかどうかを判定する。制限条件は、通信障害が生じている通信チャネルでのチャネル占有率がｙ％を超えていることである。
【０１３４】
デバイス状態検出部１１９は、通信障害が生じている状況下において、デバイス５０の状態が制限条件を満たすかどうかを判定し、制限条件を満たす場合にデバイス５０の復旧機能以外の所定の機能に制限を課す。
【０１３５】
デバイス状態検出部１１９は、チャネル占有率と、通信障害が生じている状況下においてデバイス５０の状態が制限条件を満たすかどうかを判定した判定結果とを表すデータをメモリ１１８に格納する。
【０１３６】
次に、制御装置１１０Ｍのうちの機能選択部１１５、制限取得部１１６、通知処理部１１７における実施の形態１との相違点について説明する。
【０１３７】
機能選択部１１５は、実施の形態１における処理に加えてさらに、通信障害が生じている状況下において、デバイス状態検出部１１９によってチャネル占有率がｙ％を超えていることが検出された場合に実行を許可しない機能をさらに選択する。機能選択部１１５は、選択した実行を許可しない機能をメモリ１１８に格納する。
【０１３８】
通信障害が生じている状況下においてチャネル占有率がｙ％を超えている状態でデバイス５０に実行を許可しない機能とは、復旧機能以外の機能であって、通信障害が生じている状況下においてチャネル占有率がｙ％を超えている状態で、通信チャネルで生じている通信障害を抑制するために、実行が許可されなくなる機能である。
【０１３９】
制限取得部１１６は、機能取得部１１３によって取得されるデバイス５０が実行可能な機能から、機能選択部１１５によって選択される通信障害が生じていない状況下では実行を許可しない復旧機能を除いた残りの機能について、通信障害が生じている状況下においてチャネル占有率がｙ％を超えている場合にプロパティが制限される機能を取得する。
【０１４０】
通知処理部１１７は、通信障害が生じている状況下においてチャネル占有率がｙ％を超えている場合には、機能取得部１１３によって取得されるデバイス５０が実行可能な機能から、機能選択部１１５によって選択される、チャネル占有率がｙ％を超えている場合に実行を許可しない機能を除いた残りの機能をアプリケーション処理部２００Ａに通知する。このように通知処理部１１７が実行を許可しない機能を除く処理は、フィルタリングである。
【０１４１】
また、通知処理部１１７は、通信障害が生じている状況下においてチャネル占有率がｙ％を超えている場合には、機能取得部１１３によって取得されるデバイス５０が実行可能な機能のうち、制限取得部１１６によって取得される属性が制限される機能については、制限される属性をアプリケーション処理部２００Ａに通知する。より具体的には、機能取得部１１３によって取得されるデバイス５０が実行可能な機能を表すデータから、制限される属性を除いたデータがＧＷ１００Ｍからアプリケーション処理部２００Ａに通知される。このように通知処理部１１７が属性を除く処理は、フィルタリングである。
【０１４２】
図１４は、データ４００Ｅを示す図である。ここでは、デバイス５０がビデオカメラデバイスである場合のデータについて説明する。
【０１４３】
データ４００Ｅは、機能、機能実行によるプロパティ変化、プロパティ値の範囲、復旧、実行許可条件、制限機能、制限条件、及び制限内容の項目を有する。これらのうち、機能、機能実行によるプロパティ変化、及び、プロパティ値の範囲の３つの項目は、デバイス５０から通知されるデータに含まれる。
【０１４４】
ビデオカメラの機能には、一例として、電源をオンにするon、静止画（写真）を撮影するtakePhoto、静止画（写真）をＧＷ１００経由でアプリケーション処理部２００Ａに送信するsendPhoto、動画を撮影するtakeMovie、動画をＧＷ１００経由でアプリケーション処理部２００Ａに送信するsendMovie、及び、再起動するrebootがある。
【０１４５】
また、機能実行によるプロパティ変化は、電源をオンにする機能の場合はstatus  =  ONになり、静止画を送信する機能の場合はsize=sになり、動画を送信する機能の場合はsize=sになり、再起動する機能の場合はstatus  =  OFFになる。なお、静止画を撮影する場合と動画を撮影する場合の機能実行によるプロパティ変化は空欄である。
【０１４６】
また、プロパティ値の範囲は、電源をオンにする機能の場合はOFF,ONであり、静止画を送信する機能の場合は1-8であり、動画を送信する機能の場合は1-8であり、再起動する機能の場合はOFF,ONである。なお、静止画を撮影する機能の場合と動画を撮影する場合のプロパティ値の範囲は空欄である。
【０１４７】
復旧の項目は、機能選択部１１５が機能名に基づいて復旧機能であるかどうかを判定することで設定すればよい。実行許可条件の項目は、機能選択部１１５がメモリ１１８に格納された実行許可条件を割り当てることによって設定すればよい。なお、復旧と実行許可条件の項目は、実施の形態１と同様に、その他の手法で設定されてもよい。
【０１４８】
制限機能の項目は、通信障害が生じている状況下において、通信障害が生じている通信チャネルでのチャネル占有率がｙ％を超えている場合にプロパティが制限される機能であるかどうかを表す。
【０１４９】
制限機能の項目は、項目値が‘０’であることは、通信障害が生じている状況下において、通信障害が生じている通信チャネルでのチャネル占有率がｙ％を超えている場合にプロパティが制限される機能ではないことを表す。また、項目値が‘１’であることは、通信障害が生じている状況下において、通信障害が生じている通信チャネルでのチャネル占有率がｙ％を超えている場合にプロパティが制限される機能であることを表す。
【０１５０】
制限機能の項目は、電源をオンにする機能については‘０’であり、静止画を撮影する場合の機能については‘０’であり、静止画を送信する機能については‘１’であり、動画を撮影する場合の機能については‘０’であり、動画を送信する機能については‘１’であり、再起動する機能については‘０’である。通信チャネルで通信障害が生じている状態では、通信障害を抑制するために静止画と動画の送信に関連する機能に制限をかける趣旨であり、一例として、静止画と動画の送信に制限が設けられる。
【０１５１】
制限条件の項目は、通信障害が生じている状況下において、通信障害が生じている通信チャネルでのチャネル占有率がｙ％を超えている場合にプロパティが制限される機能について、機能が制限される際の条件（制限条件）を表す。制限条件を満たすかどうかの判定は、デバイス状態検出部１１９によって行われる。静止画と動画の送信が制限されるのは、ともに、通信障害が生じている通信チャネルでのチャネル占有率がｙ％を超えている（チャネル占有率＞ｙ％）ときである。
【０１５２】
制限内容の項目は、通信障害が生じている状況下において、通信障害が生じている通信チャネルでのチャネル占有率がｙ％を超えている場合にプロパティが制限される機能について、具体的に制限される内容を表す。
【０１５３】
静止画の送信サイズの設定についての制限内容は、プロパティ値の範囲を1-4  (s:1-4)に制限することである。ここで、プロパティ値が大きいほど送信サイズが大きいことを表す。すなわち、通信障害が生じている状況下においてチャネル占有率がｙ％を超えている場合には、静止画の送信サイズは小さいサイズに限られることになる。また、動画の送信についての制限内容は、実行禁止である。すなわち、動画の送信はできない状態になる。
【０１５４】
図１５は、データ４００Ｆを示す図である。データ４００Ｆは、通信障害が生じている状況下において、通信障害が生じている通信チャネルでのチャネル占有率がｙ％を超えている場合に、通知処理部１１７によって生成され、アプリケーション処理部２００Ａに通知されるデータである。
【０１５５】
通信障害が生じている状況下において、通信障害が生じている通信チャネルでのチャネル占有率がｙ％を超えている場合には、動画の送信は実行禁止であり、静止画の送信サイズの設定はプロパティ値の範囲が1-4  (s:1-4)に制限される。
【０１５６】
このため、データ４００Ｆでは動画の送信の機能(sendMovie:図１４参照)は削除され、静止画の送信サイズの設定はプロパティ値の範囲が1-4  (s:1-4)に制限されている。また、電源をオンにするon、及び、静止画と動画を撮影するtakePhoto、takeMovieは制限機能ではないため、データ４００Ｆに含まれている。また、復旧機能であり、かつ、制限機能ではない再起動rebootもデータ４００Ｆに含まれている。
【０１５７】
図１６は、ＧＷ１００Ｍの制御装置１１０Ｍが実行する処理を表すフローチャートである。図１６に示すフローでは、実施の形態１のＧＷ１００の制御装置１１０が実行する処理（図１０参照）と同様の処理には同一のステップ番号を記し、その説明を省略する。具体的には、図１６に示すフローでは、ステップＳ１〜Ｓ４は、実施の形態１と同様である。また、各復旧機能についての処理は、開始から終了までの間に図１０に示すステップＳ５〜Ｓ９の処理が行われる。ここでは、ステップＳ５〜Ｓ９の処理として簡略化して示すが、図１０に示す各復旧機能についての処理（開始）から各復旧機能についての処理（終了）までが行われる。その後、フローはステップＳ２３に進行する。
【０１５８】
また、実施の形態２では、ステップＳ４において障害検出部１１４が通信障害が生じている（Ｓ４：ＹＥＳ）と判定すると、各復旧機能についての処理（開始）から各復旧機能についての処理（終了）までの処理と並列に、復旧機能以外の各機能についての処理（開始）から復旧機能以外の各機能についての処理（終了）が行われる。
【０１５９】
復旧機能以外の各機能についての処理（開始）から復旧機能以外の各機能についての処理（終了）は、次のステップＳ２１及びステップＳ２２の処理、又は、ステップＳ２１の処理を含む。
【０１６０】
デバイス状態検出部１１９は、デバイス５０の状態が制限条件を満たすかどうかを判定する（ステップＳ２１）。
【０１６１】
デバイス状態検出部１１９は、デバイス５０の状態が制限条件を満たす（Ｓ２１：ＹＥＳ）と判定すると、デバイス５０の状態が制限条件を満たすことを通知処理部１１７に通知する（ステップＳ２２）。ステップＳ２２の処理が完了すると、フローはステップＳ２３に進行する。
【０１６２】
また、ステップＳ２１においてデバイス状態検出部１１９がデバイス５０の状態が制限条件を満たさない（Ｓ２１：ＮＯ）と判定すると、フローはステップＳ２２を経ずにステップＳ２３に進行する。
【０１６３】
通知処理部１１７は、各復旧機能についての処理（ステップＳ５〜Ｓ９）での判定結果と、復旧機能以外の各機能についての処理におけるステップＳ２１でのデバイス状態検出部１１９の判定結果とを反映させたデバイス５０の機能を表すデータを生成し、アプリケーション処理部２００Ａに通知する（ステップＳ２３）。
【０１６４】
ステップＳ２３において、通知処理部１１７が各復旧機能についての処理（ステップＳ５〜Ｓ９）での判定結果を反映させたデバイス５０の機能を表すデータを生成する処理は、図１０のステップＳ１０の処理と同様である。
【０１６５】
また、ステップＳ２３において、復旧機能以外の各機能についての処理におけるステップＳ２１でのデバイス状態検出部１１９の判定結果を反映させたデバイス５０の機能を表すデータを生成する処理は、具体的には次の通りである。
【０１６６】
通知処理部１１７は、デバイス状態検出部１１９からデバイス５０の状態が制限条件を満たすことが通知されている場合は、機能の削除（図１５では画像の送信の機能の削除）及びプロパティ値の範囲の制限（図１５では画像の送信サイズの設定の制限）を行ったデータを生成する。
【０１６７】
そして、この場合は、通知処理部１１７は、各復旧機能についての処理（ステップＳ５〜Ｓ９）での判定結果と、復旧機能以外の各機能についての処理におけるステップＳ２１でのデバイス状態検出部１１９の判定結果とを反映させた、機能の削除及びプロパティ値の範囲の制限を行ったデータを生成し、アプリケーション処理部２００Ａに通知する。ここで生成されるデータの一例は、データ４００Ｆである。
【０１６８】
また、通知処理部１１７は、デバイス状態検出部１１９からデバイス５０の状態が制限条件を満たすことが通知されていない場合は、各復旧機能についての処理（ステップＳ５〜Ｓ９）での判定結果に基づいて機能の削除及びプロパティ値の範囲の制限を行うとともに、復旧機能以外の各機能についての処理におけるステップＳ２１でのデバイス状態検出部１１９の判定結果を反映させて機能の削除及びプロパティ値の範囲の制限を行っていないデータを生成し、アプリケーション処理部２００Ａに通知する。
【０１６９】
この場合のデータは、図１５に示すデータ４００Ｆにおける画像の送信の機能を含むとともに、画像の送信サイズの設定のプロパティ値の範囲が1-8に設定されたデータになる。
【０１７０】
以上のように、実施の形態２によれば、通信障害が生じている状況下において、通信チャネルでの通信障害を抑制するためにチャネル占有率がｙ％を超えているかどうかを判定する。そして、チャネル占有率がｙ％を超えている場合には、制限機能に該当するデバイス５０の機能に対して、実行禁止又はプロパティ値の範囲の制限を課す。
【０１７１】
このため、運用状況に応じて所定の機能の実行可否を変更できる通信システム３００、ＧＷ１００、及び、情報処理プログラムを提供することができる。また、さらに、通信障害が生じている通信チャネルでの通信障害を抑制できるので、システム全体を安定的に運用することができる。
【０１７２】
なお、以上では、制限条件に含まれるチャネル占有率のｙ％が、実施の形態１のｘ％よりも大きい形態について説明したが、ｙ％とｘ％は等しくてもよい。
【０１７３】
また、以上では、制限条件がチャネル占有率がｙ％を超えていることに設定された形態について説明したが、制限条件はこのような条件に限られない。例えば、デバイス５０のバッテリの残存量が所定量以下であることを制限条件にしてもよく、このような制限条件を満たす場合に、所定の機能の実行禁止、又は、プロパティ値の範囲の制限を課してもよい。
【０１７４】
また、制限条件は複数あってもよい。図１７は、実施の形態３の変形例におけるデータ４００Ｇを示す図である。図１７では、図１４に示すデータ４００Ｅに対して、静止画を送信する機能(sendPhoto)が２つに増やされている。データ４００Ｅに対して、静止画を送信する２つの機能(sendPhoto)のうちの下の行の機能が増やされており、制限条件（第２制限条件）は、ＧＷ１００のＣＰＵ使用率が閾値ＴＨ以上であることである。
【０１７５】
通信障害が生じている状況下において、第２制限条件が満たされると、制限内容として画像の送信サイズのプロパティ値の範囲が1-4に制限される。ＣＰＵ使用率が高い状況では、画像の送信サイズを小さくしてＣＰＵの処理能力に余裕を持たせるためである。
【０１７６】
以上、本発明の例示的な実施の形態の通信システム、情報処理装置、及び、情報処理プログラムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０１７７】
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）
機能を有するデバイスと、
前記デバイスとネットワークを介して接続される情報処理装置と、
前記情報処理装置を通じて前記デバイスに機能を実行させる指令を出力する処理部と
を含み、
前記情報処理装置は、
前記デバイスが実行可能な機能を取得する機能取得部と、
前記機能取得部によって取得される前記デバイスが実行可能な機能のうち、所定の事象が生じていない状況下では実行を許可しない機能を選択する機能選択部と、
前記所定の事象が生じていない状況下では、前記機能取得部によって取得される前記デバイスが実行可能な機能から前記機能選択部によって選択される実行を許可しない機能を除いた残りの機能を前記処理部に通知し、前記所定の事象が生じている状況下では、前記機能取得部によって取得される前記デバイスが実行可能な機能を前記処理部に通知する、通知処理部と
を有する、通信システム。
（付記２）
前記所定の事象が生じている状況下において、前記機能取得部によって取得される前記デバイスが実行可能な機能について制限される属性を取得する制限取得部をさらに含み、
前記通知処理部は、前記所定の事象が生じている状況下では、前記機能取得部によって取得される前記デバイスが実行可能な機能から、前記制限取得部によって取得される前記制限される属性を除いた情報を前記処理部に通知する、付記１記載の通信システム。
（付記３）
前記情報処理装置は、前記デバイスに所定状態が生じているかどうかを検出するデバイス状態検出部をさらに有し、
前記機能選択部は、前記所定の事象が生じている状況下において、前記デバイス状態検出部によって前記所定状態が生じていることが検出された場合に実行を許可しない機能をさらに選択し、
前記通知処理部は、前記所定の事象が生じている状況下において前記所定状態が生じている場合には、前記機能取得部によって取得される前記デバイスが実行可能な機能から、前記機能選択部によって選択される、前記デバイス状態検出部によって前記所定状態が生じていることが検出された場合に実行を許可しない機能を除いた残りの機能を前記処理部に通知する、付記１又は２記載の通信システム。
（付記４）
前記情報処理装置は、前記デバイスに所定状態が生じているかどうかを検出するデバイス状態検出部をさらに有し、
前記制限取得部は、前記機能取得部によって取得される前記デバイスが実行可能な機能から、前記機能選択部によって選択される前記所定の事象が生じていない状況下では実行を許可しない機能を除いた残りの機能について、前記所定の事象が生じている状況下において前記所定状態が生じている場合に属性が制限される機能をさらに取得し、
前記通知処理部は、前記所定の事象が生じている状況下において前記所定状態が生じている場合には、前記機能取得部によって取得される前記デバイスが実行可能な機能のうち、前記制限取得部によって取得される属性が制限される機能については、制限される属性を前記処理部に通知する、付記２記載の通信システム。
（付記５）
前記所定の事象は、前記デバイス又は前記ネットワークの障害である、付記１乃至４のいずれか一項記載の通信システム。
（付記６）
前記情報処理装置は、前記処理部から出力される指令に基づく処理の実行に失敗すると、失敗原因を通知する原因通知部をさらに有する、付記１乃至５のいずれか一項記載の通信システム。
（付記７）
機能を有するデバイスとネットワークを介して接続され、処理部から出力される前記デバイスに機能を実行させる指令を、前記デバイスに送信する情報処理装置であって、
前記デバイスが実行可能な機能を取得する機能取得部と、
前記機能取得部によって取得される前記デバイスが実行可能な機能のうち、所定の事象が生じていない状況下では実行を許可しない機能を選択する機能選択部と、
前記所定の事象が生じていない状況下では、前記機能取得部によって取得される前記デバイスが実行可能な機能から前記機能選択部によって選択される実行を許可しない機能を除いた残りの機能を前記処理部に通知し、前記所定の事象が生じている状況下では、前記機能取得部によって取得される前記デバイスが実行可能な機能を前記処理部に通知する、通知処理部と
を含む、情報処理装置。
（付記８）
機能を有するデバイスとネットワークを介して接続され、処理部から出力される前記デバイスに機能を実行させる指令を前記デバイスに送信するコンピュータに実行させる情報処理プログラムであって、
前記デバイスが実行可能な機能を取得することと、
前記取得される前記デバイスが実行可能な機能のうち、所定の事象が生じていない状況下では実行を許可しない機能を選択することと、
前記所定の事象が生じていない状況下では、前記取得される前記デバイスが実行可能な機能から前記選択される実行を許可しない機能を除いた残りの機能を前記処理部に通知し、前記所定の事象が生じている状況下では、前記取得される前記デバイスが実行可能な機能を前記処理部に通知することと
を含む処理を前記コンピュータに実行させる、情報処理プログラム。
【符号の説明】
【０１７８】
１０Ａ、１０Ｂ  ネットワーク
５０  デバイス
１００、１００Ｍ  ＧＷ
１１０、１１０Ｍ  制御装置
１１３  機能取得部
１１４  障害検出部
１１５  機能選択部
１１６  制限取得部
１１７  通知処理部
１１９  デバイス状態検出部
２００  ＰＣ
２００Ａ  アプリケーション処理部
３００  通信システム
【図１】
2020204964.tif 000003
【図２】
2020204964.tif 000004
【図３】
2020204964.tif 000005
【図４】
2020204964.tif 000006
【図５】
2020204964.tif 000007
【図６】
2020204964.tif 000008
【図７】
2020204964.tif 000009
【図８】
2020204964.tif 000010
【図９】
2020204964.tif 000011
【図１０】
2020204964.tif 000012
【図１１】
2020204964.tif 000013
【図１２】
2020204964.tif 000014
【図１３】
2020204964.tif 000015
【図１４】
2020204964.tif 000016
【図１５】
2020204964.tif 000017
【図１６】
2020204964.tif 000018
【図１７】
2020204964.tif 000019