JP2016171472A - 中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システム - Google Patents

中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システム Download PDF

Info

Publication number
JP2016171472A
JP2016171472A JP2015050151A JP2015050151A JP2016171472A JP 2016171472 A JP2016171472 A JP 2016171472A JP 2015050151 A JP2015050151 A JP 2015050151A JP 2015050151 A JP2015050151 A JP 2015050151A JP 2016171472 A JP2016171472 A JP 2016171472A
Authority
JP
Japan
Prior art keywords
sensor
relay device
relay
processing
devices
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
JP2015050151A
Other languages
English (en)
Inventor
哲哉 内海
Tetsuya Utsumi
哲哉 内海
松本 安英
Yasuhide Matsumoto
安英 松本
菊池 慎司
Shinji Kikuchi
慎司 菊池
信哉 北島
Shinya Kitajima
信哉 北島
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015050151A priority Critical patent/JP2016171472A/ja
Priority to US15/063,589 priority patent/US20160269806A1/en
Publication of JP2016171472A publication Critical patent/JP2016171472A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】 中継装置のリソースを効率的に利用するようにセンサの中継装置を選択する中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システムを提供する。【解決手段】 処理部が、1又は複数の機器から前記機器のセンサが検出したセンサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置のうち、特定の中継装置が前記処理の対象とする特定のセンサを他の中継装置の前記処理の対象に変更する際に、該特定のセンサに応じて規定された1又は複数の処理のうち、前記中継装置が前記処理の対象とする、各センサに応じて規定された処理の集合に含まれない処理の数がより少ない前記中継装置を、前記他の中継装置の候補として選択する。【選択図】図4

Description

本発明は、中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システムに関する。
センサを備える複数のデバイスのそれぞれが取得したデータを、中継装置を経由して収集し、収集したデータに基づいて所定の処理を行う情報処理システムがある。情報処理システムは、携帯端末等の複数のデバイス、複数の中継装置、及び、情報処理装置を有する。
デバイスはセンサが検出したセンサデータを中継装置に送信し、中継装置は、受信したセンサデータに対してセンサに応じた処理を実行して処理結果を情報処理装置に送信する。中継装置は、センサデータの収集対象とする、センサに応じた処理を実行するアプリケーションを搭載する。
センサネットワークシステムの処理に関連する技術については特許文献1、2に開示される。また、仮想マシンを実行するコンピュータの通信に関する技術については特許文献3に、異なる機能を備える装置が混在するシステムについては、特許文献4に開示される。
特表2010−527473号公報 特開2006−344017号公報 特表2009−545244号公報 特開2005−135212号公報
しかしながら、IoT(internet of things:IoT)の発展によりデバイスの多様化が進み、情報処理システムが、様々な種類のセンサのセンサデータを収集するようになっている。また、種類が同一のセンサであっても、センサのバージョンやベンダー等が異なる場合がある。
中継装置がセンサデータに対して行う処理の内容は、センサの種類やバージョン、ベンダー等に応じて異なる。複数の異なるセンサのセンサデータを収集する場合、中継装置は、各センサに応じた処理を実行するアプリケーションを搭載する。したがって、収集対象のセンサに応じて、中継装置が搭載するアプリケーションの数が増加し、アプリケーションが使用するリソース量が大きくなる場合がある。
一方、中継装置は、デバイスの移動に応じて、当該デバイスのセンサデータを新たに収集する場合がある。当該デバイスのセンサに応じた処理を実行するアプリケーションを搭載していない場合、中継装置は新たに当該アプリケーションを搭載する。したがって、中継装置は、新たなアプリケーションの配備に備えて、空きリソースを有していることが望ましい。
1つの側面は、本発明は、中継装置のリソースを効率的に利用するようにセンサの中継装置を選択する中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システムを提供することを目的とする。
第1の側面によれば、処理部が、1又は複数の機器から前記機器のセンサが検出したセンサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置のうち、特定の中継装置が前記処理の対象とする特定のセンサを他の中継装置の前記処理の対象に変更する際に、該特定のセンサに応じて規定された1又は複数の処理のうち、前記中継装置が前記処理の対象とする、各センサに応じて規定された処理の集合に含まれない処理の数がより少ない前記中継装置を、前記他の中継装置の候補として選択する。
第1の側面によれば、中継装置のリソースを効率的に利用するように、センサのセンサデータを処理する中継装置を選択できる。
本実施の形態における情報処理システム100のネットワーク構成を説明する図である。 本実施の形態におけるセンサの一例を示す図である。 各センサのセンサデータを収集する中継装置20の第1の選択例を示す図である。 各センサのセンサデータを収集する中継装置20の第2の選択例を示す図である。 本実施の形態における、移動したデバイス30の中継装置20の選択例を示す図である。 中継装置20を仮想マシンにしたがって実現する場合の情報処理システム100の構成を説明する図である。 図1、図6に示した中央サーバ10のハードウェア構成図である。 図7に示した、センサ一覧情報111の一例を説明する図である。 図7に示した、アプリケーション一覧情報112の一例を説明する図である。 図7に示した、中継装置一覧情報113の一例を説明する図である。 図7に示した中央サーバ10の仮想マシン配備プログラム110のソフトウェアブロック図である。 図6に示した中継装置20を有する物理マシン40のハードウェア構成図である。 図12に示した仮想マシン1データ231のソフトウェアブロック図である。 図1、図6に示したデバイス30のハードウェア構成図である。 図1、図6に示したデバイス30のソフトウェアブロック図である。 図11に示した、中央サーバ10の仮想マシン配備プログラム110の処理を説明するフローチャート図である。 図11に示した配備命令作成モジュール123の処理1(図16のS11)の流れを説明する第1のフローチャート図である。 図17の工程S22〜S24を説明する図である。 図11に示した配備命令作成モジュール123の処理1(図16のS11)の流れを説明する第2のフローチャート図である。 図11に示した配備命令作成モジュール123の処理1(図16のS11)の流れを説明する第3のフローチャート図である。 図11に示した配備命令作成モジュール123の処理2(図16のS13、図20のS44)の流れを説明する第1のフローチャート図である。 本実施の形態における装置2〜4が処理対象とするセンサを示す図である。 図11に示した配備命令作成モジュール123の処理2(図16のS13、図20のS44)の流れを説明する第2のフローチャート図である。 図11に示した配備命令作成モジュール123の処理2(図16のS13、図20のS44)の流れを説明する第3のフローチャート図である。 図11に示した配備命令作成モジュール123の処理3(図16のS16)の流れを説明するフローチャート図である。
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
[情報処理システム]
図1は、本実施の形態における情報処理システム100の構成を説明する図である。図1の情報処理システム100は、中央サーバ(情報処理装置)10と、複数の中継装置20−1〜20−9(中継装置20ともいう)と、複数のデバイス30−1a〜30−4e(機器、デバイス30ともいう)とを有する。情報処理システム100は、実際には多数のデバイス30を有する。
各デバイス30は、LTE(Long Term Evolution:LTE)やブルートゥース(Bluetooth(登録商標))等の規格に基づく無線通信を介して、中継装置20と接続する。また、中継装置20は、例えば、有線通信を介して、中央サーバ10と接続する。なお、中継装置20は、無線通信を介して、中央サーバ10と接続してもよい。
図1の例によると、領域erAに位置するデバイス30−1a〜30−1hは、中継装置20−1〜20−3から所定の距離範囲内に位置し、中継装置20−1〜20−3と通信可能である。同様にして、領域erBに位置するデバイス30−2a〜30−2hは、中継装置20−4、20−5から所定の距離範囲内に位置し、中継装置20−4、20−5と通信可能である。他の領域erC、erDに位置するデバイス30及び中継装置20についても同様である。
図1に示すデバイス30は、例えば、スマートフォン、ウェアラブルデバイス、携帯音楽機器等の機器である。各デバイス30は、1つまたは複数のセンサを搭載する。また、デバイス30は、互いに、同一または異なるセンサを搭載する。センサは、例えば、温度センサ、湿度センサ、加速度センサ、生体センサ、位置センサ等である。本実施の形態において、デバイス30は、移動可能なデバイス30を含む。なお、デバイス30は、センシングする場所に固定的に位置するデバイス30を含んでいてもよい。
各デバイス30は、センサが検出したセンサデータを定期的に取得し、取得したセンサデータを、中継装置20に送信する。センサデータは、例えば、温度データ、加速度データ、心拍数データ、血圧データ、位置データ等である。なお、デバイス30は、中継装置20や中央サーバ10によるセンサデータの取得指示に応答して、センサデータを中継装置20に送信してもよい。
図1に示す中央サーバ10は、中継装置20を介して収集した各デバイス30のセンサデータの分析処理等を行う。また、図1に示す中継装置20は、1つまたは複数のデバイス30と中央サーバ10との通信を中継する。中継装置20は、1つまたは複数のデバイス30からセンサデータを収集し、各デバイス30が搭載するセンサに応じて規定される1または複数の処理をセンサデータに対して実行して、その処理結果を中央サーバ10に出力する。中継装置20は、センサデータを収集する対象の、センサに応じて規定された処理を実行するアプリケーションを搭載する。
センサに応じて規定された処理は、例えば、OS(Operating System:OS)やソフトウェアが備える機能による処理や、センサデータに固有の処理である。OSやソフトウェアが備える機能による処理は、例えば、データベースへのデータの書き込み処理や、データの複製処理等である。また、センサデータに固有の処理は、例えば、センサデータに固有の形式の変換処理やセンサデータに固有の集計処理等を示す。
図1に示す情報処理システム100は、例えば、医療施設や福祉施設等における利用者の生体情報や環境情報を分析するシステムである。中継装置20は、温度センサや生体センサを搭載するスマートフォンやウェアラブルデバイスから温度データや心拍数データ等を収集し、データの変換処理やデータベースへの格納処理を行う。そして、中継装置20は、処理後のデータをデータベースから読み出し、中央サーバ10に送信する。中央サーバ10は、収集したセンサデータに基づいて、利用者の健康状態の監視処理や、集計処理等を行う。
また、中継装置20がセンサデータに対して行う処理の内容は、センサの種類に応じて異なる。そして、同一の種類のセンサであっても、センサを提供するベンダー(企業)や、センサのバージョンが異なる場合がある。したがって、中継装置20がセンサデータに対して行う処理の内容は、センサの種類に加えて、センサを提供するベンダーやバージョンに応じて異なる。
図1に示す情報処理システム100は、例えば、センサの種類やベンダー、バージョン等に応じた専用の中継装置20を備える。つまり、1つの中継装置20は、特定のセンサのセンサデータのみを収集する。各中継装置20が特定のセンサのセンサデータのみを収集する場合、当該中継装置20は、特定のセンサに応じて規定される処理を実行するアプリケーションのみを搭載すればよい。
しかしながら、多様なセンサが存在する場合、多数の中継装置20を用意する必要が生じ、多くのリソースを要する。また、特定のセンサを搭載するデバイス30が多量に存在する場合、中継装置20が接続するデバイス30の数が接続可能数を超える場合や、中継装置20が処理するデータ量が許容量を超える場合がある。これにより、中継装置20が、センサデータの処理を行えない場合が生じ得る。
または、例えば、情報処理システム100は、多様なセンサのセンサデータを収集する汎用的な中継装置20を備える。つまり、1つの中継装置20は、複数の異なるセンサのセンサデータを収集する。中継装置20が複数の異なるセンサのセンサデータを収集する場合、当該中継装置20は、複数のセンサに応じて、センサデータの処理を実行するアプリケーションを搭載する。
汎用的な中継装置20を備える場合、例えば、中央サーバ10は、電波環境等に基づいて、各デバイス30のセンサデータを収集する中継装置20を選択する。図1の例によると、中央サーバ10は、各デバイス30−1a〜30−1hが搭載する各センサのセンサデータを収集する中継装置20を、中継装置20−1〜20〜3から選択する。他の領域erB〜erDに位置するデバイス30−2a〜30−4eについても同様である。
中央サーバ10は、例えば、デバイス30から所定の距離範囲内に位置する複数の中継装置20のうち、電波環境が良い中継装置20を、当該デバイス30のセンサデータを収集する中継装置20として選択する。したがって、中継装置20の選択に応じて、複数の中継装置20の間の、同一の処理の冗長度が高くなる場合がある。処理の冗長度が高い場合、複数の中継装置20の間で多数の同一アプリケーションが動作し、中継装置20のリソースを効率的に利用できていないことを示す。
前述したとおり、本実施の形態におけるデバイス30は、移動可能なデバイス30を含む。図1に示すように、デバイス30−3dが領域erCから領域erDに移動すると、中央サーバ10は、デバイス30−3dが搭載するセンサのセンサデータを収集する中継装置20を、中継装置20−7〜20−9から選択する。そして、選択された中継装置20が、デバイス30−3dのセンサデータを処理するアプリケーションを搭載していない場合、当該中継装置20は、新たにアプリケーションを搭載する。
選択された中継装置20が新たなアプリケーションの搭載に要するリソースを有していない場合、当該中継装置20は、アプリケーションをインストールできず、デバイス30−3dのセンサデータを収集できない。これにより、中央サーバ10は、各デバイス30のセンサデータを的確に収集できない。したがって、デバイス30の移動に備えて、各中継装置20は、空きリソースを有していることが望ましい。つまり、中継装置20のリソースを効率的に利用することにより、アプリケーションが使用するリソースの量が抑えられていることが望ましい。
[本実施の形態の概要1]
したがって、本実施の形態における中央サーバ10は、各センサのセンサデータの処理を行う中継装置20を複数の中継装置20から選択する際に、各中継装置20が収集対象とするセンサに応じて規定された処理に基づいて、中継装置20を選択する。即ち、中央サーバ10は、中継装置20が処理の対象とするセンサに応じて規定された処理の、複数の中継装置20における合計数がより少ない各センサの中継装置20を候補として選択する。
つまり、本実施の形態における中央サーバ10は、各センサのセンサデータの処理を行う中継装置20を選択する際に、複数の中継装置20の間でアプリケーションの集約度を高めるように、各センサの中継装置20を選択する。これにより、情報処理システム100が有する中継装置20に搭載するアプリケーションの総数が低減し、中継装置20のリソースを効率的に利用することが可能になる。
また、中央サーバ10は、アプリケーションの総数を抑えることにより、新たなアプリケーションの搭載に備えて、中継装置20の空きリソースを増加させることができる。これにより、新たなアプリケーションを配備可能になり、中央サーバ10は、各センサのセンサデータをより確実に収集可能になる。また、リソースの不足による中継装置20の増設や、リソースの不足に応じて発生する障害やメンテナンス等の発生等を抑制可能になる。
図2は、本実施の形態におけるセンサの一例を示す図である。図2は、4つのセンサ303a〜303dを例示する。第1のデバイス30(図示せず)は温度センサ(1.01)303aを搭載し、第2のデバイス30(図示せず)は温度センサ(2.1)303bを搭載する。また、第3のデバイス30(図示せず)は湿度センサ(2.1)303cを搭載し、第4のデバイス30(図示せず)は加速度センサ(2.2)303dを搭載する。
温度センサ(1.01)303aは、バージョン「1.01」の温度センサを示す。温度センサ(2.1)303bは、バージョン「2.1」の温度センサを示す。つまり、温度センサ(1.01)303aと、温度センサ(2.1)303bとは、異なるバージョンの同一種類のセンサを示す。また、湿度センサ(2.1)303cは、バージョン「2.1」の湿度センサを、加速度センサ(2.2)303dは、バージョン「2.2」の加速度センサを示す。
図2に示すように、温度センサ(1.01)303aに応じて規定された処理を実行するアプリケーションは、アプリケーション1、8、9である。同様にして、温度センサ(2.1)303bに応じて規定された処理を実行するアプリケーションは、アプリケーション1−2、8、9である。さらに、湿度センサ(2.1)303cに規定された処理を実行するアプリケーションは、アプリケーション2、8、9であって、加速度センサ(2.2)303dに規定された処理を実行するアプリケーションは、アプリケーション5、8、11である。
図2の例に示すセンサ303a〜303dの間で、それぞれのセンサに応じて規定された処理を実行するアプリケーションのうち、アプリケーション8が共通する。アプリケーション8が実行する処理は、例えば、センサデータのデータベースへの格納処理を示す。また、温度センサ(1.01)303aと温度センサ(2.1)303bの間で、アプリケーション9が共通する。アプリケーション9が実行する処理は、例えば、温度センサのセンサデータの形式の変換処理を示す。また、アプリケーション1、1−2の処理は、バージョンに応じて異なる、温度センサのセンサデータの加工処理等を示す。
図3は、各センサのセンサデータを収集する中継装置20の第1の選択例を示す図である。中央サーバ10は、温度センサ(1.01)303a、温度センサ(2.1)303b、湿度センサ(2.1)303c、加速度センサ(2.2)303dの各センサデータを収集する中継装置20を、第1、第2の中継装置20−11、20−12から選択する。
図3に示す第1の選択例によると、第1の中継装置20−11は、温度センサ(1.01)303aと湿度センサ(2.1)303cのセンサデータを収集する。また、第2の中継装置20−12は、温度センサ(2.1)303bと加速度センサ(2.2)303dのセンサデータを収集する。温度センサ(1.01)303aと湿度センサ(2.1)303cの処理は、共通してアプリケーション8、9を含む。また、温度センサ(2.1)303bと、加速度センサ(2.2)303dの処理は、共通してアプリケーション8を含む。
したがって、第1の中継装置20−11は、4つのアプリケーション1、2、8、9を実行し、第2の中継装置20−12は、5つのアプリケーション1−2、5、8、9、11を実行する。第1の選択例によると、第1、第2の中継装置20−11、20−12が実行する処理の数の合計は、値「9(=4+5)」である。
図4は、各センサのセンサデータを収集する中継装置20の第2の選択例を示す図である。図4において、図3で示したものと同一のものは、同一の記号で示す。
図4に示す第2の選択例によると、第1の中継装置20−11は、温度センサ(1.01)303aと温度センサ(2.1)303bのセンサデータを収集する。また、第2の中継装置20−12は、湿度センサ(2.1)303cと加速度センサ(2.2)303dのセンサデータを収集する。
本実施の形態において、アプリケーション1−2は、アプリケーション1の機能を含む。つまり、アプリケーション1−2は、アプリケーション1の処理を実行可能である。したがって、温度センサ(1.01)303aと温度センサ(2.1)303bの処理は、共通してアプリケーション1−2(アプリケーション1を含む)、8、9を含む。また、湿度センサ(2.1)303cと、加速度センサ(2.2)303dの処理は、共通してアプリケーション8を含む。
したがって、第1の中継装置20−11は、3つのアプリケーション1−2、8、9を実行し、第2の中継装置20−12は、5つのアプリケーション2、5、8、9、11を実行する。第2の選択例によると、第1、第2の中継装置20−11、20−12が実行する処理の数の合計は、値「8(=3+5)」である。
本実施の形態の中央サーバ10は、各中継装置20が実行するアプリケーションの数の、第1、第2の中継装置20−11、20−12における合計数がより少ない、センサと中継装置20の組合せを選択する。したがって、中央サーバ10は、図4に示す第2の選択例を採用する。中継装置20のアプリケーションの合計数が少なく抑えられることは、アプリケーションの集約度が高く、中継装置20のリソースを効率的に利用していることを示す。このように、中央サーバ10は、中継装置20のリソースを効率的に利用するように各センサの中継装置20を選択できる。
[本実施の形態の概要2]
また、デバイス30の移動が生じると、中央サーバ10は、移動したデバイス30のセンサデータを収集する中継装置20を選択し直す。本実施の形態における中央サーバ10は、移動したデバイス30のセンサに応じて規定された1または複数の処理と、各中継装置20が処理対象とする各センサに応じて規定された処理とに基づいて、中継装置20の候補を選択する。即ち、中央サーバ10は、移動したセンサに応じて規定された処理のうち、中継装置20が処理の対象とする、各センサに応じて規定された処理の集合に含まれない処理の数がより少ない中継装置20を、移動したセンサの中継装置20の候補として選択する。
つまり、本実施の形態における中央サーバ10は、移動したデバイス30が搭載するセンサのセンサデータの処理を行う中継装置20を、複数の中継装置20の間でアプリケーションの集約度が向上するように選択する。これにより、情報処理システム100が有する中継装置20に搭載するアプリケーションの総数が低減し、中継装置20のリソースを効率的に利用することが可能になる。これにより、中央サーバ10は、各センサのセンサデータを確実に収集可能になり、中継装置20の増設や、障害やメンテナンス等の発生を抑制可能になる。
図5は、本実施の形態における、移動したデバイス30の中継装置20の選択例を示す図である。図5において、図3、図4で示したものと同一のものは、同一の記号で示す。図5に示す、各センサ303a〜303dのセンサデータの処理を実行する中継装置20−11、20−12の選択例は、図4に示した第2の選択例と同一である。
図5は、第3の中継装置20−13がセンサデータを収集していた輝度センサ(1.1)303fを搭載するデバイス30が、第3の中継装置20−13の近辺から第1、第2の中継装置20−11、20−12の近辺に移動した場合を例示する。中央サーバ10は、輝度センサ(1.1)303fのセンサデータを収集する中継装置20を、第1、第2の中継装置20−11、20−12から選択する。
図4で前述したとおり、第1の中継装置20−11はアプリケーション1−2、8、9を実行し、第2の中継装置20−12はアプリケーション2、5,8、9、11を実行する。一方、輝度センサ(1.1)303fに応じて規定された処理を実行するアプリケーションは、アプリケーション4、8、11である。
第1の中継装置20−11は、輝度センサ(1.1)303fに応じて規定された処理を実行するアプリケーション4、8、11のうち、アプリケーション4、11を実行しない。即ち、アプリケーション4、8、11のうち、第1の中継装置20−11が処理対象とするセンサに応じて規定された処理を実行するアプリケーション1−2、8、9に含まれないアプリケーションの数は2つである。
また、第2の中継装置20−12は、アプリケーション4、8、11のうち、アプリケーション4を実行しない。即ち、アプリケーション4、8、11のうち、第2の中継装置20−12が処理対象とするセンサに応じて規定された処理を実行するアプリケーション2、5,8、9、11に含まれないアプリケーションの数は1つである。
したがって、中央サーバ10は、アプリケーション4、8、11のうち、自中継装置20が実行するアプリケーションに含まれていないアプリケーションの数がより少ない第2の中継装置20−12を選択する。言い換えると、中央サーバ10は、複数の中継装置20のうち、実行するアプリケーションが、アプリケーション4、8、11をより多く含んでいる第2の中継装置20−12を、移動したセンサの中継装置20として選択する。第2の中継装置20−12は、追加してアプリケーション4を搭載する。
自中継装置20が実行するアプリケーションに含まれていないアプリケーションの数がより少ないことは、移動したセンサの処理のために新たにインストールするアプリケーションの数を少なく抑えられることを示す。これは、アプリケーションの集約度が高く、中継装置20のリソースを効率的に利用していることを示す。このように、中央サーバ10は、中継装置20のリソースを効率的に利用するように、移動したセンサの中継装置20を選択できる。
なお、図1〜図5で説明した中継装置20は、物理マシン、仮想マシンのいずれにしたがって実現されていてもよい。
図6は、中継装置20を仮想マシンにしたがって実現する場合の情報処理システム100の構成を説明する図である。図6において、図1で示したものと同一のものは、同一の記号で示す。図6は、図1に示した領域erC、erDの図示を省略する。
図6に示す物理マシン40−1、40−2(物理マシン40ともいう)はそれぞれ、中継装置20を示す仮想マシン20−1〜20−5を有する。図6の例によると、物理マシン40−1は3つの仮想マシン20−1〜20−3を実行し、物理マシン40−2は2つの仮想マシン20−4、20−5を実行する。
図6の例によると、例えば、中央サーバ10は、領域erAに位置するデバイス30−1a〜30−1hが搭載するセンサのセンサデータを収集する中継装置20を、仮想マシン20−1〜20−3から選択する。同様にして、中央サーバ10は、領域erBに位置するデバイス30−2a〜20−2hが搭載するセンサのセンサデータを収集する中継装置20を、仮想マシン20−4、20−5から選択する。
また、中継装置20を仮想マシンにしたがって実現する場合、中央サーバ10は、処理対象のセンサに応じて規定された処理に基づいて、各物理マシン40−1、40−2に配備する仮想マシン20−1〜20−5の数を設定してもよい。中継装置20を仮想マシンにしたがって実現することにより、中央サーバ10は、処理対象のセンサに応じて規定された処理に基づいて、仮想マシンの数を最適な値に設定できる。これにより、物理マシン40のリソースをより効率的に使用することが可能になる。詳細は、図16のフローチャート図にしたがって後述する。
次に、図7〜図11にしたがって、図1、図6に示した中央サーバ10のハードウェア構成図、及び、ソフトウェアブロック図を説明する。なお、本実施の形態では、中継装置20を仮想マシンにしたがって実現する場合を例示する。
[中央サーバのハードウェア構成]
図7は、図1、図6に示した中央サーバ10のハードウェア構成図である。図7に示す中央サーバ10は、例えば、CPU101、メモリ102、通信インタフェース部103を有する。各部は、バス104を介して相互に接続する。メモリ102は、RAM(Random Access Memory:RAM)130や不揮発性メモリ131等を備える。
CPU101は、バス104を介してメモリ102等と接続するとともに、中央サーバ10全体の制御を行う。通信インタフェース部103は、中継装置20や他の装置(図示せず)と有線通信または無線通信にしたがってデータの送受信等を行う。メモリ102のRAM130は、CPU101が処理を行うデータ等を記憶する。
メモリ102の不揮発性メモリ131は、CPU101が実行するOS(Operating System:OS)のプログラムを格納する領域(図示せず)を備える。また、不揮発性メモリ131は、仮想マシン配備プログラム格納領域110、センサ一覧情報格納領域111、アプリケーション一覧情報格納領域112、中継装置一覧情報格納領域113を備える。不揮発性メモリ131は、例えば、不揮発性半導体メモリ等を示す。
仮想マシン配備プログラム格納領域110の仮想マシン配備プログラム(以下、仮想マシン配備プログラム110と称する)は、CPU101の実行によって、仮想マシンの配備案の生成処理を行う。また、仮想マシン配備プログラム110は、作成した配備案にしたがって仮想マシンの配備を指示する。仮想マシン配備プログラム110の処理の詳細は、図11にしたがって説明する。
センサ一覧情報格納領域111のセンサ一覧情報(以下、センサ一覧情報111と称する)は、中央サーバ10がセンサデータを収集する対象のセンサの情報を有する。センサ一覧情報111は、例えば、データベースである。センサ一覧情報111の詳細については、図8にしたがって後述する。
アプリケーション一覧情報格納領域112のアプリケーション一覧情報(以下、アプリケーション一覧情報112と称する)は、センサデータの処理を行うアプリケーションの情報を有する。アプリケーション一覧情報112は、例えば、データベースである。アプリケーション一覧情報112の詳細については、図9にしたがって後述する。
中継装置一覧情報格納領域113の中継装置一覧情報(以下、中継装置一覧情報113と称する)は、中央サーバ10が管理の対象とする中継装置20に関する情報を有する。中継装置一覧情報113は、例えば、データベースである。中継装置一覧情報113の詳細については、図10にしたがって後述する。
[センサ一覧情報]
図8は、図7に示した、センサ一覧情報111の一例を説明する図である。センサ一覧情報111は、中央サーバ10がセンサデータを収集する対象のセンサに関する情報を有する。図7に示すセンサ一覧情報111は、センサの種類、センサのバージョン、センサが検出するセンサデータの処理を行うアプリケーションプログラム(以下、アプリケーションと称する)の識別名の情報を有する。アプリケーションは、前述したとおり、センサに応じて規定された処理を実行するアプリケーションを示す。なお、センサ一覧情報111は、さらに、センサのベンダー等の情報を有していてもよい。
図8の例に示すセンサ一覧情報111によると、図2で前述したとおり、バージョン「1.01」の温度センサが検出するセンサデータの処理を行うアプリケーションは、アプリケーション1、8、9である。また、センサ一覧情報111によると、バージョン「2.1」の温度センサが検出するセンサデータの処理を行うアプリケーションは、アプリケーション1−2、8、9である。同様にして、バージョン「2.1」の湿度センサが検出するセンサデータの処理を行うアプリケーションは、アプリケーション2、8、9である。図8に示すセンサ一覧情報111は、他のセンサについても、同様に各情報を有する。
[アプリケーション一覧情報]
図9は、図7に示した、アプリケーション一覧情報112の一例を説明する図である。アプリケーション一覧情報112は、センサデータの処理を実行する各アプリケーションの情報を有する。図9に示すアプリケーション一覧情報112は、アプリケーションの識別名、並列稼働限界数、包含関係、CPU性能指数、メモリの情報を有する。
アプリケーションの識別名は、図8に示したセンサ一覧情報111で示したとおりである。並列稼働限界数は、1つの中継装置20内で同時に実行可能な同一アプリケーションの数を示す。また、CPU性能指数は、アプリケーションの実行に要するCPUの性能の指標を示す。メモリは、アプリケーションの実行に使用するメモリの容量(GigaByte:GB)を示す。包含関係は、同一の種別のアプリケーションのバージョン間の包含関係を示す。
図9に示す、アプリケーション1−2の包含関係「バージョン1.0〜2.01」は、アプリケーション1−2が「バージョン1.0〜2.01」を含むことを示す。即ち、アプリケーション1−2が、アプリケーション1の機能を含み、アプリケーション1の処理を実行可能であることを示す。
また、図9の例に示すアプリケーション一覧情報112によると、アプリケーション1の並列稼働限界数は、値「2」である。したがって、同一の中継装置20内で、アプリケーション1を同時に2つ実行可能である。また、アプリケーション1の実行に要するCPUの性能指数は値「2」であって、アプリケーション1の実行に「0.5GB」のメモリ容量を使用することを示す。
また、図9の例に示すアプリケーション一覧情報112によると、アプリケーション3の並列稼働限界数は、値「1」である。したがって、同一の中継装置20内で、アプリケーション3を同時に2つ以上実行できない。一方、アプリケーション8の並列稼働限界数は、値「10」である。したがって、同一の中継装置20内で、アプリケーション8を10個まで同時に実行可能である。図9に示すアプリケーション一覧情報112は、他のアプリケーションについても、同様に、各情報を有する。
[中継装置一覧情報]
図10は、図7に示した、中継装置一覧情報113の一例を説明する図である。中継装置一覧情報113は、中央サーバ10が管理の対象とする中継装置20に関する情報を有する。図10に示す、中継装置一覧情報113は、中継装置20の識別名、範囲内センサ種別、位置情報(Location)、CPU性能指数、メモリの情報を有する。なお、仮想マシンにしたがって中継装置20を実現する場合、中継装置一覧情報113は、仮想マシンを搭載する物理マシン40(図6の40−1〜40−5)の情報を有する。
範囲内センサ種別は、物理マシン40(装置ともいう)が搭載する仮想マシン(中継装置20)が処理の対象とするセンサの識別名を示す。センサの識別名は、図8に示したセンサ一覧情報111が有するセンサの種類及びバージョンを含む情報である。位置情報は、所定の位置を基点とした、装置の相対位置(x,y)を示す。CPU性能指数は、装置が搭載するCPUの性能の指標値を示し、メモリは装置が搭載するメモリの容量を示す。
図10に示す中継装置一覧情報113によると、装置1の範囲内センサ種別は、温度センサ(1.01)、温度センサ(2.1)、湿度センサ(2.1)、加速度センサ(2.2)である。即ち、装置1の位置(0,0)から所定の距離範囲内に、温度センサ(1.01)、温度センサ(2.1)、湿度センサ(2.1)、加速度センサ(2.2)を搭載するデバイス30が位置することを示す。また、装置1のCPU性能指数は値「16」であって、メモリは値「8GB」である。
また、図10に示す中継装置一覧情報113によると、装置2の位置(50,0)から所定の距離範囲内に、温度センサ(2.1)、湿度センサ(2.3)、気圧センサ(2.1)を搭載するデバイス30が位置する。また、装置2のCPU性能指数は値「6」であって、メモリ数は値「4GB」である。他の装置についても、同様にして、各情報を有する。
[中央サーバのソフトウェアブロック図]
図11は、図7に示した中央サーバ10の仮想マシン配備プログラム110のソフトウェアブロック図である。図11において、図7で示したものと同一のものは、同一の記号で示す。
図11に示すように、図7に示した仮想マシン配備プログラム110は、センサアプリケーション情報管理モジュール121、中継装置情報管理モジュール122、配備命令作成モジュール123、仮想マシン配備制御モジュール124を有する。各モジュール121〜124の処理の詳細は、図16のフローチャート図にしたがって後述する。
センサアプリケーション情報管理モジュール121は、中央サーバ10が管理の対象とするセンサの情報をセンサ一覧情報111(図8)に格納する。また、センサアプリケーション情報管理モジュール121は、中央サーバ10が管理の対象とするアプリケーションの情報を、通信インタフェース部103にしたがってインターネット50等を介して受信し、アプリケーション一覧情報112(図9)に格納する。また、センサアプリケーション情報管理モジュール121は、センサとアプリケーションの情報を関連付けるとともに、センサの移動等に応じて、センサ一覧情報111及びアプリケーション一覧情報112を更新する。
中継装置情報管理モジュール122は、中央サーバ10が管理の対象とする中継装置20の情報を中継装置一覧情報113(図10)に格納する。中継装置情報管理モジュール122は、デバイス30の移動や追加に応じて、中継装置一覧情報113を更新する。
配備命令作成モジュール123は、センサ一覧情報111、アプリケーション一覧情報112、及び、中継装置一覧情報113を参照して、仮想マシンの配備案を作成する。仮想マシンの配備案は、各物理マシン40(装置)に配備する仮想マシンの数、及び、各仮想マシンに搭載するアプリケーションの情報を含む。また、配備命令作成モジュール123は、配備案に基づいて、仮想マシンの配備命令を生成し、仮想マシン配備制御モジュール124に出力する。
仮想マシン配備制御モジュール124は、配備命令に基づいて、物理マシン40に、中継装置20を示す仮想マシンを配備する。また、仮想マシン配備制御モジュール124は、配備案に基づいて、各中継装置20に、当該中継装置20がセンタデータの収集対象とするセンサの識別情報を通知する。
次に、図12、図13にしたがって、図6に示した、中継装置20を有する物理マシン40のハードウェア構成図及びソフトウェアブロック図を説明する。図12、図13は、1つの物理マシン40の例を説明するが、他の物理マシン40も同様である。
[中継装置のハードウェア構成図]
図12は、図6に示した中継装置20を有する物理マシン40のハードウェア構成図である。図12に示す物理マシン40は、例えば、CPU201、メモリ202、無線通信部203、通信インタフェース部204を有する。各部は、バス205を介して相互に接続する。メモリ202は、RAM220や不揮発性メモリ221等を備える。
無線通信部203は、アンテナ206を介して、デバイス30と無線通信にしたがってデータの送受信等を行う。また、通信インタフェース部204は、有線通信を介して、中央サーバ10とデータの送受信等を行う。なお、無線通信部203は、無線通信にしたがって、中央サーバ10とデータの送受信を行ってもよい。
CPU201は、バス205を介してメモリ202等と接続するとともに、物理マシン40全体の制御を行う。メモリ202のRAM220は、CPU201が処理を行うデータ等を記憶する。メモリ202の不揮発性メモリ221は、ハイパ−バイザプログラム格納領域230、仮想マシン1データ格納領域231、仮想マシン2データ格納領域232を備える。不揮発性メモリ221は、HDD(Hard disk drive:HDD)、不揮発性半導体メモリ等を示す。
ハイパ−バイザプログラム格納領域230のハイパ−バイザプログラム(以下、ハイパ−バイザプログラム230と称する)は、CPU201の実行によって、本実施の形態例におけるハイパ−バイザの処理を実現する。
仮想マシン1データ格納領域231の仮想マシン1データ(以下、仮想マシン1データ231と称する)は、ハイパ−バイザプログラム230によって参照または更新され、中継装置20を示す第1の仮想マシンとして動作する。仮想マシン1データ231は、仮想マシン1が実行するアプリケーション(プログラム)を含む。仮想マシン2データ格納領域232の仮想マシン2データ(以下、仮想マシン2データ232と称する)は、ハイパ−バイザプログラム230によって参照または更新され、中継装置20を示す第2の仮想マシンとして動作する。仮想マシン2データ232は、仮想マシン2が実行するアプリケーション(プログラム)を含む。
[中継装置のソフトウェアブロック図]
図13は、図12に示した仮想マシン1データ231のソフトウェアブロック図である。図13において、図12で示したものと同一のものは、同一の記号で示す。なお、図12に示した仮想マシン2データ232のソフトウェアブロック図も、仮想マシン1データ231と同様である。
図13に示すように、仮想マシン1データ231は、OS(オペレーションシステム)240、制御モジュール241、アプリケーションa1〜a3を有する。一例として、アプリケーションa1は、図2〜図4に例示したアプリケーション1−2に対応し、アプリケーションa2はアプリケーション8に対応し、アプリケーションa3はアプリケーション9に対応する。
図13に示したハイパ−バイザプログラム230は、仮想マシン1データ231に基づいて、OS240を実行するとともに、OS240上で制御モジュール241及びアプリケーションa1〜a3を動作させる。制御モジュール241は、自中継装置20が収集対象とするセンサの識別情報に基づいて、デバイス30が送信したセンサデータを受信し、対応するアプリケーションa1〜a3に引き渡す。
次に、図14、図15にしたがって、図1、図6に示したデバイス30のハードウェア構成図及びソフトウェアブロック図を説明する。なお、図14、図15は、1つのデバイス30の例を説明するが、他のデバイス30も同様である。図14、図15は、例えば、ウェアラブルデバイスの例を示す。
[デバイスのハードウェア構成図]
図14は、図1、図6に示したデバイス30のハードウェア構成図である。図14に示すデバイス30は、例えば、CPU301、メモリ302、センサ303、無線通信部304を有する。各部は、バス306を介して相互に接続する。メモリ302は、RAM401や不揮発性メモリ402等を備える。
CPU301は、バス306を介してメモリ302等と接続するとともに、デバイス30全体の制御を行う。センサ303は、温度、湿度、生体データ等の計測情報を検出する検出手段である。センサ303は、例えば、温度センサ、湿度センサ、生体センサ等である。無線通信部304は、アンテナ305を介して、中継装置20と無線通信にしたがってデータの送受信等を行う。アンテナ305は、無線電波による各種データの送受信を行う。
メモリ302のRAM310は、CPU301が処理を行うデータ等を記憶する。メモリ302の不揮発性メモリ311は、CPU301が実行するOSのプログラムを格納する領域(図示せず)を備える。また、不揮発性メモリ311は、データ送信プログラム格納領域320を備える。不揮発性メモリ311は、例えば、不揮発性半導体メモリ等を示す。データ送信プログラム格納領域320のデータ送信プログラム(以下、データ送信プログラム320と称する)は、CPU301の実行によって、センサデータの取得処理、及び、送信処理を実現する。
[デバイスのソフトウェアブロック図]
図15は、図14に示したデバイス30のソフトウェアブロックの構成図である。図15において、図14で示したものと同一のものは、同一の記号で示す。図15に示すように、図14に示したデータ送信プログラム320は、制御モジュール330、センシングモジュール331、送信モジュール332を有する。
制御モジュール330は、定期的に、センシングモジュール331にセンサデータの取得指示を出力する。センシングモジュール331は、制御モジュール330の指示に応じて、センサ303(図14)が検出したセンサデータを取得する。送信モジュール332は、センシングモジュール331が取得したセンサデータを、無線通信を介して中継装置20に送信する。
次に、図16にしたがって、図11に示した、中央サーバ10の仮想マシン配備プログラム110の処理の流れを説明する。本実施の形態は、中継装置20を仮想マシンにしたがって実現する場合を説明する。
[仮想マシン配備プログラムの処理]
図16は、図11に示した、中央サーバ10の仮想マシン配備プログラム110の処理を説明するフローチャート図である。
S11:仮想マシン配備プログラム110の配備命令作成モジュール123は、処理1にしたがって仮想マシンの配備案PLを作成する。
配備命令作成モジュール123は、処理1として、図3、図4で前述したとおり、処理対象とする1または複数のセンサに応じて規定された処理の、複数の中継装置(仮想マシン)20における合計がより少ない各センサの中継装置20を、候補として選択する。これにより、中継装置20に配備するアプリケーションの合計数を最少にし、中継装置20のリソースを効率的に利用することが可能になる。
また、本実施の形態における配備命令作成モジュール123は、さらに、中継装置内の処理(アプリケーション)の並列数が、処理に応じた並列稼働限界数を超えない中継装置20を、候補として選択する。アプリケーション一覧情報112(図9)で前述したとおり、各アプリケーションは、並列稼働限界数を有する。アプリケーションは、1つの中継装置内で、並列稼働限界数を超えて動作できない。したがって、中継装置内で動作するアプリケーションの数が並列稼働限界数を超える場合、センサ間でセンサデータの処理を実行するアプリケーションの競合(コンフリクト)が生じ、センサデータの処理を適切に実行できない場合が生じ得る。
したがって、アプリケーションの並列稼働限界数を満たすように各デバイス30の中継装置20を選択することにより、中継装置内のリソースの競合を回避しながら、中継装置20のリソースを効率的に利用するように、各センサの中継装置20を選択可能になる。これにより、中継装置20は、確実に、対象のセンサのセンサデータを処理できる。
また、配備命令作成モジュール123は、アプリケーションの並列稼働限界数を満たす仮想マシンの配備数をさらに算出し、算出した配備数の複数の仮想マシンから中継装置20の候補を選択してもよい。これにより、配備命令作成モジュール123は、アプリケーションを集約するにより、仮想マシンの配備数を、並列稼働限界数を満たす最少の値に設定することができる。したがって、アプリケーションの制限を満たしながら、仮想マシンを配備する物理マシン40のリソースを効率的に利用することが可能になる。工程S11の処理1の詳細は、図17〜図20にしたがって後述する。
S12:配備命令作成モジュール123は、工程S11にしたがって作成した配備案PLが、各中継装置20の性能、及び、同時接続数の条件を満たしているか否かを判定する。中継装置20の性能は、例えば、中継装置20のハードウェアのリソースであって、CPU性能指数やメモリを示す。同時接続数は、例えば、中継装置20のリソースやハードウェアに応じて設定された、当該中継装置20に同時に接続可能なデバイス30の数を示す。
S13:条件を満たしていない場合(S12のNo)、配備命令作成モジュール123は、処理2にしたがって、一部のセンサの代行案を生成する。なお、条件を満たす場合(S12のYes)、配備命令作成モジュール123は、工程S13の処理を行わない。
図10の中継装置一覧情報113で説明した、装置のCPU性能指数及びメモリの値を超えてアプリケーションが動作する場合、複数のアプリケーションによるリソースの競合(コンフリクト)や、デバイス間の中継装置20のリソースの競合が生じる。これにより、アプリケーションが適切に動作せず、中継装置20が一部のデバイス30のセンサデータを処理できない状態が生じ得る。
したがって、配備命令作成モジュール123は、工程S13として、性能及び同時接続数の条件を満たしていない中継装置20が処理対象とする一部のセンサの処理を、別の中継装置20に代行させる。これにより、アプリケーション間、または、デバイス間のリソースの競合を回避し、各センサのセンサデータの処理を確実に実行することが可能になる。したがって、中継装置20のリソースを効率的に利用しながら、中継装置20の性能や同時接続数の条件を満たすように、各センサの中継装置20を選択可能になる。工程S13の処理2の詳細は、図21〜図24にしたがって後述する。
S14:仮想マシン配備制御モジュール124は、配備案にしたがって、物理マシンへの仮想マシンの配備を指示するとともに、仮想マシンに対するアプリケーションのインストールを指示する。これにより、中継装置20は各デバイス30のセンサデータを収集して処理し、中央サーバ10に送信できる。
S15:仮想マシン配備制御モジュール124は、デバイス30の移動が生じたか否かを判定する。
S16:デバイス30の移動が生じると(S15のYes)、センサアプリケーション情報管理モジュール121は、センサ一覧情報111(図8)及びアプリケーション一覧情報112(図9)を更新する。そして、配備命令作成モジュール123は、センサ一覧情報111及びアプリケーション一覧情報112を参照し、処理3にしたがって、移動したデバイスが搭載するセンサの処理を行う中継装置20を選択する。
配備命令作成モジュール123は、処理3として、移動してきたセンサに応じて規定された処理のうち、中継装置20が処理の対象とする、各センサに応じて規定された処理の集合に含まれない処理の数がより少ない中継装置20を、候補として選択する。工程S16の処理の詳細は、図25にしたがって後述する。また、中継装置情報管理モジュール122は、中継装置20が処理対象とするセンサの変更に応じて、中継装置一覧情報113を更新する。
図17〜図20にしたがって、図11に示した配備命令作成モジュール123の処理1(図16のS11)の流れを詳細に説明する。
[処理1の流れ]
図17は、図11に示した配備命令作成モジュール123の処理1(図16のS11)の流れを説明する第1のフローチャート図である。
S21:配備命令作成モジュール123は、中継装置20を選択する対象の各デバイス30が搭載する各センサを検出する。また、配備命令作成モジュール123は、センサ一覧情報111(図8)を参照し、各センサに応じて規定された処理を実行するアプリケーションの一覧を取得(確認)する。
S22:配備命令作成モジュール123は、検出した各センサを1つのクラスタにまとめる。
S23:配備命令作成モジュール123は、工程S22で生成したクラスタが含む同一のアプリケーションを、1つのアプリケーションに集約する。
図18は、図17の工程S22、S23を説明する図である。図18において、図3、図4で示したものと同一のものは、同一の記号で示す。本実施の形態は、図2に示した4つのセンサの中継装置20を選択する場合を例示する。図2で前述したとおり、4つのセンサは、温度センサ(1.01)303a、温度センサ(2.1)303b、湿度センサ(2.1)303c、加速度センサ(2.2)303dである。
図18に示すように、配備命令作成モジュール123は、4つのセンサを、1つのクラスタcl1にまとめる(図17のS22)。また、配備命令作成モジュール123は、図18に示すように、センサ間で共通のアプリケーション(図18の例では、アプリケーション8、9)を、1つのアプリケーションとして集約する(図17のS23)。なお、アプリケーション1−2は、アプリケーション1を包含する。したがって、配備命令作成モジュール123は、アプリケーション1−2とアプリケーション1を、アプリケーション1−2に集約する(図17のS23)。図17のフローチャート図に説明に戻る。
S24:配備命令作成モジュール123は、アプリケーション一覧情報112(図9)を参照し、工程S23で生成したクラスタcl1が有する各アプリケーションが、並列稼働限界数を満たすか否かを判定する。つまり、配備命令作成モジュール123は、図18に示すクラスタcl1が有する同一のアプリケーションの合計数が、当該アプリケーションの並列稼働限界数以下であるかを判定する。
アプリケーション一覧情報112(図9)によると、アプリケーション8の並列稼働限界数は値「10」、アプリケーション9の並列稼働限界数は値「2」、アプリケーション1−2の並列稼働限界数は値「2」である。図18のクラスタcl1によると、3つのセンサ(温度センサ(1.01)、温度センサ(2.1)、湿度センサ(2.1))に共通して対応するアプリケーション9の並列稼働数は値「3」となり、並列稼働限界数「2」を満たさない(S24のNo)。並列稼働限界数を満たしていない場合(S24のNo)、配備命令作成モジュール123の処理は、図19に遷移する(A)。
S25:一方、並列稼働限界数を満たす場合(S24のYes)、配備命令作成モジュール123は、クラスタに基づく配備案を生成する。つまり、配備命令作成モジュール123は、1つのクラスタに対応する1つの仮想マシンを配備するとともに、当該仮想マシンにクラスタ内の各アプリケーションを配備する配備案を生成する。
図19は、図11に示した配備命令作成モジュール123の処理1(図16のS11)の流れを説明する第2のフローチャート図である。
S31:並列稼働限界数を満たしていない場合((A)、図17のS24のNo)、配備命令作成モジュール123は、クラスタの数を1つ増加させる。
S32:配備命令作成モジュール123は、増加させたクラスタに、既存のクラスタが含むセンサをランダムに割り当てる。例えば、配備命令作成モジュール123は、図3に示した第1の選択例に示すように、2つのクラスタにセンサを割り当てる。即ち、配備命令作成モジュール123は、第1のクラスタに温度センサ(1.01)303aと湿度センサ(2.1)303cを割り当て、第2のクラスタに温度センサ(2.1)303bと加速度センサ(2.2)303dを割り当てる。
S33:配備命令作成モジュール123は、図17の工程S23と同様に、各クラスタについて、同一のアプリケーションを1つのアプリケーションに集約する。また、配備命令作成モジュール123は、クラスタと当該クラスタに割り当てるアプリケーションの組合せを示す構成を記録する。
S34:配備命令作成モジュール123は、クラスタとアプリケーションとの組合せ全てを対象として、工程S35の検証を行ったか否かを判定する。
S35:組合せ全ての検証が完了していない場合(S34のNo)、配備命令作成モジュール123は、工程S33で記録した組合せが、アプリケーションの並列稼働限界数の条件を満たすか否かを判定する。
S36:並列稼働限界数の条件を満たす場合(S35のYes)、配備命令作成モジュール123は、クラスタとアプリケーションの組合せに対応する、各クラスタのアプリケーションと、複数のクラスタが含むアプリケーションの合計数を記録する。
図3に示した第1の選択例によると、第1、第2のクラスタが含む各アプリケーションの並列数は、並列稼働限界数の条件を満たす(S35のYes)。したがって、配備命令作成モジュール123は、第1のクラスタにアプリケーション1、2、8、9が対応し、第2のクラスタにアプリケーション1−2、5、8、9、11が対応する旨の組合せを記憶する(S36)。また、配備命令作成モジュール123は、第1、第2のクラスタのアプリケーションの合計数「9(=4+5)」を記録する。
並列稼働限界数を満たさない場合(S35のNo)、または、工程S36の後、配備命令作成モジュール123の処理は、工程S32に遷移し、複数のクラスタへのセンサの割り当てを再実行する。
S37:組合せ全ての検証が完了した場合(S34のYes)、配備命令作成モジュール123は、並列稼働限界数を満たすクラスタとアプリケーションとの組合せが存在したか否かを判定する。存在しない場合(S37のNo)、配備命令作成モジュール123は、工程S31に遷移し、さらに、クラスタの数を1つ増加させる。つまり、配備命令作成モジュール123は、3つのクラスタに基づいて工程S32〜S37の処理を行う。
配備命令作成モジュール123は、図4に示した第2の選択例にしたがって、2つのクラスタにセンサを割り当てる(S32)。即ち、配備命令作成モジュール123は、第1のクラスタに温度センサ(1.01)303aと温度センサ(2.1)303bを割り当て、第2のクラスタに湿度センサ(2.1)303cと加速度センサ(2.2)303dを割り当てる。
また、図4に示した第2の選択例によると、第1、第2のクラスタが含む各アプリケーションの並列数は、並列稼働限界数の条件を満たす(S35のYes)。したがって、配備命令作成モジュール123は、第1のクラスタにアプリケーション1−2、8、9が対応し、第2のクラスタにアプリケーション2、5、8、9、11が対応する旨の組合せを記録する(S36)。また、配備命令作成モジュール123は、第1、第2のクラスタのアプリケーションの合計数「8(=3+5)」を記録する。
並列稼働限界数を満たす組合せが存在する場合(S37のYes)、配備命令作成モジュール123の処理は、図20のフローチャート図に遷移する(B)。
図20は、図11に示した配備命令作成モジュール123の処理1(図16のS11)の流れを説明する第3のフローチャート図である。
S41:配備命令作成モジュール123は、記録した複数の組合せから、アプリケーションの合計数がより小さい組合せを選択し、選択した組合せに基づいて配備案を生成する。
図3に示した第1の選択例のアプリケーションの合計数は値「9」であって、図4に示した第2の選択例のアプリケーションの合計数は値「8」である。したがって、配備命令作成モジュール123は、第2の選択例に基づいて配備案を生成する。配備案は、装置1に2つの仮想マシンを配備するとともに、第1の仮想マシンにアプリケーション1−2、8、9を配備し、第2の仮想マシンにアプリケーション2、5、8、9、11を配備する旨の情報を含む。
このように、配備命令作成モジュール123は、各センサと中継装置20の第1の組合せに基づいた、複数の中継装置20が処理対象とするセンサに応じて規定された処理の合計数を算出する。また、配備命令作成モジュール123は、別の第2の組合せに基づいた、複数の中継装置20が処理対象とするセンサに応じて規定された処理の合計数を算出する。そして、配備命令作成モジュール123は、第1、第2の組合せに基づく処理の合計数を比較し、合計数が少ない組合せに基づいて中継装置20の候補を選択する。
これにより、配備命令作成モジュール123は、中継装置20に配備するアプリケーションの合計数を最少にすることができる。また、配備命令作成モジュール123は、配備する仮想マシンの数を、アプリケーションの並列稼働限界数を満たす最少の値に設定できる。したがって、アプリケーションの制約を満たしながら、アプリケーションの合計数、及び、配備する仮想マシンの数を最少に抑え、リソースを効率的に利用することが可能になる。
S42:配備命令作成モジュール123は、作成した配備案が、中継装置20の性能の条件を満たしているか否かを判定する。なお、工程S42、S43の判定処理は、図16のフローチャート図の工程S12に対応する。
具体的に、配備命令作成モジュール123は、中継装置一覧情報113を参照し、装置のリソース(CPU性能指数、メモリ)を取得する。また、配備命令作成モジュール123は、アプリケーション一覧情報112(図9)を参照し、配備案に基づくアプリケーションの使用リソース量(CPU性能指数、メモリ)を取得する。そして、配備命令作成モジュール123は、配備案に基づいて使用するリソース量の合計が、装置のリソースの範囲内に収まるか否かを判定する。
図4に示した第2の選択例を示す配備案を例示して説明する。アプリケーション一覧情報112(図9)によると、第1の仮想マシンに配備するアプリケーション1−2、8、9が使用するCPU性能指数の合計は値「3(=2+0.5+0.5)」である。また、第1の仮想マシンに配備するアプリケーション1−2、8、9が使用するメモリの合計は「0.7GB(=0.5+0.1+0.1)」である。同様にして、第2の仮想マシンに配備するアプリケーション2、5、8、9、11が使用するCPU性能指数の合計は値「7.5」であって、使用するメモリの合計は「3.3GB」である。
したがって、装置1で動作するアプリケーションが使用するCPU性能指数の合計は値「10.5(=3+7.5)」であって、使用するメモリの合計は「4.0(=0.7+3.3)GB」である。これに対し、中継装置一覧情報113(図10)によると、装置1のCPU性能指数は値「16」、メモリは値「8GB」である。したがって、装置1で動作するアプリケーションが使用するリソースの総量は、装置1のリソースの範囲内に収まる(S42のYes)。
ここで、作成した配備案が、中継装置20の性能の条件を満たしていない場合(S42のNo)を例示する。仮に、装置1のCPU性能指数が値「16」ではなく値「11」、メモリが値「8GB」ではなく値「4.5GB」であって、さらに輝度センサ(2.01)を処理対象とする場合、配備案は装置の性能の条件を満たさない(S42のNo)。
アプリケーション一覧情報112(図9)によると、輝度センサ(2.01)のセンサデータを処理するアプリケーションは、アプリケーション4−1、8、11である。例えば、第2の仮想マシンがさらに輝度センサ(2.01)のセンサデータを処理する場合、第2の仮想マシンは、さらに、アプリケーション4−1を搭載する。アプリケーション4−1のCPU性能指数は値「1」であって、使用メモリは値「1GB」である。
したがって、装置1で動作するアプリケーションが使用するCPU性能指数の合計は値「11.5(=10.5+1)」、使用するメモリの合計は「5.0(=4.0+1.0)GB」となる。したがって、配備案(CPU性能指数「11.5」、メモリ「5.0GB」)は、装置1の性能(CPU性能指数「11」、メモリ「4.5GB」)の条件を満たさない(S42のNo)。
S43:作成した配備案が、中継装置20の性能の条件を満たす場合(S42のYes)、配備命令作成モジュール123は、作成した配備案が、中継装置20の同時接続数の条件を満たしているか否かを判定する。具体的に、配備命令作成モジュール123は、配備案に基づいて接続するデバイス30の数が、装置の同時接続数内に収まるか否かを判定する。
中継装置20の性能の条件を満たす場合(S43のYes)、配備命令作成モジュール123は、処理1を終了する。そして、配備命令作成モジュール123は、作成した配備案に基づく配備命令を、仮想マシン配備制御モジュール124に出力する。
例えば、装置1の同時接続数が100であって、装置1が配備案に基づいて処理の対象とするデバイス30の数が110個である場合、装置1の同時接続数は、作成した配備案に基づく接続数を満たしていない(S43のNo)。
S44:作成した配備案が、中継装置20の性能または同時接続数の条件を満たさない場合(S42のNo、S43のNo)、配備命令作成モジュール123は、処理2を行う。工程S44の処理は、図16のフローチャート図の工程S13に対応する。
[処理2の流れ]
次に、図21〜図24にしたがって、図16、図20に示した配備命令作成モジュール123の処理2(図16のS13、図20のS44)の流れを詳細に説明する。
図21は、図11に示した配備命令作成モジュール123の処理2(図16のS13、図20のS44)の流れを説明する第1のフローチャート図である。
S51:配備命令作成モジュール123は、性能または同時接続数の条件を満たしていない中継装置20が処理対象とするセンサから、性能要件が最も小さいセンサを選択する。
性能の条件を満たしていない場合(図20のS42のNo)、配備命令作成モジュール123は、アプリケーション一覧情報112(図9)を参照し、中継装置20が処理対象とする各センサのうち、CPU性能指数及びメモリが最も小さいセンサを選択する。図20の工程S42に示した例によると、装置1が処理対象とする5つのセンサのうち、CPU性能指数及びメモリが最も小さいセンサは、例えば、輝度センサ(2.01)である。
一方、同時接続数の条件を満たしていない場合(図20のS43のNo)、配備命令作成モジュール123は、デバイス30の数が最も少ないセンサを選択する。図20の工程S43に示した例によると、装置1が処理対象とする5つのセンサのうち、輝度センサ(2.01)を搭載するデバイス30の数が最も少ない。例えば、輝度センサ(2.01)を搭載するデバイス30の数は10個である。
S52:配備命令作成モジュール123は、中継装置一覧情報113(図10)が有する位置情報を参照し、選択したセンサからより近い場所に位置する装置を順次、検出する。例えば、配備命令作成モジュール123は、輝度センサ(2.01)を搭載するデバイス30から最も近い場所に位置する装置2を検出する。なお、近い位置に複数の装置が存在する場合、配備命令作成モジュール123は、いずれかの装置を選択する。
S53:配備命令作成モジュール123は、検出した装置全てについて、選択したセンサのセンサデータの処理を代行できるか否かの検証(S54、S55)を完了したか判定する。検証が完了した場合(S53のYes)、即ち、処理を代行できる中継装置20が見つからなかった場合、配備命令作成モジュール123の処理は、図23のフローチャート図に遷移する(D)。
S54:配備命令作成モジュール123は、検出した装置が実行する各仮想マシン(中継装置20)が、選択したセンサと同一のセンサを処理対象とするか否かを判定する。即ち、配備命令作成モジュール123は、選択したセンサと同一のセンサを処理の対象とする中継装置20を、当該センサの処理を代行する中継装置20として選択する。
選択したセンサと同一のセンサを処理対象とする中継装置20に、選択したセンサの処理を代行させることにより、代行させる中継装置20に新たに当該センサの処理を実行するアプリケーションをインストールする必要がない。したがって、配備命令作成モジュール123は、中継装置20のリソースを効率的に利用するようにセンサの中継装置20を選択できる。
S55:同一のセンサのセンサデータを処理対象としない場合(S54のNo)、配備命令作成モジュール123は、抽出した仮想マシンが、選択したセンサに応じて規定された処理を実行するアプリケーションを実行するか否かを判定する。即ち、配備命令作成モジュール123は、選択したセンサに応じて規定された処理と同一の処理を実行する中継装置20を、当該センサの処理を代行する中継装置20として選択する。
選択したセンサに応じて規定された処理と同一の処理を実行する中継装置20に、選択したセンサの処理を代行させることにより、代行させる中継装置20に新たに当該センサの処理を実行するアプリケーションをインストールする必要がない。したがって、配備命令作成モジュール123は、中継装置20のリソースを効率的に利用するようにセンサの中継装置20を選択できる。
同一の処理を実行しない場合(S55のNo)、配備命令作成モジュール123の処理は、工程S52に遷移する。即ち、配備命令作成モジュール123は、選択したセンサを搭載するデバイス30から、次に近い場所に位置する別の装置を検出する。
図22は、本実施の形態における装置2〜4が処理対象とするセンサを示す図である。図22に示すように、装置2(40−12)は、1つの仮想マシン20−22を実行し、温度センサ(2.1)303b、湿度センサ(2.3)303j、気圧センサ(2.1)303iのセンサデータを処理対象とする。即ち、装置2の仮想マシン20−22は、輝度センサ(2.01)303eを処理対象としない(S54のNo)。また、装置2の仮想マシン20−22は、輝度センサ(2.01)303eに応じて規定された処理を実行するアプリケーション4−1、8、11のうち、アプリケーション4−1、11を実行しない(S55のNo)。
したがって、配備命令作成モジュール123は、次に、装置3(40−13)を検出する(S52)。図22の例によると、装置3(40−13)は、1つの仮想マシン20−23を実行し、磁場センサ(1.51)303g、方角センサ(1.1)303hを処理対象とする。したがって、装置3の仮想マシン20−23は、輝度センサ(2.01)303eを処理対象としない(S54のNo)。また、装置3の仮想マシン20−23は、アプリケーション4−1、11を実行しない(S55のNo)。
次に、配備命令作成モジュール123は、装置4(40−14)を検出する(S52)。図22の例によると、装置4が実行する仮想マシン20−24は、輝度センサ(2.01)303eを処理対象とする(S54のYes)。
S56:仮想マシンが同一のセンサを処理対象とする場合(S54のYes)、または、同一の処理を実行する場合(S55のYes)、配備命令作成モジュール123は、デバイス30の接続数の判定処理を行う。配備命令作成モジュール123は、選択したセンサのセンサデータの処理を代行した場合における中継装置20の接続数が、中継装置20の同時接続数を満たすか否かを判定する。
同時接続数を満たさない場合(S56のNo)、配備命令作成モジュール123は、工程S52に遷移し、選択したセンサを搭載するデバイス30から、次に近い場所に位置する別の装置を検出する。
例えば、装置4の同時接続数が「100」、装置4が処理対象とするデバイス30の数が「85」である場合を例示する。また、装置1が処理対象とする輝度センサ(2.01)303eを搭載するデバイス30の数は「10」である。装置4の仮想マシン20−24が、装置1の輝度センサ(2.01)303eの処理を代行する場合、装置4の接続数は「95(=85+10)」となり、同時接続数を満たす(S56のYes)。
S57:同時接続数を満たす場合(S56のYes)、配備命令作成モジュール123は、抽出した仮想マシンに、選択したセンサのセンサデータの処理を代行させる。つまり、配備命令作成モジュール123は、装置4で動作する仮想マシン20−24に、装置1が処理対象としていた輝度センサ(2.01)303eの処理を代行させる。また、配備命令作成モジュール123は、装置1の配備案から輝度センサ(2.01)303eを削除する。そして、配備命令作成モジュール123の処理は、図24のフローチャート図の処理に遷移する(E)。
図23は、図11に示した配備命令作成モジュール123の処理2(図16のS13、図20のS44)の流れを説明する第2のフローチャート図である。図23は、センサデータの処理を代行できる仮想マシン(中継装置20)が見つからなかった場合((D)、図21のS53のYes)の処理を示す。例えば、いずれの装置も輝度センサ(2.01)303eを処理対象とせず、アプリケーション4−1、8、11を搭載していない場合、図23のフローチャート図に遷移する。
S61:配備命令作成モジュール123は、図21の工程S52と同様にして、選択したセンサを搭載するデバイス30から、距離が近い装置を順次、検出する。そして、配備命令作成モジュール123は、中継装置一覧情報113(図10)を参照して、各装置のリソースを取得する。配備命令作成モジュール123は、装置2のリソースを取得する。
S62:配備命令作成モジュール123は、選択したセンサのセンサデータを処理するアプリケーションを、検出した装置に配備可能であるか否かを判定する。つまり、配備命令作成モジュール123は、検出した装置が、選択したセンサの処理を実行するアプリケーションを配備可能な空きリソースを有するか否かを判定する。
中継装置一覧情報113(図10)によると、装置2のCPU性能指数は値「6」、メモリは値「4GB」である。また、例えば、配備案に基づく装置2に配備予定のアプリケーションが使用するCPU性能指数は値「5.5」、メモリは値「3.3GB」である。装置2が輝度センサ(2.01)303eを処理対象とする場合、図22で説明したとおり、装置2は、新たにアプリケーション4−1、11を搭載する。アプリケーション一覧情報112(図9)によると、アプリケーション4−1、11が使用するCPU性能指数の合計は値「1.5」、メモリの合計は値「1.1GB」である。したがって、装置2は、輝度センサ(2.01)303eの配備に必要なリソースを有していない(S62のNo)。
配備可能ではない場合(S62のNo)、配備命令作成モジュール123は、工程S61に遷移し、次に近い場所に位置する装置3のリソースを取得する。装置3のCPU性能指数は値「8」、メモリは値「4.0GB」である。また、例えば、配備案に基づく装置3に配備予定のアプリケーションが使用するCPU性能指数は値「6.5」、メモリは値「2.7GB」である。したがって、装置3は、アプリケーション4−1、11の配備に必要なリソースを有する(S62のYes)。
S63:配備可能である場合(S62のYes)、配備命令作成モジュール123は、選択したセンサのセンサデータを処理するために、追加して配備するアプリケーションを検出する。例えば、配備命令作成モジュール123は、装置3に追加して配備するアプリケーション4−1、11を検出する。
S64:配備命令作成モジュール123は、装置全てを対象として、工程S62、S63の処理を行ったか否かを判定する。
本実施の形態では、配備命令作成モジュール123は、さらに、装置4のリソース(CPU性能指数「10」、メモリ「6.0GB」)を取得する。例えば、配備案に基づく装置4に配備予定のアプリケーションが使用するCPU性能指数は値「5」、メモリは値「2.2GB」である。装置4が輝度センサ(2.01)を処理対象とする場合、装置4は、新たにアプリケーション4−1(CPU性能指数「1」、メモリ「1GB」)を搭載すればよい。したがって、装置4は、アプリケーション4−1の配備に必要なリソースを有する(S62のYes)。
S65:装置全てを対象とした工程S62、S63の処理が完了すると(S64のYes)、配備命令作成モジュール123は、選択したセンサのセンサデータの処理を代行可能な装置を検出したか否かを判定する。
S66:装置を検出した場合(S65のYes)、配備命令作成モジュール123は、選択したセンサの処理を行うアプリケーションを、処理を代行する装置に追加して配備する。
また、配備可能な複数の装置を検出した場合、配備命令作成モジュール123は、追加して配備するアプリケーションの数が少ない装置を選択する。したがって、配備命令作成モジュール123は、装置3、装置4のうち、配備するアプリケーションの数がより少ない装置4を選択する。これにより、中継装置20に配備するアプリケーションの合計数を抑えることが可能になる。そして、配備命令作成モジュール123は、装置1の配備案からアプリケーション4−1、11を削除するとともに、装置4の配備案にアプリケーション4−1を追加する。
工程S65またはS66の後、配備命令作成モジュール123は、図24のフローチャート図の処理に遷移する(E)。
図24は、図11に示した配備命令作成モジュール123の処理2(図16のS13、図20のS44)の流れを説明する第3のフローチャート図である。
S71:配備命令作成モジュール123は、他の中継装置20による代行により、中継装置20の性能または同時接続数の条件を満たすようになったか否かを判定する。
S72:満たす場合(S71のYes)、配備命令作成モジュール123は、配備案と、他の中継装置20による代行案とを出力する。
S73:一方、満たしていない場合(S71のNo)、配備命令作成モジュール123は、図21の工程S51と同様にして、次に、性能要件が小さいセンサを選択する。
S74:次に性能要件が小さいセンサが存在するか否かを判定する。
S75:存在しない場合(S74のYes)、配備命令作成モジュール123は、処理2を終了する。配備命令作成モジュール123は、配備案が中継装置20の性能や同時接続数の条件を満たしていない状態であっても、配備案にしたがって配備を指示する。
一方、センサが存在する場合(S74のNo)、配備命令作成モジュール123は、図21の工程S52に遷移し、新たに選択したセンサの処理を代行する中継装置20を検出する(F)。
このように、本実施の形態における配備命令作成モジュール123は、まず、アプリケーションを追加することなく代行が可能な中継装置20を検出する。そして、アプリケーションを追加することなく代行が可能な中継装置20がない場合に、配備命令作成モジュール123は、追加してアプリケーションを配備可能なリソースを有する中継装置20を検出する。したがって、配備命令作成モジュール123は、中継装置20のリソースを効率的に利用するように、センサの処理を代行する中継装置20を選択できる。
[処理3の流れ]
次に、図25にしたがって、図16に示した配備命令作成モジュール123の処理3(図16のS16)の流れを詳細に説明する。
図25は、図11に示した配備命令作成モジュール123の処理3(図16のS16)の流れを説明するフローチャート図である。
S81:配備命令作成モジュール123は、デバイス30の移動を検出すると、当該デバイス30から所定の距離範囲内に位置する装置を抽出する。また、センサアプリケーション情報管理モジュール121は、センサ一覧情報111(図8)、アプリケーション一覧情報112(図9)を更新する。
例えば、新たに、酸素濃度センサを搭載するデバイス30が移動してきた場合、センサアプリケーション情報管理モジュール121は、酸素濃度センサの情報をセンサ一覧情報111に追加する。また、センサアプリケーション情報管理モジュール121は、酸素濃度センサに応じて規定された処理を実行するアプリケーションの情報をアプリケーション一覧情報112に追加する。
一方、湿度センサ(2.1)を搭載するデバイス30が移動して不在になった場合を例示する。センサアプリケーション情報管理モジュール121は、湿度センサ(2.1)を搭載するデバイス30が他に存在しない場合、センサ一覧情報111から湿度センサ(2.1)の情報を削除する。また、センサアプリケーション情報管理モジュール121は、湿度センサ(2.1)のみに関連するアプリケーションの情報を、アプリケーション一覧情報112から削除する。具体的に、センサアプリケーション情報管理モジュール121は、アプリケーション2の情報を削除する。
S82:配備命令作成モジュール123は、抽出した、複数の中継装置20から、移動したデバイス30が搭載するセンサの中継装置20を選択する。配備命令作成モジュール123は、移動したデバイス30のセンサに応じて規定された処理のうち、中継装置20が処理対象とする、各センサに応じて規定された処理の集合に含まれない処理数がより少ない中継装置20を選択する。
図5で前述した、輝度センサ(1.1)303fを搭載するデバイス30が移動した場合を例示する。図5に示した第1、第2の中継装置20−11、20−12は、装置1に配備する第1、第2の仮想マシンに対応し、図5に示した第3の中継装置20−13は、装置4の仮想マシン20−24に対応する。配備命令作成モジュール123は、輝度センサ(1.1)303fの中継装置20を、第1、第2の仮想マシンから選択する。
図5の例によると、配備命令作成モジュール123は、アプリケーション4、8、11のうち、第1の仮想マシンが処理対象とする各センサに応じて規定されたアプリケーション1−2、8、9に含まれない処理の数「2」を算出する。また、配備命令作成モジュール123は、アプリケーション4、8、11のうち、第2の仮想マシンが処理対象とする各センサに応じて規定されたアプリケーション2、5、8、9、11に含まれない処理の数「1」を算出する。そして、配備命令作成モジュール123は、第1の仮想マシンの処理集合に含まれない数「2」と第2の仮想マシンの処理集合に含まれない処理の数「1」を比較し、数がより少ない第2の仮想マシンを中継装置20として選択する。
これにより、配備命令作成モジュール123は、中継装置20のアプリケーションの合計数が最少になるように、移動したデバイス30が搭載するセンサの中継装置20を選択できる。したがって、配備命令作成モジュール123は、中継装置20のリソースを効率的に利用するように、移動したデバイス30の中継装置20を選択できる。
S83:配備命令作成モジュール123は、移動したデバイス30が搭載するセンサの処理を行う中継装置20が、性能の条件を満たしているか否かを判定する。配備命令作成モジュール123は、選択した中継装置20のアプリケーションが使用するリソースの合計が、装置のリソースの範囲内に収まるか否かを判定する。
S84:性能の条件を満たす場合(S83のYes)、配備命令作成モジュール123は、移動したデバイス30が搭載するセンサの処理を行う中継装置20が、同時接続数の条件を満たしているか否かを判定する。
S85:いずれかの条件を満たしていない場合(S83のNo、S84のNo)、配備命令作成モジュール123は、図21〜図24で説明した処理2を行う。
S86:いずれの条件も満たす場合(S84のYes)、配備命令作成モジュール123は、移動したデバイス30が搭載するセンサの処理を行っていた中継装置20から、当該センサのみに関連するアプリケーションの情報を削除する。
例えば、図5の例によると、装置4の仮想マシン20−24が、他のデバイス30から輝度センサ(1.1)303fのセンサデータを収集しない場合、配備命令作成モジュール123は、仮想マシン20−24からアプリケーション4を削除する。なお、仮想マシン20−24が、他のデバイス30から輝度センサ(1.1)303fのセンサデータを収集する場合、配備命令作成モジュール123は、アプリケーション4を削除しない。また、中継装置情報管理モジュール122は、中継装置一覧情報113(図10)の装置4の情報から輝度センサ(1.1)303fの情報を削除するとともに、装置1の情報に、輝度センサ(1.1)303fの情報を追加する。
[他の実施の形態]
なお、上記の実施の形態は、中継装置20を仮想マシンにしたがって実現する場合を例示した。ただし、中継装置20を物理マシンで実現する場合についても、同様にして、中継装置20のリソースを効率的に利用するように各センサの中継装置20を選択可能になる。
なお、配備命令作成モジュール123は、処理2において、センサの処理を代行する中継装置20として、センサを搭載するデバイス30が通信できない場所に位置する中継装置20を選択してもよい。選択された中継装置20は、例えば、別の中継装置20や中央サーバ10を経由してセンサデータを受信し処理を行う。これにより、中継装置20に配備するアプリケーションの合計数をより低減させ、中継装置20のリソースを効率的に利用することが可能になる。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
処理部が、1又は複数の機器から前記機器のセンサが検出したセンサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置のうち、特定の中継装置が前記処理の対象とする特定のセンサを他の中継装置の前記処理の対象に変更する際に、該特定のセンサに応じて規定された1又は複数の処理のうち、前記中継装置が前記処理の対象とする、各センサに応じて規定された処理の集合に含まれない処理の数がより少ない前記中継装置を、前記他の中継装置の候補として選択する、
中継装置の選択方法。
(付記2)
処理部が、1又は複数の機器から前記機器のセンサが検出したセンサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置から、各センサの前記処理を実行する前記中継装置を選択する際に、前記中継装置が前記処理の対象とするセンサに応じて規定された処理の、前記複数の中継装置における合計数がより少ない前記各センサの前記中継装置を、前記中継装置の候補として選択する、
中継装置の選択方法。
(付記3)
付記1または2において、
前記選択は、前記中継装置内の前記処理の並列数が、前記処理に応じて規定された所定値を超えない前記中継装置を、前記候補として選択する、
中継装置の選択方法。
(付記4)
付記3において、
前記選択は、前記選択は、さらに、仮想マシンにしたがって構成する前記中継装置内の前記処理の前記並列数が、前記処理に応じて規定された所定値を超えない前記中継装置の配備数を算出し、算出した前記配備数の前記中継装置から前記中継装置の候補を選択する、
中継装置の選択方法。
(付記5)
付記1乃至4のいずれかにおいて、
前記選択は、選択した前記中継装置の候補が、前記中継装置の性能に関する条件、前記機器との接続数に関する条件のいずれか又は両方を満たしていない場合、さらに、選択した前記中継装置の候補が前記処理の対象とする一部のセンサの前記処理を代行する中継装置を選択する、
中継装置の選択方法。
(付記6)
付記5において、
前記選択は、選択した前記中継装置の候補が前記処理の対象とする一部のセンサと同一のセンサを前記処理の対象とする前記中継装置を、前記一部のセンサの処理を代行する中継装置として選択する、
中継装置の選択方法。
(付記7)
付記5において、
前記選択は、選択した前記中継装置の候補が前記処理の対象とする一部のセンサに応じて規定された処理と同一の処理を実行する前記中継装置を、前記一部のセンサの処理を代行する中継装置として選択する、
中継装置の選択方法。
(付記8)
付記1において、
前記選択は、前記特定のセンサに応じて規定された処理のうち、第1の中継装置が前記処理の対象とする各センサに応じて規定された処理の第1の集合に含まれない処理の数と、第2の中継装置が前記処理の対象とする各センサに応じて規定された処理の第2の集合に含まれない処理の数とを比較し、当該数がより少ない中継装置を前記他の中継装置の候補として選択する、
中継装置の選択方法。
(付記9)
付記2において、
前記選択は、各センサと前記第1、第2の中継装置の第1の組合せに基づいた、第1、第2の中継装置が前記処理の対象とするセンサに応じて規定された処理の合計数と、第2の組合せに基づいた、第1、第2の中継装置が前記処理の対象とするセンサに応じて規定された処理の合計数とを比較し、前記合計数が少ない組合せに基づいて前記中継装置の候補を選択する、
中継装置の選択方法。
(付記10)
1又は複数の機器から前記機器のセンサが検出したセンサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置のうち、特定の中継装置が前記処理の対象とする特定のセンサを他の中継装置の前記処理の対象に変更する際に、該特定のセンサに応じて規定された1又は複数の処理のうち、前記中継装置が前記処理の対象とする、各センサに応じて規定された処理の集合に含まれない処理の数がより少ない前記中継装置を、前記他の中継装置の候補として選択する、
処理をコンピュータに実行させる中継装置の選択プログラム。
(付記11)
1又は複数の機器から前記機器のセンサが検出したセンサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置から、各センサの前記処理を実行する前記中継装置を選択する際に、前記中継装置が前記処理の対象とするセンサに応じて規定された処理の、前記複数の中継装置における合計数がより少ない前記各センサの前記中継装置を、前記中継装置の候補として選択する、
処理をコンピュータに実行させる中継装置の選択プログラム。
(付記12)
付記10または11において、
前記選択は、前記中継装置内の前記処理の並列数が、前記処理に応じて規定された所定値を超えない前記中継装置を、前記候補として選択する、
中継装置の選択プログラム。
(付記13)
付記12において、
前記選択は、さらに、仮想マシンにしたがって構成する前記中継装置内の前記処理の前記並列数が、前記処理に応じて規定された所定値を超えない前記中継装置の配備数を算出し、算出した前記配備数の前記中継装置から前記中継装置の候補を選択する、
中継装置の選択プログラム。
(付記14)
付記10乃至13のいずれかにおいて、
前記選択は、選択した前記中継装置の候補が、前記中継装置の性能に関する条件、前記機器との接続数に関する条件のいずれか又は両方を満たしていない場合、さらに、選択した前記中継装置の候補が前記処理の対象とする一部のセンサの前記処理を代行する中継装置を選択する、
中継装置の選択プログラム。
(付記15)
付記14において、
前記選択は、選択した前記中継装置の候補が前記処理の対象とする一部のセンサと同一のセンサを前記処理の対象とする前記中継装置を、前記一部のセンサの処理を代行する中継装置として選択する、
中継装置の選択プログラム。
(付記16)
付記14において、
前記選択は、選択した前記中継装置の候補が前記処理の対象とする一部のセンサに応じて規定された処理と同一の処理を実行する前記中継装置を、前記一部のセンサの処理を代行する中継装置として選択する、
中継装置の選択プログラム。
(付記17)
センサが検出したセンサデータをそれぞれ送信する複数の機器と、
1又は複数の機器から前記センサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置と、
前記処理結果を受信する情報処理装置と、を有し、
前記情報処理装置は、前記複数の中継装置のうち、特定の中継装置が前記処理の対象とする特定のセンサを他の中継装置の前記処理の対象に変更する際に、該特定のセンサに応じて規定された1又は複数の処理のうち、前記中継装置が前記処理の対象とする、各センサに応じて規定された処理の集合に含まれない処理の数がより少ない前記中継装置を、前記他の中継装置の候補として選択する処理部、を有する、
情報処理システム。
(付記18)
センサが検出したセンサデータをそれぞれ送信する複数の機器と、
1又は複数の機器から前記センサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置と、
前記処理結果を受信する情報処理装置と、を有し、
前記情報処理装置は、前記複数の中継装置から、各センサの前記処理を実行する前記中継装置を選択する際に、前記中継装置が前記処理の対象とするセンサに応じて規定された処理の、前記複数の中継装置における合計数がより少ない前記各センサの前記中継装置を、前記中継装置の候補として選択する処理部、を有する、
情報処理システム。
(付記19)
付記17または18において、
前記処理部は、前記中継装置内の前記処理の並列数が、前記処理に応じて規定された所定値を超えない前記中継装置を、前記候補として選択する、
情報処理システム。
(付記20)
付記17において、
前記処理部は、さらに、仮想マシンにしたがって構成する前記中継装置内の前記処理の前記並列数が、前記処理に応じて規定された所定値を超えない前記中継装置の配備数を算出し、算出した前記配備数の前記中継装置から前記中継装置の候補を選択する、
情報処理システム。
100:情報処理システム、10:中央サーバ、101:CPU、102:メモリ、103:通信インタフェース部、20(20−1〜20−9):中継装置、30(30−1a〜30−4e):デバイス、301:CPU、302:メモリ、303:センサ、304:無線通信部、305:アンテナ

Claims (9)

  1. 処理部が、1又は複数の機器から前記機器のセンサが検出したセンサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置のうち、特定の中継装置が前記処理の対象とする特定のセンサを他の中継装置の前記処理の対象に変更する際に、該特定のセンサに応じて規定された1又は複数の処理のうち、前記中継装置が前記処理の対象とする、各センサに応じて規定された処理の集合に含まれない処理の数がより少ない前記中継装置を、前記他の中継装置の候補として選択する、
    中継装置の選択方法。
  2. 処理部が、1又は複数の機器から前記機器のセンサが検出したセンサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置から、各センサの前記処理を実行する前記中継装置を選択する際に、前記中継装置が前記処理の対象とするセンサに応じて規定された処理の、前記複数の中継装置における合計数がより少ない前記各センサの前記中継装置を、前記中継装置の候補として選択する、
    中継装置の選択方法。
  3. 請求項1または2において、
    前記選択は、前記中継装置内の前記処理の並列数が、前記処理に応じて規定された所定値を超えない前記中継装置を、前記候補として選択する、
    中継装置の選択方法。
  4. 請求項3において、
    前記選択は、さらに、仮想マシンにしたがって構成する前記中継装置内の前記処理の前記並列数が、前記処理に応じて規定された所定値を超えない前記中継装置の配備数を算出し、算出した前記配備数の前記中継装置から前記中継装置の候補を選択する、
    中継装置の選択方法。
  5. 請求項1乃至4のいずれかにおいて、
    前記選択は、選択した前記中継装置の候補が、前記中継装置の性能に関する条件、前記機器との接続数に関する条件のいずれか又は両方を満たしていない場合、さらに、選択した前記中継装置の候補が前記処理の対象とする一部のセンサの前記処理を代行する中継装置を選択する、
    中継装置の選択方法。
  6. 1又は複数の機器から前記機器のセンサが検出したセンサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置のうち、特定の中継装置が前記処理の対象とする特定のセンサを他の中継装置の前記処理の対象に変更する際に、該特定のセンサに応じて規定された1又は複数の処理のうち、前記中継装置が前記処理の対象とする、各センサに応じて規定された処理の集合に含まれない処理の数がより少ない前記中継装置を、前記他の中継装置の候補として選択する、
    処理をコンピュータに実行させる中継装置の選択プログラム。
  7. 1又は複数の機器から前記機器のセンサが検出したセンサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置から、各センサの前記処理を実行する前記中継装置を選択する際に、前記中継装置が前記処理の対象とするセンサに応じて規定された処理の、前記複数の中継装置における合計数がより少ない前記各センサの前記中継装置を、前記中継装置の候補として選択する、
    処理をコンピュータに実行させる中継装置の選択プログラム。
  8. センサが検出したセンサデータをそれぞれ送信する複数の機器と、
    1又は複数の機器から前記センサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置と、
    前記処理結果を受信する情報処理装置と、を有し、
    前記情報処理装置は、前記複数の中継装置のうち、特定の中継装置が前記処理の対象とする特定のセンサを他の中継装置の前記処理の対象に変更する際に、該特定のセンサに応じて規定された1又は複数の処理のうち、前記中継装置が前記処理の対象とする、各センサに応じて規定された処理の集合に含まれない処理の数がより少ない前記中継装置を、前記他の中継装置の候補として選択する処理部、を有する、
    情報処理システム。
  9. センサが検出したセンサデータをそれぞれ送信する複数の機器と、
    1又は複数の機器から前記センサデータを収集し、前記センサに応じて規定された1又は複数の処理を実行し処理結果を出力する複数の中継装置と、
    前記処理結果を受信する情報処理装置と、を有し、
    前記情報処理装置は、前記複数の中継装置から、各センサの前記処理を実行する前記中継装置を選択する際に、前記中継装置が前記処理の対象とするセンサに応じて規定された処理の、前記複数の中継装置における合計数がより少ない前記各センサの前記中継装置を、前記中継装置の候補として選択する処理部、を有する、
    情報処理システム。
JP2015050151A 2015-03-13 2015-03-13 中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システム Pending JP2016171472A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015050151A JP2016171472A (ja) 2015-03-13 2015-03-13 中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システム
US15/063,589 US20160269806A1 (en) 2015-03-13 2016-03-08 Selection method of relaying device, and selection program of relaying device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015050151A JP2016171472A (ja) 2015-03-13 2015-03-13 中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システム

Publications (1)

Publication Number Publication Date
JP2016171472A true JP2016171472A (ja) 2016-09-23

Family

ID=56888453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015050151A Pending JP2016171472A (ja) 2015-03-13 2015-03-13 中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システム

Country Status (2)

Country Link
US (1) US20160269806A1 (ja)
JP (1) JP2016171472A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018110400A (ja) * 2017-01-05 2018-07-12 フォルクスヴァーゲン アクチエンゲゼルシャフトVolkswagen Aktiengesellschaft 移動無線ネットワークにおいてデータを一括取得するための方法ならびに当該方法において使用するためのデータ取得コンピュータおよび移動無線ネットワーク管理ユニット
JP2019169763A (ja) * 2018-03-22 2019-10-03 三菱電機インフォメーションネットワーク株式会社 中継装置切り替えシステム
WO2021024348A1 (ja) * 2019-08-05 2021-02-11 日本電信電話株式会社 IoTデバイス管理装置、IoTデバイス管理方法及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10574756B2 (en) * 2016-07-04 2020-02-25 Casio Computer Co., Ltd. Electronic device, selection control system, selection method, and recording medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464378B1 (en) * 2003-12-04 2008-12-09 Symantec Operating Corporation System and method for allowing multiple sub-clusters to survive a cluster partition
US8856355B2 (en) * 2011-05-09 2014-10-07 Samsung Electronics Co., Ltd. Systems and methods for facilitating communication between mobile devices and display devices

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018110400A (ja) * 2017-01-05 2018-07-12 フォルクスヴァーゲン アクチエンゲゼルシャフトVolkswagen Aktiengesellschaft 移動無線ネットワークにおいてデータを一括取得するための方法ならびに当該方法において使用するためのデータ取得コンピュータおよび移動無線ネットワーク管理ユニット
JP2019169763A (ja) * 2018-03-22 2019-10-03 三菱電機インフォメーションネットワーク株式会社 中継装置切り替えシステム
WO2021024348A1 (ja) * 2019-08-05 2021-02-11 日本電信電話株式会社 IoTデバイス管理装置、IoTデバイス管理方法及びプログラム
JPWO2021024348A1 (ja) * 2019-08-05 2021-02-11
JP7215583B2 (ja) 2019-08-05 2023-01-31 日本電信電話株式会社 IoTデバイス管理装置、IoTデバイス管理方法及びプログラム

Also Published As

Publication number Publication date
US20160269806A1 (en) 2016-09-15

Similar Documents

Publication Publication Date Title
EP3799653B1 (en) Multi-phase cloud service node error prediction
JP6031196B2 (ja) 分散データストレージ・処理システムのためのチューニング
US20230385141A1 (en) Multi-factor cloud service storage device error prediction
US10051056B2 (en) Resource planning method, system, and apparatus for cluster computing architecture
KR102310187B1 (ko) 복수의 엣지와 클라우드를 포함하는 분산 컴퓨팅 시스템 및 이의 적응적 지능 활용을 위한 분석 모델 제공 방법
US9218197B2 (en) Virtual machine image migration
WO2017129032A1 (zh) 磁盘的故障预测方法和装置
US20190044806A1 (en) Systems and methods for managing a cloud deployed service
KR101577878B1 (ko) 분산 환경들에서 신뢰도의 개선
KR101373461B1 (ko) 클라우드 서비스를 이용하기 위한 단말기 및 방법
JP2016171472A (ja) 中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システム
JP5803496B2 (ja) ストレージシステム
CN102402583A (zh) 数据库应用的真实负载调节
US20130111018A1 (en) Passive monitoring of virtual systems using agent-less, offline indexing
JP2011248658A (ja) 仮想サーバデプロイ管理装置及び方法、そのプログラム
US9158641B2 (en) Cloud auto-test system, method and non-transitory computer readable storage medium of the same
US20170034070A1 (en) Workload deployment in computing networks
JP2016206772A (ja) 地域評価指標処理システム、地域評価指標処理プログラム、及び地域評価指標処理方法
JP2006079155A (ja) 情報処理装置
US20200134507A1 (en) Distribution system, data management apparatus, data management method, and computer-readable recording medium
KR102385706B1 (ko) 가상 네트워크 장치의 적합성 검증 장치 및 평가 방법
EP4083807B1 (en) Information processing system, information processing methods, and information processing device
US20230222001A1 (en) Techniques for deploying changes to improve reliability of a cloud service
US10644986B2 (en) Master station device, slave station device, process delegation management method, and process execution method
JP2012178094A (ja) 試験実施装置及び試験実施方法及びプログラム