JP2018148321A - Network system and program module - Google Patents
Network system and program module Download PDFInfo
- Publication number
- JP2018148321A JP2018148321A JP2017039899A JP2017039899A JP2018148321A JP 2018148321 A JP2018148321 A JP 2018148321A JP 2017039899 A JP2017039899 A JP 2017039899A JP 2017039899 A JP2017039899 A JP 2017039899A JP 2018148321 A JP2018148321 A JP 2018148321A
- Authority
- JP
- Japan
- Prior art keywords
- control module
- control
- relay router
- relay
- target device
- 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
Links
- 230000004044 response Effects 0.000 claims abstract description 94
- 230000002776 aggregation Effects 0.000 claims abstract description 55
- 238000004220 aggregation Methods 0.000 claims abstract description 55
- 238000012545 processing Methods 0.000 abstract description 54
- 238000010586 diagram Methods 0.000 abstract description 17
- 238000000034 method Methods 0.000 description 127
- 238000011144 upstream manufacturing Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 21
- 230000007423 decrease Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004886 process control Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】サービスクラウド上における制御プログラムを用いる対象装置の数が増加しても、対象装置からのリクエストメッセージに対し、要求される処理速度に対応した時間でレスポンスを、対象装置に返すことができるネットワークシステム及びプログラムモジュールを提供するを提供する。【解決手段】本発明は、クラウド上に配置された、制御対象の対象機器における制御単位毎の制御モジュールから構成される制御プログラムを有する制御サーバと、対象機器が制御のリクエストを出力し、リクエストに対応するレスポンスを対象機器に供給するエッジと、制御サーバとエッジとをアグリゲーションネットワークとして接続する、制御サーバとエッジの各々との間にツリー構造上に設けられた複数の中継ルータとを備え、対象機器からのリクエストを制御サーバへ送信する中継ルータに対し、制御サーバから複写された、対象機器を制御する制御モジュールが分散配置される。【選択図】図1PROBLEM TO BE SOLVED: To return a response to a request message from a target device to the target device in a time corresponding to a required processing speed even if the number of target devices using a control program on the service cloud increases. Provides a network system and a program module. SOLUTION: In the present invention, a control server having a control program composed of a control module for each control unit in a target device to be controlled, which is arranged on a cloud, and the target device outputs a control request and makes a request. It is equipped with an edge that supplies the response corresponding to the above to the target device, and a plurality of relay routers provided on a tree structure between the control server and each edge, which connects the control server and the edge as an aggregation network. The control modules that control the target device, which are copied from the control server, are distributed to the relay router that sends the request from the target device to the control server. [Selection diagram] Fig. 1
Description
本発明は、ネットワークシステム及びプログラムモジュールに関する。 The present invention relates to a network system and a program module.
従来から、クラウドに設けられたロボット制御システムが用いられ、計算能力及び記憶容量が低いロボットに対し、計算及び記憶などのハードウェア及びソフトウェアの資源を供給し、高機能のロボットとして動作させることが行なわれている(例えば、特許文献1参照)。上記ロボット制御システムは、例えばクラウド上のROS(Robot Operating System)である。このとき、クラウド上のロボット制御システムに対し、ロボットからリクエストメッセージを送信した後、ロボット制御システムがリクエストに対応した演算処理等を行なう。そして、ロボット制御システムは、演算結果をレスポンスメッセージとして、ロボットに対して送信する。 Conventionally, a robot control system provided in the cloud has been used to supply hardware and software resources such as calculation and storage to a robot with low calculation capacity and storage capacity, and operate as a high-function robot. (For example, refer to Patent Document 1). The robot control system is, for example, a ROS (Robot Operating System) on the cloud. At this time, after transmitting a request message from the robot to the robot control system on the cloud, the robot control system performs arithmetic processing corresponding to the request. Then, the robot control system transmits the calculation result as a response message to the robot.
しかし、ロボット制御システムを使用するロボット数が増加するに従い、クラウド上のサーバに対するトラフィックが増加し、ロボットとロボット制御システムとの間の通信遅延が存在する。このため、処理によっては高速にレスポンスが必要な場合があるが、特許文献1の構成であると、ロボット制御システムは、ロボットに対して高速な処理に対応できない。例えば、ロボット制御システムの制御対象が、自動運転の車である場合、ブレーキの制御の処理のリクエストメッセージに対しては、高速に(リアルタイムに)レスポンスメッセージを返す必要がある。
However, as the number of robots using the robot control system increases, the traffic to the server on the cloud increases, and there is a communication delay between the robot and the robot control system. For this reason, a response may be required at a high speed depending on the process, but with the configuration of
このため、クラウド上のロボット制御システムのようなサービスを提供するサーバに、効率的にロボットとの回線を接続することができるアグリゲーションネットワーク(例えば、特許文献2参照)を用いることが考えられる。そして、このアグリゲーションネットワークのエッジに、ロボット制御システムをコピーしておくことにより、通信遅延が無くなり、ロボットからのリクエストメッセージに対して高速にレスポンスメッセージをエッジから返すことが可能となる。ここで、エッジとは、例えばアグリゲーションネットワークのツリー構造の末端に配置されているサーバ、あるいはルータである。 For this reason, it is conceivable to use an aggregation network (see, for example, Patent Document 2) that can efficiently connect a line with a robot to a server that provides a service such as a robot control system on the cloud. By copying the robot control system to the edge of the aggregation network, communication delay is eliminated and a response message can be returned from the edge at high speed in response to a request message from the robot. Here, the edge is, for example, a server or a router arranged at the end of the tree structure of the aggregation network.
しかしながら、同一のエッジを多くのロボットが利用する場合、エッジにおける計算及び記憶の資源(リソース)に限りがあり、全てのリクエストに対して対応することはできない。例えば、ロボット制御システムの制御対象が、自動運転の車である場合、エッジを利用する車の種類は一つではなく、それぞれの車の種類毎のロボットに対応するロボット制御システムのプログラムをエッジにコピーして記憶させておく必要がある。
このため、ロボット数が増加するに従い、利用する全てのロボットに対応するロボット制御システムのプログラムを、エッジにコピーすることができず、かつリクエストメッセージにおける演算処理を行なうことができない。
また、プログラムが一旦エッジにコピーされると、ロボットが移動してそのエッジのプログラムを使用しなくなっても、エッジに不必要なプログラムが残り、ネットワークのリソースを効率的に使用することができない。
However, when many robots use the same edge, calculation and storage resources (resources) at the edge are limited, and it is not possible to respond to all requests. For example, when the control target of the robot control system is an autonomous driving vehicle, the number of vehicles using the edge is not one, and the robot control system program corresponding to the robot for each vehicle type is used as the edge. It is necessary to copy and memorize it.
For this reason, as the number of robots increases, the program of the robot control system corresponding to all the robots to be used cannot be copied to the edge, and the arithmetic processing in the request message cannot be performed.
Also, once the program is copied to the edge, even if the robot moves and no longer uses the program at that edge, an unnecessary program remains at the edge, and network resources cannot be used efficiently.
本発明は、このような事情に鑑みてなされたもので、、サービスクラウド上における制御プログラム(ロボット制御システムなど)を用いる対象装置(ロボット)の数が増加しても、対象装置からのリクエストメッセージに対し、要求される処理速度に対応した時間でレスポンスを、対象装置に返すことができるネットワークシステム及びプログラムモジュールを提供する。 The present invention has been made in view of such circumstances, and even if the number of target devices (robots) using a control program (such as a robot control system) on the service cloud increases, a request message from the target device. In contrast, a network system and a program module that can return a response to a target device in a time corresponding to a required processing speed are provided.
この発明は上述した課題を解決するためになされたもので、本発明のネットワークシステムは、クラウド上に配置された、制御対象の対象機器における制御単位毎の制御モジュールから構成される制御プログラムを有する制御サーバと、前記対象機器が制御のリクエストを出力し、当該リクエストに対応するレスポンスを前記対象機器に供給するエッジと、前記制御サーバと前記エッジとをアグリゲーションネットワークとして接続する、前記制御サーバと前記エッジの各々との間にツリー構造上に設けられた複数の中継ルータとを備え、前記対象機器からのリクエストを前記制御サーバへ送信する前記中継ルータに対し、前記制御サーバから複写された、当該対象機器を制御する前記制御モジュールが分散配置されることを特徴とする。 The present invention has been made to solve the above-described problems, and the network system of the present invention has a control program that is arranged on the cloud and includes a control module for each control unit in the target device to be controlled. The control server, the target device outputting a request for control, and supplying the response corresponding to the request to the target device; connecting the control server and the edge as an aggregation network; and the control server, A plurality of relay routers provided on a tree structure between each of the edges, the relay router that transmits a request from the target device to the control server, copied from the control server, The control modules for controlling the target device are distributedly arranged.
本発明のネットワークシステムは、前記制御モジュールの各々が、前記レスポンスを前記対象機器に返す時間に対応した位置の前記中継ルータに配置されることを特徴とする。 The network system according to the present invention is characterized in that each of the control modules is arranged in the relay router at a position corresponding to a time for returning the response to the target device.
本発明のネットワークシステムは、前記制御モジュールの各々が、前記レスポンスを前記対象機器に返す時間が短いほど、前記制御サーバにより近い中継ルータに配置されることを特徴とする。 The network system according to the present invention is characterized in that each of the control modules is arranged in a relay router closer to the control server as the time for returning the response to the target device is shorter.
本発明のネットワークシステムは、前記制御モジュールの各々が、所定時間当たりに要求される前記リクエストの頻度に対応した位置の中継ルータに配置されることを特徴とする。 The network system according to the present invention is characterized in that each of the control modules is arranged in a relay router at a position corresponding to the frequency of the request required per predetermined time.
本発明のネットワークシステムは、前記制御モジュールの各々が、所定時間当たりに要求される前記リクエストの頻度が少ないほど、前記制御サーバにより近い中継ルータに配置されることを特徴とする。 The network system according to the present invention is characterized in that each of the control modules is arranged in a relay router closer to the control server as the frequency of the request requested per predetermined time is smaller.
本発明のネットワークシステムは、前記制御モジュールの各々が、位置している中継ルータから、前記制御サーバにより近い中継ルータに移動する際、少なくとも、前記エッジからのアクセス距離、当該エッジを共用する前記対象機器の接続数、及び配置する前記中継ルータのコストの各々に基づき、所定の中継ルータに移動することを特徴とする。 In the network system of the present invention, when each of the control modules moves from a relay router in which the control module is located to a relay router closer to the control server, at least the access distance from the edge and the target sharing the edge It moves to a predetermined relay router based on the number of connected devices and the cost of the relay router to be arranged.
本発明のネットワークシステムは、前記アグリゲーションネットワークにおけるツリー構造で接続されている複数の前記中継ルータにおいて、前記中継ルータの一の中継ルータに対し、前記ツリー構造における前記エッジにより近く、前記制御モジュールを有していない下流の二の中継ルータからリクエストが供給された際、当該一の中継ルータ自身が前記制御モジュールを有していない場合、前記ツリー構造における前記一の中継ルータより下流にあり、前記制御モジュールを備えている三の中継ルータに対して、前記リクエストを出力することを特徴とする。 In the network system of the present invention, in the plurality of relay routers connected in a tree structure in the aggregation network, one relay router of the relay router is closer to the edge in the tree structure and has the control module. When a request is supplied from two downstream relay routers that are not connected, if the one relay router itself does not have the control module, the control unit is downstream from the one relay router in the tree structure, and the control The request is output to three relay routers having modules.
本発明のプログラムモジュールは、クラウド上に配置された制御サーバに記憶された制御プログラムを構成する、制御対象の対象機器における制御単位毎のプログラムモジュールであり、前記制御サーバと前記対象機器が制御のリクエストを出力し、当該リクエストに対応するレスポンスを前記対象機器に供給するエッジの各々との間にツリー構造上に設けられた複数の中継ルータ間において、所定の配置位置の中継ルータから、前記対象機器から前記制御サーバに対して送信される、当該対象機器の制御に関するリクエストに対応して決定される配置位置の前記中継ルータに自律的に移動することを特徴とする。 The program module of the present invention is a program module for each control unit in a target device to be controlled, which constitutes a control program stored in a control server arranged on the cloud, and the control server and the target device are controlled by the control server. The target is output from a relay router at a predetermined arrangement position between a plurality of relay routers provided on a tree structure between each of the edges that output a request and supply a response corresponding to the request to the target device. It moves autonomously to the relay router at an arrangement position determined in response to a request related to control of the target device transmitted from the device to the control server.
この発明によれば、サービスクラウド上における制御プログラム(ロボット制御システムなど)を用いる対象装置(ロボット)の数が増加しても、対象装置からのリクエストメッセージに対し、要求される処理速度に対応した時間でレスポンスを、対象装置に返すことができるネットワークシステム及びプログラムモジュールを提供することができる。 According to the present invention, even if the number of target devices (robots) that use a control program (such as a robot control system) on the service cloud increases, the request message from the target device can be handled at the required processing speed. It is possible to provide a network system and a program module that can return a response to a target device in time.
<第1の実施形態>
図1は、本発明の第1の実施形態におけるネットワークシステムの構成例を示す図である。本実施形態においては、制御対象の対象装置1の各々を、サービスクラウド2のクラウドルータ2_1(複数のルータが集中配置された構成)に対して接続するネットワークとして、アグリゲーションネットワーク3を用いている。このクラウドルータ2_1は、アグリゲーションネットワーク3によるスイッチングにより形成された対象装置1からの経路を、最終的に制御サーバ2_2に対して接続する。本実施形態において、サービスクラウド2における制御サーバ2_2は、対象装置1の各々に対するロボット制御のサービスを行なう。また、アグリゲーションネットワーク3は、ツリー(木)構造となっており、ルートとしてクラウドルータ2_1があり、各ノードに中継ルータ(中継ルータ3_1_1、3_2_1、…3_2_m、3_3_1、…、3_3_n、3_4_1、3_4_p、…、3_4_q、…、3_4_r)が配置されている。以下、上記中継ルータを総称する場合、中継ルータ3Rとして説明する。また、本実施形態において、中継ルータ3Rには、アグリゲーションネットワーク3におけるエッジルータ3_4_1、3_4_p、…、3_4_q、…、3_4_rが、中継ルータ3_4_1、3_4_p、…、3_4_q、…、3_4_rとして含めて説明している。
<First Embodiment>
FIG. 1 is a diagram showing a configuration example of a network system according to the first embodiment of the present invention. In the present embodiment, the
ここで、制御サーバ2_2は、例えばロボットの制御を行なう制御プログラムとして、ロボット制御フレームワークであるROS(Robot Operating System)パッケージがインストールされている。このROSパッケージは、ロボットアプリケーションを作成するためのライブラリ、ハードウェア抽象化及びデバイスドライバなどを含むパッケージである。そして、ロボットの各部の制御単位にモジュール化されたプロセスモジュール(プログラムモジュール)から構成されている。本実施形態において、このプロセスモジュール(以下、制御モジュール)は、処理単位のJob(ジョブ、すなわちプロセス)を処理するサービスパーツであり、例えば、分散エージェントとして、他の複数のサーバ上で自律して動作可能である。また、本実施形態においては、ネットワークシステムのロボット制御の動作について、ROSパッケージにおける制御モジュールと対象装置とのプロセス間通信をPub/Subモデルを用いて説明する。制御モジュールは、制御の要求(Publishからのメッセージ:リクエストメッセージ)に対して所定の処理を行ない、制御指令を示す応答(Subscribeからのメッセージ:レスポンスメッセージ)を返す機能を有している。 Here, for example, a ROS (Robot Operating System) package that is a robot control framework is installed in the control server 2_2 as a control program for controlling the robot. This ROS package is a package including a library for creating a robot application, hardware abstraction, a device driver, and the like. And it is comprised from the process module (program module) modularized by the control unit of each part of the robot. In the present embodiment, this process module (hereinafter referred to as a control module) is a service part that processes a job (job, ie, process) of a processing unit. For example, as a distributed agent, autonomously on a plurality of other servers. It is possible to operate. In this embodiment, the robot control operation of the network system will be described using the Pub / Sub model for inter-process communication between the control module and the target device in the ROS package. The control module has a function of performing predetermined processing on a control request (message from publish: request message) and returning a response (message from the subscribe: response message) indicating a control command.
すなわち、対象装置1は、制御を要求するため、制御サーバ2_2を宛先とするリクエストメッセージ(クエリ)のパケットを、アグリゲーションネットワーク3を介してサービスクラウド2に送信する。そして、リクエストメッセージの宛先が制御サーバ2_2であるため、クラウドルータ2_1は、リクエストメッセージを制御サーバ2_2に転送する。
制御サーバ2_2は、要求する制御に対応した制御モジュールに対し、リクエストメッセージを転送し、上記制御モジュールがリクエストメッセージに含まれるセンサのデータに基づき、対象装置1を制御する制御指令を作成する。そして、制御サーバ2_2は、制御モジュールが生成した制御指令を含むレスポンスメッセージを、リクエストメッセージの送信元を送信先として送信する。
That is, the
The control server 2_2 transfers a request message to the control module corresponding to the requested control, and the control module creates a control command for controlling the
一般的に、アグリゲーションネットワーク3を用いることにより、クラウドセントリックな構成として、全ての対象装置からのロボット制御の指令を要求するリクエストメッセージによるトラフィックをサービスクラウド2に集める。
しかしながら、対象装置の制御の種類によっては、リアルタイム性(要求を与えたときに、その要求に対する応答までにかかる時間が見積もれる特性)が高く高速(短時間)に処理する必要がある制御があり、サービスクラウド2にある制御サーバ2_2とのメッセージの送受信を行なった場合、リクエストメッセージに対するレスポンスメッセージが返信されるまでの時間に余裕がなくなる。このため、アグリゲーションネットワーク3のエッジにあるエッジサーバに対し、ROSパッケージを複写(コピー)して制御指令を要求する対象装置が接続されたサーバに配置する構成がある。
In general, by using the
However, depending on the type of control of the target device, there is a control that needs to be processed at high speed (short time) with high real-time performance (characteristic that estimates the time required to respond to the request when a request is given) When a message is transmitted / received to / from the control server 2_2 in the
一方、対象装置の種類毎に異なるROSパッケージが必要となるが、上記エッジサーバは、記憶容量に限りがあり、対象装置の種類が多くなると、種類数に対応したROSパッケージを配置することができない。
そのため、本実施形態におけるネットワークシステムは、ROSパッケージが複数のプロセス毎の制御モジュールから構成されていることを利用し、図1に示すように、制御モジュールの各々を中継ルータ(あるいは中継サーバ)それぞれに分散配置する構成としている。このため、中継ルータ3Rの各々に対し、ノードサーバ(例えば、ブレードサーバ)5を備え、制御モジュールをこのノードサーバ5において起動させる。これにより、上記ノードサーバ5の各々は、制御モジュールの制御指令生成の処理に従い、各対象装置1からのリクエストメッセージの要求に基づいて制御指令を生成する処理を行ない、生成した制御指令をレスポンスメッセージに添付して、対応する対象装置1それぞれに返送する。
また、以下において、説明の流れから、中継ルータ3Rにおけるノードサーバ5の記載を省略し、中継ルータ3Rに制御モジュールが配置されるとして説明する場合もある。
On the other hand, different ROS packages are required for each type of target device. However, the edge server has a limited storage capacity, and when the number of types of target devices increases, ROS packages corresponding to the number of types cannot be arranged. .
For this reason, the network system in the present embodiment uses the fact that the ROS package is composed of a plurality of control modules for each process, and as shown in FIG. 1, each control module is connected to each relay router (or relay server). It is set as the structure which distributes to. For this reason, each of the
In the following description, the description of the
図2は、図1における本実施形態のネットワークシステムの構成の概念を示す図である。図2においては、説明を簡単にするため、アグリゲーションネットワーク3のツリー構造を、中継ルータ3Rの各々の配置として、一段目の中継ルータ3_2_1、…、3_2_mと、二段目の中継ルータ3_3_1、…、3_3_nとの二段の構成としている。したがって、二段目の中継ルータ3_3_1、…、3_3_nがエッジルータとなる。図2において、例えば、中継ルータ3_3_1には、対象装置1として、ビデオレコーダ1_1及び自動車(自動運転仕様)1_2が接続され、中継ルータ3_2_nには、対象装置1として、PV(Photovoltaic)システム1_3及びNW(network)ロボット1_4が接続されている。
また、中継ルータ3_2_1、…、3_2_mの各々には、ノードサーバ5_2_1…、5_2_mそれぞれが備えられている。また、中継ルータ3_3_1、…、3_3_nの各々には、ノードサーバ5_3_1…、5_3_nそれぞれが備えられている。
FIG. 2 is a diagram showing the concept of the configuration of the network system of the present embodiment in FIG. In FIG. 2, for simplicity of explanation, the tree structure of the
Further, each of the relay routers 3_2_1,..., 3_2_m is provided with a node server 5_2_1. Further, each of the relay routers 3_3_1,..., 3_3_n is provided with a node server 5_3_1.
上述した各ノードサーバ5に対する制御モジュールの配置については、リアルタイム性が必要なものほど、アグリゲーションネットワーク3のエッジに近い中継ルータに配置する。すなわち、リアルタイム性が要求される制御モジュールは、ツリー構造のエッジである中継ルータ3_3_1から3_3_nの各々に備えられたノードサーバ5_3_1、…、5_3_nそれぞれに配置する。リアルタイム性が要求されない制御モジュールは、制御サーバ2_2のROSパッケージにのみ配置される。上記以外のある程度のリアルタイム性が要求される制御モジュールは、中継ルータ3_2_1から3_2_nの各々に備えられたノードサーバ5_2_1、…、5_2_nそれぞれに配置する。
As for the arrangement of the control modules for each of the
例えば、自動運転の仕様の自動車1_2において、リアルタイム性が要求される制御としては、ブレーキ操作が挙げられる。自動車1_2のブレーキ操作部が障害物を検知したセンサ情報を添付したリクエストメッセージを、自身の自動車の種類におけるブレーキ制御に対応する制御モジュールを宛先として、エッジルータである中継ルータ3_3_1を介してアグリゲーションネットワーク3に対して送信する。ここで、ノードサーバ5_3_1には、ブレーキ制御に対する制御モジュールが配置されている。そのため、ノードサーバ5_3_1の制御モジュールが、ブレーキ制御の制御指令を要求するクエストメッセージを受信した際、自身に対するリクエストメッセージであることを検出すると、センサ情報に基づいた制御指令を生成し、レスポンスメッセージにこの制御指令を添付して、自動車1_2に対して返信する。 For example, in the automobile 1_2 having an automatic driving specification, a brake operation is an example of control that requires real-time performance. The request message attached with the sensor information that the brake operation unit of the automobile 1_2 has detected an obstacle is sent to the aggregation module via the relay router 3_3_1 that is an edge router with the control module corresponding to the brake control in the type of the automobile as the destination. 3 is transmitted. Here, a control module for brake control is arranged in the node server 5_3_1. Therefore, when the control module of the node server 5_3_1 receives a quest message for requesting a control command for brake control, if it detects that it is a request message for itself, it generates a control command based on the sensor information and sends it to the response message. This control command is attached and returned to the automobile 1_2.
これにより、ブレーキ制御などのリアルタイム性を必要とする制御指令のレスポンスを、制御サーバ2_2あるいは一段目の中継ルータ3_2_1に配置されている場合に比較して、より高速に自動車1_1が得られる。
また、リアルタイム性が必要ない制御としては、カーナビゲーションシステムの経路検索及び画面に対する案内表示などが挙げられる。経路検索や画像処理については処理時間もかかり、ノードサーバ5のように、CPU(Central Processing Unit)の演算能力が制御サーバ2_2に対して著しく低い場合、ノードサーバ5における処理時間が制御サーバ2_2に比較して長くなり、逆にリアルタイム性が低下する。このため、演算処理の負荷の大きさについても考慮して、ノードサーバ5への配置を行なう必要がある。
As a result, the vehicle 1_1 can be obtained at a higher speed than when a response to a control command that requires real-time performance such as brake control is arranged in the control server 2_2 or the first-stage relay router 3_2_1.
In addition, examples of the control that does not require real time include route search of a car navigation system and guidance display on a screen. The route search and the image processing also take a processing time. Like the
図3は、本実施形態におけるアグリゲーションネットワークのノードサーバへの制御モジュールの配置を説明する概念図である。
図3(a)は、一般的なネットワークにおいて、ネットワークにおけるルータにサーバを配置した場合を示している。図3(a)の構成の場合は、自動車1_2から送信されたリクエストメッセージの要求する演算処理を行なう制御モジュールを、フラッティングにより検索する必要がある。フラッティングは、ネットワークを構成するルータの全てに対し、リクエストメッセージのパケットを送信する。このため、ネットワークのトラフィックが増加し、ネットワークの負荷が大きくなる。
FIG. 3 is a conceptual diagram illustrating the arrangement of control modules in the node server of the aggregation network in the present embodiment.
FIG. 3A shows a case where a server is arranged in a router in a general network. In the case of the configuration shown in FIG. 3A, it is necessary to search for a control module that performs arithmetic processing requested by the request message transmitted from the automobile 1_2 by flatting. In the flatting, a request message packet is transmitted to all the routers constituting the network. For this reason, network traffic increases and the load on the network increases.
また、図3(b)は、本実施形態におけるアグリゲーションネットワーク3における中継ルータ3Rへのノードサーバ5の配置を示している。図3(b)に示すように、アグリゲーションネットワーク3の場合、自動車1_2が接続したエッジからルートにおける経路上において、段目の中継ルータ3_s_1から、s−1段目の中継ルータ3_s−1_1、s−2段目の中継ルータ3_s−2_1へと、ツリー構造において決まった上記経路上のノードにある中継ルータ3Rの各々を経由して、リクエストメッセージ及びレスポンスメッセージが自動車1_2に対して送受信される。ツリー構造におけるエッジからルート(サービスクラウド2)方向に向かって、リクエストメッセージのパケットは、経路上の中継ルータを経由して転送される。同様に、いずれかの中継ルータ3Rにおけるノードサーバ5あるいは制御サーバ2_2から送信されるレスポンスメッセージも、リクエストメッセージと同一の経路により自動車1_2に転送される。
FIG. 3B shows the arrangement of the
このため、アグリゲーションネットワーク3のツリー構造において、プロセスのリアルタイム性に対応させ、適切な位置の中継ルータ3Rに備えられているノードサーバ5の各々に、それぞれ制御モジュールを配置させる。例えば、アグリゲーションネットワーク3において、制御サーバ2_2が各中継ルータ3Rのノードサーバ5に対し、制御モジュールを書き込む構成とする。例えば、制御サーバ2_2は、あるロボットに対するROSパッケージがインストールされた際、予め中継ルータ3Rの各々のノードサーバ5に対し、上記ROSパッケージにおけるプロセスの制御モジュールの各々を複写し、それぞれの制御モジュールのプロセスのリアルタイム性に対応した階層のノードにおける中継ルータ3Rのノードサーバ5に配置する。
For this reason, in the tree structure of the
上述したように、大規模なロボット制御を行なうネットワークシステムには、自動運転仕様の自動車などのロボット制御を行なう多種類の対象装置の各々が多量に接続される。この際、それぞれの種類の対象装置に対応する制御モジュールを、エッジからルートに向かう経路上の適切なノードに配置することにより、リクエストメッセージが中継ルータを、ルートに向かって上流の中継ノードに対して順次転送される。 As described above, a network system that performs large-scale robot control is connected with a large amount of each of various types of target devices that perform robot control such as an automobile with an automatic operation specification. At this time, by placing the control module corresponding to each type of target device at an appropriate node on the route from the edge to the route, the request message sends the relay router to the upstream relay node toward the route. Are transferred sequentially.
このため、本実施形態によれば、いずれの制御ジュールの各々が、それぞれいずれの中継ルータ3Rのノードサーバ5に配置されているかを示す情報を対象装置1に通知せずとも、ルート方向に向かって経路上における中継ルータを順次サーチすることにより、無用な探索時間やフラッティングによってリクエストメッセージを増加させること無く、リクエストメッセージの宛先の制御モジュールを検索することができる。
したがって、本実施形態によれば、サービスクラウド2に存在する制御サーバ2_2にアクセスすることなく、アグリゲーションネットワーク3において、対象装置1から制御サーバ2_2までのリクエストメッセージの経路上における中継サーバ3Rのいずれかに、リアルタイム性が必要な対象装置の制御に対応した制御モジュールが、必要なレスポンスタイムに対応して配置されるため、制御指令を制御を行なう適切な時間に受信できる。
For this reason, according to the present embodiment, each control module is directed in the route direction without notifying the
Therefore, according to the present embodiment, any one of the relay servers 3R on the route of the request message from the
<第2の実施形態>
本発明の第2の実施形態によるネットワークシステムについて説明する。第2の実施形態におけるネットワークシステムの構成は、すでに説明した図1に示す第1の実施形態と同様である。以下、第1の実施形態と異なる動作について説明する。
第2の実施形態における制御モジュールは、分散エージェントとして、対象装置1に対する制御指令を生成する機能に加え、自律的にアグリゲーションネットワークにおける中継ルータ3R間を移動する機能、自身を複写して他の中間ルータ3Rにインストールする機能、配置されていた中継ルータ3Rから自身を削除する機能の各々を備えている。また、配置されているノードサーバ5の時計から時刻情報を取得し、経過時間を検出するタイマー機能、アクセスされた回数を計数する機能を有している。これにより、本実施形態による制御モジュールは、自身に対するリクエストメッセージが転送される頻度、すなわち自身がアクセスされた頻度により、自身の必要性を判定し、アグリゲーションネットワーク3における必要性に応じた位置の中継ルータへと、中継ルータ間を移動することで配置位置を自律的に変更する。
<Second Embodiment>
A network system according to the second embodiment of the present invention will be described. The configuration of the network system in the second embodiment is the same as that of the first embodiment shown in FIG. Hereinafter, operations different from those of the first embodiment will be described.
The control module in the second embodiment functions as a distributed agent, in addition to the function of generating a control command for the
図4は、第2の実施形態によるネットワークシステムの中継ルータ間における制御モジュールの自律的な移動を説明する概念図である。
アグリゲーションネットワーク3は、ツリー構造として、例えば、自動車1_2_1が接続された中継ルータ3_3_1と、自動車1_2_sが接続された中継ルータ3_3_2と、中継ルータ3_3_1及び3_3_2の直上の中継ルータ3_2_1と、中継ルータ3_2_1の直上の中継ルータ3_1_1とから構成されている。このアグリゲーションネットワーク3におけるツリー構造のルートは、サービスクラウド2であり、サービスクラウド2には制御サーバ2_2が備えられている。
FIG. 4 is a conceptual diagram illustrating autonomous movement of the control module between relay routers in the network system according to the second embodiment.
The
自動車1_2_1のルートに対する経路には、中継ルータ3_3_1と、中継ルータ3_2_1と、中継ルータ3_1_1とがそれぞれのノードに配置されている。また、自動車1_2_sのルートに対する経路には、中継ルータ3_3_2と、中継ルータ3_2_1と、中継ルータ3_1_1とがそれぞれのノードに配置されている。
中継ルータ3_3_1にはノードサーバ5_3_1が設けられ、中継ルータ3_2_1にはノードサーバ5_2_1が設けられ、中継ルータ3_1_1にはノードサーバ5_1_1が設けられている。また、中継ルータ3_3_2には、ノードサーバ5_3_n2設けられている。
したがって、自動車1_2_1における制御を行なう制御モジュールMの各々は、ノードサーバ5_3_1、5_2_1、5_1_1、制御サーバ2_2のいずれかに配置されている。
A relay router 3_3_1, a relay router 3_2_1, and a relay router 3_1_1 are arranged at each node on the route to the route of the automobile 1_2_1. In addition, a relay router 3__2, a relay router 3_2_1, and a relay router 3_1_1 are arranged in each node on the route with respect to the route of the automobile 1_2_s.
The relay router 3__1 is provided with a node server 5_3_1, the relay router 3_2_1 is provided with a node server 5_2_1, and the relay router 3_1_1 is provided with a node server 5_1_1. Further, the node server 5_3_n2 is provided in the relay router 3_3_2.
Therefore, each of the control modules M that perform control in the automobile 1_2_1 is arranged in any of the node servers 5_3_1, 5_2_1, 5_1_1, and the control server 2_2.
ここで、制御サーバ2_2は制御プログラムにおける全てのプロセスの制御モジュールMが存在する。また、制御サーバ2_2における制御プログラムMは複写はされるが消去はされない。このため、自動車1_2_1の制御に対応する制御モジュールMは、ノードサーバ5_3_1、5_2_1、5_1_1の間を、自身の必要性に応じて自律的に移動するか、削除されることになる。中継ルータ3Rに設けられるノードサーバ5の各々は、ツリー構造においてルートからエッジに近くなるに従い、処理能力(CPUの演算速度、メモリ容量など)が低下する。また、中継ルータ3Rにおける転送時間を考慮すると、対象装置1がリクエストメッセージを送信し、その回答であるレスポンスメッセージを受信するまでのレスポンスタイムは、対象装置1から対応する処理を行なう制御モジュールMが配置されているノードサーバ5までの距離が近いほど短くなる。
Here, the control server 2_2 has control modules M for all processes in the control program. The control program M in the control server 2_2 is copied but not deleted. Therefore, the control module M corresponding to the control of the automobile 1_2_1 moves autonomously between the node servers 5_3_1, 5_2_1, and 5_1_1 according to its own needs or is deleted. Each of the
図5は、制御モジュールMを配置する中継ルータ3Rの位置と、配置する制御モジュールMとの対応を示すテーブルを示す図である。図5のテーブルにおいて、項目として配置位置と、レスポンスタイムと総計的多重効果とアプリケーションとが示されている。そして、配置位置と、この配置位置に対応した制御モジュールの特性としてレスポンスタイム、統計的多重効果及びアプリケーションとが示されている。
配置位置としては、アグリゲーションネットワーク3のツリー構造において、ルートのサービスクラウド、上流中継ルータ、下流中継ルータ及びエッジルータがある。図4との対応としては、対象装置1_1とサービスクラウド2とのメッセージの送受信の経路において、サービスクラウドがサービスクラウド2であり、上流中継ルータが中継ルータ3_1_1であり、下流中継ルータが中継ルータ3_2_1であり、エッジルータが中継ルータ3_3_1である。ここで、エッジルータはアグリゲーションネットワーク2のエッジに配置されているルータである。また、制御モジュールの配置位置としては、エッジルータである中継ルータ3_3_1に接続されている端末(サーバ)などまで含めてもよい。
FIG. 5 is a diagram illustrating a table indicating the correspondence between the position of the relay router 3R in which the control module M is arranged and the control module M to be arranged. In the table of FIG. 5, an arrangement position, a response time, a total multiple effect, and an application are shown as items. In addition, a response time, a statistical multiple effect, and an application are shown as the arrangement position and the characteristics of the control module corresponding to the arrangement position.
As the arrangement position, in the tree structure of the
図5のテーブルにおいて、レスポンスタイムは、アグリゲーションネットワーク2のツリー構造の下流側、すなわち対象装置1が接続されているエッジのルータあるいは端末に近づくほど、制御プログラムと対象装置1との距離が近くなるため、上流側の中継ルータに配置される場合に比較してよりレスポンスタイムにおけるメッセージ(リクエストメッセージ/レスポンスメッセージ)の送受信の時間が短くなる。ここで、レスポンスタイムには、各中継ルータに備えられているノードサーバ5の処理時間も含まれており、各ノードサーバ5の処理時間と、対象装置1及び制御モジュール間のメッセージの送受信時間とを加算した値となる。相対的にメッセージの送受信時間が制御の処理時間に比較して大きいため、上記距離がレスポンスタイムに大きく反映される。
In the table of FIG. 5, the response time is closer to the downstream side of the tree structure of the
また、統計的多重効果は、中継ルータに各々配置されている制御モジュールがアクセスされる頻度(制御モジュールの使用効率)の大きさを示している。アグリゲーションネットワーク3において、ツリー構造の上流側(サービスクラウド2に近く)になるほど、下流側に比較してより多くの対象装置1からのリクエストメッセージが通過するため、受信するリクエストメッセージ数が増加する。この結果、制御モジュール当たりの対象装置1の処理数が増加することになり、リソースの効率的な利用を行なうことができる。したがって、統計的多重効果は、アグリゲーションネットワーク3のツリー構造において、上流側になるほど大きくなる。
The statistical multiplexing effect indicates the frequency of access (control module use efficiency) of each control module arranged in the relay router. In the
アプリケーションは、配置位置に配置される制御モジュールの対象装置を制御するプロセスの処理(Job)の特性を示している。すでに述べたように、アグリゲーションネットワーク3において、ツリー構造におけるエッジに近い下流側になるほど、レスポンスタイムが短くなるため、リアルタイムな制御に用いられる、すなわちレスポンスタイムが予め短時間に規定されているプロセスの制御に用いられる制御モジュールを配置する必要がある。一方、ツリー構造のルート(サービスクラウド2)に近い上流側になるほど、レスポンスタイムが長くなるため、短時間に行なわなくとも良く、リソースの効率を高くしたい処理、例えばO&M(Operation and Maintanance)や画像処理などの大規模なデータを用いる処理などの制御モジュールを配置する必要がある。
The application indicates the characteristics of the process (Job) for controlling the target device of the control module arranged at the arrangement position. As already described, in the
図4及び図6を用いて、第2の実施形態によるネットワークシステムの中継ルータR間における制御モジュールMの自律的な移動の動作について説明する。
図6は、第2の実施形態によるネットワークシステムの中継ルータ間における制御モジュールMの移動の動作例を示すフローチャートである。
ステップS1: 制御モジュールMは、所定の中継ルータ、例えば中継ルータ3_2−1_1のノードサーバ5_2_1に移動した後に起動する。
そして、制御モジュールMは、ノードサーバ5_2_1の時計から時刻情報を取得した後、自身のタイマーを起動させ、タイマーの計数を開始させる。
The operation of autonomous movement of the control module M between the relay routers R of the network system according to the second embodiment will be described with reference to FIGS.
FIG. 6 is a flowchart showing an operation example of movement of the control module M between relay routers in the network system according to the second embodiment.
Step S1: The control module M starts after moving to a node server 5_2_1 of a predetermined relay router, for example, the relay router 3_2- 1_1.
Then, after acquiring time information from the clock of the node server 5_2_1, the control module M activates its own timer and starts counting the timer.
ステップS2: 制御モジュールMは、タイマーの計数時間が所定時間Δt(検出周期)となるまで待機状態となる。そして、制御モジュールMは、計数時間が所定時間Δtを超えた場合、処理をステップS3へ進める。 Step S2: The control module M enters a standby state until the count time of the timer reaches a predetermined time Δt (detection cycle). Then, when the counting time exceeds the predetermined time Δt, the control module M advances the process to step S3.
ステップS3: 制御モジュールMは、所定時間Δt内において、自身に対応するリクエストメッセージが送信されてきたか否か、すなわち自身が自動車1_2_1にアクセスされたか否かを検出する。
このとき、制御モジュールMは、所定時間内Δt内に自身がアクセスされた場合、タイマーをリセットした後、処理をステップS4へ進める。一方、制御モジュールMは、所定時間内Δt内に自身がアクセスされていない場合、処理をステップS8へ進める。
Step S3: The control module M detects whether or not a request message corresponding to the control module M has been transmitted within a predetermined time Δt, that is, whether or not the control module M has accessed the automobile 1_2_1.
At this time, if the control module M is accessed within the predetermined time Δt, the control module M resets the timer and then proceeds to step S4. On the other hand, if the control module M is not accessed within the predetermined time Δt, the control module M advances the process to step S8.
ステップS4: 制御モジュールMは、リクエストメッセージにおける自動車1_2_1からのセンサ情報などのデータに基づき、プロセスに対応した所定の演算を行ない、自動車1_2_1の制御を行なう制御指令を生成する。このとき、制御モジュールMは、演算開始から制御指令の生成が終了するまでの時間、及び自身が配置されている中継ルータ3_2_1と対象装置である自動車1_2_1とにおけるメッセージの往復にかかる時間を加算してレスポンスタイムを求める。 Step S4: The control module M performs a predetermined calculation corresponding to the process based on data such as sensor information from the automobile 1_2_1 in the request message, and generates a control command for controlling the automobile 1_2_1. At this time, the control module M adds the time from the start of calculation until the end of generation of the control command, and the time required for the round trip of the message between the relay router 3_2_1 in which the control module M is located and the target vehicle 1_2_1. To obtain the response time.
ステップS5: 制御モジュールMは、レスポンスタイムが予め自身のプロセスに対して設定されている設定時間を超えているか否かの判定を行う。このとき、制御モジュールMは、レスポンスタイムが上記設定時間を超えている場合、処理をステップS7へ進める。一方、制御モジュールMは、レスポンスタイムが予め設定されている設定時間を超えていない場合、処理をステップS6へ進める。
ここで、設定時間は、制御モジュールの制御指令を生成する処理に対して要求される、リアルタイム性における制限時間を示している。すなわち、レスポンスタイムが満足されていない場合、制御モジュールMは、対象装置1に対するレスポンスタイムを満足させるため、現在より対象装置1(アグリゲーションネットワーク3のエッジ)に近い位置にある中継ルータ3Rに移動する必要があると判定する。
Step S5: The control module M determines whether or not the response time exceeds a set time set in advance for its own process. At this time, if the response time exceeds the set time, the control module M advances the process to step S7. On the other hand, if the response time does not exceed the preset time, the control module M advances the process to step S6.
Here, the set time indicates the time limit in real time required for the process of generating the control command of the control module. That is, when the response time is not satisfied, the control module M moves to the relay router 3R located closer to the target device 1 (the edge of the aggregation network 3) than the present time in order to satisfy the response time for the
ステップS6: 制御モジュールMは、自身に対するアクセスの回数(アクセス回数)が予め設定されている閾値以上であるか否かの判定を行う。このとき、制御モジュールMは、自身に対する上記アクセス回数が予め設定されている上記閾値以上である場合、処理をステップS7へ進める。制御モジュールMは、自身に対するアクセス回数が予め設定されている上記閾値未満である場合、処理をステップS2へ進める。 Step S6: The control module M determines whether or not the number of accesses to itself (access count) is equal to or greater than a preset threshold value. At this time, if the number of accesses to the control module M is equal to or greater than the preset threshold value, the process proceeds to step S7. If the number of accesses to the control module M is less than the preset threshold value, the control module M advances the process to step S2.
ステップS7: 制御モジュールMは、自身を、現在配置されている中継ルータ3_2_1より下流の中継ルータ3_3_1に移動させる(詳細は後述)。ここで、下流の中継ルータ3Rとは、アグリゲーションネットワーク3のツリー構造における中継ルータ3Rの各々において、現在配置されている中継ルータ3Rから見て、よりルートから離れる方向(よりエッジに近づく方向)にある中継ルータ3Rを示している。すなわち、下流の中継ルータ3Rに移動することは、リクエストメッセージを送信してからレスポンスメッセージを受信するまでのレスポンスタイムを短くする処理となる。また、制御モジュールMのアクセスされる頻度が高い場合、下流側の中継ルータ3_3_1に配置することにより、リソースとしての制御モジュールMの使用効率を向上させることができる。
Step S7: The control module M moves itself to the relay router 3_3_1 downstream from the currently arranged relay router 3_2_1 (details will be described later). Here, the downstream relay router 3R means that in each of the relay routers 3R in the tree structure of the
ステップS8: 制御モジュールMは、タイマーの計数時間が予め設定した所定時間を超えたか否かの判定を行う。このとき、制御モジュールMは、タイマーの計数時間が予め設定した所定時間を超えた場合、処理をステップS9へ進める。一方、制御モジュールMは、タイマーの計数時間が予め設定した所定時間以下の場合、処理をステップS2へ進める。 Step S8: The control module M determines whether or not the counting time of the timer has exceeded a predetermined time set in advance. At this time, the control module M advances the process to step S9 when the count time of the timer exceeds a predetermined time set in advance. On the other hand, if the counting time of the timer is equal to or less than a predetermined time set in advance, the control module M advances the process to step S2.
ステップS9: 制御モジュールMは、自身を、現在配置されている中継ルータ3_2_1より上流の中継ルータ3_1_1に移動させる(詳細は後述)。ここで、上流の中継ルータとは、アグリゲーションネットワーク3のツリー構造における中継ルータにおいて、現在配置されている中継ルータから見て、よりルートに近づく方向(よりエッジか離れる方向)にある中継ルータを示している。すなわち、上流の中継ルータに移動することは、リクエストメッセージを送信してからレスポンスメッセージを受信するまでのレスポンスタイムを長くする処理となる。所定時間の間に対象装置1からのアクセスが無い場合、上流側の中継ルータ3_1_1に配置することにより、リソースとしてのノードサーバ5_2_1の使用効率を向上させることができる。
Step S9: The control module M moves itself to the relay router 3_1_1 upstream of the currently arranged relay router 3_2_1 (details will be described later). Here, the upstream relay router refers to a relay router in a direction closer to the route (a direction away from the edge) as viewed from the currently arranged relay router in the relay router in the tree structure of the
図7は、第2の実施形態によるネットワークシステムにおいて、制御モジュールが制御サーバ2_2に存在する場合における中継ルータ3Rに対する制御モジュールの移動の動作例を示すフローチャートである。
ステップS11: 制御モジュールMは、制御サーバ2_2の時計から時刻情報を取得した後、自身のタイマーを起動させ、タイマーの計数を開始させる。
そして、制御モジュールMは、タイマーの計数時間が所定時間Δt(検出周期)を超えた場合、処理をステップS12へ進める。
FIG. 7 is a flowchart illustrating an operation example of movement of the control module with respect to the relay router 3R when the control module exists in the control server 2_2 in the network system according to the second embodiment.
Step S11: After obtaining the time information from the clock of the control server 2_2, the control module M activates its own timer and starts counting the timer.
Then, when the count time of the timer exceeds the predetermined time Δt (detection cycle), the control module M advances the process to step S12.
ステップS12: 制御モジュールMは、所定時間Δt内において、自身に対応するリクエストメッセージが送信されてきたか否か、すなわち自身が自動車1_2_1にアクセスされたか否かを検出する。
このとき、制御モジュールMは、所定時間内Δt内に自身がアクセスされた場合、タイマーをリセットした後、処理をステップS13へ進める。一方、制御モジュールMは、所定時間内Δt内に自身がアクセスされていない場合、処理をステップS11へ進める。
Step S12: The control module M detects whether or not a request message corresponding to the control module M has been transmitted within a predetermined time Δt, that is, whether or not the control module M has accessed the automobile 1_2_1.
At this time, if the control module M is accessed within the predetermined time Δt, the control module M resets the timer and then proceeds to step S13. On the other hand, if the control module M has not been accessed within the predetermined time Δt, the control module M advances the process to step S11.
ステップS13: 制御モジュールMは、リクエストメッセージにおける自動車1_2_1からのセンサ情報などに基づき、所定の演算を行なって、自動車1_2_1の制御を行なう制御指令を生成する。このとき、制御モジュールMは、演算開始から制御指令の生成が終了するまでの時間、及び自身が配置されている制御サーバ2_2と対象装置である自動車1_2_1とにおけるメッセージの往復にかかる時間を加算してレスポンスタイムを求める。 Step S13: The control module M performs a predetermined calculation based on sensor information from the automobile 1_2_1 in the request message, and generates a control command for controlling the automobile 1_2_1. At this time, the control module M adds the time from the start of calculation until the end of generation of the control command, and the time required for the round trip of the message between the control server 2_2 in which the control module M is located and the target vehicle 1_2_1. To obtain the response time.
ステップS14: 制御モジュールMは、レスポンスタイムが予めプロセスに対して設定されている設定時間を超えているか否かの判定を行う。このとき、制御モジュールMは、レスポンスタイムがすでに図6のフローチャートで説明した設定時間を超えている場合、処理をステップS16へ進める。一方、制御モジュールMは、レスポンスタイムが予め設定されている設定時間を超えていない場合、処理をステップS15へ進める。 Step S14: The control module M determines whether or not the response time exceeds a set time set in advance for the process. At this time, if the response time has already exceeded the set time described with reference to the flowchart of FIG. 6, the control module M advances the process to step S16. On the other hand, if the response time does not exceed the preset set time, the control module M advances the process to step S15.
ステップS15: 制御モジュールMは、自身に対するアクセス回数が予め設定されている閾値以上であるか否かの判定を行う。このとき、制御モジュールMは、自身に対するアクセス回数が予め設定されている閾値以上である場合、処理をステップS16へ進める。制御モジュールMは、自身に対するアクセス回数が予め設定されている閾値未満である場合、処理をステップS11へ進める。 Step S15: The control module M determines whether or not the number of accesses to itself is equal to or greater than a preset threshold value. At this time, if the number of accesses to the control module M is equal to or greater than a preset threshold, the process proceeds to step S16. If the number of accesses to the control module M is less than a preset threshold, the process proceeds to step S11.
ステップS16: 制御モジュールMは、制御サーバ2_2において、自身を複写することにより、同様な制御に対する処理を行なう制御モジュールM’を生成する。
そして、制御モジュールMは、生成した制御モジュールM’を下流の中継サーバ3_1_1のノードサーバ5_1_1に配置するため、処理をステップS17へ進める。
Step S16: The control module M generates a control module M ′ that performs processing for similar control by copying itself in the control server 2_2.
Then, the control module M advances the processing to step S17 in order to place the generated control module M ′ in the node server 5_1_1 of the downstream relay server 3_1_1.
図8は、図6のフローチャートにおけるステップS9の制御モジュールMが上流の中継ルータ3Rに移動する処理の動作例を説明するフローチャートである。
ステップS91: 制御モジュールMは、リクエストメッセージを受信した自動車1_2_1以外の同種類の他の自動車1_2_sから、N秒以内にアクセスされたか否か、すなわちリクエストメッセージを受信したか否かの判定を行なう。このとき、制御モジュールMは、他の自動車1_2_sからN秒以内にアクセスされた場合、処理をステップS92へ進める。一方、制御モジュールMは、他の自動車1_2_sからN秒以内にアクセスされていない場合、処理をステップS94へ進める。
FIG. 8 is a flowchart for explaining an operation example of processing in which the control module M in step S9 in the flowchart of FIG. 6 moves to the upstream relay router 3R.
Step S91: The control module M determines whether or not an access has been made within N seconds from another vehicle 1_2_s of the same type other than the vehicle 1_2_1 that has received the request message, that is, whether or not a request message has been received. At this time, if the control module M is accessed within N seconds from another automobile 1_2_s, the process proceeds to step S92. On the other hand, if the control module M has not been accessed within N seconds from another automobile 1_2_s, the process proceeds to step S94.
ステップS92: 制御モジュールMは、アグリゲーションネットワーク3のツリー構造において、現時点で配置されている中継ルータ3_2_1の上流における隣接した中継ルータ(直上の中継ルータ)3_1_1に移動した場合、全ユーザであるN秒以内にアクセスしてきた同種類の自動車1_2_1から1_2_sの各々における全てのレスポンスタイムが、自動車1_2_1から1_2_s(統一する場合1_2と表す)の同一種類のプロセスの制御に必要なレスポンスタイム以下か否か(必要なレスポンスタイムを満足するか否か)の判定を行なう。このとき、制御モジュールMは、自身にN秒以内にアクセスしてきた全ての自動車1_2の各々のレスポンスタイムを、シミュレーションとして求める。そして、制御モジュールMは、N秒以内にアクセスしてきた同種類の自動車1_2全てのレスポンスタイムが、対応するプロセスの制御に必要なレスポンスタイムを満足している場合、処理をステップS94へ進める。一方、制御モジュールMは、N秒以内にアクセスしてきた同種類の自動車1_2全てのレスポンスタイムが、対応する制御に必要なレスポンスタイムを満足していない場合、処理をステップS93へ進める。
Step S92: When the control module M moves to the adjacent relay router (directly above relay router) 3_1_1 upstream of the relay router 3_2_1 currently arranged in the tree structure of the
ステップS93: 制御モジュールMは、自身の配置の移動を行なわず、図6に示すフローチャートのステップS2へ戻る。すなわち、制御モジュールMは、自動車1_2_1のメッセージの送受信の経路上における上流の中継ルータ3_1_1に移動した場合、自身にアクセスする自動車1_2の各々に対して、制御に必要なレスポンスタイムを満足させらず、自動車1_2のプロセスの制御が遅延し、プロセスに設定されているレスポンスタイムを満足させることができない。このため、制御モジュールMは、自動車1_2の各々制御に必要なレスポンスタイムが満足されている現在配置されている中継ルータ3_2_1から移動しない。 Step S93: The control module M does not move its own arrangement and returns to step S2 of the flowchart shown in FIG. That is, when the control module M moves to the upstream relay router 3_1_1 on the message transmission / reception route of the automobile 1_2_1, the control module M does not satisfy the response time required for control for each of the automobiles 1_2 accessing itself. The process control of the automobile 1_2 is delayed, and the response time set in the process cannot be satisfied. For this reason, the control module M does not move from the relay router 3_2_1 currently arranged in which the response time required for each control of the automobile 1_2 is satisfied.
ステップS94: 制御モジュールMは、中継ルータ3_2_1の直上のノードにおける中継ルータ3_1_1に、自身と同一の制御モジュールの有無を、この直上の中継ルータ3_1_1にアクセスして確認する。制御モジュールMは、直上の中継ルータ3_1_1に自身と同一の制御モジュールM’’が配置されている場合、現時点で自身にアクセスする自動車1_2_1が上記制御モジュールM’’をアクセスしている他の同種の自動車1_2の各々と共用化が可能と判定する。 Step S94: The control module M checks whether the relay router 3_1_1 in the node immediately above the relay router 3_2_1 has the same control module as itself by accessing the relay router 3_1_1 immediately above. When the same control module M ″ as itself is arranged in the relay router 3_1_1 immediately above, the control module M is the same as the other type in which the car 1_2_1 accessing itself at the present time is accessing the control module M ″. It is determined that each car 1_2 can be shared.
そして、制御モジュールMは、中継ルータ3_2_1の直上の中継ルータ3_1_1に自身と同一の制御モジュールM’’が配置され、自動車1_2_1が他の同種の自動車1_2の各々との共用化が可能である場合、処理をステップS98へ進める。一方、制御モジュールMは、直上の中継ルータ3_1_1に自身と同一の制御モジュールM’’が配置されておらず、自動車1_2_1が他の同種の自動車1_2の各々との共用化が可能でない場合、処理をステップS95へ進める。 Then, in the case where the control module M ″ is arranged in the relay router 3_1_1 immediately above the relay router 3_2_1 so that the vehicle 1_2_1 can be shared with each of the other similar vehicles 1_2. Then, the process proceeds to step S98. On the other hand, if the control module M ″ that is the same as the control module M ″ is not arranged in the relay router 3_1_1 directly above and the vehicle 1_2_1 cannot be shared with each of the other similar vehicles 1_2, Advances to step S95.
ステップS95: 制御モジュールMは、中継ルータ3_2_1の直上のノードにおける中継ルータ3_1_1に、自身が移動した際に占有するメモリ容量が存在するか否か、すなわち自身が移動できるリソースが直上の中継ルータに有るか否かの判定を行なう。このとき、制御モジュールは、自身が移動できるリソースが直上の中継ルータ3_1_1に有る場合、所定をステップS99へ進める。一方、制御モジュールMは、自身が移動できるリソースが直上の中継ルータ3_1_1にない場合、所定をステップS96へ進める。
Step S95: The control module M determines whether or not the relay router 3_1_1 in the node immediately above the relay router 3_2_1 has a memory capacity occupied when it moves, that is, a resource that it can move to the relay router immediately above. It is determined whether or not there is. At this time, if there is a resource to which the control module can move in the relay router 3_1_1 directly above, the control module advances the predetermined process to step S99. On the other hand, the control module M advances the predetermined process to step S <b> 96 when the
ステップS96: 制御モジュールMは、中継ルータ3_2_1の直上のノードにおける中継ルータ3_1_1に、移動可能な他の制御モジュールM’’が有るか否かの確認を行なう。このとき、制御モジュールMは、直上の中継ルータ3_1_1に配置されている全ての制御モジュールM’’の各々に対し、順番にそれぞれの制御モジュールM’’が移動可能か否かの確認を依頼する。この順番は、例えばランダムに選択した順でも良いし、その中継ルータ3_1_1に配置された時間が早い順でも良い。制御モジュールM’’の各々は、自身が移動した際に、アクセスする対象装置1のレスポンスタイムを満足されるか、移動先として中継ルータの有無を、ステップS94からS96の処理を行なって確認する。そして、制御モジュールM’’は、自身が移動可能であるか否かを、制御モジュールMに対して通知する。
Step S96: The control module M checks whether or not there is another movable control module M ″ in the relay router 3_1_1 in the node immediately above the relay router 3_2_1. At this time, the control module M requests each of all the control modules M ″ arranged in the relay router 3_1_1 immediately above to check whether or not each control module M ″ can be moved in order. . This order may be, for example, a randomly selected order, or may be an order in which the time arranged in the relay router 3_1_1 is early. Each of the control modules M ″ confirms whether or not the response time of the
このとき、制御モジュールMは、制御モジュールM’’から移動可能であることを示す通知のメッセージの有無により、中継ルータ3_2_1の直上の中継ルータ3_1_1に移動可能な制御モジュールM’’の有無を判定する。これにより、制御モジュールMは、直上の中継ルータ3_1_1に移動可能な制御モジュールM’’が有る場合、処理をステップS97へ進める。一方、制御モジュールMは、直上の中継ルータ3_1_1に移動可能な制御モジュールM’’がない場合、自身を移動せずに図6に示すフローチャートのステップS2へ戻る。 At this time, the control module M determines whether or not there is a control module M ″ that can be moved to the relay router 3_1_1 immediately above the relay router 3_2_1 based on the presence or absence of a notification message indicating that the control module M ″ can be moved. To do. As a result, when there is a control module M ″ that can be moved to the relay router 3_1_1 immediately above, the control module M advances the process to step S97. On the other hand, if there is no movable control module M ″ in the relay router 3_1_1 immediately above, the control module M returns to step S2 of the flowchart shown in FIG. 6 without moving itself.
ステップS97: 制御モジュールMは、移動可能と通知してきた制御モジュールM’’に対して移動を指示するメッセージを出力する。そして、制御モジュールM’’は、自身が移動可能な制御サーバ2_2に移動し、すなわち中継ルータ3_1_1の自身を削除し、制御モジュールMが移動するためのリソースを中継ルータ3_1_1に生成する。これにより、制御モジュールMは、中継ルータ3_2_1の直上の中継ルータ3_1_1に、自身が移動するためのリソースを確保する。 Step S97: The control module M outputs a message instructing movement to the control module M ″ that has been notified that movement is possible. Then, the control module M ″ moves to the control server 2_2 to which the control module M ″ can move, that is, deletes itself of the relay router 3_1_1, and generates resources for the control module M to move to the relay router 3_1_1. As a result, the control module M secures resources for moving itself to the relay router 3_1_1 immediately above the relay router 3_2_1.
ステップS98: 制御モジュールMは、処理を終了した後、現時点において位置されている中継ルータ3_2_1における自身を削除する。 Step S98: After finishing the process, the control module M deletes itself in the relay router 3_2_1 located at the present time.
ステップS99: 制御モジュールMは、中継ルータ3_2_1の直上の中継ルータ3_1_1に対して自身を移動する。すなわち、制御モジュールMは、自身の複写である制御モジュールM’を直上の中継ルータ3_1_1に作成する。そして、制御モジュールMは、処理を終了した後、現時点において位置されている中継ルータ3_2_1における自身を削除する。 Step S99: The control module M moves itself to the relay router 3_1_1 immediately above the relay router 3_2_1. That is, the control module M creates a control module M ′, which is a copy of itself, in the relay router 3_1_1 immediately above. Then, after finishing the processing, the control module M deletes itself in the relay router 3_2_1 located at the present time.
図9は、図6のフローチャートにおけるステップS7及び図7のフローチャートにおけるステップS17の制御モジュールが下流に移動する処理の動作例を説明するフローチャートである。
ステップS71: 制御モジュールMは、制御モジュールMは、リクエストメッセージを受信した自動車1_2_1以外の同種類の他の自動車1_2から、N秒以内にアクセスされたか否かの判定を行なう。このとき、制御モジュールMは、他の自動車1_2からN秒以内にアクセスされた場合、処理をステップS78へ進める。一方、制御モジュールMは、他の自動車1_2からN秒以内にアクセスされていない場合、処理をステップS72へ進める。
FIG. 9 is a flowchart for explaining an operation example of the process in which the control module in step S7 in the flowchart in FIG. 6 and step S17 in the flowchart in FIG. 7 moves downstream.
Step S71: The control module M determines whether or not the control module M has been accessed within N seconds from another vehicle 1_2 of the same type other than the vehicle 1_2_1 that has received the request message. At this time, if the control module M is accessed within N seconds from another automobile 1_2, the process proceeds to step S78. On the other hand, if the control module M has not been accessed from the other automobile 1_2 within N seconds, the process proceeds to step S72.
ステップS72: 制御モジュールMは、自動車1_2_1と制御サーバ2_2とのメッセージの送受信の経路上において、現時点で配置されている中継ルータ3_2_1の直下のノードにおける中継ルータ3_3_1に、自身が移動できるリソースが有るか否かの判定を行なう。このとき、制御モジュールは、自身が移動できるリソースが直下の中継ルータ3_3_1に有る場合、所定をステップS75へ進める。一方、制御モジュールMは、自身が移動できるリソースが直下の中継ルータ3_3_1にない場合、処理をステップS73へ進める。 Step S72: The control module M has a resource that it can move in the relay router 3_3_1 in the node immediately below the relay router 3_2_1 currently arranged on the message transmission / reception route between the automobile 1_2_1 and the control server 2_2. It is determined whether or not. At this time, if there is a resource to which the control module can move in the direct relay router 3_3_1, the control module advances the predetermined process to step S75. On the other hand, the control module M advances the process to step S73 when there is no resource to which the control module M can move in the direct relay router 3_3_1.
ステップS73: 制御モジュールMは、直下のノードにおける中継ルータ3_3_1に、移動可能な他の制御モジュールM’’が有るか否かの確認を行なう。このとき、制御モジュールMは、直下の中継ルータ3_3_1に配置されている全ての制御モジュールM’’の各々に対し、順番にそれぞれの制御モジュールM’’が移動可能か否かの確認を依頼する。制御モジュールM’’の各々は、自身が移動した際に、アクセスする対象装置1のレスポンスタイムを満足されるか、移動先として中継ルータの有無を、ステップS72及びS73の処理を行なって確認する。そして、制御モジュールM’’は、自身が移動可能であるか否かを、制御モジュールMに対して通知する。
Step S73: The control module M checks whether or not there is another movable control module M ″ in the relay router 3_3_1 in the node immediately below. At this time, the control module M requests each of all the control modules M ″ arranged in the direct relay router 3_3_1 to confirm whether or not each control module M ″ can be moved in order. . Each of the control modules M ″ confirms whether the response time of the
このとき、制御モジュールMは、制御モジュールM’’から移動可能であることを示す通知のメッセージの有無により、直下の中継ルータ3_3_1に移動可能な制御モジュールM’’の有無を判定する。これにより、制御モジュールMは、直下の中継ルータ3_3_1に移動可能な制御モジュールM’’が有る場合、処理をステップS74へ進める。一方、制御モジュールMは、直下の中継ルータ3_3_1に移動可能な制御モジュールM’’がない場合、直下の中継ルータ3_3_1にリソースが確保されないため、処理を図6のステップS2へ進める。 At this time, the control module M determines the presence / absence of the control module M ″ that can be moved to the relay router 3_3_1 directly below, based on the presence / absence of a notification message indicating that the control module M ″ can be moved. As a result, when there is a control module M ″ that can be moved to the relay router 3_3_1 immediately below, the control module M advances the process to step S74. On the other hand, when there is no movable control module M ″ in the relay router 3_3_1 directly below, the control module M advances the process to step S2 in FIG. 6 because no resource is secured in the relay router 3_3_1 directly below.
ステップS74: 制御モジュールMは、移動可能と通知してきた制御モジュールM’’に対して移動を指示するメッセージを出力する。そして、制御モジュールM’’は、例えば、自身が移動可能な中継ルータ3_2_1に移動し、制御モジュールMが移動するためのリソースを直下の中継ルータ3_3_1に生成する。これにより、制御モジュールMは、直下の中継ルータ3_3_1に、自身が移動するためのリソースを確保する。 Step S74: The control module M outputs a message instructing movement to the control module M ″ that has been notified that movement is possible. Then, for example, the control module M ″ moves to the relay router 3_2_1 to which the control module M ″ can move, and generates a resource for the control module M to move in the relay router 3__1 immediately below. As a result, the control module M secures a resource for moving itself to the relay router 3_3_1 immediately below.
ステップS75: そして、制御モジュールMは、直下の中継ルータ3_3_1に対して自身を移動する処理を行なう。すなわち、制御モジュールMは、自身の複写である制御モジュールM’を直下の中継ルータ3_3_1に作成する。
ステップS76: そして、制御モジュールMは、処理を終了した後、現時点において位置されている中継ルータ3_2_1における自身を削除する。
Step S75: Then, the control module M performs a process of moving itself to the relay router 3_3_1 immediately below. That is, the control module M creates a control module M ′, which is a copy of itself, in the relay router 3_3_1 immediately below.
Step S76: Then, after finishing the processing, the control module M deletes itself in the relay router 3_2_1 located at the present time.
ステップS77: 制御モジュールMは、自動車1_2_1と制御サーバ2_2とのメッセージの送受信の経路上において、現時点で配置されている中継ルータ3_2_1の直下のノードにおける中継ルータ3_3_1に、自身が移動できるリソースが有るか否かの判定を行なう。このとき、制御モジュールは、自身が移動できるリソースが直下の中継ルータ3_3_1に有る場合、処理をステップS80へ進める。一方、制御モジュールMは、自身が移動できるリソースが直下の中継ルータ3_3_1にない場合、所定をステップS78へ進める。 Step S77: The control module M has a resource that it can move in the relay router 3_3_1 in the node immediately below the relay router 3_2_1 that is currently located on the message transmission / reception route between the automobile 1_2_1 and the control server 2_2. It is determined whether or not. At this time, if there is a resource that can be moved by the relay module 3_3_1 directly below, the control module advances the process to step S80. On the other hand, the control module M advances the predetermined process to step S78 when there is no resource to which the control module M can move in the direct relay router 3_3_1.
ステップS78: 制御モジュールMは、直下のノードにおける中継ルータ3_3_1に、移動可能な他の制御モジュールM’’が有るか否かの確認を行なう。このとき、制御モジュールMは、直下の中継ルータ3_3_1に配置されている全ての制御モジュールM’’の各々に対し、順番にそれぞれの制御モジュールM’’が移動可能か否かの確認を依頼する。制御モジュールM’’の各々は、自身が移動した際に、アクセスする対象装置1のレスポンスタイムを満足されるか、移動先として中継ルータの有無を、ステップS77及びS78の処理を行なって確認する。そして、制御モジュールM’’は、自身が移動可能であるか否かを、制御モジュールMに対して通知する。
Step S78: The control module M checks whether or not there is another movable control module M ″ in the relay router 3_3_1 in the node immediately below. At this time, the control module M requests each of all the control modules M ″ arranged in the direct relay router 3_3_1 to confirm whether or not each control module M ″ can be moved in order. . Each of the control modules M ″ confirms whether the response time of the
このとき、制御モジュールMは、制御モジュールM’’から移動可能であることを示す通知のメッセージの有無により、直下の中継ルータ3_3_1において移動可能な制御モジュールM’’の有無を判定する。これにより、制御モジュールMは、直下の中継ルータ3_3_1において移動可能な制御モジュールM’’が有る場合、処理をステップS79へ進める。一方、制御モジュールMは、直下の中継ルータ3_3_1において移動可能な制御モジュールM’’がない場合、処理をステップS81へ進める。 At this time, the control module M determines the presence / absence of the movable control module M ″ in the relay router 3_3_1 immediately below, based on the presence / absence of a notification message indicating that the movement is possible from the control module M ″. As a result, when there is a control module M ″ that can be moved in the relay router 3_3_1 directly below, the control module M advances the process to step S79. On the other hand, if there is no movable control module M ″ in the relay router 3_3_1 directly below, the control module M advances the process to step S81.
ステップS79: 制御モジュールMは、移動可能と通知してきた制御モジュールM’’に対して移動を指示するメッセージを出力する。そして、制御モジュールM’’は、例えば、自身が移動可能な中継ルータ3_2_1に移動し、制御モジュールMが移動するためのリソースを直下の中継ルータ3_3_1に生成する。これにより、制御モジュールMは、直下の中継ルータ3_3_1に、自身が移動するためのリソースを確保する。 Step S79: The control module M outputs a message instructing movement to the control module M ″ that has been notified that movement is possible. Then, for example, the control module M ″ moves to the relay router 3_2_1 to which the control module M ″ can move, and generates a resource for the control module M to move in the relay router 3__1 immediately below. As a result, the control module M secures a resource for moving itself to the relay router 3_3_1 immediately below.
ステップS80: そして、制御モジュールMは、直下の中継ルータ3_3_1に対して自身を複写する処理を行なう。このとき、制御モジュールMは、自身の複写である制御モジュールM’を直下の中継ルータ3_3_1に作成する。
そして、制御モジュールMは、現時点において位置されている中継ルータ3_2_1における自身を削除せずに、処理を終了する。
Step S80: Then, the control module M performs a process of copying itself to the relay router 3_3_1 immediately below. At this time, the control module M creates a control module M ′, which is a copy of itself, in the relay router 3_3_1 immediately below.
And the control module M complete | finishes a process, without deleting itself in the relay router 3_2_1 currently located.
ステップS81: 制御モジュールMは、中継ルータ3_2_1における自身の配置の移動及び複写を行なわず、図6に示すフローチャートのステップS2へ戻る。すなわち、制御モジュールMは、メッセージの送受信の経路上における下流の中継ルータ3_3_1に移動することができないため、現在配置されている中継ルータ3_2_1から移動しない。 Step S81: The control module M does not move and copy its own arrangement in the relay router 3_2_1, and returns to step S2 of the flowchart shown in FIG. That is, since the control module M cannot move to the downstream relay router 3_2_1 on the message transmission / reception route, it does not move from the currently arranged relay router 3_2_1.
上述したよう、本実施形態によれば、サービスクラウド2に存在する制御サーバ2_2にアクセスすることなく、対象装置から制御サーバ2_2までのリクエストメッセージの経路上における中継サーバ3Rのいずれかに、リアルタイム性が必要な対象装置の制御に対応した制御モジュールが配置されるため、制御指令を制御を行なう適切な時間に受信できる。
また、本実施形態によれば、対象装置における制御の各々に必要なレスポンスタイムに対応し、制御モジュールが自律的に、アグリゲーションネットワーク3における上記経路上における中継ルータ3R間を移動して、それぞれレスポンスタイムを満たす位置の中継ルータ3Rに配置されるため、対象装置1の各々におけるプロセスの制御の処理に対応したレスポンスタイムを満足させることができる。
As described above, according to the present embodiment, a real-time property is provided to any of the relay servers 3R on the route of the request message from the target device to the control server 2_2 without accessing the control server 2_2 existing in the
Further, according to the present embodiment, the control module autonomously moves between the relay routers 3R on the route in the
<第3の実施形態>
本発明の第3の実施形態によるネットワークシステムについて説明する。第3の実施形態におけるネットワークシステムの構成は、すでに説明した図1に示す第1の実施形態と同様である。以下、第1の実施形態と異なる動作について説明する。
第3の実施形態における制御モジュールは、第2の実施形態と同様に、分散エージェントとして、対象装置に対する制御指令を生成する機能に加え、自律的にアグリゲーションネットワーク3における中継ルータ3R間を移動する機能、自身を複写して他の中間ルータ3Rにインストールする機能、自身を削除する機能の各々を備えている。
<Third Embodiment>
A network system according to the third embodiment of the present invention will be described. The configuration of the network system in the third embodiment is the same as that of the first embodiment shown in FIG. Hereinafter, operations different from those of the first embodiment will be described.
As in the second embodiment, the control module in the third embodiment functions as a distributed agent, in addition to the function of generating a control command for the target device, autonomously moving between the relay routers 3R in the
本実施形態において、制御モジュールは、アグリゲーションネットワーク3における所定の経路上にある中継ルータ3R間を移動する際、現在の中継ルータに配置されていた方が良いか、あるいは他の中継ルータに移動した方が良いかを、リソースのコストCにより決定する。このコストCの計算には、以下の(1)式を用いている。(1)式において、移動の対象となる制御モジュールを使用する全ての対象装置1のコストを加算し、制御モジュールMのコストCを算出する。
C=Σ(α・D+β・(E/(n×ρ))+γ・F) …(1)
In the present embodiment, when the control module moves between the relay routers 3R on the predetermined route in the
C = Σ (α · D + β · (E / (n × ρ)) + γ · F) (1)
上記(1)式において、Dはアクセスコストであり、対象装置1から制御モジュールが配置されている中継ルータ3Rまでの距離であり、この距離が長いほど高く、短いほど低くなる。αは、アクセスコストDに対して乗算する係数である。
In the above equation (1), D is the access cost, which is the distance from the
Eは処理コストであり、プログラムの大きさ(例えば、占有するメモリ容量)である。nは評価対象の制御モジュールを使用している対象装置1の数であり、ρは利用率である。共用する対象装置1が多いほどコストが小さくなるため、処理コストBを対象装置1の数と対象装置1の利用率ρを乗算した結果により除算する。ここで、対象装置1に対して利用率ρを乗算しているのは、制御モジュールの利用利用頻度も考慮している。βは、処理コストEに乗算する係数である。
E is the processing cost, which is the size of the program (for example, the occupied memory capacity). n is the number of
Fは、ノード利用コストであり、アグリゲーションネットワーク3のツリー構造におけるノードにある中継ルータ3Rが演算処理をする際にかかるコスト(例えば、ノードサーバの演算スピード)である。演算スピードが早くなるにつれてコストFは低くなり、一方、演算スピードが遅くなるにつれてコストFは高くなる。したがって、ツリー構造のエッジに近づくほどノードサーバの演算スピードは低下するため、エッジに近くなるにつれてコストFは高くなる。γは、処理コストFに乗算する係数である。
係数α、β及びγの各々は、中継ノード間を制御モジュールを移動させる実験あるいはシミュレーションを行ない、コストCを算出することにより、制御モジュールMの移動の判定に対応した適切な値に調節される。
F is a node usage cost, which is a cost (for example, a calculation speed of the node server) required when the relay router 3R in the node in the tree structure of the
Each of the coefficients α, β, and γ is adjusted to an appropriate value corresponding to the determination of the movement of the control module M by performing an experiment or simulation for moving the control module between relay nodes and calculating the cost C. .
中継ルータ間における制御モジュールMの移動の動作については、図6に示すフローチャートと同様である。以下に、第4の実施形態における、(1)で算出するコストCを用いた図6のフローチャートにおける制御モジュールの上流の中継ルータへの移動及び下流の中継ルータへの移動の処理について説明する。
図10は、制御モジュールが上流に移動する図6のステップS9における、第3の実施形態の処理の動作例を説明するフローチャートである。
The operation of moving the control module M between the relay routers is the same as the flowchart shown in FIG. Hereinafter, the process of moving the control module to the upstream relay router and the process of moving to the downstream relay router in the flowchart of FIG. 6 using the cost C calculated in (1) in the fourth embodiment will be described.
FIG. 10 is a flowchart for explaining an operation example of the processing of the third embodiment in step S9 of FIG. 6 in which the control module moves upstream.
図11は、第3の実施形態において、コストCに応じて制御モジュールMが上流の中継ルータ3Rへ移動する処理について説明する概念図である。図11(a)は、制御モジュールの移動前の状態として、中継ルータ3_e_1に制御モジュールMが存在する初期状態を示している。アグリゲーションネットワーク3のツリー構造において、中継ルータ3_e_1の直上のノードには、中継ルータ3_d_1が配置されている。また、中継ルータ3_e_1の直下のノードには、中継ルータ3_f_1及び3_f_2が配置されている。中継ルータ3_f_1には自動車1Aが接続され、中継ルータ3_f_2には自動車1Bが接続されている。図11(b)は、中継ルータ3_f_1から、直上の中継ルータ3_d_1に制御モジュールMが移動した状態を説明する図である。図11(c)は、中継ルータ3_e_1から制御モジュールMが削除された状態を示す図である。
以下、図10及び図11を用いて、第3の実施形態によるネットワークシステムの中継ルータ間における制御モジュールの自律的な上流への移動の動作について説明する。以下の説明において、自律的な移動を行なう制御モジュールMは、中継ルータ3_e_1に配置されている。
FIG. 11 is a conceptual diagram illustrating a process in which the control module M moves to the upstream relay router 3R according to the cost C in the third embodiment. FIG. 11A shows an initial state where the control module M exists in the relay router 3_e_1 as a state before the control module moves. In the tree structure of the
Hereinafter, the operation of autonomously moving the control module between relay routers in the network system according to the third embodiment will be described with reference to FIGS. 10 and 11. In the following description, the control module M that performs autonomous movement is disposed in the relay router 3_e_1.
ステップS101: 制御モジュールMは、リクエストメッセージを送信した自動車1A以外の同種類の他の自動車1Bなどから、N秒以内にアクセスされたか否か、すなわちリクエストメッセージを受信したか否かの判定を行なう。このとき、制御モジュールMは、他の自動車1BからN秒以内にアクセスされた場合、処理をステップS102へ進める。一方、制御モジュールMは、他の自動車1BからN秒以内にアクセスされていない場合、処理をステップS107へ進める。
Step S101: The control module M determines whether or not an access has been made within N seconds from another
ステップS102: 制御モジュールMは、現時点において配置されている中継ルータ3_e_1におけるコストC0(図11(a)の状態におけるコスト)と、現在の中継ルータ3_e_1から自身を削除して直上の中継ルータ3_d_1に移動した場合のコストC1(図11(b)の状態におけるコスト)と、現在の中継ルータ3_e_1から自身を削除して直上の中継ルータ3_d_1より上流(制御サーバ2_2を含む)にある制御プログラムを利用する場合のコストC2(図11(c)の状態におけるコスト)との計算を、上記(1)式を用いてそれぞれ行なう。 Step S102: The control module M deletes itself from the current relay router 3_e_1 by deleting the cost C0 (the cost in the state of FIG. 11A) in the relay router 3_e_1 currently arranged and the current relay router 3_e_1. The cost C1 (the cost in the state of FIG. 11B) when moved and the control program in the upstream (including the control server 2_2) upstream of the relay router 3_d_1 immediately above itself is deleted from the current relay router 3_e_1 Calculation with the cost C2 (cost in the state shown in FIG. 11C) is performed using the above equation (1).
ステップS103: 制御モジュールMは、算出したコストC0がコストC1未満か否かの判定を行なう。このとき、制御モジュールMは、コストC0がコストC1未満である場合、自身を移動させる必要がないため処理を図6のステップS2へ進める。一方、制御モジュールMは、コストC0がコストC1以上である場合、自身を移動させた方がコストが低下するため、処理をステップS104へ進める。 Step S103: The control module M determines whether or not the calculated cost C0 is less than the cost C1. At this time, if the cost C0 is less than the cost C1, the control module M does not need to move itself, and the process proceeds to step S2 in FIG. On the other hand, when the cost C0 is equal to or higher than the cost C1, the control module M advances the process to step S104 because the cost is lowered when the control module M is moved.
ステップS104: 制御モジュールMは、算出したコストC1がコストC2未満か否かの判定を行なう。このとき、制御モジュールMは、コストC1がコストC2未満である場合、処理をステップS105へ進める。一方、制御モジュールMは、コストC1がコストC2以上である場合、処理をステップS106へ進める。 Step S104: The control module M determines whether or not the calculated cost C1 is less than the cost C2. At this time, if the cost C1 is less than the cost C2, the control module M advances the process to step S105. On the other hand, if the cost C1 is equal to or higher than the cost C2, the control module M advances the process to step S106.
ステップS105: 制御モジュールMは、上述したように、現在の中継ルータ3_e_1から自身を削除して直上の中継ルータ3_d_1に移動した方がコストCが低下する。このため、制御モジュールMは、直上の中継ルータ3_d_1に自身を複写した制御モジュールM’を配置する。そして、制御モジュールMは、図11(b)に示すように、現在の中継ルータ3_e_1から自身を削除し、処理を終了する。 Step S105: As described above, the cost C decreases as the control module M deletes itself from the current relay router 3_e_1 and moves to the relay router 3_d_1 immediately above. For this reason, the control module M arranges the control module M ′, which is a copy of itself, in the relay router 3_d_1 immediately above. Then, as shown in FIG. 11B, the control module M deletes itself from the current relay router 3_e_1 and ends the process.
ステップS106: 制御モジュールMは、上述したように、現在の中継ルータ3_e_1から自身を削除して、直上の中継ルータ3_d_1のさらに上流にある中継ルータ3Rに配置されている制御モジュールMを利用した方がコストCが低下する。このため、制御モジュールMは、図11(c)に示すように、現在の中継ルータ3_e_1から自身を削除し、処理を終了する。 Step S106: As described above, the control module M deletes itself from the current relay router 3_e_1 and uses the control module M arranged in the relay router 3R further upstream of the relay router 3_d_1 immediately above. However, the cost C decreases. Therefore, the control module M deletes itself from the current relay router 3_e_1, as shown in FIG. 11C, and ends the process.
ステップS107: 制御モジュールMは、中継ルータ3_e_1の直上のノードにおける中継ルータ3_d_1に、自身と同一の制御モジュールの有無を、この直上の中継ルータにアクセスして確認する。制御モジュールMは、直上の中継ルータ3_d_1に自身と同一の制御モジュールMが配置されている場合、現時点で自身にアクセスする自動車1Aが上記制御モジュールMをアクセスしている他の同種の自動車1の各々と共用化が可能と判定する。
そして、制御モジュールMは、中継ルータ3_2_1の直上の中継ルータ3_d_1に自身と同一の制御モジュールMが配置され、自動車1Aが他の同種の自動車1の各々との共用化が可能である場合、処理をステップS111へ進める。一方、制御モジュールMは、直上の中継ルータ3_d_1に自身と同一の制御モジュールMが配置されておらず、自動車1Aが他の同種の自動車1Bの各々との共用化が可能でない場合、処理をステップS108へ進める。
Step S107: The control module M checks whether the relay router 3_d_1 in the node immediately above the relay router 3_e_1 has the same control module as itself by accessing the relay router immediately above. When the same control module M as the control module M is arranged in the relay router 3_d_1 directly above, the control module M of the same kind of
The control module M is processed when the same control module M as itself is arranged in the relay router 3_d_1 immediately above the relay router 3_2_1, and the
ステップS108: 制御モジュールMは、中継ルータ3_e_1の直上のノードにおける中継ルータ3_d_1に、自身が移動した際に占有するメモリ容量が存在するか否か、すなわち自身が移動できるリソースが直上の中継ルータ3_d_1に有るか否かの判定を行なう。このとき、制御モジュールは、自身が移動できるリソースが直上の中継ルータ3_d_1に有る場合、所定をステップS112へ進める。一方、制御モジュールMは、自身が移動できるリソースが直上の中継ルータ3_d_1にない場合、所定をステップS109へ進める。 Step S108: The control module M determines whether or not the relay router 3_d_1 in the node immediately above the relay router 3_e_1 has a memory capacity occupied when it moves, that is, the resource to which the control module M can move is directly above the relay router 3_d_1. It is determined whether or not there is. At this time, if there is a resource to which the control module can move in the relay router 3_d_1 immediately above, the control module advances the predetermined process to step S112. On the other hand, when the relay router 3_d_1 directly above does not have a resource to which the control module M can move, the control module M advances the predetermined process to step S109.
ステップS109: 制御モジュールMは、中継ルータ3_e_1の直上のノードにおける中継ルータ3_d_1に、移動可能な他の制御モジュールM’’が有るか否かの確認を行なう。このとき、制御モジュールMは、直上の中継ルータ3_d_1に配置されている全ての制御モジュールM’’の各々に対し、順番にそれぞれの制御モジュールM’’が移動可能か否かの確認を依頼する。制御モジュールM’’の各々は、自身が移動した際に、アクセスする対象装置1のレスポンスタイムを満足されるか、移動先として中継ルータの有無を、ステップS107からS109の処理を行なって確認する。そして、制御モジュールM’’は、自身が移動可能であるか否かを、制御モジュールMに対して通知する。
Step S109: The control module M checks whether there is another movable control module M ″ in the relay router 3_d_1 in the node immediately above the relay router 3_e_1. At this time, the control module M requests each of all the control modules M ″ arranged in the relay router 3_d_1 directly above to check whether or not each control module M ″ can be moved in order. . Each of the control modules M ″ confirms whether or not the response time of the
このとき、制御モジュールMは、制御モジュールM’’から移動可能であることを示す通知のメッセージの有無により、直上の中継ルータ3_d_1において移動可能な制御モジュールM’’の有無を判定する。これにより、制御モジュールMは、直上の中継ルータ3_d_1において移動可能な制御モジュールM’’が有る場合、処理をステップS110へ進める。一方、制御モジュールMは、直上の中継ルータ3Rにおいて移動可能な制御モジュールM’’がない場合、自身を移動せずに図6に示すフローチャートのステップS2へ戻る。 At this time, the control module M determines the presence / absence of the movable control module M ″ in the relay router 3_d_1 immediately above, based on the presence / absence of a notification message indicating that the movement is possible from the control module M ″. Accordingly, when there is a control module M ″ that can be moved in the relay router 3_d_1 directly above, the control module M advances the process to step S110. On the other hand, if there is no movable control module M ″ in the relay router 3R immediately above, the control module M returns to step S2 of the flowchart shown in FIG. 6 without moving itself.
ステップS110: 制御モジュールMは、移動可能と通知してきた制御モジュールM’’に対して移動を指示するメッセージを出力する。そして、制御モジュールM’’は、直上あるいは直下のノードの自身が移動可能な中継ルータ3Rに移動し、制御モジュールMが移動するためのリソースを中継ルータ3_d_1に生成する。これにより、制御モジュールMは、中継ルータ3_e_1の直上の中継ルータ3_d_1に、自身が移動するためのリソースを確保する。 Step S110: The control module M outputs a message instructing movement to the control module M ″ that has been notified that movement is possible. Then, the control module M ″ moves to the relay router 3R to which the node immediately above or directly below can move, and generates resources for the control module M to move in the relay router 3_d_1. As a result, the control module M secures a resource for moving itself to the relay router 3_d_1 immediately above the relay router 3_e_1.
ステップS111: 制御モジュールMは、処理を終了した後、現時点において位置されている中継ルータ3_e_1における自身を削除する。 Step S111: After finishing the processing, the control module M deletes itself in the relay router 3_e_1 located at the present time.
ステップS112: 制御モジュールMは、中継ルータ3_2_1の直上の中継ルータ3_d_1に対して自身を移動する。すなわち、制御モジュールMは、自身の複写である制御モジュールM’を直上の中継ルータ3_d_1に作成する。そして、制御モジュールMは、処理を終了した後、現時点において位置されている中継ルータ3_e_1における自身を削除する。 Step S112: The control module M moves itself to the relay router 3_d_1 immediately above the relay router 3_2_1. That is, the control module M creates a control module M ′, which is a copy of itself, in the relay router 3_d_1 immediately above. Then, after finishing the processing, the control module M deletes itself in the relay router 3_e_1 that is currently located.
図12は、制御モジュールが下流に移動する図6のステップS7における、第3の実施形態の処理の動作例を説明するフローチャートである。
図13は、第3の実施形態において、コストCに応じて制御モジュールが下流へ移動する処理について説明する概念図である。図13(a)は、図11(a)と同様に、制御モジュールの移動前における、中継ルータ3_e_1に制御モジュールMが存在する初期状態を示している。中継ルータ3_e_1の直上のノードには、中継ルータ3_d_1が配置されている。また、中継ルータ3_e_1の直下のノードには、中継ルータ3_f_1及び3_f_2が配置されている。中継ルータ3_f_1には自動車1Aが接続され、中継ルータ3_f_2には自動車1Bが接続されている。図13(b)は、中継ルータ3_f_1から、直下の自動車1Aが接続されている中継ルータ3_f_1に制御モジュールNが移動した状態を説明する図である。図13(c)は、中継ルータ3_e_1の制御モジュールMを、直下の中継ルータ3_f_1及び3_f_2の各々に制御モジュールM’として複写し、制御モジュールMが中継ルータ3_e_1からが削除された状態を示す図である。
以下、図12及び図13を用いて、第3の実施形態によるネットワークシステムの中継ルータ間における制御モジュールの自律的な下流への移動の動作について説明する。
FIG. 12 is a flowchart for explaining an operation example of the processing of the third embodiment in step S7 of FIG. 6 in which the control module moves downstream.
FIG. 13 is a conceptual diagram illustrating a process in which the control module moves downstream according to the cost C in the third embodiment. FIG. 13A shows an initial state where the control module M exists in the relay router 3_e_1 before the control module is moved, as in FIG. 11A. A relay router 3_d_1 is arranged at a node immediately above the relay router 3_e_1. In addition, relay routers 3_f_1 and 3_f_2 are arranged at nodes immediately below the relay router 3_e_1. The
Hereinafter, the operation of autonomous movement of the control module between relay routers in the network system according to the third embodiment will be described with reference to FIGS. 12 and 13.
ステップS201: 制御モジュールMは、制御モジュールMは、リクエストメッセージを受信した自動車1A以外の同種類の他の自動車1Bから、N秒以内にアクセスされたか否か、すなわちリクエストメッセージを受信したか否かの判定を行なう。このとき、制御モジュールMは、他の自動車1BからN秒以内にアクセスされた場合、処理をステップS202へ進める。一方、制御モジュールMは、他の自動車1BからN秒以内にアクセスされていない場合、処理をステップS207へ進める。
Step S201: The control module M determines whether the control module M has been accessed within N seconds from another
ステップS202: 制御モジュールMは、現時点において配置されている中継ルータ3_e_1におけるコストC0(図13(a)の状態におけるコスト)と、現在の中継ルータ3_e_1から自身を削除して直下の中継ルータ3_f_1に移動した場合のコストC3(図13(b)の状態におけるコスト)と、現在の中継ルータ3_e_1から自身を削除して直下の中継ルータ3_f_1及び3_f_2の各々に自身を複写した場合のコストC4(図13(c)の状態におけるコスト)との計算を、上記(1)式を用いてそれぞれ行なう。 Step S202: The control module M deletes itself from the current relay router 3_e_1 by deleting the cost C0 (cost in the state of FIG. 13A) in the relay router 3_e_1 currently arranged and the current relay router 3_e_1. Cost C3 when moving (cost in the state of FIG. 13B) and cost C4 when deleting itself from the current relay router 3_e_1 and copying itself to each of the relay routers 3_f_1 and 3_f_2 directly below (FIG. 13B) 13 (c) is calculated using the above equation (1).
ステップS203: 制御モジュールMは、算出したコストC0がコストC3未満か否かの判定を行なう。このとき、制御モジュールMは、コストC0がコストC3未満である場合、自身を移動させる必要がないため処理を図6のステップS2へ進める。一方、制御モジュールMは、コストC0がコストC3以上である場合、自身を移動させた方がコストが低下するため、処理をステップS204へ進める。 Step S203: The control module M determines whether or not the calculated cost C0 is less than the cost C3. At this time, if the cost C0 is less than the cost C3, the control module M does not need to move itself, and the process proceeds to step S2 in FIG. On the other hand, when the cost C0 is equal to or higher than the cost C3, the control module M advances the process to step S204 because the cost is reduced when the control module M is moved.
ステップS204: 制御モジュールMは、算出したコストC3がコストC4未満か否かの判定を行なう。このとき、制御モジュールMは、コストC3がコストC4未満である場合、処理をステップS205へ進める。一方、制御モジュールMは、コストC3がコストC4以上である場合、処理をステップS206へ進める。 Step S204: The control module M determines whether or not the calculated cost C3 is less than the cost C4. At this time, if the cost C3 is less than the cost C4, the control module M advances the process to step S205. On the other hand, if the cost C3 is equal to or higher than the cost C4, the control module M advances the process to step S206.
ステップS205: 制御モジュールMは、上述したように、現在の中継ルータ3_e_1から自身を削除して直下の中継ルータ3_f_1に移動した方がコストCが低下する。このため、制御モジュールMは、直下の中継ルータ3_f_1に自身を複写した制御モジュールM’を配置する。そして、制御モジュールMは、図13(b)に示すように、処理を終了した後、現在の中継ルータ3_e_1から自身を削除する。 Step S205: As described above, the cost C decreases when the control module M deletes itself from the current relay router 3_e_1 and moves to the relay router 3_f_1 immediately below. For this reason, the control module M arranges the control module M ′, which is a copy of itself, in the relay router 3_f_1 immediately below. Then, as shown in FIG. 13B, the control module M deletes itself from the current relay router 3_e_1 after completing the processing.
ステップS206: 制御モジュールMは、上述したように、現在の中継ルータ3_e_1から自身を削除して直下の中継ルータ3_f_1及び3_f_2の各々に制御モジュールM’を配置した方がコストCが低下する。このため、制御モジュールMは、図13(c)に示すように、直下の中継ルータ3_f_1及び3_f_2の各々に自身を制御モジュールM’として複写し、処理を終了した後、現在の中継ルータ3_e_1から自身を削除する。 Step S206: As described above, the cost C of the control module M decreases when the control module M is deleted from the current relay router 3_e_1 and the control module M 'is disposed in each of the relay routers 3_f_1 and 3_f_2 immediately below. For this reason, as shown in FIG. 13C, the control module M copies itself as the control module M ′ to each of the relay routers 3_f_1 and 3_f_2 directly below, and after completing the processing, Delete itself.
ステップS207: 制御モジュールMは、自動車1Aと制御サーバ2_2とのメッセージの送受信の経路上において、現時点で配置されている中継ルータ3_e_1の直下のノードにおける中継ルータ3_f_1に、自身が移動できるリソースが有るか否かの判定を行なう。このとき、制御モジュールは、自身が移動できるリソースが直下の中継ルータ3_f_1に有る場合、所定をステップS210へ進める。一方、制御モジュールMは、自身が移動できるリソースが直下の中継ルータ3_f_1にない場合、処理をステップS208へ進める。
Step S207: The control module M has a resource that it can move in the relay router 3_f_1 in the node immediately below the relay router 3_e_1 that is currently located on the message transmission / reception route between the
ステップS208: 制御モジュールMは、直下のノードにおける中継ルータ3_f_1に、移動可能な他の制御モジュールM’’が有るか否かの確認を行なう。このとき、制御モジュールMは、直上の中継ルータ3_f_1に配置されている全ての制御モジュールM’’の各々に対し、順番にそれぞれの制御モジュールM’’が移動可能か否かの確認を依頼する。制御モジュールM’’の各々は、自身が移動した際に、アクセスする対象装置1のレスポンスタイムを満足されるか、移動先として中継ルータの有無を、ステップS207及びS208の処理を行なって確認する。そして、制御モジュールM’’は、自身が移動可能であるか否かを、制御モジュールMに対して通知する。
Step S208: The control module M checks whether or not there is another movable control module M ″ in the relay router 3_f_1 in the node immediately below. At this time, the control module M requests each of all the control modules M ″ arranged in the relay router 3_f_1 immediately above to check whether or not each control module M ″ can be moved in order. . Each of the control modules M ″ confirms whether the response time of the
このとき、制御モジュールMは、制御モジュールM’’から移動可能であることを示す通知のメッセージの有無により、直下の中継ルータ3_f_1において移動可能な制御モジュールM’’の有無を判定する。これにより、制御モジュールMは、直下の中継ルータ3_f_1において移動可能な制御モジュールM’’が有る場合、処理をステップS209へ進める。一方、制御モジュールMは、直下の中継ルータ3_f_1において移動可能な制御モジュールM’’がない場合、直下の中継ルータ3_f_1にリソースが確保されないため、処理を図6のステップS2へ進める。 At this time, the control module M determines the presence / absence of the control module M ″ that can be moved in the relay router 3_f_1 immediately below, based on the presence / absence of a notification message indicating that the control module M ″ can be moved. As a result, when there is a control module M ″ that can be moved in the relay router 3_f_1 directly below, the control module M advances the process to step S209. On the other hand, if there is no control module M ″ that can be moved in the relay router 3_f_1 directly below, the control module M advances the processing to step S2 in FIG. 6 because no resource is secured in the relay router 3_f_1 directly below.
ステップS209: 制御モジュールMは、移動可能と通知してきた制御モジュールM’’に対して移動を指示するメッセージを出力する。そして、制御モジュールM’’は、例えば、自身が移動可能な中継ルータ3_e_1に移動し、制御モジュールMが移動するためのリソースを直下の中継ルータ3_f_1に生成する。これにより、制御モジュールMは、直下の中継ルータ3_f_1に、自身が移動するためのリソースを確保する。 Step S209: The control module M outputs a message instructing movement to the control module M ″ that has been notified that movement is possible. Then, for example, the control module M ″ moves to the relay router 3_e_1 to which the control module M ″ can move, and generates a resource for the control module M to move to the relay router 3_f_1 immediately below. As a result, the control module M secures a resource for moving itself to the relay router 3_f_1 immediately below.
ステップS210: そして、制御モジュールMは、直上の中継ルータ3_f_1に対して自身を移動する処理を行なう。すなわち、制御モジュールMは、自身の複写である制御モジュールM’を直上の中継ルータ3_f_1に作成する。
ステップS211: そして、制御モジュールMは、処理を終了した後、現時点において位置されている中継ルータ3_e_1における自身を削除する。
Step S210: Then, the control module M performs a process of moving itself to the relay router 3_f_1 immediately above. That is, the control module M creates a control module M ′, which is a copy of itself, in the relay router 3_f_1 immediately above.
Step S211: After completing the processing, the control module M deletes itself in the relay router 3_e_1 located at the present time.
上述したよう、本実施形態によれば、サービスクラウド2に存在する制御サーバ2_2にアクセスすることなく、対象装置から制御サーバ2_2までのリクエストメッセージの経路上における中継サーバ3Rのいずれかに、リアルタイム性が必要な対象装置の制御に対応した制御モジュールが配置されるため、制御指令を制御を行なう適切な時間に受信できる。
また、本実施形態によれば、現時点において配置されている中継ルータを移動させない場合、制御モジュールを他の中継ルータに移動させる場合、現時点において配置されている中継ルータから削除して他の中継ルータに配置されている制御モジュールを使用する場合、他の中継ルータに複写させる場合などのコストを計算し、エッジに接続された対象装置が制御モジュールを使用する際、アグリゲーションネットワークのツリー構造における中継ルータの各々に対し、最も自身の使用効率の良い配置場所に制御モジュールの各々が自律的に移動させることができる。このため、本実施形態によれば、アグリゲーションネットワークのツリー構造における中継ルータの各々に対して、エッジにおける対象装置1の接続あるいは離脱の挙動に応じて、リアルタイムに、制御モジュールの各々を使用効率の良い中継ルータに制御モジュールが配置されるため、エッジに接続された対象装置が常に制御プログラムを高い使用効率で用いることができる。
As described above, according to the present embodiment, a real-time property is provided to any of the relay servers 3R on the route of the request message from the target device to the control server 2_2 without accessing the control server 2_2 existing in the
In addition, according to the present embodiment, when the relay router currently arranged is not moved, when the control module is moved to another relay router, the relay module is deleted from the relay router currently arranged and other relay routers are moved. When using the control module located in the network, the cost is calculated when copying to another relay router, etc., and when the target device connected to the edge uses the control module, the relay router in the tree structure of the aggregation network For each of the control modules, each of the control modules can autonomously move to the location where the use efficiency is most efficient. For this reason, according to the present embodiment, each of the control modules is used in real time according to the connection or disconnection behavior of the
<第4の実施形態>
本発明の第4の実施形態によるネットワークシステムについて説明する。第4の実施形態におけるネットワークシステムの構成は、すでに説明した図1に示す第1の実施形態と同様である。以下、第1の実施形態と異なる動作について説明する。
第4の実施形態における制御モジュールは、第2の実施形態と同様に、分散エージェントとして、対象装置に対する制御指令を生成する機能に加え、自律的にアグリゲーションネットワークにおける中継ルータ間を移動する機能、自身を複写して他の中間ルータにインストールする機能、自身を削除する機能の各々を備えている。
<Fourth Embodiment>
A network system according to the fourth embodiment of the present invention will be described. The configuration of the network system in the fourth embodiment is the same as that of the first embodiment shown in FIG. Hereinafter, operations different from those of the first embodiment will be described.
As in the second embodiment, the control module in the fourth embodiment functions as a distributed agent, in addition to the function to generate control commands for the target device, autonomously moving between relay routers in the aggregation network, itself Each of which has a function of copying and installing it in another intermediate router, and a function of deleting itself.
図14は、第4の実施形態によるネットワークシステムの中継ルータ間における制御モジュールの移動の動作例を示すフローチャートである。以下、図14及び図11を用いて、第4の実施形態によるネットワークシステムの中継ルータ間における制御モジュールの自律的な上流への移動の動作について説明する。以下の説明において、自律的な移動を行なう制御モジュールMは、中継ルータ3_e_1に配置されている。また、中継ルータ3_e_1は、ツリー構造のルートと、対象装置1としての自動車1Aとの経路上に配置されている。
FIG. 14 is a flowchart showing an operation example of movement of the control module between relay routers in the network system according to the fourth embodiment. Hereinafter, the operation of autonomously moving the control module between relay routers in the network system according to the fourth embodiment will be described with reference to FIGS. 14 and 11. In the following description, the control module M that performs autonomous movement is disposed in the relay router 3_e_1. The relay router 3_e_1 is arranged on a route between the tree-structured route and the
ステップS301: 制御モジュールMは、現時点において配置されている中継ルータ3_e_1に移動した後に起動する。
そして、制御モジュールMは、中継ルータ3_e_1に備えられているノードサーバ5の時計から時刻情報を取得した後、自身のタイマーを起動させ、タイマーの計数を開始させる。
Step S301: The control module M is activated after moving to the relay router 3_e_1 currently arranged.
Then, the control module M acquires time information from the clock of the
ステップS302: 制御モジュールMは、タイマーの計数時間が所定時間Δt(検出周期)を超えた場合、処理をステップS303へ進める。 Step S302: When the counting time of the timer exceeds the predetermined time Δt (detection cycle), the control module M advances the process to step S303.
ステップS303: 制御モジュールMは、所定時間Δt内において、自身に対応するリクエストメッセージが送信されてきたか否か、すなわち自身が自動車1Aにアクセスされたか否かを検出する。
このとき、制御モジュールMは、所定時間内Δt内に自身がアクセスされた場合、タイマーをリセットした後、処理をステップS304へ進める。一方、制御モジュールMは、所定時間内Δt内に自身がアクセスされていない場合、処理をステップS307へ進める。
Step S303: The control module M detects whether or not a request message corresponding to itself has been transmitted within a predetermined time Δt, that is, whether or not the control module M has accessed the
At this time, if the control module M is accessed within the predetermined time Δt, the control module M resets the timer, and then proceeds to step S304. On the other hand, if the control module M is not accessed within the predetermined time Δt, the process proceeds to step S307.
ステップS304: 制御モジュールMは、リクエストメッセージにおける自動車1Aからのセンサ情報などに基づき、プロセスに対応した所定の演算を行なって、自動車1Aの制御を行なう制御指令を生成する。このとき、制御モジュールMは、演算開始から制御指令の生成が終了するまでの時間、及び自身が配置されている中継ルータ3_e_1と自動車1Aとにおけるメッセージの往復にかかる時間を加算することでレスポンスタイムを求める。
Step S304: Based on the sensor information from the
ステップS305: 制御モジュールMは、レスポンスタイムが予め設定されている設定時間を超えているか否かの判定を行う。このとき、制御モジュールMは、レスポンスタイムが上記設定時間を超えている場合、処理をステップS311へ進める。一方、制御モジュールMは、レスポンスタイムが予め設定されている設定時間を超えていない場合、処理をステップS306へ進める。
ここで、レスポンスタイムが満足されていない場合、自動車1Aに対する制御モジュールMは、レスポンスタイムを満足させるため、現在より近い位置にある中継ルータ3_f_1に移動する必要があると判定する。
Step S305: The control module M determines whether or not the response time exceeds a preset time. At this time, if the response time exceeds the set time, the control module M advances the process to step S311. On the other hand, if the response time does not exceed the preset set time, the control module M advances the process to step S306.
Here, when the response time is not satisfied, the control module M for the
ステップS306: 制御モジュールMは、自動車1Aからの自身に対するアクセス回数が予め設定されている閾値以上であるか否かの判定を行う。このとき、制御モジュールMは、自身に対するアクセス回数が予め設定されている上記閾値以上である場合、処理をステップS311へ進める。制御モジュールMは、自動車1Aからの自身に対するアクセス回数が予め設定されている上記閾値未満である場合、処理をステップS302へ進める。
Step S306: The control module M determines whether or not the number of accesses to itself from the
ステップS307: 制御モジュールMは、リクエストメッセージを受信した自動車1A以外の同種類の他の自動車1Bから、N秒以内にアクセスされたか否か、すなわちリクエストメッセージを受信したか否かの判定を行なう。このとき、制御モジュールMは、他の自動車1BからN秒以内にアクセスされた場合、処理をステップS302へ進める。一方、制御モジュールMは、他の自動車1BからN秒以内にアクセスされていない場合、処理をステップS308へ進める。
Step S307: The control module M determines whether or not it has been accessed within N seconds from another
ステップS308: 制御モジュールMは、直上のノードにおける中継ルータ3_d_1に、自身と同一の制御モジュールの有無を、この直上の中継ルータ3_d_1にアクセスして確認する。制御モジュールMは、直上の中継ルータ3_d_1に自身と同一の制御モジュールM’’が配置されている場合、現時点で自身にアクセスする自動車1Aが上記制御モジュールM’’をアクセスしている他の同種の自動車1の各々と共用化が可能と判定する。
このとき、制御モジュールMは、直上の中継ルータ3_d_1に自身と同一の制御モジュールM’’が配置され、自動車1Aが他の同種の自動車1の各々との共用化が可能である場合、処理をステップS309へ進める。一方、制御モジュールMは、直上の中継ルータ3_d_1に自身と同一の制御モジュールM’’が配置されておらず、自動車1Aが他の同種の自動車1の各々との共用化が可能でない場合、処理をステップS310へ進める。
Step S308: The control module M confirms whether or not the relay router 3_d_1 in the node immediately above has the same control module as itself by accessing the relay router 3_d_1 immediately above. When the same control module M ″ as itself is arranged in the relay router 3_d_1 directly above, the control module M has another similar type in which the
At this time, the control module M performs processing when the same control module M ″ as itself is arranged in the relay router 3_d_1 immediately above, and the
ステップS309: 制御モジュールMは、直上の中継ルータ3_d_1に対して自身を移動する。すなわち、制御モジュールMは、自身の複写である制御モジュールM’を直上の中継ルータ3_d_1に作成する。そして、制御モジュールMは、処理を終了した後、現時点において位置されている中継ルータ3_e_1における自身を削除する。
ステップS310: 制御モジュールMは、処理を終了した後、処理を終了した後、現時点において位置されている中継ルータ3_e_1における自身を削除する。
Step S309: The control module M moves itself to the relay router 3_d_1 directly above. That is, the control module M creates a control module M ′, which is a copy of itself, in the relay router 3_d_1 immediately above. Then, after finishing the processing, the control module M deletes itself in the relay router 3_e_1 that is currently located.
Step S310: After finishing the processing, the control module M deletes itself in the relay router 3_e_1 located at the present time after finishing the processing.
ステップS311: 制御モジュールMは、上述したステップS308と同様の処理により、中継ルータ3_f_1に配置されている制御モジュールM’’が自動車1Aと他の同種の自動車1の各々とで共用化が可能であるか否かの判定を行なう。
このとき、制御モジュールMは、直下の中継ルータ3_f_1に自身と同一の制御モジュールM’’が配置され、自動車1Aが同種の他の自動車1の各々との共用化が可能である場合、処理をステップS312へ進める。一方、制御モジュールMは、直下の中継ルータ3_f_1に自身と同一の制御モジュールM’’が配置されておらず、自動車1Aが同種の他の自動車1の各々との共用化が可能でない場合、処理をステップS313へ進める。
Step S311: The control module M '' can be shared by the
At this time, the control module M performs processing when the same control module M ″ as itself is arranged in the relay router 3_f_1 directly below, and the
ステップS312: 制御モジュールMは、そして、制御モジュールMは、直下の中継ルータ1_f_1に対して自身を複写する処理を行なう。このとき、制御モジュールMは、自身の複写である制御モジュールM’を直下の中継ルータ33_f_1に作成する。
そして、制御モジュールMは、同種の他の自動車1が現時点において位置されている中継ルータ3_e_1における自身を使用しているため、中継ルータ3_e_1における自身を削除せずに、処理を終了する。
Step S312: The control module M performs a process of copying itself to the relay router 1_f_1 immediately below. At this time, the control module M creates a control module M ′, which is a copy of itself, in the relay router 33_f_1 immediately below.
Then, the control module M ends the process without deleting itself in the relay router 3_e_1 because the
ステップS313: 制御モジュールMは、直下の中継ルータ3_f_1に対して自身を移動する。すなわち、制御モジュールMは、自身の複写である制御モジュールM’を直下の中継ルータ3_e_1に作成する。そして、制御モジュールMは、処理を終了した後、現時点において位置されている中継ルータ3_e_1における自身を削除する。 Step S313: The control module M moves itself to the relay router 3_f_1 directly below. That is, the control module M creates a control module M ′, which is a copy of itself, in the relay router 3_e_1 immediately below. Then, after finishing the processing, the control module M deletes itself in the relay router 3_e_1 that is currently located.
上述したよう、本実施形態によれば、サービスクラウド2に存在する制御サーバ2_2にアクセスすることなく、対象装置から制御サーバ2_2までのリクエストメッセージの経路上における中継サーバ3Rのいずれかに、リアルタイム性が必要な対象装置の制御に対応した制御モジュールが配置されるため、制御指令を制御を行なう適切な時間に受信できる。
また、本実施形態によれば、対象装置における制御の各々に必要なレスポンスタイム、あるいは対象装置からのアクセスの頻度に対応し、制御モジュールが自律的に、上記経路上における中継ルータ3R間を移動して、それぞれレスポンスタイムを満たし、アクセスの頻度に対応した位置の中継ルータ3Rに配置されるため、アクセスする頻度の高い対象装置における各制御の処理に対応したレスポンスタイムをより短縮化させることができる。
As described above, according to the present embodiment, a real-time property is provided to any of the relay servers 3R on the route of the request message from the target device to the control server 2_2 without accessing the control server 2_2 existing in the
Further, according to the present embodiment, the control module autonomously moves between the relay routers 3R on the route in response to the response time required for each control in the target device or the frequency of access from the target device. Since the relay router 3R is located at a position corresponding to the access frequency and satisfies the response time, the response time corresponding to each control process in the target device having a high access frequency can be further shortened. it can.
<第5の実施形態>
本発明の第5の実施形態によるネットワークシステムについて説明する。第5の実施形態におけるネットワークシステムの構成は、すでに説明した図1に示す第1の実施形態と同様である。以下、第1の実施形態と異なる動作について説明する。
第5の実施形態における制御モジュールは、第2の実施形態と同様に、分散エージェントとして、対象装置1に対する制御指令を生成する機能に加え、自律的にアグリゲーションネットワーク3における中継ルータ3R間を移動する機能、自身を複写して他の中間ルータにインストールする機能、自身を削除する機能の各々を備えている。
<Fifth Embodiment>
A network system according to the fifth embodiment of the present invention will be described. The configuration of the network system in the fifth embodiment is the same as that of the first embodiment shown in FIG. Hereinafter, operations different from those of the first embodiment will be described.
As in the second embodiment, the control module in the fifth embodiment autonomously moves between the relay routers 3R in the
図15は、第5の実施形態によるネットワークシステムの中継ルータ間における制御モジュールMの移動の動作例を示すフローチャートである。以下、図15及び図11を用いて、第5の実施形態によるネットワークシステムの中継ルータ間における制御モジュールMの自律的な上流への移動の動作について説明する。以下の説明において、第4の実施形態と同様に、自律的な移動を行なう制御モジュールMは、中継ルータ3_e_1に配置されている。また、中継ルータ3_e_1は、アグリゲーションネットワーク3のツリー構造において、ルートと対象装置1としての自動車1Aが接続されたエッジとの経路上に配置されている。
FIG. 15 is a flowchart illustrating an operation example of movement of the control module M between relay routers in the network system according to the fifth embodiment. Hereinafter, the operation of the autonomous upstream movement of the control module M between the relay routers in the network system according to the fifth embodiment will be described with reference to FIGS. 15 and 11. In the following description, as in the fourth embodiment, the control module M that performs autonomous movement is disposed in the relay router 3_e_1. Further, the relay router 3_e_1 is arranged on the route between the route and the edge to which the
ステップS401: 制御モジュールMは、現時点において配置されている中継ルータ3_e_1に移動した後に起動する。
そして、制御モジュールMは、中継ルータ3_e_1に備えられているノードサーバ5の時計から時刻情報を取得した後、自身のタイマーを起動させ、タイマーの計数を開始させる。
Step S401: The control module M is activated after moving to the relay router 3_e_1 currently arranged.
Then, the control module M acquires time information from the clock of the
ステップS402: 制御モジュールMは、タイマーの計数時間が所定時間Δt(検出周期)となるまで待機する。そして、制御モジュールMは、タイマーの計数時間が所定時間Δtを超えた場合、処理をステップS403へ進める。 Step S402: The control module M stands by until the count time of the timer reaches a predetermined time Δt (detection cycle). Then, when the count time of the timer exceeds the predetermined time Δt, the control module M advances the process to step S403.
ステップS403: 制御モジュールMは、所定時間Δt内において、自身に対応するリクエストメッセージが送信されてきたか否か、すなわち自身が自動車1Aにアクセスされたか否かを検出する。
このとき、制御モジュールMは、所定時間内Δt内に自身がアクセスされた場合、タイマーをリセットした後、処理をステップS404へ進める。一方、制御モジュールMは、所定時間内Δt内に自身がアクセスされていない場合、処理をステップS407へ進める。
Step S403: The control module M detects whether or not a request message corresponding to the control module M has been transmitted within the predetermined time Δt, that is, whether or not the control module M has accessed the
At this time, if the control module M is accessed within the predetermined time Δt, the control module M resets the timer, and then proceeds to step S404. On the other hand, if the control module M is not accessed within the predetermined time Δt, the control module M advances the process to step S407.
ステップS404: 制御モジュールMは、リクエストメッセージにおける自動車1Aからのセンサ情報などに基づき、プロセスに対応した所定の演算を行なって、自動車1Aの制御を行なう制御指令を生成する。このとき、制御モジュールMは、演算開始から制御指令の生成が終了するまでの時間、及び自身が配置されている中継ルータ3_e_1と自動車1Aとにおけるメッセージの往復にかかる時間を加算することでレスポンスタイムを求める。
Step S404: The control module M performs a predetermined calculation corresponding to the process based on the sensor information from the
ステップS405: 制御モジュールMは、レスポンスタイムが予め設定されている設定時間を超えているか否かの判定を行う。このとき、制御モジュールMは、レスポンスタイムが上記設定時間を超えている場合、処理をステップS411へ進める。一方、制御モジュールMは、レスポンスタイムが予め設定されている設定時間を超えていない場合、処理をステップS406へ進める。
ここで、レスポンスタイムが満足されていない場合、制御モジュールMは、自動車1Aに対するレスポンスタイムを満足させるため、現在より近い位置にある中継ルータ3_f_1に移動する必要があると判定する。
Step S405: The control module M determines whether or not the response time exceeds a preset set time. At this time, if the response time exceeds the set time, the control module M advances the process to step S411. On the other hand, if the response time does not exceed the preset set time, the control module M advances the process to step S406.
Here, when the response time is not satisfied, the control module M determines that it is necessary to move to the relay router 3_f_1 that is closer to the current position in order to satisfy the response time for the
ステップS406: 制御モジュールMは、自動車1Aからの自身に対するアクセス回数が予め設定されている閾値以上であるか否かの判定を行う。このとき、制御モジュールMは、自身に対するアクセス回数が予め設定されている上記閾値以上である場合、処理をステップS411へ進める。制御モジュールMは、自動車1Aからの自身に対するアクセス回数が予め設定されている上記閾値未満である場合、処理をステップS402へ進める。
Step S406: The control module M determines whether or not the number of accesses to the
ステップS407: 制御モジュールMは、リクエストメッセージを受信した自動車1A以外の同種類の他の自動車1Bから、N秒以内にアクセスされたか否か、すなわちリクエストメッセージを受信したか否かの判定を行なう。このとき、制御モジュールMは、他の自動車1BからN秒以内にアクセスされた場合、処理をステップS402へ進める。一方、制御モジュールMは、他の自動車1BからN秒以内にアクセスされていない場合、処理をステップS408へ進める。
Step S407: The control module M determines whether it has been accessed within N seconds from another
ステップS408: 制御モジュールMは、現在の中継ルータ3_e_1から自身を削除して直上の中継ルータ3_d_1に移動した場合のコストC1(図11(b)の状態におけるコスト)と、現在の中継ルータ3_e_1から自身を削除して直上の中継ルータ3_d_1より上流(制御サーバ2_2を含む)にある制御プログラムを利用する場合のコストC2(図11(c)の状態におけるコスト)との計算を、上記(1)式を用いてそれぞれ行なう。
そして、制御モジュールMは、算出したコストC1がコストC2未満か否かの判定を行なう。このとき、制御モジュールMは、コストC1がコストC2未満である場合、処理をステップS409へ進める。一方、制御モジュールMは、コストC1がコストC2以上である場合、処理をステップS410へ進める。
Step S408: The control module M deletes itself from the current relay router 3_e_1 and moves to the relay router 3_d_1 immediately above (cost in the state of FIG. 11B) and the current relay router 3_e_1. The calculation of the cost C2 (cost in the state of FIG. 11C) when using the control program upstream (including the control server 2_2) upstream from the relay router 3_d_1 immediately above is deleted and the above (1) Each is done using an equation.
Then, the control module M determines whether or not the calculated cost C1 is less than the cost C2. At this time, if the cost C1 is less than the cost C2, the control module M advances the process to step S409. On the other hand, if the cost C1 is equal to or higher than the cost C2, the control module M advances the process to step S410.
ステップS409: 制御モジュールMは、直上の中継ルータ3R_d_1に対して自身を移動する。すなわち、制御モジュールMは、自身の複写である制御モジュールM’を直上の中継ルータ3_d_1に作成する。そして、制御モジュールMは、処理を終了した後、現時点において位置されている中継ルータ3_e_1における自身を削除する。
ステップS410: 制御モジュールMは、処理を終了した後、処理を終了した後、現時点において位置されている中継ルータ3_e_1における自身を削除する。
Step S409: The control module M moves itself to the relay router 3R_d_1 immediately above. That is, the control module M creates a control module M ′, which is a copy of itself, in the relay router 3_d_1 immediately above. Then, after finishing the processing, the control module M deletes itself in the relay router 3_e_1 that is currently located.
Step S410: After finishing the processing, the control module M deletes itself in the relay router 3_e_1 located at the present time after finishing the processing.
ステップS411: 制御モジュールMは、現時点において配置されている中継ルータ3_e_1から自身を削除して直下の中継ルータ3_f_1に移動した場合のコストC3(図13(b)の状態におけるコスト)と、現在の中継ルータ3_e_1から自身を削除して直下の中継ルータ3_f_1及び3_f_2の各々に自身を複写した場合のコストC4(図13(c)の状態におけるコスト)との計算を、上記(1)式を用いてそれぞれ行なう。
そして、制御モジュールMは、算出したコストC3がコストC4未満か否かの判定を行なう。このとき、制御モジュールMは、コストC3がコストC4未満である場合、処理をステップS412へ進める。一方、制御モジュールMは、コストC3がコストC4以上である場合、処理をステップS413へ進める。
Step S411: The control module M deletes itself from the relay router 3_e_1 currently arranged and moves to the relay router 3_f_1 immediately below, and the current cost C3 (cost in the state of FIG. 13B) and the current Calculation of the cost C4 (cost in the state of FIG. 13C) when deleting itself from the relay router 3_e_1 and copying itself to each of the relay routers 3_f_1 and 3_f_2 directly below is performed using the above equation (1). To do each.
Then, the control module M determines whether or not the calculated cost C3 is less than the cost C4. At this time, if the cost C3 is less than the cost C4, the control module M advances the process to step S412. On the other hand, if the cost C3 is equal to or higher than the cost C4, the control module M advances the process to step S413.
ステップS412: 制御モジュールMは、上述したように、現在の中継ルータ3_e_1から自身を削除して直下の中継ルータ3_f_1に移動した方がコストCが低下する。このため、制御モジュールMは、直下の中継ルータ3_f_1に自身を複写した制御モジュールM’を配置する。そして、制御モジュールMは、図13(b)に示すように、現在の中継ルータ3_e_1から自身を削除し、処理を終了する。 Step S412: As described above, the cost C decreases when the control module M deletes itself from the current relay router 3_e_1 and moves to the relay router 3_f_1 immediately below. For this reason, the control module M arranges the control module M ′, which is a copy of itself, in the relay router 3_f_1 immediately below. Then, as shown in FIG. 13B, the control module M deletes itself from the current relay router 3_e_1 and ends the process.
ステップS413: 制御モジュールMは、上述したように、現在の中継ルータ3_e_1から自身を削除して直下の中継ルータ3_f_1及び3_f_2の各々に制御モジュールM’を配置した方がコストCが低下する。このため、制御モジュールMは、図13(c)に示すように、直下の中継ルータ3_f_1及び3_f_2の各々に自身を制御モジュールM’として複写し、現在の中継ルータ3_e_1から自身を削除し、処理を終了する。 Step S413: As described above, the control module M deletes itself from the current relay router 3_e_1 and arranges the control module M 'in each of the relay routers 3_f_1 and 3_f_2 directly below, the cost C decreases. For this reason, as shown in FIG. 13C, the control module M copies itself as the control module M ′ to each of the relay routers 3_f_1 and 3_f_2 directly below, deletes itself from the current relay router 3_e_1, and performs processing. Exit.
上述したように、本実施形態によれば、サービスクラウド2に存在する制御サーバ2_2にアクセスすることなく、対象装置から制御サーバ2_2までのリクエストメッセージの経路上における中継サーバ3Rのいずれかに、リアルタイム性が必要な対象装置の制御に対応した制御モジュールが配置されるため、制御指令を制御を行なう適切な時間に受信できる。
また、本実施形態によれば、制御モジュールを他の中継ルータに移動させる場合、現時点において配置されている中継ルータから削除して他の中継ルータに配置されている制御モジュールを使用する場合、他の中継ルータに複写させる場合などのコストを計算し、エッジに接続された対象装置が制御モジュールを使用する際、アグリゲーションネットワークのツリー構造における中継ルータの各々に対し、自身の使用効率の良い配置場所に制御モジュールの各々が自律的に移動させることができる。このため、本実施形態によれば、アグリゲーションネットワークのツリー構造における中継ルータの各々に対して、エッジにおける対象装置の接続あるいは離脱の挙動に応じて、リアルタイムに、制御モジュールの各々を使用効率の良い中継ルータに制御モジュールが配置されるため、エッジに接続された対象装置が常に制御プログラムを高い使用効率で用いることができる。
As described above, according to the present embodiment, real-time communication is performed on one of the relay servers 3R on the route of the request message from the target device to the control server 2_2 without accessing the control server 2_2 existing in the
In addition, according to the present embodiment, when moving a control module to another relay router, when deleting a current relay router from a relay router and using a control module placed on another relay router, When the target device connected to the edge uses a control module when calculating the cost of copying to a relay router, etc., for each relay router in the tree structure of the aggregation network, its own efficient location Each of the control modules can be moved autonomously. Therefore, according to the present embodiment, each of the control modules is used efficiently in real time according to the connection or disconnection behavior of the target device at the edge for each relay router in the tree structure of the aggregation network. Since the control module is arranged in the relay router, the target device connected to the edge can always use the control program with high use efficiency.
<第6の実施形態>
本発明の第6の実施形態によるネットワークシステムについて説明する。第6の実施形態におけるネットワークシステムの構成は、すでに説明した第1から第5の実施形態のいずれかと同様である。以下、第1から第5の実施形態の各々と異なる動作について説明する。図16は、本発明の第6の実施形態におけるネットワークシステムの動作を示す概念図である。図16に示すように、本実施形態においては、アグリゲーションネットワークにおけるツリー構造が完全2分木であることを前提として構成されている。
自動車1Aからルートであるセンタークラウド2までのメッセージの経路上には、アグリゲーションネットワーク3のツリー構造において、中継ルータ3_d_1、3_e_1及び3_f_1の各々がある。また、中継ルータ3_e_1をノードとする2分木としては、中継ルータ3_f_1及び3_f_2の各々がある。
中継ルータ3_f_1には自身に自動車1Aが接続され、中継ルータ3_f_2には自走車1Bが接続されている。自動車1Aと自動車1Bとは、同一車種であり、制御プログラムにおける制御モジュールの各々を共用することが可能である。
<Sixth Embodiment>
A network system according to the sixth embodiment of the present invention will be described. The configuration of the network system in the sixth embodiment is the same as that of any of the first to fifth embodiments already described. Hereinafter, operations different from those of the first to fifth embodiments will be described. FIG. 16 is a conceptual diagram showing the operation of the network system in the sixth embodiment of the present invention. As shown in FIG. 16, the present embodiment is configured on the assumption that the tree structure in the aggregation network is a complete binary tree.
In the tree structure of the
The relay router 3_f_1 is connected to the
図16において、ある制御処理Gを行なう制御モジュールMが中継ルータ1_f_2のノードサーバ5_f_2に配置されており、上記制御処理Gを行なう制御モジュールMが中継ルータ1_f_1のノードサーバ5_f_1には配置されていない。
本実施形態において、中継ルータ3Rの各々に接続されているノードサーバ5の各々は、自身より下流の異なる他の中継ルータ3R(すでに述べたように、エッジルータも含む)に接続されているノードサーバ5のプロキシサーバとして動作する。
すなわち、中継ルータ3_e_1に備えられているノードサーバ5_e_1は、中継ルータ3_f_1に備えられているノードサーバ5_f_1と、中継ルータ3_f_2にの備えられているノードサーバ5_f_2とのプロキシサーバとして動作する。
In FIG. 16, the control module M that performs a certain control process G is arranged in the node server 5_f_2 of the relay router 1_f_2, and the control module M that performs the control process G is not arranged in the node server 5_f_1 of the relay router 1_f_1. .
In this embodiment, each of the
That is, the node server 5_e_1 provided in the relay router 3_e_1 operates as a proxy server between the node server 5_f_1 provided in the relay router 3_f_1 and the node server 5_f_2 provided in the relay router 3_f_2.
ノードサーバ5_e_1は、中継ルータ3_f_1から転送される自動車1Aからのリクエストメッセージが制御モジュールMであることを判定する。そして、ノードサーバ5_e_1は、自身にこの制御モジュールMが配置されていない場合、自身がプロキシサーバとして動作する対象のノードサーバ5_f_2に対し、制御モジュールMが配置されているか否かの確認を行なう。ここで、ノードサーバ5_e_1は、中継ルータ3_e_1を介して、制御モジュールMの制御を要求するリクエストメッセージを中継ルータ3_f_2に対して転送する。
The node server 5_e_1 determines that the request message from the
これにより、ノードサーバ5_f_2は、自動車1Aからのリクエストメッセージを受信し、制御モジュールMにより制御指令を生成する。そして、ノードサーバ5_f_2は、生成した制御指令をレスオンスメッセージとしてプロキシサーバであるノードサーバ5_e_1に対して送信する。ノードサーバ5_e_1は、受信したレスポンスメッセージを中継ルータ3_e_1を介して、中継ルータ3_f_1に対して送信する。ノードサーバ5_f_1は、中継ルータ3_f_1を介して受信したレスポンスメッセージを、自動車1Aに対して送信する。
Thereby, the node server 5_f_2 receives the request message from the
上述した構成により、本実施形態によれば、各エッジに接続される同一の制御モジュールを接続する対象装置1の数に偏り(最大5倍)がある場合、全てのエッジに接続された対象装置1の要求ブロック率の低減を可能とすることができる。ここで、供給ブロック率とは、エッジに接続された対象装置1の全てが同一の制御モジュールに対してリクエストメッセージを送信した場合、このリクエストメッセージがルートのセンタークラウド2まで送信される確率を示している。
With the configuration described above, according to the present embodiment, when the number of
図17は、中継ルータに備えられたノードサーバを、自身の二分木のノードサーバのプロキシサーバとした場合の効果を示す図である。図17において、横軸がアグリゲーションネットワークの全てのノードに接続される対象機器1の接続数を示し、縦軸が対象機器1の接続数に対応した要求ブロック率を示している。点線は、中継ルータに備えられるノードサーバがプロキシサーバの機能を有さない場合の要求ブロック率の曲線を示している。実線は、中継ルータに備えられるノードサーバがプロキシサーバの機能を有する場合の要求ブロック率の曲線を示している。図16から判るように、ノードサーバに対してプロキシ機能を備えることにより、対象装置1からのリクエストメッセージの要求ブロック率を低減させることができる。
FIG. 17 is a diagram illustrating an effect when the node server provided in the relay router is the proxy server of the node server of its own binary tree. In FIG. 17, the horizontal axis indicates the number of connections of the
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。 The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes design and the like within a scope not departing from the gist of the present invention.
1…対象装置
1_1…ビデオレコーダ
1_2,1_2_1,1_2_s,1A,1B…自動車
1_3…PBシステム
1_4…NWロボット
2…サービスクラウド
2_1…クラウドルータ
2_2…制御サーバ
3…アグリゲーションネットワーク
3_1_1,3_2_1,3_2_m,3_3_1,3_3_n,3_4_1,3_4_p,3_4_q,3_4_r,3_d_1,3_e_1,3_f_1,3_f_2,3_s−1,3_s−1_1,3_s−1_2,3_s−2_1,3R…中継ルータ
5,5_1_1,5_2_1,5_2_m,5_3_1,5_3_2,5_2_m…中継サーバ
M…制御モジュール
DESCRIPTION OF
Claims (8)
前記対象機器が制御のリクエストを出力し、当該リクエストに対応するレスポンスを前記対象機器に供給するエッジと、
前記制御サーバと前記エッジとをアグリゲーションネットワークとして接続する、前記制御サーバと前記エッジの各々との間にツリー構造上に設けられた複数の中継ルータと
を備え、
前記対象機器からのリクエストを前記制御サーバへ送信する前記中継ルータに対し、前記制御サーバから複写された、当該対象機器を制御する前記制御モジュールが分散配置される
ことを特徴とするネットワークシステム。 A control server having a control program arranged on the cloud and configured by a control module for each control unit in the target device to be controlled;
The target device outputs a control request, and an edge that supplies a response corresponding to the request to the target device;
A plurality of relay routers provided on a tree structure between the control server and each of the edges, connecting the control server and the edge as an aggregation network,
The network system, wherein the control modules that are copied from the control server and control the target device are distributed to the relay router that transmits a request from the target device to the control server.
ことを特徴とする請求項1に記載のネットワークシステム。 The network system according to claim 1, wherein each of the control modules is arranged in the relay router at a position corresponding to a time for returning the response to the target device.
ことを特徴とする請求項1に記載のネットワークシステム。 The network system according to claim 1, wherein each of the control modules is arranged in a relay router at a position corresponding to the frequency of the request requested per predetermined time.
ことを特徴とする請求項1に記載のネットワークシステム。 When each of the control modules moves from a relay router that is located to a relay router that is closer to the control server, at least the access distance from the edge, the number of connections of the target devices that share the edge, and the arrangement The network system according to claim 1, wherein the network system moves to a predetermined relay router based on each of the costs of the relay router.
前記中継ルータの一の中継ルータに対し、前記ツリー構造における前記エッジにより近く、前記制御モジュールを有していない下流の二の中継ルータからリクエストが供給された際、当該一の中継ルータ自身が前記制御モジュールを有していない場合、前記ツリー構造における前記一の中継ルータより下流にあり、前記制御モジュールを備えている三の中継ルータに対して、前記リクエストを出力する
ことを特徴とする請求項1から請求項6のいずれか一項に記載のネットワークシステム。 In the plurality of relay routers connected in a tree structure in the aggregation network,
When a request is supplied from one downstream relay router that is closer to the edge in the tree structure and does not have the control module to one relay router, the one relay router itself When the control module is not provided, the request is output to three relay routers that are downstream from the one relay router in the tree structure and include the control module. The network system according to any one of claims 1 to 6.
前記制御サーバと前記対象機器が制御のリクエストを出力し、当該リクエストに対応するレスポンスを前記対象機器に供給するエッジの各々との間にツリー構造上に設けられた複数の中継ルータ間において、所定の配置位置の中継ルータから、前記対象機器から前記制御サーバに対して送信される、当該対象機器の制御に関するリクエストに対応して決定される配置位置の前記中継ルータに自律的に移動する
ことを特徴とするプログラムモジュール。 It is a program module for each control unit in the target device to be controlled, which constitutes a control program stored in a control server arranged on the cloud,
Between the plurality of relay routers provided on the tree structure between the control server and the target device that outputs a control request, and each of the edges that supply a response corresponding to the request to the target device. Autonomously moving from the relay router at the arrangement position to the relay router at the arrangement position determined in response to a request related to control of the target apparatus transmitted from the target apparatus to the control server. Feature program module.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017039899A JP2018148321A (en) | 2017-03-02 | 2017-03-02 | Network system and program module |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017039899A JP2018148321A (en) | 2017-03-02 | 2017-03-02 | Network system and program module |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018148321A true JP2018148321A (en) | 2018-09-20 |
Family
ID=63592339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017039899A Pending JP2018148321A (en) | 2017-03-02 | 2017-03-02 | Network system and program module |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018148321A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109159125A (en) * | 2018-09-28 | 2019-01-08 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | Cloud service system based on ROS system robot |
KR102316097B1 (en) * | 2021-04-27 | 2021-10-26 | 주식회사 모빌테크 | A map information providing system synchronizing map information using lidar coordinates |
WO2023003226A1 (en) * | 2021-07-22 | 2023-01-26 | 엘지전자 주식회사 | Heterogeneous robot system comprising edge server and cloud server, and method for controlling same |
JP2023144650A (en) * | 2022-03-28 | 2023-10-11 | Kddi株式会社 | Remote control system, server device, and control method thereof |
-
2017
- 2017-03-02 JP JP2017039899A patent/JP2018148321A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109159125A (en) * | 2018-09-28 | 2019-01-08 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | Cloud service system based on ROS system robot |
KR102316097B1 (en) * | 2021-04-27 | 2021-10-26 | 주식회사 모빌테크 | A map information providing system synchronizing map information using lidar coordinates |
WO2023003226A1 (en) * | 2021-07-22 | 2023-01-26 | 엘지전자 주식회사 | Heterogeneous robot system comprising edge server and cloud server, and method for controlling same |
JP2023144650A (en) * | 2022-03-28 | 2023-10-11 | Kddi株式会社 | Remote control system, server device, and control method thereof |
JP7703481B2 (en) | 2022-03-28 | 2025-07-07 | Kddi株式会社 | Remote control system, server device and control method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10594591B2 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
JP2018148321A (en) | Network system and program module | |
EP3226490B1 (en) | Optical network-on-chip, optical router and signal transmission method | |
KR101886500B1 (en) | Wireless Communication Apparatus and Method for Supporting Vehicle-to-Vehicle Wireless Communication | |
US20090213735A1 (en) | System to improve data packet routing in a data processing device and associated methods | |
US20140365632A1 (en) | Interface apparatus and memory bus system | |
CN116235469B (en) | Network chips and network devices | |
Liu et al. | Formal analysis and verification of DDS in ROS2 | |
CN113162970A (en) | Message routing method, device, equipment and medium based on publish/subscribe model | |
JP2013101530A (en) | Service cooperation device, service cooperation method, and service cooperation program | |
KR101651890B1 (en) | Apparatus for providing delay tolerant networking service based on drone fleet | |
Najm et al. | Cost-and-delay aware dynamic resource allocation in federated vehicular clouds | |
US20240380695A1 (en) | Data packet routing method and apparatus | |
Harounabadi et al. | Stigmergic communication for self-organized multi ferry delay tolerant networks | |
CN100361477C (en) | Methods and apparatus for processing message in wireless communication network | |
JP5526780B2 (en) | Load distribution system, service processing server, load distribution method, and load distribution program | |
JP6402576B2 (en) | COMMUNICATION DEVICE, INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING SYSTEM, AND COMMUNICATION DEVICE CONTROL METHOD | |
CN107046493B (en) | Communication method and device | |
JP2021536060A (en) | Congestion avoidance and common resource access management for multiple robots | |
CN104767684A (en) | Data transmission method and related device and communication system | |
Jeon et al. | A direction entropy-based forwarding scheme in an opportunistic network | |
Wargui et al. | Application of controller area network to mobile robots | |
CN115529276A (en) | Data transmission method and related equipment thereof | |
JP2018025912A (en) | Communication method, communication program, and information processing apparatus | |
CN118748654B (en) | Data packet sending method, device, electronic device and readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A80 | Written request to apply exceptions to lack of novelty of invention |
Free format text: JAPANESE INTERMEDIATE CODE: A80 Effective date: 20170321 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170502 |