This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2016-023309, filed on Feb. 10, 2016, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a data management apparatus and method therefor.
Cloud services are widely used in recent years. Cloud services allow data and software to be available via a network. For example, users use Web browsers running on their own computers to thereby access software and hardware resources (such as computation and storage resources) provided by cloud service providers via a network. There are widely three cloud service models: Software as a Service (SaaS); Platform as a Service (PaaS); and Infrastructure as a Service (IaaS). SaaS is a service that provides software, such as e-mail, groupware, customer management systems, and accounting software, through a network. PaaS is a service that provides functions of, for example, an operating system (OS), middleware, and an application server as an application software development and execution environment through a network. IaaS is a service that provides disk space for storing data, management functions, or the like, through a network.
Users wanting to use PaaS to develop and/or execute application software subscribe to services available in PaaS offerings. Further, the users also subscribe to storage resources, such as relational database services (RDSs) and object storage, available through IaaS. For example, a user using a log service in PaaS stores logs of application software provided by PaaS in an IaaS storage resource. Users are charged according to their usage of services and resources (such as operating time and communication traffic). In addition, users are able to terminate contracts for services and resources that are no longer needed. For example, if a user terminates a license contract of application software provided by PaaS, charges for the application software contract are stopped. Note that if data associated with the cancelled application software, such as logs output from the application software, remains in IaaS storage resources, the user will keep charged for the IaaS service based on the storage usage of the associated data.
There is a proposed pricing method associated with cloud services, allowing efficient recovery of costs of computer resources prepared by a service provider according to changes (i.e., increases and decreases) in the amount of computer resources requested to be provided. This pricing method stores information on the costs of virtualization apparatuses that provide their computer resources upon request of a user as well as information on the amount of computer resources provided to the user, and calculates the price for providing the computer resources based on the costs and the provision amount.
See, for example, Japanese Laid-open Patent Publication No. 2010-286925.
According to one embodiment, there is provided a non-transitory computer-readable storage medium storing a data management program that causes a processor of a computer including a memory to perform a process. The process includes storing a management information piece in the memory each time a request for manipulation issued during execution of each processing program used for data manipulation is a request for acquisition, reference, or update of a data set, the management information piece associating the processing program with the data set targeted for the manipulation; identifying, upon input of notice indicating termination of use of a first processing program into the computer, one or more data sets associated with the first processing program based on one or more management information pieces corresponding to the first processing program; and determining, for each of the identified data sets, that the identified data set is deletable when, in the memory, there is no management information piece corresponding to a second processing program being different from the first processing program and associated with the identified data set.
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 mentioned above, even if the user terminates the license contract of the application software provided by PaaS, if the associated data in the IaaS storage resources remains undeleted, charges for the storage resource use by the remaining associated data will be borne by the user. However, if the amount of the associated data of the cancelled application software is large, it would be difficult in practice for the user to accurately track down all the data. Thus, even if the user tries to manually delete the associated data, it is highly likely that some part of the associated data still remains in the storage resources. Then, the user continues to be charged for the remaining unwanted associated data.
Note that, in many cases, a service provider makes agreements with its user that the service provider will not refer to storage resources used by the application software to which the user has subscribed. It will therefore not happen that, under normal circumstances, the service provider deletes the data associated with the cancelled application software from the storage resources. As a result, the user continues to be charged for remaining associated data that the user has failed to delete.
Several embodiments will be described below with reference to the accompanying drawings. In the following description and the accompanying drawings, like reference numerals refer to like elements having substantially the same functions, and a repeated description thereof may be omitted.
A first embodiment is described next with reference to
The terminal 10 is a user's computer, and is connected to the execution environment delivery system 20 via a network. The network is, for example, a wide-area network such as the Internet, or a local communication network such as a wired or wireless local area network (LAN). The execution environment delivery system 20 includes one or more computers equipped with a processor and memory. The execution environment delivery system 20 delivers an environment for developing and executing processing programs to the terminal 10 as services available through the network. For example, the execution environment delivery system 20 delivers functions of an operating system (OS), middleware, an application server, and the like, to the terminal 10 as services.
The data management device 30 monitors communications (for example, Hypertext Transfer Protocol (HTTP) communications) between processing programs executed on the execution environment delivery system 20 and the storage system 40. Note that the data management device 30 is described further later on. The storage system 40 includes one or more storage devices equipped with a memory unit, such as a hard disk drive (HDD) or solid state device (SSD). The storage system 40 stores therein data associated with the processing programs executed on the execution environment delivery system 20. For example, logs output from the processing programs are stored in the storage system 40. In the example of
Further details of the data management device 30 are described next. The data management device 30 includes a storing unit 31 and a control unit 32, as illustrated in
The storing unit 31 stores therein management information 31a. The management information 31a associates each processing program with one or more manipulation-target data sets. When a manipulation request issued during the execution of each processing program describing processing of data manipulation is a request for acquisition, reference, or update of a data set, the control unit 32 stores, in the management information 31a of the storing unit 31, an information piece associating the processing program with the manipulation-target data set. Note that, for the purpose of illustration, a process generated during the execution of a processing program, carrying out a procedure, such as requesting manipulation, may be referred to as the processing program performing the procedure.
For example, in order for a first processing program 21 running on the execution environment delivery system 20 to refer to the data set 41 stored in the storage system 40, the first processing program 21 transmits, to the storage system 40, a request for a “reference” manipulation to the data set 41. In this case, the control unit 32 stores, in the management information 31a of the storing unit 31, an information piece associating the first processing program 21 with the data set 41.
In addition, in order for the first processing program 21 running on the execution environment delivery system 20 to update the data set 42 stored in the storage system 40, the first processing program 21 transmits, to the storage system 40, a request for an “update” manipulation for the data set 42. In this case, the control unit 32 stores, in the management information 31a of the storing unit 31, an information piece associating the first processing program 21 with the data set 42.
Further, in order for a second processing program 22 running on the execution environment delivery system 20 to acquire the data set 42 stored in the storage system 40, the second processing program 22 transmits, to the storage system 40, a request for an “acquisition” manipulation for the data set 42. In this case, the control unit 32 stores, in the management information 31a of the storing unit 31, an information piece associating the second processing program 22 with the data set 42.
As described above, after the requests for the “reference”, “update”, and “acquisition” manipulations are made from the first processing program 21 and the second processing program 22 (see (B) in
Upon input of notice indicating the termination of the use of the first processing program 21, the control unit 32 refers to the management information 31a to identify one or more manipulation-target data sets associated with the first processing program 21, as illustrated in (D) of
Then, as for each of the one or more identified manipulation-target data sets, if the manipulation-target data set is not associated with the second processing program 22 being different from the first processing program 21, the control unit 32 deletes the manipulation-target data set. In the example of (C) in
As described above, by monitoring manipulation requests transferred between the processing programs and the storage system 40 and holding information on the association between the processing programs and manipulation-target data sets, it is possible to identify one or more data sets associated with each of the processing programs without the service provider referring to storage resources. Therefore, the application of the mechanism of the first embodiment allows the service provider to readily delete data sets associated with a cancelled processing program from the storage system 40.
In addition, even in the case where there is one or more data sets shared between the cancelled processing program and a different processing program, the service provider is able to identify deletable data sets associated with the cancelled processing program in consideration of the effects on the different processing program. As a result, it is possible to reduce the occurrence of deletable data sets associated with the cancelled processing program being left at the termination of the use of the processing program, compared to the case where the user deletes the associated data sets by him/herself. Further, it is possible to reduce the workload and financial burden on the user. The first embodiment has been described thus far.
Next, a second embodiment is described. The second embodiment is directed to a system for providing a cloud environment for developing and executing application software programs, and provides a mechanism for allowing appropriate deletion of data associated with an application software program at the time of cancellation of the application software program.
b-1. System
The system according to the second embodiment is described with reference to
The cloud service delivery system 200 includes a PaaS system 210 and an IaaS system 220. The PaaS system 210 is implemented using one or more computers and delivers, as services, functions of an operating system, middleware, an application server, and the like, to the terminal 10 through the network 932. The IaaS system 220 delivers, as services, storage resources for storing data through the network 932. For example, the IaaS system 220 provides relational database services (RDSs).
The PaaS system 210 includes a service delivering unit 211, a data managing unit 212, and a router 213. The service delivering unit 211 delivers an environment for developing and executing application software programs to the terminal 100 via the network 932. For example, the service delivering unit 211 executes application software programs developed by the user using the terminal 100. Logs and other data output from each of the application software programs executed by the service delivering unit 211 are sent to the IaaS system 220 via the router 213. Note that, for the purpose of illustration, a process generated during the execution of an application software program, carrying out a procedure, such as outputting data, may be referred to as the application software program performing the procedure.
The data managing unit 212 monitors HTTP communications between the PaaS system 210 and the IaaS system 220 via the router 213. Based on the results of monitoring the HTTP communications, the data managing unit 212 associates the application software programs with data sets sent to the IaaS system 220. Then, at the time of cancellation of an application software program, the data managing unit 212 identifies deletable data sets amongst data sets associated with the application software program, and deletes the identified data sets from the IaaS system 220.
The IaaS system 220 includes a storage device 221. The storage device 221 includes one or more memory units, such as HDDs or SSDs, and provides memory areas for data sets and manages the data sets stored in the memory areas. The example of
Next described are the flow of HTTP communications between the PaaS system 210 and the IaaS system 220 and a data management method mainly implemented by the data managing unit 212, with reference to
In the case where APP#1 acquires a data set DT#1 stored in RDS#1, APP#1 issues an HTTP request with designation of a globally unique identifier (GUID) identifying APP#1, the target resource RDS#1, the target data set Urn, and a request type “GET”. In response to the HTTP request asking for a manipulation to acquire Urn, RDS#1 returns, to APP#1, an HTTP response including the manipulation date and time and an endpoint for identifying the manipulation target, together with DT#1.
Note that the endpoint is represented, for example, by an Internet Protocol address (IP address) of RDS#1, or a Uniform Resource Locator (URL) indicating the IP address of RDS#1 and the location of the data set in RDS#1. Hereinafter, for the purpose of illustration, the term RDS address refers to the IP address of an RDS and the term endpoint refers to the URL indicating an RDS address and a data set location. For example, in the case where the RDS address of RDS#1 is “192.168.0.1” and the data set DT#1 is found directly below the location specified by the RDS address, the endpoint is represented by, for example, “http://192.168.0.1/DT#1”.
The data managing unit 212 monitors HTTP communications taking place via the router 213 and acquires, from each HTTP request and its corresponding HTTP response, information such as a GUID, a target resource, a target data set, a request type, a manipulation date and time, and an endpoint. Then, the data managing unit 212 manages the acquired GUID, target resource, target data set, request type, manipulation date and time, and endpoint in association with each other. Note however that, when the endpoint includes information of the target data set as described above, the data managing unit 212 may manage the target data set and the endpoint without separating them.
When GUIDs and endpoints individually associated with each of the GUIDs have been acquired as described above, it is possible to identify mappings between application software programs and data sets used by the application software programs. That is, the service provider is able to acquire the mappings without referring to the data sets of the application software programs, stored in the RDSs. Then, when the user cancels an application software program, the service provider provides the user with information of data sets associated with the application software program, or deletes the data sets from an appropriate RDS on behalf of the user. As a result, it is possible to reduce the occurrence of unwanted data sets being left at the time of cancellation of the application software program, compared to the case where the user manually deletes the associated data sets. This prevents the user from being charged for the amount of the RDS used by the unwanted data.
Note that the range of data to which the service provider running the above-described cloud environment is able to refer is limited to data sets stored in resources by various services, data sets within a firewall, data sets exchanged through a router, data sets within an elastic load balancing (ELB) system, and data sets within a security group. In addition, as for storage resources such as RDSs and object storage, there are restrictions on referencing data sets of application software programs developed by users and data sets stored in the storage resources via services. The technique of the second embodiment utilizing the results of monitoring HTTP communications is preferable in such environments. The system has been described thus far.
b-2. Hardware
Next described is hardware of a computer capable of implementing functions of the cloud service delivery system 200 (the PaaS system 210 and the IaaS system 220) with reference to
The hardware mainly includes a CPU 902, read only memory (ROM) 904, RAM 906, a host bus 908, and a bridge 910, as illustrated in
These structural elements are connected to each other, for example, via the host bus 908 capable of high-speed data transmission. On the other hand, the host bus 908 is connected, for example, through the bridge 910 to the external bus 912 with a relatively low data transmission speed. The input unit 916 is, for example, a mouse, a keyboard, a touch panel, a touch-pad, buttons, switches, levers or the like. Further, the input unit 916 may be a remote controller capable of transmitting a control signal using infrared or other radio waves. The output unit 918 is, for example, a display device such as a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display panel (PDP), or an electro-luminescence display (ELD). Further, an audio output device, such as a speaker or headphones, or a printer may be employed as the output unit 918. That is, the output unit 918 is a device capable of outputting information visually or audibly.
The storing unit 920 is a device for storing therein various types of data. The storing unit 920 is, for example, a magnetic storage device such as a HDD, or alternatively may be a semiconductor storage device such as a SSD and a RAM disk, an optical storage device, or a magneto-optical storage device. The drive 922 is a device for reading information recorded on the removable storage medium 928 and writing information to the removable storage medium 928. The removable storage medium 928 is, for example, a magnetic disk, an optical disk, a magneto-optical disk, or semiconductor memory. The connection port 924 is a port for connecting an external connection device 930, and is, for example, a universal serial bus (USB) port, an Institute of Electrical and Electronics Engineers (IEEE)-1394 port, a small computer system interface (SCSI), an RS-232C port, or an optical audio terminal. The external connection device 930 is, for example, a printer.
The communicating unit 926 is a communication device used to connect with a network 932. The communicating unit 926 is, for example, a wired or wireless LAN communication circuit, a wireless USB (WUSB) communication circuit, an optical communication circuit or router, an Asymmetric Digital Subscriber Line (ADSL) communication circuit or router, or a mobile network communication circuit. The network 932 connected to the communicating unit 926 is a network connected with a wire or wirelessly, and is, for example, the Internet, a LAN, a broadcasting network, or a satellite communication link. The hardware according to the second embodiment has been described thus far.
b-3. Functions of Data Managing Unit
Further details of the functions of the data managing unit 212 are described next with reference to
The storing unit 231 stores therein a master information table 231a, a request information table 231b, and a remaining data management table 231c. The master information table 231a is used to store information on application software programs executed by the service delivering unit 211. For example, information indicating communication patterns associated with changes in charged amounts is registered in the master information table 231a. The information of the master information table 231a is set, for example, based on information about charged items (such as application software programs and services for recording logs in RDSs) provided by a PaaS provider.
As illustrated in
The request information table 231b is used to store results of monitoring HTTP communications performed via the router 213. As illustrated in
The remaining data management table 231c is used to store useful information for identifying deletable data sets at the time of cancellation of each application software program. As illustrated in
The master information managing unit 232 manages information of the master information table 231a (master information). For example, the master information managing unit 232 acquires information about charged items (such as application software programs and services for recording logs in RDSs) provided by the PaaS provider, and stores the master information in the master information table 231a based on the acquired information (see
The request information managing unit 233 monitors HTTP communications performed via the router 213. In this regard, the request information managing unit 233 monitors each HTTP request having an APP address and an RDS address registered in the master information table 231a as its source and destination, respectively, as well as an HTTP response corresponding to the HTTP request. In addition, the request information managing unit 233 acquires the GUID, target resource, and request type from each HTTP request being monitored and the manipulation date and time and endpoint from the corresponding HTTP response, and records the acquired information in the request information table 231b.
Further, the request information managing unit 233 analyzes the information in the request information table 231b (request information), and records, in the remaining data management table 231c, useful information for identifying deletable data sets (remaining data information) at the time of cancellation of an application software program. Note that how to extract the remaining data information is described later. The remaining data handling unit 234 identifies deletable data sets associated with a cancelled application software program, based on the remaining data management table 231c, and deletes the identified data sets from appropriate RDS.
Note that the remaining data handling unit 234 may inform the user (the terminal 100) of information on the identified data sets, instead of deleting them from the RDS. In this case, based on the information sent from the remaining data handling unit 234, the user deletes the deletable data sets associated with the canceled application software program from the RDS. In this manner, identifying which data sets are deletable facilitates the user to delete the unwanted data sets by him/herself. The functions of the data managing unit 212 have been described thus far.
b-4. Flow of Processing
Next described is the flow of processing executed by the data managing unit 212, with reference to
[Step S101] The user deploys an application software program (ASP, for short, in
[Step S102] The master information managing unit 232 registers the deployed application software program and the resources (RDSs) in the master information table 231a. Specifically, the master information managing unit 232 records, in the master information table 231a, the GUID of the application software program to be registered, the APP address of the application software program, the identification information of use resources (RDSs), and the RDS addresses (see
[Step S103] The request information managing unit 233 monitors HTTP communications performed via the router 213, and accumulates request information in the request information table 231b. For example, the request information managing unit 233 acquires a source IP address and a destination IP address of each HTTP request. Then, the request information managing unit 233 sets, as a monitoring target, request information (each HTTP request) whose source IP address and destination IP address match an APP address and an RDS address, respectively, recorded in the master information table 231a. That is, the request information managing unit 233 identifies HTTP communications related to application software programs and their use resources to be charged as monitoring targets.
In addition, the request information managing unit 233 acquires, as request information, the GUID of the application software program, the target resource, and the request type from each monitoring-target HTTP request, and records the acquired information in the request information table 231b (see
[Step S104] The request information managing unit 233 determines whether to update the remaining data management table 231c. For example, the request information managing unit 233 updates the remaining data management table 231c when a predetermined time (e.g. 3 minutes) has elapsed since the last update. If the request information managing unit 233 determines to update the remaining data management table 231c, the processing moves to step S105. On the other hand, if the request information managing unit 233 determines not to update the remaining data management table 231c, the processing moves to step S106.
[Step S105] The request information managing unit 233 carries out an update process of the remaining data management table 231c. With reference to the request information table 231b, the request information managing unit 233 identifies, for each application software program, the latest access (except for each request of “DELETE”) to a target data set at an endpoint. Then, the request information managing unit 233 records, in the remaining data management table 231c, information associating the application software program and the endpoint corresponding to the access-destination target data set (see
In addition, with reference to the request information table 231b, the request information managing unit 233 deletes, from the remaining data management table 231c, each record related to a deleted target data set (i.e., a target data set for which a “DELETE” request has been received). Further, the request information managing unit 233 sorts out records of the request information table 231b by deleting therefrom each record related to information already recorded in the remaining data management table 231c.
[Step S106] The master information managing unit 232 determines whether to have received a request for cancelling an application software program from the terminal 100. If a request for cancelling an application software program has been received, the processing moves to step S107. On the other hand, if there is no request to cancel an application software program, the processing moves to step S103.
[Step S107] With reference to the remaining data management table 231c, the remaining data handling unit 234 identifies one or more endpoints associated with the application software program to be cancelled. In addition, the remaining data handling unit 234 determines whether the target data set at each identified endpoint is shared by a different application software program. If the target data set is not shared with another application software program, the remaining data handling unit 234 deletes the target data set from an appropriate RDS. Note that the remaining data handling unit 234 may inform the user (the terminal 100) of information about the target data set as a deletable target data set, instead of deleting it on its own.
The request information managing unit 233 deletes, from the request information table 231b and the remaining data management table 231c, information related to the application software program to be cancelled. In this regard, the request information managing unit 233 checks the sharing situation of the target data set and updates, within the remaining data management table 231c, information related to data sharing of the target data set (see
Further details of step S103 are described next with reference to
[Step S131] The request information managing unit 233 monitors HTTP communications performed via the router 213. In this regard, the request information managing unit 233 acquires the source IP address (communication source) and the destination IP address (communication destination) from each HTTP request.
[Step S132] With reference to the master information table 231a, the request information managing unit 233 determines whether an APP address matching the communication source is present. If an APP address matching the communication source is present, the process moves to step S133. On the other hand, if an APP address matching the communication source is absent from the master information table 231a, the series of processing illustrated in
[Step S133] With reference to the master information table 231a, the request information managing unit 233 determines whether an RDS address matching the communication destination is present. If an RDS address matching the communication destination is present, the process moves to step S134. On the other hand, if an RDS address matching the communication destination is absent from the master information table 231a, the series of processing illustrated in
[Step S134] The request information managing unit 233 acquires the GUID of the application software program and the request type included in the HTTP request, and also acquires the endpoint included in an HTTP response corresponding to the HTTP request. Then, the request information managing unit 233 searches the request information table 231b for a record, the GUID, endpoint, and request type of which match the acquired GUID, endpoint, and request type, respectively. If an appropriate record is present, the processing moves to step S135. On the other hand, if such a record is absent, the processing moves to step S136.
[Step S135] The request information managing unit 233 updates the appropriate record in the request information table 231b. For example, the request information managing unit 233 updates the manipulation date and time of the record. After the completion of step S135, the series of processing illustrated in
[Step S136] The request information managing unit 233 adds, to the request information table 231b, a record associating the acquired GUID, request type, target resource, endpoint, and manipulation date and time with each other. After the completion of step S136, the series of processing illustrated in
Further details of step S105 are described next with reference to
[Step S151] With reference to the request information table 231b, the request information managing unit 233 acquires the end point, request type, and GUID from a record with the latest manipulation date and time.
[Step S152] The request information managing unit 233 determines whether the request type acquired in step S151 is “DELETE” (i.e., a request asking for deletion of the corresponding target data set). If the request type is “DELETE”, the processing moves to step S153. On the other hand, if the request type is not “DELETE”, the process moves to step S154.
[Step S153] The request information managing unit 233 deletes, from the remaining data management table 231c, a record corresponding to the endpoint acquired in step S151. That is, because the latest manipulation is “DELETE” and the target data set has already been deleted from an appropriate RDS, the request information managing unit 233 deletes information related to the deleted target data set from the remaining data management table 231c. After the completion of step S153, the processing moves to step S158.
[Step S154] The request information managing unit 233 determines whether one or more records corresponding to the acquired endpoint (“pertinent records”) is present in the remaining data management table 231c. If such one or more pertinent records are present in the remaining data management table 231c, the processing moves to step S155. On the other hand, there is no pertinent record in the remaining data management table 231c, the processing moves to step S160 of
[Step S155] The request information managing unit 233 updates the last manipulation date and time of each pertinent record in the remaining data management table 231c with the manipulation date and time recorded in the request information table 231b in association with the acquired endpoint and the like.
[Step S156] The request information managing unit 233 determines whether there is, amongst the pertinent records in the remaining data management table 231c, the last manipulation date and time of which is updated in step S155, a pertinent record including the GUID acquired in step S151. If a pertinent record including the acquired GUID is present, the processing moves to step S158. On the other hand, if a pertinent record including the acquired GUID is absent, the processing moves to step S157.
[Step S157] The request information managing unit 233 adds a record including the acquired GUID to the remaining data management table 231c. Specifically, the request information managing unit 233 adds information of the acquired GUID to an existing record corresponding to the acquired endpoint (for example, see the record corresponding to RDS#1 of
Step S157 is carried out when one or more records corresponding to the acquired endpoint are present in the remaining data management table 231c (Yes in step S154) but no pertinent record including the acquired GUID is present (No in step S156). That is, step S157 is performed when the acquired endpoint has already been associated with the GUID of another application software program. Because the application software program with the acquired GUID also uses the target data set at the endpoint, the target data set is shared by a plurality of application software programs. Therefore, “shared” is set in the data sharing field, as described above.
[Step S158] The request information managing unit 233 deletes one or more analyzed records (i.e., records having the same GUID as that associated with the endpoint) from the request information table 231b. The reason for providing the request information table 231b and the remaining data management table 231c is to associate application software programs with target data sets located at endpoints. Therefore, once association information (a mapping between an endpoint and a GUID) is stored in the remaining data management table 231c, old request information used to extract the association information is no longer needed. Hence, the request information managing unit 233 deletes such analyzed records from the request information table 231b to save the storage space.
[Step S159] The request information managing unit 233 determines whether to have analyzed all the records in the request information table 231b. If all the records have been analyzed, the series of processing illustrated in
[Step S160] The request information managing unit 233 adds a record corresponding to the acquired endpoint and GUID to the remaining data management table 231c. In this regard, the request information managing unit 233 sets “not shared” in the data sharing field of the added record. Step S160 is carried out when one or more records corresponding to the acquired endpoint are absent from the remaining data management table 231c (No in step S154). That is, step S160 is performed when the acquired endpoint has yet to be associated with the GUID of another application software program. Because only the application software program with the acquired GUID currently uses the target data set, “not shared” is set in the data sharing field of the added filed, as described above.
[Step S161] The request information managing unit 233 deletes one or more analyzed records (i.e., records having the same GUID as that associated with the endpoint) from the request information table 231b. After the completion of step S161, the processing moves to step S159 of
Further details of step S107 are described next with reference to
[Step S171] Using the GUID of the application software program to be cancelled (the “cancellation-target application software program”), the remaining data handling unit 234 searches the remaining data management table 231c for one or more records.
[Step S172] The remaining data handling unit 234 determines whether there is one or more target data sets associated with the cancellation-target application software program (“remaining data sets”). For example, the remaining data handling unit 234 determines whether the number of records detected from the remaining data management table 231c in step S171 (the “detected record count”) is equal to or more than 1. If the detected record count is equal to or more than 1 (i.e., there is one or more remaining data sets), the processing moves to step S173. On the other hand, if the detected record count is 0 (there is no remaining data set), the processing moves to step S178.
[Step S173] The remaining data handling unit 234 selects one remaining data set.
[Step S174] With reference to the remaining data management table 231c, the remaining data handling unit 234 determines whether “shared” is set in the data sharing field of the record corresponding to the selected remaining data set. If “shared” is set, the processing moves to step S176. On the other hand, if “not shared” is set, the processing moves to step S175.
[Step S175] The remaining data handling unit 234 determines that the selected remaining data set is deletable. That is, when no application software program other than the cancellation-target application software program is associated with the remaining data set, the remaining data set is eligible for deletion. After the completion of step S175, the processing moves to step S177.
[Step S176] The remaining data handling unit 234 determines that the selected remaining data set is not deletable. That is, when an application software program other than the cancellation-target application software program is associated with the remaining data set, the remaining data set is excluded from deletion targets.
[Step S177] The remaining data handling unit 234 determines whether all the remaining data sets have undergone the deletion determination. If all the remaining data sets have undergone the deletion determination, the processing moves to step S178. On the other hand, if one or more remaining data sets have yet to undergo the deletion determination, the processing moves to step S173.
[Step S178] The remaining data handling unit 234 deletes remaining data sets determined to be deletable from appropriate RDSs. In addition, the request information managing unit 233 deletes, from the remaining data management table 231c, records corresponding to the remaining data sets determined to be deletable. Note that the remaining data handling unit 234 may inform the user (the terminal 100) of information on the remaining data sets determined to be deletable, instead of deleting them on its own from the RDS, and ask the user to handle the deletion of the remaining data sets. After the completion of step S178, the processing moves to step S179 of
[Step S179] The request information managing unit 233 selects one remaining data set determined by the remaining data handling unit 234 not to be deletable.
[Step S180] With reference to the remaining data management table 231c, the request information managing unit 233 determines whether the data sharing count of the selected remaining data set (i.e., the number of application software programs sharing the selected remaining data set) is three or more. That is, the request information managing unit 233 checks whether the number of application software programs associated with the remaining data set is two or more after the association between the cancellation-target application software program and the remaining data set is dissolved. If the data sharing count is three or more, the processing moves to step S182. On the other hand, if the data sharing count is not three or more, the processing moves to step S181.
[Step S181] The request information managing unit 233 sets, within the remaining data management table 231c, “not shared” in the data sharing field of a record corresponding to the selected remaining data set (a “pertinent record”).
[Step S182] The request information managing unit 233 deletes the GUID of the cancellation-target application software program from the pertinent record within the remaining data management table 231c.
[Step S183] The request information managing unit 233 determines whether all the remaining data sets determined not to be deletable have been selected. If all the remaining data sets determined not to be deletable have been selected, the processing moves to step S184. On the other hand, if one or more of the remaining data sets determined not to be deletable remain unselected, the processing moves to step S179.
[Step S184] The request information managing unit 233 deletes, from the request information table 231b, one or more records corresponding to the GUID of the cancellation-target application software program. After the completion of step S184, the series of processing illustrated in
Next described is a modification of the second embodiment. In the above-described example, application software programs directly access RDSs; however, the modification is directed to the case where application software programs access RDSs via services.
c-1. Master Information Table
In the case where application software programs access RDSs via services, the above-described technique of the second embodiment is applicable by modifying the master information table 231a as illustrated in
c-2. Flow of Processing
In addition to the modification of the master information table 231a, steps S102 and S107 among the above-described processing steps carried out by the data managing unit 212 are modified. First, the modification of step S102 is described with reference to
[Step S201] The master information managing unit 232 registers the deployed application software program and the resources (RDSs) in the master information table 231a. Specifically, the master information managing unit 232 records, in the master information table 231a, the GUID of the application software program to be registered, the APP address of the application software program, the identification information of use resource (RDS), and the RDS addresses (see
In addition, the master information managing unit 232 sets the life cycle period (e.g. one month) of data sets. The life cycle period is set, for example, based on the charging span of the use resource (RDS). Note that the life cycle period is used to determine whether a data set is deletable by comparing it with the time having elapsed since the last update of the data set.
[Step S202] The master information managing unit 232 determines whether a service used by the deployed application software program (a “pertinent service”) has already been registered in the master information table 231a. If the pertinent service has already been registered in the master information table 231a, the processing moves to step S204. On the other hand, if the pertinent service has yet to be registered in the master information table 231a, the processing moves to step S203.
[Step S203] The master information managing unit 232 registers the pertinent service in the master information table 231a. In this regard, the master information managing unit 232 registers, in the master information table 231a, the GUID of the pertinent service; the IP address identifying the pertinent service (SRV address); the use resource (RDS) accessed by the pertinent service; and the RDS address of the use resource. In addition, the master information managing unit 232 adds the deployed application software program to the service using APP field, and sets “not shared” in the data sharing field. After the completion of step S203, the series of processing illustrated in
[Step S204] With reference to the master information table 231a, the master information managing unit 232 determines whether a different application software program uses the pertinent service. If another application software program uses the pertinent service, the processing moves to step S205. On the other hand, if no other application software program uses the pertinent service, the processing moves to step S206.
[Step S205] The master information managing unit 232 sets “shared” in the data sharing field of the record corresponding to the pertinent service within the master information table 231a. That is, because the pertinent service is shared between the deployed application software program and the different application software program, data sets in the RDS accessed via the pertinent service are likely to be shared by these two software programs. Therefore, “shared” is set in the data sharing field of the record corresponding to the pertinent service.
[Step S206] The master information managing unit 232 adds, within the master information table 231a, the deployed application software program to the service using APP field of the record corresponding to the pertinent service, to thereby update the service using APP field.
After the completion of step S206, the series of processing illustrated in
The modification of step S107 is described next with reference to
[Step S211] Using the GUID of the cancellation-target application software program, the remaining data handling unit 234 searches the remaining data management table 231c for one or more records.
[Step S212] The remaining data handling unit 234 determines whether there is one or more target data sets associated with the cancellation-target application software program (“remaining data sets”). For example, the remaining data handling unit 234 determines whether the number of records detected from the remaining data management table 231c in step S211 (the “detected record count”) is equal to or more than 1. If the detected record count is equal to or more than 1 (i.e., there is one or more remaining data sets), the processing moves to step S213. On the other hand, if the detected record count is 0 (there is no remaining data set), the processing moves to step S220.
[Step S213] The remaining data handling unit 234 selects one remaining data set.
[Step S214] With reference to the remaining data management table 231c, the remaining data handling unit 234 determines whether “shared” is set in the data sharing field of the record corresponding to the selected remaining data set. If “shared” is set, the processing moves to step S218. On the other hand, if “not shared” is set, the processing moves to step S215.
[Step S215] With reference to the master information table 231a, the remaining data handling unit 234 determines whether “shared” is set in the data sharing field of a record corresponding to a service used by the cancellation-target application software program (a “pertinent service”). If “shared” is set, the processing moves to step S216. On the other hand, if “not shared” is set, the processing moves to step S217.
[Step S216] The remaining data handling unit 234 determines whether the selected remaining data set is past the life cycle period. For example, with reference to the remaining data management table 231c, the remaining data handling unit 234 calculates the difference between the last manipulation date and time and the current date and time. Then, if the difference is larger than the life cycle period, the remaining data handling unit 234 determines that the selected remaining data set is past the life cycle period. If the selected remaining data set is past the life cycle period, the processing moves to step S217. On the other hand, if the selected remaining data set has not reached the life cycle period, the processing moves to step S218.
[Step S217] The remaining data handling unit 234 determines that the selected remaining data set is deletable. That is, the selected remaining data set is determined to be deletable in the case where one of the following conditions is met. The first condition is that an application software program other than the cancellation-target application software program is not associated with the remaining data set as well as there is no sharing of the pertinent service. The second condition is that an application software program other than the cancellation-target application software program is not associated with the remaining data set and the remaining data set is past the life cycle period even though there is sharing of the pertinent service. After the completion of step S217, the processing moves to step S219.
[Step S218] The remaining data handling unit 234 determines that the selected remaining data set is not deletable. That is, the selected remaining data set is determined not to be deletable in the case where one of the following conditions is met. The first condition is that an application software program other than the cancellation-target application software program is associated with the remaining data set. The second condition is that, even though an application software program other than the cancellation-target application software program is not associated with the remaining data set, there is sharing of the pertinent service and the remaining data set has not reached the life cycle period.
[Step S219] The remaining data handling unit 234 determines whether all the remaining data sets have undergone the deletion determination. If all the remaining data sets have undergone the deletion determination, the processing moves to step S220. On the other hand, if one or more remaining data sets have yet to undergo the deletion determination, the processing moves to step S213.
[Step S220] The remaining data handling unit 234 deletes remaining data sets determined to be deletable from appropriate RDSs. In addition, the request information managing unit 233 deletes, from the remaining data management table 231c, records corresponding to the remaining data sets determined to be deletable. Note that the remaining data handling unit 234 may inform the user (the terminal 100) of information on the remaining data sets determined to be deletable, instead of deleting them on its own from the RDS, and ask the user to handle the deletion of the remaining data sets. After the completion of step S220, the processing moves to step S221 of
[Step S221] The request information managing unit 233 selects one remaining data set determined by the remaining data handling unit 234 not to be deletable.
[Step S222] With reference to the remaining data management table 231c, the request information managing unit 233 determines whether the data sharing count of the selected remaining data set (i.e., the number of application software programs sharing the selected remaining data set) is three or more. That is, the request information managing unit 233 checks whether the number of application software programs associated with the remaining data set is two or more after the association between the cancellation-target application software program and the remaining data set is dissolved. If the data sharing count is three of more, the processing moves to step S224. On the other hand, if the data sharing count is not three or more, the processing moves to step S223.
[Step S223] The request information managing unit 233 sets, within the remaining data management table 231c, “not shared” in the data sharing field of a record corresponding to the selected remaining data set (a “pertinent record”).
[Step S224] The request information managing unit 233 deletes the GUID of the cancellation-target application software program from the pertinent record within the remaining data management table 231c.
[Step S225] The request information managing unit 233 determines whether all the remaining data sets determined not to be deletable have been selected. If all the remaining data sets determined not to be deletable have been selected, the processing moves to step S226. On the other hand, if one or more of the remaining data sets determined not to be deletable remain unselected, the processing moves to step S221.
[Step S226] The request information managing unit 233 deletes, from the request information table 231b, one or more records corresponding to the GUID of the cancellation-target application software program.
[Step S227] With reference to the master information table 231a, the master information managing unit 232 determines whether “shared” is set in the data sharing field of the record corresponding to the service used by the cancellation-target application software program (the “pertinent service”). If “shared” is set, the processing moves to step S228. On the other hand, if “not shared” is set, the processing moves to step S231 of
[Step S228] With reference to the master information table 231a, the master information managing unit 232 determines whether there are two service using APPs corresponding to the pertinent service (i.e., whether there are two application software programs using the pertinent service). If there are two service using APPs corresponding to the pertinent service, the processing moves to step S229 of
[Step S229] The master information managing unit 232 updates, within the master information table 231a, the record corresponding to the pertinent service by setting “not shared” in the data sharing field of the record.
[Step S230] The master information managing unit 232 deletes the GUID of the cancellation-target application software program from the service using APP field of the pertinent service, to thereby update the master information table 231a. After the completion of step S230, the series of processing illustrated in
[Step S231] The master information managing unit 232 deletes the record of the pertinent service from the master information table 231a. After the completion of step S231, the series of processing illustrated in
c-3. Other Particulars
Resource charging systems include, for example, pay-as-you-go systems, such as object storage services, and pay-monthly systems for leasing a storage space. For example, in the case of a pay-monthly system for leasing a storage space, if a reduction in the leased storage space is unlikely to cause any problem after remaining data sets are accurately deleted, the data managing unit 212 may carry out an update process to automatically reduce the leased storage space.
In addition, the following scheme may be used to cut the monthly usage fee. First, the data managing unit 212 (1) creates storage/instance with small capacity; (2) backs up/exports data of an instance in use; and (3) restores/imports the data of (2) to the new instance. Then, the data managing unit 212 (4) changes the instance to which an application is connected to the instance of (3); and (5) deletes the storage/instance no longer used.
Herewith, it is possible to reduce the monthly usage fee. The above-described application is also within the technical scope of the second embodiment. The second embodiment has been described thus far.
According to one aspect, it is possible to reduce the occurrence of deletable data sets associated with a processing program being left at the termination of the use of the processing program.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations 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 one or more embodiments of the present invention have been described in detail, it should be understood that various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2016-023309 | Feb 2016 | JP | national |