JP2018097822A - プログラム、システム、およびシステムの制御方法 - Google Patents
プログラム、システム、およびシステムの制御方法 Download PDFInfo
- Publication number
- JP2018097822A JP2018097822A JP2016244917A JP2016244917A JP2018097822A JP 2018097822 A JP2018097822 A JP 2018097822A JP 2016244917 A JP2016244917 A JP 2016244917A JP 2016244917 A JP2016244917 A JP 2016244917A JP 2018097822 A JP2018097822 A JP 2018097822A
- Authority
- JP
- Japan
- Prior art keywords
- file
- code
- data processing
- execution
- executed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】イベント駆動型コンピューティングサービスにおいてプログラムコードによる処理が失敗したファイルを特定し、リカバリ処理を可能とするプログラムを提供する。【解決手段】データ処理のコードを実行する実行サービスにおいて実行される監視用のコードを含むプログラムであって、前記データ処理の対象であって該データ処理が完了していないファイルを特定するファイル情報を取得する取得工程と、前記ファイルのアップロード先として発行されたファイルパスの有効期限が経過したか判定する第1判定工程と、前記データ処理のコードを実行する際に記録される前記ファイルに係るログの有無を判定する第2判定工程と、前記有効期限を経過し、かつ前記ログが無いと判定されたファイルを、前記データ処理が失敗したファイルとして特定する特定工程と、をコンピュータに実行させるための監視用のコードを含む。【選択図】図12
Description
本発明は、プログラム、システム、およびシステムの制御方法に関する。
近年、各種のクラウドコンピューティングサービスが存在している。クラウドコンピューティングサービスの代表的な例としては、Amazon Web Service(「AWS」)、Google Cloud Platform、及びMicrosoft Azure(登録商標)が挙げられる。
これらのサービスは、仮想マシンやストレージ等のコンピューティングリソースを、使用した性能や容量に応じて時間単位で課金する形態でサービス提供する。サービスの利用者は、これらのサービスを利用することで自ら物理的な設備を用意しなくても、Webシステム等の情報処理システムを低コストで柔軟に構築することが可能となる。
特許文献1は、データ更新をトリガとしてスクリプトが起動されるイベントドリブン型によるスクリプト起動を行うアプリケーション連携システムを開示している。クラウドコンピューティングサービスにおいても、特定のコンピューティングリソースに対して発生したイベントに応じて、軽量な処理を実行するサービスが提供されている。以下、このようなサービスをイベント駆動型コンピューティングサービスと呼ぶ。イベント駆動型コンピューティングサービスの代表的な例としては、AWS Lambda、Cloud Functions、およびAzure Functionsが挙げられる。
これらのサービスでは、クラウドコンピューティングサービスに対して所望の処理を実現するためのプログラムコードを、該プログラムコードを実行する仮想マシンのCPUやメモリ等のスペックを指定して事前に登録する。そして、登録したプログラムコードは、コンピューティングリソースと該コンピューティングリソースに対して発生する特定のイベントとに関連付けられる。
しかしながら、イベント駆動型コンピューティングサービスでは、イベントが発生した場合であっても、該イベントに関連付けられたプログラムコードが実行されない場合がある。具体的には、プログラムコードを実行する仮想マシンがイベントを検知(受信)できず、所望の処理が実行されない場合がある。
プログラムコードが実行されない場合、アプリケーションのログが残らず、また、クラウドコンピューティングサービスの1つであるモニタリングサービス等を利用していた場合であっても、プログラムコードが実行されない場合は、同様にログが残らない。このため、システム運用者は上述したエラーに気付くことができない。
本発明は、イベント駆動型コンピューティングサービスにおいてプログラムコードによる処理が失敗したファイルを特定し、リカバリ処理を可能とするプログラムを提供することを目的とする。
本発明の一実施形態のプログラムは、データ処理のコードを実行する実行サービスにおいて実行される監視用のコードを含むプログラムであって、前記データ処理の対象であって該データ処理が完了していないファイルを特定するファイル情報を取得する取得工程と、前記ファイルのアップロード先として発行されたファイルパスの有効期限が経過したか判定する第1判定工程と、前記データ処理のコードを実行する際に記録される前記ファイルに係るログの有無を判定する第2判定工程と、前記有効期限を経過し、かつ前記ログが無いと判定されたファイルを、前記データ処理が失敗したファイルとして特定する特定工程と、をコンピュータに実行させる。
本発明のプログラムによれば、イベント駆動型コンピューティングサービスにおいてプログラムコードによる処理が失敗したファイルを特定し、リカバリ処理を可能とする。
以下、本発明を実施するための形態について図面などを参照して説明する。
(第1実施形態)
図1は、本発明におけるシステムの構成例を示す図である。
本発明におけるシステムは、ネットワーク100を介して接続されるクライアント装置101、ファイルサーバ102、ファイル情報管理サーバ103、イベント情報管理サーバ104、および実行結果管理サーバ105から構成される。
図1は、本発明におけるシステムの構成例を示す図である。
本発明におけるシステムは、ネットワーク100を介して接続されるクライアント装置101、ファイルサーバ102、ファイル情報管理サーバ103、イベント情報管理サーバ104、および実行結果管理サーバ105から構成される。
ネットワーク100は、各装置間で通信を行うための基盤であって、イントラネット、インターネット、またはその他のネットワークシステムであっても構わない。なお、本実施形態では、クライアント装置101とその他の装置との間は、インターネットによって接続されるものとして説明する。
クライアント装置101は、図1に示すブロック図の各構成要素のうち、ネットワーク100を介してファイルサーバ102、ファイル情報管理サーバ103と相互に接続する。本実施例では、クライアント装置101は、例えば、パーソナルコンピュータ(PC)とする。なお、クライアント装置101は、PCに限らず、ネットワーク100に接続された各種デバイスやコンピュータ端末、モバイル端末等、ネットワーク100を介した通信機能を有する端末であれば種別は問わない。
ファイルサーバ102は、クライアント装置101から送信されるファイルの実体を受信し、保存するストレージサービスとして機能する。ファイルサーバ102は、クライアント装置101から送信される様々なフォーマットのファイルを保存する。ファイル情報管理サーバ103は、ファイルサーバ102上に保存されるファイルのファイル情報を管理する。
ファイル情報とは、例えば、ファイルサーバ102上のファイルの実体の保存場所情報(URL等)や、クライアント装置101から該保存場所へのファイルアップロードの有効期限等を含むファイル格納情報である。また、ファイル情報は、該ファイルに対するデータ処理の結果、抽出された属性情報等を含む。
イベント情報管理サーバ104は、イベント駆動型コンピューティングサービスにおけるプログラムコードの管理および実行を行う実行サービスとして機能する。イベント駆動型コンピューティングサービスの利用者は、事前にイベント情報管理サーバ104にプログラムコードとそれを実行するトリガとなるファイルサーバ102上で発生するイベントとを関連付けて登録する。
イベントとは、ファイルサーバ102で保存されるファイルに対してクライアント装置101、または図1に示したその他の装置が行う操作を指す。具体的には、「ファイルサーバ102の所定のパスへのファイルのアップロード」や「ファイルサーバ102の所定のパスに保存されるファイルの更新」等の操作のことである。また、プログラムコードは、実行する仮想マシン環境の設定情報とも関連付けて登録される。仮想マシン環境の設定情報とは、具体的には、仮想マシンで稼働するCPUやRAMの性能情報のことである。
このように、利用者が指定したプログラムコード、イベント、および該プログラムコードを実行する仮想マシン環境の設定情報を関連付けて登録しておく。これにより、イベント情報管理サーバ104は、ファイルサーバ102でイベントが発生したことに応じてファイルサーバ102で実行される処理とは非同期に所定のプログラムコードを実行する。以下、イベント情報管理サーバ104が、ファイルサーバ102で発生するイベントに応じて実行するプログラムコードを非同期処理コードと呼称する。
実行結果管理サーバ105は、イベント情報管理サーバ104から送信される非同期処理コードのログファイルを保存するデータベースサービスとして機能する。実行結果管理サーバ105は、ファイルサーバ102に保存されるファイルの保存場所(ファイルパス)と、該ファイルを特定する情報と、該ファイルに対して非同期処理コードによるデータ処理が実行される際に記録されるログファイルとを関連付けて管理する。
なお、図1に示したファイルサーバ102、ファイル情報管理サーバ103、イベント情報管理サーバ104、および実行結果管理サーバ105は、クラウドコンピューティングサービスとして提供されるものである。これら各装置は、図3に示す情報処理装置305の各ハードウェア要素が仮想マシンソフトウェアによって、アプリケーションソフトウェアとしてそれぞれ実現され、物理ハードウェア要素と同様の挙動をとるものとする。
各装置は、クラウドコンピューティングサービス側が管理するデータセンターのハードウェア資源上に構築される。なお、情報処理装置305は、1台の情報処理装置として示されているが1台以上の情報処理装置で構成されてもよい。また、本発明におけるシステムは、例えば、仮想マシンやストレージ等のクラウドコンピューティングサービスが提供するコンピューティングリソースや各アプリケーションのモニタリングを実行するサーバ装置を有していてもよい。
該モニタリングサービスを提供する装置も、クラウドコンピューティングサービス側が管理するデータセンターのハードウェア資源上に構築される。モニタリングサービスの代表的な例としては、AWS CloudWatch等が挙げられる。
図2は、クライアント装置101のハードウェア構成例を示す図である。
システムバス200は、クライアント装置101を構成する各ハードウェアを相互に接続するバスである。本実施形態においては、特に言及しない限り、システムバス200は、CPU201からの制御命令をシステムバス200に接続された各ハードウェアに伝播させるものとする。
システムバス200は、クライアント装置101を構成する各ハードウェアを相互に接続するバスである。本実施形態においては、特に言及しない限り、システムバス200は、CPU201からの制御命令をシステムバス200に接続された各ハードウェアに伝播させるものとする。
CPU201は、RAM202および記憶装置203から読み込んだプログラムを実行し、本発明を実現するためにシステムバス200で接続されたクライアント装置101の各ハードウェアを直接的あるいは間接的に制御する。RAM202は、CPU201が動作するためのワーク領域として利用される一時メモリ領域である。記憶装置203は、基本ソフトウェアであるOSやその他ソフトウェアモジュールが記憶されているHDDに代表されるような外部記憶装置である。
ネットワーク装置204は、ネットワーク100に接続して他の装置と通信を行うハードウェアである。入出力インタフェース205は、入出力装置206と接続するためのインタフェースである。入出力インタフェース205は、例えば、PS2やUniversal Serial Bus(USB)、アナログやデジタルのディスプレイインタフェースを備える。
入出力装置206は、入出力インタフェース205を介してクライアント装置と接続し、情報のインプットおよびアウトプットを行う装置である。入出力装置206は、例えば、ディスプレイ、キーボード、またはマウスなどである。
図3は、図1に示す各装置を実現する仮想マシンソフトウェアを実行する情報処理装置のハードウェア構成例を示すブロック図である。
仮想マシンソフトウェアを実行する情報処理装置305は、例えば、データセンターに設置されている。
仮想マシンソフトウェアを実行する情報処理装置305は、例えば、データセンターに設置されている。
システムバス300は、ファイルサーバ102、ファイル情報管理サーバ103、イベント情報管理サーバ104、及び実行結果管理サーバ105等の論理サーバを構成する各ハードウェアを相互に接続するバスである。本実施形態においては、特に言及しない限り、システムバス300は、CPU301からの制御命令を、システムバス300に接続された各ハードウェアに伝播させるものとする。
CPU301は、RAM302および記憶装置303から読み込んだプログラムを実行し、システムバス300で接続された情報処理装置305の各ハードウェアを直接的あるいは間接的に制御する。RAM302は、CPU301が動作するためのワーク領域として利用される一時メモリ領域である。記憶装置303は、基本ソフトウェアであるOSやその他ソフトウェアモジュールが記憶されているHDDに代表されるような外部記憶装置である。
ネットワーク装置304は、ネットワーク100に接続して他の装置と通信を行うハードウェアである。なお、図1に示す各装置は、仮想マシンソフトウェアによって提供されるハードウェアではなく、図3で示した情報処理装置305のハードウェアで構成しても構わない。
図4は、本実施形態におけるクライアント装置101上で動作するクライアント装置情報を送信するアプリケーション400のソフトウェア構成例を示す図である。
アプリケーション400は、クライアント装置101の記憶装置203に格納され、CPU201によって実行される。アプリケーション400は、通信部401、および情報収集部402から構成される。通信部401は、ネットワーク装置204を介してファイルサーバ102、およびファイル情報管理サーバ103と通信を行う。
アプリケーション400は、クライアント装置101の記憶装置203に格納され、CPU201によって実行される。アプリケーション400は、通信部401、および情報収集部402から構成される。通信部401は、ネットワーク装置204を介してファイルサーバ102、およびファイル情報管理サーバ103と通信を行う。
情報収集部402は、クライアント装置101が生成するクライアント装置情報を収集し、ファイルとして記憶装置203に保存する。具体的には、クライアント装置101が出力するハードウェアのログ情報などを逐次ファイルとして記憶装置203に保存する。アプリケーション400は、通信部401を介してファイル情報管理サーバ103にファイル情報の登録リクエストを送信する。また、アプリケーション400は、通信部401を介してファイルサーバ102にクライアント装置情報を送信する。
図5は、本実施形態におけるファイルサーバ102上で動作する格納情報発行アプリケーション500、およびファイル管理アプリケーション510のソフトウェア構成例を示す図である。
格納情報発行アプリケーション500は、ファイルサーバ102の記憶装置303に格納され、CPU301によって実行される。格納情報発行アプリケーション500は、通信部501、および格納情報発行部502から構成される。
格納情報発行アプリケーション500は、ファイルサーバ102の記憶装置303に格納され、CPU301によって実行される。格納情報発行アプリケーション500は、通信部501、および格納情報発行部502から構成される。
通信部501は、ネットワーク装置304を介してファイル情報管理サーバ103と通信を行う。格納情報発行部502は、通信部501を介してファイル情報管理サーバ103からリクエストを受信する。格納情報発行部は、有効期限付きでファイルの格納先とするファイルパスをファイル格納情報として発行する。また、格納情報発行部502は、ファイル格納情報をファイル管理アプリケーション510およびファイル情報管理サーバ103に送信する。
ファイル管理アプリケーション510は、ファイルサーバ102の記憶装置303に格納され、CPU301によって実行される。ファイル管理アプリケーション510は、通信部511、ファイル管理部512、およびファイル保存部513から構成される。通信部511は、ネットワーク装置304を介してクライアント装置101、ファイル情報管理サーバ103、およびイベント情報管理サーバ104と通信を行う。
ファイル管理部512は、通信部511を介してクライアント装置101、イベント情報管理サーバ104、および格納情報発行アプリケーション500からリクエストを受信する。また、ファイル管理部512は、通信部511を介してイベント情報管理サーバ104にイベントを通知する。
ファイル保存部513は、ファイル管理部512からの指示に従って、クライアント装置101から受信したファイルの実体と格納情報発行アプリケーション500から受信したファイル格納情報を保存する。また、ファイル保存部513は、ファイル管理部512からの指示に従って、図1に示す各装置からのリクエストに応じたファイルの実体を送信する。以下、ファイル保存部513がファイルの実体を管理するデータの一例としてファイル管理テーブル、およびファイル格納情報管理テーブルを示す。
ファイル管理テーブルは、ID、保存パス、ファイル名、ファイルサイズ、およびファイルデータのカラムから構成される。IDカラムは、ファイルサーバ102が保存するファイルをファイル管理アプリケーション510が一意に識別するための値を格納するカラムである。保存パスカラムは、ファイルサーバ102におけるファイルの保存先フォルダのパス情報を格納するカラムである。
ファイル名カラムは、ファイルサーバ102が保存するファイルの名称を格納するカラムである。ファイルサイズカラムは、ファイルサーバ102が保存するファイルのサイズを格納するカラムである。ファイルデータカラムは、ファイルサーバ102が保存するファイルの実体となるバイナリデータを格納するカラムである。
ファイル格納情報管理テーブルは、ID、クライアントID、アップロードファイルパス、および有効期限のカラムから構成される。IDカラムは、ファイルサーバ102が保存するファイル格納情報をファイル管理アプリケーション510が一意に識別するための値を格納するカラムである。クライアントIDカラムは、クライアント装置101を一意に識別するための値を格納するカラムである。
アップロードファイルパスカラムは、ファイルサーバ102にアップロードされるファイルの実体のパス情報を格納するカラムである。有効期限カラムは、ファイルサーバ102がクライアント装置101からファイルアップロードのリクエストの受信を許可する期限を格納するカラムである。
図6は、本実施形態におけるファイル情報管理サーバ103上で動作する格納情報確定アプリケーション600、およびファイル情報管理アプリケーション610のソフトウェア構成例を示す図である。
格納情報確定アプリケーション600は、ファイル情報管理サーバ103の記憶装置303に格納され、CPU301によって実行される。
格納情報確定アプリケーション600は、ファイル情報管理サーバ103の記憶装置303に格納され、CPU301によって実行される。
格納情報確定アプリケーション600は、通信部601、および格納情報確定部602から構成される。通信部601は、ネットワーク装置304を介して、後述するファイル情報管理アプリケーション610と通信を行う。格納情報確定部602は、通信部601を介してファイル情報管理アプリケーション610からリクエストを受信する。また、格納情報確定部602は、通信部601を介してファイルサーバ102にファイル格納情報の発行リクエストを送信する。
ファイル情報管理アプリケーション610は、ファイル情報管理サーバ103の記憶装置303に格納され、CPU301によって実行される。ファイル情報管理アプリケーション610は、通信部611、ファイル情報管理部612、およびファイル情報保存部613から構成される。通信部611は、ネットワーク装置304を介してクライアント装置101、およびイベント情報管理サーバ104と通信を行う。
ファイル情報管理部612は、通信部611を介してクライアント装置101、およびイベント情報管理サーバ104からリクエストを受信する。また、ファイル情報管理部612は、通信部611を介して格納情報確定アプリケーション600にファイル格納情報の確定リクエストを送信する。ファイル情報保存部613は、ファイル情報管理部612からの指示に従って、格納情報確定アプリケーション600から受信したファイル格納情報を保存する。
また、ファイル情報保存部613は、ファイル情報管理部612からの指示に従って、ファイルサーバ102から受信したファイルの実体から抽出した各属性情報を保存する。各属性情報は、後述するイベント情報管理サーバ104が実行する非同期処理コードの実行結果として、ファイル情報保存部613に保存される。以下、ファイル情報保存部613がファイルの属性情報を管理するデータの一例としてファイル情報管理テーブルを示す。
ファイル情報管理テーブルは、ID、アップロードファイルパス、有効期限、ステータス、及び属性のカラムから構成される。IDカラムは、ファイル情報管理サーバ103が保存するファイルの属性情報をファイル情報管理アプリケーション610が一意に識別するための値を格納するカラムである。アップロードファイルパスカラムは、ファイルサーバ102に保存されるファイルの実体のパス情報を格納するカラムである。
有効期限カラムは、ファイルサーバ102がクライアント装置101からファイルアップロードのリクエストの受信を許可する期限を格納するカラムである。ステータスカラムは、ファイルアップロードに関連付けられている非同期処理コードによるデータ処理の実行状況を示すカラムである。
本実施形態では、一例として、クライアント装置101のログ情報を登録、すなわちファイルアップロードが行われると、該ログ情報に対して属性情報の抽出および登録を行う処理が非同期処理コードにより実行される。この場合、ステータスカラムは、ログ情報の登録から、該ログ情報に対する非同期処理コードによる処理の実行状況を示している。
具体的には、ステータスカラムの取り得る値は、クライアント装置101からファイル情報の登録リクエストが行われ、ファイル情報管理テーブル(表3)にレコードが登録された段階を「仮登録」とする。また、後述するイベント情報管理サーバ104が実行する非同期処理コードによってファイルから属性情報が抽出された段階で「本登録」に更新される。なお、ステータスカラムの取り得る値は、「仮登録」および「本登録」に限定されるものではなく、処理内容に応じて増減および変化してもよい。
属性カラムは、ファイルの実体から抽出した属性情報を格納するカラムである。本実施形態では、一例として、ファイルの実体から抽出した全文検索用のインデックステキストデータを示しているがこれに限定されるものではなく、抽出する属性情報はどのようなものでもよい。抽出する属性情報の個数に応じてファイル情報管理テーブルのカラムの個数は増減する。
図7は、本実施形態におけるイベント情報管理サーバ104上で動作する管理アプリケーション700、実行管理アプリケーション710、および実行環境720のソフトウェア構成例を示す図である。
管理アプリケーション700は、イベント情報管理サーバ104の記憶装置303に格納され、CPU301によって実行される。
管理アプリケーション700は、イベント情報管理サーバ104の記憶装置303に格納され、CPU301によって実行される。
管理アプリケーション700は、イベント情報管理サーバ104で実行する非同期処理コードの保存、および非同期処理コードの実行設定の管理を行うアプリケーションである。管理アプリケーション700は、通信部701、コード管理部702、コード保存部703、およびコード設定保存部704から構成される。
通信部701は、ネットワーク装置304を介してクライアント装置101、ファイルサーバ102、ファイル情報管理サーバ103、実行結果管理サーバ105、および実行管理アプリケーション710と通信を行う。コード管理部702は、通信部701を介してクライアント装置101から非同期処理コードの登録リクエストを受信する。また、実行管理アプリケーション710から非同期処理コードのリクエストを受信する。
コード保存部703は、コード管理部702からの指示に従って、クライアント装置101から受信した非同期処理コードを保存する。また、コード保存部703は、コード管理部702からの指示に従って、実行管理アプリケーション710に非同期処理コードを送信する。以下、コード保存部703が非同期処理コードを管理するデータの一例として非同期処理コード管理テーブルを示す。
非同期処理コード管理テーブルは、ID、コード名、およびファイルデータのカラムから構成される。IDカラムは、管理アプリケーション700が保存する非同期処理コードを一意に識別するための値を格納するカラムである。コード名カラムは、管理アプリケーション700が保存する非同期処理コードのコード名称を格納するカラムである。ファイルデータカラムは、管理アプリケーション700が保存する非同期処理コードのバイナリデータを格納するカラムである。
コード設定保存部704は、コード管理部702からの指示に従って、クライアント装置101から受信した非同期処理コードの実行設定を非同期処理コードの実体と関連付けて保存する。また、コード設定保存部704は、コード管理部702からの指示に従って、実行管理アプリケーション710に非同期処理コードの実行設定を非同期処理コードと合わせて送信する。以下、コード設定保存部704が非同期処理コードの実行設定を管理するデータの一例として実行環境設定テーブル、イベント設定テーブル、およびスケジュール設定テーブルを示す。
実行環境設定テーブルは、ID、実行環境タイプ、CPU、RAM、およびHDDのカラムから構成される。IDカラムは、管理アプリケーション700が非同期処理コードを実行する仮想マシン環境の設定を一意に識別するための値を格納するカラムである。実行環境タイプカラムは、非同期処理コードを実行する仮想マシン環境の特徴を示す名称を格納するカラムである。
CPUカラムは、非同期処理コードを実行する仮想マシン環境のCPUの性能を格納するカラムであり、本実施形態では一例としてCPUのクロック数を格納する。RAMカラムは、非同期処理コードを実行する仮想マシン環境のRAMの性能を格納するカラムであり、本実施形態では一例としてRAMの容量を格納する。HDDカラムは、非同期処理コードを実行する仮想マシン環境のHDDの性能を格納するカラムであり、本実施形態では一例としてHDDのサイズを格納するカラムである。
なお、CPU、RAM、およびHDDのそれぞれの性能を示す値は、上述したものに限られるものではなく、例えば、CPUの性能としてコア数など、その他の値を格納してもよい。また、実行環境設定テーブルは、CPU、RAM、HDDのそれぞれの性能を示す値をそれぞれ複数個有していてもよい。また、実行環境設定テーブルは、仮想マシン環境の性能を示す値として、CPU、RAM、およびHDD以外の値を有していてもよい。
イベント設定テーブルは、ID、対象ファイルパス、対象イベント、非同期処理コードID、および実行環境IDのカラムから構成される。IDカラムは、管理アプリケーション700が非同期処理コードを実行する対象となるイベントを一意に識別するための値を格納するカラムである。対象ファイルパスカラムは、非同期処理コードを実行する対象となるファイルパスを格納するカラムである。
対象イベントカラムは、対象ファイルパスカラムに格納されたファイルパスのファイルに対し、非同期処理コードが実行される条件となる操作の内容を格納するカラムである。非同期処理コードIDカラムは、実行する非同期処理コードに該当する非同期処理コードを識別する値を格納するカラムであり、非同期処理コード管理テーブル(表4)のIDカラムの値が格納される。
実行環境IDカラムは、非同期処理コードを実行する環境に該当する実行環境の設定を識別する値を格納するカラムであり、実行環境設定テーブル(表5)のIDカラムの値が格納される。例えば、イベント設定テーブルのIDカラムの値が「1」のレコードは、「logdata/client1」以下のフォルダにファイルが「追加」された場合にコード名が「asyncproc」の非同期処理コードを以下の実行環境で実行する設定である。実行環境は、CPUのクロック数が2GHz、RAMの容量が4GB、HDDのサイズが1GBの仮想マシン環境で実行する設定である。
スケジュール設定テーブルは、ID、スケジュール、非同期処理コードID、実行環境IDのカラムから構成される。IDカラムは、管理アプリケーション700が、非同期処理コードを実行するスケジュールを一意に識別するための値を格納するカラムである。スケジュールカラムは、非同期処理コードが実行されるスケジュールを格納するカラムである。
非同期処理コードIDカラムは、実行する非同期処理コードに該当する非同期処理コードを識別する値を格納するカラムであり、非同期処理コード管理テーブル(表4)のIDカラムの値が格納される。実行環境IDカラムは、非同期処理コードを実行する環境に該当する実行環境の設定を識別する値を格納するカラムであり、実行環境設定テーブル(表5)のIDカラムの値が格納される。
例えば、スケジュール設定テーブルのIDカラムの値が「1」のレコードは、毎日0時(UTC)にコード名が「watcher」の非同期処理コードを以下の実行環境で実行する設定である。実行環境は、CPUのクロック数が3GHz、RAMの容量が8GB、HDDのサイズが10GBの仮想マシン環境で実行する設定である。
実行管理アプリケーション710は、イベント情報管理サーバ104の記憶装置303に格納され、CPU301によって実行される。実行管理アプリケーション710は、ファイルサーバ102から受信するイベントに応じて非同期処理コードとその実行設定とを管理アプリケーション700から取得する。そして、実行管理アプリケーション710は、取得した該非同期処理コードを該実行設定で実行するための実行環境720を作成するアプリケーションである。
実行管理アプリケーション710は、通信部711、コード実行管理部712、コード実行部713、コード実行環境管理部714、およびタイマー715から構成される。通信部711は、ネットワーク装置304を介してファイルサーバ102、ファイル情報管理サーバ103、管理アプリケーション700、および実行環境720と通信を行う。
コード実行管理部712は、通信部711を介してファイルサーバ102からイベントを受信する。また、コード実行管理部712は、通信部711を介して管理アプリケーション700から非同期処理コードおよび実行設定を受信する。また、コード実行管理部712は、後述する監視処理およびリカバリ処理(図13)において、通信部711を介して実行環境720から非同期処理コードを再実行するイベントを受信する。
コード実行部713は、コード実行管理部712からの指示に従って、ファイルサーバ102から受信したイベントに関連付けられている非同期処理コードおよび実行設定を受信する。また、コード実行部713は、ファイルサーバ102から受信した実行設定に基づき実行環境720を生成し、イベントに関連付けられている非同期処理コードの実行を該実行環境720に指示する。
タイマー715は、イベント情報管理サーバ104のサーバ時刻と同期する。コード実行管理部712は、コード設定保存部704が格納するスケジュール設定テーブルのスケジュールカラムの値とタイマー715の時刻とが合致した場合、コード実行部713に非同期処理コードの実行を指示する。コード実行部713は、コード実行管理部712からの指示に従って、タイマー715の時刻に実行するようスケジュールされた非同期処理コードおよびその実行設定を受信する。
また、コード実行部713は、管理アプリケーション700から受信した実行設定に基づき実行環境720を生成し、スケジュールされた非同期処理コードの実行を該実行環境720に指示する。コード実行環境管理部714は、実行環境720で実行する非同期処理コードの実行状況を管理する。以下、コード実行環境管理部714が管理する実行環境720の実行状況を管理するデータの一例として実行環境監視項目テーブルを示す。
実行環境監視項目テーブルは、ID、監視項目、および監視項目値のカラムから構成される。IDカラムは、実行管理アプリケーション710が実行環境720の稼働状況を管理する項目を一意に識別するための値を格納するカラムである。監視項目カラムは、実行環境720で実行中の非同期処理コードの実行状況を監視するための項目を格納するカラムである。監視項目値カラムは、監視項目カラムに格納された項目に対する閾値を格納するカラムである。
例えば、実行環境監視項目テーブルのIDカラムの値が「1」のレコードは、実行環境720で実行される非同期処理コードのリトライを5回まで許容することを示す。非同期処理コードを5回実行しても非同期処理コードが処理を完了できなかった場合は、該非同期処理コードによる処理はエラーとなり実行管理アプリケーション710は、非同期処理コードの実行を中断させる。詳細には、実行管理アプリケーション710が非同期処理コードの終了指示を実行環境720に送信し、非同期処理コードの実行を中断させる。
また、実行環境監視項目テーブルのIDカラムの値が「2」のレコードは、実行環境720で実行される非同期処理コードによる処理に要する時間を300秒までに制限することを示す。非同期処理コードによる処理が300秒を越えても完了しない場合、詳細には、実行環境720が実行管理アプリケーション710に対して処理完了の通知を送信しない場合、実行管理アプリケーション710は、非同期処理コードの実行を中断させる。
実行環境720は、イベント情報管理サーバ104の記憶装置303に格納され、CPU301によって実行される。実行環境720は、ファイルサーバ102が実行管理アプリケーション710に送信したイベントに関連付けられた非同期処理コードを実行するための仮想マシン環境である。実行環境720は、クラウドコンピューティングサービスとして提供されるものであり、図3に示した各ハードウェアが仮想マシンによってアプリケーションソフトウェアとしてそれぞれ実現され、物理ハードウェアと同様の挙動をとるものとする。
実行環境720は、通信部721、および実行部722から構成される。通信部721は、ネットワーク装置304を介してファイルサーバ102、ファイル情報管理サーバ103、管理アプリケーション700、および実行管理アプリケーション710と通信を行う。
実行部722は、通信部721を介して実行管理アプリケーション710から受信したファイルサーバ102で発生したイベントに応じた非同期処理コードを管理アプリケーション700から受信して実行する。また、実行部722は、実行中の非同期処理コードに対する監視リクエストをコード実行環境管理部714から受信して、非同期処理コードの実行を制御する。
図8は、本実施形態における実行結果管理サーバ105上で動作する実行結果管理アプリケーション800のソフトウェア構成例を示す図である。
実行結果管理アプリケーション800は、実行結果管理サーバ105の記憶装置303に格納され、CPU301によって実行される。
実行結果管理アプリケーション800は、実行結果管理サーバ105の記憶装置303に格納され、CPU301によって実行される。
実行結果管理アプリケーション800は、通信部801、ファイル管理部802、およびファイル保存部803から構成される。通信部801は、ネットワーク装置304を介してイベント情報管理サーバ104と通信を行う。ファイル管理部802は、通信部801を介してイベント情報管理サーバ104からリクエストを受信する。
ファイル保存部803は、ファイル管理部802からの指示に従って、イベント情報管理サーバ104から受信した実行結果情報を保存する。以下、ファイル保存部803がイベント情報管理サーバ104から受信した実行結果情報を管理するデータの一例として実行結果管理テーブルを示す。
実行結果管理テーブルは、ID、保存パス、ファイル名、ファイルサイズ、およびファイルデータのカラムから構成される。IDカラムは、実行結果管理サーバ105が保存する実行結果情報のファイルを一意に識別するための値を格納するカラムである。保存パスカラムは、実行結果管理サーバ105におけるファイルの保存先フォルダのパス情報を格納するカラムである。
本実施形態では、実行結果情報のファイルの保存パスは、ファイルサーバ102に保存されるファイルの実体の保存パスとファイル名とを組み合わせたパス情報とする。これによりファイルサーバ102のファイルの実体と、実行結果管理サーバ105に保存される該ファイルに対するデータ処理の実行結果情報のファイルとを対応付けることができる。なお、ファイルサーバのファイルと、それに対するデータ処理の実行結果情報のファイルとを対応付ける方法はこれに限られるものではない。
ファイル名カラムは、実行結果管理サーバ105が保存する実行結果情報のファイルの名称を格納するカラムである。本実施形態では、イベント情報管理サーバ104がデータ処理を開始するとファイル名が「start.log」のログファイルを生成し、該データ処理が終了するとファイル名が「info.log」のログファイルを生成する。
そして、実行結果管理サーバ105は、それぞれのログファイルを実行結果情報として保存する。ファイル名が「info.log」のログファイルにはデータ処理の実行時のデバッグ情報や終了時の結果情報が出力される。すなわち、データ処理のコードによる処理に関するログ情報が記録される。ファイルサイズカラムは、実行結果管理サーバ105が保存するファイルのサイズを格納するカラムである。ファイルデータカラムは、実行結果管理サーバ105が保存するファイルの実体となるテキストデータを格納するカラムである。
次に、図9〜図11を用いてイベント情報管理サーバ104において非同期処理コードが登録、および管理される処理と、実際にファイルサーバ102への操作に伴い発生したイベントに応じて非同期処理コードが実行されるまでの処理について説明する。
図9は、クライアント装置101が管理アプリケーション700に非同期処理コードを登録する処理を説明するシーケンス図である。
図9は、クライアント装置101が管理アプリケーション700に非同期処理コードを登録する処理を説明するシーケンス図である。
ステップS901において、クライアント装置101は、通信部401を介してイベント情報管理サーバ104の管理アプリケーション700に非同期処理コードの登録リクエストを送信する。以下、管理アプリケーション700に送信される非同期処理コードの登録リクエストの一例として、登録リクエストレコード1、および登録リクエストレコード2を示す。
非同期処理コードの登録リクエストレコード1は、非同期処理コード、非同期処理コード名、実行対象ファイルパス、実行対象イベント、および実行環境IDから構成される。登録リクエストレコード1の非同期処理コードは、非同期処理コードの実体をバイナリデータで格納する。非同期処理コード名は、非同期処理コードの名称を格納する。実行対象ファイルパスは、非同期処理コードを実行する対象となるファイルサーバ102上のファイルパスを格納する。
実行管理アプリケーション710は、ファイルサーバ102から受信したイベントに含まれるファイルパスを参照する。そして、実行管理アプリケーション710は、該ファイルパスが登録リクエストレコード1の実行対象ファイルパスに格納された値と一致した場合に、該イベントは登録リクエストレコード1の非同期処理コードを実行すべきイベントであると判別する。
実行対象イベントは、実行対象ファイルパスに格納されたファイルに対して、非同期処理コードを実行する対象となる操作を格納する。実行環境IDは、非同期処理コードを実行する環境に該当する実行環境の設定を識別する値であり、実行環境設定テーブル(表5)のIDカラムの値が格納される。
例えば、登録リクエストレコード1は、ファイルサーバ102上の「logdata/client1」以下にファイルが「追加」された場合に実行される、コード名が「asyncproc」の非同期処理コードを登録するためのリクエストである。
図9の説明に戻る。ステップS902において、管理アプリケーション700は、通信部701が受信した登録リクエストから非同期処理コードの管理レコードを生成し、コード保存部703の非同期処理コード管理テーブル(表4)に格納する。管理レコードのコード名カラムには、登録リクエストに含まれる非同期処理コード名の値が格納される。管理レコードのファイルデータカラムには、登録リクエストに含まれる非同期処理コード、すなわち非同期処理コードの実体であるバイナリデータが格納される。
ステップS903において、管理アプリケーション700は、イベント設定レコードを生成し、コード設定保存部704のイベント設定テーブル(表6)に格納する。イベント設定レコードの対象ファイルパスカラムには、登録リクエストに含まれる実行対象ファイルパスの値が格納される。イベント設定レコードの対象イベントカラムには、登録リクエストに含まれる実行対象イベントの値が格納される。
イベント設定レコードの非同期処理コードIDカラムには、ステップS902でコード保存部703の非同期処理コード管理テーブル(表4)に格納した管理レコードのIDカラムの値が格納される。イベント設定レコードの実行環境IDカラムには、登録リクエストに含まれる実行環境IDの値が格納される。
非同期処理コードの登録リクエストレコード2は、非同期処理コード、非同期処理コード名、スケジュール、および実行環境IDから構成される。登録リクエストレコード2の非同期処理コードは、非同期処理コードの実体をバイナリデータで格納する。非同期処理コード名は、非同期処理コードの名称を格納する。スケジュールは、非同期処理コードが実行されるスケジュールを格納する。
実行管理アプリケーション710は、タイマー715から取得するサーバ時刻が、登録リクエストレコード2のスケジュールに格納された値と合致した場合に、登録リクエストレコード2の非同期処理コードを実行すべきタイミングであると判別する。実行環境IDは、非同期処理コードを実行する環境に該当する実行環境の設定を識別する値であり、実行環境設定テーブル(表5)のIDカラムの値が格納される。例えば、登録リクエストレコード2は、「毎日0時(UTC)」に実行されるコード名が「watcher」の非同期処理コードを登録するためのリクエストである。
クライアント装置101がステップS901で送信した登録リクエストが登録リクエストレコード2の場合、ステップS902において、管理アプリケーション700は、通信部701が受信した登録リクエストレコード2から管理レコードを生成する。そして、管理アプリケーション700は、該管理レコードをコード保存部703の非同期処理コード管理テーブル(表4)に格納する。
管理レコードのコード名カラムには、登録リクエストレコード2の非同期処理コード名の値が格納される。管理レコードのファイルデータカラムには、登録リクエストレコード2の非同期処理コード、すなわち非同期処理コードのバイナリデータが格納される。そして、ステップS903において、管理アプリケーション700は、スケジュール設定レコードを生成し、コード設定保存部704のスケジュール設定テーブル(表7)に格納する。
スケジュール設定レコードのスケジュールカラムには、登録リクエストレコード2のスケジュールの値が格納される。スケジュール設定レコードの非同期処理コードIDカラムには、ステップS902でコード保存部703の非同期処理コード管理テーブル(表4)に格納した管理レコードのIDカラムの値が格納される。スケジュール設定レコードの実行環境IDカラムには、登録リクエストレコード2の実行環境IDの値が格納される。
図10および図11は、ファイルサーバ102への操作をトリガとして非同期処理コードによるデータ処理が実行され、該データ処理のログ情報が記録されるまでの処理を説明するシーケンス図である。
本実施形態では、クラウドコンピューティングサービスの一例として、ネットワークに接続された各種デバイスや端末から収集されたデバイスやアプリケーションのログ情報や稼働情報をストレージに保存し、データベースで管理するサービスについて説明する。
本実施形態では、クラウドコンピューティングサービスの一例として、ネットワークに接続された各種デバイスや端末から収集されたデバイスやアプリケーションのログ情報や稼働情報をストレージに保存し、データベースで管理するサービスについて説明する。
具体的には、クライアント装置101が収集した情報のファイルがファイルサーバ102にアップロードされる度にファイル情報管理サーバ103に該ファイルのファイル情報のレコードが作成され、管理される。ファイル情報は、例えば、アップロードされたファイルのファイル名やストレージ上の保存場所等である。なお、本実施形態では、ファイルサーバ102への操作を、非同期処理コードを実行するトリガとしているが、これに限られるものではない。
また、本実施形態では、イベント駆動型コンピューティングサービスの一例として、ファイルサーバ102へファイルが追加されたことをトリガとして該ファイルの属性情報の抽出が実行される場合について説明する。具体的には、本実施形態では、非同期処理コードは、クライアント装置101がファイルサーバ102へファイル新規に登録する操作(イベント)により起動される。
非同期処理コードが起動されると、イベント情報管理サーバ104は、実行結果管理サーバ105にログ情報として開始ログ「start.log」を出力し、新規に登録されたファイルの属性情報を抽出する。そして、イベント情報管理サーバ104は、ファイル情報管理サーバ103のファイル情報管理部612に該属性情報を登録する。
イベント情報管理サーバ104は、非同期処理コードの実行を終了すると、実行結果管理サーバ105にログ情報として該非同期処理コードによるデータ処理の実行ログ「info.log」を出力する。以下、イベント及びイベントに関連付けられたデータ処理の詳細について説明する。なお、非同期処理コードによるデータ処理は、ファイルサーバ102へ追加されたファイルの属性情報の抽出に限定されるものではない。
従来、上述したようなイベント駆動型コンピューティングサービスにより実現される処理を実現するには、以下の管理が必要であった。すなわち、コンピューティングリソースに対して発生するイベントを検知するためのアプリケーションや所望の処理を実行するためのアプリケーション、該アプリケーションが稼働するインフラの構築や管理が必要であった。しかし、イベント駆動型コンピューティングサービスにより、利用者は所望の処理の開発にだけ集中することが可能となる。
ステップS1001において、クライアント装置101は、通信部401を介して情報収集部402がファイルとして出力したログ情報等のファイル情報の登録を要求する登録リクエストをファイル情報管理サーバ103に送信する。以下、ファイル情報管理サーバ103に送信されるファイル情報の登録リクエストの一例としてファイル情報の登録リクエストレコードを示す。
ファイル情報の登録リクエストレコードは、クライアントID、およびファイル名を有する。クライアントIDは、クライアント装置101を一意に識別するための値を格納する。ファイル名は、ファイルサーバ102が保存するファイルの名称を格納する。
ステップ1002において、ファイル情報管理サーバ103は、のファイル情報管理部612は、受信したファイル情報の登録リクエストをもとに、通信部611を介して格納情報確定部602にファイル格納情報の確定を要求する確定リクエストを送信する。
ステップ1003において、格納情報確定部602は、受信したファイル情報の登録リクエストをもとに、通信部601を介してファイルサーバ102にファイル格納情報の発行を要求する発行リクエストを送信する。発行リクエストには、ファイル情報の登録リクエストに含まれるクライアントIDおよびファイル名が含まれる。
ステップ1004において、ファイルサーバ102の格納情報発行部502は、受信したファイル格納情報の発行リクエストをもとにファイル格納情報を生成する。以下、ファイル格納情報の一例としてファイル格納情報レコードを示す。
ファイル格納情報レコードは、保存パスカラムおよび有効期限カラムから構成される。保存パスカラムは、ファイルサーバ102におけるファイルの保存先フォルダのパス情報を格納するカラムである。有効期限カラムは、ファイルサーバ102がクライアント装置101からファイルアップロードのリクエストの受信を許可する期限を格納するカラムである。
ステップS1005において、格納情報発行部502は、通信部501を介してファイル管理部512にファイル格納情報の登録を要求する登録リクエストを送信する。以下、ファイル格納情報の登録リクエストの一例としてファイル格納情報登録リクエストレコードを示す。
ファイル格納情報登録リクエストレコードは、クライアントID、アップロードファイルパス、および有効期限を有する。クライアントIDは、クライアント装置101を一意に識別するための値を格納する。このクライアントIDには、ステップS1003で取得したファイル格納情報の発行リクエストに含まれるクライアントIDの値が格納される。
アップロードファイルパスは、ファイルサーバ102にアップロードされるファイルの実体のパス情報を格納する。このアップロードファイルパスには、ステップS1004で生成したファイル格納情報レコードの保存パスとステップS1003で取得したファイル格納情報の発行リクエストに含まれるファイル名とを結合した値が格納される。
有効期限は、ファイルサーバ102がクライアント装置101からファイルアップロードのリクエストの受信を許可する期限を格納する。この有効期限には、ステップS1004で生成したファイル格納情報レコードの有効期限の値が格納される。ファイル管理部512は、ファイル格納情報の登録リクエストをもとに、ファイル格納情報管理テーブル(表2)を更新し、ステップS1005のレスポンスとして通信部511を介して格納情報発行部502に登録が完了した旨を送信する。
ファイル管理部512からレスポンスを受信した格納情報発行部502は、ステップS1003のレスポンスとしてステップ1004で生成したファイル格納情報を、通信部501を介してファイル情報管理サーバ103に送信する。ファイル情報管理サーバ103の格納情報確定部602は、ステップS1002のレスポンスとしてファイル格納情報を受信し、該ファイル格納情報を通信部601を介してファイル情報管理部612に送信する。
ステップS1006において、ファイル情報管理部612は、受信したファイル格納情報を、ファイル情報保存部613のファイル情報管理テーブル(表3)に登録する。なお、ステップS1006の処理により登録される、ファイル情報管理テーブルのステータスカラムの値は、「仮登録」である。この後で、クライアント装置101によるファイルサーバ102へのファイルのアップロードが行われたことをトリガとして、イベント情報管理サーバ104によるデータ処理が行われる。
そして、データ処理の結果として属性カラムの値がファイル情報管理テーブルに登録が完了することにより、ステータスカラムの値は「本登録」に更新される。処理の詳細については、ステップS102にて説明する。ファイル情報管理部612は、受信したファイル格納情報を、ステップS1001のレスポンスとして通信部611を介してクライアント装置101に送信する。
ステップS1010において、クライアント装置101は、受信したファイル格納情報をもとに、ファイルサーバ102にファイルのアップロード要求を実行するファイルアップロードリクエストをファイルサーバ102に送信する。以下、ファイルサーバ102に送信されるファイルアップロードリクエストの一例としてファイルアップロードリクエストレコードを示す。
ファイルアップロードリクエストレコードは、アップロード先フォルダ、ファイル名、およびファイルデータを有する。アップロード先フォルダは、ファイルのアップロード先となるファイルサーバ102に存在するフォルダパスを格納する。このアップロード先フォルダには、ステップS1001のレスポンスとして取得したファイル格納情報に含まれる保存パスの値が格納される。ファイル名は、アップロードするファイルの名称を格納する。ファイルデータは、アップロードするファイルのバイナリデータを格納する。
ステップS1011において、ファイルサーバ102のファイル管理部512は、ファイル保存部513が管理するファイル格納情報管理テーブル(表2)からアップロードされたファイルと一致するレコードを取得する。具体的には、ファイル格納情報管理テーブル(表2)のアップロードファイルパスカラムの値が、ステップS1010で受信したファイルアップロードリクエストに含まれるアップロード先フォルダとファイル名とを結合した値と一致するレコードを取得する。
ファイル管理部512は、取得したファイル格納情報管理テーブル(表2)のレコードの有効期限カラムの値がファイルサーバ102のサーバ時刻を超えているか判定する。有効期限カラムの値がサーバ時刻を越えている場合、ファイル管理部512は、通信部511を介してクライアント装置101に有効期限切れを通知するレスポンスを送信する。
有効期限カラムの値がサーバ時刻を越えていない場合、ファイルアップロードリクエストに含まれるデータをファイル保存部513のファイル管理テーブル(表1)に保存する。ファイル管理部512は、ファイル管理テーブルへのデータの保存が完了すると、ステップS1011のレスポンスとして通信部511を介してクライアント装置101にファイルアップロードが完了した旨を送信する。
ステップS1020において、ファイル管理部512は、ファイルが追加されたことを示すイベントを生成し、通信部511を介してイベント情報管理サーバ104に送信する。すなわち、ファイル管理部512は、イベント情報管理サーバ104にアップロードしたファイルに対するデータ処理の実行を要求する。以下、イベント情報管理サーバ104に送信される、ファイルが追加されたことを示すイベントの一例としてファイルアップロード完了イベントを示す。
ファイルアップロード完了イベントは、ファイルパスおよびイベント種別を有する。ファイルパスは、イベントを生成する契機となったファイルのファイルサーバ102上でのパス情報を格納する。イベント種別は、イベントを生成する契機となったファイルに対して行われた操作を格納する。ここでは、ステップS1010にてクライアント装置101がファイルサーバ102にファイルを新規にアップロードしため、イベント種別の値は「追加」となる。
ステップS1021において、イベント情報管理サーバ104のコード実行管理部712は、通信部711を介して受信したファイルアップロード完了イベントの内容を確認する。具体的には、コード実行管理部712は、ファイルアップロード完了イベントに含まれるファイルパスからファイル名を除いたフォルダパスと、イベント種別を取得する。
そして、コード実行管理部712は、通信部711を介してコード設定保存部704のイベント設定テーブル(表6)からレコードを取得する。詳細には、イベント設定テーブル(表6)の対象ファイルパスカラムと対象イベントカラムの値の組み合わせが、ファイルアップロード完了イベントから取得したフォルダパスとイベント種別の値の組み合わせと一致するレコードを取得する。
ステップS1022において、コード実行管理部712は、ステップS1021で取得したイベント設定レコードをもとに、ステップS1021で受信したイベントに関連付けられた非同期処理コードをコード保存部703から取得する。詳細には、コード実行管理部712は、コード保存部703の非同期処理コード管理テーブル(表4)のIDの値が、ステップS1022で取得したイベント設定レコードの非同期処理コードIDの値と一致するレコードを取得する。そして、コード実行管理部712は、該レコードのファイルデータカラムに格納された非同期処理コードのバイナリデータを取得する。
ステップS1023において、コード実行管理部712は、ステップS1022で取得した非同期処理コードの実行設定をコード設定保存部704から取得する。詳細には、コード実行管理部712は、コード保存部703の実行環境設定テーブル(表5)のIDの値が、ステップS1022で取得したイベント設定レコードの実行環境IDカラムの値と一致するレコードを取得する。
ステップS1024において、コード実行管理部712は、ステップS1023で取得した実行設定の性能を有する実行環境720を作成し、起動する。ステップS1025において、コード実行管理部712は、通信部711を介して実行環境720の記憶装置303にステップS1022で取得した非同期処理コードを配置する。
ステップS1026において、コード実行部713は、通信部711を介して実行環境720の実行部722に非同期処理コードの実行を要求する要求リクエストを送信する。実行部722は、非同期処理コードの実行リクエストを受信すると、ステップS1025で受信した非同期処理コードをRAM302に読み込み非同期処理コードの実行を開始する。以下、実行部722に送信される非同期処理コードの実行リクエストの一例として実行リクエストレコードを示す。
実行リクエストレコードは、ファイルパスおよびイベント設定IDを有する。ファイルパスは、非同期処理コードを実行する対象となるファイルサーバ102上のファイルパスを格納する。このファイルパスには、ステップS1020でコード実行管理部712が受信したファイルアップロード完了イベントに含まれるファイルパスの値が格納される。
イベント設定IDは、コード実行管理部712がステップS1021で取得したイベント設定レコードのIDの値を格納する。ステップS1027において、実行部722は、通信部721を介して実行結果管理サーバ105に非同期処理コードの処理開始を示す開始ログの出力を要求する出力リクエストを送信する。
実行結果管理サーバ105のファイル管理部802は、出力リクエストをもとに、開始ログをファイル保存部803に出力し、ステップS1027のレスポンスとして通信部801を介して実行部722に出力が完了した旨を送信する。ステップS1028において、実行部722は、ステップ1026で受信した実行リクエスト(表17)に含まれるファイルパスに該当するファイルをファイルサーバ102から取得する。
ステップS1029において、実行部722は、ステップS1028で取得したファイルから各種属性情報を抽出し、ファイル属性情報レコードを生成する。そして、実行部722は、該ファイル属性情報レコードをファイル情報管理サーバ103に送信する。ファイル情報管理サーバ103のファイル情報管理部612は、受信したファイル属性情報レコードをファイル情報保存部613のファイル情報管理テーブル(表3)に登録する。
詳細には、ファイル情報管理テーブル(表3)のアップロードファイルパスカラムの値が、ステップ1026で受信した非同期処理コード実行リクエストに含まれるファイルパスの値と一致するレコードの属性カラムにファイル属性情報レコードを格納する。ファイル情報管理テーブルにファイル属性情報が登録されることにより、ファイル情報管理テーブルのステータスカラムは、「仮登録」から「本登録」に更新される。
ステップS1030において、実行部722は、通信部721を介して実行結果管理サーバ105にステップS1028〜ステップS1029までの実行ログの出力を要求する出力リクエストを送信する。実行結果管理サーバ105のファイル管理部802は、出力リクエストをもとに、実行ログをファイル保存部803に出力し、ステップS1027のレスポンスとして通信部801を介して実行部722に出力が完了した旨を送信する。
実行部722は、ステップS1030までの処理が完了すると、コード実行管理部712に非同期処理コードの実行が完了した旨を送信する。ステップS1031において、コード実行管理部712は、実行環境720の仮想マシンをシャットダウンし、破棄する。
図9〜図11に示した処理により、ファイルサーバ102でイベントが発生すると、イベント情報管理サーバ104が該イベントに関連付けられた非同期処理コードを適宜実行する。しかし、イベントが発生したにも関わらず、イベントに関連付けられた非同期処理コードが実行されない場合がある。例えば、本実施形態では、ファイルサーバ102へのファイルアップロードが正常に終了したにも関わらず、ファイルアップロードに関連付けられた非同期処理コードが起動されず、非同期処理コードが実行されない場合がある。
このように、イベント駆動側コンピューティングサービスにおいて、プログラムコードが起動されないエラーが発生した場合に、該エラーを検知する手段がなく、従って該エラーに対するリカバリ処理を実行するまでに多くの時間を費やすことになってしまう。
そこで、本実施形態では、イベント発生に応じて実行される非同期処理コードとは別に、監視処理及びリカバリ処理を実行する監視用のプログラムコードをあらかじめ決められたスケジュールで実行する。監視処理およびリカバリ処理を実行するプログラムコードは、例えば、表11に示した登録リクエストレコード2のように、イベント情報管理サーバ104に登録する。表11に示したように、本実施形態では、監視用のプログラムコードは、定期的に実行される。
図12は、スケジュールで実行される監視処理およびリカバリ処理を説明するフローチャートである。
以下、監視処理およびリカバリ処理を実行するプログラムコードが、登録リクエストレコード2(表11)によりイベント情報管理サーバ104に登録されたものとして説明する。
以下、監視処理およびリカバリ処理を実行するプログラムコードが、登録リクエストレコード2(表11)によりイベント情報管理サーバ104に登録されたものとして説明する。
イベント情報管理サーバ104のコード実行管理部712は、該登録リクエストレコード2をもとに、非同期処理コードおよび該非同期処理コードの実行設定をコード保存部703から取得し、該実行設定の性能を有する実行環境720を起動する。実行環境720が起動するまでの詳細は、ステップS1022〜1026までの処理と同様のため、その説明を省略する。以下、起動された実行環境720の実行部722の処理が実行する監視処理およびリカバリ処理について説明する。
ステップS1101において、実行部722は、ファイル情報管理サーバ103に、ファイル情報管理テーブル(表3)においてステータスカラムの値が「仮登録」のレコードを要求する。ステップS1102において、実行部722は、ステップS1101でレコードが取得できたか否かを判定する。ステップS1102でレコードを取得できなかったと判定した場合は、監視処理およびリカバリ処理を終了する。ステップS1102でレコードが取得できたと判定した場合は、処理はステップ1103に進む。
ステップS1103において、実行部722は、取得したレコードの有効期限カラムの値がイベント情報管理サーバ104のサーバ時刻を経過したか否かを判定する。取得したレコードの有効期限カラムの値がイベント情報管理サーバ104のサーバ時刻を経過していない場合、処理はステップS1102に戻り、次のレコードを取得する。取得したレコードの有効期限カラムの値がイベント情報管理サーバ104のサーバ時刻を経過していた場合、処理はステップS1104に進む。
ステップS1104において、実行部722は、取得したレコードのアップロードファイルパスカラムの値が示すファイルの実体が存在するか否かを判定する。ファイルの実体が存在しない場合、実行部722は、クライアント装置101によるファイルアップロードリクエストが失敗したと判断し、処理はステップS1102に戻る。そして、次のレコードを取得する。
ファイルアップロードリクエストが失敗した場合等は、例えば、クラウドコンピューティングサービスの1つであるモニタリングサービス(監視サービス)を利用して検出することが可能である。このため、本実施形態では、処理が失敗したファイルを特定し、リカバリ処理の対象とする必要がない。ファイルの実体が存在する場合、処理はステップS1105に進む。なお、ステップS1104の処理は行わず、ステップS1103からS1105の処理を行うようにしてもよい。
ステップS1105において、実行部722は、実行結果管理サーバ105に取得したレコードのアップロードファイルパスカラムの値が示すファイルに対するデータ処理のログファイルが出力されているか否か判定する。具体的には、実行部722は、実行結果管理サーバ105の実行結果管理テーブル(表9)の保存パスカラムの値が該アップロードファイルパスカラムの値と一致するレコードが存在するか否かを判定する。一致するレコードが1つ以上存在する場合、実行部722は、データ処理のログファイルが出力されたと判断する。
一方、実行部722は、一致するレコードが存在しない場合、データ処理のログファイルが出力されていないと判断する。ログファイルが出力されていた場合、実行部722は、データ処理は実行されたが該データ処理は失敗したと判断する。すなわち、アップロードファイルパスカラムの値が示すファイルパスで発生したイベントに関連付けられた非同期処理コードは起動されたが、該非同期処理コードによるデータ処理に失敗したことを示している。
非同期処理コードによるデータ処理に失敗した場合等は、上述したように、例えば、モニタリングサービスを利用して検出することが可能である。このため、本実施形態では、処理が失敗したファイルを特定し、リカバリ処理の対象とする必要がない。
この場合、処理はステップS1102に戻り、次のレコードを取得する。一方、ログファイルが出力されていない場合、実行部722は、非同期処理コードは実行されなかったと判断し、処理はステップS1107に進む。このように、ステップS1103〜S1105の処理により、実行されなかった非同期処理コードを特定することができる。このため、ログが残らないエラーが発生した場合であっても、エラーを特定し、該エラーに対するリカバリ処理を迅速に実行することが可能となる。
ステップS1106〜S1109の処理は、非同期処理コードが実行されなかった場合のリカバリ処理として実行される。すなわち、ステップS1106〜S1109では、図11のステップS1027〜S1030の処理と同様の処理が実行される。ステップS1110の処理が完了すると、処理はステップS1102に戻る。そして、次のレコードが取得され、実行部722は、監視処理(ステップS1102〜S1105)およびリカバリ処理(ステップS1106〜S1109)を繰り返す。
図13は、図12で説明した監視処理およびリカバリ処理の応用例を説明するフローチャートである。
図12で示したように、リカバリ処理では、図10および図11で示したイベント発生に応じて実行される非同期処理コードによるデータ処理と同等の処理が実行される。このため、監視処理およびリカバリ処理を実行するための非同期処理コードの、該リカバリ処理に該当するプログラムコードは、イベント発生に応じて実行される非同期処理コードのプログラムコードと共通化することができる。
図12で示したように、リカバリ処理では、図10および図11で示したイベント発生に応じて実行される非同期処理コードによるデータ処理と同等の処理が実行される。このため、監視処理およびリカバリ処理を実行するための非同期処理コードの、該リカバリ処理に該当するプログラムコードは、イベント発生に応じて実行される非同期処理コードのプログラムコードと共通化することができる。
図13に示す応用例では、監視処理およびリカバリ処理を実行する実行部722が、監視処理において、実行されなかった非同期処理コードを特定し、該非同期処理コードを再実行するトリガをかけることで、該リカバリ処理が実行されるように処理する。すなわち、監視処理およびリカバリ処理において、共通のプログラムコードは持たずにリカバリ処理を実行することが可能となる。
図13のステップS1201〜ステップS1205の処理は、図12に示したステップS1101〜ステップS1205の監視処理と同様のため、その説明を省略する。ステップS1205までの処理によって、実行部722は、実行されなかった非同期処理コードを特定し、処理はステップS1206に進む。
ステップS1206において、実行部722は、特定した非同期処理コードを再実行するためのイベントを生成し、通信部721を介してイベント情報管理サーバ104に送信する。以下、コード実行管理部712に送信される、非同期処理コードを再実行するためのイベントの一例として非同期処理コードの再実行イベントを示す。
非同期処理コードの再実行イベントは、ファイルパスおよびイベント種別を有する。ファイルパスは、実行されなかった非同期処理コードの対象であるファイルのファイルサーバ102上でのパス情報を格納する。イベント種別は、実行されなかった非同期処理コードの対象であるファイルに対して行う操作を格納する。
ステップS1206の処理が完了すると、処理はステップS1202に戻る。そして、次のレコードが取得され、実行部722は、監視処理(ステップS1202〜S1205)およびリカバリ処理(ステップS1206)を繰り返す。
ステップS1206で再実行イベントを受信したコード実行管理部712は、該再実行イベントがステップS1020で受信するファイルアップロード完了イベントと同様のイベント通知のため、ステップS1021以降の処理を実行する。これにより、実行されなかった非同期処理コードが再度実行される。すなわち、ファイル情報管理テーブル(表3)を更新するデータ処理が行われる。
以上のように、本実施形態によれば、イベント駆動型コンピューティングサービスにおいて起動されなかったプログラムコードを特定し、リカバリ処理を実行できる。
(第2実施形態)
イベント駆動型コンピューティングサービスでは、複数のイベントが同時に発生した場合に非同期処理コードの実行順は保証されていない。また、イベント駆動型コンピューティングサービスでは、非同期処理コードの実行はイベント発生直後に実行されるとは限らず、時間が経過してから実行される場合がある。
イベント駆動型コンピューティングサービスでは、複数のイベントが同時に発生した場合に非同期処理コードの実行順は保証されていない。また、イベント駆動型コンピューティングサービスでは、非同期処理コードの実行はイベント発生直後に実行されるとは限らず、時間が経過してから実行される場合がある。
イベント発生後に時間が経過してから非同期処理コードが実行された場合、第1実施例形態では、監視処理およびリカバリ処理の非同期処理コードがイベントに関連付けられた非同期処理コードよりも先に実行されうる。すなわち、イベント発生後に、該イベントに関連付けられた非同期処理コードが実行待ちの状態で監視処理およびリカバリ処理が実行されると、「イベントに関連付けられた非同期処理コードは実行されなかった」と判断される。
そして、実行されなかった非同期処理コードによるデータ処理がリカバリ処理として先に実行される。そして、実行待ちの状態であったイベントに関連付けられた非同期処理コードが後で実行されるため、該非同期処理コードによるデータ処理が重ねて実行されてしまう。
イベント駆動型コンピューティングサービスでは、イベント発生に応じて実行される非同期処理コードの実行タイミングは、サービス提供側によって制御されるため、サービス利用者が実行タイミングを制御することができない。そこで、本実施形態では、非同期処理コードの実行状況を管理することで、イベントに関連付けられた非同期処理コードによるデータ処理の多重実行を回避できる。
非同期処理コードの実行状況は、ファイルサーバ102のファイル保存部513が管理する。以下、ファイル保存部513が管理する本実施形態におけるファイル管理テーブルの一例を示す。
第1実施形態におけるファイル管理テーブル(表1)に対して、本実施形態では、各ファイルに対する非同期処理コードの実行状況を示すステータスカラムが追加されている。
具体的には、本実施形態におけるファイル管理テーブルは、ID、保存パス、ファイル名、ファイルサイズ、ファイルデータ、およびステータスのカラムから構成され、IDカラム〜ファイルデータカラムまでは第1実施形態と同様のためその説明を省略する。
具体的には、本実施形態におけるファイル管理テーブルは、ID、保存パス、ファイル名、ファイルサイズ、ファイルデータ、およびステータスのカラムから構成され、IDカラム〜ファイルデータカラムまでは第1実施形態と同様のためその説明を省略する。
ステータスカラムは、ファイルサーバ102が保存するファイルに対する非同期処理コードの実行状況を格納するカラムである。ステータスカラムのとり得る値は、非同期処理コードの処理内容に応じて増減しうる。本実施形態では、非同期処理コードが実行されていない状況では値がなく、プログラムコードが実行されている最中では「実行中」とし、プログラムコードが正常に終了した状況では「成功」とする。
図14は、イベント情報管理サーバ104の実行部722が、イベント発生に応じて非同期処理コードを実行する際の処理を説明するフローチャートであり、第1実施形態における図11のステップS1027〜S1030までの処理に相当する。ステップS1026までの処理は、第1実施形態と同様のため、その説明を省略する。
ステップS1301において、実行部722は、ファイルサーバ102のファイル保存部513が管理するファイル管理テーブル(表19)からステータスカラムの値を取得する。詳細には、ファイル管理テーブル(表19)の保存パスカラムとファイル名カラムとを結合した値が、ステップ1026で受信した実行リクエスト(表17)に含まれるファイルパスと一致するレコードをステータスカラムの値を取得する。
ステップ1026で受信した実行リクエスト(表17)に含まれるファイルパスには、ステップS1020でコード実行管理部712が受信したファイルアップロード完了イベントに含まれるファイルパスの値が格納されている。
ステップS1302において、実行部722は、ステップS1301で取得したステータスカラムの値が「成功」であるか否かを判定する。ステータスカラムの値が「成功」である場合、実行部722は、監視処理およびリカバリ処理によって既に非同期処理コードが実行されたと判断し、処理を終了する。ステータスカラムの値が「成功」でない場合、処理はステップS1303に進む。
ステップS1303において、実行部722は、ステップS1301で取得したステータスカラムの値が「実行中」であるか否かを判定する。ステータスカラムの値が「実行中」である場合、実行部722は、監視処理及びリカバリ処理によって非同期処理コードが実行中であると判断し、処理を終了する。ステータスカラムの値が「実行中」でない場合、実行部722は、まだ非同期処理コードが実行されていないと判断し、処理はステップS1304に進む。
ステップS1304において、実行部722は、ファイルサーバ102に、ファイル管理テーブル(表19)の、ステップS1301でステータスカラムの値を取得したレコードのステータスカラムの値を「実行中」に更新するように要求する。そして、ステップS1305〜S1307までの処理によって非同期処理コードによる処理を実行する。詳細は、図11のステップS1028〜S1030までの処理と同様のため、その説明を省略する。
ステップS1308において、実行部722は、ステップS1304で「実行中」に更新したステータスカラムの値を「成功」に更新するようファイルサーバ102に要求し、処理を終了する。
図15に、本実施形態に係る監視処理およびリカバリ処理を説明するためのフローチャートであり、第1実施形態における図12の処理に相当する。
第1実施形態では、実行部722は、非同期処理コードの実行状況を、実行結果管理サーバ105に出力されるログファイルの有無に応じて判断した。
第1実施形態では、実行部722は、非同期処理コードの実行状況を、実行結果管理サーバ105に出力されるログファイルの有無に応じて判断した。
これに対して、本実施形態では、実行部722は、非同期処理コードの実行状況をファイルサーバ102が管理するファイル管理テーブル(表19)のステータスカラムの値によって判断する。すなわち、非同期処理コードによるデータ処理の実行状況を、該データ処理のログファイルの有無から判断するのではなく、実行状況を明示的に示す情報を用いることができるため、簡易な処理でより正確に状況を把握することができる。
ステップS1401〜S1404までの処理は、図12のステップS1101〜S1104までの処理と同様のため、その説明を省略する。また、ステップS1405〜S1412までの処理は、図14のステップS1301〜S1308までの処理と同様のため、その説明を省略する。ステップS1412の処理が完了すると、処理はステップS1401に戻る。そして、次のレコードが取得され、実行部722は、監視処理(S1401〜S1407)およびリカバリ処理(ステップS1408〜S1412)を繰り返す。
このように、本実施形態によれば、イベントに応じた非同期処理コードの実行タイミングが利用者側で制御できない場合であっても、非同期処理コードによるデータ処理の多重実行を回避することができる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
Claims (13)
- データ処理のコードを実行する実行サービスにおいて実行される監視用のコードを含むプログラムであって、
前記データ処理の対象であって該データ処理が完了していないファイルを特定するファイル情報を取得する取得工程と、
前記ファイルのアップロード先として発行されたファイルパスの有効期限が経過したか判定する第1判定工程と、
前記データ処理のコードを実行する際に記録される前記ファイルに係るログの有無を判定する第2判定工程と、
前記有効期限を経過し、かつ前記ログが無いと判定されたファイルを、前記データ処理が失敗したファイルとして特定する特定工程と、をコンピュータに実行させるための監視用のコードを含むことを特徴とするプログラム。 - 前記監視用のコードは、さらに、前記データ処理が失敗したファイルとして特定されたファイルの該データ処理を実行する実行工程をコンピュータに実行させることを特徴とする請求項1に記載のプログラム。
- 前記実行工程において、前記データ処理を実行する前に、前記ファイルに係る処理開始を示すログを記録することを特徴とする請求項2に記載のプログラム。
- 前記実行工程において、前記データ処理が失敗したファイルとして特定されたファイルの該データ処理を実行するために、該データ処理のコードを前記実行サービスに実行させるためのトリガをかけることを特徴とする請求項2または3に記載のプログラム。
- 前記監視用のコードは、さらに、前記ファイルのアップロード先として発行されたファイルパスに該ファイルが存在するか判定する第3判定工程をコンピュータに実行させ、
前記特定工程において、前記有効期限を経過し、かつ前記ファイルパスに前記ファイルが存在せず、かつ前記ログが無いと判定されたファイルを、前記データ処理が失敗したファイルとして特定することを特徴とする請求項1乃至4のいずれか1項に記載のプログラム。 - データ処理のコードと監視用のコードを実行する実行サービスと、ストレージサービスと、データベースサービスとを含むシステムであって、
前記ストレージサービスは、
ファイルのアップロード要求に応じて、有効期限付きでファイルパスを発行する発行手段と、
前記ファイルがアップロードされた場合に、前記実行サービスに前記データ処理のコードの実行を要求する要求手段と、有し、
前記データベースサービスは、前記ファイルパスと、前記ファイルを特定する情報と、前記データ処理のコードを実行する際に記録される該ファイルに係るログとを関連付けて管理する管理手段と、を有し、
前記実行サービスにより前記データ処理のコードが実行された場合には、
前記データ処理の対象であるファイルに係る処理開始を示すログが記録され、該ログが記録された後に、該ファイルの該データ処理が実行され、
前記実行サービスにより前記監視用のコードが実行された場合には、
前記データ処理の対象であって該データ処理が完了していないファイルを特定する情報が取得され、
前記ファイルのアップロード先として発行されたファイルパスの有効期限が経過したか判定され、
前記データ処理のコードを実行する際に記録される前記ファイルに係るログの有無が判定され、
前記有効期限を経過し、かつ前記ログが無いと判定されたファイルが、前記データ処理が失敗したファイルとして特定されることを特徴とするシステム。 - 前記実行サービスにより前記監視用のコードが実行された場合には、
前記データ処理が失敗したファイルとして特定されたファイルの該データ処理が実行されることを特徴とする請求項6に記載のシステム。 - 前記実行サービスにより前記監視用のコードが実行され、前記データ処理が失敗したファイルとして特定されたファイルの該データ処理が実行される場合に、
該データ処理のコードを前記実行サービスに実行させるためのトリガをかけることを特徴とする請求項7に記載のシステム。 - 前記実行サービスにより前記監視用のコードが実行された場合には、
前記ファイルのアップロード先として発行されたファイルパスに該ファイルが存在するか判定され、
前記有効期限を経過し、かつ前記ファイルパスに前記ファイルが存在せず、かつ前記ログが無いと判定されたファイルが、前記データ処理が失敗したファイルとして特定されることを特徴とする請求項6乃至8のいずれか1項に記載のシステム。 - 前記実行サービスにより実行された前記データ処理のコードによる処理に失敗したことを検出する監視サービスをさらに有することを特徴とする請求項6乃至9のいずれか1項に記載のシステム。
- 前記監視用のコードは、前記実行サービスにより定期的に実行される、ことを特徴とする請求項6乃至10のいずれか1項に記載のシステム。
- 前記ストレージサービスは、さらに、前記ファイルパスを発行したファイルと、該ファイルに係るデータ処理の実行状況を示す情報とを関連付けて管理する管理手段を有し、
前記実行サービスにより前記データ処理のコードが実行された場合には、
前記データ処理の対象であるファイルに係る前記実行状況を示す情報が取得され、
前記実行状況を示す情報が、前記データ処理が開始されたかまたは実行中であることを示す場合、該データ処理を終了する、ことを特徴とする請求項6乃至11のいずれか1項に記載のシステム。 - データ処理のコードと監視用のコードを実行する実行サービスと、ストレージサービスと、データベースサービスとを含むシステムの制御方法であって、
前記ストレージサービスが、ファイルのアップロード要求に応じて、有効期限付きでファイルパスを発行する発行工程と、
前記ストレージサービスが、前記ファイルがアップロードされた場合に、前記実行サービスに前記データ処理のコードの実行を要求する要求工程と、
前記データベースサービスが、前記ファイルパスと、前記ファイルを特定する情報と、前記データ処理のコードを実行する際に記録される該ファイルに係るログとを関連付けて管理する管理工程と、を有し、
前記実行サービスにより前記データ処理のコードが実行された場合には、
前記データ処理の対象であるファイルに係る処理開始を示すログが記録され、該ログが記録された後に、該ファイルの該データ処理が実行され、
前記実行サービスにより前記監視用のコードが実行された場合には、
前記データ処理の対象であって該データ処理が完了していないファイルを特定する情報が取得され、
前記ファイルのアップロード先として発行されたファイルパスの有効期限が経過したか判定され、
前記データ処理のコードを実行する際に記録される前記ファイルに係るログの有無が判定され、
前記有効期限を経過し、かつ前記ログが無いと判定されたファイルが、前記データ処理が失敗したファイルとして特定されることを特徴とする制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016244917A JP2018097822A (ja) | 2016-12-16 | 2016-12-16 | プログラム、システム、およびシステムの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016244917A JP2018097822A (ja) | 2016-12-16 | 2016-12-16 | プログラム、システム、およびシステムの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018097822A true JP2018097822A (ja) | 2018-06-21 |
Family
ID=62633641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016244917A Pending JP2018097822A (ja) | 2016-12-16 | 2016-12-16 | プログラム、システム、およびシステムの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018097822A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928872A (zh) * | 2018-09-19 | 2020-03-27 | 佳能株式会社 | 处理***和方法 |
-
2016
- 2016-12-16 JP JP2016244917A patent/JP2018097822A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928872A (zh) * | 2018-09-19 | 2020-03-27 | 佳能株式会社 | 处理***和方法 |
CN110928872B (zh) * | 2018-09-19 | 2023-12-22 | 佳能株式会社 | 处理***和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220142B (zh) | 执行数据恢复操作的方法及装置 | |
US10394795B2 (en) | Synchronized capture of transactional data from multiple journals | |
CN108513657B (zh) | 数据转换方法及备份服务器 | |
US20210326194A1 (en) | Integrating a process cloud services system with an intelligence cloud service based on converted pcs analytics data | |
US10614048B2 (en) | Techniques for correlating data in a repository system | |
US20120254352A1 (en) | Application providing system and application providing method | |
US10095699B2 (en) | Computer-readable recording medium, execution control method, and information processing apparatus | |
JP2014081811A (ja) | ログ管理システム、および、ログ管理方法 | |
US10996996B2 (en) | Implementing multiple content management service operations | |
CN113590386B (zh) | 数据的容灾恢复方法、***、终端设备及计算机存储介质 | |
KR102257500B1 (ko) | 프로그램, 시스템, 및 정보 처리 방법 | |
WO2017111644A1 (en) | Flexible event ingestion framework in an event processing system | |
CN112347192A (zh) | 数据同步方法、装置、平台以及可读介质 | |
US11935004B2 (en) | Reading and writing processing improvements as a single command | |
US20200320612A1 (en) | Document evaluation, alerting and validation system | |
US10129328B2 (en) | Centralized management of webservice resources in an enterprise | |
JP2018097822A (ja) | プログラム、システム、およびシステムの制御方法 | |
CN108664503B (zh) | 一种数据归档方法及装置 | |
EP3321796A1 (en) | Multi-platform interface framework | |
US9525754B1 (en) | Task-based approach to execution, monitoring and execution control of actions | |
JP5661297B2 (ja) | 画像形成装置、レストア制御方法及びプログラム | |
JP6036690B2 (ja) | 分散実行システム及び分散プログラム実行方法 | |
JPWO2018061070A1 (ja) | 計算機システム及び分析ソースデータ管理方法 | |
CN108037981B (zh) | 一种附件管理方法及装置 | |
US20140195481A1 (en) | Content managing apparatus and content managing method |