This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2015-150465, filed on Jul. 30, 2015, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a non-transitory computer-readable storage medium, an information controller, and an information control method.
A business operator providing services to users (hereinafter simply referred to as a business operator) builds a business system for providing the services for the users (hereinafter simply referred to as a business system), for example. Then, the business operator applies a security patch, introduces a new function to the business system in operation, or does other activities, as appropriate. Specifically, the business operator applies the security patch, introduces the new function, or does other activities by, for example, releasing a new program to the business system.
Here, an unknown bug may be included in the program released to the business system. Then, if there is any unknown bug in the released program, it is likely that information is updated in any way unintended by the business operator (which is hereinafter referred to as destruction of information). Thus, the business operator takes an action that limits an extent to which the destruction of information occurs, for example, for a case where any unknown bug is included in the released program.
Canary release is known as a release method for limiting an extent to which the destruction of Information involved in a program release occurs. The canary release is a release method that makes a new function implemented by a released program available only to some of users as a trial basis and checks whether or not any unknown bug is included in the released program. Then, if it is judged that no unknown bug is included in the released program, the canary release method makes the new function implemented by the released program available to all users.
Accordingly, when performing the canary release, the business operator releases a program such that a new function implemented by the released program and an existing function that is already running on the business system (function corresponding to the older version of the new function) operate simultaneously. Then, in this case, the business operator sets the business system such that each user uses only either one of the existing function and the new function. Furthermore, in this case, the business operator separates the information accessed only by the new function from the information accessed by the existing function (the information only accessed by the new function is hereinafter referred to as separated information and the information accessed by the existing function is referred to as stored information).
This allows the business operator to limit the impact of any unknown bug only to the separated information even when the destruction of information occurs due to the unknown bug included in the released program. Thus, performing the canary release makes it possible for the business operator to control the impact on the business system caused when the unknown bug is included in the released program.
According to an aspect of the invention, A non-transitory computer-readable storage medium storing an Information control program that causes a computer to execute a process including receiving an update request for updating first information stored in a first storage area, the update request corresponding to a selected application, and when the selected application is a first application having been available later than a second application that is configured to update the first information stored in a first storage area, updating second information based on the update request for updating the first information, the second information being information corresponding to a part of the first information and being stored in a second storage area different from the first storage area.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
In general, when releasing a program, a business operator releases a next program after a certain period of time elapses. More specifically, the business operator does not make a next release on a business system until a new function by a released program is used to some extent by users, and the business operator is able to judge whether or not destruction of information due to the released program occurs.
This allows the business operator to avoid occurrence of a situation in which it is not possible for the business operator to identify a program that causes destruction of information since more than one program release is made concurrently, when the destruction of information due to the released program occurs. Accordingly, in this case, it is possible for the business operator to promptly identify a cause of the occurred destruction of information.
Here, in the case of the canary release as described above, users who use a new function by a released program are limited. Thus, when the canary release is performed, time till the new function by the released program is used to some extent and judgment is possible on whether or not destruction information involved in a program release occurs is longer than a normal release. Therefore, when performing the canary release, the business operator has to set an interval of program releases longer than when performing a normal release.
In addition, even if separated information and stored information are managed separately as described above, a new function may access the stored information depending on content of processing of the new function by the released program. Thus, it is not possible for the business operator to limit the impact due to any unknown bug only to the separated information.
Now, one aspect aims to provide an information control program, an information controller, and an information control method that limit the impact of a program bug and shorten an interval of program releases.
Embodiments are described hereinafter with reference to the drawings.
[Configuration of an Information Processing System]
User terminals 11, 12, and 13 are capable of accessing the data center DC by way of a network such as the Internet or an intranet, or the like, for example.
In response to receipt of a processing request transmitted from the user terminals 11, 12, or 13, the information processor 1 executes processing on information stored in the storage section 2, for example. Specifically, the information processor 1, for example, updates or reads the information stored in the storage section 2.
[A Specific Example of an Information Processor when Canary Release is Performed]
A specific example of the information processor 1 when canary release is performed is described hereinafter.
A central processing unit (CPU) of the information processor 1 illustrated in
More specifically, in an example illustrated in
In addition, the CPU of the information processor 1 illustrated in
Then, based on content of the processing request allocated by the request allocation unit 122, the processing execution unit 121b accesses a second storage section 130b in which separated information 133 (for example, information related to the user who uses the new function) is stored. In addition, based on content of the processing request allocated by the request allocation unit 122, the processing execution unit 121a accesses a first storage section 130a in which stored information 131 is stored.
More specifically, when performing canary release on the information processor 1, the business operator causes the processing execution unit 121a operating to implement the existing function and the processing execution unit 121b operating to implement the new function to operate concurrently. Then, in the example illustrated in
This makes it possible to confine any impact of an unknown bug within the separated information 133 even when an unknown bug is included in the program to implement the new function (released program), when the processing execution unit 121b accesses the second storage section 130b only. Thus, performing the canary release makes it possible for the business operator to control any impact on the business system caused when an unknown bug is included in a released program.
Here, when a program is released, the business operator generally makes a next release after a predetermined period of time elapses. In other words, the business operator does not make a next release on the Information processor 1 until a new function by the program released to the information processor 1 is used to some extent, and the business operator is able to judge whether or not destruction of information involved in the program release occurs.
This allows the business operator to avoid occurrence of a condition in which when the destruction of information has occurred owing to released programs, the program that has caused the destruction of information is not able to be identified because programs are concurrently released multiple times. Thus, in this case, it is possible for the business operator to identify the cause of the occurred destruction of information quickly.
In the canary release as described above, however, users who use the new function by the released program are limited. Thus, when the canary release is performed, it takes more time for the new function by the released program to be used to some extent and a judgment to be made on whether or not the destruction of information involved in the program release occurs than when a normal release is performed. In the following, specific examples when the canary release and the normal release are performed respectively are described.
In
The canary release is designed to limit the extent of the impact even when an unknown bug is included in a released program by letting limited users use a new function by the released program after the program release. Thus, the new function by the program released through the canary release will be used less often by users than a new function by the program released through the normal release. Therefore, as illustrated in
Thus, when performing the canary release on the information processor 1, the business operator has to set an interval of program releases on the information processor 1 longer than a case of making a normal release.
In addition, as illustrated in
Then, when receiving an update request of the stored information 131, the information processor 1 in the first embodiment updates difference information 134 (information to which a part of the stored information 131 stored in the first storage section 130a is transferred) of a difference storage section 130c. Then, when receiving a merge request, the information processor 1 stores in the first storage section 130a the difference information 134 stored in the difference storage section 130c. In the following, information control processing in the first embodiment is described.
This allows the information processor 1 to limit any impact of an unknown bug to the difference information 134 stored in the difference storage section 130c even when the unknown bug is included in a released program. Thus, even when an unknown bug is included in the released program, it is possible for the information processor 1 to keep the impact of the unknown bug from extending to the stored information 131 stored in the first storage section 130a.
In addition, the information processor 1 limiting the impact of the unknown bug to the difference information 134 stored in the difference storage section 130c makes it possible for the business operator to shorten an interval of performing canary release.
[A Hardware Configuration of the Information Processor]
A hardware configuration of the information processor 1 is described hereinafter.
The information processor 1 has a CPU 101, which is a processor, a memory 102, an external interface (I/O unit) 103, and a storage medium (storage) 104. Each unit is connected with each other by way of a bus 105.
The storage medium 104 stores in a program storage area (not illustrated) in the storage medium 104 a program 110 configured to execute processing to control (hereinafter referred to as information control processing) information accessed by a new function by a released program.
As illustrated in
The storage medium 104, for example, has an information storage area 130 that stores information to be used in executing the information control processing. In addition, the external interface 103 communicates with the user terminals 11, 12, and 13. Note that the information storage area 130 corresponds to the storage section 2 illustrated in
[A Software Configuration of the Information Processor]
A software configuration of the information processor 1 is described hereinafter.
In addition,
Then, the first storage section 130a stores stored information 131 and management information 132, and the second storage section 130b stores separated information 133. In addition, the difference storage section 130c stores difference information 134 and second difference information 135.
The presence judgment unit 111 judges whether or not the difference storage section 130c is present before the information update unit 112 executes an update request for the stored information 131 in response to the execution of a processing request by the processing execution unit 121b. Accordingly, when the presence judgment unit 111 judges that the difference storage section 130c is not present, the information manager 115 creates a difference storage section 130c. Then, after creating the difference storage section 130c, the Information manager 115 transfers some information of the stored information 131 to the difference storage section 130c as difference information 134 and stores the difference information 134.
In addition, the presence judgment unit 111 judges whether or not the difference storage section 130c is present, before the information addition storage section 113 executes an additional storage request in response to execution of the processing request performed by the processing execution unit 121b. Accordingly, if it is judged that no difference storage section 130c is present, the information manager 115 creates the difference storage section 130c.
Note that the stored information 131 and the difference information 134 may be information including numeric value information, for example. In addition, in this case, the update request may be a request that increases or decreases a value indicated by the stored information 131 or the difference information 134.
When receiving an update request from the processing execution unit 121b, the information update unit 112 updates the difference information 134 stored in the difference storage section 130c.
When receiving an additional storage request from the processing execution unit 121b, the information addition storage section 113 stores in the difference storage section 130c information corresponding to the additional storage request as at least a part of the second difference information 135.
When receiving a read request from the processing execution unit 121b, the information reader 114 reads information based on the read request.
For example, when receiving a merge request from the business operator, the information merger 116 stores in the first storage section 130a Information stored in the difference storage section 130c. Specifically, when difference information 134 is stored in the difference storage section 130c, for example, the information merger 116 merges the difference information 134 with the stored information 131 stored in the first storage section 130a. In addition, for example, when the difference information 134 and the second difference information 135 are stored in the difference storage section 130c, the information merger 116 merges the difference information 134 and the second difference information 135 with the stored information 131 stored in the first storage section 130a. Note that management information 132 is described later. In addition, specific examples of the stored information 131, the management information 132, the difference information 134, and the second difference information 135 are described later.
An outline of the first embodiment is described hereinafter.
First, the information processor 1 waits until an update request of stored information 131 is received (NO at S1). More specifically, the information processor 1 waits until the update request for the stored information 131 has to be executed as a result of execution of a processing request that is transmitted by a user using a new function through the user terminal 13. Then, when receiving the update request for the stored information 131 (YES at S1), the information processor 1 judges whether or not the difference storage section 130c is present (S2).
Accordingly, if the difference storage section 130c is not present (NO at S2), the information processor 1 creates a difference storage section 130c (S3). Then, in this case, the information processor 1 transfers some information of the stored information 131 stored in the first storage section 130a to the difference storage section 130c as difference information 134 (S4). On the other hand, when the difference storage section 130c is present (YES at S2), the information processor 1 does not execute processing of S3 and S4.
Then, the information processor 1 updates the difference information 134 stored in the difference storage section 130c based on the update request received in the processing of S1 (S5).
More specifically, the information processor 1 manages information such that only the difference information 134 stored in the difference storage section 130c is updated based on the update request. Even if an unknown bug is included in a released program, this allows the Information processor 1 to limit the extent of the impact of the unknown bug to the difference information 134 stored in the difference storage section 130c. Then, it is possible for the information processor 1 to keep the Impact of the unknown bug from extending to the stored information 131 stored in the first storage section 130a. In addition, the impact of the unknown bug being limited to the difference information 134 makes it possible for the business operator to shorten an interval of performing canary releases.
Then, as illustrated in
More specifically, when the new function by the released program is used by the users to some extent, and the timing when it is possible to judge whether or not destruction of data involved in a program release occurs has come, the business operator judges that no unknown bug is included in the released program, for example. Then, in this case, the business operator transmits a merge request to the information processor 1 through the business operator's terminal (not illustrated) and merges the stored information 131 stored in the first storage section 130a with the difference information 134 stored in the difference storage section 130c. This allows the business operator to manage information in a form in which the stored information 131 and the difference information 134 are not separated in the same way as before the difference storage section 130c is created.
In this manner, the information processor 1 judges whether or not the difference storage section 130c that stores some information of the stored information 131 as difference information 134 is present, in response to receipt of an update request for the stored information 131 stored in the first storage section 130a. Then, when the information processor 1 judges that no difference storage section 130c is present, the information processor 1 creates a difference storage section 130c and transfers the difference information 134 to the difference storage section 130c. Then, the information processor 1 updates the difference information 134 stored in the difference storage section 130c based on the update request.
On the other hand, in response to receipt of a merge request of the stored information 131 stored in the first storage section 130a and the difference information 134 stored in the difference storage section 130c, the Information processor 1 stores the difference information 134 as a part of the stored information 131 in the first storage section 130a.
With this, the information processor 1 no longer has to directly update information stored in the first storage section when a new function by a released program updates the stored information 131. Thus, even if an unknown bug is included in the released program, it is possible for the information processor 1 to limit the impact of the unknown bug to the difference information 134 stored in the difference storage section 130c. Then, even if an unknown bug is included in the released program, it is possible for the information processor 1 to keep the impact of the unknown bug from extending to the stored information 131 stored in the first storage section 130a.
In addition, when programs are concurrently released multiple times, even if an unknown bug is included in any of released programs, it is possible for the information processor 1 to limit the impact of the unknown bug to the difference information 134. Thus, it is possible for the information processor 1 to make a next release before the timing when the information processor 1 is able to judge whether or not destruction of information involved in the earlier program release occurs.
Specifically, as illustrated in
In addition, if programs are concurrently released multiple times, the information processor 1 may create multiple pieces of difference information 134 corresponding to each of the released programs. With this, even when an unknown bug is included in any of the released programs, it is possible for the information processor 1 to limit the impact of the unknown bug to a piece of difference information 134 corresponding to a program in which the unknown bug is included, of the multiple pieces of difference information 134.
Details of the first embodiment are described hereinafter.
[Information Update Processing and Information Read Processing]
First, of the information control processing, processing to update information (hereinafter referred to as an information update processing) and processing to read information (hereinafter referred to as an Information read processing) are described.
The information allocation unit 122 waits until receipt of a processing request from the user terminals 11, 12, and 13 (NO at S21). Then, when receiving the processing request (YES at S21), the information allocation unit 122 allocates, for example, processing requests received from the user terminal 11, 12, or 13 to the processing execution unit 121a and the processing execution unit 121b. Specifically, for example, the request allocation unit 122 allocates a processing request received from the user terminal 11 or 12 to the processing execution unit 121a and a processing request received from the user terminal 13 to the processing execution unit 121b.
Then, when the processing request is allocated to the processing execution unit 121b, the processing execution unit 121b executes the allocated processing request. Then, if an update request for stored information 131 has to be executed as a result of execution of the processing request (NO at S22), the processing execution unit 121b instructs the presence judgment unit 111 to execute it. Specifically, in this case, the presence judgment unit 111 judges whether or not the difference storage section 130c is present, as illustrated in
As illustrated in
More specifically, the difference information 134 stored in the difference storage section 130c is information to be affected by an unknown bug if the unknown bug is included in a released program. Thus, the business operator has to manage such that the amount of information of the difference information 134 stored in the difference storage section 130c is as small as possible. Therefore, for example, the business operator fixes the upper request limit 132a in advance, and stores the upper request limit 132a in the information storage area 130. This allows the information manager 115 to manage information based on the upper request limit 132a.
Furthermore, the information manager 115 calculates the number of requests 132b, which is a unit of the number information of which to be transferred to the difference storage section 130c, from the acquired upper request limit 132a (S51). The information manager 115, for example, calculates as the number of requests 132b a value obtained by dividing the acquired upper request limit 132a by “2”. This allows the information manager 115 to manage such that the amount of information of the difference information 134 stored in the difference storage section 130c is small.
In addition, the information manager 115 calculates the number of possible requests 132c (S51) from the acquired upper request limit 132a. The number of possible requests is, for example, the number of pieces of information that may be further transferred to the difference storage section 130c as difference information 134, of stored information 131 stored in the first storage section 130a. Thus, for example, the information manager 115 may calculate, as the number of possible requests 132c, a value obtained by subtracting the number of requests 132b from the upper request limit 132a. In addition, the following description is given on the assumption that the upper request limit 132a is “400 (pieces)”, the number of requests 132b is “200 (pieces)”, and the number of possible requests 132c is “200 (pieces)”.
Then, the information manager 115 judges whether or not the value obtained by subtracting the number of requests 132b from the stored number 131a included in the stored information 131 is larger than “0” (S52). A specific example of stored information 131 is described hereinafter.
When executing the processing of S52 for the stored information 131 illustrated in
Turning back to
Turning back to
More specifically, in the processing of S31 of
Turning back to
The management information 132 illustrated in
Specifically, as illustrated in the management information 132 illustrated in
Turning back to
More specifically, in the processing of S52, the case in which the value obtained by subtracting the number of requests 132b from the stored number 131a is equal to or smaller than “0” is a case in which the stored number 131a has decreased due to frequent executions of the processing by the processing execution unit 121a illustrated in
Then, if the number of requests 132b calculated in the processing of S57 is larger than “0” (YES at 558), the information manager 115 performs the processing of S52 and onward. On the other hand, if the number of requests 132b calculated in the processing of S57 is equal to or smaller than “0” (NO at 558), the information manager 115 terminates the information control processing. More specifically, in this case, the Information manager 115 judges that information that may be transferred to the difference storage section 130c as difference information 134 of the stored information 131 is not present, and terminates the information control processing. Note that in this case, the Information manager 115 may perform error notification to the administrator.
Turning back to
More specifically, in this case, the information update unit 112 updates only the difference number 134a of the difference information 134 without updating the stored number 131a of the stored information 131 illustrated in
Turning back to
As a result, when the number of possible requests 132c of the management information 132 is larger than “0” (YES at S34), the information manager 115 judges whether or not the value obtained by subtracting the number of possible requests 132c from the stored number 131a is larger than “0” (S35). On the other hand, when the number of possible requests 132c is equal to or smaller than “0” (NO at S34), the information manager 115 terminates the Information control processing. More specifically, in this case, the information manager 115 judges that information that may be transferred to the difference storage section 130c as difference information 134 of the stored information 131 is not present, and terminates the information control processing. Then, in this case, the information manager 115 may perform error notification to the administrator.
In addition, in the processing of S33, the information manager 115 may judge whether or not the difference number 134a of the difference information 134 is larger than a predetermined threshold (number larger than “0”). Then, in the processing of S33, when the difference number 134a falls below the predetermined threshold, the information manager 115 may execute the processing of S34 and onward. A specific example of the processing of S34 and S35 is described hereinafter.
In the management information 132 illustrated in
Turning back to
More specifically, depending on status of the processing request received by the processing execution unit 121a Illustrated in
Turning back to
The value set for the “stored number” of the information with the “Information ID” of “1” In the stored information 131 illustrated in
Then, the value set for the “difference number” of the difference information 134 illustrated in
In addition, the number set for a “number of possible requests” of the management information 132 illustrated in
Turning back to
As a result, when the difference storage section 130c is present (YES at S23), the information reader 114 refers to the difference storage section 130c and reads information corresponding to the read request of the difference information 134 (S24). On the other hand, when the difference storage section 130c is not present (NO at S23), the information reader 114 refers to the first storage section 130a and reads information corresponding to the read request of the stored information 131 (525).
More specifically, in the processing of S23, when the difference storage section 130c is not present, information targeted for the read request is present only in the first storage section 130a. Thus, in this case, the information reader 114 reads the information corresponding to the read request by referring to the first storage section 130a.
Then, for example, if the business operator has performed an input meaning that the business operator terminates the information control processing (YES at S26), the information processor 1 terminates the information control processing. On the other hand, if the business operator has not performed the input meaning that the business operator terminates the information control processing (NO at S26), the information processor 1 re-executes the processing of S21 and onward.
[Processing by the Processing Execution Unit 121a]
When receiving a processing request from the user terminal 11 or 12 in the processing of S21 of
In this case, the processing execution unit 121a performs information update or information read on stored information 131 stored in the first storage section 130a, depending on the content of the processing request allocated by the request allocation unit 122, instead of executing the processing of S22 and onward, as illustrated in
More specifically, a program for the processing execution unit 121a to operate is different from a program for the processing execution unit 121b to operate and is a program that has been already used by users to some extent. Then, the program for the processing execution unit 121a to operate is a program on which judgment that no unknown bug is included has been made by the business operator. Therefore, for example, when a processing request is allocated by the request allocation unit 122, the processing execution unit 121a may update the stored information 131 stored in the first storage section 130a, or perform other processing.
[Information Merge Processing]
Then, processing to merge information (hereinafter also referred to as information merge processing) of the information control processing is described hereinafter.
As Illustrated in
More specifically, for example, when a new function by a released program is used by users to some extent and it has been judged that destruction of information due to the released program does not occur, the business operator no longer has to manage stored information 131 and difference information 134 separately. Thus, in this case, the business operator transmits the merge request to the information processor 1 and merges the stored information 131 stored in the first storage section 130a with the difference information 134 stored in the difference storage section 130c. Then, for example, the business operator deletes the difference storage section 130c and the management information 132. This allows the business operator to reduce processing load on the information processor 1 involved in separately managing the stored information 131 and the difference information 134. A specific example of the processing of S62 is described hereinafter.
In the stored information 131 illustrated in
Thus, in this case, the Information merger 116 adds “1241 (pieces)” and “32 (pieces)” to calculate “1273 (pieces)”. Then, as illustrated in the underlined part in
In addition, for example, the information merger 116 may create, in advance, information (not illustrated) to identify an item in which the information desirably to be merged with the difference information 134 is set, out of the items included in the stored information 131. Then, by referring to the information created in advance, the information merger 116 may identify the item in which the Information desirably to be merged with the difference information 134 and merge the stored information 131 with the difference information 134.
[Information Control Processing in a Second Embodiment]
Information control processing in a second embodiment is described hereinafter. In the first embodiment are described the cases in which the difference information 134 is updated by the information update unit 112 and information is read by the information reader 113, based on content of the processing request received by the processing execution unit 121b as described in
In contrast to this, the information processor 1 in the second embodiment performs additional storage of new information by the information addition storage section 113, in addition to updating the difference information 134 by the information update unit 112 and reading information by the information reader 114. This allows the information processor 1 to limit the impact of additional storage of new information performed by the information addition storage section 113, even when an unknown bug is inherent in a released program. A specific example of the information control processing in the second embodiment is described hereinafter.
[Information Addition Storage Processing]
First, of the information control processing in the second embodiment, processing to perform additional storage of information (hereinafter also referred to as additional storage processing) is described.
As illustrated in
Then, if the difference storage section 130c is not present (NO at S81), an information manager 115 creates a difference storage section 130c (S82). On the other hand, if the difference storage section 130c is present (YES at S81), the information manager 115 does not execute the processing of S82.
Then, the information manager 115 stores information corresponding to the additional storage request as second difference information 135 in the difference storage section 130c (S83). The second difference information 135 is additional information to the stored information 131. Specifically, the second difference information 135 is, for example, information related to a row to be newly added to the stored information 131. A specific example of the second difference information 135 is described hereinafter.
Specifically, in the second difference information 135 illustrated in
In addition, as illustrated in
[Information Merge Processing]
Of the information control processing in the second embodiment, processing to merge information (hereinafter also referred to as information merge processing) is described hereinafter.
When receiving a merge request (YES at 591), the information merger 116 stores in the first storage section 130a the second difference information 135 stored in the difference storage section 130c as illustrated in
Specifically, in the stored information 131 illustrated in
More specifically, in an example illustrated in
In this manner, the Information processor 1 in the second embodiment performs additional storage of new information by the information additional storage section 113, in addition to updating the difference information 134 by the information update unit 112 and reading information by the information reader 114. This allows the information processor 1 to limit the impact of the additional storage of the new information performed by the information additional storage unit 113 even when an unknown bug is included in a released program.
In addition, instead of having the stored number 131a as an item, the stored information 131 may have information about a number corresponding to a value indicated by the stored number 131a. A specific example of the stored information 131 having the information about the number corresponding to the value indicated by the stored number 131a is described hereinafter.
Specifically, in the stored information 131 illustrated in
This allows the information update unit 112 to transfer the stored information 131 stored in the first storage section 130a to the difference storage section 130c as difference information 134, by transferring the Information itself included in the stored information 131, rather than updating the stored number 131a.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2015-150465 | Jul 2015 | JP | national |