JP6729742B1 - Information processing apparatus, information processing system, information processing method, and program - Google Patents

Information processing apparatus, information processing system, information processing method, and program Download PDF

Info

Publication number
JP6729742B1
JP6729742B1 JP2019061042A JP2019061042A JP6729742B1 JP 6729742 B1 JP6729742 B1 JP 6729742B1 JP 2019061042 A JP2019061042 A JP 2019061042A JP 2019061042 A JP2019061042 A JP 2019061042A JP 6729742 B1 JP6729742 B1 JP 6729742B1
Authority
JP
Japan
Prior art keywords
program
data
processing
data set
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019061042A
Other languages
Japanese (ja)
Other versions
JP2020160922A (en
Inventor
俊介 田山
俊介 田山
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2019061042A priority Critical patent/JP6729742B1/en
Application granted granted Critical
Publication of JP6729742B1 publication Critical patent/JP6729742B1/en
Publication of JP2020160922A publication Critical patent/JP2020160922A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】データの分割を処理内容に応じて効率的に行うことができる情報処理装置、情報処理システム、情報処理方法、及びプログラムを提供する。【解決手段】情報処理装置は、ソフトウェアを実現するプログラムの処理定義を示す情報と、前記プログラムがアクセスするデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析結果に基づいて、起点となるプログラムを示す情報、前記起点プログラムから呼び出されるサブプログラムを示す情報、及び前記起点プログラム及び前記サブプログラムからアクセスを行うデータ集合に関する情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合について、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、を備える。【選択図】図4PROBLEM TO BE SOLVED: To provide an information processing device, an information processing system, an information processing method, and a program capable of efficiently dividing data according to processing contents. An information processing device has a starting point based on an analysis result of the program based on information indicating a process definition of a program that realizes software, data accessed by the program, and a data set including the data. The information indicating the program to be used, the information indicating the subprogram called from the starting program, and the information about the data set accessed from the starting program and the subprogram are route information indicating the processing flow from the starting program. A route processing unit; and a determination unit that determines, based on the route information and the analysis result, a belonging process flow that is a process flow to which the shared data set belongs, for the data sets included in the plurality of process flows. , Is provided. [Selection diagram] Fig. 4

Description

本発明は、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。 The present invention relates to an information processing device, an information processing system, an information processing method, and a program.

古くなった既存システムの刷新を行う場合、費用や期間の兼ね合いから、既存のシステムで動いている業務処理自体は変更せず、動作する基盤などを新しく置き換えることがある。このような刷新の場合、刷新後のアーキテクチャの1つとしてマイクロサービスを組み合わせる構成があげられる。マイクロサービスを用いる場合、システムの機能をメンテナンスのしやすい範囲で小さく分割し、その分割単位でサービス化を行う。また、サービス間はAPI(Application Programming Interface)の呼び出しなどで疎結合とする。このようにサービス間を疎結合とすることで、システム改修時の期間とコストを削減し、タイムリーに更新できるようになる。
特許文献1には、関連する技術として、ソフトウェアにおけるデータの使われ方の実態を把握可能な技術が開示されている。
When the old existing system is renewed, due to the cost and the period, the business process running in the existing system may not be changed and the operating base may be replaced. In the case of such renewal, one of the architectures after the renewal is a configuration in which microservices are combined. When using microservices, the functions of the system are divided into smaller parts within a range that is easy to maintain, and services are created in units of the divisions. Further, the services are loosely coupled by calling an API (Application Programming Interface). By loosely coupling the services in this way, it is possible to reduce the period and cost for system renovation and to update the system in a timely manner.
Patent Document 1 discloses, as a related technique, a technique capable of grasping the actual state of how data is used in software.

特開2017−228048号公報JP, 2017-228048, A

マイクロサービス化を実現するためには、各サービスを疎結合となるようにデータを分割する必要がある。しかしながら、このようなデータの分割は、これまで業務の有識者がプログラムを解析することで行われることが多かった。そのため、データ分割に多くの手間がかかってしまう場合があった。 In order to realize microservices, it is necessary to divide data so that services are loosely coupled. However, such division of data has heretofore often been performed by analyzing a program by an expert in business. Therefore, it may take a lot of trouble to divide the data.

本発明は、上記の課題を解決する、情報処理装置、情報処理システム、情報処理方法、及びプログラムを提供することにある。 An object of the present invention is to provide an information processing device, an information processing system, an information processing method, and a program that solve the above problems.

本発明の一態様によれば、情報処理装置は、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、を備えることを特徴とする。 According to an aspect of the present invention, an information processing device provides information describing processing definitions of a plurality of programs for realizing software, data accessed by the programs, and a data set including the data. Based on an analysis result which is a result of analysis of the program based on, information indicating a starting point program which is a program that is not called from another of the plurality of programs, and directly or indirectly from the starting point program. Information indicating a subprogram that is the called program and information relating to the data set accessed from the starting point program and the subprogram are associated with each other in a calling order or an access order. A route processing unit that is route information indicating, and a shared data set that is the data set included in the plurality of processing flows based on the route information and the analysis result, among the plurality of processing flows, And a determining unit that determines a belonging processing flow that is a processing flow to which the shared data set belongs.

また、本発明の一態様によれば、情報処理システムは、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、を備えることを特徴とする。 Further, according to one aspect of the present invention, an information processing system includes information describing processing definitions of a plurality of programs for realizing software, data accessed by the programs, and a data set including the data. Based on the analysis result which is the analysis result of the program based on, the information indicating the starting program which is a program that is not called from the other programs among the plurality of programs, and directly or indirectly from the starting program. Information indicating a sub-program that is the program that is called automatically, and information about the data set that is accessed from the starting-point program and the sub-program, information in which the calling order or the access order is associated with each other. A route processing unit that is route information indicating a processing flow, a shared data set that is the data set included in the plurality of processing flows, based on the route information and the analysis result, among the plurality of processing flows. And a determining unit that determines a belonging process flow that is a process flow to which the shared data set belongs.

また、本発明の一態様によれば、情報処理方法は、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、を含むことを特徴とする。 According to another aspect of the present invention, an information processing method includes information describing processing definitions of a plurality of programs for implementing software, data accessed by the programs, and a data set including the data. Based on the analysis result which is the analysis result of the program based on, the information indicating the starting program which is a program that is not called from the other programs among the plurality of programs, and directly or indirectly from the starting program. Information indicating a sub-program that is the program that is called automatically, and information about the data set that is accessed from the starting-point program and the sub-program, information in which the calling order or the access order is associated with each other. A route processing step that is route information indicating a processing flow, and a shared data set that is the data set included in the plurality of processing flows, based on the route information and the analysis result, among the plurality of processing flows. And a determining step of determining a belonging process flow that is a process flow to which the shared data set belongs.

また、本発明の一態様によれば、プログラムは、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、をコンピュータに実行させることを特徴とする。 According to one aspect of the present invention, a program includes information describing processing definitions of a plurality of programs for implementing software, data accessed by the program, and a data set including the data. Based on an analysis result which is a result of analysis of the program based on, information indicating a starting point program which is a program that is not called from another of the plurality of programs, and directly or indirectly from the starting point program. Information indicating a subprogram that is the called program and information relating to the data set accessed from the starting point program and the subprogram are associated with each other in a calling order or an access order. Of a plurality of the processing flows for a shared data set, which is the data set included in the plurality of processing flows, based on the route processing step including the route information indicating the route information and the analysis result. And a determining step of determining a belonging processing flow, which is a processing flow to which the shared data set belongs, and a computer.

本発明によれば、データの分割を処理内容に応じて効率的に行うことができる。 According to the present invention, data can be efficiently divided according to the processing content.

本発明に関する業務システムのマイクロサービス化を説明するための第1図である。It is a 1st figure for demonstrating the microservice realization of the business system regarding this invention. 本発明に関する業務システムのマイクロサービス化を説明するための第2図である。It is FIG. 2 for demonstrating the microservice realization of the business system regarding this invention. 本発明に関する業務システムのマイクロサービス化を説明するための第3図である。It is FIG. 3 for demonstrating the microservice realization of the business system regarding this invention. 本発明の第1実施形態に係る情報処理装置の構成の一例を示す概要ブロック図である。It is a schematic block diagram which shows an example of a structure of the information processing apparatus which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係るデータアクセス情報の一例を示す図である。It is a figure which shows an example of the data access information which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係るデータアクセス情報の別の一例を示す図である。It is a figure which shows another example of the data access information which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係る制御構造情報の一例を示す図である。It is a figure which shows an example of the control structure information which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係る関係情報の一例を示す図である。It is a figure which shows an example of the related information which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係る関係情報の別の一例を示す図である。It is a figure which shows another example of the related information which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係るルート情報の一例を示す図である。It is a figure which shows an example of the route information which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係るルート抽出処理の一例を示すフローチャートである。It is a flow chart which shows an example of the route extraction processing concerning a 1st embodiment of the present invention. 本発明の第1実施形態に係るデータアクセス分析処理の一例を示すフローチャートである。It is a flow chart which shows an example of data access analysis processing concerning a 1st embodiment of the present invention. 本発明の第2実施形態に係る情報処理装置の構成の一例を示す概要ブロック図である。It is a schematic block diagram which shows an example of a structure of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る業務情報の一例を示す図である。It is a figure showing an example of business information concerning a 2nd embodiment of the present invention. 本発明の第2実施形態に係る解析結果の一例を示す図である。It is a figure which shows an example of the analysis result which concerns on 2nd Embodiment of this invention. 本発明の各実施形態に係る情報処理システムの最小構成の一例を示す概略ブロック図である。It is a schematic block diagram which shows an example of the minimum structure of the information processing system which concerns on each embodiment of this invention.

<マイクロサービスの概要>
まず、図面を参照して、マイクロサービスについて概要を説明する。
マイクロサービスとは、ソフトウェア開発における技法・考え方の1つである。マイクロサービスにおいては、1つのアプリケーション(業務システム)を、業務機能に沿った複数の小さいサービスに分割する。全体のアプリケーションは、複数のマイクロサービスを疎結合して構成することで実現する。疎結合は例えば、API呼び出しなどである。アプリケーションを複数のマイクロサービスに分割することによって、マイクロサービスごとに開発を行うことが可能になる。そのため、複数の開発を並列して行うことが可能になる。また、1つ1つのサービスが小さくなるため、開発者の理解、開発、テストがより容易になる。これらの要因によって、全体の業務システムの改修時の期間とコストを削減することが可能になる。
<Outline of microservices>
First, an outline of microservices will be described with reference to the drawings.
Microservices are one of the techniques and ideas in software development. In microservices, one application (business system) is divided into a plurality of small services according to business functions. The entire application is realized by loosely coupling multiple microservices. Loose coupling is, for example, an API call or the like. By dividing the application into multiple microservices, it becomes possible to develop for each microservice. Therefore, multiple developments can be performed in parallel. Also, since each service becomes smaller, it becomes easier for developers to understand, develop, and test. Due to these factors, it is possible to reduce the period and cost when the entire business system is refurbished.

図1〜図3は、本発明に関する業務システムのマイクロサービス化を説明するための図である。
既存の業務システムをマイクロサービスにする場合、マイクロサービスとする範囲を決定する必要がある。1つのマイクロサービスの範囲の捉え方は、複数の方法があるが、そのうちの1つに、業務処理が開始されるプログラムからの一連の処理フローを1つのマイクロサービスと捉える考え方がある。
1 to 3 are views for explaining the microservices of a business system according to the present invention.
When making an existing business system into a micro service, it is necessary to determine the range of the micro service. There are a plurality of methods for grasping the range of one microservice, and one of them is the idea that a series of processing flows from a program in which business processing is started is regarded as one microservice.

図1は、既存の業務システムの一例を示す図である。この図に示す一例では、業務システムを実行するためのプログラムがプログラム1〜8で示されている。また、業務システムを実行する際にアクセスされるデータベースがデータベース1で示されている。また、プログラム間の矢印や、プログラムからデータベースへの矢印は、呼び出し又はアクセス関係を示す。この図に示す例では、例えば、プログラム1はプログラム4を呼び出していることを示す。また、例えば、プログラム4は、プログラム1とプログラム2から呼び出されていて、プログラム6、プログラム7を呼び出し、データベース1にアクセスしていることを示す。
この図に示すように、既存の業務システムは、多くのプログラムや複雑に絡み合うだけでなく、多くのプログラムが1つ以上のデータベースにアクセスする状態となっている。そのため、このような業務システムをマイクロサービス化するためには、各プログラムを精査しなければならない。
FIG. 1 is a diagram showing an example of an existing business system. In the example shown in this figure, programs for executing the business system are shown as programs 1-8. A database 1 is a database that is accessed when the business system is executed. Further, arrows between programs and arrows from programs to databases indicate calling or access relationships. In the example shown in this figure, for example, the program 1 indicates that the program 4 is called. Further, for example, the program 4 is called from the program 1 and the program 2, calls the programs 6 and 7, and indicates that the database 1 is accessed.
As shown in this figure, the existing business system is in a state where not only many programs and intricately entangle each other, but also many programs access one or more databases. Therefore, in order to make such a business system into a micro service, it is necessary to scrutinize each program.

このようなプログラム群をマイクロサービス化するために、一連の処理フローをマイクロサービスと捉える考え方が挙げられる。まず、一連の処理フローの起点となるプログラムを判定する。図1に示す例では、プログラム1、プログラム2、プログラム3は、どこからも呼び出しを受けていないプログラムである。そのため、これらのプログラムは起点となるプログラムである。従って、図1に示す例では、処理フローが3つ存在することになる。 In order to make such a group of programs into microservices, there is an idea that a series of processing flows are regarded as microservices. First, the program that is the starting point of a series of processing flows is determined. In the example shown in FIG. 1, the programs 1, 2, and 3 are programs that have not been called from anywhere. Therefore, these programs are the starting programs. Therefore, in the example shown in FIG. 1, there are three processing flows.

続いて、全体のプログラムを処理フローごとに分割する。このとき、複数の処理フローで利用されているプログラムが存在する場合には、当該プログラムを利用されている処理フローの分だけ複製する。例えば、図1に示す例の場合、プログラム4は、プログラム1とプログラム2から呼び出されている。プログラム1とプログラム2は別の処理フローであるから、プログラム4は複製され分割される。
このように分割が行われた結果を図2に示す。プログラム4、5、7は、複数の処理フローで呼び出されているので、複製され分割されている。このように処理フローに応じてプログラムを複製、分割することで、プログラムについては、処理フローごとに分割することが可能になる。しかしながら、データベース1は分割されていないため、このままではマイクロサービス化することはできない。
Then, the entire program is divided for each processing flow. At this time, if there are programs used in a plurality of processing flows, the programs are duplicated for the processing flows being used. For example, in the case of the example shown in FIG. 1, the program 4 is called from the program 1 and the program 2. Since the program 1 and the program 2 have different processing flows, the program 4 is duplicated and divided.
The result of such division is shown in FIG. Since the programs 4, 5, and 7 are called by a plurality of processing flows, they are duplicated and divided. By thus duplicating and dividing the program according to the processing flow, the program can be divided for each processing flow. However, since the database 1 is not divided, it cannot be microserviced as it is.

全ての処理フローをマイクロサービス化するためには、図3に示すように、データベースについても処理フローに応じた分割が必要になる。図3に示す例では、データベース1は、データベース11、データベース12、データベース13、及びデータベース14に分割される。このようにデータベースを分割できれば、処理フローごとにマイクロサービス化することが可能になる。図3に示す例では、プログラム1、プログラム4、プログラム6、及び、データベース11からなる処理フローを1つのマイクロサービスとすることができる。 In order to convert all the processing flows into microservices, the database also needs to be divided according to the processing flows, as shown in FIG. In the example shown in FIG. 3, the database 1 is divided into a database 11, a database 12, a database 13, and a database 14. If the database can be divided in this way, it becomes possible to create microservices for each processing flow. In the example shown in FIG. 3, the processing flow including the program 1, the program 4, the program 6, and the database 11 can be one microservice.

図3のようにデータベースを分割するためには、図2におけるデータベース1を参照し、どのデータがどの処理に利用されているかを把握しなければならない。そのためには、データベースを呼び出すプログラム(図2の例では、プログラム4〜プログラム8の5つのプログラム)のそれぞれについて、処理を確認する必要がある。既存の業務システムが図1〜図3に示す例のように把握が容易である場合には処理の確認も容易である。しかしながら、実際には非常に多くの業務があるため、その処理の把握は非常に困難であることが多く、マイクロサービス化には膨大な時間を要することが多い。 In order to divide the database as shown in FIG. 3, it is necessary to refer to the database 1 in FIG. 2 and grasp which data is used for which process. For that purpose, it is necessary to confirm the processing for each of the programs that call the database (five programs, program 4 to program 8 in the example of FIG. 2 ). When the existing business system is easy to grasp as in the example shown in FIGS. 1 to 3, it is easy to confirm the processing. However, in reality, since there are so many tasks, it is often very difficult to understand the processing, and it often takes a huge amount of time to realize microservices.

<第1実施形態>
以下、図面を参照して、本発明の第1実施形態について詳しく説明する。
<First Embodiment>
Hereinafter, the first embodiment of the present invention will be described in detail with reference to the drawings.

図1は、本発明の第1実施形態に係る情報処理装置1の構成の一例を示す概略ブロック図である。
情報処理装置1は、例えば、デスクトップパソコン、ノートパソコン、タブレット端末、スマートフォンなどの端末装置や、サーバなどの処理装置である。
情報処理装置1は、例えば、業務システムのプログラムや設定情報などを含む資産情報を解析する。また、情報処理装置1は、解析結果に基づいて、処理フローの起点となるプログラムを決定する。また、情報処理装置1は、起点となるプログラムから呼び出されるプログラムを処理フローごとに分割する。また、情報処理装置1は、一連の処理フローに含まれるプログラムから呼び出されるデータについて、呼び出されるデータと呼び出すプログラムを対応付ける。また、情報処理装置1は、対応付けた情報にもとづいて、データベースを分割する。
FIG. 1 is a schematic block diagram showing an example of the configuration of an information processing device 1 according to the first embodiment of the present invention.
The information processing device 1 is, for example, a terminal device such as a desktop computer, a notebook computer, a tablet terminal, a smartphone, or a processing device such as a server.
The information processing device 1 analyzes, for example, asset information including a program of a business system and setting information. Further, the information processing device 1 determines a program that is the starting point of the processing flow based on the analysis result. Further, the information processing device 1 divides the program called from the program that is the starting point for each processing flow. Further, the information processing device 1 associates the called data with the called program for the data called from the programs included in the series of processing flows. Further, the information processing device 1 divides the database based on the associated information.

これにより、情報処理装置1は、業務の有識者やプログラムの開発者などがプログラムの解析を実施することなく、処理内容に応じてデータの分割を効率的に行うことができる。 As a result, the information processing apparatus 1 can efficiently divide the data according to the processing content without the business expert or the program developer performing the analysis of the program.

情報処理装置1は、記憶部11及び処理部12を含んで構成される。
記憶部11は、例えば、ハードディスクドライブ、メモリなどの記憶装置である。記憶部11は、ファームウェアやアプリケーションプログラムなど、処理部12が実行するための各種プログラム、及び、処理部12が実行した処理の結果などを記憶する。
処理部12は、中央演算装置(CPU)などのプロセッサである。処理部12は、例えば、記憶部11に記憶する情報に基づいて、入力情報に対する出力情報を生成する。
The information processing device 1 includes a storage unit 11 and a processing unit 12.
The storage unit 11 is a storage device such as a hard disk drive or a memory. The storage unit 11 stores various programs to be executed by the processing unit 12, such as firmware and application programs, and results of processing executed by the processing unit 12.
The processing unit 12 is a processor such as a central processing unit (CPU). The processing unit 12 generates output information for the input information, for example, based on the information stored in the storage unit 11.

具体的には、処理部12は、記憶部11に予め記憶された資産情報を読み出し、読み出した情報に基づいて、資産情報の解析を行う。ここで、資産情報とは、解析対象となるシステムを構成するアプリケーションの元となるソースコードや、アプリケーションの定義情報を含む。例えば、メインフレームの場合、ソースコードは、プログラムソースコードや、ジョブの処理を記述したJCLソースコードなど、ユーザ(例えば、システムの開発者)が処理定義を記述したファイルを示す。また、例えば、メインフレームの場合、定義情報は、システムを構成するアプリケーションの各種設定情報を示す。
また、処理部12は、解析結果に基づいて、システムを構成するプログラムの処理の流れ(以下、「ルート情報」とも称する)を抽出する。また、処理部12は、抽出したルート情報と、解析結果に含まれるプログラムのデータへのアクセス情報(以下、「データアクセス情報」とも称する)とに基づいて、ルート情報ごとにアクセスするデータを判定すする。処理部12は、判定結果に応じて、システムが利用しているデータを必要に応じて分割する。
Specifically, the processing unit 12 reads out the asset information stored in advance in the storage unit 11 and analyzes the asset information based on the read information. Here, the asset information includes a source code that is a source of an application that configures a system that is an analysis target, and definition information of the application. For example, in the case of a mainframe, the source code indicates a file in which a user (for example, a system developer) describes a process definition such as a program source code or a JCL source code describing a job process. Further, for example, in the case of a mainframe, the definition information indicates various kinds of setting information of applications that make up the system.
In addition, the processing unit 12 extracts a processing flow of a program configuring the system (hereinafter, also referred to as “route information”) based on the analysis result. Further, the processing unit 12 determines the data to be accessed for each route information based on the extracted route information and the access information to the data of the program included in the analysis result (hereinafter, also referred to as “data access information”). Sushi The processing unit 12 divides the data used by the system as necessary according to the determination result.

<情報処理装置の記憶部>
記憶部11について、詳細を説明する。記憶部11は、資産情報記憶部111、解析結果記憶部112、ルート情報記憶部113、及び、分析結果記憶部114を含んで構成される。
<Memory unit of information processing device>
Details of the storage unit 11 will be described. The storage unit 11 includes an asset information storage unit 111, an analysis result storage unit 112, a route information storage unit 113, and an analysis result storage unit 114.

資産情報記憶部111は、資産情報を記憶する。
解析結果記憶部112は、解析部121が資産情報を解析した解析結果を記憶する。解析結果は、データアクセス情報、制御構造情報、及び、関係情報を含んで構成される。データアクセス情報は、アクセスするデータ(ファイルやテーブルなど)とプログラムとの対応関係を示す情報である。また、制御構造情報は、個々のプログラムの処理フローに従って、当該プログラムに存在する処理、分岐、繰り返し、他のプログラムや関数の呼び出しなどを示す情報である。関係情報は、プログラム間の呼び出し関係や、プログラム内で他の資産情報を引用している場合の引用関係を示す情報である。
The asset information storage unit 111 stores asset information.
The analysis result storage unit 112 stores the analysis result obtained by the analysis unit 121 analyzing the asset information. The analysis result includes data access information, control structure information, and relationship information. The data access information is information indicating the correspondence between the data to be accessed (file, table, etc.) and the program. Further, the control structure information is information indicating processing, branching, repetition, calling of other programs and functions, etc. existing in the program according to the processing flow of each program. The relationship information is information indicating a calling relationship between programs and a quoting relationship when other asset information is quoted in the program.

解析結果記憶部112は、データアクセス情報記憶部1121、制御構造情報記憶部1122、及び、関係情報記憶部1123を含んで構成される。データアクセス情報記憶部1121は、データアクセス情報(図5、図6参照)を記憶する。制御構造情報記憶部1122は、制御構造情報(図7参照)を記憶する。関係情報記憶部1123は、関係情報(図8、図9参照)を記憶する。それぞれの記憶部が記憶する情報の具体例については、後述する。 The analysis result storage unit 112 includes a data access information storage unit 1121, a control structure information storage unit 1122, and a relation information storage unit 1123. The data access information storage unit 1121 stores data access information (see FIGS. 5 and 6). The control structure information storage unit 1122 stores control structure information (see FIG. 7). The relationship information storage unit 1123 stores the relationship information (see FIGS. 8 and 9). A specific example of the information stored in each storage unit will be described later.

ルート情報記憶部113は、ルート情報(図10参照)を記憶する。ルート情報記憶部113は、ルート抽出部122が、解析結果に基づいて抽出したルート情報を記憶する。ルート情報の具体例については、後述する。 The route information storage unit 113 stores route information (see FIG. 10). The route information storage unit 113 stores the route information extracted by the route extraction unit 122 based on the analysis result. A specific example of the route information will be described later.

分析結果記憶部114は、対象となるシステムの解析結果と、ルート情報とに基づいて、システムがアクセスするデータを分析した結果である分析結果を記憶する。分析結果記憶部114は、データアクセス分析部123が、システムが使用するデータの分析結果を記憶する。また、分析結果は、必要に応じてデータアクセス分析部123が行うデータ分割の結果についても分析結果に含めて記憶する。 The analysis result storage unit 114 stores the analysis result which is the result of analyzing the data accessed by the system based on the analysis result of the target system and the route information. The analysis result storage unit 114 stores the analysis result of the data used by the system by the data access analysis unit 123. The analysis result also stores the result of data division performed by the data access analysis unit 123, if necessary.

以下、記憶部11が記憶するデータアクセス情報、制御構造情報、関係情報、ルート情報の一例について、図5〜図10を用いて説明する。 Hereinafter, an example of the data access information, the control structure information, the relationship information, and the route information stored in the storage unit 11 will be described with reference to FIGS.

図5は、本発明の第1実施形態に係るデータアクセス情報の一例を示す図である。
この図に示す一例では、データアクセス情報は、データを構成するテーブル又はファイルレベルでの、データとプログラムとの対応関係をCRUD図で示した情報である。なお、データアクセス情報の表現形式はCRUD図に限られない。
CRUD図は、データ(又はデータを構成するテーブル、ファイル)と、当該データがどのプログラムで作成(Create、図中では「C」で表示)、参照(Read、図中では「R」で表示)、更新(Update、図中では「U」で表示)、及び、削除(Delete、図中では「D」で表示)されるかということを対応付けて示した図である。以下では、作成、参照、更新、及び削除のいずれかの処理のことを「アクセス(アクセスする)」とも称する。
FIG. 5 is a diagram showing an example of data access information according to the first embodiment of the present invention.
In the example shown in this figure, the data access information is information in which a correspondence relationship between the data and the program is shown in a CRUD diagram at the table or file level forming the data. The expression format of the data access information is not limited to the CRUD diagram.
A CRUD diagram is data (or a table or file that constitutes the data) and in which program the data is created (Create, indicated by "C" in the figure), and referenced (Read, indicated by "R" in the figure). It is the figure which matched and showed whether it is updated (Update, is displayed by "U" in a figure), and is deleted (Delete, is displayed by "D" in a figure). In the following, any of the processes of creation, reference, update, and deletion is also referred to as “access”.

この図に示す一例では、データアクセス情報は、No.と、種別と、DB・ファイル名情報と、複数のプログラムとを対応付けた情報である。No.は、データを構成するテーブル又はファイルを識別するための識別子を示す情報である。種別は、データを構成する構成要素を示す情報である。構成要素は、例えばテーブルやファイルなど、データを含む1つのまとまりである。DB・ファイル名情報は、データを構成する構成要素を示す名称(ファイル名やデータベース名)を示す情報である。 In the example shown in this figure, the data access information is No. And the type, the DB/file name information, and a plurality of programs are associated with each other. No. Is information indicating an identifier for identifying a table or a file that constitutes data. The type is information indicating the constituent elements that make up the data. A component is a unit including data such as a table and a file. The DB/file name information is information indicating the name (file name or database name) indicating the constituent elements that make up the data.

この図に示す一例では、「No.」が“1”で、「種別」が“テーブル”で、「DB・ファイル名」が“テーブル1”に対応するテーブルに対して、「プログラム1」と「プログラム2」から参照されている(“R”の表示)ことを示す。また、「No.」が“2”で、「種別」が“テーブル”で、「DB・ファイル名」が“テーブル2”に対応するテーブルに対して、「プログラム3」からは作成、参照、更新が行われる(“CRU”の表示)ことを示す。 In the example shown in this figure, “No.” is “1”, “Type” is “Table”, and “DB/file name” is “Table 1”. Refers to "program 2" (display of "R"). In addition, for the table corresponding to “No.” is “2”, “Type” is “Table”, and “DB/file name” is “Table 2”, it is created and referenced from “Program 3”. It indicates that the update is performed (display of "CRU").

図6は、本発明の第1実施形態に係るデータアクセス情報の別の一例を示す図である。
この図に示す一例では、データアクセス情報は、データを構成するテーブル又はファイル中で定義されるデータ項目レベルでの、データとプログラムとの対応関係をCRUD図で示した情報である。なお、図5と同様に、データアクセス情報の表現形式はCRUD図に限られない。
FIG. 6 is a diagram showing another example of the data access information according to the first embodiment of the present invention.
In the example shown in this figure, the data access information is the information showing the correspondence relationship between the data and the program in the CRUD diagram at the data item level defined in the table or file constituting the data. Note that, as in FIG. 5, the expression format of the data access information is not limited to the CRUD diagram.

この図に示す一例では、データアクセス情報は、No.と、種別と、DB・ファイル名情報と、データ項目名と、複数のプログラムとを対応付けた情報である。ここで、No.は、データを構成するデータ項目であって、テーブル又はファイルにおいて定義されるデータ項目を識別するための識別子を示す情報である。データ項目名は、データ項目の名称を示す情報である。
この図に示す一例では、「No.」が“1”で、「種別」が“テーブル”で、「DB・ファイル名」が“テーブル1”で、「データ項目名」が“項目1”に対応するデータに対して、「サブプログラム4」から参照されている(“R”の表示)ことを示す。
In the example shown in this figure, the data access information is No. It is information in which a type, a DB/file name information, a data item name, and a plurality of programs are associated with each other. Here, No. Is information indicating a data item forming data and an identifier for identifying a data item defined in a table or a file. The data item name is information indicating the name of the data item.
In the example shown in this figure, "No." is "1", "Type" is "Table", "DB/file name" is "Table 1", and "Data item name" is "Item 1". It indicates that the corresponding data is referred to by the “subprogram 4” (display of “R”).

図7は、本発明の第1実施形態に係る制御構造情報の一例を示す図である。
この図に示す一例は、1つのプログラムの制御構造情報をフローチャートで示したものである。この図に示す一例では、プログラムを開始すると、最初にプログラムは“PROG1”で識別される他のプログラムを呼び出す(“CALL PROG1”)。続いて、プログラムは何らかの条件によって分岐を行う(“IF”)。1つ目の分岐においては、プログラムは、“PROG2”で識別される他のプログラムを呼び出す(“CALL PROG2”)。その後プログラムは終了する。一方、もう1つの分岐においては、プログラムは、“AAA”というデータを“BBB”という変数に代入する(“MOVE AAA TO BBB”)。続いて、プログラムは変数“BBB”のデータを書き込む(“WRITE BBB”)。この時、“BBB”を書き込む先のデータが更新される。その後、プログラムは終了する。
FIG. 7 is a diagram showing an example of control structure information according to the first embodiment of the present invention.
The example shown in this figure is a flow chart showing the control structure information of one program. In the example shown in this figure, when a program is started, the program first calls another program identified by "PROG1"("CALLPROG1"). Then, the program branches according to some condition (“IF”). In the first branch, the program calls another program identified by "PROG2"("CALLPROG2"). Then the program ends. On the other hand, in the other branch, the program substitutes the data "AAA" into the variable "BBB"("MOVE AAA TO BBB"). Then, the program writes the data of the variable "BBB"("WRITEBBB"). At this time, the data to which "BBB" is written is updated. After that, the program ends.

図8は、本発明の第1実施形態に係る関係情報の一例を示す図である。
この図に示す一例では、プログラム間の呼び出し関係を示す関係情報の一例を示す。この図に示す一例において、関係情報は、No.と、呼出元プログラムと、呼出先プログラムと、引数とを関連付けた情報である。No.は関係情報を識別するための識別子を示す情報である。呼出元プログラムは、他のプログラムを呼び出すプログラムを示す。呼出先プログラムは、他のプログラムから呼び出されるプログラムを示す。引数は、呼出元プログラムから、呼出先プログラムを呼び出す場合に、呼出先プログラムを実行するために必要な情報をやりとりするための変数を示す情報である。なお、引数は複数あってもよいし、なくてもよい。
FIG. 8 is a diagram showing an example of relationship information according to the first embodiment of the present invention.
In the example shown in this figure, an example of relation information indicating a calling relation between programs is shown. In the example shown in this figure, the relationship information is No. Is information that associates a call source program, a call destination program, and an argument. No. Is information indicating an identifier for identifying the related information. The call source program indicates a program that calls another program. The called program indicates a program called from another program. The argument is information indicating a variable for exchanging information necessary for executing the callee program from the caller program when the callee program is called. There may be a plurality of arguments or no arguments.

この図に示す一例では、「No.」が“1”の関係情報は、「呼出元プログラム」が“プログラム1”であり、「呼出先プログラム」が“プログラム4”であり、「引数」が“PRAM1”であることを示す。 In the example shown in this figure, the relational information of "1" in "No." is that "caller program" is "program 1", "callee program" is "program 4", and "argument" is Indicates that it is "PRAM1".

図9は、本発明の第1実施形態に係る関係情報の別の一例を示す図である。
この図に示す一例では、プログラムが他の情報を引用している場合の引用関係を示す関係情報の一例を示す。この図に示す一例において、関係情報は、No.と、引用元資産と、引用先資産と、引用先資産種別とを関連付けた情報である。No.は関係情報を識別するための識別子を示す情報である。引用元資産は、他の情報を引用する資産情報を示す。引用先資産は、引用元資産が他の情報を引用する場合の引用形式を示す情報である。また引用先資産種別は、引用先の資産情報を示す情報である。
FIG. 9 is a diagram showing another example of the relationship information according to the first embodiment of the present invention.
In the example shown in this figure, an example of relation information indicating a quoting relation when a program cites other information is shown. In the example shown in this figure, the relationship information is No. And the reference source asset, the reference destination asset, and the reference destination asset type. No. Is information indicating an identifier for identifying the related information. The quote source asset indicates asset information that cites other information. The citation destination asset is information indicating a citation format when the citation source asset cites other information. The citation destination asset type is information indicating the citation destination asset information.

この図に示す一例では、「No.」が“1”の関係情報は、「引用先資産」が“プログラムA”であり、「引用先資産」が“COPY1”であり、「引用先資産種別」が“登録集原文”であることを示す。この例では、COPY構文を用いて、登録集原文に含まれているデータの定義を引用することを示す。また、「No.」が“2”の関係情報は、「引用先資産」が“プログラムA”であり、「引用先資産」が“MACRO1”であり、「引用先資産種別」が“マクロ”であることを示す。この例では、MACRO構文を用いて、マクロに含まれている関数の定義を引用することを示す。 In the example shown in this figure, the relational information with "No." of "1" is that the "quoted asset" is "program A", the "cited asset" is "COPY1", and the "cited asset type". Indicates that it is a “registration original text”. This example shows that the COPY syntax is used to cite the definition of the data contained in the library text. Further, regarding the related information of “No.” of “2”, the “quoted asset” is “program A”, the “cited asset” is “MACRO1”, and the “cited asset type” is “macro”. Is shown. In this example, the MACRO syntax is used to refer to the definition of the function contained in the macro.

図10は、本発明の第1実施形態に係るルート情報の一例を示す図である。
この図に示す一例では、No.と、起点プログラムと、関係先種別と関係先名との組み合わせとを対応付けた情報である。ルート情報には複数の上記組み合わせが対応する場合がある。
ここで、No.はルート情報を識別する識別子を示す情報である。起点プログラムとは、他のプログラムから呼び出されないプログラムを示す。関係先種別は、呼び出し先又はアクセス先の種類を示す情報である。関係先種別は、例えば、プログラム、データベース、ファイルなどである。関係先名は、呼び出し先又はアクセス先のプログラム、データベース、ファイルなどの名称を示す情報である。
FIG. 10 is a diagram showing an example of route information according to the first embodiment of the present invention.
In the example shown in this figure, No. And the origin program and the combination of the relationship destination type and the relationship destination name are associated with each other. A plurality of the above combinations may correspond to the route information.
Here, No. Is information indicating an identifier for identifying route information. The starting program is a program that is not called by another program. The relationship destination type is information indicating the type of the call destination or the access destination. The related party type is, for example, a program, a database, a file, or the like. The relationship destination name is information indicating the name of the program, database, file, etc. of the callee or accessee.

あるプログラムから呼び出されるプログラムを下位のプログラムとも称する。また、あるプログラムを呼び出すプログラムを上位のプログラムとも称する。この場合、起点プログラムには上位のプログラムが存在しない。また、関係先種別1と関係先名1の組は起点プログラムから直接呼び出されるプログラム、又は直接アクセスされるデータベース、ファイルなどである。関係先種別2と関係先名2の組は、更に下位のプログラム、データベース、ファイルなどであり、関係先種別1と関係先名1の組から呼び出される又はアクセスされる。すなわち、図10に示す情報は、同じ列を左から右へたどることによって、呼び出し元と、呼び出し先(アクセス先)とが順番に示される。 A program called from a certain program is also called a subordinate program. A program that calls a certain program is also called a higher-level program. In this case, there is no upper-level program in the starting point program. Further, the set of the relationship destination type 1 and the relationship destination name 1 is a program directly called from the starting point program, or a database or file directly accessed. The set of the relationship destination type 2 and the relationship destination name 2 is a program, database, file, etc. of a lower level, and is called or accessed by the combination of the relationship destination type 1 and the relationship destination name 1. That is, in the information shown in FIG. 10, the call source and the call destination (access destination) are sequentially shown by tracing the same column from left to right.

この図に示す一例では、「No.」が“1”のルート情報は、「起点プログラム」が“プログラムA”であり、起点プログラムから呼び出される「関係先種別1」が“プログラム”で、「関係先名」が“サブプログラム1”である。すなわち、“プログラムA”の内部で、“サブプログラム1”という名称の下位の“プログラム”が呼び出されることを示す。
また、この図に示す一例では、「No.」が“2”のルート情報は、「起点プログラム」が“プログラムA”であり、起点プログラムから呼び出される「関係先種別1」が“プログラム”で、「関係先名」が“サブプログラム2”である。更に、「関係先種別2」が“データベース”で「関係先名」が“テーブル1”である。すなわち、“プログラムA”の内部で、“サブプログラム2”という名称の下位の“プログラム”が呼び出されることを示す。また、“サブプログラム2”の内部で、“テーブル1”という名称の下位の“データベース”がアクセスされることを示す。
In the example shown in this figure, the route information with "1" as "No." is "Program A" as "Starting program", "Relationship type 1" called from the starting program is "Program", and " The "related party name" is "subprogram 1". That is, it indicates that the subordinate “program” named “subprogram 1” is called inside the “program A”.
Further, in the example shown in this figure, the route information of "No." is "2", the "starting program" is "program A", and the "relationship type 1" called from the starting program is "program". , "Relationship name" is "subprogram 2". Furthermore, the “relationship destination type 2” is “database” and the “relationship destination name” is “table 1”. That is, it indicates that the subordinate “program” named “subprogram 2” is called inside the “program A”. It also indicates that the subordinate “database” named “table 1” is accessed inside the “subprogram 2”.

<情報処理装置の処理部>
図4に戻って、処理部12について、詳細を説明する。処理部12は、解析部121、ルート抽出部122、及び、データアクセス分析部123を含んで構成される。
<Processing unit of information processing device>
Returning to FIG. 4, details of the processing unit 12 will be described. The processing unit 12 includes an analysis unit 121, a route extraction unit 122, and a data access analysis unit 123.

解析部121は、資産情報記憶部111から資産情報を取得し、解析を行う。ここで、解析とは、資産情報に含まれるプログラムで使用されるプログラム言語に基づいて、そのプログラム言語の構文に従った解析を行うことを示す。解析部121は、解析結果として、データアクセス情報、制御構造情報、及び、関係情報を、データアクセス情報記憶部1121、制御構造情報記憶部1122、及び、関係情報記憶部1123にそれぞれ記憶させる。 The analysis unit 121 acquires asset information from the asset information storage unit 111 and analyzes it. Here, the analysis means that analysis is performed according to the syntax of the program language based on the program language used in the program included in the asset information. The analysis unit 121 stores the data access information, the control structure information, and the relation information in the data access information storage unit 1121, the control structure information storage unit 1122, and the relation information storage unit 1123, respectively, as the analysis result.

ルート抽出部122は、解析結果記憶部112から解析結果を取得し、取得した情報に基づいて、プログラムの処理フローを抽出する。処理フローとは、起点プログラムから呼び出される一連のプログラム、又はアクセスされるデータなどを呼び出される順、アクセスされる順に示した場合の、当該順を示す。ルート抽出部122は、抽出した処理フローをルート情報として、ルート情報記憶部113に記憶させる。ルート抽出部122の処理の詳細は後述する。 The route extraction unit 122 acquires the analysis result from the analysis result storage unit 112 and extracts the processing flow of the program based on the acquired information. The processing flow refers to a series of programs called from the starting point program, or the order in which the accessed data and the like are shown in the called order and the accessed order. The route extraction unit 122 stores the extracted processing flow as route information in the route information storage unit 113. Details of the process of the route extraction unit 122 will be described later.

データアクセス分析部123は、データアクセス情報記憶部1121及びルート情報記憶部113から、データアクセス情報及びルート情報をそれぞれ取得し、取得した情報に基づいて、処理フローに属するデータを判定する。また、データアクセス分析部123は、判定結果に基づいてデータベースやファイルを分割する。ここで、処理フローに属するデータとは、処理フローに含まれるプログラムから呼び出されるデータを示す。データアクセス分析部123は、判定結果及び分割結果(以下、「分析結果」とも称する)を分析結果記憶部114に記憶させる。データアクセス分析部123の処理の詳細は後述する。 The data access analysis unit 123 acquires the data access information and the route information from the data access information storage unit 1121 and the route information storage unit 113, respectively, and determines the data belonging to the processing flow based on the acquired information. Further, the data access analysis unit 123 divides the database or file based on the determination result. Here, the data belonging to the processing flow indicates data called from a program included in the processing flow. The data access analysis unit 123 stores the determination result and the division result (hereinafter, also referred to as “analysis result”) in the analysis result storage unit 114. Details of the processing of the data access analysis unit 123 will be described later.

<情報処理装置の動作>
図11は、本発明の第1実施形態に係るルート抽出部122の処理の一例を示すフローチャートである。
<Operation of information processing device>
FIG. 11 is a flowchart showing an example of processing of the route extraction unit 122 according to the first embodiment of the present invention.

まず、ルート抽出部122は、関係情報記憶部1123から関係情報を取得する。ルート抽出部122は、取得した関係情報に基づき、プログラムのうち他のプログラムから呼び出されていないプログラムを抽出する(ステップS100)。具体的には、ルート抽出部122は、プログラム間の呼び出し関係を示す関係情報(図8)の呼出元プログラムに含まれ、呼出先プログラムに含まれないプログラムを、他のプログラムから呼び出されないプログラムとして抽出する。ルート抽出部122は抽出すると処理をステップS101に進める。 First, the route extraction unit 122 acquires relationship information from the relationship information storage unit 1123. The route extraction unit 122 extracts a program that is not called from another program among the programs based on the acquired relationship information (step S100). Specifically, the route extraction unit 122 includes a program that is included in the caller program of the relationship information (FIG. 8) indicating the call relationship between the programs and is not included in the callee program and is not called by another program. To extract. After extracting, the route extraction unit 122 advances the process to step S101.

ルート抽出部122は、抽出したプログラムを起点プログラムとし、当該プログラムから呼び出されるプログラムや関数を再帰的に抽出する(ステップS101)。具体的には、ルート抽出部122は、関係情報(図8、図9)を参照し、起点プログラムから呼び出されるプログラムや関数、引用される情報(以下、まとめて「プログラム」とも称する)などを抽出する。ルート抽出部122は、抽出したプログラムから更に呼び出されるプログラムを抽出する。このような処理を呼び出されるプログラムがなくなるまで再帰的に繰り返す。ルート抽出部122は抽出すると処理をステップS102に進める。 The route extraction unit 122 sets the extracted program as a starting point program and recursively extracts programs and functions called from the program (step S101). Specifically, the route extraction unit 122 refers to the relation information (FIGS. 8 and 9) and stores the programs and functions called from the starting program and the information (hereinafter collectively referred to as “program”). Extract. The route extraction unit 122 extracts a program that is further called from the extracted program. Such processing is repeated recursively until there are no called programs. After extracting the route, the route extracting unit 122 advances the process to step S102.

ルート抽出部122は、抽出した各プログラムからアクセスされるデータの情報を抽出する(ステップS102)。具体的には、ルート抽出部122は、データアクセス情報記憶部1121から、データアクセス情報を取得し、取得した情報と、抽出したプログラムとに基づいて、各プログラムからアクセスされるデータを抽出する。ルート抽出部122は抽出すると処理をステップS103に進める。 The route extraction unit 122 extracts information of data accessed from each extracted program (step S102). Specifically, the route extraction unit 122 acquires the data access information from the data access information storage unit 1121 and extracts the data accessed by each program based on the acquired information and the extracted program. After extracting the route, the route extracting unit 122 advances the process to step S103.

ルート抽出部122は、制御構造情報に基づいて、抽出した呼び出し先プログラムの呼び出し順及び、抽出したデータへのアクセス順を処理順に整理する(ステップS103)。具体的には、ルート抽出部122は、制御構造情報記憶部1122から制御構造情報を取得し、取得した制御構造情報と、抽出したプログラム、データとに基づいて、処理順を取得する。ルート抽出部122は、処理順を取得すると、処理をステップS104に進める。 The route extraction unit 122 sorts out the calling order of the extracted call destination program and the access order to the extracted data in the processing order based on the control structure information (step S103). Specifically, the route extraction unit 122 acquires the control structure information from the control structure information storage unit 1122, and acquires the processing order based on the acquired control structure information and the extracted program and data. When acquiring the processing order, the route extracting unit 122 advances the processing to step S104.

ルート抽出部122は、取得した処理順に従って、各起点プログラムからの処理フローをルート情報としてルート情報記憶部113に記憶させる(ステップS104)。具体的には、ルート抽出部122は、処理順に基づいて、起点プログラムからの処理一覧を処理フローとする。ルート抽出部122は、各処理フローをルート情報として、ルート情報記憶部113に記憶させる。ルート情報は、例えば、処理フローを表現する構造として、繋がりの情報をもったXML(Extensible Markup Language)形式、バイナリ形式などで記述される。ルート抽出部122は、以上で、ルート抽出の処理を終了する。 The route extraction unit 122 stores the processing flow from each starting point program in the route information storage unit 113 as route information according to the acquired processing order (step S104). Specifically, the route extraction unit 122 sets a processing list from the starting point program as a processing flow based on the processing order. The route extraction unit 122 stores each processing flow in the route information storage unit 113 as route information. The route information is described in, for example, an XML (Extensible Markup Language) format having connection information, a binary format, or the like as a structure expressing a processing flow. The route extraction unit 122 thus ends the route extraction process.

図12は、本発明の第1実施形態に係るデータアクセス分析部123の処理の一例を示すフローチャートである。 FIG. 12 is a flowchart showing an example of processing of the data access analysis unit 123 according to the first embodiment of the present invention.

まず、データアクセス分析部123は、処理フロー間で共有しているデータを抽出する(ステップS200)。具体的には、まずデータアクセス分析部123は、ルート情報記憶部113からルート情報を取得する。データアクセス分析部123は、取得したルート情報に基づいて、複数のルートでアクセスされているデータの情報を抽出する。抽出すると、データアクセス分析部123は、処理をステップS201に進める。 First, the data access analysis unit 123 extracts the data shared between the processing flows (step S200). Specifically, first, the data access analysis unit 123 acquires route information from the route information storage unit 113. The data access analysis unit 123 extracts information of data accessed by a plurality of routes based on the acquired route information. After extracting, the data access analysis unit 123 advances the process to step S201.

データアクセス分析部123は、共有しているデータのアクセスの種類を取得し、アクセスの種類がファイル又はテーブルの粒度で異なるか否かを判定する(ステップS201)。アクセスの種類は、具体的には作成(C)、参照(R)、更新(U)、削除(D)である。「ファイル又はテーブルの粒度で異なる」とは、共有しているデータにアクセスしている複数の処理フローに含まれるプログラムについて、以下の2条件の両方を満たす場合である。1つ目の条件は、ある1つの処理フローからのアクセスは、作成、更新、削除(これらをまとめて「更新系」とも称する)を含むことである。この処理フローからのアクセスには、参照を含んでもよい。2つ目の条件は、共有しているデータにアクセスしている処理フローであって、他の全ての処理フローからのアクセスは、参照のみであることである。「ファイル又はテーブルの粒度が異ならない」とは上記以外の場合を示す。 The data access analysis unit 123 acquires the access type of the shared data and determines whether or not the access type differs depending on the granularity of the file or table (step S201). The types of access are specifically creation (C), reference (R), update (U), and deletion (D). "Different in the granularity of the file or table" means that the programs included in the plurality of processing flows accessing the shared data satisfy both of the following two conditions. The first condition is that access from a certain process flow includes creation, update, and deletion (collectively these are also referred to as “update system”). The access from this processing flow may include a reference. The second condition is that the processing flow is accessing the shared data, and access from all other processing flows is reference only. "The granularity of the file or table does not differ" indicates cases other than the above.

データアクセス分析部123は、上記の2条件の両方を満たす場合、ファイル又はテーブルの粒度でデータアクセスが異なると判定し(ステップS201:YES)、処理をステップS202に進める。一方、データアクセス分析部123は、上記の2条件のどちらかを満たさない場合、ファイル又はテーブルの粒度でデータアクセスが異ならないと判定し(ステップS201:NO)、処理をステップS203に進める。 When both of the above two conditions are satisfied, the data access analysis unit 123 determines that the data access differs depending on the granularity of the file or table (step S201: YES), and advances the process to step S202. On the other hand, when either of the above two conditions is not satisfied, the data access analysis unit 123 determines that the data access does not differ depending on the granularity of the file or table (step S201: NO), and the process proceeds to step S203.

具体的な例を、図5、図10を用いて説明する。
図10におけるNo.“2”とNo.“4”の場合、この2つの処理フローは、起点プログラムがそれぞれ“A”と“B”である。そのため、この2つの処理フローは、異なる処理フローである。そして、それぞれが、2つ目のアクセス先として、“テーブル3”の“データベース”を参照している。そのため、データアクセス分析部123は、“テーブル3”を共有しているデータであると判定する。また、データアクセス分析部123は、このデータにアクセスするプログラムを、関係先名1を参照することによって取得する。すなわち、データアクセス分析部123は“サブプログラム2”と“サブプログラム3”から共有データである“テーブル3”にアクセスされていることを取得する。
A specific example will be described with reference to FIGS.
No. in FIG. "2" and No. In the case of "4", in these two processing flows, the starting point programs are "A" and "B", respectively. Therefore, the two processing flows are different processing flows. Then, each refers to the “database” of “table 3” as the second access destination. Therefore, the data access analysis unit 123 determines that the data is “table 3” in common. Further, the data access analysis unit 123 acquires the program for accessing this data by referring to the relationship destination name 1. That is, the data access analysis unit 123 acquires that the "table 3" that is the shared data is accessed from the "subprogram 2" and the "subprogram 3".

続いて、データアクセス分析部123は、図5を参照し、アクセスの種類がテーブルの粒度で異なるか否かを判定する。図5のNo.“3”には、テーブル3にはサブプログラム2からは参照(R)のみのアクセスが行われ、サブプログラム3からは作成、参照、更新、削除(CRUD)のアクセスが行われることが示されている。データアクセス分析部123は、この情報を取得し、プログラムAを起点プログラムとする処理フローは、参照のみ(更新系でない)であり、プログラムBを起点プログラムとする処理フローは、更新系であることを取得する。この場合、データアクセス分析部123は、ファイル又はテーブルの粒度が異なると判定する。 Subsequently, the data access analysis unit 123 refers to FIG. 5 and determines whether or not the type of access differs depending on the granularity of the table. No. 1 in FIG. “3” indicates that the table 3 is accessed only by reference (R) from the subprogram 2, and the subprogram 3 is accessed by creation, reference, update, and deletion (CRUD). ing. The data access analysis unit 123 acquires this information, and the processing flow using the program A as the starting point program is reference only (not the updating type), and the processing flow using the program B as the starting point program is the updating type. To get In this case, the data access analysis unit 123 determines that the granularity of the file or table is different.

データアクセス分析部123は、ファイル・テーブル粒度でアクセス種類の異なるデータを更新系の処理フローに帰属すると判定する(ステップS202)。また、この場合、当該データにアクセスするその他の処理フローについては、当該データへのアクセスを、更新系の処理フローへの問い合わせという形とする。マイクロサービス化した場合には、更新系の処理フローからなるマイクロサービスと、他の個々の処理フローからなるマイクロサービスとは当該問い合わせの介する疎結合とされる。データアクセス分析部123は、帰属処理を終えると、処理をステップS206に進める。
上記の図5、図10の例では、テーブル3は、プログラムBを起点とする処理フローに帰属する。プログラムAを起点とする処理フローはこの処理フローへ問い合わせる形となる。
The data access analysis unit 123 determines that data having different access types depending on the file/table granularity belongs to the update processing flow (step S202). Further, in this case, for other processing flows for accessing the data, the access to the data is in the form of an inquiry to the processing flow of the update system. In the case of being made into a micro service, the micro service including the update process flow and the micro service including other individual process flows are loosely coupled through the inquiry. After finishing the attribution process, the data access analysis unit 123 advances the process to step S206.
In the examples of FIGS. 5 and 10 described above, the table 3 belongs to the process flow starting from the program B. The processing flow starting from the program A is an inquiry form to this processing flow.

ファイル・テーブル粒度でデータアクセスが異ならない場合は、データ項目の粒度でデータアクセスが異なるか否かを判定する(ステップS204)。データ項目の場合、「データ項目の粒度でデータアクセスが異なる」とは、共有しているデータにアクセスしている複数の処理フローに含まれるプログラムについて、以下の2条件のどちらかを満たすか場合である。1つ目の条件は、複数の処理フローから同一のデータ項目にアクセスがあって、ある1つの処理フローから当該データ項目へのアクセスは更新系であり、他の全ての処理フローから当該データ項目へのアクセスは参照のみであることである。もう1つの条件は、あるデータ項目へのアクセスが単一の処理フローのみから行われることである。 If the data access does not differ depending on the file/table granularity, it is determined whether the data access differs depending on the granularity of the data item (step S204). In the case of a data item, "data access differs depending on the granularity of the data item" means that one of the following two conditions is satisfied for programs included in multiple processing flows that are accessing shared data. Is. The first condition is that the same data item is accessed from multiple process flows, access to the data item from a certain process flow is an update type, and the data item is accessed from all other process flows. Access to is for reference only. Another condition is that an access to a data item can only be made from a single process flow.

データアクセス分析部123は、上記の2条件のどちらか満たす場合、データ項目の粒度でデータアクセスが異なると判定し(ステップS203:YES)、処理をステップS204に進める。一方、データアクセス分析部123は、上記の2条件のどちらも満たさない場合、データ項目の粒度でデータアクセスが異ならないと判定し(ステップS201:NO)、処理をステップS205に進める。 If either of the above two conditions is satisfied, the data access analysis unit 123 determines that the data access differs depending on the granularity of the data item (step S203: YES), and advances the process to step S204. On the other hand, when neither of the above two conditions is satisfied, the data access analysis unit 123 determines that the data access does not differ depending on the granularity of the data item (step S201: NO), and the process proceeds to step S205.

具体的な例を、図6、図10を用いて説明する。
図10におけるNo.“6”とNo.“7”の場合、この2つの処理フローは、起点プログラムがそれぞれ“D”と“E”である。そのため、この2つの処理フローは、異なる処理フローである。そして、それぞれが、2つ目のアクセス先として、“テーブル4”の“データベース”を参照している。そのため、データアクセス分析部123は、“テーブル4”を共有しているデータであると判定する。また、データアクセス分析部123は、このデータにアクセスするプログラムを、関係先名1を参照することによって取得する。すなわち、データアクセス分析部123は“サブプログラム4”と“サブプログラム5”から共有データである“テーブル4”にアクセスされていることを取得する。また、データアクセス分析部123は、データを構成するテーブルの粒度でデータアクセスが異ならないと判定したものとする。
A specific example will be described with reference to FIGS.
No. in FIG. “6” and No. In the case of "7", in these two processing flows, the starting point programs are "D" and "E", respectively. Therefore, the two processing flows are different processing flows. Then, each refers to the “database” of “table 4” as the second access destination. Therefore, the data access analysis unit 123 determines that the data is “table 4” in common. Further, the data access analysis unit 123 acquires the program for accessing this data by referring to the relationship destination name 1. That is, the data access analysis unit 123 acquires that the "table 4" that is the shared data is accessed from the "subprogram 4" and the "subprogram 5". It is also assumed that the data access analysis unit 123 determines that the data access does not differ depending on the granularity of the tables forming the data.

続いて、データアクセス分析部123は、図6を参照し、アクセスの種類がデータ項目の粒度で異なるか否かを判定する。図6を参照すると、“項目1”及び“項目2”については、サブプログラム4から参照(R)されているのに対し、サブプログラム5からはアクセスされていない。また、“項目3”、“項目4”、“項目5”については、サブプログラム4からはアクセスされていないのに対し、サブプログラム5からは参照(R)されている。データアクセス分析部123は、上述した情報を取得し、それぞれのデータ項目にはどちらかの処理フローからしかアクセスされていないため、上述した2つ目の条件を満たすと判定する。 Subsequently, the data access analysis unit 123 refers to FIG. 6 and determines whether or not the types of access differ depending on the granularity of the data item. Referring to FIG. 6, “item 1” and “item 2” are referenced (R) from the subprogram 4, but not accessed from the subprogram 5. Further, "item 3," "item 4," and "item 5" are not accessed by the subprogram 4, but are referenced (R) by the subprogram 5. The data access analysis unit 123 acquires the above-mentioned information and determines that the above-mentioned second condition is satisfied because each data item is accessed only from either processing flow.

データアクセス分析部123は、データ項目の粒度でアクセス種類の異なるデータに基づいて、テーブルやファイルを分割する(ステップS204)。具体的には、データアクセス分析部123は、データ項目の粒度でアクセス種類の異なるデータについて、複数の処理フローからアクセスされている場合は、当該データを更新系の処理フローに帰属すると判定する。また、この場合、当該データにアクセスするその他の処理フローについては、当該データへのアクセスを、更新系の処理フローへの問い合わせという形とする。また、データへのアクセスが単独の処理フローのみから行われる場合、データアクセス分析部123は、当該データをアクセスされる処理フローに帰属すると判定する。
続いて、データアクセス分析部123は、帰属した処理フローに応じて、データが含まれるテーブルやファイルを分割する。データアクセス分析部123は、帰属処理及び分割処理を終えると、処理をステップS206に進める。
The data access analysis unit 123 divides the table or file based on the data having different access types depending on the granularity of the data item (step S204). Specifically, the data access analysis unit 123 determines that, when data having different access types depending on the granularity of the data item is accessed from a plurality of processing flows, the data belongs to the processing flow of the update system. Further, in this case, for other processing flows for accessing the data, the access to the data is in the form of an inquiry to the processing flow of the update system. Further, when the data is accessed only from a single processing flow, the data access analysis unit 123 determines that the data belongs to the accessed processing flow.
Subsequently, the data access analysis unit 123 divides the table or file containing the data according to the assigned processing flow. After finishing the belonging process and the division process, the data access analysis unit 123 advances the process to step S206.

上記の図6、図10の例では、テーブル4のうち、項目1と項目2のデータは、プログラムDを起点とする処理フローに帰属し、項目3、項目4、項目5のデータは、プログラムEを起点とする処理フローに帰属する。また、テーブル4は、項目1及び項目2のデータを含むサブテーブル41と、項目3、項目4、項目5のデータを含むサブテーブル42とに分割される。 In the examples of FIGS. 6 and 10 above, in the table 4, the data of item 1 and item 2 belong to the process flow starting from the program D, and the data of item 3, item 4, and item 5 are programs. It belongs to the processing flow starting from E. Further, the table 4 is divided into a sub table 41 including the data of item 1 and item 2, and a sub table 42 including the data of item 3, item 4, and item 5.

データアクセス分析部123は、データ項目の粒度でもアクセス種類が異ならない場合、データを共有するルートをまとめて1つのルートにする(ステップS205)。この場合、起点となるプログラムは複数となる。データアクセス分析部123は、ルートをまとめると、処理をステップS206に進める。 If the access types do not differ depending on the granularity of the data items, the data access analysis unit 123 collects routes for sharing data into one route (step S205). In this case, there are a plurality of starting programs. After summarizing the routes, the data access analysis unit 123 advances the process to step S206.

データアクセス分析部123は、共有しているデータがまだあるか否かを判定する(ステップS206)。データアクセス分析部123は、ステップS200で抽出した複数処理フロー間で共有しているデータのうち、上述した処理で共有が解消されていないデータがまだある場合、共有しているデータがまだあると判定し(ステップS206:YES)、処理をステップS201に戻す。データアクセス分析部123は、上述した処理によって、全てのデータの共有状態が解消された場合、共有しているデータはないと判定し(ステップS206:NO)、処理をステップS207に進める。 The data access analysis unit 123 determines whether or not the shared data still exists (step S206). The data access analysis unit 123 determines that there is still shared data if there is still data that has not been resolved by the above-mentioned processing among the data shared among the plurality of processing flows extracted in step S200. The determination is made (step S206: YES), and the process is returned to step S201. The data access analysis unit 123 determines that there is no shared data when the shared state of all data is resolved by the above-described processing (step S206: NO), and advances the processing to step S207.

データアクセス分析部123は、分析結果を分析結果記憶部114に出力し、処理を終了する。 The data access analysis unit 123 outputs the analysis result to the analysis result storage unit 114, and ends the process.

以上説明したように、情報処理装置1は、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報(資産情報)と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合(データベースやファイル)と、に基づく前記プログラムの解析の結果である解析結果(データアクセス情報、制御構造情報、関係情報)に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部(ルート抽出部122)と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フロー(帰属先)を決定する決定部(データアクセス分析部123)と、を備える。 As described above, the information processing apparatus 1 includes information (asset information) describing the processing definitions of a plurality of programs for realizing software, data accessed by the programs, and a data set including the data ( Database or file), and a program that is not called from another of the plurality of programs based on the analysis result (data access information, control structure information, relationship information) that is the result of analysis of the program based on Information indicating a certain starting program, information indicating a sub-program that is the program directly or indirectly called from the starting program, and information about the data set accessed from the starting program and the sub-program, Based on the route information and the analysis result, the route processing unit (route extraction unit 122) having the information in which the call order or the access order is associated as the route information indicating the processing flow from the starting point program. For a shared data set that is the data set included in the processing flow, a determination unit (data access) that determines, among a plurality of the processing flows, a belonging process flow (belonging destination) that is a processing flow to which the shared data set belongs. And an analysis unit 123).

これにより、情報処理装置1は、ソフトウェア(業務システム)を実現するための複数のプログラムが、データを含むデータベースやファイルに対してアクセスする場合の、アクセス方法に基づいて、起点となるプログラムから呼び出される一連のプログラムを含む複数の処理フローのうち、どの処理フローに帰属させればよいかを判定することができる。そのため、マイクロサービス化する際に、ソフトウェアの有識者(又は業務の有識者)の手を煩わせることなく、処理内容に応じてデータを帰属先ごとに効率的に分割することができる。 As a result, the information processing device 1 is called from the starting program based on the access method when a plurality of programs for realizing software (business system) access a database or file containing data. It is possible to determine which of the plurality of processing flows including the series of programs to be assigned to which processing flow should be assigned. Therefore, it is possible to efficiently divide the data for each belonging destination according to the processing content without annoying the hand of a software expert (or a business expert) when converting into a micro service.

また、情報処理装置1の決定部(データアクセス分析部123)は、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類に基づいて、前記帰属処理フローを決定する。
これにより、同一のデータベース又はファイルに複数の処理フローからアクセスされている場合でも、1つの処理フローに当該データを帰属させ、他の処理フローからは当該処理フローへの問い合わせの形にすることで、より細かい粒度でのマイクロサービス化に向けて、データを処理内容に応じて効率的に分割することができる。
In addition, the determining unit (data access analyzing unit 123) of the information processing device 1 is configured to perform the above-mentioned operation based on the type of access when the starting program or the sub-program accesses data included in the shared data set. Determine attribution process flow.
As a result, even if the same database or file is accessed from multiple process flows, the data can be attributed to one process flow and the process flow can be inquired from other process flows. , It is possible to efficiently divide data according to the processing content, toward microservices with a finer granularity.

また、情報処理装置1の決定部(データアクセス分析部123)は、前記アクセスを行う複数の前記処理フローのうち、1つの処理フローからの前記アクセスの種類が前記共有データ集合に含まれるデータの変更であり、残りの前記処理フローからの前記アクセスの種類が前記共有データ集合に含まれるデータの取得である場合に、前記アクセスの種類が前記共有データ集合に含まれるデータの変更である前記処理フローを前記帰属処理フローに決定する。
これにより、帰属させる処理フローはデータの変更が行われる処理フローにすることで、他の処理フローからの当該データへのアクセスを、変更の処理を含まないものにすることで処理フロー間の結合を疎結合にすることが可能になる。従って、マイクロサービス化に向けて、よりマイクロサービス間の結合が疎結合になるように、処理内容に応じてデータの分割を効率的に行うことができる。
In addition, the determination unit (data access analysis unit 123) of the information processing device 1 determines whether the type of access from one processing flow out of the plurality of processing flows for performing the access includes data included in the shared data set. The change, which is a change, when the access type from the remaining processing flow is an acquisition of data included in the shared data set, the access type is a change in data included in the shared data set The flow is determined to be the above-mentioned attribution processing flow.
As a result, the process flow to be attributed is made to be a process flow in which data is changed, so that access to the data from other process flows does not include the change process so that the process flows are combined. Can be loosely coupled. Therefore, in order to realize microservices, data can be efficiently divided according to the processing content so that the microservices are more loosely coupled.

また、情報処理装置1の決定部(データアクセス分析部123)は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを1つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する。
これにより、複数の処理フローからデータのアクセスが行われていて、どちらの処理フローにも属することが好ましくない場合には、分割が行えない処理フローをまとめた1つの処理フローとすることで、まとめない場合にはソフトウェアの有識者(又は業務の有識者)を要する解析を行わずに済ませることができる。従って、マイクロサービス化に向けて、データを処理内容に応じて効率的に分割することができる。
In addition, the determination unit (data access analysis unit 123) of the information processing device 1 determines whether or not two or more of the process flows that access the data included in the shared data set have the access flow. If the types are all changes of the data or both are acquisition of the data, and the data to be accessed is the same data included in the shared data set, the processing flow is changed. The integrated processing flows are combined into one integrated processing flow, and the belonging processing flow is determined.
As a result, when data is accessed from a plurality of process flows and it is not preferable that the process flows belong to either process flow, the process flows that cannot be divided are combined into one process flow. If not summarized, it is not necessary to perform analysis that requires a software expert (or a business expert). Therefore, it is possible to efficiently divide the data according to the processing content toward the microservice.

また、情報処理装置1の決定部(データアクセス分析部123)は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する。
これにより、複数の処理フローからアクセスされているデータベースやファイルについて、データベースやファイルに含まれるデータ項目の粒度の観点から見た場合には、複数の処理フローの各々が別々のデータ項目にアクセスしている場合、アクセスしている項目毎にデータベースやファイルを分割することによって、処理フローをより細かい粒度で作成することができる。従って、より細かい粒度でのマイクロサービス化に向けて、データを処理内容に応じて効率的に分割することができる。
In addition, the determination unit (data access analysis unit 123) of the information processing device 1 determines whether or not two or more of the process flows that access the data included in the shared data set have the access flow. When the types are all changes of the data or both are the acquisition of the data, and the data to be accessed is different data included in the shared data set, the shared data set is One of the processing flows is divided into sets of data to be accessed, and a divided data set that is a set of divided data is divided into the processing flow of accessing the data included in the divided data set. It is decided to the above-mentioned belonging processing flow.
As a result, for databases and files that are accessed from multiple process flows, from the perspective of the granularity of the data items contained in the databases and files, each of the multiple process flows can access different data items. In this case, the processing flow can be created with finer granularity by dividing the database or file for each item being accessed. Therefore, it is possible to efficiently divide the data according to the processing content, toward the microservice with a finer granularity.

<第2実施形態>
以下、図面を参照して、本発明の第2実施形態について詳しく説明する。
本実施形態では、データの特徴を示す業務情報を考慮してデータ分割を行う場合の変形例について説明する。以降、第1実施形態と同様の構成には、同一の符号を付与してここでの説明を省略する。
<Second Embodiment>
Hereinafter, a second exemplary embodiment of the present invention will be described in detail with reference to the drawings.
In the present embodiment, a modified example in which data division is performed in consideration of business information indicating the characteristics of data will be described. Hereinafter, the same configurations as those in the first embodiment will be denoted by the same reference numerals and the description thereof will be omitted.

図13は、本発明の第2実施形態に係る情報処理装置1aの一例を示す概要ブロック図である。
情報処理装置1aは、記憶部11a、及び、処理部12aを含んで構成される。記憶部11aは、第1実施形態の記憶部11(図4)と比較して、業務情報記憶部115aが追加される点が異なる。以下、業務情報記憶部115aについて説明する。
FIG. 13 is a schematic block diagram showing an example of the information processing device 1a according to the second embodiment of the present invention.
The information processing device 1a includes a storage unit 11a and a processing unit 12a. The storage unit 11a differs from the storage unit 11 (FIG. 4) of the first embodiment in that a business information storage unit 115a is added. The business information storage unit 115a will be described below.

業務情報記憶部115aは、業務情報を記憶する。業務情報とは、業務システムで用いられるデータの特徴を示す情報である。業務システムで用いられるデータには、2つの種類に大別される。一つは、全業務で共通して用いられるマスタデータである。もう一つは各業務処理に固有のトランザクションデータである。マスタデータは変更頻度の低いデータであり、様々な業務から参照される。トランザクションデータは日々の業務で更新・参照されるデータであり、特定の業務からアクセスされる。業務情報はデータを含むファイル・テーブルがどちらのデータかを示す情報である。 The business information storage unit 115a stores business information. Business information is information indicating the characteristics of data used in a business system. Data used in business systems are roughly classified into two types. One is master data that is commonly used in all business. The other is transaction data unique to each business process. Master data is data that is changed less frequently and is referenced by various operations. Transaction data is data that is updated/referenced in daily work, and is accessed from a specific work. The business information is information indicating which data is in the file table including the data.

図14は、本発明の第2実施形態に係る業務情報の一例を示す図である。
この図に示す一例では、業務情報は、No.と、種別と、DB・ファイル名と、データタイプとを対応付けた情報である。No.は業務情報を識別するための識別子を示す情報である。データタイプは、DB・ファイル名に含まれるデータが、マスタデータであるか、トランザクションデータであるかを示す情報である。
この図に示す一例では、「No.」が“1”の業務情報は、「種別」が“テーブル”で、「DB・ファイル名」が“テーブル1”に含まれるデータの「データタイプ」が“マスタ”(マスタデータ)であることを示す。
FIG. 14 is a diagram showing an example of business information according to the second embodiment of the present invention.
In the example shown in this figure, the business information is No. And the type, the DB/file name, and the data type are associated with each other. No. Is information indicating an identifier for identifying business information. The data type is information indicating whether the data included in the DB/file name is master data or transaction data.
In the example shown in this figure, the business information having “No.” of “1” has the “type” of “table” and the “DB/file name” of “data type” of data included in “table 1”. Indicates "master" (master data).

図13に戻って、処理部12aは、第1実施形態の処理部12(図4)と比較して、データアクセス分析部123aの機能がデータアクセス分析部123と異なる。データアクセス分析部123aの基本的な機能は、データアクセス分析部123と同様である。以下、データアクセス分析部123aの機能のうち、データアクセス分析部123と異なる機能について説明する。 Returning to FIG. 13, the processing unit 12a is different from the processing unit 12 (FIG. 4) of the first embodiment in the function of the data access analysis unit 123a. The basic function of the data access analysis unit 123a is the same as that of the data access analysis unit 123. Hereinafter, among the functions of the data access analysis unit 123a, the functions different from those of the data access analysis unit 123 will be described.

データアクセス分析部123aは、業務情報にも基づいて、処理フローに属するデータを判定する。また、データアクセス分析部123aは、判定結果に基づいてデータベースやファイルを分割する。
データアクセス分析部123aは、データ項目の粒度でもデータアクセスが異ならない場合(図12のステップS203:NO)、共有されているデータを含むデータベースやファイルについて、業務情報の種類を取得する。具体的には、データアクセス分析部123aは、業務情報記憶部115aから業務情報を取得し、共有されているデータを含むデータベースやファイルがマスタデータであるか否かを判定する。
The data access analysis unit 123a determines the data belonging to the processing flow also based on the business information. Further, the data access analysis unit 123a divides the database or file based on the determination result.
When the data access does not differ even with the granularity of the data item (step S203: NO in FIG. 12), the data access analysis unit 123a acquires the type of business information regarding the database or file containing the shared data. Specifically, the data access analysis unit 123a acquires business information from the business information storage unit 115a and determines whether or not a database or file including shared data is master data.

データアクセス分析部123aは、共有されているデータがマスタデータである場合には、マスタデータへのアクセスを除外する。この場合、データアクセス分析部123aは、分析結果として、当該データへのアクセスについてはアクセス自体のサービス化するなど、マイクロサービス化とは異なる処理が必要であることを示す情報を出力する。また、データアクセス分析部123aは、マスタデータ以外のデータへのアクセスについて、第1実施形態と同様の処理を行う。 The data access analysis unit 123a excludes access to the master data when the shared data is the master data. In this case, the data access analysis unit 123a outputs, as the analysis result, information indicating that processing different from the microservice conversion, such as converting the access itself into a service, is required to access the data. In addition, the data access analysis unit 123a performs the same processing as that in the first embodiment regarding access to data other than the master data.

また、データアクセス分析部123aは、共有されているデータがトランザクションデータの場合には、データを共有するルートをまとめて1つのルートにする(図12のステップS205と同様の処理)。 Further, when the shared data is transaction data, the data access analysis unit 123a collects the routes sharing the data into one route (processing similar to step S205 in FIG. 12).

具体的な例を、図14、図15を用いて説明する。
図15は、本発明の第2実施形態に係る解析結果の一例を示す図である。図15の上段はデータアクセス情報記憶部1121が記憶するデータアクセス情報の一例を示す。また、図15の下段は、関係情報記憶部1123が記憶する関係情報の一例を示す。
A specific example will be described with reference to FIGS. 14 and 15.
FIG. 15 is a diagram showing an example of an analysis result according to the second embodiment of the present invention. The upper part of FIG. 15 shows an example of the data access information stored in the data access information storage unit 1121. The lower part of FIG. 15 shows an example of the relationship information stored in the relationship information storage unit 1123.

データアクセス分析部123aは、図15を参照して、テーブル1が多くの処理フローに含まれるプログラムからアクセスされていると判定する。図15に示す例では、テーブル1は、プログラムAを起点とする処理フローのサブプログラム2、プログラムBを起点とする処理フローのサブプログラム3、プログラムBを起点とする処理フローのサブプログラム5、プログラムCを起点とする処理フローのサブプログラム5及びサブプログラム51、プログラムDを起点とする処理フローのサブプログラム61及びサブプログラム6から呼び出されている。また、いずれのプログラムについても、テーブル1へのアクセスは参照(R)であり、テーブルの粒度ではデータ分割を行うことができない。また、同様にデータ項目の粒度でもデータ分割できないものとする。 With reference to FIG. 15, the data access analysis unit 123a determines that the table 1 is accessed by the programs included in many processing flows. In the example shown in FIG. 15, the table 1 has a sub-program 2 of a processing flow starting from the program A, a sub-program 3 of a processing flow starting from the program B, a sub-program 5 of a processing flow starting from the program B, It is called from the sub-program 5 and the sub-program 51 of the process flow starting from the program C, and the sub-program 61 and the sub-program 6 of the process flow starting from the program D. Further, in any of the programs, the access to the table 1 is a reference (R), and the data division cannot be performed with the granularity of the table. Similarly, the data cannot be divided even by the granularity of data items.

この場合、データアクセス分析部123aは、図14を参照し、テーブル1のデータタイプを取得する。図14に示す例では、テーブル1のデータタイプはマスタであり、テーブル1に含まれるデータがマスタデータであることを示す。データアクセス分析部123aは、この情報を取得し、テーブル1はマスタデータなのでマイクロサービス化に向けた処理を行わないと判定する。データアクセス分析部123aは、解析結果記憶部112から取得した情報から、テーブル1に含まれる情報を除外し、再度、処理フローに帰属するデータを判定する。また、データアクセス分析部123aは、判定結果に基づいてデータベースやファイルを分割する。 In this case, the data access analysis unit 123a acquires the data type of the table 1 with reference to FIG. In the example shown in FIG. 14, the data type of table 1 is master, and the data included in table 1 is master data. The data access analysis unit 123a acquires this information and determines that the process for microservice conversion is not performed because the table 1 is master data. The data access analysis unit 123a excludes the information included in the table 1 from the information acquired from the analysis result storage unit 112, and determines the data belonging to the processing flow again. Further, the data access analysis unit 123a divides the database or file based on the determination result.

図15に示す例では、テーブル1を除外すると、テーブル2のみが複数の処理フローからアクセスされている。また、それぞれのアクセスの種類は、一方の処理フロー(プログラムBを起点プログラムとする処理フローのサブプログラム4)は参照のみ(R)であり、もう一方(プログラムCを起点プログラムとする処理フローのサブプログラム52)は更新系(CRUD)であることから、テーブルの粒度で帰属することができると判定する。 In the example shown in FIG. 15, when table 1 is excluded, only table 2 is accessed from a plurality of processing flows. As for each type of access, one of the processing flows (the sub-program 4 of the processing flow having the program B as the starting program) is reference only (R) and the other (the processing flow having the program C as the starting program is Since the subprogram 52) is the update system (CRUD), it is determined that the subprogram 52 can belong to the granularity of the table.

以上説明したように、情報処理装置1aは、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部(ルート抽出部122)と、前記ルート情報、前記解析結果、及び前記データの種別を示す種別情報(業務情報)に基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部(データアクセス分析部123a)、と、を備える。
これにより、情報処理装置1aは、システム全体で用いられるマスタデータへのアクセスなどの場合には、マスタデータへのアクセスをマイクロサービス化へ向けた処理から除外することで、処理フローを細かく分けることが可能になる。そのため、より細かい粒度でのマイクロサービス化に向けて、処理内容に応じたデータの分割を効率的に行うことができる。
As described above, the information processing device 1a is based on the information that describes the process definitions of a plurality of programs for realizing software, the data accessed by the programs, and the data set including the data. Based on the analysis result which is the result of analysis of the program, information indicating a starting point program which is a program that is not called from other ones of the plurality of programs and directly or indirectly called from the starting point program The processing flow from the starting point program is indicated by information in which the information indicating the sub program that is the program and the information about the data set accessed from the starting point program and the sub program are associated with each other in the calling order or the access order. The data included in the plurality of processing flows based on a route processing unit (route extraction unit 122) that is route information and the route information, the analysis result, and type information (business information) indicating the type of the data. For a shared data set that is a set, a determination unit (a data access analysis unit 123a) that determines a belonging process flow that is a process flow to which the shared data set belongs, out of the plurality of process flows.
As a result, in the case of access to master data used in the entire system, the information processing apparatus 1a excludes the access to the master data from the processing for microservices, and thus divides the processing flow finely. Will be possible. Therefore, it is possible to efficiently divide the data according to the processing content, toward the microservice with a finer granularity.

図16は、上記の各実施形態に係る情報処理装置1の最小構成の一例を示すブロック図である。
この図に示すように、情報処理装置1は、ルート処理部101と、決定部102とを備える。
ルート処理部101はソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とする。
決定部102は、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する。
FIG. 16 is a block diagram showing an example of the minimum configuration of the information processing device 1 according to each of the above embodiments.
As shown in this figure, the information processing device 1 includes a route processing unit 101 and a determination unit 102.
The route processing unit 101 is a result of analysis of the program based on information describing process definitions of a plurality of programs for realizing software, data accessed by the program, and a data set including the data. Based on the analysis result, information indicating a starting program which is a program that is not called from the other programs among the plurality of programs, and a sub-program that is the program that is called directly or indirectly from the starting program. The information in which the information shown and the information about the data set accessed from the starting program and the subprogram are associated with each other in the calling order or the access order is set as route information indicating a processing flow from the starting program.
The determining unit 102, based on the route information and the analysis result, assigns the shared data set of the plurality of processing flows to the shared data set that is the data set included in the plurality of processing flows. An attribution processing flow that is a processing flow is determined.

なお、上述した第2実施形態において、データアクセス分析部123aは、データ項目の粒度でもデータアクセスが異ならない場合に、業務情報記憶部115aから業務情報を取得する例について説明したが、これには限られない。例えば、予め業務情報を取得し、ファイル・テーブル粒度でデータアクセスが異ならない場合に、データ項目の粒度での判定を行う前に上述した処理を行ってもよい。また、解析部121が解析を行う場合に、マスタデータについては、処理を除外するようにしてもよい。この場合、データアクセス情報記憶部1121には、トランザクションデータに関するデータアクセス情報のみが含まれる。 In the second embodiment described above, the data access analysis unit 123a has described the example in which the business information is acquired from the business information storage unit 115a when the data access does not differ depending on the granularity of the data items. Not limited. For example, when the business information is acquired in advance and the data access does not differ depending on the file/table granularity, the above-described processing may be performed before the determination based on the granularity of the data item. Further, when the analysis unit 121 performs the analysis, the master data may be excluded from the processing. In this case, the data access information storage unit 1121 includes only data access information regarding transaction data.

また、上述した各実施形態において、記憶部11(11a)と処理部12(12a)が同一の処理装置に含まれる例を説明したが、これには限られない。例えば、記憶部11(11a)を含む記憶装置が、情報処理装置1(1a)の外部に備えられてもよい。 Further, in each of the above-described embodiments, an example in which the storage unit 11 (11a) and the processing unit 12 (12a) are included in the same processing device has been described, but the present invention is not limited to this. For example, a storage device including the storage unit 11 (11a) may be provided outside the information processing device 1 (1a).

また、上述した各実施形態において、処理部12(12a)の各処理部(解析部121、ルート抽出部122、データアクセス分析部123(123a))が、それぞれ独立の装置として、情報処理装置1(1a)の外部に備えられてもよい。 Further, in each of the above-described embodiments, each processing unit (analysis unit 121, route extraction unit 122, data access analysis unit 123 (123a)) of the processing unit 12 (12a) is an information processing device 1 as an independent device. It may be provided outside of (1a).

また、上述した実施形態における情報処理装置1の一部、例えば、処理部12(12a)などをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、情報処理装置1に内蔵されたコンピュータシステムであって、OS(Operating System)や周辺機器等のハードウェアを含むものとする。 Moreover, you may make it implement|achieve a part of information processing apparatus 1 in the above-mentioned embodiment, for example, the process part 12 (12a) etc. with a computer. In that case, the program for realizing this function may be recorded in a computer-readable recording medium, and the program recorded in this recording medium may be read by a computer system and executed. The “computer system” referred to here is a computer system built in the information processing apparatus 1 and includes an OS (Operating System) and hardware such as peripheral devices.

また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。 The "computer-readable recording medium" refers to a portable medium such as a flexible disk, a magneto-optical disk, a ROM, a CD-ROM, or a storage device such as a hard disk built in a computer system. Further, the "computer-readable recording medium" means a program that dynamically holds a program for a short time, such as a communication line when transmitting the program through a network such as the Internet or a communication line such as a telephone line. In such a case, a volatile memory that holds a program for a certain period of time, such as a volatile memory inside a computer system serving as a server or a client, may be included. Further, the program may be for realizing a part of the above-described functions, and may be a program for realizing the above-mentioned functions in combination with a program already recorded in the computer system.

また、上述した実施形態における情報処理装置1の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。情報処理装置1の各機能部は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。 Moreover, you may implement|achieve a part or all of the information processing apparatus 1 in the above-mentioned embodiment as an integrated circuit, such as LSI(Large Scale Integration). Each functional unit of the information processing device 1 may be individually implemented as a processor, or a part or all of the functional units may be integrated and implemented as a processor. Further, the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. In addition, when a technique for forming an integrated circuit that replaces the LSI appears due to the progress of semiconductor technology, an integrated circuit according to the technique may be used.

以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。また、本発明の一態様は、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。また、上記各実施形態や変形例に記載された要素であり、同様の効果を奏する要素同士を置換した構成も含まれる。 Although one embodiment of the present invention has been described in detail above with reference to the drawings, the specific configuration is not limited to the above, and various design changes and the like without departing from the scope of the present invention. It is possible to Further, according to one aspect of the present invention, various modifications can be made within the scope of the claims, and an embodiment obtained by appropriately combining the technical means disclosed in different embodiments is also a technical aspect of the present invention. Included in the range. In addition, a configuration in which elements described in each of the above-described embodiments and modified examples and having the same effect are replaced with each other is also included.

1・・・情報処理装置、11、11a・・・記憶部、12、12a・・・処理部、111・・・資産情報記憶部、112・・・解析結果記憶部、1121・・・データアクセス情報記憶部、1122・・・制御構造情報記憶部、1123・・・関係情報記憶部、113・・・ルート情報記憶部、114・・・分析結果記憶部、115a・・・業務情報記憶部、121・・・解析部、122・・・ルート抽出部、123、123a・・・データアクセス分析部、101・・・ルート処理部、102・・・決定部 1... Information processing device, 11, 11a... Storage unit, 12, 12a... Processing unit, 111... Asset information storage unit, 112... Analysis result storage unit, 1121... Data access Information storage unit 1122... Control structure information storage unit, 1123... Relation information storage unit, 113... Route information storage unit, 114... Analysis result storage unit, 115a... Business information storage unit, 121... Analysis unit, 122... Route extraction unit, 123, 123a... Data access analysis unit, 101... Route processing unit, 102... Determination unit

Claims (9)

ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
を備え
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを1つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する情報処理装置。
Based on the analysis result which is the result of the analysis of the program based on the information describing the processing definition of the plurality of programs for realizing the software, the data accessed by the program, and the data set including the data. Information indicating a starting program that is a program that is not called from another of the plurality of programs, information indicating a subprogram that is the program that is called directly or indirectly from the starting program, and A route processing unit that uses information that associates an origin program and information about the data set accessed from the subprogram with a calling order or an access order as route information indicating a processing flow from the origin program,
Attribution that is a processing flow to which the shared data set belongs, out of the plurality of processing flows, for the shared data set that is the data set included in the plurality of processing flows based on the route information and the analysis result. A determination unit that determines the processing flow,
Equipped with
The deciding unit is configured such that, among the plurality of processing flows that access the data included in the shared data set, the origin program or the subprogram is included in the shared data set for two or more of the processing flows. If the access type is the same data included in the shared data set, the access type is either a modification of the data or both are acquisition of the data. If it is, collectively the said processing flow in a single integrated process flow, the information processing apparatus that determine the integration process flow to the belonging process flow.
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
を備え、
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する情報処理装置。
Based on the analysis result which is the result of the analysis of the program based on the information describing the processing definition of the plurality of programs for realizing the software, the data accessed by the program, and the data set including the data. Information indicating a starting program that is a program that is not called from another of the plurality of programs, information indicating a subprogram that is the program that is called directly or indirectly from the starting program, and A route processing unit that uses information that associates an origin program and information about the data set accessed from the subprogram with a calling order or an access order as route information indicating a processing flow from the origin program,
Attribution that is a processing flow to which the shared data set belongs, out of the plurality of processing flows, for the shared data set that is the data set included in the plurality of processing flows based on the route information and the analysis result. A determination unit that determines the processing flow,
Equipped with
The deciding unit is configured such that, among the plurality of processing flows that access the data included in the shared data set, the origin program or the subprogram is included in the shared data set for two or more of the processing flows. When accessing the data, the type of access is either a modification of the data, or both are acquisition of the data, and the data to be accessed is different data included in the shared data set. In this case, the shared data set is divided for each set of data accessed from the single processing flow, and the divided data set that is the divided data set is accessed for the data included in the divided data set. the processing flow for performing a corresponding divided data the belonging process flow information processing apparatus that determine the set.
前記決定部は、前記ルート情報、前記解析結果、及び前記データの種別を示す種別情報にも基づいて、前記帰属処理フローを決定する、
請求項1又は請求項2に記載の情報処理装置。
The determining unit determines the attribution processing flow based on the route information, the analysis result, and type information indicating a type of the data.
The information processing apparatus according to claim 1 or 2 .
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
を備え、
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを1つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する情報処理システム。
Based on the analysis result which is the result of the analysis of the program based on the information describing the processing definition of the plurality of programs for realizing the software, the data accessed by the program, and the data set including the data. Information indicating a starting program that is a program that is not called from another of the plurality of programs, information indicating a subprogram that is the program that is called directly or indirectly from the starting program, and A route processing unit that uses information that associates an origin program and information about the data set accessed from the subprogram with a calling order or an access order as route information indicating a processing flow from the origin program,
Attribution that is a processing flow to which the shared data set belongs, out of the plurality of processing flows, for the shared data set that is the data set included in the plurality of processing flows based on the route information and the analysis result. A determination unit that determines the processing flow,
Bei to give a,
The deciding unit is configured such that, among the plurality of processing flows that access the data included in the shared data set, the origin program or the subprogram is included in the shared data set for two or more of the processing flows. If the access type is the same data included in the shared data set, the access type is either a modification of the data or both are acquisition of the data. If it is, collectively the said processing flow in a single integrated process flow, the information processing system that determines the integration process flow to the belonging process flow.
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、 Based on the analysis result which is the result of the analysis of the program based on the information describing the processing definition of the plurality of programs for realizing the software, the data accessed by the program, and the data set including the data. Information indicating a starting program that is a program that is not called from another of the plurality of programs, information indicating a subprogram that is the program that is called directly or indirectly from the starting program, and A route processing unit that uses information that associates an origin program and information about the data set accessed from the subprogram with a calling order or an access order as route information indicating a processing flow from the origin program,
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、 Attribution that is a processing flow to which the shared data set belongs, out of the plurality of processing flows, for the shared data set that is the data set included in the plurality of processing flows based on the route information and the analysis result. A determination unit that determines the processing flow,
を備え、 Equipped with
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する情報処理システム。 The deciding unit is configured such that, among the plurality of processing flows that access the data included in the shared data set, the origin program or the subprogram is included in the shared data set for two or more of the processing flows. When accessing the data, the type of access is either a modification of the data, or both are acquisition of the data, and the data to be accessed is different data included in the shared data set. In this case, the shared data set is divided for each set of data accessed from the single processing flow, and the divided data set that is the divided data set is accessed for the data included in the divided data set. An information processing system that determines the processing flow for performing the above as the belonging processing flow of the divided data set.
情報処理装置のルート処理部が、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、
前記情報処理装置の決定部が、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、
を含み、
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを1つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する情報処理方法。
The route processing unit of the information processing apparatus analyzes the program based on information describing process definitions of a plurality of programs for realizing software, data accessed by the program, and a data set including the data. On the basis of the analysis result which is the result, information indicating a starting program which is a program that is not called from the other programs among the plurality of programs, and the program which is called directly or indirectly from the starting program. Information indicating a certain subprogram and information relating to the starting point program and the data set to be accessed from the subprogram are associated with each other in the calling order or the access order, and route information indicating a processing flow from the starting point program. Route processing steps to
The determination unit of the information processing device , based on the route information and the analysis result, for the shared data set that is the data set included in the plurality of processing flows, the shared data among the plurality of processing flows. A determination step of determining a belonging processing flow which is a processing flow to which the set belongs;
Only including,
The deciding unit is configured such that, among the plurality of processing flows that access the data included in the shared data set, the origin program or the subprogram is included in the shared data set for two or more of the processing flows. If the access type is the same data included in the shared data set, the access type is either a modification of the data or both are acquisition of the data. When it is, the information processing method of integrating the processing flow into one integrated processing flow and determining the integrated processing flow as the belonging processing flow .
情報処理装置のルート処理部が、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、 The route processing unit of the information processing apparatus analyzes the program based on information describing process definitions of a plurality of programs for realizing software, data accessed by the program, and a data set including the data. On the basis of the analysis result which is the result, information indicating a starting program which is a program that is not called from the other programs among the plurality of programs, and the program which is called directly or indirectly from the starting program. Information indicating a certain subprogram and information relating to the starting point program and the data set to be accessed from the subprogram are associated with each other in the calling order or the access order, and route information indicating a processing flow from the starting point program. Route processing steps to
前記情報処理装置の決定部が、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、 The determination unit of the information processing device, based on the route information and the analysis result, for the shared data set that is the data set included in the plurality of processing flows, the shared data among the plurality of processing flows. A determination step of determining a belonging processing flow which is a processing flow to which the set belongs;
を含み、 Including
前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する情報処理方法。 The deciding unit is configured such that, among the plurality of processing flows that access the data included in the shared data set, the origin program or the subprogram is included in the shared data set for two or more of the processing flows. When accessing the data, the type of access is either a modification of the data, or both are acquisition of the data, and the data to be accessed is different data included in the shared data set. In this case, the shared data set is divided for each set of data accessed from the single processing flow, and the divided data set that is the divided data set is accessed for the data included in the divided data set. An information processing method for deciding the processing flow for performing the above as the belonging processing flow of the divided data set.
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、
を、コンピュータに実行させるためのプログラムであり、
前記コンピュータが、
前記決定ステップにおいて、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを1つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定するプログラム。
Based on the analysis result which is the result of the analysis of the program based on the information describing the processing definition of the plurality of programs for realizing the software, the data accessed by the program, and the data set including the data. Information indicating a starting program that is a program that is not called from another of the plurality of programs, information indicating a subprogram that is the program that is called directly or indirectly from the starting program, and A route processing step in which information in which a starting point program and information about the data set accessed from the subprogram are associated with each other in a calling order or an access order is route information indicating a processing flow from the starting point program,
Attribution that is a processing flow to which the shared data set belongs, out of the plurality of processing flows, for the shared data set that is the data set included in the plurality of processing flows based on the route information and the analysis result. A determination step for determining the processing flow,
Is a program for causing a computer to execute ,
The computer is
In the determining step, the data in which the starting program or the subprogram is included in the shared data set is included in two or more of the process flows that access the data included in the shared data set. If the access type is the same data included in the shared data set, the access type is either a modification of the data or both are acquisition of the data. When it is, the program which combines the said process flow into one integrated process flow, and determines the said integrated process flow to the said belonging process flow .
ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、 Based on the analysis result which is the result of the analysis of the program based on the information describing the processing definition of the plurality of programs for realizing the software, the data accessed by the program, and the data set including the data. Information indicating a starting program that is a program that is not called from another of the plurality of programs, information indicating a subprogram that is the program that is called directly or indirectly from the starting program, and A route processing step in which information in which a starting point program and information about the data set accessed from the subprogram are associated with each other in a calling order or an access order is route information indicating a processing flow from the starting point program,
前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、 Attribution that is a processing flow to which the shared data set belongs, out of the plurality of processing flows, for the shared data set that is the data set included in the plurality of processing flows based on the route information and the analysis result. A determination step for determining the processing flow,
を、コンピュータに実行させるためのプログラムであり、 Is a program for causing a computer to execute,
前記コンピュータが、 The computer is
前記決定ステップにおいて、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定するプログラム。 In the determining step, the data in which the starting program or the subprogram is included in the shared data set is included in two or more of the process flows that access the data included in the shared data set. When accessing the data, the type of access is either a modification of the data, or both are acquisition of the data, and the data to be accessed is different data included in the shared data set. In this case, the shared data set is divided for each set of data accessed from the single processing flow, and the divided data set that is the divided data set is accessed for the data included in the divided data set. A program for deciding the processing flow for performing the above as the belonging processing flow of the divided data set.
JP2019061042A 2019-03-27 2019-03-27 Information processing apparatus, information processing system, information processing method, and program Active JP6729742B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019061042A JP6729742B1 (en) 2019-03-27 2019-03-27 Information processing apparatus, information processing system, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019061042A JP6729742B1 (en) 2019-03-27 2019-03-27 Information processing apparatus, information processing system, information processing method, and program

Publications (2)

Publication Number Publication Date
JP6729742B1 true JP6729742B1 (en) 2020-07-22
JP2020160922A JP2020160922A (en) 2020-10-01

Family

ID=71663937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019061042A Active JP6729742B1 (en) 2019-03-27 2019-03-27 Information processing apparatus, information processing system, information processing method, and program

Country Status (1)

Country Link
JP (1) JP6729742B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3838825B2 (en) * 1999-09-27 2006-10-25 富士通株式会社 System analysis apparatus and method, and storage medium storing analysis program
JP2002041287A (en) * 2000-07-26 2002-02-08 Fujitsu Ltd Reusable part extraction equipment, reusable part extraction method and storage media that store program to make execution of process in computer by the equipment
JP6880962B2 (en) * 2017-04-14 2021-06-02 富士通株式会社 Program analyzer, program analysis method and analysis program

Also Published As

Publication number Publication date
JP2020160922A (en) 2020-10-01

Similar Documents

Publication Publication Date Title
US10481884B2 (en) Systems and methods for dynamically replacing code objects for code pushdown
US8930942B2 (en) Capability model for deploying componentized applications
AU2018204133A1 (en) Automatic generation of microservices based on technical description of legacy code
US10127218B2 (en) Object templates for data-driven applications
CN102542382A (en) Method and device for managing business rule
GB2508599A (en) Software version management when downgrading software
JP6673359B2 (en) System construction support system, method and program
CN102938784A (en) Method and system used for data storage and used in distributed storage system
KR101355273B1 (en) A computing system, a method for controlling thereof, and a computer-readable recording medium having a computer program for controlling thereof
US20170351506A1 (en) Automating feature graduation
US9122559B2 (en) Extensible dependency management framework and method
US9461884B2 (en) Information management device and computer-readable medium recorded therein information management program
US9330372B2 (en) Generating an improved development infrastructure
US20230099501A1 (en) Masking shard operations in distributed database systems
JP6729742B1 (en) Information processing apparatus, information processing system, information processing method, and program
CN112068812A (en) Micro-service generation method and device, computer equipment and storage medium
US20180107635A1 (en) Atom-based sensible synchronization for information indexing
CN115485677A (en) Secure data replication in a distributed data storage environment
US7945598B2 (en) Methodology for the automatic capture of process information in federated knowledge systems
US11561979B2 (en) Dynamically detecting and correcting errors in queries
US11816424B2 (en) Conditional save of draft enabled business objects
JP7196757B2 (en) Analysis support program, analysis support method, analysis support device, and analysis support system
JP2024043844A (en) Data processing method and data processing system
JP4120879B2 (en) Program generation system and method and program thereof
JP2024019840A (en) Computing system and system update support method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200507

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200615

R150 Certificate of patent or registration of utility model

Ref document number: 6729742

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150