This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2016-137179, filed Jul. 11, 2016; the entire contents of which are incorporated herein by reference.
Embodiments described herein relate to a database integration device, a database integration method, and a computer program product.
A plurality of data servers cooperate to combine data on the basis of a query received from a client. In relation to this, a method in which an integration server acquires data to be combined from a plurality of data servers and performs a combining process on the acquired data is known. Also, if there are some tables that are homogeneous each other in one data server, a method of causing the data server to perform a combining process by pushing down a query to the data server by an integration server is also known.
Furthermore, a method which is called a semi join method and in which data servers cooperate to combine data and send a response to a client is known. If a first server of a pair of data servers has received a query from a client in the semi-join method, the first data server transmits data to a second data server of the pair of data servers and the second data server performs a combining process, and transmits a combining result to the first data server. The first data server generates a final result on the basis on the combining result received from the second data server and responds to the client. However, the semi-join method is also able to be performed only in a case where databases managed by both data servers are homogeneous each other.
Here, if the combining process is performed by the integration server, the amount of data to be transmitted may increase and there is a possibility of combining processing not being possible at high speeds. Also, if data to be combined is stored in heterogeneous tables, there is a possibility of pushdown not being possible. Furthermore, if data to be combined is stored in the heterogeneous tables, the combining process may not be performed at high speeds since the combining process cannot be performed in the semi join method.
According to one embodiment, a database (DB) integration device includes a receiver, a communicator, a designator, a generator, and an instructor. The receiver is configured to receive at least a request for combining first data and second data. The communicator is configured to communicate with a plurality of DB systems. The plurality of DB systems includes a first DB system and a second DB system. The first DB system includes a first DB storing the first data. The second DB system includes a second DB storing the second data. The designator is configured to designate, from among at least one of the plurality of DB systems, a DB system for executing a combining process of combining the first data and the second data on the basis of combining capability information. The combining capability information indicates at least one of whether or not the first DB system is capable of reading the second data from the second DB system and executing the combining process; and whether or not the first DB system is capable of causing the second DB system to read the first data. The generator is configured to generate an execution plan for causing the DB system designated by the designator to execute the combining process. The instructor is configured to give, on the basis of the execution plan generated by the generator, instructions to the DB system designated by the designator through the communicator.
Hereinafter, a DB integration device, a DB integration method, and a DB integration program of embodiments will be described with reference to the drawings.
The user terminal 100, the DB integration server 200, the management terminal 300, and the DB system 400 are connected to a network NW. The network NW includes, for example, a radio base station, a Wi-Fi access point, a communication line, a provider, the Internet, and the like. Also, it is not necessary for all combinations of these constituent elements to be able to communicate with each other, and the network NW may partially include a local network, for example.
The DB integration server 200 includes, for example, a query receiver 210, a plan generator 220, a storage unit 230, a cooperative map manager 240, a plan instructor 250, and a DB connector 260. The query receiver 210, the plan generator 220, the cooperative map manager 240, the plan instructor 250, and the DB connector 260 are realized by a processor such as a central processing unit (CPU) executing a program stored in a program memory. Also, some or all of these functional units may be realized by hardware such as large scale integration (LSI), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), Graphics Processing Unit (GPU), or the like or may be realized by cooperation of software and hardware. The DB integration server 200 is an example of a DB integration device.
The query receiver 210 and the DB connector 260 are communication interfaces such as the NIC or a wireless communication module. The query receiver 210 is an example of a receiver. The DB connector 260 is an example of a communicator.
The plan generator 220 analyzes the query received by the query receiver 210, and generates an execution plan on the basis of the analysis result. The plan generator 220 includes, for example, a pushdown designator 222. The pushdown designator 222 determines whether or not pushdown is possible. The pushdown is used to cause one of the DB systems 400 to execute a process based on the query by transmitting the query to the one of DB systems 400. The plan generator 220 generates the execution plan on the basis of the determination result of the pushdown designator 222. The execution plan represents a procedure of extracting, from the DB systems 400, the data to be combined that is specified in the query, combining the extracted data to be combined, and responding to the query.
The storage unit 230 is realized by a hard disk drive (HDD), a flash memory, an electrically erasable programmable read only memory (EEPROM), a read only memory (ROM), a random access memory (RAM), or a hybrid type storage device using a plurality of these elements. Also, in the storage unit 230, various programs such as firmware and application programs, processing results, and the like are stored. The storage unit 230 stores DB system information and schema information. The DB system information includes information for accessing the DB systems 400, information about DB management systems (DBMSs) adopted in the DB systems 400, tables (Ts) stored in the DBs 420 provided in the DB systems 400, and information about types of data included in the tables. The schema information is information about structures of the DBs in the DB systems 400.
The cooperative map manager 240 updates a cooperative map 242 on the basis of a query for adding the DB system 400, deleting the DB system 400, or requesting a change in access right from one of the DB systems 400 to another one of the DB systems 400. The query for updating the cooperative map 242 is supplied from the management terminal 300 to the DB integration server 200. The management terminal 300 is an example of an external device.
The cooperative map manager 240 manages the cooperative map 242 on the basis of the request received from the management terminal 300. The cooperative map 242 is an example of combining capability information. The cooperative map 242 indicates whether or not each DB system 400 of a combination of DB systems 400 that includes DBs 420 storing data to be combined that is specified in the query is capable of performing a combining process by reading the data to be combined from the DB system 400 that is a combination partner of the combination of DB systems, and whether or not each DB system 400 of the combination of DB systems 400 is capable of causing the DB system 400 that is the combination partner of the combination of DB systems to read the data to be combined. In other words, for each combination of first and second DB systems 400 among a plurality of DB systems 400, the cooperative map 242 includes: information indicating whether or not the first DB system 400 is capable of combining first data stored in a DB 420 of the first DB system and second data which is stored in a DB 420 of the second DB system and which is acquired by inquiring the second DB system about the second data; and information indicating whether or not the second DB system 400 is capable of combining the second data stored in the DB 420 of the second DB system and the first data which is stored in the DB 420 of the first DB system and which is acquired by inquiring the first DB system about the first data. In the following description, in a set of DB systems 400 for managing the data to be combined, the DB system 400 of a side that reads the data to be combined is referred to as a “reception side DB system 400” and the DB system 400 of a side from which the data to be combined is read is referred to as a “transmission side DB system 400.”
In this embodiment, in the case where a combination (e.g., a pair) of DB systems 400 includes a first DB system 400 and a second DB system 400, the first DB system 400 includes the DB 420 storing a first data, the second DB system 400 includes the DB 420 storing a second data, and the first data and the second data are data to be combined with each other based on the query, the cooperative map 242 indicates at least: whether or not the first DB system 400 is capable of performing a combining process (i.e., combining the first and second data) by reading the second data from the second DB system 400; whether or not the first DB system 400 is capable of causing the second DB system 400 to read the first data; whether or not the second DB system 400 is capable of performing the combining process (i.e., combining the first and second data) by reading the first data from the first DB system 400; and whether or not the second DB system 400 is capable of causing the first DB system 400 to read the second data.
The plan instructor 250 executes a process on the basis of the execution plan generated by the plan generator 220. For example, the plan instructor 250 gives instructions to one of the DB systems on the basis of the execution plan.
The DB system 400-1, . . . , and the DB system 400-N include, for example, a DB management device 410-1, . . . , and a DB management device 410-N and a DB 420-1 . . . , and a DB 420-N. N is a natural number of 3 or more. In the description, a DB management device is written as a “DB management device 410” if the DB management device is not distinguished from other DB management devices and a DB is written as the “DB 420” if the DB is not distinguished from other DBs.
The DB management device 410 is realized by, for example, a processor such as a CPU executing a DBMS stored in a program memory. The DB management device 410 operates the DB 420 and combines the data on the basis of the query received from an external device. The external device is, for example, the DB integration server 200, another DB management device 410, or the management terminal 300.
Also, the DB management device 410 registers schema information corresponding to each of the other DB systems 400 to process data to be combined that is read from the transmission side DB system 400. The DB management device 410 processes the data to be combined that is read from the transmission side DB system 400 with reference to the schema information stored in the internal or external storage unit.
The DB 420 includes a table (T) storing data. The table is information including a record including one or more pieces of data in each row.
The cooperative map will be described below.
As illustrated in
A DB system 400 belonging to the second DB system group G2 can read data from a homogeneous DB system 400 as indicated by a path r11. Also, the DB system 400 belonging to the second DB system group G2 can read data from the DB systems 400 belonging to the first DB system group G1 and can cause the DB systems 400 belonging to the first DB system group G1 to read its own data (i.e., data from the DB system 400 belonging to the second DB system group G2) as indicated by the paths r2 and r3. Further, the DB system 400 belonging to the second DB system group G2 can read data from DB systems 400 belonging to the third DB system group G3.
A DB system 400 belonging to the third data system group G3 can read data from a homogeneous DB system 400 as indicated by a path r21. Also, the DB system 400 belonging to the third data system group G3 can cause the DB system 400 belonging to the second DB system group G2 to read its own data (i.e., data from the DB system 400 belonging to the third DB system group G3) as indicated by a path r12.
The DB system 400 belonging to the fourth DB system group G4 can cause the DB system 400 belonging to the first DB system group G1 to read its own data (i.e., data from the DB system 400 belonging to the fourth DB system group G4) as indicated by a path r31.
Such cooperation states between the first to fourth DB system groups can be represented, for example, as a cooperative map 242 in a format as illustrated in
Hereinafter, a process of designating, from among a plurality of DB systems 400, a DB system 400 for executing a combining process of combining data to be combined that is specified in a query on the basis of a cooperative map, generating an execution plan for causing the designated DB system 400 to execute the combining process, and transmitting information based on the query to the designated DB system 400 on the basis of the generated execution plan will be described.
As illustrated in
The plan instructor 250 executes pushdown on the DB management device 410-1 on the basis of the execution plan. If the DB management device 410-1 has received the pushed-down query, the DB management device 410-1 sends an inquiry to the DB management device 410-2. In response to the inquiry, the DB management device 410-2 extracts the data to be combined from the DB 420-2, and transmits the data to be combined as a result of the extraction to the DB management device 410-1. The DB management device 410-1 executes a combining process of combining the data to be combined that is acquired from the DB management device 410-2 and the data to be combined that is stored in the DB 420-1 of the DB management device 410-1. The DB management device 410-1 transmits a combining result to the DB integration server 200.
Hereinafter, a process of combining data to be combined using a DB system 400 serving as a third party if each of two DB systems 400 of the combination of the DB systems 400 including the DBs 420 storing the data to be combined that is specified in the query cannot read the data to be combined from the DB system 400 that is the combination partner (e.g., in the case where the a combination (e.g., a pair) of DB systems 400 includes a first DB system 400 and a second DB system 400, the first DB system 400 includes the DB 420 storing a first data, the second DB system 400 includes the DB 420 storing a second data, the first data and the second data are data to be combined with each other based on the query, the first DB system 400 cannot read the second data from the second DB system 400, and the second system 400 cannot read the first data from the first DB system 400) will be described. The DB system serving as the third party is a DB system 400 other than a set of DB systems 400 that manage the data to be combined.
The cooperative map 242 as illustrated in
As illustrated in
Furthermore, the plan generator 220 generates an execution plan in which the found DB system 400 (G1) acquires d1 and d2 from two DB systems of the set of the DB systems 400 (G2) and 400 (G4) and performs the combining process. The plan instructor 250 transmits a query to the DB system 400 (G1) on the basis of the generated execution plan. The DB system 400 (G1) acquires d1 by transmitting an inquiry q1 based on the query to the DB system 400 (G2). The DB system 400 (G1) acquires d2 by transmitting an inquiry q2 based on the query to the DB system 400 (G4). The DB system 400 (G1) combines d1 and d2 and returns a combining result to the DB integration server 200.
As illustrated in
Furthermore, the plan generator 220 generates an execution plan in which the found DB system 400 (G1) acquires d2 from the DB system 400 (G4) and relays d2 to the DB system 400 (G2), and the DB system 400 (G2) performs the combining process. The plan instructor 250 transmits a query to the DB system 400 (G2) on the basis of the generated execution plan. The DB system 400 (G2) transmits an inquiry q11 based on the query to the DB system 400 (G1). According to the reception of q11, the DB system 400 (G1) acquires d2 from the DB system 400 (G4) by transmitting the query q12 to the DB system 400 (G4). According to the acquisition of d2, the DB system 400 (G1) transmits d2 to the DB system 400 (G2). The DB system 400 (G2) combines d1 and d2 and returns a combining result to the DB integration server 200.
Also, if each DB system of a set of DB systems 400 (400 (G2) and 400 (G4)) storing d1 and d2 cannot acquire the data to be combined from the DB system 400 that is the combination partner, the DB integration server 200 may determine that the query is not pushed down to the DB system 400. If the pushdown is not performed, the DB integration server 200 transmits a query for extracting dl to the DB system 400 (G2) and transmits a query for extracting d2 to the DB system 400 (G4) as illustrated in
Hereinafter, the flow of a process in the above-described data providing system 1 will be described.
First, the DB integration server 200 determines whether or not a query has been received (step S100). If a query has been received, the DB integration server 200 analyzes the query (step S102), and determines whether or not the query requests schema update (step S104). The schema update includes registration or deletion of a schema or a change in access rights (e.g., at least one of giving and taking an access right from one of the plurality of DB systems to another one of the plurality of DB systems). The schema registration includes, for example, addition of a new DB system 400, a table, or data. The schema deletion includes, for example, deletion of a DB system 400, a table, or data. The change in the access rights is to change whether reading of data is allowed between the DB systems 400.
If the query requests the schema update, the DB integration server 200 generates an execution plan for executing the schema update (step S106) and executes the execution plan (step S108). If the query does not request the schema update, the DB integration server 200 determines whether or not the query is a SELECT statement (step S110). If the query is a SELECT statement, the DB integration server 200 generates an execution plan of the SELECT statement (step S112) and executes the execution plan (step S108). If the query is not a SELECT statement, the DB integration server 200 generates an execution plan on the basis of a result of analyzing the query (step S114) and executes the execution plan (step S108). The above is a description of the entire process of the data providing system 1.
Next, the plan generator 220 refers to the cooperative map 242 and selects one DB system 400 capable of reading a table of a schema update target (step S204).
The plan generator 220 determines whether or not there is a DB system 400 capable of reading the table of the schema update target (step S206). If there is no such DB system 400, the plan generator 220 terminates the process of this flowchart. If there is such a DB system 400, the plan generator 220 determines whether or not the selected DB system 400 is a DB system having the same type as the DB system 400 that manages the schema update target table (step S208). If there is a homogeneous DB system 400, the plan generator 220 does not need to change information in the homogeneous DB system 400, and therefore returns the process to step S204.
If there is no homogeneous DB system 400, the plan generator 220 adds an execution plan P# for registering or deleting information in the selected DB system 400 to the execution plan P.
If there is a combining process, the plan generator 220 determines whether or not there is the combining process executable in the same DB system in a set of DB systems 400 having a table (or tables) described after a FROM clause in a SELECT statement (step S304). If there is a combining process executable in the same DB system 400, the plan generator 220 creates an execution plan for executing the combining process in the DB system 400 (step S306).
Next, the pushdown designator 222 makes a pushdown determination (step S308). Also, processing content of the pushdown determination will be described with reference to
If there is the extraction condition, the plan generator 220 executes the combining process on the DB system 400 (the reception side DB system 400) selected as the pushdown destination and creates an execution plan for inquiring the transmission side DB system 400 about the extraction condition (step S314). The execution plan for executing the combining process includes a process of acquiring data to be combined from the transmission side DB system 400. If there is no extraction condition, the plan generator 220 creates an execution plan for executing the combining process on the reception side DB system 400 (step S316).
If the pushdown is impossible, the plan generator 220 creates an execution plan for executing the combining process in the DB integration server 200 (step S318).
Next, the pushdown designator 222 determines whether or not the data path, the pushdown destination, and the cost have been obtained for all pairs of tables (step S404). If the pushdown designator 222 has not determined pushdown destinations for all the pairs of tables, the pushdown designator 222 returns the process to step S400.
If pushdown destinations for all pairs of tables have been determined, the pushdown designator 222 determines whether or not there is a pushdown destination (step S406). If there is a pushdown destination, the pushdown designator 222 designates the pushdown destination and the tables that are the combining targets on the basis of cost information (step S408).
Next, the pushdown designator 222 determine that it is possible to push down a query for combining the data extracted from the table T2 to the result of combining the data extracted from the table T1 and the data extracted from the table T3 to the DB system 400-2 with reference to the cooperative map 242. Then, as illustrated in the lower diagram of
If there is no pushdown destination, the pushdown designator 222 determines that pushdown is impossible (step S412).
If path search has not been performed for all the DB systems 400, the pushdown designator 222 selects one DB system X for which path search has not been performed (step S502). Next, the pushdown designator 222 searches for a path R1 from the selected DB system X to the DB system (P1) that manages one table of a pair of tables (step S504). The pushdown designator 222 determines whether or not there is a path R1 from the DB system X to the DB system (P1) (step S506). If there are a plurality of paths R1, the pushdown designator 222 obtains the plurality of paths R1. If there is no path R1, the pushdown designator 222 returns the process to step S500.
If there is a path R1, the pushdown designator 222 searches for a path R2 from the DB system X to the DB system (P2) that manages the other table of the pair of tables (step S508). The pushdown designator 222 determines whether or not there is a path R2 from the DB system X to the DB system (P2) (step S510). If there are a plurality of paths R2, the pushdown designator 222 obtains the plurality of paths R2. If there is no path R2, the pushdown designator 222 returns the process to step S500.
Next, the pushdown designator 222 obtains the cost C1 of the path R1 (step S512). Next, the pushdown designator 222 obtains the cost C2 of the path R2 (step S514). The cost is information indicating static indices such as performance and a network bandwidth of the DB system 400 and dynamic indices such as a processing load in the DB system 400 capable of executing the combining process and/or an amount of data to be combined which is specified in a query and which is transmitted in the executing the combining process.
Next, the pushdown designator 222 determines a cost obtained by summing the costs C1 and C2 as a cost of the case of pushing down to the DB system X (step S516), and returns the process to step S500.
Next, when it is determined that path search has been performed for all the DB systems 400, the pushdown designator 222 determines whether or not a DB system 400 capable of obtaining both of the paths R1 and R2 is absent (step S518). That is, the pushdown designator 222 determines whether or not a DB system 400 capable of being traced to both the DB system (P1) and the DB system (P2) is absent. If there is no DB system 400 capable of obtaining both the paths R1 and R2, the pushdown designator 222 determines that pushdown is impossible (step S520). When there is a DB system 400 capable of obtaining both the paths R1 and R2, the pushdown designator 222 designates the DB system 400 having the minimum cost as the pushdown destination (step S522).
According to the DB integration server 200 of the above-described embodiment, since a DB system 400 for executing the combining process is designated from among the plurality of DB systems 400 on the basis of the cooperative map 242 and information based on the query is transmitted to the designated DB system 400, it is possible to execute the pushdown to the DB system 400 capable of performing the combining process even when the data to be combined is managed by a heterogeneous DB system 400. Thereby, according to the DB integration server 200, even when the data to be combined is managed by the heterogeneous DB system 400, it is possible to execute the combining process at a higher speed if there is a DB system 400 capable of performing the combining process by acquiring data to be combined from the heterogeneous DB system 400. That is, according to the DB integration server 200, it is possible to execute the combining process at a higher speed by suppressing the data amount of communication because it is unnecessary to receive the data to be combined from the DB system 400. Also, according to the DB integration server 200, it is possible to suppress a frequency at which the combining process is performed by the DB integration server 200 and it is possible to suppress the processing load.
Also, according to the DB integration server 200, it is unnecessary to push down the extraction condition from the DB integration server 200 to the transmission side DB system 400 since the DB system 400 as the pushdown destination transmits the extraction condition of the data to be combined to the transmission side DB system 400. Thereby, the processing load of the DB integration server 200 can be further suppressed.
Furthermore, according to the DB integration server 200, it is possible to suppress a processing delay or a communication delay in the DB system 400 that is the pushdown destination since it is possible to designate the DB system 400 that is the pushdown destination on the basis of the cost information. As a result it is possible to perform the combining process at a higher speed.
Furthermore, according to the DB integration server 200, it is possible to designate a DB system 400 capable of acquiring the data to be combined from two DB systems of a combination as the DB system 400 that is the pushdown destination if the each of two DB systems of the combination of the DB systems 400 for managing the data to be combined cannot acquire the data to be combined from the DB system 400 that is the combination partner. Thereby, according to the DB integration server 200, it is possible to increase a frequency at which the combining process can be performed at a higher speed.
Furthermore, according to the DB integration server 200, it possible to designate a DB system capable of acquiring data to be combined from one DB system that is the combination and relaying the data to be combined to the other DB system of the combination as the DB system 400 that is the pushdown destination if each of two DB systems of the combination of the DB systems 400 for managing the data to be combined cannot acquire the data to be combined from the DB system 400 that is the combination partner. Thereby, according to the DB integration server 200, it is possible to increase a frequency at which the combining process can be performed at a higher speed.
Furthermore, according to the DB integration server 200, it is possible to increase a frequency at which the combining process can be performed at a higher speed since it is possible to designate a DB system 400 which executes the combining process on the basis of a cost if a process of combining data to be combined and repeatedly combining data to be combined to the combined data is executed.
Furthermore, according to the DB integration server 200, it is possible to dynamically update the cooperative map 242 and the cooperation states between the DB systems 400 since an execution plan for updating the cooperative map 242 and an execution plan for changing information for allowing a DB system 400 to access another DB system 400 are generated if a query for adding or deleting a DB system 400 or changing access right between the DB systems 400 has been received.
Hereinafter, Example 1 will be described.
SELECT A. PRODUCT NAME FROM A, B WHERE A. PRODUCT ID=B. PRODUCT ID
By interpreting the query, the DB integration server 200 generates an execution plan for searching for the product name satisfying the extraction condition that the product ID be the same in the product master table TA and the sales table TB. Also, the DB integration server 200 determines that the DB system 400-1 can read data from the DB system 400-2, but the DB system 400-2 cannot read data from the DB system 400-1, with reference to the cooperative map 242.
As a result, the DB integration server 200 designates the DB system 400-1 as the DB system 400 that is the pushdown destination.
Next, Example 2 will be described.
SELECT A. PRODUCT NAME FROM A, B WHERE A. PRODUCT ID=B. PRODUCT ID
The DB integration server 200 determines that the DB system 400-1 can read data from the DB system 400-2 and the DB system 400-2 can also read data from the DB system 400-1 with reference to the cooperative map 242. In this case, the DB integration server 200 designates that hardware performance of the DB system 400-1 is higher than that of the DB system 400-2 by comparing the hardware performance stored as DB system information with each other.
As a result, the DB integration server 200 designates the DB system 400-1 as the DB system 400 that is the pushdown destination. The DB system 400-1 executes the combining process as in Example 1, and transmits the combining result to the DB integration server 200. According to Example 2, it is possible to suppress the amount of transmission more than in the comparative example.
Example 3 will be described below.
SELECT A. PRODUCT NAME FROM A, B WHERE A. PRODUCT ID=B. PRODUCT ID AND A. PRODUCT NAME LIKE ‘% MANUFACTURED BY COMPANY Δ’ AND 20: 00<B. TIME
By interpreting the query, the DB integration server 200 generates an execution plan for searching for a product name (or product names) satisfying a condition that the product ID be the same, a product be manufactured by company Δ, and a clock time be after 20:00 in the tables TA and TB. Also, the DB integration server 200 determines that the DB system 400-1 can read data from the DB system 400-2, but the DB system 400-2 cannot read data from the DB system 400-1, with reference to the cooperative map 242. As a result, the DB integration server 200 designates the DB system 400-1 as the DB system 400 that is the pushdown destination.
According to at least one embodiment described above, the DB integration device includes: the pushdown designator 222 configured to designate a DB system 400 for executing a combining process of combining data to be combined that is specified in the query from among the plurality of DB systems 400 on the basis of the cooperative map 242 indicating whether or not each DB system of a combination of DB systems 400 including the DBs 420 storing the data to be combined that is specified in the query is able to perform the combining process by reading the data to be combined from a DB system 400 that is a combination partner and whether or not each DB system of a combination of DB systems 400 is able to cause the DB system 400 that is the combination partner to read the data to be combined; the plan generator 220 configured to generate an execution plan for causing the designated DB system to execute the combining process; and the plan instructor 250 configured to transmit information based on the query to the designated DB system on the basis of the execution plan. It is possible to execute a combining process at a higher speed by suppressing an amount of communication of data since it is unnecessary to receive data to be combined from the DB system 400.
The above mentioned embodiments may be described as follows.
While several embodiments of the present invention have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the invention. These embodiments may be embodied in a variety of other forms. Various omissions, substitutions and changes may be made without departing from the spirit of the invention. The invention described in the accompanying claims and its equivalents are intended to cover such embodiments or modifications as would fall within the scope and spirit of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2016-137179 | Jul 2016 | JP | national |