(57)【特許請求の範囲】
【請求項１】
コンピュータに、
データ記憶部に記憶されたデータを操作する処理が記述された処理プログラムを実行することで操作の要求が出力されると、出力された操作の要求がデータの取得、参照、又は更新の要求である場合、前記処理プログラムと、操作対象の１以上のデータとを関連付ける管理情報を管理情報記憶部に記録し、
第１の処理プログラムの利用を終了する通知が入力されると、前記管理情報を参照して、前記第１の処理プログラムに関連付けられている前記操作対象の１以上のデータを特定し、特定した前記操作対象の１以上のデータそれぞれについて、前記第１の処理プログラムとは異なる第２の処理プログラムに関連付けられているか否かを判定し、特定した前記操作対象の１以上のデータのうちの前記第２の処理プログラムに関連付けられていないデータを、前記データ記憶部から削除可能と判定する
処理を実行させる、データ管理プログラム。
【請求項２】
前記管理情報は、前記処理プログラムと、前記操作対象の１以上のデータと共に、前記操作対象の１以上のデータにアクセスするためのアクセス先をさらに関連付け、
前記データ管理プログラムは、前記コンピュータに、
前記管理情報記憶部に記録する処理において、出力された前記操作の要求に対応する前記処理プログラム、前記操作対象の１以上のデータ、及び前記アクセス先を関連付ける前記管理情報が前記管理情報記憶部に記録されていない場合に当該管理情報を前記管理情報記憶部に記録する処理を実行させ、
前記処理プログラムの実行によりデータの削除の要求が出力された場合には、出力された前記削除の要求に対応する前記処理プログラム、削除対象のデータ、及び前記アクセス先を関連付ける前記管理情報を前記管理情報記憶部から削除する
処理を実行させる、請求項１に記載のデータ管理プログラム。
【請求項３】
前記管理情報記憶部は、データへのアクセスに利用されるサービスと、当該サービスを利用する前記処理プログラムとを関連付ける設定情報を記憶し、
前記データ管理プログラムは、前記コンピュータに、
前記第１の処理プログラムの利用を終了する通知が入力されると、前記管理情報を参照して前記第１の処理プログラムに関連付けられている前記操作対象の１以上のデータを特定し、前記管理情報及び前記設定情報を参照して、特定した前記操作対象の１以上のデータそれぞれについて、前記第１の処理プログラムとは異なる前記第２の処理プログラムに関連付けられているか否かを判定するとともに、前記第１の処理プログラムが利用するサービスが前記第２の処理プログラムに関連付けられているか否かを判定し、前記サービスが前記第２の処理プログラムに関連付けられていない場合に、特定した前記操作対象の１以上のデータのうちの前記第２の処理プログラムに関連付けられていないデータを、前記データ記憶部から削除可能と判定する
処理を実行させる、請求項１または２に記載のデータ管理プログラム。
【請求項４】
前記管理情報記憶部は、データへのアクセスに利用されるサービスと、当該サービスを利用する前記処理プログラムとを関連付ける設定情報を記憶し、
データには有効期間が設定されており、
前記管理情報は、前記処理プログラムと、前記操作対象の１以上のデータと、前記操作対象の１以上のデータにアクセスするためのアクセス先と共に、前記操作対象の１以上のデータに対する更新日時をさらに関連付け、
前記第１の処理プログラムの利用を終了する通知が入力されると、前記管理情報を参照して前記第１の処理プログラムに関連付けられている前記操作対象の１以上のデータを特定し、前記管理情報及び前記設定情報を参照して、特定した前記操作対象の１以上のデータそれぞれについて、前記第１の処理プログラムとは異なる前記第２の処理プログラムに関連付けられているか否か、および有効期限が切れているか否かを判定するとともに、前記第１の処理プログラムが利用するサービスが前記第２の処理プログラムに関連付けられているか否かを判定し、前記サービスが前記第２の処理プログラムに関連付けられている場合に、特定した前記操作対象の１以上のデータのうち、前記第２の処理プログラムに関連付けられておらず、且つデータの有効期限が切れているデータを、前記データ記憶部から削除可能と判定する
処理を実行させる、請求項１ないし３のいずれか１項に記載のデータ管理プログラム。
【請求項５】
前記操作対象の１以上のデータは、前記処理プログラム自体とは異なるデータである
請求項１ないし４のいずれか１項に記載のデータ管理プログラム。
【請求項６】
情報を記憶する管理情報記憶部と、
データ記憶部に記憶されたデータを操作する処理が記述された処理プログラムを実行することで操作の要求が出力されると、出力された操作の要求がデータの取得、参照、又は更新の要求である場合に、前記処理プログラムと、操作対象の１以上のデータとを関連付ける管理情報を前記管理情報記憶部に記録し、
第１の処理プログラムの利用を終了する通知が入力されると、前記管理情報を参照して、前記第１の処理プログラムに関連付けられている前記操作対象の１以上のデータを特定し、特定した前記操作対象の１以上のデータそれぞれについて、前記第１の処理プログラムとは異なる第２の処理プログラムに関連付けられているか否かを判定し、特定した前記操作対象の１以上のデータのうちの前記第２の処理プログラムに関連付けられていないデータを、前記データ記憶部から削除可能と判定する制御部と
を有する、データ管理装置。
【請求項７】
コンピュータが、
データ記憶部に記憶されたデータを操作する処理が記述された処理プログラムを実行することで操作の要求が出力されると、出力された操作の要求がデータの取得、参照、又は更新の要求である場合に、前記処理プログラムと、操作対象の１以上のデータとを関連付ける管理情報を管理情報記憶部に記録し、
第１の処理プログラムの利用を終了する通知が入力されると、前記管理情報を参照して、前記第１の処理プログラムに関連付けられている前記操作対象の１以上のデータを特定し、特定した前記操作対象の１以上のデータそれぞれについて、前記第１の処理プログラムとは異なる第２の処理プログラムに関連付けられているか否かを判定し、特定した前記操作対象の１以上のデータのうちの前記第２の処理プログラムに関連付けられていないデータを、前記データ記憶部から削除可能と判定する
データ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理プログラム、データ管理装置、及びデータ管理方法に関する。
【背景技術】
【０００２】
近年、クラウドサービスが広く利用されるようになってきている。クラウドサービスは、データやソフトウェアをネットワーク経由で利用できるようにするサービスである。例えば、ユーザは、自身のコンピュータ上で動作するウェブブラウザを操作して、クラウドサービス事業者がネットワーク経由で提供するソフトウェアやハードウェアリソース（演算リソースやストレージリソースなど）を利用できるようになる。
【０００３】
例えば、電子メール、グループウェア、顧客管理、財務会計などのソフトウェアをネットワーク経由で提供するサービスとして、ＳａａＳ（Software as a Service）がある。また、アプリケーションソフトウェアの開発・実行環境としてＯＳ（Operating System）、ミドルウエア、アプリケーションサーバなどの機能をネットワーク経由で提供するサービスとして、ＰａａＳ（Platform as a Service）がある。また、データを格納するためのディスクスペースや管理機能などをネットワーク経由で提供するサービスとして、ＩａａＳ（Infrastructure as a Service）がある。
【０００４】
アプリケーションソフトウェアの開発や実行をＰａａＳ上で行うユーザは、ＰａａＳが提供するサービスを契約する。さらに、ユーザは、ＩａａＳが提供するＲＤＳ（Relational Database Service）やオブジェクトストレージなどのストレージリソースを契約する。例えば、ＰａａＳが提供するログサービスを利用するユーザは、ＰａａＳから提供されるアプリケーションソフトウェアのログをＩａａＳのストレージリソースに格納する。
【０００５】
ユーザは、サービスやリソースの利用状況（稼働時間や通信量など）に応じて課金される。また、ユーザは、不要なサービスやリソースを解約することができる。例えば、ユーザがＰａａＳが提供するアプリケーションソフトウェアを解約すると、そのアプリケーションソフトウェアの契約に対する課金は停止する。なお、解約したアプリケーションソフトウェアが出力したログなどの関連データがＩａａＳのストレージリソース上に残っていると、その関連データの使用量に応じたＩａａＳによる課金は継続する。
【０００６】
なお、クラウドサービスに関し、コンピュータリソースの提供要求量の増減に応じて、サービス提供者が用意したコンピュータリソースの費用を効率よく回収するための料金設定方法が提案されている。この料金設定方法は、ユーザの要求に応じてコンピュータリソースを提供する仮想化装置の費用と、コンピュータリソースの提供量とを記憶しておき、費用及び提供量に基づいてコンピュータリソースの提供料金を算出する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−２８６９２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記のように、ＰａａＳが提供するアプリケーションソフトウェアを解約しても、ＩａａＳのストレージリソース上にある関連データが削除されなければ、残存する関連データが使用するストレージリソースの分だけ料金が発生する。しかし、解約したアプリケーションソフトウェアの関連データは膨大であり、その全てをユーザが正確に把握することは現実的に難しく、ユーザが手作業で削除したとしても関連データがストレージリソース上に残存する可能性が高い。そして、残存する不要な関連データに対する課金が継続する。
【０００９】
なお、サービス提供者とユーザとの間では、多くの場合、ユーザが契約したアプリケーションソフトウェアが利用するストレージリソースをサービス提供者が参照しない契約が結ばれる。そのため、通常、解約されたアプリケーションソフトウェアに関連するストレージリソース内の関連データをサービス提供者が削除することはない。結果として、ユーザが削除しきれずに残った関連データに対して課金が継続する。
【００１０】
１つの側面によれば、本開示の目的は、処理プログラムの終了時に削除可能な当該処理プログラムに関連するデータの残存を低減することができるデータ管理プログラム、データ管理装置、及びデータ管理方法を提供することにある。なお、アプリケーションソフトウェアは、処理プログラムの一例である。
【課題を解決するための手段】
【００１１】
一態様によれば、コンピュータが、データを操作する処理が記述された処理プログラムを実行することで操作の要求が出力されると、出力された操作の要求がデータの取得、参照、又は更新の要求である場合に、処理プログラムと、操作対象のデータとを関連付ける管理情報を記憶部に記録し、第１の処理プログラムの利用を終了する通知が入力されると、管理情報を参照して、第１の処理プログラムに関連付けられている操作対象のデータを特定し、特定した操作対象のデータが、第１の処理プログラムとは異なる第２の処理プログラムに関連付けられていない場合に、特定した操作対象のデータを削除可能と判定するデータ管理方法が提供される。
【発明の効果】
【００１２】
処理プログラムの終了時に削除可能な当該処理プログラムに関連するデータの残存を低減することができる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態に係るシステムの一例を示した図である。
【図２】第２実施形態に係るシステムの一例を示した図である。
【図３】第２実施形態に係るクラウドサービス提供システムにおけるデータ管理方法の一例を示した図である。
【図４】第２実施形態に係る各種システムの機能を実現することが可能なハードウェアの一例を示した図である。
【図５】第２実施形態に係るデータ管理部が有する機能の一例を示したブロック図である。
【図６】第２実施形態に係るマスタ情報テーブルの一例を示した図である。
【図７】第２実施形態に係るリクエスト情報テーブルの一例を示した図である。
【図８】第２実施形態に係る残存データ管理テーブルの一例を示した図である。
【図９】第２実施形態に係るデータ管理部が実行する処理の流れを示した第１のフロー図である。
【図１０】第２実施形態に係るデータ管理部が実行する処理の流れを示した第２のフロー図である。
【図１１】第２実施形態に係るデータ管理部が実行する処理の流れを示した第３のフロー図である。
【図１２】第２実施形態に係るデータ管理部が実行する処理の流れを示した第４のフロー図である。
【図１３】第２実施形態に係るデータ管理部が実行する処理の流れを示した第５のフロー図である。
【図１４】第２実施形態に係るデータ管理部が実行する処理の流れを示した第６のフロー図である。
【図１５】第２実施形態の一変形例に係るマスタ情報テーブルの一例を示した図である。
【図１６】第２実施形態の一変形例に係るデータ管理部が実行する処理の流れを示した第１のフロー図である。
【図１７】第２実施形態の一変形例に係るデータ管理部が実行する処理の流れを示した第２のフロー図である。
【図１８】第２実施形態の一変形例に係るデータ管理部が実行する処理の流れを示した第３のフロー図である。
【図１９】第２実施形態の一変形例に係るデータ管理部が実行する処理の流れを示した第４のフロー図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１５】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。第１実施形態は、アプリケーションソフトウェアなどの処理プログラムを開発・実行するクラウド環境を提供するシステムにおいて、処理プログラムの解約時に、その処理プログラムに関連するデータを適切に削除できるようにする仕組みを提供する。なお、図１は、第１実施形態に係るシステムの一例を示した図である。
【００１６】
図１に示すように、第１実施形態に係るシステムは、端末装置１０、実行環境提供システム２０、データ管理装置３０、及びストレージシステム４０を含む。
なお、実行環境提供システム２０及びデータ管理装置３０は、例えば、ＰａａＳを提供するシステム（ＰａａＳシステム）として機能しうる。また、ストレージシステム４０は、ＩａａＳを提供するシステム（ＩａａＳシステム）として機能しうる。
【００１７】
端末装置１０は、ユーザが利用するコンピュータである。端末装置１０は、ネットワークを介して実行環境提供システム２０に接続される。ネットワークは、例えば、インターネットなどの広域通信網や、有線ＬＡＮ（Local Area Network）又は無線ＬＡＮなどの局所通信網である。
【００１８】
実行環境提供システム２０は、プロセッサ及びメモリを搭載した１台又は複数台のコンピュータを有する。実行環境提供システム２０は、ネットワーク経由で利用可能なサービスとして処理プログラムの開発環境や実行環境を端末装置１０に提供する。例えば、実行環境提供システム２０は、ＯＳ、ミドルウエア、アプリケーションサーバなどの機能をサービスとして端末装置１０に提供する。
【００１９】
データ管理装置３０は、実行環境提供システム２０上で実行される処理プログラムとストレージシステム４０との間の通信（例えば、ＨＴＴＰ（Hypertext Transfer Protocol）通信）を監視する。なお、データ管理装置３０については、さらに後述する。
【００２０】
ストレージシステム４０は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの記憶装置を搭載した１台又は複数台のストレージ装置を有する。ストレージシステム４０は、実行環境提供システム２０上で実行される処理プログラムに関連するデータを格納する。例えば、ストレージシステム４０には、処理プログラムから出力されるログが格納される。図１の例では、ストレージシステム４０にデータ４１、４２が格納されている（図１（Ａ）を参照）。
【００２１】
ここで、データ管理装置３０について、さらに説明する。
図１に示すように、データ管理装置３０は、記憶部３１及び制御部３２を有する。
記憶部３１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置である。制御部３２は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、制御部３２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路であってもよい。制御部３２は、例えば、記憶部３１又は他のメモリに記憶されたプログラムを実行する。
【００２２】
記憶部３１には、管理情報３１ａが格納される。管理情報３１ａは、処理プログラムと、操作対象のデータとを関連付ける情報である。制御部３２は、データを操作する処理が記述された処理プログラムを実行することで操作の要求が出力されると、出力された要求がデータの取得、参照、又は更新の要求である場合に、その処理プログラムと操作対象のデータとを関連付ける管理情報３１ａを記憶部３１に記録する。なお、説明の都合上、処理プログラムの実行時に生成される処理プロセスが操作の要求などの処理を実行することを、処理プログラムが処理を実行するなどと表現する場合がある。
【００２３】
例えば、実行環境提供システム２０上で実行されている第１の処理プログラム２１がストレージシステム４０にあるデータ４１を参照する場合、第１の処理プログラム２１は、データ４１に対する「参照」操作の要求をストレージシステム４０に送信する。この場合、制御部３２は、第１の処理プログラム２１とデータ４１とを関連付ける情報（管理情報３１ａ）を記憶部３１に格納する。
【００２４】
また、実行環境提供システム２０上で実行されている第１の処理プログラム２１がストレージシステム４０にあるデータ４２を更新する場合、第１の処理プログラム２１は、データ４２に対する「更新」操作の要求をストレージシステム４０に送信する。この場合、制御部３２は、第１の処理プログラム２１とデータ４２とを関連付ける情報（管理情報３１ａ）を記憶部３１に格納する。
【００２５】
また、実行環境提供システム２０上で実行されている第２の処理プログラム２２がストレージシステム４０にあるデータ４２を取得する場合、第２の処理プログラム２２は、データ４２に対する「取得」操作の要求をストレージシステム４０に送信する。この場合、制御部３２は、第２の処理プログラム２２とデータ４２とを関連付ける情報（管理情報３１ａ）を記憶部３１に格納する。
【００２６】
上記のように、第１の処理プログラム２１による「参照」「更新」操作の要求、及び第２の処理プログラム２２による「取得」操作の要求がされると（図１（Ｂ）を参照）、記憶部３１には、図１（Ｃ）に示すような管理情報３１ａが格納される。なお、データ４１に対する「削除」の要求がされた場合、制御部３２は、データ４１に関する情報を管理情報３１ａから削除する。また、データ４２に対する「削除」の要求がされた場合、制御部３２は、データ４２に関する情報を管理情報３１ａから削除する。
【００２７】
制御部３２は、図１（Ｄ）に示すように、第１の処理プログラム２１の利用を終了する通知が入力されると、管理情報３１ａを参照して、第１の処理プログラム２１に関連付けられている操作対象のデータを特定する。図１（Ｃ）の例では、管理情報３１ａにより、第１の処理プログラム２１とデータ４１、４２とが関連付けられている。この場合、制御部３２は、第１の処理プログラム２１に関連付けられている操作対象のデータとして、データ４１、４２を特定する。
【００２８】
また、制御部３２は、特定した操作対象のデータが、第１の処理プログラム２１とは異なる第２の処理プログラム２２に関連付けられていない場合に、特定した操作対象のデータを削除する。図１（Ｃ）の例では、管理情報３１ａにより、データ４２に第２の処理プログラム２２が関連付けられている。一方、データ４１には、第２の処理プログラム２２が関連付けられていない。この場合、制御部３２は、図１（Ｄ）に示すように、ストレージシステム４０に格納されているデータ４１を削除する。
【００２９】
上記のように、処理プログラムとストレージシステム４０との間でやり取りされる操作の要求を監視し、処理プログラムとデータとを関連付けて保持しておくことで、サービス提供者がストレージリソースを参照せずに処理プログラムの関連データを特定できる。そのため、第１実施形態の仕組みを適用すれば、サービス提供者が、解約された処理プログラムに関連する関連データをストレージシステム４０から容易に削除することができる。
【００３０】
また、解約された処理プログラムと他の処理プログラムとの間でデータの共有がある場合でも、サービス提供者は、他の処理プログラムへの影響を考慮して削除可能な関連データを特定することができる。その結果、ユーザが関連データを自ら削除する場合に比べ、処理プログラムの終了時に削除可能な当該処理プログラムに関連するデータの残存を低減することができる。さらに、ユーザの作業負担及び経済的負担も低減しうる。
【００３１】
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。第２実施形態は、アプリケーションソフトウェアを開発・実行するクラウド環境を提供するシステムに関し、アプリケーションソフトウェアの解約時に、そのアプリケーションソフトウェアに関連するデータを適切に削除する仕組みを提供する。
【００３２】
［２−１．システム］
図２を参照しながら、第２実施形態に係るシステムについて説明する。図２は、第２実施形態に係るシステムの一例を示した図である。なお、第２実施形態に係る技術を適用可能なシステムは図２の例に限定されないが、以下では、説明の都合上、図２に示したシステムを例に説明を進める。
【００３３】
図２に示すように、第２実施形態に係るシステムは、端末装置１００、及びクラウドサービス提供システム２００を含む。端末装置１００は、クラウドサービス提供システム２００がネットワーク９３２経由で提供するサービスを利用するためにユーザが用いるコンピュータである。ネットワーク９３２は、例えば、インターネットなどの広域通信網や、有線ＬＡＮ又は無線ＬＡＮなどの局所通信網である。
【００３４】
クラウドサービス提供システム２００は、ＰａａＳシステム２１０、及びＩａａＳシステム２２０を有する。ＰａａＳシステム２１０は、１台又は複数台のコンピュータを用いて運用され、ネットワーク９３２経由で、ＯＳ、ミドルウエア、アプリケーションサーバなどの機能をサービスとして提供する。ＩａａＳシステム２２０は、ネットワーク９３２経由で、データを格納するためのストレージリソースをサービスとして提供する。例えば、ＩａａＳシステム２２０はＲＤＳを提供する。
【００３５】
ＰａａＳシステム２１０は、サービス提供部２１１、データ管理部２１２、及びルータ２１３を有する。サービス提供部２１１は、ネットワーク９３２を介して端末装置１００にアプリケーションソフトウェアの開発・実行環境を提供する。例えば、サービス提供部２１１は、端末装置１００を用いてユーザが開発したアプリケーションソフトウェアを実行する。サービス提供部２１１が実行するアプリケーションソフトウェアが出力するログなどのデータは、ルータ２１３を経由してＩａａＳシステム２２０に送られる。なお、説明の都合上、アプリケーションソフトウェアの実行時に生成される処理プロセスがデータ出力などの処理を実行することを、アプリケーションソフトウェアが処理を実行するなどと表現する場合がある。
【００３６】
データ管理部２１２は、ルータ２１３を介してＰａａＳシステム２１０、ＩａａＳシステム２２０間で行われるＨＴＴＰ通信を監視する。また、データ管理部２１２は、ＨＴＴＰ通信の監視結果に基づいて、アプリケーションソフトウェアとＩａａＳシステム２２０に送られたデータとを関連付ける。そして、データ管理部２１２は、アプリケーションソフトウェアの解約時に、そのアプリケーションソフトウェアに関連するデータの中から削除可能なデータを特定し、特定したデータをＩａａＳシステム２２０から削除する。
【００３７】
ＩａａＳシステム２２０は、ストレージ装置２２１を有する。ストレージ装置２２１は、１台又は複数台のＨＤＤやＳＳＤなどの記憶装置を有し、データの記憶領域を提供すると共に記憶領域に格納されたデータを管理する。なお、図２の例では、説明の都合上、ストレージ装置２２１を１つしか記載していないが、ＩａａＳシステム２２０に複数のストレージ装置が含まれていてもよい。
【００３８】
ここで、図３を参照しながら、ＰａａＳシステム２１０とＩａａＳシステム２２０との間で行われるＨＴＴＰ通信の流れと、主にデータ管理部２１２によるデータ管理方法について述べる。図３は、第２実施形態に係るクラウドサービス提供システムにおけるデータ管理方法の一例を示した図である。
【００３９】
図３の例は、アプリケーションソフトウェアＡＰＰ＃１がデータベースＲＤＳ＃１にあるデータにアクセスする際にルータ２１３を介して行われるＨＴＴＰ通信の様子、及びその際にデータ管理部２１２が情報を蓄積する様子を示している。
【００４０】
ＡＰＰ＃１がＲＤＳ＃１にあるデータＤＴ＃１を取得する場合、ＡＰＰ＃１は、ＡＰＰ＃１を識別するＧＵＩＤ（Globally Unique Identifier）、対象リソースＲＤＳ＃１、対象データＤＴ＃１、リクエスト種別ＧＥＴを指定したＨＴＴＰリクエストを発行する。データＤＴ＃１の取得操作を要求するＨＴＴＰリクエストに応じて、ＲＤＳ＃１は、ＡＰＰ＃１に対し、データＤＴ＃１と共に、操作日時、及び、操作先を識別するエンドポイントを含むＨＴＴＰレスポンスをＡＰＰ＃１に返す。
【００４１】
なお、エンドポイントは、例えば、ＲＤＳ＃１のＩＰ（Internet Protocol）アドレスや、ＲＤＳ＃１のＩＰアドレスとＲＤＳ＃１におけるデータの所在とを示すＵＲＬ（Uniform Resource Locator）などで表される。以下では、説明の都合上、ＲＤＳのＩＰアドレスをＲＤＳアドレスと呼び、ＲＤＳアドレス及びデータの所在を示すＵＲＬをエンドポイントと呼ぶことにする。例えば、ＲＤＳ＃１のＲＤＳアドレスが「192.168.0.1」であり、このＲＤＳアドレスで指定される場所の直下にデータＤＴ＃１がある場合、エンドポイントは、「http://192.168.0.1/DT#1」のように表される。
【００４２】
データ管理部２１２は、ルータ２１３を介して行われるＨＴＴＰ通信を監視し、ＨＴＴＰリクエスト及びＨＴＴＰレスポンスから、ＧＵＩＤ、対象リソース、対象データ、リクエスト種別、操作日時、エンドポイントなどの情報を取得する。そして、データ管理部２１２は、取得したＧＵＩＤ、対象リソース、対象データ、リクエスト種別、操作日時、エンドポイントを関連付けて管理する。なお、上記のようにエンドポイントに対象データの情報が含まれる場合には対象データとエンドポイントと分けて管理しなくてもよい。
【００４３】
上記のように、ＧＵＩＤと、そのＧＵＩＤに関連するエンドポイントとが取得できると、アプリケーションソフトウェアと、そのアプリケーションソフトウェアが扱うデータとの対応関係を特定することが可能になる。つまり、サービス提供者側がＲＤＳ上にあるアプリケーションソフトウェアのデータを参照することなく、その対応関係を取得できるようになる。
【００４４】
そして、あるアプリケーションソフトウェアが解約された場合、サービス提供者は、そのアプリケーションソフトウェアに関連するデータの情報をユーザに提供し、或いは、そのデータをユーザに代わってＲＤＳから削除することが可能になる。その結果、アプリケーションソフトウェアの解約時にユーザが手作業で関連データの削除を行う場合に比べて、不要なデータの残存を低減することが可能になり、不要なデータがＲＤＳの容量を使用する分の課金を抑制することができる。
【００４５】
なお、上記のようなクラウド環境を運用するサービス提供者側が参照可能なデータの範囲は、各種サービスがリソース内に保持しているデータ、ファイアウォール、ルータ、ＥＬＢ（Elastic Load Balancing）、セキュリティグループに限られる。また、ＲＤＳやオブジェクトストレージなどのリソースは、ユーザが開発したアプリケーションソフトウェアのデータや、サービス経由でリソースに格納されたデータの参照に制限がある。このような環境においてＨＴＴＰ通信の監視結果を利用する第２実施形態の技術は好適である。
【００４６】
以上、システムについて説明した。
［２−２．ハードウェア］
次に、図４を参照しながら、クラウドサービス提供システム２００（ＰａａＳシステム２１０、ＩａａＳシステム２２０）の機能を実現することが可能なコンピュータのハードウェアについて説明する。なお、端末装置１００の機能も図４に示したコンピュータのハードウェアを用いて実現できる。図４は、第２実施形態に係る各種システムの機能を実現することが可能なハードウェアの一例を示した図である。
【００４７】
クラウドサービス提供システム２００が有する機能は、例えば、図４に示すハードウェア資源を用いて実現することが可能である。例えば、ＰａａＳシステム２１０のデータ管理部２１２が有する機能は、コンピュータプログラムを用いて図４に示すハードウェアを制御することにより実現される。なお、クラウドサービス提供システム２００には、図４に示すハードウェア資源を持つコンピュータが複数台含まれうる。
【００４８】
図４に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（Read Only Memory）９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０とを有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とを有する。
【００４９】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【００５０】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
【００５１】
出力部９１８としては、例えば、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、又はＥＬＤ（Electro-Luminescence Display）などのディスプレイ装置が用いられる。また、出力部９１８として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部９１８は、情報を視覚的又は聴覚的に出力することが可能な装置である。
【００５２】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ＨＤＤなどの磁気記憶デバイスが用いられる。また、記憶部９２０として、ＳＳＤやＲＡＭディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【００５３】
ドライブ９２２は、着脱可能な記録媒体であるリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
【００５４】
接続ポート９２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small Computer System Interface）、ＲＳ−２３２Ｃポート、又は光オーディオ端子など、外部接続機器９３０を接続するためのポートである。外部接続機器９３０としては、例えば、プリンタなどが用いられる。
【００５５】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスである。通信部９２６としては、例えば、有線又は無線ＬＡＮ用の通信回路、ＷＵＳＢ（Wireless USB）用の通信回路、光通信用の通信回路やルータ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークであり、例えば、インターネット、ＬＡＮ、放送網、衛星通信回線などを含む。
【００５６】
以上、ハードウェアについて説明した。
［２−３．データ管理部の機能］
次に、図５を参照しながら、データ管理部２１２の機能について、さらに説明する。図５は、第２実施形態に係るデータ管理部が有する機能の一例を示したブロック図である。
【００５７】
図５に示すように、データ管理部２１２は、記憶部２３１と、マスタ情報管理部２３２と、リクエスト情報管理部２３３と、残存データ処理部２３４とを有する。記憶部２３１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。マスタ情報管理部２３２、リクエスト情報管理部２３３、残存データ処理部２３４の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００５８】
記憶部２３１には、マスタ情報テーブル２３１ａ、リクエスト情報テーブル２３１ｂ、残存データ管理テーブル２３１ｃが格納される。
マスタ情報テーブル２３１ａは、サービス提供部２１１で実行されるアプリケーションソフトウェアに関する情報を格納するテーブルである。例えば、マスタ情報テーブル２３１ａには、課金額の増減に関係する通信パターンを示す情報が登録される。例えば、ＰａａＳ事業者が提供する課金アイテム（アプリケーションソフトウェアやＲＤＳへのログ記録サービスなど）の情報に基づいてマスタ情報テーブル２３１ａの情報が設定される。
【００５９】
例えば、マスタ情報テーブル２３１ａは、図６に示すように、アプリケーションソフトウェアを識別するＧＵＩＤ、及びそのアプリケーションソフトウェアがＨＴＴＰ通信の際に用いる自身のＩＰアドレス（ＡＰＰアドレス）を含む。さらに、マスタ情報テーブル２３１ａは、ログなどのデータを記録するストレージリソース（使用リソース）、及びＨＴＴＰ通信の際にその使用リソースを示すＩＰアドレス（ＲＤＳアドレス）を含む。なお、図６は、第２実施形態に係るマスタ情報テーブルの一例を示した図である。
【００６０】
リクエスト情報テーブル２３１ｂは、ルータ２１３を介して行われるＨＴＴＰ通信の監視結果が格納されるテーブルである。例えば、リクエスト情報テーブル２３１ｂは、図７に示すように、アプリケーションソフトウェアのＧＵＩＤ、リクエスト種別、対象リソース、エンドポイント、及び操作日時を含む。
【００６１】
リクエスト種別「ＰＯＳＴ」は、対象リソースにデータを送るＨＴＴＰリクエストを表す。リクエスト種別「ＧＥＴ」は、対象リソースからデータを取得するＨＴＴＰリクエストを表す。リクエスト種別「ＤＥＬＥＴＥ」は、対象リソースにあるデータを削除するＨＴＴＰリクエストを表す。なお、図７は、第２実施形態に係るリクエスト情報テーブルの一例を示した図である。
【００６２】
残存データ管理テーブル２３１ｃは、アプリケーションソフトウェアの解約時に削除可能なデータの特定に有用な情報を格納するテーブルである。例えば、残存データ管理テーブル２３１ｃは、図８に示すように、対象リソース、エンドポイント、ＧＵＩＤ、及び対象データの最終操作日時を含む。また、残存データ管理テーブル２３１ｃは、対象データが複数のアプリケーションソフトウェアの間で共有されているか否かを示す情報（データ共有あり／なし）を含む。なお、図８は、第２実施形態に係る残存データ管理テーブルの一例を示した図である。
【００６３】
マスタ情報管理部２３２は、マスタ情報テーブル２３１ａの情報（マスタ情報）を管理する。例えば、マスタ情報管理部２３２は、ＰａａＳ事業者が提供する課金アイテム（アプリケーションソフトウェアやＲＤＳへのログ記録サービスなど）の情報を取得し、その情報に基づいてマスタ情報をマスタ情報テーブル２３１ａに格納する（図６を参照）。
【００６４】
リクエスト情報管理部２３３は、ルータ２１３を介して行われるＨＴＴＰ通信を監視する。このとき、リクエスト情報管理部２３３は、マスタ情報テーブル２３１ａに登録されているＡＰＰアドレスを送信元とし、ＲＤＳアドレスを送信先とするＨＴＴＰリクエストと、そのＨＴＴＰリクエストに対するＨＴＴＰレスポンスとを監視する。
【００６５】
また、リクエスト情報管理部２３３は、監視しているＨＴＴＰリクエストから、ＧＵＩＤ、対象リソース、リクエスト種別を取得し、ＨＴＴＰレスポンスから操作日時、エンドポイントを取得し、取得した情報をリクエスト情報テーブル２３１ｂに記録する。
【００６６】
また、リクエスト情報管理部２３３は、リクエスト情報テーブル２３１ｂの情報（リクエスト情報）を分析し、アプリケーションソフトウェアの解約時に削除可能なデータの特定に有用な情報（残存データ情報）を残存データ管理テーブル２３１ｃに記録する。なお、残存データ情報の抽出方法については後述する。残存データ処理部２３４は、残存データ管理テーブル２３１ｃに基づいて、解約されたアプリケーションソフトウェアに関連する削除可能なデータを特定し、特定したデータをＲＤＳから削除する。
【００６７】
なお、残存データ処理部２３４は、特定したデータをＲＤＳから削除せず、特定したデータの情報をユーザ（端末装置１００）に通知してもよい。この場合、ユーザは、残存データ処理部２３４から通知された情報に基づいて、解約したアプリケーションソフトウェアに関連する削除可能なデータをＲＤＳから削除する。このように、削除可能なデータが明らかになれば、ユーザが不要なデータを自ら削除することも容易になる。
【００６８】
以上、データ管理部２１２の機能について説明した。
［２−４．処理の流れ］
次に、図９を参照しながら、データ管理部２１２が実行する処理の流れについて説明する。なお、図９は、第２実施形態に係るデータ管理部が実行する処理の流れを示した第１のフロー図である。
【００６９】
（Ｓ１０１）ユーザは、端末装置１００を介してクラウドサービス提供システム２００に課金の対象となるアプリケーションプログラムを配備する。例えば、端末装置１００は、配備するアプリケーションソフトウェアの開発・実行時に利用する課金サービスやリソース（例えば、ＲＤＳ）などの登録要求をＰａａＳシステム２１０に送信する。
【００７０】
（Ｓ１０２）マスタ情報管理部２３２は、配備されたアプリケーションソフトウェアとリソース（ＲＤＳ）をマスタ情報テーブル２３１ａに登録する。このとき、マスタ情報管理部２３２は、登録するアプリケーションソフトウェアのＧＵＩＤ、そのアプリケーションソフトウェアのＡＰＰアドレス、使用リソース（ＲＤＳ）の識別情報、及びＲＤＳアドレスをマスタ情報テーブル２３１ａに記録する（図６を参照）。
【００７１】
（Ｓ１０３）リクエスト情報管理部２３３は、ルータ２１３を介して行われるＨＴＴＰ通信を監視し、リクエスト情報をリクエスト情報テーブル２３１ｂに蓄積する。
例えば、リクエスト情報管理部２３３は、ＨＴＴＰリクエストの送信元ＩＰアドレス及び送信先ＩＰアドレスを取得する。そして、リクエスト情報管理部２３３は、送信元ＩＰアドレスがマスタ情報テーブル２３１ａに記録されているＡＰＰアドレスと一致し、送信先ＩＰアドレスがＲＤＳアドレスと一致するリクエスト情報を監視対象とする。つまり、リクエスト情報管理部２３３は、課金対象のアプリケーションソフトウェア及びその使用リソースに関係するＨＴＴＰ通信を監視対象とする。
【００７２】
また、リクエスト情報管理部２３３は、リクエスト情報として、監視対象のＨＴＴＰリクエストからアプリケーションソフトウェアのＧＵＩＤ、対象リソース、リクエスト種別を取得し、取得した情報をリクエスト情報テーブル２３１ｂに記録する（図７を参照）。また、リクエスト情報管理部２３３は、リクエスト情報として、監視対象のＨＴＴＰリクエストに対応するＨＴＴＰレスポンスから操作日時、エンドポイントを取得し、取得した情報をリクエスト情報テーブル２３１ｂに記録する（図７を参照）。
【００７３】
（Ｓ１０４）リクエスト情報管理部２３３は、残存データ管理テーブル２３１ｃを更新するか否かを判定する。例えば、リクエスト情報管理部２３３は、前回更新した時点から予め設定された期間（例えば、３分）が経過したとき、残存データ管理テーブル２３１ｃを更新する。残存データ管理テーブル２３１ｃを更新すると判定した場合、処理はＳ１０５へと進む。一方、残存データ管理テーブル２３１ｃを更新しないと判定した場合、処理はＳ１０６へと進む。
【００７４】
（Ｓ１０５）リクエスト情報管理部２３３は、残存データ管理テーブル２３１ｃの更新処理を実行する。
リクエスト情報管理部２３３は、リクエスト情報テーブル２３１ｂを参照し、エンドポイントにある対象データへの最新アクセス（ＤＥＬＥＴＥ以外のリクエスト）をアプリケーションソフトウェア毎に特定する。そして、リクエスト情報管理部２３３は、アクセスしたアプリケーションソフトウェアと、アクセス先の対象データに対応するエンドポイントとを関連付ける情報を残存データ管理テーブル２３１ｃに記録する（図８を参照）。
【００７５】
また、リクエスト情報管理部２３３は、リクエスト情報テーブル２３１ｂを参照し、削除された対象データ（ＤＥＬＥＴＥのリクエストがあった対象データ）に関する残存データ管理テーブル２３１ｃのレコードを削除する。また、リクエスト情報管理部２３３は、残存データ管理テーブル２３１ｃに記録済みの情報に関するリクエスト情報テーブル２３１ｂのレコードを削除し、リクエスト情報テーブル２３１ｂのレコードを整理する。
【００７６】
（Ｓ１０６）マスタ情報管理部２３２は、端末装置１００からアプリケーションソフトウェアの解約の要求を受けたか否かを判定する。アプリケーションソフトウェアの解約が要求された場合、処理はＳ１０７へと進む。一方、アプリケーションソフトウェアの解約が要求されていない場合、処理はＳ１０３へと進む。
【００７７】
（Ｓ１０７）残存データ処理部２３４は、残存データ管理テーブル２３１ｃを参照し、解約するアプリケーションソフトウェアに関連付けられているエンドポイントを特定する。また、残存データ処理部２３４は、特定したエンドポイントにある対象データを共有する他のアプリケーションソフトウェアがあるか否かを確認する。対象データの共有がない場合、残存データ処理部２３４は、その対象データをＲＤＳから削除する。なお、残存データ処理部２３４は、自ら対象データを削除せず、削除可能な対象データとして、その対象データの情報をユーザ（端末装置１００）に通知してもよい。
【００７８】
リクエスト情報管理部２３３は、解約するアプリケーションソフトウェアに関係する情報をリクエスト情報テーブル２３１ｂ及び残存データ管理テーブル２３１ｃから削除する。このとき、リクエスト情報管理部２３３は、対象データの共有状況を確認し、対象データの共有に関する残存データ管理テーブル２３１ｃの情報（図８を参照：データ共有あり／なし）を更新する。Ｓ１０７の処理が完了すると、図９に示した一連の処理は終了する。
【００７９】
ここで、図１０を参照しながら、Ｓ１０３の処理について、さらに説明する。なお、図１０は、第２実施形態に係るデータ管理部が実行する処理の流れを示した第２のフロー図である。
【００８０】
（Ｓ１３１）リクエスト情報管理部２３３は、ルータ２１３を介して行われるＨＴＴＰ通信を監視する。このとき、リクエスト情報管理部２３３は、ＨＴＴＰリクエストの送信元ＩＰアドレス（通信元）、及び送信先ＩＰアドレス（通信先）を取得する。
【００８１】
（Ｓ１３２）リクエスト情報管理部２３３は、マスタ情報テーブル２３１ａを参照し、通信元に一致するＡＰＰアドレスがあるか否かを判定する。通信元に一致するＡＰＰアドレスがある場合、処理はＳ１３３へと進む。一方、通信元に一致するＡＰＰアドレスがない場合、図１０に示した一連の処理は終了する。
【００８２】
（Ｓ１３３）リクエスト情報管理部２３３は、マスタ情報テーブル２３１ａを参照し、通信先に一致するＲＤＳアドレスがあるか否かを判定する。通信先に一致するＲＤＳアドレスがある場合、処理はＳ１３４へと進む。一方、通信先に一致するＲＤＳアドレスがない場合、図１０に示した一連の処理は終了する。なお、Ｓ１３２、Ｓ１３３の処理は順序を入れ替えてもよい。
【００８３】
（Ｓ１３４）リクエスト情報管理部２３３は、ＨＴＴＰリクエストに含まれるアプリケーションソフトウェアのＧＵＩＤ、リクエスト種別を取得し、そのＨＴＴＰリクエストに対応するＨＴＴＰレスポンスに含まれるエンドポイントを取得する。そして、リクエスト情報管理部２３３は、取得したＧＵＩＤ、エンドポイント、及びリクエスト種別の組み合わせに一致するリクエスト情報テーブル２３１ｂのレコードを検索する。
【００８４】
該当するレコードがある場合、処理はＳ１３５へと進む。一方、該当するレコードがない場合、処理はＳ１３６へと進む。
（Ｓ１３５）リクエスト情報管理部２３３は、該当するリクエスト情報テーブル２３１ｂのレコードを更新する。例えば、リクエスト情報管理部２３３は、該当するレコードの操作日時を更新する。Ｓ１３５の処理が完了すると、図１０に示した一連の処理は終了する。
【００８５】
（Ｓ１３６）リクエスト情報管理部２３３は、取得したＧＵＩＤ、リクエスト種別、対象リソース、エンドポイント、及び操作日時を関連付けるレコードをリクエスト情報テーブル２３１ｂに追加する。Ｓ１３６の処理が完了すると、図１０に示した一連の処理は終了する。
【００８６】
以上、Ｓ１０３の処理について、さらに説明した。
ここで、図１１及び図１２を参照しながら、Ｓ１０５の処理について、さらに説明する。なお、図１１は、第２実施形態に係るデータ管理部が実行する処理の流れを示した第３のフロー図である。図１２は、第２実施形態に係るデータ管理部が実行する処理の流れを示した第４のフロー図である。
【００８７】
（Ｓ１５１）リクエスト情報管理部２３３は、リクエスト情報テーブル２３１ｂを参照し、操作日時が最新のレコードからエンドポイント、リクエスト種別、及びＧＵＩＤを取得する。
【００８８】
（Ｓ１５２）リクエスト情報管理部２３３は、取得したリクエスト種別がＤＥＬＥＴＥ（対象データを削除するリクエスト）か否かを判定する。リクエスト種別がＤＥＬＥＴＥである場合、処理はＳ１５３へと進む。一方、リクエスト種別がＤＥＬＥＴＥでない場合、処理はＳ１５４へと進む。
【００８９】
（Ｓ１５３）リクエスト情報管理部２３３は、取得したエンドポイントに対応する残存データ管理テーブル２３１ｃのレコードを削除する。つまり、最新の操作がＤＥＬＥＴＥであり、対象データがＲＤＳから既に削除されているため、リクエスト情報管理部２３３は、削除された対象データに関する情報を残存データ管理テーブル２３１ｃから削除する。Ｓ１５３の処理が完了すると、処理はＳ１５８へと進む。
【００９０】
（Ｓ１５４）リクエスト情報管理部２３３は、取得したエンドポイントに対応するレコード（該当レコード）が残存データ管理テーブル２３１ｃにあるか否かを判定する。該当レコードが残存データ管理テーブル２３１ｃにある場合、処理はＳ１５５へと進む。一方、該当レコードが残存データ管理テーブル２３１ｃにない場合、処理は図１２のＳ１６０へと進む。
【００９１】
（Ｓ１５５）リクエスト情報管理部２３３は、取得したエンドポイントなどに関連付けてリクエスト情報テーブル２３１ｂに記録されている操作日時で、残存データ管理テーブル２３１ｃの該当レコードに含まれる最終操作日時を更新する。
【００９２】
（Ｓ１５６）リクエスト情報管理部２３３は、最終操作日時を更新した残存データ管理テーブル２３１ｃの該当レコードのうち、取得したＧＵＩＤを含む該当レコードがあるか否かを判定する。取得したＧＵＩＤを含む該当レコードがある場合、処理はＳ１５８へと進む。一方、取得したＧＵＩＤを含む該当レコードがない場合、処理はＳ１５７へと進む。
【００９３】
（Ｓ１５７）リクエスト情報管理部２３３は、取得したＧＵＩＤを含むレコードを残存データ管理テーブル２３１ｃに追加する。つまり、リクエスト情報管理部２３３は、取得したエンドポイントに対応する既存のレコードに、取得したＧＵＩＤの情報を追加する（例えば、図８のＲＤＳ＃１に対応するレコードを参照）。このとき、リクエスト情報管理部２３３は、追加したレコードのデータ共有を「あり」に設定する。
【００９４】
Ｓ１５７の処理は、取得したエンドポイントに対応するレコードが残存データ管理テーブル２３１ｃにあり（Ｓ１５４を参照）、取得したＧＵＩＤを含む該当レコードがない（Ｓ１５６を参照）場合に実行される。つまり、Ｓ１５７の処理は、取得したエンドポイントが他のアプリケーションソフトウェアのＧＵＩＤに既に関連付けられている場合に実行される。取得したＧＵＩＤのアプリケーションソフトウェアが同じエンドポイントにある対象データを利用するため、その対象データは複数のアプリケーションソフトウェアで共有されている。そのため、上記のように、データ共有が「あり」に設定される。
【００９５】
（Ｓ１５８）リクエスト情報管理部２３３は、分析済み（エンドポイントとＧＵＩＤが同じ）レコードをリクエスト情報テーブル２３１ｂから削除する。
リクエスト情報テーブル２３１ｂ及び残存データ管理テーブル２３１ｃを設ける理由は、アプリケーションソフトウェアと、エンドポイントにある対象データとを関連付ける点にある。そのため、残存データ管理テーブル２３１ｃに関連付けの情報（エンドポイントとＧＵＩＤの対応関係）が格納された場合、その情報を抽出する際に用いた古いリクエスト情報は不要になる。そのため、リクエスト情報管理部２３３は、分析済みのレコードをリクエスト情報テーブル２３１ｂから削除し、記憶容量を節約する。
【００９６】
（Ｓ１５９）リクエスト情報管理部２３３は、リクエスト情報テーブル２３１ｂにある全てのレコードを分析したか否かを判定する。全てのレコードを分析した場合、図１１及び図１２に示した一連の処理は終了する。一方、未分析のレコードがある場合、処理はＳ１５１へと進む。
【００９７】
（Ｓ１６０）リクエスト情報管理部２３３は、取得したエンドポイント、ＧＵＩＤに対応するレコードを残存データ管理テーブル２３１ｃに追加する。このとき、リクエスト情報管理部２３３は、追加したレコードのデータ共有を「なし」に設定する。
【００９８】
Ｓ１６０の処理は、取得したエンドポイントに対応するレコードが残存データ管理テーブル２３１ｃにない（Ｓ１５４を参照）場合に実行される。つまり、Ｓ１６０の処理は、取得したエンドポイントが他のアプリケーションソフトウェアのＧＵＩＤに既に関連付けられていない場合に実行される。取得したＧＵＩＤのアプリケーションソフトウェアしか対象データを利用していないため、上記のように、データ共有が「なし」に設定される。
【００９９】
（Ｓ１６１）リクエスト情報管理部２３３は、分析済み（エンドポイントとＧＵＩＤが同じ）レコードをリクエスト情報テーブル２３１ｂから削除する。Ｓ１６１の処理が完了すると、処理は図１１のＳ１５９へと進む。
【０１００】
以上、Ｓ１０５の処理について、さらに説明した。
ここで、図１３及び図１４を参照しながら、Ｓ１０７の処理について、さらに説明する。なお、図１３は、第２実施形態に係るデータ管理部が実行する処理の流れを示した第５のフロー図である。図１４は、第２実施形態に係るデータ管理部が実行する処理の流れを示した第６のフロー図である。
【０１０１】
（Ｓ１７１）残存データ処理部２３４は、解約対象のアプリケーションソフトウェアのＧＵＩＤで残存データ管理テーブル２３１ｃのレコードを探索する。
（Ｓ１７２）残存データ処理部２３４は、解約対象のアプリケーションソフトウェアに関連する対象データ（残存データ）があるか否かを判定する。例えば、残存データ処理部２３４は、Ｓ１７１で残存データ管理テーブル２３１ｃから検出されたレコードの数（検出レコード数）が１以上であるか否かを判定する。検出レコード数が１以上の場合（残存データがある場合）、処理はＳ１７３へと進む。一方、検出レコード数が０の場合（残存データがない場合）、処理はＳ１７８へと進む。
【０１０２】
（Ｓ１７３）残存データ処理部２３４は、残存データを１つ選択する。
（Ｓ１７４）残存データ処理部２３４は、残存データ管理テーブル２３１ｃを参照し、選択した残存データは「データ共有あり」か否かを判定する。残存データが「データ共有あり」の場合、処理はＳ１７６へと進む。一方、残存データが「データ共有なし」の場合、処理はＳ１７５へと進む。
【０１０３】
（Ｓ１７５）残存データ処理部２３４は、選択した残存データを削除可能と判定する。つまり、解約対象のアプリケーションソフトウェアの他に、他のアプリケーションソフトウェアが残存データに関連していない場合、その残存データは削除対象とされる。Ｓ１７５の処理が完了すると、処理はＳ１７７へと進む。
【０１０４】
（Ｓ１７６）残存データ処理部２３４は、選択した残存データを削除不可と判定する。つまり、解約対象のアプリケーションソフトウェアの他に、他のアプリケーションソフトウェアが残存データに関連している場合、その残存データは削除対象から外される。
【０１０５】
（Ｓ１７７）残存データ処理部２３４は、全ての残存データについて削除の可否を判定したか否かを判定する。全ての残存データの判定がされた場合、処理はＳ１７８へと進む。一方、未判定の残存データがある場合、処理はＳ１７３へと進む。
【０１０６】
（Ｓ１７８）残存データ処理部２３４は、削除可能と判定した残存データをＲＤＳから削除する。また、リクエスト情報管理部２３３は、削除可能と判定された残存データに対応する残存データ管理テーブル２３１ｃのレコードを削除する。なお、残存データ処理部２３４は、ＲＤＳから残存データを削除する代わりに、削除可能と判定した残存データの情報をユーザ（端末装置１００）に通知し、ユーザに残存データの削除処理を依頼してもよい。Ｓ１７８の処理が完了すると、処理は図１４のＳ１７９へと進む。
【０１０７】
（Ｓ１７９）リクエスト情報管理部２３３は、残存データ処理部２３４により削除不可と判定された残存データを１つ選択する。
（Ｓ１８０）リクエスト情報管理部２３３は、残存データ管理テーブル２３１ｃを参照し、選択した残存データの共有数が３以上であるか否かを判定する。つまり、リクエスト情報管理部２３３は、解約対象のアプリケーションソフトウェアと残存データとの関連がなくなった後、残存データに関連するアプリケーションソフトウェアの数が２以上になるか否かを確認する。共有数が３以上である場合、処理はＳ１８２へと進む。一方、共有数が３以上でない場合、処理はＳ１８１へと進む。
【０１０８】
（Ｓ１８１）リクエスト情報管理部２３３は、選択した残存データに対応する残存データ管理テーブル２３１ｃのレコード（該当レコード）を「データ共有なし」に設定する。
（Ｓ１８２）リクエスト情報管理部２３３は、解約対象のアプリケーションソフトウェアのＧＵＩＤを残存データ管理テーブル２３１ｃの該当レコード（残存データに対応するレコード）から削除する。
【０１０９】
（Ｓ１８３）リクエスト情報管理部２３３は、削除不可の残存データを全て選択したか否かを判定する。削除不可の残存データを全て選択した場合、処理はＳ１８４へと進む。一方、未選択の削除不可の残存データがある場合、処理はＳ１７９へと進む。
【０１１０】
（Ｓ１８４）リクエスト情報管理部２３３は、解約対象のアプリケーションソフトウェアのＧＵＩＤに対応するリクエスト情報テーブル２３１ｂのレコードを削除する。Ｓ１８４の処理が完了すると、図１３及び図１４に示した一連の処理は終了する。
【０１１１】
以上、Ｓ１０７の処理について、さらに説明した。
以上、データ管理部２１２が実行する処理の流れについて説明した。
＜３．変形例：サービス経由でデータにアクセスする場合＞
ここで、第２実施形態の一変形例について述べる。これまではアプリケーションソフトウェアがＲＤＳに直接アクセスする例について説明してきたが、この変形例では、アプリケーションソフトウェアがサービス経由でＲＤＳにアクセスする場合について説明する。
【０１１２】
［３−１．マスタ情報テーブル］
アプリケーションソフトウェアがサービス経由でＲＤＳにアクセスする場合、図１５に示すようにマスタ情報テーブル２３１ａを変形すれば、上述した第２実施形態の技術を適用することができる。なお、図１５は、第２実施形態の一変形例に係るマスタ情報テーブルの一例を示した図である。
【０１１３】
図１５に示すように、変形例に係るマスタ情報テーブル２３１ａには、アプリケーションソフトウェアのＧＵＩＤ（ＡＰＰ＃１、＃２、＃３）に加え、サービスのＧＵＩＤ（ＳＲＶ＃１、＃２）が登録される。また、サービスに関するマスタ情報テーブル２３１ａのレコードには、データ共有の有無及びサービス使用ＡＰＰ（ＲＤＳへのアクセスにサービスを使用するアプリケーションソフトウェア）の情報が登録される。例えば、ＡＰＰ＃１、ＡＰＰ＃２がＲＤＳ＃１へのアクセスにＳＲＶ＃１を使用する場合、ＳＲＶ＃１について「データ共有あり」となる。
【０１１４】
［３−２．処理の流れ］
マスタ情報テーブル２３１ａに対する変形に加え、上述したデータ管理部２１２が実行する処理の流れのうち、Ｓ１０２、Ｓ１０７の処理が変形される。
【０１１５】
まず、図１６を参照しながら、変形後のＳ１０２の処理について説明する。なお、図１６は、第２実施形態の一変形例に係るデータ管理部が実行する処理の流れを示した第１のフロー図である。
【０１１６】
（Ｓ２０１）マスタ情報管理部２３２は、配備されたアプリケーションソフトウェアとリソース（ＲＤＳ）をマスタ情報テーブル２３１ａに登録する。このとき、マスタ情報管理部２３２は、登録するアプリケーションソフトウェアのＧＵＩＤ、そのアプリケーションソフトウェアのＡＰＰアドレス、使用リソース（ＲＤＳ）の識別情報、ＲＤＳアドレスをマスタ情報テーブル２３１ａに記録する（図１５を参照）。
【０１１７】
また、マスタ情報管理部２３２は、データのライフサイクル期間（例えば、１ヶ月）を設定する。データのライフサイクル期間は、例えば、使用リソース（ＲＤＳ）の課金スパンに基づいて設定される。なお、このライフサイクル期間は、データが最後に更新されてから経過した時間と比較され、データの削除が可能か否かを判定する際に利用される。
【０１１８】
（Ｓ２０２）マスタ情報管理部２３２は、配備されたアプリケーションソフトウェアが利用するサービス（該当サービス）がマスタ情報テーブル２３１ａに登録済みか否かを判定する。該当サービスがマスタ情報テーブル２３１ａに登録済みの場合、処理はＳ２０４へと進む。一方、該当サービスがマスタ情報テーブル２３１ａに登録されていない場合、処理はＳ２０３へと進む。
【０１１９】
（Ｓ２０３）マスタ情報管理部２３２は、該当サービスをマスタ情報テーブル２３１ａに登録する。このとき、マスタ情報管理部２３２は、該当サービスのＧＵＩＤ、該当サービスを示すＩＰアドレス（ＳＲＶアドレス）、該当サービスがアクセスする使用リソース（ＲＤＳ）、使用リソースのＲＤＳアドレスをマスタ情報テーブル２３１ａに登録する。また、マスタ情報管理部２３２は、サービス使用ＡＰＰの欄に、配備されたアプリケーションソフトウェアを追加し、「データ共有なし」に設定する。Ｓ２０３の処理が完了すると、図１６に示した一連の処理は終了する。
【０１２０】
（Ｓ２０４）マスタ情報管理部２３２は、マスタ情報テーブル２３１ａを参照し、該当サービスを使用する他のアプリケーションソフトウェアがあるか否かを判定する。該当サービスを使用する他のアプリケーションソフトウェアがある場合、処理はＳ２０５へと進む。一方、該当サービスを使用する他のアプリケーションソフトウェアがない場合、処理はＳ２０６へと進む。
【０１２１】
（Ｓ２０５）マスタ情報管理部２３２は、該当サービスに対応するマスタ情報テーブル２３１ａのレコードを「データ共有あり」に設定する。つまり、配備されたアプリケーションソフトウェアと、他のアプリケーションソフトウェアとで該当サービスを共有することになるため、該当サービスを介してアクセスされるＲＤＳのデータが両ソフトウェアで共有されている可能性がある。そのため、該当サービスは「データ共有あり」に設定される。
【０１２２】
（Ｓ２０６）マスタ情報管理部２３２は、マスタ情報テーブル２３１ａの該当サービスに対応するサービス使用ＡＰＰに、配備されたアプリケーションソフトウェアを追加し、サービス使用ＡＰＰの内容を更新する。Ｓ２０６の処理が完了すると、図１６に示した一連の処理は終了する。
【０１２３】
以上、変形後のＳ１０２の処理について説明した。
次に、図１７〜図１９を参照しながら、変形後のＳ１０７の処理について説明する。なお、図１７は、第２実施形態の一変形例に係るデータ管理部が実行する処理の流れを示した第２のフロー図である。図１８は、第２実施形態の一変形例に係るデータ管理部が実行する処理の流れを示した第３のフロー図である。図１９は、第２実施形態の一変形例に係るデータ管理部が実行する処理の流れを示した第４のフロー図である。
【０１２４】
（Ｓ２１１）残存データ処理部２３４は、解約対象のアプリケーションソフトウェアのＧＵＩＤで残存データ管理テーブル２３１ｃのレコードを探索する。
（Ｓ２１２）残存データ処理部２３４は、解約対象のアプリケーションソフトウェアに関連する対象データ（残存データ）があるか否かを判定する。例えば、残存データ処理部２３４は、Ｓ２１１で残存データ管理テーブル２３１ｃから検出されたレコードの数（検出レコード数）が１以上であるか否かを判定する。検出レコード数が１以上の場合（残存データがある場合）、処理はＳ２１３へと進む。一方、検出レコード数が０の場合（残存データがない場合）、処理はＳ２２０へと進む。
【０１２５】
（Ｓ２１３）残存データ処理部２３４は、残存データを１つ選択する。
（Ｓ２１４）残存データ処理部２３４は、残存データ管理テーブル２３１ｃを参照し、選択した残存データは「データ共有あり」か否かを判定する。残存データが「データ共有あり」の場合、処理はＳ２１８へと進む。一方、残存データが「データ共有なし」の場合、処理はＳ２１５へと進む。
【０１２６】
（Ｓ２１５）残存データ処理部２３４は、マスタ情報テーブル２３１ａを参照し、解約対象のアプリケーションソフトウェアが利用するサービス（該当サービス）が「データ共有あり」か否かを判定する。該当サービスが「データ共有あり」の場合、処理はＳ２１６へと進む。一方、該当サービスが「データ共有なし」の場合、処理はＳ２１７へと進む。
【０１２７】
（Ｓ２１６）残存データ処理部２３４は、選択した残存データがライフサイクル期間を過ぎているか否かを判定する。例えば、残存データ処理部２３４は、残存データ管理テーブル２３１ｃを参照し、最終操作日時と現在の日時との差を計算し、その差がライフサイクル期間より大きい場合に、選択した残存データがライフサイクル期間を過ぎていると判定する。選択した残存データがライフサイクル期間を過ぎている場合、処理はＳ２１７へと進む。一方、選択した残存データがライフサイクル期間を過ぎていない場合、処理はＳ２１８へと進む。
【０１２８】
（Ｓ２１７）残存データ処理部２３４は、選択した残存データを削除可能と判定する。
つまり、次のいずれかの条件を満たす場合に残存データは削除可能と判定される。第１の条件は、解約対象のアプリケーションソフトウェアの他に、他のアプリケーションソフトウェアが残存データに関連しておらず、該当サービスも共有しない場合である。第２の条件は、解約対象のアプリケーションソフトウェアの他に、他のアプリケーションソフトウェアが残存データに関連しておらず、該当サービスの共有はあるが、残存データのライフサイクル期間が経過している場合である。Ｓ２１７の処理が完了すると、処理はＳ２１９へと進む。
【０１２９】
（Ｓ２１８）残存データ処理部２３４は、選択した残存データを削除不可と判定する。
つまり、次のいずれかの条件を満たす場合に残存データは削除不可と判定される。第１の条件は、解約対象のアプリケーションソフトウェアの他に、他のアプリケーションソフトウェアが残存データに関連している場合である。第２の条件は、解約対象のアプリケーションソフトウェアの他に、他のアプリケーションソフトウェアが残存データに関連していないが、該当サービスの共有があり、残存データのライフサイクル期間が経過していない場合である。
【０１３０】
（Ｓ２１９）残存データ処理部２３４は、全ての残存データについて削除の可否を判定したか否かを判定する。全ての残存データの判定がされた場合、処理はＳ２２０へと進む。一方、未判定の残存データがある場合、処理はＳ２１３へと進む。
【０１３１】
（Ｓ２２０）残存データ処理部２３４は、削除可能と判定した残存データをＲＤＳから削除する。また、リクエスト情報管理部２３３は、削除可能と判定された残存データに対応する残存データ管理テーブル２３１ｃのレコードを削除する。なお、残存データ処理部２３４は、ＲＤＳから残存データを削除する代わりに、削除可能と判定した残存データの情報をユーザ（端末装置１００）に通知し、ユーザに残存データの削除処理を依頼してもよい。Ｓ２２０の処理が完了すると、処理は図１８のＳ２２１へと進む。
【０１３２】
（Ｓ２２１）リクエスト情報管理部２３３は、残存データ処理部２３４により削除不可と判定された残存データを１つ選択する。
（Ｓ２２２）リクエスト情報管理部２３３は、残存データ管理テーブル２３１ｃを参照し、選択した残存データの共有数が３以上であるか否かを判定する。つまり、リクエスト情報管理部２３３は、解約対象のアプリケーションソフトウェアと残存データとの関連がなくなった後、残存データに関連するアプリケーションソフトウェアの数が２以上になるか否かを確認する。共有数が３以上である場合、処理はＳ２２４へと進む。一方、共有数が３以上でない場合、処理はＳ２２３へと進む。
【０１３３】
（Ｓ２２３）リクエスト情報管理部２３３は、選択した残存データに対応する残存データ管理テーブル２３１ｃのレコード（該当レコード）を「データ共有なし」に設定する。
（Ｓ２２４）リクエスト情報管理部２３３は、解約対象のアプリケーションソフトウェアのＧＵＩＤを残存データ管理テーブル２３１ｃの該当レコード（残存データに対応するレコード）から削除する。
【０１３４】
（Ｓ２２５）リクエスト情報管理部２３３は、削除不可の残存データを全て選択したか否かを判定する。削除不可の残存データを全て選択した場合、処理はＳ２２６へと進む。一方、未選択の削除不可の残存データがある場合、処理はＳ２２１へと進む。
【０１３５】
（Ｓ２２６）リクエスト情報管理部２３３は、解約対象のアプリケーションソフトウェアのＧＵＩＤに対応するリクエスト情報テーブル２３１ｂのレコードを削除する。
（Ｓ２２７）マスタ情報管理部２３２は、マスタ情報テーブル２３１ａを参照し、解約対象のアプリケーションソフトウェアが利用するサービス（該当サービス）は「データ共有あり」か否かを判定する。該当サービスが「データ共有あり」の場合、処理はＳ２２８へと進む。一方、該当サービスが「データ共有なし」の場合、処理は図１９のＳ２３１へと進む。
【０１３６】
（Ｓ２２８）マスタ情報管理部２３２は、マスタ情報テーブル２３１ａを参照し、該当サービスのサービス使用ＡＰＰ（該当サービスを使用するアプリケーションソフトウェア）が２つか否かを判定する。該当サービスのサービス使用ＡＰＰが２つの場合、処理は図１９のＳ２２９へと進む。一方、該当サービスのサービス使用ＡＰＰが２つでない場合、処理は図１９のＳ２３０へと進む。
【０１３７】
（Ｓ２２９）マスタ情報管理部２３２は、該当サービスを「データ共有なし」に設定し、該当サービスに対応するマスタ情報テーブル２３１ａのレコードを更新する。
（Ｓ２３０）マスタ情報管理部２３２は、解約対象のアプリケーションソフトウェアのＧＵＩＤを該当サービスのサービス利用ＡＰＰから削除し、マスタ情報テーブル２３１ａを更新する。Ｓ２３０の処理が完了すると、図１７〜図１９に示した一連の処理は終了する。
【０１３８】
（Ｓ２３１）マスタ情報管理部２３２は、マスタ情報テーブル２３１ａに含まれる該当サービスのレコードを削除する。Ｓ２３１の処理が完了すると、図１７〜図１９に示した一連の処理は終了する。
【０１３９】
以上、変形後のＳ１０７の処理について説明した。
以上、第２実施形態の一変形例について説明した。
［３−３．その他］
リソースに対する課金の方法には、オブジェクトストレージのような従量課金や、月額課金の容量貸しのような方法がある。例えば、月額の容量貸しの場合、残存データを正確に削除できた結果、レンタルの容量を縮小させても問題なさそうであれば、自動的に容量を下げるように更新する処理をデータ管理部２１２が実行するようにしてもよい。
【０１４０】
また、月額の利用料を削減する方法として、例えば、次のような方法がある。まず、データ管理部２１２は、（１）容量が小さいストレージ／インスタンスを作成し、（２）利用中のインスタンスのデータをバックアップ／エクスポートし、（３）新しいインスタンスに上記（２）のデータをリストア／インポートする。そして、データ管理部２１２は、（４）アプリの接続先インスタンスを（３）のインスタンスに変更し、（５）利用しなくなったストレージ／インスタンスを削除する。このような方法を適用することで、月額の利用料を削減することができる。
【０１４１】
上記のような応用例についても第２実施形態の技術的範囲に属する。
以上、第２実施形態について説明した。
【符号の説明】
【０１４２】
１０  端末装置
２０  実行環境提供システム
２１  第１の処理プログラム
２２  第２の処理プログラム
３０  データ管理装置
３１  記憶部
３１ａ  管理情報
３２  制御部
４０  ストレージシステム
４１、４２  データ
【図１】
0006674092.tif 000002
【図２】
0006674092.tif 000003
【図３】
0006674092.tif 000004
【図４】
0006674092.tif 000005
【図５】
0006674092.tif 000006
【図６】
0006674092.tif 000007
【図７】
0006674092.tif 000008
【図８】
0006674092.tif 000009
【図９】
0006674092.tif 000010
【図１０】
0006674092.tif 000011
【図１１】
0006674092.tif 000012
【図１２】
0006674092.tif 000013
【図１３】
0006674092.tif 000014
【図１４】
0006674092.tif 000015
【図１５】
0006674092.tif 000016
【図１６】
0006674092.tif 000017
【図１７】
0006674092.tif 000018
【図１８】
0006674092.tif 000019
【図１９】
0006674092.tif 000020