JP2019133541A - Separation method, separation apparatus and separation program - Google Patents
Separation method, separation apparatus and separation program Download PDFInfo
- Publication number
- JP2019133541A JP2019133541A JP2018016936A JP2018016936A JP2019133541A JP 2019133541 A JP2019133541 A JP 2019133541A JP 2018016936 A JP2018016936 A JP 2018016936A JP 2018016936 A JP2018016936 A JP 2018016936A JP 2019133541 A JP2019133541 A JP 2019133541A
- Authority
- JP
- Japan
- Prior art keywords
- data
- program
- service component
- programs
- unit
- 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
Links
Images
Abstract
Description
本発明は分離方法、分離装置および分離プログラムに関する。 The present invention relates to a separation method, a separation apparatus, and a separation program.
現在、様々な情報処理を行うコンピュータシステムが利用されている。コンピュータシステムは、プログラムを実行することで、プログラムに応じた所定の機能を実現する。コンピュータシステムでは、多数のプログラムやデータが利用され得る。幾つかのプログラム同士が連携して、1つの機能を実現することもある。 Currently, computer systems that perform various types of information processing are used. The computer system implements a predetermined function corresponding to the program by executing the program. In a computer system, a large number of programs and data can be used. Several programs may cooperate to realize one function.
また、コンピュータシステムの運用では、既存のプログラムの修正や既存の機能の他のコンピュータシステムへの移行が行われることもある。この場合、修正や移行の対象となる機能に関連のあるプログラムやデータを抽出し、抽出したプログラム、当該プログラムに関連する他のプログラムやデータに対して修正や移行の作業を行うことになる。しかし、利用されているプログラムやデータの数が多くプログラム間の関連が複雑であるほど、互いに関連性のあるプログラムやデータを見出すことは容易ではない。 In the operation of a computer system, an existing program may be modified or an existing function may be transferred to another computer system. In this case, a program or data related to the function to be corrected or transferred is extracted, and the extracted program or other program or data related to the program is corrected or transferred. However, the more programs and data that are used and the more complicated the relationships between programs, the more difficult it is to find programs and data that are related to each other.
そこで、例えば、ソフトウェアをその構成要素となるエンティティの集合として扱い、ソフトウェアの理解が容易な程度の部分集合(例えば、機能、タスクおよび業務などに沿ったクラスタ)に分割する分割装置の提案がある。分割装置は、関係元/関係先のエンティティを対応付けた対応情報をソフトウェアのソースコードから抽出し、対応情報により特定される依存関係に関する重みに基づいて、重みの合計が期待値よりも高くなるようにエンティティ群を複数のクラスタに分割する。 Therefore, for example, there is a proposal of a dividing device that treats software as a set of entities that are constituent elements and divides the software into subsets (for example, clusters according to functions, tasks, tasks, etc.) that are easy to understand the software. . The dividing apparatus extracts correspondence information in which the relation source / relationship destination entities are associated from the software source code, and based on the weight related to the dependency specified by the correspondence information, the total weight becomes higher than the expected value. Thus, the entity group is divided into a plurality of clusters.
上記のように、エンティティ(例えば、プログラムやデータ)間の依存関係の重みの合計が期待値よりも高くなるようにエンティティ群を複数の単位(例えば、業務単位のクラスタ)に分割する方法が考えられる。この方法では、分割の結果、コンピュータシステムの処理に用いられるデータは、当該データとの関連性が比較的強いプログラムとともに、何れかの分割単位に含まれることになる。すると、例えば、当該データと、比較的関連性の強い単一の業務との関係が分かり易くなる一方、当該データと他の業務との関連性を把握し難くなるという問題がある。 As described above, there is a method of dividing an entity group into a plurality of units (for example, clusters of business units) so that the sum of dependency weights between entities (for example, programs and data) is higher than an expected value. It is done. In this method, as a result of the division, data used for processing of the computer system is included in one of the division units together with a program having a relatively strong relationship with the data. Then, for example, there is a problem that it becomes difficult to understand the relationship between the data and another business while the relationship between the data and a single business with a relatively strong relationship is easy to understand.
1つの側面では、本発明は、複数の業務によりアクセスされるデータを対象のシステムから適切に分離可能にすることを目的とする。 In one aspect, an object of the present invention is to appropriately separate data accessed by a plurality of tasks from a target system.
1つの態様では、対象のシステムから業務ごとの対応するデータを分離する分離方法が提供される。この分離方法では、コンピュータが、対象のシステムの第1のプログラムにアクセスされる第1のデータと、対象のシステムの第2のプログラムにアクセスされる第2のデータとを特定し、第1のプログラムおよび第2のプログラムの両方にアクセスされるデータを、複数の業務から参照される、または、更新される共通データとして出力する。 In one aspect, a separation method is provided for separating corresponding data for each business from a target system. In this separation method, the computer identifies first data accessed by the first program of the target system and second data accessed by the second program of the target system, and the first data Data accessed by both the program and the second program is output as common data that is referred to or updated from a plurality of tasks.
1つの側面では、複数の業務によりアクセスされるデータを対象のシステムから適切に分離可能になる。 In one aspect, data accessed by a plurality of tasks can be appropriately separated from the target system.
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の分離装置を示す図である。分離装置1は、システム2に接続されている。分離装置1は、ネットワークを介してシステム2に接続されてもよい。システム2は、ユーザの業務に関する処理を行う様々なプログラムを実行する。1以上のプログラムが、互いに連携し、また、業務に関する1以上のデータ要素にアクセスして、当該業務に関する処理を実現する。
Hereinafter, the present embodiment will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram illustrating a separation apparatus according to a first embodiment. The separation device 1 is connected to the system 2. The separation device 1 may be connected to the system 2 via a network. The system 2 executes various programs that perform processing related to the user's business. One or more programs cooperate with each other and access one or more data elements related to the business to realize processing related to the business.
システム2で用いられる複数のプログラムやデータ要素の集合をプログラム資産と称する。例えば、プログラム資産は、プログラムX,Y,・・・およびデータ要素d1,d2,・・・を含む。例えば、プログラムXには、業務A1の処理が記述されている。また、プログラムYには、業務A2の処理が記述されている。プログラムX,Y,・・・それぞれが、複数のプログラムの集合体(例えば、あるプログラムが他のプログラムを呼び出すという呼出関係で関連付けられるプログラム群)でもよい。また、「業務」という単位は、機能、サービス部品またはソフトウェア部品などと呼ばれてもよい。また、分離装置1は、表示装置3にも接続されている。表示装置3は、分離装置1から受信した情報の内容を表示する。
A set of a plurality of programs and data elements used in the system 2 is called a program asset. For example, the program assets include programs X, Y,... And data elements d1, d2,. For example, the program X describes the processing of the business A1. Further, the program Y describes the processing of the business A2. Each of the programs X, Y,... May be an aggregate of a plurality of programs (for example, a group of programs associated with each other by a calling relationship in which a certain program calls another program). The unit of “business” may be called a function, service component, software component, or the like. The separation device 1 is also connected to the
分離装置1は、分析の対象のシステム(例えば、システム2)から業務ごとの対応するデータを分離する機能(あるいは、業務ごとの対応するデータを分類する機能)を提供する。分離装置1は、記憶部1aおよび処理部1bを有する。
The separation device 1 provides a function of separating corresponding data for each business from a system to be analyzed (for example, the system 2) (or a function for classifying corresponding data for each business). The separation device 1 includes a
記憶部1aは、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性のストレージでもよい。処理部1bは、例えば、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。ただし、処理部1bは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部1aでもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うこともある。
The
記憶部1aは、システム2に記憶されたプログラム資産の全部または一部の複製を記憶する。例えば、記憶部1aは、処理部1bの処理に用いられる一部のプログラム資産を記憶してもよい。
The
処理部1bは、対象のシステムの第1のプログラムにアクセスされる第1のデータと、対象のシステムの第2のプログラムにアクセスされる第2のデータとを特定する。アクセスとは、該当のプログラムによるデータの参照または更新である。
The
例えば、データ集合D1は、プログラム資産におけるデータ要素の全体である。処理部1bは、システム2のプログラムX(第1のプログラム)のコードを解析し、当該コードからプログラムXによりアクセスされるデータ要素d1,d2,d3,d4,d5をデータ集合D1から特定する。第1のデータセットD11は、データ要素d1,d2,d3,d4,d5を要素とする集合である。第1のデータセットD11は、プログラムX(第1のプログラム)にアクセスされるデータ(第1のデータ)である。
For example, the data set D1 is the entire data element in the program asset. The
また、処理部1bは、システム2のプログラムY(第2のプログラム)のコードを解析し、当該コードからプログラムYによりアクセスされるデータ要素d4,d5,d6,d7,d8をデータ集合D1から特定する。第2のデータセットD12は、データ要素d4,d5,d6,d7,d8を要素とする集合である。第2のデータセットD12は、プログラムY(第2のプログラム)にアクセスされるデータ(第2のデータ)である。
Further, the
処理部1bは、第1のプログラムおよび第2のプログラムの両方にアクセスされるデータを、複数の業務から参照される、または、更新される共通データとして出力する。上記の例では、第1のデータセットD11および第2のデータセットD12の両方に属するデータ要素が、第1のプログラムおよび第2のプログラムの両方にアクセスされるデータである。このため、処理部1bは、第1のデータセットD11および第2のデータセットD12の両方に属するデータ要素を、複数の業務から参照される、または、更新される共通データとして出力してもよい。
The
例えば、処理部1bは、第1のデータセットD11と第2のデータセットD12とを比較することで、プログラムX,Yの両方によりアクセスされるデータ要素d4,d5を特定する。そして、処理部1bは、データ要素d4,d5をプログラムXに対応する業務およびプログラムYに対応する業務から参照される、または、更新される共通データと判定する。処理部1bは、データ要素d4を示す情報およびデータ要素d5を示す情報(例えば、データ要素d4の識別情報およびデータ要素d5の識別情報)を、共通データを示す情報として出力する。
For example, the
また、処理部1bは、第1のデータセットD11の中で、プログラムX,YのうちプログラムXからのみ更新されるデータ要素d1,d2,d3を、プログラムXの固有データと判定してもよい。そして、処理部1bは、当該固有データを示す情報(例えば、データ要素d1,d2,d3それぞれの識別情報)を出力してもよい。
Further, the
また、処理部1bは、第2のデータセットD12の中で、プログラムX,YのうちプログラムYからのみ更新されるデータ要素d6,d7,d8を、プログラムYの固有データと判定してもよい。そして、処理部1bは、当該固有データを示す情報(例えば、データ要素d6,d7,d8それぞれの識別情報)を出力してもよい。
Further, the
出力画面4は、分離装置1により出力される画面の一例である。表示装置3は、分離装置1から出力画面4の情報を受信し、出力画面4を表示する。出力画面4は、画面部品4a,4b,4cを有する。
The
画面部品4aは、プログラムXとデータ要素d1,d2,d3(固有データ)とを示すアイコンを一単位にまとめて表示するための画像である。処理部1bは、プログラムXおよびデータ要素d1,d2,d3により実現される業務名(例えば、「業務A1」)や該当の業務に関連する語句などをプログラムXのソースコード(例えば、コメントの記述)などから抽出して画面部品4aに含めてもよい。
The
画面部品4bは、プログラムYとデータ要素d6,d7,d8(固有データ)とを示すアイコンを一単位にまとめて表示するための画像である。処理部1bは、プログラムYおよびデータ要素d6,d7,d8により実現される業務名(例えば、「業務A2」)や該当の業務に関連する語句などをプログラムYのソースコード(例えば、コメントの記述)などから抽出して画面部品4bに含めてもよい。
The
画面部品4cは、プログラムX,Yの両方から参照、または、更新されるデータ要素d4,d5を示すアイコンを一単位にまとめて表示するための画像である。画面部品4cは、画面部品4a,4bの領域とは重複しない領域に表示される。
The
出力画面4では、プログラムがデータにアクセス(参照/更新)するという関係性を矢印によって表している。すなわち、ユーザは、出力画面4により下記の内容を把握可能である。プログラムXは、固有データに分類されるデータ要素d1,d2,d3にアクセスする。プログラムXは、共通データに分類されるデータ要素d4,d5にアクセスする。プログラムYは、固有データに分類されるデータ要素d6,d7,d8にアクセスする。プログラムYは、共通データに分類されるデータ要素d4,d5にアクセスする。
In the
分離装置1によれば、対象のシステムの第1のプログラムにアクセスされるデータと、対象のシステムの第2のプログラムにアクセスされるデータとが特定される。そして、分離装置1により、第1のプログラムおよび第2のプログラムの両方にアクセスされるデータが、複数の業務から参照される、または、更新される共通データとして出力される。 According to the separation device 1, data accessed by the first program of the target system and data accessed by the second program of the target system are specified. Then, the data accessed by both the first program and the second program is output as common data that is referred to or updated from a plurality of tasks by the separation device 1.
これにより、複数の業務によりアクセスされるデータを対象のシステムから適切に分離可能になる。
ここで、例えば、エンティティ(例えば、プログラムやデータ)間の依存関係の重みの合計が期待値よりも高くなるようにエンティティ群を複数の単位(例えば、業務単位のクラスタ)に分割する方法が考えられる。この方法では、分割の結果、システムの処理に用いられるデータは、当該データとの関連性が比較的強いプログラムとともに、何れかの分割単位に含まれることになる。すると、例えば、当該データと、比較的関連性の強い単一の業務との関係が分かり易くなる一方、当該データと他の業務との関連性を把握し難くなる。
Thereby, data accessed by a plurality of tasks can be appropriately separated from the target system.
Here, for example, a method of dividing an entity group into a plurality of units (for example, clusters of business units) so that the sum of dependency weights between entities (for example, programs and data) becomes higher than an expected value is considered. It is done. In this method, as a result of the division, data used for system processing is included in one of the division units together with a program having a relatively strong relationship with the data. Then, for example, while it becomes easy to understand the relationship between the data and a single business having a relatively strong relationship, it is difficult to grasp the relationship between the data and another business.
一方、分離装置1によれば、第1のプログラムおよび第2のプログラムの両方にアクセスされるデータを共通データと判定し、共通データを示す情報を出力するので、その出力内容により複数の業務にアクセスされる共通データを適切に把握可能になる。その結果、共通データを介して関連付けられる複数のプログラムを一単位とする業務(あるいは複数の業務をひとまとめにした機能)をシステム2から抽出することも可能になる。 On the other hand, according to the separating apparatus 1, data accessed by both the first program and the second program is determined as common data, and information indicating the common data is output. It becomes possible to appropriately grasp the common data to be accessed. As a result, it is possible to extract from the system 2 a task (or a function in which a plurality of tasks are grouped together) having a plurality of programs associated through the common data as a unit.
すると、例えば、ユーザは、当該複数のプログラムに属するあるプログラムの修正を行う場合に、当該プログラムと共通データを介して関連付けられる他のプログラムを、影響が及ぶ可能性のあるプログラムとして特定することができる。すなわち、プログラムの修正に伴って影響が及ぶ可能性のある別のプログラムを適切に把握可能になる。 Then, for example, when correcting a certain program belonging to the plurality of programs, the user may specify another program associated with the program through common data as a program that may be affected. it can. That is, it becomes possible to appropriately grasp another program that may be affected by the modification of the program.
あるいは、分離装置1は、関連のある複数のプログラムおよび共通データに対応する一部の業務をシステム2から分離させ、別のシステムに移行させることも可能になる。すなわち、システム2内の一部の業務のプログラムについて、他の業務のプログラムへの影響を抑えて別のシステムに移行させることも可能になる。 Alternatively, the separating apparatus 1 can separate a part of work corresponding to a plurality of related programs and common data from the system 2 and transfer it to another system. That is, a part of business programs in the system 2 can be transferred to another system while suppressing the influence on other business programs.
このように、分離装置1によれば、複雑に関連し合う多くのプログラムが存在する場合でも、共通データおよび共通データを基に関連する複数のプログラムを適切に分離可能になる。 As described above, according to the separating apparatus 1, even when there are many complicatedly related programs, the common data and a plurality of related programs can be appropriately separated based on the common data.
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムの例を示す図である。第2の実施の形態の情報処理システムは、分析サーバ100および業務サーバ200を含む。分析サーバ100および業務サーバ200は、ネットワーク10に接続されている。ネットワーク10は、例えば、LAN(Local Area Network)である。ネットワーク10は、ネットワーク20に接続されている。ネットワーク20は、例えば、インターネットなどの広域データ通信ネットワークである。ネットワーク20には、移行先サーバ300が接続されている。
[Second Embodiment]
FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment. The information processing system according to the second embodiment includes an
分析サーバ100は、業務サーバ200で実行されるソフトウェアの分析を行うサーバコンピュータである。ソフトウェアは、多数のプログラムやデータから構成される。一方、ソフトウェアにより実現される業務処理の機能は多岐に渡る。プログラムおよびデータは、業務単位にグループ化可能である。プログラム(またはプログラム群)およびデータを機能単位にグループ化したものをサービス部品と呼ぶこととする。
The
プログラムおよびデータのグループ化(サービス部品化)は、ソフトウェアの一部修正や一部業務機能の他サーバへの移転などを行う上で有用である。例えば、ある業務に関して関連性のあるプログラムやデータを対象に修正を行うことで、当該業務以外のプログラムやデータに対する影響を抑えられる。 Program and data grouping (service componentization) is useful for partially modifying software and transferring some business functions to other servers. For example, by modifying a program or data relevant to a certain business, the influence on the program or data other than the business can be suppressed.
しかし、業務サーバ200により実行されるソフトウェアを構成する各プログラムは、複雑に関連し合っており、ユーザが、プログラム間の関連を事後的に把握することは容易ではない。そこで、分析サーバ100は、当該ソフトウェアを構成するプログラムやデータを業務別に分類し、ユーザに提示する機能を提供する。分析サーバ100は、第1の実施の形態の分離装置1の一例である。
However, the programs constituting the software executed by the
業務サーバ200は、ユーザの業務に関する処理を行うサーバコンピュータである。業務サーバ200の処理は、業務サーバ200で実行されるソフトウェアにより実現される。業務サーバ200は、第1の実施の形態のシステム2の一例である。業務サーバ200は、第1の実施の形態のシステム2に属する1つのサーバコンピュータでもよい。
The
移行先サーバ300は、業務サーバ200から分離された業務(あるいは、業務に対応するプログラムやデータ)の移行先のサーバコンピュータである。移行先サーバ300は、例えば、クラウドシステムによって実現される仮想的なコンピュータ(仮想マシン)でもよいし、オンプレミスシステムにおける物理的なコンピュータ(物理マシン)でもよい。
The
図3は、分析サーバのハードウェア例を示す図である。分析サーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106およびNIC(Network Interface Card)107を有する。各ハードウェアは分析サーバ100のバスに接続されている。業務サーバ200および移行先サーバ300も分析サーバ100と同様のハードウェアを用いて実現できる。
FIG. 3 is a diagram illustrating an example of hardware of the analysis server. The
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、分析サーバ100は複数のプロセッサを有してもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
The
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、分析サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
The
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、分析サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
The
画像信号処理部104は、CPU101からの命令に従って、分析サーバ100に接続されたディスプレイ11に画像を出力する。ディスプレイ11として、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
The image
入力信号処理部105は、分析サーバ100に接続された入力デバイス12から入力信号を取得し、CPU101に出力する。入力デバイス12としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、分析サーバ100に、複数の種類の入力デバイスが接続されていてもよい。
The input
媒体リーダ106は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
The
媒体リーダ106は、例えば、記録媒体13から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体13は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体13やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
For example, the
NIC107は、ネットワーク10に接続され、ネットワーク10を介して業務サーバ200や移行先サーバ300などと通信を行う通信インタフェースである。NIC107は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
The
図4は、分析サーバの機能例を示す図である。分析サーバ100は、記憶部110および制御部120を有する。記憶部110は、例えば、RAM102またはHDD103に確保した記憶領域を用いて実装される。制御部120は、例えば、プログラムを用いて実装される。
FIG. 4 is a diagram illustrating a function example of the analysis server. The
記憶部110は、制御部120の処理に用いられる各種の情報を記憶する。記憶部110は、プログラム記憶部111および分析結果記憶部112を有する。
プログラム記憶部111は、分析対象となるプログラム資産を記憶する。プログラム資産は、業務サーバ200で実行されるソフトウェアのプログラム(例えば、ソースプログラムやオブジェクトプログラム)を含む。
The
The
分析結果記憶部112は、制御部120によるプログラム資産の分析結果を記憶する。例えば、分析結果記憶部112は、プログラムとデータとの関係を示す関連情報、サービス部品の候補であるサービス部品候補を示すサービス部品候補情報、特定したサービス部品を示すサービス部品情報を記憶する。また、分析結果記憶部112は、特定した共通データを示す共通部品情報や共通データによって関連付けられる準サービス部品を示す準サービス部品情報を記憶する。
The analysis
制御部120は、分析サーバ100によるプログラム資産の分析を制御する。制御部120は、分類部121、候補生成部122および分析部123を有する。
分類部121は、プログラムを解析し、プログラム間の呼出関係を取得する。分類部121は、プログラム間の呼出関係に基づいて、複数のプログラムをプログラム群に分類する。分類部121は、各プログラムの内、他のプログラムから呼び出されていない起点のプログラムを特定し、起点のプログラムおよび他のプログラムに含まれる呼出関係を追跡することで、プログラムの呼出構造を起点のプログラム毎に作成する。分類部121は、呼出構造に基づいて、呼出関係によって関連付けられたプログラムの集合(プログラム群)を特定する。分類部121は、プログラム群とデータとの関係を示す関連情報を生成し、分析結果記憶部112に格納する。
The
The
候補生成部122は、分類部121によって分類された各プログラム群とデータとの関係性から、サービス部品候補を抽出する。候補生成部122は、サービス部品候補を示すサービス部品候補情報を生成し、分析結果記憶部112に格納する。
The
ここで、サービス部品候補は、比較的関連の強いプログラム群とデータとのグループであり、サービス部品の候補である。例えば、候補生成部122は、特開2013−148987号公報に記載されたクラスタリングの技術を用いて、サービス部品候補を生成してもよい。この技術では、部分集合が意味する役割を表すための本筋となる重要なエンティティとエンティティ間の依存関係とが、その部分集合に含まれることとする。そして、ソフトウェアの本筋の理解の妨げとなる枝葉末節のエンティティやエンティティ間の依存関係が、その部分集合を形成する際に軽視されることとする。重要か枝葉末節かの判断は、依存関係の数で判断される。
Here, the service component candidate is a group of relatively related programs and data, and is a service component candidate. For example, the
このとき、候補生成部122は、あるデータに対して、プログラム群に記述されたRead/Writeのアクセス用のコードが多いほど、当該プログラム群と当該データとの関連が強いと判断してもよい。また、候補生成部122は、Writeのアクセスの重みを、Readのアクセスの重みより大きくしてもよい。
At this time, the
分析部123は、候補生成部122により生成されたサービス部品候補に基づいて、サービス部品および準サービス部品を取得する。分析部123は、あるサービス部品候補に関連するデータのうち、他のサービス部品候補からアクセスされるデータを共通データとして抽出する。共通データには2種類ある。複数のサービス部品候補からアクセスされ、少なくとも1つのサービス部品候補により更新される共通データは、グローバルデータと呼ばれる。また、複数のサービス部品候補からアクセスされ、何れのサービス部品候補にも更新されない共通データは、マスターデータと呼ばれる。
The
分析部123は、共通データを、現在所属するサービス部品候補から除外する(共通データをグループ外部に出す)。共通データのサービス部品候補からの除外により、あるプログラム群と別のプログラム群との間の関連がなくなった場合、該当の各プログラム群のグループ化を解除する。分析部123は、ここでグループ化を解除されなかったサービス部品候補をサービス部品とする。
The
ただし、共通データのみによって関連付けられる複数のプログラム群が存在する場合、分析部123は、当該複数のプログラム群と、当該共通データとを再度グループ化する。分析部123は、再度グループ化されたプログラム群および共通データのグループを、準サービス部品とする。
However, when there are a plurality of program groups associated only by the common data, the
分析部123は、サービス部品を示すサービス部品情報、準サービス部品を示す準サービス部品情報および共通データを示す共通データ情報を出力する。例えば、分析部123は、ディスプレイ11に当該出力内容を表示させてもよい。また、分析部123は、ネットワーク10に接続されたクライアントコンピュータに当該出力内容を送信し、クライアントコンピュータに当該出力内容を表示させてもよい。
The
ここで、分析部123は、サービス部品および準サービス部品を、移行先サーバ300への移行対象の単位として出力してもよい。例えば、ユーザは、サービス部品および準サービス部品の分類結果を確認することで、業務サーバ200から移行先サーバ300へ移行させるひとまとまりのプログラム群やデータを容易に特定可能になる。
Here, the
図5は、プログラム資産の例を示す図である。分類部121は、プログラム記憶部111に記憶されたプログラム資産に基づいて、プログラム間の呼出関係を取得する。図5中、コマンド“CALL”は、他のプログラムの呼び出しを示す。コマンド“CALL”の引数は、呼出先のプログラムの識別名である。また、コマンド“READ”は、データの参照(READ)を示す。コマンド“READ”の引数は、参照元のデータの識別名である。更に、コマンド“WRITE”は、データの更新(WRITE)を示す。コマンド“WRITE”の引数は、更新先のデータの識別名である。
FIG. 5 is a diagram illustrating an example of program assets. The
例えば、プログラムAは、プログラムBおよびプログラムDを呼び出す。プログラムBは、プログラムCを呼び出す。プログラムCは、データaを参照する。プログラムDは、プログラムFを呼び出す。また、プログラムDは、データbを更新する。プログラムEは、プログラムDを呼び出す。プログラムFは、他のプログラムを呼び出さないし、データの参照/更新も行わない。 For example, program A calls program B and program D. Program B calls program C. The program C refers to the data a. Program D calls program F. Program D updates data b. Program E calls program D. The program F does not call other programs and does not refer to / update data.
なお、図5で示したプログラム資産は一例であり、プログラム資産は、他のプログラムを含み得る。
図6は、プログラムの呼出構造の例を示す図である。分類部121は、図5で例示したプログラム資産に対して、次のような呼出構造を作成する。プログラムA〜Fのうち、呼出元のプログラムがないプログラムは、プログラムA,Eである。したがって、分類部121は、プログラムA,Eそれぞれを起点として、プログラムの呼出構造を作成する。図6(A)は、呼出構造の具体例を示す。まず、プログラムAを起点とする場合を考える。
Note that the program assets shown in FIG. 5 are examples, and the program assets may include other programs.
FIG. 6 is a diagram illustrating an example of a program call structure. The
プログラムAを起点として、コマンド“CALL”の引数を辿ると、プログラムAがプログラムBを呼び出し、プログラムBがプログラムCを呼び出すという呼出構造を得られる。また、プログラムAがプログラムDを呼び出し、プログラムDがプログラムFを呼び出すという呼出構造を得られる。このため、分類部121は、プログラムAおよびプログラムAを起点にして辿れるプログラムB,C,D,Fをプログラム群Aに分類する。
When the argument of the command “CALL” is traced starting from the program A, a call structure in which the program A calls the program B and the program B calls the program C is obtained. Further, a call structure in which the program A calls the program D and the program D calls the program F can be obtained. Therefore, the
次に、プログラムEを起点として、コマンド“CALL”の引数を辿ると、プログラムEがプログラムDを呼び出し、プログラムDがプログラムFを呼び出すという呼出構造を得られる。このため、分類部121は、プログラムEおよびプログラムEを起点にして辿れるプログラムD,Fをプログラム群Eに分類する。
Next, when the argument of the command “CALL” is traced starting from the program E, a call structure in which the program E calls the program D and the program D calls the program F is obtained. Therefore, the
続いて、分類部121は、各プログラム群とデータとの対応関係を取得する。図6(B)は、プログラム群とデータとの対応関係の具体例を示す。プログラムCは、データaを参照する。また、プログラムDは、データbを更新する。プログラムC,Dは、プログラム群Aに属する。したがって、分類部121は、プログラム群Aからデータaを参照し、プログラム群Aからデータbを更新するという対応関係を得る。また、プログラムDは、プログラム群Eにも属する。したがって、分類部121は、プログラム群Eからデータbを更新するという対応関係を得る。
Subsequently, the
分類部121は、取得したプログラム群とデータとの対応関係を示す関連情報を作成する。図6(C)は、図6(B)の関係に対して作成された関連情報112aの例である。関連情報112aは、分析結果記憶部112に格納される。ここで、参照を“#read”で示し、更新を“#write”で示すものとする。例えば、関連情報112aの1行目のレコードは、プログラム群Aからデータaを参照する(“#read”)という関係を示す。関連情報112aの2行目のレコードは、プログラム群Aからデータbを更新する(“#write”)という関係を示す。関連情報112aの3行目のレコードは、プログラムEからデータbを更新する(“#write”)という関係を示す。
The
図7は、サービス部品候補の生成例を示す図である。ここで、分類部121によるプログラム群とデータとの対応関係の取得結果が、図6で例示したプログラム群A,Eおよびデータa,bの対応関係の他に、プログラム群X,Y,Zおよびデータc,dに関する対応関係を含むとする。具体的には、プログラム群Eは、更に、データcを参照する。プログラム群Xは、データaを更新する。プログラム群Xは、データcを参照する。プログラム群Xは、データdを参照する。プログラム群Yは、データdを更新する。プログラム群Zは、データcを参照する。関連情報112bは、プログラム群A,E,X,Y,Zとデータa,b,c,dとの対応関係を示す。関連情報112bは、分類部121により作成され、分析結果記憶部112に格納されている。
FIG. 7 is a diagram illustrating an example of generating service component candidates. Here, the acquisition result of the correspondence relationship between the program group and the data by the
候補生成部122は、以下の式(1)を用いて、各プログラム群とデータとの関係性を生成する。
E(A,B)=1/(n×d_in(B))・・・(1)
ここで、E(A,B)は、エンティティAからエンティティBへの依存関係の本質度(重み)を示す。d_in(B)は、エンティティBへの入次数である。nは、データの参照の場合に2であり、データの更新の場合に1とする。E(A,B)が大きいほど、エンティティA,Bの関係は強く、E(A,B)が小さいほど、エンティティA,Bの関係は弱い。
The
E (A, B) = 1 / (n × d_in (B)) (1)
Here, E (A, B) indicates the essentiality (weight) of the dependency relationship from the entity A to the entity B. d_in (B) is an entry degree to the entity B. n is 2 when referring to data, and 1 when updating data. The larger E (A, B), the stronger the relationship between entities A and B, and the smaller E (A, B), the weaker the relationship between entities A and B.
式(1)によれば、あるデータについて、参照元のプログラムの数が多いほど、当該データと参照元の各プログラムとの関係は弱いと判定される。また、データを更新するプログラムと当該データとの関係は、当該データを参照するプログラムと当該データとの関係よりも強いと判定される。そして、候補生成部122は、多くのプログラムからアクセスされるデータを、何れかのサービス部品候補に振り分けて出力する。
According to Equation (1), it is determined that the relationship between the data and each reference source program is weaker as the number of reference source programs increases for a certain data. Further, it is determined that the relationship between the data updating program and the data is stronger than the relationship between the data referring to the data and the data. Then, the
例えば、プログラム群A,Eは、データbを更新するので、他のデータに比べて、データbとの関係が強い。プログラム群Xは、データaを更新するが、他のデータへのアクセスも多いことから、各データとの関係性がそれほど強くはない。プログラム群Yは、データdを更新するので、他のデータに比べてデータdとの関係が比較的強い。プログラム群Zは、データcのみを参照しており、データcとの関係をもつのみである。 For example, since the program groups A and E update the data b, the relationship with the data b is stronger than other data. The program group X updates the data a, but since there are many accesses to other data, the relationship with each data is not so strong. Since the program group Y updates the data d, the relationship with the data d is relatively stronger than other data. The program group Z refers only to the data c and has only a relationship with the data c.
図8は、サービス部品候補の生成結果の例を示す図である。候補生成部122は、クラスタリングの結果、サービス部品候補31,32,33を生成する。
サービス部品候補31は、プログラム群A,Eおよびデータa,bを含む。サービス部品候補31のサービス部品候補ID(IDentifier)は“1”である。サービス部品候補32は、プログラム群X,Zおよびデータcを含む。サービス部品候補32のサービス部品候補IDは“2”である。サービス部品候補33は、プログラム群Yおよびデータdを含む。サービス部品候補33のサービス部品候補IDは“3”である。
FIG. 8 is a diagram illustrating an example of a service component candidate generation result. The
The
サービス部品候補情報112cは、サービス部品候補31,32,33を示す情報である。サービス部品候補情報112cは、候補生成部122により生成され、分析結果記憶部112に格納される。サービス部品候補情報112cは、サービス部品候補IDと、プログラム群またはデータの識別子との対応関係を含む。
The service
例えば、サービス部品候補情報112cは、サービス部品候補ID“1”と、“プログラム群A”との対応関係を示すレコードを含む。このレコードは、プログラム群Aがサービス部品候補31に属することを示す。
For example, the service
また、サービス部品候補情報112cは、サービス部品候補ID“1”と、“データa”との対応関係を示すレコードを含む。このレコードは、データaがサービス部品候補31に属することを示す。
The service
サービス部品候補情報112cには、サービス部品候補IDとプログラム群またはデータの識別子との他の対応関係を示すレコードも登録されている。
分析部123は、あるサービス部品候補に属するデータのうち、他のサービス部品候補から更新されるデータを共通データ(グローバルデータ)とする。分析部123は、該当の共通データが属するサービス部品候補から、共通データを取り除く。例えば、サービス部品候補31に属するデータaは、サービス部品候補31以外のサービス部品候補に属するプログラム群Xから更新されるので、共通データ(グローバルデータ)である。このため、分析部123は、サービス部品候補31からデータaを取り除く。
In the service
The
すなわち、分析部123は、サービス部品候補31(第1のグループ)に属する第1のデータ(データa,b)のうちサービス部品候補32(第2のグループ)のプログラム群Xのアクセス先である第2のデータ(データa,c)と重複する部分(データa)が、プログラム群X(第2のプログラム)により更新される場合、当該部分を共通データと判定し、サービス部品候補31から除外する。
That is, the
また、分析部123は、サービス部品候補31(第1のグループ)に属する第1のデータのうち共通データ以外のプログラム群A(第1のプログラム)により更新される他の部分(データb)をサービス部品候補31の固有データとして出力する。固有データは、固有データが属するサービス部品候補(またはサービス部品)の外部から更新されないデータである。
Further, the
なお、サービス部品候補31からデータaを取り除いても、プログラム群A,Eは、両方ともデータbを更新するという関係が残る。このため、サービス部品候補31からデータaを取り除いた後は、サービス部品候補31にはプログラムA,Eおよびデータbが属する状態となる(分析部123は、サービス部品候補31を分割しない)。
Even if the data a is removed from the
また、分析部123は、あるサービス部品候補に属するデータのうち、当該データが属するサービス部品候補内のプログラム群および他のサービス部品候補内のプログラム群から参照されるが更新されないデータを共通データ(マスターデータ)とする。分析部123は、該当の共通データが属するサービス部品候補から、共通データを取り除く。例えば、サービス部品候補32に属するデータcは、サービス部品候補32とは異なるサービス部品候補31に属するプログラム群Eから参照され、かつ、更新されないので、共通データ(マスターデータ)である。このため、分析部123は、サービス部品候補32からデータcを取り除く。サービス部品候補32からデータcを取り除くと、プログラム群X,Zのつながりはなくなる。このため、分析部123は、サービス部品候補32を分割する。この場合、サービス部品候補32は、2つのプログラム群X,Zに分割される。
Further, the
なお、サービス部品候補33は、グローバルデータおよびマスターデータに相当する共通データをもたない(データdは、サービス部品候補33における固有データである)。このため、分析部123は、サービス部品候補33については、そのまま維持する。分析部123は、この時点で残ったサービス部品候補をサービス部品とする。
The service component candidate 33 does not have common data corresponding to global data and master data (data d is unique data in the service component candidate 33). Therefore, the
図9は、サービス部品および共通データの分類結果の例を示す図である。分析部123は、サービス部品41,42を示すサービス部品情報112dおよび共通データを示す共通データ情報112eを生成する。サービス部品情報112dおよび共通データ情報112eは、分析結果記憶部112に格納される。
FIG. 9 is a diagram illustrating an example of a classification result of service components and common data. The
サービス部品41は、プログラム群A,Eおよびデータbを含む。サービス部品41のサービス部品IDは“1”である。データbは、サービス部品41内のプログラム群A,Eによって更新され、サービス部品41の外部のプログラム群によっては更新されない。このため、データbは、サービス部品41における固有データである。サービス部品42は、プログラム群Yおよびデータdを含む。サービス部品42のサービス部品IDは“2”である。データdは、サービス部品42内のプログラム群Yによって更新され、サービス部品42の外部のプログラム群によっては更新されない。このため、データdは、サービス部品42における固有データである。
The
サービス部品情報112dは、サービス部品IDとプログラム群またはデータの識別名との対応関係を示すレコードを含む。例えば、サービス部品情報112dは、サービス部品ID“1”と“プログラム群A”との対応関係を示すレコードを含む。このレコードは、プログラム群Aがサービス部品41に属することを示す。
The
また、サービス部品情報112dは、サービス部品ID“1”と“データb”との対応関係を示すレコードを含む。このレコードは、データbがサービス部品41に属することを示す。
The
サービス部品情報112dには、サービス部品IDとプログラム群またはデータの識別子との他の対応関係を示すレコードも登録されている。
また、データa,cは共通データである。データaの共通データIDは“c1”である。データcの共通データIDは“c2”である。共通データ情報112eは、共通データIDと、データの識別名との対応関係を示すレコードを含む。
In the
Data a and c are common data. The common data ID of data a is “c1”. The common data ID of the data c is “c2”. The common data information 112e includes a record indicating the correspondence between the common data ID and the data identification name.
例えば、共通データ情報112eは、共通データID“c1”と、“データa”との対応関係を示すレコードを含む。このレコードは、データaが共通データID“c1”に対応する共通データであることを示す。 For example, the common data information 112e includes a record indicating a correspondence relationship between the common data ID “c1” and “data a”. This record indicates that the data a is common data corresponding to the common data ID “c1”.
また、共通データ情報112eは、共通データID“c2”と、“データc”との対応関係を示すレコードを含む。このレコードは、データcが共通データID“c2”に対応する共通データであることを示す。 The common data information 112e includes a record indicating a correspondence relationship between the common data ID “c2” and “data c”. This record indicates that the data c is common data corresponding to the common data ID “c2”.
ここで、分析部123は、プログラム群X,Zに分割したサービス部品候補32について、準サービス部品として再グループ化できるか否かを判定する。具体的には、分析部123は、分割したサービス部品候補32の内部のデータが全て共通データであった場合、サービス部品候補32を準サービス部品として再グループ化する。一方、分析部123は、分割したサービス部品候補32の内部のデータが全て共通データでなかった場合、サービス部品候補32を準サービス部品として再グループ化しない。
Here, the
図9の例では、サービス部品候補32に属していたデータcは、共通データである。また、サービス部品候補32には、それ以外のデータはなかったので、サービス部品候補32の内部のデータが全て共通データであったことになる。したがって、分析部123は、プログラム群X,Zおよびデータcを準サービス部品として再グループ化する。
In the example of FIG. 9, the data c belonging to the
図10は、準サービス部品の分類結果の例を示す図である。分析部123は、サービス部品41,42に加えて、準サービス部品43を特定する。準サービス部品43は、プログラム群X,Zおよびデータcを含む。準サービス部品43のサービス部品IDは“3”である。
FIG. 10 is a diagram illustrating an example of the classification result of the semi-service component. The
このように、分析部123は、プログラム群X,Z(第3のプログラムおよび第4のプログラム)と、プログラム群X,Zにより参照されるがプログラム群X,Zにより更新されない共通データ(データc)とを含む準サービス部品43(第3のグループ)を、分析対象の業務サーバ200のプログラム資産から抽出する。
Thus, the
図11は、準サービス部品の分類結果の例(続き)を示す図である。分析部123は、更に、特定したサービス部品41,42および準サービス部品43それぞれの内部において、特に関係が強いプログラム群とデータとを集約する。例えば、準サービス部品43の内部では、プログラム群Zはデータcのみにアクセスする。あるサービス部品の内部において、あるプログラム群が、あるデータにのみアクセスする場合、当該プログラム群と当該データとの関係は特に強いと考えられる。したがって、分析部123は、プログラム群Zとデータcとを集約し、サブサービス部品44とする。サブサービス部品44のサービス部品IDは“4”である。
FIG. 11 is a diagram illustrating an example (continued) of the classification result of the semi-service component. The
分析部123は、更に、サービス部品41,42を示すサービス部品情報112fと、準サービス部品43およびサブサービス部品44を示す準サービス部品情報112gとを生成し、分析結果記憶部112に格納する。
The
サービス部品情報112fは、該当のサービス部品を囲う枠の表示色を示す情報を各レコードの末尾に含む点が、サービス部品情報112dと異なる。例えば、サービス部品情報112fは、サービス部品ID“1”と“プログラム群A”と“RED”とを対応付けたレコードを含む。このレコードは、プログラム群Aがサービス部品41に属しており、サービス部品41を表示する場合に、赤色(“RED”)の枠線を用いることを示す。
The
また、サービス部品情報112fは、サービス部品ID“1”と“データb”と“RED”とを対応付けたレコードを含む。このレコードは、データbがサービス部品41に属しており、サービス部品41を表示する場合に、赤色の枠線を用いることを示す。
The
サービス部品情報112fには、サービス部品候補IDとプログラム群またはデータの識別子との他の対応関係を示すレコードも登録されている。
準サービス部品情報112gは、サービス部品IDと、プログラム群またはデータの識別名と、準サービス部品を表示する場合に用いる枠線の色とを対応付けたレコードを含む。準サービス部品情報112gは、サービス部品ID“3”と“プログラム群X”と“GREEN”とを対応付けたレコードを含む。このレコードは、プログラム群Xが準サービス部品43に属しており、準サービス部品43を表示する場合に、緑色(“GREEN”)の枠線を用いることを示す。
In the
The semi-service component information 112g includes a record in which a service component ID, a program group or data identification name, and a frame line color used when displaying the semi-service component are associated with each other. The quasi-service component information 112g includes a record in which the service component ID “3”, “program group X”, and “GREEN” are associated with each other. This record indicates that the program group X belongs to the
ここで、準サービス部品情報112gの2行目のレコードは、サービス部品の入れ子関係を表す特殊なレコードである。当該レコードは、サービス部品IDと、当該サービス部品IDで示されるサービス部品の内部に入れ子に定義されたサブサービス部品のサービス部品IDと、当該サブサービス部品のサブサービス部品IDとの対応関係を示す。 Here, the record on the second line of the quasi-service component information 112g is a special record representing the nesting relationship of service components. The record indicates a correspondence relationship between the service component ID, the service component ID of the sub service component nested within the service component indicated by the service component ID, and the sub service component ID of the sub service component. .
例えば、準サービス部品情報112gの2行目のレコードは、サービス部品ID“3”に対応する準サービス部品43の内部に、サービス部品ID“4”に対応するサブサービス部品44があることを示す。また、サブサービス部品44のサブサービス部品IDが“SUB1”であることを示す。
For example, the record on the second line of the semi-service component information 112g indicates that the
更に、準サービス部品情報112gは、サブサービス部品44に属するプログラム群およびデータに関するレコードも含む。例えば、準サービス部品情報112gの3行目のレコードは、サービス部品ID“4”と“プログラム群Z”と“SUB”とを対応付けた情報である。このレコードは、プログラム群Zがサブサービス部品44に属することを示す。また、“SUB”の設定は、サブサービス部品44が、何れかのサービス部品の内部に入れ子に定義されるものであることを示す。準サービス部品情報112gによれば、分析部123は、2行目のレコードに基づいて、サブサービス部品44が準サービス部品43の内部に入れ子に定義されるものであることを把握できる。
Further, the quasi-service component information 112g includes a record relating to a program group and data belonging to the
準サービス部品情報112gには、データcについても同様に、サブサービス部品44に属することを示すレコードが登録されている。
分析部123は、サービス部品情報112fおよび準サービス部品情報112gに基づいて、サービス部品41,42、準サービス部品43およびサブサービス部品44の分類結果をディスプレイ11などに表示することができる。
Similarly, a record indicating that the data c belongs to the
The
次に、分析サーバ100の処理手順を説明する。
図12は、分析サーバの処理例を示すフローチャートである。
(S10)分類部121は、ユーザにより分析対象とするソフトウェアの指定を受け付けると、当該ソフトウェアを構成する複数のプログラムを業務サーバ200から取得し、プログラム記憶部111に格納する。分類部121は、取得した複数のプログラムを解析し、プログラム間の呼出関係に基づいて、各プログラムをプログラム群に分類する。プログラム解析の詳細は後述される。
Next, the processing procedure of the
FIG. 12 is a flowchart illustrating a processing example of the analysis server.
(S10) When the
(S11)分類部121は、プログラム群に属するプログラムのデータのアクセス先に基づいて、プログラム群とデータとの関連情報を生成し、分析結果記憶部112に格納する。
(S11) The
(S12)候補生成部122は、関連情報に基づいて分割処理を実行することで、プログラム群およびデータのクラスタリングを行い、サービス部品候補を抽出する。クラスタリングには、例えば、前述の特開2013−148987号公報の方法を用いることができる。候補生成部122は、クラスタリングの結果、サービス部品候補情報を生成し、分析結果記憶部112に格納する。
(S12) The
(S13)分析部123は、サービス部品候補情報に基づいて、共通データを抽出する。分析部123は、共通データを示す共通データ情報を生成し、分析結果記憶部112に格納する。共通データの抽出処理の詳細は後述される。
(S13) The
(S14)分析部123は、共通データの抽出結果に基づいて、サービス部品の分類を行う。分析部123は、サービス部品の分類結果を示すサービス部品情報および準サービス部品情報を生成し、分析結果記憶部112に格納する。また、分析部123は、サービス部品情報および準サービス部品情報に基づいて、サービス部品および準サービス部品を示す画面情報を生成し、出力する。例えば、分析部123は、生成した画面情報をディスプレイ11に出力し、サービス部品および準サービス部品を示す画面をディスプレイ11に表示させる。サービス部品の分類処理の詳細は後述される。そして、分析サーバ100の処理が終了する。
(S14) The
ステップS13のサービス部品候補を抽出する処理は、分析対象のシステム(業務サーバ200)の複数のプログラム群(あるいはプログラム)とデータとの関係に基づいて、プログラム群とデータとの複数のグループを抽出する処理であるといえる。例えば、図8で示したように、分析サーバ100は、第1のプログラム群(プログラム群A)および第1のプログラム群にアクセスされる第1のデータ(データa,b)を含む第1のグループ(サービス部品候補31)を分析対象のシステムから抽出する。また、分析サーバ100は、第2のプログラム群(プログラム群X)および第2のプログラム群にアクセスされる第2のデータ(データa,c)のうち第1のデータと重複しない第3のデータ(データc)を含む第2のグループ(サービス部品候補32)を分析対象のシステムから抽出する。
In the process of extracting service component candidates in step S13, a plurality of groups of program groups and data are extracted based on the relationship between a plurality of program groups (or programs) and data of the analysis target system (business server 200). It can be said that it is processing to do. For example, as illustrated in FIG. 8, the
図13は、プログラム解析の処理例を示すフローチャートである。このプログラム解析は、上記のステップS10で実行される。
(S20)分類部121は、分析対象の各プログラムを参照して、プログラム間の呼出関係を取得する。例えば、分類部121は、プログラムに含まれる他のプログラムを呼び出すコマンド(例えば、“CALL”など)を辿ることで、あるプログラムが別のプログラムを呼び出すという呼出関係を取得する。
FIG. 13 is a flowchart illustrating a processing example of program analysis. This program analysis is executed in step S10 described above.
(S20) The
(S21)分類部121は、どのプログラムからも呼び出されていないプログラムを起点に設定する。
(S22)分類部121は、起点のプログラムを1つ選択し、当該起点のプログラムからの呼出構造を取得し、当該呼出構造によりプログラム群を特定する。
(S21) The
(S22) The
(S23)分類部121は、全ての起点のプログラムに対して呼出構造を取得したか否かを判定する。全ての起点のプログラムに対して呼出構造を取得した場合、ステップS24に処理が進む。全ての起点のプログラムに対して呼出構造を取得していない場合、ステップS22に処理が進む。
(S23) The
(S24)分類部121は、あるプログラムのアクセス先のデータを取得する。例えば、分類部121は、プログラムに含まれるデータに対する参照や更新を行うコマンド(例えば、“READ”や“WRITE”など)を検出することで、プログラムのアクセス先となっているデータを取得する。
(S24) The
(S25)分類部121は、1つのプログラム群を選択し、該当のデータにアクセスするプログラムが該当のプログラム群にあるか否かを判定する。ある場合、ステップS26に処理が進む。ない場合、ステップS27に処理が進む。
(S25) The
(S26)分類部121は、該当のプログラム群とアクセス先のデータとの関係を示すレコード(アクセス内容がREADかWRITEかといった情報を含む)を関連情報に記録する。
(S26) The
(S27)分類部121は、全てのプログラム群に対してデータとの関係を確認したか否かを判定する。全てのプログラム群に対して該当のデータとの関係を確認した場合、ステップS28に処理が進む。全てのプログラム群に対して該当のデータとの関係を確認していない場合、ステップS25に処理が進む。
(S27) The
(S28)分類部121は、対象の全てのデータに対してプログラムとの関係を確認したか否かを判定する。対象の全てのデータに対してプログラムとの関係を確認した場合、ステップS29に処理が進む。対象の全てのデータに対してプログラムとの関係を確認していない場合、ステップS24に処理が進む。
(S28) The
(S29)分類部121は、プログラム群とデータとの関連情報を出力する。例えば、分類部121は、プログラム群とデータとの関連情報(あるいは、図7で例示した関連情報に基づくプログラム群の関係を表す画像)をディスプレイ11に表示させてもよい。そして、プログラム解析が終了する。
(S29) The
図14は、共通データ抽出の処理例を示すフローチャートである。この共通データ抽出は、上記のステップS13で実行される。
(S30)分析部123は、分析結果記憶部112に記憶されたサービス部品候補情報を参照して、1つのサービス部品候補を取得する。
FIG. 14 is a flowchart illustrating a processing example of common data extraction. This common data extraction is executed in step S13 described above.
(S30) The
(S31)分析部123は、分析結果記憶部112に記憶された関連情報を参照して、該当のサービス部品候補内のデータに対する更新処理(WRITE)を特定する。
(S32)分析部123は、特定した更新処理が、サービス部品候補内のデータを外部(サービス部品候補の外部)から更新するものであるか否かを判定する。外部から更新するものである場合、ステップS33に処理が進む。外部から更新するものでない場合(すなわち、サービス部品候補の内部のプログラム群が更新するものである場合)、ステップS34に処理が進む。
(S31) The
(S32) The
(S33)分析部123は、該当のサービス部品候補の外部から更新されるデータを、共通データとして、当該サービス部品候補の外部に定義する。分析部123は、分析結果記憶部112に記憶された共通データ情報に、今回取得した共通データのレコードを追加する。この場合の共通データは、グローバルデータである。そして、ステップS37に処理が進む。
(S33) The
(S34)分析部123は、分析結果記憶部112に記憶された関連情報を参照して、ステップS30で取得したサービス部品候補内のデータに対する参照処理(READ)を特定する。
(S34) The
(S35)分析部123は、該当のサービス部品候補内のデータのうち、当該サービス部品候補の内部および外部の両方から参照されるのみのデータがあるか否かを判定する。当該サービス部品候補の内部および外部の両方から参照されるのみのデータがある場合、ステップS36に処理が進む。当該サービス部品候補の内部および外部の両方から参照されるのみのデータがない場合、ステップS37に処理が進む。
(S35) The
(S36)分析部123は、該当のサービス部品候補の内部および外部の両方から参照されるのみのデータを、共通データとして、当該サービス部品候補の外部に定義する。分析部123は、分析結果記憶部112に記憶された共通データ情報に、今回取得した共通データのレコードを追加する。この場合の共通データは、マスターデータである。
(S36) The
(S37)分析部123は、ステップS30で選択したサービス部品候補内の全てのデータの関係(参照や更新の関係)を取得したか否かを判定する。全てのデータの関係を取得した場合、ステップS38に処理が進む。全てのデータの関係を取得していない場合、ステップS31に処理が進む。
(S37) The
(S38)分析部123は、分析結果記憶部112に記憶されたサービス部品候補情報を参照して、サービス部品候補内で関係がないものが存在するか否かを判定する。サービス部品候補内で関係がないものが存在する場合、ステップS39に処理が進む。サービス部品候補内で関係ないものが存在しない場合、ステップS40に処理が進む。ここで、ステップS38における「関係」とは、「複数のプログラム群の間の関係」である。「複数のプログラム群の間に関係がある」とは、「複数のプログラム群が、該当のサービス部品候補内の同じデータにアクセスすること」である。「複数のプログラム群の間に関係がない」とは、「複数のプログラム群が、該当のサービス部品候補内の同じデータにアクセスしないこと」である。
(S38) The
(S39)分析部123は、分析結果記憶部112に記憶された関連情報およびサービス部品候補情報に基づいて、関係がある範囲で部品を分割する。すなわち、分析部123は、該当のサービス部品候補に属する複数のプログラム群を、当該サービス部品候補内の同じデータにアクセスするという関係をもつ単位に分割し、新たな複数のサービス部品候補を作成する。ここで、該当のサービス部品候補内の同じデータにアクセスするという関係をもたないプログラム群については、サービス部品候補(グループ)から除外される。
(S39) The
(S40)分析部123は、全てのサービス部品候補について共通データ抽出の処理を行ったか否かを判定する。全てのサービス部品候補について共通データ抽出の処理を行った場合、ステップS41に処理が進む。全てのサービス部品候補について共通データ抽出の処理を行っていない場合、ステップS30に処理が進む。
(S40) The
(S41)分析部123は、各サービス部品候補からの共通データの抽出や、サービス部品候補の分割の結果に基づいて、サービス部品情報を生成する。例えば、分析部123は、この段階までに決定されたサービス部品を赤色の枠を用いて表示するため、サービス部品情報におけるサービス部品のレコードの末尾に“RED”の情報を追加する。分析部123は、生成したサービス部品情報およびステップS35,S36で取得された共通データ情報を出力する。例えば、分析部123は、サービス部品情報および共通データ情報(あるいは、図9で例示したサービス部品や分割されたプログラム群と共通データとの関係を表す画像)をディスプレイ11に表示させてもよい。そして、共通データ抽出が終了する。
(S41) The
なお、ステップS31において、更新処理を特定できない場合、分析部123は、ステップS32をスキップしてステップS34を実行する。また、ステップS34において、参照処理を特定できない場合、分析部123は、ステップS35,S36をスキップして、ステップS37を実行する。
If the update process cannot be specified in step S31, the
図15は、サービス部品分類の処理例を示すフローチャートである。このサービス部品分類は、上記のステップS14で実行される。
(S50)分析部123は、分析結果記憶部112に記憶されたサービス部品候補情報を参照して、サービス部品候補を取得する。
FIG. 15 is a flowchart illustrating a processing example of service component classification. This service component classification is executed in step S14.
(S50) The
(S51)分析部123は、分析結果記憶部112に記憶された共通データ情報を参照して、サービス部品候補の全てのデータが共通データであるか否かを判定する。サービス部品候補の全てのデータが共通データである場合、ステップS52に処理が進む。サービス部品候補の全てのデータが共通データでない場合、ステップS53に処理が進む。
(S51) The
(S52)分析部123は、該当のサービス部品候補を準サービス部品として抽出する。分析部123は、該当のサービス部品候補に対応する準サービス部品のレコードを、分析結果記憶部112に記憶された準サービス部品情報に追加する。分析部123は、準サービス部品を緑色の枠を用いて表示するため、準サービス部品情報における準サービス部品のレコードの末尾に“GREEN”の情報を追加する。
(S52) The
(S53)分析部123は、サービス部品候補情報に登録された全てのサービス部品候補を取得したか否かを判定する。全てのサービス部品候補を取得した場合、ステップS54に処理が進む。全てのサービス部品候補を取得していない場合、ステップS50に処理が進む。
(S53) The
(S54)分析部123は、分析結果記憶部112に記憶された関連情報を参照して、1つのデータを抽出する。
(S55)分析部123は、関連情報に基づいて、該当のデータにのみアクセスするプログラム群があるか否かを判定する。該当のデータにのみアクセスするプログラム群がある場合、ステップS56に処理が進む。該当のデータにのみアクセスするプログラム群がない場合、ステップS58に処理が進む。以下、これらのプログラム群とデータとを、「関係するプログラム群とデータ」と言う。
(S54) The
(S55) The
(S56)分析部123は、関係するプログラム群とデータとが抽出した領域を跨がないか否かを判定する。抽出した領域を跨がない場合、ステップS57に処理が進む。抽出した領域を跨ぐ場合、ステップS58に処理が進む。ここで、「抽出した領域」とは、サービス部品または準サービス部品(グループ)に所属するプログラム群およびデータに相当する。例えば、「抽出した領域を跨がない」とは、関係するプログラム群とデータとが同じサービス部品または準サービス部品に属することを示す。また、「抽出した領域を跨ぐ」とは、関係するプログラム群とデータとが異なるサービス部品または準サービス部品に属することを示す。
(S56) The
(S57)分析部123は、該当のプログラム群とデータとを集約した単位(サブサービス部品)を作成する。例えば、分析部123は、サブサービス部品のレコードを、サービス部品情報または準サービス部品情報のうち、該当のサブサービス部品が属するサービス部品または準サービス部品の配下に追加する。上記のように、分析部123は、準サービス部品のプログラム群またはデータに対応するレコードの末尾には、“SUB”の情報を追加する。また、分析部123は、サブサービス部品に、サービス部品IDおよびサブサービス部品IDを付与する。そして、分析部123は、サブサービス部品と上位のサービス部品または準サービス部品との関連を示すレコードも、サービス部品情報または準サービス部品情報に登録する。
(S57) The
(S58)分析部123は、関連情報に含まれる全てのデータに対して関係を調査したか否か(ステップS54〜S57の処理を実行したか否か)を判定する。全てのデータに対して関係を調査した場合、ステップS59に処理が進む。全てのデータに対して関係を調査していない場合、ステップS54に処理が進む。
(S58) The
(S59)分析部123は、サービス部品情報に基づいて、サービス部品を出力する。すなわち、分析部123は、サービス部品に対応するプログラム(またはプログラム群)を示す情報およびデータを示す情報を出力する。例えば、分析部123は、プログラム群およびデータを所定サイズのアイコン(例えば、四角形などの図形)とし、更に、サービス部品に対応するアイコン群を赤色の枠で囲った画像をディスプレイ11に表示させる。
(S59) The
(S60)分析部123は、準サービス部品情報に基づいて、準サービス部品を出力する。すなわち、分析部123は、準サービス部品に対応するプログラム(またはプログラム群)を示す情報およびデータを示す情報を出力する。例えば、分析部123は、ステップS59で表示したプログラム群およびデータに対応するアイコンのうち、準サービス部品に対応するアイコン群を緑色の枠で囲った画像をディスプレイ11に表示させる。そして、サービス部品分類が終了する。
(S60) The
図16は、分類結果の表示例(その1)を示す図である。画面50は、例えば、分析部123により出力された画面情報に基づいて、ディスプレイ11に表示される。画面50は、業務サーバ200により実行されるプログラムおよびデータをマップ化して表示したものである。四角形で示される1つのアイコンは、1つのプログラム群またはデータを示す。なお、分析部123は、プログラム群単位ではなく、プログラム単位にアイコンを表示させてもよい。例えば、分析部123は、ユーザによるアイコンの選択操作に応じて、該当のアイコンに対応するプログラム群またはプログラムを示す情報をディスプレイ11に表示させてもよい。
FIG. 16 is a diagram illustrating a display example (part 1) of the classification result. The
画面50は、枠で囲われた複数の領域を含む。枠R1,R2,R3,R4,R5は、サービス部品を示す枠である。例えば、枠R1,R2,R3,R4,R5の線は前述のように赤色で表示される(ただし、他の色でもよい)。枠R1,R2,R3,R4,R5の内部のプログラム群は、固有データによって関連付けられている。
The
また、枠G1,G2,G3は、準サービス部品を示す枠である。例えば、枠G1,G2,G3の線は、前述のように緑色で表示される(ただし、枠R1,R2,R3,R4,R5と異なっていれば他の色でもよい)。枠G1,G2,G3の内部のデータは共通データである。 Frames G1, G2, and G3 are frames indicating quasi-service components. For example, the lines of the frames G1, G2, and G3 are displayed in green as described above (however, other colors may be used as long as they are different from the frames R1, R2, R3, R4, and R5). The data inside the frames G1, G2, G3 is common data.
このように、分析部123は、サービス部品または準サービス部品に属するプログラムを関連付けるデータの種類が固有データであるか、共通データであるかに応じて、ディスプレイ11(表示装置)によるサービス部品や準サービス部品の表示方法を変える。上記のように枠線の色を変える他にも、線の種類(例えば、実線か破線かなど)や枠内の領域の色を変えて区別可能にするなど、種々の方法が考えられる。
As described above, the
なお、枠R1,R2,R3,R4,R5および枠G1,G2,G3それぞれには、例えば、所属するプログラムに含まれるコメント文などから抽出された文字列(例えば、“ログイン”や“list,to do”といった文字列など)も表示される。表示される文字列は、例えば、所属するプログラムにおいて出現回数の最多のものである。ユーザは、これらの文字列から該当の枠内のプログラム群やデータがどのような機能に対応するものであるかを把握可能である。 Each of the frames R1, R2, R3, R4, R5 and the frames G1, G2, G3 includes, for example, a character string extracted from a comment sentence included in the program to which the user belongs (for example, “login”, “list, A character string such as “to do” ”is also displayed. For example, the displayed character string has the highest number of appearances in the program to which it belongs. The user can grasp what functions the program group and data in the corresponding frame correspond to from these character strings.
特に、枠G1,G2,G3の内部のプログラム部分で1つの機能に対応しているため、実際にまとめて扱うべきプログラムを集約できる。
このように、分析サーバ100は、分析対象のシステムのプログラムにアクセスされるデータのうち、共通データに含まれない固有データと、共通データとをそれぞれ分離し、分離した領域を業務の切り出しやすい範囲としてユーザに提示する。
In particular, since the programs in the frames G1, G2, and G3 correspond to one function, it is possible to collect programs that should actually be handled collectively.
As described above, the
なお、サービス部品や準サービス部品の業務サーバ200からの切り出しやすさは次の通りである。第1に、枠内のデータへの外部からの参照/更新が全くない場合、その枠内のプログラムおよびデータにより実現される機能は、最も切り出しやすい。第2に、枠内のデータへの外部からの更新がない場合、その枠内のプログラムおよびデータにより実現される機能は2番目に切り出しやすい。第3に、枠内のデータへの参照および更新の両方が外部からある場合、その枠内のプログラムおよびデータにより実現される機能は切り出しにくい。
The easiness of extracting service components and semi-service components from the
分析部123は、このように、サービス部品や準サービス部品の内部のデータに対する外部からの参照や更新の有無に応じて、切り出しやすい部分をディスプレイ11に表示させ、ユーザに提示することもできる。例えば、分析部123は、枠R1,R2,R3,R4,R5に対応する各機能は、枠G1,G2,G3に対応する各機能よりも切り出しやすい旨の情報をディスプレイ11に表示させ、ユーザに提示してもよい。準サービス部品は、外部から更新されるデータ(グローバルデータ)を含むことがあるためである。
As described above, the
図17は、分類結果の表示例(その2)を示す図である。分析部123は、例えば、サービス部品のみをディスプレイ11に表示させ、準サービス部品をディスプレイ11に表示させないことも考えられる。この場合、画面60がディスプレイ11に表示される。画面60は、枠R11,R12,R13,R14,R15を含む。枠R11,R12,R13,R14,R15は、それぞれ枠R1,R2,R3,R4,R5に対応するサービス部品を示す。しかし、それ以外のプログラム群やデータについてはグループ化されておらず、独立した点(枠で囲われないアイコン)として表示されている。このため、画面60の表示では、ユーザは、準サービス部品を適切に把握することはできない。したがって、分析部123は、画面60よりも、図16の画面50をディスプレイ11に表示させ、準サービス部品を適切に特定可能にすることが好ましい。
FIG. 17 is a diagram illustrating a display example (part 2) of the classification result. For example, the
次に、プログラムおよびデータの分類方法の比較例を説明する。
図18は、分類の比較例を示す図である。ここで、図18では、縦方向の点線により区切られたレーンによってプログラムとデータとのグループを表している。「機能」は、プログラム群に対応する。また、例えば、GUI(Graphical User Interface)を提供する画面の機能と、業務処理を実行する機能とは、WebAPI(Application Programming Interface)によって関連付けられている。
Next, a comparative example of program and data classification methods will be described.
FIG. 18 is a diagram illustrating a comparative example of classification. Here, in FIG. 18, groups of programs and data are represented by lanes separated by vertical dotted lines. “Function” corresponds to a program group. Further, for example, a function of a screen that provides a GUI (Graphical User Interface) and a function of executing a business process are associated by a Web API (Application Programming Interface).
例えば、図18(A)の分類方法のように、システム全体を複数の単位に分割するものの、「共通データ」の区別をせずに、データを何れかの分割単位に含める方法が考えられる。この分類方法では、データは何れかの分割単位に含まれることになり、「共通データ」を明確に区別することができない。分割単位に含まれるデータが、固有データか共通データかを区別できないので、切り出しやすいかどうかを判別することができない。 For example, although the entire system is divided into a plurality of units as in the classification method of FIG. 18A, a method of including data in any of the division units without distinguishing “common data” is conceivable. In this classification method, data is included in any division unit, and “common data” cannot be clearly distinguished. Since it is not possible to distinguish whether the data included in the division unit is unique data or common data, it is not possible to determine whether it is easy to cut out.
また、例えば、図18(B)の分類方法のように、「共通データ」を明確にしてシステム全体を複数の単位に分割するが、「共通データ」にしかアクセスしない機能を全てバラバラに提示することも考えられる。しかし、あまりに細かい単位に分離されてしまうと、個々のプログラム群の扱いが難しくなる。この分類方法では、「共通データ」を明確にできるものの、同じデータにアクセスするという共通項がある場合に、まとめて扱いたいという要望に応えられない。 Also, for example, as in the classification method of FIG. 18B, the “common data” is clarified and the entire system is divided into a plurality of units, but all functions that only access “common data” are presented separately. It is also possible. However, if they are separated into too small units, it becomes difficult to handle individual program groups. In this classification method, although “common data” can be clarified, when there is a common item of accessing the same data, it is not possible to respond to the desire to handle them collectively.
図19は、分析サーバによる分類の例を示す図である。分析サーバ100は、「共通データ」にのみアクセスするプログラムを、個々に扱うものとして抽出するのではなく、同じデータにアクセスするものとして集約した単位を作成する。図19の例では、「共通データ」にのみアクセスする複数の機能を集約した4つの機能を含むグループG10が作成される場合を示している。グループG10は、準サービス部品に対応する。
FIG. 19 is a diagram illustrating an example of classification by the analysis server. The
また、グループG21,G22,G23は、「固有データ」を介して分離されたプログラム群およびデータの単位である。グループG21,G22,G23は、サービス部品に対応する。 The groups G21, G22, and G23 are program groups and data units separated through “unique data”. Groups G21, G22, and G23 correspond to service components.
このように分析サーバ100によれば、「固有データ」を保持するサービス部品を抽出できる。その上で、同じ「共通データ」にアクセスする複数のプログラムを、まとまった単位として抽出できるようになる。同じ「共通データ」にアクセスする複数のプログラムは、共通の性質をもっている可能性が高く、これら複数のプログラムをまとめて扱える単位を適切に抽出することができる。特に、大規模なシステムを分離する上で、ユーザが扱うには細かくなり過ぎないように、グループを提示可能になる。
As described above, according to the
また、分析サーバ100は、当該グループについて、固有データを基に分離した単位(サービス部品)と、共通データを基に分離した単位(準サービス部品)とを区別して提示することができる。更に、共通データについては、準サービス部品の分離に利用した共通データD10(分離する単位に利用した共通データ)と、分離した単位から独立の共通データD20とを更に分類することもできる。
Further, the
次に、分析サーバ100の機能を利用して、業務サーバ200の一部機能を分離し、移行先サーバ300に移行する例を説明する。
図20は、既存システムの一部機能の移行例を示す図である。例えば、業務サーバ200では、既存業務システムとして営業支援システムが稼動している。営業支援システムには、多くのプログラムやデータが用いられている。ここで、図20では、“PG”の文字列と数値との結合によりプログラムを表している。
Next, an example in which the functions of the
FIG. 20 is a diagram illustrating an example of migration of some functions of an existing system. For example, in the
例えば、営業支援システムは、プログラムPG1,PG2,PG3,PG4,PG5,PG6,PG7を含む(ST1)。プログラムPG1,PG2,PG3,PG4,PG5,PG6,PG7は様々なデータにアクセスする。既存の営業支援システムは、一体となった構造となっていることが多く、システム変更を行おうとすると、どこに影響が及ぶか分からない。そのため、プログラムの修正や保守作業が難しい。 For example, the sales support system includes programs PG1, PG2, PG3, PG4, PG5, PG6, and PG7 (ST1). Programs PG1, PG2, PG3, PG4, PG5, PG6, and PG7 access various data. Existing sales support systems often have an integrated structure, and it is not known where they will be affected if a system change is attempted. Therefore, it is difficult to modify and maintain the program.
そこで、分析サーバ100は、業務サーバ200のプログラム資産を分析し、プログラムPG1,PG2,PG3,PG4,PG5,PG6,PG7および各データを、サービス部品および準サービス部品の機能単位に分類する。
Therefore, the
その結果、例えば、分析サーバ100は、営業支援システムを、営業拠点管理機能、取引先管理機能および会計処理機能の3つの機能に分類する(ST2)。営業拠点管理機能は、プログラムPG2,PG7、および、これらの固有データを含む。取引先管理機能は、プログラムPG1,PG5,PG6、および、これらの固有データを含む。会計処理機能は、プログラムPG3,PG4、および、これらの固有データを含む。また、分析サーバ100は、営業拠点管理機能、取引先管理機能および会計処理機能からアクセスされる共通データとして、業務サーバ200のプログラム資産から、予算・実績データを抽出する。
As a result, for example, the
こうして、分析サーバ100は、プログラム資産に含まれる複数のプログラムを、機能単位に分類し、機能毎に関係するプログラムやデータを明確にすることができる。
機能別の分類によって、各機能に対応するプログラムの修正や保守作業を行い易くなる。例えば、取引先管理機能の変更を行いたい場合、取引先管理機能に関連するプログラムPG1,PG5,PG6およびそれらの固有データが影響範囲となる。このため、ユーザは、分析サーバ100により表示された分類結果を参照することで、プログラムPG1,PG5,PG6およびそれらの固有データを主な変更対象とすればよいと判断することができる。また、変更の影響範囲を絞り込むことで、プログラムの変更に伴うユーザの作業を効率化でき、プログラムの変更を迅速に行えるようになる。
In this way, the
By classification according to function, it becomes easy to modify and maintain a program corresponding to each function. For example, when it is desired to change the supplier management function, the programs PG1, PG5, PG6 related to the supplier management function and their unique data are in the affected range. For this reason, the user can determine that the programs PG1, PG5, PG6 and their unique data should be mainly changed by referring to the classification result displayed by the
また、ユーザは、分析サーバ100による分類結果から、システム変更を、更に迅速化することもできる。例えば、分析サーバ100は、固有データに関連付けられるプログラム、および、共通データに関連付けられるプログラムを、分析対象のシステム(現状の業務サーバ200)とは異なるシステム(移行先サーバ300)への移行対象の候補としてもよい。すなわち、取引先管理機能の処理についての変更の頻度が多い場合、取引先管理機能を業務サーバ200から分離し、移行先サーバ300に移行させることもできる(ST3)。
Further, the user can further speed up the system change from the classification result by the
この場合、ユーザは、取引先管理機能に関連するプログラムを修正して、取引先管理機能に対応するプログラムPG1,PG5,PG6およびそれらの固有データを、業務サーバ200から移行先サーバ300に移行させる。業務サーバ200は、取引先管理機能の実行を停止し、移行先サーバ300が取引先管理機能を実行する。ここで、取引先管理機能から業務サーバ200に対する予算・実績データへのアクセスは、所定のインターフェース(例えば、WebAPI)によって定義される。
In this case, the user modifies the program related to the business partner management function, and migrates the programs PG1, PG5, PG6 corresponding to the business partner management function and their unique data from the
このように、取引先管理機能を、業務サーバ200から移行先サーバ300に切り出すことで、取引先管理機能を変更した際の他の機能への影響を一層小さくすることができる。このため、業務内容の変化に応じて、システム変更を迅速に行えるようになり、業務内容の変化に迅速に対応可能になる。
Thus, by cutting out the supplier management function from the
ところで、近年では、営業支援システムなどの業務システムは、環境や外部変化(例えば、取引先変更、法改正および拠点追加など)に合わせて迅速に変更できることが好ましい。この点、変更影響を局所化し、業務システムに含まれる個々の機能のリリースサイクルを速めることを可能にする「マイクロサービス」というソフトウェア構造が考えられている。マイクロサービスとは、システム全体を一かたまりのアプリケーションとして開発するのではなく、システムに属する各機能を、独立した軽量なサービスの集まりとして構築する手法である。独立したサービスとするために、データは、サービス毎に管理される。マイクロサービスでは、個々のサービスだけが使うデータをサービス内部に保持し、サービス間で共有するデータを明確にして、各サービスから共有するデータへのアクセス方法を決める。 By the way, in recent years, it is preferable that a business system such as a sales support system can be quickly changed in accordance with an environment and external changes (for example, a supplier change, a law revision, a base addition, etc.). In this regard, a software structure called “micro service” is considered that makes it possible to localize the impact of change and speed up the release cycle of individual functions included in the business system. The micro service is a technique for constructing each function belonging to the system as an independent collection of lightweight services, rather than developing the entire system as a single application. In order to provide an independent service, data is managed for each service. In microservices, data used only by individual services is held inside the service, data shared between services is clarified, and an access method to data shared from each service is determined.
分析サーバ100によれば、既存業務システムについて、ユーザにとって扱いやすい適切な単位で各機能に用いられるプログラムやデータをグループ化し、マイクロサービス化を図ることができるという利点もある。既存業務システムのマイクロサービス化に伴うユーザの作業を省力化することもできる。
According to the
なお、第1の実施の形態の情報処理は、処理部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体13に記録できる。
The information processing according to the first embodiment can be realized by causing the
例えば、プログラムを記録した記録媒体13を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体13に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
For example, the program can be distributed by distributing the
1 分離装置
1a 記憶部
1b 処理部
2 システム
3 表示装置
4 出力画面
4a,4b,4c 画面部品
D1 データ集合
D11 第1のデータセット
D12 第2のデータセット
DESCRIPTION OF SYMBOLS 1
Claims (10)
前記対象のシステムの第1のプログラムにアクセスされる第1のデータと、前記対象のシステムの第2のプログラムにアクセスされる第2のデータとを特定し、
前記第1のプログラムおよび前記第2のプログラムの両方にアクセスされるデータを、複数の業務から参照される、または、更新される共通データとして出力する、
分離方法。 A separation method for separating corresponding data for each business from a target system,
Identifying first data accessed by a first program of the target system and second data accessed by a second program of the target system;
Outputting data accessed by both the first program and the second program as common data that is referred to or updated by a plurality of tasks;
Separation method.
前記対象のシステムにおけるプログラム資産を記憶する記憶部と、
前記記憶部を参照して、前記対象のシステムの第1のプログラムにアクセスされる第1のデータと、前記対象のシステムの第2のプログラムにアクセスされる第2のデータとを特定し、前記第1のプログラムおよび前記第2のプログラムの両方にアクセスされるデータを、複数の業務から参照される、または、更新される共通データとして出力する処理部と、
を有する分離装置。 A separation device that separates the corresponding data for each business from the target system,
A storage unit for storing program assets in the target system;
With reference to the storage unit, the first data accessed by the first program of the target system and the second data accessed by the second program of the target system are identified, and A processing unit that outputs data accessed by both the first program and the second program as common data that is referred to or updated by a plurality of tasks;
Separation device having.
前記対象のシステムの第1のプログラムにアクセスされる第1のデータと、前記対象のシステムの第2のプログラムにアクセスされる第2のデータとを特定し、
前記第1のプログラムおよび前記第2のプログラムの両方にアクセスされるデータを、複数の業務から参照される、または、更新される共通データとして出力する、
処理をコンピュータに実行させる分離プログラム。 A separation program that separates the corresponding data for each business from the target system,
Identifying first data accessed by a first program of the target system and second data accessed by a second program of the target system;
Outputting data accessed by both the first program and the second program as common data that is referred to or updated by a plurality of tasks;
A separation program that causes a computer to execute processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018016936A JP7104297B2 (en) | 2018-02-02 | 2018-02-02 | Separation method, separation device and separation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018016936A JP7104297B2 (en) | 2018-02-02 | 2018-02-02 | Separation method, separation device and separation program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019133541A true JP2019133541A (en) | 2019-08-08 |
JP7104297B2 JP7104297B2 (en) | 2022-07-21 |
Family
ID=67545008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018016936A Active JP7104297B2 (en) | 2018-02-02 | 2018-02-02 | Separation method, separation device and separation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7104297B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021177377A (en) * | 2020-04-14 | 2021-11-11 | アクセンチュア グローバル ソリューションズ リミテッド | Shell conversion for enterprise resource planning (erp) system |
JP7356013B2 (en) | 2019-10-21 | 2023-10-04 | 富士通株式会社 | Information presentation program, information presentation device, and information presentation method |
JP7428599B2 (en) | 2020-06-26 | 2024-02-06 | 株式会社日立製作所 | System construction support device and method |
JP7484038B2 (en) | 2019-11-21 | 2024-05-16 | 日本電気株式会社 | Data division device, data division method, and program. |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006302135A (en) * | 2005-04-22 | 2006-11-02 | Fujitsu Ltd | Application asset analysis program, application asset analysis method and application asset analysis device |
-
2018
- 2018-02-02 JP JP2018016936A patent/JP7104297B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006302135A (en) * | 2005-04-22 | 2006-11-02 | Fujitsu Ltd | Application asset analysis program, application asset analysis method and application asset analysis device |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7356013B2 (en) | 2019-10-21 | 2023-10-04 | 富士通株式会社 | Information presentation program, information presentation device, and information presentation method |
JP7484038B2 (en) | 2019-11-21 | 2024-05-16 | 日本電気株式会社 | Data division device, data division method, and program. |
JP2021177377A (en) * | 2020-04-14 | 2021-11-11 | アクセンチュア グローバル ソリューションズ リミテッド | Shell conversion for enterprise resource planning (erp) system |
US11645091B2 (en) | 2020-04-14 | 2023-05-09 | Accenture Global Solutions Limited | Shell conversion for an enterprise resource planning (ERP) system |
JP7428599B2 (en) | 2020-06-26 | 2024-02-06 | 株式会社日立製作所 | System construction support device and method |
Also Published As
Publication number | Publication date |
---|---|
JP7104297B2 (en) | 2022-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11943104B2 (en) | Application migration system | |
CN109328335B (en) | Intelligent configuration discovery techniques | |
US8914789B2 (en) | Systematic migration of workload based on classification | |
CN103778178B (en) | Method and system for reconfiguring snapshot of virtual machine (VM) | |
US10698674B2 (en) | Systems and methods for entry point-based code analysis and transformation | |
JP5239075B2 (en) | Computer system, method and computer program for managing a service process including a plurality of service steps | |
US10606450B2 (en) | Method and system for visual requirements and component reuse driven rapid application composition | |
US10901804B2 (en) | Apparatus and method to select services for executing a user program based on a code pattern included therein | |
US20110131300A9 (en) | Computer system for managing configuration item, and method and computer program therefor | |
JP7104297B2 (en) | Separation method, separation device and separation program | |
US20130290238A1 (en) | Discovery and grouping of related computing resources using machine learning | |
JPWO2012124018A1 (en) | Information processing apparatus, information processing method, and information processing program | |
US8856775B2 (en) | Unstacking software components for migration to virtualized environments | |
JP5971338B2 (en) | Template generation program, template generation method, and template generation apparatus | |
US9934307B2 (en) | Apparatus and method for managing job flows in an information processing system | |
JP2005242904A (en) | Document group analysis device, document group analysis method, document group analysis system, program and storage medium | |
US11782763B2 (en) | Resolution of tickets in a multi-tenant environment | |
US9369352B1 (en) | Method of capturing server and operating system metrics for virtual to physical topology reporting | |
JP2005190212A (en) | Database system, data processing method and program | |
JP2016146022A (en) | Model base development support device, model base development support method, and model base development support program | |
JP2019101829A (en) | Software component management system, computor, and method | |
JP2015153323A (en) | Symbolic execution program, symbolic execution method, and symbolic execution device | |
JP2013020494A (en) | Software execution system, and software execution method, and program | |
JP2023035466A (en) | Information processing program, information processing method, and information processing apparatus | |
JP6575099B2 (en) | Operation management program, operation management device, and operation management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201110 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20201126 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20201126 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211028 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220124 |
|
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: 20220607 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220620 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7104297 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |