WO2022102001A1 - データフロー制御装置、データフロー制御方法、及びデータフロー制御プログラム - Google Patents

データフロー制御装置、データフロー制御方法、及びデータフロー制御プログラム Download PDF

Info

Publication number
WO2022102001A1
WO2022102001A1 PCT/JP2020/041987 JP2020041987W WO2022102001A1 WO 2022102001 A1 WO2022102001 A1 WO 2022102001A1 JP 2020041987 W JP2020041987 W JP 2020041987W WO 2022102001 A1 WO2022102001 A1 WO 2022102001A1
Authority
WO
WIPO (PCT)
Prior art keywords
data flow
data
flow control
control device
unit
Prior art date
Application number
PCT/JP2020/041987
Other languages
English (en)
French (fr)
Inventor
晃朗 石崎
サンパト プリヤンカラ
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US18/035,481 priority Critical patent/US20230334007A1/en
Priority to JP2022561742A priority patent/JPWO2022102001A1/ja
Priority to PCT/JP2020/041987 priority patent/WO2022102001A1/ja
Publication of WO2022102001A1 publication Critical patent/WO2022102001A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • G06F15/825Dataflow computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Definitions

  • the present invention relates to a data flow control device, a data flow control method, and a data flow control program.
  • Non-Patent Document 1 a method called "Kafon” that manages functions related to data transfer by dividing them into a plurality of logical layers based on the metadata of a workflow that performs data processing is known (see, for example, Non-Patent Document 1). ).
  • Non-Patent Document 1 manages each function of the system by dividing it into four layers of application logic, transfer path management, transmission between nodes, and middleware implementation, and data flow by standardizing transfer processing and the like. This is to improve the efficiency of.
  • the conventional method has a problem that it may be difficult to improve the efficiency of the data flow in the entire system.
  • the ability of the arithmetic unit to which the task is assigned, data transfer between the arithmetic units, and the like are not taken into consideration, and the performance of the entire system does not necessarily improve.
  • the data flow control device is at least a part of a first data flow in operation in a system for processing data and a second data flow input.
  • the calculation unit that calculates the third data flow in which the amount of resources used when operated in the system satisfies a predetermined condition, and the first one with respect to the system. It is characterized by having an instruction unit for instructing to switch the data flow to the third data flow.
  • the data flow can be streamlined in the entire system.
  • FIG. 1 is a diagram showing a configuration example of a data flow control device according to the first embodiment.
  • FIG. 2 is a schematic diagram showing an example of a data flow.
  • FIG. 3 is a diagram illustrating switching of data flows.
  • FIG. 4 is a flowchart showing a processing flow of the data flow control device according to the first embodiment.
  • FIG. 5 is a diagram showing an example of a computer that executes a data flow control program.
  • FIG. 1 is a diagram showing an example of the configuration of the data flow control device according to the first embodiment.
  • the data flow control device 10 receives an input of a data flow and outputs a change instruction of the data flow to the data processing system 20.
  • the user inputs data flow definition information for adding, updating, deleting, etc. of the data flow to the data flow control device 10.
  • the data flow control device 10 includes an interface unit 11, a storage unit 12, and a control unit 13.
  • the data processing system 20 is an example of a system for processing data.
  • the interface unit 11 is an interface for inputting / outputting data and communicating data.
  • the interface unit 11 receives data input from an input device such as a keyboard and a mouse. Further, for example, the interface unit 11 outputs data to an output device such as a display and a speaker. Further, for example, the interface unit 11 may be a NIC (Network Interface Card).
  • NIC Network Interface Card
  • the storage unit 12 is a storage device for an HDD (Hard Disk Drive), SSD (Solid State Drive), optical disk, or the like.
  • the storage unit 12 may be a semiconductor memory in which data such as RAM (Random Access Memory), flash memory, NVSRAM (Non Volatile Static Random Access Memory) can be rewritten.
  • the storage unit 12 stores an OS (Operating System) and various programs executed by the data flow control device 10. Further, the storage unit 12 stores the flow information management DB 121, the computational resource allocation management DB 122, and the line information DB 123.
  • the flow information management DB 121 holds information about the data flow in operation in the data processing system 20.
  • the flow information management DB 121 holds a data acquisition source, a processing method, a processing order, and the like of each process included in the data flow. Further, the flow information management DB 121 holds various metadata related to the data collected by the data processing system 20 and the user attributes of the data flow.
  • Computational resource allocation management DB 122 holds information such as the processes that can be executed for each computational resource and whether or not they are allocated to each process. Further, the computational resource allocation management DB 122 holds information on whether or not the allocation of computational resources is permitted to each user, that is, access control.
  • the line information DB 123 holds information on network delays and bandwidths between servers, between users and servers, between data collection sources and servers, and between data centers.
  • the server here is, for example, a plurality of servers constituting the data processing system 20.
  • the control unit 13 controls the entire data flow control device 10.
  • the control unit 13 is, for example, an electronic circuit such as a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or the like. It is an integrated circuit.
  • the control unit 13 has an internal memory for storing programs and control data that specify various processing procedures, and executes each process using the internal memory. Further, the control unit 13 functions as various processing units by operating various programs.
  • the control unit 13 has a confirmation unit 131, an extraction unit 132, a calculation unit 133, an instruction unit 134, and an update unit 135.
  • the confirmation unit 131 refers to the flow information management DB 121, and confirms whether or not the attribute information of the user corresponding to the input data flow permits the sharing of the data flow. Further, the confirmation unit 131 confirms whether or not there is an overlap between the input data flow and the operating data flow.
  • the flow information management DB 121 indicates that a resource such as an arithmetic unit and a network resource is used by a data flow owned by a user who has priority use authority, the resource is occupied by the user. Will be done. Therefore, the confirmation unit 131 determines that the integration of the data flow owned by the user having the priority use authority and the input data flow is not permitted.
  • FIG. 2 is a schematic diagram showing an example of a data flow.
  • the existing data flow in FIG. 2 is a data flow operating in the data processing system 20.
  • the additional data flow is a data flow input by the user to the data flow control device 10.
  • the confirmation unit 131 confirms that there is an overlapping portion between the input data flow and the operating data flow.
  • the extraction unit 132 extracts a data flow that can be shared from the existing data flows. For example, the extraction unit 132 extracts a data flow that is permitted to be shared by the attribute information of the user and has an overlapping portion.
  • the calculation unit 133 is a resource when the data flow extracted by the extraction unit 132 and the input data flow are operated in the data processing system 20 among the data flows in which at least a part of the data flow is shared and integrated. Calculate a new data flow such that the usage amount of is satisfied with a predetermined condition.
  • the data flow extracted by the extraction unit 132 is an example of the first data flow in operation in the system for processing data.
  • the input data flow is an example of the second data flow.
  • the new data flow is an example of a third data flow.
  • the calculation unit 133 creates a combination of free calculation resources and network resources that can realize each data flow for each of the data flows extracted by the extraction unit 132. At this time, the calculation unit 133 can create a combination by referring to the computational resource allocation management DB 122 and the line information DB 123.
  • the calculation unit 133 calculates the resource usage amount, that is, the cost for each created combination, and selects, for example, the combination with the lowest cost.
  • the calculation unit 133 calculates the cost based on the data transfer delay time between the arithmetic resources of each combination, between the data provider and the arithmetic resource, and between the data output destination and the arithmetic resource, and the network NW bandwidth information.
  • the computational resource is, for example, an arithmetic unit of an information processing apparatus constituting the data processing system 20.
  • the data provider is, for example, a camera, a sensor, or the like.
  • the data output destination is, for example, another information processing device or an output device such as a display.
  • the confirmation unit 131 confirms whether or not the standardization of the operating data flow is permitted based on the attribute information preset for the user of the operating data flow. Then, the calculation unit 133 calculates the standardized data flow when it is confirmed by the confirmation unit 131 that the standardization of the data flow in operation is permitted.
  • the instruction unit 134 instructs the system to switch the data flow extracted by the extraction unit 132 to a new data flow calculated by the calculation unit 133.
  • FIG. 3 is a diagram illustrating switching of data flow. As shown in FIG. 3, in the data flow before switching, when the user U1 executes the application AP1, the processing P1 is executed by the arithmetic unit a.
  • the calculation unit 133 calculates a data flow of "Camera-> processing P1 (calculator b)-> user U1 AP1" that integrates the data flow before switching and the added data flow.
  • the instruction unit 134 uses the existing data flow "Camera-> process P1 (calculator a)->". Instruct the data processing system 20 to switch "user U1 AP1" to the selected data flow "Camera-> processing P1 (calculator b)-> user U1 AP1".
  • the arithmetic unit that executes the process P1 has changed.
  • the arithmetic unit b stores the execution result of the process P1 in a queue provided between the process P2 and the process P3.
  • the calculation unit 133 stores the result of the process P1 common to the existing data flow and the input data flow in the queue, and uses the result of the process P1 in the input data flow, the process P2 and the process P3.
  • the arithmetic unit c and the arithmetic unit d acquire the execution result of the processing P1 from the queue in the process of executing the processing P2 and the processing P3, respectively.
  • the data processing system 20 can acquire the execution result from the queue when the processing P2 and the processing P3 are executed without executing the processing P1.
  • the execution result of the process P1 is, for example, a list of data obtained by the search.
  • calculation unit 133 determines that the overall cost increases as a result of changing the execution subject of the process P1 from the arithmetic unit a to the arithmetic unit b, the calculation unit 133 does not select the switching of the data flow as shown in FIG. be able to.
  • the update unit 135 updates the information in each DB as the data flow is switched between old and new.
  • the data flow before switching is called an old data flow.
  • the data flow after switching is called a new data flow.
  • the update unit 135 secures computational resources for the new data flow and updates the computational resource allocation management DB 122 before switching between the old and new data flows. Then, after switching between the old and new data flows, the update unit 135 adds the information of the new data flow on the flow information management DB 121 and updates the information of the old data flow.
  • the update unit 135 releases the computational resources used in the old data flow and updates the computational resource allocation management DB 122. Further, the update unit 135 updates the flow information management DB 121 of the old data flow.
  • FIG. 4 is a flowchart showing a processing flow of the data flow control device according to the first embodiment.
  • the data flow control device 10 accepts the input of data flow information (step S101).
  • the data flow control device 10 confirms whether to share the data flow from the user information (step S102). If the data flow is not shared (step S103, No), the data flow control device 10 proceeds to step S107. On the other hand, when sharing the data flow (step S103, Yes), the data flow control device 10 proceeds to step S104.
  • the data flow control device 10 determines whether or not the input data flow has an overlap with the existing data flow (step S104). If the input data flow does not overlap with the existing data flow (step S104, No), the data flow control device 10 proceeds to step S107. On the other hand, if the input data flow has an overlap portion with the existing data flow (step S104, Yes), the data flow control device 10 proceeds to step S105.
  • the data flow control device 10 extracts an existing data flow that can be shared (step S105). Then, the data flow control device 10 calculates a data flow in which the input data flow and the extracted data flow are integrated (step S106).
  • the data flow control device 10 creates a combination of free calculation resources and NW (network) resources that can realize the calculated data flow (step S107). Then, the data flow control device 10 selects a combination based on the cost from the input to the output (step S108).
  • the data flow control device 10 secures computational resources and updates the computational resource allocation management DB 122 (step S109). Then, the data flow control device 10 instructs the data processing system 20 to switch between old and new data flows (step S110).
  • the data flow control device 10 adds the information of the new data flow on the flow information management DB 121 and updates the information of the old data flow (step S111). Further, the data flow control device 10 releases the computational resources used in the old data flow and updates the computational resource allocation management DB 122 (step S112). Then, the data flow control device 10 updates the flow information management DB 121 of the old data flow (step S113).
  • the data flow control device 10 standardizes and integrates a part of the first data flow in operation and the second input data flow in the system for processing data.
  • a third data flow is calculated so that the amount of resources used when operated in the system satisfies a predetermined condition.
  • the data flow control device 10 instructs the system to switch the first data flow to the third data flow.
  • the data flow control device 10 not only shares a part of the old and new data flows, but also switches the data flow in consideration of the resource status of the system.
  • the data flow can be streamlined in the entire system. Further, according to the present embodiment, it is possible to replace the pluggable processing of the data flow.
  • the data flow control device 10 stores the result of the first process common to the first data flow and the second data flow in a queue, and uses the result of the first process in the second data flow. Calculates a third data flow so that the process of 1 retrieves data from the queue. As a result, according to the present embodiment, the processing efficiency of the entire system can be improved.
  • the data flow control device 10 confirms whether or not the standardization of the first data flow is permitted based on the attribute information preset for the user of the first data flow.
  • the data flow control device 10 calculates the third data flow when it is confirmed by the confirmation unit 131 that the standardization of the first data flow is permitted.
  • each component of each of the illustrated devices is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific forms of distribution and integration of each device are not limited to those shown in the figure, and all or part of them may be functionally or physically dispersed or physically distributed in arbitrary units according to various loads and usage conditions. Can be integrated and configured. Further, each processing function performed by each device is realized by a CPU (Central Processing Unit) and a program that is analyzed and executed by the CPU, or hardware by wired logic. Can be realized as. The program may be executed not only by the CPU but also by another processor such as a GPU.
  • CPU Central Processing Unit
  • the data flow control device 10 can be implemented by installing a data flow control program that executes the above data flow control process as package software or online software on a desired computer.
  • the information processing device can function as the data flow control device 10.
  • the information processing device referred to here includes a desktop type or notebook type personal computer.
  • the information processing device includes a smartphone, a mobile communication terminal such as a mobile phone and a PHS (Personal Handyphone System), and a slate terminal such as a PDA (Personal Digital Assistant).
  • the data flow control device 10 can be implemented as a data flow control server device in which the terminal device used by the user is a client and the service related to the above data flow control process is provided to the client.
  • the data flow control server device is implemented as a server device that provides a data flow control service that takes a data flow as an input and outputs a data flow change instruction.
  • the data flow control server device may be implemented as a Web server, or may be implemented as a cloud that provides the above-mentioned service related to the data flow control process by outsourcing.
  • FIG. 5 is a diagram showing an example of a computer that executes a data flow control program.
  • the computer 1000 has, for example, a memory 1010 and a CPU 1020.
  • the computer 1000 also has a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. Each of these parts is connected by a bus 1080.
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM (Random Access Memory) 1012.
  • the ROM 1011 stores, for example, a boot program such as a BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • the hard disk drive interface 1030 is connected to the hard disk drive 1090.
  • the disk drive interface 1040 is connected to the disk drive 1100.
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100.
  • the serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120.
  • the video adapter 1060 is connected to, for example, the display 1130.
  • the hard disk drive 1090 stores, for example, the OS 1091, the application program 1092, the program module 1093, and the program data 1094. That is, the program that defines each process of the data flow control device 10 is implemented as a program module 1093 in which a code that can be executed by a computer is described.
  • the program module 1093 is stored in, for example, the hard disk drive 1090.
  • the program module 1093 for executing the same processing as the functional configuration in the data flow control device 10 is stored in the hard disk drive 1090.
  • the hard disk drive 1090 may be replaced by an SSD (Solid State Drive).
  • the setting data used in the processing of the above-described embodiment is stored as program data 1094 in, for example, a memory 1010 or a hard disk drive 1090. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1090 into the RAM 1012 as needed, and executes the process of the above-described embodiment.
  • the program module 1093 and the program data 1094 are not limited to those stored in the hard disk drive 1090, but may be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program module 1093 and the program data 1094 may be stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.). Then, the program module 1093 and the program data 1094 may be read from another computer by the CPU 1020 via the network interface 1070.
  • LAN Local Area Network
  • WAN Wide Area Network
  • Data flow control device 11 Interface unit 12 Storage unit 13 Control unit 20 Data processing system 121 Flow information management DB 122 Computational Resource Allocation Management DB 123 Line information DB 131 Confirmation unit 132 Extraction unit 133 Calculation unit 134 Indicator unit 135 Update unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

データフロー制御装置(10)は、データを処理するシステムにおいて稼働中の第1のデータフローと、入力された第2のデータフローと、の一部を共通化して統合したデータフローのうち、システムにおいて稼働させた場合のリソースの使用量が所定の条件を満たすような第3のデータフローを算出する。データフロー制御装置(10)、システムに対し、第1のデータフローを第3のデータフローに切り替えることを指示する。

Description

データフロー制御装置、データフロー制御方法、及びデータフロー制御プログラム
 本発明は、データフロー制御装置、データフロー制御方法、及びデータフロー制御プログラムに関する。
 従来、データ処理を行うワークフローのメタデータを基に、データ転送に関する機能を複数の論理的なレイヤに分けて管理する「Kafon」と呼ばれる手法が知られている(例えば、非特許文献1を参照)。
 非特許文献1に記載の手法は、システムの各機能を、アプリケーションロジック、転送経路の管理、ノード間の伝送、ミドルウェア実装の4つのレイヤに分けて管理し、転送処理の共通化等によりデータフローの効率化を図るものである。
Cyber Agent, "大規模データ処理", https://www.cyberagent.co.jp/techinfo/labo/tech/detail/id=23934 福田 一郎、他、 "サイバーエージェントのデータ活用のためのR&D体制と取組み", 人工知能学会,30巻3号,pp.318-324.(https://jsai.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=1892&item_no=1&attribute_id=22&file_no=1)
 しかしながら、従来の手法には、システム全体でのデータフローの効率化が困難な場合があるという問題がある。例えば、非特許文献1に記載の手法では、タスクを割り当てる演算器の能力や演算器間のデータ転送等が考慮されておらず、システム全体で必ずしも性能が向上するとは限らない。
 上述した課題を解決し、目的を達成するために、データフロー制御装置は、データを処理するシステムにおいて稼働中の第1のデータフローと、入力された第2のデータフローと、の少なくとも一部を共通化して統合したデータフローのうち、前記システムにおいて稼働させた場合のリソースの使用量が所定の条件を満たす第3のデータフローを算出する算出部と、前記システムに対し、前記第1のデータフローを前記第3のデータフローに切り替えることを指示する指示部と、を有することを特徴とする。
 本発明によれば、システム全体でデータフローを効率化することができる。
図1は、第1の実施形態に係るデータフロー制御装置の構成例を示す図である。 図2は、データフローの一例を示す模式図である。 図3は、データフローの切り替えについて説明する図である。 図4は、第1の実施形態に係るデータフロー制御装置の処理の流れを示すフローチャートである。 図5は、データフロー制御プログラムを実行するコンピュータの一例を示す図である。
 以下に、本願に係るデータフロー制御装置、データフロー制御方法、及びデータフロー制御プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
[第1の実施形態の構成]
 まず、図1を用いて、第1の実施形態に係るデータフロー制御装置の構成について説明する。図1は、第1の実施形態に係るデータフロー制御装置の構成の一例を示す図である。
 図1に示すように、データフロー制御装置10は、データフローの入力を受け付け、データフローの変更指示をデータ処理システム20に対して出力する。ユーザは、データフローの追加、更新、削除等のためのデータフロー定義情報をデータフロー制御装置10に入力する。データフロー制御装置10は、インタフェース部11、記憶部12及び制御部13を有する。なお、データ処理システム20は、データを処理するシステムの一例である。
 インタフェース部11は、データの入出力及びデータの通信を行うためのインタフェースである。例えば、インタフェース部11は、キーボード及びマウス等の入力装置からデータの入力を受け付ける。また、例えば、インタフェース部11は、ディスプレイ及びスピーカ等の出力装置にデータを出力する。また、例えば、インタフェース部11はNIC(Network Interface Card)であってもよい。
 記憶部12は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部12は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。記憶部12は、データフロー制御装置10で実行されるOS(Operating System)や各種プログラムを記憶する。また、記憶部12は、フロー情報管理DB121、演算資源割当管理DB122及び回線情報DB123を記憶する。
 フロー情報管理DB121は、データ処理システム20で稼働中のデータフローに関する情報を保持する。フロー情報管理DB121は、データフローに含まれる各処理のデータ取得元、処理方法及び処理順序等を保持する。また、フロー情報管理DB121は、データ処理システム20が収集するデータ及びデータフローのユーザの属性に関する各種メタデータを保持する。
 演算資源割当管理DB122は、計算リソースごとの、実行可能な処理、及び各処理への割り当てがされているか否かといった情報を保持する。さらに、演算資源割当管理DB122は、各ユーザに対する計算リソースの割り当てが許可されているか否か、すなわちアクセス制御に関する情報を保持する。
 回線情報DB123は、サーバ間、ユーザとサーバ間、データ収集元とサーバ間、データセンタ間のネットワークの遅延や帯域に関する情報を保持する。なお、ここでのサーバは、例えばデータ処理システム20を構成する複数のサーバである。
 制御部13は、データフロー制御装置10全体を制御する。制御部13は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部13は、確認部131、抽出部132、算出部133、指示部134及び更新部135を有する。
 確認部131は、フロー情報管理DB121を参照し、入力されたデータフローに対応するユーザの属性情報が、データフローの共有を許可するものであるか否かを確認する。さらに、確認部131は、入力されたデータフローと稼働中のデータフローとの間に重複部分があるか否かを確認する。
 例えば、フロー情報管理DB121に、優先利用の権限を持つユーザが保有するデータフローによって、演算器及びネットワーク資源等のリソースが利用されていることが示されている場合、当該リソースは当該ユーザによって占有される。そのため、確認部131は、優先利用の権限を持つユーザが保有するデータフローと入力されたデータフローとの統合は許可されていないと判断する。
 ここで、図2を用いて、データフローについて説明する。図2は、データフローの一例を示す模式図である。図2の既存のデータフローは、データ処理システム20で稼働中のデータフローである。また、追加のデータフローは、データフロー制御装置10にユーザによって入力されたデータフローである。
 図2に示すように、既存のデータフローと、追加のデータフローとで、「Camera→処理P1」の部分が重複している。このため、図2の例では、確認部131は、入力されたデータフローと稼働中のデータフローとの間に重複部分があることを確認する。
 抽出部132は、既存のデータフローのうち、共有可能なデータフローを抽出する。例えば、抽出部132は、ユーザの属性情報によって共有が許可されており、かつ重複部分があるデータフローを抽出する。
 算出部133は、抽出部132によって抽出されたデータフローと、入力されたデータフローと、の少なくとも一部を共通化して統合したデータフローのうちの、データ処理システム20において稼働させた場合のリソースの使用量が所定の条件を満たすような新たなデータフローを算出する。
 ここで、抽出部132によって抽出されたデータフローは、データを処理するシステムにおいて稼働中の第1のデータフローの一例である。また、入力されたデータフローは第2のデータフローの一例である。また、新たなデータフローは第3のデータフローの一例である。
 まず、算出部133は、抽出部132によって抽出されたデータフローのそれぞれについて、各データフローを実現可能な空き計算リソース及びネットワークリソースの組み合わせを作成する。このとき、算出部133は、演算資源割当管理DB122及び回線情報DB123を参照して組み合わせを作成することができる。
 さらに、算出部133は、作成した各組み合わせについてリソースの使用量、すなわちコストを計算し、例えばコストが最も小さい組み合わせを選定する。算出部133は、各組み合わせの演算資源間、データ提供元と演算資源間、及びデータ出力先と演算資源間のデータ転送遅延時間、ネットワークNW帯域情報を基にコストを計算する。
 演算資源は、例えばデータ処理システム20を構成する情報処理装置の演算装置等である。また、データ提供元は、例えばカメラ及びセンサ等である。また、データ出力先は、例えば他の情報処理装置及びディスプレイ等の出力装置である。
 また、前述のように、確認部131は、稼働中のデータフローのユーザにあらかじめ設定された属性情報を基に、稼働中のデータフローの共通化が許可されているか否かを確認する。そして、算出部133は、確認部131によって稼働中のデータフローの共通化が許可されていることが確認された場合に、共通化されたデータフローを算出する。
 指示部134は、システムに対し、抽出部132によって抽出されたデータフローを、算出部133によって算出された新たなデータフローに切り替えることを指示する。
 図3は、データフローの切り替えについて説明する図である。図3に示すように、切り替え前のデータフローでは、ユーザU1がアプリケーションAP1を実行した場合に、演算器aによって処理P1が実行されていた。
 ここで、ユーザU2によるアプリケーションAP1の実行、及びユーザU2によるアプリケーションAP1の実行に関するデータフローが追加されたものとする。切り替え前のデータフローと、追加された2つのデータフローとでは、処理P1を実行する部分が重複している。このため、算出部133は、切り替え前のデータフローと追加されたデータフローを統合した「Camera→処理P1(演算器b)→ユーザU1 AP1」というデータフローを算出する。
 そして、算出部133によって「Camera→処理P1(演算器b)→ユーザU1 AP1」というデータフローが選定されると、指示部134は、既存のデータフロー「Camera→処理P1(演算器a)→ユーザU1 AP1」を、選定されたデータフロー「Camera→処理P1(演算器b)→ユーザU1 AP1」に切り替えることをデータ処理システム20に指示する。
 また、切り替え前後では、処理P1を実行する演算器が変化している。例えば、演算器bは、処理P2及び処理P3との間に設けられたキューに、処理P1の実行結果を保存する。
 このように、算出部133は、既存のデータフローと入力されたデータフローで共通する処理P1の結果をキューに保存し、入力されたデータフローにおいて処理P1の結果を利用する処理P2及び処理P3が、キューからデータを取得するような統合済みのデータフローを算出することができる。言い換えると、演算器c及び演算器dは、それぞれ処理P2及び処理P3を実行する過程で、キューから処理P1の実行結果を取得する。
 この場合、データ処理システム20は、処理P2及び処理P3の実行の際に、処理P1を実行することなく、キューから実行結果を取得することができる。なお、処理P1の実行結果は、例えば検索によって得られたデータの一覧等である。
 なお、算出部133は、処理P1の実行主体を演算器aから演算器bに変更した結果、全体のコストが増大すると判断した場合、図3のようなデータフローの切り替えを選定しないようにすることができる。
 更新部135は、データフローの新旧切り替えに伴い、各DBの情報を更新する。ここで、切り替え前のデータフローを旧データフローと呼ぶ。また、切り替え後のデータフローを新データフローと呼ぶ。
 まず、更新部135は、新旧データフローの切り替え前に、新データフローのための計算リソースを確保し、演算資源割当管理DB122を更新する。そして、更新部135は、新旧データフローの切り替え後に、フロー情報管理DB121上に新データフローの情報を追加し、旧データフローの情報を更新する。
 そして、更新部135は、旧データフローで利用していた計算リソースを解放し演算資源割当管理DB122を更新する。さらに、更新部135は、旧データフローのフロー情報管理DB121を更新する。
[第1の実施形態の処理]
 図4は、第1の実施形態に係るデータフロー制御装置の処理の流れを示すフローチャートである。まず、データフロー制御装置10は、データフロー情報の入力を受け付ける(ステップS101)。
 次に、データフロー制御装置10は、ユーザ情報からデータフローを共有するか確認する(ステップS102)。データフローを共有しない場合(ステップS103、No)、データフロー制御装置10はステップS107に進む。一方、データフローを共有する場合(ステップS103、Yes)、データフロー制御装置10はステップS104に進む。
 続いて、データフロー制御装置10は、入力されたデータフローに既存データフローと重複部分があるか否かを判定する(ステップS104)。入力されたデータフローに既存データフローと重複部分がない場合(ステップS104、No)、データフロー制御装置10はステップS107に進む。一方、入力されたデータフローに既存データフローと重複部分がある場合(ステップS104、Yes)、データフロー制御装置10はステップS105に進む。
 データフロー制御装置10は、共有可能な既存データフローを抽出する(ステップS105)。そして、データフロー制御装置10は、入力されたデータフローと抽出したデータフローとを統合したデータフローを算出する(ステップS106)。
 データフロー制御装置10は、算出したデータフローを実現可能な空き計算リソース及びNW(ネットワーク)リソースの組み合わせを作成する(ステップS107)。そして、データフロー制御装置10は、入力から出力までのコストを基に組み合わせを選定する(ステップS108)。
 ここで、データフロー制御装置10は、計算リソースの確保をし、演算資源割当管理DB122を更新する(ステップS109)。そして、データフロー制御装置10は、データフローの新旧切り替えをデータ処理システム20に指示する(ステップS110)。
 また、データフロー制御装置10は、フロー情報管理DB121上に新データフローの情報を追加し、旧データフローの情報を更新する(ステップS111)。さらに、データフロー制御装置10は、旧データフローで利用していた計算リソースを解放し演算資源割当管理DB122を更新する(ステップS112)。そして、データフロー制御装置10は、旧データフローのフロー情報管理DB121を更新する(ステップS113)。
[第1の実施形態の効果]
 これまで説明してきたように、データフロー制御装置10は、データを処理するシステムにおいて稼働中の第1のデータフローと、入力された第2のデータフローと、の一部を共通化して統合したデータフローのうち、システムにおいて稼働させた場合のリソースの使用量が所定の条件を満たすような第3のデータフローを算出する。データフロー制御装置10は、システムに対し、第1のデータフローを第3のデータフローに切り替えることを指示する。このように、データフロー制御装置10は、新旧のデータフローの一部を共通化するだけでなく、システムのリソース状況を考慮した上で切り替えを行う。その結果、本実施形態によれば、システム全体でデータフローを効率化することができる。また、本実施形態によれば、データフローのプラガブルな処理の入れ替えが可能になる。
 データフロー制御装置10は、第1のデータフローと第2のデータフローで共通する第1の処理の結果をキューに保存し、第2のデータフローにおいて第1の処理の結果を利用する第2の処理が、キューからデータを取得するように第3のデータフローを算出する。この結果、本実施形態によれば、システム全体の処理効率を向上させることができる。
 データフロー制御装置10は、第1のデータフローのユーザにあらかじめ設定された属性情報を基に、第1のデータフローの共通化が許可されているか否かを確認する。データフロー制御装置10は、確認部131によって第1のデータフローの共通化が許可されていることが確認された場合に、第3のデータフローを算出する。データの出力先が複数のユーザであるマルチテナントのシステムが存在する。そのようなシステムの場合、ユーザの属性によっては、データフローの共通化が許可されていない場合がある。本実施形態では、マルチテナントを考慮した上でシステム全体の処理の効率化を図ることができる。
[システム構成等]
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。なお、プログラムは、CPUだけでなく、GPU等の他のプロセッサによって実行されてもよい。
 また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
 一実施形態として、データフロー制御装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記のデータフロー制御処理を実行するデータフロー制御プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記のデータフロー制御プログラムを情報処理装置に実行させることにより、情報処理装置をデータフロー制御装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
 また、データフロー制御装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記のデータフロー制御処理に関するサービスを提供するデータフロー制御サーバ装置として実装することもできる。例えば、データフロー制御サーバ装置は、データフローを入力とし、データフローの変更指示を出力とするデータフロー制御サービスを提供するサーバ装置として実装される。この場合、データフロー制御サーバ装置は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記のデータフロー制御処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
 図5は、データフロー制御プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
 ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、データフロー制御装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、データフロー制御装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
 また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
 なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 10 データフロー制御装置
 11 インタフェース部
 12 記憶部
 13 制御部
 20 データ処理システム
 121 フロー情報管理DB
 122 演算資源割当管理DB
 123 回線情報DB
 131 確認部
 132 抽出部
 133 算出部
 134 指示部
 135 更新部

Claims (5)

  1.  データを処理するシステムにおいて稼働中の第1のデータフローと、入力された第2のデータフローと、の少なくとも一部を共通化して統合したデータフローのうち、前記システムにおいて稼働させた場合のリソースの使用量が所定の条件を満たす第3のデータフローを算出する算出部と、
     前記システムに対し、前記第1のデータフローを前記第3のデータフローに切り替えることを指示する指示部と、
     を有することを特徴とするデータフロー制御装置。
  2.  前記算出部は、前記第1のデータフローと前記第2のデータフローで共通する第1の処理の結果をキューに保存し、前記第2のデータフローにおいて前記第1の処理の結果を利用する第2の処理が、前記キューからデータを取得するように前記第3のデータフローを算出することを特徴とする請求項1に記載のデータフロー制御装置。
  3.  前記第1のデータフローのユーザにあらかじめ設定された属性情報を基に、前記第1のデータフローの共通化が許可されているか否かを確認する確認部をさらに有し、
     前記算出部は、前記確認部によって前記第1のデータフローの共通化が許可されていることが確認された場合に、前記第3のデータフローを算出することを特徴とする請求項1又は2に記載のデータフロー制御装置。
  4.  データフロー制御装置によって実行されるデータフロー制御方法であって、
     データを処理するシステムにおいて稼働中の第1のデータフローと、入力された第2のデータフローと、の少なくとも一部を共通化して統合したデータフローのうち、前記システムにおいて稼働させた場合のリソースの使用量が所定の条件を満たす第3のデータフローを算出する算出工程と、
     前記システムに対し、前記第1のデータフローを前記第3のデータフローに切り替えることを指示する指示工程と、
     を含むことを特徴とするデータフロー制御方法。
  5.  コンピュータを、請求項1から3のいずれか1項に記載のデータフロー制御装置として機能させるためのデータフロー制御プログラム。
PCT/JP2020/041987 2020-11-10 2020-11-10 データフロー制御装置、データフロー制御方法、及びデータフロー制御プログラム WO2022102001A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/035,481 US20230334007A1 (en) 2020-11-10 2020-11-10 Data flow control device, data flow control method, and data flow control program
JP2022561742A JPWO2022102001A1 (ja) 2020-11-10 2020-11-10
PCT/JP2020/041987 WO2022102001A1 (ja) 2020-11-10 2020-11-10 データフロー制御装置、データフロー制御方法、及びデータフロー制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/041987 WO2022102001A1 (ja) 2020-11-10 2020-11-10 データフロー制御装置、データフロー制御方法、及びデータフロー制御プログラム

Publications (1)

Publication Number Publication Date
WO2022102001A1 true WO2022102001A1 (ja) 2022-05-19

Family

ID=81600847

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/041987 WO2022102001A1 (ja) 2020-11-10 2020-11-10 データフロー制御装置、データフロー制御方法、及びデータフロー制御プログラム

Country Status (3)

Country Link
US (1) US20230334007A1 (ja)
JP (1) JPWO2022102001A1 (ja)
WO (1) WO2022102001A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008130048A (ja) * 2006-11-24 2008-06-05 Mitsubishi Electric Corp ワークフロー管理システム、クライアント装置、ワークフロー処理装置
JP2017111533A (ja) * 2015-12-15 2017-06-22 富士通株式会社 制御プログラム、制御装置および制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008130048A (ja) * 2006-11-24 2008-06-05 Mitsubishi Electric Corp ワークフロー管理システム、クライアント装置、ワークフロー処理装置
JP2017111533A (ja) * 2015-12-15 2017-06-22 富士通株式会社 制御プログラム、制御装置および制御方法

Also Published As

Publication number Publication date
JPWO2022102001A1 (ja) 2022-05-19
US20230334007A1 (en) 2023-10-19

Similar Documents

Publication Publication Date Title
WO2018019232A1 (zh) 流计算方法、装置及系统
US8949831B2 (en) Dynamic virtual machine domain configuration and virtual machine relocation management
US11429353B1 (en) Dynamic service provisioning using templatized infrastructure resources
US9720579B2 (en) Processing element placement tool
US9170850B2 (en) Minimizing workload migrations during cloud maintenance operations
KR102651083B1 (ko) 다중―단일―테넌트 SaaS 서비스들의 관리
JP2008204430A (ja) ビジネスプロセス再構成方法、そのプログラム及び計算機
US20210326161A1 (en) Apparatus and method for multi-cloud service platform
WO2023072042A1 (en) Event-driven provisioning of elastic orchestration platform
Loughran et al. Dynamic cloud deployment of a mapreduce architecture
US20100318565A1 (en) Distributed Computing Management
US20200293299A1 (en) Optimizing updates to distributed data processing applications
US10726017B2 (en) Limiting tuple creation at the tuple level
CN116670670A (zh) 用于基于容器的环境的集成认证
CN114579250B (zh) 一种构建虚拟集群的方法、装置及存储介质
JP7439928B2 (ja) 管理装置、管理方法、管理プログラム、及び管理システム
US9614932B2 (en) Managing and implementing web application data snapshots
WO2022102001A1 (ja) データフロー制御装置、データフロー制御方法、及びデータフロー制御プログラム
WO2020032145A1 (ja) 通信システムおよび通信方法
US10127293B2 (en) Collaborative data intelligence between data warehouse models and big data stores
CN114707179B (zh) 集群系统的资源授权方法、装置、介质及电子设备
CN115442129A (zh) 一种管理集群访问权限的方法、装置和系统
US11537445B2 (en) Dynamic integration flows in hybrid cloud environments
WO2024042589A1 (ja) コンフィグ投入装置、コンフィグ投入方法、及びコンフィグ投入プログラム
CN113206819B (zh) 基于多级别会话描述符的信令发送方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20961529

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022561742

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20961529

Country of ref document: EP

Kind code of ref document: A1