(57)【要約】【課題】転送規則に従ってパケットの宛先を変更して送信する中継装置において、受信したパケットにおけるデータの有効期限を、必要に応じて変更前の宛先にも通知可能にする。【解決手段】情報処理装置は、要求を中継した先のリソースから前記要求に関連するパケットを受信し、転送規則に従うことにより、受信されたパケットが示す第１の宛先とは異なる第２の宛先へ前記受信されたパケットを送信する。情報処理装置は、受信された要求に関連するパケットを、要求の送信元へも送信するか否かを判定し、送信すると判定された場合に、そのパケットを第１の宛先へ送信する。【選択図】  図５
2019201287.tif 000002
【特許請求の範囲】
【請求項１】
要求を中継した先のリソースから前記要求に関連するパケットを受信する受信手段と、
転送規則に従うことにより、前記受信手段により受信されたパケットが示す第１の宛先とは異なる第２の宛先へ前記受信されたパケットを送信する第１の送信手段と、
前記受信手段により受信された前記要求に関連するパケットを、前記要求の送信元へ送信するか否かを判定する判定手段と、
前記判定手段により送信すると判定された場合に、前記要求に関連するパケットを前記第１の宛先へ送信する第２の送信手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記パケットは、前記リソースが取得したデータとその有効期限を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段は、前記受信手段により受信されたパケットが、前記要求に応じて前記リソースが最初に送信したパケットであると判定した場合に、前記受信されたパケットを前記要求の送信元へ送信すると判定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記リソースへ中継した前記要求に関する情報を保持する第１の保持手段を備え、
前記判定手段は、前記第１の保持手段が前記情報を保持している間に前記受信手段が前記要求に関連するパケットを受信した場合に、受信された前記パケットを前記要求の送信元へ送信すると判定し、前記第１の保持手段から前記情報を削除することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記判定手段は、前記第１の保持手段が保持している前記情報に基づいて、前記受信手段により受信されたパケットが前記要求に関連したパケットであることを判定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記要求に関連する情報は、前記要求の送信元と宛先のアドレスを含むことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記判定手段は、前記要求を中継した後の所定時間内に前記受信手段が受信した前記要求に関連するパケットを受信した場合に、受信された前記パケットを前記要求の送信元へ送信すると判定することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項８】
前記第２の送信手段が送信したパケットに含まれている有効期限が経過するまで前記送信すべきと判定されたパケットの宛先と送信元を含むエントリを保持する第２の保持手段を備え、
前記受信手段により受信された前記要求に関連するパケットに対応するエントリが前記第２の保持手段に保持されていない場合、前記判定手段は、当該パケットを前記要求の送信元に送信すると判定することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項９】
前記受信手段が受信した前記要求に関連するパケットのうち、最も新しく受信したパケットに含まれている有効期限を保持する第３の保持手段と、
前記第２の保持手段に保持されている有効期限に対する時間の経過に基づいて前記第３の保持手段に保持されている有効期限に基づく新たな有効期限を含むパケットを前記第１の宛先へ送信する第３の送信手段と、を備えることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記第３の送信手段は、前記第３の保持手段に保持されている有効期限までの残り時間を前記新たな有効期限に設定することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記第３の送信手段は、前記第２の保持手段に保持されている有効期限が経過したことに応じて送信を実行することを特徴とする請求項９に記載の情報処理装置。
【請求項１２】
前記第３の保持手段は、前記最も新しく受信したパケットに含まれている有効期限とデータを保持し、
前記第３の送信手段は、前記第３の保持手段に保持されている有効期限とデータを含むパケットを前記第１の宛先へ送信することを特徴とする請求項９乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記要求は、ＣｏＡＰによる監視要求であることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記転送規則はＯｐｅｎＦｌｏｗにより設定されることを特徴とする請求項１乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
要求を中継した先のリソースから前記要求に関連するパケットを受信する受信手段と、
転送規則に従うことにより、前記受信手段により受信されたパケットが示す第１の宛先とは異なる第２の宛先へ前記受信されたパケットを送信する第１の送信手段と、
前記受信手段により受信された前記要求に関連するパケットを、前記要求の送信元へ送信するか否かを判定する判定手段と、
前記判定手段により送信すると判定された場合に、前記要求に関連するパケットに含まれる有効期限を前記第１の宛先へ送信する第２の送信手段と、を備えることを特徴とする情報処理装置。
【請求項１６】
情報処理装置の制御方法であって、
要求を中継した先のリソースから前記要求に関連するパケットを受信する受信工程と、
転送規則に従うことにより、前記受信工程により受信されたパケットが示す第１の宛先とは異なる第２の宛先へ前記受信されたパケットを送信する第１の送信工程と、
前記受信工程により受信された前記要求に関連するパケットを、前記要求の送信元へ送信するか否かを判定する判定工程と、
前記判定工程により送信すると判定された場合に、前記要求に関連するパケットを前記第１の宛先へ送信する第２の送信工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項１７】
情報処理装置の制御方法であって、
要求を中継した先のリソースから前記要求に関連するパケットを受信する受信工程と、
転送規則に従うことにより、前記受信工程により受信されたパケットが示す第１の宛先とは異なる第２の宛先へ前記受信されたパケットを送信する第１の送信工程と、
前記受信工程により受信された前記要求に関連するパケットを、前記要求の送信元へ送信するか否かを判定する判定工程と、
前記判定工程により送信すると判定された場合に、前記要求に関連するパケットに含まれる有効期限を前記第１の宛先へ送信する第２の送信工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項１８】
コンピュータを、請求項１乃至１５のいずれか１項に記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを転送する情報処理装置及びその制御方法に関する。
【背景技術】
【０００２】
ネットワークに参加している装置間の通信の標準化を目的としたＯＣＦ（Open Connectivity Foundation）という団体がある。ＯＣＦにより標準化された仕様に準拠した技術（以降、ＯＣＦ技術）を利用することにより、装置間でリソースとして表現されたデータの取得や操作を行うことが可能になる。リソースとは、物理的に存在するセンサーや機器を含むモノ（温度センサー、ライトなど）と、モノの振る舞い（ライトの点灯・消灯など）を含む概念である。
【０００３】
リソースを管理する管理装置がリソースと通信するために、ＲＦＣ７２５２に規定されたＣｏＡＰ（Constrained Application Program）を用いることができる。ＣｏＡＰでは、リソースに対して監視要求（Ｏｂｓｅｒｖｅ）を行うことにより、リソースの発するセンサーデータの値に変化があったときに、通知（Ｎｏｔｉｆｙ）を受け取ることができる（特許文献１）。また、この通知にはセンサーデータのＭａｘ−ａｇｅが含まれる。Ｍａｘ−ａｇｅとは、データの鮮度を保証する時間、即ち、通知されたデータが最新のものとして使用できる有効期限である。
【０００４】
また、リソースからの通知を特定のデータ処理サーバに転送して、データ処理サーバにおいてリソースの解析を行う場合、転送制御を行うための技術としてＯｐｅｎＦｌｏｗ（登録商標）を利用することができる。ＯｐｅｎＦｌｏｗでは、データの中継装置（ＯｐｅｎＦｌｏｗスイッチ）と、それを制御する制御装置（ＯｐｅｎＦｌｏｗコントローラ）を分離して設けることにより、データの転送制御を一元的に管理することが可能である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１６−５３５３５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
管理装置がセンサー装置のリソースに対して監視要求を行い、リソースからの通知パケットを中継装置がデータ処理サーバに転送する場合を考える。この場合、中継装置は、転送規則に従って宛先を変更するため、リソースからの通知パケットをすべてデータ処理サーバへ転送する。結果、監視要求を行った管理装置は通知パケットを受け取らないこととなる。このため、管理装置は通知パケットに含まれるデータのＭａｘ−ａｇｅを知ることができず、再度監視要求を行うタイミングを失ってしまう。したがって、例えば、センサーリソースがリセットされて監視（Ｏｂｓｅｒｖｅｄ）状態を失った場合、管理装置は監視要求を行うことができず、センサーリソースの監視状態を復帰させることができない。
【０００７】
本発明は、転送規則に従ってパケットの宛先を変更して送信する情報処理装置において、受信したパケットにおけるデータの有効期限を、必要に応じて変更前の宛先にも通知可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様による情報処理装置は、以下の構成を備える。すなわち、
要求を中継した先のリソースから前記要求に関連するパケットを受信する受信手段と、
転送規則に従うことにより、前記受信手段により受信されたパケットが示す第１の宛先とは異なる第２の宛先へ前記受信されたパケットを送信する第１の送信手段と、
前記受信手段により受信された前記要求に関連するパケットを、前記要求の送信元へ送信するか否かを判定する判定手段と、
前記判定手段により送信すると判定された場合に、前記要求に関連するパケットを前記第１の宛先へ送信する第２の送信手段と、を備える。
【発明の効果】
【０００９】
本発明によれば、転送規則に従ってパケットの宛先を変更して送信する情報処理装置において、受信したパケットにおけるデータの有効期限を必要に応じて変更前の宛先に通知することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態による情報処理システムのシステム構成を示した図。
【図２】実施形態による情報処理システムの機器管理サーバのハードウェアブロック図。
【図３】実施形態による情報処理システムのセンサーのハードウェアブロック図。
【図４】実施形態による情報処理システムのＩｏＴゲートウェイ装置のハードウェアブロック図。
【図５】第１実施形態による転送処理のシーケンス図。
【図６】第１実施形態による転送処理を示すフローチャート。
【図７】第２実施形態による情報処理システムのシステム構成を示した図。
【図８】第２実施形態による転送処理のシーケンス図。
【図９】第２実施形態による転送処理を示すフローチャート。
【図１０】第３実施形態による転送処理のシーケンス図。
【図１１】第３実施形態による転送処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
本発明の実施形態について、図面を参照して以下に説明する。なお、以下では、理解容易のためにリソースとしてセンサー装置、中継装置としてＩｏＴ−ＧＷ、管理装置として機器管理サーバ、リソースからのデータを処理する情報処理装置としてセンサーデータ処理サーバを用いて説明する。ただし、本発明はこれらの構成に限られるものではない。例えば、リソースはセンサー装置に限られない。また、以下の実施形態で説明する特徴の組み合わせの全てが本発明に必須のものとは限らない。
【００１２】
＜第１実施形態＞
図１は、第１実施形態の情報処理システム１００の構成を示す。情報処理システム１００は、センサー装置１０３、１０４、１０５及び１０６を有するＷＳＮ１０８、ＬＡＮ１０７、機器管理サーバ１０１、ＩｏＴ−ＧＷ１０２、センサーデータ処理サーバ１０９を含む。さらに、情報処理システム１００は、ＷＡＮ１１０を介してＬＡＮ１０７に接続するセンサーデータ処理サーバ１１１を含む。なお、ＷＳＮはWireless Sensor Network、ＷＡＮはWide Area Network、ＬＡＮはLocal Area Networkである。
【００１３】
ＩｏＴ−ＧＷ１０２は、ＷＳＮ１０８とＬＡＮ１０７の両方に接続し、中継装置として機能する情報処理装置である。ＩｏＴ−ＧＷ１０２とＬＡＮ１０７との接続は、例えばＥｔｈｅｒｎｅｔ（登録商標）などの有線接続であってもよいし、Ｗｉ−Ｆｉ（登録商標）などの無線接続であってもよい。ＩｏＴ−ＧＷ１０２は、ＬＡＮ１０７を介して機器管理サーバ１０１及びセンサーデータ処理サーバ１０９と接続してＩＰｖ６通信を実行する。また、ＬＡＮ１０７とＷＡＮ１１０を介してセンサーデータ処理サーバ１１１と接続してＩＰｖ６通信を実行する。さらにＩｏＴ−ＧＷ１０２はＯｐｅｎＦｌｏｗ（登録商標）における、データの転送装置（ＯｐｅｎＦｌｏｗスイッチ）の機能を有する。
【００１４】
センサーデータ処理サーバ１１１は一般にクラウドと呼ばれる仮想化プラットフォーム上にあるサーバであってもよい。本実施形態において、ＩｏＴ−ＧＷ１０２は、ゲートウェイとしての機能だけでなく、ネットワークカメラや、プリンタとしての機能を有していても良く、またＩｏＴ−ＧＷ１０２がセンサーを有するような構成を用いても良い。さらに、ＩｏＴ−ＧＷ１０２は、その他の各種処理を行うアプリケーションを実行することが可能なＰＣやスマートフォン、ルータなどであっても良い。またＩＰｖ６通信のほかＩＰｖ４による通信を行ってもよい。なお、本実施形態ではＩｏＴ−ＧＷ１０２がＯｐｅｎＦｌｏｗスイッチの機能を有する構成としたが、ＬＡＮ１０７に接続する別の機器がＯｐｅｎＦｌｏｗスイッチの機能を有してもよい。
【００１５】
機器管理サーバ１０１は、情報処理システム１００を構成する各機器やセンサー装置について、システムへの接続および設定や状態の管理を行うサーバである。また機器管理サーバ１０１はＩｏＴ−ＧＷ１０２の転送規則を制御する制御装置（ＯｐｅｎＦｌｏｗコントローラ）の機能を有する。機器管理サーバ１０１はフローエントリと呼ばれる転送規則をＩｏＴ−ＧＷ１０２に送信する。フローエントリを受信したＩｏＴ−ＧＷ１０２はそれをフローテーブルに格納し、これを参照することでデータの転送処理を行う。フローエントリには、受信したデータを転送するか否かを判断するための条件（マッチング規則）と、受信データがマッチング規則に適合した場合に実施される処理群（アクションリスト）が含まれている。また、フローエントリには、フロー情報自体の有効期限（転送規則の有効期限）、フロー情報（マッチング規則とアクションリスト）が一定時間参照されなかった場合に失効するアイドルタイムアウト時間が含まれている。さらに、フローエントリには、フローエントリが何回参照されたかを示すカウンタ、フローエントリを適用する優先順位を示す優先度等の情報、が含まれている。なお、本実施形態では機器管理サーバ１０１がＯｐｅｎＦｌｏｗコントローラの機能を有する構成としたが、ＬＡＮ１０７に接続する他の機器がＯｐｅｎＦｌｏｗコントローラの機能を有してもよい。例えば、ＯｐｅｎＦｌｏｗスイッチの機能を有するＩｏＴ−ＧＷ１０２がＯｐｅｎＦｌｏｗコントローラの機能を有してもよい。
【００１６】
センサーデータ処理サーバ１０９とセンサーデータ処理サーバ１１１は、データ処理を行う情報処理装置であって、情報処理システム内のセンサー装置が送信するセンサーデータの収集、蓄積、解析等を実行する。
【００１７】
ＩｏＴ−ＧＷ１０２とセンサー装置１０３〜１０６は、無線ＰＡＮ通信でメッシュネットワークであるＷＳＮ１０８を構築する。ＰＡＮは、Personal Area Networkである。ＷＳＮ１０８はメッシュ型のネットワークトポロジーに限定されるものではなく、ＩｏＴ−ＧＷ１０２を中心としたスター型のようなネットワークであってもよい。なお、ＩｏＴ−ＧＷ１０２とセンサー装置１０３〜１０６以外の他の装置がＷＳＮ１０８に接続していてもよい。無線ＰＡＮの通信規格としては、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｚｉｇｂｅｅ（登録商標）、及びＷｉ−ＳＵＮ（登録商標）が挙げられる。ＷＳＮ１０８の通信では、これらの中のいずれかの無線ＰＡＮ規格のプロトコルを使用するが、その上位のネットワーク層のプロトコルには６ＬｏＷＰＡＮを使用する。６ＬｏＷＰＡＮとは、IPv6 over Low-Power Wireless Personal Area Networkである。
【００１８】
センサー装置１０３〜１０６のそれぞれは、６ＬｏＷＰＡＮパケットを含む無線ＰＡＮフレームを送信する。ＩｏＴ−ＧＷ１０２は、ＷＳＮ１０８とＬＡＮ１０７の間でパケットの転送を実行する。ＷＳＮ１０８からＬＡＮ１０７へパケットを転送する場合、ＩｏＴ−ＧＷ１０２は６ＬｏＷＰＡＮプロトコルのパケットをＩＰｖ６パケットに変換する。逆にＬＡＮ１０７からＷＳＮ１０８へ転送する場合、ＩｏＴ−ＧＷ１０２はＩＰｖ６パケットを６ＬｏＷＰＡＮパケットに変換する。なお、ＬＡＮ１０７においてＩＰｖ４通信を行う場合は別途ＩＰｖ４パケットとＩＰｖ６パケットの間の変換が行われる。
【００１９】
情報処理システム１００において、機器管理サーバ１０１が、センサー装置１０３〜１０６およびＩｏＴ−ＧＷ１０２などの機器をＯＣＦ技術におけるリソースとして管理する。即ち、機器管理サーバ１０１はＯＣＦ技術を用いたデバイス探索を実施することで、センサー装置１０３〜１０６、ＩｏＴ−ＧＷ１０２を探索する。さらに、機器管理サーバ１０１は、探索したデバイスの持つリソースに対して登録、取得、更新、削除、監視などの要求パケットを送信する。そうすることで、機器管理サーバ１０１は、センサー装置１０３〜１０６およびＩｏＴ−ＧＷ１０２の持つリソース情報を取得したり、振る舞いを制御したりすることができる。
【００２０】
次に、機器管理サーバ１０１のハードウェア構成について、図２を参照して説明する。図２は本実施形態による機器管理サーバ１０１のハードウェア構成例を示すブロック図である。機器管理サーバ１０１は、ＣＰＵ２０２、ＲＡＭ２０３、ＲＯＭ２０４、ＬＡＮ制御部２０７、転送制御管理部２０５、機器リソース管理部２０６を含む。システムバス２０１は、これらの各ブロックを接続し、各ブロック間でデータを伝達する。
【００２１】
ＣＰＵ２０２は、ＯＳ、アプリケーション、ＴＣＰ／ＩＰプロトコルスタックなどのプログラムを実行する。ＲＡＭ２０３は、機器管理サーバ１０１の主記憶部であって、主に、ＣＰＵ２０２、転送制御管理部２０５、および機器リソース管理部２０６の処理実行時にデータの一時記憶領域として使用される。ＲＯＭ２０４は、ＣＰＵ２０２が実行するプログラムが格納される不揮発性の記憶部である。ＲＯＭ２０４に格納されるプログラムは、ＲＡＭ２０３に転送され、ＣＰＵ２０２によって読み出されて実行される。
【００２２】
ＬＡＮ制御部２０７は、ＬＡＮ１０７に接続する通信インターフェースであり、有線ＬＡＮもしくは無線ＬＡＮの通信制御を実行する。例えば、機器管理サーバ１０１が有線ＬＡＮで接続する形態とする場合、ＬＡＮ制御部２０７には伝送メディアのＰＨＹ及びＭＡＣ（伝送メディア制御）ハードウェア回路が含まれる。接続する有線ＬＡＮがＥｔｈｅｒｎｅｔ（登録商標）である場合、ＬＡＮ制御部２０７はＥｔｈｅｒｎｅｔ（登録商標）のＮＩＣ（Network Interface Card）に相当する。あるいは、機器管理サーバ１０１が無線ＬＡＮで接続する形態とする場合、ＬＡＮ制御部２０７は、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎ／ａｃ等の無線ＬＡＮ制御を実行するコントローラ、ＲＦ回路、アンテナを含む。
【００２３】
転送制御管理部２０５は、ＯｐｅｎＦｌｏｗスイッチ（本実施形態ではＩｏＴ−ＧＷ１０２）に送信するフローエントリの生成、管理を行う。また、転送制御管理部２０５は、ＬＡＮ制御部２０７を介して、ＯｐｅｎＦｌｏｗスイッチとの間でＯｐｅｎＦｌｏｗプロトコルを用いたデータの送受信を行う。なお、本実施形態では転送制御管理部２０５を別回路による構成としたが、ＣＰＵ２０２が実行するプログラムであってもよい。すなわち、ＯｐｅｎＦｌｏｗスイッチにフローエントリを設定及び管理を行う構成は、いかなる形態であってもよく、例えば転送制御管理部２０５、ＣＰＵ２０２、転送制御管理部２０５とＣＰＵ２０２の協働、あるいは他の回路により実現され得る。
【００２４】
機器リソース管理部２０６はＯＣＦ技術のクライアントとして動作するための機能ブロックである。機器リソース管理部２０６は、リソースに対する、データ取得（ＲＥＴＲＩＥＶＥ）、情報の登録（ＣＲＥＡＴＥ）、更新（ＵＰＤＡＴＥ）、削除（ＤＥＬＥＴＥ）などの処理を行う。これにより、機器リソース管理部２０６は、システム内のセンサーデバイスからセンサーデータの取得を行ったり、装置の振る舞いを制御したりする。またＣｏＡＰを用いることで、機器リソース管理部２０６は、リソースに監視要求（Ｏｂｓｅｒｖｅ）を行い、リソースの発するセンサーデータ値に変化があったときに通知（Ｎｏｔｉｆｙ）を受け取る。
【００２５】
次に、センサー装置１０３のハードウェア構成の一例について、図３を参照して説明する。図３は、本実施形態のセンサー装置１０３のハードウェア構成例を示すブロック図である。センサー装置１０３はマイクロプロセッサ、ＲＡＭ、ＲＯＭ、シリアル通信バスインタフェースなどのハードウェアを１つにまとめた集積回路であるＭＣＵ３０１（Micro Control Unit）、ＰＡＮ制御部３０２、センサー部３０３を有する。ＰＡＮ制御部３０２とセンサー部３０３は、シリアル通信バスによりＭＣＵ３０１と接続する。シリアル通信バスにはいかなる規格のバスが用いられてもよい。例えば、ＵＡＲＴ（Universal Asynchronous Receiver/Transmitter）、Ｉ２Ｃ（Inter-Integrated Circuit）、ＳＰＩ（Serial Peripheral Interface）である。
【００２６】
ＭＣＵ３０１は、各々の機能部の制御、無線ＰＡＮプロトコル処理、センサーデータの取得や送信などの処理を実行する。これらの処理は、ＭＣＵ３０１内部に記録されるソフトウェアプログラムとして実装される。ＰＡＮ制御部３０２は、ＷＳＮ１０８に接続する無線ＰＡＮ規格の通信インターフェースであり、ＬＡＮ制御部２０７（図２）と同等の機能を有する。センサー部３０３は、ジャイロ、加速度、方位、距離、振動、温度、湿度、照度、ＵＶ、気圧、ガス、放射能、におい、ドアや窓の開閉、侵入検知など、何らかの値の測定やイベント検知を行うことができるセンサー素子とＡ／Ｄ変換器を含む集積回路である。ＭＣＵ３０１は、所定のプログラムを実行することにより、センサー部３０３からデータを取得してセンサーデータを作成し、作成したセンサーデータを、ＰＡＮ制御部３０２を介してＷＳＮ１０８に送信する。
【００２７】
また、センサー装置１０３はＯＣＦ技術のサーバとして動作するためのソフトウェアプログラムを有しており、リソースに対する他の装置からの登録、取得、更新、削除の操作要求を受け付けることができる。なお本実施形態では、センサー装置１０３〜１０６は同様のハードウェア構成を持つことを想定する。ただし、センサー部３０３が有するセンサーの種別についてはそれぞれ異なっていても良い。また、センサー部３０３が有するセンサーは１つとは限らず、例えば、複数の種別のセンサーを有していても良い。
【００２８】
次に、ＩｏＴ−ＧＷ１０２のハードウェア構成例について、図４を参照して説明する。ＩｏＴ−ＧＷ１０２は、ＣＰＵ４０２、ＲＡＭ４０３、ＲＯＭ４０４、ＰＡＮ制御部４０８、ＬＡＮ制御部４０７、転送制御部４０５、転送処理部４０６を有する。システムバス４０１は、これらのブロックを接続し、各ブロック間のデータを伝達する。
【００２９】
ＣＰＵ４０２は、ＯＳ、各種アプリケーション、ＴＣＰ／ＩＰプロトコルスタック、無線ＰＡＮプロトコルスタックなどのプログラムを実行する。ＲＡＭ４０３は、ＩｏＴ−ＧＷ１０２の主記憶部であって、例えば、ＣＰＵ４０２、転送制御部４０５、および転送処理部４０６の処理実行時におけるデータの一時記憶領域、機器管理サーバ１０１から受信するフローエントリの一時記憶領域として使用される。ＲＯＭ４０４は、ＣＰＵ４０２が実行するソフトウェアプログラムが格納される不揮発性の記憶部である。ＲＯＭ４０４に格納されたプログラムは、ＲＡＭ４０３に転送され、ＣＰＵ４０２によって読み出されて実行される。
【００３０】
ＰＡＮ制御部４０８は、ＷＳＮ１０８に接続する無線ＰＡＮ規格の通信インターフェースである。ＰＡＮ制御部４０８は、無線ＰＡＮ規格に対応した物理層、ＭＡＣ層の通信制御を実行し、ＷＳＮ１０８との無線接続およびパケットの送受信の機能を提供する。例えば、ＰＡＮ制御部４０８は、ＺｉｇＢｅｅ（登録商標）の場合、ＩＥＥＥ８０２．１５．４に対応した物理リンク制御を実行する。なお、本実施形態では、ＩｏＴ−ＧＷ１０２がメッシュネットワーク構成のＷＳＮ１０８に接続するものとしているがこれに限られるものではない。例えば、ＰＡＮ制御部４０８は、Ｂｌｕｅｔｏｏｔｈ（登録商標）による通信を採用することもでき、その場合、ＩｏＴ−ＧＷ１０２とセンサー装置がピアツーピア接続で通信する。
【００３１】
ＬＡＮ制御部４０７は、ＬＡＮ１０７に接続する通信インターフェースであり、有線ＬＡＮもしくは無線ＬＡＮの通信制御を実行する。ＩｏＴ−ＧＷ１０２が有線ＬＡＮで接続する形態の場合、ＬＡＮ制御部４０７には伝送メディアのＰＨＹ及びＭＡＣ（伝送メディア制御）ハードウェア回路が含まれる。例えば、接続する有線ＬＡＮがＥｔｈｅｒｎｅｔ(登録商標)である場合、ＬＡＮ制御部４０７はＥｔｈｅｒｎｅｔ（登録商標）のＮＩＣに相当する。また、ＩｏＴ−ＧＷ１０２が無線ＬＡＮで接続する形態の場合、ＬＡＮ制御部４０７は、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎ／ａｃ等の無線ＬＡＮ制御を実行するコントローラ、ＲＦ回路、アンテナを含む。
【００３２】
転送制御部４０５は、ＰＡＮ制御部４０８がＷＳＮ１０８から受信した無線ＰＡＮフレームを転送処理部４０６の処理対象とするかどうかを判定する。この判定は、無線ＰＡＮフレームが６ＬｏＷＰＡＮパケットを含むか否かを判定することを含む。転送制御部４０５は、この判定により６ＬｏＷＰＡＮパケットを持つと判定されたフレームを、無線ＰＡＮ規格のフレーム形式から、転送処理部４０６で処理が可能なＥｔｈｅｒｎｅｔフレーム形式に変換する。さらに、転送制御部４０５は、当該フレームのペイロードデータのパケット形式を、６ＬｏＷＰＡＮからＩＰｖ６へ変換する。これらの変換処理の後、転送制御部４０５は、当該フレームを転送処理部４０６に供給する。
【００３３】
転送処理部４０６は、フレーム転送処理を行う。転送対象フレームには、例えば、ＰＡＮ制御部４０８が受信して転送制御部４０５を介して入力されるフレーム、ＣＰＵ４０２が実行するＴＣＰ／ＩＰプロトコルスタックが送信するフレームが含まれる。転送処理部４０６は、入力されたフレームを解析し、該フレームの転送条件をチェックし、該フレームの転送に係る処理を実行する。また、転送処理部４０６は、該フレームの転送処理を実行するか否かの判定処理、該フレームからの情報取得処理を行う。転送処理部４０６は、ＬＡＮ１０７側に転送するフレームについては、そのヘッダ情報（例えばＥｔｈｅｒｎｅｔヘッダ及びＩＰｖ６ヘッダの各フィールド）を設定する。代表的には、該転送フレームのＩＰｖ６ヘッダ情報の宛先フィールドが設定される。
【００３４】
次に図５を用いて、ＩｏＴ−ＧＷ１０２が行う転送処理及び、機器管理サーバ１０１が行うセンサー装置１０３のＯＣＦ準拠のリソース管理処理とＯｐｅｎＦｌｏｗを用いた転送制御についての処理シーケンスを説明する。
【００３５】
機器管理サーバ１０１の転送制御管理部２０５は処理５０１において、センサー装置１０３から機器管理サーバ１０１へのパケットをセンサーデータ処理サーバ１１１へ転送するための転送規則となるフローエントリを生成する。フローエントリに含まれるマッチング規則には、例えば、宛先および送信元のＩＰアドレスの指定が用いられる。マッチング規則はこれに限られるものではなく、例えば、プロトコルやポート番号等の指定でもよいし、ＯｐｅｎＦｌｏｗプロトコルで指定可能な条件を組み合わせた指定でもよい。すなわち、マッチング規則は、センサー装置１０３からの通知パケットを適切にセンサーデータ処理サーバ１１１へ転送することを可能とする規則であればよい。また、転送規則となるフローエントリが存在しない場合、機器管理サーバ１０１は、パケットが示す宛先にそのまま当該パケットを転送するスイッチ動作をデフォルト動作とするテーブルミスフローエントリを生成する。なお、フローエントリが存在しない場合のデフォルト動作をスイッチ動作とするように構成したが、その都度、機器管理サーバ１０１へＯｐｅｎＦｌｏｗプロトコルを用いて問い合わせを行う方法であってもよい。また、それぞれ個別にフローエントリを生成して設定し、機器管理サーバ１０１からセンサー装置１０３へのパケットを中継するように転送規則を指定する構成としてもよい。
【００３６】
次に処理５０２において、機器管理サーバ１０１は生成したフローエントリ（転送規則）をＯｐｅｎＦｌｏｗプロトコルのＦｌｏｗ＿ｍｏｄメッセージを用いてＩｏＴ−ＧＷ１０２へ送信し、ＩｏＴ−ＧＷ１０２はこれを受信する。処理５０３においてＩｏＴ−ＧＷ１０２の転送制御部４０５は、機器管理サーバ１０１からＬＡＮ制御部２０７を介して受信したＯｐｅｎＦｌｏｗプロトコルのＦｌｏｗ＿ｍｏｄメッセージに示されたフローエントリをフローテーブルに設定する。その後、機器管理サーバ１０１の機器リソース管理部２０６は、処理５０４において、監視対象とするセンサー装置１０３を決定する。処理５０５において、機器管理サーバ１０１はＣｏＡＰによる監視要求パケットを送信し、ＩｏＴ−ＧＷ１０２がこれを受信する。本実施形態では、機器管理サーバ１０１はリソースに対してＣｏＡＰを用いた監視要求を行う。
【００３７】
ＩｏＴ−ＧＷ１０２の転送制御部４０５は、処理５０６において、機器管理サーバ１０１から監視要求パケットを受信すると、パケットデータの内容を解析する。転送制御部４０５は、解析の結果、監視要求パケットであることを検知すると、パケットの宛先、送信元のＩＰアドレス及び、監視要求の対象リソース情報を、監視要求に関する情報としてＲＡＭ４０３に記憶する。転送制御部４０５は、フローテーブルを参照して機器管理サーバ１０１からセンサー装置１０３へのパケットの転送規則を検索する。検索の結果、該当するフローエントリがフローテーブルに存在していないことが検知され、転送制御部４０５は、デフォルト動作に指定されたスイッチ動作を行い、パケットに指定された宛先へ当該パケット（監視要求）を中継する。転送制御部４０５は、監視要求パケットをセンサー装置１０３が受信可能なセンサーネットワークのフレームに変換し、処理５０７において、これをセンサー装置１０３へ転送し、センサー装置１０３はこれを受信する。
【００３８】
処理５０８において、センサー装置１０３のＭＣＵ３０１は、受信した監視要求を基にセンサー装置１０３が持つリソースを機器管理サーバ１０１の監視状態（Ｏｂｓｅｒｖｅｄ）に移行する。そして、ＭＣＵ３０１は、監視要求パケットを受信したことを通知するため、処理５０９において通知パケットを返信し、ＩｏＴ−ＧＷ１０２はこれを受信する。こうして、データ取得のための要求である監視要求の宛先のリソース（本例ではセンサー装置１０３）からのパケットの受信が開始する。なおこの返信パケットには、リソースのデータであるセンサーデータ値、及び、その鮮度、すなわちリソースのデータの有効期限であるＭａｘ−ａｇｅが含まれる。
【００３９】
処理５１０において、ＩｏＴ−ＧＷ１０２の転送制御部４０５は、センサー装置１０３から受信した通知パケットをＬＡＮ１０７に転送可能な形式に変換し、処理５０３で受信した転送規則に従って、これをセンサーデータ処理サーバ１１１へ転送する。また、処理５１０において、ＩｏＴ−ＧＷ１０２は、受信されたパケットが、監視要求に関連したパケットであり、その監視要求の送信元（機器管理サーバ１０１）に送信すべきパケットであるか否かを判定する。例えば、受信されたパケットが、監視要求に応答してリソース（センサー装置１０３）が最初に送信した最初のパケットであると判定された場合に、その受信されたパケットは、監視要求の送信元へ送信すべきパケットと判定される。第１実施形態では、受信した通知パケットに対応する監視要求に関する情報がＲＡＭ４０３に記憶されているか否かに基づいて機器管理サーバ１０１へも当該通知パケットを転送るか否かが判定される。処理５１０において、転送制御部４０５は、受信した通知パケットに対応する監視要求に関する情報がＲＡＭ４０３に記憶されている場合に、その通知を機器管理サーバ１０１にも転送し、監視要求に関する情報をＲＡＭ４０３から削除する。なお、処理５１０における機器管理サーバ１０１への通知パケットの転送は、機器管理サーバ１０１へＭａｘ−ａｇｅを通知することが目的である。したがって、処理５１０において、受信したパケットをそのまま機器管理サーバ１０１へ転送しているがこれに限られるものではない。監視要求の送信元へ送信すべきケットであると判定された場合に、受信されたパケットのＭａｘ−ａｇｅ（有効期限）の情報を少なくとも含むパケットが機器管理サーバ１０１へ送信されればよい。
【００４０】
処理５１１において通知パケットがＩｏＴ−ＧＷ１０２から機器管理サーバ１０１へ転送される。処理５１２において機器管理サーバ１０１の機器リソース管理部２０６は、通知パケットからＭａｘ−ａｇｅを取得し、リソースの有効期限を管理する。また、処理５１３において、転送規則に従って、通知パケットがＩｏＴ−ＧＷ１０２からセンサーデータ処理サーバ１１１へ転送される。処理５１３、５１８、５２９で示される通知パケットの転送は、転送規則に従うことにより、受信されたパケットが示す第１の宛先（機器管理サーバ１０１）とは異なる第２の宛先（センサーデータ処理サーバ１１１）へ受信されたパケットを送信する動作である。処理５１４において、センサーデータ処理サーバ１１１は、転送されたセンサーデータの処理を行う。なお、センサーデータ処理サーバ１１１が、さらに別のサーバへセンサーデータを転送するように構成されてもよい。例えば、センサーデータ処理サーバ１１１でセンサーデータのクレンジング等の一時加工を行った後にこれを別のサーバへ転送し、当該別のサーバでさらにセンサーデータを処理するといった構成であってもよい。
【００４１】
その後、処理５１５において、センサー装置１０３は、監視対象のリソースのセンサー値の変化を検知し、監視要求を行った機器管理サーバ１０１を宛先として、通知パケットを送信する。なおこの通知パケットにはセンサーデータ値及び、リソースの鮮度、すなわちリソースのデータの有効期限であるＭａｘ−ａｇｅが含まれる。処理５１６において、センサー装置１０３からＩｏＴ−ＧＷ１０２へ通知パケットが送信される。
【００４２】
処理５１７において、ＩｏＴ−ＧＷ１０２の転送制御部４０５は、監視状態にあるセンサー装置１０３から受信した通知パケットの転送処理を行う。すなわち、転送制御部４０５は、フローエントリ（転送規則）において指定されている宛先へ通知パケットを転送する。このとき、ＩｏＴ−ＧＷ１０２のＲＡＭ４０３には監視要求を中継した際に記憶した、監視要求に関する情報が保持されていないため、機器管理サーバ１０１への通知パケットの転送は行われない。処理５１８おいて、通知パケットがＩｏＴ−ＧＷ１０２からセンサーデータ処理サーバ１１１へ転送される。処理５１９において、処理５１４と同様に、センサーデータ処理サーバ１１１は、センサーデータの処理を行う。
【００４３】
処理５２０において、機器管理サーバ１０１の機器リソース管理部２０６は処理５１２で取得したＭａｘ−ａｇｅ時間が経過したことを検知すると、監視対象のリソースの再監視要求を行うため、監視要求パケットを送信する。処理５２１において、監視要求パケットが機器管理サーバ１０１からＩｏＴ−ＧＷ１０２へ送信される。処理５２２において、処理５０６と同様に、ＩｏＴ−ＧＷ１０２の転送制御部４０５は、監視要求パケットをセンサー装置１０３へ中継し、監視要求に関する情報をＲＡＭ４０３に保持する。処理５２３において、監視要求パケットがＩｏＴ−ＧＷ１０２からセンサー装置１０３へ転送される。
【００４４】
処理５２４において、センサー装置１０３は受信した監視要求パケットを基にセンサー装置１０３が持つリソースの監視状態（Ｏｂｓｅｒｖｅｄ）を継続する。なお、処理５１５から処理５２４の間にセンサー装置１０３がリセットされる等してリソースの監視（Ｏｂｓｅｒｖｅｄ）状態を失っていた場合は、センサー装置１０３は、処理５０８と同様にして、監視状態（Ｏｂｓｅｒｖｅｄ）に移行する。そして、センサー装置１０３は、監視要求パケットを受信したことを通知するため、通知パケットを返信する。なおこの返信パケットはセンサーデータ値及び、リソースの鮮度、すなわちリソースのデータの有効期限であるＭａｘ−ａｇｅを含む。処理５２５において、通知パケットがセンサー装置１０３からＩｏＴ−ＧＷ１０２へ送信される。
【００４５】
ＩｏＴ−ＧＷ１０２において、ＲＡＭ４０３には監視要求に関する情報が保持されている。したがって、ＩｏＴ−ＧＷ１０２は、処理５２６において、受信したセンサー装置１０３からのパケットを、機器管理サーバ１０１とセンサーデータ処理サーバ１１１へ転送する転送処理を行い、ＲＡＭ４０３から監視要求に関する情報を削除する。この処理は、処理５１０と同様である。処理５２７において通知パケットがＩｏＴ−ＧＷ１０２から機器管理サーバ１０１へ転送される。そして処理５２８において、機器管理サーバ１０１の機器リソース管理部２０６は、受信した通知パケットからＭａｘ−ａｇｅを取得し、リソースの有効期限を更新する。また、処理５２９において、通知パケットがＩｏＴ−ＧＷ１０２からセンサーデータ処理サーバ１１１へ転送される。処理５３０において、センサーデータ処理サーバ１１１は、センサーデータの処理を行う。
【００４６】
ＩｏＴ−ＧＷ１０２の転送処理について図６のフローチャートを用いて説明する。なお、図６に示す転送処理は、上述した処理５０６、処理５１０、処理５１７、処理５２２、処理５２６に対応する処理である。
【００４７】
ステップＳ６０１において、転送制御部４０５は、ＬＡＮ制御部４０７またはＰＡＮ制御部４０８を介して、中継の対象であるパケットを受信する。ステップＳ６０２において、転送制御部４０５は、ステップＳ６０１で受信したパケットを解析し、監視要求パケットであるか否かを判定する。監視要求パケットであると判定された場合、処理はステップＳ６０８へ進み、監視要求パケットではないと判定された場合、処理はステップＳ６０３へ進む。
【００４８】
ステップＳ６０８において、監視要求パケットから宛先、送信元のＩＰアドレス及び監視対象のリソース情報を取得して、監視要求に関する情報としてＲＡＭ４０３に記憶する。すでに監視要求リソースの宛先、送信元ＩＰアドレス及びリソース情報が記憶されている場合は、これらを上書きしてもよいし、ステップＳ６０８の処理をスキップしてもよい。上書きもしくはスキップは、例えば、パケットのロストなど応答がない場合に機器管理サーバ１０１からＣｏＡＰプロトコルを用いて再送制御が行われた場合に発生する処理である。なお、図示していないが、監視要求を送信した後、センサー装置１０３から一定の時間経過しても通知パケットの返信がない場合は、記憶した監視要求に関する情報（リソースに関する情報）を破棄するようにしてもよい。これにより、センサー装置または通信路で通信ができない状態が発生した場合において、監視要求に関する情報を記憶し続けることによるメモリ資源の圧迫を防ぐことが可能となる。
【００４９】
ステップＳ６０３において、転送制御部４０５は、ステップＳ６０１で受信したパケットが通知パケットであるか否かを判定する。通知パケットであると判定された場合、処理はステップＳ６０４へ進み、通知パケットでないと判定された場合、処理はステップＳ６０９へ進む。
【００５０】
ステップＳ６０４において、転送制御部４０５は、通知パケットに対応する監視要求に関する情報がＲＡＭ４０３に記憶されているかを確認する。なお、上述したように、監視要求に関する情報はステップＳ６０８で記憶されている。これにより、転送制御部４０５は、受信した通知パケットが、監視要求に対する最初の返信であるか、リソースの状態変化を検知してセンサー装置１０３から自律的に送信された通知であるかを検知する。対応する監視要求に関する情報がＲＡＭ４０３に記憶されている場合、通知パケットはセンサー装置１０３から監視要求に応じて返信された最初の通知であると判定され、処理はステップＳ６０５へ進む。他方、対応する監視要求に関連する情報がＲＡＭ４０３に記憶されていない場合、通知パケットは自律的に送信された通知であると判定され、処理はステップＳ６０９へ進む。
【００５１】
ステップＳ６０５において、転送制御部４０５は、受信した通知パケットに対する転送規則を確認する。具体的には、転送制御部４０５は、フローテーブルを参照し、受信したパケットに該当するマッチング規則であるフローエントリを検索する。該当するフローエントリが検索されると、転送制御部４０５は、そのアクションリストを適用した場合に、受信した通知パケットの宛先が変更されるか否かを確認する。アクションリスト（転送規則）の適用によりパケットの宛先が変更になる場合、処理はステップＳ６０６へ進む。他方、フローエントリが存在しない、またはフローエントリは存在するが受信したパケットに指定されている宛先にパケットが転送される場合（アクションリストの適用によりパケットの宛先が変更されない場合）、処理はステップＳ６０７へ進む。ただし、対応するフローエントリのアクションリストに指定されたアクションが、「パケットに指定された宛先及び、パケットを複製して他の宛先へ転送する」という場合は、処理はステップＳ６０７へ進む。すなわち、受信したパケットに指定されている宛先へパケットを中継するか否かで処理が切り替わる。受信したパケットに指定されている宛先へパケットを中継しない場合には、処理はステップＳ６０６へ進む。
【００５２】
ステップＳ６０６において、受信したパケットを複製してパケットに指定された宛先へ送信する。この処理はフローテーブルに指定された転送規則とは別に行われる処理である。これにより、受信した通知パケットをセンサーデータ処理サーバ１１１へ宛先を変更して転送する転送規則が設定されていた場合においても、ＩｏＴ−ＧＷ１０２の判断で機器管理サーバ１０１へ通知パケットを転送することが可能となる。そのため、機器管理サーバ１０１は、リソースの鮮度、すなわちリソースのデータの有効期限であるＭａｘ−ａｇｅを受信することが可能となり、適切にセンサーリソースのＭａｘ−ａｇｅを管理することができる。
【００５３】
ステップＳ６０７において、ＲＡＭ４０３に記憶している監視要求に関する情報を削除する。すなわち、監視要求パケットを中継した際にステップＳ６０８でＲＡＭ４０３に記憶した、宛先、送信元ＩＰアドレス及び監視対象のリソース情報を削除する。これにより、ＩｏＴ−ＧＷ１０２は、センサー装置１０３から続けて通知パケットを受信したとしても、ステップＳ６０４でＮＯ判定となるため、機器管理サーバ１０１への転送処理を行わない。結果、ＩｏＴ−ＧＷ１０２は、適切なタイミング、つまり監視要求パケットを中継した直後のみ、通知パケットを複製して機器管理サーバ１０１へ転送することが可能となる。適切なタイミングのみにおいて通知パケットを機器管理サーバ１０１へ転送することで、機器管理サーバ１０１が受信するパケットを削減することが可能となり、機器管理サーバ１０１の処理負荷を低減することが可能となる。
【００５４】
ステップＳ６０９において、転送制御部４０５は、フローテーブルを参照して受信したパケットの転送規則を検索する。検索の結果、該当するフローエントリが存在する場合、転送制御部４０５は、アクションリストに指定された処理を受信パケットに適用する。そして、ステップＳ６１０において、転送処理部４０６はパケットの宛先にパケットを転送する。またフローエントリが存在しない場合、転送処理部４０６は、デフォルト動作に指定されているスイッチ動作により、パケットに指定された宛先にパケットを転送する。なお、ステップＳ６０５を経由してステップＳ６０９の処理を行った場合、ステップＳ６０５で検索した結果をキャッシュや別途メモリに格納する等してフローエントリを検索する処理をスキップしてもよい。そうすることで検索処理を１回行えばよくなり、処理負荷を軽減することが可能である。
【００５５】
図５に示したＩｏＴ−ＧＷ１０２の処理５０６、５１０、５１７、５２２、５２６との対応は次のようになる。すなわち、処理５０６と５２２は、Ｓ６０１→Ｓ６０２（ＹＥＳ）→Ｓ６０８〜Ｓ６１０に対応する。処理５１０と５２６は、Ｓ６０１→Ｓ６０２（ＮＯ）→Ｓ６０３（ＹＥＳ）→Ｓ６０４（ＹＥＳ）→Ｓ６０５（ＹＥＳ）→Ｓ６０６〜Ｓ６０７、Ｓ６−９〜Ｓ６１０に対応する。処理５１７は、Ｓ６０１→Ｓ６０２（ＮＯ）→Ｓ６０３（ＹＥＳ）→Ｓ６０４（ＮＯ）→Ｓ６０９〜Ｓ６１０に対応する。
【００５６】
以上のように、ＩｏＴ−ＧＷ１０２は、受信したパケットの転送処理を行い、リソースからのセンサーデータとＭａｘ−ａｇｅを含む通知パケットを機器管理サーバ１０１へ転送するか否かを判断する。そして、転送規則に限定されず、機器管理サーバ１０１への転送が必要と判断された場合、ＩｏＴ−ＧＷ１０２は、機器管理サーバ１０１へ通知パケットを転送する。これによって、適切なタイミングで必要に応じて機器管理サーバ１０１にセンサーリソースのＭａｘ−ａｇｅを通知することができる。
【００５７】
また、第１実施形態では、監視要求パケットの宛先、送信元ＩＰアドレス及びリソース情報を記憶することにより、それの応答である通知パケットであるか否かの判断を行ったが、これに限られるものではない。例えば、監視要求パケット及び通知パケットに含まれるＵＲＩ情報など、監視要求に対応する通知であることを識別できる情報であれば、いかなる情報が用いられてもよい。なお、ＵＲＩとは、Uniform Resource Locatorである。
【００５８】
以上の処理により、センサー装置１０３のセンサーリソースがリセットされて監視（Ｏｂｓｅｒｖｅｄ）状態を失った場合、再度監視状態（Ｏｂｓｅｒｖｅｄ）とすることが可能である。また、監視状態（Ｏｂｓｅｒｖｅｄ）を失っていない場合は、監視状態を継続することができる。また、ＩｏＴ−ＧＷ１０２の制御により、監視要求パケットの中継をした直後のみ、通知パケットが複製され機器管理サーバ１０１へ転送される。ＩｏＴ−ＧＷ１０２の判断により適切なタイミングで機器管理サーバ１０１へも通知パケットを転送可能となり、機器管理サーバ１０１がＭａｘ−ａｇｅを取得可能となる。このように、ＩｏＴ−ＧＷ１０２が、転送規則に限定されず、必要に応じて、機器管理サーバ１０１へＭａｘ−ａｇｅを通知することで、機器管理サーバ１０１の処理負荷の削減、ひいてはネットワークトラフィックの削減が可能となる。
【００５９】
また、本実施形態では監視要求を中継したパケットの宛先、送信元ＩＰアドレス及びリソース情報を記憶し、その記憶情報が存在する場合に、転送規則に限定されず、通知パケットの機器管理サーバ１０１への転送が必要であると判断する制御を行った。しかし別途タイマー等を設けて、監視要求の送信後の所定時間内に限り、転送規則に限定されず、転送制御を行うようにしてもよい。また、本実施形態では、監視要求に関する情報をＲＡＭ４０３に記憶するようにしたが、これに限られるものではない。例えば、ＣＰＵ４０２のキャッシュ等を用いて、監視要求に関する情報の保持を行う構成としてもよい。
【００６０】
また本実施形態では、監視要求パケットに含まれる宛先、送信元ＩＰアドレス及びリソース情報を用いて、監視要求パケットとそれに対応する通知パケットのマッチングを行ったがこれに限られるものではない。ＲＡＭ４０３に保持される監視要求に関する情報は、監視要求パケットと通知パケットを一意にマッチング可能な情報であればよい。またリソース情報またはセンサー情報と記載した情報はセンサーリソースの種別やセンサーリソースのＵＲＩ等の情報を想定するが、監視要求パケット及び通知パケットから取得可能な情報であればよい。またセンサー装置１０３のセンサーリソースが他のセンサー装置のセンサーリソースと識別可能な情報であればよい。また別途規定するパケットデータ内の情報であってもよい。
【００６１】
＜第２実施形態＞
第１実施形態では、機器管理サーバ１０１からの監視要求を中継する際に、その情報を取得して保持し、監視要求を中継した後に最初に受信した当該監視要求に対応する通知パケットを、センサーデータ処理サーバ１１１と機器管理サーバ１０１へ転送する。この方法によれば、監視要求を再度送信するタイミングを機器管理サーバが検知することができ、監視状態を継続しつつ、ネットワークトラフィックを減らすことができる。第２実施形態では、機器管理サーバ１０１へ転送した通知パケットに関する情報を、その有効期限（Ｍａｘ−ａｇｅ）にわたって保持することにより、通知パケットの機器管理サーバ１０１への転送タイミングを判定する。
【００６２】
以下、第２実施形態について、図面を参照して説明する。なお、以下の実施形態で説明する特徴の組み合わせの全てが本発明に必須のものとは限らない。
【００６３】
図７は第２実施形態による情報処理システム７００の構成例を示す図である。第２実施形態の情報処理システム７００では、第１実施形態（図１）における機器管理サーバ１０１の機能が、機器管理サーバ７０１と転送制御管理装置７１２に分割された構成となっている。その他の構成は情報処理システム１００の構成と同様である。機器管理サーバ７０１は、情報処理システムを構成する各機器やセンサー装置について、システムへの接続および設定や状態の管理を行う。また、転送制御管理装置７１２はＩｏＴ−ＧＷ１０２の転送規則を制御する制御装置（ＯｐｅｎＦｌｏｗコントローラ）の機能を有する。
【００６４】
機器管理サーバ７０１はフローエントリと呼ばれる転送規則をＩｏＴ−ＧＷ１０２に送信する。フローエントリを受信したＩｏＴ−ＧＷ１０２はそれをフローテーブルに格納し、これを参照することでデータの転送処理を行う。フローエントリは第１実施形態で説明したとおりである。なお、第２実施形態では転送制御管理装置７１２がＯｐｅｎＦｌｏｗコントローラの機能を有する構成としたが、ＬＡＮ１０７に接続する別の機器がＯｐｅｎＦｌｏｗコントローラの機能を有してもよい。また、ＯｐｅｎＦｌｏｗスイッチの機能を有するＩｏＴ−ＧＷ１０２、ＬＡＮ１０７に接続される別の機器、または図１に示した機器管理サーバ１０１がＯｐｅｎＦｌｏｗコントローラの機能を有してもよい。すなわち、第２実施形態の機器管理サーバ７０１と転送制御管理装置７１２は第１実施形態の機器管理サーバ１０１により置き換えられてもよい。同様に、第１実施形態の機器管理サーバ１０１が、機器管理サーバ７０１と転送制御管理装置７１２で置き換えられてもよい。
【００６５】
情報処理システム７００において、機器管理サーバ７０１は、センサー装置１０３〜１０６やＩｏＴ−ＧＷ１０２などの機器、およびそれらの持つセンサーなどをＯＣＦ技術におけるリソースとして管理する。即ち、機器管理サーバ７０１はＯＣＦ技術を用いたデバイス探索を実施することで、センサー装置１０３〜１０６やＩｏＴ−ＧＷ１０２を探索する。さらに、機器管理サーバ７０１は、探索したデバイスの持つリソースに対して監視要求を行い、当該リソースに対して登録、取得、更新、削除、監視の要求パケットを送信する。これにより、機器管理サーバ７０１は、センサー装置１０３〜１０６やＩｏＴ−ＧＷ１０２の持つリソース情報を取得したり、振る舞いを制御したりすることができる。
【００６６】
センサー装置１０３〜１０６、ＩｏＴ−ＧＷ１０２のハードウェア構成は、第１実施形態（図３、図４）と同様である。機器管理サーバ７０１のハードウェア構成は図２に示した機器管理サーバ１０１の構成から転送制御管理部２０５を除いた構成である。また転送制御管理装置７１２のハードウェア構成は、図２に示した機器管理サーバ１０１の構成から機器リソース管理部２０６を除いた構成である。
【００６７】
次に、図８を用いて、ＩｏＴ−ＧＷ１０２が行う転送処理及び、機器管理サーバ７０１が行うセンサー装置１０３のＯＣＦ準拠のリソース管理処理及び、転送制御管理装置７１２が行うＯｐｅｎＦｌｏｗを用いた転送制御についての処理シーケンスを説明する。
【００６８】
処理８０１，８０２，８０３は、転送制御管理装置７１２が転送規則をＩｏＴ−ＧＷ１０２に提供する点を除いて第１実施形態（図５）の処理５０１，５０２，５０３と同様である。機器管理サーバ７０１（機器リソース管理部２０６）は、処理８０４において監視対象とするセンサー装置１０３を決定し、処理８０５において監視要求パケットを送信する。これにより、機器管理サーバ７０１は、リソースに対してＣｏＡＰを用いて、監視要求を行う。
【００６９】
次に、処理８０６において、ＩｏＴ−ＧＷ１０２の転送制御部４０５は、機器管理サーバ７０１から監視要求パケットを受信すると、フローテーブルを参照して機器管理サーバ７０１からセンサー装置１０３へのパケットの転送規則を検索する。転送制御部４０５は、検索の結果、該当するフローエントリがフローテーブルに存在していないことを検知し、デフォルト動作に指定されたスイッチ動作を行い、パケットに指定された宛先へ監視要求パケットを中継する。処理８０７において、監視要求パケットがＩｏＴ−ＧＷ１０２からセンサー装置１０３へ転送される。この際、転送制御部４０５は、監視要求パケットをセンサー装置１０３が受信可能なセンサーネットワークのフレームに変換する。
【００７０】
処理８０８において、センサー装置１０３のＭＣＵ３０１は受信した監視要求を基にセンサー装置１０３が持つリソースを機器管理サーバ７０１の監視状態（Ｏｂｓｅｒｖｅｄ）に移行する。そして、ＭＣＵ３０１は、監視要求パケットを受信したことを通知するため、通知パケットを返信する。処理８０９において、通知パケットはセンサー装置１０３からＩｏＴ−ＧＷ１０２へ送信される。なおこの通知パケットは、第１実施形態と同様に、センサーデータ値及び、リソースの鮮度、すなわちリソースのデータの有効期限であるＭａｘ−ａｇｅを含む。
【００７１】
次に、処理８１０において、転送制御部４０５は、センサー装置１０３から受信した通知パケットから宛先および送信元ＩＰアドレス、センサー情報、有効期限を示すＭａｘ−ａｇｅを取得し、ＲＡＭ４０３内のセンサー情報管理テーブルに保持する。そして、転送制御部４０５は、受信した通知パケットをＬＡＮ１０７に転送可能な形式に変換し、機器管理サーバ７０１とセンサーデータ処理サーバ１１１に転送する。こうして、センサー情報管理テーブルには、監視要求に関連して最初に受信した通知パケット、すなわち、センサー装置１０３から受信され、機器管理サーバ７０１に転送された通知パケットに関する情報（以下、エントリ）が記録される。
【００７２】
処理８１１において、通知パケットがＩｏＴ−ＧＷ１０２から機器管理サーバ７０１へ転送される。処理８１２において機器管理サーバ７０１は通知パケットからＭａｘ−ａｇｅを取得し、リソースの有効期限を管理する。また、処理８１３において、通知パケットがＩｏＴ−ＧＷ１０２からセンサーデータ処理サーバ１１１へ転送される。処理８１４において、センサーデータ処理サーバ１１１は、受信した通知パケットに含まれるセンサーデータの処理を行う。なお、センサーデータ処理サーバ１１１が、さらに別のサーバへセンサーデータを転送する構成であってもよい。例えば、センサーデータ処理サーバ１１１がセンサーデータのクレンジング等の一時加工を行った後にこれを別のサーバへ転送し、当該別のサーバでさらにセンサーデータを処理するといった構成であってもよい。
【００７３】
処理８１５、処理８１６は第１実施形態の処理５１５，５１６と同様である。ただし、通知パケットの宛先は、機器管理サーバ７０１である。処理８１７において、ＩｏＴ−ＧＷ１０２は受信した通知パケットの転送処理を行う。このとき、ＩｏＴ−ＧＷ１０２のセンサー情報テーブルには、処理８１０で受信した通知パケットから取得したＭａｘ−ａｇｅやセンサー情報を含むエントリが保持されている。受信した通知パケットに対応するエントリが保持されている場合、転送制御部４０５は、フローエントリに指定された宛先へ通知パケットの転送処理を行う。結果、処理８１８おいて、通知パケットがＩｏＴ−ＧＷ１０２からセンサーデータ処理サーバ１１１へ転送される。処理８１９において、処理８１４と同様に、センサーデータ処理サーバ１１１は、センサーデータの処理を行う。
【００７４】
処理８２０において、ＩｏＴ−ＧＷ１０２は処理８１０で通知パケットから取得したＭａｘ−ａｇｅ時間が経過したことを検知すると、センサー情報管理テーブルから、対応するエントリを削除する。なお、本実施形態ではエントリを削除するようにしたが、エントリを削除せずＭａｘ−ａｇｅが切れていることを示す情報を記録するようにしてもよい。その場合、新たに通知パケットを受信した時点で、該当するエントリのＭａｘ−ａｇｅが新たに取得されたＭａｘ−ａｇｅで更新される。
【００７５】
処理８２１において、機器管理サーバ７０１は処理８１２で取得したＭａｘ−ａｇｅ（エントリに含まれているＭａｘ−ａｇｅ）が経過したことを検知すると、監視対象のリソースの再監視要求を行うため、監視要求パケットを送信する。処理８２２において、監視要求パケットが機器管理サーバ７０１からＩｏＴ−ＧＷ１０２へ送信される。処理８２３において、ＩｏＴ−ＧＷ１０２の転送制御部４０５は、監視要求パケットをセンサー装置１０３へ中継する。処理８２４において、監視要求パケットが、ＩｏＴ−ＧＷ１０２からセンサー装置１０３へ転送される。
【００７６】
処理８２５において、センサー装置１０３は受信した監視要求パケットを基にセンサー装置１０３が持つリソースの監視状態（Ｏｂｓｅｒｖｅｄ）を継続する。なお、処理８１５から処理８２５の間にセンサー装置１０３がリセットされる等してリソースの監視（Ｏｂｓｅｒｖｅｄ）状態を失っていた場合は、処理８２５において、センサー装置１０３は、処理８０８と同様にして、監視状態（Ｏｂｓｅｒｖｅｄ）に移行する。そして、センサー装置１０３は、監視要求パケットを受信したことを通知するために通知パケットを返信する。なおこの返信パケットは、センサーデータ値、リソースの鮮度すなわちリソースのデータの有効期限であるＭａｘ−ａｇｅを含む。
【００７７】
処理８２６において、通知パケットがセンサー装置１０３からＩｏＴ−ＧＷ１０２へ送信される。処理８２７において、ＩｏＴ−ＧＷ１０２は処理８１０と同様の転送処理を行う。すなわち、この時点で、ＩｏＴ−ＧＷ１０２では、処理８２０においてセンサー情報管理テーブルから当該通知パケットより取得した情報のエントリが削除されている（処理８２０）。したがって、転送制御部４０５は、受信した通知パケットに対応するエントリがセンサー情報管理テーブルに存在せず、新規にエントリが追加されると判断して、当該通知パケットを機器管理サーバ７０１とセンサーデータ処理サーバ１１１に転送する。
【００７８】
処理８２８〜８３１は、処理８１１~８１４と同様である。すなわち、処理８２８において、通知パケットがＩｏＴ−ＧＷ１０２から機器管理サーバ７０１へ転送される。処理８２９において機器管理サーバ７０１は通知パケットからＭａｘ−ａｇｅを取得し、リソースの有効期限を更新する。処理８３０において、通知パケットがＩｏＴ−ＧＷ１０２からセンサーデータ処理サーバ１１１へ転送される。処理８３１において、センサーデータ処理サーバ１１１は、センサーデータの処理を行う。以上の処理により、センサー装置１０３のセンサーリソースがリセットされて監視（Ｏｂｓｅｒｖｅｄ）状態を失った場合、再度監視状態（Ｏｂｓｅｒｖｅｄ）とすることが可能である。また、監視状態（Ｏｂｓｅｒｖｅｄ）を失っていない場合は、監視状態が継続される。
【００７９】
次に、第２実施形態におけるＩｏＴ−ＧＷ１０２の転送処理について図９のフローチャートを用いて説明する。なお、図９に示す転送処理は、処理８０６、処理８１０、処理８１７、処理８２３、処理８２７に対応する処理である。
【００８０】
ステップＳ９０１において、転送制御部４０５は、ＬＡＮ制御部４０７またはＰＡＮ制御部４０８を介して、中継の対象であるパケットを受信する。ステップＳ９０２において、ステップＳ９０１において、転送制御部４０５は、ステップＳ９０１で受信したパケットを解析し、通知パケットであるか否かを判定する。通知パケットであると判定された場合、処理はステップＳ９０３へ進み、通知パケットではないと判定された場合、処理はステップＳ９０７へ進む。
【００８１】
ステップＳ９０３において、転送制御部４０５は、受信した通知パケットに対応するエントリがセンサー情報管理テーブルに存在するかを判定する。すなわち、転送制御部４０５は、通知パケットから宛先、送信元ＩＰアドレス及びセンサー情報、Ｍａｘ−ａｇｅを取得する。そして、転送制御部４０５は、ＲＡＭ４０３に構成されているセンサー情報管理テーブルを参照し、通知パケットと同一の宛先、送信元ＩＰアドレス、センサー情報のＭａｘ−ａｇｅを保持しているかを検索する。センサー情報管理テーブルに一致するテーブルエントリが存在する場合、処理はステップＳ９０７へ進み、存在しない場合、処理はステップＳ９０４へ進む。センサー情報管理テーブルにテーブルエントリが存在している場合は、機器管理サーバ７０１においてもＭａｘ−ａｇｅを保持していると判断することができる。この場合、転送制御部４０５は、センサー装置１０３が自律的にセンサーリソースの値の変化を検知して送信した通知パケットであるとして処理を行う。すなわち、ステップＳ９０７、Ｓ９０８が実行されて、転送制御部４０５は、転送規則に従って当該通知パケットを転送する（本例では、通知パケットがセンサーデータ処理サーバ１１１に転送される）。
【００８２】
ステップＳ９０４において、転送制御部４０５は、受信した通知パケットに対する転送規則を確認する。具体的には、フローテーブルを参照し受信したパケットに該当するマッチング規則であるフローエントリを検索する。該当するフローエントリが検索されると、転送制御部４０５は、そのアクションリストを適用した場合に受信した通知パケットの宛先が変更されるか否かを確認する。通知パケットの宛先が変更される場合、処理はステップＳ９０５へ進む。例えば、本実施形態では、センサー装置１０３から通知パケットを受信した場合、センサーデータ処理サーバ１１１に転送されるべく宛先が変更されるので、処理はステップＳ９０５ヘ進む。該当するフローエントリが存在しない、またはフローエントリは存在するが受信したパケットに指定されている宛先にパケットが転送される場合、処理はステップＳ９０７へ進む。ステップＳ９０４は、第１実施形態のステップＳ６０５と同様の処理である。
【００８３】
ステップＳ９０５において、転送制御部４０５は、通知パケットの宛先、送信元ＩＰアドレス及びセンサー種別やＵＲＩ等のセンサーリソース情報、Ｍａｘ−ａｇｅを取得し、センサー情報管理テーブルにエントリを追加する。なお、転送制御部４０５は、図８の処理８２０で説明したように、記憶したＭａｘ−ａｇｅによって示される有効期限が経過すると、センサー情報管理テーブルから当該エントリを削除する。
【００８４】
ステップＳ９０６において、転送制御部４０５は、受信した通知パケットを複製して、当該通知パケットに指定されている宛先へこれを送信する。この処理はフローテーブルに指定された転送規則とは別に行われる。これにより、受信した通知パケットをセンサーデータ処理サーバ１１１へ宛先を変更して転送するように転送規則が設定されていた場合であっても、ＩｏＴ−ＧＷ１０２の判断で機器管理サーバ７０１へ通知パケットを転送することが可能となる。そのため、リソースの鮮度、すなわちリソースのデータの有効期限であるＭａｘ−ａｇｅを機器管理サーバ７０１が受信可能となり、適切にセンサーリソースのＭａｘ−ａｇｅを通知することができる。
【００８５】
ステップＳ９０７〜Ｓ９０８は第１実施形態（図６）のステップＳ６０９〜Ｓ６１０と同様である。また、第１実施形態でも説明したように、ステップＳ９０４を経由してステップＳ９０７の処理を行った場合、ステップＳ９０４で検索した結果をキャッシュや別途メモリに格納する等して検索処理をスキップしてもよい。
【００８６】
以上のように、転送制御部４０５は、受信したパケットの転送処理を行う際に、リソースからのセンサーデータおよび、Ｍａｘ−ａｇｅを機器管理サーバ７０１へ転送するか否かを判断する。つまりセンサー情報管理テーブルにエントリが新たに追加された場合には、転送規則に限定されず、機器管理サーバ７０１へ通知パケットが転送される。これによって、適切なタイミングで必要に応じて機器管理サーバ７０１にセンサーリソースのＭａｘ−ａｇｅを通知することができる。
【００８７】
なお、第２実施形態では通知パケットの宛先、送信元ＩＰアドレス及びリソース情報、Ｍａｘ−ａｇｅをセンサー情報管理テーブルに記憶しているか否かにより、機器管理サーバ１０１への転送を行うか否かを判断した。センサー情報管理テーブルに保持される情報は、上記例に限られず、監視要求に対する通知パケットか否かが一意に識別できる情報であればよい。例えば通知パケットに含まれるＵＲＩ情報のみで、同一の監視要求に対応する通知パケットか否か否かをＵＲＩ情報によって一意に識別可能な場合、ＵＲＩ情報とＭａｘ−ａｇｅのみを保持するようにしてもよい。なお、ＵＲＩとは、Uniform Resource Locatorである。
【００８８】
以上の処理によりＩｏＴ−ＧＷ１０２の制御により、通知パケットから取得したＭａｘ−ａｇｅを管理し、新規に管理に追加した場合のみ、通知パケットが複製されて機器管理サーバへ転送される。また、有効期限（Ｍａｘ−ａｇｅ）が切れたタイミングで、センサー情報管理テーブルで管理されているエントリが削除される。管理しているセンサー情報の有効期限が切れていない場合は転送規則に従った転送のみが行われる。これにより、ＩｏＴ−ＧＷ１０２の判断により適切なタイミングで機器管理サーバ７０１へも通知パケットを転送することができ、機器管理サーバ７０１がＭａｘ−ａｇｅを取得可能となる。このようにしてＩｏＴ−ＧＷ１０２の判断により、転送規則に限定されず、必要に応じて、機器管理サーバ７０１へＭａｘ−ａｇｅを通知することで、機器管理サーバ７０１の処理負荷の削減、しいてはネットワークトラフィックを削減することが可能となる。
【００８９】
この方法によれば、ＩｏＴ−ＧＷ１０２がパケットを中継、転送を行うにあたり、通知パケットであった場合にのみ、パケットの詳細解析が必要になるため、第一実施形態に示した方法に比べてＩｏＴ−ＧＷの処理負荷を軽減することが可能となる。
【００９０】
＜第３実施形態＞
第２実施形態では、センサー装置１０３からの通知パケットを機器管理サーバ７０１へ転送する際に、その情報及びＭａｘ−ａｇｅを取得し保持した。そして新規に情報を保持した場合に受信した通知パケットを、センサーデータ処理サーバへデータを転送しつつ、転送規則に限定されず、機器管理サーバへも転送する方法を示した。この方法によれば、監視要求を再度送信するタイミングを機器管理サーバが検知することができ、監視状態を継続しつつ、ネットワークトラフィックを減らすことができる。第３実施形態では、新たに受信された通知パケットに含まれている有効期限を用いて、機器管理サーバ１０１およびセンサー情報管理テーブルに保持されている有効期限を更新することで、さらにネットワークトラフィックの低減を図る。
【００９１】
以下、第３実施形態について、図面を参照して説明する。なお、以下の実施形態で説明する特徴の組み合わせの全てが本発明に必須のものとは限らない。第３実施形態による情報処理システム１００の構成、機器管理サーバ１０１の構成、センサー装置１０３の構成、ＩｏＴ−ＧＷ１０２の構成は、第１実施形態（図１、図２、図３、図４）と同様である。
【００９２】
図１０を用いて、ＩｏＴ−ＧＷ１０２が行う転送処理及び、機器管理サーバ１０１が行うセンサー装置１０３のＯＣＦ準拠のリソース管理処理及び、ＯｐｅｎＦｌｏｗを用いた転送制御についての処理シーケンスを説明する。処理１００１〜１００５は、第１実施形態（図５）の処理５０１〜５０５と同様である。
【００９３】
処理１００６において、ＩｏＴ−ＧＷ１０２の転送制御部４０５は機器管理サーバ１０１から監視要求パケットを受信すると、フローテーブルを参照し機器管理サーバ１０１からセンサー装置１０３へのパケットの転送規則を検索する。検索の結果、該当するフローエントリがフローテーブルに存在していないことを検知すると、転送制御部４０５は、デフォルト動作に指定されたスイッチ動作を行い、監視要求パケットが指定する宛先へ当該監視要求パケットを転送する。その際、転送制御部４０５は、監視要求パケットをセンサー装置１０３が受信可能なセンサーネットワーク（ＷＳＮ１０８）のフレームに変換してこれを転送する。処理１００７において、監視要求パケットはＩｏＴ−ＧＷ１０２からセンサー装置１０３へ転送される。
【００９４】
処理１００８〜処理１００９は、第１実施形態（図５）の処理５０８〜５０９と同様である。処理１０１０は第２実施形態（図８）の処理８１０と同様である。すなわち、処理１０１０において、転送制御部４０５は、センサー装置１０３から受信した通知パケットから取得したＭａｘ−ａｇｅ、センサー情報、センサーデータ値を保持する。そして、転送制御部４０５は、この通知パケットをＬＡＮ１０７に転送可能な形式に変換し、機器管理サーバ１０１とセンサーデータ処理サーバ１１１に転送する転送処理を行う。処理１０１１において通知パケットがＩｏＴ−ＧＷ１０２から機器管理サーバ１０１へ転送される。処理１０１２において、機器管理サーバ１０１の機器リソース管理部２０６は、通知パケットからＭａｘ−ａｇｅを取得し、リソースの有効期限を管理する。また、処理１０１３において、通知パケットがＩｏＴ−ＧＷ１０２からセンサーデータ処理サーバ１１１へ転送される。処理１０１４において、センサーデータ処理サーバ１１１は、センサーデータの処理を行う。なお、センサーデータ処理サーバ１１１の処理によって、さらに別のサーバへ転送する構成であってもよいことは第１、第２実施形態で述べたとおりである。
【００９５】
処理１０１５において、センサー装置１０３は、監視対象のリソースのセンサー値の変化を検知すると、監視要求を行った機器管理サーバ１０１を宛先として通知パケットを送信する。処理１０１６において、通知パケットがセンサー装置１０３からＩｏＴ−ＧＷ１０２へ送信される。なお、この通知パケットはセンサーデータ値及び、リソースの鮮度、すなわちリソースのデータの有効期限であるＭａｘ−ａｇｅを含む。
【００９６】
処理１０１７において、ＩｏＴ−ＧＷ１０２は、第２実施形態（図８）の処理８１７と同様に、受信した通知パケットの転送処理を行う。ＩｏＴ−ＧＷ１０２の転送制御部４０５は、処理１０１０で保持した宛先、送信元アドレス、センサー情報が今回受信した通知パケットと一致するので、フローエントリに指定された宛先へ通知パケットが転送される。この場合、機器管理サーバ１０１へ通知パケットは転送されない。また、処理１０１７において、転送制御部４０５は、Ｍａｘ−ａｇｅ及びセンサーデータ値を受信した通知パケットから取得し、保持している情報を更新する。この際に更新されるＭａｘ−ａｇｅは、センサー情報テーブルエントリを削除する時間を検知するために用いるＭａｘ−ａｇｅであり、機器管理サーバ１０１へ送信したＭａｘ−ａｇｅとは別途保持されている。
【００９７】
こうして、第３実施形態のセンサー情報管理テーブルには、機器管理サーバ１０１へ送信した第１のＭａｘ−ａｇｅと新しい通知パケットに従って更新される第２のＭａｘ−ａｇｅとが保持される。第１のＭａｘ−ａｇｅは機器管理サーバ１０１へＭａｘ−ａｇｅの更新を通知する（処理１０２０）タイミングを得るのに用いられる。第２のＭａｘ−ａｇｅは、センサー情報管理テーブルの、通知に関するエントリ（宛先、送信元ＩＰアドレス、センサー情報、センサーデータを含む）を削除する時間を検知するために用いられる。処理１０１８おいて、ＩｏＴ−ＧＷ１０２からセンサーデータ処理サーバ１１１に通知パケットが転送される。そして処理１０１９において、処理１０１４同様にして、センサーデータ処理サーバ１１１は、センサーデータの処理を行う。
【００９８】
ＩｏＴ−ＧＷ１０２の転送制御部４０５は、処理１０１０で保持された第１のＭａｘ−ａｇｅとその経過時間に基づいて処理１０２０を実行する。例えば、転送制御部４０５は、処理１０１０で保持された第１のＭａｘ−ａｇｅの時間が経過間近になったこと、もしくは第１のＭａｘ−ａｇｅが経過したことを検知すると、処理１０２０を実行する。処理１０２０において、転送制御部４０５は、処理１０１７で更新した第２のＭａｘ−ａｇｅの残り時間をＭａｘ−ａｇｅとして通知パケットを生成し、これを機器管理サーバ１０１へ送信する。処理１０２１において、ＩｏＴ−ＧＷ１０２から機器管理サーバ１０１へこの通知パケットが送信される。
【００９９】
処理１０２２において、機器管理サーバ１０１は通知パケットからＭａｘ−ａｇｅを取得し、リソースの有効期限を更新する。これにより、機器管理サーバ１０１は、センサーリソースのＭａｘ−ａｇｅの経過に応じて監視要求を行う前に、新たなＭａｘ−ａｇｅを用いてセンサーリソースの管理状態を継続することができる。なお、第１のＭａｘ−ａｇｅの時間が経過間近になったことに応じて処理１０２０が実行するようにすれば、第１のＭａｘ−ａｇｅにより示される有効期限が切れる前に、処理１０２０、１０２１が実行される。これにより、機器管理サーバ１０１がＭａｘ−ａｇｅの経過を検知して新たな監視要求を送信する前に、機器管理サーバ１０１におけるＭａｘ−ａｇｅが更新されることをより確実にするためである。また、処理１０２０でＭａｘ−ａｇｅの送信が行われると、第２のＭａｘ−ａｇｅの残り時間により第１のＭａｘ−ａｇｅが更新される。
【０１００】
通常、ＣｏＡＰを用いて、監視要求を行う場合、センサーリソースからの通知パケットはすべて監視要求を行った機器が受信する。そのため、処理１０１５のように、監視対象のリソースのセンサー値の変化が検知されたことに応じて通知パケットが送信される場合、そのパケットから取得したＭａｘ−ａｇｅが経過するまで再度の監視要求が行われることはない。これに対して、本実施形態の機器管理サーバ１０１は、処理１０１２で取得したＭａｘ−ａｇｅが経過してしまうと、そのタイミングで再監視要求を行うことになり、監視要求の発生頻度が増加する。本実施形態では、機器管理サーバ１０１へ通知したＭａｘ−ａｇｅが経過するタイミングで、センサー情報管理テーブルに保持している更新後のＭａｘ−ａｇｅの残り時間から算出したＭａｘ−ａｇｅと、センサーデータ値から生成した通知パケットを送信する。これにより機器管理サーバ１０１は、本来、監視要求を行うべきタイミングでのみ監視要求パケットを送信するようになる。
【０１０１】
なお、本実施形態ではＩｏＴ−ＧＷ１０２が機器管理サーバ１０１のＭａｘ−ａｇｅが切れるタイミングを検知して、ＩｏＴ−ＧＷ１０２が保持するセンサー情報から通知パケットを生成して機器管理サーバ１０１へ通知パケットの送信を行った。しかし機器管理サーバ１０１がＭａｘ−ａｇｅの経過を検知して、機器管理サーバ１０１が送信する監視要求に対し、ＩｏＴ−ＧＷ１０２が保持するセンサー情報を用いて通知パケットを生成して返信するようにしてもよい。この場合、ＩｏＴ−ＧＷ１０２は、機器管理サーバ１０１から受信した監視要求に対応した通知パケットに対応するエントリがセンサー情報管理テーブルに登録されているかを判断する。登録されていると判断された場合、ＩｏＴ−ＧＷ１０２は、登録されているエントリを用いて通知パケットを生成し、これを監視要求に対する応答として機器管理サーバ１０１へ送信する。これにより、ＩｏＴ−ＧＷ１０２からセンサー装置１０３へ中継、転送するパケットの頻度を減らすことが可能となる。また、ＩｏＴ−ＧＷ１０２は機器管理サーバ１０１が保持する第１のＭａｘ−ａｇｅの経過を検知する必要がなくなり、常に最新の通知パケットからＭａｘ−ａｇｅとセンサーデータ値を取得して保持するだけでよくなる。これにより、ＩｏＴ−ＧＷ１０２が管理するタイマーやＭａｘ−ａｇｅの情報管理の煩雑度を低減することが可能となる。
【０１０２】
さらに時間が経過して、エントリを削除する時間を検知するために記憶した第２のＭａｘ−ａｇｅが経過すると、処理１０２３において、ＩｏＴ−ＧＷ１０２の転送制御部４０５は、センサー情報管理テーブルから対応するエントリを削除する。これは一定時間が経過してもセンサー装置１０３のセンサーリソースからセンサーデータ処理サーバ１１１へ転送するパケットを受信しなかったことを意味する。つまり、ＩｏＴ−ＧＷ１０２が通知パケットを転送してから、その通知パケットに含まれるＭａｘ−ａｇｅが示す有効期限が経過したこととなる。これは単純にセンサーリソースの値の変化がなく一定時間が経過した場合もしくは、センサーリソースがリセットされた場合、または途中経路において通信が途絶えた場合に発生する。一方、機器管理サーバ１０１は、現在監視対象としているセンサー装置１０３のセンサーリソースのＭａｘ−ａｇｅが経過したことを検知すると、処理１０２４において当該リソースに対して再度の監視要求を行う。処理１０２５において、機器管理サーバ１０１からＩｏＴ−ＧＷ１０２へ監視要求パケットが送信される。
【０１０３】
処理１０２６においてＩｏＴ−ＧＷ１０２は、監視要求パケットをセンサー装置１０３へ中継し、処理１０２７においてパケットを転送する。その後の処理１０２６〜１０３４における各装置の動作は、上述した処理１００６〜１０１４と同様である。これにより、センサー装置１０３は、受信した監視要求パケットを基にセンサー装置１０３が持つリソースの監視状態（Ｏｂｓｅｒｖｅｄ）を継続する。また、処理１０１５から処理１０２８の間にセンサー装置１０３がリセットされる等してリソースの監視（Ｏｂｓｅｒｖｅｄ）状態を失っていた場合は、処理１０２８において、処理１００８同様にして、監視状（Ｏｂｓｅｒｖｅｄ）態に移行する。
【０１０４】
次に、ＩｏＴ−ＧＷ１０２の転送処理について図１１のフローチャートを用いて説明する。なお、図１１に示す転送処理は、処理１００６、処理１０１０、処理１０１７、処理１０２６、処理１０３０に対応する。
【０１０５】
ステップＳ１１０１において、転送制御部４０５は、ＬＡＮ制御部４０７またはＰＡＮ制御部４０８を介して中継の対象であるパケットを受信する。ステップＳ１１０２において、転送制御部４０５は、ステップＳ１１０１で受信したパケットを解析し、通知パケットであるか否かを判定する。通知パケットであると判定された場合、処理はステップＳ１１０３へ進み、通知パケットではないと判定された場合、処理はステップＳ１１０８へ進む。
【０１０６】
ステップＳ１１０３において、転送制御部４０５は、受信した通知パケットに対する転送規則を確認する。より具体的には、フローテーブルを参照して受信した通知パケットに該当するマッチング規則を持つフローエントリを検索する。該当するフローエントリが検索された場合、そのアクションリストの適用により通知パケットの宛先が変更されるかを確認する。宛先が変更される場合、処理はステップＳ１１０４へ進み、フローエントリが存在しないまたはフローエントリは存在するが宛先は変更されない場合、処理はステップＳ１１０８へ進む。ステップＳ１１０３の処理は、ステップＳ６０５と同様である。
【０１０７】
ステップＳ１１０４において、転送制御部４０５は、通知パケットから宛先、送信元ＩＰアドレス及びセンサー情報を取得する。転送制御部４０５は、ＲＡＭ４０３に構成されているセンサー情報管理テーブルを参照し、通知パケットの宛先、送信元ＩＰアドレス、センサー情報と一致する宛先、送信元ＩＰアドレス、センサー情報を持つエントリが保持されているかを検索する。そのようなエントリ（通知パケットに対応するエントリ）が存在する場合、処理はステップＳ１１０７へ進み、存在しない場合、処理はステップＳ１１０５へ進む。
【０１０８】
ステップＳ１１０５において、通知パケットの宛先、送信元ＩＰアドレス及びセンサー種別やＵＲＩ等のセンサーリソース情報、センサーデータ及び、Ｍａｘ−ａｇｅを取得し、センサー情報管理テーブルにエントリを追加する。この際、Ｍａｘ−ａｇｅはエントリを削除するための時間として記憶する。なお、記憶したセンサー情報のＭａｘ−ａｇｅの時間が経過すると、本テーブルエントリの削除を行う。
【０１０９】
ステップＳ１１０６において、転送制御部４０５は、受信した通知パケットを複製して、当該通知パケットで指定されている宛先（本例では機器管理サーバ１０１）へこれを送信する。この処理はフローテーブルに指定された転送規則とは別に行われる。これにより、受信した通知パケットをセンサーデータ処理サーバ１１１へ宛先を変更して転送する転送規則が設定されていた場合においても、ＩｏＴ−ＧＷ１０２の判断で機器管理サーバ１０１へ通知パケットを転送することが可能となる。そのため、リソースの鮮度、すなわちリソースのデータの有効期限であるＭａｘ−ａｇｅを機器管理サーバ１０１が受信可能となり、適切にセンサーリソースのＭａｘ−ａｇｅを通知することができる。またこの際、複製して通知したＭａｘ−ａｇｅを第１のＭａｘ−ａｇｅとして記憶する。第１のＭａｘ−ａｇｅは機器管理サーバ１０１に通知したＭａｘ−ａｇｅが経過したか否かを検知するために用いられる。上述したように、センサー情報管理テーブルには、エントリを削除するための第２のＭａｘ−ａｇｅと、機器管理サーバ１０１へ通知した第１のＭａｘ−ａｇｅの２つのＭａｘ−ａｇｅが保持されることとなる。
【０１１０】
ステップＳ１１０４において、センサー情報管理テーブルに通知パケットに対応するエントリが存在すると判定された場合、転送制御部４０５は、機器管理サーバ１０１においてもＭａｘ−ａｇｅを保持していると判断する。ステップＳ１１０７において、転送制御部４０５は、通知パケットからＭａｘ−ａｇｅ及びセンサーデータを取得し、センサー情報管理テーブルのエントリの第２のＭａｘ−ａｇｅ及びセンサーデータを更新する。上述したように、更新されるＭａｘ−ａｇｅは、センサー情報管理テーブルのエントリを削除するタイミングを検知するために記憶したＭａｘ−ａｇｅである。処理１０２３で説明したように、転送制御部４０５は、この第２のＭａｘ−ａｇｅの時間が経過したと判定した場合に、センサー情報管理テーブルのエントリを削除する。
【０１１１】
なお、本実施形態では２種類のＭａｘ−ａｇｅをＲＡＭに記憶して管理することとしたが、２種類のＭａｘ−ａｇｅ時間が経過したか否かを検知するためのタイマーの設定値としてもよい。その場合、第２のＭａｘ−ａｇｅを更新することは、タイマーの発火時間を更新することとなる。
【０１１２】
ステップＳ１１０８、Ｓ１１０９は、第１実施形態（図６）のステップＳ６０９、Ｓ６１０と同様である。また、第１実施形態と同様に、ステップＳ１１０３を経由してステップＳ１１０８の処理を行った場合、ステップＳ１１０３で検索した結果をキャッシュや別途メモリに格納する等して検索処理をスキップしてもよい。そうすることで検索処理を１回行えばよくなり、処理負荷を軽減可能である。
【０１１３】
以上のような転送処理によれば、転送制御部４０５は、センサー情報管理テーブルに新たなエントリが追加された場合に、機器管理サーバ１０１へ転送が必要と判断する。この場合、転送制御部４０５は、転送規則に限定されず、機器管理サーバ１０１へ通知パケットを転送する。これによって、ＩｏＴ−ＧＷ１０２は、適切なタイミングで必要に応じて機器管理サーバ１０１にセンサーリソースのＭａｘ−ａｇｅを通知することができる。
【０１１４】
本実施形態では、センサー情報管理テーブルにおけるエントリとして通知パケットの宛先、送信元ＩＰアドレス及びリソース情報、Ｍａｘ−ａｇｅを記憶しているか否かにより、管理装置へ判断を行ったが、別の方法であってもよい。例えば通知パケットに含まれるＵＲＩ情報のみで一意に識別可能な場合はＵＲＩ情報と第１および第２のＭａｘ−ａｇｅのみを保持するようにしてもよい。また、機器管理サーバ１０１からの監視要求に対する通知パケットが一意に識別できる情報であればよい。
【０１１５】
以上の処理によりＩｏＴ−ＧＷ１０２の制御により、通知パケットから取得した情報をＭａｘ−ａｇｅを用いてエントリ管理し、新規に管理に追加した場合のみ、通知パケットを複製して機器管理サーバへ転送する。また、Ｍａｘ−ａｇｅが切れたタイミングで管理する情報を削除する。管理しているセンサー情報のＭａｘ−ａｇｅが切れていない場合はセンサーデータ値とＭａｘ−ａｇｅの更新とともに、転送規則に従った転送のみを行う。また、ＩｏＴ−ＧＷ１０２は機器管理サーバ１０１へ送信した通知パケットのＭａｘ−ａｇｅを管理し、機器管理サーバ１０１が持つＭａｘ−ａｇｅが経過することを検知する。そして機器管理サーバ１０１へ転送していないものも含めた通知パケットから取得したＩｏＴ−ＧＷ１０２が保持するセンサー情報、センサーデータ、Ｍａｘ−ａｇｅを用いて通知パケットを生成して送信する。これにより、ＩｏＴ−ＧＷ１０２の判断により適切なタイミングで機器管理サーバ１０１へ通知パケットを転送ないし送信可能となり、機器管理サーバ１０１がＭａｘ−ａｇｅを取得可能となる。このようにしてＩｏＴ−ＧＷ１０２の判断により、転送規則に限定されず、必要に応じて、機器管理サーバ１０１へＭａｘ−ａｇｅを通知することで、機器管理サーバ１０１の処理負荷の削減、しいてはネットワークトラフィックを削減することが可能となる。
【０１１６】
この方法によれば、ＩｏＴ−ＧＷ１０２がパケットを中継、転送を行うとともに、転送を行った通知パケットから取得した情報を基に、適切なタイミングで通知パケットを送信するため、機器管理サーバ１０１が送信する再監視要求の頻度を減らすことが可能となる。そのため、機器管理サーバ１０１及びセンサー装置１０３の処理を軽減することが可能となる。またネットワークトラフィックの増加を軽減することが可能となる。
【０１１７】
なお、上記第１〜第３実施形態で説明した構成及び処理は一例であり、それぞれ記載された構成、処理に限定されるものではない。センサー装置のリソースを機器管理サーバ（１０１，７０１）が管理し、所定のタイミングにおいて通知パケットが機器管理サーバ１０１に転送されることで適切に鮮度を監視できればよい。換言すれば、センサー装置からの通知パケットをセンサーデータ処理サーバに転送する中継装置において、所定のタイミングで通知パケットを機器管理サーバに転送し、所定のタイミング以外では機器管理サーバに転送しないように制御する構成であればよい。
【０１１８】
また、上記第１〜第３実施形態ではＯＣＦに準拠した構成で説明したが、ＣｏＡＰを用いた機器の状態監視を行う構成であればよく、各実施形態においてＯＣＦの技術に準拠した構成が用いられる必要はない。また、監視対象のセンサー装置からのパケットを、機器管理サーバの制御に従って中継装置がセンサーデータ処理サーバに転送することで無駄なトラフィックを抑える構成であればよく、ＣｏＡＰに限られる必要はない。
【０１１９】
また、第２、第３実施形態ではエントリをセンサー情報管理テーブルに記憶し、受信した通知パケットに対応するエントリが存在する場合に、当該通知パケットを、転送規則に限定されずに、機器管理サーバ１０１へも転送することが必要であると判断した。第２、第３実施形態では、エントリをＲＡＭ４０３を用いて記憶するものとしたが、これに限られない。例えば、ＣＰＵ４０２のキャッシュ等を用いてエントリを保持する構成としてもよい。また、第３実施形態では、処理１０２０で通知パケットを生成するために、エントリとして最新のセンサーデータを保持している。通知パケットを生成するにあたり必要となる情報が他にもある場合は、その情報もエントリの一部として保持される。
【０１２０】
また、第２、第３実施形態では、通知パケットに含まれる宛先、送信元ＩＰアドレス及びリソース情報を用いて、以後に中継する通知パケットが同一のリソースからのパケットであるか識別したが、これに限られず、一意に識別可能な情報であればよい。またリソース情報はセンサーリソースの種別やセンサーリソースのＵＲＩ等の情報を想定するが、通知パケットから取得可能な情報であればよい。また、リソース情報は、センサー装置１０３のセンサーリソースを他のセンサー装置のセンサーリソースと識別可能な情報であればよい。また、リソース情報は、別途規定するパケットデータ内の情報であってもよい。つまり同一センサーであるかを判別するためのセンサー情報管理テーブルを検索する際の検索キーを必要に応じて変更してもよい。
【０１２１】
また第１、第３実施形態では、機器管理サーバ１０１は、ＯＣＦに準拠したＯＩＣクライアントとしての機能及び、ＯｐｅｎＦｌｏｗプロトコルに準拠したＯｐｅｎＦｌｏｗコントローラとしての機能を持つ構成としたが、別々の機器で構成してもよい。同様に、第２実施形態において、ＯＣＦに準拠したＯＩＣクライアントとしての機能を持つ機器管理サーバ７０１とＯｐｅｎＦｌｏｗプロトコルに準拠したＯｐｅｎＦｌｏｗコントローラとしての機能を持つ転送制御管理装置７１２が同一の機器で構成されてもよい。
【０１２２】
また、第１、第３実施形態において、機器管理サーバ１０１とＩｏＴ−ＧＷ１０２は別の機器で構成したが、同一の機器内の機能として構成してもよい。同様に、第２実施形態において機器管理サーバ７０１、転送制御管理装置７１２とＩｏＴ−ＧＷ１０２は別の機器で構成したが、同一の機器内の機能として構成してもよい。つまりこの場合、ＯｐｅｎＦｌｏｗコントローラとＯｐｅｎＦｌｏｗスイッチの機能を同一機器内に有する構成となる。
【０１２３】
また、第１~第３実施形態において、ＯｐｅｎＦｌｏｗプロトコルによる機器管理サーバとＩｏＴ−ＧＷ１０２との通信は、ＯｐｅｎＦｌｏｗプロトコルの別の種別のパケットで同様の処理を実現可能であれば、必ずしも同じ種別のパケットである必要はない。また、ＩｏＴ−ＧＷ１０２、及び機器管理サーバ１０１、はそれぞれ、複数の装置が連携して動作するように構成してもよい。
【０１２４】
＜その他の実施系遺体＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２５】
１００，７００：情報処理システム、１０１，７０１：機器管理サーバ、１０２：ＩｏＴ−ＧＷ、１０３〜１０６：センサー装置、１０７：ＬＡＮ、１０８：ＷＳＮ、１１０：ＷＡＮ、１０９，１１１：センサーデータ処理サーバ、７１２：転送制御管理装置
【図１】
2019201287.tif 000003
【図２】
2019201287.tif 000004
【図３】
2019201287.tif 000005
【図４】
2019201287.tif 000006
【図５】
2019201287.tif 000007
【図６】
2019201287.tif 000008
【図７】
2019201287.tif 000009
【図８】
2019201287.tif 000010
【図９】
2019201287.tif 000011
【図１０】
2019201287.tif 000012
【図１１】
2019201287.tif 000013