(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024128396
(43)【公開日】2024-09-24
(54)【発明の名称】情報処理装置、決定方法および決定プログラム
(51)【国際特許分類】
H04L 67/1008 20220101AFI20240913BHJP
【FI】
H04L67/1008
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023037352
(22)【出願日】2023-03-10
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】玉垣 裕
(72)【発明者】
【氏名】稲本 修治
(72)【発明者】
【氏名】見置 孝昌
(57)【要約】
【課題】制御システムに適したアプリケーションの配置先を決定するための方法を提供する。
【解決手段】複数のノードのうちいずれかにアプリケーションを配置可能な制御システムに向けられた情報処理装置が提供される。情報処理装置は、複数のノードの各々に設定された第1属性情報を取得する第1取得部と、アプリケーションに設定された第2属性情報を取得する第2取得部と、第1属性情報と第2属性情報とに基づいて、アプリケーションの配置先となるノードを決定する決定部とを含む。
【選択図】
図7
【特許請求の範囲】
【請求項1】
複数のノードのうちいずれかにアプリケーションを配置可能な制御システムに向けられた情報処理装置であって、
前記複数のノードの各々に設定された第1属性情報を取得する第1取得部と、
前記アプリケーションに設定された第2属性情報を取得する第2取得部と、
前記第1属性情報と前記第2属性情報とに基づいて、前記アプリケーションの配置先となるノードを決定する決定部とを備える、情報処理装置。
【請求項2】
前記第1属性情報は、各ノードに設定された役割を含み、
前記第2属性情報は、前記アプリケーションに設定された役割を含み、
前記決定部は、前記第2属性情報の前記役割と同じ役割をもつ第1属性情報に対応するノードを、前記配置先となるノードとして決定する、請求項1に記載の情報処理装置。
【請求項3】
前記第1属性情報は、各ノードがアプリケーションを実行したときに、どの程度の高負荷まで許容できるかを示す負荷許容量を含み、
前記第2属性情報は、前記アプリケーションの実行時に生じる負荷の大きさを含み、
前記決定部は、前記第2属性情報の負荷の大きさを許容できる負荷許容量をもつ第1属性に対応するノードを、前記配置先となるノードとして決定する、請求項1に記載の情報処理装置。
【請求項4】
前記アプリケーションがアクセスするデータを取得する第3取得部をさらに備え、
前記決定部は、前記アプリケーションがアクセスするデータを保持しているノードの情報にさらに基づいて、前記配置先となるノードを決定する、請求項1~3のいずれか1項に記載の情報処理装置。
【請求項5】
前記決定部は、前記アプリケーションが必要なデータにアクセスするために優先的に考慮しなければならないノードである優先ノードを決定し、前記優先ノードに基づいて、前記配置先となるノードを決定する、請求項1~3のいずれか1項に記載の情報処理装置。
【請求項6】
前記決定部は、
時間要求のうち最も厳しい要求に対応するデータを保持しているノードと、
各データに設定された時間要求の統計値が最も小さくなるノードと、
各データに設定された時間要求と各データのデータ量とに基づいて算出される単位時間あたりのデータ量が最も大きいノードとのうち、少なくとも1つに基づいて、前記優先ノードを決定する、請求項5に記載の情報処理装置。
【請求項7】
前記決定部は、前記優先ノード、および、前記優先ノードに時間的に最も近いノード、のいずれかを前記配置先となるノードとして決定する、請求項5に記載の情報処理装置。
【請求項8】
ユーザ操作に従って、前記アプリケーションを前記配置先に配置する配置部をさらに備える、請求項1~3のいずれか1項に記載の情報処理装置。
【請求項9】
複数のノードのうちいずれかにアプリケーションを配置可能な制御システムにおいて、前記アプリケーションの配置先となるノードを決定するための決定方法であって、
前記複数のノードの各々に設定された第1属性情報を取得するステップと、
前記アプリケーションに設定された第2属性情報を取得するステップと、
前記第1属性情報と前記第2属性情報とに基づいて、前記アプリケーションの配置先となるノードを決定するステップとを備える、決定方法。
【請求項10】
複数のノードのうちいずれかにアプリケーションを配置可能な制御システムにおいて、前記アプリケーションの配置先となるノードを決定するための決定プログラムであって、コンピュータに、
前記複数のノードの各々に設定された第1属性情報を取得するステップと、
前記アプリケーションに設定された第2属性情報を取得するステップと、
前記第1属性情報と前記第2属性情報とに基づいて、前記アプリケーションの配置先となるノードを決定するステップとを実行させる、決定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、情報処理装置、決定方法および決定プログラムに関する。
【背景技術】
【0002】
産業オートメーションの分野において、産業システムの動作を制御するOT(Operational Technology)と、情報処理を担当するIT(Information Technology)とを連携させる取り組みが活発化している。例えば、制御装置が収集したデータをAI(Artificial Intelligence)などを用いて解析するようなことが想定されている。
【0003】
OTとITとが連携した環境においては、OT向けのソフトウェアおよびIT向けのソフトウェアといったように、さまざまなソフトウェアが動作する。また、ソフトウェアを実行するためのハードウェアリソースも複数存在する。
【0004】
そのため、各ソフトウェアをいずれのハードウェアリソースで実行させるのかを最適化する必要がある。
【0005】
例えば、特開2020-137073号公報(特許文献1)は、ネットワークのノードに対してアプリケーションを最適に配置することが可能なアプリケーション配置装置を開示する。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述の先行技術は、VN(Virtual Network)を前提とした最適化であり、産業オートメーションの分野で用いられるPLC(Programmable Logic Controller)のネットワークを想定したものではない。
【0008】
本技術は、制御システムに適したアプリケーションの配置先を決定するための方法を提供する。
【課題を解決するための手段】
【0009】
ある実施の形態によれば、複数のノードのうちいずれかにアプリケーションを配置可能な制御システムに向けられた情報処理装置が提供される。情報処理装置は、複数のノードの各々に設定された第1属性情報を取得する第1取得部と、アプリケーションに設定された第2属性情報を取得する第2取得部と、第1属性情報と第2属性情報とに基づいて、アプリケーションの配置先となるノードを決定する決定部とを含む。
【0010】
この構成によれば、複数のノードの各々に設定された第1属性情報、および、アプリケーションに設定された第2属性情報は、対象の制御システムに固有の設定を含んでおり、これらの固有の設定に基づいて、アプリケーションの配置先を決定できる。これによって、負荷の大きさなどだけではなく、制御システムに好適なアプリケーションの配置先を決定できる。
【0011】
第1属性情報は、各ノードに設定された役割を含んでいてもよい。第2属性情報は、アプリケーションに設定された役割を含んでいてもよい。決定部は、第2属性情報の役割と同じ役割をもつ第1属性情報に対応するノードを、配置先となるノードとして決定してもよい。この構成によれば、アプリケーションの役割と同じ役割が設定されているノードを配置先として決定できる。これによって、制御システムにおいて適切な配置先を決定できる。
【0012】
第1属性情報は、各ノードがアプリケーションを実行したときに、どの程度の高負荷まで許容できるかを示す負荷許容量を含んでいてもよい。第2属性情報は、アプリケーションの実行時に生じる負荷の大きさを含んでいてもよい。決定部は、第2属性情報の負荷の大きさを許容できる負荷許容量をもつ第1属性に対応するノードを、配置先となるノードとして決定してもよい。この構成によれば、アプリケーションの実行に必要な負荷に耐えられないノードを配置先として決定することを防止できる。
【0013】
情報処理装置は、アプリケーションがアクセスするデータを取得する第3取得部をさらに含んでいてもよい。決定部は、アプリケーションがアクセスするデータを保持しているノードの情報にさらに基づいて、配置先となるノードを決定してもよい。この構成によれば、アプリケーションがアクセスするデータに基づいて、最適なノードを配置先として決定できる。
【0014】
決定部は、アプリケーションが必要なデータにアクセスするために優先的に考慮しなければならないノードである優先ノードを決定し、優先ノードに基づいて、配置先となるノードを決定してもよい。この構成によれば、優先ノードを基準として、配置先となるノードを決定できる。これによって、アプリケーションのデータアクセスの面から適切なノードを配置先として決定できる。
【0015】
決定部は、時間要求のうち最も厳しい要求に対応するデータを保持しているノードと、各データに設定された時間要求の統計値が最も小さくなるノードと、各データに設定された時間要求と各データのデータ量とに基づいて算出される単位時間あたりのデータ量が最も大きいノードとのうち、少なくとも1つに基づいて、優先ノードを決定してもよい。この構成によれば、優先ノードを定量的に決定できる。
【0016】
決定部は、優先ノード、および、優先ノードに時間的に最も近いノード、のいずれかを配置先となるノードとして決定してもよい。この構成によれば、優先ノードを基準として、適切なノードを配置先として決定できる。
【0017】
情報処理装置は、ユーザ操作に従って、アプリケーションを配置先に配置する配置部をさらに含んでいてもよい。この構成によれば、決定された配置先にアプリケーションを配置できる。
【0018】
別の実施の形態によれば、複数のノードのうちいずれかにアプリケーションを配置可能な制御システムにおいて、アプリケーションの配置先となるノードを決定するための決定方法が提供される。決定方法は、複数のノードの各々に設定された第1属性情報を取得するステップと、アプリケーションに設定された第2属性情報を取得するステップと、第1属性情報と第2属性情報とに基づいて、アプリケーションの配置先となるノードを決定するステップとを含む。
【0019】
さらに別の実施の形態によれば、複数のノードのうちいずれかにアプリケーションを配置可能な制御システムにおいて、アプリケーションの配置先となるノードを決定するための決定プログラムが提供される。決定プログラムは、コンピュータに、複数のノードの各々に設定された第1属性情報を取得するステップと、アプリケーションに設定された第2属性情報を取得するステップと、第1属性情報と第2属性情報とに基づいて、アプリケーションの配置先となるノードを決定するステップとを実行させる。
【発明の効果】
【0020】
本技術によれば、制御システムに適したアプリケーションの配置先を決定するための方法を提供する。
【図面の簡単な説明】
【0021】
【
図1】本実施の形態に従う制御システムの全体構成例を示す模式図である。
【
図2】本実施の形態に従う開発支援装置のハードウェア構成例を示す模式図である。
【
図3】本実施の形態に従う制御処理ユニットおよび情報処理ユニットのハードウェア構成例を示す模式図である。
【
図4】本実施の形態に従う制御システムの別の全体構成例を示す模式図である。
【
図5】
図4に示す制御システムに含まれるノードに設定された属性情報の一例を示す図である。
【
図6】
図4に示す制御システムにおいてアプリケーションを配置する処理を説明するための図である。
【
図7】本実施の形態に従う開発支援装置がアプリケーションの配置先を決定する処理の一例を示すフローチャートである。
【
図8】アプリケーションがアクセスするデータに基づいて配置先を決定する処理を説明するための図である。
【
図9】本実施の形態に従う開発支援装置が優先ノードを決定する処理例を説明するための図である。
【
図10】本実施の形態に従う開発支援装置がアプリケーションの配置先を決定する処理の別の一例を示すフローチャートである。
【
図11】本実施の形態に従う開発支援装置のソフトウェア構成例を示す模式図である。
【発明を実施するための形態】
【0022】
実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0023】
<A.適用例>
まず、本技術が適用される場面の一例について説明する。
【0024】
図1は、本実施の形態に従う制御システム1の全体構成例を示す模式図である。
図1を参照して、制御システム1は、複数の制御装置10-1,10-2,10-3(以下、「制御装置10」と総称することもある。)と、開発支援装置100とを含む。
【0025】
制御装置10-1~10-3の各々は、制御処理ユニット200-1~200-3(以下、「制御処理ユニット200」と総称することもある。)と、情報処理ユニット300-1~300-3(以下、「情報処理ユニット300」と総称することもある。)とを含む。
【0026】
制御処理ユニット200は、産業システムの動作を制御するOTとしての機能を提供する。情報処理ユニット300は、情報処理を担当するITとしての機能を提供する。
【0027】
制御処理ユニット200同士は、制御系ネットワーク4を介して電気的に接続されている。制御処理ユニット200の各々は、フィールドバス2を介して、センサ40やアクチュエータ42と接続されている。制御処理ユニット200の各々は、センサ40からセンシングデータを収集し、指令をアクチュエータ42に与える。
【0028】
制御処理ユニット200と情報処理ユニット300とは、内部バス50を介して電気的に接続されている。制御システム1においては、内部バス50は、制御系ネットワーク4より高い通信速度を有している。内部バス50は、例えば、PCIExpressを用いて実現してもよい。
【0029】
制御処理ユニット200の各々は、センサ40から収集したセンシングデータなどを含む入力データと、アクチュエータ42に与えられる指令値などを含む出力データと、制御演算で利用される内部データとを保持している。これらのデータは、変数250として管理されている。
【0030】
制御システム1においては、情報処理ユニット300の各々は、制御処理ユニット200の各々が保持しているデータ(変数250)を任意にアクセスできる。例えば、変数250に含まれる各データは、制御システム1において一意に特定できるように管理されている。一意の変数名を用いて管理することで、アプリケーション400は、いずれの情報処理ユニット300で実行されていても、処理に必要なデータにアクセスできる。すなわち、制御システム1は、いずれの情報処理ユニット300であっても同一のアプリケーション400を実行可能な環境を提供する。
【0031】
例えば、OPU-UAアーキテクチャを用いることで、情報処理ユニット300(および、情報処理ユニット300で実行されるアプリケーション400)は、制御処理ユニット200の各々が保持しているデータ(変数250)に任意にアクセスできる。
【0032】
開発支援装置100は、情報処理装置の一例であり、1または複数のアプリケーション400の配置先となる情報処理ユニット300の決定を支援する。なお、開発支援装置100は、アプリケーション400を開発する環境(例えば、エディタやコンパイラなどを含む統合開発環境)をさらに提供してもよい。
【0033】
本実施の形態に従う開発支援装置100は、アプリケーション400の配置先の決定を支援する。より具体的には、開発支援装置100は、アプリケーションの配置先候補に設定された属性情報およびアプリケーションに設定された属性情報に基づいて、配置先を決定する。また、開発支援装置100は、アプリケーション400の実行時に必要なデータを保持している装置および当該装置までのアクセス経路などに基づいて、配置先を決定する。以下、配置先の決定を支援するための構成および方法などについて詳述する。
【0034】
本明細書において、制御システム1を構成するリソースの単位を「ノード」と称することもある。「ノード」は、上述した制御処理ユニット200および情報処理ユニット300のように独立したハードウェアであってもよいし、仮想的に構成される論理的なコンピューティングリソースであってもよい。「ノード」は、アプリケーション400の配置先となる情報処理ユニット300、ならびに、アプリケーション400がアクセスするデータ(変数)を保持する制御処理ユニット200および情報処理ユニット300を含む。
【0035】
このように、開発支援装置100は、複数のノードのうちいずれかにアプリケーション400を配置可能な制御システム1に向けられたものである。
【0036】
<B.ハードウェア構成例>
次に、本実施の形態に従う制御システム1のハードウェア構成例について説明する。
【0037】
(b1:開発支援装置100)
図2は、本実施の形態に従う開発支援装置100のハードウェア構成例を示す模式図である。
図2を参照して、開発支援装置100は、プロセッサ102と、メモリ104と、ストレージ106と、入力部108と、出力部110と、通信インターフェイス112とを含む。開発支援装置100は、例えば、汎用PC(Personal Computer)などのコンピュータであってもよい。
【0038】
プロセッサ102は、ストレージ106に格納されたプログラムを読み出して、メモリ104に展開して実行することで、後述するような処理を実現する。
【0039】
ストレージ106は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体であり、例えば、OS(Operating System)120と、開発プログラム122と、配置先決定プログラム124とを格納する。ストレージ106には、
図2に示すプログラム以外の必要なプログラムが格納されてもよい。
【0040】
OS120は、基本的な処理を実現するためのコンピュータ読取可能命令を含む。開発プログラム122は、アプリケーション400を開発するための処理のためのコンピュータ読取可能命令を含む。配置先決定プログラム124は、決定プログラムに相当し、アプリケーション400の配置先を決定するための処理のためのコンピュータ読取可能命令を含む。
【0041】
開発支援装置100で実行されるプログラムは、コンピュータ読取可能な記録媒体(例えば、光学メディア)を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールされてもよい。また、開発支援装置100が提供する機能は、OS120が提供するモジュールの一部を利用する形で実現されてもよい。
【0042】
入力部108は、ユーザ操作を受け付ける入力デバイス(例えば、キーボードやマウスなど)とのインターフェイス回路を含む。入力部108は、入力デバイス自体を含んでいてもよい。
【0043】
出力部110は、プロセッサの処理結果を出力する出力デバイス(例えば、ディスプレイなど)とのインターフェイス回路を含む。出力部110は、出力デバイス自体を含んでいてもよい。
【0044】
通信インターフェイス112は、例えば、USB(Universal Serial Bus)インターフェイスであって、制御装置10(開発支援装置100または制御処理ユニット200)との間のデータ伝送を仲介する。通信インターフェイス112は、制御系ネットワーク4に接続するためのネットワークインターフェイスであってもよい。
【0045】
(b2:制御処理ユニット200および情報処理ユニット300)
図3は、本実施の形態に従う制御処理ユニット200および情報処理ユニット300のハードウェア構成例を示す模式図である。
【0046】
図3を参照して、制御処理ユニット200は、プロセッサ202と、メモリ204と、ストレージ206と、内部バスインターフェイス208と、フィールドバスインターフェイス210とを含む。
【0047】
プロセッサ202は、ストレージ206に格納されたプログラムを読み出して、メモリ204に展開して実行することで、産業システムの動作を制御するための制御演算を実現する。
【0048】
ストレージ206は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体であり、例えば、システムプログラム212と、ユーザプログラム214とを格納する。ストレージ206には、
図3に示すプログラム以外の必要なプログラムが格納されてもよい。
【0049】
システムプログラム212は、制御演算を実現するための基本的な処理を実現するためのコンピュータ読取可能命令を含む。ユーザプログラム214は、産業システムの動作を制御するための制御演算を実現するためのコンピュータ読取可能命令を含む。
【0050】
内部バスインターフェイス208は、内部バス50を介して、情報処理ユニット300を含む他のユニットとの間でデータをやり取りする。
【0051】
フィールドバスインターフェイス210は、フィールドバス2を介して、センサ40やアクチュエータ42との間でデータをやり取りする。
【0052】
情報処理ユニット300は、プロセッサ302と、メモリ304と、ストレージ306と、内部バスインターフェイス308と、通信インターフェイス310とを含む。
【0053】
プロセッサ302は、ストレージ306に格納されたプログラムを読み出して、メモリ304に展開して実行することで、産業システムの動作を制御するための制御演算を実現する。
【0054】
ストレージ306は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体であり、例えば、システムプログラム312と、アプリケーション400とを格納する。ストレージ306には、
図3に示すプログラム以外の必要なプログラムが格納されてもよい。
【0055】
システムプログラム312は、アプリケーション400を実行するための環境を実現するためのコンピュータ読取可能命令を含む。
【0056】
内部バスインターフェイス308は、内部バス50を介して、制御処理ユニット200を含む他のユニットとの間でデータをやり取りする。
【0057】
通信インターフェイス310は、任意の情報処理装置(例えば、開発支援装置100など)との間でデータをやり取りする。
【0058】
(b3:その他)
図2および
図3には、プロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
【0059】
<C.属性情報に基づく配置先の決定処理>
次に、本実施の形態に従う制御システム1に設定された属性情報に基づく配置先の決定処理について説明する。
【0060】
本明細書において、「属性情報」は、アプリケーション400の配置先の候補となるノードに付与される任意の情報である。1つのノードに複数の属性情報が付与されていてもよい。属性情報としては、例えば、各ノードに設定された役割、スペック(プロセッサ能力やメモリ搭載量など)、負荷許容量、配置位置(ネットワーク階層)などが挙げられる。
【0061】
図4は、本実施の形態に従う制御システム1の別の全体構成例を示す模式図である。
図4には、階層的に構成された制御システム1を例示する。より具体的には、制御システム1は、制御系ネットワーク4と、情報系ネットワーク6と、上位ネットワーク8とを含む。
【0062】
制御系ネットワーク4には、制御装置10-1~10-4が接続されている(便宜上、「PLC」と記載している)。情報系ネットワーク6には、制御処理装置20-1~20-3(以下、「制御処理装置20」と総称することもある。)が接続されている(便宜上、「制御処理PC」と記載している)。上位ネットワーク8には、情報処理装置30-1,30-2(以下、「情報処理装置30」と総称することもある。)が接続されている(便宜上、「情報処理PC」と記載している)。
【0063】
各ノードの負荷許容量は、当該ノードでアプリケーション400を実行したときに、どの程度の高負荷まで許容できるかを示す指標である。負荷許容量は、例えば、各ノードに実装されているプロセッサの能力と、メモリ容量とに基づいて算出されてもよい。なお、プロセッサの能力は、基準プロセッサに対する相対値を用いてもよい。
【0064】
例えば、上位ネットワーク8に近い位置に配置されているノードほど、負荷許容量が大きい。ただし、アプリケーションの配置先を決定する場合には、負荷許容量だけではなく、他のファクタも考慮することが好ましい。
【0065】
本実施の形態に従う開発支援装置100は、アプリケーション400に設定された属性情報に基づいて、制御システム1に含まれるノードのうち、アプリケーション400に設定された属性情報に適合するノードを候補として抽出し、抽出した候補のうちから配置先を決定する。
【0066】
図5は、
図4に示す制御システム1に含まれるノードに設定された属性情報の一例を示す図である。
【0067】
図5を参照して、属性情報500は、例えば、ノード毎に、ノード位置510と、名称520と、役割530と、スペック540と、負荷許容量550とを含む。
【0068】
役割530は、制御システム1において、各ノードがどのような処理を担当するのかを示す情報を含む。役割530は、例えば、4つのサブアイテム531~534を含む。各ノードに設定された1または複数の役割に対応するサブアイテムがチェックされる。スペック540は、プロセッサ能力を示すサブアイテム541と、メモリ搭載量を示すサブアイテム542とを含む。
【0069】
属性情報500は、開発支援装置100に格納されていてもよいし、開発支援装置100以外の装置が管理していてもよい。また、ユーザが属性情報500の内容を都度入力するようにしてもよい。
【0070】
なお、
図5に示す属性情報は一例であり、どのような項目を属性情報に含めてもよい。
【0071】
図4および
図5に示す例では、属性情報は、各ノードに設定された役割を含む。一例として、制御システム1は、役割として「マシン制御」が設定されているグループ70と、役割として「マシン情報収集」が設定されているグループ71と、役割として「ライン制御」が設定されているグループ72と、役割として「データ処理」が設定されているグループ73とを含む。
【0072】
各ノードに属性情報が付与されている状態において、アプリケーション400の配置先を決定する場合には、アプリケーション400に対しても属性情報が設定される。
【0073】
図6は、
図4に示す制御システム1においてアプリケーション400を配置する処理を説明するための図である。
図6を参照して、アプリケーション400-1~400-6を配置する処理を例示する。
【0074】
アプリケーション400-1~400-6には、属性情報450-1~450-5(以下、「属性情報450」と総称することもある。)がそれぞれ設定されている。属性情報450-1~450-5の各々は、各アプリケーション400の実行時に生じる負荷の大きさと、各アプリケーション400に設定された役割とを含む。
【0075】
例えば、アプリケーション400-1には、実行時に生じる負荷として「大」が設定されており、役割として「データ処理」が設定されている。この場合、属性情報として「データ処理」が設定されているグループ73に含まれる複数のノードが配置先の候補となる。これらの候補のうち、「大」の負荷に対応できる情報処理装置30-2が配置先と決定されている。
【0076】
また、アプリケーション400-4には、実行時に生じる負荷として「小」が設定されており、役割として「マシン情報収集」が設定されている。この場合、属性情報として「マシン情報収集」が設定されているグループ71に含まれる複数のノードが配置先の候補となる。これらの候補は、いずれも「小」の負荷には対応できる。後述するようなファクタが考慮されて、アプリケーション400-4の配置先として、制御装置10-4が選択されている。
【0077】
その他のアプリケーション400についても同様に、各ノードに設定された属性情報およびアプリケーション400に設定された属性情報に基づいて、配置先が決定される。
【0078】
なお、アプリケーション400の実行時に生じる負荷は、例えば、プロセッサの使用時間と、メモリ使用量とに基づいて算出されてもよい。なお、プロセッサの使用時間は、基準プロセッサに対する相対値を用いてもよい。上述の例では、アプリケーション400の実行時に生じる負荷には、3段階の値(「大」、「中」、「小」)のいずれかが設定されているが、より段階数の多い値が設定可能であってもよい。
【0079】
図7は、本実施の形態に従う開発支援装置100がアプリケーション400の配置先を決定する処理の一例を示すフローチャートである。
図7に示す各ステップは、開発支援装置100のプロセッサ102が配置先決定プログラム124を実行することで、実現されてもよい。
【0080】
図7を参照して、開発支援装置100は、配置先候補の1または複数のノードにそれぞれ設定された属性情報を取得する(ステップS100)とともに、配置対象のアプリケーション400に設定された属性情報を取得する(ステップS102)。なお、ステップS100とステップS102との実行順序はいずれであってもよい。また、ステップS100とステップS102とは並列的に実行されてもよい。このように、開発支援装置100は、複数のノードの各々に設定された属性情報を取得するとともに、アプリケーション400に設定された属性情報を取得する。
【0081】
開発支援装置100は、配置先候補の1または複数のノードのうち、配置対象のアプリケーション400に設定された属性情報の役割と同一の役割が設定されたノードが存在するか否かを判断する(ステップS104)。
【0082】
同一の役割が設定されたノードが存在しなければ(ステップS104においてNO)、開発支援装置100は、アプリケーション400の配置先が存在しない旨を通知する(ステップS106)。そして、処理は終了する。
【0083】
同一の役割が設定されたノードが存在していれば(ステップS104においてYES)、開発支援装置100は、同一の役割が設定されたノードのうち、負荷許容量が配置対象のアプリケーション400の実行時に生じる負荷に対応できるノードが存在するか否かを判断する(ステップS108)。
【0084】
負荷に対応できるノードが存在しなければ(ステップS108においてNO)、開発支援装置100は、アプリケーション400の配置先が存在しない旨を通知する(ステップS106)。そして、処理は終了する。
【0085】
負荷に対応できるノードが存在していれば(ステップS108においてYES)、開発支援装置100は、負荷に対応できるノードが1つであるか否かを判断する(ステップS110)。負荷に対応できるノードが1つであれば(ステップS110においてYES)、開発支援装置100は、当該ノードをアプリケーション400の配置先として決定する(ステップS112)。そして、処理は終了する。
【0086】
負荷に対応できるノードが複数であれば(ステップS110においてNO)、開発支援装置100は、アプリケーション400がアクセスするデータに基づいて、配置先となるノードを決定する(ステップS20)。アプリケーション400がアクセスするデータに基づいて配置先を決定する処理の詳細については、後述する。
【0087】
このように、開発支援装置100は、複数のノードの各々に設定された属性情報(第1属性情報)とアプリケーション400に設定された属性情報(第2属性情報)とに基づいて、アプリケーション400の配置先となるノードを決定する。
【0088】
より具体的には、開発支援装置100は、アプリケーション400に設定された属性情報(第2属性情報)の役割と同じ役割をもつ属性情報500(第1属性情報)に対応するノードを、アプリケーション400の配置先となるノードとして決定する。また、開発支援装置100は、アプリケーション400に設定された属性情報(第2属性情報)の負荷の大きさを許容できる負荷許容量をもつ属性情報500(第1属性情報)に対応するノードを、アプリケーション400の配置先となるノードとして決定する。
【0089】
なお、開発支援装置100は、決定した配置先にアプリケーション400を自動的に配置してもよいし、ユーザ操作に従って配置してもよい。例えば、開発支援装置100は、決定した配置先をユーザに提示し、ユーザは、提示された配置先を承認するか否かを指示してもよい。
【0090】
図7に示す処理は、配置対象のアプリケーション400の数だけ繰り返されてもよい。また、開発支援装置100において新たなアプリケーション400が生成されるたびに、
図7に示す処理が実行されてもよい。
【0091】
さらに、いずれかのノードに配置済のアプリケーション400を再配置する場合においても、
図7に示す処理が実行されてもよい。
【0092】
例えば、IT向けのネットワークにおいて、アプリケーションの配置先は、負荷(ノードの負荷許容量およびアプリケーションの実行時に生じる負荷)に基づいて決定されることが多い。これに対して、制御システムにおいて、各ノードには、上述したような役割が設定されており、負荷のみに基づいて配置先を決定した場合には、アプリケーションが実行されるノードに設定された役割と、当該アプリケーションの役割とが整合しない可能性もある。
【0093】
本実施の形態においては、アプリケーションの配置先を決定する際には、アプリケーションの役割などを含む属性情報が参照されるので、アプリケーション400の配置先を最適化できる。
【0094】
なお、アプリケーション400の属性情報に含まれる役割は、ノードに設定された役割のいずれかと一致させる必要がある。そのため、ノードに設定された役割、および/または、アプリケーション400に設定された役割は、任意に設定されるのではなく、予め用意された複数の選択肢から選択されるようにしてもよい。
【0095】
<D.アプリケーション400がアクセスするデータに基づく配置先の決定処理>
次に、アプリケーション400がアクセスするデータに基づいて配置先を決定する処理について説明する。
【0096】
図8は、アプリケーション400がアクセスするデータに基づいて配置先を決定する処理を説明するための図である。
図8には、一例として、アプリケーション400が情報処理ユニット300-1に配置されている例を示す。
【0097】
図8に示す例において、アプリケーション400は、実行時に、制御処理ユニット200-3の変数250にアクセスする。この場合、制御処理ユニット200-3の変数250の値を示すデータは、制御処理ユニット200-3から制御系ネットワーク4を介して制御処理ユニット200-1に転送され、さらに内部バス50を介して情報処理ユニット300-1に転送される。制御系ネットワーク4の通信速度は、内部バス50より低いので、アプリケーション400が情報処理ユニット300-1で実行される場合には、必要な変数250へのアクセス性能が制約されてしまう可能性がある。その結果、アプリケーション400の実行速度が低く、処理に遅延が発生する可能性がある。
【0098】
図8に示す例においては、アプリケーション400は、情報処理ユニット300-1ではなく、情報処理ユニット300-3に配置される方がより好ましいと考えられる。情報処理ユニット300-3は、制御処理ユニット200-3と内部バス50を介して接続されており、アプリケーション400が情報処理ユニット300-3で実行されることで、制御処理ユニット200-3の変数250へのアクセスをより高速化できる。
【0099】
アプリケーション400がアクセスする変数の数、アクセスする変数を保持する制御処理ユニット200の数およびネットワーク上の位置、アプリケーション400が変数にアクセスする頻度(または、周期)などに応じて、アプリケーション400の各々は、適切な情報処理ユニット300に配置されることが好ましい。アプリケーション400の配置先を最適化することで、アプリケーション400の処理遅延などを防止できる。
【0100】
アプリケーション400がアクセスするデータに基づいて配置先を決定する場合には、アプリケーション400の実行時に必要なデータの情報、および、各ノードが保持しているデータの情報などが必要となる。
【0101】
開発支援装置100は、アプリケーション400がデータにアクセスする際のアクセス速度およびアクセス頻度などに基づいて、アプリケーション400の配置先を決定する。
【0102】
ここで、制御システム1における通信速度について説明する。
【0103】
例えば、あるアプリケーション400から任意のデータにアクセスする場合を想定すると、アクセスに要する時間は、以下のような順序で長くなる。
【0104】
(1)アプリケーション400が配置されているノードが保持しているデータ(他のノードへの通信は不要)
(2)アプリケーション400が配置されているノードと内部バス50を介して接続されているノードが保持しているデータ(内部バス50上での通信)
(3)アプリケーション400が配置されているノードと同一のネットワーク(制御系ネットワーク4、情報系ネットワーク6、上位ネットワーク8など)に接続されているノードが保持しているデータ(同一のネットワーク上での通信)
(4)アプリケーション400が配置されているノードと異なるネットワーク(制御系ネットワーク4、情報系ネットワーク6、上位ネットワーク8など)に接続されているノードが保持しているデータ(複数のネットワークに跨がる通信)
制御システム1においては、ノード間の通信速度が同一ではないので、アプリケーション400がアクセスする各データについて、アクセスに要する時間を評価する必要がある。アクセスに要する時間を評価する方法は、どのような方法を採用してもよい。
【0105】
本実施の形態において、開発支援装置100は、アプリケーション400が必要なデータにアクセスするために優先的に考慮しなければならないノード(以下、「優先ノード」とも称す。)を決定する。そして、開発支援装置100は、優先ノードに基づいて、アプリケーション400の配置先となるノードを決定する。より具体的には、開発支援装置100は、決定した優先ノード、および、優先ノードに時間的に最も近いノードのいずれかをアプリケーション400の配置先として決定する。
【0106】
優先ノードおよび配置先は、以下のような考え方に従って決定できる。
【0107】
アプリケーション400が、アクセス頻度が高い、または、時間正確性の要求が高い、変数アクセスを行う場合であって、アクセス対象の変数が同一のノードに保持されているときには、当該変数を保持するノードが優先ノードとして決定される。決定された優先ノードまでのアクセス時間が最も短い1または複数のノードが配置先の候補として決定される。
【0108】
アプリケーション400が、アクセス頻度が高い、または、時間正確性の要求が高い、変数アクセスを行う場合であって、アクセス対象の変数が複数のノードに分散して保持されているときには、各変数へのアクセス頻度や通信量などに基づいて優先ノードが決定される。決定された優先ノードまでのアクセス時間が最も短い1または複数のノードが配置先の候補として決定される。
【0109】
なお、複数のノードが配置先として決定された場合には、これらの配置先に対して、上述の属性情報に基づく配置先の決定処理を行ってもよい。
【0110】
また、アプリケーション400が、アクセス頻度が高い、または、時間正確性の要求が高い、変数アクセスを行わない場合には、任意の方法で配置先を決定してもよい。
【0111】
図9は、本実施の形態に従う開発支援装置100が優先ノードを決定する処理例を説明するための図である。
図9を参照して、アプリケーション400の配置先の候補として、2つのノード(ノードX1(情報処理ユニット300X1)およびノードX2(情報処理ユニット300X2))が存在しているとする。
【0112】
アプリケーション400は、ノードA(制御処理ユニット200A)およびノードB(制御処理ユニット200B)が保持する変数にアクセスする。より具体的には、ノードAが保持している変数a1~a3、および、ノードBが保持している変数b1~b5にアクセスする。
【0113】
アプリケーション400による変数へのアクセスには、時間要求が設定されている。時間要求は、例えば、アクセス頻度(XXms毎や最短間隔XXmsなど)や時間正確性(遅れ許容時間XXmsなど)であってもよい。
図9には、各変数へのアクセス頻度が設定されている例を示す。
【0114】
開発支援装置100は、ノードAおよびノードBのうちいずれが優先ノードであるかを決定する。優先ノードを決定する方法としては、例えば、以下のような3つの観点が挙げられる。
【0115】
1.時間要求のうち最も厳しい要求(例えば、アクセス頻度の最小値や時間正確性の最小値など)に対応する変数を保持するノードを優先ノードとして決定する。
【0116】
2.アクセス対象のそれぞれの変数に設定された時間要求の統計値(例えば、中央値や平均値)が最も小さくなるノードを優先ノードとして決定する。
【0117】
3.アクセス対象の変数と時間要求とに基づいて算出される単位時間あたりのデータ量が最も大きいノードを優先ノードとして決定する。すなわち、各変数に設定された時間要求と各変数のデータ量とに基づいて算出される単位時間あたりのデータ量が最も大きいノードを優先ノードとして決定する。
【0118】
図9に示す例において、1.の観点については、ノードAは5msであり、ノードBは10msとなる。そのため、ノードAが優先ノードとして決定される。
【0119】
2.の観点については、ノードAは40msであり、ノードBは20msとなる。そのため、ノードBが優先ノードとして決定される。
【0120】
3.の観点については、ノードAは1000byte/sであり、ノードBは805.4byte/sとなる。そのため、ノードAが優先ノードとして決定される。
【0121】
1.および3.の観点によれば、ノードAが優先ノードとして決定される。この優先ノードの決定に伴って、ノードAからノードX1までのアクセス経路およびノードBからノードX2までのアクセス経路が評価される。ノードAおよびノードX1は、同一の制御系ネットワーク4を介して接続されているのに対して、ノードX2は、ノードBおよび制御系ネットワーク4を介してノードAと接続されている。そのため、ノードX1がアプリケーション400の配置先として決定される。
【0122】
また、2.の観点によれば、ノードBが優先ノードとして決定される。この優先ノードの決定に伴って、ノードBからノードX1までのアクセス経路およびノードBからノードX2までのアクセス経路が評価される。ノードBとノードX2とは、内部バス50を介して接続されているのに対して、ノードX1は、制御系ネットワーク4を介してノードBと接続されている。内部バス50は、制御系ネットワーク4より高い通信速度を有しているので、ノードX1がアプリケーション400の配置先として決定される。
【0123】
上述の1.~3.の観点のうち少なくとも1つを用いるようにしてもよいし、複数の観点を用いるようにしてもよい。複数の観点を用いる場合には、多数決などにより配置先を最終決定してもよい。
【0124】
このように、開発支援装置100は、アプリケーション400がアクセスする変数に基づいて優先ノードを決定し、決定された優先ノードに基づいて配置先のノードを決定する。また、優先ノードまでのアクセス経路の通信速度を考慮することで、アプリケーション400の配置先を決定することで、より適切に配置先を決定できる。このような通信速度を考慮することで、アプリケーション400のリアルタイム性の要求などをより確実に満たすことができる。
【0125】
図10は、本実施の形態に従う開発支援装置100がアプリケーション400の配置先を決定する処理の別の一例を示すフローチャートである。
図10に示す処理は、
図7のステップS20の詳細な処理に相当する。
図10に示す各ステップは、開発支援装置100のプロセッサ102が配置先決定プログラム124を実行することで、実現されてもよい。
【0126】
図10を参照して、開発支援装置100は、配置対象のアプリケーション400がアクセスする変数を取得し(ステップS200)、取得した変数を保持しているノードを特定する(ステップS202)。このように、開発支援装置100は、アプリケーション400がアクセスする変数(データ)を取得する。
【0127】
開発支援装置100は、特定したノードの数が1つであるか否かを判断する(ステップS204)。特定したノードの数が1つであれば(ステップS204においてYES)、開発支援装置100は、特定したノードを優先ノードとして決定し(ステップS206)、決定した優先ノードまでのアクセス時間が最も短いノードを配置先の候補として抽出する(ステップS208)。
【0128】
開発支援装置100は、抽出した配置先の候補が複数であるか否かを判断する(ステップS210)。抽出した配置先の候補が1つであれば(ステップS210においてNO)、開発支援装置100は、抽出した配置先の候補を配置先として決定する(ステップS212)。そして、処理は終了する。
【0129】
抽出した配置先の候補が複数であれば(ステップS210においてYES)、開発支援装置100は、抽出した配置先の候補に設定された属性情報に基づいて、アプリケーション400を実行するためのリソースを最も多く有している候補を配置先として決定する(ステップS214)。そして、処理は終了する。
【0130】
このように、開発支援装置100は、アプリケーション400がアクセスする変数(データ)を保持しているノードの情報に基づいて、アプリケーション400の配置先となるノードを決定する。
【0131】
また、
図10に示すアプリケーション400の配置先を決定する処理においても、属性情報が用いられる。すなわち、開発支援装置100は、複数のノードの各々に設定された属性情報(第1属性情報)とアプリケーション400に設定された属性情報(第2属性情報)とに基づいて、アプリケーション400の配置先となるノードを決定する。
【0132】
アプリケーション400を実行するためのリソースを最も多く有していることを判断するために、例えば、負荷許容量が大きい、プロセッサ空き時間が少ない、メモリ搭載量が多いなどのファクタが考慮されてもよい。
【0133】
特定したノードの数が複数であれば(ステップS204においてNO)、開発支援装置100は、アプリケーション400がアクセスする変数の数およびデータサイズ、ならびに、アプリケーション400の変数アクセスについての時間要求に基づいて、優先ノードを決定する(ステップS216)。そして、ステップS208以下の処理が実行される。
【0134】
ステップS216において優先ノードを決定する場合には、上述したような、1または複数の観点に従って算出される評価値が用いられてもよい。
【0135】
開発支援装置100は、決定した配置先にアプリケーション400を自動的に配置してもよいし、ユーザ操作に従って配置してもよい。例えば、開発支援装置100は、決定した配置先をユーザに提示し、ユーザは、提示された配置先を承認するか否かを指示してもよい。
【0136】
<E.ソフトウェア構成例>
次に、本実施の形態に従う開発支援装置100のソフトウェア構成例について説明する。
【0137】
図11は、本実施の形態に従う開発支援装置100のソフトウェア構成例を示す模式図である。
図11に示すソフトウェア構成例は、開発支援装置100のプロセッサ102が配置先決定プログラム124を実行することで、実現されてもよい。
【0138】
開発支援装置100は、ソフトウェア構成として、ノード属性情報取得部150と、アプリケーション属性情報取得部152と、アクセス対象変数取得部154と、配置先決定部156と、配置部158とを含む。
【0139】
ノード属性情報取得部150は、第1取得部に相当し、複数のノードの各々に設定された属性情報(属性情報500)を取得する。属性情報はノード個別に用意されていてもよいし、
図5に示すように、リスト形式で複数のノードの各々の個別情報が設定されていてもよい。
【0140】
アプリケーション属性情報取得部152は、第2取得部に相当し、アプリケーション400に設定された属性情報を取得する。
【0141】
アクセス対象変数取得部154は、第3取得部に相当し、アプリケーション400がアクセスするデータを取得する。
【0142】
配置先決定部156は、決定部に相当し、複数のノードの各々に設定された属性情報(属性情報500)と、アプリケーション400に設定された属性情報とに基づいて、アプリケーション400の配置先となるノードを決定する。
【0143】
配置部158は、ユーザ操作に従って、アプリケーション400を配置先に配置する。すなわち、配置部158は、アプリケーション400を配置先として決定されたノードに転送する。
【0144】
<F.変形例>
本実施の形態に従うアプリケーション400を配置する処理は、アプリケーション400を再配置する場合に実行されてもよい。例えば、制御システム1において1または複数のアプリケーション400が実行されている場合に、いずれかのアプリケーション400が実行されているノードのリソースが不足し得ると判断されると、アプリケーション400を再配置してもよい。そのため、制御システム1の各ノードまたは監視ノードがノードでのリソースの不足を監視するようにしてもよい。
【0145】
上述の説明においては、属性情報に基づく配置先の決定処理(
図7に示す処理手順)の実行後、アプリケーション400がアクセスするデータに基づく配置先の決定処理(
図10に示す処理手順)が実行される例を示すが、これらの処理の実行順序は逆であってもよい。また、これらの処理の一方のみが実行されてもよい。
【0146】
制御システム1に含まれる装置(ノード)の数および種類などに応じて、配置先を決定するためのアルゴリズムを適宜変更してもよい。
【0147】
<G.利点>
本実施の形態によれば、ノードの負荷許容量だけではなく、ノードおよびアプリケーションに設定された属性情報に基づいて、アプリケーションの配置先が決定される。例えば、アプリケーションに設定された役割(例えば、マシン制御、マシン情報収集、ライン制御、データ処理など)と一致するノードが配置先として決定される。アプリケーションに設定された役割と一致するノードを配置先として決定することで、アプリケーションを適切なノードで実行できる。
【0148】
本実施の形態によれば、アプリケーション400がアクセスするデータに基づいて配置先を決定する。このとき、アプリケーション400がデータにアクセスする際のアクセス速度およびアクセス頻度などに基づいて、配置先が決定される。また、配置先の決定には、アクセス経路の通信速度なども考慮される。このようなファクタを考慮することで、制御システムのネットワークトポロジーに応じた配置先の最適化を実現できる。
【0149】
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
【0150】
[構成1]
複数のノード(300)のうちいずれかにアプリケーション(400)を配置可能な制御システム(1)に向けられた情報処理装置(100)であって、
前記複数のノードの各々に設定された第1属性情報(500)を取得する第1取得部(150)と、
前記アプリケーションに設定された第2属性情報(450)を取得する第2取得部(152)と、
前記第1属性情報と前記第2属性情報とに基づいて、前記アプリケーションの配置先となるノードを決定する決定部(156)とを備える、情報処理装置。
【0151】
[構成2]
前記第1属性情報は、各ノードに設定された役割(530)を含み、
前記第2属性情報は、前記アプリケーションに設定された役割(450)を含み、
前記決定部は、前記第2属性情報の前記役割と同じ役割をもつ第1属性情報に対応するノードを、前記配置先となるノードとして決定する(S104,S112)、構成1に記載の情報処理装置。
【0152】
[構成3]
前記第1属性情報は、各ノードがアプリケーションを実行したときに、どの程度の高負荷まで許容できるかを示す負荷許容量(550)を含み、
前記第2属性情報は、前記アプリケーションの実行時に生じる負荷の大きさ(450)を含み、
前記決定部は、前記第2属性情報の負荷の大きさを許容できる負荷許容量をもつ第1属性に対応するノードを、前記配置先となるノードとして決定する(S108,S112)、構成1または2に記載の情報処理装置。
【0153】
[構成4]
前記アプリケーションがアクセスするデータを取得する第3取得部(154)をさらに備え、
前記決定部は、前記アプリケーションがアクセスするデータを保持しているノードの情報にさらに基づいて、前記配置先となるノードを決定する(S20)、構成1~3のいずれか1項に記載の情報処理装置。
【0154】
[構成5]
前記決定部は、前記アプリケーションが必要なデータにアクセスするために優先的に考慮しなければならないノードである優先ノードを決定し、前記優先ノードに基づいて、前記配置先となるノードを決定する(S206,S208,S214)、構成1~4のいずれか1項に記載の情報処理装置。
【0155】
[構成6]
前記決定部は、
時間要求のうち最も厳しい要求に対応するデータを保持しているノードと、
各データに設定された時間要求の統計値が最も小さくなるノードと、
各データに設定された時間要求と各データのデータ量とに基づいて算出される単位時間あたりのデータ量が最も大きいノードとのうち、少なくとも1つに基づいて、前記優先ノードを決定する、構成5に記載の情報処理装置。
【0156】
[構成7]
前記決定部は、前記優先ノード、および、前記優先ノードに時間的に最も近いノード、のいずれかを前記配置先となるノードとして決定する、構成5または6に記載の情報処理装置。
【0157】
[構成8]
ユーザ操作に従って、前記アプリケーションを前記配置先に配置する配置部(158)をさらに備える、構成1~7のいずれか1項に記載の情報処理装置。
【0158】
[構成9]
複数のノード(300)のうちいずれかにアプリケーション(400)を配置可能な制御システム(1)において、前記アプリケーションの配置先となるノードを決定するための決定方法であって、
前記複数のノードの各々に設定された第1属性情報を取得するステップ(S100)と、
前記アプリケーションに設定された第2属性情報を取得するステップ(S102)と、
前記第1属性情報と前記第2属性情報とに基づいて、前記アプリケーションの配置先となるノードを決定するステップ(S112)とを備える、決定方法。
【0159】
[構成10]
複数のノード(300)のうちいずれかにアプリケーション(400)を配置可能な制御(1)において、前記アプリケーションの配置先となるノードを決定するための決定プログラム(124)であって、コンピュータ(100)に、
前記複数のノードの各々に設定された第1属性情報を取得するステップ(S100)と、
前記アプリケーションに設定された第2属性情報を取得するステップ(S102)と、
前記第1属性情報と前記第2属性情報とに基づいて、前記アプリケーションの配置先となるノードを決定するステップ(S112)とを実行させる、決定プログラム。
【0160】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0161】
1 制御システム、2 フィールドバス、4 制御系ネットワーク、6 情報系ネットワーク、8 上位ネットワーク、10 制御装置、20 制御処理装置、30 情報処理装置、40 センサ、42 アクチュエータ、50 内部バス、70,71,72,73 グループ、100 開発支援装置、102,202,302 プロセッサ、104,204,304 メモリ、106,206,306 ストレージ、108 入力部、110 出力部、112,310 通信インターフェイス、120 OS、122 開発プログラム、124 配置先決定プログラム、150 ノード属性情報取得部、152 アプリケーション属性情報取得部、154 アクセス対象変数取得部、156 配置先決定部、158 配置部、200,200A,200B 制御処理ユニット、208,308 内部バスインターフェイス、210 フィールドバスインターフェイス、212,312 システムプログラム、214 ユーザプログラム、250 変数、300,300X1,300X2 情報処理ユニット、400 アプリケーション、450,500 属性情報、510 ノード位置、520 名称、530 役割、531,534,541,542 サブアイテム、540 スペック、550 負荷許容量。