JP6770922B2 - Data collection infrastructure - Google Patents
Data collection infrastructure Download PDFInfo
- Publication number
- JP6770922B2 JP6770922B2 JP2017091135A JP2017091135A JP6770922B2 JP 6770922 B2 JP6770922 B2 JP 6770922B2 JP 2017091135 A JP2017091135 A JP 2017091135A JP 2017091135 A JP2017091135 A JP 2017091135A JP 6770922 B2 JP6770922 B2 JP 6770922B2
- Authority
- JP
- Japan
- Prior art keywords
- module
- application
- configuration
- resource
- requirements
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、ゲートウェイ集約型のデータ収集システムに好適なデータ収集基盤に関する。 The present invention relates to a data collection platform suitable for a gateway-intensive data collection system.
複数のセンサ情報を、アプリケーションの要求に応じて収集、解析するInternet of Things(IoT)システムは、全てのセンサデータをクラウドサーバに集約して解析するクラウド集約型と、ゲートウェイやエッジサーバで必要な粒度に集約してデータを収集するゲートウェイ集約型とがある。 The Internet of Things (IoT) system, which collects and analyzes multiple sensor information according to the requirements of the application, is required for cloud-intensive type that aggregates and analyzes all sensor data on a cloud server, and for gateways and edge servers. There is a gateway-intensive type that collects data by aggregating it into granularity.
上記後者のゲートウェイ集約型では、上記前者のクラウド集約型に比して、ネットワークリソースやストレージ資源を節約できるというメリットがある。この種のゲートウェイ集約型のIoTアーキテクチャにおいて、例えばエッジサーバのクラウド全体に対する役割を最適化するための技術が提案されている(例えば、非特許文献1を参照)。 The latter gateway-intensive type has the advantage of saving network resources and storage resources as compared with the cloud-intensive type of the former. In this type of gateway-intensive IoT architecture, for example, a technique for optimizing the role of an edge server for the entire cloud has been proposed (see, for example, Non-Patent Document 1).
しかしながら、ゲートウェイ集約型では、予め利用するアプリケーションに応じたモジュール配置設計を行ない、その設計に基づいてモジュールを配置する必要がある。そのため、新たなアプリケーションやセンサを追加する際には、モジュールの再配置の設計、再配置に要する作業が大きく、迅速な対応が困難となるという不具合があった。 However, in the gateway-intensive type, it is necessary to design the module layout according to the application to be used in advance and arrange the modules based on the design. Therefore, when adding a new application or sensor, there is a problem that the work required for designing and relocating the module relocation is large and it is difficult to respond quickly.
本発明は上記のような実情に鑑みてなされたもので、その目的とするところは、ゲートウェイ集約型のデータ収集システムにおいて、配置されるアプリケーションに応じて、データ処理ノード上のモジュール配置を柔軟且つ迅速に行なうことが可能なデータ収集基盤を提供することにある。 The present invention has been made in view of the above circumstances, and an object of the present invention is to flexibly arrange modules on a data processing node according to an application to be arranged in a gateway-intensive data collection system. The purpose is to provide a data collection platform that can be carried out quickly.
本発明の一態様は、1以上のアプリケーションと複数のセンサが、ネットワークにより複数のデータ処理ノードを介して接続されるIoTプラットフォームであって、アプリケーションの要求条件を受け付ける要件管理部と、上記各データ処理ノードの計算資源とネットワーク帯域情報を資源情報として管理する資源管理部と、上記要件管理部で受け付けたアプリケーションの要求条件と上記資源管理部が管理する資源情報とに基づいて、上記複数のデータ処理ノードで当該アプリケーションを実行するモジュールの配置計算を行なう配置計算部と、上記配置計算部での計算の結果に従ってデータ処理ノードにモジュールを配備する配置実行管理部とを有する基盤管理部を備える。 One aspect of the present invention is an IoT platform in which one or more applications and a plurality of sensors are connected via a plurality of data processing nodes by a network, a requirement management unit that accepts application requirements, and each of the above data. The plurality of data are based on the resource management unit that manages the computational resources and network bandwidth information of the processing node as resource information, the application requirements received by the requirement management department, and the resource information managed by the resource management department. It includes a infrastructure management unit having an arrangement calculation unit that performs an arrangement calculation of a module that executes the application on the processing node, and an arrangement execution management unit that deploys a module to the data processing node according to the calculation result in the arrangement calculation unit.
本発明によれば、ゲートウェイ集約型のデータ収集システムにおいて、配置されるアプリケーションに応じて、データ処理ノード上のモジュール配置を柔軟且つ迅速に行なうことが可能となる。 According to the present invention, in a gateway-intensive data collection system, it is possible to flexibly and quickly arrange modules on a data processing node according to the application to be arranged.
以下、本発明をIoTシステムのデータ収集基盤が備える基盤管理部に適用した一実施形態について、図面を参照して詳細に説明する。 Hereinafter, an embodiment in which the present invention is applied to the infrastructure management unit included in the data collection infrastructure of the IoT system will be described in detail with reference to the drawings.
図1は、IoTシステムのデータ収集基盤の機能構成を示すブロック図である。同図では、IoTシステムが、その下層側から順に、センサ1,1,…、ゲートウェイ(IoT GW)2,2,…、エッジサーバ3,3,…、及びクラウドサーバ4の4層で構成される場合を例にとって示す。 FIG. 1 is a block diagram showing a functional configuration of a data collection platform of an IoT system. In the figure, the IoT system is composed of four layers of sensors 1, 1, ..., Gateway (IoT GW) 2, 2, ..., Edge servers 3, 3, ..., And cloud server 4, in order from the lower layer side. The case is shown as an example.
中層のゲートウェイ2,2,…及びエッジサーバ3,3,…が、それぞれデータ処理ノードとして、後述する配置実行管理部15によって配備されたモジュールに基づいて直下層からの複数のデータを収集して、直上層に送る。 The middle layer gateways 2, 2, ... And the edge servers 3, 3, ... collect a plurality of data from the immediately lower layers based on the modules deployed by the placement execution management unit 15 described later as data processing nodes, respectively. , Send to the layer directly above.
最上層のクラウドサーバ4は、割り当てられたアプリケーション5に従って、直下層のエッジサーバ3,3,…からのデータを収集、解析する。 The cloud server 4 on the uppermost layer collects and analyzes data from the edge servers 3, 3, ... Directly below the layer according to the assigned application 5.
上記アプリケーション5は、要件受付インタフェイス6を介して、IoTプラットフォームであるデータ収集基盤を構成する基盤管理部10に対して、必要とする要件の情報を予め伝送している。 The application 5 transmits information on required requirements in advance to the infrastructure management unit 10 that constitutes the data collection infrastructure, which is an IoT platform, via the requirement reception interface 6.
基盤管理部10は、基盤管理部10内で実行する各種プログラムやデータ等を記憶するデータベース11と、要件管理部12、資源管理部13、配置計算部14、及び配置実行管理部15とを備える。 The infrastructure management unit 10 includes a database 11 that stores various programs and data to be executed in the infrastructure management unit 10, a requirements management unit 12, a resource management unit 13, an allocation calculation unit 14, and an arrangement execution management unit 15. ..
要件管理部12は、アプリケーション5が必要とする要件を要件受付インタフェイス6を介して受付ける。 The requirements management unit 12 accepts the requirements required by the application 5 through the requirements reception interface 6.
資源管理部13は、データ処理ノードとなるゲートウェイ2,2,…やエッジサーバ3,3,…の配置、及びネットワークの帯域や、計算資源の上限等を把握する。 The resource management unit 13 grasps the arrangement of gateways 2, 2, ... And edge servers 3, 3, ... As data processing nodes, the network bandwidth, the upper limit of computational resources, and the like.
配置計算部14は、複数のアプリケーションの要件を基に、データ集計処理を行なうモジュールの構成、配置を計算する。 The layout calculation unit 14 calculates the configuration and layout of the module that performs the data aggregation process based on the requirements of the plurality of applications.
配置実行管理部15は、配置計算部14が計算したモジュールの構成、配置に基づいて、実際の各データ処理ノードにモジュールを配備させる。 The arrangement execution management unit 15 deploys the module to each actual data processing node based on the module configuration and arrangement calculated by the arrangement calculation unit 14.
図2は、主として上記配置計算部14が実行する処理の流れと、各種ヘルパープログラムの関係を示す図である。配置計算部14では、各アプリケーション毎に要求されている要件と、ここでは図示しない上記資源管理部13の資源情報とから、モジュール構成作成プログラム21が必要となるモジュール構成を作成する。これら複数のモジュール構成を取り纏めて初期モジュール構成とする。 FIG. 2 is a diagram showing the relationship between the processing flow mainly executed by the arrangement calculation unit 14 and various helper programs. The layout calculation unit 14 creates a module configuration that requires the module configuration creation program 21 from the requirements required for each application and the resource information of the resource management unit 13 (not shown here). These multiple module configurations are combined to form the initial module configuration.
この初期モジュール構成に対して、共有化判定プログラム22により同様の処理を実行するモジュールの共有化判定を行なって、必要なモジュールの構成を作成する。 With respect to this initial module configuration, the sharing determination program 22 performs a sharing determination of a module that executes the same process, and creates a necessary module configuration.
こうして作成したモジュール構成に対し、さらに等価モジュール列算出プログラム23がその内容を精査し、より効率的なモジュール構成に組み替える。 The equivalent module sequence calculation program 23 further examines the contents of the module configuration created in this way, and rearranges the module configuration into a more efficient module configuration.
そして、これらのモジュール構成が、割付け、収容可否判定、最適構成選択のためのプログラム24により再構成された上で、上記配置実行管理部15により実環境である各データ処理ノードに対して配備される。 Then, these module configurations are reconfigured by the program 24 for allocation, accommodation availability determination, and optimum configuration selection, and then deployed by the arrangement execution management unit 15 to each data processing node in the actual environment. Ru.
図3及び図4は、アプリケーション要件の記載方法を例示する図である。
図3は、「SensingApp1」なる名前のアプリケーション要件を記載しており、図示する如く「data」なる名前のデータチャネルCH1と、「alert」なる名前のデータチャネルCH2の複数のデータチャネルを指定している。
3 and 4 are diagrams illustrating a method of describing application requirements.
FIG. 3 describes an application requirement named "SensingApp1", specifying multiple data channels of a data channel CH1 named "data" and a data channel CH2 named "alert" as shown. There is.
データチャネルCH1においては、単一モジュールとしてのモジュール名(AlgorithmName)「AVG」とそのパラメータを記載すると共に、当該チャネルの優先度(Priority)情報が「1」であることを記載している。 In the data channel CH1, the module name (AVG) “AVG” as a single module and its parameters are described, and the priority information of the channel is described as “1”.
同様に、データチャネルCH2においても、当該チャネルの優先度情報が「5」であることを記載している。この場合、優先度情報は数値の大きいものがより優先度が高いものとしている。 Similarly, in the data channel CH2, it is described that the priority information of the channel is "5". In this case, it is assumed that the higher the numerical value of the priority information, the higher the priority.
図4は、「Trigger」なる名前のアプリケーション要件を記載している。同図中に示す領域AR1では、スループット(Throughput)の性能に係る要件とそのパラメータを記載している。この記載に関しては、他にも、例えば
「BenefitFunction : function(t)‥‥
BenefitFunctionName : Myfunction‥‥ 」
のように記載することも考えられる。
FIG. 4 describes an application requirement named "Trigger". In the region AR1 shown in the figure, the requirements related to the performance of Throughput and its parameters are described. Regarding this description, for example
"Benefit Function: function (t) ...
BenefitFunctionName: Myfunction ... "
It is also conceivable to describe as.
次にアプリケーションの便益について説明する。
アプリケーションは、スループットやレイテンシの性能に関する要求条件を便益として記述できる。
Next, the benefits of the application will be described.
Applications can describe throughput and latency performance requirements as benefits.
図5(A)、図5(B)は共に、スループットに関するアプリケーションの便益を記載したモデルである。図5(A)では、スループットがx1以下では「0(ゼロ)」、x1からx2に至る間、便益がy1からy2まで増加し、x2以上は一定値y2となる。
図5(B)は、パラメータを3点に増やした場合を示す。
Both FIGS. 5 (A) and 5 (B) are models that describe the benefits of the application with respect to throughput. In FIG. 5A, when the throughput is x1 or less, it is “0 (zero)”, the benefit increases from y1 to y2 from x1 to x2, and when x2 or more, it becomes a constant value y2.
FIG. 5B shows a case where the parameter is increased to 3 points.
このように、アプリケーションはパラメータ列x1,y1,x2,y2,‥‥で便益を記述することができる。 In this way, the application can describe the benefits with the parameter sequences x1, y1, x2, y2, ....
またアプリケーションは、具体的な便益を求めるプログラム、あるいはそのプログラムの名称を与えるように構成しても良い。 The application may also be configured to give a specific benefit program or the name of the program.
便益の値としては、例えば「1」を受け入れられる最低限の値として取り決めて、例えば、
「Benefit:“function(t){if(t<100){return0}
else{return1}}”
あるいは、
「Benefit:“myOriginalBenefitFunction”」
のような記述により実現できる。
As the value of the benefit, for example, "1" is arranged as the minimum acceptable value, for example,
"Benefit:" function (t) {if (t <100) {return0}
else {return1}} ""
Or
"Benefit:" myOriginal BenefitFunction ""
It can be realized by the description like.
図5(C)は、性能に関するパラメータがレイテンシである場合を記載したモデルである。ここではレイテンシがx1以下では便益が一定値y1、x1からx2に至る間、便益がy1からy2まで減少し、レイテンシがx2以上は「0(ゼロ)」となる。 FIG. 5C is a model showing a case where the parameter related to performance is latency. Here, when the latency is x1 or less, the benefit decreases from y1 to y2 while the benefit is a constant value y1, x1 to x2, and when the latency is x2 or more, it becomes "0 (zero)".
レイテンシの場合、レイテンシが小さい方が便益が高くなるもので、スループットの場合と同様に、アプリケーションはパラメータ列x1,y1,x2,y2,‥‥で便益を記述することができる。 In the case of latency, the smaller the latency, the higher the benefit, and as in the case of throughput, the application can describe the benefit with the parameter sequence x1, y1, x2, y2, ....
以下、上記実施形態の具体的な動作について順次説明する。
図6は、IoTシステムで新たなアプリケーションを追加した際の処理内容を示すシーケンス図である。その当初、アプリケーション5が、要件受付インタフェイス6を介して基盤管理部10の要件管理部12に対し、上記図3及び図4で説明したような記載方法によるフォーマットの要件のデータを送信する(ステップS101)。
Hereinafter, specific operations of the above-described embodiment will be sequentially described.
FIG. 6 is a sequence diagram showing the processing contents when a new application is added in the IoT system. Initially, the application 5 transmits the requirement data in the format as described with reference to FIGS. 3 and 4 to the requirement management unit 12 of the infrastructure management unit 10 via the requirement reception interface 6 (). Step S101).
これを受けた要件管理部12は、配置計算部14に対してアプリケーション追加による要件変更が発生したことの通知を行なう(ステップS102)。 Upon receiving this, the requirement management unit 12 notifies the placement calculation unit 14 that the requirement has been changed due to the addition of the application (step S102).
配置計算部14がこの通知に対応し、要件管理部12に対して要件の一覧を取得する要求を行ない(ステップS103)、要件管理部12からその応答情報を受信する(ステップS104)。 In response to this notification, the placement calculation unit 14 requests the requirement management unit 12 to acquire a list of requirements (step S103), and receives the response information from the requirement management unit 12 (step S104).
併せて配置計算部14は、資源管理部13に対して資源情報を取得する要求を行ない(ステップS105)、資源管理部13からその応答情報を受信する(ステップS106)。 At the same time, the allocation calculation unit 14 requests the resource management unit 13 to acquire the resource information (step S105), and receives the response information from the resource management unit 13 (step S106).
配置計算部14は、こうして得られた最新の状況を示す要件の一覧情報と資源情報とにより配置計算の処理を実行する(ステップS200)。配置計算部14は、この配置計算により、新たに追加された要件を満たす配置構成が得られたかどうかを、再配置可否結果通知として要件管理部12に送信する(ステップS107)。 The placement calculation unit 14 executes the placement calculation process based on the list information of the requirements indicating the latest status and the resource information obtained in this way (step S200). The placement calculation unit 14 transmits to the requirement management unit 12 as a relocation possibility result notification whether or not a placement configuration satisfying the newly added requirement is obtained by this placement calculation (step S107).
再配置可否結果通知を受けた要件管理部12では、当該通知に応じて要件の受付可否の回答を、要件受付インタフェイス6を介してアプリケーション5に返答する。 Upon receiving the relocation permission / rejection result notification, the requirement management unit 12 responds to the application 5 via the requirement reception interface 6 with a response as to whether or not the requirement can be accepted in response to the notification.
また配置計算部14は、上記配置計算で新たに追加された要件を満たす配置構成が得られた場合、さらに配置実行管理部15に対して算出した配置の指示を行なう(ステップS109)。 Further, when the arrangement configuration satisfying the newly added requirement is obtained in the arrangement calculation, the arrangement calculation unit 14 further instructs the arrangement execution management unit 15 of the calculated arrangement (step S109).
この配置計算部14からの配置の指示に従い、配置実行管理部15が複数のデータ処理ノード1,2に対してそのノード上で動作させるモジュールの配置指示を通知する(ステップS110)。 According to the arrangement instruction from the arrangement calculation unit 14, the arrangement execution management unit 15 notifies the plurality of data processing nodes 1 and 2 of the arrangement instruction of the module to be operated on the node (step S110).
ここで通知される配置指示は、具体的には、モジュール起動、モジュール停止、及びモジュール設定変更の3種類の命令をセットにしたもので構成される。 Specifically, the placement instruction notified here is composed of a set of three types of instructions: module start, module stop, and module setting change.
次に上記配置計算部14が上記配置計算S200により実行する動作手順の詳細について説明する。 Next, the details of the operation procedure executed by the arrangement calculation unit 14 by the arrangement calculation S200 will be described.
図7は、配置計算部14による処理内容を示すフローチャートである。その当初に配置計算部14では、アプリケーションの要求から、求められるチャネルを実現する最小構成のモジュール配置を求める。全てのアプリケーションの要求について同様に実行し、それらの結果すべてを足し合わせたモジュール構成C1を取得する(ステップS201)。 FIG. 7 is a flowchart showing the processing contents by the arrangement calculation unit 14. At the beginning, the arrangement calculation unit 14 obtains the module arrangement of the minimum configuration that realizes the required channel from the request of the application. The requirements of all the applications are executed in the same manner, and the module configuration C1 obtained by adding all the results is obtained (step S201).
図8(A)は、このとき配置計算部14が配置したモジュール構成C1を例示する図である。3つのセンサ1,1,1の出力データをモジュールA,B,Bにより収集し、アプリケーション1,2にチャンネルCH1,CH2,CH3で取り纏めている状態を例示している。 FIG. 8A is a diagram illustrating the module configuration C1 arranged by the arrangement calculation unit 14 at this time. The state in which the output data of the three sensors 1, 1, 1 are collected by the modules A, B, and B and collected by the channels CH1, CH2, and CH3 in the applications 1 and 2 is illustrated.
このステップS201の処理を詳細に説明する。配置計算部14は、まずアプリケーションの要件に記載されているアルゴリズム名と、それに対応した、最小のモジュール構成を作成するプログラム名を、モジュール構成作成プログラム表として記載しておく。 The process of step S201 will be described in detail. First, the arrangement calculation unit 14 describes the algorithm name described in the requirements of the application and the program name corresponding to it to create the minimum module configuration as a module configuration creation program table.
図8(B)は、このとき作成されるモジュール構成作成プログラム表の内容を例示する図である。アルゴリズム名とプログラム名の対応表であり、アプリケーションの要求の、各チャネルの内部に記載されているアルゴリズム名を上記作成したプログラム表から検索し、対応するプログラム名を得る。ここでプログラム名が記述されているプログラムは、予め上記データベース11に格納されている。 FIG. 8B is a diagram illustrating the contents of the module configuration creation program table created at this time. It is a correspondence table of the algorithm name and the program name, and the algorithm name described inside each channel of the application request is searched from the program table created above, and the corresponding program name is obtained. The program in which the program name is described here is stored in the database 11 in advance.
すなわち、各プログラムは、上記のように得たプログラム名に対して、アプリケーション中の該当チャネル内のパラメータと、資源管理部13で管理しているデータ処理ノードの構成を追加して与えることで、最小のモジュール構成が取得できるように予め構成された状態で、データベース11に格納されている。 That is, each program is given the program name obtained as described above by adding the parameters in the corresponding channel in the application and the configuration of the data processing node managed by the resource management unit 13. It is stored in the database 11 in a preconfigured state so that the minimum module configuration can be acquired.
例えば、下記に示すようなアプリケーション要件
「{
name: sample_time_series
Processing: {
AlgorithmName: Time_Series_AVG,
AggretationUnit: 3,
targetSensors: [ “ID−1”]
}」
が与えられたものとする。
For example, application requirements as shown below
"{{
name: simple_time_series
Processing: {
AgorithmName: Time_Series_AVG,
Aggregation Unit: 3,
targetSensors: [“ID-1”]
} "
Suppose that is given.
図9(A)は、センサ「ID−1」の出力するデータがノード1により収集され、その上位のノード3でさらに他のデータと取り纏められる場合の、データ処理ノードの構成を例示している。 FIG. 9 (A) illustrates the configuration of a data processing node when the data output by the sensor “ID-1” is collected by the node 1 and further combined with other data by the node 3 above the node 1. ..
上記図8(B)でも示した、この「Time_Series_AVG」という名前のアルゴリズムは、時系列データがセンサかに出力された際に、定期的な時間のデータの平均値を得るというものである。 The algorithm named "Time_Series_AVG", which is also shown in FIG. 8B, obtains the average value of the data at regular times when the time series data is output to the sensor.
上記定期的な時間は、パラメータとして設定でき、本例では「AggretationUnit」の場所に記載されている「3[秒]」が、時系列データの平均を算出する区間となる。 The periodic time can be set as a parameter, and in this example, "3 [seconds]" described in the place of "Aggregation Unit" is a section for calculating the average of the time series data.
上記図8(B)で示したプログラム名「GEN_MODULE_TIME_SERIES_AVG」のプログラムに対して、上記のアプリケーション要件内のチャネル部分のデータ、データノード構成を与えることで、モジュール構成が作成されて返される。 A module configuration is created and returned by giving the data and data node configuration of the channel portion within the above application requirements to the program with the program name "GEN_MODE_TIME_SERIES_AVG" shown in FIG. 8 (B).
図9(B)にそのモジュール構成を図示するように、返されたモジュール構成では、センサから始まり、1つ以上、上のモジュールを経由して、チャンネル名で指定されるノードまでの接続関係が情報として表現されている。 As the module configuration is illustrated in FIG. 9B, in the returned module configuration, the connection relationship starts from the sensor, passes through one or more modules above, and reaches the node specified by the channel name. It is expressed as information.
また異なる例として、例えば下記に示すアプリケーション要件
「{
name: Tokyo_temperature,
Processing: {
AlgorithmName: AVG_LATEST,
AggretationUnit: 60,
targetSensorsByType:
“&((type=temperature)(region=Tokyo)”
}」
が与えられたものとする。
As a different example, for example, the application requirements shown below
"{{
name: Tokyo_temperature,
Processing: {
AlgorithmName: AVG_LATEST,
Aggregation Unit: 60,
targetSensorsByType:
"& ((Type = temperature) (region = Tokyo)"
} "
Suppose that is given.
図10(A)は、このときに渡されるデータ処理ノードの構成を例示するものである。アルゴリズム名「AVG_LATEST」は、複数のセンサの最新値の平均値を得るものであり、「AggretationUnit」に指定されている「60[秒]」毎に、各センサの最新値から平均値を算出して、アプリケーションに届けることを示している。 FIG. 10A exemplifies the configuration of the data processing node passed at this time. The algorithm name "AVG_LATEST" is used to obtain the average value of the latest values of a plurality of sensors, and the average value is calculated from the latest value of each sensor every "60 [seconds]" specified in the "Application Unit". Indicates that it will be delivered to the application.
プログラム名「GEN_MODULE_AVG_LATEST」のプログラムに対して、上記のアプリケーション要件内のチャネル部分のデータ、データノード構成を与えることで、モジュール構成が作成されて返される。図10(B)にそのモジュール構成を図示する。 A module configuration is created and returned by giving the data and data node configuration of the channel portion within the above application requirements to the program with the program name "GEN_MODULE_AVG_LATEST". The module configuration is illustrated in FIG. 10 (B).
上記図9に示した例では、センサのIDを直接指定していたのに対し、ここでは要件をセンサの属性により指定している。ここでは、「LDAP Filter」の書式に基づいて記載されており、センサタイプが「温度センサ(temperature)」であり、且つ地域(リージョン)が「東京(Tokyo)」に配置されているセンサを指定している。 In the example shown in FIG. 9 above, the sensor ID is directly specified, but here the requirements are specified by the sensor attributes. Here, it is described based on the format of "LDAP Filter", and the sensor whose sensor type is "Temperature" and whose region is located in "Tokyo" is specified. are doing.
このような指定を可能にすることにより、IoTシステムで日々追加されていくセンサに対して、アプリケーションはそのアプリケーションを指定する必要がなくなり、なおかつ、新しく追加されたセンサの構成に対応して、モジュールの配置計算を実視できる、という利点が生じることになる。 By enabling such designation, the application does not need to specify the application for the sensor that is added daily in the IoT system, and the module corresponds to the configuration of the newly added sensor. There will be an advantage that you can actually see the placement calculation of.
上記図7のステップS201における最小モジュールの構成が終了すると、次に配置計算部14では第1のモジュール共有化処理として、モジュール共有化処理が実施できれば、そのまま実施してモジュール構成C2を取得する(ステップS202)。 When the configuration of the minimum module in step S201 of FIG. 7 is completed, the arrangement calculation unit 14 then executes the module sharing process as the first module sharing process if the module sharing process can be performed, and acquires the module configuration C2 (as it is). Step S202).
図11(A)は、上記図8(A)で示したモジュール構成に対して、2つのモジュールBを共有化したモジュール構成C2を例示している。 FIG. 11A illustrates a module configuration C2 in which two modules B are shared with respect to the module configuration shown in FIG. 8A.
このステップS202の処理内では、構成中のモジュールを共有化することで、
(1)処理内容に変更なくモジュール数を減らすことができる場合、及び(2)モジュールの数は減らないが、処理に用いられるリソースを削減できる可能性がある場合を探索する。
In the process of step S202, by sharing the module being configured,
Search for cases where (1) the number of modules can be reduced without changing the processing content, and (2) cases where the number of modules is not reduced but the resources used for processing can be reduced.
構成内の2つのモジュールに注目し、共有できるかどうかをチェックし、共有できる場合はその置換を行なう。さらに、共有化できるモジュールがあれば共有化を行なう、という処理を、それ以上の共有化が不可能であると判断するまで繰返し実行する。 Pay attention to the two modules in the configuration, check if they can be shared, and if they can be shared, replace them. Further, the process of sharing if there is a module that can be shared is repeatedly executed until it is determined that further sharing is impossible.
ここであらためて共有化できる場合をケース分類化すると、
(1)同タイプ同設定
(2)同タイプ異設定
(3)上位互換モジュールとの共有化
(4)相互の上位互換モジュール
となる。
If you classify the cases that can be shared again here,
(1) Same type and same setting
(2) Different settings of the same type
(3) Sharing with upward compatible modules
(4) Mutual upward compatible modules
Will be.
上記(1)の同タイプ同設定は、同一の入力を受け取っており、同一のタイプのモジュールで、設定が同一である場合を示す。 The same type and same setting in (1) above indicates a case where the same input is received, the modules of the same type, and the setting is the same.
上記(2)の同タイプ異設定は、同一の入力を受け取っており、同一のタイプのモジュールで、設定が異なる場合を示す。この場合、図11(B)に示す共有化プログラム表で定義される、モジュール名に対応するプログラム名に対応したプログラムを用いて、異なる2種類の設定を渡すことで、当該プログラムにより変換可能な構造の集合が返されるので、返された構造に置換する。 The same type different setting in (2) above indicates a case where the same input is received, the modules of the same type have different settings. In this case, it is possible to convert by the program by passing two different types of settings using the program corresponding to the program name corresponding to the module name defined in the shared program table shown in FIG. 11 (B). A set of structures is returned, so replace it with the returned structure.
置換の種類が複数可能である場合には、複数の結果が返される。複数ある場合には、それぞれの構造について処理を継続する。また、共有化が不可能な場合や、存在しても非効率な場合は、共有化は行なわないものとして、空集合が返される。 If multiple types of substitutions are possible, multiple results are returned. If there are multiple structures, processing is continued for each structure. If sharing is not possible, or if it exists but is inefficient, an empty set is returned assuming that sharing is not performed.
上記(3)の上位互換モジュールとの共有化は、図11(C)に示す上位互換共有化判定プログラム表を参照することで、そのモジュール名に対応する上位互換モジュール名と上位互換共有化判定プログラム名があるか否かにより、当該モジュールの上位互換モジュールの有無を判定できる。 For sharing with the upward compatible module in (3) above, refer to the upward compatible sharing judgment program table shown in FIG. 11 (C), and refer to the upward compatible module name corresponding to the module name and the upward compatible sharing judgment. Whether or not there is an upward compatible module of the module can be determined by whether or not there is a program name.
注目する2つのモジュールにこの上位互換性の関係がある場合、共有化できる可能性がある。この上位互換共有化判定プログラム表で参照される上位互換共有化判定プログラムに対して、共有に関するモジュール名と設定をパラメータとして問い合わせることで、共有化した後の構造の集合が返される。返された構造の集合が複数ある場合には、それぞれの構造について処理を継続する。 If the two modules of interest have this upward compatibility relationship, they may be shared. By inquiring the module name and setting related to sharing as parameters to the upward compatibility sharing judgment program referred to in this upward compatibility sharing judgment program table, a set of structures after sharing is returned. If there are multiple sets of returned structures, processing is continued for each structure.
例えば複数のモジュール中に、図11(C)に示す上位互換共有化判定プログラム表中の、5[秒]間毎の最大値を算出するモジュール「MAX」と、5[秒]間毎の統計を算出するモジュール「STAT」とが存在した場合、後者の上位互換モジュール「STAT」の方で共有化できる。 For example, among a plurality of modules, the module "MAX" that calculates the maximum value every 5 [seconds] in the upward compatibility sharing determination program table shown in FIG. 11 (C) and the statistics for each 5 [seconds] If there is a module "STAT" that calculates, the latter upward compatible module "STAT" can be shared.
上記(4)の相互の上位互換モジュールは、注目する2つのモジュールに共通する上位互換モジュールが存在する場合に、その上位互換モジュールで共有化できる可能性がある場合を示す。上記(3)の上位互換モジュールとの共有化の場合と同様に、評価から検索した、上位互換共有化判定プログラムに問い合わせて、置換可能なモジュールの構成群を得る。 The mutual upward compatible module in (4) above indicates a case where there is a possibility that the upward compatible module can be shared by the upward compatible module when there is an upward compatible module common to the two modules of interest. Similar to the case of sharing with the upward compatible module in (3) above, the upward compatible sharing determination program searched from the evaluation is inquired to obtain a replaceable module configuration group.
図12は、第1のモジュール共有化処理の第1の例を示す図であり、上記(1)の同タイプ同設定の場合を示す。図12(A)に示すようなモジュール構成があった場合、モジュールM102とモジュールM103に注目すると、同一の入力、同一のタイプ、且つ設定が同一であるため、図12(B)に示すように、モジュールM102に共有化できるものとして、モジュールM103の存在を廃することができる。 FIG. 12 is a diagram showing a first example of the first module sharing process, and shows the case of the same type and the same setting in (1) above. When there is a module configuration as shown in FIG. 12 (A), paying attention to the module M102 and the module M103, since the same input, the same type, and the same setting are used, as shown in FIG. 12 (B). The existence of the module M103 can be abolished as it can be shared with the module M102.
図13は、第1のモジュール共有化処理の第2の例を示す図であり、上記(2)の同タイプ異設定の場合を示す。図13(A)に示すようなモジュール構成があった場合、モジュールM202とモジュールM203に注目すると、同一の入力、同一のタイプ、で設定のみが異なる。ここで、上記図11(B)で示したプログラム「SHARE_MAX」に問い合わせることで、図13(B)中のモジュールM206に示すような構成が返却される。 FIG. 13 is a diagram showing a second example of the first module sharing process, and shows the case of the same type and different setting in (2) above. When there is a module configuration as shown in FIG. 13A, paying attention to the module M202 and the module M203, only the settings are different for the same input and the same type. Here, by inquiring about the program "SHARE_MAX" shown in FIG. 11 (B), the configuration as shown in the module M206 in FIG. 13 (B) is returned.
すなわち、共有化処理によるモジュール数は変化していないものの、システムの消費リソース数が抑えられるものとなる。 That is, although the number of modules due to the sharing process has not changed, the number of resources consumed by the system can be suppressed.
例えば、図中のセンサID−1が、秒間に1000個の計測データを出力する場合、図13(A)に示す構成では、モジュールM204とモジュールM205でのメッセージ量は秒間2000個となる。 For example, when the sensor ID-1 in the figure outputs 1000 measurement data per second, the amount of messages in the module M204 and the module M205 is 2000 per second in the configuration shown in FIG. 13A.
一方、図13(B)に示す共有化後の構成では、モジュールM207とモジュールM206の秒間合計のメッセージ量は1001個となり、概ね半減することが可能となる。 On the other hand, in the post-sharing configuration shown in FIG. 13B, the total message amount per second of the module M207 and the module M206 is 1001, which can be substantially halved.
また計算量においても、共有化前のモジュールM202とモジュールM203で秒間2000回の処理を行なっていたのに対し、共有化後のモジュールM208とモジュールM210で秒間1001回の処理と、計算量も概ね半減できる。 In terms of the amount of calculation, the module M202 and the module M203 before sharing performed 2000 times per second, whereas the module M208 and M210 after sharing performed 1001 times per second, and the amount of calculation was also approximately. Can be halved.
なお上記プログラム「SHARE_MAX」は、MAXモジュールを習熟した開発者によって記載されたプログラムであることを前提とする。 The above program "SHARE_MAX" is premised on being a program written by a developer who is proficient in the MAX module.
図14は、第1のモジュール共有化処理の第3の例を示す図であり、上記(3)の上位互換モジュールとの共有化の場合を示す。図14(A)に示すようなモジュール構成があった場合、モジュールM302とモジュールM303に注目すると、上位互換モジュールとの共有化に該当する。ここで、上記図11(C)で示したプログラム「UP_SHARE_CHECK_STAT」に問い合わせることで、図14(B)中のモジュールM309に示すような構成が返却される。 FIG. 14 is a diagram showing a third example of the first module sharing process, and shows the case of sharing with the upward compatible module of (3) above. When there is a module configuration as shown in FIG. 14A, focusing on the module M302 and the module M303, it corresponds to sharing with an upward compatible module. Here, by inquiring about the program "UP_SHARE_CHECK_STAT" shown in FIG. 11 (C), the configuration as shown in the module M309 in FIG. 14 (B) is returned.
ここでは共有化により、モジュール数が増加するものの、システムの消費リソース数が抑えられるものとなる。 Here, sharing increases the number of modules, but reduces the number of resources consumed by the system.
図中のモジュールM302、モジュールM308に示す「STAT」は、入力されるデータの統計量を計算するモジュールであり、JSON(Java Script(登録商標) Object Notation)的な記述フォーマットでは、例えば
「{
“max”:120,
“min”:12,
“avg”:60,
“n”:1000
“sum”:64000,
“sum2”:5888800
}」
(但し、maxは最大値、minは最小値、avgは平均値、nはデータ個数、sumはデータの合計、sum2はデータの二乗和。)
のような記述内容となる。
The "STAT" shown in the module M302 and the module M308 in the figure is a module for calculating the statistic of the input data, and in the JSON (Javascript (registered trademark) Object Notification) description format, for example.
"{{
“Max”: 120,
“Min”: 12,
"Avg": 60,
"N": 1000
"Sum": 64000,
"Sum2": 5888800
} "
(However, max is the maximum value, min is the minimum value, avg is the average value, n is the number of data, sum is the total data, and sum2 is the sum of squares of the data.)
The description content is as follows.
また図14(B)中のモジュールM313「EXTRACT」は、「param」として指定されているデータを抽出するモジュールであり、上述したフォーマットを受けると「max」の値120を出力する。 Further, the module M313 "EXTRAC T" in FIG. 14B is a module for extracting data designated as "param", and outputs a value 120 of "max" when it receives the above-mentioned format.
例えば、図中のセンサID−1が、秒間に1000個の計測データを出力する場合、図14(A)に示す構成では、モジュールM304とモジュールM305でのメッセージ量は秒間2000個となる。 For example, when the sensor ID-1 in the figure outputs 1000 measurement data per second, the amount of messages in the module M304 and the module M305 is 2000 per second in the configuration shown in FIG. 14A.
一方、図14(B)に示す共有化後の構成では、モジュールM307、モジュールM311、モジュールM312の秒間合計のメッセージ量は1002個となり、概ね半減することが可能となる。 On the other hand, in the post-sharing configuration shown in FIG. 14B, the total number of messages per second for the module M307, the module M311 and the module M312 is 1002, which can be substantially halved.
また計算量においても、共有化前のモジュールM202とモジュールM203で秒間2000回の処理を行なっていたのに対し、共有化後のモジュールM308、モジュールM311、モジュールM312で秒間1002回の処理と、計算量も概ね半減できる。 In terms of the amount of calculation, the module M202 and the module M203 before sharing performed 2000 times per second, whereas the modules M308, M311 and M312 after sharing performed 1002 times per second, and the calculation was performed. The amount can be halved.
図15は、第1のモジュール共有化処理の第4の例を示す図であり、上記(4)の相互の上位互換モジュールの場合を示す。図15(A)に示すようなモジュール構成があった場合、モジュールM402とモジュールM403に注目すると、相互の上位互換モジュールで共有化できる。ここで、上記図11(C)で示したプログラム「UP_SHARE_CHECK_STAT」に問い合わせることで、図15(B)中のモジュールM412に示すような構成が返却される。 FIG. 15 is a diagram showing a fourth example of the first module sharing process, and shows the case of the mutual upward compatible module of the above (4). When there is a module configuration as shown in FIG. 15A, paying attention to the module M402 and the module M403, they can be shared by mutual upward compatible modules. Here, by inquiring about the program "UP_SHARE_CHECK_STAT" shown in FIG. 11 (C), the configuration as shown in the module M412 in FIG. 15 (B) is returned.
ここで共有化により、モジュール数が増加するものの、システムの消費リソース数が抑えられるものとなる。 Here, sharing increases the number of modules, but reduces the number of resources consumed by the system.
ここでは、上記図14に示した場合と同様に、簡単な統計量を得るモジュール構成の場合について説明したが、本実施形態はこれに限らず、データの例は画像、複合センサの値や、機械学習用に加工したデータなど、IoTシステム上で様々なものを取扱うことが可能であるものとする。 Here, the case of the module configuration for obtaining simple statistics has been described as in the case shown in FIG. 14, but the present embodiment is not limited to this, and examples of data include images, values of composite sensors, and the like. It is assumed that various things such as data processed for machine learning can be handled on the IoT system.
上記図7のステップS202における第1のモジュール共有化処理が終了すると、次に配置計算部14では等価モジュール展開処理として、上記モジュール構成C2に含まれる各モジュールについて、可能な置き換え処理を実行し、それをモジュール構成の集合C3として格納する(ステップS203)。 When the first module sharing process in step S202 of FIG. 7 is completed, the arrangement calculation unit 14 then executes a possible replacement process for each module included in the module configuration C2 as an equivalent module expansion process. It is stored as a set C3 of the module configuration (step S203).
すなわち、上記モジュール構成C2に含まれるモジュールについて、等価なモジュール列を求めて、置き換えをおう。ここで等価なモジュールとは、置き換えたとしてもデータ処理上は同一の処理が行なえることを示す。各モジュールについて、置き換え対象が複数ある場合、それらすべてのパターンを置き換える。 That is, the modules included in the module configuration C2 are replaced by finding an equivalent module sequence. Here, the equivalent module indicates that the same processing can be performed in terms of data processing even if they are replaced. If there are multiple replacement targets for each module, replace all those patterns.
例えば、上記図11(A)で示したモジュール構成C2で、モジュールAとモジュールBの2つのモジュールがあった場合、それぞれに2通りの置き換えパターンがあれば、9種類のモジュール構成をモジュール構成の集合C3として出力する。 For example, in the module configuration C2 shown in FIG. 11 (A) above, when there are two modules, module A and module B, if there are two replacement patterns for each, nine types of module configurations can be configured as module configurations. Output as a set C3.
図17は、この点をあらためて説明する図である。モジュールAの等価モジュールとしてモジュールA1とモジュールA2があり、モジュールBの等価モジュールとしてモジュールB1とモジュールB2があるものとする。この図17のモジュール構成の状態を[A,B]と記述すると、上記ステップS203での等価モジュール展開処理により、[A,B][A,B1][A,B2][A1,B][A1,B1][A1,B2][A2,B][A2,B1][A2,B2]の計9種類のモジュール構成が置き換え可能な等価のモジュール列として出力される。 FIG. 17 is a diagram for explaining this point again. It is assumed that there are modules A1 and A2 as equivalent modules of module A, and there are modules B1 and B2 as equivalent modules of module B. When the state of the module configuration in FIG. 17 is described as [A, B], the equivalent module expansion process in step S203 described [A, B] [A, B1] [A, B2] [A1, B] [ A total of nine types of module configurations, A1, B1], [A1, B2], [A2, B], [A2, B1], and [A2, B2], are output as replaceable equivalent module sequences.
実際に等価なモジュール列の集合を求める方法は2通り存在する。
第1の方法は、上記図1の基盤管理部10内のデータベース11に予め用意する等価モジュール表に記載されたモジュール列を検索することで、等価なモジュール列の集合C3を求める方法である。
There are two ways to actually find the equivalent set of module sequences.
The first method is a method of obtaining a set C3 of equivalent module sequences by searching the module sequences described in the equivalent module table prepared in advance in the database 11 in the infrastructure management unit 10 of FIG. 1.
図16(A)は、この等価モジュール表の内容を例示するものであって、データベース11を検索することで等価なモジュール列の算出が可能となる。なおこの図16(A)に示す表では、各モジュールの設定が1つである場合について説明しているが、2つ以上であっても良い。 FIG. 16A exemplifies the contents of this equivalent module table, and it is possible to calculate the equivalent module column by searching the database 11. In the table shown in FIG. 16A, the case where each module is set to one is described, but the number may be two or more.
また図17では、置換先のモジュールは2個である場合について説明したが、3個以上であっても良い。置換先モジュールが最大nとなるような表においても、n未満の数kの置換モジュール列を、置換先モジュールk+1の値を空白にすることで表現が可能となる。 Further, in FIG. 17, the case where the number of replacement modules is two has been described, but the number may be three or more. Even in a table in which the maximum number of replacement modules is n, a sequence of replacement modules of several k less than n can be expressed by leaving the value of the replacement module k + 1 blank.
また第2の方法は、等価なモジュール列を求めるプログラムが、上記図1の基盤管理部10内のデータベース11に予め用意する等価モジュール列算出プログラム表に登録されており、当該表を用いた問い合せを実行することで、等価なモジュール列の集合C3を得る方法である。 In the second method, a program for obtaining an equivalent module sequence is registered in the equivalent module column calculation program table prepared in advance in the database 11 in the infrastructure management unit 10 of FIG. 1, and an inquiry using the table is performed. Is a method of obtaining a set C3 of equivalent module sequences by executing.
図16(B)は、この等価モジュール列算出プログラム表の内容を例示するものであって、ここで示されるプログラムに対して、置換元のモジュール名、及び置換元の設定パラメータを渡すことで、置換先モジュールの配列と、その設定とが当該プログラムから返される。 FIG. 16B exemplifies the contents of this equivalent module column calculation program table, and by passing the module name of the replacement source and the setting parameter of the replacement source to the program shown here, The program returns an array of replacement modules and their settings.
また上記等価モジュール列算出プログラム表で示されるプログラムに、生成するモジュール数の上限を与えることもできる。等価モジュール展開の目的としては、垂直方向に経由するデータ処理ノード数に対して処理を分散するための候補を得ることと、より基本的なロジックに分解することで、上述したモジュール共有化の実現角度を上げることにある。 Further, the upper limit of the number of modules to be generated can be given to the program shown in the equivalent module column calculation program table. The purpose of the equivalent module expansion is to obtain the candidates for distributing the processing with respect to the number of data processing nodes passing in the vertical direction, and to decompose it into more basic logic to realize the above-mentioned module sharing. It is to raise the angle.
したがって、垂直方向に経由するデータ処理ノードの数に対して大きい数の等価モジュールに展開したとしても大きな効用は得られず、無駄に計算時間を消費するという結果が得られるだけとなる。そのため、生成するモジュールの上限としては、垂直方向に並ぶデータ処理ノードの数の2倍程度を与えれば十分であると考えられる。 Therefore, even if it is expanded to a large number of equivalent modules with respect to the number of data processing nodes passing through in the vertical direction, a large utility cannot be obtained, and the result is that the calculation time is wasted. Therefore, it is considered sufficient to give about twice the number of data processing nodes arranged in the vertical direction as the upper limit of the modules to be generated.
なお上記図16(B)で示した等価モジュール列算出プログラムは、対応するモジュールの性質を習熟した開発者によって記載されたプログラムであることを前提とする。 It is assumed that the equivalent module sequence calculation program shown in FIG. 16B is a program described by a developer who is proficient in the properties of the corresponding modules.
上記図7のステップS203における等価モジュール展開処理が終了すると、次に配置計算部14では第2のモジュール共有化処理として、上記モジュール構成の集合C3の各要素に対して、モジュール共有化処理が実施できれば、そのまま実施してモジュール構成の集合C4に加える(ステップS204)。 When the equivalent module expansion process in step S203 of FIG. 7 is completed, the arrangement calculation unit 14 then performs the module sharing process for each element of the set C3 of the module configuration as the second module sharing process. If possible, it is carried out as it is and added to the set C4 of the module configuration (step S204).
なお、上記ステップS202で説明した共有化処理とほぼ同様の手法で共有化処理を実行するが、上記ステップS202では見つけた順序に従って共有化処理を行なっていたのに対し、ここでは共有化を行なう順序もバリエーションとして考慮する点で相違する。 The sharing process is executed by almost the same method as the sharing process described in step S202, but in step S202, the sharing process is performed according to the order found, but here, sharing is performed. The difference is that the order is also considered as a variation.
すなわち、モジュール構成C2に含まれるモジュールの内、共有可能なモジュールの組み合せを検索し、その候補毎に共有化した構成を得る。 That is, among the modules included in the module configuration C2, a combination of sharable modules is searched, and a shared configuration is obtained for each candidate.
図18(A)は、具体的なモジュール構成の例を示している。ここでは、モジュール構成C2が部分モジュール構成S301,S302を有し、部分モジュール構成S301のモジュールM1とモジュールM2を共有化してモジュール構成S304、同モジュールM2とモジュールM3を共有化してモジュール構成S303、モジュールM2とモジュールM3を共有化してモジュール構成S305をそれぞれ求めるものとする。 FIG. 18A shows an example of a specific module configuration. Here, the module configuration C2 has the partial module configurations S301 and S302, and the module M1 and the module M2 of the partial module configuration S301 are shared to form the module configuration S304, and the module M2 and the module M3 are shared to be the module configuration S303 and the module. It is assumed that M2 and module M3 are shared to obtain the module configuration S305.
この手順を、モジュール構成C2内の別の部分モジュール構成S302や、上記新たに作成されたモジュール構成S303,S304,S305に適用し、さらに新たなモジュール構成で作成できなくなるまで繰返し実行することで、図18(B)に示すようなモジュール構成の集合S310が生成される。 This procedure is applied to another partial module configuration S302 in the module configuration C2 and the newly created module configurations S303, S304, and S305, and is repeatedly executed until the new module configuration cannot be created. A set S310 having a module configuration as shown in FIG. 18B is generated.
上記ステップS204で作成するモジュール構成の集合C4としては、モジュール構成の集合S310に含まれるすべての構成を入れても良いし、また集合S310の端部側に存在する、それ以上共有化が進められない構成と311,312,S313,S314,S315のみをモジュール構成の集合C4に入れても良い。 As the set C4 of the module configurations created in step S204, all the configurations included in the set S310 of the module configurations may be included, or the set C4 existing on the end side of the set S310 is further shared. Only the no configuration and 311, 312, S313, S314, S315 may be included in the set C4 of the module configuration.
これらは、配置計算部14による配置計算に要するコストと、最適解の探索の漏れをどの程度許容するかの兼ね合いにより決定される。 These are determined by the balance between the cost required for the placement calculation by the placement calculation unit 14 and the degree to which the omission of the search for the optimum solution is allowed.
上記図7のステップS204における第2のモジュール共有化処理が終了すると、次に配置計算部14では実ノードデバイスへの割付処理を実行する(ステップS205)。 When the second module sharing process in step S204 of FIG. 7 is completed, the arrangement calculation unit 14 then executes the allocation process to the real node device (step S205).
ここで配置計算部14では、上記モジュール構成の集合C4の要素である個々のモジュール構成に対して、モジュールを各データ処理ノードに割り付けて、その構成を集合C5に加えていく。割り当て方法が複数ある場合には、複数の要素として上記集合C5に加える。 Here, the arrangement calculation unit 14 allocates modules to each data processing node for each module configuration which is an element of the set C4 of the module configuration, and adds the configuration to the set C5. When there are a plurality of allocation methods, they are added to the set C5 as a plurality of elements.
より詳細には、まず注目する構成に対応して、データ処理ノードの構成への割り当てを行なう。図19(A)は、注目する構成であるモジュールA、モジュールBからなる2つのモジュールを示した例である。図中の「VL」は仮想的なリンクを意図する接頭語である。 More specifically, first, the data processing node is assigned to the configuration corresponding to the configuration of interest. FIG. 19A is an example showing two modules including module A and module B, which are the configurations of interest. "VL" in the figure is a prefix intended as a virtual link.
これに対して、図19(B)は、データ処理ノードであるノード1〜ノード4の構成を例示している。図中の「PL」は物理的なリンクを意図する接頭語である。 On the other hand, FIG. 19B illustrates the configuration of nodes 1 to 4 which are data processing nodes. "PL" in the figure is a prefix intended for a physical link.
基本的には、モジュール数とノード数との積の数だけ割付方法が存在するが、その中には明らかに非効率である方法、実行が困難である方法が含まれているので、それらの方法を除いていく。 Basically, there are as many allocation methods as there are products of the number of modules and the number of nodes, but some of them are obviously inefficient and some are difficult to execute. Exclude the method.
一方のデータ処理ノードでは、用意されているリソース量や、その保持している特別な機能も管理している。また、例えばCPUのタイプなどのハードウェア上の特性なども管理している。 On the other hand, the data processing node also manages the amount of resources provided and the special functions they hold. It also manages hardware characteristics such as CPU type.
他方の、データ処理を行なうモジュールについても、最低限必要なリソースや、必要とする特別な機能、必要なCPUのタイプなどのハードウェア上の特性を管理している。 On the other hand, the module that processes data also manages hardware characteristics such as the minimum required resources, required special functions, and required CPU type.
したがって、これらモジュールとデータ処理ノードの各情報に基づいて、割付可能なパターンを生成する。例えば、図19に示した各構成において、
ノード3←モジュールA、且つ
ノード1←モジュールB
のパターンと、
ノード3←モジュールA、且つ
ノード2←モジュールB
のパターンの計2種類のパターンを算出できる。
Therefore, an assignable pattern is generated based on each information of these modules and the data processing node. For example, in each configuration shown in FIG.
Node 3 ← Module A and
Node 1 ← Module B
Pattern and
Node 3 ← Module A and
Node 2 ← Module B
A total of two types of patterns can be calculated.
なお実際に実ノードデバイスへの割り付けを実行するに当たって、配置計算部14は図20(A)に示すような、資源管理部13で管理されるノード情報のテーブルを参照することで、割り付けが困難なモジュールを算出できる。 In actually executing the allocation to the actual node device, the allocation calculation unit 14 is difficult to allocate by referring to the node information table managed by the resource management unit 13 as shown in FIG. 20 (A). Modules can be calculated.
モジュールが対応しているCPUアーキテクチャでなければそのノードを配置することはできず、モジュールの必要とするリソースが当該データ処理ノードのリソース量を超えている場合も同様に配置は困難となる。 The node cannot be arranged unless the CPU architecture is supported by the module, and it is similarly difficult to arrange the node when the resource required by the module exceeds the resource amount of the data processing node.
なお、1つのデータ処理ノードでは、共有化により複数のモジュールが動作することになるが、このステップS205では、他のモジュールに関しては考慮せず、単一のモジュールがそのデータ処理ノードのリソースを占有した場合に配置可能かどうかを判定する。 In one data processing node, a plurality of modules will operate due to sharing, but in this step S205, no consideration is given to other modules, and a single module occupies the resources of the data processing node. If so, determine whether or not it can be placed.
また資源管理部13には、図20(B)に示すモジュール情報と、図20(C)に示すセンサ情報とが併せて管理されている。 Further, the resource management unit 13 manages the module information shown in FIG. 20 (B) and the sensor information shown in FIG. 20 (C) together.
このモジュール情報における「1Eventに必要な処理ステップ数」「必要メモリ数」「必要ストレージ量」「データ出力頻度」「出力データサイズ」や、センサ情報における「Event発生頻度」「データサイズ」については、固定値のようにして記載しているが、統計的な数値、例えば最小値、最大値、平均値、標準偏差などを記載し、それらの記載内容に基づいて統計的な判断を実施して、割り付けの可否を判定しても良い。 Regarding "number of processing steps required for 1 event", "number of required memories", "required storage amount", "data output frequency", "output data size" in this module information, and "event occurrence frequency" and "data size" in sensor information, Although it is described as a fixed value, statistical values such as minimum value, maximum value, mean value, standard deviation, etc. are described, and statistical judgment is made based on the description contents. It may be determined whether or not the allocation is possible.
なお、上述した如く、テーブルを探索することで必要なリソース量を見積もる構成とする以外にも、モジュールの開発者によって作成された、別の目的のプログラムであるモジュールのヘルパープログラムに対して、必要なリソース量を問い合わせる仕組みで実現するものとしても良い。 As mentioned above, in addition to the configuration that estimates the required resource amount by searching the table, it is necessary for the helper program of the module, which is another target program created by the module developer. It may be realized by a mechanism to inquire about the amount of resources.
その場合、入力イベント頻度を引数として渡す構成とすることにより、必要リソースが、入力イベント頻度の関数となる場合でも、高い精度で近似することができる。 In that case, by passing the input event frequency as an argument, even if the required resource is a function of the input event frequency, it can be approximated with high accuracy.
続いてネットワークのリソースを割り付ける場合について説明する。
ここでは、図21に示すように示すように、
モジュールA:ノード3、且つ
モジュールB:ノード1
に割り付ける場合を例にとって説明する。
Next, a case where network resources are allocated will be described.
Here, as shown in FIG.
Module A: Node 3 and
Module B: Node 1
The case of allocating to is described as an example.
前のステップS204で決定されたモジュール間のリンクをマッピングすることで、
PL4←VL3
PL5←VL4−1
PL3←VL4−2
PL2←VL4−3+VL2
PL1←VL1
となる構成を割り付けることができる。ここで、仮想的リンクVL4は、仮想的リンクVL4−1,VL4−2,VL4−3の連結として表されている。
By mapping the links between the modules determined in the previous step S204,
PL4 ← VL3
PL5 ← VL4-1
PL3 ← VL4-2
PL2 ← VL4-3 + VL2
PL1 ← VL1
Can be assigned. Here, the virtual link VL4 is represented as a connection of the virtual links VL4-1, VL4-2, and VL4-3.
上記図7のステップS205における実ノードデバイスへの割付処理が終了すると、次に配置計算部14では収容可否の判定処理を実行する(ステップS206)。 When the allocation process to the actual node device in step S205 of FIG. 7 is completed, the arrangement calculation unit 14 then executes the accommodation availability determination process (step S206).
配置計算部14は、資源管理部13に問い合わせたリソース量に対して、上記モジュール構成の集合C5の要素が収容できるかどうかを判定し、可能であると判定した場合に集合C6に収容する。また、その際に、各リソースの利用率を合わせて算出しておく。 The arrangement calculation unit 14 determines whether or not the elements of the set C5 of the module configuration can be accommodated with respect to the amount of resources inquired to the resource management unit 13, and if it is determined that it is possible, accommodates the elements in the set C6. At that time, the utilization rate of each resource is also calculated.
図22(A)は、資源管理部13に管理されるリンク情報のテーブルを例示する図である。上記モジュール構成の集合C5の要素には、物理的なリソースに対する割当構成が含まれている。例えば、
ノード1←モジュールB+モジュールC
ノード2←モジュールA
PL4←VL3
PL5←VL4−1
PL3←VL4−2
PL2←VL4−3+VL2
PL1←VL1
となる構成が挙げられる。上記記号「←」は、この記号を挟んで右辺側のモジュールあるいは仮想的リンクを左辺側の物理的リンクに割り当てることを示している。
FIG. 22A is a diagram illustrating a table of link information managed by the resource management unit 13. The elements of the set C5 of the module configuration include an allocation configuration for physical resources. For example
Node 1 ← Module B + Module C
Node 2 ← Module A
PL4 ← VL3
PL5 ← VL4-1
PL3 ← VL4-2
PL2 ← VL4-3 + VL2
PL1 ← VL1
The configuration is as follows. The above symbol "←" indicates that the module or virtual link on the right side is assigned to the physical link on the left side across this symbol.
ここで配置計算部14は、物理的な資源の各要素が、割り当てられる対象の該当要素の総和を上回っていることを確認する。 Here, the placement calculation unit 14 confirms that each element of the physical resource exceeds the sum of the corresponding elements to be allocated.
すべての物理的資源において、上記が満たされているならば割当可能であるものと判定して、上記集合C6の要素として格納する。 For all physical resources, if the above is satisfied, it is determined that the resource can be allocated, and it is stored as an element of the set C6.
なお、安全係数(k)を「0.9」として、上記の比較を行なうこともできる。この場合、次式
物理的な資源の各要素*k<Σ(割当対象の該当する各要素)
が成立するか否かにより、物理的な資源の各要素が、割り当てられる対象の該当要素の総和を上回っていることを確認する。なお、上記安全係数(k)は、リソースの種別毎に異なるベクトルk=(k1,k2,‥‥,kn)を予め用意するものとしても良い。
The above comparison can also be performed with the safety factor (k) set to "0.9". In this case,
Each element of physical resource * k <Σ (each corresponding element to be allocated)
It is confirmed that each element of the physical resource exceeds the sum of the corresponding elements to be allocated, depending on whether or not is satisfied. The safety factor (k) may be such that different vectors k = (k 1 , k 2 , ..., K n ) are prepared in advance for each resource type.
さらに、上述した如く各要素のリソースの利用率も算出し、ベクトルとして保持しておく。ここで保持する内容は、次式
Σ(割当対象の該当の各要素/物理的資源の各要素*k)
で表される。図22(B)は、このとき配置計算部14により保持されるリソース使用率のベクトルを例示するものである。
Further, as described above, the resource utilization rate of each element is also calculated and held as a vector. The content to be held here is the following formula
Σ (corresponding element to be allocated / each element of physical resource * k)
It is represented by. FIG. 22B exemplifies the resource usage vector held by the placement calculation unit 14 at this time.
なお、課金モデルも含めて計算を行なうことで、当該構成において一定期間、例えば1ヶ月間運用する場合のコストを算出することもできる。上記リソースの使用率、及びコストの情報を、集合C6に格納する際の付加情報として併せて格納する。 In addition, by performing the calculation including the billing model, it is possible to calculate the cost when operating the configuration for a certain period, for example, one month. Information on the utilization rate and cost of the above resources is also stored as additional information when storing in the set C6.
上記の処理を、上記集合C5に含まれるすべての要素について実施することで、新たなモジュール構成の集合C6が作成される。 By carrying out the above processing for all the elements included in the set C5, a set C6 having a new module configuration is created.
なお、アプリケーション要件中に性能要件が記載されている場合には、そのアプリケーション要件中の性能要件への適合性の確認も、上記収容可否の判定処理の一部として実施する。 If the performance requirement is described in the application requirement, confirmation of conformity with the performance requirement in the application requirement is also performed as a part of the above-mentioned accommodation availability determination process.
この場合、実際に割り当てられた構成に関して、各モジュールの処理ステップ数、格データ処理ノードの、単位時間当たりの演算可能ステップ数、及び各ネットワークの帯域から、スループットやレイテンシを算出できる。 In this case, the throughput and latency can be calculated from the number of processing steps of each module, the number of operable steps per unit time of the case data processing node, and the bandwidth of each network with respect to the actually assigned configuration.
これによって、各アプリケーションの便益と比較する。便益が1未満となるアプリケーションが存在した場合には、その構成は適合していないものと判断する。 This compares the benefits of each application. If there is an application with a benefit of less than 1, it is determined that the configuration is not suitable.
また、アプリケーションの便益を、例えばベクトル「bapp1」「bapp2」‥‥「bappn」に対応するベクトル値「1.1」「1.2」‥‥「1.5」からなるベクトル列としておき、構成に付属した情報として保持しておくことで、後のステップで利用するものとしても良い。 Further, the benefit of the application is, for example, a vector sequence consisting of vector values "1.1", "1.2", and "1.5" corresponding to the vectors "b app1 ", "b app2 ", and "b appn ". By keeping it as information attached to the configuration, it may be used in a later step.
上記図7のステップS206における収容可否の判定処理が終了すると、最後に配置計算部14では、最適構成の選択処理を実行して(ステップS207)、以上でこの配置計算の処理を終了する。 When the accommodation / non-accommodation determination process in step S206 of FIG. 7 is completed, the arrangement calculation unit 14 finally executes the optimum configuration selection process (step S207), and finally ends the arrangement calculation process.
より詳細には、配置計算部14は集合C6の要素と、それに付加されているリソース使用率のベクトル、及び月間等のコストの情報により、最適な構成を判断する。 More specifically, the arrangement calculation unit 14 determines the optimum configuration from the elements of the set C6, the vector of the resource usage rate added to the set C6, and the cost information such as monthly.
そのための手法としては、「1.リソース使用率の平均が低いもの」「2.リソース種別に応じて重みを変えたリソース使用率の平均が低いもの」「3.最大のリソース使用率が低いもの」「4.月間コストが最低のもの」「5.アプリケーションの便益が高いもの」のいずれかで判断することが考えられる。 The methods for this are "1. Low average resource usage rate", "2. Low average resource usage rate with different weights according to resource type", and "3. Low maximum resource usage rate". It is conceivable to judge by either "4. The one with the lowest monthly cost" or "5. The one with the highest benefit of the application".
以下、特に上記「1.」乃至「3.」の各手法に関しては、目的関数を例示する。 Hereinafter, the objective function will be illustrated with respect to each of the methods "1." to "3."
上記「1.リソース使用率の平均が低いもの」では、例えば目的関数として次式
avg(r1,r2,‥‥rn)
を用いる。
In the above "1. The average resource usage rate is low", for example, the following equation is used as the objective function.
avg (r 1, r 2, ‥‥ r n)
Is used.
上記「2.リソース種別に応じて重みを変えたリソース使用率の平均が低いもの」では、目的関数
a=(r1,r2,‥‥rn),且つ Σan=1となるaをrに乗じた、
a・r=a1×r1+a2×r2+‥‥+an×rn)
を用いる
上記「3.最大のリソース使用率が低いもの」では、システム全体での安全係数に、目的関数
max(r1,r2,‥‥rn)
を用いる。
In the above "2. Those with a low average resource usage rate with different weights according to the resource type", the objective function
a = (r 1, r 2 , ‥‥ r n), a and? a n = 1 and becomes a multiplied to r,
a · r = a 1 × r 1 + a 2 × r 2 + ‥‥‥ + an n × r n )
In the above "3. The one with the lowest maximum resource usage rate", the objective function is added to the safety factor of the entire system.
max (r 1, r 2, ‥‥ r n)
Is used.
さらに、上記「1.」〜「5.」で示した手法を複数組み合わせて判断することによっても、上記ステップS207での最適構成の選択処理を容易に実現できる。 Further, the selection process of the optimum configuration in step S207 can be easily realized by making a judgment by combining a plurality of the methods shown in "1." to "5.".
なお、上記図7以下で説明した配置計算部14による配置計算の方法では、可能な構成をすべて列挙した後に最良のものをそれらの中から選択する、という方法をとっていた。 In the method of the arrangement calculation by the arrangement calculation unit 14 described in FIG. 7 and below, the method of listing all the possible configurations and then selecting the best one from them was adopted.
一方で、局所探索法というアルゴリズムが知られており、この局所探索法を適用した方法でも最適な構成の配置構成を得ることができる。 On the other hand, an algorithm called a local search method is known, and a method applying this local search method can also obtain an optimal arrangement configuration.
図23は、その処理過程を簡略化して示すものである。上記ステップS202の第1のモジュール共有化処理で得られた初期構成(S501)を出発点として、等価モジュールの展開処理(E)や、共有モジュール化処理(S)の手順を1つずつ進めて、モジュール構成を増やしていく。 FIG. 23 shows the processing process in a simplified manner. Starting from the initial configuration (S501) obtained in the first module sharing process of step S202, the steps of the equivalent module expansion process (E) and the shared modularization process (S) are advanced one by one. , Increase the module configuration.
その構成について、実ノードデバイスへの割付処理と収容可否の判定処理とを行ない、上述した目的関数による演算を適宜実行して、その構成に対する評価を取得する。 With respect to the configuration, allocation processing to the actual node device and accommodation / non-accommodation determination processing are performed, and the calculation by the above-mentioned objective function is appropriately executed to obtain an evaluation for the configuration.
それらの評価値の中で最も高い値となった構成から、さらに等価モジュールの展開処理(E)や、共有モジュール化処理(S)を進めるか、あるいは進めるケースが存在しない場合には一旦前のノードに戻り、あるいは、ある程度の目的関数の改悪を許容して、探索するノード構成を全ノード内から選択し直す、などの工程を順次実行する。 From the configuration with the highest value among those evaluation values, further proceed with the expansion process (E) of the equivalent module and the shared modularization process (S), or if there is no case to proceed, the previous one. The process of returning to the node or allowing the objective function to be deteriorated to some extent and reselecting the node configuration to be searched from all the nodes is sequentially executed.
これらの手順を、ある程度の回数だけ繰返し実行することで、探索した中から最良の回を得るものである。上記した繰返しの程度としては、予め決められた回数を実行した場合、目的関数の向上が収束した場合、全部の可能な構成を探索した場合、アニーリング法と呼ばれる目的関数の改悪する遷移を許す温度パラメータを用いて判定する場合などのいずれかが選択可能となる。 By repeating these procedures a certain number of times, the best number of searches can be obtained. As for the degree of repetition described above, when a predetermined number of times are executed, when the improvement of the objective function converges, when all possible configurations are searched, a temperature that allows a worsening transition of the objective function called annealing method. Either of the cases where the judgment is made using parameters can be selected.
さらに、上記図23で示した局所探索法では、一度割付可能な構成を求めた場合に、その構成で一旦データ処理ノードにモジュールを配備して機能提供を開始した後、並行して、より良い構成の探索を行ない、特定の時間が経過したタイミングで、より良い構成に変更する、という手法を採ることも可能となる。 Further, in the local search method shown in FIG. 23, when a configuration that can be assigned once is obtained, it is better to deploy the module to the data processing node once with the configuration and start providing the function, and then in parallel. It is also possible to search for a configuration and change to a better configuration when a specific time has passed.
また上記図6のステップS107において、配置計算部14から再配置の可否を示す結果の通知を受けた要件管理部12では、その通知の内容が、リソースが不足しており、割り当てるモジュール構成が存在しないものであった場合に、次の手順を実行するものとしても良い。 Further, in step S107 of FIG. 6, the requirements management unit 12 that has received the notification of the result indicating whether or not the relocation is possible from the arrangement calculation unit 14 has insufficient resources for the content of the notification, and there is a module configuration to be allocated. If not, the following steps may be performed.
すなわち要件管理部12は、複数のアプリケーション要件のうちで、重要度の低いものを停止させることで、新規アプリケーションを受付けられるかを探索する。新規のアプリケーション要件のうち、最大の優先度となるアプリケーション要件を残して、その他のアプリケーション要件を除外した上で、配置計算部14に対して再度の配置計算を要求する。この要件を考慮する最低の優先度を「実行可能優先度」と呼称することとする。 That is, the requirement management unit 12 searches for whether or not a new application can be accepted by stopping one of the plurality of application requirements that is less important. Among the new application requirements, the application requirement having the highest priority is left, other application requirements are excluded, and then the placement calculation unit 14 is requested to perform the placement calculation again. The lowest priority that takes this requirement into account is referred to as the "executable priority".
例えば、既存のアプリケーション要件とその優先度が、
10:App_Critical
7:App_Important
4:App_soso
1:App_just_test
であり、新規のアプリケーション要件とその優先度が
8:App_Very_Important
5:App_just_for_fun
であった場合に、「実行可能優先度」として上記新規側の「8」のアプリケーション要件を選択する。
For example, existing application requirements and their priorities
10: App_Critical
7: App_Important
4: App_soso
1: App_just_test
And the new application requirements and their priorities
8: App_Very_Important
5: App_just_for_fun
If this is the case, the application requirement of "8" on the new side is selected as the "executable priority".
この状態で配置計算部14により再度の配置計算が行なわれ、アプリケーション要件を実行可能なモジュール構成が得られない場合は、その通知の内容に従って、上記ステップS108において、要件管理部12がアプリケーション5に対して要件受付の可否回答として不可である旨を通知する。 In this state, the placement calculation unit 14 performs the placement calculation again, and if a module configuration capable of executing the application requirement cannot be obtained, the requirement management unit 12 informs the application 5 in step S108 according to the content of the notification. In response, we will notify you that it is not possible to answer whether or not the requirements are accepted.
また再度の配置計算の結果、アプリケーション要件を実行可能なモジュール構成が得られた場合、配置計算部14では実行可能優先度を1減じた上で再度配置計算を実行する、という処理を、アプリケーション要件を実行可能なモジュール構成が得られなくなるまで繰返し実行する。 Further, as a result of the placement calculation again, when a module configuration capable of executing the application requirement is obtained, the placement calculation unit 14 decrements the executable priority by 1 and then executes the placement calculation again. Is repeated until no executable module configuration is obtained.
アプリケーションの示した新規の要件をすべて実行可能であると判定できた場合は全面的に可である旨の通知、一部分であるが実行可能であると判定できた場合は部分的に可である旨の通知を回答として通知する。 If it can be determined that all the new requirements indicated by the application are feasible, a notification that it is entirely acceptable, and if it can be determined that it is partially feasible, it is partially acceptable. Notify as an answer.
また、上記実施形態では説明しなかったが、データ処理ノードにおいて、リソースと動作させているモジュールを管理する小さなエージェントを、例えば利用資源管理部として動作させ、その利用資源管理部で測定された消費リソースを用いて、上記資源管理部13が管理するモジュール情報中のリソース量を更新設定することで、動的なモニタリングによる必要資源の算出が実現できる。 Further, although not described in the above embodiment, in the data processing node, a small agent that manages a resource and a module operating is operated as, for example, a resource management unit, and the consumption measured by the resource management unit is used. By updating and setting the amount of resources in the module information managed by the resource management unit 13 using the resources, it is possible to calculate the required resources by dynamic monitoring.
図24は、このときのシーケンス図を例示する。例えばデータ処理ノード1が有する利用資源測定部が、予め設定されたタイミングで配置実行管理部15に対してその時点での資源利用情報を通知する。 FIG. 24 illustrates a sequence diagram at this time. For example, the resource utilization measurement unit of the data processing node 1 notifies the arrangement execution management unit 15 of the resource utilization information at that time at a preset timing.
これを受けた配置実行管理部15が、同通知を資源管理部13に転送することで、資源管理部13ではモジュール構成に必要なリソース量を更新する処理を実行する。 Upon receiving this, the placement execution management unit 15 transfers the notification to the resource management unit 13, and the resource management unit 13 executes a process of updating the amount of resources required for the module configuration.
なお上記の処理は、データ処理ノードでモジュールを1つだけ実行している場合に実行するものとする。 It should be noted that the above processing is executed when only one module is executed in the data processing node.
また、モジュールの「資源管理部13で管理されているモジュール情報」に「精度高く測定されているフラグ」を付与設定することも考えられる。その場合、1つのデータ処理ノードで複数のモジュールが実行されているが、「精度高く測定されているフラグ」が付与されていないモジュールが1つだけである場合は、当該データ処理ノードでの全体の使用量から、「精度高く測定されているフラグ」が付与されているモジュールのリソース量を減算した差を、上記フラグが付与されていないモジュールの使用リソース量と見做して、更新することもできる。 It is also conceivable to add and set a "flag measured with high accuracy" to the "module information managed by the resource management unit 13" of the module. In that case, if multiple modules are executed in one data processing node, but only one module is not given the "highly accurate measurement flag", the whole in the data processing node. The difference obtained by subtracting the resource amount of the module to which the "highly accurate measurement flag" is given from the usage amount of is regarded as the resource amount of the module to which the above flag is not given, and is updated. You can also.
また、モジュールを切り替える際には、切り替え前後のモジュールを同時に配置し、センサデータに付与されている時刻、シーケンス番号に基づいてモジュールの切り替えを実行することにより、センサデータの欠落なしに、より効率的なモジュールへの切り替えを実施できる。 In addition, when switching modules, the modules before and after the switch are arranged at the same time, and the modules are switched based on the time and sequence number assigned to the sensor data, so that the sensor data is not lost and more efficient. It is possible to switch to a standard module.
図25は、このモジュールの切り替え処理を例示する図である。
同図では、センサID−0からのセンサデータが最初はデータ処理ノードAを介して、切り替え後はデータ処理ノードBを介してチャンネル0に入力される場合を例示している。当該センサデータには、タイムスタンプやシーケンス番号が格納されている。
FIG. 25 is a diagram illustrating a switching process of this module.
The figure illustrates a case where the sensor data from the sensor ID-0 is first input to the channel 0 via the data processing node A and then via the data processing node B after switching. Time stamps and sequence numbers are stored in the sensor data.
図25(A)において、配置実行管理部15はチャンネル0に対し、データ処理ノードBからの入力を指示があるまで無視するように伝える。 In FIG. 25A, the arrangement execution management unit 15 tells channel 0 to ignore the input from the data processing node B until instructed to do so.
その後、図25(B)に示すように、データ処理ノードBを配備し、データ処理ノードBからも、直近で受信したセンサID-0からのデータ中のタイムスタンプ及びシーケンス番号を取得する。 After that, as shown in FIG. 25 (B), the data processing node B is deployed, and the time stamp and the sequence number in the data from the most recently received sensor ID-0 are also acquired from the data processing node B.
ここで配置実行管理部15は、チャンネル0に対して、一定の余裕を持った時間、例えば1[秒]乃至5[秒]程度の後の、センサデータ中のタイムスタンプ及びシーケンス番号を通知して、そのタイムスタンプ及びシーケンス番号を越えてデータ処理ノードAから入力されるデータを無視すると共に、データ処理ノードBから入力されるデータを使うよう設定する。 Here, the arrangement execution management unit 15 notifies the channel 0 of the time stamp and the sequence number in the sensor data after a time having a certain margin, for example, about 1 [second] to 5 [second]. Therefore, the data input from the data processing node A beyond the time stamp and the sequence number is ignored, and the data input from the data processing node B is set to be used.
このように、センサデータの入力が中断することなく、配置しているモジュールの切り替えを行なうことが可能となる。 In this way, it is possible to switch the arranged modules without interrupting the input of the sensor data.
次に異常状態でモジュールを停止させる場合について説明する。
上記したように各データ処理ノードが利用資源測定部を有しているものとした場合、当該利用資源測定部は、そのノードで許容する収容上限、例えばリソース容量の80[%]を越えているかどうかを監視しており、その上限を超えた場合に、利用するアプリケーションのモジュールの優先度が低いモジュールを停止させて、より優先度の高いアプリケーションに影響が出ないように制御する。
Next, a case where the module is stopped in an abnormal state will be described.
Assuming that each data processing node has a resource utilization measurement unit as described above, does the resource utilization measurement unit exceed the accommodation upper limit allowed by the node, for example, 80 [%] of the resource capacity? It monitors whether or not, and if the upper limit is exceeded, the module of the application to be used is stopped and the module with lower priority is stopped so that the application with higher priority is not affected.
図26は、異常状態でのモジュール停止の実現方法を例示する図である。
図26(A)に示すように、データ処理ノードでは、利用資源測定部M601において、CPU、メモリなどのノード内のリソースを監視している。リソースの使用率が、予め設定された値、例えば80[%]を越えた場合、図26(B)に示すように、例えばデータ処理ノード1から配置実行管理部15に対して、現在のリソースの使用状況と共にリソースが枯渇した旨の通知を行なう(ステップS501)。
FIG. 26 is a diagram illustrating a method of realizing module stoppage in an abnormal state.
As shown in FIG. 26 (A), in the data processing node, the resource utilization measurement unit M601 monitors resources in the node such as a CPU and a memory. When the resource usage rate exceeds a preset value, for example, 80 [%], as shown in FIG. 26B, for example, the current resource is sent from the data processing node 1 to the placement execution management unit 15. Notifies that the resource has been exhausted along with the usage status of (step S501).
配置実行管理部15は、この通知に対応して実行可能優先度の計算と再設定処理を実行した上で(ステップS502)、各データ処理ノード1,2にモジュール停止命令を送信する(ステップS503,S504)。 The placement execution management unit 15 executes the execution priority calculation and the resetting process in response to this notification (step S502), and then transmits a module stop command to each data processing node 1 and 2 (step S503). , S504).
一方で配置実行管理部15は、要件管理部12に対して実行可能優先度の変更通知を送信する(ステップS505)。これを受けた要件管理部12は、アプリケーション5に対して停止を通知する(ステップS506)。 On the other hand, the placement execution management unit 15 transmits a change notification of the executable priority to the requirement management unit 12 (step S505). Upon receiving this, the requirements management unit 12 notifies the application 5 of the stop (step S506).
上記配置実行管理部15が、実行可能優先度の計算を行なう方法はいくつかある。例えば、
1.当該データ処理ノードで動作する最低優先度のモジュールに設定されている優先度よりも1だけ高い優先度とする手法、
2.予め、実行可能優先度を変えた場合の、理論的な各リソースのリソース使用率を算出しておき、当該リソースの釣果を解消できるような、実行可能優先度を選択する手法、
等である。
There are several methods for the placement execution management unit 15 to calculate the executable priority. For example
1. 1. A method in which the priority is set to 1 higher than the priority set in the module with the lowest priority that operates on the data processing node.
2. A method of calculating the theoretical resource usage rate of each resource when the executable priority is changed in advance, and selecting the executable priority so that the catch of the resource can be eliminated.
And so on.
図27は、配置実行管理部15による実行可能優先度とモジュールの管理の内容を例示する図である。
配置実行管理部15は、図示する如くデータ処理ノード毎の「モジュール名」と「対応するアプリケーションの最高優先度」、及び「実行状態」からなるテーブルを管理しており、モジュールが関係するアプリケーションのうち、最高の優先度のものを保持しておく。
FIG. 27 is a diagram illustrating the execution priority and the contents of module management by the arrangement execution management unit 15.
As shown in the figure, the placement execution management unit 15 manages a table consisting of a "module name", a "highest priority of the corresponding application", and an "execution state" for each data processing node, and manages a table of applications related to the module. Keep the one with the highest priority.
システム全体の実行可能優先度が変更された場合、配置実行管理部15では、上記テーブル中の「対応するアプリケーションの最高優先度」が、「実行可能優先度」以上となるモジュールを起動するよう、各データ処理ノードに命令する。 When the executable priority of the entire system is changed, the deployment execution management unit 15 starts the module whose "highest priority of the corresponding application" in the above table is equal to or higher than the "executable priority". Instruct each data processing node.
次に安全係数の変更処理について説明する。
上記配置計算部14は、各データ処理ノード、各リンクに対して安全係数を設定しておき、全リソース容量に安全係数を乗じた積を越えないように、モジュールの配置を計画する。
Next, the process of changing the safety factor will be described.
The layout calculation unit 14 sets a safety factor for each data processing node and each link, and plans the layout of the modules so as not to exceed the product of the total resource capacity multiplied by the safety factor.
また、実際にアプリケーションを実行中、上記安全係数を再設定することを可能とする。この場合、安全係数を変更したい場合には、動作が不可能となるアプリケーションの有無を検討し、そのようなアプリケーションがある場合には、その旨をシステム管理者に提示する。そして、提示した内容が了承される操作がなされた後に、当該アプリケーションに関するモジュールを停止し、実際に安全係数の変更設定に関する処理を実行する。 In addition, it is possible to reset the safety factor during the actual execution of the application. In this case, if you want to change the safety factor, consider whether there is an application that cannot operate, and if there is such an application, notify the system administrator to that effect. Then, after the operation in which the presented contents are accepted is performed, the module related to the application is stopped, and the process related to the change setting of the safety factor is actually executed.
なお、上記安全係数を変更した後に、上述した実行可能優先度に基づくアプリケーションの選択処理と同様の手順によって配置計算を実行することで、実行可能優先度を算出することができる。 After changing the safety factor, the executable priority can be calculated by executing the placement calculation by the same procedure as the application selection process based on the executable priority described above.
したがって、この実行可能優先度の値以下となるアプリケーションを選択し、システム管理者に提示して確認を求める。システム管理者により確認が得られた場合に、上記安全係数の変更、及び実行可能優先度の変更を実施し、それらに伴うモジュールの停止を実施する。 Therefore, select an application that is less than or equal to this executable priority value and present it to the system administrator for confirmation. When confirmation is obtained by the system administrator, the above safety factor and the executable priority are changed, and the module is stopped accordingly.
モジュール構成の配置を決定するタイミングとしては、新たなアプリケーションを追加する場合、及び安全係数を変更する場合を例にとって説明したが、これらの他にも、データ処理ノードが追加された場合、データ処理ノードが仮想化された計算機であって、割り当てられているリソースが変更された場合、ネットワークの容量が変更された場合、アプリケーションの要件が変更になった場合、センサの設置状況が変更された場合にも受信可能であり、これらの各タイミングにおいて同様の方法で実施できる。 As the timing to decide the arrangement of the module configuration, the case of adding a new application and the case of changing the safety factor have been described as an example, but in addition to these, when a data processing node is added, data processing is performed. If the node is a virtualized computer and the allocated resources change, the network capacity changes, the application requirements change, or the sensor installation changes. It can also be received in the same manner at each of these timings.
また、上記図25を用いて説明した如く、無中断でデータ処理ノードの切り替えを行なう場合には、一時的に動作させるモジュールの数が多くなる場合がある。その際には、上述した安全係数の変更設定を併せて一時的に実施し、優先度の低いアプリケーションに関するモジュールを停止させて、その後に上記無中断でのデータ処理ノードの切り替えを行なって、切り替え後に再度安全係数を元に戻す変更設定を行なうことで、優先度の高いアプリケーションに関しても、無中断でのモジュールの切り替えを実施することが可能となる。 Further, as described with reference to FIG. 25, when the data processing nodes are switched without interruption, the number of modules to be temporarily operated may increase. In that case, the above-mentioned change setting of the safety factor is also temporarily implemented, the module related to the application with low priority is stopped, and then the above-mentioned uninterrupted switching of the data processing node is performed to switch. By setting the change to restore the safety factor again later, it is possible to switch modules without interruption even for high-priority applications.
以下、図28乃至図32を用いて、これまでの説明を統括して、モジュール構成の再配置を行なう場合の動作について説明する。 Hereinafter, with reference to FIGS. 28 to 32, the operation in the case of rearranging the module configuration will be described by summarizing the explanations so far.
図28は、モジュールのチェーン化と等価交換の例を示す。図28(A)に示す、6[秒]毎の統計化を行なうモジュール「データ処理1」は、図28(B)に示す、2[秒]毎の統計化を行なうモジュール「データ処理2」、及びデータ3つ単位で統計化を行なうモジュール「データ処理3」の2段構成の列(チェーン)に置換しても、等価交換が成立する。 FIG. 28 shows an example of module chaining and equivalent exchange. The module "data processing 1" that performs statistics every 6 [seconds] shown in FIG. 28 (A) is the module "data processing 2" that performs statistics every 2 [seconds] shown in FIG. 28 (B). , And even if it is replaced with a two-stage column (chain) of the module "data processing 3" that performs statistics in units of three data, equivalent exchange is established.
上記図28(A)に示したモジュール構成から、図28(B)に示すモジュール構成へと配置を変更する場合を考える。 Consider a case where the arrangement is changed from the module configuration shown in FIG. 28 (A) to the module configuration shown in FIG. 28 (B).
図29は、中間データモジュールの組み換えによるリソース削減の例を示す。
まず図29(A)に示すように、6[秒]毎の統計化情報が欲しいアプリケーション1が既存のアプリケーションとして動作しており、そこに、同一のセンサの4[秒]毎の統計化情報が欲しい、新規のアプリケーション2が起動されたものとする。
FIG. 29 shows an example of resource reduction by rearranging the intermediate data module.
First, as shown in FIG. 29 (A), application 1 that wants statistical information every 6 [seconds] is operating as an existing application, and there is statistical information every 4 [seconds] of the same sensor. It is assumed that a new application 2 is started.
上述した「最小モジュールの取得」処理により、この図29(A)に示すような配置計画が実行される。また、上記図23を用いて説明した「局所探索法の適用」にて記述した方法で実施する場合で、且つ、後述する図29(B)の構成を取得するまでに時間を要する場合には、この図29(A)に示したモジュール構成で、とりあえず実際の運用が開始されるケースもあり得る。 By the above-mentioned "acquisition of minimum module" process, the arrangement plan as shown in FIG. 29 (A) is executed. Further, when the method described in "Application of local search method" described with reference to FIG. 23 is carried out, and when it takes time to acquire the configuration of FIG. 29 (B) described later. In the module configuration shown in FIG. 29 (A), there may be a case where the actual operation is started for the time being.
これに対して図29(B)に示すように、上記図29(A)のモジュール構成と等価のモジュール構成に変換し、さらにモジュール構成の共有化を図ることで、センサに対して(最大公約数である)2[秒]毎の統計化を行なうモジュール「データ処理3」と、データ3つ単位で統計化を行なうモジュール「データ処理4」、及びデータ2つ単位で統計化を行なうモジュール「データ処理5」とによる構成に置換することで、所望のモジュール構成を得ることができる。 On the other hand, as shown in FIG. 29 (B), by converting to a module configuration equivalent to the module configuration of FIG. 29 (A) and further sharing the module configuration, the sensor (maximum commitment). (Number) Module "Data processing 3" that performs statistics every 2 [seconds], module "Data processing 4" that performs statistics in units of 3 data, and module "Data processing 4" that performs statistics in units of 2 data A desired module configuration can be obtained by substituting with the configuration according to "Data processing 5".
例えばセンサからのデータが秒間に100件あるような場合には、図29(B)に示すようなモジュール構成に変更することで、データ処理ノードの負荷を大幅に低減できる。 For example, when there are 100 data from the sensor per second, the load on the data processing node can be significantly reduced by changing to the module configuration as shown in FIG. 29 (B).
また、アプリケーション1,2には、上記図29(A)に示した場合と同様の内容の処理データが渡されている。 Further, the processing data having the same contents as that shown in FIG. 29A is passed to the applications 1 and 2.
次に、図30により、上記図29で説明した手法に代わる、中間データモジュールの組み換えによるリソース削減の第2の例を示す。 Next, FIG. 30 shows a second example of resource reduction by rearranging the intermediate data module, which replaces the method described in FIG. 29.
図30(A)は、アプリケーション1に対して、全国に配置されたセンサからの統計情報を計算して提供している。そこに、特定地域に関する統計情報が欲しいアプリケーション2を新規に追加するものとする。 FIG. 30A calculates and provides statistical information from sensors arranged nationwide for application 1. It is assumed that the application 2 that wants the statistical information about a specific area is newly added there.
図30(B)は、「最小モジュールの取得」処理による配置変換により、上記図29(A)と同等のモジュール構成とした場合を示す。 FIG. 30B shows a case where the module configuration is equivalent to that of FIG. 29A by the arrangement conversion by the “acquisition of minimum module” process.
このモジュール構成に対して、複数のセンサが設置された地域に対応して、特定地域の統計化情報が欲しいモジュール「データ処理2」と、それ以外の地域の統計化情報を処理するモジュール「データ処理1」とにセンサ/モジュール間の接続構成を変えた上で、それらの統計化情報を取り纏めて全国の統計化情報を取得するモジュール「データ処理3」を配置するモジュール構成となるように、上述した如く配置計算を行なうことにより、図30(C)に示すような、モジュール構成に変換することが可能となる。 For this module configuration, the module "Data Processing 2" that wants statistical information of a specific area corresponding to the area where multiple sensors are installed, and the module "Data" that processes the statistical information of other areas. After changing the connection configuration between the sensor / module to "Process 1", the module configuration is such that the module "Data Process 3" that collects the statistical information and acquires the statistical information of the whole country is arranged. By performing the arrangement calculation as described above, it is possible to convert to a module configuration as shown in FIG. 30 (C).
なお、上記図30では、説明を簡略化するためにセンサが4個の場合について図示により説明したが、例えば100個程度のセンサがあった場合に、上記図30(B)で示したモジュール構成に比して、図30(C)で示したモジュール構成の方が、使用リソースの量を大幅に削減できることが容易に理解できる。 In FIG. 30, the case where the number of sensors is four is illustrated in order to simplify the explanation. However, when there are about 100 sensors, for example, the module configuration shown in FIG. 30 (B) is shown. It can be easily understood that the module configuration shown in FIG. 30 (C) can significantly reduce the amount of resources used.
次に図31によりモジュール変換の例について説明する。 Next, an example of module conversion will be described with reference to FIG.
例えば、各地に配備されているカメラ画像の中から、顔検出処理を行ない、比較対象の顔画像との類似度を算出し、一定の値以上となった、類似度が高いと判断された場合に通知を行なうようなアプリケーションを例にとって説明する。 For example, when face detection processing is performed from camera images deployed in various places, the degree of similarity with the face image to be compared is calculated, and it is determined that the degree of similarity is higher than a certain value. Let's take an application that notifies the user as an example.
図31(A)は、センサであるカメラから得たセンサデータとしての画像データに対し、サーバで類似度比較(ステップE101)を行なうものとした場合に、カメラからサーバまでのネットワークが、律速段階となる可能性がある。 FIG. 31 (A) shows that the network from the camera to the server is in the rate-determining stage when the similarity comparison (step E101) is performed on the image data as the sensor data obtained from the camera which is the sensor. There is a possibility that
その場合、図31(B)に示すように、ゲートウェイ2上で、比較的軽量な事前処理、具体的には顔検出処理及び顔領域の切り出し処理(ステップE102)までを行ない、データ量やデータ頻度を下げた上で、上位のサーバによる類似度比較処理(ステップE103)を行なうものとするようにモジュール構成を変換する。 In that case, as shown in FIG. 31 (B), relatively lightweight preprocessing, specifically face detection processing and face region cutting processing (step E102), are performed on the gateway 2, and the amount of data and data After reducing the frequency, the module configuration is converted so that the similarity comparison process (step E103) by the upper server is performed.
このようなモジュール構成の変換により、ネットワーク上の転送量を下げて、全体的に使用リソース量を削減できる可能性ができる。 By converting the module configuration in this way, it is possible to reduce the amount of transfer on the network and reduce the amount of resources used as a whole.
上記類似度比較モジュールが、1つのクラウド上のインスタンスにおいて実行されているものとする。1つのデータ入力に対する実行処理が大きい場合、そのスループットがアプリケーションの要件を満たせなくなる場合もあり得る。 It is assumed that the similarity comparison module is executed in one instance on the cloud. If the execution processing for one data input is large, the throughput may not meet the requirements of the application.
図32(A)は、上記図31(B)と同様のモジュール構成を示すもので、モジュール構成が1つである場合を示している。 FIG. 32 (A) shows the same module configuration as in FIG. 31 (B), and shows a case where there is only one module configuration.
このような構成に対して、図32(B)は、類似度比較処理(ステップE103)を複数のデータ処理ノードに分割するものとして、その前段に振り分け処理(ステップE104)を配置すると共に、その後段に結果集約処理(ステップE105)を配置して、類似度比較処理(ステップE103)を複数のノードに分散化して、スループットを改善できる可能性を得るようにした例を示す。 With respect to such a configuration, in FIG. 32B, the similarity comparison process (step E103) is divided into a plurality of data processing nodes, and the distribution process (step E104) is arranged in front of the plurality of data processing nodes. An example is shown in which the result aggregation process (step E105) is arranged in the stage and the similarity comparison process (step E103) is distributed to a plurality of nodes to obtain the possibility of improving the throughput.
なおこの図32(B)に示すモジュール構成では、経由するモジュールの数が増えているため、レイテンシは増加するものと考えられる。 In the module configuration shown in FIG. 32B, it is considered that the latency increases because the number of passing modules increases.
上記実施形態によれば、データをすべてクラウドに集めるのではなく、ネットワーク上の垂直に分散した処理ノードに適切に処理を分散することで、効率的にデータ処理を行なうことが可能となる。 According to the above embodiment, data processing can be performed efficiently by appropriately distributing the processing to vertically distributed processing nodes on the network instead of collecting all the data in the cloud.
また、モジュールの配置設計が、開発者や運用者ではなく、システムにより機械的に計算されるため、対応の稼働が小さくなると共に、新しいアプリケーションの配備が迅速化し、適時化できるようになる。 In addition, since the module layout design is calculated mechanically by the system, not by the developer or operator, the corresponding operation becomes smaller, and the deployment of new applications can be speeded up and timely.
このことにより、同一の資源上で複数のアプリケーションを実行させることが容易となる。 This makes it easy to run multiple applications on the same resource.
さらに、アプリケーションの用件を書くことにより、管理者がモジュール配置の設計や実施を行なう必要がなく、管理コストを抑えて、迅速に対応させることができる。 Furthermore, by writing the application requirements, the administrator does not need to design and implement the module layout, and the management cost can be suppressed and the response can be made quickly.
加えて、トラフィックの増大や、異常プロセスの発生などがあった際に、優先度の低いアプリケーションに関するモジュールを止めることで、優先度の高いアプリケーションの動作を継続させることができる。 In addition, when the traffic increases or an abnormal process occurs, the operation of the application with high priority can be continued by stopping the module related to the application with low priority.
なお、以上の説明では、具体的なモジュールの例を用いて説明したが、本発明はモジュールの内容等を限定するものではなく、新たなデータ処理モジュールや、アプリケーション要件に記載される新たなアルゴリズムが導入されたとしても、これらに対して作用させることのできる「モジュール構成の作成プログラム」「共有化判定プログラム」「等価モジュール列の算出プログラム」が提供されれば、対応可能となる。 In the above description, although the description has been made using an example of a specific module, the present invention does not limit the contents of the module and the like, and a new data processing module and a new algorithm described in the application requirements. Even if is introduced, it will be possible if a "module configuration creation program", "sharing determination program", and "equivalent module column calculation program" that can act on these are provided.
データ処理モジュールやアルゴリズムについては、アプリケーション側からの需要により非常に多岐にわたるものを作成することができる。また、その仕組みを知るものについては、そのヘルパープログラム(上記した「モジュール構成の作成プログラム」「共有化判定プログラム」「等価モジュール列の算出プログラム」)を作成することは容易に実現できる。 A wide variety of data processing modules and algorithms can be created according to the demand from the application side. Further, for those who know the mechanism, it is easy to create a helper program (the above-mentioned "module configuration creation program", "sharing determination program", "equivalent module string calculation program").
多くのデータ処理モジュールが追加された状況にあっても、上記したように本発明が依然として適用可能となることは勿論である。 It goes without saying that the present invention is still applicable as described above even in the situation where many data processing modules are added.
その他、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。 In addition, the present invention is not limited to the above embodiment, and can be variously modified at the implementation stage without departing from the gist thereof. In addition, each embodiment may be carried out in combination as appropriate, in which case the combined effect can be obtained. Further, the above-described embodiment includes various inventions, and various inventions can be extracted by a combination selected from a plurality of disclosed constituent requirements. For example, even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, if the problem can be solved and the effect is obtained, the configuration in which the constituent requirements are deleted can be extracted as an invention.
1…センサ、2…ゲートウェイ(IoT GW)、3…エッジサーバ、4…クラウドサーバ、5…アプリケーション、6…要件受付インタフェイス(I/F)、10…基盤管理部、11…データベース、12…要件管理部、13…資源管理部、14…配置計算部、15…配置実行管理部、21…モジュール構成作成プログラム、22…共有化判定プログラム、23…等価モジュール列算出プログラム、24…割付け、収容可否判定、最適構成選択のためのプログラム。 1 ... Sensor, 2 ... Gateway (IoT GW), 3 ... Edge server, 4 ... Cloud server, 5 ... Application, 6 ... Requirements reception interface (I / F), 10 ... Infrastructure management department, 11 ... Database, 12 ... Requirements management department, 13 ... resource management department, 14 ... placement calculation department, 15 ... placement execution management department, 21 ... module configuration creation program, 22 ... sharing judgment program, 23 ... equivalent module column calculation program, 24 ... allocation, accommodation A program for determining availability and selecting the optimum configuration.
Claims (7)
アプリケーションの要求条件を受け付ける要件管理部と、
上記各データ処理ノードの計算資源とネットワーク帯域情報を資源情報として管理する資源管理部と、
上記要件管理部で受け付けたアプリケーションの要求条件と上記資源管理部が管理する資源情報とに基づいて、上記複数のデータ処理ノードで当該アプリケーションを実行するモジュールの配置計算を行なう配置計算部と、
上記配置計算部での計算の結果に従ってデータ処理ノードにモジュールを配備する配置実行管理部と
を有する基盤管理部を備えたデータ収集基盤。 An IoT platform in which one or more applications and multiple sensors are connected by a network via multiple data processing nodes.
Requirements management department that accepts application requirements and
The resource management department that manages the computational resources and network bandwidth information of each of the above data processing nodes as resource information,
Based on the requirements of the application received by the requirement management unit and the resource information managed by the resource management unit, the layout calculation unit that performs the layout calculation of the module that executes the application on the plurality of data processing nodes, and the layout calculation unit.
A data collection platform including a platform management unit that has a layout execution management unit that deploys modules to data processing nodes according to the calculation results of the layout calculation unit.
上記配置計算部は、新規に追加されるアプリケーションの要求条件に基づいて上記資源管理部が管理する資源情報から新規アプリケーションの接続の可否を判定し、
上記要件管理部は、上記配置計算部による接続の可否の判定結果を当該新規アプリケーションに応答する、
請求項1記載のデータ収集基盤。 The requirements management unit receives the requirements of the newly added application and notifies the placement calculation unit.
The layout calculation unit determines whether or not a new application can be connected from the resource information managed by the resource management unit based on the requirements of the newly added application.
The requirement management unit responds to the new application with the determination result of whether or not the connection is possible by the placement calculation unit.
The data collection platform according to claim 1.
上記配置計算部は、既存のアプリケーションの要求条件に含まれる優先度の情報と新規アプリケーションの要求条件に含まれる優先度の情報に基づいて、各アプリケーションの接続の可否を判定する、
請求項2記載のデータ収集基盤。 The requirements of the application accepted by the requirements management department include priority information.
The placement calculation unit determines whether or not each application can be connected based on the priority information included in the requirements of the existing application and the priority information included in the requirements of the new application.
The data collection platform according to claim 2.
上記資源管理部は、データ処理ノードから受けた資源情報を更新して管理する、
請求項1記載のデータ収集基盤。 The data processing node includes a resource measurement unit that measures resource information used in operation of the module and notifies the resource management unit.
The above resource management department updates and manages the resource information received from the data processing node.
The data collection platform according to claim 1.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017091135A JP6770922B2 (en) | 2017-05-01 | 2017-05-01 | Data collection infrastructure |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017091135A JP6770922B2 (en) | 2017-05-01 | 2017-05-01 | Data collection infrastructure |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018190124A JP2018190124A (en) | 2018-11-29 |
| JP6770922B2 true JP6770922B2 (en) | 2020-10-21 |
Family
ID=64478571
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017091135A Active JP6770922B2 (en) | 2017-05-01 | 2017-05-01 | Data collection infrastructure |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6770922B2 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020119190A (en) * | 2019-01-23 | 2020-08-06 | トヨタ自動車株式会社 | System design device |
| CN112073447B (en) * | 2019-06-11 | 2022-05-17 | 北京字节跳动网络技术有限公司 | Model file issuing method, platform, system, terminal and readable storage medium |
| JP7368143B2 (en) * | 2019-08-27 | 2023-10-24 | 株式会社日立製作所 | Service deployment control system, service deployment control method, and storage medium |
| KR102408215B1 (en) * | 2019-08-28 | 2022-06-13 | 주식회사 필드솔루션 | Abnormality check system of equipment and facilities |
| JP2021135766A (en) * | 2020-02-27 | 2021-09-13 | 三菱電機株式会社 | Time series data management system for IoT system |
| WO2021260839A1 (en) | 2020-06-24 | 2021-12-30 | 日本電信電話株式会社 | Information processing device, information processing method, and program |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012104063A (en) * | 2010-11-12 | 2012-05-31 | Fuji Xerox Co Ltd | Service processing apparatus, service processing system and program |
| JP6102302B2 (en) * | 2013-02-12 | 2017-03-29 | 日本電気株式会社 | System automatic configuration apparatus, information processing system, system automatic configuration method, and system automatic configuration program |
| CN107615247A (en) * | 2015-06-24 | 2018-01-19 | 株式会社日立制作所 | Distributed system |
-
2017
- 2017-05-01 JP JP2017091135A patent/JP6770922B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018190124A (en) | 2018-11-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6770922B2 (en) | Data collection infrastructure | |
| RU2648610C2 (en) | System and method of zoning in software defined networks | |
| US10594591B2 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
| US20220329651A1 (en) | Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same | |
| CN116032767B (en) | Intelligent fusion identification network-oriented computing power service chain management and control system architecture | |
| JP5324637B2 (en) | Dynamic flowlet scheduling system, flow scheduling method, and flow scheduling program | |
| JP6380110B2 (en) | Resource control system, control pattern generation device, control device, resource control method, and program | |
| CN103534687B (en) | Scalable Centralized Dynamic Resource Allocation in Clustered Data Grids | |
| CN113382077A (en) | Micro-service scheduling method and device, computer equipment and storage medium | |
| JP6301509B2 (en) | System and method for providing on-site service | |
| CN116684418B (en) | Calculation power arrangement scheduling method, calculation power network and device based on calculation power service gateway | |
| CN103067524A (en) | Ant colony optimization computing resource distribution method based on cloud computing environment | |
| CN105515977B (en) | Method, device and system for acquiring transmission path in network | |
| JP2012048424A (en) | Method and program for allocating identifier | |
| JP2012199644A (en) | Virtual network management system, virtual network management method, and program for managing virtual network | |
| US20160274951A1 (en) | Virtual middle box management system, virtual middle box management method, and virtual middle box management program | |
| JP7368143B2 (en) | Service deployment control system, service deployment control method, and storage medium | |
| CN106790482B (en) | Resource scheduling method and resource scheduling system | |
| JP6717094B2 (en) | Network design equipment | |
| JP6383336B2 (en) | Server management apparatus and server management method | |
| Chen et al. | A collaborative service deployment and application assignment method for regional edge computing enabled IoT | |
| JP2016054451A (en) | Virtual network allocating method and device | |
| US9124508B2 (en) | Communication control device communication control system, communication control method and program | |
| JP6623932B2 (en) | Delivery schedule creation program, delivery schedule creation method, and delivery schedule creation device | |
| Khalili et al. | GAJEL-DSDN: an intelligent hybrid genetic-Jaya-based switch migration algorithm for efficient load balancing in distributed SDNs |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190701 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200423 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200923 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200928 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6770922 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |