JP7255420B2 - ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM - Google Patents
ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM Download PDFInfo
- Publication number
- JP7255420B2 JP7255420B2 JP2019152021A JP2019152021A JP7255420B2 JP 7255420 B2 JP7255420 B2 JP 7255420B2 JP 2019152021 A JP2019152021 A JP 2019152021A JP 2019152021 A JP2019152021 A JP 2019152021A JP 7255420 B2 JP7255420 B2 JP 7255420B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- data
- programs
- called
- asset management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、資産管理装置、資産管理方法および資産管理プログラムに関する。 The present invention relates to an asset management device, an asset management method, and an asset management program.
コンピュータシステムの発達により、世の中の様々な場面でコンピュータシステムが活用されている。一度構築したコンピュータシステムでも歳月を経ることで、改良を行う必要性あるいはシステム全体を見直す必要性が生じることがある。このとき、既に作成したプログラムの一部に修正を行うことがあり、既存のシステムの仕様を理解する必要がある。しかし、ソフトウェアは大規模になるとその仕様は複雑なものとなり、仕様の把握や変更は容易ではない。また、膨大なプログラムを対象とした時、プログラム間の関係やデータとの関係数も膨大になるため、全ての関係を基にソフトウェアを分割することは容易ではない。 With the development of computer systems, computer systems are being used in various situations in the world. Even a computer system that has been built once may need to be improved or reviewed as a whole as time passes. At this time, part of the already created program may be modified, and it is necessary to understand the specifications of the existing system. However, when software becomes large, its specifications become complicated, and it is not easy to grasp and change the specifications. In addition, when a huge number of programs are targeted, the number of relationships between programs and data becomes enormous, so it is not easy to divide software based on all the relationships.
近年では、大規模システムを対象に、ソフトウェアを理解可能な部分集合であるサービス部品に分割する技術として、プログラムの呼び出し関係から、自動的に部分集合を抽出してクラスタリングする技術が知られている。また、部分集合を抽出する際に、外部から更新されるデータは、外部に共通データとして定義し、共通データを除いて新たに切り出しの単位を定義した上で、クラスタリングする技術も知られている。また、モダナイゼーションの対象とするアプリケーションの優先順位を直感的に分かりやすくするために、アプリケーションの機能構造を自動的に地図化する技術も知られている。 In recent years, as a technology for dividing software into comprehensible subsets of service components for large-scale systems, a technology for automatically extracting and clustering subsets based on program call relationships is known. . In addition, when extracting a subset, there is also known a technique of defining externally updated data as common data, defining a new extraction unit excluding common data, and clustering. . Also known is a technology that automatically maps the functional structure of applications in order to intuitively understand the priority of applications targeted for modernization.
しかしながら、上記技術では、アプリケーションが有する複数のプログラムやデータを、サービスを実行する部品であるプロセス単位の部分集合で配置する場合に、プログラムの配置によっては、アプリケーションの構造が理解しにくくなる。 However, with the above technology, when arranging a plurality of programs and data of an application in subsets for each process, which is a component for executing a service, it becomes difficult to understand the structure of the application depending on the arrangement of the programs.
例えば、あるプログラムを複数のプロセスに割当てると、デットロックなどを誘発させることがあり、排他管理を考慮して正しくクラスタリングできず、結果として、プログラムの修正が実行できない。また、デットロックを抑制するために、あるプログラムをどのプロセスにも所属させないようにクラスタリングすることも考えられるが、独立したプログラムが多発し、アプリケーションの構造が理解できなくなる。 For example, when a certain program is assigned to multiple processes, deadlocks may be induced, and correct clustering cannot be performed in consideration of exclusive management, and as a result, program correction cannot be executed. Also, in order to suppress deadlocks, it is conceivable to cluster a program so that it does not belong to any process.
一つの側面では、アプリケーションの構造を理解し易い形式で分類することができる資産管理装置、資産管理方法および資産管理プログラムを提供することを目的とする。 An object of one aspect is to provide an asset management device, an asset management method, and an asset management program capable of classifying the structure of an application in an easy-to-understand format.
第1の案では、資産管理装置は、プログラム資産を構成する複数のプログラムと複数のデータのうち、他のプログラムから呼び出される第1のプログラムを特定する第1特定部を有する。資産管理装置は、前記第1のプログラムのうち、前記複数のデータのいずれかのデータを内部に保持する、または、前記複数のデータのいずれかのデータを更新する、第2のプログラムを特定する第2特定部を有する。資産管理装置は、前記複数のプログラムと前記複数のデータとを依存関係に基づき、プログラムとデータとを関連付けるサービス部品に分類する場合に、前記第2のプログラムを独立したサービス部品に分類する分類部を有する。 In the first proposal, the asset management apparatus has a first identification unit that identifies a first program called from another program among a plurality of programs and a plurality of data constituting program assets. The asset management device identifies a second program, among the first programs, that internally retains any of the plurality of data or updates any of the plurality of data. It has a second specifying part. The asset management device classifies the second program into an independent service component when classifying the plurality of programs and the plurality of data into service components that associate the programs and data based on dependency relationships. have
一実施形態によれば、アプリケーションの構造を理解し易い形式で分類することができる。 According to one embodiment, the structure of an application can be categorized in an easy-to-understand format.
以下に、本願の開示する資産管理装置、資産管理方法および資産管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。 Embodiments of an asset management device, an asset management method, and an asset management program disclosed in the present application will be described below in detail with reference to the drawings. In addition, this invention is not limited by this Example. Moreover, each embodiment can be appropriately combined within a range without contradiction.
[分析装置の説明]
図1は、実施例1にかかる分析装置100を説明する図である。図1に示すように、分析装置100は、複数のプログラムと複数のデータとを含むプログラム資産に対して疎結合分析を実行し、アプリケーションなどのプログラム資産内にプログラムやデータベースなどを分割や分類して、アプリケーションの構造を分析した分析結果を生成する。つまり、分析装置100は、資産管理装置の一例であり、プログラム資産の内部構造の把握と、機能やデータをサービスとして切出しやすい形への再構造化を行う。
[Description of analyzer]
FIG. 1 is a diagram illustrating an
一般的に、あるシステムへ適用されたプログラム資産は、システムの改変、増築、ネットワークなどの周辺環境の変化に伴い、更新されていく。つまり、システムが長年使用されることにより、プログラム資産へプログラムやデータベースなどの部品(要素)の追加、プログラム資産内の部品の変更などが経年的に実行される。このように経年的に更新されるプログラム資産は、複数人によって更新されることから、正確な管理資料(更新資料)などがないことも珍しくない。このため、リバースエンジニアリングやプログラム構造の分析などを行う場合に、プログラム資産の全体を参照して、プログラム資産内に部品が他の部品とどのように関係しているのか、ある部品を更新するとどの部品に影響を与えるのかを分析して把握することは、システムエンジニアやプログラマであっても簡単ではない。 In general, program assets applied to a certain system are updated along with changes in the surrounding environment such as modification, extension, and network of the system. In other words, as the system is used for many years, parts (elements) such as programs and databases are added to the program assets, and parts in the program assets are changed over time. Since such program assets that are updated over time are updated by multiple people, it is not uncommon for there to be no accurate management data (update data). For this reason, when performing reverse engineering or program structure analysis, etc., the entire program assets can be referred to, and how parts within the program assets are related to other parts, and how to update a certain part. It is not easy even for system engineers and programmers to analyze and understand what affects parts.
近年、変化の激しい業務に合わせて、システムを迅速に変更することが求められている。例えば、産業流通の業務では、拠点追加や取引先の変更などが度々あり、それに合わせて、業務システムも変更していくことが要求される。しかし、以前の業務システムは、プログラム同士や、プログラムとデータとが一体となった構造になっていることが多く、システムを変更しようとすると、どこに影響が及ぶかわからない。この結果、改修が難しく、頻繁に変更することが出来ない。また、影響範囲を局所化するように分割しようとすると多くの依存関係を調べなければならないので、作業時間が膨大となっていた。 In recent years, there has been a demand to quickly change systems in accordance with rapidly changing business. For example, in the business of industrial distribution, there are frequent additions of bases and changes in business partners, and it is required to change the business system accordingly. However, many of the previous business systems had a structure in which programs and data were integrated, and it was impossible to know where the impact would be if the system were to be changed. As a result, it is difficult to modify and cannot be changed frequently. In addition, when attempting to divide a program so as to localize the scope of influence, many dependencies must be examined, resulting in an enormous amount of work time.
一般的な手法の問題点として、サービスを実行するサービス部品であるプロセス別にプログラムを分割する場合、各プロセスに配置することを許容するプログラムと、重複配置せずに一つのプロセスに配置するべきプログラムとを判定できないことが挙げられる。 The problem with general methods is that when a program is divided into processes, which are service components that execute services, programs that can be placed in each process and programs that should be placed in a single process without duplication. and cannot be determined.
図2は、一般的な分析手法の問題点を説明する図である。図2の(a)には、プログラム資産であるアプリケーションを示す。図2の(a)において、アプリケーションは、複数のプログラムから構成されるプロセスと、データベース等であるデータX、Y、Zとから構成される。ここで、簡略化するために、プログラム1をPG1などと表記し、プログラム間の呼出関係を実線の矢印で示し、データ更新の流れを破線の矢印で示し、データ参照の流れを太線の矢印で示す。つまり、PG1、PG10、PG20のそれぞれからPG2とPG3とが呼び出される依存関係がある。また、PG1とPG10とPG3のそれぞれからデータXへデータ更新の関係性、PG1からデータYへデータ参照、PG20からデータZへデータ更新の関係性がある。
FIG. 2 is a diagram for explaining problems of a general analysis method. FIG. 2(a) shows an application, which is a program resource. In (a) of FIG. 2, an application is composed of a process composed of a plurality of programs and data X, Y, Z such as a database. Here, for the sake of simplification,
このような状態で、一般的には、図2の(b)に示すように、プログラムは必ず1のプロセスにのみ分類される手法や、図2の(c)に示すように、関係するプログラムは全て、分類対象のプロセスに配置可能としてそれぞれに配置する手法が考えられる。つまり、プログラムの重複を行わずに分類するか、プログラムの重複を許容して分類することが行われる。ところが、アプリケーションの構造によっては、分類が正しく実行されず、デットロックなどの問題が発生し、却って、アプリケーションの構造が理解しにくくなることがある。 In such a state, generally, as shown in FIG. 2(b), a program is always classified into only one process, can be placed in each process to be classified. In other words, classification is performed without duplication of programs, or classification is performed with duplication of programs allowed. However, depending on the structure of the application, the classification may not be performed correctly, causing problems such as deadlocks, and on the contrary, the structure of the application may become difficult to understand.
図3は、重複が問題となる例を説明する図である。色々な処理から更新されるデータは、実行時に排他管理等のデータの管理が難しくなるので、データを更新する箇所は出来るだけ限定したい。また、データを複数の箇所で持つレプリケーションもあるが、更新箇所は限定した方が管理しやすい。具体的には、1つの資源の貸し借りをするようなシステムでは、各処理が直接データを参照や更新する形にすると、データアクセスが集中する。また、貸し出されているかどうかは、他の処理にそのデータが即時に反映されなければならないので、レプリケーションなどで分散して管理することが難しい。 FIG. 3 is a diagram illustrating an example in which duplication becomes a problem. It is difficult to manage data, such as exclusive management, during execution of data that is updated by various processes. Also, although there is replication in which data is stored in multiple locations, it is easier to manage if the update location is limited. Specifically, in a system that lends and borrows one resource, if each process directly refers to or updates data, data access will be concentrated. In addition, whether or not the data is lent out must be immediately reflected in other processing, so it is difficult to distribute and manage the data by replication or the like.
例えば、図3に示すように、サービス監視処理、イントラネット系サービス提供処理、提供サービス検索処理などの各処理から要求を受け付けて、プールされているIP(Internet Protocol)アドレスの使用や解放を実行するアドレス管理プログラムを考える。この場合、各処理ではIPアドレスの貸し借りができればよいので、各処理がIPアドレスの貸し借りを直接行うように複数のプロセスにアドレス管理プログラムを配置するより、1つのプロセスで管理する方が効率的である。 For example, as shown in FIG. 3, it accepts requests from each process such as service monitoring process, intranet service provision process, and service search process, and executes use and release of pooled IP (Internet Protocol) addresses. Consider an address management program. In this case, since it is sufficient for each process to lend and borrow IP addresses, it is more efficient to manage them in one process rather than arranging the address management program in a plurality of processes so that each process directly lends and borrows IP addresses. be.
図4は、重複により分類が容易になる例を説明する図である。異なるデータに対して、同じ処理又は類似した処理を実行する場合がある。この場合、同じプログラムを呼び出す場合でも、プロセス毎に配置すればプロセス間の関係を簡潔にできることがある。 FIG. 4 is a diagram illustrating an example in which overlap facilitates classification. The same or similar processing may be performed on different data. In this case, even if the same program is called, it may be possible to simplify the relationship between processes by arranging them for each process.
例えば、図4に示すように、見積りの予定日を計算する見積もり取得予定日計算処理と納期の予定日を計算する納期予定日計算処理とのそれぞれからの要求に対して、指定営業日とカレンダ情報から予定日を返却する応答プログラムを考える。この応答プログラムの場合、データは引数で渡され、DBなどのデータ更新は実行しない。このため、各処理(各プロセス)に応答プログラムを配置すれば、それぞれの処理の独立性が確保され、通信を削減できる。 For example, as shown in FIG. 4, for a request from each of the estimated acquisition date calculation processing for calculating the scheduled date of the estimate and the scheduled delivery date calculation processing for calculating the scheduled delivery date, the specified business day and the calendar Consider a response program that returns a scheduled date from information. In the case of this response program, data is passed as an argument, and data update of DB etc. is not executed. Therefore, if a response program is placed in each process (each process), the independence of each process can be ensured and communication can be reduced.
上述したように、処理の形態やデータの更新状況等により、分類対象の各プロセスに配置する方がよい場合と、分類対象の各プロセスには配置せずに独立した1つのプロセスとして分類する方がよい場合とがあり、その判断は難しい。 As mentioned above, depending on the type of processing and data update status, there are cases where it is better to place it in each process to be classified, and there are cases where it is classified as an independent process without being placed in each process to be classified. There are cases where it is better, and it is difficult to judge.
そこで、実施例1にかかる分析装置100は、プログラム資産を構成する複数のプログラムと複数のデータのうち、他のプログラムから呼び出される第1のプログラムを特定する。分析装置100は、第1のプログラムのうち、複数のデータのいずれかのデータを内部に保持する、または、複数のデータのいずれかのデータを更新する、第2のプログラムを特定する。その後、分析装置100は、複数のプログラムと複数のデータとを依存関係に基づき、プログラムとデータとを関連付けるサービス部品(プロセス)に分類する場合に、第2のプログラムを独立したサービス部品に分類する。
Therefore, the
このようにして、分析装置100は、プロセス毎にプログラムを配置しても良いものか、プロセス毎に重複は配置せずに一つの単位に配置するべきものかを自動で判別し、適切に分類することで、アプリケーションの構造を理解し易い形式で分類することができる。
In this way, the
[用語の説明]
ここで、実施例1で使用する用語について説明する。アプリケーションとは、プログラム全体を示し、本実施例では、業務ロジックなどが実装されたプログラムであるアプリケーションを対象とする。なお、本実施例では、オペレーティングシステムはプログラムに含まれないこととする。
[Explanation of terms]
Here, terms used in the first embodiment will be explained. An application indicates an entire program, and in this embodiment, an application that is a program in which business logic or the like is implemented is targeted. Note that the operating system is not included in the program in this embodiment.
プログラムは、アプリケーションを構成する一部分であり、機能は、アプリケーションで実装されているロジックが提供する処理である。データは、データベースのテーブルやファイルなどである。サービスは、アプリケーションを一塊で実装するのではなく、複数のサービスを組み合わせて実現するマイクロサービスの1つの実行単位を指す。プロセスは、サービスの実行形態である。 A program is a part of an application, and a function is processing provided by logic implemented in the application. The data are database tables, files, and the like. A service refers to one execution unit of a microservice that implements a plurality of services by combining them, rather than implementing an application as a block. A process is an execution form of a service.
[機能構成]
図5は、実施例1に係る分析装置100の機能構成を示す機能ブロック図である。図5に示すように、分析装置100は、通信部101、記憶部102、制御部110を有する。
[Function configuration]
FIG. 5 is a functional block diagram showing the functional configuration of the
通信部101は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部101は、管理者端末から、処理開始の指示や分析対象のプログラム資産の入力を受け付ける。また、通信部101は、管理者端末などに、分析結果を送信する。
The
記憶部102は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部102は、プログラム資産DB103、重複判定結果DB104、分析結果DB105を記憶する。
The storage unit 102 is an example of a storage device that stores programs and data, such as a memory or a hard disk. This storage unit 102 stores a program asset DB 103 , a duplication determination result DB 104 and an
プログラム資産DB13は、分析対象のアプリケーションであるプログラム資産を記憶するデータベースである。ここで記憶されるプログラム資産は、管理者等によって格納される。図6は、プログラム資産DB13に記憶されるプログラム全体の例を示す図である。図6に示すように、プログラム資産は、プログラム1、プログラム10、プログラム2、プログラム3、プログラム20を含む。図6は、5つのプログラムの記述例を模式的に示した例で、プログラム呼出部分およびデータアクセスのみを記述している。
The program asset DB 13 is a database that stores program assets, which are applications to be analyzed. The program assets stored here are stored by an administrator or the like. FIG. 6 is a diagram showing an example of the entire program stored in the program asset DB 13. As shown in FIG. As shown in FIG. 6, the program assets include
重複判定結果DB104は、各プログラムが重複配置を許容するか否かを特定する情報を記憶するデータベースである。例えば、重複判定結果DB104は、各プログラムが複数のプロセスに重複して配置可能であるか否かを示す情報や、重複して配置可能なプログラムの一覧などを記憶する。 The overlap determination result DB 104 is a database that stores information specifying whether or not each program permits overlapping placement. For example, the duplication determination result DB 104 stores information indicating whether or not each program can be redundantly arranged in a plurality of processes, a list of programs that can be redundantly arranged, and the like.
分析結果DB105は、後述する制御部20によるプログラム資産の分析結果を記憶するデータベースである。例えば、分析結果DB105は、プログラム資産を示す識別子、分析結果、分析日時などを対応付けて記憶する。
The
制御部110は、分析装置100全体を司る処理部であり、例えばプロセッサなどである。この制御部110は、解析部111、重複判定部112、分析部113、提示部114を有する。なお、解析部111、重複判定部112、分析部113、提示部114は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。
The control unit 110 is a processing unit that controls the
解析部111は、プログラム資産内のプログラム間の関係性を解析する処理部である。具体的には、解析部111は、プログラム資産を入力として、プログラムの呼び出し関係およびプログラムとデータの関係に基づき、起点となるプログラムと他のプログラムから読み出されるプログラムとを特定する。 The analysis unit 111 is a processing unit that analyzes relationships between programs in program assets. Specifically, the analysis unit 111 receives program assets as an input, and identifies a program serving as a starting point and a program read from another program based on the relationship between program calls and the relationship between programs and data.
例えば、図6を例にして説明すると、解析部111は、プログラム1、プログラム10、プログラム20について、他のプログラムから呼び出されていないため起点と特定する。一方、解析部111は、プログラム2とプログラム3については、他のプログラムから呼び出されるので、起点ではなく、他のプログラムから呼び出される非起点プログラムと特定する。そして、解析部111は、特定した情報を、記憶部102に格納したり、他の処理部に出力したりする。
For example, using FIG. 6 as an example, the analysis unit 111 identifies
重複判定部112は、各プログラムに対して、複数のプロセスに重複して配置することを許容できるか否かを判定する処理部である。具体的には、重複判定部112は、解析部111により特定された非起点プログラム(呼出先プログラム)が、データを内部に保持するプログラム、または、データを更新するプログラムかを判定する。そして、重複判定部112は、これらに該当する場合にそのプログラムを重複配置不可と判定し、これらに該当しない場合にそのプログラムを重複配置可と判定し、その結果を重複判定結果DB104に格納する。 The duplication determination unit 112 is a processing unit that determines whether or not it is permissible for each program to be redundantly placed in a plurality of processes. Specifically, the duplication determination unit 112 determines whether the non-originating program (called program) identified by the analysis unit 111 is a program that holds data internally or a program that updates data. Then, the duplication judging unit 112 judges that the program cannot be redundantly arranged when these conditions apply, and judges that the program can be arranged redundantly when it does not correspond to these conditions, and stores the result in the duplication judgment result DB 104. .
例えば、図6を例にして説明すると、重複判定部112は、他のプログラムから呼び出されるプログラムと判定されたプログラム2とプログラム3のうち、プログラム3はデータYに書き込みを行うので重複不可と判定し、プログラム2はデータの書き込みを行わないので重複可と判定する。
For example, referring to FIG. 6, of
ここで、図7から図11を用いて、重複可否の判定例を具体的に説明する。図7は、重複可能と判定される例を説明する図であり、図8から図11は、重複不可と判定される例を説明する図である。ここでは、COBOLで記述されたプログラムを例にして説明する。 Here, an example of judging whether overlap is possible will be specifically described with reference to FIGS. 7 to 11. FIG. FIG. 7 is a diagram for explaining an example in which it is determined that overlap is possible, and FIGS. 8 to 11 are diagrams for explaining examples in which it is determined that overlap is not possible. Here, a program written in COBOL will be described as an example.
図7の例では、プログラム2は、プログラム1から呼び出されるプログラムであり、呼出元のプログラム1からの入力のみを用いて処理して応答するプログラムである。具体的には、プログラム1は、プログラム2を呼び出すときに入力Aを指定すると出力Bを取得する。プログラム2は、入力Aが1であれば出力Bとして1を返却し、入力Aが1でなければ出力Bとして2を返却する。すわなち、プログラム2は、データを参照するだけであることから、重複可のプログラムと判定される。
In the example of FIG. 7,
図8の例では、プログラム3は、プログラム1から呼び出されるプログラムである。具体的には、呼出先のプログラム3は、図7で説明したプログラム2と同様の記述に加えて、データベースであるデータXに対して更新を行う。すわなち、プログラム3は、データに直接アクセスしてデータ更新を行うプログラムであり、データを更新する構文が記述されていることから、重複不可のプログラムと判定される。
In the example of FIG. 8, program 3 is a program called from
図9の例では、プログラム4は、プログラム1から呼び出されるプログラムである。具体的には、プログラム4は、プログラム1からの入力Aが1の場合に、データXを更新し、データXに対してID=Bを設定する。また、プログラム4は、プログラム1からの入力Aが1ではない場合に、データYを更新し、データYに対してID=Bを設定する。すなわち、プログラム4は、1つ以上のデータベースを更新するプログラムであることから、重複不可のプログラムと判定される。
In the example of FIG. 9, program 4 is a program called from
図10の例では、プログラム4は、プログラム1から呼び出されるプログラムである。具体的には、プログラム4は、プログラム1からの入力AをファイルAAに書き込み、ファイルAAのデータを、各プログラムがアクセス可能な共有メモリ領域のデータ項目BBに移動させる。すなわち、プログラム4は、ファイルに書き込む構文が記述されるプログラムであり、ファイル側と一体として管理すべきであることから、重複不可のプログラムと判定される。また、プログラム4は、共有メモリの領域を更新する構文が記述されるプログラムでもあり、共有メモリ領域と一体として管理すべきであり、重複不可のプログラムと判定される。
In the example of FIG. 10, program 4 is a program called from
図11の例は、Java(登録商標)等のオブジェクト指向言語で記述されたプログラムの例である。図11のプログラムは、SQL文などの明示的な記述がないものの、データベースへの参照や更新を行うプログラムである。このように、更新文がないプログラムであっても、データオブジェクトように、複数の処理で共有するデータを更新するプログラムについても、データと一体として管理すべきであり、重複不可のプログラムと判定される。 The example of FIG. 11 is an example of a program written in an object-oriented language such as Java (registered trademark). The program in FIG. 11 is a program that refers to and updates a database although there is no explicit description such as an SQL statement. In this way, even programs that do not have update statements, like data objects, that update data shared by multiple processes should be managed together with the data, and will be judged as non-duplicate programs. be.
図5に戻り、分析部113は、プログラム資産内に各プログラムや各データを、アプリケーションの構造を理解し易くすることができるように分析および分類する処理部である。具体的には、分析部113は、特開2018-181005号公報の手法を用いて、分類し、サービス部品を生成する。このとき、分析部113は、重複判定部112により重複不可と判定されたプログラムについては、独立したサービス部品に分類する。
Returning to FIG. 5, the
例えば、分析部113は、起点のプログラムから呼び出し関係を追跡して、プログラムの呼び出し構造全体を作成し、「プログラム群」として定義する。続いて、分析部113は、各プログラム群とデータとの関係性から、プログラム群とデータの関係で特に近いものをグループ化した部分集合であるサービス部品候補を生成する。その後、分析部113は、複数のサービス部品候補に関連付けられるデータのうち、他のサービス部品候補から更新されるデータを共通データとして抽出し、共通データを含まない複数のサービス部品候補および共通データを、プログラム資産のサービス部品として生成する。
For example, the
ここで、それぞれの処理について説明する。図12は、プログラムの呼出構造および分類を説明する図である。図12では、図6のプログラム資産からプログラム群を生成する例を図示している。上記例で説明すると、分析部113は、解析部111から通知される情報にしたがって、起点としてプログラム1、プログラム10、プログラム20を特定する。
Each process will now be described. FIG. 12 is a diagram for explaining the calling structure and classification of programs. FIG. 12 illustrates an example of generating a program group from the program assets of FIG. In the above example, the
続いて、分析部113は、起点であるプログラム1を起点に呼出構造を作成する。プログラム1は、プログラム2とプログラム3を呼び出す。このことから、プログラム1は、プログラム2、3と合わせて呼び出し構造を保持すると判定できる。したがって、分析部113は、プログラム1を起点とするプログラム群1を生成し、プログラム1から追跡できるプログラム2、プログラム3をプログラム群1に分類するが、プログラム3については重複不可と判定されていることから、プログラム群1からは除外する。なお、プログラム2は、重複可能と判定されているので、そのままプログラム群1に分類される。
Subsequently, the
このようにして、分析部113は、プログラム10とプログラム2から構成されるプログラム群10と、プログラム20とプログラム2から構成されるプログラム群20とを生成する。なお、分析部113は、プログラム3については重複不可と判定されていることから、いずれのプログラム群にも属さない独立したプログラム群として、プログラム群3を生成する。この結果、分析部113は、プログラム群1、プログラム群10、プログラム群20、プログラム群3を生成することができる。
Thus, the
続いて、分析部113は、各プログラム群に対して、各プログラム群がアクセスするデータを対応付ける。具体的には、プログラム群1のプログラム1は、データXを更新するとともに、データYを参照する。このため、分析部113は、プログラム群1がデータXを更新しデータ参照するという関係を定義する。このようにして、分析部113は、プログラム群1、プログラム群10、プログラム群20、プログラム群3それぞれについて、データを対応付ける。
Subsequently, the
これらの結果を図12に示す。分析部113は、図12の(a)に示す呼出関係を基に、図12の(b)に示すように、プログラム群1がデータXを更新しデータ参照するという関係などを生成して、記憶部12や他の処理部に出力する。具体的には、プログラム群1は、データXを更新し、データYを参照し、プログラム群3を呼び出す関係を有する。プログラム群10は、データYを更新し、プログラム群3を呼び出す関係を有する。プログラム群20は、データZを更新し、プログラム群3を呼び出す関係を有する。プログラム群3は、プログラム群1、10、20のそれぞれから呼び出され、データYを更新する関係を有する。
These results are shown in FIG. Based on the calling relationship shown in FIG. 12(a), the
なお、出力形式は、これに限定されず、出力先のツール等にあわせて様々な形式を採用できる。例えば、図12の(c)に示すように、カンマ区切りで関係形成を定義し、プログラム群とデータおよび参照関係を#read、更新関係を#writeと言う形で追記することで関係を記述することもできる。例えば、図12の(c)の1行目は、プログラム群1がデータXを更新(write)していることを記述している。
Note that the output format is not limited to this, and various formats can be adopted according to the output destination tool. For example, as shown in (c) of FIG. 12, relationships are described by defining relationship formations separated by commas, adding programs, data, and reference relationships in the form of #read, and update relationships in the form of #write. can also For example, the first line in (c) of FIG. 12 describes that
次に、分析部113は、特開2013-148987号公報などのクラスタリング技術を用いて、各プログラム群とデータとの関係性から、プログラム群とデータの関係で特に近いものをグループ化した部分集合であるサービス部品候補を生成する。例えば、分析部113は、各データへの入力数が多いほど関係性が強いと判断して、関係性が強いプログラム群とデータとを同一グループとなるように、サービス部品候補を生成する。生成された結果を図13に示す。図13は、サービス部品候補の生成結果を説明する図である。
Next, the
図13に示すように、分析部113は、プログラム群1とデータXとを含むサービス部品候補(ID=01)、プログラム群10を含むサービス部品候補(ID=02)、プログラム群20とデータZを含むービス部品候補(ID=03)、プログラム群3とデータYを含むービス部品候補(ID=04)の4つのサービス部品候補を生成する。また、分析部113は、サービス部品候補IDと部品とを対応付けた二項関係として、「(01,プログラム群1)、(01,データX)、(02,プログラム群10)、(03,プログラム群10)、(03,データZ)、(04,プログラム群3)、(04,データY)」なども生成する。その後、分析部113は、生成したサービス部品候補を他の処理部に出力する。
As shown in FIG. 13, the
その後、分析部113は、複数のサービス部品候補に関連付けられるデータのうち、他のサービス部品候補から更新されるデータを共通データとして抽出し、共通データを含まない複数のサービス部品候補および共通データを、プログラム資産のサービス部品として生成する。本実施例では、共通データが存在しない場合を例示したので、分析部113は、分類したサービス部品の結果として、図13に示す情報を分析結果DB105に格納する。
After that, the
図5に戻り、提示部114は、分析部113の分析結果をユーザ等に出力する処理部である。具体的には、提示部114は、分析結果DB105に記憶される分析結果を取得し、複数のサービス部品に分類した分析結果を表示する際に、起点となるプログラムや重複不可と判定されたプログラムを、他のプログラムやデータとは異なる形式で表示する。
Returning to FIG. 5, the presentation unit 114 is a processing unit that outputs the analysis result of the
図14は、分析結果および出力例を説明する図である。図14に示すように、提示部114は、起点のプログラムを縦に長く表示したりすることにより、他のプログラムより大きく出力する。また、提示部114は、プロセスごと(パッケージごと)に属するプログラムの色などを変えて表示する。また、提示部114は、データ更新等を行うことから独立したプロセスに分類されたプログラム3の色や形を変えることで、他のプログラムとは異なる形式で出力する。なお、提示部114は、ソフトウェア地図技術などを用いる場合は、起点のプログラムや重複不可のプログラムの形状について、高さや色を変えることにより、他のプログラムと区別して表示することもできる。 FIG. 14 is a diagram for explaining analysis results and output examples. As shown in FIG. 14, the presentation unit 114 displays the starting program in a vertically elongated manner, thereby outputting the program in a larger size than the other programs. In addition, the presentation unit 114 displays the programs belonging to each process (each package) in different colors. In addition, the presentation unit 114 changes the color and shape of the program 3 classified as an independent process to update data and the like, thereby outputting the program in a format different from that of other programs. When software map technology or the like is used, the presentation unit 114 can also display the shapes of the originating program and non-overlapping programs by changing the height and color to distinguish them from other programs.
[処理の流れ]
図15は、全体的な処理の流れを示すフローチャートである。図15に示すように、分析装置100は、分析処理の開始指示などを受け付けると、プログラム資産内のプログラム間の関係性を解析する(S101)。
[Process flow]
FIG. 15 is a flowchart showing the overall flow of processing. As shown in FIG. 15, when the
続いて、分析装置100は、各プログラムに対して、複数のプロセスに重複して配置することを許容できるか否かを判定する重複判定処理を実行した後(S102)、プログラムの呼び出し構造全体を追跡してプログラム群を生成するプログラム群生成処理を実行する(S103)。
Subsequently, the
その後、分析装置100は、プログラム群とデータの関係で特に近いものをグループ化した部分集合であるサービス部品候補の生成やサービス部品の抽出を行う部品抽出処理を実行し(S104)、共通データを含まない複数のサービス部品候補および共通データを、プログラム資産のサービス部品として生成した分析結果を提示する(S105)。
After that, the
(重複判定処理)
図16は、重複判定処理の流れを示すフローチャートである。なお、この処理は、図15のS102で実行される処理である。
(Duplicate determination process)
FIG. 16 is a flowchart showing the flow of duplication determination processing. Note that this process is a process executed in S102 of FIG.
図16に示すように、重複判定部112は、プログラムを取得し(S201)、当該プログラムの記述内容を参照して、データやDBを更新する構文があるか否かを判定する(S202)。ここで、重複判定部112は、データやDBを更新する構文がある場合(S202:Yes)、当該プログラムを重複不可として分類する(S203)。 As shown in FIG. 16, the duplication determination unit 112 acquires a program (S201), refers to the description content of the program, and determines whether or not there is a syntax for updating data or a DB (S202). Here, if there is a syntax for updating data or DB (S202: Yes), the duplication determination unit 112 classifies the program as non-duplicatable (S203).
一方、重複判定部112は、データやDBを更新する構文がないものの(S202:No)、ファイルを書き込む構文がある場合(S204:Yes)、当該プログラムを重複不可として分類する(S203)。 On the other hand, if there is no syntax for updating data or DB (S202: No) but there is syntax for writing a file (S204: Yes), the duplication determination unit 112 classifies the program as non-duplicate (S203).
また、重複判定部112は、ファイルを書き込む構文がないものの(S204:No)、共有メモリの領域を更新する構文がある場合(S205:Yes)、当該プログラムを重複不可として分類する(S203)。 If there is no file writing syntax (S204: No) but there is a syntax for updating the shared memory area (S205: Yes), the duplication determination unit 112 classifies the program as non-duplicate (S203).
そして、重複判定部112は、共有メモリの領域を更新する構文もない場合(S205:No)、当該プログラムを重複可として分類する(S206)。その後、重複判定部112は、未判定のプログラムが存在する場合(S207:No)、S201以降を繰り返し、全プログラムについて判定が終了すると(S207:Yes)、処理を終了する。 Then, if there is no syntax for updating the shared memory area (S205: No), the duplication determination unit 112 classifies the program as duplication possible (S206). After that, when there is an undetermined program (S207: No), the duplication determination unit 112 repeats the steps from S201 onward, and when determination is completed for all programs (S207: Yes), the process ends.
(プログラム群生成処理)
図17は、プログラム群生成処理の流れを示すフローチャートである。なお、この処理は、図15のS103で実行される処理である。
(program group generation processing)
FIG. 17 is a flow chart showing the flow of program group generation processing. Note that this process is the process executed in S103 of FIG.
図17に示すように、分析部113は、起点のプログラムを取得し(S301)、起点のプログラムから呼び出される呼出先のプログラムを取得する(S302)。
As shown in FIG. 17, the
続いて、分析部113は、呼出先のプログラムが重複可能なプログラムの場合(S303:Yes)、呼出先のプログラムを起点プログラムと同一のプログラム群に含める(S304)。一方、分析部113は、呼出先のプログラムが重複不可能なプログラムの場合(S303:No)、呼出先のプログラムと起点のプログラム群との二項関係を生成する(S305)。
Next, when the called program is a program that can be duplicated (S303: Yes), the
そして、分析部113は、追跡していない呼出先のプログラムが存在する場合(S307:No)、S302以降を繰り返す。一方、分析部113は、全ての呼出先のプログラムについて追跡が完了し(S307:Yes)、未処理の起点のプログラムが存在する場合(S308:No)、S301以降を繰り返し、未処理の起点のプログラムが存在しない場合(S308:Yes)、処理を終了する。
If there is a called program that has not been tracked (S307: No), the
[効果]
上述したように、分析装置100は、データに対して読み込み処理しかしないプログラムに対しては、多くの箇所(プロセス)からデータを読み込んでも問題が少なく、プロセス内部にプログラムを含めれば、プロセス内部の処理が早いと判定し、重複可能と判定することができる。また、分析装置100は、データに対して書込み処理をするプログラムに対しては、多くの箇所(プロセス)からデータを書き込むと他の処理が待たされることを優先し、重複不可能と判定することができる。
[effect]
As described above, the
したがって、分析装置100は、資産を分割するために、プログラムを重複して良いものと、重複してはいけないものを明示できることで、利用しやすい分割案を提示することができる。この結果、分析装置100は、理解し易い形式でアプリケーションの構造を提示することができる。
Therefore, the
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。 Although the embodiments of the present invention have been described so far, the present invention may be implemented in various different forms other than the embodiments described above.
[データや数値等]
上記実施例で用いたプログラム、プロセス、サービス部品、データの数等は、あくまで一例であり、任意に変更することができる。また、各処理の順序も矛盾のない範囲内で適宜変更することができる。
[Data, figures, etc.]
The number of programs, processes, service components, data, etc. used in the above embodiments are only examples and can be changed arbitrarily. Also, the order of each process can be changed as appropriate within a consistent range.
[プログラム解析]
上記実施例で説明した呼び出し関係やデータへの読み出し関係を取得する手法としては、パーサなどの公知のプログラム解析技術を採用することができる。
[Program analysis]
A known program analysis technique such as a parser can be employed as a method of acquiring the call relation and the read relation to data described in the above embodiment.
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[system]
Information including processing procedures, control procedures, specific names, and various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified.
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Also, each component of each device illustrated is functionally conceptual, and does not necessarily need to be physically configured as illustrated. That is, the specific forms of distribution and integration of each device are not limited to those shown in the drawings. That is, all or part of them can be functionally or physically distributed and integrated in arbitrary units according to various loads and usage conditions.
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。 Further, each processing function performed by each device may be implemented in whole or in part by a CPU and a program analyzed and executed by the CPU, or implemented as hardware based on wired logic.
[ハードウェア]
図18は、ハードウェア構成例を説明する図である。図18に示すように、分析装置10は、通信装置100a、HDD(Hard Disk Drive)100b、メモリ100c、プロセッサ100dを有する。また、図18に示した各部は、バス等で相互に接続される。
[hardware]
FIG. 18 is a diagram illustrating a hardware configuration example. As shown in FIG. 18, the
通信装置100aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD100bは、図2に示した機能を動作させるプログラムやDBを記憶する。
The communication device 100a is a network interface card or the like, and communicates with other devices. The
プロセッサ100dは、図5に示した各処理部と同様の処理を実行するプログラムをHDD100b等から読み出してメモリ100cに展開することで、図5等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、分析装置100が有する各処理部と同様の機能を実行する。具体的には、プロセッサ100dは、解析部111、重複判定部112、分析部113、提示部114等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、解析部111、重複判定部112、分析部113、提示部114等と同様の処理を実行するプロセスを実行する。
The processor 100d reads from the
このように、分析装置100は、プログラムを読み出して実行することで資産管理方法を実行する情報処理装置として動作する。また、分析装置100は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、分析装置100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
In this way, the
100 分析装置
101 通信部
102 記憶部
103 プログラム資産DB
104 重複判定結果DB
105 分析結果DB
110 制御部
111 解析部
112 重複判定部
113 分析部
114 提示部
100
104 Duplication determination result DB
105 Analysis result DB
110 control unit 111 analysis unit 112
Claims (6)
前記第1のプログラムのうち、前記複数のデータのいずれかのデータを内部に保持する、または、前記複数のデータのいずれかのデータを更新する、第2のプログラムを特定する第2特定部と、
前記複数のプログラムと前記複数のデータとを依存関係に基づき、プログラムとデータとを関連付けるサービス部品に分類する場合に、前記第2のプログラムを独立したサービス部品に分類する分類部と
を有することを特徴とする資産管理装置。 a first identifying unit that identifies a first program called from another program among a plurality of programs and a plurality of data that constitute program assets;
a second identifying unit that identifies a second program of the first program that internally retains any of the plurality of data or updates any of the plurality of data; ,
a classifying unit that classifies the second program into an independent service component when classifying the plurality of programs and the plurality of data into service components that associate the programs and data based on dependency relationships. An asset management device characterized by:
プログラム資産を構成する複数のプログラムと複数のデータのうち、他のプログラムから呼び出される第1のプログラムを特定し、
前記第1のプログラムのうち、前記複数のデータのいずれかのデータを内部に保持する、または、前記複数のデータのいずれかのデータを更新する、第2のプログラムを特定し、
前記複数のプログラムと前記複数のデータとを依存関係に基づき、プログラムとデータとを関連付けるサービス部品に分類する場合に、前記第2のプログラムを独立したサービス部品に分類する
処理を実行することを特徴とする資産管理方法。 the computer
Identifying a first program called from another program among a plurality of programs and a plurality of data constituting a program asset;
identifying a second program among the first programs that internally retains any of the plurality of data or updates any of the plurality of data;
and classifying the second program into an independent service component when classifying the plurality of programs and the plurality of data into service components that associate the programs and the data based on the dependency relationship. asset management method.
プログラム資産を構成する複数のプログラムと複数のデータのうち、他のプログラムから呼び出される第1のプログラムを特定し、
前記第1のプログラムのうち、前記複数のデータのいずれかのデータを内部に保持する、または、前記複数のデータのいずれかのデータを更新する、第2のプログラムを特定し、
前記複数のプログラムと前記複数のデータとを依存関係に基づき、プログラムとデータとを関連付けるサービス部品に分類する場合に、前記第2のプログラムを独立したサービス部品に分類する
処理を実行させることを特徴とする資産管理プログラム。 to the computer,
identifying a first program called from another program among a plurality of programs and a plurality of data constituting program assets;
identifying a second program among the first programs that internally retains any of the plurality of data or updates any of the plurality of data;
classifying the plurality of programs and the plurality of data into service components that associate the programs and the data based on dependencies, classifying the second program into independent service components. asset management program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019152021A JP7255420B2 (en) | 2019-08-22 | 2019-08-22 | ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019152021A JP7255420B2 (en) | 2019-08-22 | 2019-08-22 | ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021033562A JP2021033562A (en) | 2021-03-01 |
JP7255420B2 true JP7255420B2 (en) | 2023-04-11 |
Family
ID=74675872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019152021A Active JP7255420B2 (en) | 2019-08-22 | 2019-08-22 | ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7255420B2 (en) |
Citations (3)
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 |
JP2013148987A (en) | 2012-01-17 | 2013-08-01 | Fujitsu Ltd | Dividing device, dividing method, and dividing program |
JP2018181005A (en) | 2017-04-14 | 2018-11-15 | 富士通株式会社 | Program analysis device, program analysis method, and analysis program |
-
2019
- 2019-08-22 JP JP2019152021A patent/JP7255420B2/en active Active
Patent Citations (3)
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 |
JP2013148987A (en) | 2012-01-17 | 2013-08-01 | Fujitsu Ltd | Dividing device, dividing method, and dividing program |
JP2018181005A (en) | 2017-04-14 | 2018-11-15 | 富士通株式会社 | Program analysis device, program analysis method, and analysis program |
Also Published As
Publication number | Publication date |
---|---|
JP2021033562A (en) | 2021-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107644286B (en) | Workflow processing method and device | |
US8769242B2 (en) | Translation map simplification | |
US9356966B2 (en) | System and method to provide management of test data at various lifecycle stages | |
US8918377B2 (en) | Multiple source data management using a conflict rule | |
CN115934855B (en) | Full-link field-level blood margin analysis method, system, equipment and storage medium | |
KR101355273B1 (en) | A computing system, a method for controlling thereof, and a computer-readable recording medium having a computer program for controlling thereof | |
CN104536987A (en) | Data query method and device | |
CN112579705B (en) | Metadata acquisition method, device, computer equipment and storage medium | |
JP5963312B2 (en) | Information processing apparatus, information processing method, and program | |
JP2024505236A (en) | Data set multiplexer for data processing systems | |
JP2014123249A (en) | Information processor, program, and information processing method | |
JP7255420B2 (en) | ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM | |
JP6880962B2 (en) | Program analyzer, program analysis method and analysis program | |
JP4948126B2 (en) | Program for analyzing large-scale business system using Java (registered trademark) language program and processing method thereof | |
Howison et al. | BioLite, a Lightweight Bioinformatics Framework with Automated Tracking of Diagnostics and Provenance. | |
US20130111450A1 (en) | Runtime environment and method for non-invasive monitoring of software applications | |
JP2011514596A (en) | Efficiently correlate nominally incompatible types | |
CN108108422A (en) | A kind of metadata acquisition methods, device and the medium of Ceph file system | |
JP2019101829A (en) | Software component management system, computor, and method | |
US20130218928A1 (en) | Information processing device | |
US20160292076A1 (en) | Apparatus, program, and method for updating cache memory | |
CN113590660A (en) | Data self-service query method and device and electronic equipment | |
US11468101B2 (en) | Context-rich key framework implementations for global concept management | |
Krzikalla et al. | Analyzing One-Sided Communication Using Memory Access Diagrams | |
JP2018025852A (en) | Program analysis method, program analyzer and analysis program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220517 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230222 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230228 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230313 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7255420 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |