JP2020149480A - Software distribution program, software distribution method, and information processing device - Google Patents

Software distribution program, software distribution method, and information processing device Download PDF

Info

Publication number
JP2020149480A
JP2020149480A JP2019047490A JP2019047490A JP2020149480A JP 2020149480 A JP2020149480 A JP 2020149480A JP 2019047490 A JP2019047490 A JP 2019047490A JP 2019047490 A JP2019047490 A JP 2019047490A JP 2020149480 A JP2020149480 A JP 2020149480A
Authority
JP
Japan
Prior art keywords
application
deployment destination
deployment
unit
failure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019047490A
Other languages
Japanese (ja)
Inventor
仲道 耕二
Koji Nakamichi
耕二 仲道
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019047490A priority Critical patent/JP2020149480A/en
Publication of JP2020149480A publication Critical patent/JP2020149480A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

To easily enable the introduction of software executed by a faulty apparatus to an alternative apparatus.SOLUTION: An information processing device 10 detects that a second apparatus is connected to a first apparatus as an apparatus of a hierarchy lower than that of the first apparatus in a system with a plurality of apparatuses connected to a multi-hierarchy. Next, the information processing device 10 detects a third apparatus in the same hierarchy as that of the second apparatus, connected to the first apparatus on the basis of connection information 1 showing a connection relation among the plurality of apparatuses. Next, the information processing device 10 determines the existence/non-existence of a damage of the third apparatus on the basis of a monitoring result of the third apparatus. The information processing device 10 distributes software distributed to the third apparatus on the basis of software information 2 showing the software distributed to each of the plurality of apparatuses in the case that the damage occurs in the third apparatus.SELECTED DRAWING: Figure 1

Description

本発明は、ソフトウェア配信プログラム、ソフトウェア配信方法、および情報処理装置に関する。 The present invention relates to a software distribution program, a software distribution method, and an information processing device.

現在、ICT(Information and Communication Technology)システムの大きな潮流として、IoT(Internet of Things)が注目を浴びており、様々な分野においてIoT実現に向けた技術開発が行われ、新サービスが立ち上がってきている。IoTとは、従来はインターネットに直接接続されてこなかった機器やモノが、それ自身がインターネットに接続できるようになることである。例えば、従来から、コンピュータやモバイル端末などの人間が操作する情報通信機器はインターネットに接続されている。これらの機器に加え、IoTでは、センサや計測器機器、家電や制御機器、さらにはRFID(Radio Frequency IDentifier)などによってタグ付けされた物品までも、インターネットに接続される。 Currently, IoT (Internet of Things) is attracting attention as a major trend of ICT (Information and Communication Technology) systems, and technological development for IoT realization is being carried out in various fields, and new services are being launched. .. IoT means that devices and things that were not directly connected to the Internet in the past can be connected to the Internet by themselves. For example, conventionally, human-operated information communication devices such as computers and mobile terminals have been connected to the Internet. In addition to these devices, the IoT also connects sensors and measuring instruments, home appliances and control devices, and even articles tagged with RFID (Radio Frequency IDentifier) to the Internet.

IoTを用いたサービスを実現するシステム(IoTシステム)は、様々な機器によって構成される分散処理システムであり、それらの機器が連携動作することでIoTを用いたサービスが実現される。各機器には、その機器に実行させる処理に対応するアプリケーションソフトウェアがインストールされる。以下、アプリケーションソフトウェアを単に「アプリ」と呼ぶこともある。IoTを用いたサービスの提供用のアプリ(IoTアプリ)は、IoTシステムに含まれる機器に、その機器に割り当てられたデータ処理を実行させるためのソフトウェアである。各機器が、その機器に割り当てられたデータ処理を実行することで、複数の機器による連係動作が可能となる。 A system that realizes a service using IoT (IoT system) is a distributed processing system composed of various devices, and the service using IoT is realized by the cooperative operation of these devices. Application software corresponding to the processing to be executed by the device is installed in each device. Hereinafter, application software may be simply referred to as an "application". An application for providing a service using IoT (IoT application) is software for causing a device included in an IoT system to execute data processing assigned to the device. By executing the data processing assigned to each device, the linked operation by a plurality of devices becomes possible.

このような分散処理システムでのソフトウェア開発に有用な技術としては、例えば実行モジュールを実行するノードを動的に決定することでシステム全体として効率的な処理が可能な分散システムがある。またIoTに関する技術として、ネットワーク内のノードが、ネットワーク内の他のノードがスリーピ(スリープモードになり得ること)であることを決定する技術もある。 As a technique useful for software development in such a distributed processing system, for example, there is a distributed system capable of efficient processing as a whole system by dynamically determining a node that executes an execution module. Also, as a technique related to IoT, there is a technique in which a node in the network determines that another node in the network is a sleep mode (which can be in sleep mode).

国際公開第2016/207989号International Publication No. 2016/207989 国際公開第2015/006636号International Publication No. 2015/006636

機器が故障した場合、システムの管理者は、故障した機器で実行しているソフトウェアを代替の機器に導入し、代替の機器でソフトウェアを実行させることとなる。しかし、大規模なシステムにおいて、システム内の多数の機器の中からの代替の機器の選択や、代替の機器へのソフトウェアの導入の作業を人手で行っていたのでは、作業に時間がかかる。そのため、故障した機器で実行していたソフトウェアを用いたサービスの停止時間も長期化してしまう。特にIoTシステムのような分散処理システムでは、一部の機器の故障によりサービス全体が停止する場合があり、故障した機器で実行していたソフトウェアの代替の機器への導入を迅速に行うことは、システムの安定運用のためにも重要である。 When a device fails, the system administrator installs the software running on the failed device into an alternative device and runs the software on the alternative device. However, in a large-scale system, it takes time to manually select an alternative device from a large number of devices in the system and to install software in the alternative device. Therefore, the downtime of the service using the software that was running on the failed device is also prolonged. Especially in a distributed processing system such as an IoT system, the entire service may be stopped due to a failure of some devices, and it is not possible to quickly introduce the software that was running on the failed device to a substitute device. It is also important for stable operation of the system.

1つの側面では、本件は、故障した機器で実行されていたソフトウェアを代替の機器に容易に導入できるようにすることを目的とする。 On the one hand, the purpose of this case is to facilitate the introduction of software running on a failed device to an alternative device.

1つの案では、以下の処理をコンピュータに実行させるソフトウェア配信プログラムが提供される。
コンピュータは、複数の機器が多階層に接続されたシステム内の第1機器の下位の階層の機器として、第1機器に第2機器が接続されたことを検知する。次にコンピュータは、複数の機器間の接続関係を示す接続情報に基づいて、第1機器に接続されている、第2機器と同じ階層の第3機器を検出する。次にコンピュータは、第3機器の監視結果に基づいて、第3機器の障害の有無を判定する。そしてコンピュータは、第3機器に障害が発生している場合、複数の機器それぞれに配信済みのソフトウェアを示すソフトウェア情報に基づいて、第3機器に配信済みのソフトウェアを第2機器に配信する。
One proposal provides a software distribution program that causes a computer to perform the following processes.
The computer detects that the second device is connected to the first device as a device in a lower layer of the first device in the system in which a plurality of devices are connected in multiple layers. Next, the computer detects the third device in the same layer as the second device, which is connected to the first device, based on the connection information indicating the connection relationship between the plurality of devices. Next, the computer determines whether or not there is a failure in the third device based on the monitoring result of the third device. Then, when a failure occurs in the third device, the computer distributes the software delivered to the third device to the second device based on the software information indicating the software delivered to each of the plurality of devices.

1態様によれば、故障した機器で実行されていたソフトウェアを代替の機器に容易に導入可能となる。 According to one aspect, software running on a failed device can be easily introduced into an alternative device.

第1の実施の形態に係るソフトウェア配信方法の一例を示す図である。It is a figure which shows an example of the software distribution method which concerns on 1st Embodiment. IoTシステムの構成の一例を示す図である。It is a figure which shows an example of the structure of an IoT system. ネットワークトポロジの一例を示す図である。It is a figure which shows an example of a network topology. アプリ開発サーバのハードウェアの一構成例を示す図である。It is a figure which shows one configuration example of the hardware of an application development server. アプリ開発サーバの機能の一例を示すブロック図である。It is a block diagram which shows an example of the function of an application development server. デバイス情報記憶部の一例を示す図である。It is a figure which shows an example of the device information storage part. 全体アプリフローデータ記憶部の一例を示す図である。It is a figure which shows an example of the whole application flow data storage part. 配備済みアプリ記憶部の一例を示す図である。It is a figure which shows an example of the deployed application storage part. 機器接続情報記憶部の一例を示す図である。It is a figure which shows an example of the device connection information storage part. 配備先機器状態記憶部の一例を示す図である。It is a figure which shows an example of the deployment destination device state storage part. 配備先機器の機能の一例を示すブロック図である。It is a block diagram which shows an example of the function of the deployment destination device. 下流機器情報記憶部の一例を示す図である。It is a figure which shows an example of the downstream equipment information storage part. 分配アプリの自動生成および配備処理の一例を示す図である。It is a figure which shows an example of the automatic generation and deployment processing of a distribution application. 分配アプリの生成および配備手順を示すフローチャートである。It is a flowchart which shows the generation and deployment procedure of a distribution application. 分配アプリ生成処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of the distribution application generation processing. システム構築フェーズにおける機器接続情報の更新例を示す図である。It is a figure which shows the update example of the device connection information in a system construction phase. 新規に接続された配備先機器による接続要求メッセージ送信処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of the connection request message transmission processing by the newly connected deployment destination device. 配備先機器による接続要求メッセージ転送処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of connection request message forwarding processing by a deployment destination device. マスタによる接続機器登録処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of connection device registration processing by a master. 配備先機器の障害検知例を示す図である。It is a figure which shows the failure detection example of the deployment destination device. 上流機器による下流機器状態確認処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of the downstream equipment state confirmation processing by the upstream equipment. 下流機器における状態通知処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of the state notification processing in a downstream device. マスタにおける障害状態判定処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of failure state determination processing in a master. アプリ再配備例を示す図である。It is a figure which shows the application redeployment example. アプリ再配備処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of application redeployment processing.

以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るソフトウェア配信方法の一例を示す図である。図1には、ソフトウェア配信方法を情報処理装置10によって実施した場合の例を示している。情報処理装置10は、例えばソフトウェア配信方法の処理手順が記述されたソフトウェア配信プログラムを実行することにより、ソフトウェア配信方法を実施することができる。
Hereinafter, the present embodiment will be described with reference to the drawings. It should be noted that each embodiment can be implemented by combining a plurality of embodiments within a consistent range.
[First Embodiment]
FIG. 1 is a diagram showing an example of a software distribution method according to the first embodiment. FIG. 1 shows an example when the software distribution method is implemented by the information processing apparatus 10. The information processing apparatus 10 can implement the software distribution method, for example, by executing a software distribution program in which the processing procedure of the software distribution method is described.

情報処理装置10は、ソフトウェア配信方法を実現するために、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサ、または演算回路である。 The information processing device 10 has a storage unit 11 and a processing unit 12 in order to realize a software distribution method. The storage unit 11 is, for example, a memory or a storage device included in the information processing device 10. The processing unit 12 is, for example, a processor or an arithmetic circuit included in the information processing device 10.

情報処理装置10は、複数の機器3a〜3eが多階層に接続されたシステムに、ネットワークで接続されている。複数の機器3a〜3eは、例えば情報処理装置10から配信されたソフトウェアを実行することにより、所定の機能を実現するサーバである。図1の例では、情報処理装置10が最上位の階層の機器(マスタ)であり、情報処理装置10の下位の階層に機器3aと機器3bとがある。機器3a,3bの下位の階層には、機器3aに接続された機器3cと機器3bに接続された機器3d,3eとがある。複数の機器3a〜3eそれぞれには、機器名が付与されている。例えば機器3aの機器名は「A」、機器3bの機器名は「B」、機器3cの機器名は「C」、機器3dの機器名は「D」、機器3eの機器名は「E」である。 The information processing device 10 is connected to a system in which a plurality of devices 3a to 3e are connected in multiple layers by a network. The plurality of devices 3a to 3e are servers that realize a predetermined function by, for example, executing software distributed from the information processing device 10. In the example of FIG. 1, the information processing device 10 is the device (master) in the uppermost layer, and the device 3a and the device 3b are in the lower layer of the information processing device 10. In the lower hierarchy of the devices 3a and 3b, there are the device 3c connected to the device 3a and the devices 3d and 3e connected to the device 3b. A device name is assigned to each of the plurality of devices 3a to 3e. For example, the device name of the device 3a is "A", the device name of the device 3b is "B", the device name of the device 3c is "C", the device name of the device 3d is "D", and the device name of the device 3e is "E". Is.

情報処理装置10内の記憶部11は、接続情報1とソフトウェア情報2とを記憶する。接続情報1は、複数の機器3a〜3e間の接続関係を示す情報である。ソフトウェア情報2は、複数の機器3a〜3eそれぞれに配信済みのソフトウェアを示す情報である。 The storage unit 11 in the information processing device 10 stores the connection information 1 and the software information 2. The connection information 1 is information indicating a connection relationship between a plurality of devices 3a to 3e. The software information 2 is information indicating software that has been distributed to each of the plurality of devices 3a to 3e.

情報処理装置10内の処理部12は、複数の機器が多階層に接続されたシステム内の第1機器の下位の階層の機器として、第1機器に第2機器が接続されたことを検知する(ステップS1)。例えば処理部12は、第2機器から第1機器へ出力された接続要求メッセージを、第1機器から取得したとき、第2機器が接続されたと検知する。図1の例では、機器3eが新たに接続された場合を想定している。この場合、処理部12は、機器3eから機器3b宛てに送信した接続要求メッセージを、機器3bから取得する。そして処理部12は、接続要求メッセージに基づいて、機器3bの下位の階層の機器として、機器3eが機器3bに接続されたことを認識する。なお処理部12は、接続要求メッセージに基づいて、第1機器と第2機器との接続関係を接続情報1に追加してもよい。 The processing unit 12 in the information processing device 10 detects that the second device is connected to the first device as a device in a lower layer of the first device in the system in which a plurality of devices are connected in multiple layers. (Step S1). For example, when the processing unit 12 acquires the connection request message output from the second device to the first device from the first device, the processing unit 12 detects that the second device is connected. In the example of FIG. 1, it is assumed that the device 3e is newly connected. In this case, the processing unit 12 acquires the connection request message transmitted from the device 3e to the device 3b from the device 3b. Then, the processing unit 12 recognizes that the device 3e is connected to the device 3b as a device in a lower layer of the device 3b based on the connection request message. The processing unit 12 may add the connection relationship between the first device and the second device to the connection information 1 based on the connection request message.

次に処理部12は、接続情報1に基づいて、第1機器に接続されている、第2機器と同じ階層の第3機器を検出する(ステップS2)。例えば処理部12は、接続情報1に基づいて、機器3bの下位の階層として機器3bに接続されている機器3dを、第3機器として検出する。 Next, the processing unit 12 detects the third device in the same layer as the second device, which is connected to the first device, based on the connection information 1 (step S2). For example, the processing unit 12 detects the device 3d connected to the device 3b as a lower layer of the device 3b as the third device based on the connection information 1.

次に処理部12は、第3機器の監視結果に基づいて、第3機器の障害の有無を判定する(ステップS3)。例えば処理部12は、第1機器による第3機器の状態の監視により第1機器が第3機器の障害を検知したときに、第1機器が送出する障害発生通知メッセージを取得したか否かに基づいて、第3機器の障害の有無を判定する。図1の例では、機器3dに障害が発生している。機器3dの状態は、機器3dの上位の階層において機器3dに接続されている機器3bが監視する。機器3bは、機器3dに障害が発生したことを検知すると、機器3dにおける障害発生を示す障害発生通知メッセージを、情報処理装置10に送信する。情報処理装置10の処理部12は、受信した障害発生通知メッセージに基づいて、機器3dにおける障害発生を認識する。 Next, the processing unit 12 determines whether or not there is a failure in the third device based on the monitoring result of the third device (step S3). For example, whether or not the processing unit 12 has acquired the failure occurrence notification message sent by the first device when the first device detects the failure of the third device by monitoring the status of the third device by the first device. Based on this, it is determined whether or not there is a failure of the third device. In the example of FIG. 1, a failure has occurred in the device 3d. The state of the device 3d is monitored by the device 3b connected to the device 3d in the upper layer of the device 3d. When the device 3b detects that a failure has occurred in the device 3d, the device 3b transmits a failure occurrence notification message indicating the failure in the device 3d to the information processing device 10. The processing unit 12 of the information processing device 10 recognizes the occurrence of a failure in the device 3d based on the received failure notification message.

処理部12は、第3機器に障害が発生している場合、ソフトウェア情報2に基づいて、第3機器に配信済みのソフトウェアを第2機器に配信する(ステップS4)。図1の例では、ソフトウェア情報2には、第3機器である機器3dの配信済みソフトウェアとして、ソフトウェア「app2」が示されている。そこで処理部12は、ソフトウェア「app2」を、新たに接続された機器3eに送信する。機器3eは、送信されたソフトウェア「app2」を実行することで、そのソフトウェア「app2」に応じた機能を実現する。 When the third device has a failure, the processing unit 12 distributes the software already distributed to the third device to the second device based on the software information 2 (step S4). In the example of FIG. 1, the software "app2" is shown in the software information 2 as the distributed software of the device 3d which is the third device. Therefore, the processing unit 12 transmits the software "app2" to the newly connected device 3e. The device 3e realizes a function corresponding to the software "appp2" by executing the transmitted software "appp2".

このような情報処理装置10を利用すれば、障害が発生した機器が接続されている上位の機器に代替の機器が接続されると、障害が発生した機器に配信済みのソフトウェアが、自動で代替の機器に配信される。これにより、故障した機器で実行されていたソフトウェアを代替の機器に容易に導入できる。すなわち、システムの管理者は、障害が発生した機器が接続されている上位の階層の機器に、代替の機器を接続することで、故障した機器が実行していた機能を実現するためのソフトウェアを代替の機器に実行させることができる。その結果、機器の故障により停止していたサービスを、迅速に復旧させることができる。 By using such an information processing device 10, when an alternative device is connected to a higher-level device to which the failed device is connected, the software delivered to the failed device is automatically replaced. It is delivered to the equipment of. This makes it easy to introduce software that was running on the failed device to an alternative device. That is, the system administrator can use software to realize the function performed by the failed device by connecting an alternative device to the device in the upper layer to which the failed device is connected. Can be run by an alternative device. As a result, services that have been stopped due to equipment failure can be quickly restored.

しかも、情報処理装置10は、機器間の階層的な接続関係を考慮して、故障した機器の代替の機器を特定している。そのため代替の機器を適切に判断することができる。すなわち複数の機器を含むシステムでは、一連の処理を分散処理させるために、互いに連係するソフトウェアが異なる機器に配布される場合がある。この場合、機器間のネットワークの位置関係が機器間の通信速度に影響をおよぼす。そのため情報処理装置10は、機器間の接続関係を考慮した適切な機器に、個々の処理を実行するソフトウェアが配布される。このようなソフトウェアの配布が行われているときに一部の機器に障害が発生すると、障害が発生した機器の代替機器は、ネットワーク上での位置が、障害が発生した機器と同等となるように、システムの管理者によってネットワークに接続される。情報処理装置10は、障害が発生した機器とネットワーク上の位置が同等となる機器を、障害が発生した機器の代替の機器と判断して、ソフトウェアを自動配信する。すなわち情報処理装置10は、代替の機器を適切に判断して、ソフトウェアの自動配信を行っている。 Moreover, the information processing device 10 identifies a substitute device for the failed device in consideration of the hierarchical connection relationship between the devices. Therefore, an alternative device can be appropriately determined. That is, in a system including a plurality of devices, software linked to each other may be distributed to different devices in order to distribute a series of processes. In this case, the positional relationship of the network between the devices affects the communication speed between the devices. Therefore, in the information processing device 10, software for executing individual processes is distributed to appropriate devices in consideration of the connection relationship between the devices. If a failure occurs in some of the devices while such software is being distributed, the alternative device of the failed device will be located on the network at the same position as the failed device. Is connected to the network by the system administrator. The information processing device 10 determines that the device having the same position on the network as the device in which the failure has occurred is a substitute device for the device in which the failure has occurred, and automatically distributes the software. That is, the information processing device 10 appropriately determines an alternative device and automatically distributes the software.

なお機器3a〜3eの多階層の接続関係は、例えばツリー型のネットワークトポロジで表すことができる。ツリー型のネットワークトポロジでは、マスタまでの距離により、各機器の属する階層が表される。各機器のマスタまでの距離は、機器とマスタとの間に存在する他の機器の数である。マスタに近い機器ほど上位層となる。 The multi-layered connection relationship of the devices 3a to 3e can be represented by, for example, a tree-type network topology. In a tree-type network topology, the hierarchy to which each device belongs is represented by the distance to the master. The distance to the master of each device is the number of other devices that exist between the device and the master. The closer the device is to the master, the higher the layer.

〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、複数の機器で構成される分散環境上で動作するIoT向けアプリを実行するサーバが故障した場合に、故障したサーバで実行しているアプリを代替サーバに自動で配備(デプロイ)できるようにしたものである。なおIoTアプリを配備するとは、IoTアプリを機器に送信し、IoTアプリを機器にインストールし、機器にIoTアプリの実行を開始させることである。
[Second Embodiment]
Next, the second embodiment will be described. In the second embodiment, when a server that executes an IoT application that operates in a distributed environment composed of a plurality of devices fails, the application that is executed on the failed server is automatically deployed to an alternative server. It is made possible to (deploy). Deploying the IoT application means transmitting the IoT application to the device, installing the IoT application on the device, and causing the device to start executing the IoT application.

例えばIoT向けアプリ開発者がIoTアプリを開発する際に、個別の機器ごとにアプリ開発や配備を行うのは、非常に手間がかかる作業となる。そこで第2の実施の形態では、開発者がアプリ開発用サーバを用いて分散機器全体に渡るアプリを定義した後、アプリ開発用サーバは、個別機器間で一意な経路を持つような通信処理部を備えた、各機器に対応したIoTアプリを自動生成し、配備する。これにより機器毎に対応するアプリを開発する作業を削減することを可能としている。 For example, when an IoT application developer develops an IoT application, it is a very time-consuming task to develop and deploy the application for each individual device. Therefore, in the second embodiment, after the developer defines the application over the entire distributed device using the application development server, the application development server is a communication processing unit having a unique route between the individual devices. The IoT application corresponding to each device is automatically generated and deployed. This makes it possible to reduce the work of developing apps that correspond to each device.

例えばアプリ開発サーバは生成アプリを配備する機器を事前に指定することで、定義した全体アプリから各配備先となる機器ごとの分配アプリを生成する。機器が故障した状況で代わりの機器を接続した場合、アプリ開発サーバは、接続した機器のみに適切な分配アプリ(故障した機器に配備していたアプリ)を配備する。 For example, the application development server generates a distribution application for each device to be deployed from the defined overall application by specifying the device to deploy the generation application in advance. When a substitute device is connected in a situation where the device has failed, the application development server deploys an appropriate distribution application (the application that was deployed to the failed device) only to the connected device.

なお、機器の入れ替え、追加を行う際に、再度全体アプリに対する変換を行い、該当アプリの配備先の機器すべてに対して分配アプリを配備していたのでは、既に動いている機器のアプリも入れ替えることになり、運用中の対応が困難となる。また全体アプリから生成されたすべての分配アプリを再配備すると、その間、サービスを停止することとなり、利用者の利便性の低下を招く。 In addition, when replacing or adding devices, conversion to the entire application is performed again, and if the distribution application is deployed to all the devices to which the corresponding application is deployed, the application of the device that is already running is also replaced. Therefore, it becomes difficult to respond during operation. In addition, if all the distribution apps generated from the entire app are redeployed, the service will be stopped during that time, which will reduce the convenience of the user.

そこで、第2の実施の形態では、アプリ開発サーバは、分配アプリを実行しているサーバが故障した場合、そのサーバで実行している分配アプリを自動で他の代替サーバに配備する。これにより、サーバが故障しても、故障によるサービスへの悪影響を最小限に抑えることができる。 Therefore, in the second embodiment, when the server executing the distribution application fails, the application development server automatically deploys the distribution application executed by the server to another alternative server. As a result, even if the server fails, the adverse effect on the service due to the failure can be minimized.

図2は、IoTシステムの構成の一例を示す図である。IoTシステムは、様々な機器を用いて構築される。例えばIoTシステムには、センサ31,32,・・・、およびセンサ31,32,・・・と接続してセンサデータの送受信を行うセンサノード41,42,・・・が含まれる。また、IoTシステムには、センサノードとクラウドコンピューティングシステムとの間でデータを中継するGW(ゲートウェイ)ノード51が含まれる。GWノード51は、例えばネットワーク20を介してクラウドコンピューティングシステムに接続される。 FIG. 2 is a diagram showing an example of the configuration of the IoT system. The IoT system is constructed using various devices. For example, the IoT system includes sensors 31, 32, ..., And sensor nodes 41, 42, ... By connecting to sensors 31, 32, ... To transmit and receive sensor data. The IoT system also includes a GW (gateway) node 51 that relays data between the sensor node and the cloud computing system. The GW node 51 is connected to the cloud computing system via, for example, the network 20.

クラウドコンピューティングシステムは、複数のサーバ52,53,・・・を含んでいる。サーバ52,53,・・・には、Webサーバ、アプリケーションサーバ、データベースサーバなどの、各種サーバが含まれる。 The cloud computing system includes a plurality of servers 52, 53, .... The servers 52, 53, ... Include various servers such as a Web server, an application server, and a database server.

さらにネットワーク20には、複数の端末装置61,62,・・・が接続されている。端末装置61,62,・・・は、例えばパーソナルコンピュータ、またはモバイル端末装置である。 Further, a plurality of terminal devices 61, 62, ... Are connected to the network 20. The terminal devices 61, 62, ... Are, for example, personal computers or mobile terminal devices.

ネットワーク20には、さらにアプリ開発サーバ100が接続されている。アプリ開発サーバ100は、IoTシステムに含まれる複数の機器それぞれに実行させる分配アプリを作成し、分配アプリを各機器に配備する。以下、分配アプリの配備先となり得る機器を、配備先機器と呼ぶ。図2の例では、センサノード41,42,・・・、GWノード51、サーバ52,53,・・・、端末装置61,62,・・・それぞれが、配備先機器である。 An application development server 100 is further connected to the network 20. The application development server 100 creates a distribution application to be executed by each of a plurality of devices included in the IoT system, and deploys the distribution application to each device. Hereinafter, the device that can be the deployment destination of the distribution application is referred to as the deployment destination device. In the example of FIG. 2, the sensor nodes 41, 42, ..., the GW node 51, the servers 52, 53, ..., The terminal devices 61, 62, ... Are the deployment destination devices, respectively.

例えばアプリ開発サーバ100は、分散機器環境上で動作するIoTアプリの生成および配備を、フローベースのアプリケーション開発環境を用いて実施する。IoTアプリには、例えばアプリレイヤ上のデータ処理、およびサービス提供処理を、配備先の機器に実行させるための命令が記述されている。フローベースのアプリケーション開発環境により生成されるIoTアプリは、アプリフローで表される。アプリフローでは、機能に対応するノードとノード間を接続する線により、IoTシステムに処理を実行させるための機能と、処理の手順とが表される。ノードは、機能ブロックに対して、その機能ブロックに対応する機能に実行させる処理の定義情報(パラメータなど)を付加したものである。 For example, the application development server 100 uses a flow-based application development environment to generate and deploy an IoT application that operates in a distributed device environment. In the IoT application, for example, an instruction for causing a device at the deployment destination to execute data processing on the application layer and service provision processing is described. The IoT application generated by the flow-based application development environment is represented by the application flow. In the application flow, the function for causing the IoT system to execute the process and the procedure of the process are represented by the nodes corresponding to the functions and the line connecting the nodes. A node is a functional block to which definition information (parameters, etc.) of processing to be executed by a function corresponding to the functional block is added.

アプリの開発者がアプリフローを作成すると、アプリ開発サーバ100が、アプリフローに示される機能と処理の手順とを実現するプログラム(全体アプリフローデータ)を自動生成する。さらにアプリ開発サーバ100は、機能ごとの分散処理を実現する場合、全体アプリフローデータに基づいて、配備先機器ごとに、該当配備先機器に実施させる機能と処理の手順とを実現するプログラム(分配アプリフローデータ)を生成する。その際、アプリ開発サーバ100は、分配アプリフローデータに基づく機能(分配アプリ)間での通信機能を、分配アプリに含める。 When the developer of the application creates the application flow, the application development server 100 automatically generates a program (overall application flow data) that realizes the functions shown in the application flow and the processing procedure. Further, when the application development server 100 realizes the distributed processing for each function, the application development server 100 is a program (distribution) that realizes the function and the processing procedure to be executed by the corresponding deployment destination device for each deployment destination device based on the entire application flow data. App flow data) is generated. At that time, the application development server 100 includes a communication function between functions (distribution application) based on the distribution application flow data in the distribution application.

例えばアプリ開発サーバ100は、通信に高いセキュリティが求められる場合には、高いセキュリティ機能を備えた通信プロトコルによる通信機能を、分配アプリに含める。高いセキュリティ機能を備えた通信プロトコルとしては、例えばHTTPS(Hypertext Transfer Protocol Secure)のような認証や暗号化技術を用いたHTTP(Hypertext Transfer Protocol)がある。またアプリ開発サーバ100は、高い処理効率が求められる場合には、効率的な通信が可能な通信プロトコルによる通信機能を、分配アプリに含める。効率的な通信が可能な通信プロトコルとしては、例えばMQTT(Message Queue Telemetry Transport)がある。MQTTは、HTTPに比べてヘッダサイズが非常に小さく、通信量や送受信する機器の負荷を低く抑えることができる。アプリ開発サーバ100は、分配アプリフローデータを配備先機器に配備することで、IoTアプリを複数の配備先機器により分散処理させることができる。 For example, when high security is required for communication, the application development server 100 includes a communication function based on a communication protocol having a high security function in the distribution application. As a communication protocol having a high security function, there is, for example, HTTP (Hypertext Transfer Protocol) using authentication or encryption technology such as HTTPS (Hypertext Transfer Protocol Secure). Further, when high processing efficiency is required, the application development server 100 includes a communication function based on a communication protocol capable of efficient communication in the distribution application. As a communication protocol capable of efficient communication, for example, there is MQTT (Message Queue Telemetry Transport). The header size of MQTT is much smaller than that of HTTP, and the amount of communication and the load on the device for transmitting and receiving can be suppressed to a low level. By deploying the distributed application flow data to the deployment destination device, the application development server 100 can distribute the IoT application by a plurality of deployment destination devices.

システム内のアプリ開発サーバ100と配備先機器との接続関係は、例えば、アプリ開発サーバ100をルートとする木構造のネットワークトポロジとなっている。
図3は、ネットワークトポロジの一例を示す図である。ネットワークトポロジ70において、アプリ開発サーバ100がマスタ71となる。図3の例では、マスタ71には配備先機器72〜74が接続されている。配備先機器72には、さらに配備先機器75が接続されている。配備先機器73には、さらに配備先機器76,77が接続されている。配備先機器75には、さらに配備先機器78が接続されている。配備先機器72の機器名は「A」、配備先機器73の機器名は「B」、配備先機器74の機器名は「C」、配備先機器75の機器名は「D」、配備先機器76の機器名は「E」、配備先機器77の機器名は「F」、配備先機器78の機器名は「G」である。
The connection relationship between the application development server 100 and the deployment destination device in the system is, for example, a tree-structured network topology with the application development server 100 as the root.
FIG. 3 is a diagram showing an example of a network topology. In the network topology 70, the application development server 100 becomes the master 71. In the example of FIG. 3, the deployment destination devices 72 to 74 are connected to the master 71. A deployment destination device 75 is further connected to the deployment destination device 72. Deployment destination devices 76 and 77 are further connected to the deployment destination device 73. The deployment destination device 78 is further connected to the deployment destination device 75. The device name of the deployment destination device 72 is "A", the device name of the deployment destination device 73 is "B", the device name of the deployment destination device 74 is "C", the device name of the deployment destination device 75 is "D", and the deployment destination. The device name of the device 76 is "E", the device name of the deployment destination device 77 is "F", and the device name of the deployment destination device 78 is "G".

以下の説明では、ネットワークトポロジ70においてマスタ71に近い方を上流、マスタ71から遠い方を下流と呼ぶ。ある配備先機器に着目したとき、着目した配備先機器の上流側に隣接する他の配備先機器を、着目した配備先機器の上流機器と呼ぶ。また着目した配備先機器の下流側に隣接する他の配備先機器を、着目した配備先機器の下流機器と呼ぶ。例えば配備先機器75の上流機器は、配備先機器72である。また配備先機器75の下流機器は、配備先機器78である。 In the following description, in the network topology 70, the one closer to the master 71 is referred to as upstream, and the one farther from the master 71 is referred to as downstream. When focusing on a certain deployment destination device, another deployment destination device adjacent to the upstream side of the focused deployment destination device is called an upstream device of the focused deployment destination device. In addition, other deployment destination devices adjacent to the downstream side of the focused deployment destination device are called downstream devices of the focused deployment destination device. For example, the upstream device of the deployment destination device 75 is the deployment destination device 72. The downstream device of the deployment destination device 75 is the deployment destination device 78.

なお図3に示したネットワークトポロジ70は、ツリー型のトポロジである。ネットワークトポロジ70で接続されている機器の間には、スイッチなどの通信機器が介在している場合もある。なおネットワークトポロジ70は、例えば機器間の物理的な接続関係を示す物理トポロジである。またネットワークトポロジ70は、アプリ開発サーバ100との間の通信経路を定義した理論上の装置間の接続関係を示す論理トポロジであってもよい。 The network topology 70 shown in FIG. 3 is a tree-type topology. Communication devices such as switches may intervene between the devices connected by the network topology 70. The network topology 70 is, for example, a physical topology that shows a physical connection relationship between devices. Further, the network topology 70 may be a logical topology showing a connection relationship between theoretical devices that defines a communication path with the application development server 100.

配備先機器72〜78となるGWノード51やサーバ52,53,・・・は、ネットワークトポロジ70における上流機器および下流機器と通信することで、システム上での自己の存在をマスタ71として機能するアプリ開発サーバ100に認識させる。 The GW nodes 51, servers 52, 53, ..., Which are the deployment destination devices 72 to 78, function as the master 71 by communicating with the upstream devices and downstream devices in the network topology 70. Make the application development server 100 recognize it.

なお、センサノード41,42,・・・、GWノード51、サーバ52,53,・・・、端末装置61,62,・・・、およびアプリ開発サーバ100は、例えばコンピュータによって実現される。 The sensor nodes 41, 42, ..., GW node 51, servers 52, 53, ..., terminal devices 61, 62, ..., And the application development server 100 are realized by, for example, a computer.

図4は、アプリ開発サーバのハードウェアの一構成例を示す図である。アプリ開発サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。 FIG. 4 is a diagram showing a configuration example of the hardware of the application development server. The entire device of the application development server 100 is controlled by the processor 101. A memory 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 109. The processor 101 may be a multiprocessor. The processor 101 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or a DSP (Digital Signal Processor). At least a part of the functions realized by the processor 101 executing a program may be realized by an electronic circuit such as an ASIC (Application Specific Integrated Circuit) or a PLD (Programmable Logic Device).

メモリ102は、アプリ開発サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションソフトウェアの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。 The memory 102 is used as the main storage device of the application development server 100. At least a part of an OS (Operating System) program or application software to be executed by the processor 101 is temporarily stored in the memory 102. Further, the memory 102 stores various data used for processing by the processor 101. As the memory 102, for example, a volatile semiconductor storage device such as a RAM (Random Access Memory) is used.

バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。 Peripheral devices connected to the bus 109 include a storage device 103, a graphic processing device 104, an input interface 105, an optical drive device 106, a device connection interface 107, and a network interface 108.

ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションソフトウェア、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。 The storage device 103 electrically or magnetically writes and reads data from the built-in recording medium. The storage device 103 is used as an auxiliary storage device for a computer. The storage device 103 stores an OS program, application software, and various data. As the storage device 103, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive) can be used.

グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。 A monitor 21 is connected to the graphic processing device 104. The graphic processing device 104 causes the image to be displayed on the screen of the monitor 21 in accordance with the instruction from the processor 101. The monitor 21 includes a display device using an organic EL (Electro Luminescence), a liquid crystal display device, and the like.

入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。 A keyboard 22 and a mouse 23 are connected to the input interface 105. The input interface 105 transmits signals sent from the keyboard 22 and the mouse 23 to the processor 101. The mouse 23 is an example of a pointing device, and other pointing devices can also be used. Other pointing devices include touch panels, tablets, touchpads, trackballs and the like.

光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。 The optical drive device 106 reads the data recorded on the optical disk 24 by using a laser beam or the like. The optical disk 24 is a portable recording medium on which data is recorded so that it can be read by reflection of light. The optical disk 24 includes a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc Read Only Memory), a CD-R (Recordable) / RW (ReWritable), and the like.

機器接続インタフェース107は、アプリ開発サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。 The device connection interface 107 is a communication interface for connecting peripheral devices to the application development server 100. For example, a memory device 25 or a memory reader / writer 26 can be connected to the device connection interface 107. The memory device 25 is a recording medium equipped with a communication function with the device connection interface 107. The memory reader / writer 26 is a device that writes data to the memory card 27 or reads data from the memory card 27. The memory card 27 is a card-type recording medium.

ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。 The network interface 108 is connected to the network 20. The network interface 108 transmits / receives data to / from another computer or communication device via the network 20.

アプリ開発サーバ100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。また、センサノード41,42,・・・、GWノード51、サーバ52,53,・・・、および端末装置61,62,・・・も、アプリ開発サーバ100と同様のハードウェアにより実現することができる。さらに、第1の実施の形態に示した情報処理装置10も、図4に示したアプリ開発サーバ100と同様のハードウェアにより実現することができる。 The application development server 100 can realize the processing function of the second embodiment by the hardware configuration as described above. Further, the sensor nodes 41, 42, ..., the GW node 51, the servers 52, 53, ..., and the terminal devices 61, 62, ... Are also realized by the same hardware as the application development server 100. Can be done. Further, the information processing device 10 shown in the first embodiment can also be realized by the same hardware as the application development server 100 shown in FIG.

アプリ開発サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。アプリ開発サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、アプリ開発サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またアプリ開発サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。 The application development server 100 realizes the processing function of the second embodiment, for example, by executing a program recorded on a computer-readable recording medium. The program that describes the processing content to be executed by the application development server 100 can be recorded in various recording media. For example, a program to be executed by the application development server 100 can be stored in the storage device 103. The processor 101 loads at least a part of the program in the storage device 103 into the memory 102 and executes the program. Further, the program to be executed by the application development server 100 can be recorded on a portable recording medium such as an optical disk 24, a memory device 25, and a memory card 27. The program stored in the portable recording medium can be executed after being installed in the storage device 103, for example, under the control of the processor 101. The processor 101 can also read and execute the program directly from the portable recording medium.

次に、アプリ開発サーバ100の機能について説明する。
図5は、アプリ開発サーバの機能の一例を示すブロック図である。アプリ開発サーバ100は、デバイス情報記憶部110、全体アプリフローデータ記憶部120、配備済みアプリ記憶部130、機器接続情報記憶部140、配備先機器状態記憶部150、配備指示部161、全体アプリフロー編集部162、分配アプリ生成部163、分配アプリ配備部164、機器経路情報登録部171、機器接続検知部172、障害状態判定部173、配備アプリ判定部174、および配備済みアプリ再配備部175を有する。
Next, the function of the application development server 100 will be described.
FIG. 5 is a block diagram showing an example of the function of the application development server. The application development server 100 includes a device information storage unit 110, an overall application flow data storage unit 120, a deployed application storage unit 130, a device connection information storage unit 140, a deployment destination device state storage unit 150, a deployment instruction unit 161 and an overall application flow. Editing unit 162, distribution application generation unit 163, distribution application deployment unit 164, device route information registration unit 171, device connection detection unit 172, failure status determination unit 173, deployment application determination unit 174, and deployed application redeployment unit 175. Have.

デバイス情報記憶部110は、IoTシステムに含まれる配備先機器についての情報を記憶する。例えばデバイス情報記憶部110として、メモリ102またはストレージ装置103の記憶領域の一部が使用される。 The device information storage unit 110 stores information about the deployment destination device included in the IoT system. For example, as the device information storage unit 110, a part of the storage area of the memory 102 or the storage device 103 is used.

全体アプリフローデータ記憶部120は、IoTシステムに実行させる処理を、単一の機器に実行させた場合の処理手順を示すデータ(全体アプリフローデータ)を記憶する。例えば全体アプリフローデータ記憶部120として、メモリ102またはストレージ装置103の記憶領域の一部が使用される。 The overall application flow data storage unit 120 stores data (overall application flow data) indicating a processing procedure when a single device executes a process to be executed by the IoT system. For example, as the overall application flow data storage unit 120, a part of the storage area of the memory 102 or the storage device 103 is used.

配備済みアプリ記憶部130は、全体アプリフローデータに基づいて生成され、いずれかの機器に配備された分配アプリフローデータを記憶する。例えば配備済みアプリ記憶部130として、メモリ102またはストレージ装置103の記憶領域の一部が使用される。 The deployed app storage unit 130 stores the distributed app flow data generated in the entire app flow data and deployed in any device. For example, as the deployed application storage unit 130, a part of the storage area of the memory 102 or the storage device 103 is used.

機器接続情報記憶部140は、ネットワークトポロジ70における機器の接続情報を記憶する。例えば機器接続情報記憶部140として、メモリ102またはストレージ装置103の記憶領域の一部が使用される。 The device connection information storage unit 140 stores device connection information in the network topology 70. For example, as the device connection information storage unit 140, a part of the storage area of the memory 102 or the storage device 103 is used.

配備先機器状態記憶部150は、配備先機器の状態を記憶する。配備先機器の状態は、例えば分配アプリの配備状態や障害発生状態である。例えば配備先機器状態記憶部150として、メモリ102またはストレージ装置103の記憶領域の一部が使用される。 The deployment destination device state storage unit 150 stores the state of the deployment destination device. The state of the deployment destination device is, for example, the deployment state of the distribution application or the failure occurrence state. For example, a part of the storage area of the memory 102 or the storage device 103 is used as the deployment destination device state storage unit 150.

配備指示部161は、全体アプリフローに基づく分配アプリの生成、および分配アプリの配備を制御する。例えば配備指示部161は、全体アプリフロー編集部162から全体アプリフローデータ121を受け取ると、全体アプリフローデータ121を全体アプリフローデータ記憶部120に格納する。また配備指示部161は、アプリ開発者からの、全体アプリフローに含まれる各ノードに対応する機能の配備先である配備先機器の指定入力を受け付ける。この指定入力の受け付けは、例えば画面に表示された配備先機器のリストの中から、アプリ開発者に配備先機器を選択させることで行うことができる。この場合、配備指示部161は、デバイス情報記憶部110を参照して、デバイス管理テーブル111に登録されている配備先機器の名称のリストを画面に表示する。アプリ開発者は、全体アプリフローから配備先機器の指定対象とするノードを選択すると共に、そのノードに対応する機能の配備先となる配備先機器の名称を、配備先機器の名称のリストから選択する。すると配備指示部161は、選択されたノードに対応する機能の配備先が、選択された配備先機器であると認識する。 The deployment instruction unit 161 controls the generation of the distribution application based on the entire application flow and the deployment of the distribution application. For example, when the deployment instruction unit 161 receives the overall application flow data 121 from the overall application flow editing unit 162, the deployment instruction unit 161 stores the entire application flow data 121 in the overall application flow data storage unit 120. Further, the deployment instruction unit 161 receives a designated input from the application developer of the deployment destination device, which is the deployment destination of the function corresponding to each node included in the entire application flow. This designated input can be accepted, for example, by having the application developer select the deployment destination device from the list of deployment destination devices displayed on the screen. In this case, the deployment instruction unit 161 refers to the device information storage unit 110 and displays a list of the names of the deployment destination devices registered in the device management table 111 on the screen. The application developer selects the node to be specified as the deployment destination device from the entire application flow, and selects the name of the deployment destination device to which the function corresponding to that node is deployed from the list of deployment destination device names. To do. Then, the deployment instruction unit 161 recognizes that the deployment destination of the function corresponding to the selected node is the selected deployment destination device.

全体アプリフロー内のすべてのノードについて配備先機器が指定されると、配備指示部161は、全体アプリフローデータ記憶部120内の全体アプリフローデータ121を分配アプリ生成部163に送信する。さらに配備指示部161は、分配アプリ生成部163に対して、全体アプリフローデータ121に示される各ノードに対応する機能の配備先を指定する。その後、分配アプリ生成部163によって、配備先機器ごとの分配アプリフローデータが生成されると、配備指示部161は、分配アプリ配備部164に対して、分配アプリの配備先を指定して、分配アプリの配備を指示する。 When the deployment destination device is specified for all the nodes in the entire application flow, the deployment instruction unit 161 transmits the entire application flow data 121 in the overall application flow data storage unit 120 to the distribution application generation unit 163. Further, the deployment instruction unit 161 designates the distribution application generation unit 163 to the deployment destination of the function corresponding to each node shown in the overall application flow data 121. After that, when the distribution application flow data for each deployment destination device is generated by the distribution application generation unit 163, the deployment instruction unit 161 specifies the distribution destination of the distribution application to the distribution application deployment unit 164 and distributes the data. Instruct to deploy the app.

全体アプリフロー編集部162は、アプリ開発者からの入力に従って、全体アプリフローを作成する。全体アプリフロー編集部162は、例えばNode−REDなどのフローベースのアプリ開発環境である。例えば全体アプリフロー編集部162は、Webブラウザ上での全体アプリフローの編集画面を表示し、アプリ開発者による入力に応じて、全体アプリフローの編集画面内で全体アプリフローを作成する。全体アプリフロー編集部162は、全体アプリフロー編集画面上での全体アプリフローを作成すると、全体アプリフローデータ121を生成する。そして全体アプリフロー編集部162は、生成した全体アプリフローデータ121を、例えば配備指示部161を介して全体アプリフローデータ記憶部120に格納する。 The overall application flow editorial unit 162 creates the entire application flow according to the input from the application developer. The overall application flow editorial unit 162 is a flow-based application development environment such as Node-RED. For example, the overall application flow editing unit 162 displays the overall application flow editing screen on the Web browser, and creates the entire application flow in the overall application flow editing screen in response to the input by the application developer. When the overall application flow editing unit 162 creates the overall application flow on the overall application flow editing screen, the overall application flow data 121 is generated. Then, the overall application flow editing unit 162 stores the generated overall application flow data 121 in the overall application flow data storage unit 120 via, for example, the deployment instruction unit 161.

分配アプリ生成部163は、配備指示部161からの指示に従って、全体アプリフローデータ121に基づいて、ノードに対応する機能の配備先ごとの分配アプリを生成する。分配アプリ生成部163は、生成した分配アプリを分配アプリ配備部164に送信する。 The distribution application generation unit 163 generates a distribution application for each deployment destination of the function corresponding to the node based on the overall application flow data 121 according to the instruction from the deployment instruction unit 161. The distribution application generation unit 163 transmits the generated distribution application to the distribution application deployment unit 164.

分配アプリ配備部164は、配備指示部161からの指示に従って、分配アプリを、その分配アプリに対応する配備先機器に配備する。例えば分配アプリ配備部164は、分配アプリを示す分配アプリフローデータを配備先機器に送信し、配備先機器に対して分配アプリのインストールおよび起動を指示する。 The distribution application deployment unit 164 deploys the distribution application to the deployment destination device corresponding to the distribution application according to the instruction from the deployment instruction unit 161. For example, the distribution application deployment unit 164 transmits the distribution application flow data indicating the distribution application to the deployment destination device, and instructs the deployment destination device to install and start the distribution application.

機器経路情報登録部171は、アプリ開発サーバ100の下位機器からの接続要求メッセージを受信する。そして機器経路情報登録部171は、接続要求メッセージに基づいて、ネットワークトポロジ70における機器間の接続情報を機器接続情報記憶部140に格納する。 The device route information registration unit 171 receives a connection request message from a lower device of the application development server 100. Then, the device route information registration unit 171 stores the connection information between the devices in the network topology 70 in the device connection information storage unit 140 based on the connection request message.

機器接続検知部172は、機器接続情報記憶部140を参照し、新たに配備先機器が接続されたことを検知する。機器接続検知部172は、新たな配備先機器を検知すると、配備アプリ判定部174に、新たに接続された配備先機器の機器名を含む機器接続検知情報を通知する。 The device connection detection unit 172 refers to the device connection information storage unit 140 and detects that a new deployment destination device is connected. When the device connection detection unit 172 detects a new deployment destination device, the device connection detection unit 172 notifies the deployment application determination unit 174 of device connection detection information including the device name of the newly connected deployment destination device.

障害状態判定部173は、下位機器からの障害発生通知メッセージを受信すると、配備先機器状態記憶部150に、配備先機器に障害が発生したことを示す情報を設定する。
配備アプリ判定部174は、配備先機器状態記憶部150を参照し、新たに接続された配備先機器で配備する分配アプリを判定する。例えば配備アプリ判定部174は、新たに接続された配備先機器が、障害が発生した配備先機器の代替機器の場合、障害が発生した配備先機器に配備済みの分配アプリを、新たに接続された配備先機器で配備する分配アプリと判定する。配備アプリ判定部174は、障害が発生した配備先機器に配備済みの分配アプリを示す情報を、配備済みアプリ再配備部175に通知する。
Upon receiving the failure occurrence notification message from the lower-level device, the failure state determination unit 173 sets information indicating that a failure has occurred in the deployment destination device in the deployment destination device state storage unit 150.
The deployment application determination unit 174 refers to the deployment destination device state storage unit 150 and determines the distribution application to be deployed by the newly connected deployment destination device. For example, if the newly connected deployment destination device is a substitute device for the failed deployment destination device, the deployment application determination unit 174 newly connects the distribution application already deployed to the failed deployment destination device. Judged as a distribution application to be deployed on the deployment destination device. The deployment application determination unit 174 notifies the deployed application redeployment unit 175 of information indicating the distributed application that has been deployed to the deployment destination device in which the failure has occurred.

配備済みアプリ再配備部175は、障害が発生した配備先機器の配備済みの分配アプリを、その配備先機器の代替の配備先機器に再配備する。
なお、図5に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図5に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
The deployed application redeployment unit 175 redeploys the deployed distribution application of the failed deployment destination device to the alternative deployment destination device of the deployment destination device.
The line connecting each element shown in FIG. 5 indicates a part of the communication path, and a communication path other than the illustrated communication path can be set. Further, the function of each element shown in FIG. 5 can be realized, for example, by causing a computer to execute a program module corresponding to the element.

次に、アプリ開発サーバ100内の各記憶部に格納されている情報について具体的に説明する。
図6は、デバイス情報記憶部の一例を示す図である。デバイス情報記憶部110には、デバイス管理テーブル111が格納されている。デバイス管理テーブル111には、例えば配備先機器の機器名に対応付けて、配備先機器のIP(Internet Protocol)アドレス、サブネットマスク、および機器識別子が設定されている。サブネットマスクは、IPアドレスのうちのネットワーク部の範囲を示す情報である。IPアドレスとサブネットマスクとのビット単位の論理積により、ネットワーク部の値(ネットワークアドレス)が取得できる。ネットワークアドレスが共通の複数の配備先機器は、内部ネットワークで接続されているものと判断できる。機器識別子は、配備先機器を一意に識別する識別子である。機器識別子は、配備先機器間の通信路の識別子に用いることができる。例えば、データ送信元の配備先機器の機器識別子とデータ送信先の配備先機器の機器識別子とを組み合わせて通信識別子を作成することで、機器間の通信路を一意に識別する識別子を生成することができる。なお、IPアドレスを配備先機器の機器識別子として用いてもよい。
Next, the information stored in each storage unit in the application development server 100 will be specifically described.
FIG. 6 is a diagram showing an example of the device information storage unit. The device management table 111 is stored in the device information storage unit 110. In the device management table 111, for example, the IP (Internet Protocol) address, subnet mask, and device identifier of the deployment destination device are set in association with the device name of the deployment destination device. The subnet mask is information indicating the range of the network portion of the IP address. The value (network address) of the network part can be obtained by the bitwise logical product of the IP address and the subnet mask. It can be determined that a plurality of deployment destination devices having a common network address are connected by the internal network. The device identifier is an identifier that uniquely identifies the deployment destination device. The device identifier can be used as an identifier for the communication path between the deployment destination devices. For example, by creating a communication identifier by combining the device identifier of the deployment destination device of the data transmission source and the device identifier of the deployment destination device of the data transmission destination, an identifier that uniquely identifies the communication path between the devices is generated. Can be done. The IP address may be used as the device identifier of the deployment destination device.

なお、デバイス情報記憶部110内の情報は、例えばシステムの運用者によって予め登録されている。また、配備先機器がネットワークに接続された際に、その配備先機器が、アプリ開発サーバ100へ、機器名、IPアドレス、サブネットマスク、機器識別子を送信してもよい。この場合、アプリ開発サーバ100は、配備先機器から送られた情報を、デバイス情報記憶部110に格納する。 The information in the device information storage unit 110 is registered in advance by, for example, the system operator. Further, when the deployment destination device is connected to the network, the deployment destination device may transmit the device name, IP address, subnet mask, and device identifier to the application development server 100. In this case, the application development server 100 stores the information sent from the deployment destination device in the device information storage unit 110.

図7は、全体アプリフローデータ記憶部の一例を示す図である。全体アプリフローデータ記憶部120には、全体アプリフローデータ121が格納されている。全体アプリフローデータ121は、全体アプリフロー編集部162により作成され、例えば配備指示部161により、全体アプリフローデータ記憶部120に格納される。全体アプリフローデータ121は、例えばJSON(JavaScript(登録商標) Object Notation)によって記述される。 FIG. 7 is a diagram showing an example of the entire application flow data storage unit. The overall application flow data 121 is stored in the overall application flow data storage unit 120. The overall application flow data 121 is created by the overall application flow editing unit 162, and is stored in the overall application flow data storage unit 120 by, for example, the deployment instruction unit 161. The entire application flow data 121 is described by, for example, JSON (JavaScript (registered trademark) Object Notation).

全体アプリフローデータ121には、機能に対応するノードとノード間を接続する線で示された全体アプリフロー内のノードそれぞれを定義する記述(データ処理定義情報121a,121b,121c)が含まれている。データ処理定義情報121a,121b,121cには、項目名「id」の値としてそのノードの識別子が示されている。また、項目名「name」の値として、そのノードに対応する機能ブロックの名前が示されている。そして、出力側が他のノードに接続されたノードを定義するデータ処理定義情報には、項目名「wires」の値として、データ送信先のノードの識別子が示されている。 The overall application flow data 121 includes a description (data processing definition information 121a, 121b, 121c) that defines each node in the overall application flow indicated by a node corresponding to the function and a line connecting the nodes. There is. In the data processing definition information 121a, 121b, 121c, the identifier of the node is indicated as the value of the item name "id". Further, as the value of the item name "name", the name of the functional block corresponding to the node is shown. Then, in the data processing definition information that defines a node whose output side is connected to another node, the identifier of the node of the data transmission destination is indicated as the value of the item name "wires".

図8は、配備済みアプリ記憶部の一例を示す図である。配備済みアプリ記憶部130には、全体アプリフローデータ121に基づいて生成された複数の分配アプリフローデータ131,132,・・・が格納されている。分配アプリフローデータ131,132,・・・それぞれには、アプリ名が付与されている。例えば分配アプリフローデータ131のアプリ名は「app001.json」である。 FIG. 8 is a diagram showing an example of the deployed application storage unit. The deployed application storage unit 130 stores a plurality of distributed application flow data 131, 132, ... Generated based on the overall application flow data 121. Distribution application flow data 131, 132, ... Each is given an application name. For example, the application name of the distribution application flow data 131 is "app001.json".

分配アプリフローデータ131では、「日付データ生成」に対応するノードを定義するデータ処理定義情報131aにおける項目名「wires」の値に示される送信先ノードの識別子が、「データ送信_MQTT」に対応するノードの識別子に変更されている。また分配アプリフローデータ131には、「データ送信_MQTT」に対応するノードを定義するデータ処理定義情報131bが追加されている。データ処理定義情報131b内には、項目名「topic」の値として、MQTTのトピックの値が設定されている。MQTTのトピックは、MQTTによる通信の通信識別子として用いられる。MQTTのトピックの値は、例えば「日付データ生成」のノードの配備先である配備先機器の識別子「dev1」と、データ処理定義情報121b(図7参照)内の「日付データ整形」のノードの配備先である配備先機器の識別子「dev2」とを含む値である。図8の例では、MQTTのトピックとして値「dev1todev2」が設定されている。 In the distribution application flow data 131, the identifier of the destination node shown in the value of the item name "wires" in the data processing definition information 131a that defines the node corresponding to "date data generation" corresponds to "data transmission_MQTT". It has been changed to the node identifier. Further, data processing definition information 131b that defines a node corresponding to "data transmission_MQTT" is added to the distribution application flow data 131. In the data processing definition information 131b, the value of the topic of MQTT is set as the value of the item name "topic". The topic of MQTT is used as a communication identifier for communication by MQTT. The values of the MQTT topic are, for example, the identifier "dev1" of the deployment destination device to which the node of "date data generation" is deployed and the node of "date data shaping" in the data processing definition information 121b (see FIG. 7). It is a value including the identifier "dev2" of the deployment destination device which is the deployment destination. In the example of FIG. 8, the value "dev1todev2" is set as the topic of MQTT.

図9は、機器接続情報記憶部の一例を示す図である。機器接続情報記憶部140には、例えば機器接続関係テーブル141が格納されている。機器接続関係テーブル141には、接続関係にある配備先機器の上流側の機器(上流機器)の機器名に対応付けて、その機器の下流側の機器(下流機器)の機器名が設定されている。 FIG. 9 is a diagram showing an example of the device connection information storage unit. For example, the device connection related table 141 is stored in the device connection information storage unit 140. In the device connection relationship table 141, the device name of the device (downstream device) on the downstream side of the device is set in association with the device name of the device (upstream device) on the upstream side of the deployment destination device having a connection relationship. There is.

図10は、配備先機器状態記憶部の一例を示す図である。配備先機器状態記憶部150には、例えば配備先機器状態テーブル151が格納されている。配備先機器状態テーブル151には、配備先機器の機器名に対応付けて、配備先機器に配備した分配アプリ(配備済みアプリ)のアプリ名と障害発生フラグとが設定されている。障害発生フラグは、対応する配備先機器の障害が検出されていなければ「0」が設定され、障害が検出されていれば「1」が設定される。 FIG. 10 is a diagram showing an example of the deployment destination device state storage unit. For example, the deployment destination device status table 151 is stored in the deployment destination device status storage unit 150. In the deployment destination device status table 151, the application name of the distribution application (deployed application) deployed to the deployment destination device and the failure occurrence flag are set in association with the device name of the deployment destination device. The failure occurrence flag is set to "0" if a failure of the corresponding deployment destination device is not detected, and is set to "1" if a failure is detected.

図11は、配備先機器の機能の一例を示すブロック図である。配備先機器200は、接続要求メッセージ送受信部210、下流機器情報記憶部220、キープアライブメッセージ送受信部230、応答メッセージ送受信部240、故障判定処理部250、および判定通知処理部260を有する。 FIG. 11 is a block diagram showing an example of the functions of the deployment destination device. The deployment destination device 200 includes a connection request message transmission / reception unit 210, a downstream device information storage unit 220, a keep-alive message transmission / reception unit 230, a response message transmission / reception unit 240, a failure determination processing unit 250, and a determination notification processing unit 260.

接続要求メッセージ送受信部210は、接続要求メッセージの送受信を行う。例えば接続要求メッセージ送受信部210は、下流機器200bから接続要求メッセージを受信し、自身の下流機器を認識する。接続要求メッセージ送受信部210は、接続要求メッセージの送信元である下流機器200bの装置名を、下流機器情報記憶部220に格納する。また接続要求メッセージ送受信部210は、下流機器200bから受信した接続要求メッセージを上流機器200aに転送する。その際、接続要求メッセージ送受信部210は、接続要求メッセージに、転送経路を示す情報として配備先機器200自身の装置名を付与する。 The connection request message transmission / reception unit 210 transmits / receives a connection request message. For example, the connection request message transmission / reception unit 210 receives the connection request message from the downstream device 200b and recognizes its own downstream device. The connection request message transmission / reception unit 210 stores the device name of the downstream device 200b, which is the source of the connection request message, in the downstream device information storage unit 220. Further, the connection request message transmission / reception unit 210 transfers the connection request message received from the downstream device 200b to the upstream device 200a. At that time, the connection request message transmission / reception unit 210 assigns the device name of the deployment destination device 200 itself to the connection request message as information indicating the transfer route.

また接続要求メッセージ送受信部210は、配備先機器200が新たにシステムに追加された場合、接続要求メッセージを生成し、その接続要求メッセージを上流機器200aに送信する。なお論理トポロジにおける上流機器200aがどの機器なのか(例えば機器名とIPアドレス)は、配備先機器200のシステムへの追加時に、予め接続要求メッセージ送受信部210に設定される。 Further, when the deployment destination device 200 is newly added to the system, the connection request message transmission / reception unit 210 generates a connection request message and transmits the connection request message to the upstream device 200a. Which device (for example, device name and IP address) is the upstream device 200a in the logical topology is set in advance in the connection request message transmission / reception unit 210 when the deployment destination device 200 is added to the system.

下流機器情報記憶部220は、配備先機器200の下流機器の情報を記憶する。例えば配備先機器200のメモリまたはストレージ装置の記憶領域の一部が、下流機器情報記憶部220として使用される。 The downstream device information storage unit 220 stores information on the downstream device of the deployment destination device 200. For example, a part of the memory of the deployment destination device 200 or the storage area of the storage device is used as the downstream device information storage unit 220.

キープアライブメッセージ送受信部230は、キープアライブメッセージの送受信を行う。例えばキープアライブメッセージ送受信部230は、定期的に下流機器200bに対してキープアライブメッセージを送信する。このとき、キープアライブメッセージ送受信部230は、キープアライブメッセージを送信したことを、応答メッセージ送受信部240に通知する。またキープアライブメッセージ送受信部230は、上流機器200aが送信したキープアライブメッセージを受信する。そしてキープアライブメッセージ送受信部230は、キープアライブメッセージを受信したことを、応答メッセージ送受信部240に通知する。 The keep-alive message transmission / reception unit 230 transmits / receives a keep-alive message. For example, the keep-alive message transmission / reception unit 230 periodically transmits a keep-alive message to the downstream device 200b. At this time, the keep-alive message transmission / reception unit 230 notifies the response message transmission / reception unit 240 that the keep-alive message has been transmitted. Further, the keep-alive message transmission / reception unit 230 receives the keep-alive message transmitted by the upstream device 200a. Then, the keep-alive message transmission / reception unit 230 notifies the response message transmission / reception unit 240 that the keep-alive message has been received.

応答メッセージ送受信部240は、下流機器200bからの、キープアライブメッセージへの応答メッセージを受信する。応答メッセージ送受信部240は、下流機器200bから応答メッセージを受信すると、応答メッセージを受信したことを故障判定処理部250に通知する。また応答メッセージ送受信部240は、キープアライブメッセージを受信した旨の通知をキープアライブメッセージ送受信部230から取得すると、応答メッセージを上流機器200aに送信する。 The response message transmission / reception unit 240 receives a response message to the keep-alive message from the downstream device 200b. When the response message transmission / reception unit 240 receives the response message from the downstream device 200b, the response message transmission / reception unit 240 notifies the failure determination processing unit 250 that the response message has been received. Further, when the response message transmission / reception unit 240 acquires the notification that the keep-alive message has been received from the keep-alive message transmission / reception unit 230, the response message transmission / reception unit 240 transmits the response message to the upstream device 200a.

故障判定処理部250は、下流機器200bに送信したキープアライブメッセージに対する応答メッセージの受信状況に基づいて、下流機器200bの故障の有無を判定する。例えば故障判定処理部250は、キープアライブメッセージを送信してから所定時間以内に応答メッセージを受信できなければ、下流機器200bが故障していると判定する。故障判定処理部250は、判定結果を判定通知処理部260に通知する。 The failure determination processing unit 250 determines whether or not there is a failure in the downstream device 200b based on the reception status of the response message to the keep-alive message transmitted to the downstream device 200b. For example, the failure determination processing unit 250 determines that the downstream device 200b is out of order if the response message cannot be received within a predetermined time after the keepalive message is transmitted. The failure determination processing unit 250 notifies the determination notification processing unit 260 of the determination result.

判定通知処理部260は、故障判定処理部250から受信した判定結果を、上流機器200aに送信する。例えば判定通知処理部260は、下流機器200bが正常に動作していると判定した場合、上流機器200aに対して、障害非発生通知メッセージを送信する。また判定通知処理部260は、下流機器200bが正常に動作していないと判定した場合、上流機器200aに対して、障害発生通知メッセージを送信する。 The determination notification processing unit 260 transmits the determination result received from the failure determination processing unit 250 to the upstream device 200a. For example, when the determination notification processing unit 260 determines that the downstream device 200b is operating normally, the determination notification processing unit 260 transmits a failure non-occurrence notification message to the upstream device 200a. Further, when the determination notification processing unit 260 determines that the downstream device 200b is not operating normally, the determination notification processing unit 260 transmits a failure occurrence notification message to the upstream device 200a.

なお、図11に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図11に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。 The line connecting each element shown in FIG. 11 indicates a part of the communication path, and a communication path other than the illustrated communication path can be set. Further, the function of each element shown in FIG. 11 can be realized, for example, by causing a computer to execute a program module corresponding to the element.

次に、下流機器情報記憶部220に格納される情報について、具体的に説明する。
図12は、下流機器情報記憶部の一例を示す図である。例えば下流機器情報記憶部220には、下流機器情報テーブル221が格納される。下流機器情報テーブル221には、配備先機器200の下流機器の機器名に対応付けて、下流機器と通信するためのアドレスが設定されている。アドレスは、例えばIPアドレスである。図12の例では、配備先機器200が、ネットワークトポロジ70における配備先機器73である場合における、下流機器の機器名とアドレスとの組が、下流機器情報テーブル221に設定されている。
Next, the information stored in the downstream device information storage unit 220 will be specifically described.
FIG. 12 is a diagram showing an example of a downstream device information storage unit. For example, the downstream device information storage unit 220 stores the downstream device information table 221. In the downstream device information table 221, an address for communicating with the downstream device is set in association with the device name of the downstream device of the deployment destination device 200. The address is, for example, an IP address. In the example of FIG. 12, when the deployment destination device 200 is the deployment destination device 73 in the network topology 70, the set of the device name and the address of the downstream device is set in the downstream device information table 221.

以上のような機能を有するマスタであるアプリ開発サーバ100と配備先機器とが連係動作することで、分配アプリの配備と、分配アプリを配備した配備先機器が故障した場合の代替の配備先機器への分配アプリの自動配備とが実現される。アプリ開発サーバ100と配備先機器とが連係動作して実現する処理は、大別して分配アプリ生成・配備フェーズ、システム構築フェーズ、および運用フェーズに分かれる。以下フェーズごとの処理を詳細に説明する。 By linking the application development server 100, which is the master with the above functions, and the deployment destination device, the distribution application can be deployed and the deployment destination device to which the distribution application is deployed fails. The automatic deployment of the distribution application to is realized. The processing realized by the linked operation of the application development server 100 and the deployment destination device is roughly divided into a distribution application generation / deployment phase, a system construction phase, and an operation phase. The processing for each phase will be described in detail below.

<分配アプリ生成・配備フェーズ>
まず、分配アプリ生成・配備フェーズについて説明する。分配アプリ生成・配備フェーズでは、アプリ開発サーバ100が全体アプリフローに基づいて分配アプリを自動生成し、生成した分配アプリを配備先機器に配備する。
<Distribution application generation / deployment phase>
First, the distribution application generation / deployment phase will be described. In the distribution application generation / deployment phase, the application development server 100 automatically generates a distribution application based on the entire application flow, and deploys the generated distribution application to the deployment destination device.

図13は、分配アプリの自動生成および配備処理の一例を示す図である。全体アプリフロー編集部162は、アプリ開発者の入力に基づいて、全体アプリフロー81を作成する。全体アプリフロー81に含まれる各ノード81a〜81dは、アプリ開発者によって、対応する機能の配備先が指定されている。例えばノード81a,81bに対応する機能(センサデバイス制御、センサ入力値加工)の配備先は「機器A」である。ノード81cに対応する機能(フィルタリング)の配備先は「機器B」である。ノード81dに対応する機能(可視化)の配備先は「機器C」である。この全体アプリフロー81は、例えばセンサから取得したデータを入力データとして、特定デバイス固有のデータ取得処理、取得したデータの加工処理、データのフィルタリング処理(例えば平均化処理など)、取得データの可視化などを順に行うことを示す。 FIG. 13 is a diagram showing an example of automatic generation and deployment processing of the distribution application. The overall application flow editorial unit 162 creates the overall application flow 81 based on the input of the application developer. For each of the nodes 81a to 81d included in the overall application flow 81, the deployment destination of the corresponding function is specified by the application developer. For example, the deployment destination of the functions (sensor device control, sensor input value processing) corresponding to the nodes 81a and 81b is "device A". The deployment destination of the function (filtering) corresponding to the node 81c is "device B". The deployment destination of the function (visualization) corresponding to the node 81d is "device C". The overall application flow 81 uses data acquired from a sensor as input data, for example, data acquisition processing specific to a specific device, processing of acquired data, data filtering processing (for example, averaging processing), visualization of acquired data, and the like. Indicates that

アプリ開発者から分配アプリの生成指示が入力されると、全体アプリフロー編集部162が作成した全体アプリフロー81を定義する全体アプリフローデータ121が、配備指示部161により全体アプリフローデータ記憶部120から読み出される。そして配備指示部161から分配アプリ生成部163へ全体アプリフローデータ121が送信される。すると分配アプリ生成部163は、全体アプリフローデータ121に基づいて、分配アプリ82〜84を生成する。 When the distribution application generation instruction is input from the application developer, the overall application flow data 121 that defines the overall application flow 81 created by the overall application flow editorial unit 162 is stored in the overall application flow data storage unit 120 by the deployment instruction unit 161. Read from. Then, the entire application flow data 121 is transmitted from the deployment instruction unit 161 to the distribution application generation unit 163. Then, the distribution application generation unit 163 generates distribution applications 82 to 84 based on the entire application flow data 121.

例えば分配アプリ生成部163は、まず全体アプリフロー81内のノードを、配備先機器ごとに分割する。図13の例では、配備先が「機器A」のノード81a,81bと、配備先が「機器B」のノード81cと、配備先が「機器C」のノード81dとに分割される。 For example, the distribution application generation unit 163 first divides the nodes in the overall application flow 81 for each deployment destination device. In the example of FIG. 13, the deployment destination is divided into the nodes 81a and 81b of the “device A”, the deployment destination is the node 81c of the “device B”, and the deployment destination is divided into the nodes 81d of the “device C”.

さらに分配アプリ生成部163は、全体アプリフロー81の分割部分のリンク(全体アプリフロー81における接続線)を通信処理ノードに置き換える。具体的には、分配アプリ生成部163は、データ送信元のノードの出力側(図中右側)にデータ送信処理のノードを追加し、データ送信先のノードの入力側(図中左側)にデータ受信処理のノードを追加する。図13の例では、ノード81bの出力側に、データ送信処理のノード81eが追加されている。またノード81cの入力側に、データ受信処理のノード81fが追加され、ノード81cの出力側に、データ送信処理のノード81gが追加されている。さらにノード81dの入力側に、データ受信処理のノード81hが追加されている。追加されたデータ送信処理のノード81e,81gには、例えばデータ送信先の機器との通信を一意に示す識別子が付与される。また追加されたデータ受信処理のノード81f,81hには、例えばデータ送信元の機器との通信を一意に示す識別子が付与される。 Further, the distribution application generation unit 163 replaces the link (connection line in the overall application flow 81) of the divided portion of the entire application flow 81 with the communication processing node. Specifically, the distribution application generation unit 163 adds a data transmission processing node to the output side (right side in the figure) of the data transmission source node, and data on the input side (left side in the figure) of the data transmission destination node. Add a node for reception processing. In the example of FIG. 13, the node 81e for data transmission processing is added to the output side of the node 81b. Further, a node 81f for data reception processing is added to the input side of the node 81c, and a node 81g for data transmission processing is added to the output side of the node 81c. Further, a node 81h for data reception processing is added to the input side of the node 81d. The added data transmission processing nodes 81e and 81g are given, for example, an identifier uniquely indicating communication with the data transmission destination device. Further, the added data reception processing nodes 81f and 81h are given an identifier uniquely indicating, for example, communication with the device of the data transmission source.

なお、既存のノードの出力側にノードを追加するとは、分配アプリフローにおいて、追加するノードをアプリフローに追加すると共に、既存のノードの出力側と追加するノードの入力側とを通信のリンクを示す線で接続することである。また既存のノードの入力側にノードを追加するとは、分配アプリフローにおいて、追加するノードをアプリフローに追加すると共に、既存のノードの入力側と追加するノードの出力側とを通信のリンクを示す線で接続することである。 To add a node to the output side of an existing node means to add the node to be added to the application flow and to link the output side of the existing node and the input side of the node to be added in the distribution application flow. Connect with the indicated wire. Adding a node to the input side of an existing node means adding the node to be added to the application flow in the distribution application flow, and indicating a communication link between the input side of the existing node and the output side of the node to be added. It is to connect with a wire.

このようにして、配備先機器ごとの分配アプリ82〜84が生成される。生成された分配アプリ82〜84は、それぞれ指定された配備先機器に配備される。具体的には、「機器A」用の分配アプリ82は「機器A」に配備され、「機器B」用の分配アプリ83は「機器B」に配備され、「機器C」用の分配アプリ84は「機器C」に配備される。 In this way, distribution applications 82 to 84 for each deployment destination device are generated. The generated distribution applications 82 to 84 are deployed to the designated deployment destination devices, respectively. Specifically, the distribution application 82 for "device A" is deployed in "device A", the distribution application 83 for "device B" is deployed in "device B", and the distribution application 84 for "device C". Is deployed in "Equipment C".

なお分配アプリ生成部163は、データ送信用またはデータ受信用のノードを追加する際、データ送信側とデータ受信側とで共通の通信プロトコルにより通信を行うノードを追加する。例えば分配アプリ生成部163は、通信に高いセキュリティが求められる場合には、通信プロトコルを、高いセキュリティ機能を有するプロトコルに決定する。すなわち、インターネットのような広域ネットワーク20bを経由した通信の場合、データが第3者に漏洩する危険がある。このような場合、分配アプリ生成部163は、送信されるデータが第3者に漏洩しないように、HTTPのような高いセキュリティ機能を有するプロトコルで通信するためのデータ送信およびデータ受信のノードを追加する。HTTPは、例えばHTTPSのような認証や暗号化技術を用いた通信が可能なプロトコルである。 When adding a node for data transmission or data reception, the distribution application generation unit 163 adds a node that communicates using a common communication protocol between the data transmission side and the data reception side. For example, the distribution application generation unit 163 determines the communication protocol to be a protocol having a high security function when high security is required for communication. That is, in the case of communication via a wide area network 20b such as the Internet, there is a risk that data will be leaked to a third party. In such a case, the distribution application generation unit 163 adds a data transmission and data reception node for communicating with a protocol having a high security function such as HTTP so that the transmitted data is not leaked to a third party. To do. HTTP is a protocol capable of communication using authentication or encryption technology such as HTTPS.

また分配アプリ生成部163は、高い処理効率が求められる場合には、通信プロトコルを、効率的な通信が可能なプロトコルに決定する。例えば、企業内のローカルネットワーク20aのようなプライベートのネットワークを経由して、大量の機器からデータを収集する場合、個々のデータ通信のための処理負荷が高いと、収集する機器における負荷、およびネットワーク上の通信負荷が過大となる。このような場合、分配アプリ生成部163は、MQTTのような効率的なデータ通信が可能なプロトコルで通信するためのデータ送信およびデータ受信のノードを追加する。MQTTは、HTTPに比べてヘッダサイズが非常に小さく、通信量や送受信する機器の負荷を低く抑えることができるプロトコルである。 Further, the distribution application generation unit 163 determines the communication protocol to be a protocol capable of efficient communication when high processing efficiency is required. For example, when collecting data from a large number of devices via a private network such as a local network 20a in a company, if the processing load for individual data communication is high, the load on the collecting device and the network The above communication load becomes excessive. In such a case, the distribution application generation unit 163 adds a data transmission and data reception node for communication by a protocol capable of efficient data communication such as MQTT. MQTT is a protocol in which the header size is much smaller than that of HTTP, and the amount of communication and the load on the device for transmitting and receiving can be suppressed to a low level.

次に、分配アプリの生成および配備の手順について詳細に説明する。
図14は、分配アプリの生成および配備手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
Next, the procedure for generating and deploying the distribution application will be described in detail.
FIG. 14 is a flowchart showing a procedure for generating and deploying a distribution application. Hereinafter, the process shown in FIG. 14 will be described along with the step numbers.

[ステップS101]全体アプリフロー編集部162は、アプリ開発者からの入力に基づいて、IoTアプリとして実行するデータ処理を定義する全体アプリフローを作成する。 [Step S101] The overall application flow editorial unit 162 creates an overall application flow that defines the data processing to be executed as an IoT application based on the input from the application developer.

[ステップS102]配備指示部161は、アプリ開発者からの、全体アプリフローで定義したノードに対して、実際のIoTシステム上のどの機器でその処理を行うか(配備先機器)の指定を受け付ける。例えば配備指示部161は、デバイス管理テーブル111に登録されている機器名を、配備先機器の候補としてモニタ21に表示する。アプリ開発者は、ノードごとに、そのノードに対応する機能を実行させる配備先機器を、候補として表示された機器名の中から選択する。配備指示部161は、ノードごとに選択された機器名を、そのノードの配備先機器の機器名としてメモリ102に格納する。 [Step S102] The deployment instruction unit 161 accepts from the application developer the designation of which device on the actual IoT system to perform the processing (deployment destination device) for the node defined in the overall application flow. .. For example, the deployment instruction unit 161 displays the device name registered in the device management table 111 on the monitor 21 as a candidate for the deployment destination device. For each node, the application developer selects the deployment destination device to execute the function corresponding to that node from the device names displayed as candidates. The deployment instruction unit 161 stores the device name selected for each node in the memory 102 as the device name of the device to which the node is deployed.

[ステップS103]配備指示部161は、アプリ開発者からの、分配アプリの配備指示を受け付ける。配備の指示とは、全体アプリを指定した配備先機器ごとに分離し、適切な機能を追加して分配アプリを生成し、分配アプリを対応する配備先機器に転送する処理を指示するものである。配備指示部161は、配備指示が入力されると、全体アプリフローを表す全体アプリフローデータと、全体アプリフローデータ内の各ノードの配備先情報を分配アプリ生成部163に送信する。 [Step S103] The deployment instruction unit 161 receives a deployment instruction of the distribution application from the application developer. The deployment instruction is to instruct the process of separating the entire application for each specified deployment destination device, adding appropriate functions to generate a distribution application, and transferring the distribution application to the corresponding deployment destination device. .. When the deployment instruction is input, the deployment instruction unit 161 transmits the overall application flow data representing the entire application flow and the deployment destination information of each node in the overall application flow data to the distribution application generation unit 163.

[ステップS104]分配アプリ生成部163は、全体アプリフローと配備先情報とに基づいて、分配アプリを生成する。分配アプリ生成部163は、生成した分配アプリを示す分配アプリフローデータを、分配アプリ配備部164に送信する。なお分配アプリ生成処理の詳細は後述する(図15参照)。 [Step S104] The distribution application generation unit 163 generates a distribution application based on the entire application flow and the deployment destination information. The distribution application generation unit 163 transmits the distribution application flow data indicating the generated distribution application to the distribution application deployment unit 164. The details of the distribution application generation process will be described later (see FIG. 15).

[ステップS105]分配アプリ配備部164は、分配アプリを、その分配アプリの配備先機器に配備する。具体的には、分配アプリ配備部164は、配備先機器ごとの分配アプリの分配アプリフローデータを、その分配アプリに対応する配備先機器に対して送信する。さらに分配アプリ配備部164は、送信した分配アプリフローデータによる分配アプリのインストールおよび起動要求を、配備先機器に送信する。これにより、配備先機器は、分配アプリフローデータに定義された処理が実行できるように、インストール作業を行い、分配アプリを起動する。 [Step S105] The distribution application deployment unit 164 deploys the distribution application to the deployment destination device of the distribution application. Specifically, the distribution application deployment unit 164 transmits the distribution application flow data of the distribution application for each deployment destination device to the deployment destination device corresponding to the distribution application. Further, the distribution application deployment unit 164 transmits a distribution application installation and activation request based on the transmitted distribution application flow data to the deployment destination device. As a result, the deployment destination device performs the installation work and starts the distribution application so that the process defined in the distribution application flow data can be executed.

なお配備先機器が、分配アプリフローデータをインポートするAPI(Application Programming Interface)を備えている場合がある。この場合、分配アプリ配備部164は、例えば配備先機器の分配アプリフロー登録用のAPIに対してデータを送付する。これにより、配備先機器内の分配アプリフローデータの実行ソフトウェアに分配アプリフローデータが実行対象として設定される。このように、分配アプリフロー登録用のAPIを用いて分配アプリを配備することも可能である。 The deployment destination device may be equipped with an API (Application Programming Interface) for importing distributed application flow data. In this case, the distribution application deployment unit 164 sends data to, for example, the API for registering the distribution application flow of the deployment destination device. As a result, the distributed application flow data is set as the execution target in the distribution application flow data execution software in the deployment destination device. In this way, it is also possible to deploy the distribution application using the API for distribution application flow registration.

分配アプリ配備部164による分配アプリの配備は、分配アプリ生成処理での分配アプリ生成から連続して行ってもよいし、あるいは分配アプリ生成後にさらにアプリ開発者からの任意のタイミングの指示に応じて行ってもよい。 The distribution application deployment unit 164 may deploy the distribution application continuously from the distribution application generation in the distribution application generation process, or after the distribution application is generated, further in response to an instruction from the application developer at an arbitrary timing. You may go.

次に、分配アプリ生成処理について詳細に説明する。
図15は、分配アプリ生成処理の手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
Next, the distribution application generation process will be described in detail.
FIG. 15 is a flowchart showing an example of the procedure of the distribution application generation process. Hereinafter, the process shown in FIG. 15 will be described along with the step numbers.

[ステップS111]分配アプリ生成部163は、全体アプリフローからノードを1つ選択する。
[ステップS112]分配アプリ生成部163は、ステップS102において受け付けた配備先機器の指定に基づいて、選択したノード(選択ノード)の出力データの転送先となるノード(転送先ノード)の配備先機器が、選択ノードの配備先機器と同じか否かを判断する。配備先機器が同じであれば、処理をステップS125に進める。配備先機器が異なれば、処理をステップS113に進める。
[Step S111] The distribution application generation unit 163 selects one node from the entire application flow.
[Step S112] The distribution application generation unit 163 deploys the deployment destination device of the node (transfer destination node) to which the output data of the selected node (selected node) is transferred based on the designation of the deployment destination device received in step S102. Is the same as the device to which the selected node is deployed. If the deployment destination devices are the same, the process proceeds to step S125. If the deployment destination device is different, the process proceeds to step S113.

[ステップS113]分配アプリ生成部163は、選択ノードと転送先ノードとの間で、選択ノードを含むアプリフローを分離する。例えば分配アプリ生成部163は、選択ノードを含むアプリフローを、選択ノードを最後尾とするアプリフローと、転送先ノードを先頭とするアプリフローとに分離する。分離により生成されたアプリフローが、分配アプリフローとなる。なお、分配アプリフローがさらに分離される場合もある。アプリフローが分離されることで、分離後の分配アプリフローを示すアプリフローデータ(分配アプリフローデータ)が生成される。 [Step S113] The distribution application generation unit 163 separates the application flow including the selection node between the selection node and the transfer destination node. For example, the distribution application generation unit 163 separates the application flow including the selected node into an application flow having the selected node at the end and an application flow having the transfer destination node at the beginning. The app flow generated by the separation becomes the distributed app flow. The distribution application flow may be further separated. By separating the app flow, app flow data (distributed app flow data) indicating the distributed app flow after separation is generated.

分配アプリ生成部163は、以下のステップS114〜ステップS124の処理により、分配アプリフローを自動編集する。分配アプリ生成部163の編集処理は、具体的には、メモリ102内で分配アプリフローデータを編集する処理である。 The distribution application generation unit 163 automatically edits the distribution application flow by the following processes of steps S114 to S124. The editing process of the distribution application generation unit 163 is specifically a process of editing the distribution application flow data in the memory 102.

[ステップS114]分配アプリ生成部163は、転送先ノードが、外部のネットワークを介して接続されているか否かを判断する。例えば分配アプリ生成部163は、選択したノードと転送先ノードとのIPアドレス内のネットワーク部のアドレスが異なる場合、外部のネットワークを介して接続されていると判断する。分配アプリ生成部163は、外部のネットワークを介して接続されている場合、処理をステップS115に進める。また分配アプリ生成部163は、内部のネットワークを介して接続されている場合、処理をステップS120に進める。 [Step S114] The distribution application generation unit 163 determines whether or not the transfer destination node is connected via an external network. For example, the distribution application generation unit 163 determines that the selected node and the transfer destination node are connected via an external network when the address of the network unit in the IP address is different. When the distribution application generation unit 163 is connected via an external network, the process proceeds to step S115. If the distribution application generation unit 163 is connected via the internal network, the process proceeds to step S120.

[ステップS115]分配アプリ生成部163は、選択ノードの出力側にHTTP送信処理ノードを追加する。追加されるHTTP送信処理ノードは、例えば外部ネットワークへの接続のために設置されたHTTPプロキシサーバを通過するための処理が記述された機能ブロックに対応するノードである。さらに、分配アプリ生成部163は、HTTP送信処理ノードの出力側に、転送先ノードからの応答を処理するための応答ノードを追加する。 [Step S115] The distribution application generation unit 163 adds an HTTP transmission processing node to the output side of the selection node. The HTTP transmission processing node to be added is a node corresponding to a functional block in which processing for passing through an HTTP proxy server installed for connecting to an external network is described, for example. Further, the distribution application generation unit 163 adds a response node for processing the response from the transfer destination node to the output side of the HTTP transmission processing node.

[ステップS116]分配アプリ生成部163は、転送先ノードの入力側にHTTP受信処理ノードを追加する。さらに、分配アプリ生成部163は、HTTP受信処理ノードの出力側に、選択ノードへのHTTP受信応答を行うための応答ノードを追加する。 [Step S116] The distribution application generation unit 163 adds an HTTP reception processing node to the input side of the transfer destination node. Further, the distribution application generation unit 163 adds a response node for performing an HTTP reception response to the selected node on the output side of the HTTP reception processing node.

[ステップS117]分配アプリ生成部163は、選択ノードの転送先を、追加したHTTP送信処理ノードに変更する。例えば分配アプリ生成部163は、選択ノードの転送先を示す情報を、HTTP送信処理ノードのノードIDに変更する。 [Step S117] The distribution application generation unit 163 changes the transfer destination of the selected node to the added HTTP transmission processing node. For example, the distribution application generation unit 163 changes the information indicating the transfer destination of the selected node to the node ID of the HTTP transmission processing node.

[ステップS118]分配アプリ生成部163は、追加したHTTP受信処理ノードの転送先情報に、転送先ノードのノードIDを付与する。
[ステップS119]分配アプリ生成部163は、追加したHTTP送信処理ノードに、転送先ノードの配備先機器のIPアドレスを設定する。その後、分配アプリ生成部163は、処理をステップS125に進める。
[Step S118] The distribution application generation unit 163 assigns the node ID of the transfer destination node to the transfer destination information of the added HTTP reception processing node.
[Step S119] The distribution application generation unit 163 sets the IP address of the deployment destination device of the transfer destination node in the added HTTP transmission processing node. After that, the distribution application generation unit 163 advances the process to step S125.

[ステップS120]分配アプリ生成部163は、選択ノードの出力側に、MQTT送信処理ノードを追加する。
[ステップS121]分配アプリ生成部163は、転送先ノードの入力側に、MQTT受信処理ノードを追加する。
[Step S120] The distribution application generation unit 163 adds an MQTT transmission processing node to the output side of the selection node.
[Step S121] The distribution application generation unit 163 adds an MQTT reception processing node to the input side of the transfer destination node.

[ステップS122]分配アプリ生成部163は、選択ノードの転送先を、追加したMQTT送信処理ノードに変更する。例えば分配アプリ生成部163は、選択ノードの転送先を示す情報を、MQTT送信処理ノードのノードIDに変更する。 [Step S122] The distribution application generation unit 163 changes the transfer destination of the selected node to the added MQTT transmission processing node. For example, the distribution application generation unit 163 changes the information indicating the transfer destination of the selected node to the node ID of the MQTT transmission processing node.

[ステップS123]分配アプリ生成部163は、追加したMQTT受信処理ノードの転送先情報に、転送先ノードのノードIDを付与する。
[ステップS124]分配アプリ生成部163は、追加したMQTT送信処理ノードと追加したMQTT受信処理ノードとのそれぞれに、MQTT送信処理ノードとMQTT受信処理ノードとの組を一意に示す通信識別子(トピック)を設定する。
[Step S123] The distribution application generation unit 163 assigns the node ID of the transfer destination node to the transfer destination information of the added MQTT reception processing node.
[Step S124] The distribution application generation unit 163 uniquely indicates a pair of the MQTT transmission processing node and the MQTT reception processing node to each of the added MQTT transmission processing node and the added MQTT reception processing node (topic). To set.

[ステップS125]分配アプリ生成部163は、全体アプリフロー内のすべてのノードを選択したか否かを判断する。分配アプリ生成部163は、すべてのノードが選択済みであれば、分配アプリ生成処理を終了する。分配アプリ生成部163は、未選択のノードが存在すれば、処理をステップS111に進める。 [Step S125] The distribution application generation unit 163 determines whether or not all the nodes in the entire application flow have been selected. If all the nodes have been selected, the distribution application generation unit 163 ends the distribution application generation process. If there is an unselected node, the distribution application generation unit 163 advances the process to step S111.

このようにして、全体アプリを、指定された配備先機器が共通のノードごとに分割し、分散環境上での分配アプリの連携のための配備先機器間の通信処理機能を、分配アプリフロー上の適切な位置に自動的に付加することができる。しかも、配備先機器間の通信が、外部ネットワークを経由するのか否かにより、適切な通信プロトコルを適用することができる。 In this way, the entire application is divided for each node in which the specified deployment destination device is common, and the communication processing function between the deployment destination devices for cooperation of the distribution application in the distributed environment is performed on the distribution application flow. Can be automatically added to the appropriate position of. Moreover, an appropriate communication protocol can be applied depending on whether or not the communication between the deployment destination devices goes through the external network.

アプリ開発サーバ100は、生成した分配アプリを、複数の配備先機器に配備する。その後、配備先機器の一部で障害が発生すると、その配備先機器に配備した分配アプリが正常に機能しなくなる。その場合、システムの管理者によって、障害が発生した配備先機器の代替となる配備先機器が、ネットワークに接続される。すると、配備先機器とアプリ開発サーバ100との連係によるシステム構築フェーズが実施される。 The application development server 100 deploys the generated distribution application to a plurality of deployment destination devices. After that, if a failure occurs in a part of the deployment destination device, the distribution application deployed in the deployment destination device will not function normally. In that case, the system administrator connects the deployment destination device, which is a substitute for the deployment destination device in which the failure has occurred, to the network. Then, the system construction phase is carried out by linking the deployment destination device and the application development server 100.

<システム構築フェーズ>
次に、システム構築フェーズについて説明する。システム構築フェーズは、システム内に新たな配備先機器が接続されるごとに、アプリ開発サーバ100が有する機器接続情報を更新する処理である。
<System construction phase>
Next, the system construction phase will be described. The system construction phase is a process of updating the device connection information of the application development server 100 every time a new deployment destination device is connected in the system.

図16は、システム構築フェーズにおける機器接続情報の更新例を示す図である。例えば配備先機器75の下流側に配備先機器78が新たに接続された場合を想定する。配備先機器78には、例えば予め上位機器となる配備先機器75のIPアドレスが設定されている。配備先機器78は、ネットワーク20に接続されると、接続要求メッセージ91を上位機器に送信する。接続要求メッセージ91には、要求元として、配備先機器78の装置名「G」が設定されている。 FIG. 16 is a diagram showing an example of updating device connection information in the system construction phase. For example, assume that the deployment destination device 78 is newly connected to the downstream side of the deployment destination device 75. For example, the IP address of the deployment destination device 75, which is a higher-level device, is set in the deployment destination device 78 in advance. When the deployment destination device 78 is connected to the network 20, it transmits a connection request message 91 to the host device. In the connection request message 91, the device name “G” of the deployment destination device 78 is set as the request source.

接続要求メッセージ91を受信した配備先機器75は、接続要求メッセージ91に示される要求元の機器名「G」と要求元のIPアドレスとを、下流機器情報として格納する。さらに配備先機器75は、配備先機器75の上位機器である配備先機器72に接続要求メッセージ92を転送する。その際、配備先機器75は、転送する接続要求メッセージ92の経路の情報に、自身の装置名「D」を追加する。 The deployment destination device 75 that has received the connection request message 91 stores the request source device name "G" and the request source IP address shown in the connection request message 91 as downstream device information. Further, the deployment destination device 75 transfers the connection request message 92 to the deployment destination device 72, which is a higher-level device of the deployment destination device 75. At that time, the deployment destination device 75 adds its own device name “D” to the route information of the connection request message 92 to be transferred.

接続要求メッセージ92を受信した配備先機器72は、配備先機器72の上位機器であるマスタ71に接続要求メッセージ93を転送する。その際、配備先機器72は、転送する接続要求メッセージ93の経路の情報に、自身の装置名「A」を、すでに設定されている機器名「D」の後に追加する。 Upon receiving the connection request message 92, the deployment destination device 72 transfers the connection request message 93 to the master 71, which is a higher-level device of the deployment destination device 72. At that time, the deployment destination device 72 adds its own device name “A” to the route information of the connection request message 93 to be transferred after the device name “D” that has already been set.

接続要求メッセージ93を受信したマスタ71は、接続要求メッセージ93の要求元の機器名「G」に基づいて、機器名「G」の配備先機器78が接続されたことを認識する。またマスタ71は、接続要求メッセージ93の経路の情報に示される機器名の並びに基づいて、接続要求メッセージ93が機器名「G」の配備先機器75、機器名「A」の配備先機器72を介して転送されたことを認識する。そしてマスタ71は、新たに接続された配備先機器78のネットワークトポロジ70上の接続先機器が、配備先機器75であると判断する。マスタ71は、機器接続情報記憶部140内の機器接続関係テーブル141の上流機器として、接続先機器の機器名「D」が未登録の場合、上流機器「D」のレコードを、機器接続関係テーブル141に追加する。そしてマスタ71は、上流機器「D」のレコードの下位機器に、新たに接続された配備先機器78の機器名「G」を登録する。 Upon receiving the connection request message 93, the master 71 recognizes that the deployment destination device 78 of the device name "G" is connected based on the device name "G" of the request source of the connection request message 93. Further, the master 71 sets the deployment destination device 75 whose connection request message 93 is the device name "G" and the deployment destination device 72 whose device name "A" is based on the sequence of the device names shown in the route information of the connection request message 93. Recognize that it was transferred via. Then, the master 71 determines that the connection destination device on the network topology 70 of the newly connected deployment destination device 78 is the deployment destination device 75. When the device name "D" of the connection destination device is not registered as the upstream device of the device connection relationship table 141 in the device connection information storage unit 140, the master 71 records the upstream device "D" in the device connection relationship table. Add to 141. Then, the master 71 registers the device name "G" of the newly connected deployment destination device 78 in the lower device of the record of the upstream device "D".

このようにして、機器接続関係テーブル141を常に最新の状態に保つことができる。すなわちマスタ71であるアプリ開発サーバ100では、システム内に新たな配備先機器が追加されると、その機器の機器名と、その機器の上流機器とをすぐに認識できる。 In this way, the device connection-related table 141 can always be kept up to date. That is, when a new deployment destination device is added to the system, the application development server 100, which is the master 71, can immediately recognize the device name of the device and the upstream device of the device.

次に、システム構築フェーズの処理を実現するために配備先機器200と、マスタ71であるアプリ開発サーバ100とが実行する処理について詳細に説明する。配備先機器200が実行する処理には、配備先機器200がネットワーク20に新たに接続されたときの接続要求メッセージ送信処理と、下流機器から接続要求メッセージを受信したときの接続要求メッセージ転送処理とがある。 Next, the processing executed by the deployment destination device 200 and the application development server 100, which is the master 71, in order to realize the processing in the system construction phase will be described in detail. The processes executed by the deployment destination device 200 include a connection request message transmission process when the deployment destination device 200 is newly connected to the network 20, and a connection request message forwarding process when a connection request message is received from the downstream device. There is.

図17は、新規に接続された配備先機器による接続要求メッセージ送信処理の手順の一例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。 FIG. 17 is a flowchart showing an example of a procedure for transmitting a connection request message by a newly connected deployment destination device. Hereinafter, the process shown in FIG. 17 will be described along with the step numbers.

[ステップS201]接続要求メッセージ送受信部210は、配備先機器200がネットワーク20に接続されたか否かを判断する。例えば接続要求メッセージ送受信部210は、配備先機器200のOSが起動され、TCP(Transmission Control Protocol)/IPによる他の機器との通信が可能な状態になったとき、ネットワーク20に接続されたと判断する。接続要求メッセージ送受信部210は、ネットワーク20に接続された場合、処理をステップS202に進める。また接続要求メッセージ送受信部210は、ネットワーク20に接続されていなければ、ステップS201の処理を繰り返す。 [Step S201] The connection request message transmission / reception unit 210 determines whether or not the deployment destination device 200 is connected to the network 20. For example, the connection request message transmission / reception unit 210 determines that the device is connected to the network 20 when the OS of the deployment destination device 200 is started and communication with other devices by TCP (Transmission Control Protocol) / IP becomes possible. To do. When the connection request message transmission / reception unit 210 is connected to the network 20, the process proceeds to step S202. If the connection request message transmission / reception unit 210 is not connected to the network 20, the process of step S201 is repeated.

[ステップS202]接続要求メッセージ送受信部210は、自身の機器名を含む接続要求メッセージを生成し、予め指定されたIPアドレスの上位機器に、生成した接続要求メッセージを送信する。 [Step S202] The connection request message transmission / reception unit 210 generates a connection request message including its own device name, and transmits the generated connection request message to a higher-level device having an IP address specified in advance.

次に配備先機器200が、下位機器から接続要求メッセージを受信した場合の接続要求メッセージの転送処理について説明する。
図18は、配備先機器による接続要求メッセージ転送処理の手順の一例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
Next, the transfer process of the connection request message when the deployment destination device 200 receives the connection request message from the lower device will be described.
FIG. 18 is a flowchart showing an example of the procedure of the connection request message forwarding process by the deployment destination device. Hereinafter, the process shown in FIG. 18 will be described along with the step numbers.

[ステップS211]接続要求メッセージ送受信部210は、下位機器から送信された接続要求メッセージを受信する。
[ステップS212]接続要求メッセージ送受信部210は、接続要求メッセージの送信元が自身の下流側に隣接する下流機器の場合、接続要求メッセージに示される要求元機器情報を、下流機器情報テーブル221に設定する。要求元機器情報は、例えば要求元の機器名と送信元のIPアドレスである。なお接続要求メッセージ送受信部210は、接続要求メッセージの送信元が自身の下流側に隣接する下流機器かどうかは、接続要求メッセージの経路の情報に基づいて判断することができる。例えば接続要求メッセージ送受信部210は、接続要求メッセージの経路の情報に他の配備先機器の機器名が登録されていなければ、接続要求メッセージの送信元が自身の下流側に隣接する下流機器であると判断する。
[Step S211] The connection request message transmission / reception unit 210 receives the connection request message transmitted from the lower device.
[Step S212] When the source of the connection request message is a downstream device adjacent to its own downstream side, the connection request message transmission / reception unit 210 sets the request source device information shown in the connection request message in the downstream device information table 221. To do. The request source device information is, for example, the request source device name and the source IP address. The connection request message transmission / reception unit 210 can determine whether or not the source of the connection request message is a downstream device adjacent to the downstream side of the connection request message based on the route information of the connection request message. For example, the connection request message transmission / reception unit 210 is a downstream device whose source of the connection request message is adjacent to its own downstream side unless the device name of another deployment destination device is registered in the route information of the connection request message. Judge.

[ステップS213]接続要求メッセージ送受信部210は、接続要求メッセージの経路の情報に、自機器情報を付与する。例えば接続要求メッセージ送受信部210は、経路の情報の最後尾に、自身の機器名を追加する。 [Step S213] The connection request message transmission / reception unit 210 adds own device information to the route information of the connection request message. For example, the connection request message transmission / reception unit 210 adds its own device name to the end of the route information.

[ステップS214]接続要求メッセージ送受信部210は、自機器の接続先機器に接続要求メッセージを転送する。
このような接続要求メッセージの転送を各配備先機器が実施することで、最終的にマスタ71であるアプリ開発サーバ100に接続要求メッセージが転送される。そしてアプリ開発サーバ100が、接続機器登録を行う。
[Step S214] The connection request message transmission / reception unit 210 transfers the connection request message to the connection destination device of the own device.
When each deployment destination device transfers such a connection request message, the connection request message is finally transferred to the application development server 100 which is the master 71. Then, the application development server 100 registers the connected device.

図19は、マスタによる接続機器登録処理の手順の一例を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS221]機器経路情報登録部171は、いずれかの配備先機器から接続要求メッセージを受信する。
FIG. 19 is a flowchart showing an example of a procedure for registering connected devices by the master. Hereinafter, the process shown in FIG. 19 will be described along with the step numbers.
[Step S221] The device route information registration unit 171 receives a connection request message from any of the deployment destination devices.

[ステップS222]機器経路情報登録部171は、機器接続関係テーブル141を参照し、接続要求メッセージの送信元の接続先である配備先機器の機器名が、上流機器として設定されたレコードがあるか否かを判断する。機器経路情報登録部171は、該当レコードがある場合、処理をステップS223に進める。また機器経路情報登録部171は、該当レコードがない場合、処理をステップS224に進める。 [Step S222] The device route information registration unit 171 refers to the device connection relationship table 141, and is there a record in which the device name of the deployment destination device to which the connection request message is sent is set as the upstream device? Judge whether or not. If there is a corresponding record, the device route information registration unit 171 proceeds to step S223. If there is no corresponding record, the device route information registration unit 171 proceeds to step S224.

[ステップS223]機器経路情報登録部171は、接続要求メッセージの経路の情報に示される接続先機器の機器名を上流機器とし、接続要求メッセージの要求元機器の機器名を下流機器とする新たなレコードを、機器接続関係テーブル141に登録する。機器経路情報登録部171は、その後、処理をステップS225に進める。 [Step S223] The device route information registration unit 171 sets the device name of the connection destination device shown in the route information of the connection request message as the upstream device, and sets the device name of the request source device of the connection request message as the downstream device. The record is registered in the device connection related table 141. The device route information registration unit 171 then proceeds to step S225.

[ステップS224]機器経路情報登録部171は、機器接続関係テーブル141内の、配備先機器の機器名が上流機器に設定されている登録済みのレコードの下流機器として、要求元機器の機器名を登録する。 [Step S224] The device route information registration unit 171 sets the device name of the requesting device as the downstream device of the registered record in which the device name of the deployment destination device is set as the upstream device in the device connection relationship table 141. sign up.

[ステップS225]機器接続検知部172は、新たな配備先機器の接続を検知し、要求元機器の機器名を含む機器接続検知情報を配備アプリ判定部174に通知する。
このようにして、ネットワーク20に新たな配備先機器が接続されたことが検知され、機器接続検知情報が配備アプリ判定部174に通知される。このようなシステム構築フェーズと並行して、配備先機器とアプリ開発サーバ100とにより運用フェーズが実行される。
[Step S225] The device connection detection unit 172 detects the connection of the new deployment destination device, and notifies the deployment application determination unit 174 of the device connection detection information including the device name of the requesting device.
In this way, it is detected that a new deployment destination device is connected to the network 20, and the device connection detection information is notified to the deployment application determination unit 174. In parallel with such a system construction phase, the operation phase is executed by the deployment destination device and the application development server 100.

<運用フェーズ>
次に運用フェーズについて説明する。運用フェーズでは、障害が発生した配備先機器の検知と、その配備先機器に配備済みの分配アプリの再配備とが行われる。
<Operation phase>
Next, the operation phase will be described. In the operation phase, the failed deployment destination device is detected and the distribution application already deployed in the deployment destination device is redeployed.

図20は、配備先機器の障害検知例を示す図である。図20の例では、配備先機器76に障害が発生したものとする。配備先機器76の状態は、配備先機器76の上流機器である配備先機器73が監視する。例えば配備先機器73は、定期的にキープアライブメッセージ94を配備先機器76に送信する。配備先機器76が正常に動作している場合、配備先機器76は、キープアライブメッセージ94に対して応答メッセージを返信する。他方、配備先機器76に障害が発生した場合、配備先機器76は、キープアライブメッセージ94に対する応答メッセージを送信することができない。上流機器である配備先機器73は、キープアライブメッセージ94に対して応答メッセージが返されないことを検知すると、配備先機器76に障害が発生したと判断する。 FIG. 20 is a diagram showing a failure detection example of the deployment destination device. In the example of FIG. 20, it is assumed that the deployment destination device 76 has a failure. The state of the deployment destination device 76 is monitored by the deployment destination device 73, which is an upstream device of the deployment destination device 76. For example, the deployment destination device 73 periodically transmits a keepalive message 94 to the deployment destination device 76. When the deployment destination device 76 is operating normally, the deployment destination device 76 returns a response message to the keepalive message 94. On the other hand, if a failure occurs in the deployment destination device 76, the deployment destination device 76 cannot send a response message to the keepalive message 94. When the deployment destination device 73, which is an upstream device, detects that no response message is returned to the keepalive message 94, it determines that the deployment destination device 76 has failed.

配備先機器73は、配備先機器76に障害が発生したことを検知した場合、配備先機器76の機器名を含む障害発生通知メッセージ95をマスタ71宛てに送信する。マスタ71であるアプリ開発サーバ100は、障害発生通知メッセージ95に基づいて、配備先機器76で障害が発生したことを認識する。 When the deployment destination device 73 detects that a failure has occurred in the deployment destination device 76, the deployment destination device 73 transmits a failure occurrence notification message 95 including the device name of the deployment destination device 76 to the master 71. The application development server 100, which is the master 71, recognizes that a failure has occurred in the deployment destination device 76 based on the failure occurrence notification message 95.

図21は、上流機器による下流機器状態確認処理の手順の一例を示すフローチャートである。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS301]キープアライブメッセージ送受信部230は、下流機器に対してキープアライブメッセージを送信する。例えばキープアライブメッセージ送受信部230は、下流機器情報記憶部220を参照し、自身の下流機器のIPアドレスを取得する。そしてキープアライブメッセージ送受信部230は、取得したIPアドレス宛てのキープアライブメッセージを生成し、下流機器に対して生成したキープアライブメッセージを送信する。キープアライブメッセージ送受信部230は、キープアライブメッセージを送信したことを示す情報を、故障判定処理部250に通知する。
FIG. 21 is a flowchart showing an example of a procedure for checking the state of the downstream device by the upstream device. Hereinafter, the process shown in FIG. 21 will be described along with the step numbers.
[Step S301] The keep-alive message transmission / reception unit 230 transmits a keep-alive message to the downstream device. For example, the keep-alive message transmission / reception unit 230 refers to the downstream device information storage unit 220 and acquires the IP address of its own downstream device. Then, the keep-alive message transmission / reception unit 230 generates a keep-alive message addressed to the acquired IP address, and transmits the generated keep-alive message to the downstream device. The keep-alive message transmission / reception unit 230 notifies the failure determination processing unit 250 of information indicating that the keep-alive message has been transmitted.

[ステップS302]故障判定処理部250は、キープアライブメッセージが送信されると、キープアライブメッセージの応答メッセージ待ち時間計測用のタイマをスタートさせる。 [Step S302] When the keep-alive message is transmitted, the failure determination processing unit 250 starts a timer for measuring the response message waiting time of the keep-alive message.

[ステップS303]故障判定処理部250は、タイマをスタートしてからの経過時間が、応答メッセージ待ち時間の上限である受信上限時間を超過したか否かを判断する。故障判定処理部250は、タイマの時間が受信上限時間を超過した場合、処理をステップS304に進める。また故障判定処理部250は、タイマの時間が受信上限時間を超過していなければ、処理をステップS306に進める。 [Step S303] The failure determination processing unit 250 determines whether or not the elapsed time from the start of the timer exceeds the reception upper limit time, which is the upper limit of the response message waiting time. When the timer time exceeds the reception upper limit time, the failure determination processing unit 250 advances the processing to step S304. If the timer time does not exceed the reception upper limit time, the failure determination processing unit 250 advances the processing to step S306.

[ステップS304]故障判定処理部250は、キープアライブメッセージの送信先の下流機器が障害発生状態であると判断する。
[ステップS305]故障判定処理部250は、上流機器に対して、障害発生通知メッセージを送信する。その後、故障判定処理部250は、下流機器状態確認処理を終了する。
[Step S304] The failure determination processing unit 250 determines that the downstream device to which the keepalive message is transmitted is in a failure state.
[Step S305] The failure determination processing unit 250 transmits a failure occurrence notification message to the upstream device. After that, the failure determination processing unit 250 ends the downstream equipment state confirmation process.

[ステップS306]故障判定処理部250は、応答メッセージを受信したか否かを判断する。例えば下流機器から応答メッセージが送信されると、その応答メッセージを応答メッセージ送受信部240が受信する。応答メッセージ送受信部240は、応答メッセージを受信すると、応答メッセージを受信したことを示す情報を、故障判定処理部250に通知する。故障判定処理部250は、応答メッセージ送受信部240からの通知により、応答メッセージの受信を認識する。故障判定処理部250は、応答メッセージを受信したと判断した場合、処理をステップS307に進める。また故障判定処理部250は、応答メッセージを受信していなければ、処理をステップS303に進める。 [Step S306] The failure determination processing unit 250 determines whether or not a response message has been received. For example, when a response message is transmitted from a downstream device, the response message transmission / reception unit 240 receives the response message. When the response message transmission / reception unit 240 receives the response message, the response message transmission / reception unit 240 notifies the failure determination processing unit 250 of information indicating that the response message has been received. The failure determination processing unit 250 recognizes the reception of the response message by the notification from the response message transmission / reception unit 240. When the failure determination processing unit 250 determines that the response message has been received, the failure determination processing unit 250 proceeds to the process in step S307. If the failure determination processing unit 250 has not received the response message, the failure determination processing unit 250 proceeds to step S303.

[ステップS307]故障判定処理部250は、タイマを停止する。
[ステップS308]故障判定処理部250は、上流機器に対して、障害非発生通知メッセージを送信する。
[Step S307] The failure determination processing unit 250 stops the timer.
[Step S308] The failure determination processing unit 250 transmits a failure non-occurrence notification message to the upstream device.

配備先機器200の下流機器が複数ある場合、図21に示した処理が下流機器ごとに実行される。配備先機器200から送信された障害発生通知メッセージまたは障害非発生通知メッセージは、上流側の配備先機器により、上流側に向かって転送され、最終的にマスタ71であるアプリ開発サーバ100に送られる。 When there are a plurality of downstream devices of the deployment destination device 200, the process shown in FIG. 21 is executed for each downstream device. The failure occurrence notification message or failure non-occurrence notification message transmitted from the deployment destination device 200 is transferred toward the upstream side by the deployment destination device on the upstream side, and finally sent to the application development server 100 which is the master 71. ..

下流側の配備先機器では、キープアライブメッセージに応じた状態通知処理が行われる。
図22は、下流機器における状態通知処理の手順の一例を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。
At the deployment destination device on the downstream side, status notification processing is performed according to the keepalive message.
FIG. 22 is a flowchart showing an example of a procedure for status notification processing in a downstream device. Hereinafter, the process shown in FIG. 22 will be described along with the step numbers.

[ステップS311]キープアライブメッセージ送受信部230は、上流機器からのキープアライブメッセージを受信したか否かを判断する。キープアライブメッセージ送受信部230は、キープアライブメッセージを受信していれば、処理をステップS312に進める。またキープアライブメッセージ送受信部230は、キープアライブメッセージを受信していなければ、ステップS311の処理を繰り返す。 [Step S311] The keep-alive message transmission / reception unit 230 determines whether or not a keep-alive message from the upstream device has been received. If the keep-alive message transmission / reception unit 230 has received the keep-alive message, the process proceeds to step S312. If the keep-alive message transmission / reception unit 230 has not received the keep-alive message, the process of step S311 is repeated.

[ステップS312]キープアライブメッセージ送受信部230は、キープアライブメッセージを受信したことを示す情報を、応答メッセージ送受信部240に通知する。すると、応答メッセージ送受信部240は、上流機器に対して応答メッセージを送信する。 [Step S312] The keep-alive message transmission / reception unit 230 notifies the response message transmission / reception unit 240 of information indicating that the keep-alive message has been received. Then, the response message transmission / reception unit 240 transmits a response message to the upstream device.

図21、図22に示した処理を各配備先機器が行うことにより、アプリ開発サーバ100には、各配備先機器についての障害発生通知メッセージまたは障害非発生通知メッセージを定期的に受信する。アプリ開発サーバ100は、障害発生通知メッセージまたは障害非発生通知メッセージに基づいて、障害が発生した配備先機器の存在を認識する。 When each deployment destination device performs the processing shown in FIGS. 21 and 22, the application development server 100 periodically receives a failure occurrence notification message or a failure non-occurrence notification message for each deployment destination device. The application development server 100 recognizes the existence of the deployment destination device in which the failure has occurred, based on the failure occurrence notification message or the failure non-occurrence notification message.

図23は、マスタにおける障害状態判定処理の手順の一例を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
[ステップS321]障害状態判定部173は、下流機器から障害発生状態の通知メッセージ(障害発生通知メッセージまたは障害非発生通知メッセージ)を受信したか否かを判断する。障害状態判定部173は、障害発生状態の通知メッセージを受信した場合、処理をステップS322に進める。また障害状態判定部173は、障害発生状態の通知メッセージを受信していなければ、ステップS321の処理を繰り返す。
FIG. 23 is a flowchart showing an example of the procedure of the failure state determination process in the master. Hereinafter, the process shown in FIG. 23 will be described along with the step numbers.
[Step S321] The failure state determination unit 173 determines whether or not a failure occurrence status notification message (failure occurrence notification message or failure non-occurrence notification message) has been received from the downstream device. When the failure state determination unit 173 receives the notification message of the failure occurrence state, the process proceeds to step S322. Further, if the failure state determination unit 173 has not received the notification message of the failure occurrence state, the process of step S321 is repeated.

[ステップS322]障害状態判定部173は、受信したメッセージに基づいて、障害が発生したか否かを判断する。例えば障害状態判定部173は、障害発生通知メッセージを受信した場合、障害が発生したと判断する。また障害状態判定部173は、障害非発生通知メッセージを受信した場合、障害が発生していないと判断する。障害状態判定部173は、障害が発生した場合、処理をステップS323に進める。また障害状態判定部173は、障害が発生していなければ、処理をステップS324に進める。 [Step S322] The failure state determination unit 173 determines whether or not a failure has occurred based on the received message. For example, when the failure state determination unit 173 receives the failure occurrence notification message, it determines that a failure has occurred. Further, when the failure state determination unit 173 receives the failure non-occurrence notification message, it determines that no failure has occurred. When a failure occurs, the failure state determination unit 173 proceeds to step S323. If no failure has occurred, the failure state determination unit 173 proceeds to step S324.

[ステップS323]障害状態判定部173は、配備先機器状態テーブル151に対して、障害非発生通知メッセージに示される配備先機器の障害発生フラグに「1」を設定する。その後、障害状態判定部173は障害状態判定処理を終了する。 [Step S323] The failure state determination unit 173 sets "1" in the failure occurrence flag of the deployment destination device indicated in the failure non-occurrence notification message with respect to the deployment destination device status table 151. After that, the failure state determination unit 173 ends the failure state determination process.

[ステップS324]障害状態判定部173は、配備先機器状態テーブル151に対して、障害非発生通知メッセージに示される配備先機器の障害発生フラグに「0」を設定する。 [Step S324] The failure status determination unit 173 sets "0" to the failure occurrence flag of the deployment destination device indicated in the failure non-occurrence notification message in the deployment destination device status table 151.

このようにして、各配備先機器の障害の有無が配備先機器状態テーブル151に反映される。障害が発生した配備先機器の代替の配備先機器が新たに接続された際には、配備先機器状態テーブル151に基づいて、配備アプリ判定部174により、代替の配備先機器に配備する分配アプリが判断される。そして配備済みアプリ再配備部175により、代替の配備先機器への分配アプリの配備が行われる。 In this way, the presence or absence of failure of each deployment destination device is reflected in the deployment destination device status table 151. When an alternative deployment destination device of the failed deployment destination device is newly connected, the distribution application to be deployed to the alternative deployment destination device by the deployment application determination unit 174 based on the deployment destination device status table 151. Is judged. Then, the deployed application redeployment unit 175 deploys the distribution application to the alternative deployment destination device.

図24は、アプリ再配備例を示す図である。図24では、配備先機器76に障害が発生し、配備先機器76の代替として配備先機器79が接続された場合を想定している。マスタ71であるアプリ開発サーバ100は、配備先機器79が接続されたことを検知すると、配備先機器79と同じ上流機器に接続されている他の配備先機器を検索する。図24の例では、配備先機器79の上流機器は、配備先機器73である。この配備先機器73の下流機器としては、配備先機器79以外に、配備先機器76と配備先機器77とが存在する。アプリ開発サーバ100は、配備先機器76と配備先機器77との状態を確認し、配備先機器76に障害が発生していることを認識する。そしてアプリ開発サーバ100は、新たに接続された配備先機器79は、配備先機器76の代替機器であると判断する。 FIG. 24 is a diagram showing an example of app redeployment. In FIG. 24, it is assumed that a failure occurs in the deployment destination device 76 and the deployment destination device 79 is connected as a substitute for the deployment destination device 76. When the application development server 100, which is the master 71, detects that the deployment destination device 79 is connected, it searches for another deployment destination device connected to the same upstream device as the deployment destination device 79. In the example of FIG. 24, the upstream device of the deployment destination device 79 is the deployment destination device 73. As the downstream equipment of the deployment destination device 73, in addition to the deployment destination device 79, there are a deployment destination device 76 and a deployment destination device 77. The application development server 100 confirms the status of the deployment destination device 76 and the deployment destination device 77, and recognizes that the deployment destination device 76 has a failure. Then, the application development server 100 determines that the newly connected deployment destination device 79 is a substitute device for the deployment destination device 76.

配備先機器76には、アプリ名「app002」の分配アプリが配備済みである。そこでアプリ開発サーバ100は、新たに接続された配備先機器79に、アプリ名「app002」の分配アプリを配備する。 A distribution application with the application name "appp002" has already been deployed in the deployment destination device 76. Therefore, the application development server 100 deploys the distribution application having the application name "appp002" to the newly connected deployment destination device 79.

図25は、アプリ再配備処理の手順の一例を示すフローチャートである。以下、図25に示す処理をステップ番号に沿って説明する。
[ステップS331]配備アプリ判定部174は、配備先機器の動作状態を監視する。例えば配備アプリ判定部174は、配備先機器状態テーブル151の障害発生フラグの値により、各配備先機器の障害の有無を判断する。
FIG. 25 is a flowchart showing an example of the procedure of the application redeployment process. Hereinafter, the process shown in FIG. 25 will be described along with the step numbers.
[Step S331] The deployment application determination unit 174 monitors the operating state of the deployment destination device. For example, the deployment application determination unit 174 determines whether or not each deployment destination device has a failure based on the value of the failure occurrence flag in the deployment destination device status table 151.

[ステップS332]配備アプリ判定部174は、機器接続検知部172から、新たに接続された配備先機器の機器名を含む機器接続通知を受信する。
[ステップS333]配備アプリ判定部174は、機器接続関係テーブル141から、新たに接続された配備先機器(接続機器)と同じ上流機器に接続された他の下流機器を検索する。例えば配備アプリ判定部174は、接続機器の機器名を下流機器として含むレコードを、機器接続関係テーブル141から検索する。そして配備アプリ判定部174は、該当するレコードに示されている下流機器の機器名のうち、接続機器以外の機器名を取得する。
[Step S332] The deployment application determination unit 174 receives a device connection notification including the device name of the newly connected deployment destination device from the device connection detection unit 172.
[Step S333] The deployment application determination unit 174 searches the device connection-related table 141 for other downstream devices connected to the same upstream device as the newly connected deployment destination device (connected device). For example, the deployment application determination unit 174 searches the device connection relationship table 141 for a record including the device name of the connected device as a downstream device. Then, the deployment application determination unit 174 acquires a device name other than the connected device among the device names of the downstream devices shown in the corresponding record.

[ステップS334]配備アプリ判定部174は、接続機器以外の下流機器があるか否かを判断する。配備アプリ判定部174は、ステップS333の処理により、少なくとも1つの機器名が取得できた場合、接続機器以外の下流機器があると判断する。配備アプリ判定部174は、接続機器以外の下流機器がある場合、処理をステップS335に進める。また配備アプリ判定部174は、接続機器以外の下流機器がない場合、アプリ再配備処理を終了する。 [Step S334] The deployment application determination unit 174 determines whether or not there is a downstream device other than the connected device. When at least one device name can be acquired by the process of step S333, the deployment application determination unit 174 determines that there is a downstream device other than the connected device. If there is a downstream device other than the connected device, the deployment application determination unit 174 proceeds to step S335. Further, the deployment application determination unit 174 ends the application redeployment process when there is no downstream device other than the connected device.

[ステップS335]配備アプリ判定部174は、ステップS333で取得した機器名の下流機器において、障害が発生しているか否かを判断する。例えば配備アプリ判定部174は、配備先機器状態テーブル151から、配備先機器としてステップS333で取得した機器名が設定されたレコードを取得する。そして配備アプリ判定部174は、取得したレコードの障害発生フラグの値が「1」であれば、該当する下流機器で障害が発生していると判断する。配備アプリ判定部174は、障害が発生している場合、処理をステップS336に進める。また配備アプリ判定部174は、障害が発生していなければ、アプリ再配備処理を終了する。 [Step S335] The deployment application determination unit 174 determines whether or not a failure has occurred in the downstream device with the device name acquired in step S333. For example, the deployment application determination unit 174 acquires a record in which the device name acquired in step S333 is set as the deployment destination device from the deployment destination device status table 151. Then, if the value of the failure occurrence flag of the acquired record is "1", the deployment application determination unit 174 determines that a failure has occurred in the corresponding downstream device. If a failure has occurred, the deployment application determination unit 174 proceeds to step S336. Further, the deployment application determination unit 174 ends the application redeployment process if no failure has occurred.

[ステップS336]配備アプリ判定部174は、配備先機器状態テーブル151から、障害が発生している下流機器に配備済みの分配アプリの名称を取得する。例えば配備アプリ判定部174は、ステップS335で取得したレコードの配備済みアプリに設定されているアプリ名を、再配備対象アプリのアプリ名として取得する。配備アプリ判定部174は、取得したアプリ名と、接続機器の機器名とを、配備済みアプリ再配備部175に通知する。 [Step S336] The deployment application determination unit 174 acquires the name of the distribution application already deployed to the downstream device in which the failure has occurred from the deployment destination device status table 151. For example, the deployment application determination unit 174 acquires the application name set in the deployed application of the record acquired in step S335 as the application name of the redeployment target application. The deployment application determination unit 174 notifies the deployed application redeployment unit 175 of the acquired application name and the device name of the connected device.

[ステップS337]配備済みアプリ再配備部175は、接続機器に、再配備対象アプリを配備する。例えば配備済みアプリ再配備部175は、デバイス管理テーブル111を参照し、接続機器の機器名に対応するIPアドレスなどの情報を取得する。また配備済みアプリ再配備部175は、再配備対象アプリのアプリ名に対応する分配アプリフローデータを、配備済みアプリ記憶部130から取得する。そして配備済みアプリ再配備部175は、接続機器にアクセスし、取得した分配アプリフローデータの配備処理を行う。すなわち配備済みアプリ再配備部175は、取得した分配アプリフローデータを接続機器にコピーし、接続機器に対して、分配アプリフローデータに基づく処理の実行を開始させる。 [Step S337] The deployed application redeployment unit 175 deploys the redeployment target application to the connected device. For example, the deployed application redeployment unit 175 refers to the device management table 111 and acquires information such as an IP address corresponding to the device name of the connected device. Further, the deployed application redeployment unit 175 acquires the distributed application flow data corresponding to the application name of the redeployment target application from the deployed application storage unit 130. Then, the deployed application redeployment unit 175 accesses the connected device and performs the deployment process of the acquired distributed application flow data. That is, the deployed application redeployment unit 175 copies the acquired distributed application flow data to the connected device, and causes the connected device to start executing the process based on the distributed application flow data.

このようにして、障害が発生した配備先機器の代替の配備先機器が接続されると、障害が発生した配備先機器に配備されていた分配アプリが、代替の配備先機器に自動で配備される。その結果、配備先機器の障害によるサービスの停止期間の長期化を抑止することができる。 In this way, when an alternative deployment destination device of the failed deployment destination device is connected, the distribution application deployed on the failed deployment destination device is automatically deployed to the alternative deployment destination device. To. As a result, it is possible to prevent the service suspension period from being prolonged due to the failure of the deployment destination device.

また分配アプリを配備した配備先機器が故障しても、故障した配備先機器に配備された分配アプリを再配備すればよく、全体アプリから生成されたすべての分配アプリの再配備を行わずにすむ。すなわちアプリ開発サーバ100は、分配アプリ生成・配備フェーズにおいて生成した複数の分配アプリを、複数の配備先機器に配備する。その後、IoTアプリが動作する配備先機器がネットワークに接続されたとき、アプリ開発サーバ100が、システム構築フェーズにおいて、配備先機器間の機器接続情報(=配信経路)を構築して保持する。またアプリ開発サーバ100は、運用フェーズにおいて、新たに配備先機器がネットワークに接続されたことを検知すると、接続された配備先機器と上流機器が同じ配備先機器のうち、障害が発生している配備先機器を特定する。そしてアプリ開発サーバ100は、特定した配備先機器に配備した分配アプリを、新規に接続した配備先機器に配備する。 In addition, even if the deployment destination device to which the distribution application is deployed breaks down, the distribution application deployed to the failed deployment destination device can be redeployed without redeploying all the distribution apps generated from the entire application. I'm sorry. That is, the application development server 100 deploys a plurality of distribution applications generated in the distribution application generation / deployment phase to a plurality of deployment destination devices. After that, when the deployment destination device on which the IoT application operates is connected to the network, the application development server 100 constructs and holds the device connection information (= distribution path) between the deployment destination devices in the system construction phase. Further, when the application development server 100 detects that the deployment destination device is newly connected to the network in the operation phase, a failure has occurred among the deployment destination devices in which the connected deployment destination device and the upstream device are the same. Identify the deployment destination device. Then, the application development server 100 deploys the distribution application deployed to the specified deployment destination device to the newly connected deployment destination device.

これにより全体アプリから生成されるすべての分配アプリではなく、障害が発生した配備先機器に配備した分配アプリのみを新規に接続した配備先機器に再配備することが可能になる。すなわち、いずれかの配備先機器で正常に動作している分配アプリの入れ替えは不要である。その結果、管理者の配備コストの削減、またはサービス停止による利用者の利便性低下を防ぐことが可能となる。 This makes it possible to redeploy only the distribution app deployed to the failed deployment destination device to the newly connected deployment destination device, instead of all the distribution apps generated from the entire app. That is, it is not necessary to replace the distribution application that is operating normally on any of the deployment destination devices. As a result, it is possible to reduce the deployment cost of the administrator or prevent the user's convenience from being lowered due to the service suspension.

なおシステムの管理者は、障害が発生した配備先機器の代替の配備先機器に、例えば故障した配備先機器と同じIPアドレスを設定する。これにより代替の配備先機器に分配アプリを再配備しても、分配アプリの内容を変更せずに、代替の配備先機器が、障害が発生した配備先機器の代わりに他の機器と通信できる。 The system administrator sets, for example, the same IP address as the failed deployment destination device in the alternative deployment destination device of the failed deployment destination device. As a result, even if the distribution application is redeployed to the alternative deployment destination device, the alternative deployment destination device can communicate with other devices in place of the failed deployment destination device without changing the contents of the distribution application. ..

また分配アプリを実行する配備先機器同士がMQTTで通信する場合がある。MQTTによる通信では、MQTTのトピックが通信識別子となり、再配備した分配アプリにも、障害が発生した配備先機器に配備されていたときの同じトピックが設定されている。したがって、代替の配備先機器は、配備された分配アプリに設定されたトピックにより、障害が発生した配備先機器の代わりとして、他の機器との間でMQTTによる通信を行うことができる。 In addition, the deployment destination devices that execute the distribution application may communicate with each other by MQTT. In communication by MQTT, the topic of MQTT becomes the communication identifier, and the same topic as when it was deployed to the deployment destination device where the failure occurred is set in the redeployed distribution application. Therefore, the alternative deployment destination device can perform MQTT communication with another device in place of the failed deployment destination device according to the topic set in the deployed distribution application.

〔その他の実施の形態〕
第2の実施の形態では分散環境上で動作するIoTアプリの部分的な機能を実現する分配アプリの再配備の例を示したが、同様の処理により他のアプリを再配備することも可能である。
[Other embodiments]
In the second embodiment, an example of redeploying a distributed application that realizes a partial function of an IoT application operating in a distributed environment is shown, but it is also possible to redeploy other applications by the same processing. is there.

以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。 Although the embodiment has been illustrated above, the configuration of each part shown in the embodiment can be replaced with another having the same function. Moreover, other arbitrary components and processes may be added. Further, any two or more configurations (features) of the above-described embodiments may be combined.

1 接続情報
2 ソフトウェア情報
3a〜3e 機器
10 情報処理装置
11 記憶部
12 処理部
1 Connection information 2 Software information 3a to 3e Equipment 10 Information processing device 11 Storage unit 12 Processing unit

Claims (6)

コンピュータに、
複数の機器が多階層に接続されたシステム内の第1機器の下位の階層の機器として、前記第1機器に第2機器が接続されたことを検知し、
前記複数の機器間の接続関係を示す接続情報に基づいて、前記第1機器に接続されている、前記第2機器と同じ階層の第3機器を検出し、
前記第3機器の監視結果に基づいて、前記第3機器の障害の有無を判定し、
前記第3機器に障害が発生している場合、前記複数の機器それぞれに配信済みのソフトウェアを示すソフトウェア情報に基づいて、前記第3機器に配信済みのソフトウェアを前記第2機器に配信する、
処理を実行させるソフトウェア配信プログラム。
On the computer
It is detected that the second device is connected to the first device as a device in the lower layer of the first device in the system in which a plurality of devices are connected in multiple layers.
Based on the connection information indicating the connection relationship between the plurality of devices, the third device in the same layer as the second device, which is connected to the first device, is detected.
Based on the monitoring result of the third device, the presence or absence of a failure of the third device is determined.
When a failure occurs in the third device, the software delivered to the third device is delivered to the second device based on the software information indicating the software delivered to each of the plurality of devices.
A software distribution program that executes processing.
前記第1機器への前記第2機器の接続の検知では、前記第2機器から前記第1機器へ出力された接続要求メッセージを、前記第1機器から取得したとき、前記第2機器が接続されたと検知する、
請求項1記載のソフトウェア配信プログラム。
In the detection of the connection of the second device to the first device, when the connection request message output from the second device to the first device is acquired from the first device, the second device is connected. Detects
The software distribution program according to claim 1.
前記コンピュータに、さらに、
前記接続要求メッセージに基づいて、前記第1機器と前記第2機器との接続関係を前記接続情報に追加する、
処理を実行させる請求項2記載のソフトウェア配信プログラム。
On the computer,
Based on the connection request message, the connection relationship between the first device and the second device is added to the connection information.
The software distribution program according to claim 2, wherein the process is executed.
前記第3機器の障害の有無の判定では、前記第1機器による前記第3機器の状態の監視により前記第1機器が前記第3機器の障害を検知したときに前記第1機器が送出する障害発生通知メッセージを取得したか否かに基づいて、前記第3機器の障害の有無を判定する、
請求項1ないし3のいずれかに記載のソフトウェア配信プログラム。
In the determination of the presence or absence of a failure of the third device, a failure transmitted by the first device when the first device detects a failure of the third device by monitoring the state of the third device by the first device. It is determined whether or not the third device has a failure based on whether or not the occurrence notification message has been acquired.
The software distribution program according to any one of claims 1 to 3.
コンピュータが、
複数の機器が多階層に接続されたシステム内の第1機器の下位の階層の機器として、前記第1機器に第2機器が接続されたことを検知し、
前記複数の機器間の接続関係を示す接続情報に基づいて、前記第1機器に接続されている、前記第2機器と同じ階層の第3機器を検出し、
前記第3機器の監視結果に基づいて、前記第3機器の障害の有無を判定し、
前記第3機器に障害が発生している場合、前記複数の機器それぞれに配信済みのソフトウェアを示すソフトウェア情報に基づいて、前記第3機器に配信済みのソフトウェアを前記第2機器に配信する、
ソフトウェア配信方法。
The computer
It is detected that the second device is connected to the first device as a device in the lower layer of the first device in the system in which a plurality of devices are connected in multiple layers.
Based on the connection information indicating the connection relationship between the plurality of devices, the third device in the same layer as the second device, which is connected to the first device, is detected.
Based on the monitoring result of the third device, the presence or absence of a failure of the third device is determined.
When a failure occurs in the third device, the software delivered to the third device is delivered to the second device based on the software information indicating the software delivered to each of the plurality of devices.
Software distribution method.
複数の機器が多階層に接続されたシステムにおける前記複数の機器間の接続関係を示す接続情報と、前記複数の機器それぞれに配信済みのソフトウェアを示すソフトウェア情報とを記憶する記憶部と、
前記システム内の第1機器の下位の階層の機器として、前記第1機器に第2機器が接続されたことを検知し、前記接続情報に基づいて、前記第1機器に接続されている、前記第2機器と同じ階層の第3機器を検出し、前記第3機器の監視結果に基づいて、前記第3機器の障害の有無を判定し、前記第3機器に障害が発生している場合、前記ソフトウェア情報に基づいて、前記第3機器に配信済みのソフトウェアを前記第2機器に配信する処理部と、
を有する情報処理装置。
A storage unit that stores connection information indicating a connection relationship between the plurality of devices in a system in which a plurality of devices are connected in multiple layers, and software information indicating software delivered to each of the plurality of devices.
As a lower layer device of the first device in the system, it is detected that the second device is connected to the first device, and the device is connected to the first device based on the connection information. When the third device in the same layer as the second device is detected, the presence or absence of a failure of the third device is determined based on the monitoring result of the third device, and the failure has occurred in the third device. Based on the software information, a processing unit that distributes the software that has been distributed to the third device to the second device, and
Information processing device with.
JP2019047490A 2019-03-14 2019-03-14 Software distribution program, software distribution method, and information processing device Pending JP2020149480A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019047490A JP2020149480A (en) 2019-03-14 2019-03-14 Software distribution program, software distribution method, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019047490A JP2020149480A (en) 2019-03-14 2019-03-14 Software distribution program, software distribution method, and information processing device

Publications (1)

Publication Number Publication Date
JP2020149480A true JP2020149480A (en) 2020-09-17

Family

ID=72429702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019047490A Pending JP2020149480A (en) 2019-03-14 2019-03-14 Software distribution program, software distribution method, and information processing device

Country Status (1)

Country Link
JP (1) JP2020149480A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024111175A1 (en) * 2022-11-24 2024-05-30 日立Astemo株式会社 Network system and network management method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024111175A1 (en) * 2022-11-24 2024-05-30 日立Astemo株式会社 Network system and network management method

Similar Documents

Publication Publication Date Title
CN106790595B (en) Docker container active load balancing device and method
AU2017261529B2 (en) Failure resistant distributed computing system
US9998323B2 (en) Datacenter configuration management tool
US20160092343A1 (en) Datacenter management computing system
US9268546B2 (en) Deployment and hosting of platform independent applications
CA3060491A1 (en) Failure resistant distributed computing system
US9197720B2 (en) Deployment and hosting of platform independent applications
EP3495946A1 (en) Server updates
US20120131101A1 (en) Cloud-Processing Management With A Landscape Directory
JP2009169860A (en) Computer system for managing configuration item, and method and computer program therefor
CN104221004A (en) Cluster wide consistent detection of interconnect failures
JP2009199528A (en) Computer system for managing service process including two or more service steps, and method and computer program therefor
JP5979986B2 (en) Distribution system and control method thereof
US20160261459A1 (en) Package dependency maps for distributed computing
US9158520B2 (en) Development of platform independent applications
US11354152B2 (en) Self-evolving microservices
JP2016103144A (en) Virtual machine deployment method, virtual machine deployment program and virtual machine deployment system
JP2019101866A (en) Application update method and program
CN115103012B (en) Geospatial information microservice integration system and method
US20130151595A1 (en) Deployment and hosting of platform independent applications
US20160092194A1 (en) Datacenter platform switching tool
CN113656147A (en) Cluster deployment method, device, equipment and storage medium
CN113382077B (en) Micro-service scheduling method, micro-service scheduling device, computer equipment and storage medium
JP2020149480A (en) Software distribution program, software distribution method, and information processing device
CN113419818A (en) Basic component deployment method, device, server and storage medium