JP5673246B2 - Data store control device, data store control program, and data store control method - Google Patents

Data store control device, data store control program, and data store control method Download PDF

Info

Publication number
JP5673246B2
JP5673246B2 JP2011055965A JP2011055965A JP5673246B2 JP 5673246 B2 JP5673246 B2 JP 5673246B2 JP 2011055965 A JP2011055965 A JP 2011055965A JP 2011055965 A JP2011055965 A JP 2011055965A JP 5673246 B2 JP5673246 B2 JP 5673246B2
Authority
JP
Japan
Prior art keywords
data store
attribute
program
unit
data
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.)
Expired - Fee Related
Application number
JP2011055965A
Other languages
Japanese (ja)
Other versions
JP2012194602A (en
Inventor
裕司 溝渕
裕司 溝渕
聡 宗像
聡 宗像
小高 敏裕
敏裕 小高
智裕 大嶽
智裕 大嶽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011055965A priority Critical patent/JP5673246B2/en
Publication of JP2012194602A publication Critical patent/JP2012194602A/en
Application granted granted Critical
Publication of JP5673246B2 publication Critical patent/JP5673246B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データストア制御装置、データストア制御プログラムおよびデータストア制御方法に関する。   The present invention relates to a data store control device, a data store control program, and a data store control method.

従来より、テーブル単位でデータを格納し、SQL(Structured Query Language)文を用いてデータ操作が実行されるRDB(Relational Database)が利用されている。例えば、Java(登録商標)では、RDBを扱うフレームワークとしてJPA(Java(登録商標) Persistence Application Programming Interface)が提供されている。   Conventionally, RDB (Relational Database) that stores data in units of tables and executes data operations using SQL (Structured Query Language) statements has been used. For example, in Java (registered trademark), JPA (Java (registered trademark) Persistence Application Programming Interface) is provided as a framework for handling RDB.

図17は、Java(登録商標)によるテーブル作成を説明する図である。図17に示すように、Java(登録商標)プログラム上で永続化対象のクラスはRDB上の1テーブルに相当し、各オブジェクトはRDB上のテーブルの各行に相当し、各フィールドはRDB上のテーブルの項目に相当する。つまり、図17に示したEmployeeクラスは、RDB上で社員テーブルを定義するものである。また、Employeeクラス内で定義される「id」、「name」、「position」各々は、社員テーブル上のカラム「社員ID」、「名前」、「役職」に対応する。   FIG. 17 is a diagram for explaining table creation by Java (registered trademark). As shown in FIG. 17, a class to be persisted on a Java (registered trademark) program corresponds to one table on the RDB, each object corresponds to each row of the table on the RDB, and each field is a table on the RDB. Corresponds to the item. That is, the Employee class shown in FIG. 17 defines an employee table on the RDB. Further, “id”, “name”, and “position” defined in the Employee class correspond to columns “employee ID”, “name”, and “position” on the employee table, respectively.

続いて、RDBの性質を利用してテーブル間で関係付ける例を説明する。図18は、参照関係を有するテーブル作成例を示す図である。図18に示すように、Java(登録商標)プログラム上で、「社員ID」と「名前」と「役職」を定義するEmployeeクラスと、「部署ID」と「部署名」を定義するDepartmentクラスとが参照関係にあるクラス図を実行する。この場合、データストアアクセッサは、「社員ID」、「名前」、「役職」、「部署ID<FK(foreign key)>」から形成される社員テーブルと、「部署ID」および「部署名」を有する部署テーブルをRDB上に生成する。つまり、社員テーブルの「部署ID<FK>」は、部署テーブルの「部署ID」を参照することが定義され、社員テーブルと部署テーブルとは参照関係にあることが定義される。このように、Java(登録商標)では、JPAを用いてRDBで管理可能な各種テーブルが作成されている。   Next, an example of relating between tables using the properties of RDB will be described. FIG. 18 is a diagram illustrating an example of creating a table having a reference relationship. As shown in FIG. 18, on the Java (registered trademark) program, an Employee class that defines “Employee ID”, “Name”, and “Job title”, and a Department class that defines “Department ID” and “Department name” Executes the class diagram with the reference relationship. In this case, the data store accessor stores the employee table formed from “Employee ID”, “Name”, “Position”, “Department ID <FK (foreign key)>”, “Department ID” and “Department name”. Create a department table on the RDB. That is, “department ID <FK>” of the employee table is defined to refer to “department ID” of the department table, and it is defined that the employee table and the department table are in a reference relationship. As described above, in Java (registered trademark), various tables that can be managed by RDB using JPA are created.

近年では、クラウドコンピューティングの普及に伴って、従来から広く利用されているRDBの他に、分散KVS(Key-Value Store)等の新しいデータストアの利用が普及している。分散KVSは、サーバ間でのデータの一貫性保証を即時に実行する機能を有しないものの、複数のサーバでのデータ管理によるスケーラビリティや一部のサーバがダウンしてもサービスを継続できる高可用性を有し、RDBに比べてコストが安い。このようなことから、データの一貫性保証を即時にできるがコストが高いRDBと、コストが安く高可用性を有する分散KVSとの両方を用いてシステムを構築することが行われている。   In recent years, with the spread of cloud computing, the use of new data stores such as distributed KVS (Key-Value Store) has become widespread in addition to RDB that has been widely used. Distributed KVS does not have a function to immediately guarantee consistency of data among servers, but it has scalability by data management on multiple servers and high availability that allows services to continue even if some servers are down. It has a lower cost than RDB. For this reason, a system is constructed using both an RDB that can guarantee data consistency immediately but has a high cost, and a distributed KVS that is inexpensive and highly available.

このように、管理方式の異なるデータストアを利用したシステムでは、データストアを連携する技術やデータストアの参照アクセスを最適化する技術などが利用されている。例えば、管理方式の異なるデータストアを連携する技術として、各データストアに共通する基本操作を共通SQLと定義し、各データストア固有の操作については固有の言語を用いて操作する技術が利用されている。また、参照アクセスを最適化する技術として、Java(登録商標)におけるfinderメソッドのアクセスキーの依存関係と、getterメソッドやsetterメソッドによるアクセス状況とに基づいて、データストアへのアクセス回数を減らしたりすることが実施されている。   As described above, in a system using a data store with a different management method, a technique for linking data stores, a technique for optimizing reference access of the data store, and the like are used. For example, as a technology for linking data stores with different management methods, a basic operation common to each data store is defined as common SQL, and a technology that uses a unique language for operations unique to each data store is used. Yes. Also, as a technology for optimizing reference access, the number of accesses to the data store is reduced based on the dependency of the access key of the finder method in Java (registered trademark) and the access status of the getter method and setter method. Has been implemented.

特開2002−297418号公報JP 2002-297418 A 特開2001−51879号公報JP 2001-51879 A 特開2007−66017号公報JP 2007-66017 A

しかしながら、従来の技術では、管理方式が異なるデータストアに跨ってデータを登録する場合に、外部キーを用いてデータストア間が関連付けられるので、データの配置を変更するなどのデータストアの保守作業を効率的に実行できないという問題があった。   However, in the conventional technology, when data is registered across data stores with different management methods, the data stores are associated with each other by using an external key. There was a problem that it could not be executed efficiently.

上述したJPAを例にして説明すると、JPAでは、RDBにテーブルを作成するプログラム内に、RDBのデータが分散KVSを参照していることを外部キーで定義する。すなわち、JPAで複数のデータストアを扱う場合、データストアを跨るリレーションを有するテーブル間での外部参照は、アプリ側で実装することになる。このため、データの配置変更に伴ってアプリを修正するなどデータベース以外の保守を行うことになり、保守を行う範囲が広くなるので、データベースの保守作業を容易に行うことができず、効率的であるとは言い難い。   Using JPA as an example, JPA defines in the program that creates a table in RDB that the RDB data refers to the distributed KVS using a foreign key. That is, when dealing with a plurality of data stores in JPA, external references between tables having relations across the data stores are implemented on the application side. For this reason, maintenance other than the database will be performed, such as modifying the application in accordance with the data arrangement change, and the range of maintenance will be widened, so the maintenance work of the database cannot be performed easily and is efficient. It is hard to say that there is.

第1の側面では、データストアの保守作業を効率化するデータストア制御装置、データストア制御プログラムおよびデータストア制御方法を提供することを目的とする。   It is an object of the first aspect to provide a data store control device, a data store control program, and a data store control method that make data store maintenance work more efficient.

第1の案では、データストア制御装置は、第1データストアに対する処理を記述したプログラムで定義される永続化対象のうち、前記第1データストアが管理方式の異なる第2データストアを参照することを示す第1属性を永続化対象から除外する除外部を有する。データストア制御装置は、前記プログラムの参照先を識別する第2属性を永続化対象として、前記プログラムに追加する追加部を有する。データストア制御装置は、前記追加された第2属性に対応する定義情報として、前記参照先を特定する特定情報を前記プログラムに定義する定義部を有する。データストア制御装置は、前記プログラムに定義される前記第1属性に対応した定義情報を、前記特定情報を用いて前記第2のデータストアから取得する処理の実行を示す情報に変更する変更部を有する。   In the first proposal, the data store control device refers to a second data store having a different management method in the first data store among the persistence targets defined by the program describing the process for the first data store. It has the exclusion part which excludes the 1st attribute which shows from permanent object. The data store control device includes an adding unit that adds a second attribute that identifies a reference destination of the program as a persistence target to the program. The data store control device includes a definition unit that defines specific information for specifying the reference destination in the program as definition information corresponding to the added second attribute. The data store control device includes a changing unit that changes definition information corresponding to the first attribute defined in the program to information indicating execution of a process acquired from the second data store using the specific information. Have.

データストアの保守作業を効率化できる。   Data store maintenance work can be streamlined.

図1は、実施例1に係るアプリケーションサーバを含むシステムの全体構成を示す図である。FIG. 1 is a diagram illustrating an overall configuration of a system including an application server according to the first embodiment. 図2は、テーブルの参照関係を示す図である。FIG. 2 is a diagram illustrating a reference relationship between tables. 図3は、実施例2に係るアプリケーションサーバの構成を示すブロック図である。FIG. 3 is a block diagram illustrating the configuration of the application server according to the second embodiment. 図4は、設定ファイルテーブルに記憶される設定ファイルの例を示す図である。FIG. 4 is a diagram illustrating an example of a setting file stored in the setting file table. 図5は、識別属性およびリレーションが共に設定されている例を示す図である。FIG. 5 is a diagram illustrating an example in which both the identification attribute and the relation are set. 図6は、識別属性には値が設定されているがリレーションが設定されていない例を示す図である。FIG. 6 is a diagram illustrating an example in which a value is set in the identification attribute but no relation is set. 図7は、識別属性には値が設定されていないがリレーションが設定されている例を示す図である。FIG. 7 is a diagram illustrating an example in which no value is set for the identification attribute but a relation is set. 図8は、識別属性およびリレーションが共に設定されていない例を示す図である。FIG. 8 is a diagram illustrating an example in which neither the identification attribute nor the relation is set. 図9は、データアクセス部が実行するプログラムの例を示す図である。FIG. 9 is a diagram illustrating an example of a program executed by the data access unit. 図10は、図9に示したトランザクションインスタンスの取得の実装例を示す図である。FIG. 10 is a diagram illustrating an implementation example of acquiring the transaction instance illustrated in FIG. 9. 図11は、変換前のEmployeeクラスの例を示す図である。FIG. 11 is a diagram illustrating an example of the Employee class before conversion. 図12は、リレーションを永続化対象から除外して識別属性を記述した例を示す図である。FIG. 12 is a diagram illustrating an example in which the identification attribute is described by excluding the relation from the persistence target. 図13は、変換後のEmployeeクラスの例を示す図である。FIG. 13 is a diagram illustrating an example of the converted Employee class. 図14は、アプリケーション変換処理の流れを示すフローチャートである。FIG. 14 is a flowchart showing the flow of application conversion processing. 図15は、クラス変換後のプログラムの実行によって作成されるテーブルの例を示す図である。FIG. 15 is a diagram illustrating an example of a table created by executing a program after class conversion. 図16は、データストア制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。FIG. 16 is a diagram illustrating a hardware configuration example of a computer that executes a data store control program. 図17は、Java(登録商標)によるテーブル作成を説明する図である。FIG. 17 is a diagram for explaining table creation by Java (registered trademark). 図18は、参照関係を有するテーブル作成例を示す図である。FIG. 18 is a diagram illustrating an example of creating a table having a reference relationship.

以下に、本願の開示するデータストア制御装置、データストア制御プログラムおよびデータストア制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。   Embodiments of a data store control device, a data store control program, and a data store control method disclosed in the present application will be described below in detail with reference to the drawings. Note that the present invention is not limited to the embodiments.

図1は、実施例1に係るアプリケーションサーバを含むシステムの全体構成を示す図である。図1に示すように、このシステムは、データストアマシン1およびデータストアマシン2各々とアプリケーションサーバ3とがネットワークを介して接続される。このシステムは、アプリケーションサーバ3がデータストアマシン1またはデータストアマシン2に記憶されるデータを用いて各処理を実行するクラウドコンピューティングを実現する。   FIG. 1 is a diagram illustrating an overall configuration of a system including an application server according to the first embodiment. As shown in FIG. 1, in this system, a data store machine 1, a data store machine 2, and an application server 3 are connected via a network. This system realizes cloud computing in which the application server 3 executes each process using data stored in the data store machine 1 or the data store machine 2.

データストアマシン1は、RDB(Relational Database)を用いてデータを記憶するサーバである。データストアマシン2は、KVS(Key-Value Store)を用いてデータを記憶するサーバである。   The data store machine 1 is a server that stores data using an RDB (Relational Database). The data store machine 2 is a server that stores data using KVS (Key-Value Store).

アプリケーションサーバ3は、除外部3a、追加部3b、定義部3c、変更部3dを有し、データストアマシン1またはデータストアマシン2に対して、テーブル作成、データ登録、データ更新、データ削除等を実行するサーバである。   The application server 3 includes an excluding unit 3a, an adding unit 3b, a defining unit 3c, and a changing unit 3d. For the data store machine 1 or the data store machine 2, table creation, data registration, data update, data deletion, etc. The server to execute.

例えば、アプリケーションサーバ3がJPA(Java(登録商標) Persistence Application Programming Interface)を用いて、データストアマシン1とデータストアマシン2とが参照関係にあるテーブルを作成する例について説明する。   For example, an example will be described in which the application server 3 creates a table in which the data store machine 1 and the data store machine 2 have a reference relationship using JPA (Java (registered trademark) Persistence Application Programming Interface).

ここで、はじめに、データストアマシン1とデータストアマシン2にあるテーブルが参照関係にある例を説明する。図2は、テーブルの参照関係を示す図である。図2に示すように、RDBは、「社員ID、役職、名前、部署ID」から形成されるレコードを有する社員テーブルを有し、KVSは、「部署ID、部署名」から形成されるレコードを有する社員テーブルを有する。このような状況において、RDBの社員テーブルとKVSの部署テーブルは「部署ID」で関連付けられており、社員テーブルから関連する部署テーブルのレコードを取得することが出来る。このような関係を参照関係にあるという。   Here, an example in which tables in the data store machine 1 and the data store machine 2 are in a reference relationship will be described first. FIG. 2 is a diagram illustrating a reference relationship between tables. As shown in Fig. 2, RDB has an employee table with records formed from "Employee ID, Title, Name, Department ID", and KVS has a record formed from "Department ID, Department". Have an employee table. In such a situation, the RDB employee table and the KVS department table are related by “department ID”, and the record of the related department table can be acquired from the employee table. Such a relationship is called a reference relationship.

次に、アプリケーションサーバ3がJPAを用いて、データストアマシン1にデータストアマシン2を参照するテーブルを生成する第1プログラムを実行したとする。この場合、除外部3aは、データストアマシン1に作成するテーブルに関して定義した永続化対象のうち、データストアマシン1のテーブルが他のテーブルを参照することを示す第1属性をプログラムの永続化対象から除外する。続いて、追加部3bは、データストア1のテーブルからデータストア2のテーブルを識別する第2属性を永続化対象としてプログラムに追加する。そして、定義部3cは、追加された第2属性に対応する定義情報として参照先を特定する特定情報をプログラムに含めるようにする。さらに、変更部3dは、プログラムに定義される第1属性に対応した定義情報を、特定情報を用いてデータストアマシン2から取得する処理の実行を示す情報に変更する。   Next, it is assumed that the application server 3 uses the JPA to execute a first program that generates a table for referring to the data store machine 2 in the data store machine 1. In this case, the exclusion unit 3a sets the first attribute indicating that the table of the data store machine 1 refers to another table among the persistence targets defined for the table to be created in the data store machine 1 as the program persistence target. Exclude from Subsequently, the adding unit 3b adds a second attribute for identifying the table of the data store 2 from the table of the data store 1 to the program as a permanent object. Then, the definition unit 3c includes, in the program, identification information that identifies the reference destination as definition information corresponding to the added second attribute. Furthermore, the changing unit 3d changes the definition information corresponding to the first attribute defined in the program to information indicating execution of the process acquired from the data store machine 2 using the specific information.

このように、アプリケーションサーバ3は、外部キーが定義されたプログラムが実行された場合でも、外部キーを使わずに、管理方式が異なるデータベース間が結びつくように、プログラム内容を書き換えることができる。したがって、データストアマシン1やデータストアマシン2のデータ配置を変更した場合でも、プログラムを修正しなくて済むので、管理方式が異なるデータストアに跨ってデータが登録されている状況でも、データストアの保守作業を効率的に実行できる。   Thus, even when a program in which a foreign key is defined is executed, the application server 3 can rewrite the program contents so that databases with different management methods are connected without using the foreign key. Therefore, even if the data arrangement of the data store machine 1 or the data store machine 2 is changed, it is not necessary to modify the program. Therefore, even if the data is registered across data stores with different management methods, the data store Maintenance work can be performed efficiently.

次に、実施例2に係るアプリケーションサーバについて説明する。ここでは、アプリケーションサーバの構成、具体例、処理の流れ、実施例2による効果を説明する。なお、システム構成は図1と同様とするので、システム構成およびアプリケーションサーバ以外は省略する。また、実施例2では、JPAを用いたプログラムで記述されるアプリケーションを例にして説明する。   Next, an application server according to the second embodiment will be described. Here, the configuration of the application server, a specific example, the flow of processing, and the effects of the second embodiment will be described. Since the system configuration is the same as that shown in FIG. 1, the system configuration and the application server are omitted except for the system configuration. In the second embodiment, an application described by a program using JPA will be described as an example.

[アプリケーションサーバの構成]
図3は、実施例2に係るアプリケーションサーバの構成を示すブロック図である。図3に示すように、アプリケーションサーバ10は、変換前アプリテーブル11、変換後アプリテーブル12、設定ファイルテーブル13、変換前実行部14、永続化クラス変換部15、変換後実行部16、データアクセス部17、データアクセッサ18を有する。
Application server configuration
FIG. 3 is a block diagram illustrating the configuration of the application server according to the second embodiment. As shown in FIG. 3, the application server 10 includes a pre-conversion application table 11, a post-conversion application table 12, a setting file table 13, a pre-conversion execution unit 14, a persistent class conversion unit 15, a post-conversion execution unit 16, and data access. Part 17 and data accessor 18.

なお、変換前アプリテーブル11、変換後アプリテーブル12、設定ファイルテーブル13は、半導体メモリ素子やハードディスクなどに設けられる。また、上記テーブル以外の各制御部は、CPU(Central Processing Unit)などによって実行される。   The pre-conversion application table 11, the post-conversion application table 12, and the setting file table 13 are provided in a semiconductor memory device, a hard disk, or the like. Each control unit other than the above table is executed by a CPU (Central Processing Unit) or the like.

変換前アプリテーブル11は、開発者が生成したアプリケーションを記憶する。例えば、変換前アプリテーブル11は、RDBでデータを管理するデータストアマシン1に対して、テーブル作成、データ登録、データ更新、データ削除等の処理を実行するアプリケーションを記憶する。また、変換前アプリテーブル11は、KVSでデータを管理するデータストアマシン2に対して、テーブル作成、データ登録、データ更新、データ削除等の処理を実行するアプリケーションを記憶する。   The pre-conversion application table 11 stores an application generated by a developer. For example, the pre-conversion application table 11 stores an application that executes processing such as table creation, data registration, data update, and data deletion for the data store machine 1 that manages data in the RDB. In addition, the pre-conversion application table 11 stores an application that executes processing such as table creation, data registration, data update, and data deletion for the data store machine 2 that manages data with KVS.

別例としては、変換前アプリテーブル11は、データストアマシン1に対するデータ処理であって、データストアマシン2のテーブルを参照する外部キーが設定されたアプリケーションを記憶する。同様に、変換前アプリテーブル11は、データストアマシン2に対するデータ処理であって、データストアマシン1のテーブルを参照する外部キーが設定されたアプリケーソンを記憶する。なお、ここで記憶されるアプリケーションは、アプリケーション開発者やアプリケーションサーバ10の管理者等によって格納される。変換前のアプリケーション11は、変換前アプリケーションに対応付けて、生成された日時や更新回数などを記憶することもできる。   As another example, the pre-conversion application table 11 is a data process for the data store machine 1 and stores an application in which a foreign key that refers to the table of the data store machine 2 is set. Similarly, the pre-conversion application table 11 is a data process for the data store machine 2 and stores an application in which an external key that refers to the table of the data store machine 1 is set. The application stored here is stored by an application developer, an administrator of the application server 10, or the like. The application 11 before conversion can also store the generated date and time, the number of updates, etc. in association with the application before conversion.

変換後アプリテーブル12は、永続化クラス変換部15によって変換されたアプリケーションを記憶する。なお、ここで記憶されるアプリケーションは、後述する永続化クラス変換部15の変更部15dによって格納および更新される。また、変換後アプリテーブル12は、変換後のアプリケーションに対応付けて、変換された日時や変換回数などを記憶することもできる。   The post-conversion application table 12 stores the application converted by the persistent class conversion unit 15. The application stored here is stored and updated by the changing unit 15d of the persistence class converting unit 15 described later. The converted application table 12 can also store the date and time of conversion, the number of conversions, and the like in association with the converted application.

設定ファイルテーブル13は、データストアごとに配置されるクラスの設定ファイルを記憶する。図4は、設定ファイルテーブル13に記憶される設定ファイルの例を示す図である。図4に示すように、データストアとして、URL(Uniform Resource Locator)が「http//localdomain/RDB」であり、「RDB」で管理するデータストア名「RDB4Update」が設定されている。そして、このデータストアのクラスとして「Entity Class=Department」が設定されている。同様に、データストアとして、URLが「http//localdomain/KVS」であり、「KVS」で管理するデータストア名「KVS」が設定されている。そして、このデータストアのクラスとして「Entity Class=Employee」が設定されている。つまり、図4では、DepartmentクラスがRDBに配置され、EmployeeクラスがKVSに配置されることを、マップで管理することが示されている。   The setting file table 13 stores a setting file of a class arranged for each data store. FIG. 4 is a diagram illustrating an example of a setting file stored in the setting file table 13. As shown in FIG. 4, the URL (Uniform Resource Locator) is “http // localdomain / RDB” and the data store name “RDB4Update” managed by “RDB” is set as the data store. Then, “Entity Class = Department” is set as the class of the data store. Similarly, as the data store, the URL is “http // localdomain / KVS”, and the data store name “KVS” managed by “KVS” is set. “Entity Class = Employee” is set as the class of the data store. That is, FIG. 4 shows that the Department class is arranged in the RDB and that the Employee class is arranged in the KVS is managed by the map.

変換前実行部14は、管理者等の指示操作を受け付けると、指定されたアプリケーションを変換前アプリテーブル11から読み出して実行する。なお、変換前実行部14は、マウスなどの入力装置やタッチパネルなどの出力装置等から指示操作を受け付けることができ、さらに、ネットワークを介して他のサーバから指示操作を受け付けることもできる。実施例2では、変換前実行部14が、データストアマシン1に対するデータ処理であって、データストアマシン2のテーブルを参照する外部キーが設定されたアプリケーションAを実行したとする。   When the pre-conversion execution unit 14 receives an instruction operation from an administrator or the like, the pre-conversion execution unit 14 reads the designated application from the pre-conversion application table 11 and executes it. Note that the pre-conversion execution unit 14 can accept an instruction operation from an input device such as a mouse, an output device such as a touch panel, or the like, and can also accept an instruction operation from another server via a network. In the second embodiment, it is assumed that the pre-conversion execution unit 14 performs data processing for the data store machine 1 and executes an application A in which a foreign key that refers to the table of the data store machine 2 is set.

永続化クラス変換部15は、除外部15a、追加部15b、定義部15c、変更部15dを有し、これらによって、変換前実行部14によって実行されたアプリケーションを変換して、変換後アプリテーブル12に格納する。   The persistence class converting unit 15 includes an excluding unit 15a, an adding unit 15b, a defining unit 15c, and a changing unit 15d, which converts an application executed by the pre-conversion execution unit 14 and converts the application table 12 after conversion. To store.

除外部15aは、永続化クラスのクラス間の参照関係を表すリレーション属性を永続化対象から除外する。例えば、除外部15aは、データストアマシン1にテーブルを作成するアプリケーションAにおいて、アプリケーションAがデータストアマシン1と管理方式が異なるデータストアマシン2を参照することを示すリレーション属性を永続化対象から除外する。   The exclusion unit 15a excludes a relation attribute representing a reference relationship between classes of the persistence class from the persistence target. For example, in the application A that creates a table in the data store machine 1, the exclusion unit 15 a excludes the relation attribute indicating that the application A refers to the data store machine 2 having a management method different from that of the data store machine 1 from the persistence target. To do.

つまり、除外部15aは、アプリケーションA内のクラス1においてリレーションを表すアノテーションで記述された参照先オブジェクトをリレーション属性として特定し、特定したオブジェクトを永続化対象から除外する。言い換えると、除外部15aは、リレーション属性をデータストアマシン1の管理対象から除外する。   That is, the excluding unit 15a specifies the reference object described by the annotation representing the relation in the class 1 in the application A as the relation attribute, and excludes the specified object from the persistence target. In other words, the excluding unit 15 a excludes the relation attribute from the management target of the data store machine 1.

追加部15bは、クラス1の参照先を識別する識別属性を永続化対象としてアプリケーションAのクラス1に追加する。上記例を用いて説明すると、追加部15bは、除外部15aによってリレーションが管理対象から除外されたアプリケーションAに対して、除外されたリレーションによって指定されていた参照先を識別する識別属性をアプリケーションAに新たに追加する。   The adding unit 15b adds an identification attribute for identifying the reference destination of class 1 to class 1 of application A as a persistence target. If it demonstrates using the said example, the addition part 15b will set the identification attribute which identifies the reference destination designated by the excluded relation with respect to the application A from which the relation was excluded from the management object by the exclusion part 15a. Add a new to.

定義部15cは、追加された識別属性に対応する定義情報として、参照先を特定する特定情報をアプリケーションAに定義する。上記例を用いて説明すると、定義部15cは、識別属性が新たに記述されたアプリケーションAに対して、識別属性のsetterメソッドとgetterメソッドを新たに記述する。   The definition unit 15c defines specific information for specifying the reference destination in the application A as definition information corresponding to the added identification attribute. If it demonstrates using the said example, the definition part 15c will newly describe the setter method and getter method of an identification attribute with respect to the application A in which the identification attribute was newly described.

変更部15dは、アプリケーションAのクラス1に定義されているリレーション属性の定義内容を、定義部15cによって定義されたプライマリキーを用いてデータストアマシン2から参照先のオブジェクトを取得する処理に変更する。上記例を用いて説明すると、変更部15dは、識別属性が新たに記述されたアプリケーションAに対して、外部キーとして設定されていたリレーション属性に対して定義されるsetterメソッドとgetterメソッドを修正する。そして、変更部15dは、変換した変換後のアプリケーションAを変換後アプリテーブル12に格納する。   The change unit 15d changes the definition content of the relation attribute defined in the class 1 of the application A to a process of acquiring the reference destination object from the data store machine 2 using the primary key defined by the definition unit 15c. . If it demonstrates using the said example, the change part 15d will correct the setter method and getter method defined with respect to the relation attribute set as a foreign key with respect to the application A in which the identification attribute was newly described. . Then, the changing unit 15d stores the converted application A after conversion in the converted application table 12.

ここで、定義部15cおよび変更部15dは、図5〜図8に示したいずれの条件であっても整合性が取れるように、setterメソッドとgetterメソッドの定義または修正を実行する。図5は、識別属性およびリレーションが共に設定されている例を示す図である。図6は、識別属性には値が設定されているがリレーションが設定されていない例を示す図である。図7は、識別属性には値が設定されていないがリレーションが設定されている例を示す図である。図8は、識別属性およびリレーション共に設定されていない例を示す図である。   Here, the definition unit 15c and the change unit 15d execute definition or correction of the setter method and the getter method so that the consistency can be obtained regardless of any of the conditions illustrated in FIGS. FIG. 5 is a diagram illustrating an example in which both the identification attribute and the relation are set. FIG. 6 is a diagram illustrating an example in which a value is set in the identification attribute but no relation is set. FIG. 7 is a diagram illustrating an example in which no value is set for the identification attribute but a relation is set. FIG. 8 is a diagram illustrating an example in which neither the identification attribute nor the relation is set.

具体的には、図5は、データストアマシン1のEmployeeテーブルを定義するアプリケーションAに、「社員ID=003、役職=一般社員、名前=山田、識別属性(dep_id)=B001」が設定されている。さらに、Employeeテーブルの参照先であるデータストアマシン2のDepartmentテーブルを定義するアプリケーションBに、「部署ID=B001、部署名=購買」が設定されている状況である。   Specifically, FIG. 5 shows that “employee ID = 003, title = general employee, name = Yamada, identification attribute (dep_id) = B001” is set in the application A that defines the Employee table of the data store machine 1. Yes. Furthermore, “department ID = B001, department name = purchasing” is set in the application B that defines the Department table of the data store machine 2 that is the reference destination of the Employee table.

図6は、データストアマシン1のEmployeeテーブルを定義するアプリケーションAに、「社員ID=003、役職=一般社員、名前=山田、識別属性(dep_id)=B001」が設定されている。一方、データストアマシン2のDepartmentテーブルを定義するアプリケーションBには何も設定されていない状況である。   In FIG. 6, “employee ID = 003, title = general employee, name = Yamada, identification attribute (dep_id) = B001” is set in the application A that defines the Employee table of the data store machine 1. On the other hand, nothing is set in the application B that defines the Department table of the data store machine 2.

図7は、データストアマシン1のEmployeeテーブルを定義するアプリケーションAに、「社員ID=003、役職=一般社員、名前=山田、識別属性(dep_id)=NULL」が設定されている。さらに、Employeeテーブルの参照先であるデータストアマシン2のDepartmentテーブルを定義するアプリケーションBに、「部署ID=B001、部署名=購買」が設定されている状況である。   In FIG. 7, “employee ID = 003, title = general employee, name = Yamada, identification attribute (dep_id) = NULL” is set in the application A that defines the Employee table of the data store machine 1. Furthermore, “department ID = B001, department name = purchasing” is set in the application B that defines the Department table of the data store machine 2 that is the reference destination of the Employee table.

図8は、データストアマシン1のEmployeeテーブルを定義するアプリケーションAに、「社員ID=003、役職=一般社員、名前=山田、識別属性(dep_id)=NULL」が設定されている。さらに、データストアマシン2のDepartmentテーブルを定義するアプリケーションBに、「部署ID=B001、部署名=購買」が設定されているが、EmployeeテーブルとDepartmentテーブルとは参照関係にない状況である。   In FIG. 8, “employee ID = 003, title = general employee, name = Yamada, identification attribute (dep_id) = NULL” is set in the application A that defines the Employee table of the data store machine 1. Furthermore, “department ID = B001, department name = purchasing” is set in the application B that defines the Department table of the data store machine 2, but the Employee table and the Department table are not in a reference relationship.

したがって、定義部15cおよび変更部15dは、アプリケーションAの変換前と変換後とでテーブル構成等が変わらないように、様々な状況に対応可能なsetterメソッドとgetterメソッドを生成する。なお、具体例を挙げた説明は後述するので、ここでは省略する。   Therefore, the definition unit 15c and the change unit 15d generate setter methods and getter methods that can handle various situations so that the table configuration or the like does not change before and after the conversion of the application A. Note that description with a specific example will be described later, and is omitted here.

図3に戻り、変換後実行部16は、変換後アプリテーブル12から変換後のアプリケーションを読み出して実行する。変換後実行部16は、変換後のアプリケーションAを実行した場合、データストアマシン1に対するテーブル作成要求をデータアクセス部17に出力する。   Returning to FIG. 3, the post-conversion execution unit 16 reads the converted application from the post-conversion application table 12 and executes it. The post-conversion execution unit 16 outputs a table creation request for the data store machine 1 to the data access unit 17 when executing the converted application A.

データアクセス部17は、設定ファイルテーブル13に記憶されるクラスごとの設定ファイルに基づいて、クラスごとにアクセスするデータストアを定義するMetaEntityManagerを生成する。例えば、データアクセス部17は、永続化クラスと配置先データストアに対応するアクセッサをマップで保持する。続いて、データアクセス部17は、データストアと配置されるクラスの一覧ファイルとを設定ファイルテーブル13から取り込み、マップ内に、クラスをキーにして配置先データストアのデータアクセッサであるEntityManagerを設定する。そして、データアクセス部17は、作成部17a、更新部17b、参照部17c、トランザクション管理部17dを有し、これらと図9に示したプログラムとにしたがって処理を実行する。図9は、データアクセス部が実行するプログラムの例を示す図である。   The data access unit 17 generates a MetaEntityManager that defines a data store to be accessed for each class based on the setting file for each class stored in the setting file table 13. For example, the data access unit 17 holds the accessor corresponding to the persistence class and the placement destination data store in a map. Subsequently, the data access unit 17 takes in the data store and the list file of the classes to be arranged from the setting file table 13 and sets the EntityManager that is the data accessor of the arrangement destination data store in the map using the class as a key. . The data access unit 17 includes a creation unit 17a, an update unit 17b, a reference unit 17c, and a transaction management unit 17d, and executes processing according to these and the program shown in FIG. FIG. 9 is a diagram illustrating an example of a program executed by the data access unit.

作成部17aは、変換後実行部16によって実行されたアプリケーションからCreateメッセージを受信した場合、当該アプリケーションのクラスに対応するデータアクセッサを特定する。そして、作成部17aは、特定したデータアクセッサを実行するデータアクセッサ18にCreateメッセージを送信する。例えば、作成部17aは、データストアマシン1へのCreateメッセージを受信した場合に、rdb_EntityManagerにCreateメッセージを送信する。また、作成部17aは、データストアマシン2へのCreateメッセージを受信した場合に、kvs_EntityManagerにCreateメッセージを送信する。   When the creation unit 17a receives a Create message from the application executed by the post-conversion execution unit 16, the creation unit 17a identifies a data accessor corresponding to the class of the application. Then, the creation unit 17a transmits a Create message to the data accessor 18 that executes the specified data accessor. For example, when the creation unit 17a receives a Create message for the data store machine 1, the creation unit 17a transmits the Create message to the rdb_EntityManager. Further, when the creation unit 17a receives a Create message to the data store machine 2, the creation unit 17a transmits the Create message to kvs_EntityManager.

更新部17bは、JPAのpersist関数を複数データストアに対応付けたものであり、図9に示した更新用メソッドを実行する。例えば、更新部17bは、変換後実行部16によって実行されたアプリケーションがpersist関数を実行した場合、当該persist関数の実行先アプリケーションのクラスに対応するデータアクセッサを特定する。そして、更新部17bは、特定したデータアクセッサを実行するデータアクセッサ18に処理実行依頼を送信する。   The update unit 17b associates the persist function of JPA with a plurality of data stores, and executes the update method shown in FIG. For example, when the application executed by the post-conversion execution unit 16 executes the persist function, the update unit 17b specifies the data accessor corresponding to the execution application class of the persist function. Then, the update unit 17b transmits a process execution request to the data accessor 18 that executes the specified data accessor.

一例を挙げると、更新部17bは、persist関数におけるEntityの配置先がデータストアマシン1である場合に、rdb_EntityManagerに更新処理の実行を指示する。また、更新部17bは、persist関数におけるEntityの配置先がデータストアマシン2である場合に、kvs_EntityManagerに更新処理の実行を指示する。   As an example, the update unit 17b instructs the rdb_EntityManager to execute update processing when the Entity placement destination in the persist function is the data store machine 1. In addition, the update unit 17b instructs kvs_EntityManager to execute update processing when the Entity placement destination in the persist function is the data store machine 2.

参照部17cは、JPAのfind関数を複数データストアに対応付けたものであり、図9に示した参照用メソッドを実行する。例えば、参照部17cは、変換後実行部16によって実行されたアプリケーションがfind関数を実行した場合、当該find関数の実行先アプリケーションのクラスに対応するデータアクセッサを特定する。そして、参照部17cは、特定したデータアクセッサを実行するデータアクセッサ18に処理実行依頼を送信する。   The reference unit 17c associates a JPA find function with a plurality of data stores, and executes the reference method shown in FIG. For example, when the application executed by the post-conversion execution unit 16 executes the find function, the reference unit 17c specifies the data accessor corresponding to the execution application class of the find function. Then, the reference unit 17c transmits a process execution request to the data accessor 18 that executes the specified data accessor.

一例を挙げると、参照部17cは、find関数におけるクラスの配置先がデータストアマシン1である場合に、rdb_EntityManagerに参照処理の実行を指示する。また、参照部17cは、find関数におけるクラスの配置先がデータストアマシン2である場合に、kvs_EntityManagerに参照処理の実行を指示する。   For example, the reference unit 17c instructs the rdb_EntityManager to execute the reference process when the class placement destination in the find function is the data store machine 1. Further, the reference unit 17c instructs kvs_EntityManager to execute the reference process when the class arrangement destination in the find function is the data store machine 2.

トランザクション管理部17dは、JPAにおけるgetTransactionを複数データストアに対応付けたものであり、図9に示したトランザクションインスタンスの取得を実行する。このトランザクション管理部17dは、図10に例示した複数のトランザクションを管理するMetaTransactionクラスを実装し、各データストアマシンへのトランザクションを同時に実行して終了させるように、各トランザクションを管理する。図10は、図9に示したトランザクションインスタンスの取得の実装例を示す図である。   The transaction management unit 17d associates getTransaction in JPA with a plurality of data stores, and executes transaction instance acquisition shown in FIG. The transaction management unit 17d implements the MetaTransaction class for managing a plurality of transactions illustrated in FIG. 10, and manages each transaction so that transactions to each data store machine are executed and terminated simultaneously. FIG. 10 is a diagram illustrating an implementation example of acquiring the transaction instance illustrated in FIG. 9.

データアクセッサ18は、各データストアマシンに対応したアクセッサを保持し、データアクセス部17から入力された各種処理を対応するアクセッサに振り分ける。そして、データアクセッサ18は、各アクセッサを用いてデータストアに処理を実行する。例えば、データアクセッサ18は、データストアマシン1へのテーブル作成処理、言い換えると、Employeeクラスの実行要求を受信した場合に、データストアマシン1に対応したアクセッサを用いて、テーブル作成処理をデータストアマシン1に実行する。同様に、データアクセッサ18は、データストアマシン2へのテーブル作成処理、言い換えると、Departmentクラスの実行要求を受信した場合に、データストアマシン2に対応したアクセッサを用いて、テーブル作成処理をデータストアマシン2に実行する。   The data accessor 18 holds an accessor corresponding to each data store machine, and distributes various processes input from the data access unit 17 to the corresponding accessor. Then, the data accessor 18 performs processing on the data store using each accessor. For example, when the data accessor 18 receives a table creation process for the data store machine 1, in other words, when an execution request for the Employee class is received, the data accessor 18 uses the accessor corresponding to the data store machine 1 to perform the table creation process. Run to 1. Similarly, when the data accessor 18 receives a table creation process to the data store machine 2, in other words, when an execution request for the Department class is received, the data accessor 18 uses the accessor corresponding to the data store machine 2 to perform the table creation process. Run on machine 2.

[具体例]
次に、図11〜図13を用いて、プログラム変換の具体例を説明する。図11は、変換前のEmployeeクラスの例を示す図であり、図12は、リレーションを永続化対象から除外して識別属性を記述した例を示す図であり、図13は、変換後のEmployeeクラスの例を示す図である。ここでは、JPAで記述されるプログラムを例にして説明する。
[Concrete example]
Next, a specific example of program conversion will be described with reference to FIGS. FIG. 11 is a diagram illustrating an example of the Employee class before conversion, FIG. 12 is a diagram illustrating an example in which the identification attribute is described by excluding the relation from the persistence target, and FIG. 13 is a diagram illustrating the Employee after conversion. It is a figure which shows the example of a class. Here, a program written in JPA will be described as an example.

変換前実行部14は、図11に示したプログラムを有するアプリケーションを実行する。すると、除外部15aは、図11の(A)に示したアノテーション「@OneToOne」に記述される「private Department dep;」を、図12に示すように「private transient Department dep;」に変更する。この結果、「Department dep」が永続化対象から除外され、各データストアマシンの管理対象外となる。   The pre-conversion execution unit 14 executes an application having the program shown in FIG. Then, the exclusion unit 15a changes “private Department dep;” described in the annotation “@OneToOne” illustrated in FIG. 11A to “private transient Department dep;” as illustrated in FIG. As a result, “Department dep” is excluded from the persistence target and excluded from the management target of each data store machine.

追加部15bは、図12に示すように、図11の状態では記述されていなかった「private String dep_id」をプログラム内に新たに記述する。この結果、識別属性としてString型の「dep_id」が永続化対象として新たに定義される。   As illustrated in FIG. 12, the adding unit 15 b newly describes “private String dep_id” that has not been described in the state of FIG. 11 in the program. As a result, “dep_id” of the String type is newly defined as a permanent object as an identification attribute.

そして、定義部15cは、図13の(B)に示すように、識別属性「dep_id」のgetterメソッドをプログラム内に新たに定義する。具体的には、定義部15cは、Employeeクラス内のリレーション属性「this.dep」に値が設定されていれば、リレーション先の識別属性の値を返し、クラス内のリレーション属性「this.dep」に値が設定されていなければ、識別属性の値を返す。つまり、定義部15cは、リレーション先であるDepatmentクラスに値が設定されている場合には、Depatmentクラスで設定されている識別属性の値、言い換えると、参照先のオブジェクトのプライマリキーを返す。また、定義部15cは、リレーション先であるDepatmentクラスに値が設定されている場合には、Employeeクラスの識別属性の値を返す。   Then, the definition unit 15c newly defines a getter method having the identification attribute “dep_id” in the program, as illustrated in FIG. Specifically, if a value is set in the relation attribute “this.dep” in the Employee class, the definition unit 15c returns the value of the identification attribute of the relation destination, and the relation attribute “this.dep” in the class. If no value is set in, the value of the identification attribute is returned. That is, when a value is set in the Relation class, the definition unit 15c returns the value of the identification attribute set in the Depatment class, in other words, the primary key of the reference object. Further, the definition unit 15c returns the value of the identification attribute of the Employee class when a value is set in the Department class that is the relation destination.

また、定義部15cは、図13の(C)に示すように、識別属性「dep_id」のsetterメソッドをプログラム内に新たに定義する。具体的には、定義部15cは、識別属性「dep_id」に「this.dep_id」の値を設定する。   In addition, the definition unit 15c newly defines a setter method of the identification attribute “dep_id” in the program as illustrated in FIG. Specifically, the definition unit 15 c sets the value of “this.dep_id” to the identification attribute “dep_id”.

続いて、変更部15dは、図13の(D)に示すように、Employeeクラス内に既に定義されているリレーション属性「dep」のgettrメソッドを変更する。具体的には、変更部15dは、Employeeクラス内のリレーション属性「this.dep」にnullが設定され、かつ、Employeeクラス内の識別属性「this.dep_id」にnullが設定されていなければ、識別属性を用いてデータストアからオブジェクトを取得して応答する。また、変更部15dは、Employeeクラス内のリレーション属性「this.dep」にnullが設定されていない、または、Employeeクラス内の識別属性「this.dep_id」にnullが設定されている場合、リレーション属性「dep」の値を応答する。   Subsequently, the changing unit 15d changes the gettr method of the relation attribute “dep” already defined in the Employee class, as illustrated in FIG. Specifically, the changing unit 15d identifies the relation attribute “this.dep” in the Employee class if null is set and the identification attribute “this.dep_id” in the Employee class is not set to null. Get an object from the data store using attributes and respond. The change unit 15d determines that the relation attribute “this.dep” in the Employee class is not set to null or the identification attribute “this.dep_id” in the Employee class is set to null. Returns the value of “dep”.

つまり、変更部15dは、クラス内のリレーション属性がnullで、かつ、クラス内の識別属性がnullでなければ、データアクセス部17やデータストアクセッサ18を介して、参照先のオブジェクトを取得するように、getterメソッドを変更する。   That is, the changing unit 15d acquires a reference destination object via the data access unit 17 or the data list accessor 18 if the relation attribute in the class is null and the identification attribute in the class is not null. Change the getter method.

また、変更部15dは、図13の(E)に示すように、Employeeクラス内に既に定義されているリレーション属性「dep」のsettrメソッドを変更する。具体的には、変更部15dは、Employeeクラス内のリレーション属性「this.dep」にリレーション属性「dep」の値を設定する。そして、変更部15dは、設定された値がnullであれば、識別属性「dep_id」にnullを設定する。また、変更部15dは、設定された値がnullでなければ、リレーション属性のIDを識別属性「dep_id」に設定する。   Further, the changing unit 15d changes the settr method of the relation attribute “dep” already defined in the Employee class, as shown in FIG. Specifically, the changing unit 15d sets the value of the relation attribute “dep” in the relation attribute “this.dep” in the Employee class. Then, the changing unit 15d sets null to the identification attribute “dep_id” if the set value is null. In addition, if the set value is not null, the changing unit 15d sets the ID of the relation attribute to the identification attribute “dep_id”.

つまり、変更部15dは、リレーション属性に参照先のオブジェクトを設定した結果、nullでなければ、識別属性に参照先のオブジェクトのプライマリキーを設定し、nullであれば、識別属性にnullを設定するように、setterメソッドを変更する   That is, the change unit 15d sets the primary key of the reference destination object to the identification attribute if the reference attribute is not null as a result of setting the reference destination object to the relation attribute, and sets the identification attribute to null if it is null. Change the setter method to

このようにして変換された変換後のアプリケーションは、変換後実行部16によって実行される。すると、データアクセス部17の作成部17aは、実行された変換後のアプリケーションを解析して、データストアマシン1へのテーブル作成処理をデータアクセッサ18に出力する。データアクセッサ18は、データストアマシン1に対応したデータアクセッサを介して、データストマシン1にテーブル作成を実行する。   The converted application converted in this way is executed by the post-conversion execution unit 16. Then, the creation unit 17 a of the data access unit 17 analyzes the executed converted application and outputs a table creation process for the data store machine 1 to the data accessor 18. The data accessor 18 creates a table in the data storage machine 1 via a data accessor corresponding to the data store machine 1.

[処理の流れ]
次に、アプリケーションプログラムの変換処理の流れを説明する。図14は、アプリケーション変換処理の流れを示すフローチャートである。
[Process flow]
Next, the flow of application program conversion processing will be described. FIG. 14 is a flowchart showing the flow of application conversion processing.

図14に示すように、変換前実行部14が変換前のアプリケーションを実行すると(S101肯定)、追加部15bは、実行された変換前のアプリケーションのリレーションを切断し、当該変換前のアプリケーションに識別属性を追加する(S102)。   As shown in FIG. 14, when the pre-conversion execution unit 14 executes the application before conversion (Yes in S101), the adding unit 15b disconnects the relation of the executed application before conversion and identifies the application before conversion. An attribute is added (S102).

続いて、定義部15cは、変換前のアプリケーションに追加した識別属性に対して、図5〜図8に示したどの条件でも整合性が取れるように、getterメソッドおよびsetterメソッドを定義した定義内容を変換前のアプリケーションに追加する(S103)。さらに、変更部15dは、変換前のアプリケーションに既に記述されているリレーション属性のgetterメソッドおよびsetterメソッドを、図5〜図8に示したどの条件でも整合性が取れるように修正する(S104)。   Subsequently, the definition unit 15c defines the definition contents defining the getter method and the setter method so that the identification attribute added to the application before conversion can be consistent under any condition shown in FIGS. It adds to the application before conversion (S103). Further, the changing unit 15d modifies the getter method and the setter method of the relation attribute already described in the application before conversion so as to be consistent under any conditions shown in FIGS. 5 to 8 (S104).

ここまでの処理を実行することで、アプリケーションサーバ10は、図11に示した変換前のEmployeeクラスを図13に示した変換後のEmployeeクラスに変換できる。   By executing the processing so far, the application server 10 can convert the Employee class before conversion shown in FIG. 11 into the Employee class after conversion shown in FIG.

その後、データアクセス部17は、設定ファイルテーブル13に記憶されるクラスごとの設定ファイルに基づいて、クラスごとにアクセスするデータストアを定義するMetaEntityManagerを生成する(S105)。このとき、データアクセス部17は、トランザクション管理部17dが実行するトランザクションインスタンスも生成する。この処理によって、アプリケーションサーバ10は、図4に示した設定ファイル等を基に、図9に示したMetaEntityManagerおよび図10に示したトランザクションインスタンスを生成する。   Thereafter, the data access unit 17 generates a MetaEntityManager that defines a data store to be accessed for each class, based on the setting file for each class stored in the setting file table 13 (S105). At this time, the data access unit 17 also generates a transaction instance to be executed by the transaction management unit 17d. By this processing, the application server 10 generates the MetaEntityManager shown in FIG. 9 and the transaction instance shown in FIG. 10 based on the setting file shown in FIG.

そして、変換後実行部16は、S101〜S104の処理によって変換された変換後のアプリケーションを実行する(S106)。このとき、データアクセッサ18は、各データストアマシンに対応したアクセッサに、データアクセス部17から入力された各種処理を振り分け、各アクセッサを用いてデータストアに処理を実行する。また、トランザクション管理部17dは、MetaTransactionクラスに基づいて、実行されたトランザクションが同時に実行されて同時に終了するように制御する。   Then, the post-conversion execution unit 16 executes the post-conversion application converted by the processes of S101 to S104 (S106). At this time, the data accessor 18 distributes various processes input from the data access unit 17 to the accessors corresponding to the respective data store machines, and executes the processes on the data store using the respective accessors. Further, the transaction management unit 17d controls based on the MetaTransaction class so that executed transactions are simultaneously executed and simultaneously ended.

[実施例2による効果]
実施例2によれば、データストアを跨ぐ参照関係があってもデータ登録が可能になり、ソースコードを修正することなくデータの配置を変更可能になる。各データストアにおけるテーブル作成時にリレーションを外部キー(Foreign key)として設定しなくなり、テーブル作成が可能になる。
[Effects of Example 2]
According to the second embodiment, data registration is possible even if there is a reference relationship across data stores, and the arrangement of data can be changed without modifying the source code. When creating a table in each data store, the relation is not set as a foreign key, and the table can be created.

図15は、クラス変換後のプログラムの実行によって作成されるテーブルの例を示す図である。図15の左図に示すように、アプリケーションサーバ10は、Departmentクラスへのリレーションを有するEmployeeクラスが実行された場合に、Employeeクラスが有するリレーションを永続化対象外として、新たな属性である識別属性「dep_id」を定義する。   FIG. 15 is a diagram illustrating an example of a table created by executing a program after class conversion. As shown in the left diagram of FIG. 15, when the Employee class having the relation to the Department class is executed, the application server 10 excludes the relation that the Employee class has from being a permanent object, and is an identification attribute that is a new attribute. Define “dep_id”.

アプリケーションサーバ10は、図15の左図にように変換したクラスを実行することで、データストアマシン1に「社員ID、役職、名前、dep_id」の社員テーブルを生成する。このとき、アプリケーションサーバ10は、社員テーブルの「dep_id」に、別のクラスによってデータストアマシン2に生成された部署テーブル「部署ID、部署名」の部署IDを取得して格納する。この結果、アプリケーションサーバ10は、社員テーブルが部署テーブルを参照する関係にある場合でも、社員テーブルに外部キーを設定することなく、参照関係を維持することができる。   The application server 10 generates an employee table of “employee ID, title, name, dep_id” in the data store machine 1 by executing the converted class as shown in the left diagram of FIG. At this time, the application server 10 acquires and stores the department ID of the department table “department ID, department name” generated in the data store machine 2 by another class in “dep_id” of the employee table. As a result, the application server 10 can maintain the reference relationship without setting an external key in the employee table even when the employee table has a relationship of referring to the department table.

さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。   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. Therefore, different embodiments will be described below.

(データストアの種別)
実施例1や2では、RDBで管理される社員テーブルがKVSで管理される部署テーブルを参照する例について説明したが、これに限定されるものではない。例えば、対象となるDBの種別や参照関係は任意に設定変更できる。また、テーブルの名称等もあくまで例示であり、これに限定されるものではない。
(Data store type)
In the first and second embodiments, the example in which the employee table managed by the RDB refers to the department table managed by the KVS has been described. However, the present invention is not limited to this. For example, the target DB type and reference relationship can be arbitrarily set and changed. Moreover, the name of a table etc. are an illustration to the last, and are not limited to this.

(処理種別)
実施例1や2では、テーブル作成を実行するアプリケーションを例にして説明したが、これに限定されるものではない。例えば、テーブルにデータを登録するアプリケーション、テーブルのデータを更新するアプリケーション、テーブルからデータを削除するアプリケーションなどについても、実施例1や2と同様の処理を実行することができる。また、データアクセス部17は、任意によって実行させないように設定し、予め定めたデータアクセス部を用いることもできる。
(Processing type)
In the first and second embodiments, the application for executing table creation has been described as an example. However, the present invention is not limited to this. For example, the same processing as in the first and second embodiments can be executed for an application that registers data in a table, an application that updates data in the table, and an application that deletes data from the table. Further, the data access unit 17 can be set so as not to be executed arbitrarily, and a predetermined data access unit can be used.

(プログラム言語)
実施例2等では、Java(登録商標)においてJPAを利用するプログラムを例にして説明したが、これに限定されるものではなく、C言語など任意にプログラムを用いることができる。その場合でも、実施例2等で説明した処理と同様の処理を実行することで、実施例2等と同様の効果を得ることができる。
(Program language)
In the second embodiment and the like, a program using JPA in Java (registered trademark) has been described as an example. However, the present invention is not limited to this, and an arbitrary program such as C language can be used. Even in this case, the same effect as that of the second embodiment can be obtained by executing the same processing as that described in the second embodiment.

(変換例)
実施例2等では、実行されたアプリケーションAに対して、識別属性や識別属性のsetterメソッド等を追加し、元々あるリレーション属性のsetterメソッドを変更することで、変換後にアプリケーションを生成する例を説明したが、これに限定されるものではない。例えば、変換前のアプリケーションAを複製した複製後のアプリケーションAに対して実施例2等の変換処理を実行してもよく、実施例2等の変換処理によって別ファイルのアプリケーションを生成するようにしてもよい。
(Conversion example)
In the second embodiment, an example in which an application is generated after conversion by adding an identification attribute, a setter method of the identification attribute, and the like to the executed application A and changing the setter method of the original relation attribute will be described. However, the present invention is not limited to this. For example, the conversion process of the second embodiment may be executed on the copied application A that is a copy of the application A before the conversion, and an application of another file is generated by the conversion process of the second embodiment. Also good.

(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(system)
In addition, among the processes described in the present embodiment, all or a part of the processes described as being automatically performed can be manually performed. Alternatively, all or part of the processing described as being performed manually can be automatically performed by a known method. In addition, the processing procedure, control procedure, specific name, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば追加部15bと定義部15cとを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。   Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. That is, the specific form of distribution / integration of each device, for example, integrating the addition unit 15b and the definition unit 15c, is not limited to that illustrated. That is, all or a part of them can be configured to be functionally or physically distributed / integrated in arbitrary units according to various loads or usage conditions. Further, all or any part of each processing function performed in each device is realized by a CPU (Central Processing Unit) and a program analyzed and executed by the CPU, or hardware by wired logic. Can be realized as

(プログラム)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
(program)
By the way, the various processes described in the above embodiments can be realized by executing a program prepared in advance on a computer system such as a personal computer or a workstation. Therefore, in the following, an example of a computer that executes a program having the same function as in the above embodiment will be described.

図16は、データストア制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図16に示すように、コンピュータシステム100は、バス101に、CPU102、入力装置103、出力装置104、通信インタフェース105、HDD(Hard Disk Drive)106、RAM(Random Access Memory)107が接続される。   FIG. 16 is a diagram illustrating a hardware configuration example of a computer that executes a data store control program. As shown in FIG. 16, a computer system 100 is connected to a bus 101 with a CPU 102, an input device 103, an output device 104, a communication interface 105, an HDD (Hard Disk Drive) 106, and a RAM (Random Access Memory) 107.

入力装置103は、マウスやキーボードであり、出力装置104は、ディスプレイなどであり、通信インタフェース105は、NIC(Network Interface Card)などのインタフェースである。HDD106には、データストア制御プログラム106aととともに、図3に示した各テーブルに記憶される情報が記憶される。記録媒体の例としてROM104を例に挙げたが、HDD、RAM、CD−ROM等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。   The input device 103 is a mouse or a keyboard, the output device 104 is a display or the like, and the communication interface 105 is an interface such as a NIC (Network Interface Card). The HDD 106 stores information stored in each table shown in FIG. 3 together with the data store control program 106a. The ROM 104 is taken as an example of the recording medium, but various programs may be stored in another computer-readable recording medium such as an HDD, RAM, CD-ROM, and read by the computer. Note that a storage medium may be arranged in a remote place, and the computer may acquire and use the program by accessing the storage medium. At that time, the acquired program may be stored in a recording medium of the computer itself and used.

CPU102は、データストア制御プログラム106aを読み出してRAM107に展開することで、図1や図3で説明した各機能を実行するデータストア制御プロセス107aを動作させる。すなわち、データストア制御プロセス107aは、除外部3a、追加部3b、定義部3c、変更部3dと同様の機能を実行する。また、データストア制御プロセス107aは、永続化クラス変換部15、データアクセス部17と同様の機能も実行することもできる。このようにコンピュータシステム100は、プログラムを読み出して実行することでアドレス学習方法を実行する情報処理装置として動作する。   The CPU 102 operates the data store control process 107a that executes each function described with reference to FIGS. 1 and 3 by reading the data store control program 106a and developing it in the RAM 107. That is, the data store control process 107a performs the same functions as the exclusion unit 3a, the addition unit 3b, the definition unit 3c, and the change unit 3d. Further, the data store control process 107 a can also execute the same functions as the persistent class conversion unit 15 and the data access unit 17. As described above, the computer system 100 operates as an information processing apparatus that executes the address learning method by reading and executing the program.

1 データストア(RDB)
2 データストア(KVS)
3、10 アプリケーションサーバ
3a、15a 除外部
3b、15b 追加部
3c、15c 定義部
3d、15d 変更部
11 変換前アプリテーブル
12 変換後アプリテーブル
13 設定ファイルテーブル
14 変換前実行部
15 永続化クラス変換部
16 変換後実行部
17 データアクセス部
17a 作成部
17b 更新部
17c 参照部
17d トランザクション管理部
18 データアクセッサ
1 Data store (RDB)
2 Data store (KVS)
3, 10 Application server 3a, 15a Exclusion unit 3b, 15b Addition unit 3c, 15c Definition unit 3d, 15d Change unit 11 Pre-conversion application table 12 Post-conversion application table 13 Setting file table 14 Pre-conversion execution unit 15 Persistent class conversion unit 16 execution unit after conversion 17 data access unit 17a creation unit 17b update unit 17c reference unit 17d transaction management unit 18 data accessor

Claims (7)

第1データストアに配置されるテーブルと、前記第1データストアが管理方式の異なる第2データストアに配置されるテーブルとを定義した設定ファイルを参照し、前記第1データストアに対する処理を記述したプログラムで定義される永続化対象のうち、前記第2データストアのテーブルを参照することを示す第1属性を、前記プログラムの永続化対象から除外する除外部と、
前記設定ファイルを参照して、前記除外部が除外した前記第1属性によって指定される、前記プログラムの参照先を識別する第2属性を永続化対象として、前記プログラムに追加する追加部と、
前記追加された第2属性に対応する定義情報として、前記参照先を特定する特定情報を前記プログラムに定義する定義部と、
前記プログラムに定義される前記第1属性に対応した定義情報を、前記特定情報を用いて前記第2データストアから取得する処理の実行を示す情報に変更する変更部と
を有することを特徴とするデータストア制御装置。
A process for the first data store is described with reference to a setting file that defines a table arranged in the first data store and a table arranged in the second data store in which the first data store is managed differently. of persisted object program as defined in the first attribute indicating a reference to the table before Symbol second data store, and to exclude excluding unit from persistent object of the program,
An adder that refers to the configuration file and adds a second attribute that is specified by the first attribute excluded by the excluder and identifies a reference destination of the program as a perpetuating target;
As definition information corresponding to the added second attribute, a definition unit that defines specific information for specifying the reference destination in the program;
The definition information corresponding to the first attribute defined in the program, and having a changing unit for changing the information indicating the execution of the process of acquiring from the second datastores using the specific information Data store controller.
前記定義部は、前記定義情報として、前記第2属性に所定値を設定する設定関数と、前記第1属性に値が設定されている場合には、前記第2データストアに対する処理を記述した別プログラムに定義される第2属性の値を応答し、前記第1属性に値が設定されていない場合には、前記設定関数によって設定された所定値を応答する応答関数とを定義することを特徴とする請求項1に記載のデータストア制御装置。 Another defined section, as the definition information, wherein the setting function that sets the predetermined value to the second attribute, if the value in the first attribute is set, which describes the process for the second datastores A response function that responds with a value of a second attribute defined in the program and responds with a predetermined value set by the setting function when a value is not set in the first attribute. The data store control device according to claim 1. 前記変更部は、前記第1属性に所定値を設定し、設定された所定値がNULLであれば前記第2属性の値をNULLに設定し、設定された所定値がNULLでなければ前記第1属性の識別子を前記第2属性に設定する処理の実行を示す情報に、前記プログラムに定義される前記第1属性に対応した設定関数に定義される情報を変更するとともに、前記第1属性の値がNULLでありかつ前記第2属性の値がNULLでなければプライマリキーを用いて取得したオブジェクトを応答し、前記第1属性の値がNULLでない又は前記第2属性の値がNULLであれば前記第1属性に設定されている値を応答する処理の実行を示す情報に、前記プログラムに定義される前記第1属性に対応した応答関数に定義される情報を変更することを特徴とする請求項1に記載のデータストア制御装置。 The changing unit is configured to first attribute sets a predetermined value, the predetermined value is set to set the value of the second attribute if NULL to NULL, the else set predetermined value is NULL first The information defined in the setting function corresponding to the first attribute defined in the program is changed to information indicating execution of the process of setting the identifier of one attribute to the second attribute, and the first attribute value in response to object obtained by using the up Raimariki if not NULL value of is and the second attribute is NULL, the value of the value of the first attribute is not NULL and the second attribute if NULL The information defined in the response function corresponding to the first attribute defined in the program is changed to information indicating execution of processing for responding to the value set in the first attribute. Datastore controller according to Motomeko 1. 前記設定ファイルに基づいて、前記各テーブルごとにアクセスするデータストアのアクセッサを生成する生成部と、
前記生成されたデータストアごとのアクセッサを用いて、前記第1データストアまたは前記第2データストアに対してアクセスを実行するアクセス実行部と
をさらに有することを特徴とする請求項1〜3のいずれか一つに記載のデータストア制御装置。
Based on the configuration file, a generating unit that generates accessing data store accessing each of said tables,
The access execution part which performs access with respect to the said 1st data store or the said 2nd data store using the accessor for every said produced | generated data store is further characterized by the above-mentioned. The data store control device according to claim 1.
前記アクセス実行部は、前記第1データストアまたは前記第2データストアに対する複数のアクセスを同時に開始して同時に終了させることを特徴とする請求項4に記載のデータストア制御装置。   5. The data store control device according to claim 4, wherein the access execution unit starts and ends a plurality of accesses to the first data store or the second data store at the same time. コンピュータに、
第1データストアに配置されるテーブルと、前記第1データストアが管理方式の異なる第2データストアに配置されるテーブルとを定義した設定ファイルを参照し、前記第1データストアに対する処理を記述したプログラムで定義される永続化対象のうち、前記第2データストアのテーブルを参照することを示す第1属性を、前記プログラムの永続化対象から除外し、
前記設定ファイルを参照して、除外した前記第1属性によって指定される、前記プログラムの参照先を識別する第2属性を永続化対象として、前記プログラムに追加し、
前記追加した第2属性に対応する定義情報として、前記参照先を特定する特定情報を前記プログラムに定義し、
前記プログラムに定義される前記第1属性に対応した定義情報を、前記特定情報を用いて前記第2データストアから取得する処理の実行を示す情報に変更する
処理を実行させることを特徴とするデータストア制御プログラム。
On the computer,
A process for the first data store is described with reference to a setting file that defines a table arranged in the first data store and a table arranged in the second data store in which the first data store is managed differently. of persisted object program as defined in the first attribute indicating a reference to the table before Symbol second data store, excluded from persisting object of the program,
Referring to the configuration file , adding a second attribute that is specified by the excluded first attribute and that identifies the reference destination of the program as a perpetuating target, to the program;
As the definition information corresponding to the added second attribute, specific information for specifying the reference destination is defined in the program,
Data, wherein to execute the process of changing the definition information corresponding to the first attribute as defined in the program, the information indicating the execution of the process of acquiring from the second datastores using the specific information Store control program.
コンピュータが実行する制御方法であって、
第1データストアに配置されるテーブルと、前記第1データストアが管理方式の異なる第2データストアに配置されるテーブルとを定義した設定ファイルを参照し、前記第1データストアに対する処理を記述したプログラムで定義される永続化対象のうち、前記第2データストアのテーブルを参照することを示す第1属性を、前記プログラムの永続化対象から除外し、
前記設定ファイルを参照して、除外した前記第1属性によって指定される、前記プログラムの参照先を識別する第2属性を永続化対象として、前記プログラムに追加し、
前記追加した第2属性に対応する定義情報として、前記参照先を特定する特定情報を前記プログラムに定義し、
前記プログラムに定義される前記第1属性に対応した定義情報を、前記特定情報を用いて前記第2データストアから取得する処理の実行を示す情報に変更する
ことを特徴とするデータストア制御方法。
A control method executed by a computer,
A process for the first data store is described with reference to a setting file that defines a table arranged in the first data store and a table arranged in the second data store in which the first data store is managed differently. of persisted object program as defined in the first attribute indicating a reference to the table before Symbol second data store, excluded from persisting object of the program,
Referring to the configuration file , adding a second attribute that is specified by the excluded first attribute and that identifies the reference destination of the program as a perpetuating target, to the program;
As the definition information corresponding to the added second attribute, specific information for specifying the reference destination is defined in the program,
Data store control method characterized in that to change the definition information corresponding to the first attribute as defined in the program, the information indicating the execution of the process of acquiring from the second datastores using the specific information.
JP2011055965A 2011-03-14 2011-03-14 Data store control device, data store control program, and data store control method Expired - Fee Related JP5673246B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011055965A JP5673246B2 (en) 2011-03-14 2011-03-14 Data store control device, data store control program, and data store control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011055965A JP5673246B2 (en) 2011-03-14 2011-03-14 Data store control device, data store control program, and data store control method

Publications (2)

Publication Number Publication Date
JP2012194602A JP2012194602A (en) 2012-10-11
JP5673246B2 true JP5673246B2 (en) 2015-02-18

Family

ID=47086480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011055965A Expired - Fee Related JP5673246B2 (en) 2011-03-14 2011-03-14 Data store control device, data store control program, and data store control method

Country Status (1)

Country Link
JP (1) JP5673246B2 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07295868A (en) * 1994-04-27 1995-11-10 Hitachi Ltd Integrity constraint control method for
JPH1091494A (en) * 1996-09-19 1998-04-10 Hitachi Ltd Method and device for converting data base operation program
US7680767B2 (en) * 2006-03-23 2010-03-16 Microsoft Corporation Mapping architecture with incremental view maintenance
JP5419033B2 (en) * 2008-11-21 2014-02-19 インターナショナル・ビジネス・マシーンズ・コーポレーション How to access an unknown object
US8881121B2 (en) * 2009-02-18 2014-11-04 International Business Machines Corporation Processing an object-oriented query to retrieve data from a data source

Also Published As

Publication number Publication date
JP2012194602A (en) 2012-10-11

Similar Documents

Publication Publication Date Title
US11797558B2 (en) Generating data transformation workflows
JP6113693B2 (en) Background format optimization for enhanced SQL-like queries in Hadoop
US20230401187A1 (en) Method and system for migrating content between enterprise content management systems
US11086917B2 (en) Design-time information based on run-time artifacts in transient cloud-based distributed computing clusters
US9081837B2 (en) Scoped database connections
US20210173696A1 (en) Design-time information based on run-time artifacts in a distributed computing cluster
US8751437B2 (en) Single persistence implementation of business objects
US10528341B2 (en) User-configurable database artifacts
JP6412924B2 (en) Using projector and selector component types for ETL map design
JP2006012146A (en) System and method for impact analysis
JP5454201B2 (en) Data store switching device, data store switching method, and data store switching program
US20150363435A1 (en) Declarative Virtual Data Model Management
US11853314B2 (en) Systems and methods for generating, deploying, and managing data infrastructure stacks
JP2018060570A (en) Reference data segmentation from single to multiple tables
US10944814B1 (en) Independent resource scheduling for distributed data processing programs
US10963479B1 (en) Hosting version controlled extract, transform, load (ETL) code
JP5673246B2 (en) Data store control device, data store control program, and data store control method
US11836125B1 (en) Scalable database dependency monitoring and visualization system
US11468101B2 (en) Context-rich key framework implementations for global concept management
JP6680897B2 (en) Computer system and analysis source data management method
Singh NoSQL: A new horizon in big data
CN112732704B (en) Data processing method, device and storage medium
Eisa Parallel Processing for Data Retrieval in Odoo Enterprise Resource Planning Reporting System
KR20230053809A (en) Big data preprocessing method and apparatus using distributed nodes
PALLAVI et al. A Query Support for Multiple Data Stores using REST Based ODBAPI in Cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141215

R150 Certificate of patent or registration of utility model

Ref document number: 5673246

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees