JP2020160922A - 情報処理装置、情報処理システム、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理システム、情報処理方法、及びプログラム Download PDF

Info

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

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】データの分割を処理内容に応じて効率的に行うことができる情報処理装置、情報処理システム、情報処理方法、及びプログラムを提供する。【解決手段】情報処理装置は、ソフトウェアを実現するプログラムの処理定義を示す情報と、前記プログラムがアクセスするデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析結果に基づいて、起点となるプログラムを示す情報、前記起点プログラムから呼び出されるサブプログラムを示す情報、及び前記起点プログラム及び前記サブプログラムからアクセスを行うデータ集合に関する情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合について、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、を備える。【選択図】図4

Description

本発明は、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
古くなった既存システムの刷新を行う場合、費用や期間の兼ね合いから、既存のシステムで動いている業務処理自体は変更せず、動作する基盤などを新しく置き換えることがある。このような刷新の場合、刷新後のアーキテクチャの1つとしてマイクロサービスを組み合わせる構成があげられる。マイクロサービスを用いる場合、システムの機能をメンテナンスのしやすい範囲で小さく分割し、その分割単位でサービス化を行う。また、サービス間はAPI(Application Programming Interface)の呼び出しなどで疎結合とする。このようにサービス間を疎結合とすることで、システム改修時の期間とコストを削減し、タイムリーに更新できるようになる。
特許文献1には、関連する技術として、ソフトウェアにおけるデータの使われ方の実態を把握可能な技術が開示されている。
特開2017−228048号公報
マイクロサービス化を実現するためには、各サービスを疎結合となるようにデータを分割する必要がある。しかしながら、このようなデータの分割は、これまで業務の有識者がプログラムを解析することで行われることが多かった。そのため、データ分割に多くの手間がかかってしまう場合があった。
本発明は、上記の課題を解決する、情報処理装置、情報処理システム、情報処理方法、及びプログラムを提供することにある。
本発明の一態様によれば、情報処理装置は、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、を備えることを特徴とする。
また、本発明の一態様によれば、情報処理システムは、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、を備えることを特徴とする。
また、本発明の一態様によれば、情報処理方法は、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、を含むことを特徴とする。
また、本発明の一態様によれば、プログラムは、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、をコンピュータに実行させることを特徴とする。
本発明によれば、データの分割を処理内容に応じて効率的に行うことができる。
本発明に関する業務システムのマイクロサービス化を説明するための第1図である。 本発明に関する業務システムのマイクロサービス化を説明するための第2図である。 本発明に関する業務システムのマイクロサービス化を説明するための第3図である。 本発明の第1実施形態に係る情報処理装置の構成の一例を示す概要ブロック図である。 本発明の第1実施形態に係るデータアクセス情報の一例を示す図である。 本発明の第1実施形態に係るデータアクセス情報の別の一例を示す図である。 本発明の第1実施形態に係る制御構造情報の一例を示す図である。 本発明の第1実施形態に係る関係情報の一例を示す図である。 本発明の第1実施形態に係る関係情報の別の一例を示す図である。 本発明の第1実施形態に係るルート情報の一例を示す図である。 本発明の第1実施形態に係るルート抽出処理の一例を示すフローチャートである。 本発明の第1実施形態に係るデータアクセス分析処理の一例を示すフローチャートである。 本発明の第2実施形態に係る情報処理装置の構成の一例を示す概要ブロック図である。 本発明の第2実施形態に係る業務情報の一例を示す図である。 本発明の第2実施形態に係る解析結果の一例を示す図である。 本発明の各実施形態に係る情報処理システムの最小構成の一例を示す概略ブロック図である。
<マイクロサービスの概要>
まず、図面を参照して、マイクロサービスについて概要を説明する。
マイクロサービスとは、ソフトウェア開発における技法・考え方の1つである。マイクロサービスにおいては、1つのアプリケーション(業務システム)を、業務機能に沿った複数の小さいサービスに分割する。全体のアプリケーションは、複数のマイクロサービスを疎結合して構成することで実現する。疎結合は例えば、API呼び出しなどである。アプリケーションを複数のマイクロサービスに分割することによって、マイクロサービスごとに開発を行うことが可能になる。そのため、複数の開発を並列して行うことが可能になる。また、1つ1つのサービスが小さくなるため、開発者の理解、開発、テストがより容易になる。これらの要因によって、全体の業務システムの改修時の期間とコストを削減することが可能になる。
図1〜図3は、本発明に関する業務システムのマイクロサービス化を説明するための図である。
既存の業務システムをマイクロサービスにする場合、マイクロサービスとする範囲を決定する必要がある。1つのマイクロサービスの範囲の捉え方は、複数の方法があるが、そのうちの1つに、業務処理が開始されるプログラムからの一連の処理フローを1つのマイクロサービスと捉える考え方がある。
図1は、既存の業務システムの一例を示す図である。この図に示す一例では、業務システムを実行するためのプログラムがプログラム1〜8で示されている。また、業務システムを実行する際にアクセスされるデータベースがデータベース1で示されている。また、プログラム間の矢印や、プログラムからデータベースへの矢印は、呼び出し又はアクセス関係を示す。この図に示す例では、例えば、プログラム1はプログラム4を呼び出していることを示す。また、例えば、プログラム4は、プログラム1とプログラム2から呼び出されていて、プログラム6、プログラム7を呼び出し、データベース1にアクセスしていることを示す。
この図に示すように、既存の業務システムは、多くのプログラムや複雑に絡み合うだけでなく、多くのプログラムが1つ以上のデータベースにアクセスする状態となっている。そのため、このような業務システムをマイクロサービス化するためには、各プログラムを精査しなければならない。
このようなプログラム群をマイクロサービス化するために、一連の処理フローをマイクロサービスと捉える考え方が挙げられる。まず、一連の処理フローの起点となるプログラムを判定する。図1に示す例では、プログラム1、プログラム2、プログラム3は、どこからも呼び出しを受けていないプログラムである。そのため、これらのプログラムは起点となるプログラムである。従って、図1に示す例では、処理フローが3つ存在することになる。
続いて、全体のプログラムを処理フローごとに分割する。このとき、複数の処理フローで利用されているプログラムが存在する場合には、当該プログラムを利用されている処理フローの分だけ複製する。例えば、図1に示す例の場合、プログラム4は、プログラム1とプログラム2から呼び出されている。プログラム1とプログラム2は別の処理フローであるから、プログラム4は複製され分割される。
このように分割が行われた結果を図2に示す。プログラム4、5、7は、複数の処理フローで呼び出されているので、複製され分割されている。このように処理フローに応じてプログラムを複製、分割することで、プログラムについては、処理フローごとに分割することが可能になる。しかしながら、データベース1は分割されていないため、このままではマイクロサービス化することはできない。
全ての処理フローをマイクロサービス化するためには、図3に示すように、データベースについても処理フローに応じた分割が必要になる。図3に示す例では、データベース1は、データベース11、データベース12、データベース13、及びデータベース14に分割される。このようにデータベースを分割できれば、処理フローごとにマイクロサービス化することが可能になる。図3に示す例では、プログラム1、プログラム4、プログラム6、及び、データベース11からなる処理フローを1つのマイクロサービスとすることができる。
図3のようにデータベースを分割するためには、図2におけるデータベース1を参照し、どのデータがどの処理に利用されているかを把握しなければならない。そのためには、データベースを呼び出すプログラム(図2の例では、プログラム4〜プログラム8の5つのプログラム)のそれぞれについて、処理を確認する必要がある。既存の業務システムが図1〜図3に示す例のように把握が容易である場合には処理の確認も容易である。しかしながら、実際には非常に多くの業務があるため、その処理の把握は非常に困難であることが多く、マイクロサービス化には膨大な時間を要することが多い。
<第1実施形態>
以下、図面を参照して、本発明の第1実施形態について詳しく説明する。
図1は、本発明の第1実施形態に係る情報処理装置1の構成の一例を示す概略ブロック図である。
情報処理装置1は、例えば、デスクトップパソコン、ノートパソコン、タブレット端末、スマートフォンなどの端末装置や、サーバなどの処理装置である。
情報処理装置1は、例えば、業務システムのプログラムや設定情報などを含む資産情報を解析する。また、情報処理装置1は、解析結果に基づいて、処理フローの起点となるプログラムを決定する。また、情報処理装置1は、起点となるプログラムから呼び出されるプログラムを処理フローごとに分割する。また、情報処理装置1は、一連の処理フローに含まれるプログラムから呼び出されるデータについて、呼び出されるデータと呼び出すプログラムを対応付ける。また、情報処理装置1は、対応付けた情報にもとづいて、データベースを分割する。
これにより、情報処理装置1は、業務の有識者やプログラムの開発者などがプログラムの解析を実施することなく、処理内容に応じてデータの分割を効率的に行うことができる。
情報処理装置1は、記憶部11及び処理部12を含んで構成される。
記憶部11は、例えば、ハードディスクドライブ、メモリなどの記憶装置である。記憶部11は、ファームウェアやアプリケーションプログラムなど、処理部12が実行するための各種プログラム、及び、処理部12が実行した処理の結果などを記憶する。
処理部12は、中央演算装置(CPU)などのプロセッサである。処理部12は、例えば、記憶部11に記憶する情報に基づいて、入力情報に対する出力情報を生成する。
具体的には、処理部12は、記憶部11に予め記憶された資産情報を読み出し、読み出した情報に基づいて、資産情報の解析を行う。ここで、資産情報とは、解析対象となるシステムを構成するアプリケーションの元となるソースコードや、アプリケーションの定義情報を含む。例えば、メインフレームの場合、ソースコードは、プログラムソースコードや、ジョブの処理を記述したJCLソースコードなど、ユーザ(例えば、システムの開発者)が処理定義を記述したファイルを示す。また、例えば、メインフレームの場合、定義情報は、システムを構成するアプリケーションの各種設定情報を示す。
また、処理部12は、解析結果に基づいて、システムを構成するプログラムの処理の流れ(以下、「ルート情報」とも称する)を抽出する。また、処理部12は、抽出したルート情報と、解析結果に含まれるプログラムのデータへのアクセス情報(以下、「データアクセス情報」とも称する)とに基づいて、ルート情報ごとにアクセスするデータを判定すする。処理部12は、判定結果に応じて、システムが利用しているデータを必要に応じて分割する。
<情報処理装置の記憶部>
記憶部11について、詳細を説明する。記憶部11は、資産情報記憶部111、解析結果記憶部112、ルート情報記憶部113、及び、分析結果記憶部114を含んで構成される。
資産情報記憶部111は、資産情報を記憶する。
解析結果記憶部112は、解析部121が資産情報を解析した解析結果を記憶する。解析結果は、データアクセス情報、制御構造情報、及び、関係情報を含んで構成される。データアクセス情報は、アクセスするデータ(ファイルやテーブルなど)とプログラムとの対応関係を示す情報である。また、制御構造情報は、個々のプログラムの処理フローに従って、当該プログラムに存在する処理、分岐、繰り返し、他のプログラムや関数の呼び出しなどを示す情報である。関係情報は、プログラム間の呼び出し関係や、プログラム内で他の資産情報を引用している場合の引用関係を示す情報である。
解析結果記憶部112は、データアクセス情報記憶部1121、制御構造情報記憶部1122、及び、関係情報記憶部1123を含んで構成される。データアクセス情報記憶部1121は、データアクセス情報(図5、図6参照)を記憶する。制御構造情報記憶部1122は、制御構造情報(図7参照)を記憶する。関係情報記憶部1123は、関係情報(図8、図9参照)を記憶する。それぞれの記憶部が記憶する情報の具体例については、後述する。
ルート情報記憶部113は、ルート情報(図10参照)を記憶する。ルート情報記憶部113は、ルート抽出部122が、解析結果に基づいて抽出したルート情報を記憶する。ルート情報の具体例については、後述する。
分析結果記憶部114は、対象となるシステムの解析結果と、ルート情報とに基づいて、システムがアクセスするデータを分析した結果である分析結果を記憶する。分析結果記憶部114は、データアクセス分析部123が、システムが使用するデータの分析結果を記憶する。また、分析結果は、必要に応じてデータアクセス分析部123が行うデータ分割の結果についても分析結果に含めて記憶する。
以下、記憶部11が記憶するデータアクセス情報、制御構造情報、関係情報、ルート情報の一例について、図5〜図10を用いて説明する。
図5は、本発明の第1実施形態に係るデータアクセス情報の一例を示す図である。
この図に示す一例では、データアクセス情報は、データを構成するテーブル又はファイルレベルでの、データとプログラムとの対応関係をCRUD図で示した情報である。なお、データアクセス情報の表現形式はCRUD図に限られない。
CRUD図は、データ(又はデータを構成するテーブル、ファイル)と、当該データがどのプログラムで作成(Create、図中では「C」で表示)、参照(Read、図中では「R」で表示)、更新(Update、図中では「U」で表示)、及び、削除(Delete、図中では「D」で表示)されるかということを対応付けて示した図である。以下では、作成、参照、更新、及び削除のいずれかの処理のことを「アクセス(アクセスする)」とも称する。
この図に示す一例では、データアクセス情報は、No.と、種別と、DB・ファイル名情報と、複数のプログラムとを対応付けた情報である。No.は、データを構成するテーブル又はファイルを識別するための識別子を示す情報である。種別は、データを構成する構成要素を示す情報である。構成要素は、例えばテーブルやファイルなど、データを含む1つのまとまりである。DB・ファイル名情報は、データを構成する構成要素を示す名称(ファイル名やデータベース名)を示す情報である。
この図に示す一例では、「No.」が“1”で、「種別」が“テーブル”で、「DB・ファイル名」が“テーブル1”に対応するテーブルに対して、「プログラム1」と「プログラム2」から参照されている(“R”の表示)ことを示す。また、「No.」が“2”で、「種別」が“テーブル”で、「DB・ファイル名」が“テーブル2”に対応するテーブルに対して、「プログラム3」からは作成、参照、更新が行われる(“CRU”の表示)ことを示す。
図6は、本発明の第1実施形態に係るデータアクセス情報の別の一例を示す図である。
この図に示す一例では、データアクセス情報は、データを構成するテーブル又はファイル中で定義されるデータ項目レベルでの、データとプログラムとの対応関係をCRUD図で示した情報である。なお、図5と同様に、データアクセス情報の表現形式はCRUD図に限られない。
この図に示す一例では、データアクセス情報は、No.と、種別と、DB・ファイル名情報と、データ項目名と、複数のプログラムとを対応付けた情報である。ここで、No.は、データを構成するデータ項目であって、テーブル又はファイルにおいて定義されるデータ項目を識別するための識別子を示す情報である。データ項目名は、データ項目の名称を示す情報である。
この図に示す一例では、「No.」が“1”で、「種別」が“テーブル”で、「DB・ファイル名」が“テーブル1”で、「データ項目名」が“項目1”に対応するデータに対して、「サブプログラム4」から参照されている(“R”の表示)ことを示す。
図7は、本発明の第1実施形態に係る制御構造情報の一例を示す図である。
この図に示す一例は、1つのプログラムの制御構造情報をフローチャートで示したものである。この図に示す一例では、プログラムを開始すると、最初にプログラムは“PROG1”で識別される他のプログラムを呼び出す(“CALL PROG1”)。続いて、プログラムは何らかの条件によって分岐を行う(“IF”)。1つ目の分岐においては、プログラムは、“PROG2”で識別される他のプログラムを呼び出す(“CALL PROG2”)。その後プログラムは終了する。一方、もう1つの分岐においては、プログラムは、“AAA”というデータを“BBB”という変数に代入する(“MOVE AAA TO BBB”)。続いて、プログラムは変数“BBB”のデータを書き込む(“WRITE BBB”)。この時、“BBB”を書き込む先のデータが更新される。その後、プログラムは終了する。
図8は、本発明の第1実施形態に係る関係情報の一例を示す図である。
この図に示す一例では、プログラム間の呼び出し関係を示す関係情報の一例を示す。この図に示す一例において、関係情報は、No.と、呼出元プログラムと、呼出先プログラムと、引数とを関連付けた情報である。No.は関係情報を識別するための識別子を示す情報である。呼出元プログラムは、他のプログラムを呼び出すプログラムを示す。呼出先プログラムは、他のプログラムから呼び出されるプログラムを示す。引数は、呼出元プログラムから、呼出先プログラムを呼び出す場合に、呼出先プログラムを実行するために必要な情報をやりとりするための変数を示す情報である。なお、引数は複数あってもよいし、なくてもよい。
この図に示す一例では、「No.」が“1”の関係情報は、「呼出元プログラム」が“プログラム1”であり、「呼出先プログラム」が“プログラム4”であり、「引数」が“PRAM1”であることを示す。
図9は、本発明の第1実施形態に係る関係情報の別の一例を示す図である。
この図に示す一例では、プログラムが他の情報を引用している場合の引用関係を示す関係情報の一例を示す。この図に示す一例において、関係情報は、No.と、引用元資産と、引用先資産と、引用先資産種別とを関連付けた情報である。No.は関係情報を識別するための識別子を示す情報である。引用元資産は、他の情報を引用する資産情報を示す。引用先資産は、引用元資産が他の情報を引用する場合の引用形式を示す情報である。また引用先資産種別は、引用先の資産情報を示す情報である。
この図に示す一例では、「No.」が“1”の関係情報は、「引用先資産」が“プログラムA”であり、「引用先資産」が“COPY1”であり、「引用先資産種別」が“登録集原文”であることを示す。この例では、COPY構文を用いて、登録集原文に含まれているデータの定義を引用することを示す。また、「No.」が“2”の関係情報は、「引用先資産」が“プログラムA”であり、「引用先資産」が“MACRO1”であり、「引用先資産種別」が“マクロ”であることを示す。この例では、MACRO構文を用いて、マクロに含まれている関数の定義を引用することを示す。
図10は、本発明の第1実施形態に係るルート情報の一例を示す図である。
この図に示す一例では、No.と、起点プログラムと、関係先種別と関係先名との組み合わせとを対応付けた情報である。ルート情報には複数の上記組み合わせが対応する場合がある。
ここで、No.はルート情報を識別する識別子を示す情報である。起点プログラムとは、他のプログラムから呼び出されないプログラムを示す。関係先種別は、呼び出し先又はアクセス先の種類を示す情報である。関係先種別は、例えば、プログラム、データベース、ファイルなどである。関係先名は、呼び出し先又はアクセス先のプログラム、データベース、ファイルなどの名称を示す情報である。
あるプログラムから呼び出されるプログラムを下位のプログラムとも称する。また、あるプログラムを呼び出すプログラムを上位のプログラムとも称する。この場合、起点プログラムには上位のプログラムが存在しない。また、関係先種別1と関係先名1の組は起点プログラムから直接呼び出されるプログラム、又は直接アクセスされるデータベース、ファイルなどである。関係先種別2と関係先名2の組は、更に下位のプログラム、データベース、ファイルなどであり、関係先種別1と関係先名1の組から呼び出される又はアクセスされる。すなわち、図10に示す情報は、同じ列を左から右へたどることによって、呼び出し元と、呼び出し先(アクセス先)とが順番に示される。
この図に示す一例では、「No.」が“1”のルート情報は、「起点プログラム」が“プログラムA”であり、起点プログラムから呼び出される「関係先種別1」が“プログラム”で、「関係先名」が“サブプログラム1”である。すなわち、“プログラムA”の内部で、“サブプログラム1”という名称の下位の“プログラム”が呼び出されることを示す。
また、この図に示す一例では、「No.」が“2”のルート情報は、「起点プログラム」が“プログラムA”であり、起点プログラムから呼び出される「関係先種別1」が“プログラム”で、「関係先名」が“サブプログラム2”である。更に、「関係先種別2」が“データベース”で「関係先名」が“テーブル1”である。すなわち、“プログラムA”の内部で、“サブプログラム2”という名称の下位の“プログラム”が呼び出されることを示す。また、“サブプログラム2”の内部で、“テーブル1”という名称の下位の“データベース”がアクセスされることを示す。
<情報処理装置の処理部>
図4に戻って、処理部12について、詳細を説明する。処理部12は、解析部121、ルート抽出部122、及び、データアクセス分析部123を含んで構成される。
解析部121は、資産情報記憶部111から資産情報を取得し、解析を行う。ここで、解析とは、資産情報に含まれるプログラムで使用されるプログラム言語に基づいて、そのプログラム言語の構文に従った解析を行うことを示す。解析部121は、解析結果として、データアクセス情報、制御構造情報、及び、関係情報を、データアクセス情報記憶部1121、制御構造情報記憶部1122、及び、関係情報記憶部1123にそれぞれ記憶させる。
ルート抽出部122は、解析結果記憶部112から解析結果を取得し、取得した情報に基づいて、プログラムの処理フローを抽出する。処理フローとは、起点プログラムから呼び出される一連のプログラム、又はアクセスされるデータなどを呼び出される順、アクセスされる順に示した場合の、当該順を示す。ルート抽出部122は、抽出した処理フローをルート情報として、ルート情報記憶部113に記憶させる。ルート抽出部122の処理の詳細は後述する。
データアクセス分析部123は、データアクセス情報記憶部1121及びルート情報記憶部113から、データアクセス情報及びルート情報をそれぞれ取得し、取得した情報に基づいて、処理フローに属するデータを判定する。また、データアクセス分析部123は、判定結果に基づいてデータベースやファイルを分割する。ここで、処理フローに属するデータとは、処理フローに含まれるプログラムから呼び出されるデータを示す。データアクセス分析部123は、判定結果及び分割結果(以下、「分析結果」とも称する)を分析結果記憶部114に記憶させる。データアクセス分析部123の処理の詳細は後述する。
<情報処理装置の動作>
図11は、本発明の第1実施形態に係るルート抽出部122の処理の一例を示すフローチャートである。
まず、ルート抽出部122は、関係情報記憶部1123から関係情報を取得する。ルート抽出部122は、取得した関係情報に基づき、プログラムのうち他のプログラムから呼び出されていないプログラムを抽出する(ステップS100)。具体的には、ルート抽出部122は、プログラム間の呼び出し関係を示す関係情報(図8)の呼出元プログラムに含まれ、呼出先プログラムに含まれないプログラムを、他のプログラムから呼び出されないプログラムとして抽出する。ルート抽出部122は抽出すると処理をステップS101に進める。
ルート抽出部122は、抽出したプログラムを起点プログラムとし、当該プログラムから呼び出されるプログラムや関数を再帰的に抽出する(ステップS101)。具体的には、ルート抽出部122は、関係情報(図8、図9)を参照し、起点プログラムから呼び出されるプログラムや関数、引用される情報(以下、まとめて「プログラム」とも称する)などを抽出する。ルート抽出部122は、抽出したプログラムから更に呼び出されるプログラムを抽出する。このような処理を呼び出されるプログラムがなくなるまで再帰的に繰り返す。ルート抽出部122は抽出すると処理をステップS102に進める。
ルート抽出部122は、抽出した各プログラムからアクセスされるデータの情報を抽出する(ステップS102)。具体的には、ルート抽出部122は、データアクセス情報記憶部1121から、データアクセス情報を取得し、取得した情報と、抽出したプログラムとに基づいて、各プログラムからアクセスされるデータを抽出する。ルート抽出部122は抽出すると処理をステップS103に進める。
ルート抽出部122は、制御構造情報に基づいて、抽出した呼び出し先プログラムの呼び出し順及び、抽出したデータへのアクセス順を処理順に整理する(ステップS103)。具体的には、ルート抽出部122は、制御構造情報記憶部1122から制御構造情報を取得し、取得した制御構造情報と、抽出したプログラム、データとに基づいて、処理順を取得する。ルート抽出部122は、処理順を取得すると、処理をステップS104に進める。
ルート抽出部122は、取得した処理順に従って、各起点プログラムからの処理フローをルート情報としてルート情報記憶部113に記憶させる(ステップS104)。具体的には、ルート抽出部122は、処理順に基づいて、起点プログラムからの処理一覧を処理フローとする。ルート抽出部122は、各処理フローをルート情報として、ルート情報記憶部113に記憶させる。ルート情報は、例えば、処理フローを表現する構造として、繋がりの情報をもったXML(Extensible Markup Language)形式、バイナリ形式などで記述される。ルート抽出部122は、以上で、ルート抽出の処理を終了する。
図12は、本発明の第1実施形態に係るデータアクセス分析部123の処理の一例を示すフローチャートである。
まず、データアクセス分析部123は、処理フロー間で共有しているデータを抽出する(ステップS200)。具体的には、まずデータアクセス分析部123は、ルート情報記憶部113からルート情報を取得する。データアクセス分析部123は、取得したルート情報に基づいて、複数のルートでアクセスされているデータの情報を抽出する。抽出すると、データアクセス分析部123は、処理をステップS201に進める。
データアクセス分析部123は、共有しているデータのアクセスの種類を取得し、アクセスの種類がファイル又はテーブルの粒度で異なるか否かを判定する(ステップS201)。アクセスの種類は、具体的には作成(C)、参照(R)、更新(U)、削除(D)である。「ファイル又はテーブルの粒度で異なる」とは、共有しているデータにアクセスしている複数の処理フローに含まれるプログラムについて、以下の2条件の両方を満たす場合である。1つ目の条件は、ある1つの処理フローからのアクセスは、作成、更新、削除(これらをまとめて「更新系」とも称する)を含むことである。この処理フローからのアクセスには、参照を含んでもよい。2つ目の条件は、共有しているデータにアクセスしている処理フローであって、他の全ての処理フローからのアクセスは、参照のみであることである。「ファイル又はテーブルの粒度が異ならない」とは上記以外の場合を示す。
データアクセス分析部123は、上記の2条件の両方を満たす場合、ファイル又はテーブルの粒度でデータアクセスが異なると判定し(ステップS201:YES)、処理をステップS202に進める。一方、データアクセス分析部123は、上記の2条件のどちらかを満たさない場合、ファイル又はテーブルの粒度でデータアクセスが異ならないと判定し(ステップS201:NO)、処理をステップS203に進める。
具体的な例を、図5、図10を用いて説明する。
図10におけるNo.“2”とNo.“4”の場合、この2つの処理フローは、起点プログラムがそれぞれ“A”と“B”である。そのため、この2つの処理フローは、異なる処理フローである。そして、それぞれが、2つ目のアクセス先として、“テーブル3”の“データベース”を参照している。そのため、データアクセス分析部123は、“テーブル3”を共有しているデータであると判定する。また、データアクセス分析部123は、このデータにアクセスするプログラムを、関係先名1を参照することによって取得する。すなわち、データアクセス分析部123は“サブプログラム2”と“サブプログラム3”から共有データである“テーブル3”にアクセスされていることを取得する。
続いて、データアクセス分析部123は、図5を参照し、アクセスの種類がテーブルの粒度で異なるか否かを判定する。図5のNo.“3”には、テーブル3にはサブプログラム2からは参照(R)のみのアクセスが行われ、サブプログラム3からは作成、参照、更新、削除(CRUD)のアクセスが行われることが示されている。データアクセス分析部123は、この情報を取得し、プログラムAを起点プログラムとする処理フローは、参照のみ(更新系でない)であり、プログラムBを起点プログラムとする処理フローは、更新系であることを取得する。この場合、データアクセス分析部123は、ファイル又はテーブルの粒度が異なると判定する。
データアクセス分析部123は、ファイル・テーブル粒度でアクセス種類の異なるデータを更新系の処理フローに帰属すると判定する(ステップS202)。また、この場合、当該データにアクセスするその他の処理フローについては、当該データへのアクセスを、更新系の処理フローへの問い合わせという形とする。マイクロサービス化した場合には、更新系の処理フローからなるマイクロサービスと、他の個々の処理フローからなるマイクロサービスとは当該問い合わせの介する疎結合とされる。データアクセス分析部123は、帰属処理を終えると、処理をステップS206に進める。
上記の図5、図10の例では、テーブル3は、プログラムBを起点とする処理フローに帰属する。プログラムAを起点とする処理フローはこの処理フローへ問い合わせる形となる。
ファイル・テーブル粒度でデータアクセスが異ならない場合は、データ項目の粒度でデータアクセスが異なるか否かを判定する(ステップS204)。データ項目の場合、「データ項目の粒度でデータアクセスが異なる」とは、共有しているデータにアクセスしている複数の処理フローに含まれるプログラムについて、以下の2条件のどちらかを満たすか場合である。1つ目の条件は、複数の処理フローから同一のデータ項目にアクセスがあって、ある1つの処理フローから当該データ項目へのアクセスは更新系であり、他の全ての処理フローから当該データ項目へのアクセスは参照のみであることである。もう1つの条件は、あるデータ項目へのアクセスが単一の処理フローのみから行われることである。
データアクセス分析部123は、上記の2条件のどちらか満たす場合、データ項目の粒度でデータアクセスが異なると判定し(ステップS203:YES)、処理をステップS204に進める。一方、データアクセス分析部123は、上記の2条件のどちらも満たさない場合、データ項目の粒度でデータアクセスが異ならないと判定し(ステップS201:NO)、処理をステップS205に進める。
具体的な例を、図6、図10を用いて説明する。
図10におけるNo.“6”とNo.“7”の場合、この2つの処理フローは、起点プログラムがそれぞれ“D”と“E”である。そのため、この2つの処理フローは、異なる処理フローである。そして、それぞれが、2つ目のアクセス先として、“テーブル4”の“データベース”を参照している。そのため、データアクセス分析部123は、“テーブル4”を共有しているデータであると判定する。また、データアクセス分析部123は、このデータにアクセスするプログラムを、関係先名1を参照することによって取得する。すなわち、データアクセス分析部123は“サブプログラム4”と“サブプログラム5”から共有データである“テーブル4”にアクセスされていることを取得する。また、データアクセス分析部123は、データを構成するテーブルの粒度でデータアクセスが異ならないと判定したものとする。
続いて、データアクセス分析部123は、図6を参照し、アクセスの種類がデータ項目の粒度で異なるか否かを判定する。図6を参照すると、“項目1”及び“項目2”については、サブプログラム4から参照(R)されているのに対し、サブプログラム5からはアクセスされていない。また、“項目3”、“項目4”、“項目5”については、サブプログラム4からはアクセスされていないのに対し、サブプログラム5からは参照(R)されている。データアクセス分析部123は、上述した情報を取得し、それぞれのデータ項目にはどちらかの処理フローからしかアクセスされていないため、上述した2つ目の条件を満たすと判定する。
データアクセス分析部123は、データ項目の粒度でアクセス種類の異なるデータに基づいて、テーブルやファイルを分割する(ステップS204)。具体的には、データアクセス分析部123は、データ項目の粒度でアクセス種類の異なるデータについて、複数の処理フローからアクセスされている場合は、当該データを更新系の処理フローに帰属すると判定する。また、この場合、当該データにアクセスするその他の処理フローについては、当該データへのアクセスを、更新系の処理フローへの問い合わせという形とする。また、データへのアクセスが単独の処理フローのみから行われる場合、データアクセス分析部123は、当該データをアクセスされる処理フローに帰属すると判定する。
続いて、データアクセス分析部123は、帰属した処理フローに応じて、データが含まれるテーブルやファイルを分割する。データアクセス分析部123は、帰属処理及び分割処理を終えると、処理をステップS206に進める。
上記の図6、図10の例では、テーブル4のうち、項目1と項目2のデータは、プログラムDを起点とする処理フローに帰属し、項目3、項目4、項目5のデータは、プログラムEを起点とする処理フローに帰属する。また、テーブル4は、項目1及び項目2のデータを含むサブテーブル41と、項目3、項目4、項目5のデータを含むサブテーブル42とに分割される。
データアクセス分析部123は、データ項目の粒度でもアクセス種類が異ならない場合、データを共有するルートをまとめて1つのルートにする(ステップS205)。この場合、起点となるプログラムは複数となる。データアクセス分析部123は、ルートをまとめると、処理をステップS206に進める。
データアクセス分析部123は、共有しているデータがまだあるか否かを判定する(ステップS206)。データアクセス分析部123は、ステップS200で抽出した複数処理フロー間で共有しているデータのうち、上述した処理で共有が解消されていないデータがまだある場合、共有しているデータがまだあると判定し(ステップS206:YES)、処理をステップS201に戻す。データアクセス分析部123は、上述した処理によって、全てのデータの共有状態が解消された場合、共有しているデータはないと判定し(ステップS206:NO)、処理をステップS207に進める。
データアクセス分析部123は、分析結果を分析結果記憶部114に出力し、処理を終了する。
以上説明したように、情報処理装置1は、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報(資産情報)と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合(データベースやファイル)と、に基づく前記プログラムの解析の結果である解析結果(データアクセス情報、制御構造情報、関係情報)に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部(ルート抽出部122)と、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フロー(帰属先)を決定する決定部(データアクセス分析部123)と、を備える。
これにより、情報処理装置1は、ソフトウェア(業務システム)を実現するための複数のプログラムが、データを含むデータベースやファイルに対してアクセスする場合の、アクセス方法に基づいて、起点となるプログラムから呼び出される一連のプログラムを含む複数の処理フローのうち、どの処理フローに帰属させればよいかを判定することができる。そのため、マイクロサービス化する際に、ソフトウェアの有識者(又は業務の有識者)の手を煩わせることなく、処理内容に応じてデータを帰属先ごとに効率的に分割することができる。
また、情報処理装置1の決定部(データアクセス分析部123)は、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類に基づいて、前記帰属処理フローを決定する。
これにより、同一のデータベース又はファイルに複数の処理フローからアクセスされている場合でも、1つの処理フローに当該データを帰属させ、他の処理フローからは当該処理フローへの問い合わせの形にすることで、より細かい粒度でのマイクロサービス化に向けて、データを処理内容に応じて効率的に分割することができる。
また、情報処理装置1の決定部(データアクセス分析部123)は、前記アクセスを行う複数の前記処理フローのうち、1つの処理フローからの前記アクセスの種類が前記共有データ集合に含まれるデータの変更であり、残りの前記処理フローからの前記アクセスの種類が前記共有データ集合に含まれるデータの取得である場合に、前記アクセスの種類が前記共有データ集合に含まれるデータの変更である前記処理フローを前記帰属処理フローに決定する。
これにより、帰属させる処理フローはデータの変更が行われる処理フローにすることで、他の処理フローからの当該データへのアクセスを、変更の処理を含まないものにすることで処理フロー間の結合を疎結合にすることが可能になる。従って、マイクロサービス化に向けて、よりマイクロサービス間の結合が疎結合になるように、処理内容に応じてデータの分割を効率的に行うことができる。
また、情報処理装置1の決定部(データアクセス分析部123)は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを1つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する。
これにより、複数の処理フローからデータのアクセスが行われていて、どちらの処理フローにも属することが好ましくない場合には、分割が行えない処理フローをまとめた1つの処理フローとすることで、まとめない場合にはソフトウェアの有識者(又は業務の有識者)を要する解析を行わずに済ませることができる。従って、マイクロサービス化に向けて、データを処理内容に応じて効率的に分割することができる。
また、情報処理装置1の決定部(データアクセス分析部123)は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する。
これにより、複数の処理フローからアクセスされているデータベースやファイルについて、データベースやファイルに含まれるデータ項目の粒度の観点から見た場合には、複数の処理フローの各々が別々のデータ項目にアクセスしている場合、アクセスしている項目毎にデータベースやファイルを分割することによって、処理フローをより細かい粒度で作成することができる。従って、より細かい粒度でのマイクロサービス化に向けて、データを処理内容に応じて効率的に分割することができる。
<第2実施形態>
以下、図面を参照して、本発明の第2実施形態について詳しく説明する。
本実施形態では、データの特徴を示す業務情報を考慮してデータ分割を行う場合の変形例について説明する。以降、第1実施形態と同様の構成には、同一の符号を付与してここでの説明を省略する。
図13は、本発明の第2実施形態に係る情報処理装置1aの一例を示す概要ブロック図である。
情報処理装置1aは、記憶部11a、及び、処理部12aを含んで構成される。記憶部11aは、第1実施形態の記憶部11(図4)と比較して、業務情報記憶部115aが追加される点が異なる。以下、業務情報記憶部115aについて説明する。
業務情報記憶部115aは、業務情報を記憶する。業務情報とは、業務システムで用いられるデータの特徴を示す情報である。業務システムで用いられるデータには、2つの種類に大別される。一つは、全業務で共通して用いられるマスタデータである。もう一つは各業務処理に固有のトランザクションデータである。マスタデータは変更頻度の低いデータであり、様々な業務から参照される。トランザクションデータは日々の業務で更新・参照されるデータであり、特定の業務からアクセスされる。業務情報はデータを含むファイル・テーブルがどちらのデータかを示す情報である。
図14は、本発明の第2実施形態に係る業務情報の一例を示す図である。
この図に示す一例では、業務情報は、No.と、種別と、DB・ファイル名と、データタイプとを対応付けた情報である。No.は業務情報を識別するための識別子を示す情報である。データタイプは、DB・ファイル名に含まれるデータが、マスタデータであるか、トランザクションデータであるかを示す情報である。
この図に示す一例では、「No.」が“1”の業務情報は、「種別」が“テーブル”で、「DB・ファイル名」が“テーブル1”に含まれるデータの「データタイプ」が“マスタ”(マスタデータ)であることを示す。
図13に戻って、処理部12aは、第1実施形態の処理部12(図4)と比較して、データアクセス分析部123aの機能がデータアクセス分析部123と異なる。データアクセス分析部123aの基本的な機能は、データアクセス分析部123と同様である。以下、データアクセス分析部123aの機能のうち、データアクセス分析部123と異なる機能について説明する。
データアクセス分析部123aは、業務情報にも基づいて、処理フローに属するデータを判定する。また、データアクセス分析部123aは、判定結果に基づいてデータベースやファイルを分割する。
データアクセス分析部123aは、データ項目の粒度でもデータアクセスが異ならない場合(図12のステップS203:NO)、共有されているデータを含むデータベースやファイルについて、業務情報の種類を取得する。具体的には、データアクセス分析部123aは、業務情報記憶部115aから業務情報を取得し、共有されているデータを含むデータベースやファイルがマスタデータであるか否かを判定する。
データアクセス分析部123aは、共有されているデータがマスタデータである場合には、マスタデータへのアクセスを除外する。この場合、データアクセス分析部123aは、分析結果として、当該データへのアクセスについてはアクセス自体のサービス化するなど、マイクロサービス化とは異なる処理が必要であることを示す情報を出力する。また、データアクセス分析部123aは、マスタデータ以外のデータへのアクセスについて、第1実施形態と同様の処理を行う。
また、データアクセス分析部123aは、共有されているデータがトランザクションデータの場合には、データを共有するルートをまとめて1つのルートにする(図12のステップS205と同様の処理)。
具体的な例を、図14、図15を用いて説明する。
図15は、本発明の第2実施形態に係る解析結果の一例を示す図である。図15の上段はデータアクセス情報記憶部1121が記憶するデータアクセス情報の一例を示す。また、図15の下段は、関係情報記憶部1123が記憶する関係情報の一例を示す。
データアクセス分析部123aは、図15を参照して、テーブル1が多くの処理フローに含まれるプログラムからアクセスされていると判定する。図15に示す例では、テーブル1は、プログラムAを起点とする処理フローのサブプログラム2、プログラムBを起点とする処理フローのサブプログラム3、プログラムBを起点とする処理フローのサブプログラム5、プログラムCを起点とする処理フローのサブプログラム5及びサブプログラム51、プログラムDを起点とする処理フローのサブプログラム61及びサブプログラム6から呼び出されている。また、いずれのプログラムについても、テーブル1へのアクセスは参照(R)であり、テーブルの粒度ではデータ分割を行うことができない。また、同様にデータ項目の粒度でもデータ分割できないものとする。
この場合、データアクセス分析部123aは、図14を参照し、テーブル1のデータタイプを取得する。図14に示す例では、テーブル1のデータタイプはマスタであり、テーブル1に含まれるデータがマスタデータであることを示す。データアクセス分析部123aは、この情報を取得し、テーブル1はマスタデータなのでマイクロサービス化に向けた処理を行わないと判定する。データアクセス分析部123aは、解析結果記憶部112から取得した情報から、テーブル1に含まれる情報を除外し、再度、処理フローに帰属するデータを判定する。また、データアクセス分析部123aは、判定結果に基づいてデータベースやファイルを分割する。
図15に示す例では、テーブル1を除外すると、テーブル2のみが複数の処理フローからアクセスされている。また、それぞれのアクセスの種類は、一方の処理フロー(プログラムBを起点プログラムとする処理フローのサブプログラム4)は参照のみ(R)であり、もう一方(プログラムCを起点プログラムとする処理フローのサブプログラム52)は更新系(CRUD)であることから、テーブルの粒度で帰属することができると判定する。
以上説明したように、情報処理装置1aは、ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部(ルート抽出部122)と、前記ルート情報、前記解析結果、及び前記データの種別を示す種別情報(業務情報)に基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部(データアクセス分析部123a)、と、を備える。
これにより、情報処理装置1aは、システム全体で用いられるマスタデータへのアクセスなどの場合には、マスタデータへのアクセスをマイクロサービス化へ向けた処理から除外することで、処理フローを細かく分けることが可能になる。そのため、より細かい粒度でのマイクロサービス化に向けて、処理内容に応じたデータの分割を効率的に行うことができる。
図16は、上記の各実施形態に係る情報処理装置1の最小構成の一例を示すブロック図である。
この図に示すように、情報処理装置1は、ルート処理部101と、決定部102とを備える。
ルート処理部101はソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とする。
決定部102は、前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する。
なお、上述した第2実施形態において、データアクセス分析部123aは、データ項目の粒度でもデータアクセスが異ならない場合に、業務情報記憶部115aから業務情報を取得する例について説明したが、これには限られない。例えば、予め業務情報を取得し、ファイル・テーブル粒度でデータアクセスが異ならない場合に、データ項目の粒度での判定を行う前に上述した処理を行ってもよい。また、解析部121が解析を行う場合に、マスタデータについては、処理を除外するようにしてもよい。この場合、データアクセス情報記憶部1121には、トランザクションデータに関するデータアクセス情報のみが含まれる。
また、上述した各実施形態において、記憶部11(11a)と処理部12(12a)が同一の処理装置に含まれる例を説明したが、これには限られない。例えば、記憶部11(11a)を含む記憶装置が、情報処理装置1(1a)の外部に備えられてもよい。
また、上述した各実施形態において、処理部12(12a)の各処理部(解析部121、ルート抽出部122、データアクセス分析部123(123a))が、それぞれ独立の装置として、情報処理装置1(1a)の外部に備えられてもよい。
また、上述した実施形態における情報処理装置1の一部、例えば、処理部12(12a)などをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、情報処理装置1に内蔵されたコンピュータシステムであって、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
また、上述した実施形態における情報処理装置1の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。情報処理装置1の各機能部は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。また、本発明の一態様は、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。また、上記各実施形態や変形例に記載された要素であり、同様の効果を奏する要素同士を置換した構成も含まれる。
1・・・情報処理装置、11、11a・・・記憶部、12、12a・・・処理部、111・・・資産情報記憶部、112・・・解析結果記憶部、1121・・・データアクセス情報記憶部、1122・・・制御構造情報記憶部、1123・・・関係情報記憶部、113・・・ルート情報記憶部、114・・・分析結果記憶部、115a・・・業務情報記憶部、121・・・解析部、122・・・ルート抽出部、123、123a・・・データアクセス分析部、101・・・ルート処理部、102・・・決定部

Claims (9)

  1. ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
    前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
    を備える情報処理装置。
  2. 前記決定部は、前記起点プログラム又は前記サブプログラムが前記共有データ集合に含まれるデータにアクセスを行う場合の、前記アクセスの種類に基づいて、前記帰属処理フローを決定する、
    請求項1に記載の情報処理装置。
  3. 前記決定部は、前記アクセスを行う複数の前記処理フローのうち、1つの処理フローからの前記アクセスの種類が前記共有データ集合に含まれるデータの変更であり、残りの前記処理フローからの前記アクセスの種類が前記共有データ集合に含まれるデータの取得である場合に、前記アクセスの種類が前記共有データ集合に含まれるデータの変更である前記処理フローを前記帰属処理フローに決定する、
    請求項2に記載の情報処理装置。
  4. 前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記アクセスの種類が、いずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる同一のデータである場合に、当該前記処理フローを1つの統合処理フローにまとめ、前記統合処理フローを前記帰属処理フローに決定する、
    請求項2に記載の情報処理装置。
  5. 前記決定部は、前記共有データ集合に含まれるデータにアクセスを行う複数の前記処理フローのうち、2つ以上の前記処理フローについて、前記アクセスの種類がいずれも前記データの変更であるか或いはいずれも前記データの取得であり、かつ、前記アクセスを行うデータが前記共有データ集合に含まれる異なるデータである場合に、前記共有データ集合を、単一の前記処理フローからアクセスが行われるデータの集合ごとに分割し、分割したデータの集合である分割データ集合を、当該分割データ集合に含まれるデータにアクセスを行う前記処理フローを、当該分割データ集合の前記帰属処理フローに決定する、
    請求項2に記載の情報処理装置。
  6. 前記決定部は、前記ルート情報、前記解析結果、及び前記データの種別を示す種別情報にも基づいて、前記帰属処理フローを決定する、
    請求項1から請求項5のいずれか一項に記載の情報処理装置。
  7. ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理部と、
    前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定部と、
    を備える情報処理システム。
  8. ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、
    前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、
    を含む情報処理方法。
  9. ソフトウェアを実現するための複数のプログラムの処理定義を記述した情報と、前記プログラムがアクセスを行うデータと、前記データを含むデータ集合と、に基づく前記プログラムの解析の結果である解析結果に基づいて、複数の前記プログラムのうち他の前記プログラムから呼び出されないプログラムである起点プログラムを示す情報と、前記起点プログラムから直接的に或いは間接的に呼び出される前記プログラムであるサブプログラムを示す情報と、前記起点プログラム及び前記サブプログラムからアクセスを行う前記データ集合に関する情報と、を呼び出し順或いはアクセス順に対応付けた情報を、前記起点プログラムからの処理フローを示すルート情報とするルート処理ステップと、
    前記ルート情報と前記解析結果とに基づいて、複数の前記処理フローに含まれる前記データ集合である共有データ集合について、複数の前記処理フローのうち、前記共有データ集合が帰属する処理フローである帰属処理フローを決定する決定ステップと、
    を、コンピュータに実行させるためのプログラム。
JP2019061042A 2019-03-27 2019-03-27 情報処理装置、情報処理システム、情報処理方法、及びプログラム Active JP6729742B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019061042A JP6729742B1 (ja) 2019-03-27 2019-03-27 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019061042A JP6729742B1 (ja) 2019-03-27 2019-03-27 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Publications (2)

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

Family

ID=71663937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019061042A Active JP6729742B1 (ja) 2019-03-27 2019-03-27 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6729742B1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092651A (ja) * 1999-09-27 2001-04-06 Fujitsu Ltd システム解析装置及び方法、並びに解析プログラムを格納した記憶媒体
JP2002041287A (ja) * 2000-07-26 2002-02-08 Fujitsu Ltd 再利用部品抽出装置、再利用部品抽出方法及びその装置での処理をコンピュータに行なわせるためのプログラムを格納した記憶媒体
JP2018181005A (ja) * 2017-04-14 2018-11-15 富士通株式会社 プログラム分析装置、プログラム分析方法および分析プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092651A (ja) * 1999-09-27 2001-04-06 Fujitsu Ltd システム解析装置及び方法、並びに解析プログラムを格納した記憶媒体
JP2002041287A (ja) * 2000-07-26 2002-02-08 Fujitsu Ltd 再利用部品抽出装置、再利用部品抽出方法及びその装置での処理をコンピュータに行なわせるためのプログラムを格納した記憶媒体
JP2018181005A (ja) * 2017-04-14 2018-11-15 富士通株式会社 プログラム分析装置、プログラム分析方法および分析プログラム

Also Published As

Publication number Publication date
JP6729742B1 (ja) 2020-07-22

Similar Documents

Publication Publication Date Title
US11093216B2 (en) Automatic discovery of microservices from monolithic applications
US9424025B2 (en) Verification of backward compatibility of software components
US11210181B2 (en) System and method for implementing data manipulation language (DML) on Hadoop
CN102542382A (zh) 业务规则的管理方法和装置
US20120158795A1 (en) Entity triggers for materialized view maintenance
KR101355273B1 (ko) 컴퓨팅 시스템 및 그 실행 제어 방법과, 그 실행 제어 프로그램을 기록한 기록 매체
CN110059456B (zh) 代码保护方法、代码保护装置、存储介质与电子设备
US20080148232A1 (en) Method and Apparatus for Managing Selective and Subtractive Merges in a Software Configuration
CN113204571A (zh) 涉及写入操作的sql执行方法、装置及存储介质
CN115794202A (zh) 一种数据配置方法及引擎、档案系统、计算机存储介质
US20230099501A1 (en) Masking shard operations in distributed database systems
US20180032544A1 (en) Distributed processing management method and distributed processing management apparatus
US10489151B1 (en) Locating business rules in application source code
CN114489950A (zh) 一种组件适配方法、装置、电子设备及存储介质
US20180349102A1 (en) Apparatus and method for converting large-scale application
CN112068812A (zh) 一种微服务生成方法、装置、计算机设备和存储介质
JP2020160922A (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
US10579374B2 (en) Method for converting application and computing device
US11488259B2 (en) System and method for implementing an international demand deposit account branch migration tool
Soundarapandian et al. Certified mergeable replicated data types
JP7073813B2 (ja) 制御プログラム、制御方法および情報処理装置
CN113806327A (zh) 一种数据库设计方法、装置及相关设备
US7945598B2 (en) Methodology for the automatic capture of process information in federated knowledge systems
US20230385075A1 (en) Networked Universal Code Package Provider
US11561979B2 (en) Dynamically detecting and correcting errors in queries

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 Request for written amendment filed

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