JP2019204373A - Apparatus for and method of supporting creation of program using visual programming tool - Google Patents

Apparatus for and method of supporting creation of program using visual programming tool Download PDF

Info

Publication number
JP2019204373A
JP2019204373A JP2018100054A JP2018100054A JP2019204373A JP 2019204373 A JP2019204373 A JP 2019204373A JP 2018100054 A JP2018100054 A JP 2018100054A JP 2018100054 A JP2018100054 A JP 2018100054A JP 2019204373 A JP2019204373 A JP 2019204373A
Authority
JP
Japan
Prior art keywords
module
property
policy
modules
comparison
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.)
Granted
Application number
JP2018100054A
Other languages
Japanese (ja)
Other versions
JP7018356B2 (en
Inventor
敬太 嶋田
Keita Shimada
敬太 嶋田
中村 秀樹
Hideki Nakamura
秀樹 中村
鈴木 克典
Katsunori Suzuki
克典 鈴木
哲 守屋
Satoru Moriya
哲 守屋
寿雄 西田
Toshio Nishida
寿雄 西田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018100054A priority Critical patent/JP7018356B2/en
Publication of JP2019204373A publication Critical patent/JP2019204373A/en
Application granted granted Critical
Publication of JP7018356B2 publication Critical patent/JP7018356B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

To avoid modifying properties necessary for individual modules consisting of sub flows if necessary.SOLUTION: A program creation support apparatus determines P modules (P is 2 or greater and M or smaller) respectively having P properties among sub flows of M modules (M is an integer which is 2 or greater and N or smaller) selected from N modules (N is an integer which is 2 or larger) consisting of a program created by using a visual programming tool. If in the P property, there is one or greater property item groups of Q property items (Q is 2 or greater and P or smaller) which can be commonly used as a single property item and on which update of the one property item is reflected, then the apparatus presents that each of the one or greater property item groups can be commonly used.SELECTED DRAWING: Figure 4

Description

本発明は、概して、ビジュアルプログラミングツールを用いたプログラム開発の支援に関する。   The present invention generally relates to support for program development using visual programming tools.

近年、プログラミングに対する深い知識がないユーザでも素早くアプリケーションプログラム(開発対象のプログラムの一例)を作成できるビジュアルプログラミングツールに注目が集まっている。   In recent years, a visual programming tool that can quickly create an application program (an example of a development target program) has been attracting attention even for users who do not have deep knowledge of programming.

ビジュアルプログラミングツールによれば、専用のワークスペース上に、アイコンで表現された特定の処理を有するモジュールが配置され、それらをワイヤといったモジュール間の接続関係を表す線で繋げられることにより、アプリケーションプログラムが作成される。   According to the visual programming tool, a module having a specific process represented by an icon is arranged on a dedicated workspace, and these are connected by a line representing a connection relationship between modules such as a wire, so that an application program can be executed. Created.

ビジュアルプログラミングの長所の一個としては、テキストエディタなどでソースコードを直接編集するプログラミングよりもプログラム全体の処理を理解しやすく、モジュールの形式で処理をまとめておけば、それを再利用してプログラミングすることで作業量を減らすことがある。   One of the advantages of visual programming is that it is easier to understand the processing of the entire program than programming that directly edits the source code with a text editor, etc. If you organize the processing in the form of modules, you can reuse it for programming This may reduce the amount of work.

一部のビジュアルプログラミングツール(例えばNode-REDなど)では、アプリケーションプログラムを構成する複数個のモジュールとそれらを接続するワイヤとの集合であるサブフローを一個のモジュールとする機能(サブフロー機能)が用意されている。サブフローを構成する複数個のモジュールは、例えば、相対的に関連性の高い複数個のモジュールである。特許文献1は、モジュール間の関連性を評価する技術を開示する。具体的には、例えば、特許文献1に開示の計測装置は、プログラムをモジュール単位に分割し、モジュールに属するデータとモジュールの呼び出し操作を計測することでモジュール間の依存度を定量化する。   Some visual programming tools (such as Node-RED) have a function (subflow function) that makes a subflow, which is a set of a plurality of modules that make up an application program, and a wire that connects them together as one module. ing. The plurality of modules constituting the subflow are, for example, a plurality of modules having relatively high relevance. Patent Document 1 discloses a technique for evaluating the relationship between modules. Specifically, for example, the measurement device disclosed in Patent Document 1 divides a program into modules, and quantifies the degree of dependence between modules by measuring data belonging to the modules and module call operations.

特開2000-215045号公報Japanese Unexamined Patent Publication No. 2000-215045

ビジュアルプログラミングツールでは、モジュール毎にプロパティが存在する。プロパティは、1以上(典型的には複数)のプロパティ要素を含む。各プロパティ要素は、プロパティ項目(例えば「IPアドレス」)とプロパティ値(例えば、“1.1.1.1”)との組を含む。   Visual programming tools have properties for each module. A property includes one or more (typically multiple) property elements. Each property element includes a set of a property item (for example, “IP address”) and a property value (for example, “1.1.1.1”).

サブフロー機能によって複数個のモジュールが一個のサブフローとされても、当該サブフローを再利用(例えば、他のアプリケーションプログラムへ再利用)するためには、当該サブフロー内部の構成を表す階層に移動して個々のモジュールに必要なプロパティを見直し必要に応じて修正をしなければならない。結果として、ユーザの設定工数が増えてしまう。   Even if a plurality of modules are made into one subflow by the subflow function, in order to reuse the subflow (for example, to reuse in another application program), it is necessary to move to a hierarchy representing the internal structure of the subflow. The properties required for the module must be reviewed and modified as necessary. As a result, the user's setting man-hours increase.

プログラム作成支援装置が、ビジュアルプログラミングツールを用いて作成されるプログラムを構成するN個のモジュール(Nは2以上の整数)のうちの選択されたM個のモジュール(Mは、2以上且つN以下の整数)であるサブフローのうち、P個のプロパティをそれぞれ有するP個のモジュール(Pは、2以上且つM以下)を決定する。当該装置は、一個のプロパティ項目として共通化可能であり当該一個のプロパティ項目の更新が反映されるQ個のプロパティ項目(Qは2以上且つP以下)であるプロパティ項目群がP個のプロパティに一個以上あれば、当該一個以上のプロパティ項目群の各々について、共通化可能であることを提示する。   The program creation support device selects M modules (M is greater than or equal to 2 and less than or equal to N) out of N modules (N is an integer greater than or equal to 2) that make up a program created using a visual programming tool. P modules having P properties (P is not less than 2 and not more than M) are determined. The device can be shared as one property item, and Q property items (Q is 2 or more and P or less) that reflect the update of the one property item are converted into P properties. If there are one or more items, it indicates that each of the one or more property item groups can be shared.

サブフローのプロパティについてユーザの設定工数が減少する。   User-set man-hours for subflow properties are reduced.

本発明の実施例1における計算機システムの一例を示すブロック図である。1 is a block diagram illustrating an example of a computer system according to Embodiment 1 of the present invention. 本発明の実施例1における集約モジュール生成の一例の概要を示す図である。It is a figure which shows the outline | summary of an example of the aggregation module production | generation in Example 1 of this invention. 本発明の実施例1の一比較例の概要を示す図である。FIG. 3 is a diagram showing an outline of a comparative example of Example 1 of the present invention. 本発明の実施例1でのプロパティ設定の概要の一例を示す図である。It is a figure which shows an example of the outline | summary of the property setting in Example 1 of this invention. 本発明の実施例1におけるモジュール管理テーブルの一例を示す図である。It is a figure which shows an example of the module management table in Example 1 of this invention. 本発明の実施例1におけるポリシー管理テーブルの一例を示す図である。It is a figure which shows an example of the policy management table in Example 1 of this invention. 本発明の実施例1におけるインフラ管理テーブルの一例を示す図である。It is a figure which shows an example of the infrastructure management table in Example 1 of this invention. 本発明の実施例1における選択範囲管理テーブルの一例を示す図である。It is a figure which shows an example of the selection range management table in Example 1 of this invention. 本発明の実施例1におけるモジュール比較テーブルの一例を示す図である。It is a figure which shows an example of the module comparison table in Example 1 of this invention. 本発明の実施例1におけるプロパティテーブルの一例を示す図である。It is a figure which shows an example of the property table in Example 1 of this invention. 本発明の実施例1における表示条件テーブルの一例を示す図である。It is a figure which shows an example of the display condition table in Example 1 of this invention. 本発明の実施例1における表示グループテーブルの一例を示す図である。It is a figure which shows an example of the display group table in Example 1 of this invention. 本発明の実施例1におけるポリシー登録部により行われる処理の一例を示す。An example of processing performed by the policy registration unit according to the first embodiment of the present invention will be described. 本発明の実施例1におけるインフラ関連生成部により行われる処理の一例を示す。An example of the process performed by the infrastructure relevant generation part in Example 1 of this invention is shown. 本発明の実施例1における集約候補部により行われる処理の一例の前部分を示す。The front part of an example of the process performed by the aggregation candidate part in Example 1 of this invention is shown. 本発明の実施例1における集約候補部により行われる処理の一例の中部分を示す。The middle part of an example of the process performed by the aggregation candidate part in Example 1 of this invention is shown. 本発明の実施例1における集約候補部により行われる処理の一例の後部分を示す。The back part of an example of the process performed by the aggregation candidate part in Example 1 of this invention is shown. 本発明の実施例1における表示グループ生成部により行われる処理の一例を示す。An example of the process performed by the display group production | generation part in Example 1 of this invention is shown. 本発明の実施例1における集約実行部により行われる処理の一例を示す。An example of the process performed by the aggregation execution part in Example 1 of this invention is shown. 本発明の実施例1におけるプロパティ共通化画面の一例を説明する図である。It is a figure explaining an example of the property commonization screen in Example 1 of this invention. 本発明の実施例1における確認画面の一例を説明する図である。It is a figure explaining an example of the confirmation screen in Example 1 of this invention. 本発明の実施例2における変更実行部により行われる処理の一例を示す。An example of the process performed by the change execution part in Example 2 of this invention is shown.

以下の説明では、「インタフェース部」は、一個以上のインタフェースで良い。当該一個以上のインタフェースは、ユーザインタフェース部と、通信インタフェース部とのうちの少なくとも通信インタフェース部を含んで良い。ユーザインタフェース部は、一個以上のI/Oデバイス(例えば入力デバイス(例えばキーボードおよびポインティングデバイス)と出力デバイス(例えば表示デバイス))と表示用計算機とのうちの少なくとも一個のI/Oデバイスでも良いし、それに代えてまたは加えて、当該少なくとも一個のI/Oデバイスに対するインタフェースデバイス(I/Oインタフェース)でも良い。通信インタフェース部は、一個以上の通信インタフェースデバイスで良い。一個以上の通信インタフェースデバイスは、一個以上の同種の通信インタフェースデバイス(例えば一個以上のNIC(Network Interface Card))であっても良いし二個以上の異種の通信インタフェースデバイス(例えばNICとHBA(Host Bus Adapter))であっても良い。   In the following description, the “interface unit” may be one or more interfaces. The one or more interfaces may include at least a communication interface unit among a user interface unit and a communication interface unit. The user interface unit may be at least one I / O device of one or more I / O devices (for example, an input device (for example, a keyboard and a pointing device), an output device (for example, a display device)), and a display computer. Instead of or in addition, an interface device (I / O interface) for the at least one I / O device may be used. The communication interface unit may be one or more communication interface devices. The one or more communication interface devices may be one or more similar communication interface devices (for example, one or more NIC (Network Interface Card)) or two or more different types of communication interface devices (for example, NIC and HBA (Host Bus Adapter)).

また、以下の説明では、「メモリ部」は、一個以上のメモリであり、典型的には主記憶デバイスで良い。メモリ部における少なくとも一個のメモリは、揮発性メモリであっても良いし不揮発性メモリであっても良い。   In the following description, the “memory unit” is one or more memories, and may typically be a main storage device. At least one memory in the memory unit may be a volatile memory or a non-volatile memory.

また、以下の説明では、「PDEV部」は、一個以上のPDEVであり、典型的には補助記憶デバイスで良い。「PDEV」は、物理的な記憶デバイス(Physical storage DEVice)を意味し、典型的には、不揮発性の記憶デバイス、例えばHDD(Hard Disk Drive)またはSSD(Solid State Drive)である。   In the following description, the “PDEV portion” is one or more PDEVs, and typically an auxiliary storage device. “PDEV” means a physical storage device, typically a non-volatile storage device such as a hard disk drive (HDD) or a solid state drive (SSD).

また、以下の説明では、「記憶部」は、メモリ部およびPDEV部のうちの少なくとも一個(典型的には少なくともメモリ部)である。   In the following description, the “storage unit” is at least one of the memory unit and the PDEV unit (typically at least the memory unit).

また、以下の説明では、「プロセッサ部」は、一個以上のプロセッサである。少なくとも一個のプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、GPU(Graphics Processing Unit)のような他種のプロセッサでも良い。少なくとも一個のプロセッサは、シングルコアでも良いしマルチコアでも良い。少なくとも一個のプロセッサは、処理の一部または全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit))といった広義のプロセッサでも良い。   In the following description, the “processor unit” is one or more processors. The at least one processor is typically a microprocessor such as a CPU (Central Processing Unit), but may be another type of processor such as a GPU (Graphics Processing Unit). At least one processor may be a single core or a multi-core. The at least one processor may be a broad processor such as a hardware circuit (for example, a field-programmable gate array (FPGA) or an application specific integrated circuit (ASIC)) that performs part or all of the processing.

また、以下の説明では、「kkk部」(インタフェース部、記憶部及びプロセッサ部を除く)の表現にて機能を説明することがあるが、機能は、一個以上のコンピュータプログラムがプロセッサ部によって実行されることで実現されても良いし、一個以上のハードウェア回路(例えばFPGA又はASIC)によって実現されても良い。プログラムがプロセッサ部によって実行されることで機能が実現される場合、定められた処理が、適宜に記憶部及び/又はインタフェース部等を用いながら行われるため、機能はプロセッサ部の少なくとも一部とされても良い。機能を主語として説明された処理は、プロセッサ部あるいはそのプロセッサ部を有する装置が行う処理としても良い。プログラムは、プログラムソースからインストールされても良い。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であっても良い。各機能の説明は一例であり、複数個の機能が一個の機能にまとめられたり、一個の機能が複数個の機能に分割されたりしても良い。   In the following description, the function may be described by the expression “kkk part” (excluding the interface part, the storage part, and the processor part). The function is executed by one or more computer programs by the processor part. It may be realized by one or more hardware circuits (for example, FPGA or ASIC). When the function is realized by the program being executed by the processor unit, the predetermined process is appropriately performed using the storage unit and / or the interface unit. Therefore, the function is at least a part of the processor unit. May be. The processing described with the function as the subject may be processing performed by the processor unit or a device having the processor unit. The program may be installed from a program source. The program source may be, for example, a program distribution computer or a computer-readable recording medium (for example, a non-transitory recording medium). The description of each function is an example, and a plurality of functions may be combined into one function, or one function may be divided into a plurality of functions.

また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでも良いし、入力に対する出力を発生するニューラルネットワークのような学習モデルでも良い。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一個のテーブルは、二個以上のテーブルに分割されても良いし、二個以上のテーブルの全部又は一部が一個のテーブルであっても良い。   In the following description, information that can be output with respect to an input may be described using an expression such as “xxx table”. The information may be data of any structure, and may be output with respect to an input. A learning model such as a neural network that generates Therefore, the “xxx table” can be referred to as “xxx information”. In the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or all or some of the two or more tables are one table. May be.

以下、本発明の幾つか実施例について添付図面を用いて説明する。実施例で用いるテーブルに使用する識別情報は、当該テーブルに一個以上のカラムを用いてテーブルのエントリを特定できる場合、識別情報のカラムを省略することもできる。また、識別情報は昇順となる識別番号を自動的に割り当てられても良い。各図において共通の構成要素については同一の参照符号が付されている。同種の構成要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の構成要素を区別する場合は、参照符号を使用することがある。例えば、モジュールを区別しない場合には、「モジュール205」と言い、モジュールを区別する場合には、「モジュール205A」、「モジュール205B」のように言う。   Several embodiments of the present invention will be described below with reference to the accompanying drawings. The identification information used for the table used in the embodiment may omit the identification information column if the table entry can be specified using one or more columns in the table. In addition, identification information may be automatically assigned identification numbers in ascending order. In each figure, the same reference numerals are given to common components. When explaining without distinguishing the same kind of component, a common code among the reference symbols is used, and when distinguishing the same kind of component, a reference code may be used. For example, when modules are not distinguished, they are referred to as “module 205”, and when modules are distinguished, they are referred to as “module 205A” and “module 205B”.

実施例1のプログラム作成支援装置の一例である管理サーバは、ユーザが複数個のモジュールを指定して、それらを一個のモジュールに集約する(集約モジュール(サブフロー)を作成する)際に、集約モジュールを構成する複数個のモジュールにのうち同様の内容と思われるプロパティ要素を検出し、それらを共通化するか否かをユーザに提示する。集約モジュールの共通化されたプロパティ要素の更新が、当該集約モジュールに属する二個以上のモジュールの各々のプロパティ要素の更新となる。これにより、ユーザは集約モジュールのプロパティの数を削減することができ、結果として、ユーザの集約モジュールに対する設定工数が減少する。   The management server, which is an example of the program creation support apparatus according to the first embodiment, specifies the aggregation module when the user designates a plurality of modules and aggregates them into one module (creates an aggregation module (subflow)). Property elements that are considered to have the same content are detected in a plurality of modules constituting the, and whether or not to share them is presented to the user. The update of the common property element of the aggregation module becomes the update of the property element of each of two or more modules belonging to the aggregation module. Thereby, the user can reduce the number of properties of the aggregation module, and as a result, the setting man-hour for the aggregation module of the user is reduced.

具体的には、実施例1では、管理サーバは、アプリケーションプログラム(プログラムの一例)を構成する複数個のモジュールを集約してモジュール(サブフロー)を作成する際に、モジュール間の接続関係、ワークスペース(ビジュアルプログラミングツールが提供する表示スペース)内の位置情報、及び、モジュールのITインフラ情報を含む複数個のポリシーのうちのいずれのポリシーにモジュール間が合致するかにより、モジュール間の関連性を評価する。管理サーバは、関連性が高い(例えば、相対的に関連性が高い、又は、関連性が所定の閾値以上である)モジュールの組を抽出する。管理サーバは、抽出された組毎に、当該組を構成する二個のモジュールがそれぞれ有する二個のプロパティのうち関連性が高い(例えば、相対的に関連性が高い、又は、関連性が所定の閾値以上である)プロパティ要素の組を抽出する。そして、管理サーバは、抽出したプロパティ要素の組を、一個のプロパティ要素に共通化できる可能性が高い組としてユーザに提示する。そして、管理サーバは、ユーザに提示したプロパティ要素の組のうちのユーザが共通化する組の選択を受け付ける。管理サーバは、ユーザから選択されたプロパティ要素の組の各々について、当該組に属する2つのプロパティ要素を、共通化する一個のプロパティ要素として決定し、且つ、当該プロパティ要素を、集約モジュールのプロパティにおける一個のプロパティ要素とする。   Specifically, in the first embodiment, when the management server creates a module (subflow) by aggregating a plurality of modules constituting an application program (an example of a program), a connection relationship between modules, a workspace The relationship between modules is evaluated based on which of the multiple policies including the location information in the (display space provided by the visual programming tool) and the IT infrastructure information of the module matches between the modules. To do. The management server extracts a set of modules having high relevance (for example, relatively high relevance, or the relevance is equal to or greater than a predetermined threshold). For each extracted set, the management server has a high relevance (for example, a relatively high relevance or a predetermined relevance among the two properties of each of the two modules constituting the set) Extract a set of property elements that are greater than or equal to the threshold value. Then, the management server presents the extracted set of property elements to the user as a set that is highly likely to be shared by one property element. Then, the management server accepts selection of a set shared by the user among the set of property elements presented to the user. For each set of property elements selected by the user, the management server determines two property elements belonging to the set as one property element to be shared, and sets the property element in the properties of the aggregation module. One property element.

以下、実施例1を詳細に説明する。なお、管理サーバが「情報を表示する」ことは、管理サーバが有する表示装置に表示用の情報を表示することであってもよいし、管理サーバが表示用の計算機に表示用の情報を送信することであってもよい(後者の場合は表示用の計算機によって表示用の情報が表示される)。   Hereinafter, Example 1 will be described in detail. Note that “displaying information” by the management server may mean displaying display information on the display device of the management server, or the management server sends display information to the display computer. (In the latter case, display information is displayed by a display computer).

図1は、実施例1の計算機システムの一例を示すブロック図である。   FIG. 1 is a block diagram illustrating an example of a computer system according to the first embodiment.

実施例1の計算機システムは、管理サーバ101、アプリケーションプログラムをデプロイして実行するための実行環境102、ビジュアルプログラミングツール106から構成され、それらは管理ネットワーク(例えばIPネットワーク)103を介して互いに接続される。   The computer system according to the first embodiment includes a management server 101, an execution environment 102 for deploying and executing application programs, and a visual programming tool 106, which are connected to each other via a management network (for example, an IP network) 103. The

実行環境102は、複数の計算機、複数のストレージ装置、及び複数のネットワーク装置等を含んで良い。実行環境102は、物理的な装置そのものをリソースとして用いる環境でもよいし、仮想的な装置をリソースとして用いる環境でもよい。   The execution environment 102 may include a plurality of computers, a plurality of storage devices, a plurality of network devices, and the like. The execution environment 102 may be an environment that uses a physical device itself as a resource, or an environment that uses a virtual device as a resource.

ビジュアルプログラミングツール106は、アプリケーションプログラムの処理フローを表示する。ビジュアルプログラミングツール106を用いたプログラム作成が管理サーバ101により支援される。ビジュアルプログラミングツール106は、入出力コンソールとしてのクライアント端末で実行されてもよいし、入出力コンソール(本実施例では入力装置104及び表示装置105)と通信可能な管理サーバ101で実行されてもよい。ビジュアルプログラミングツール106が提供する画面は、入出力コンソールに表示される。本実施例では、ビジュアルプログラミングツール106を用いたプログラミングが、管理サーバ101において制御部120がテーブル群130を基に行う処理により支援される。   The visual programming tool 106 displays the processing flow of the application program. Program creation using the visual programming tool 106 is supported by the management server 101. The visual programming tool 106 may be executed by a client terminal as an input / output console, or may be executed by the management server 101 that can communicate with the input / output console (the input device 104 and the display device 105 in this embodiment). . The screen provided by the visual programming tool 106 is displayed on the input / output console. In the present embodiment, programming using the visual programming tool 106 is supported by processing performed by the control unit 120 based on the table group 130 in the management server 101.

管理サーバ101は、ビジュアルプログラミングにおいて、複数個のモジュールを集約する際に利用する集約対象のモジュール間の関連性やプロパティ間の関連性を評価して、同様のプロパティを共通化する処理等を実施する。ここで、管理サーバ101のハードウェア構成及びソフトウェア構成について説明する。   Management server 101 evaluates the relationship between modules to be aggregated and the relationship between properties used when aggregating multiple modules in visual programming, and implements processing to share similar properties To do. Here, the hardware configuration and software configuration of the management server 101 will be described.

管理サーバ101は、CPU(Central Processing Unit)111、メモリ112、ネットワークインタフェース113、及びI/Oインタフェース114を有する。これらのハードウェアは、内部バス(図示しない)を介して互いに接続される。CPU 111は、プロセッサ部の一例であり、メモリ112は、記憶部の一例であり、ネットワークインタフェース113及びI/Oインタフェース114は、インタフェース部の一例である。   The management server 101 includes a CPU (Central Processing Unit) 111, a memory 112, a network interface 113, and an I / O interface 114. These hardwares are connected to each other via an internal bus (not shown). The CPU 111 is an example of a processor unit, the memory 112 is an example of a storage unit, and the network interface 113 and the I / O interface 114 are examples of an interface unit.

CPU 111は、メモリ112に格納される一個以上のプログラムを実行する。CPU 111は、メモリ112に格納されるプログラムにしたがって動作することによって、所定の機能を実現する制御部120として動作する。   The CPU 111 executes one or more programs stored in the memory 112. The CPU 111 operates as the control unit 120 that realizes a predetermined function by operating according to a program stored in the memory 112.

メモリ112は、CPU 111が実行する一個以上のプログラム、及び、当該一個以上のプログラムの実行において参照又は更新される複数個の管理テーブルである管理テーブル群130を格納する。また、メモリ112は、プログラムが一時的に使用するワークエリア(図示せず)を含む。   The memory 112 stores one or more programs executed by the CPU 111 and a management table group 130 that is a plurality of management tables that are referred to or updated in the execution of the one or more programs. The memory 112 includes a work area (not shown) temporarily used by the program.

ネットワークインタフェース113は、IPネットワーク等を介して外部の装置と通信するためのインタフェースである。I/Oインタフェース114は、入力装置104及び表示装置105と接続するインタフェースである。なお、I/Oインタフェース114は、USBメモリ及び外部ストレージ装置等、外部の記憶媒体に接続してもよい。   The network interface 113 is an interface for communicating with an external device via an IP network or the like. The I / O interface 114 is an interface connected to the input device 104 and the display device 105. The I / O interface 114 may be connected to an external storage medium such as a USB memory or an external storage device.

入力装置104は、管理サーバ101にデータを入力するための装置(例えば、キーボード、マウス、及びタッチパネル等)である。表示装置105は、管理サーバ101の処理結果等を表示するための装置(例えば、ディスプレイ及びタッチパネル等)である。   The input device 104 is a device for inputting data to the management server 101 (for example, a keyboard, a mouse, a touch panel, etc.). The display device 105 is a device (for example, a display and a touch panel) for displaying the processing result of the management server 101 and the like.

図1では、ハードウェアとしての各構成要素の数はそれぞれ一個であるが二個以上であってもよい。例えば、管理サーバ101が複数のネットワークと接続する場合、管理サーバ101やビジュアルプログラミングツール106は、各ネットワークと接続する複数個のネットワークインタフェースを有してもよい。   In FIG. 1, the number of each component as hardware is one, but may be two or more. For example, when the management server 101 is connected to a plurality of networks, the management server 101 and the visual programming tool 106 may have a plurality of network interfaces connected to each network.

ここで、管理サーバ101のメモリ112に格納されるプログラム及び情報について説明する。メモリ112は、制御部120を実現するプログラム、及び、管理テーブル群130を格納する。   Here, programs and information stored in the memory 112 of the management server 101 will be described. The memory 112 stores a program for realizing the control unit 120 and a management table group 130.

制御部120は、ポリシー登録部121(図13参照)、集約候補生成部122(図15A〜図15C参照)、表示グループ生成部123(図16参照)、集約実行部124(図17参照)、インフラ情報取得部125及びインフラ関連生成部126(図14参照)を有する。   The control unit 120 includes a policy registration unit 121 (see FIG. 13), an aggregation candidate generation unit 122 (see FIGS. 15A to 15C), a display group generation unit 123 (see FIG. 16), an aggregation execution unit 124 (see FIG. 17), It includes an infrastructure information acquisition unit 125 and an infrastructure related generation unit 126 (see FIG. 14).

管理テーブル群130は、モジュール管理テーブル131(図5参照)、ポリシー管理テーブル132(図6参照)、選択範囲管理テーブル133(図8参照)、モジュール比較テーブル134(図9参照)、プロパティテーブル135(図10参照)、表示条件テーブル136(図11参照)、表示グループテーブル137(図12参照)、及び、インフラ管理テーブル138(図7参照)を有する。   The management table group 130 includes a module management table 131 (see FIG. 5), a policy management table 132 (see FIG. 6), a selection range management table 133 (see FIG. 8), a module comparison table 134 (see FIG. 9), and a property table 135. (See FIG. 10), a display condition table 136 (see FIG. 11), a display group table 137 (see FIG. 12), and an infrastructure management table 138 (see FIG. 7).

ビジュアルプログラミングツール106は、ユーザに対してモジュール、ワイヤ、それらを配置するための専用のワークスペース等をGUI(Graphical User Interface)として表示して、ユーザが視覚的にプログラミングを行えるようにする。ビジュアルプログラミングツール106は、画面表示部141及びプログラム管理部142を有する。   The visual programming tool 106 displays modules, wires, a dedicated workspace for arranging them as a GUI (Graphical User Interface) to the user, and allows the user to perform programming visually. The visual programming tool 106 includes a screen display unit 141 and a program management unit 142.

画面表示部141は、アプリケーションプログラムを視覚的に表示し、ユーザがそれを編集できるようにするためのGUIを表示する。プログラム管理部142は、画面表示部141を通じて取得したアプリケーションプログラムに対するユーザの操作を管理サーバ101や実行環境102上に存在するプログラム実行部151に送信したり、管理サーバ101で生成した集約モジュールを作成する際にユーザに視覚化する必要のある情報(共通化するプロパティか否かを判断させるための情報等)を受信して画面表示部141に引き渡したりする。   The screen display unit 141 displays an application program visually, and displays a GUI for allowing the user to edit it. The program management unit 142 transmits a user operation on the application program acquired through the screen display unit 141 to the program execution unit 151 existing on the management server 101 or the execution environment 102, or creates an aggregation module generated by the management server 101 When receiving the information, the user receives information (such as information for determining whether or not the property is to be shared) that needs to be visualized and passes it to the screen display unit 141.

なお、本実施例においては、画面表示部141及びプログラム管理部142を有するビジュアルプログラミングツール106は、管理サーバ101とは別のサーバで実行されるが、これは一例である。例えば、ビジュアルプログラミングツール106は、管理サーバ101のCPU 111により実行されても良いし、実行環境102に存在する物理サーバや仮想サーバなどの計算機リソースにより実行されても良い。   In this embodiment, the visual programming tool 106 having the screen display unit 141 and the program management unit 142 is executed on a server different from the management server 101, but this is an example. For example, the visual programming tool 106 may be executed by the CPU 111 of the management server 101, or may be executed by a computer resource such as a physical server or a virtual server that exists in the execution environment 102.

プログラム実行部151及びソースコードデータ152は、実行環境102に存在する物理サーバや仮想サーバなどの計算機リソースに展開されて処理が行われる。   The program execution unit 151 and the source code data 152 are developed and processed on computer resources such as a physical server and a virtual server that exist in the execution environment 102.

プログラム実行部151は、ビジュアルプログラミングツール106のプログラム管理部142からアプリケーションプログラムのソースコードデータ152(アプリケーションプログラムを構成するモジュールの情報やモジュールを接続するワイヤ情報等)を受信し、その受信したソースコードデータ152に記述された処理を実行する。実行方法は、プログラム実行部151がソースコードデータ152を読み込み、更にソースコードデータ152内の各モジュールで定義された処理をワイヤ等の接続関係を基に順序付けて実行する。なお、モジュール間でデータの受け渡しなどが発生する場合には、そのデータの中継なども行われる。また、モジュールで定義された処理によっては、プログラム実行部151を実行する計算機以外の実行環境102上の計算機や、管理ネットワーク103等のネットワークを経由して、実行環境102の外部にあるSaaS(Software as a Service)などのITサービスや計算機リソースが呼び出されても良い。もしくは、プログラム実行部151の代わりに、計算機上で実行可能なバイナリが生成されてもよい。   The program execution unit 151 receives the source code data 152 of the application program (information on the modules constituting the application program, wire information connecting the modules, etc.) from the program management unit 142 of the visual programming tool 106, and the received source code The process described in the data 152 is executed. As for the execution method, the program execution unit 151 reads the source code data 152, and further executes the processing defined by each module in the source code data 152 in order based on the connection relationship such as a wire. When data is exchanged between modules, the data is relayed. In addition, depending on the processing defined in the module, a SaaS (Software that is external to the execution environment 102 via the computer on the execution environment 102 other than the computer that executes the program execution unit 151 or the network such as the management network 103 is used. as a Service) and other IT services and computer resources may be called. Alternatively, instead of the program execution unit 151, a binary executable on the computer may be generated.

図2は、本実施例における集約モジュール生成の一例の概要を示している。   FIG. 2 shows an outline of an example of the aggregate module generation in this embodiment.

ビジュアルプログラミングツール106が提供するワークスペース(GUI)上に、アプリケーションプログラムの少なくとも一部を表現した処理フロー204が表示装置105に表示される。処理フロー204は、モジュール205A〜205Fと複数のワイヤ206とを含む。ビジュアルプログラミングツール106は、例えば、処理フロー204の一部であるモジュール205B〜205Eを集約範囲207とした指定をユーザ(開発者)202から入力装置104が受け付けると、図示の通り、それらを集約モジュール208とする。   A processing flow 204 representing at least a part of the application program is displayed on the display device 105 on a workspace (GUI) provided by the visual programming tool 106. The process flow 204 includes modules 205A-205F and a plurality of wires 206. When the input device 104 receives a designation from the user (developer) 202 as the aggregation range 207, for example, the modules 205B to 205E, which are part of the processing flow 204, are received by the visual programming tool 106 as shown in FIG. 208.

図3は、本実施例の一比較例の概要を示している。   FIG. 3 shows an outline of one comparative example of the present embodiment.

モジュール205には多くの場合そのモジュール205で処理を実行するため、モジュール205ごとに用意されたプロパティ211におけるプロパティ項目毎にプロパティ値を設定する必要がある。破線矢印312B〜312Eは、モジュール205B〜205Eとプロパティ311B〜311Eとの関連を表したものである。   In many cases, since the module 205 executes processing in the module 205, it is necessary to set a property value for each property item in the property 211 prepared for each module 205. Dashed arrows 312B to 312E represent the relationship between the modules 205B to 205E and the properties 311B to 311E.

集約モジュール208に関してプロパティ値を変更しようとした場合、集約モジュール208は一個のモジュールであるにも関わらず、集約モジュール内部314に示したように、ユーザ202は、集約モジュール208を構成する複数個のモジュール205B〜205Eが分かるように展開して、更にプロパティの変更が必要なモジュール205を探し、そのモジュール205のプロパティ311の設定画面(例えばGUI)経由でプロパティ値の変更などを行う必要がある。つまり、集約モジュールの再展開、修正対象のモジュール205とプロパティ311の探索といった複雑な作業をユーザ202は行う必要がある。また、複数個のモジュール205をまとめて利用していると、同じプロパティ項目についての設定を複数個のモジュール205に跨って利用しているケースもあり、その場合は、それら複数個のモジュール205の各々についてプロパティ設定画面を個別に開いて同じ値を入力する必要がある。   When an attempt is made to change a property value with respect to the aggregation module 208, the user 202 may have a plurality of components constituting the aggregation module 208 as shown in the aggregation module internal 314, although the aggregation module 208 is a single module. It is necessary to expand the modules 205B to 205E so that the module 205 needs to change the property, and to change the property value via the setting screen (for example, GUI) of the property 311 of the module 205. That is, the user 202 needs to perform complicated operations such as redeployment of the aggregation module and searching for the module 205 and the property 311 to be corrected. In addition, when a plurality of modules 205 are used together, there are cases in which settings for the same property item are used across a plurality of modules 205. It is necessary to open the property setting screen for each and enter the same value.

図4は、本実施例でのプロパティ設定の概要の一例を示している。   FIG. 4 shows an example of an outline of property setting in the present embodiment.

本実施例では、ユーザ202が集約モジュール208を生成する際に、制御部120が、プロパティ共通化画面(例えばGUI)1800を表示して、その中で共通化レコメンデーション1804(例えば図18参照)を行う。共通化レコメンデーション1804とは、集約するモジュール205群のうち、共通化できる可能性があるプロパティ要素421C及び421Dの組み合わせを可視化したものである。ユーザ202は、共通化レコメンデーション1804の対象であるプロパティ要素421C及び421Dの組み合わせについて、共通化するか否を判断する。共通化することの指定がプロパティ共通化画面1800経由でされた組み合わせ(プロパティ要素421の組み合わせ)が、管理サーバ101に記憶され、制御部120が、それら共通化されたプロパティ要素の集合を、集約モジュール208のプロパティ423として作成する。制御部120が、集約モジュール208のプロパティ423を表示しても良い。   In the present embodiment, when the user 202 generates the aggregation module 208, the control unit 120 displays a property sharing screen (for example, GUI) 1800, in which the sharing recommendation 1804 (for example, see FIG. 18). I do. The common recommendation 1804 is a visualization of a combination of property elements 421C and 421D that may be shared among a group of modules 205 to be aggregated. The user 202 determines whether or not to share the combination of property elements 421C and 421D that are the targets of the sharing recommendation 1804. A combination (combination of property elements 421) that is specified to be shared via the property sharing screen 1800 is stored in the management server 101, and the control unit 120 aggregates the set of the shared property elements. Created as property 423 of module 208. The control unit 120 may display the property 423 of the aggregation module 208.

集約モジュールのプロパティ423を作成しておくことで、ユーザ202は、集約モジュール208についてのプロパティの設定変更に関して、修正するプロパティ要素を探すために毎回集約モジュール内部314の編集画面に移行する作業や、集約モジュール内部314を表す処理フローから修正対象のプロパティ要素を有するモジュール205を探索する作業や、モジュール205毎にプロパティ設定画面を開いて設定を行う作業が必要なくなる。言い換えれば、集約モジュール208のプロパティ423から設定変更対象のプロパティ要素を見つけて変更すれば、集約モジュール208に属する二個以上のモジュール205の各々の該当のプロパティ要素が変更される。   By creating the property 423 of the aggregation module, the user 202 shifts to the editing screen of the aggregation module internal 314 every time in order to find the property element to be modified regarding the property setting change for the aggregation module 208, There is no need to search for the module 205 having the property element to be corrected from the processing flow representing the aggregation module internal 314 or to open and set the property setting screen for each module 205. In other words, if the property element to be changed is found from the property 423 of the aggregation module 208 and changed, the corresponding property element of each of the two or more modules 205 belonging to the aggregation module 208 is changed.

図5は、実施例1のモジュール管理テーブル131の一例を示す図である。   FIG. 5 is a diagram illustrating an example of the module management table 131 according to the first embodiment.

モジュール管理テーブル131は、モジュール205を管理するための情報である。モジュール管理テーブル131は、モジュール205毎にエントリを有する。各エントリは、モジュールID 501、モジュール名502、X座標503、Y座標504、接続先ID 505、プロパティ506、作成コミット507、更新コミット508、カテゴリ509及び表示順510といった情報を格納する。以下、一個のモジュール205を例に取る(図5の説明において「対象モジュール205」)。なお、エントリには、図示の情報以外の情報が格納されてもよい(この点は、他のテーブル132〜138についても同様である)。   The module management table 131 is information for managing the module 205. The module management table 131 has an entry for each module 205. Each entry stores information such as a module ID 501, a module name 502, an X coordinate 503, a Y coordinate 504, a connection destination ID 505, a property 506, a creation commit 507, an update commit 508, a category 509, and a display order 510. Hereinafter, a single module 205 is taken as an example (“target module 205” in the description of FIG. 5). The entry may store information other than the illustrated information (this applies to the other tables 132 to 138).

モジュールID 501は、対象モジュール205を識別するための識別子を示す。   Module ID 501 indicates an identifier for identifying the target module 205.

モジュール名502は、対象モジュール205を表示する際の名称を示す。   A module name 502 indicates a name when the target module 205 is displayed.

X座標503及びY座標504は、対象モジュール205のワークスペース上での位置を示す位置情報に相当する。X座標503は、ワークスペース上でのX座標を示し、Y座標504は、ワークスペース上でのY座標を示す。本実施例では、一例として、X座標及びY座標は、ワークスペースの左上隅を原点とし、そこから対象モジュール205の中心部までの距離をピクセルという単位で示す。   The X coordinate 503 and the Y coordinate 504 correspond to position information indicating the position of the target module 205 on the work space. The X coordinate 503 indicates the X coordinate on the workspace, and the Y coordinate 504 indicates the Y coordinate on the workspace. In this embodiment, as an example, the X coordinate and Y coordinate indicate the distance from the upper left corner of the workspace to the center of the target module 205 in units of pixels.

接続先ID 505は、対象モジュールの一端(出力側)に一個のワイヤ経由で(他のモジュール205の介在無しに)接続されているモジュール205である接続先モジュール205のモジュールIDを示す。   The connection destination ID 505 indicates the module ID of the connection destination module 205, which is the module 205 connected to one end (output side) of the target module via one wire (without the intervention of another module 205).

プロパティ506は、対象モジュール205で処理を行うために必要な設定値を含むプロパティを示している。例えば、対象モジュール205がメール送信を行うモジュールの場合は、プロパティにおけるプロパティ項目は、メールサービスに接続するためのIPアドレス、ポート番号、ログインユーザ名、ログインパスワードなどがある。   A property 506 indicates a property including a setting value necessary for processing by the target module 205. For example, in the case where the target module 205 is a module that transmits mail, the property items in the property include an IP address, a port number, a login user name, a login password, and the like for connecting to the mail service.

作成コミット507は、対象モジュール205を含んだソースコード(ビジュアルプログラミングにおいては、プロパティを含んだモジュール205やモジュール205を接続するワイヤ206などの情報)をユーザが最初にgitなどのソースコード管理システム(図示せず)に登録した際にソースコード管理システムにより発行されたコミットIDを示す。コミットIDが同一である二個以上のモジュール205が、同時期にソースコード管理システムに登録されたモジュールであると判断することが可能となる。コミットIDは、同時期にソースコードの保存が行われていることが確認できれば、対象モジュール205の作成日時などが利用されても良い。また、「ソースコード管理システム」は、ソースコードデータを管理し当該ソースコードデータが登録されるシステムである。   The creation commit 507 is a source code management system (such as git) for which the user first generates source code including the target module 205 (in the case of visual programming, information such as the module 205 including the property and the wire 206 connecting the module 205). Indicates the commit ID issued by the source code management system when registering in (not shown). It is possible to determine that two or more modules 205 having the same commit ID are modules registered in the source code management system at the same time. As the commit ID, the creation date and time of the target module 205 may be used as long as it can be confirmed that the source code is saved at the same time. The “source code management system” is a system that manages source code data and registers the source code data.

更新コミット508は、ユーザがソースコードを編集して更新した際のコミットID(ソースコード管理システムに更新後のソースコードが登録された際に発行されるコミットID)を示す。コミットIDは、同時期にソースコードの保存(更新)が行われていることが確認できれば、更新日時などが利用されても良い。   The update commit 508 indicates a commit ID (commit ID issued when the updated source code is registered in the source code management system) when the user edits and updates the source code. As for the commit ID, if it can be confirmed that the source code is stored (updated) at the same time, the update date and time may be used.

カテゴリ509は、対象モジュール205が過去に作成されたモジュールやモジュールの雛形を基に作成されたモジュールである場合に、その過去に作成されたモジュールやモジュールの雛形が属していたカテゴリを示す。   The category 509 indicates a category to which the module or module template created in the past belonged when the target module 205 is a module created based on a module or module template created in the past.

表示順510は、モジュールの集約処理を進めていく上で表示するモジュール205の順番を示す。本実施例では、数値が小さいほど先に表示される。この順番は、それぞれのモジュールのX座標503及びY座標504の情報を基に計算しても良い。実施例1の例では、各モジュールが座標(0,0)からどの程度離れているかをX座標503及びY座標504から算出して、座標(0,0)に近いモジュールから昇順で順番が付与される。   The display order 510 indicates the order of the modules 205 to be displayed when the module aggregation process proceeds. In this embodiment, the smaller the numerical value, the earlier the display. This order may be calculated based on the information of the X coordinate 503 and Y coordinate 504 of each module. In the example of the first embodiment, how far each module is from the coordinate (0,0) is calculated from the X coordinate 503 and the Y coordinate 504, and the order is given in ascending order from the module close to the coordinate (0,0). Is done.

図6は、実施例1のポリシー管理テーブル132の一例を示す図である。   FIG. 6 is a diagram illustrating an example of the policy management table 132 according to the first embodiment.

ポリシー管理テーブル132は、モジュール205間の関係性の度合いや、プロパティ間の関係性の度合いや、プロパティの特徴などを評価するために利用する各種ポリシーの情報を格納する。ポリシー管理テーブル132は、ポリシー毎にエントリを有する。各エントリは、ポリシーID 601、種別名602、ポリシー内容603、ポイント604及び事前ポリシー605といった情報を格納する。以下、一個のポリシーを例に取る(図6の説明において「対象ポリシー」)。   The policy management table 132 stores information on various policies used for evaluating the degree of relationship between modules 205, the degree of relationship between properties, property characteristics, and the like. The policy management table 132 has an entry for each policy. Each entry stores information such as policy ID 601, type name 602, policy content 603, point 604, and prior policy 605. Hereinafter, a single policy is taken as an example (“target policy” in the description of FIG. 6).

ポリシーID 601は、対象ポリシーを識別するための識別子を示す。   Policy ID 601 indicates an identifier for identifying the target policy.

種別602は、対象ポリシーの種別を示す。本実施例では、ポリシーの種別として、“モジュール比較”、“プロパティ比較”及び“プロパティ”の三つがある。“モジュール比較”のポリシーは、モジュール同士の関連性を評価するために利用されるポリシーである。“プロパティ比較”のポリシーは、プロパティ同士の関連性を評価するために利用されるポリシーである。“プロパティ”のポリシーは、プロパティが特定の条件を満たしているかを評価するために利用されるポリシーである。   A type 602 indicates the type of the target policy. In this embodiment, there are three types of policy: “module comparison”, “property comparison”, and “property”. The “module comparison” policy is a policy used for evaluating the relationship between modules. The “property comparison” policy is a policy used for evaluating the relationship between properties. The “property” policy is a policy used for evaluating whether a property satisfies a specific condition.

ポリシー内容603は、対象ポリシーの内容(具体的には、モジュール205やプロパティを評価するためのパターンなど)を示す。   The policy content 603 indicates the content of the target policy (specifically, the module 205, a pattern for evaluating properties, etc.).

ポイント604は、対象ポリシーを満たした場合に加算されるポイントを示す。対象ポリシーが、“モジュール比較”のポリシーの場合、ポイントは、後述のモジュール関連ポイントに加算される。対象ポリシーが、“プロパティ比較”又は“プロパティ”のポリシーの場合、ポイントは、後述のプロパティ関連ポイントに加算される。なお、本実施例では、モジュール関連ポイントやプロパティ関連ポイントといった評価値は、満たされたポリシーに対応したポイントの累計であるが、累計以外であっても良い(例えば、低いポイント(例えば、相対的に低い又は閾値未満のポイント)は、ノイズになる可能性があるため加算対象から外されてもよい)。また、例えば、ポリシーには追加の情報として、特定のモジュールやプロパティに対してはポリシーを適用しないなどして、過度なポリシーによる比較を避けるようにしても良い。また、ポイント604は、ユーザが他のポリシーとの兼ね合いをみて変更しても良い。   A point 604 indicates a point added when the target policy is satisfied. When the target policy is a “module comparison” policy, the points are added to the module-related points described later. When the target policy is a “property comparison” or “property” policy, points are added to property-related points described later. In this embodiment, the evaluation values such as module-related points and property-related points are the total of points corresponding to the satisfied policy, but may be other than the total (for example, low points (for example, relative points) May be excluded from the addition target because it may become noise). Further, for example, as additional information in the policy, the policy may not be applied to a specific module or property, so that comparison by an excessive policy may be avoided. The point 604 may be changed by the user in view of the balance with other policies.

事前ポリシー605は、別のポリシーを適用して評価を行う前に事前に評価しておくべきポリシーの識別情報である。   The prior policy 605 is policy identification information that should be evaluated in advance before applying another policy and performing the evaluation.

なお、同一のプロパティ項目であるがプロパティ名が違う場合には、辞書などで同一のプロパティ項目であることが特定されても良い。   If the property names are the same, but the property names are different, the same property item may be specified by a dictionary or the like.

図7は、実施例1のインフラ管理テーブル138の一例を示す図である。   FIG. 7 is a diagram illustrating an example of the infrastructure management table 138 according to the first embodiment.

インフラ管理テーブル138は、モジュールが実際にデプロイされる物理サーバ、仮想サーバ、コンテナ実行基盤等のITインフラに関する情報を格納し、またITインフラ上で稼働するモジュールとの関連を表す情報を格納するテーブルである。また、モジュールがSaaS(Software as a Service)などのサービスに接続して処理を行うものであった場合は、 SaaSに関する情報をインフラに関する情報として格納し、また、SaaSを利用するモジュールとの関連を表す情報も格納する。インフラ管理テーブル138は、ITインフラ毎にエントリを有する。各エントリが、インフラID 701、管理IPアドレス702、認証情報703、OS 704、構成705及び関連モジュール706といった情報を格納する。以下、一個のインフラを例に取る(図7の説明において「対象ITインフラ」)。   The infrastructure management table 138 stores information related to the IT infrastructure such as a physical server, a virtual server, and a container execution platform on which the module is actually deployed, and stores information indicating a relationship with the module operating on the IT infrastructure. It is. Also, if the module is connected to a service such as SaaS (Software as a Service) for processing, store information related to SaaS as information related to the infrastructure, and link with the module that uses SaaS. Stores information to represent. The infrastructure management table 138 has an entry for each IT infrastructure. Each entry stores information such as infrastructure ID 701, management IP address 702, authentication information 703, OS 704, configuration 705, and related module 706. In the following, a single infrastructure is taken as an example ("target IT infrastructure" in the description of FIG. 7).

インフラID701は、対象ITインフラを一意に識別するための識別子である。   The infrastructure ID 701 is an identifier for uniquely identifying the target IT infrastructure.

管理IPアドレス702は、対象ITインフラに割り当てられているIPアドレスを示す。認証情報703は、対象ITインフラに関する認証情報(例えばユーザID及びパスワード)である。このIPアドレスと認証情報とを基に対象ITインフラから対象ITインフラに関する情報を取得することができる。   The management IP address 702 indicates an IP address assigned to the target IT infrastructure. The authentication information 703 is authentication information (for example, user ID and password) related to the target IT infrastructure. Information on the target IT infrastructure can be acquired from the target IT infrastructure based on the IP address and the authentication information.

OS 704は、対象ITインフラのOSに関する情報である。構成705は、対象ITインフラのOSやコンテナ基盤となるミドルウェアなどの情報である。なお、構成705は、CPUやメモリなどのハードウェアの情報を含んだ情報でも良い。   The OS 704 is information related to the OS of the target IT infrastructure. The configuration 705 is information such as the OS of the target IT infrastructure and middleware serving as a container base. The configuration 705 may be information including information on hardware such as a CPU and a memory.

関連モジュール706は、対象ITインフラの上で稼働するモジュールの識別子を示す。結果として、対象ITインフラとモジュール205の結びつきが表現されている。なお、対象ITインフラとモジュールとの結びつきは、インフラ管理テーブル138のエントリに関連モジュール706が格納されることに代えて又は加えて、モジュール管理テーブル131のエントリに、関連するITインフラの識別子を示す情報が格納されることで、表現されても良い。   The related module 706 indicates an identifier of a module operating on the target IT infrastructure. As a result, the connection between the target IT infrastructure and the module 205 is expressed. The connection between the target IT infrastructure and the module indicates the identifier of the related IT infrastructure in the entry of the module management table 131 instead of or in addition to the related module 706 being stored in the entry of the infrastructure management table 138. It may be expressed by storing information.

図8は、実施例1の選択範囲管理テーブル133の一例を示す図である。   FIG. 8 is a diagram illustrating an example of the selection range management table 133 according to the first embodiment.

選択範囲管理テーブル133は、ユーザが特定のモジュール群を指定して集約処理を開始する際に集約する各モジュールの識別子を示す情報を格納する。また、登録日時を示す情報が格納されることで、集約処理の履歴としての情報が含まれても良い。選択範囲管理テーブル133は、選択範囲(集約モジュール)毎に、エントリを有する。各エントリは、選択範囲ID 801、モジュールID 802及び登録日時803といった情報を格納する。以下、一個の選択範囲を例に取る(図8の説明において「対象選択範囲」)。   The selection range management table 133 stores information indicating the identifier of each module to be aggregated when the user designates a specific module group and starts aggregation processing. In addition, information indicating the registration date and time may be stored to include information as a history of aggregation processing. The selection range management table 133 has an entry for each selection range (aggregation module). Each entry stores information such as a selection range ID 801, a module ID 802, and a registration date and time 803. Hereinafter, a single selection range is taken as an example (“target selection range” in the description of FIG. 8).

選択範囲ID801は、集約処理とそれを実施する際にユーザに選択されたモジュール群を一個に識別するための識別子(対象選択範囲の識別子)である。   The selection range ID 801 is an identifier (target selection range identifier) for identifying the aggregation process and the module group selected by the user when performing the aggregation process.

モジュールID802は、集約処理を実施する際にユーザに選択された(対象選択範囲に属する)各モジュールのモジュールIDを示す。   The module ID 802 indicates the module ID of each module (belonging to the target selection range) selected by the user when performing the aggregation process.

登録日時803は、集約処理を開始した(対象選択範囲が指定された)日時を示す。なお、登録日時803が示す日時は、後からユーザが過去に実施された集約処理を確認するためのものであり、集約処理が実施されたことが判断できるのであれば開始日時でなくても良い。   The registration date and time 803 indicates the date and time when the aggregation process is started (target selection range is specified). Note that the date and time indicated by the registration date and time 803 is for the user to confirm the aggregation processing performed in the past, and may not be the start date and time as long as it can be determined that the aggregation processing has been performed. .

図9は、実施例1のモジュール比較テーブル134の一例を示す図である。   FIG. 9 is a diagram illustrating an example of the module comparison table 134 according to the first embodiment.

モジュール比較テーブル134は、二つのモジュールを比較して関連性の度合いを記録しておくために利用するテーブルである。モジュール比較テーブル134は、比較グループ(二個のモジュール205の組)毎に、エントリを有する。各エントリは、比較グループID 901、比較グループ902、モジュール関連ポイント903、関連プロパティ904、プロパティ関連ポイント905、集約906、非集約907及び選択範囲ID 908といった情報を格納する。以下、一個の比較グループを例に取る(図9の説明において「対象比較グループ」)。   The module comparison table 134 is a table used for comparing two modules and recording the degree of relevance. The module comparison table 134 has an entry for each comparison group (a set of two modules 205). Each entry stores information such as a comparison group ID 901, a comparison group 902, a module related point 903, a related property 904, a property related point 905, an aggregation 906, a non-aggregation 907, and a selection range ID 908. Hereinafter, a single comparison group is taken as an example (“target comparison group” in the description of FIG. 9).

比較グループID901は、対象比較グループを識別するための識別子を示す。   The comparison group ID 901 indicates an identifier for identifying the target comparison group.

比較グループ902は、対象比較グループに属する二つのモジュールの各々のモジュールIDを示す。   The comparison group 902 indicates the module ID of each of the two modules belonging to the target comparison group.

モジュール関連ポイント903は、対象比較グループに属するモジュール同士の関連性の高さを示す数値であるモジュール関連ポイントを示す。本実施例では、上述したように、“モジュール比較”のポリシーを対象比較グループが満たした場合、そのポリシーに予め割り当てられているポイントが、対象比較グループのモジュール関連ポイントに加算される。例えば、モジュール関連ポイントの初期値は“0”であり、“モジュール比較”のポリシーが適合される都度に、そのポリシーに対応したポイントが加算されても良い。   The module relation point 903 indicates a module relation point which is a numerical value indicating the degree of relevance between modules belonging to the target comparison group. In the present embodiment, as described above, when the target comparison group satisfies the “module comparison” policy, the points previously assigned to the policy are added to the module-related points of the target comparison group. For example, the initial value of the module-related point is “0”, and each time the “module comparison” policy is adapted, a point corresponding to the policy may be added.

関連プロパティ904は、対象比較グループに属する二個のモジュールが有するそれぞれのプロパティのうち、特定のポリシーで評価した場合に関連性が高いプロパティ項目の組み合わせであって、後の処理でユーザにプロパティ共通化を提案するプロパティ項目の組み合わせを示す。   The related property 904 is a combination of property items that are highly relevant when evaluated by a specific policy among the properties of the two modules belonging to the target comparison group. Indicates a combination of property items that are proposed.

プロパティ関連ポイント905は、対象比較グループに属するモジュールのプロパティ同士の関連性の高さを示す数値であるプロパティ関連ポイントを示す。本実施例では、上述したように、“プロパティ比較”又は“プロパティ”のポリシーを対象比較グループが満たした場合、そのポリシーに予め割り当てられているポイントが、対象比較グループのプロパティ関連ポイントに加算される。例えば、プロパティ関連ポイントの初期値は“0”であり、“プロパティ比較”又は“プロパティ”のポリシーが適合される都度に、そのポリシーに対応したポイントが加算されても良い。   A property related point 905 indicates a property related point which is a numerical value indicating the level of relevance between the properties of the modules belonging to the target comparison group. In this embodiment, as described above, when the target comparison group satisfies the “property comparison” or “property” policy, the points assigned in advance to the policy are added to the property-related points of the target comparison group. The For example, the initial value of the property-related point is “0”, and each time the “property comparison” or “property” policy is adapted, a point corresponding to that policy may be added.

集約906は、対象比較グループに属する二個のモジュールのプロパティのうち、共通化されたプロパティ項目を示す。一方、非集約907は、対象比較グループに属する二個のモジュールのプロパティのうち、共通化されなかったプロパティ項目を示す。   An aggregation 906 indicates a common property item among the properties of the two modules belonging to the target comparison group. On the other hand, the non-aggregation 907 indicates property items that have not been shared among the properties of the two modules belonging to the target comparison group.

選択範囲ID 908は、対象比較グループが属する選択範囲の識別子である。   The selection range ID 908 is an identifier of the selection range to which the target comparison group belongs.

図10は、実施例1のプロパティテーブル135の一例を示す図である。   FIG. 10 is a diagram illustrating an example of the property table 135 according to the first embodiment.

プロパティテーブル135は、モジュールのプロパティに対してポリシー管理テーブル132の種別が“プロパティ”のポリシーを適用した際にポリシーを満たしたか否かを登録しておくためのテーブルである。なお、本実施例では、集約処理中にプロパティテーブル135の生成が行われるが、予めプロパティに対してポリシー種別が“プロパティ”のポリシーが事前ポリシーとして登録されていても良い。   The property table 135 is a table for registering whether or not a policy is satisfied when a policy whose type is “property” in the policy management table 132 is applied to the module property. In this embodiment, the property table 135 is generated during the aggregation process. However, a policy whose policy type is “property” for a property may be registered in advance as a prior policy.

プロパティテーブル135は、プロパティ要素毎に、エントリを有する。各エントリは、プロパティID 1001及び事前ポリシー1002といった情報を格納する。以下、一個のプロパティ要素を例に取る(図10の説明において「対象プロパティ要素」)。   The property table 135 has an entry for each property element. Each entry stores information such as a property ID 1001 and a prior policy 1002. Hereinafter, a single property element is taken as an example (“target property element” in the description of FIG. 10).

プロパティID1001は、対象プロパティ要素を識別するための識別子である。なお、当該識別子は、例えば、対象プロパティ要素におけるプロパティ項目(例えばプロパティ項目名)と、当該プロパティ項目を持つプロパティに関連したモジュールのモジュールIDとを含む。   The property ID 1001 is an identifier for identifying the target property element. The identifier includes, for example, a property item (for example, a property item name) in the target property element and a module ID of a module related to the property having the property item.

事前ポリシー1002は、対象プロパティ要素が満たす“プロパティ”のポリシーのポリシーIDを示す。   The prior policy 1002 indicates the policy ID of the “property” policy that the target property element satisfies.

図11は、実施例1の表示条件テーブル136の一例を示す図である。   FIG. 11 is a diagram illustrating an example of the display condition table 136 according to the first embodiment.

表示条件テーブル136は、ユーザにモジュールの集約処理をGUI(ワークスペース)で行わせる際に表示するモジュール数などの条件を格納する。表示条件テーブル136は、表示条件ごとにエントリを有する。各エントリは、表示条件ID 1101及び最大モジュール表示数902といった情報を格納する。以下、一個の表示条件を例に取る(図11の説明において「対象表示条件」)。   The display condition table 136 stores conditions such as the number of modules to be displayed when the user performs module aggregation processing using a GUI (work space). The display condition table 136 has an entry for each display condition. Each entry stores information such as a display condition ID 1101 and a maximum module display number 902. Hereinafter, one display condition is taken as an example (“target display condition” in the description of FIG. 11).

表示条件ID1101は、対象表示条件を一意に識別するための識別子を示す。   The display condition ID 1101 indicates an identifier for uniquely identifying the target display condition.

最大モジュール表示数902は、ワークスペース上に表示されるモジュールの数の上限である最大モジュール表示数を示す。最大モジュール表示数は、ユーザが設定できるようにしていても良いし、ユーザが利用する入力装置の画面サイズのようなユーザの利用環境の情報を利用してシステム(例えば制御部120)が自動的に値を設定しても良い。最大モジュール表示数が画面表示の制約の一例であるが、最大モジュール表示数は、画面サイズではなく、システムやユーザが任意に決めた値であっても良いし、設定ウィザード画面のアクティブウィンドウの表示倍率が動的に変更された場合に(拡大又は縮小が動的に行われた場合に)表示倍率に応じて最大モジュール表示数が動的に変更されても良い。また、モジュール関連ポイントが一定値以上である全ての比較グループが表示されるようにモジュールの表示サイズが自動調整されても良い。   The maximum module display number 902 indicates the maximum module display number that is the upper limit of the number of modules displayed on the workspace. The maximum module display number may be set by the user, or the system (for example, the control unit 120) automatically uses information on the user's usage environment such as the screen size of the input device used by the user. A value may be set for. The maximum number of modules displayed is an example of screen display restrictions, but the maximum number of modules displayed may not be the screen size, but may be a value arbitrarily determined by the system or user, or the active window display of the configuration wizard screen When the magnification is dynamically changed (when enlargement or reduction is dynamically performed), the maximum module display number may be dynamically changed according to the display magnification. Further, the display size of the module may be automatically adjusted so that all the comparison groups whose module-related points are a certain value or more are displayed.

図12は、実施例1の表示グループテーブル137の一例を示す図である。   FIG. 12 is a diagram illustrating an example of the display group table 137 according to the first embodiment.

表示グループテーブル137は、ユーザにモジュールの集約処理をGUIで行わせる際に同時に表示する単位である表示グループに関する情報を格納する。表示グループテーブル137は、表示グループ毎にエントリを有する。各エントリは、表示グループID 1201、比較グループID 1202、共通化対象1203、表示条件1204及び選択範囲ID 1205といった情報を格納する。以下、一個の表示グループを例に取る(図12の説明において「対象表示グループ」)。   The display group table 137 stores information on a display group, which is a unit to be displayed at the same time when a user performs module aggregation processing using the GUI. The display group table 137 has an entry for each display group. Each entry stores information such as a display group ID 1201, a comparison group ID 1202, a common target 1203, a display condition 1204, and a selection range ID 1205. Hereinafter, a single display group is taken as an example (“target display group” in the description of FIG. 12).

表示グループID1201は、対象表示グループを一意に識別するための識別子を示す。   The display group ID 1201 indicates an identifier for uniquely identifying the target display group.

比較グループID1202は、対象表示グループを構成する一個以上の比較グループの各々の識別子を示す。   The comparison group ID 1202 indicates an identifier of each of one or more comparison groups constituting the target display group.

共通化対象1203は、対象表示グループを構成する比較グループの中でユーザが共通化を行うと判断した比較グループの比較グループIDを示す。   The common target 1203 indicates a comparison group ID of a comparison group that the user has determined to share among the comparison groups that constitute the target display group.

表示条件1204は、対象表示グループの表示を行う際に適用する表示条件の表示条件IDを示す。例えば、表示グループID:DG2によれば、二個の比較グループが一画面に表示され得る。   The display condition 1204 indicates the display condition ID of the display condition applied when displaying the target display group. For example, according to the display group ID: DG2, two comparison groups can be displayed on one screen.

選択範囲ID 1205は、対象表示グループが対応する1回の集約処理に関連した選択範囲の選択範囲IDを示す。   The selection range ID 1205 indicates the selection range ID of the selection range related to one aggregation process corresponding to the target display group.

図13は、ポリシー登録部121の一例を説明するフローチャートである。なお、図13〜17及び図20の「S」は、「ステップ」の略である。   FIG. 13 is a flowchart for explaining an example of the policy registration unit 121. Note that “S” in FIGS. 13 to 17 and FIG. 20 is an abbreviation for “step”.

ポリシー登録部121は、集約モジュールのモジュールまたはプロパティが共通化できるか否かをユーザが判断するための候補のグループを生成するために利用するポリシーを登録する。   The policy registration unit 121 registers a policy used to generate a candidate group for the user to determine whether or not the modules or properties of the aggregation module can be shared.

具体的には、ポリシー登録部121は、管理サーバ101の入力装置104等からユーザのポリシー登録の開始要求を受け付ける(ステップ1301)。その開始要求に応答して、ポリシー登録部121は、管理サーバ101の入力装置104や表示装置105等を通じて、ユーザに新たに登録したいポリシーを設定させる(ステップ1302)。なお、ポリシー登録画面(例えばGUI)は図示しないが、ポリシー登録画面を介して入力されたポリシーの情報が入力される。ポリシー登録部121は、ユーザが入力したポリシー情報を、ポリシー管理テーブル132に登録する(ステップ1303)。   Specifically, the policy registration unit 121 receives a user policy registration start request from the input device 104 of the management server 101 (step 1301). In response to the start request, the policy registration unit 121 causes the user to set a policy to be newly registered through the input device 104, the display device 105, or the like of the management server 101 (step 1302). Although a policy registration screen (for example, GUI) is not shown, policy information input via the policy registration screen is input. The policy registration unit 121 registers the policy information input by the user in the policy management table 132 (step 1303).

なお、ポリシーは、前述の通りユーザからの入力でも良いし、予めシステムに登録されていても良い(予めポリシー管理テーブル132が用意されていても良い)。また、ポリシー登録部121は、新しく登録するポリシーが既に登録されていないか否かを判断するようにしても良いし、ユーザが新しく登録するポリシーと類似するポリシーが存在していないか否かをポリシーの一覧を見せることによって確認させても良い。また、ユーザからのポリシー情報の入力は、管理サーバ101以外にも管理ネットワーク103等のネットワークで接続された、ビジュアルプログラミングツール106や他の計算機から行われても良い。   The policy may be input from the user as described above, or may be registered in advance in the system (the policy management table 132 may be prepared in advance). Further, the policy registration unit 121 may determine whether or not a policy to be newly registered has already been registered, and whether or not there is a policy similar to the policy to be newly registered by the user. It may be confirmed by showing a list of policies. Further, the policy information input from the user may be performed from the visual programming tool 106 or other computer connected via a network such as the management network 103 in addition to the management server 101.

図14は、インフラ関連生成部126の一例を説明するフローチャートである。   FIG. 14 is a flowchart for explaining an example of the infrastructure-related generation unit 126.

インフラ関連生成部126は、モジュールとそのモジュールが実行されるITインフラの情報を結びつける処理を行う。   The infrastructure related generation unit 126 performs processing for linking a module and information of an IT infrastructure in which the module is executed.

具体的には、インフラ関連生成部126は、ユーザがビジュアルプログラミングツール106の画面表示部141が表示したワークスペースでモジュールを配置してそれらを接続するなどのプログラミングが終わった後に、プログラムの実行命令がプログラム管理部142を通してプログラム実行部151に対して送信されたことを検知して処理を開始する(ステップ1401)。   Specifically, the infrastructure-related generation unit 126 executes a program execution instruction after programming such as placing modules in the workspace displayed by the screen display unit 141 of the visual programming tool 106 and connecting them is completed. Is detected and transmitted to the program execution unit 151 through the program management unit 142 (step 1401).

インフラ関連生成部126は、デプロイされるモジュールとそれがデプロイされる先のITインフラを一意に特定できる情報(インフラIDなど)をプログラム実行部151より取得する(ステップ1402)。   The infrastructure related generation unit 126 acquires information (such as an infrastructure ID) that can uniquely identify the module to be deployed and the IT infrastructure to which the infrastructure is deployed from the program execution unit 151 (step 1402).

なお、プログラム実行部151がプログラムの実行命令を受信した際にインフラ関連生成部126にプログラムを実行する際にプログラム内部の処理に関連するITインフラ情報が通知されても良い。   When the program execution unit 151 receives a program execution command, the infrastructure generation unit 126 may be notified of IT infrastructure information related to processing within the program.

もしくは、ITインフラ情報を取得するインフラ情報取得部125(処理に関するフローチャート等は省略)が、インフラ管理テーブル138の管理IPアドレス702及び認証情報703を基にITインフラから情報を直接取得するようにしても良い。その場合、情報取得方法としては、情報取得用エージェントを経由して取得する方法や、SSH(Secure Shell)のようなOSにデフォルトで導入されている通信手段を利用して情報を取得する方法や、IPMI(Intelligent Platform Management Interface)などのハードウェアから情報取得する方法などが考えられるが特に方法は限定しない。もしくは、管理サーバ101がITインフラの運用管理ソフトウェアやサービスと連携して、連携先のソフトウェアやサービスから取得した情報をインフラ管理テーブル138に登録するようにしても良い。また、ステップ1401のようにデプロイ実行命令の検知を契機に処理を開始するのではなく、管理サーバ101がスケジュールに合わせて定期的にITインフラの情報取得を行っても良いし、ITインフラの構成変更を検知した場合にITインフラの情報取得を行うのでも良い。   Alternatively, the infrastructure information acquisition unit 125 that acquires IT infrastructure information (a flowchart relating to processing is omitted) acquires information directly from the IT infrastructure based on the management IP address 702 and authentication information 703 of the infrastructure management table 138. Also good. In that case, information acquisition methods include a method of acquiring via an information acquisition agent, a method of acquiring information by using communication means installed by default in an OS such as SSH (Secure Shell), A method of acquiring information from hardware such as IPMI (Intelligent Platform Management Interface) is conceivable, but the method is not particularly limited. Alternatively, the management server 101 may register information acquired from the cooperation destination software or service in the infrastructure management table 138 in cooperation with the operation management software or service of the IT infrastructure. Also, instead of starting the process when the deployment execution command is detected as in step 1401, the management server 101 may periodically acquire IT infrastructure information according to the schedule, or the configuration of the IT infrastructure IT infrastructure information acquisition may be performed when a change is detected.

インフラ関連生成部126は、インフラ管理テーブル138の関連モジュール706として、デプロイされるモジュールのモジュールIDを登録する(ステップ1403)。   The infrastructure relation generation unit 126 registers the module ID of the module to be deployed as the related module 706 of the infrastructure management table 138 (step 1403).

インフラ関連生成部126は、処理完了を管理サーバ101に通知する(ステップ1404)。   The infrastructure related generation unit 126 notifies the management server 101 of the completion of processing (step 1404).

インフラ関連生成部126により管理サーバ101はモジュールとITインフラの情報を結びつけて情報を管理することが可能となり、ポリシー管理テーブル132のポリシーID:MP3のポリシーのようなITインフラに関係する情報を利用するポリシーでモジュール間の関連性を評価することが可能になる。   The infrastructure-related generation unit 126 allows the management server 101 to manage information by linking modules and IT infrastructure information, and uses information related to the IT infrastructure such as policy ID: MP3 policy in the policy management table 132. It becomes possible to evaluate the relevance between modules with the policy to do.

図15A〜図15Cは、集約候補生成部122の一例を説明するフローチャートである。   15A to 15C are flowcharts for explaining an example of the aggregation candidate generation unit 122.

集約候補生成部122は、ユーザから選択されたモジュール群のそれぞれの関連性の高さ、及び、そのモジュール群に属する複数個のモジュールがそれぞれ持つプロパティの関連性の高さを評価する。これにより、ユーザがモジュールを集約した際にプロパティの共通化できるか否かを判断するための指標ができる。   The aggregation candidate generation unit 122 evaluates the degree of relevance of each module group selected by the user and the degree of relevance of the properties of each of the plurality of modules belonging to the module group. Thereby, an index for determining whether or not the property can be shared when the user aggregates the modules can be obtained.

集約候補生成部122は、ユーザからモジュールの集約開始と集約対象とするモジュール群の指定を検知する(ステップ1501)。ユーザがモジュール群を指定する際は、ビジュアルプログラミングツール106のワークスペース上でマウスをドラックすることによって矩形のボックスを生成し、それで覆われたモジュール群を選択範囲のモジュール群といったように指定できるようにしても良い。   The aggregation candidate generation unit 122 detects the start of module aggregation and designation of a module group to be aggregated from the user (step 1501). When a user designates a module group, a rectangular box can be generated by dragging the mouse on the workspace of the visual programming tool 106, and a module group covered with the box can be designated as a module group of a selection range. Anyway.

次に、集約候補生成部122は、選択範囲(ユーザが選択した範囲)にいる全モジュール205のモジュールIDをモジュールID 602として選択範囲管理テーブル133に保存する(ステップ1502)。   Next, the aggregation candidate generating unit 122 stores the module IDs of all modules 205 in the selection range (the range selected by the user) as the module ID 602 in the selection range management table 133 (step 1502).

次に、集約候補生成部122は、選択範囲にいる各モジュール205について、当該モジュール205のモジュールIDをキーに、当該モジュール205の情報を、モジュール管理テーブル131から取得する(ステップ1503)。   Next, the aggregation candidate generating unit 122 acquires information on the module 205 from the module management table 131 for each module 205 in the selection range, using the module ID of the module 205 as a key (step 1503).

次に、集約候補生成部122は、ステップ1503で取得したモジュール情報と、ポリシー管理テーブル132から取得したポリシー情報を用いて集約候補生成処理を実施する。   Next, the aggregation candidate generation unit 122 performs an aggregation candidate generation process using the module information acquired in step 1503 and the policy information acquired from the policy management table 132.

集約候補生成処理では、選択範囲から全ての二個のモジュールの組み合わせを生成する(ステップ1504)。図8のようにモジュールIDがそれぞれMod1、Mod2、Mod3、Mod4といった4つのモジュールが選択されている場合は、Mod1-Mod2、Mod1-Mod3、Mod1-Mod4、Mod2-Mod3、Mod2-Mod4、Mod3-Mod4といった六つのペア(六つの比較グループ)が生成される。ただし、選択範囲内に一定数を超えるモジュールが存在する場合は、モジュールの組み合わせが膨大になるため、以降のステップ1508で述べる二個のモジュール間の接続関係とモジュール間の距離を表すホップ数などで関連性が高いモジュールの組み合わせを算出することにより、全てのモジュールの組み合わせを生成しないようにしても良い。   In the aggregation candidate generation process, a combination of all two modules is generated from the selection range (step 1504). As shown in Fig. 8, when four modules with Mod IDs Mod1, Mod2, Mod3, and Mod4 are selected, Mod1-Mod2, Mod1-Mod3, Mod1-Mod4, Mod2-Mod3, Mod2-Mod4, Mod3- Six pairs (six comparison groups) such as Mod4 are generated. However, if there are more than a certain number of modules in the selection range, the combination of modules becomes enormous, so the connection relationship between the two modules described in step 1508 and the number of hops that indicate the distance between the modules, etc. By calculating combinations of modules having high relevance, it is possible not to generate all combinations of modules.

次に、集約候補生成部122は、ステップ1504で生成した全比較グループに関する情報をモジュール比較テーブル134に登録する(ステップ1505)。ここでは、比較グループID 901、比較グループ902及び選択範囲ID 908として有効な値が登録され、その他の情報903〜907は初期値又は無効値である。   Next, the aggregation candidate generating unit 122 registers information on all comparison groups generated in step 1504 in the module comparison table 134 (step 1505). Here, valid values are registered as the comparison group ID 901, the comparison group 902, and the selection range ID 908, and the other information 903 to 907 are initial values or invalid values.

次に、集約候補生成部122は、ポリシー管理テーブル132から、“モジュール比較”のポリシーのうち最もポイント604が高いポリシーを取得(選択)する。図6の例によれば、ポリシーID:MP1の“(モジュール間ホップ数) == 1 ?”が取得される(ステップ1506)。このポリシーは、モジュールがワイヤで接続状態にありかつ隣接している(間に他のモジュールが存在しない)モジュール同士が否かを評価するために利用される。モジュール間の「ホップ数」とは、モジュール間のワイヤの数である。すなわち、モジュール間のワイヤの数が1であれば(言い換えれば、モジュール間に介在するモジュールの数が0であれば)、ホップ数は1である。   Next, the aggregation candidate generating unit 122 acquires (selects) the policy having the highest point 604 from the “module comparison” policies from the policy management table 132. According to the example of FIG. 6, “(number of hops between modules) == 1?” Of policy ID: MP1 is acquired (step 1506). This policy is used to evaluate whether modules are connected with wires and are adjacent (no other modules between them). The “hop count” between modules is the number of wires between modules. That is, if the number of wires between modules is 1 (in other words, if the number of modules interposed between modules is 0), the number of hops is 1.

次に、集約候補生成部122は、モジュール比較テーブル134から特定される比較グループそれぞれに対してループ処理(ループ1)を実施する(ステップ1507)。なお、ここでは、モジュール比較テーブル134には、上記六つの比較グループ(Mod1-Mod2、Mod1-Mod3、Mod1-Mod4、Mod2-Mod3、Mod2-Mod4、Mod3-Mod4)に関する情報が登録されているとする。以下、一個の比較グループを例に取る(ループ1の説明において「対象比較グループ」)。   Next, the aggregation candidate generating unit 122 performs loop processing (loop 1) for each comparison group specified from the module comparison table 134 (step 1507). In this example, the module comparison table 134 is registered with information on the six comparison groups (Mod1-Mod2, Mod1-Mod3, Mod1-Mod4, Mod2-Mod3, Mod2-Mod4, Mod3-Mod4). To do. Hereinafter, a single comparison group is taken as an example (“target comparison group” in the description of loop 1).

集約候補生成部122は、ステップ1506で予め取得しておいたポリシーID:MP1のポリシー“(モジュール間ホップ数) == 1 ?”を対象比較グループが満たすか否かを判断する(ステップ1508)。具体的には、集約候補生成部122は、対象比較グループに属する各モジュールのモジュールIDに対応した接続先ID 505にどちらか一方のモジュールIDが含まれているか否かを判断する。接続先ID505にどちらか一方のモジュールIDが含まれていれば、ホップ数が1である。   The aggregation candidate generation unit 122 determines whether the target comparison group satisfies the policy “(number of hops between modules) == 1?” Of the policy ID: MP1 acquired in advance in Step 1506 (Step 1508). . Specifically, the aggregation candidate generation unit 122 determines whether one of the module IDs is included in the connection destination ID 505 corresponding to the module ID of each module belonging to the target comparison group. If one of the module IDs is included in the connection destination ID 505, the number of hops is one.

ステップ1508の判断結果が真の場合は、処理がステップ1509に移動する。そうでない場合は、処理がステップ1510に移動する。   If the determination result at step 1508 is true, the process moves to step 1509. Otherwise, the process moves to step 1510.

ステップ1509では、集約候補生成部122は、対象比較グループがポリシーID:MP1のポリシーを満たしたため、対象比較グループに対応したモジュール関連ポイント903に、ポリシーID:MP1に対応したポイント“5”を加算する。   In step 1509, the aggregation candidate generator 122 adds the point “5” corresponding to the policy ID: MP1 to the module-related point 903 corresponding to the target comparison group because the target comparison group satisfies the policy ID: MP1. To do.

全ての比較グループに対して処理が完了した場合は、集約候補生成部122は、ステップ1507から開始したループ処理(ループ1)を終了する(ステップ1510)。   When the processing is completed for all the comparison groups, the aggregation candidate generating unit 122 ends the loop processing (loop 1) started from step 1507 (step 1510).

次に、集約候補生成部122は、“モジュール比較”のポリシーのうち次にポイントが高いポリシーを取得する(ステップ1511)。図6の例によれば、ポリシーID:MP2の“(モジュール間距離) < 200pixel ?”が取得される。このポリシーは、モジュールがビジュアルプログラミングツールのワークスペース上で近くに配置されているか否かを評価するために利用する。これは、モジュールの位置が近くに配置されている場合、同時に利用される可能性が高いと仮定した時に設定するポリシーである。処理フローのトポロジー的には遠い(例えばホップ数が多い)モジュール同士であっても、それらをワークスペース上において近接して配置することがユーザにとって好ましいことがあり、また、そのようなモジュール同士はまとまりとして何らかの意味がある可能性が高い。本実施例では、ポリシーID:MP2のようなポリシーにより、ワークスペースにおいて近い距離にあるモジュール同士は、関連性の高いモジュール同士であると評価され得る。   Next, the aggregation candidate generating unit 122 acquires a policy having the next highest point among the “module comparison” policies (step 1511). According to the example of FIG. 6, “(distance between modules) <200 pixel?” Of policy ID: MP2 is acquired. This policy is used to evaluate whether a module is located nearby on the visual programming tool workspace. This is a policy that is set when it is assumed that there is a high possibility that modules will be used at the same time if the modules are located close to each other. Even if modules that are far from each other in the topology of the processing flow (for example, have a large number of hops), it may be preferable for the user to place them close to each other in the workspace. There is a high possibility that there is some meaning as a unit. In the present embodiment, according to a policy such as policy ID: MP2, modules that are close to each other in the workspace can be evaluated as highly related modules.

次に、集約候補生成部122は、モジュール関連ポイント903がポイント閾値“5”以上の比較グループに対してループ処理(ループ2)を開始する(ステップ1512)。以下、一個の比較グループを例に取る(ループ2の説明において「対象比較グループ」)。なお、ポイント閾値“5”とは、ステップ1509にてポリシーID:MP1での評価で付加されたポイントを指しており、“5”を閾値とするのはあくまでも一例である。また、評価する比較グループが増加するが、モジュール比較テーブル134の比較グループ全てに対してループ処理を行っても良い。   Next, the aggregation candidate generating unit 122 starts loop processing (loop 2) for the comparison group in which the module-related point 903 is the point threshold value “5” or more (step 1512). Hereinafter, a single comparison group is taken as an example (“target comparison group” in the description of loop 2). Note that the point threshold value “5” refers to the point added in the evaluation with the policy ID: MP1 in step 1509, and “5” is merely an example. Further, although the number of comparison groups to be evaluated increases, loop processing may be performed on all comparison groups in the module comparison table 134.

集約候補生成部122は、ステップ1511で予め取得しておいたポリシーID:MP2のポリシー“(モジュール間距離) < 200pixel ?”を対象比較グループが満たすか否かを判断する(ステップ1513)。具体的には、集約候補生成部122は、対象比較グループの各モジュールのモジュールIDに対応したX座標及びY座標を取得する。対象比較グループがMod1-Mod2だとすると、x_Mod1(Mod1のx座標)、y_Mod1(Mod1のy座標)、x_Mod2(Mod2のx座標)、y_Mod2(Mod2のy座標)の値が取得できる。このため、モジュールMod1とモジュールMod2間の距離は、下記である。
(モジュールMod1とモジュールMod2間の距離)
= sqrt((x_Mod1(Mod1のx座標) - x_Mod2(Mod2のx座標))^2 + (y_Mod1(Mod1のy座標) - y_Mod2(Mod2のy座標))^2)
The aggregation candidate generating unit 122 determines whether or not the target comparison group satisfies the policy “(distance between modules) <200 pixels?” Of the policy ID: MP2 acquired in advance in step 1511 (step 1513). Specifically, the aggregation candidate generation unit 122 acquires the X coordinate and the Y coordinate corresponding to the module ID of each module of the target comparison group. If the target comparison group is Mod1-Mod2, the values of x_Mod1 (x coordinate of Mod1), y_Mod1 (y coordinate of Mod1), x_Mod2 (x coordinate of Mod2), y_Mod2 (y coordinate of Mod2) can be acquired. For this reason, the distance between the module Mod1 and the module Mod2 is as follows.
(Distance between module Mod1 and module Mod2)
= sqrt ((x_Mod1 (Mod1 x coordinate)-x_Mod2 (Mod2 x coordinate)) ^ 2 + (y_Mod1 (Mod1 y coordinate)-y_Mod2 (Mod2 y coordinate)) ^ 2)

図5の例によれば、モジュールMod1とモジュールMod2間の距離は、182pixelであり、200pixel未満である。このため、対象比較グループが、ポリシーID:MP2のポリシーを満たすことになる。   According to the example of FIG. 5, the distance between the modules Mod1 and Mod2 is 182 pixels, which is less than 200 pixels. Therefore, the target comparison group satisfies the policy with policy ID: MP2.

ステップ1513の判断結果が真の場合は、処理がステップ1514に移動する。そうでない場合は、処理がステップ1515に移動する。   If the judgment result at step 1513 is true, the process moves to step 1514. Otherwise, the process moves to step 1515.

ステップ1514では、集約候補生成部122は、対象比較グループがポリシーID:MP2のポリシーを満たしたため、対象比較グループに対応したモジュール関連ポイント903に、ポリシーID:MP2に対応したポイント“4”を加算する。   In step 1514, the aggregation candidate generator 122 adds the point “4” corresponding to the policy ID: MP2 to the module-related point 903 corresponding to the target comparison group because the target comparison group satisfies the policy ID: MP2. To do.

ここで全ての比較グループに対して処理が完了した場合は、集約候補生成部122は、ステップ1512から開始したループ処理(ループ2)を終了する(ステップ1515)。   If the processing is completed for all the comparison groups, the aggregation candidate generating unit 122 ends the loop processing (loop 2) started from step 1512 (step 1515).

次に、集約候補生成部122は、“モジュール比較”のポリシーのうち次にポイントが高いポリシーを取得する(ステップ1516)。図6の例によれば、ポリシーID:MP3の“同一ホスト上にデプロイされている?”が取得される(ステップ1516)。このポリシーは、モジュールが同一のホスト上で稼働するか否かを判断して、同一ホスト上に存在している場合は関連性が高いと判断するために利用される。   Next, the aggregation candidate generating unit 122 acquires a policy having the next highest point among the “module comparison” policies (step 1516). According to the example of FIG. 6, the policy ID: MP3 “Deployed on the same host?” Is acquired (step 1516). This policy is used to determine whether or not a module operates on the same host, and to determine that the relevance is high if the module exists on the same host.

次に、集約候補生成部122は、モジュール関連ポイント903がポイント閾値“5”以上の比較グループに対してループ処理(ループ3)を開始する(ステップ1517)。ポイント閾値の“5”はあくまでも一例である。例えば、ループ処理を行う対象の比較グループを計算量削減のために更に制限したい場合は、ステップ1514にてポリシーID:MP2での評価で付加されたポイント“4”を考慮して、モジュール関連ポイント903が“9”以上の比較グループに対してループ処理が行われても良い。また、評価する比較グループが増加するが、モジュール比較テーブル134の比較グループ全てに対してループ処理が行われても良い。以下、一個の比較グループを例に取る(ループ3の説明において「対象比較グループ」)。   Next, the aggregation candidate generating unit 122 starts loop processing (loop 3) for the comparison group in which the module-related point 903 is the point threshold value “5” or more (step 1517). The point threshold value “5” is merely an example. For example, if you want to further limit the comparison group for loop processing to reduce the amount of calculation, consider the point “4” added in the evaluation with the policy ID: MP2 in step 1514, module related points A loop process may be performed on the comparison group 903 of “9” or more. Further, although the number of comparison groups to be evaluated increases, loop processing may be performed on all comparison groups in the module comparison table 134. Hereinafter, a single comparison group is taken as an example (“target comparison group” in the description of loop 3).

集約候補生成部122は、ステップ1516で予め取得しておいたポリシーID:MP3のポリシー“同一ホスト上にデプロイされている?”を対象比較グループが満たすか否かを判断する(ステップ1518)。具体的には、集約候補生成部122は、インフラ管理テーブル138を参照し、関連モジュール706に対象比較グループに属する二個のモジュールのモジュールIDが含まれているか否かを判断する。   The aggregation candidate generation unit 122 determines whether the target comparison group satisfies the policy “MP3 deployed on the same host?” With the policy ID: MP3 acquired in advance in step 1516 (step 1518). Specifically, the aggregation candidate generation unit 122 refers to the infrastructure management table 138 and determines whether or not the related module 706 includes module IDs of two modules belonging to the target comparison group.

ステップ1518の判断結果が真の場合は、処理がステップ1519に移動する。そうでない場合は、処理がステップ1520に移動する。   If the judgment result at step 1518 is true, the process moves to step 1519. Otherwise, the process moves to step 1520.

ステップ1519では、集約候補生成部122は、対象比較グループがポリシーID:MP3のポリシーを満たしたため、対象比較グループに対応したモジュール関連ポイント903に、ポリシーID:MP3に対応したポイント“3”を加算する。   In step 1519, the aggregation candidate generator 122 adds the point “3” corresponding to the policy ID: MP3 to the module related point 903 corresponding to the target comparison group because the target comparison group satisfies the policy ID: MP3. To do.

ここで全ての比較グループに対して処理が完了した場合は、集約候補生成部122は、ステップ1517から開始したループ処理(ループ3)を終了する(ステップ1520)。   If the processing is completed for all the comparison groups, the aggregation candidate generating unit 122 ends the loop processing (loop 3) started from step 1517 (step 1520).

なお、図示は行わないが、モジュール間の関連性を前述のモジュールの接続関係、位置情報及びITインフラ情報からだけでなく、別の観点から評価する方法として、ステップ1506からステップ1520の間でITインフラに関係する情報を利用するポリシーを適用する処理が挿入されても良い。   Although not shown in the figure, as a method for evaluating the relationship between modules not only from the connection relationship of the aforementioned modules, the position information and the IT infrastructure information but also from another viewpoint, the IT between step 1506 and step 1520 Processing for applying a policy that uses information related to infrastructure may be inserted.

例えば、図6の例によれば、ポリシーID:MP4のポリシーは、モジュールを含んだソースコード(ビジュアルプログラミングにおいては、プロパティ情報を含んだモジュールやモジュールを接続するワイヤなどの情報)をユーザが最初にgitなどのソースコード管理システム(図示せず)に登録した際にソースコード管理システムにより発行されたコミットIDをモジュール間で比較し、コミットIDが一致した場合は、同時期に開発されたモジュールであると判断可能であり、ポリシーID:MP4に対応したポイントがモジュール関連ポイント903に加算される。本実施例では、モジュール管理テーブル131に作成コミット507としてコミットIDが格納される。   For example, according to the example of FIG. 6, the policy ID: MP4 is the policy that the user first has the source code including the module (in visual programming, the module including the property information and the information such as the wires connecting the modules). Compared to the commit ID issued by the source code management system when registering in a source code management system (not shown) such as git, and if the commit IDs match, the module developed at the same time The point corresponding to the policy ID: MP4 is added to the module-related point 903. In this embodiment, a commit ID is stored in the module management table 131 as the creation commit 507.

また、図6の例によれば、ポリシーID:MP5のポリシーは、モジュールを含んだソースコードを編集して更新した際に前述のポリシーID:MP4のポリシーの場合と同様にgitなどのソースコード管理システムから発行されたコミットIDをモジュール間で比較し、コミットIDが一致した場合は、同時期に変更が行われたモジュールであると判断可能であり、ポリシーID:MP5に対応したポイントがモジュール関連ポイント903に加算される。本実施例では、モジュール管理テーブル131の更新コミット508としてコミットIDが格納される。   In addition, according to the example in FIG. 6, the policy ID: MP5 policy is the same as the policy ID: MP4 policy described above when the source code including the module is edited and updated. The commit ID issued from the management system is compared between the modules. If the commit IDs match, it can be determined that the module has been changed at the same time, and the point corresponding to policy ID: MP5 is the module. It is added to the related point 903. In this embodiment, the commit ID is stored as the update commit 508 of the module management table 131.

また、図6の例によれば、ポリシーID:MP6のポリシーは、モジュールを含んだソースコードをgitなどのソースコード管理システムに登録した際に、そのユーザの情報をモジュール管理テーブル131にAuthorとして登録しておく(本実施例のモジュール管理テーブル131では省略)。その情報を基にモジュール間で比較を行い、Authorが一致した場合は、同一のユーザ(モジュール開発者)が開発に携わっている可能性が高く、その設定プロパティも一致する可能性が高いということが想定される。そのような場合、ポリシーID:MP6に対応したポイントがモジュール関連ポイント903に加算される。   In addition, according to the example of FIG. 6, the policy with the policy ID: MP6 is registered as the author in the module management table 131 when the source code including the module is registered in the source code management system such as git. Registered (omitted in the module management table 131 of this embodiment). If modules are compared based on that information, and the Authors match, the same user (module developer) is likely to be involved in the development, and its configuration properties are also likely to match. Is assumed. In such a case, a point corresponding to the policy ID: MP6 is added to the module-related point 903.

また、図6の例によれば、ポリシーID:MP7のポリシーは、データ取得、データ解析、データ保存など再利用するために過去に作成したモジュールをカテゴリ分けしておき、それをgit等のソースコード管理システムなどに登録しておく。それを再利用して新たなアプリケーションプログラムを作る場合において、カテゴリを識別する情報をモジュール管理テーブル131にカテゴリ509として登録しておく。その情報を基にモジュール間で比較を行う。カテゴリが一致した場合は、ポリシーID:MP7に対応したポイントがモジュール関連ポイント903に加算される。   In addition, according to the example in Fig. 6, the policy with policy ID: MP7 categorizes modules created in the past for reuse such as data acquisition, data analysis, data storage, etc. Register with a code management system. When a new application program is created by reusing it, information for identifying the category is registered as a category 509 in the module management table 131. A comparison is made between modules based on that information. If the categories match, the point corresponding to the policy ID: MP7 is added to the module-related point 903.

ここからは、集約候補生成部122は、モジュール内のプロパティ同士の関連性を評価する。このプロパティ同士の関連性の高さについてポリシーを用いて評価しておくことで、のちにユーザに共通化できる可能性が高いプロパティ群として提示するために利用する。   From here, the aggregation candidate generating unit 122 evaluates the relationship between the properties in the module. By evaluating the degree of relevance between these properties using a policy, it is used to present as a property group that is likely to be shared later by the user.

集約候補生成部122は、ポリシー管理テーブル132から、種別602==“プロパティ”及びポリシー種別==“プロパティ比較”のポリシーを取得する(ステップ1521)。   The aggregation candidate generation unit 122 acquires a policy of type 602 == “property” and policy type == “property comparison” from the policy management table 132 (step 1521).

集約候補生成部122は、モジュール比較テーブル134から、比較グループの情報を取得する(ステップ1522)。集約候補生成部122は、このステップで取得した各比較グループに属する二個モジュールがそれぞれ持つプロパティについて共通化できる可能性があるものを検出する。ちなみに、この比較グループの情報を取得する際、全ての比較グループに対して処理を行うと膨大な計算量になる可能性があるため、比較グループのうちモジュール関連ポイント903が低い(例えば、相対的に低い又は一定値未満である)ものについては、集約候補生成部122は、この後のプロパティの評価の対象外としても良い。   The aggregation candidate generating unit 122 acquires information on the comparison group from the module comparison table 134 (step 1522). The aggregation candidate generation unit 122 detects a possibility that the two modules belonging to each comparison group acquired in this step can be shared. By the way, when acquiring information of this comparison group, if processing is performed for all the comparison groups, there is a possibility that a huge amount of calculation is required. The aggregation candidate generation unit 122 may exclude the property from being evaluated later.

次に、集約候補生成部122は、モジュール比較テーブル134の比較グループそれぞれに対してループ処理(ループ4)を実施する(ステップ1523)。以下、一個の比較グループを例に取る(ループ4の説明において「対象比較グループ」)。なお、このループ処理の時点でモジュール関連ポイント903が低い比較グループを除外することで計算量を減らしても良い。   Next, the aggregation candidate generating unit 122 performs loop processing (loop 4) for each comparison group in the module comparison table 134 (step 1523). Hereinafter, a single comparison group is taken as an example (“target comparison group” in the description of loop 4). Note that the calculation amount may be reduced by excluding a comparison group having a low module-related point 903 at the time of this loop processing.

集約候補生成部122は、対象比較グループを構成する二個のモジュールの各プロパティ要素を全てプロパティテーブル135に登録する(ステップ1524)。   The aggregation candidate generation unit 122 registers all the property elements of the two modules constituting the target comparison group in the property table 135 (step 1524).

次に、集約候補生成部122は、ステップ1524でプロパティテーブル135に登録した全プロパティ要素に対して、ポリシー管理テーブル132のうちの“プロパティ”のポリシーを全て適用していくループ処理(ループ5)を開始する(ステップ1525)。以下、一個のプロパティ要素を例に取る(ループ5の説明において「対象プロパティ要素」)。なお、今回は各プロパティ要素に対してポリシーを適用していくが、集約候補生成部122は、特定のポリシーとプロパティ要素に対してはポリシー適用を避けたり、プロパティ要素が特定のポリシーを満たした場合は他のポリシーの適用を避けたりするといったような制限をつけておくことで全てのポリシーを各プロパティ要素に適用するのを避けても良い。また、集約処理のタイミングではなく定期的、もしくは新たなポリシー又はプロパティ要素が登録されたタイミングなどで、ポリシーがプロパティ要素に適用され、結果として、ループ処理(ループ5)が省略されても良い。   Next, the aggregation candidate generating unit 122 applies all the “property” policies in the policy management table 132 to all the property elements registered in the property table 135 in step 1524 (loop 5). Is started (step 1525). Hereinafter, a single property element is taken as an example (“target property element” in the description of loop 5). In this case, the policy is applied to each property element, but the aggregation candidate generator 122 avoids applying the policy to the specific policy and property element, or the property element satisfies the specific policy. In some cases, it may be possible to avoid applying all policies to each property element by applying restrictions such as avoiding application of other policies. Further, the policy may be applied to the property element periodically, not at the timing of the aggregation process, or at a timing when a new policy or property element is registered, and as a result, the loop process (loop 5) may be omitted.

集約候補生成部122は、対象プロパティ要素に対して種別602が“プロパティ”のポリシーを適用するループ処理を開始する(ステップ1526)。以下、“プロパティ”のポリシーのうちの一個のポリシーを例に取る(ループ6の説明において「対象ポリシー」)。   The aggregation candidate generating unit 122 starts a loop process for applying the policy of the type 602 “property” to the target property element (step 1526). Hereinafter, one policy out of the “property” policies is taken as an example (“target policy” in the description of loop 6).

集約候補生成部122は、対象プロパティ要素に対して対象ポリシーを適用する(ステップ1527)。集約候補生成部122は、対象プロパティ要素が対象ポリシーを満たすか否かを判断する(ステップ1528)。   The aggregation candidate generator 122 applies the target policy to the target property element (step 1527). The aggregation candidate generating unit 122 determines whether or not the target property element satisfies the target policy (step 1528).

ステップ1528の判断結果が真の場合は、処理がステップ1529に移動し、そうでない場合は、処理がステップ1530に移動する。   If the determination result in step 1528 is true, the process moves to step 1529; otherwise, the process moves to step 1530.

例えば、図5を参照すると、対象プロパティ要素が、モジュールMod2のプロパティ要素“IP.Mod2”であれば、プロパティ値は“1.1.1.1”である。図6を参照すると、対象ポリシーが、ポリシーID:PP1のポリシー(IP形式であるかを検出するポリシー)であれば、対象プロパティ要素が対象ポリシーを満たす。このため、処理が、ステップ1529に移動することになる。しかし、対象ポリシーが、ポリシーID:PP2のポリシー(Port形式であるかを検出するポリシー、一例としては、ポート番号の最小値0からポート番号の最大値65535の間の数値に当てはまるか否かを検出する)であれば、対象プロパティ要素は対象ポリシーを満たさないため、処理が、ステップ1530に移動する。   For example, referring to FIG. 5, if the target property element is the property element “IP.Mod2” of the module Mod2, the property value is “1.1.1.1”. Referring to FIG. 6, if the target policy is policy ID: PP1 policy (a policy for detecting whether it is in IP format), the target property element satisfies the target policy. Therefore, the process moves to step 1529. However, if the target policy is policy ID: PP2 policy (a policy that detects whether it is in the Port format, as an example, whether or not it falls within the range between the minimum port number 0 and the maximum port number 65535) If the target property element does not satisfy the target policy, the process moves to step 1530.

種別602が“プロパティ”のポリシーについて対象プロパティへの適用を行い、ステップ1526からのループ処理(ループ6)が終了する(ステップ1530)。   The policy whose type 602 is “property” is applied to the target property, and the loop processing (loop 6) from step 1526 ends (step 1530).

プロパティテーブル135のプロパティ要素全てに対して処理が完了したら、ステップ1525からのループ処理(ループ5)が終了し(ステップ1531)、処理が、ステップ1532に移動する。   When the processing is completed for all the property elements in the property table 135, the loop processing (loop 5) from step 1525 ends (step 1531), and the processing moves to step 1532.

次に、集約候補生成部122は、対象比較グループを構成する二個のモジュールがそれぞれ有する二個のプロパティから、二個のプロパティ要素の組み合わせを作成する(ステップ1527)。対象比較グループにおける一方のプロパティ要素は、一方のモジュールのプロパティにおけるいずれかのプロパティ要素である。対象比較グループにおける他方のプロパティ要素は、他方のモジュールのプロパティにおけるいずれかのプロパティ要素である。本実施例では、モジュールMod2とモジュールMod3の組み合わせの場合は、{検出パターン.Mod1,IP.Mod2},{検出パターン.Mod1,Port.Mod2},{検出パターン.Mod1,User.Mod2},{検出パターン.Mod1,Password.Mod2}というような形で組み合わせが生成される。なお、この後の処理量にプロパティの組み合わせの数が影響を与えるため、特定のプロパティ同士は組み合わせをしないように設定しておいても良い。例えば、データ型が一致しないものは組み合わせとしては除外されても良い。   Next, the aggregation candidate generating unit 122 creates a combination of two property elements from the two properties respectively included in the two modules constituting the target comparison group (step 1527). One property element in the target comparison group is any property element in the properties of one module. The other property element in the target comparison group is any property element in the property of the other module. In this embodiment, in the case of a combination of module Mod2 and module Mod3, {detection pattern.Mod1, IP.Mod2}, {detection pattern.Mod1, Port.Mod2}, {detection pattern.Mod1, User.Mod2}, { A combination is generated in the form of detection pattern .Mod1, Password.Mod2}. Since the number of property combinations affects the amount of processing thereafter, specific properties may be set so as not to be combined. For example, data types that do not match may be excluded as combinations.

次に、集約候補生成部122は、プロパティ要素の組み合わせ全てに対して処理が完了するまでループ処理(ループ7)を行う(ステップ1533)。以下、プロパティ要素の一個の組み合わせ(ペア)を例に取る(ループ7の説明において「対象組み合わせ」)。   Next, the aggregation candidate generation unit 122 performs a loop process (loop 7) for all the combinations of property elements until the process is completed (step 1533). Hereinafter, a single combination (pair) of property elements is taken as an example (“target combination” in the description of loop 7).

集約候補生成部122は、対象組み合わせに属する各プロパティ要素に対して、ポリシー管理テーブル132のうち種別602が“プロパティ比較”のポリシーを全て適用していくループ処理(ループ8)を開始する(ステップ1534)。以下、“プロパティ比較”のポリシーのうちの一個のプロパティを例に取る(ループ8の説明において「対象ポリシー」)。   The aggregation candidate generation unit 122 starts a loop process (loop 8) for applying all the policies of the type 602 “property comparison” in the policy management table 132 to each property element belonging to the target combination (step 8). 1534). Hereinafter, one property of the “property comparison” policy is taken as an example (“target policy” in the description of the loop 8).

集約候補生成部122は、対象ポリシーについて事前ポリシー605が設定されているか否かを判断する(ステップ1535)。ステップ1535の判断結果が真の場合は、処理がステップ1536に移動する。そうでない場合は、処理がステップ1538に移動する。   The aggregation candidate generation unit 122 determines whether or not the prior policy 605 is set for the target policy (step 1535). If the determination result at step 1535 is true, the process moves to step 1536. Otherwise, the process moves to step 1538.

ステップ1536では、集約候補生成部122は、対象組み合わせを構成する二個のプロパティのそれぞれについて事前ポリシーを満たしているか否かの情報を取得する。取得する情報は、プロパティテーブル135の事前ポリシー1002の情報である。   In step 1536, the aggregation candidate generation unit 122 acquires information as to whether or not the prior policy is satisfied for each of the two properties constituting the target combination. The information to be acquired is information on the prior policy 1002 of the property table 135.

次に、集約候補生成部122は、ポリシー管理テーブル132の事前ポリシー605(対象ポリシーに対応した事前ポリシー605)の情報とステップ1536で取得した事前ポリシー1002の情報を基に、次のステップでプロパティの組み合わせにポリシーを適用するべきか否かを判断する(ステップ1537)。ここでの処理は、対象ポリシーが、設定している前提条件を満たしているか否かを事前ポリシーの結果から判断する処理である。例えば、ポリシーID:PPC1のポリシー(IP形式の二個のプロパティ値が一致しているか否かを判断するポリシー)には、事前ポリシー605としてポリシーID:PP1(IP形式であるかを検出するポリシー)が設定されている。これは、ポリシーID:PPC1のポリシーを適用する対象組み合わせを構成する二個のプロパティ要素の各々は、ポリシーID:PP1を満たすプロパティ要素であるべきことを意味している。プロパティ要素の組み合わせ{検出パターン.Mod1,IP.Mod2}に対してポリシーID:PPC1のポリシーの適用を考えた場合のステップ1537の処理は、ポリシーID:PPC1の事前ポリシーにあたるポリシーID:PP1のポリシーの適用結果が、検出パターン.Mod1はポリシーを満たしていない(プロパティテーブル135の事前ポリシー1002が“PP1”を含んでいない)ため、ポリシーID:PPC1のポリシーの適用が行われない。仮に、対象組み合わせが{IP.Mod1,IP.Mod4}であり対象ポリシーがポリシーID:PPC1のポリシーの場合のステップ1537の処理は、ポリシーID:PPC1の事前ポリシー605にあたるポリシーID:PP1が、IP.Mod1とIP.Mod4の共にポリシーを満たしている(プロパティテーブル135の事前ポリシー1002が“PP1”を含んでいる)ため、ポリシーID:PPC1のポリシーの適用が行われる。   Next, based on the information of the pre-policy 605 (the pre-policy 605 corresponding to the target policy) of the policy management table 132 and the information of the pre-policy 1002 acquired in step 1536, the aggregation candidate generation unit 122 performs property processing in the next step. It is determined whether or not the policy should be applied to the combination (step 1537). The processing here is processing for determining whether or not the target policy satisfies the set precondition from the result of the prior policy. For example, the policy ID: PPC1 (policy that determines whether two property values in the IP format match), the policy ID: PP1 (policy that detects whether it is in IP format) as the prior policy 605 ) Is set. This means that each of the two property elements constituting the target combination to which the policy of policy ID: PPC1 is applied should be a property element satisfying the policy ID: PP1. When considering the application of the policy ID: PPC1 for the combination of property elements {detection pattern.Mod1, IP.Mod2}, the processing in step 1537 is the policy ID: PP1 policy that corresponds to the policy ID: PPC1 prior policy. Since the detection pattern .Mod1 does not satisfy the policy (the prior policy 1002 of the property table 135 does not include “PP1”), the policy ID: PPC1 is not applied. If the target combination is {IP.Mod1, IP.Mod4} and the target policy is a policy with policy ID: PPC1, the process of step 1537 is the policy ID: PP1 corresponding to the prior policy 605 of policy ID: PPC1. Since both .Mod1 and IP.Mod4 satisfy the policy (the prior policy 1002 of the property table 135 includes “PP1”), the policy ID: PPC1 is applied.

次に、集約候補生成部122は、対象ポリシーを対象組み合わせが満たすか否かを判断する(ステップ1538)。ステップ1538の判断結果が真の場合は、処理がステップ1539に移動する。そうでない場合は、処理がステップ1540に移動する。例えば、対象ポリシーが、ポリシーID:PPC1のポリシー(IP形式の二個のプロパティ値が一致しているか否かを判断するポリシー)であり、対象組み合わせが、{IP.Mod2(プロパティ値が1.1.1.1),IP.Mod3(プロパティ値が1.1.1.1)}である場合は(つまり、プロパティ値が同じである場合は)、対象組み合わせが対象ポリシーを満たすので、処理がステップ1539に移動する。仮に、対象ポリシーが、ポリシーID:PPC2のポリシー(Port形式の二個のプロパティ値が一致しているか否かを判断するポリシー)であり、対象組み合わせが、{Port.Mod2 (プロパティ値が8000),Port.Mod3(プロパティ値が8080)}である場合は、対象組み合わせが対象ポリシーを満たさないため、処理がステップ1540に移動する。   Next, the aggregation candidate generating unit 122 determines whether the target combination satisfies the target policy (step 1538). If the determination result at step 1538 is true, the process moves to step 1539. Otherwise, the process moves to step 1540. For example, the target policy is policy ID: PPC1 (policy that determines whether two property values in IP format match), and the target combination is {IP.Mod2 (property value is 1.1. 1.1), IP.Mod3 (property value is 1.1.1.1)} (that is, when the property values are the same), the target combination satisfies the target policy, and the process moves to step 1539. Temporarily, the target policy is policy ID: PPC2 (policy that determines whether two property values in the Port format match), and the target combination is {Port.Mod2 (property value is 8000) , Port.Mod3 (property value is 8080)}, the target combination does not satisfy the target policy, and the process moves to step 1540.

ステップ1538で対象ポリシーが満たされた場合は、集約候補生成部122は、対象比較グループのプロパティ関連ポイント905に、対象ポリシーのポイント(ポリシー管理テーブル132のポイント604の数値)を加算する(ステップ1539)。なお、対象比較グループのプロパティ関連ポイント905には、更に、対象ポリシーの事前ポリシー605としてのポリシーIDに対応したポイントも加算されても良い。   When the target policy is satisfied in step 1538, the aggregation candidate generating unit 122 adds the point of the target policy (the numerical value of the point 604 in the policy management table 132) to the property related point 905 of the target comparison group (step 1539). ). Note that a point corresponding to the policy ID as the prior policy 605 of the target policy may be added to the property-related point 905 of the target comparison group.

種別602が“プロパティ比較”のポリシーを全てプロパティの組み合わせに適用が完了した場合、ステップ1535から開始したループ処理(ループ8)が終了する(ステップ1540)。   When application of all policies of type 602 “property comparison” to the combination of properties is completed, the loop processing (loop 8) started from step 1535 is ended (step 1540).

プロパティ要素の組み合わせ全てに対して処理が完了した場合、ステップ1533から開始したループ処理(ループ7)が終了する(ステップ1541)。   When the processing is completed for all the combinations of property elements, the loop processing (loop 7) started from step 1533 ends (step 1541).

モジュール比較テーブル134の比較グループ全てに対して処理が完了した場合、ステップ1523から開始したループ処理(ループ4)が終了する(ステップ1542)。   When the processing is completed for all the comparison groups in the module comparison table 134, the loop processing (loop 4) started from step 1523 ends (step 1542).

次に、集約候補生成部122は、表示グループ生成部123に処理開始を通知して、一連の処理を完了する(ステップ1543)。なお、ステップ1543(又はそれよも前の段階で)、集約候補生成部122は、比較グループについて、プロパティ要素の組み合わせのうち、適用された“プロパティ比較”のポリシーを満たした組み合わせを表す情報が、関連プロパティ904の少なくとも一部として、モジュール比較テーブル134に登録されて良い。   Next, the aggregation candidate generation unit 122 notifies the display group generation unit 123 of the start of processing, and completes a series of processing (step 1543). In addition, in step 1543 (or in the previous stage), the aggregation candidate generating unit 122 has information indicating a combination satisfying the applied “property comparison” policy among the combination of property elements for the comparison group. , It may be registered in the module comparison table 134 as at least a part of the related property 904.

図16は、表示グループ生成部123の一例を説明するフローチャートである。   FIG. 16 is a flowchart for explaining an example of the display group generation unit 123.

表示グループ生成部123は、ユーザが複数個のモジュールを集約して集約モジュールを生成する過程において、共通化できるプロパティ要素の候補(ビジュアルプログラミングツール106の画面表示部141が表示するGUIにおけるモジュールのグループ(表示グループ))を決定する。   The display group generation unit 123 is a property element candidate (group of modules in the GUI displayed by the screen display unit 141 of the visual programming tool 106) that can be shared in the process in which the user aggregates a plurality of modules to generate an aggregate module. (Display group)).

基本的には、モジュール関連ポイントが高いモジュールを可能な限り一個の画面に表示するようにすることでユーザが表示されたモジュールの中のプロパティの共通化の判断しやすいようにする。   Basically, a module having a high module-related point is displayed on one screen as much as possible, so that the user can easily determine whether to share the properties in the displayed module.

具体的には、表示グループ生成部123は、集約候補生成部122からの処理開始命令を検知して処理を開始する。(ステップ1601)。   Specifically, the display group generation unit 123 detects a processing start command from the aggregation candidate generation unit 122 and starts processing. (Step 1601).

表示グループ生成部123は、表示条件テーブル136から表示条件(最大モジュール表示数)を取得する(ステップ1602)。表示グループ生成部123は、表示条件テーブル136に複数の表示条件が存在する場合は、ユーザから集約処理を開始する時点でユーザ所望の表示条件の選択を受け付けたり、デフォルトの表示条件を自動で選択したり、ユーザが利用する入力装置の環境情報を基に自動で表示条件を選択したりしても良い。   The display group generation unit 123 acquires the display condition (maximum module display number) from the display condition table 136 (step 1602). When there are a plurality of display conditions in the display condition table 136, the display group generation unit 123 accepts selection of a user-desired display condition at the time of starting aggregation processing from the user, or automatically selects a default display condition Display conditions may be automatically selected based on the environment information of the input device used by the user.

表示グループ生成部123は、モジュール管理テーブル131から現在の集約処理に該当する選択範囲に属する各モジュールのモジュール情報(例えばエントリにおける全情報)を取得する(ステップ1603)。   The display group generation unit 123 acquires module information (for example, all information in the entry) of each module belonging to the selection range corresponding to the current aggregation process from the module management table 131 (step 1603).

表示グループ生成部123は、モジュール比較テーブル134から現在の集約処理に該当する選択範囲に属する各比較グループの情報(例えばエントリにおける全情報)を取得する(ステップ1604)。   The display group generation unit 123 acquires information of each comparison group (for example, all information in the entry) belonging to the selection range corresponding to the current aggregation process from the module comparison table 134 (step 1604).

表示グループ生成部123は、現在の集約処理に該当する選択範囲に属する全てのモジュールに対してループ処理(ループ1)を開始する(ステップ1605)。ループ処理を行う際のモジュールの処理順番は、モジュール管理テーブル131の表示順510(番号が小さい順)で良い。以下、一個のモジュールを例に取る(ループ1の説明において「対象モジュール」)。   The display group generation unit 123 starts loop processing (loop 1) for all modules belonging to the selection range corresponding to the current aggregation processing (step 1605). The processing order of the modules when performing the loop processing may be the display order 510 of the module management table 131 (in ascending order of the number). Hereinafter, a single module is taken as an example (“target module” in the description of loop 1).

表示グループ生成部123は、対象モジュールを構成要素として含む比較グループを、ステップ1604で取得した情報を基に抽出する(ステップ1606)。対象モジュールがモジュールMod1の場合は、比較グループは、[Mod1,Mod2], [Mod1,Mod3]及び[Mod1,Mod4]である。表示グループ生成部123は、この時点で、例えばモジュール関連ポイントが一定値(例えば“0”)以下の[Mod1,Mod3]を、ステップ1603で抽出される比較グループから除外してもよい。つまり、表示グループ生成部123は、モジュールを同時に表示して集約処理を行う必要性が低い比較グループを除外しておいても良い。   The display group generation unit 123 extracts a comparison group including the target module as a component based on the information acquired in Step 1604 (Step 1606). When the target module is module Mod1, the comparison groups are [Mod1, Mod2], [Mod1, Mod3], and [Mod1, Mod4]. At this time, the display group generation unit 123 may exclude [Mod1, Mod3] whose module-related points are equal to or less than a certain value (for example, “0”) from the comparison group extracted in step 1603, for example. In other words, the display group generation unit 123 may exclude the comparison group that is unlikely to perform the aggregation process by simultaneously displaying the modules.

次に、表示グループ生成部123は、表示されるモジュールの数がステップ1602で取得した最大モジュール表示数以下になるように、比較グループから表示グループを生成する(ステップ1607)。ここで生成された表示グループを、この段落において「対象表示グループ」と言う。例えば、表示グループ生成部123は、最大モジュール表示数が“3”の場合は、対象モジュールMod1以外に二個のモジュールを表示する余裕があるため、モジュール関連ポイントが相対的に高い比較グループ[Mod1,Mod2]及び[Mod1,Mod4]を対象表示グループとして構成する。この際、表示グループ生成部123は、対象表示グループに入らない比較グループ[Mod1,Mod3]を、別の表示グループを作成してそこに格納しても良いし、関連性が低い比較グループとして表示グループを作成しなくても良い。ステップ1607において、表示グループ生成部123は、生成した表示グループに関する情報1201〜1205を、表示グループテーブル137に登録する。表示グループID1201は、表示グループ生成部123により決定されたID(又はユーザから指定されたID)である。表示グループID1201は、対象表示グループについて表示グループ生成部123により決定されたID(又はユーザから指定されたID)を示す。比較グループ1202は、対象表示グループに含まれる各比較グループのIDを示す。共通化対象1203は、この時点では無効値“-”である。表示条件1204は、ステップ1604で取得された表示条件を示す。選択範囲ID 1206は、現在の集約処理に該当する選択範囲のIDを示す。尚、ステップ1607では、モジュール関連ポイントが一定値以上である比較グループが選択されても良いし、モジュール関連ポイントに加えてプロパティ関連ポイントが相対的に又は一定値以上に高い比較グループが選択されても良い。   Next, the display group generation unit 123 generates a display group from the comparison group so that the number of modules to be displayed is equal to or less than the maximum module display number acquired in Step 1602 (Step 1607). The display group generated here is referred to as a “target display group” in this paragraph. For example, when the maximum module display number is “3”, the display group generation unit 123 has a margin for displaying two modules in addition to the target module Mod1, and therefore the comparison group [Mod1 , Mod2] and [Mod1, Mod4] are configured as target display groups. At this time, the display group generating unit 123 may create a comparison group [Mod1, Mod3] that does not fall within the target display group and store it in another display group, or display it as a comparison group with low relevance. It is not necessary to create a group. In step 1607, the display group generation unit 123 registers information 1201 to 1205 regarding the generated display group in the display group table 137. The display group ID 1201 is an ID determined by the display group generating unit 123 (or an ID specified by the user). The display group ID 1201 indicates an ID (or an ID specified by the user) determined by the display group generation unit 123 for the target display group. The comparison group 1202 indicates the ID of each comparison group included in the target display group. The common target 1203 is an invalid value “-” at this point. A display condition 1204 indicates the display condition acquired in step 1604. The selection range ID 1206 indicates the ID of the selection range corresponding to the current aggregation process. In step 1607, a comparison group having a module-related point that is greater than or equal to a certain value may be selected. In addition to a module-related point, a comparison group having a property-related point that is relatively higher than a certain value is selected. Also good.

現在の集約処理に該当する選択範囲に属する全てのモジュールに対して処理が行われた場合、表示グループ生成部123は、ループ処理(ループ1)を完了する(ステップ1608)。   When processing has been performed for all modules belonging to the selection range corresponding to the current aggregation processing, the display group generation unit 123 completes the loop processing (loop 1) (step 1608).

次に、表示グループ生成部123は、集約実行部124に処理開始を通知する(ステップ1609)。   Next, the display group generation unit 123 notifies the aggregation execution unit 124 of the start of processing (Step 1609).

図17は、集約実行部124の一例を説明するフローチャートである。   FIG. 17 is a flowchart illustrating an example of the aggregation execution unit 124.

集約実行部124は、ユーザに比較グループ(共通化するプロパティの候補)を、ビジュアルプログラミングツール106の画面表示部141により表示されるGUI(ワークスペース)上に表示することで、ユーザにプロパティ要素を共通化するか否かを判断させる。そして、ユーザからプロパティ要素の共通化の選択を受け付けた場合、集約実行部124は、当該共通化されるプロパティ要素を、集約モジュールについてのプロパティ要素として設定する。   The aggregation execution unit 124 displays the property group to the user by displaying the comparison group (candidate property to be shared) on the GUI (workspace) displayed by the screen display unit 141 of the visual programming tool 106. Determine whether or not to share. When the selection of property element sharing is received from the user, the aggregation executing unit 124 sets the shared property element as a property element for the aggregation module.

具体的には、集約実行部124は、集約実行部124からの処理開始を検知する(ステップ1701)。   Specifically, the aggregation execution unit 124 detects the start of processing from the aggregation execution unit 124 (step 1701).

集約実行部124は、表示グループテーブル137から全ての表示グループの情報(例えばエントリにおける全ての情報)を取得する(ステップ1702)。   The aggregation execution unit 124 acquires information on all display groups (for example, all information on entries) from the display group table 137 (step 1702).

集約実行部124は、全ての表示グループに対してループ処理(ループ1)を開始する(ステップ1703)。以下、一個の表示グループを例に取る(ループ1の説明において「対象表示グループ」)。   The aggregation execution unit 124 starts loop processing (loop 1) for all display groups (step 1703). Hereinafter, a single display group is taken as an example (“target display group” in the description of loop 1).

集約実行部124は、GUI(ワークスペース)に、対象表示グループに含まれた各モジュールを表示する(ステップ1704)。ステップ1704の結果の一例を、図18が示す。なお、モジュールの表示とは、当該モジュールを表す表示オブジェクト(例えば角丸の矩形であるモジュールアイコン)の表示に加えて、当該モジュールに関する詳細情報の少なくとも一部の表示であっても良い。ここで言う「詳細情報の少なくとも一部」とは、当該モジュールについてモジュール関連テーブル131から取得される少なくとも一部の情報と、当該モジュールが属する比較グループについてモジュール比較テーブル134から取得される少なくとも一部の情報と、当該モジュール及び当該比較グループの各々が満たすポリシーに関する少なくとも一部の情報とのうちの少なくとも一部で良い。   The aggregation execution unit 124 displays each module included in the target display group on the GUI (work space) (step 1704). An example of the result of step 1704 is shown in FIG. The display of a module may be a display of at least a part of detailed information related to the module, in addition to a display object representing the module (for example, a module icon that is a rounded rectangle). Here, “at least part of detailed information” means at least part of information acquired from the module relation table 131 for the module and at least part of module comparison table 134 for the comparison group to which the module belongs. And at least some of the information about the policy satisfied by each of the module and the comparison group.

ユーザは、表示された比較グループ(プロパティ要素の組)に対して共通化するか否かを判断し、判断結果を、入力装置104を用いてGUIに対して入力する。この際、共通化すると判断された比較グループがあった場合、集約実行部124は、表示グループテーブル137の共通化対象1203としてその比較グループのIDを登録する(ステップ1705)。ユーザが、もし前の表示グループに遡って修正する場合は、前表示グループの表示画面に戻っても良い。   The user determines whether to share the displayed comparison group (property element set), and inputs the determination result to the GUI using the input device 104. At this time, if there is a comparison group determined to be shared, the aggregation executing unit 124 registers the ID of the comparison group as the common target 1203 in the display group table 137 (step 1705). If the user makes corrections retroactively to the previous display group, the user may return to the display screen of the previous display group.

集約実行部124は、全表示グループに対して処理が完了したらループ処理(ループ1)を終わりにする(ステップ1706)。   The aggregation execution unit 124 ends the loop processing (loop 1) when the processing is completed for all the display groups (step 1706).

集約実行部124は、図19のような画面(例えばGUI)、すなわち、集約モジュールと共通化するプロパティ要素との一覧としての確認画面を表示する(ステップ1707)。言い換えれば、集約実行部124は、ユーザに、集約モジュールに関する情報を確認させる。   The aggregation execution unit 124 displays a screen as shown in FIG. 19 (for example, a GUI), that is, a confirmation screen as a list of property elements shared with the aggregation module (step 1707). In other words, the aggregation execution unit 124 causes the user to confirm information regarding the aggregation module.

集約実行部124は、ユーザが集約モジュール及び共通化するプロパティの確認を終えたことを検知する(ステップ1708)。ステップ1708の検知は、例えば、ユーザから確認終了の入力の受け付けである。もし、ユーザが、共通化するプロパティ要素を変更したい場合は、表示グループを表示する画面に戻れるようにして、共通化の判断をやり直させが可能であっても良い。   The aggregation execution unit 124 detects that the user has finished confirming the aggregation module and the properties to be shared (step 1708). The detection in step 1708 is, for example, acceptance of a confirmation end input from the user. If the user wants to change the property element to be shared, it may be possible to return to the screen for displaying the display group and to make the determination of sharing again.

図18は、ユーザに対して共通化するプロパティを表示するGUIであるプロパティ共通化画面の一例を示している。   FIG. 18 shows an example of a property sharing screen that is a GUI that displays properties to be shared with the user.

プロパティ共通化画面1800は、ユーザが複数個のモジュールを集約する際、集約するモジュールのプロパティ要素に共通化できる可能性があるものを制御部120が検知した場合に、その情報を提示するために用いられる。また、提示した情報を基に共通化するプロパティ要素をユーザが選択するためにもプロパティ共通化画面1800は用いられる。   The property sharing screen 1800 is used to present information when the control unit 120 detects that there is a possibility that the user can share the property elements of the aggregated modules when the user aggregates multiple modules. Used. Further, the property sharing screen 1800 is also used by the user to select a property element to be shared based on the presented information.

プロパティ共通化画面1800は、ビジュアルプログラミングツール106の画面表示部141により表示される。   The property sharing screen 1800 is displayed by the screen display unit 141 of the visual programming tool 106.

プロパティ共通化画面1800は、共通化可能と制御部120により判断されたプロパティ要素の組を表示する。プロパティ共通化画面1800は、モジュールアイコン1801、ワイヤアイコン1802、プロパティ要素リスト1803、共通化レコメンデーション1804、説明ボックス1805、モジュール関連領域1806、及び、ボタン1807〜1809を表示する。   The property sharing screen 1800 displays a set of property elements determined by the control unit 120 to be shared. The property sharing screen 1800 displays a module icon 1801, a wire icon 1802, a property element list 1803, a sharing recommendation 1804, an explanation box 1805, a module related area 1806, and buttons 1807 to 1809.

モジュールアイコン1801は、モジュールをビジュアルプログラミングツール上で表現する際のアイコンである。図示の例では、“エラーチケット登録”及び“ログ登録”の二個のモジュールのモジュールアイコン1801C及び1802Dが表示されている。これらはワイヤアイコン1802で接続されている。なお、図示の例では、二個のモジュールのモジュールアイコン1801C及び1802Dが表示されているが、採用されている表示条件(最大モジュール表示数)の範囲で三つ以上のモジュールが一画面に表示されても良い。また、一画面に表示されるモジュール(モジュールアイコン1801)の数は、表示倍率に応じて変更されても良い。   The module icon 1801 is an icon for expressing a module on a visual programming tool. In the illustrated example, module icons 1801C and 1802D of two modules “error ticket registration” and “log registration” are displayed. These are connected by a wire icon 1802. In the example shown in the figure, module icons 1801C and 1802D of two modules are displayed, but three or more modules are displayed on one screen within the range of the display conditions (maximum module display number) adopted. May be. Further, the number of modules (module icon 1801) displayed on one screen may be changed according to the display magnification.

ワイヤアイコン1802は、モジュール同士を接続するワイヤを示すアイコンであり、モジュール間関係を視覚的に判断できるようにするために用意されたGUI部品である。   The wire icon 1802 is an icon indicating a wire for connecting modules, and is a GUI component prepared so that the relationship between modules can be visually determined.

プロパティ要素リスト1803は、モジュール毎に表示され、当該モジュールに属するプロパティ要素のリストである。   The property element list 1803 is a list of property elements displayed for each module and belonging to the module.

なお、モジュールアイコン1801及びワイヤアイコン1802は、モジュール管理テーブル131の各モジュールについての接続先ID505を基に表示されて良い。また、モジュールアイコン1801及びワイヤアイコン1802は、モジュール管理テーブル131の各モジュールについての接続先ID505(又は、ビジュアルプログラミングツール106が管理するフロー情報(各モジュールの接続関係に関する情報)を基にビジュアルプログラミングツール106により表示されて良い。   The module icon 1801 and the wire icon 1802 may be displayed based on the connection destination ID 505 for each module in the module management table 131. The module icon 1801 and the wire icon 1802 are visual programming tools based on the connection destination ID 505 (or the flow information managed by the visual programming tool 106 (information on the connection relationship of each module) for each module in the module management table 131. 106 may be displayed.

共通化レコメンデーション1804は、共通化可能と制御部120により判断されたプロパティ要素の組の提示に相当する。図示の例では、共通化レコメンデーション1804は、プロパティ要素を囲むボックスとそれらを接続する線で構成される。また、図示の例では、プロパティ要素を囲むボックス(枠線)とそれらを接続する線として、実線と破線があるが、破線は、共通化可能とのレコメンデーションであり、実線は、ユーザにより承認されたレコメンデーション(つまり、ユーザから対象のプロパティ要素の組を共通化すると判断(選択)されたレコメンデーション)を示している。ユーザは、例えば、レコメンデーションとしてのプロパティ要素の組の指定(例えばクリック)を1回以上行うことで、実線(共通化する)と破線(共通化しない)を切り替える、つまり、共通化するか否かを指定(入力)する。   The standardization recommendation 1804 corresponds to presentation of a set of property elements determined by the control unit 120 as to be communicable. In the illustrated example, the common recommendation 1804 is composed of a box surrounding property elements and a line connecting them. Also, in the example shown in the figure, there are a solid line and a broken line as a box (frame line) surrounding the property element and a line connecting them. The recommended recommendation (that is, the recommendation determined (selected) by the user to share the set of target property elements) is shown. For example, the user switches between a solid line (to be shared) and a broken line (not to be shared) by specifying (for example, clicking) a set of property elements as a recommendation one or more times. Specify (input).

説明ボックス1805は、共通化レコメンデーション1804の理由、すなわち、共通化可能と制御部120により判断された理由を表示する。ユーザは、説明ボックス1805に記述の説明を参考にして、共通化レコメンデーション1804の対象のプロパティ要素の組を共通化するか否かを判断できる。説明ボックス1805は、共通化レコメンデーション1804の対象の比較グループに対応したモジュール関連ポイント903が示す値を提示している。なお、図示の例では、説明ボックス1805は、予め共通化レコメンデーション1804毎に理由を示しているが、それに代えて、共通化レコメンデーション1804がマウスオーバーされた際に当該共通化レコメンデーション1804についての説明ボックス1805が表示されても良い。   An explanation box 1805 displays the reason for the common recommendation 1804, that is, the reason that the control unit 120 determines that commonality is possible. The user can determine whether or not to share a set of target property elements of the common recommendation 1804 with reference to the description in the description box 1805. An explanation box 1805 presents the value indicated by the module-related point 903 corresponding to the comparison group that is the target of the common recommendation 1804. In the illustrated example, the explanation box 1805 shows the reason for each common recommendation 1804 in advance, but instead, when the common recommendation 1804 is moused over, the common recommendation 1804 An explanation box 1805 may be displayed.

モジュール関連領域1806は、説明ボックス1805が説明する範囲を視覚的に示したものである。図示の例では、二個のモジュールが表示されているため、モジュール関連領域1806が無くても説明ボックス1805が説明している範囲のモジュールは判断できるが、三個以上のモジュールが画面1800に表示されている場合には、モジュール関連領域1806が無いと、説明ボックス1805がカバーする範囲の判断が困難になり得るため、モジュール関連領域1806は有用である。   The module-related area 1806 visually shows the range described by the explanation box 1805. In the example shown, two modules are displayed, so even if there is no module related area 1806, the modules in the range described in the explanation box 1805 can be determined, but three or more modules are displayed on the screen 1800. In this case, the module-related area 1806 is useful because it is difficult to determine the range covered by the explanation box 1805 without the module-related area 1806.

ボタン1807は、現在表示されているプロパティ要素リストについて共通化の判断が終わり、次のプロパティ共通化の判断に移る時にユーザが押下するボタンである。共通化の判断が必要なプロパティが存在しない場合は、図19の確認画面に遷移する。   A button 1807 is a button that the user presses when the determination of sharing is completed for the currently displayed property element list and the next property sharing determination is started. If there is no property that needs to be determined for sharing, the screen transitions to the confirmation screen in FIG.

ボタン1808は、現在より前のプロパティ共通化の画面に戻る時にユーザが押下するボタンである。これはユーザが一度共通化しようとしたプロパティについて再考する際などに利用される。なお、最初のプロパティ共通化画面の場合は、前のプロパティ共通化画面が存在しないため押下しても画面が遷移しなくても良いし、ボタン1808が非表示とされても良い。   A button 1808 is a button that the user presses when returning to the property sharing screen before the present time. This is used when the user reconsider the property that he / she once tried to share. In the case of the first property sharing screen, since there is no previous property sharing screen, the screen does not have to change even if it is pressed, or the button 1808 may not be displayed.

ボタン1809は、集約処理を途中でキャンセルするためにユーザが押下するボタンである。これによりユーザは途中でモジュールの集約を中止することができる。   A button 1809 is a button that the user presses to cancel the aggregation process. As a result, the user can cancel the aggregation of modules on the way.

また、本実施例では、画面を区切って複数の画面を切り替えるように記載しているが、例えば、集約する選択範囲全体を表示しておいて、一部の箇所を拡大するようにしておくようなGUIが採用されも良い。その場合は、ボタン1807やボタン1808での画面切り替えではなく、ユーザがマウスポインタでドラックするなどして画面の切り替えが行われて良い。   Further, in this embodiment, it is described that a plurality of screens are switched by dividing the screen, but for example, the entire selection range to be aggregated is displayed and a part of the selection region is enlarged. GUI may be adopted. In this case, the screen may be switched not by the button 1807 or the button 1808 but by the user dragging with the mouse pointer.

図19は、集約モジュールのプロパティ要素の一覧を表示するGUIである確認画面の一例を示している。   FIG. 19 shows an example of a confirmation screen that is a GUI that displays a list of property elements of the aggregation module.

確認画面1901は、ユーザが複数個のモジュールを集約する際、集約するモジュールのプロパティの共通化の判断を全て終えた後の最終確認のための画面である。確認画面1901は、ビジュアルプログラミングツール106の画面表示部141により表示される。   The confirmation screen 1901 is a screen for final confirmation after all determinations for sharing properties of modules to be aggregated are completed when a user aggregates a plurality of modules. The confirmation screen 1901 is displayed by the screen display unit 141 of the visual programming tool 106.

確認画面1901は、図18の画面1800でプロパティ要素の共通化の判断を行った結果の一覧である。   A confirmation screen 1901 is a list of results obtained by determining whether to share property elements on the screen 1800 of FIG.

確認画面1901は、一覧ボックス1902を有する。一覧ボックス1902は、テキストボックス1903、共通プロパティ要素リスト1904及び個別プロパティ要素リスト1905を有する。また、確認画面1901は、ボタン1906〜1908を有する。   The confirmation screen 1901 has a list box 1902. The list box 1902 includes a text box 1903, a common property element list 1904, and an individual property element list 1905. The confirmation screen 1901 has buttons 1906 to 1908.

テキストボックス1903は、集約モジュールのモジュール名を表示する。テキストボックス1903経由で集約モジュールのモジュール名が変更できても良いし、テキストボックス1903は最初ブランクでありここで初めてモジュール名がユーザにより入力されても良い。   A text box 1903 displays the module name of the aggregation module. The module name of the aggregation module may be changed via the text box 1903, or the text box 1903 is initially blank, and the module name may be input by the user for the first time here.

共通プロパティ要素リスト1904は、ユーザが共通化すると判断したプロパティ要素のリストである。共通化したプロパティ要素は、共通化する前のプロパティ要素が属していたモジュールが判断できるようカテゴライズされても良い。本実施例では、共通化するプロパティ要素が“エラーチケット登録”のモジュールと“ログ登録”のモジュールの各々に属している場合は、共通化するプロパティ要素は、“[共通]エラーチケット登録/ログ登録”といったカテゴライズがされて良い。また、本実施例では、共通化するプロパティ要素におけるプロパティ値(IPプロパティの場合は、例えば“1.1.1.1”)も一緒に表示されているが、プロパティ要素のうち、プロパティ値は表示されず、共通化するプロパティ要素におけるプロパティ項目が表示されても良い。   The common property element list 1904 is a list of property elements determined by the user to be shared. The common property element may be categorized so that the module to which the property element before commonization belongs can be determined. In this embodiment, when the property element to be shared belongs to each of the “error ticket registration” module and the “log registration” module, the property element to be shared is “[common] error ticket registration / log. It can be categorized as “Register”. In this example, the property value in the property element to be shared (in the case of IP property, for example, “1.1.1.1”) is also displayed, but among the property elements, the property value is not displayed. Property items in the common property element may be displayed.

個別プロパティ要素リスト1905は、プロパティ要素を共通化する処理の中で、共通化すると判断されたプロパティ要素以外のプロパティ要素のリストである。モジュールに個別に属するため、モジュールごとに個別プロパティ要素リスト1905が作成される。本実施例では、代表として“エラーチケット登録”のモジュールと“ログ登録”のモジュールについて、それぞれ共通化されなかったプロパティ要素をモジュールごとにリストで表示される。   The individual property element list 1905 is a list of property elements other than the property elements determined to be shared in the process of sharing the property elements. Since each module belongs individually, an individual property element list 1905 is created for each module. In the present embodiment, as a representative, the property elements that are not made common to the “error ticket registration” module and the “log registration” module are displayed in a list for each module.

ボタン1906は、表示されているモジュール及びプロパティの設定で集約モジュールを生成して良いとユーザが判断した際に押下するボタンである。   A button 1906 is a button that is pressed when the user determines that an aggregation module may be generated by setting the displayed modules and properties.

ボタン1907は、集約処理を途中でキャンセルするために利用するボタンである。これによりユーザは途中でモジュールの集約を中止することができる。   A button 1907 is a button used to cancel the aggregation process in the middle. As a result, the user can cancel the aggregation of modules on the way.

ボタン1908は、図18のプロパティ共通化画面1800に戻る時にユーザが押下するボタンである。   A button 1908 is a button that the user presses when returning to the property sharing screen 1800 of FIG.

実施例1によれば、前述した処理を実行することによって、ユーザは集約モジュールのプロパティの数を削減することができ、結果として、ユーザの集約モジュールに対する設定工数が減少する。なお、集約モジュールは、一個のモジュール相当であるため、制御部120により、集約モジュールの情報は、モジュール管理テーブル131に登録される。また、制御部120により、集約モジュールについて共通化されたプロパティ要素の情報は、モジュール比較テーブル134に集約906として登録され、集約モジュールについて共通化されなかったプロパティ要素の情報は、モジュール比較テーブル134に非集約907として登録される。   According to the first embodiment, by executing the above-described processing, the user can reduce the number of properties of the aggregation module, and as a result, the setting man-hour for the aggregation module of the user is reduced. Note that since the aggregation module corresponds to one module, the control unit 120 registers the information of the aggregation module in the module management table 131. Also, the property element information shared by the control unit 120 with respect to the aggregation module is registered as the aggregation 906 in the module comparison table 134, and the property element information that has not been shared with respect to the aggregation module is stored in the module comparison table 134. Registered as non-aggregated 907.

実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略又は簡略する。   Example 2 will be described. At that time, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.

実施例2では、集約モジュールを構成するモジュールの仕様変更などを行う必要が生じた場合、集約モジュールのプロパティをユーザに必要最低限の判断で再設定させることができる。   In the second embodiment, when it is necessary to change the specifications of the modules constituting the aggregation module, the properties of the aggregation module can be reset by the user with the minimum necessary judgment.

図20は、本発明の実施例2における変更実行部の一例を説明するフローチャートである。   FIG. 20 is a flowchart illustrating an example of the change execution unit according to the second embodiment of the present invention.

変更実行部2000は、制御部120に追加された機能であり、変更する必要が生じたモジュールの情報を基に集約モジュールのプロパティを変更するための表示グループを特定する。   The change execution unit 2000 is a function added to the control unit 120, and specifies a display group for changing the property of the aggregation module based on the information of the module that needs to be changed.

具体的には、変更実行部2000は、ユーザから集約モジュールとそれを構成するモジュールのうち仕様変更するモジュールとの選択(指定)を受け付け、当該集約モジュールの情報と当該仕様変更のモジュールの情報とをモジュール管理テーブル131から取得する(ステップ2001)。   Specifically, the change execution unit 2000 accepts selection (designation) of an aggregation module and a module whose specifications are to be changed among modules constituting the module, and receives information on the aggregation module and information on the module of the specification change. Is acquired from the module management table 131 (step 2001).

変更実行部2000は、選択範囲管理テーブル133から、選択された集約モジュールに対応する選択範囲ID 801と仕様変更するモジュールのIDとを特定する(ステップ2002)。   The change execution unit 2000 identifies the selection range ID 801 corresponding to the selected aggregation module and the ID of the module whose specification is to be changed from the selection range management table 133 (step 2002).

変更実行部2000は、モジュール比較テーブル134を参照し、特定された選択範囲ID 801と一致する選択範囲ID 908し、かつ仕様変更するモジュールIDを有する比較グループ902を特定する(ステップ2003)。   The change execution unit 2000 refers to the module comparison table 134 and specifies a comparison group 902 having a selection range ID 908 that matches the specified selection range ID 801 and having a module ID whose specification is to be changed (step 2003).

変更実行部2000は、表示グループテーブル137を参照し、ステップ2003で特定した比較グループID 902と一致する比較グループIDを含む比較グループ1202に対応した表示グループを特定する(ステップ2004)。   The change execution unit 2000 refers to the display group table 137 and identifies a display group corresponding to the comparison group 1202 including the comparison group ID that matches the comparison group ID 902 identified in step 2003 (step 2004).

変更実行部2000は、集約実行部124に、特定した表示グループの表示グループIDを通知し(ステップ2005)、処理を完了する。   The change execution unit 2000 notifies the aggregation execution unit 124 of the display group ID of the specified display group (step 2005), and the processing is completed.

ステップ2005で集約実行部124に通知されたIDに対応する表示グループは、仕様変更されるモジュールを含んだ比較グループを有するため、この表示グループについての集約実行部124のステップ1703以降の処理に適用することで、集約モジュールのプロパティ要素一覧をユーザに必要最低限の判断で再設定させることができる。   Since the display group corresponding to the ID notified to the aggregation execution unit 124 in step 2005 has a comparison group including the module whose specifications are to be changed, this is applied to the processing after step 1703 of the aggregation execution unit 124 for this display group. By doing so, the property element list of the aggregation module can be reset by the user with the minimum necessary judgment.

ちなみに、ユーザがモジュールの仕様変更を知った上で開始するのではなく、例えば制御部120がモジュールの仕様変更を検知しても良いし、またはモジュールの処理が失敗したことを制御部120や管理サーバ101が連携する監視システムなどが検知しても良い。また、それらの検知を契機に集約モジュールのプロパティの変更処理を開始の契機としても良い。   By the way, instead of starting after the user knows the module specification change, for example, the control unit 120 may detect the module specification change, or the control unit 120 or management that the module processing failed It may be detected by a monitoring system linked with the server 101. Also, the aggregation module property change processing may be triggered by the detection of these.

以上、幾つかの実施例を説明したが、以上の説明を、例えば下記のように総括できる。なお、下記総括は、上述の説明に無い事項を含んでいても良い。   Although several embodiments have been described above, the above description can be summarized as follows, for example. Note that the following summary may include matters not described above.

管理サーバ101(プログラム作成支援装置の一例)において、集約候補生成部122が、ビジュアルプログラミングツール106を用いて作成されるプログラムを構成するN個のモジュール(Nは2以上の整数)のうちの選択されたM個のモジュール(Mは、2以上且つN以下の整数)であるサブフローのうち、P個のプロパティをそれぞれ有するP個のモジュール(Pは、2以上且つM以下)を決定する。管理サーバ101において、集約実行部124が、一個のプロパティ項目として共通化可能であり当該一個のプロパティ項目の更新が反映されるQ個のプロパティ項目(Qは2以上且つP以下)であるプロパティ項目群がP個のプロパティに一個以上あれば、当該一個以上のプロパティ項目群の各々について、共通化可能であることを提示する。これにより、サブフローのプロパティについてユーザの設定工数が減少する。   In the management server 101 (an example of a program creation support device), the aggregation candidate generation unit 122 selects from among N modules (N is an integer of 2 or more) constituting a program created using the visual programming tool 106 Among the sub-flows that are the M modules (M is an integer not less than 2 and not more than N), P modules each having P properties (P is not less than 2 and not more than M) are determined. In the management server 101, the aggregation execution unit 124 can be shared as one property item, and the property items are Q property items (Q is 2 or more and P or less) that reflects the update of the one property item. If there are one or more groups in the P properties, it is indicated that each of the one or more property item groups can be shared. As a result, the user's setting man-hour for the property of the subflow is reduced.

P個のモジュールの各々は、それぞれが複数個のモジュールを含む複数個のモジュールグループのうちモジュール関連ポイントが相対的に又は一定値以上に高いモジュールグループに属するモジュールである。各モジュールグループについて、モジュール関連ポイントは、それぞれがモジュール間の関係性の評価のために用意された一又は複数個のポリシーである一又は複数個のモジュール比較ポリシー(例えば種別602が“モジュール比較”のポリシー)のうち当該モジュールグループが満たす一個以上のモジュール比較ポリシーに基づき算出された評価値である。モジュール関連ポイントを基にP個のモジュールが決定されているため、関係性が低いモジュール間でプロパティ要素が同一又は類似であってもプロパティ項目が共通化されることが回避される。   Each of the P modules is a module that belongs to a module group in which module-related points are relatively high or higher than a certain value among a plurality of module groups each including a plurality of modules. For each module group, the module-related point is one or more module comparison policies (for example, type 602 is “module comparison”), each of which is one or more policies prepared for evaluating the relationship between modules. The evaluation value calculated based on one or more module comparison policies satisfied by the module group. Since P modules are determined based on the module-related points, it is avoided that the property items are shared even if the property elements are the same or similar between the modules having low relationships.

なお、「モジュールグループ」の一例は、上述の表示グループであっても比較グループであっても良い。具体的には、上述の実施例では、一個以上の比較グループが表示グループであり、比較グループ毎にモジュール関連ポイントが算出されるが、比較グループや表示グループのように複数種類のグループが用意されることに代えて、モジュールグループという一種類のグループが用意され、モジュールグループ毎に、モジュール関連ポイントが算出されても良い。   An example of the “module group” may be the display group described above or a comparison group. Specifically, in the above-described embodiment, one or more comparison groups are display groups, and module-related points are calculated for each comparison group, but multiple types of groups such as comparison groups and display groups are prepared. Instead of this, one type of group called a module group may be prepared, and a module-related point may be calculated for each module group.

また、「モジュール関連ポイントが相対的に又は一定値以上に高い」とは、モジュール間の関係性に関して実質的に評価値が高いという意味でも良く、具体的には、例えば、一又は複数個のモジュール比較ポリシーのうちの所定の一個以上のモジュール比較ポリシーを満たした、ということでも良い。   Further, “the module-related point is relatively high or higher than a certain value” may mean that the evaluation value is substantially high with respect to the relationship between the modules. Specifically, for example, one or a plurality of points It may be that one or more predetermined module comparison policies among the module comparison policies are satisfied.

複数個のモジュール比較ポリシーは、モジュール間のホップ数に関するポリシーである接続関係ポリシー(例えばポリシーID:MP1のポリシー)と、ビジュアルプログラミングツール106が提供するワークスペースにおけるモジュール位置に関するポリシーである位置ポリシー(例えばポリシーID:MP2のポリシー)とのうちの少なくとも一個を含む。各モジュールグループについて、モジュール関連ポイントの算出には、接続関係ポリシー及び位置ポリシーのうちの少なくとも一個が、それら以外のモジュール比較ポリシーに比べて優先的に使用される。ビジュアルプログラミングによれば、処理フローにおいてモジュール間の距離が近い程、又は、ワークスペースにおいて距離が近い程、モジュール間の関係性が高いと考えられ、そのような特性を満たすモジュールグループ程、高いモジュール関連ポイントが得られることが期待できる。なお、「接続関係ポリシー及び位置ポリシーのうちの少なくとも一個が、それら以外のモジュール比較ポリシーに比べて優先的に使用」は、上述の実施例では、接続関係ポリシー及び位置ポリシーのうちの少なくとも一個に関連付けられているポイント604が他のモジュール比較ポリシーのポイント604よりも高いことで実現されるが、他の方法で実現されても良い。   The plurality of module comparison policies include a connection relation policy (for example, policy ID: MP1 policy) that is a policy related to the number of hops between modules, and a position policy that is a policy related to the module position in the workspace provided by the visual programming tool 106 ( For example, policy ID: MP2 policy). For each module group, at least one of the connection relationship policy and the location policy is preferentially used in comparison with other module comparison policies for the calculation of module-related points. According to visual programming, the closer the distance between modules in the processing flow or the closer the distance in the workspace, the higher the relationship between the modules, and the higher the module group that satisfies such characteristics, the higher the module. We can expect to get related points. Note that “at least one of the connection relationship policy and the location policy is preferentially used over other module comparison policies” means that in at least one of the connection relationship policy and the location policy in the above-described embodiment. This is realized when the associated point 604 is higher than the point 604 of another module comparison policy, but may be realized by other methods.

複数個のモジュール比較ポリシーは、モジュールが配備される物理的又は仮想的な計算機リソースであるITインフラに関するポリシーであるITインフラポリシーを含む。これにより、モジュールが配備されるITインフラの観点で、P個のモジュールに含まれるか否かの基となるモジュール関連ポイントに影響を与えることができる。   The plurality of module comparison policies include an IT infrastructure policy that is a policy related to an IT infrastructure that is a physical or virtual computer resource in which a module is deployed. As a result, it is possible to influence the module-related points that are the basis of whether or not the modules are included in the P modules from the viewpoint of the IT infrastructure where the modules are deployed.

上述の一個以上のプロパティ項目群の各々は、それぞれがプロパティ要素間の関係性の評価のために用意された1又は複数個のポリシーである1又は複数個のプロパティ比較ポリシー(例えば、種別602が“プロパティ比較”のポリシー)のうち当該プロパティ項目群に適用されたプロパティ比較ポリシーを満たしたプロパティ項目群である。これにより、適切な二個以上のプロパティ項目を共通化可能なプロパティ項目として提示することができる。言い換えれば、プロパティ項目やプロパティ要素が同一であっても共通化に不適切なプロパティ項目を共通化可能として提示してしまうことを避けることができる。   Each of the one or more property item groups described above includes one or a plurality of property comparison policies (for example, type 602 having one or a plurality of policies each prepared for evaluating the relationship between property elements. Property item group that satisfies the property comparison policy applied to the property item group. Thereby, two or more appropriate property items can be presented as property items that can be shared. In other words, even if the property item and the property element are the same, it is possible to avoid presenting the property item that is inappropriate for sharing as being able to be shared.

なお、上述の一個以上のプロパティ項目群の各々について、上記「適用されたプロパティ比較ポリシー」とは、下記(x)が下記(y)に適合したプロパティ比較ポリシーである。これにより、各プロパティ項目群について、当該プロパティ項目群に適切なプロパティ比較ポリシーを適用することが期待できる。
(x)それぞれがプロパティ要素に関する評価のために用意された1又は複数個のポリシーである1又は複数個のプロパティポリシー(例えば、種別602が“プロパティ”のポリシー)のうち、当該プロパティ項目群に属するプロパティ項目が満たすプロパティポリシー(例えば、ステップ1529において事前ポリシー1002として設定されたプロパティポリシー)。
(y)当該プロパティ比較ポリシーに予め関連付けられていたプロパティポリシー(例えば、プロパティ比較ポリシーについて事前ポリシー605として予め設定されているプロパティポリシー)。
For each of the one or more property item groups described above, the “applied property comparison policy” is a property comparison policy in which the following (x) conforms to the following (y). Thereby, it can be expected that an appropriate property comparison policy is applied to each property item group.
(X) Among one or a plurality of property policies (for example, a policy whose type 602 is “property”), each of which is one or a plurality of policies prepared for evaluation related to property elements, Property policy satisfied by the property item to which it belongs (for example, the property policy set as the pre-policy 1002 in step 1529).
(Y) A property policy previously associated with the property comparison policy (for example, a property policy set in advance as the prior policy 605 for the property comparison policy).

P個のモジュールの各々は、モジュール関連ポイントが相対的に又は一定値以上に高いモジュールグループのうちの、プロパティ関連ポイントが相対的に又は一定値以上に高いモジュールグループに属するモジュールでも良い。各モジュールグループについて、プロパティ関連ポイントは、一又は複数個のプロパティ比較ポリシーのうち当該モジュールグループが満たす一個以上のプロパティ比較ポリシーに基づき算出された評価値である。これにより、モジュール関連ポイントに加えてプロパティ関連ポイントを基に、共通化されるプロパティ項目を持つモジュールを絞り込むこと(例えば、モジュール間の関係性だけでなくプロパティ間の関係性も高いモジュールを絞り込むこと)ができる。   Each of the P modules may be a module belonging to a module group in which the property-related point is relatively high or higher than a certain value among the module groups whose module-related points are relatively high or higher than a certain value. For each module group, the property-related point is an evaluation value calculated based on one or more property comparison policies satisfied by the module group among one or a plurality of property comparison policies. In this way, narrow down modules that have common property items based on property-related points in addition to module-related points (for example, narrow down modules that have high relationships between properties as well as relationships between modules. ) Is possible.

サブフローのうちのいずれかのモジュールが変更された場合に、集約実行部124が、当該変更後のモジュールを含むP個のモジュール(例えば、変更実行部2000によって特定された比較グループに属するモジュール)について共通化可能の提示(例えば、ステップ1903以降)を実行する。これにより、サブフロー中のモジュールが変更されても変更後のモジュールを含むサブフロー(変更後のサブフロー)についてモジュール項目の共通化を維持できる。   When any module in the subflow is changed, the aggregation execution unit 124 performs P module including the module after the change (for example, a module belonging to the comparison group specified by the change execution unit 2000). A presentation that can be shared (for example, after step 1903) is executed. Thereby, even if the module in the subflow is changed, it is possible to maintain common module items for the subflow including the module after the change (subflow after the change).

複数個のモジュール比較ポリシーは、ソースコード管理システムに対してモジュールグループに属する全モジュールのソースコードが同時期に新規に作成されたことを定義したポリシー(例えば、ポリシーID:MP4のポリシー)と、ソースコード管理システムに対してモジュールグループに属する全モジュールのソースコードが同時期に更新されたことを定義したポリシー(例えば、ポリシーID:MP5のポリシー)との少なくとも1個のポリシーを含む。ソースコード管理システムにより管理されている作成日時や更新日時が同時期(例えば、作成日時又は更新日時の差が一定値以下であること)であるモジュール間の関係性は高いと考えられるが、このような観点から、P個のモジュールに含まれるか否かの基となるモジュール関連ポイントに影響を与えることができる。   A plurality of module comparison policies include a policy that defines that source codes of all modules belonging to a module group are newly created at the same time for the source code management system (for example, policy ID: MP4 policy), It includes at least one policy with a policy (for example, policy ID: MP5 policy) defining that the source code of all modules belonging to the module group is updated at the same time with respect to the source code management system. It is considered that there is a high relationship between modules whose creation date and update date and time managed by the source code management system are in the same period (for example, the difference between the creation date and update date is less than a certain value). From such a viewpoint, it is possible to influence the module-related points that are the basis of whether or not they are included in P modules.

複数個のモジュール比較ポリシーは、モジュールグループに属する全モジュールが同一の開発者によって開発されたことを定義するポリシーを含む。同一の開発者により開発されたモジュール間の関係性は高いと考えられるが、このような観点から、P個のモジュールに含まれるか否かの基となるモジュール関連ポイントに影響を与えることができる。   The plurality of module comparison policies include a policy that defines that all modules belonging to the module group are developed by the same developer. The relationship between modules developed by the same developer is considered to be high, but from this point of view, it is possible to influence the module-related points that are the basis of whether or not they are included in P modules .

複数個のモジュール比較ポリシーは、モジュールグループに属する全モジュールについて、基となるモジュール又はモジュール雛形のカテゴリが同一であることを定義するポリシーを含む。基となるモジュール又はモジュール雛形のカテゴリが同一であるモジュール間の関係性は高いと考えられるが、このような観点から、P個のモジュールに含まれるか否かの基となるモジュール関連ポイントに影響を与えることができる。   The plurality of module comparison policies include a policy that defines that all modules belonging to the module group have the same category of the base module or module template. Although it is considered that the relationship between the underlying modules or modules with the same module template category is high, from this point of view, it affects the module-related points that are the basis of whether or not they are included in P modules. Can be given.

以上、幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。例えば、ビジュアルプログラミングツールは、「モデル開発環境」と呼ばれてもよい。プログラム(ソフトウェア)の構成要素や処理単位であるモジュールは「ノード」と呼ばれても良く、ノード同士の結線であるワイヤは「エッジ」と呼ばれても良い。ノードとエッジは有向グラフにおける用語であり、Node-REDにおけるフローダイアグラムも有向グラフとして捉えることができる。フローダイアグラムとブロックダイアグラムと有向グラフは同義とし、フローダイアグラムは単に「フロー」と呼ぶことができ、「フロー」と「グラフ」は同義とできる。フローを構成する二個以上のモジュールの集約モジュールが「サブフロー」に相当する。   Although several embodiments have been described above, these are examples for explaining the present invention, and the scope of the present invention is not intended to be limited to these embodiments. The present invention can be implemented in various other forms. For example, a visual programming tool may be referred to as a “model development environment”. A module that is a component of a program (software) or a processing unit may be referred to as a “node”, and a wire that is a connection between nodes may be referred to as an “edge”. Nodes and edges are terms in a directed graph, and the flow diagram in Node-RED can also be considered as a directed graph. A flow diagram, a block diagram, and a directed graph are synonymous, a flow diagram can be simply called “flow”, and “flow” and “graph” can be synonymous. An aggregation module of two or more modules constituting a flow corresponds to a “subflow”.

101:管理サーバ 101: Management server

Claims (13)

(A)ビジュアルプログラミングツールを用いて作成されるプログラムを構成するN個のモジュール(Nは2以上の整数)のうちの選択されたM個のモジュール(Mは、2以上且つN以下の整数)であるサブフローのうち、P個のプロパティをそれぞれ有するP個のモジュール(Pは、2以上且つM以下)を決定し、
前記P個のプロパティの各々は、一個以上のプロパティ要素を含み、
各プロパティ要素は、プロパティ項目とプロパティ値との組を含み、
(B)一個のプロパティ項目として共通化可能であり当該一個のプロパティ項目の更新が反映されるQ個のプロパティ項目(Qは2以上且つP以下)であるプロパティ項目群が前記P個のプロパティに一個以上あれば、当該一個以上のプロパティ項目群の各々について、共通化可能であることを提示する、
ことを計算機に実行させるコンピュータプログラム。
(A) M modules selected from among N modules (N is an integer of 2 or more) constituting a program created using a visual programming tool (M is an integer of 2 or more and N or less) Among P sub-flows, P modules each having P properties (P is 2 or more and M or less) are determined,
Each of the P properties includes one or more property elements;
Each property element contains a pair of property item and property value,
(B) A property item group that is Q property items (Q is 2 or more and P or less) that can be shared as one property item and that reflects the update of the one property item is included in the P properties. If there are one or more items, it is indicated that each of the one or more property item groups can be shared.
A computer program that causes a computer to execute.
前記P個のモジュールの各々は、それぞれが複数個のモジュールを含む複数個のモジュールグループのうちモジュール関連ポイントが相対的に又は一定値以上に高いモジュールグループに属するモジュールであり、
各モジュールグループについて、モジュール関連ポイントは、それぞれがモジュール間の関係性の評価のために用意された一又は複数個のポリシーである一又は複数個のモジュール比較ポリシーのうち当該モジュールグループが満たす一個以上のモジュール比較ポリシーに基づき算出された評価値である、
請求項1に記載のコンピュータプログラム。
Each of the P modules is a module belonging to a module group in which a module-related point is relatively high or higher than a certain value among a plurality of module groups each including a plurality of modules.
For each module group, the module-related points are one or more module comparison policies, each of which is one or a plurality of policies prepared for evaluating the relationship between modules. An evaluation value calculated based on the module comparison policy of
The computer program according to claim 1.
前記複数個のモジュール比較ポリシーは、モジュール間のホップ数に関するポリシーである接続関係ポリシーと、前記ビジュアルプログラミングツールが提供するワークスペースにおけるモジュール位置に関するポリシーである位置ポリシーとのうちの少なくとも一個を含み、
前記各モジュールグループについて、前記モジュール関連ポイントの算出には、前記接続関係ポリシー及び前記位置ポリシーのうちの少なくとも一個が、前記接続関係ポリシー及び前記位置ポリシー以外のモジュール比較ポリシーに比べて優先的に使用される、
請求項2に記載のコンピュータプログラム。
The plurality of module comparison policies include at least one of a connection relation policy that is a policy related to the number of hops between modules and a position policy that is a policy related to a module position in a workspace provided by the visual programming tool,
For each module group, at least one of the connection relationship policy and the location policy is used preferentially over the module comparison policy other than the connection relationship policy and the location policy in calculating the module related point. To be
The computer program according to claim 2.
前記複数個のモジュール比較ポリシーは、モジュールが配備される物理的又は仮想的な計算機リソースであるITインフラに関するポリシーであるITインフラポリシーを含む、
請求項2に記載のコンピュータプログラム。
The plurality of module comparison policies include an IT infrastructure policy that is a policy related to an IT infrastructure that is a physical or virtual computer resource in which a module is deployed.
The computer program according to claim 2.
前記一個以上のプロパティ項目群の各々は、それぞれがプロパティ要素間の関係性の評価のために用意された1又は複数個のポリシーである1又は複数個のプロパティ比較ポリシーのうち当該プロパティ項目群に適用されたプロパティ比較ポリシーを満たしたプロパティ項目群である、
請求項1に記載のコンピュータプログラム。
Each of the one or more property item groups is a property item group of one or more property comparison policies, each of which is one or more policies prepared for evaluating the relationship between property elements. A property item group that satisfies the applied property comparison policy.
The computer program according to claim 1.
前記一個以上のプロパティ項目群の各々について、前記適用されたプロパティ比較ポリシーは、下記(x)が下記(y)に適合したプロパティ比較ポリシーである、
(x)それぞれがプロパティ要素に関する評価のために用意された1又は複数個のポリシーである1又は複数個のプロパティポリシーのうち、当該プロパティ項目群に属するプロパティ項目が満たすプロパティポリシー、
(y)前記1又は複数個のプロパティポリシーのうち、当該プロパティ比較ポリシーに予め関連付けられていたプロパティポリシー、
請求項5に記載のコンピュータプログラム。
For each of the one or more property item groups, the applied property comparison policy is a property comparison policy in which the following (x) conforms to the following (y):
(X) a property policy satisfied by a property item belonging to the property item group among one or a plurality of property policies, each of which is one or a plurality of policies prepared for evaluation of property elements;
(Y) a property policy associated in advance with the property comparison policy among the one or more property policies;
The computer program according to claim 5.
前記P個のモジュールの各々は、それぞれが複数個のモジュールを含む複数個のモジュールグループのうちのモジュール関連ポイントが相対的に又は一定値以上に高いモジュールグループのうち、プロパティ関連ポイントが相対的に又は一定値以上に高いモジュールグループに属するモジュールであり、
各モジュールグループについて、
モジュール関連ポイントは、それぞれがモジュール間の関係性の評価のために用意された一又は複数個のポリシーである一又は複数個のモジュール比較ポリシーのうち当該モジュールグループが満たす一個以上のモジュール比較ポリシーに基づき算出された評価値であり、
プロパティ関連ポイントは、前記一又は複数個のプロパティ比較ポリシーのうち当該モジュールグループが満たす一個以上のプロパティ比較ポリシーに基づき算出された評価値である、
請求項5に記載のコンピュータプログラム。
Each of the P modules has a relatively high module-related point among a plurality of module groups each including a plurality of modules or a relatively high property-related point among module groups higher than a certain value. Or a module belonging to a module group higher than a certain value,
For each module group
The module-related point is one or more module comparison policies each of which is one or more policies prepared for evaluating the relationship between modules, and is one or more module comparison policies satisfied by the module group. The evaluation value calculated based on
The property-related point is an evaluation value calculated based on one or more property comparison policies satisfied by the module group among the one or more property comparison policies.
The computer program according to claim 5.
前記サブフローのうちのいずれかのモジュールが変更された場合に、当該変更後のモジュールを含む前記P個のモジュールについて(B)を実行する、
請求項1に記載のコンピュータプログラム。
When any module in the subflow is changed, execute (B) on the P modules including the changed module.
The computer program according to claim 1.
前記複数個のモジュール比較ポリシーは、
ソースコードデータを管理するソースコード管理システムに対してモジュールグループに属する全モジュールのソースコードが同時期に新規に作成されたことを定義したポリシーと、
前記ソースコード管理システムに対してモジュールグループに属する全モジュールのソースコードが同時期に更新されたことを定義したポリシーと
の少なくとも1個のポリシーを含む、
請求項2に記載のコンピュータプログラム。
The plurality of module comparison policies are:
A policy that defines that the source code of all modules belonging to the module group is newly created at the same time for the source code management system that manages the source code data,
Including at least one policy with a policy defining that source codes of all modules belonging to a module group are updated at the same time with respect to the source code management system;
The computer program according to claim 2.
前記複数個のモジュール比較ポリシーは、モジュールグループに属する全モジュールが同一の開発者によって開発されたことを定義するポリシーを含む、
請求項2に記載のコンピュータプログラム。
The plurality of module comparison policies include a policy that defines that all modules belonging to a module group are developed by the same developer.
The computer program according to claim 2.
前記複数個のモジュール比較ポリシーは、モジュールグループに属する全モジュールについて、基となるモジュール又はモジュール雛形のカテゴリが同一であることを定義するポリシーを含む、
請求項2に記載のコンピュータプログラム。
The plurality of module comparison policies include a policy that defines that all modules belonging to a module group have the same base module or module template category.
The computer program according to claim 2.
ビジュアルプログラミングツールを用いて作成されるプログラムを構成するN個のモジュール(Nは2以上の整数)のうちの選択されたM個のモジュール(Mは、2以上且つN以下の整数)であるサブフローのうち、P個のプロパティをそれぞれ有するP個のモジュール(Pは、2以上且つM以下)を決定する集約候補生成部と、
前記P個のプロパティの各々は、一個以上のプロパティ要素を含み、
各プロパティ要素は、プロパティ項目とプロパティ値との組を含み、
一個のプロパティ項目として共通化可能であり当該一個のプロパティ項目の更新が反映されるQ個のプロパティ項目(Qは2以上且つP以下)であるプロパティ項目群が前記P個のプロパティに一個以上あれば、当該一個以上のプロパティ項目群の各々について、共通化可能であることを提示する集約実行部と
を備えるプログラム作成支援装置。
A subflow that is selected M modules (M is an integer not less than 2 and not more than N) out of N modules (N is an integer not less than 2) constituting a program created using the visual programming tool Among these, an aggregation candidate generating unit that determines P modules each having P properties (P is 2 or more and M or less);
Each of the P properties includes one or more property elements;
Each property element contains a pair of property item and property value,
There can be at least one property item group of Q property items (Q is 2 or more and P or less) that can be shared as one property item and the update of the one property item is reflected in the P properties. For example, a program creation support apparatus including an aggregation execution unit that presents that each of the one or more property item groups can be shared.
ビジュアルプログラミングツールを用いて作成されるプログラムを構成するN個のモジュール(Nは2以上の整数)のうちの選択されたM個のモジュール(Mは、2以上且つN以下の整数)であるサブフローのうち、P個のプロパティをそれぞれ有するP個のモジュール(Pは、2以上且つM以下)を決定し、
前記P個のプロパティの各々は、一個以上のプロパティ要素を含み、
各プロパティ要素は、プロパティ項目とプロパティ値との組を含み、
一個のプロパティ項目として共通化可能であり当該一個のプロパティ項目の更新が反映されるQ個のプロパティ項目(Qは2以上且つP以下)であるプロパティ項目群が前記P個のプロパティに一個以上あれば、当該一個以上のプロパティ項目群の各々について、共通化可能であることを提示する、
プログラム作成支援方法。
A subflow that is selected M modules (M is an integer not less than 2 and not more than N) out of N modules (N is an integer not less than 2) constituting a program created using the visual programming tool Determine P modules each having P properties (P is 2 or more and M or less),
Each of the P properties includes one or more property elements;
Each property element contains a pair of property item and property value,
There can be at least one property item group of Q property items (Q is 2 or more and P or less) that can be shared as one property item and the update of the one property item is reflected in the P properties. For example, it is suggested that each of the one or more property item groups can be shared.
Program creation support method.
JP2018100054A 2018-05-24 2018-05-24 Devices and methods to help you create programs using visual programming tools Active JP7018356B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018100054A JP7018356B2 (en) 2018-05-24 2018-05-24 Devices and methods to help you create programs using visual programming tools

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018100054A JP7018356B2 (en) 2018-05-24 2018-05-24 Devices and methods to help you create programs using visual programming tools

Publications (2)

Publication Number Publication Date
JP2019204373A true JP2019204373A (en) 2019-11-28
JP7018356B2 JP7018356B2 (en) 2022-02-10

Family

ID=68727015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018100054A Active JP7018356B2 (en) 2018-05-24 2018-05-24 Devices and methods to help you create programs using visual programming tools

Country Status (1)

Country Link
JP (1) JP7018356B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021172026A1 (en) * 2020-02-26 2021-09-02 オムロン株式会社 Determination method, information provision method, control program, and determination device
JP7502216B2 (en) 2021-02-22 2024-06-18 株式会社日立システムズ PROGRAM GENERATION SUPPORT DEVICE, PROGRAM GENERATION SUPPORT METHOD, AND PROGRAM GENERATION SUPPORT PROGRAM

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215045A (en) * 1999-01-26 2000-08-04 Hitachi Ltd Instrument for measuring dependency between software modules
JP2002366356A (en) * 2001-06-12 2002-12-20 Toshiba Corp System, method, and program for supporting software development
JP2007537512A (en) * 2004-04-30 2007-12-20 マイクロソフト コーポレーション Rule framework to define and execute end user rule logic
JP2014164724A (en) * 2013-02-27 2014-09-08 Fujitsu Ltd Automatic operation process generation method, program, and device
US20150169193A1 (en) * 2012-04-05 2015-06-18 Isotropix Device for processing information
WO2015145556A1 (en) * 2014-03-25 2015-10-01 株式会社 日立製作所 Device for verifying dependencies between software specifications, and method for verifying dependencies between software specifications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215045A (en) * 1999-01-26 2000-08-04 Hitachi Ltd Instrument for measuring dependency between software modules
JP2002366356A (en) * 2001-06-12 2002-12-20 Toshiba Corp System, method, and program for supporting software development
JP2007537512A (en) * 2004-04-30 2007-12-20 マイクロソフト コーポレーション Rule framework to define and execute end user rule logic
US20150169193A1 (en) * 2012-04-05 2015-06-18 Isotropix Device for processing information
JP2014164724A (en) * 2013-02-27 2014-09-08 Fujitsu Ltd Automatic operation process generation method, program, and device
WO2015145556A1 (en) * 2014-03-25 2015-10-01 株式会社 日立製作所 Device for verifying dependencies between software specifications, and method for verifying dependencies between software specifications

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021172026A1 (en) * 2020-02-26 2021-09-02 オムロン株式会社 Determination method, information provision method, control program, and determination device
JP7467978B2 (en) 2020-02-26 2024-04-16 オムロン株式会社 Determination method, information presentation method, control program, and determination device
JP7502216B2 (en) 2021-02-22 2024-06-18 株式会社日立システムズ PROGRAM GENERATION SUPPORT DEVICE, PROGRAM GENERATION SUPPORT METHOD, AND PROGRAM GENERATION SUPPORT PROGRAM

Also Published As

Publication number Publication date
JP7018356B2 (en) 2022-02-10

Similar Documents

Publication Publication Date Title
RU2419854C2 (en) Template based service management
CN108304201B (en) Object updating method, device and equipment
JP3744361B2 (en) Security management system
US7885943B1 (en) IT compliance rules
US9013743B2 (en) Data processing apparatus, data processing system, and computer-readable storage medium
US7376898B1 (en) Methods and apparatus for managing resources
EP2814208B1 (en) Program, apparatus, and method for creating configuration requirements
JPWO2019003373A1 (en) Attack situation visualization device, attack situation visualization method and program
CN111930290B (en) Resource deployment method and device
US10768927B2 (en) Management system and management method
WO2020008991A1 (en) Verification automation device, verification automation method, and computer-readable recording medium
JP7018356B2 (en) Devices and methods to help you create programs using visual programming tools
US10558513B2 (en) System management apparatus and system management method
CN110413161A (en) Arrrangement method, device and electronic equipment
JP2022161342A (en) Digital twin control system and method
JP2008171235A (en) System configuration change rule generation system, method and program
CN114862368A (en) Workflow instance operation method and device, electronic equipment and storage medium
JP7255636B2 (en) Terminal management device, terminal management method, and program
JP2015022501A (en) Construction device, construction method, and construction program
KR101681154B1 (en) Method of constructing data collector, server performing the same and storage medium for the same
JP2014174609A (en) Hardware configuration estimation system, hardware configuration estimation method and hardware configuration estimation program
US11863583B2 (en) Generating action recommendations for courses of action used for incident response
EP3076599A1 (en) Command generation program, command generation method and information processing apparatus
JP2018018415A (en) Information processing device, information processing system, program and information processing method
JP5427599B2 (en) Access control setting device, method and computer program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220106

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: 20220118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220131

R150 Certificate of patent or registration of utility model

Ref document number: 7018356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150