JPWO2017145997A1 - 情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システム - Google Patents

情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システム Download PDF

Info

Publication number
JPWO2017145997A1
JPWO2017145997A1 JP2018501675A JP2018501675A JPWO2017145997A1 JP WO2017145997 A1 JPWO2017145997 A1 JP WO2017145997A1 JP 2018501675 A JP2018501675 A JP 2018501675A JP 2018501675 A JP2018501675 A JP 2018501675A JP WO2017145997 A1 JPWO2017145997 A1 JP WO2017145997A1
Authority
JP
Japan
Prior art keywords
information processing
command
processing apparatus
application
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018501675A
Other languages
English (en)
Inventor
訓雄 内田
訓雄 内田
山田 徹
徹 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2017145997A1 publication Critical patent/JPWO2017145997A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

ネットワーク帯域の圧迫を抑制すること。情報処理装置であって、少なくとも2つのデバイスグループに対する、少なくとも1つのアプリケーションからのコマンドを受信するコマンド受信部と、前記少なくとも1つのアプリケーションから前記少なくとも2つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも2つのデバイスグループに所属するデバイスを特定するデバイス特定部と、前記特定されたデバイスに対するコマンドの送信が重複しないように制御するコマンド送信制御部と、を備える。

Description

本発明は、情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システムに関する。
上記技術分野において、特許文献1には、デバイスをグループ化してデータを一括送信する技術が開示されている。また、特許文献2には、データとは別にあるメタデータを基にノイズを除去する技術が開示されている。
特許第5678094号公報 国際公開第2013/095773号公報
しかしながら、上記文献に記載の技術では、複数のグループに所属するデバイスに対して、グループごとにデータ取得要求が発生すると重複したデータ送信が必要となり、ネットワーク帯域の圧迫を抑制することができなかった。
本発明の目的は、上述の課題を解決する技術を提供することにある。
上記目的を達成するため、本発明に係る情報処理装置は、
少なくとも2つのデバイスグループに対する、少なくとも1つのアプリケーションからのコマンドを受信するコマンド受信手段と、
前記少なくとも1つのアプリケーションから前記少なくとも2つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも2つのデバイスグループに所属するデバイスを特定するデバイス特定手段と、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御手段と、
を備える。
上記目的を達成するため、本発明に係る情報処理方法は、
少なくとも2つのデバイスグループに対する、少なくとも1つのアプリケーションからのコマンドを受信するコマンド受信ステップと、
前記少なくとも1つのアプリケーションから前記少なくとも2つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも2つのデバイスグループに所属するデバイスを特定するデバイス特定ステップと、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御ステップと、
を含む。
上記目的を達成するため、本発明に係る情報処理プログラムは、
少なくとも2つのデバイスグループに対する、少なくとも1つのアプリケーションからのコマンドを受信するコマンド受信ステップと、
前記少なくとも1つのアプリケーションから前記少なくとも2つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも2つのデバイスグループに所属するデバイスを特定するデバイス特定ステップと、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御ステップと、
をコンピュータに実行させる。
上記目的を達成するため、本発明に係る情報処理システムは、
少なくとも2つのデバイスグループと、
前記少なくとも2つのデバイスグループに対する少なくとも1つのアプリケーションからのコマンドに基づいて情報処理する情報処理装置と、
を備え、
前記情報処理装置は、
前記少なくとも1つのアプリケーションからの前記コマンドを受信するコマンド受信手段と、
前記コマンドが同種のコマンドである場合に、前記少なくとも2つのデバイスグループに所属するデバイスを特定するデバイス特定手段と、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御手段と、
を有する。
本発明によれば、複数のグループに所属するデバイスに対して、グループごとにデータ取得要求が発生しても重複したデータ送信が必要とならず、ネットワーク帯域の圧迫を抑制することができる。
本発明の第1実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第2実施形態に係る情報処理装置の動作の概念を説明する図である。 本発明の第2実施形態に係る情報処理装置の動作の概要を説明するシーケンス図である。 本発明の第2実施形態に係る情報処理装置の他の動作の概要を説明するシーケンス図である。 本発明の第2実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第2実施形態に係る情報処理装置の備える所属デバイステーブルの構成を示す図である。 本発明の第2実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。 本発明の第2実施形態に係る情報処理装置の処理手順を示すフローチャートである。 本発明の第2実施形態に係る情報処理装置の他の処理手順を示すフローチャートである。 本発明の第3実施形態に係る情報処理装置の処理の概要を説明するシーケンス図である。 本発明の第3実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第3実施形態に係る情報処理装置の備える有効期限テーブルの構成を示す図である。 本発明の第3実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。 本発明の第3実施形態に係る情報処理装置の処理手順を示すフローチャートである。 本発明の第4実施形態に係る情報処理装置の処理の概要を説明するシーケンス図である。 本発明の第4実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第4実施形態に係る情報処理装置の備えるデータ送信ポリシー設定テーブルの構成を示す図である。 本発明の第4実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。 本発明の第4実施形態に係る情報処理装置の処理手順を示すフローチャートである。 本発明の第5実施形態に係る情報処理装置の処理の概要を説明するシーケンス図である。 本発明の第5実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第5実施形態に係る情報処理装置の備えるファームウェアテーブルの構成を示す図である。 本発明の第5実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。 本発明の第5実施形態に係る情報処理装置の処理手順を示すフローチャートである。
以下に、本発明を実施するための形態について、図面を参照して、例示的に詳しく説明記載する。ただし、以下の実施の形態に記載されている、構成、数値、処理の流れ、機能要素などは一例に過ぎず、その変形や変更は自由であって、本発明の技術範囲を以下の記載に限定する趣旨のものではない。
[第1実施形態]
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、アプリケーション110からのコマンド111に基づいてデバイスグループ120に含まれるデバイスからデバイスデータを収集し、収集したデバイスデータをアプリケーション110に返信する装置である。
図1に示すように、情報処理装置100は、コマンド受信部101と、デバイス特定部102と、コマンド送信制御部103とを備える。
コマンド受信部101は、少なくとも2つのデバイスグループ120に対する、少なくとも1つのアプリケーション110からのコマンド111を受信する。
デバイス特定部102は、少なくとも1つのアプリケーション110から少なくとも2つのデバイスグループ120へのコマンド111が同種のコマンド111である場合に、少なくとも2つのデバイスグループ120に所属するデバイスを特定する。
コマンド送信制御部103は、特定されたデバイスに対する同種のコマンドの送信が重複しないように制御する。
本実施形態によれば、複数のグループに所属するデバイスに対して、グループごとにデータ取得要求が発生しても重複したデータ送信が必要とならず、ネットワーク帯域の圧迫を抑制することができる。
[第2実施形態]
次に本発明の第2実施形態に係る情報処理装置について、図2A乃至図6を用いて説明する。図2Aは、本実施形態に係る情報処理装置の動作の概念を説明する図である。例えば、複数のアプリケーションからグループAおよびグループBに属するデバイス対して同種のコマンドが送信された場合、それぞれのコマンドを個別に実行すると、グループAおよびグループBの双方に属するデバイスにおいては、コマンドが重複することとなる。その結果、グループAおよびグループBの双方に属するデバイスからのデバイスデータが重複して送信され、ネットワーク帯域の圧迫が生じる。なお、ここで、同種のコマンドとは、同じ種類の動作をデバイスに要求するコマンドをいう。例えば、同種のコマンドには、同じ種類のデバイスデータの送信を要求するコマンドや、ファームウェアの更新を要求するコマンドなどが含まれる。以下の実施形態においても同様とする。
よって、まず、デバイスのグループを管理する情報処理装置(例えば、共通PF(Platform)、GW(Gateway))にグループを対象とする複数のコマンドの送信があった場合に、コマンドの送信対象となる複数のグループに所属するデバイスを検出する。そして、検出されたデバイス群に対するコマンド送信の重複を抑制する。
図2Bは、本実施形態に係る情報処理装置200の動作の概要を説明するシーケンス図である。情報処理装置(共通PF)200は、ネットワークなどを介してアプリケーション210およびデバイスグループ220と接続されている。
ステップS201において、情報処理装置200は、アプリケーション210a(アプリa)からグループ220a(グループA)に属するデバイス(D1〜D3)に対するコマンドであるデータ取得要求を受信する。
そして、ステップS203において、情報処理装置200は、グループ220aに属するデバイスを特定するために、アプリケーション210aからのデータ取得要求(コマンド)に基づいて、グループ220aを展開する。これにより、情報処理装置200は、グループ220aに属するデバイスがD1,D2およびD3であることを特定する。
ステップS205において、情報処理装置200は、グループ220a(グループA)に属するデバイス(D1〜D3)に対してコマンドとしてデータ送信要求を送る。
ステップS207において、情報処理装置200は、アプリケーション210b(アプリb)からグループ220b(グループB)に属するデバイス(D3〜D4)に対するコマンドであるデータ取得要求を受信する。なお、アプリケーション210aおよびアプリケーション210bから送信されるコマンドは同種のコマンドとするが、これには限定されない。
そして、ステップS209において、情報処理装置200は、グループ220bに属するデバイスを特定するために、アプリケーション210bからのデータ取得要求(コマンド)に基づいて、グループ220bを展開する。これにより、情報処理装置200は、グループ220bに属するデバイスがD3およびD4であることを特定する。ここで、デバイスD3は、グループ220aおよびグループ220bの両方に所属しているデバイスであり、複数のデバイスグループ220に重複して所属しているデバイスである。したがって、このままコマンドを送信すると、デバイス(D1,D2,D3,D3,D4)に対してコマンドが送信され、デバイス(D3)に対して重複してコマンドが送信されてしまう。ステップS211において、情報処理装置200は、デバイスグループ220に重複して所属するデバイス(D3)に対して、重複してデータ送信要求(データ取得要求)が送信されないようにB−(A∩B)を演算する。情報処理装置200は、演算の結果として、D4を得る。
ステップS213において、情報処理装置200は、グループ220bに属するデバイス(D4)に対してデータ送信要求を送信する。つまり、グループ220aおよびグループ220bのいずれにも所属するデバイス(D3)が、コマンドの送信対象から除外されているので、デバイス(D3)に対してはデータ送信要求が重複送信されない。
ステップS215において、情報処理装置200は、デバイス(D1〜D4)からデバイスデータを受信する。
ステップS217において、情報処理装置200は、ステップS201に対する返答として、アプリケーション210aに対してデバイス(D1〜D3)のデバイスデータ(xxx,yyy,zzz)を返信する。
ステップS219において、情報処理装置200は、ステップS207に対する返答として、アプリケーション210bに対してデバイス(D3〜D4)のデバイスデータ(zzz,qqq)を返信する。このように、図2Bのシーケンス図では、アプリケーション210からデータ取得要求がある都度デバイスからデバイスデータを取得する例を説明した。
図2Cは、本実施形態に係る情報処理装置200の他の動作の概要を説明するシーケンス図であり、アプリケーションからのコマンドが遅延を許容できるコマンドである場合のシーケンス図である。
ステップS231において、情報処理装置200は、アプリケーション210a(アプリa)からグループ220a(グループA)に属するデバイス(D1〜D3)に対するコマンドであるデータ取得要求を受信する。
そして、ステップS233において、情報処理装置200は、グループ220aに属するデバイスを特定するために、アプリケーション210aからのデータ取得要求(コマンド)に基づいて、グループ220aを展開する。これにより、情報処理装置200は、グループ220aに属するデバイスがD1,D2およびD3であることを特定する。ここで、デバイスD3は、複数のデバイスグループ220(グループ220aおよびグループ220b)に所属するデバイスである。
情報処理装置200は、アプリケーション210aからのコマンドが遅延を許容できるコマンドであり、他のデバイスグループに重複所属するデバイス(D3)があるので、他のアプリケーション210b(アプリb)からの要求(コマンドの送信)を所定時間だけ待つ。
なお、情報処理装置200は、他のデバイスグループ220に重複所属するデバイスがない場合であっても、他のアプリケーション210からの要求(コマンドの送信)を所定時間待ってもよい。
ステップS235において、情報処理装置200は、アプリケーション210bからグループ220b(グループB)に属するデバイス(D3〜D4)に対するコマンドであるデータ取得要求を所定時間内に受信する。なお、アプリケーション210aおよびアプリケーション210bから送信されるコマンドは同種のコマンドとするが、これには限定されない。
そして、ステップS237において、情報処理装置200は、グループbに属するデバイスを特定するために、アプリケーション220bからのデータ取得要求(コマンド)に基づいて、グループ220bを展開する。これにより、情報処理装置200は、グループ220bに属するデバイスがD3およびD4であることを特定する。ここで、デバイスD3は、グループ220aおよびグループ220bの両方に所属しているデバイスであり、複数のデバイスグループ220に重複して所属しているデバイスである。したがって、このままコマンドを送信すると、デバイス(D1,D2,D3,D3,D4)に対してコマンドが送信され、デバイス(D3)に対して重複してコマンドが送信されてしまう。
ステップS239において、情報処理装置200は、デバイスグループ220に重複して所属するデバイス(D3)に対して、重複してデータ送信要求(データ取得要求)が送信されないように、B−(A∩B)を演算する。そして、情報処理装置200は、演算結果とグループ220aの展開結果とを合わせて(D1,D2,D3,D4)を得る。
ステップS241において、情報処理装置200は、デバイスグループ220に対するコマンドであるデータ送信要求をデバイス(D1,D2,D3,D4)に対して送信する。このとき、情報処理装置200は、デバイス(D3)へのデータ送信要求を重複して送信しない。
ステップS243において、情報処理装置200は、各デバイス(D1〜D4)からデバイスデータを受信する。
ステップS245において、情報処理装置200は、ステップS231に対する返答として、アプリケーション210aに対してデバイス(D1〜D3)のデバイスデータ(xxx,yyy,zzz)を返信する。ステップS247において、情報処理装置200は、ステップS235に対する返答として、アプリケーション210bに対してデバイス(D3〜D4)のデバイスデータ(zzz,qqq)を返信する。このように、図2Cのシーケンス図では、アプリケーション210a,210bからのデータ取得要求が所定の時間以内に到達した場合にデバイスからデバイスデータを取得する例を説明した。
なお、上述の説明ではデバイス(D1〜D4)は、1つの共通PF(情報処理装置200)に接続された例で説明したが、各デバイスは、サービスの内容に応じて複数の共通PFに接続されていてもよい。また、デバイスが所属するグループの数も2つには限定されず、3以上であってもよい。さらに、情報処理装置200(共通PF)とデバイスグループ220との間にGWを配置してもよく、この場合、情報処理装置200の動作は変えなくてもいいし、変えてもよい。つまり、例えば、情報処理装置200で実行していた処理をGWが実行しても、情報処理装置200とGWとで処理を分担して実行してもよい。
図3は、本実施形態に係る情報処理装置200の構成を示すブロック図である。情報処理装置200は、コマンド受信部301と、デバイス特定部302と、コマンド送信制御部303と、デバイスデータ受信部304と、デバイスデータ返信部305とを有する。さらに、コマンド受信部301は、計時部311を備える。
コマンド受信部301は、アプリケーション210からコマンド211を受信する。アプリケーション210には複数のアプリケーションが含まれ、本実施形態では、アプリケーション210a(アプリa)とアプリケーション210b(アプリb)との2つのアプリケーションが含まれるが、アプリケーションの数はこれには限定されない。
また、計時部311はタイマーであり、アプリケーション210から送信された複数のコマンド211が所定時間以内にコマンド受信部301に到達しているか否かを判定する。そして、アプリケーション210から送信された複数のコマンド211が所定時間内にコマンド受信部301に到達していなければ、情報処理装置200は、それぞれのコマンド211を到達順に個別に処理する。
デバイス特定部302は、コマンド受信部301が受信したアプリケーション210からのコマンド211に基づいて、デバイスグループ220に属するデバイスを特定する。例えば、アプリケーション210aからグループ220a(グループA)に対するコマンド211を受信した場合、デバイス特定部302は、グループ220aを展開して、グループ220aに属するデバイス(デバイスD1〜D3)を特定する。同様に、例えば、アプリケーション210aからグループ220b(グループB)に対するコマンド211を受信した場合、デバイス特定部302は、グループ220bを展開して、グループ220bに属するデバイス(デバイスD3〜D4)を特定する。
コマンド送信制御部303は、デバイス特定部302が特定したデバイスの所属先のデバイスグループ(デバイスの属性)の情報に基づいて、コマンド211の送信を制御する。具体的には、デバイス(D3)は、グループ220aおよびグループ220bの両方に所属しているので、このまま、アプリケーション210からのコマンド211を送信した場合には、デバイス(D3)に対するコマンド211が重複送信される。
したがって、コマンド送信制御部303は、グループ220a(グループA)とグループ220b(グループB)との交わりを演算する。すなわち、コマンド送信制御部303は、グループ220aとグループ220bとの両方に所属するデバイスを決定する。そして、コマンド送信制御部303は、両グループに所属するデバイスに重複してコマンド211が送信されないように、重複分のコマンド211の送信を抑制する。
具体的には、グループ220a(グループA)とグループ220b(グループB)とに属するデバイスはデバイス(D3)であるので、デバイス(D3)へのコマンド211が重複して送信されないように、デバイス(D3)に対するコマンド211のうち重複分のコマンド211が送信されないようにする。そして、コマンド送信制御部303は、データ取得要求をデバイス(D1〜D4)へと送信する。
デバイスデータ受信部304は、グループ220a(グループA)およびグループ220b(グループB)に属するデバイスからのデバイスデータ221を受信する。つまり、コマンド211としてのデータ送信要求を受信したデバイス(D1〜D4)が、コマンド211を実行して情報処理装置200に宛てて送信したデバイスデータ221を受信する。この場合、デバイス(D3)については、コマンド211が重複して送信されないので、デバイス(D3)からのデバイスデータ221の送信は1回となり、デバイスグループ220からの重複したデバイスデータ221の送信が回避されるので、ネットワーク帯域が圧迫されない。
デバイスデータ返信部305は、コマンド211に対する応答として、デバイス(D1〜D3)から受信したデバイスデータ221をアプリケーション210aに返信し、デバイス(D3〜D4)から受信したデバイスデータ221をアプリケーション210bに返信する。この場合、情報処理装置200とアプリケーション210との間において、デバイス(D3)のデバイスデータ221が重複して送信されないので、ネットワーク帯域が圧迫されない。なお、デバイスデータ返信部305は、デバイスから取得したデバイスデータ221をそのままアプリケーション210に返信する他に、取得したデバイスデータ221の平均値や最大値などを算出してアプリケーション210に返信する。すなわち、デバイスデータ返信部305は、取得したデバイスデータに何らかの加工を施した結果を返信する場合もある。
図4は、本実施形態に係る情報処理装置200の備える所属デバイステーブル401の構成を示す図である。所属デバイステーブル401は、グループID411に関連付けて所属デバイス412を記憶する。デバイス特定部302は、所属デバイステーブル401を参照して、デバイスグループ220の各グループに所属するデバイスを特定する。なお、デバイス特定部302がデバイスグループ220に所属するデバイスを特定する方法は、所属デバイステーブル401を参照する方法には限定されず、デバイスに所属先を問い合わせてもよい。
図5は、本実施形態に係る情報処理装置200のハードウェア構成を示すブロック図である。
CPU(Central Processing Unit)510は演算制御用のプロセッサであり、プログラムを実行することで図3の情報処理装置200の機能構成部を実現する。ROM(Read Only Memory)520は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部530は、ネットワークを介してアプリケーション210やデバイスグループ220、その他の装置などと通信する。なお、CPU510は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPU(Graphics Processing Unit)を含んでもよい。また、通信制御部530は、CPU510とは独立したCPUを有して、RAM(Random Access Memory)540の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM540とストレージ550との間でデータを転送するDMAC(Direct Memory Access Controller)を設けるのが望ましい(図示なし)。さらに、入出力インタフェース560は、CPU510とは独立したCPUを有して、RAM540の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、CPU510は、RAM540にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU510は、処理結果をRAM540に準備し、後の送信あるいは転送は通信制御部530やDMAC、あるいは入出力インタフェース560に任せる。
RAM540は、CPU510が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM540には、本実施形態の実現に必要なデータを記憶する領域が確保されている。コマンド内容541は、アプリケーション210からデバイスグループ220に宛てて送信されたコマンド211の内容であり、例えば、データ取得要求などである。コマンド到達時刻542は、アプリケーション210からのコマンド211が情報処理装置200のコマンド受信部301に到達した時刻であり、例えば、計時部311により到達時刻がコマンド211に刻印される。そして、コマンド受信部301は、コマンドに刻印された時刻に基づいて、アプリケーション210から送信された複数のコマンド211が所定の時間内に到達しているか否かを判断する。
グループ情報543は、コマンド211の送信対象となるデバイスの所属するデバイスグループ220に関する情報であり、図4に示した所属デバイステーブル401から展開された情報である。デバイス情報544は、コマンド211の送信対象となるデバイスに関する情報であり、例えば、デバイスIDやデバイス種別などの情報であるが、これらには限定されない。入出力データ546は、入出力インタフェース560を介して入出力されるデータである。送受信データ547は、通信制御部530を介して送受信されるデータである。また、RAM540は、各種アプリケーションモジュールを実行するためのアプリケーション実行領域548を有する。
ストレージ550には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。ストレージ550は、所属デバイステーブル401を格納する。所属デバイステーブル401は、図4に示した、デバイスグループ220(グループID)と、このグループに所属するデバイスとの関係を管理するテーブルである。
ストレージ550は、さらに、コマンド受信モジュール551と、デバイス特定モジュール552と、コマンド送信制御モジュール553と、デバイスデータ受信モジュール554と、デバイスデータ返信モジュール555とを格納する。
コマンド受信モジュール551は、アプリケーション210からの複数のコマンドを受信モジュールであり、複数のコマンドが所定の時間以内で到達したか否かを判断するモジュールである。デバイス特定モジュール552は、アプリケーション210からの複数のコマンド211が所定の時間以内で到達した場合、デバイスグループ220に所属するデバイスを特定するモジュールである。コマンド送信制御モジュール553は、複数のデバイスグループ220に属するデバイスに対して、コマンド211が重複して送信されないように、コマンド211の送信を制御するモジュールである。デバイスデータ受信モジュール554は、デバイスグループ220から送信された各デバイスのデバイスデータ221を受信するモジュールである。デバイスデータ返信モジュール555は、アプリケーション210からのコマンド211の応答として、受信したデバイスデータ221を、コマンド211の送信元のアプリケーション210に返信するモジュールである。これらのモジュール551〜555は、CPU510によりRAM540のアプリケーション実行領域548に読み出され、実行される。制御プログラム556は、情報処理装置200の全体を制御するためのプログラムである。
入出力インタフェース560は、入出力機器との入出力データをインタフェースする。入出力インタフェース560には、表示部561、操作部562、が接続される。また、入出力インタフェース560には、さらに、記憶媒体564が接続されてもよい。さらに、音声出力部であるスピーカ563や、音声入力部であるマイク、あるいは、GPS位置判定部が接続されてもよい。なお、図5に示したRAM540やストレージ550には、情報処理装置200が有する汎用の機能や他の実現可能な機能に関するプログラムやデータは図示されていない。
図6Aは、本実施形態に係る情報処理装置200の処理手順を示すフローチャートであり、図2Bに示したシーケンス図に対応するフローチャートである。このフローチャートは、図5のCPU510がRAM540を使用して実行し、図3の情報処理装置200の機能構成部を実現する。
ステップS601において、情報処理装置200は、アプリケーション210aからデータ取得要求などのコマンド211を受信する。ステップS603において、情報処理装置200は、受信したコマンド211に基づいて、コマンド211の送信先となるグループ220aに所属するデバイス(D1〜D3)を特定する。ステップS605において、情報処理装置200は、特定したデバイスに対してデータ送信要求をコマンド211として送信する。
ステップS607において、情報処理装置200は、他のアプリケーション210bからデータ取得要求などのコマンド211を受信する。ステップS609において、情報処理装置200は、受信したコマンド211に基づいて、コマンド211の送信先となるグループ220bに所属するデバイス(D3〜D4)を特定する。ステップS611において、グループ220aとグループ220bとに重複して所属するデバイス(D3)をコマンド211の送信対象から排除する。ステップS613において、情報処理装置200は、デバイス(D4)に対してデータ送信要求をコマンド211として送信する。
ステップS615において、情報処理装置は、デバイス(D1〜D4)からデバイスデータ221を受信する。ステップS617において、情報処理装置200は、アプリケーション210aおよびアプリケーション210bにデバイスデータ221を返信する。
図6Bは、本実施形態に係る情報処理装置200の他の処理手順を示すフローチャートであり、図2Cに示したシーケンス図に対応するフローチャートである。このフローチャートは、図5のCPU510がRAM540を使用して実行し、図3の情報処理装置200の機能構成部を実現する。
ステップS641において、情報処理装置200は、アプリケーション210aからデータ取得要求などのコマンド211を受信する。ステップS643において、情報処理装置200は、受信したコマンド211に基づいて、コマンド211の送信先となるグループ220aに所属するデバイス(D1〜D3)を特定する。ステップS645において、情報処理装置200は、他のアプリケーション210bからデータ取得要求などのコマンド211を所定時間内に受信したか否かを判断する。所定時間内に他のアプリケーション210bからのコマンド211を受信しない場合(ステップS645のNO)、情報処理装置200は、ステップS651へ進み、データ送信要求をデバイス(D1〜D3)に対して送る。所定時間内に他のアプリケーション210bからのコマンド211を受信した場合(ステップS645のYES)、情報処理装置200は、ステップS647へ進む。
ステップS647において、情報処理装置200は、受信した他のアプリケーション210bからのコマンド211に基づいて、コマンド211の送信先となるグループ220bに所属するデバイス(D3〜D4)を特定する。ステップS649において、情報処理装置200は、グループ220aとグループ220bとに重複して所属するデバイス(D3)をコマンド211の送信対象から除外する。ステップS651において、情報処理装置200は、デバイス(D1〜D4)に対してデータ送信要求をコマンド211として送信する。
ステップS653において、情報処理装置200は、デバイス(D1〜D4)からデバイスデータ221を受信する。ステップS655において、情報処理装置200は、アプリケーション210aおよびアプリケーション210bにデバイスデータ221を返信する。
本実施形態によれば、複数のグループに所属するデバイスに対して、グループごとにデータ取得要求が発生しても重複したデータ送信が必要とならず、ネットワーク帯域の圧迫を抑制することができる。また、複数のコマンドが所定時間以内で到達した場合に、重複を排除してコマンドの送信を行うので、アプリケーションから見て、コマンドに対する応答の即時性も損なわれない。
[第3実施形態]
次に本発明の第3実施形態に係る情報処理装置について、図7乃至図11を用いて説明する。図7は、本実施形態に係る情報処理装置の動作の概要を説明するためのシーケンス図である。本実施形態に係る情報処理装置は、上記第2実施形態と比べると、取得したデバイスデータを一時的に保存する保存部および保存されているデバイスデータの有効期限を判定する判定部を有する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
ステップS701において、情報処理装置700は、アプリケーション210a(アプリa)からコマンドとしてグループ220a(グループA)に対するデータ取得要求を受信する。ステップS703において、情報処理装置700は、グループ220aに属するデバイスを特定するために、アプリケーション210aからのデータ取得要求に基づいて、グループ220aを展開する。これにより、情報処理装置700は、グループ220aに属するデバイスがD1,D2およびD3であることを特定する。
ステップS705において、情報処理装置700は、グループ220a(グループA)に属するデバイス(D1〜D3)に対してデータ送信要求をコマンドとして送信する。
ステップS707において、情報処理装置700は、デバイス(D1〜D3)からデバイスデータを受信する。そして、ステップS709において、情報処理装置700は、受信したデバイス(D1〜D3)のデバイスデータをキャッシュして、一時的に保存する。ステップS711において、情報処理装置700は、ステップS701に対する返答として、アプリケーション210aに対してデバイス(D1〜D3)のデバイスデータ(D1=xxx,D2=yyy,D3=zzz)を返信する。
ステップS713において、情報処理装置700は、アプリケーション210b(アプリb)からコマンドとしてグループ220b(グループB)に対するデータ取得要求を受信する。ステップS715において、情報処理装置700は、グループ220bに属するデバイスを特定するために、アプリケーション210bからのデータ取得要求に基づいて、グループ220bを展開する。これにより、情報処理装置700は、グループ220bに属するデバイスがD3およびD4であることを特定する。さらに、デバイス(D3)が、グループ220aおよびグループ220bの双方に重複して属するデバイスであることを特定する。
ステップS717において、ステップS709で一時的に保存したデバイスデータのキャッシュが有効期限内であるか否かを判断し、有効期限内であれば、情報処理装置700は、B−(A∩B)を演算する。情報処理装置700は、演算の結果として、D4を得る。そして、ステップS719において、情報処理装置700は、グループ220bに属するデバイス(D4)に対してデータ送信要求を送信する。つまり、グループ220aおよびグループ220bのいずれにも所属するデバイス(D3)が、データ送信要求の送信対象から除外されているので、デバイス(D3)に対してはデータ送信要求が重複送信されない。
ステップS721において、情報処理装置700は、デバイス(D4)からデバイスデータを受信する。ステップS723において、情報処理装置700は、取得したデバイス(D4)のデバイスデータをキャッシュして、一時的に保存する。ステップS725において、情報処理装置700は、ステップS709でキャッシュしたデバイス(D3)のデバイスデータと、ステップS721で受信したデバイス(D4)のデバイスデータとで、グループ220bのデバイスデータを構成する。ステップS727において、情報処理装置700は、ステップS713に対する返答として、アプリケーション210bに対してデバイス(D3〜D4)のデバイスデータ(D3=zzz,D4=qqq)を返信する。
図8は、本実施形態に係る情報処理装置700の構成を示すブロック図である。情報処理装置700は、保存部806と、判定部807とをさらに備える。保存部806は、デバイスデータ221をキャッシュし、一時的に保存する。判定部807は、保存部806に保存されているデバイスデータ221が有効期限内か否かを判定する。
図9は、本実施形態に係る情報処理装置700の備える有効期限テーブル901の構成の一例を示す図である。有効期限テーブル901は、デバイスID911に関連付けて、有効期限912と、所属グループ913と、デバイス種別914とを記憶する。なお、有効期限テーブル901に記憶する項目はこれらには限定されない。判定部807は、有効期限テーブル901を参照して、保存部806に一時的に保存されているデバイスデータ221が有効期限を経過しているか否かを判定する。なお、1つのデバイスに対応付けられたデータ種別914が複数ある場合(図9では温度と湿度)、それぞれに有効期限を設定してもよく、また、まとめて1つの有効期限を設定してもよい。また、各デバイスで取得されるデータが1種類の場合には、データ種別914は省略してもよい。
図10は、本実施形態に係る情報処理装置700のハードウェア構成を示すブロック図である。RAM1040は、CPU510が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM1040には、本実施形態の実現に必要なデータを記憶する領域が確保されている。有効期限1045は、保存部806に一時的に保存されているデバイスデータ221の有効期限に関する情報であり、RAM1040に一時的に記憶される。有効期限1045は、図示しない有効期限を格納したデータベースなどからRAM1040へ読み出してもよい。
ストレージ1050には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。有効期限テーブル901は、図9に示した構成のテーブルであり、ストレージ1050に格納される。
ストレージ1050は、さらに、判定モジュール1057を格納する。判定モジュール1057は、保存部806に保存されているデバイスデータ221が有効期限内か否かを判定するモジュールである。このモジュール1057は、CPU510によりRAM1040のアプリケーション実行領域548に読み出され、実行される。
図11は、本実施形態に係る情報処理装置700の処理手順を示すフローチャートである。このフローチャートは、図10のCPU510がRAM1040を使用して実行し、図8の情報処理装置700の機能構成部を実現する。
ステップS1101において、情報処理装置700は、アプリケーション210aからデータ取得要求などのコマンド211を受信する。ステップS1103において、情報処理装置700は、受信したコマンド211に基づいて、コマンド211の送信先となるグループ220aに所属するデバイス(D1〜D3)を特定する。ステップS1105において、情報処理装置700は、特定したデバイスに対してコマンド211としてのデータ送信要求を送る。
ステップS1107において、情報処理装置700は、デバイス(D1〜D3)からデバイスデータ221を受信し、キャッシュとして一時的に保存部806に保存する。そして、情報処理装置700は、データ取得要求に対する返答として、アプリケーション210aに受信したデバイスデータ221を返信する。
ステップS1109において、情報処理装置700は、他のアプリケーション210bからデータ取得要求などのコマンド211を受信する。ステップS1111において、情報処理装置700は、受信したコマンド211に基づいて、コマンド211の送信先となるグループ220bに所属するデバイス(D3〜D4)を特定する。ステップS1113において、情報処理装置700は、保存部806にキャッシュとして一時的に保存しているデバイス(D3)のデバイスデータ221が有効期限内であるか否かを判断する。
デバイスデータ221が有効期限内の場合(ステップS1113のYES)、情報処理装置700は、ステップS1115に進む。ステップS1115において、情報処理装置700は、デバイス(D4)に対してデータ送信要求を送る。ステップS1117において、情報処理装置700は、デバイス(D4)からデバイスデータ221を受信し、受信したデバイスデータ221をキャッシュとして、保存部806に一時的に保存する。
ステップS1119において、情報処理装置700は、保存部806にキャッシュとして保存されていたデバイス(D3)のデバイスデータ221と、デバイス(D4)から受信したデバイスデータ221とを用いて、アプリケーション210bに返信するデータを構成する。そして、返信用のデータを構成したら、情報処理装置700は、アプリケーション210bに対して、デバイス(D3〜D4)のデバイスデータ221を返信する。
デバイスデータ221が有効期限内でない場合(ステップS1113のNO)、情報処理装置700は、ステップS1121に進む。ステップS1121において、情報処理装置700は、デバイス(D3〜D4)に対して、データ送信要求を送る。ステップS1123において、情報処理装置700は、デバイス(D3〜D4)から送信されたデバイスデータ221を用いて、アプリケーション210bに返信するデータを構成する。そして、返信用のデータを構成したら、情報処理装置700は、アプリケーション210bに対して、デバイス(D3〜D4)のデバイスデータ221を返信する。
本実施形態によれば、複数のグループに所属するデバイスに対して、グループごとにデータ取得要求が発生しても重複したデータ送信が必要とならず、ネットワーク帯域の圧迫を抑制することができる。また、デバイスデータ221をキャッシュとして一時的に保存して、保存されたデバイスデータ221の有効期限を判断するので、さらにネットワーク帯域の圧迫を抑制することができる。
[第4実施形態]
次に本発明の第4実施形態に係る情報処理装置について、図12乃至図16を用いて説明する。図12は、本実施形態に係る情報処理装置の動作の概要を説明するためのシーケンス図である。本実施形態に係る情報処理装置は、上記第2実施形態および第3実施形態と比べると、デバイスがデバイスデータを定期的に自発送信する点で異なる。その他の構成および動作は、第2実施形態および第3実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
図12は、本実施形態に係る情報処理装置1200の処理の概要を説明するシーケンス図である。まず、デバイス(D1〜D4)には、データ送信ポリシーが設定されている。データ送信ポリシーは、アプリケーション210などからデバイス(D1〜D4)に対して設定されるが、データ送信ポリシーの設定方法はこれには限定されない。例えば、共通PFやGWなどがデバイス(D1〜D4)に対してデータ送信ポリシーを設定してもよい。
ステップS1201において、情報処理装置1200は、グループ220b(グループB)に属するデバイス(D3〜D4)からデータ送信ポリシーに基づいて定期的に自発送信されるデバイスデータを受信する。ステップS1203において、情報処理装置1200は、受信し、取得したデバイス(D3〜D4)のデバイスデータをキャッシュとして一時的に保存する。
ステップS1205において、情報処理装置1200は、グループ220a(グループA)に属するデバイス(D1〜D3)からデータ送信ポリシーに基づいて定期的に自発送信されるデバイスデータを受信する。ステップS1207において、情報処理装置1200は、グループ220aから受信し、取得した、デバイス(D1〜D3)のデバイスデータをキャッシュとして一時的に保存する。
ステップS1209において、情報処理装置1200は、アプリケーション210a(アプリa)からコマンドとしてグループ220a(グループA)に対するデータ取得要求を受信する。ステップS1211において、情報処理装置1200は、グループ220aに属するデバイスを特定するために、アプリケーション210aからのデータ取得要求に基づいて、グループ220aを展開する。これにより、情報処理装置1200は、グループ220aに属するデバイスがD1,D2およびD3であることを特定する。
ステップS1213において、情報処理装置1200は、ステップS1207でキャッシュしたデバイスデータが有効期限内であるか否かを判断する。そして、キャッシュしたデバイスデータが有効期限内であれば、情報処理装置1200は、キャッシュしたデバイスデータをステップS1209に対する返答として、送信する。つまり、情報処理装置1200は、アプリケーション210aに対してデバイス(D1〜D3)のデバイスデータ(D1=xxx,D2=yyy,D3=zzz)を返信する。
ステップS1215において、情報処理装置1200は、アプリケーション210b(アプリb)からコマンドとしてグループ220b(グループB)に対するデータ取得要求を受信する。ステップS1217において、情報処理装置1200は、グループ220bに属するデバイスを特定するために、アプリケーション210bからのデータ取得要求に基づいて、グループ220bを展開する。ただし、ステップS1215では、ステップS1203においてキャッシュしたデバイスデータは有効期限が切れている。
ステップS1219において、情報処理装置1200は、ステップS1207でキャッシュしたデバイスデータが有効期間内であれば、B−(A∩B)を演算して、演算結果として、デバイス(D4)を得る。ステップS1221において、情報処理装置1200は、グループ220bに属するデバイス(D4)に対してコマンドしてデータ送信要求を送る。ステップS1223において、情報処理装置1200は、デバイス(D4)からデバイスデータを受信する。ステップS1225において、情報処理装置1200は、デバイス(D4)から受信し、取得したデバイス(D4)のデバイスデータをキャッシュとして一時的に保存する。ステップ1227において、情報処理装置1200は、デバイス(D4)から送信されたデバイスデータと、キャッシュされていたデバイス(D3)のデバイスデータとを用いて、アプリケーション210bに返信するデータを構成する。そして、ステップS1229において、ステップS1211に対する返答として、アプリケーション210bに対してデバイス(D3〜D4)のデバイスデータ(D3=zzz,D4=qqq)を返信する。
図13は、本実施形態に係る情報処理装置1200の構成を示すブロック図である。情報処理装置1200は、データ送信ポリシー設定部1301をさらに備える。データ送信ポリシー設定部1301は、デバイスに対して、データ送信ポリシーを設定する。デバイスは、設定されたデータ送信ポリシーにしたがって、情報処理装置1200に対して、デバイスデータ221を定期的に自発送信する。
図14は、本実施形態に係る情報処理装置の備えるデータ送信ポリシー設定テーブル1401の構成を示す図である。データ送信ポリシー設定テーブル1401は、デバイスID911に関連付けてデータ送信ポリシー1411を記憶する。データ送信ポリシー設定部1301は、データ送信ポリシー設定テーブル1401を参照して、デバイスに対してデータ送信ポリシーを設定する。なお、データ送信ポリシーの設定方法はこれには限定されない。
図15は、本実施形態に係る情報処理装置1200のハードウェア構成を示すブロック図である。RAM1540は、CPU510が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM1540には、本実施形態の実現に必要なデータを記憶する領域が確保されている。データ送信ポリシー1541は、デバイスのデータ送信ポリシーに関する情報であり、RAM1540に一時的に記憶される。データ送信ポリシー1541は、図示しないデータ送信ポリシーを格納したデータベースなどからRAM1540へ読み出してもよい。
ストレージ1550には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。データ送信ポリシー設定テーブル1401は、図14に示した構成のテーブルであり、ストレージ1550に格納される。ストレージ1550は、さらに、データ送信ポリシー設定モジュール1551を格納する。データ送信ポリシー設定モジュール1551は、デバイスのデータ送信ポリシーを設定するモジュールである。このモジュール1551は、CPU510によりRAM1540のアプリケーション実行領域548に読み出され、実行される。
図16は、本実施形態に係る情報処理装置1200の処理手順を示すフローチャートである。このフローチャートは、図15のCPU510がRAM1540を使用して実行し、図13の情報処理装置1200の機能構成部を実現する。なお、図6Bと同様の処理には同じステップ番号を付して説明を省略する。
ステップS1601において、情報処理装置1200は、デバイスに対してデータ送信ポリシーを設定する。なお、データ送信ポリシーの設定は、アプリケーション210からの指示に基づいて情報処理装置1200が設定をしてもよいし、また、情報処理装置1200が主体的に設定をしてもよいし、デバイスにあらかじめ設定されていてもよい。
ステップS1603において、情報処理装置1200は、デバイスが定期的に自動送信するデバイスデータ221を受信し、保存部806にキャッシュとして一時的に保存する。ステップS1605において、情報処理装置1200は、アプリケーション210からデータ送信要求などのコマンド211を受信する。ステップS1607において、情報処理装置1200は、保存部806にキャッシュされているデバイスデータ221が有効期限内であるか否かを判断する。デバイスデータ221が有効期限内でない場合(ステップS1607のNO)、情報処理装置1200は、ステップS647以下のステップへ進む。これに対して、デバイスデータ221が有効期限内である場合(ステップS1607のYES)、ステップS1609において、情報処理装置1200は、保存部806にキャッシュされているデバイスデータ221をアプリケーション210に返信する。
本実施形態によれば、デバイスがデバイスデータ221を定期的に自動送信する場合にも重複したデータ送信が必要とならず、ネットワーク帯域の圧迫を抑制することができる。
[第5実施形態]
次に本発明の第5実施形態に係る情報処理装置について、図17乃至図21を用いて説明する。図17は、本実施形態に係る情報処理装置の動作の概要を説明するためのシーケンス図である。本実施形態に係る情報処理装置は、上記第2実施形態乃至第4実施形態と比べると、デバイスのファームウェアを更新するファームウェア更新部を有する点で異なる。その他の構成および動作は、第2実施形態乃至第4実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
なお、以下の説明においては、ファームウェア更新を例に説明をするが、本実施形態の適用範囲はこれには限定されず、ファームウェアの更新の他、デバイス内のパラメータの更新やその他のデバイスに対する任意のコマンドでも同様である。
図17は、本実施形態に係る情報処理装置1700の処理の概要を説明するシーケンス図である。図17のシーケンス図は、図2Cに示したシーケンス図におけるデータ取得要求が、ファームウェア更新要求となっている点で異なっている。
ステップS1701において、情報処理装置1700は、アプリケーション210a(アプリa)からグループ220a(グループA)に対するファームウェア更新要求(コマンド)を受信する。ステップS1703において、情報処理装置1700は、グループ220aに属するデバイスを特定するために、アプリケーション210aからのファームウェア更新要求に基づいて、グループ220aを展開する。これにより、情報処理装置1700は、グループ220aに属するデバイスがD1,D2およびD3であることを特定する。なお、D3は、複数のデバイスグループ220(グループ220aおよびグループ220b)に所属するデバイスである。また、ファームウェア更新要求は、遅延を許容できるコマンドであるものとする。したがって、情報処理装置1700は、他のアプリケーション210bからのファームウェア更新要求を所定時間待つ。
ステップS1705において、情報処理装置1700は、アプリケーション210b(アプリB)からグループ220b(グループB)に対するファームウェア更新要求(コマンド)を受信する。ステップS1707において、情報処理装置1700は、グループ220bに属するデバイスを特定するために、アプリケーション210bからのファームウェア更新要求に基づいて、グループ220bを展開する。これにより、情報処理装置1700は、グループ220bに属するデバイスがD3およびD4であることを特定する。
ステップS1709において、情報処理装置1700は、グループ220aおよびグループ220bに重複して所属するデバイス(D3)に対して、重複してコマンドが送信されないように、B−(A∩B)を演算する。そして、情報処理装置200は、演算結果とグループ220aの展開結果とを合わせて(D1,D2,D3,D4)を得る。
ステップS1711において、情報処理装置1700は、グループ220aおよびグループ220bに属するデバイス(D1,D2,D3,D4)に対してファームウェアの更新データを送信する。ただし、この場合、デバイス(D3)に対しては、ファームウェアの更新データが重複して送信されない。
ステップS1713において、情報処理装置1700は、それぞれのデバイスからファームウェアの更新完了通知をデバイスデータとして受信する。ステップS1715において、情報処理装置1700は、ステップS1701に対する返答として、アプリケーション210aに対してファームウェアの更新完了通知をデバイスデータとして送信する。同様に、ステップS1717において、情報処理装置1700は、ステップS1705に対する返答として、アプリケーション210bに対してファームウェアの更新完了通知をデバイスデータとして送信する。
なお、複数のデバイスグループ220に所属するデバイス(D3)に対するファームウェアの更新要求において、異なるバージョンへの更新要求があった場合、つまり、異なるバージョンへの更新要求が競合した場合、情報処理装置1700は、例えば、最新バージョンへの更新を優先してもよい。例えば、アプリケーション210aからはバージョン1.0への更新要求があり、アプリケーション210bからはバージョン2.0への更新要求があった場合、情報処理装置1700は、バージョン2.0への更新を優先してもよい。また、例えば、ユーザがどちらのバージョンへ更新するか決定してもよいし、最新の更新要求を優先してもよいし、アプリケーション210に優先順位を付けておいて、優先順位の高いアプリケーションの指定するバージョンへ更新してもよい。さらに、更新要求が競合した場合、情報処理装置1700は、ファームウェアの更新データの送信を中止してもよい。更新要求が競合した場合、どちらの更新要求を優先するかなどは、ここに示した手法には限定されず、デバイスの特性や属性、アプリケーションの特徴などに基づいて、様々な手法を採用することができる。
図18は、本実施形態に係る情報処理装置1700の構成を示すブロック図である。情報処理装置1700は、ファームウェア更新部1801をさらに備える。ファームウェア更新部1801は、アプリケーション210からのコマンドに基づいて、デバイスグループ220に所属するデバイスのファームウェアを更新する。
図19は、本実施形態に係る情報処理装置の備えるファームウェアテーブル1901の構成を示す図である。ファームウェアテーブル1901は、デバイスID911に関連付けてファームウェア1911を記憶する。ファームウェア1911は、ファームウェアのバージョンや有効期限、更新日時などの情報である。ファームウェア更新部1801は、ファームウェアテーブル1901を参照して、デバイスのファームウェアのバージョンを確認して、ファームウェアの更新を実行する。
図20は、本実施形態に係る情報処理装置1700のハードウェア構成を示すブロック図である。RAM2040は、CPU510が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM2040には、本実施形態の実現に必要なデータを記憶する領域が確保されている。ファームウェア情報2041は、デバイスのファームウェアに関する情報であり、RAM2040に一時的に記憶される。ファームウェア情報2041は、図示しないファームウェアのバージョンなどを格納したデータベースなどからRAM2040へ読み出してもよい。
ストレージ2050には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。ファームウェアテーブル1901は、図19に示した構成のテーブルであり、ストレージ2050に格納される。ストレージ2050は、さらに、ファームウェア更新モジュール2051を格納する。ファームウェア更新モジュール2051は、デバイスのファームウェアを更新するモジュールである。このモジュール2051は、CPU510によりRAM2040のアプリケーション実行領域548に読み出され、実行される。
図21は、本実施形態に係る情報処理装置の処理手順を示すフローチャートである。このフローチャートは、図20のCPU510がRAM2040を使用して実行し、図18の情報処理装置1700の機能構成部を実現する。なお、図6Bと同様の処理には同じステップ番号を付して説明を省略する。
ステップS2101において、情報処理装置1700は、アプリケーション210aからファームウェア更新要求を受信する。ステップS2103において、情報処理装置1700は、他のアプリケーション210からファームウェア更新要求を所定時間内に受信したか否かを判断する。所定時間内に他のアプリケーション210bからのファームウェア更新要求を受信しない場合(ステップS2103のNO)、情報処理装置1700は、ステップS2105に進む。所定時間内に他のアプリケーション210bからのファームウェア更新要求を受信した場合(ステップS2103のYES)、情報処理装置1700はステップS647に進む。
ステップS2105において、情報処理装置1700は、デバイス(D1〜D4)に対して、ファームウェアの更新データを送信する。ステップS2107において、情報処理装置1700は、デバイス(D1〜D4)からファームウェアの更新完了通知をデバイスデータとして受信する。ステップS2109において、情報処理装置1700は、アプリケーション210aおよびアプリケーション210bにファームウェアの更新完了通知をデバイスデータとして返信する。
本実施形態によれば、アプリケーションがデバイスのデバイスデータを収集する場合だけでなく、アプリケーション側からデバイスに対して様々なプログラムやデータなどを送信する場合にも適用することができる。また、重複してファームウェアの更新データが送信されないので、ネットワーク帯域の圧迫を抑制することができ、デバイス側から見れば、重複してファームウェアを更新することがない。
[他の実施形態]
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
なお、情報処理装置は、例えばM2Mプラットフォームであって、Machine to Machineサービスに関する標準化を行なうoneM2Mにおいて定められているM2M Service Infrastructureであってもよい。M2M Service Infrastructureは、oneM2MアーキテクチャにおけるIN(Infrastructure Node)に相当する。さらに、M2M Service Infrastructureは、oneM2Mが定める共通サービス機能(CSF:Common Services Function)群を提供するCSE(Common Services Entity)を有する。また、情報処理装置は、複数のCSEを含む装置であってもよい。なお、INが有するCSEは、IN(Infrastructure Node)−CSEとも称される。
ネットワークは、例えば通信事業者が提供する移動通信網であって、oneM2Mにおいて定義されるUnderlying Networkであってもよい。
また、デバイスは、例えばセンサデバイスであって、oneM2Mにおいて定義されるM2M Deviceであってもよい。M2M Deviceは、oneM2MアーキテクチャにおけるASN(Application Service Node)あるいはADN(Application Dedicated Node)に相当し、このうちASNはCSEを有する。なお、ASN内のCSEはASN−CSEとも称される。
また、デバイスから収集したデータをさらに処理する、図示しないアプリケーションサーバは、例えば特定の業務を処理するサーバであって、oneM2Mにおいて定義されるM2M Application Infrastructureであってもよい。また、アプリケーションサーバは、oneM2MアーキテクチャにおけるAE(Application Entity)を有してもよい。なお、oneM2Mで定義されるInfrastructure Domainにあり、IN−CSEに接続されるAEは、IN(Infrastructure Node)−AEとも称される。
また、情報処理装置は、例えばモバイルルータであってもよく、この場合oneM2Mにおいて定義されるM2M Gateway(ゲートウェイ装置)であってもよい。M2M Gatewayは、oneM2MアーキテクチャにおけるMN(Middle Node)に相当し、CSEを有する。なおMN内のCSEはMN−CSEとも称される。
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。
この出願は、2016年2月26日に出願された日本出願特願2016−035407を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (10)

  1. 少なくとも2つのデバイスグループに対する、少なくとも1つのアプリケーションからのコマンドを受信するコマンド受信手段と、
    前記少なくとも1つのアプリケーションから前記少なくとも2つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも2つのデバイスグループに所属するデバイスを特定するデバイス特定手段と、
    前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御手段と、
    を備える情報処理装置。
  2. 前記特定されたデバイスから受信したデバイスデータの前記少なくとも1つのアプリケーションへの返信を制御するデバイスデータ返信手段をさらに備える請求項1に記載の情報処理装置。
  3. 前記デバイス特定手段は、前記コマンド受信手段が、前記少なくとも1つのアプリケーションからの前記同種のコマンドを所定時間以内に複数回受信した場合に、前記複数回受信したコマンドに基づいて、前記少なくとも2つのデバイスグループに所属するデバイスを特定する請求項1または2に記載の情報処理装置。
  4. 前記デバイスデータを一時的に保存する保存手段と、
    前記保存手段に保存されたデバイスデータが有効期限内か否かを判定する判定手段と、
    をさらに備え、
    前記デバイスデータ返信手段は、前記判定手段による判定の結果、前記保存手段に保存されたデバイスデータが有効期限内であれば、前記特定されたデバイスから受信したデバイスデータを返信する請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記コマンド送信制御手段は、前記有効期限を超えた場合、前記特定されたデバイスに前記同種のコマンドを再度送信する請求項4に記載の情報処理装置。
  6. 前記デバイスに対してデータ送信ポリシーを設定するデータ送信ポリシー設定手段をさらに備え、
    前記デバイスデータ返信手段は、前記データ送信ポリシーに基づいて、前記デバイスから送信されるデバイスデータを受信する請求項2乃至5のいずれか1項に記載の情報処理装置。
  7. 前記コマンド送信制御手段は、さらに、前記少なくとも1つのアプリケーションの優先順位に応じて、前記同種のコマンドの送信を制御する請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 少なくとも2つのデバイスグループに対する、少なくとも1つのアプリケーションからのコマンドを受信するコマンド受信ステップと、
    前記少なくとも1つのアプリケーションから前記少なくとも2つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも2つのデバイスグループに所属するデバイスを特定するデバイス特定ステップと、
    前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御ステップと、
    を含む情報処理方法。
  9. 少なくとも2つのデバイスグループに対する、少なくとも1つのアプリケーションからのコマンドを受信するコマンド受信ステップと、
    前記少なくとも1つのアプリケーションから前記少なくとも2つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも2つのデバイスグループに所属するデバイスを特定するデバイス特定ステップと、
    前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御ステップと、
    をコンピュータに実行させる情報処理プログラム。
  10. 少なくとも2つのデバイスグループと、
    前記少なくとも2つのデバイスグループに対する少なくとも1つのアプリケーションからのコマンドに基づいて情報処理する情報処理装置と、
    を備え、
    前記情報処理装置は、
    前記少なくとも1つのアプリケーションからの前記コマンドを受信するコマンド受信手段と、
    前記コマンドが同種のコマンドである場合に、前記少なくとも2つのデバイスグループに所属するデバイスを特定するデバイス特定手段と、
    前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御手段と、
    を有する、情報処理システム。
JP2018501675A 2016-02-26 2017-02-20 情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システム Pending JPWO2017145997A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016035407 2016-02-26
JP2016035407 2016-02-26
PCT/JP2017/006194 WO2017145997A1 (ja) 2016-02-26 2017-02-20 情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システム

Publications (1)

Publication Number Publication Date
JPWO2017145997A1 true JPWO2017145997A1 (ja) 2018-12-20

Family

ID=59686640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018501675A Pending JPWO2017145997A1 (ja) 2016-02-26 2017-02-20 情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システム

Country Status (3)

Country Link
US (1) US10585824B2 (ja)
JP (1) JPWO2017145997A1 (ja)
WO (1) WO2017145997A1 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003264679A (ja) * 2002-03-11 2003-09-19 Nippon Telegr & Teleph Corp <Ntt> 同報送信装置、同報送信方法、プログラムおよび記録媒体
CN102687547B (zh) 2009-12-28 2015-09-02 交互数字专利控股公司 机器对机器网关体系结构
JP5523130B2 (ja) * 2010-02-08 2014-06-18 キヤノン株式会社 通信装置、通信方法、及びプログラム
JP2012105129A (ja) * 2010-11-11 2012-05-31 Nec Casio Mobile Communications Ltd 災害対応支援システム、災害対応支援サーバ、災害対応支援方法及び災害対応支援プログラム
US10769913B2 (en) 2011-12-22 2020-09-08 Pelco, Inc. Cloud-based video surveillance management system
CN103269260A (zh) * 2013-06-03 2013-08-28 腾讯科技(深圳)有限公司 数据传输方法、数据接收端、数据发送端和数据传输系统

Also Published As

Publication number Publication date
US10585824B2 (en) 2020-03-10
WO2017145997A1 (ja) 2017-08-31
US20190057055A1 (en) 2019-02-21

Similar Documents

Publication Publication Date Title
US9998297B2 (en) Method and apparatus for controlling smart home device to upload data, method and apparatus for acquiring data uploaded by smart home device
CN1606964B (zh) 通过网络进行存档、处理和传输成像数据的系统和方法
EP3462708B1 (en) Network infrastructure system and method for data processing and data sharing using the same
CN106412009A (zh) 接口调用方法及装置
CN111966482B (zh) 边缘计算系统
KR101523702B1 (ko) IoT 플랫폼 서버 및 IoT 단말과 애플리케이션을 매칭한 정보를 생성하는 방법
JP2010505156A5 (ja)
US10809693B2 (en) Manufacturing device control based on metrology data
WO2017145997A1 (ja) 情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システム
JP7107046B2 (ja) 制御システム、検索装置および検索プログラム
CN117093375A (zh) 服务器调度方法、装置、设备及存储介质
JP6566070B1 (ja) フロー管理サーバ、フロー管理システム、フロー管理方法およびフロー管理プログラム
CN114826817B (zh) 一种通信控制方法、电子设备及存储介质
JP7481500B2 (ja) 建物管理システムメタデータの遠隔発見
WO2020189204A1 (ja) 制御システム、中継装置、および中継プログラム
EP3617876B1 (en) Id space conversion system and method
KR101235199B1 (ko) 웹기술을 이용하여 저성능 원격지 장치를 제어하기 위한 인터페이스 구축 시스템 및 그 방법
JP3724300B2 (ja) 設備管理システム
KR20190005100A (ko) 로봇 제어 방법, 제어 서버 및 클라우드 처리 서버
JP2019046093A (ja) 情報処理装置およびその処理方法とプログラム
JP6868536B2 (ja) データ収集装置およびデータ収集システム
JP5948263B2 (ja) 管理システム、セキュリティ情報管理装置、構成情報管理装置、セキュリティ情報管理方法およびプログラム
GB2572744A (en) Data collection control apparatus
KR20150074428A (ko) M2m 응용 서비스 시스템
JP2017084143A (ja) 電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211019