(57)【要約】【課題】分析シーケンス制御システムにて実行される複数の分析プログラムと分析プログラムを呼び出す分析シーケンス制御プログラムとをそれぞれ開発する開発者間の意識合わせの工数を削減することを可能にする技術を提供する。【解決手段】データ分析システム１０１は、前段の分析プログラム３０４１［ｋ−１］に対応して、後段の分析プログラム３０４１［ｋ］に引き継ぐデータのファイル名を含む引き継ぎファイル４０４２［ｋ−１］を特定する引き継ぎファイル名を作成する。そして、分析プログラム３０４１［ｋ］を実行することにより、前段の分析プログラム３０４１［ｋ−１］に対応する引き継ぎファイル［ｋ−１］に含まれるファイル名に基づいて、当該前段の分析プログラム３０４１［ｋ−１］から引き継ぐデータを取得する。【選択図】図１２
2019185314.tif 000002
【特許請求の範囲】
【請求項１】
複数の分析プログラムおよび該複数の分析プログラムを分析シーケンスにしたがって呼び出す分析シーケンス制御プログラムを実行するプロセッサと、
前記分析プログラムおよび前記分析シーケンス制御プログラムの実行においてデータの格納に利用される記憶装置と、を備え、
前記プロセッサは、
前記分析シーケンス制御プログラムを実行することにより、前記分析プログラムが並列実行される場合に、前段の分析プログラムに対応して、後段の分析プログラムに引き継ぐデータが格納される位置を示す位置情報を含む引き継ぎファイルを特定する引き継ぎファイル情報を作成し、
前記分析プログラムを実行することにより、前段の分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに含まれる前記位置情報に基づいて、該前段の分析プログラムから引き継ぐデータを取得し、該データに所定の処理を行うことにより生成したデータを前記記憶装置に格納するとともに、該生成したデータが格納される位置を示す位置情報を、当該分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに書き出す、
分析シーケンス制御システム。
【請求項２】
請求項１に記載の分析シーケンス制御システムであって、
前記分析シーケンス制御プログラムが前記分析プログラムを呼び出すための呼び出しインタフェースには、
当該分析プログラムの前段の分析プログラムに対応する引き継ぎファイルおよび当該分析プログラム自身に対応する引き継ぎファイル、又は、
当該分析プログラムの前段の分析プログラムに対応する引き継ぎファイルのリストを示す情報および当該分析プログラム自身に対応する引き継ぎファイルのリストを示す情報、
が含まれる、
分析シーケンス制御システム。
【請求項３】
請求項１記載の分析シーケンス制御システムであって、
前記記憶装置に、データの種別に対応するデータ名キー情報を含む共通設定ファイルが格納され、
前記引き継ぎファイルは、当該引き継ぎファイルに対応する分析プログラムがその後段の分析プログラムに引き継ぐデータの種別に対応するデータ名キー情報と当該データが格納される位置を示す位置情報とを対応づけて含み、
前記プロセッサは、前記分析プログラムを実行することにより、
前記前段の分析プログラムに対応する引き継ぎファイルおよび前記共通設定ファイルに基づき、前記データ名キー情報を用いて、前記前段の分析プログラムから引き継ぐデータの種別および当該データが格納されている位置を示す位置情報を取得し、かつ、
当該分析プログラムに対応する引き継ぎファイルに、後段の分析プログラムに引き継ぐ前記生成したデータの種別に対応する前記データ名キー情報と当該データが格納されている位置を示す位置情報とを関連付けて書き出す、
分析シーケンス制御システム。
【請求項４】
請求項１記載の分析シーケンス制御システムであって、
前記記憶装置に、前記分析プログラムの引数として設定可能なパラメータのデフォルト値が格納された共通設定ファイルが格納され、
前記分析シーケンス制御プログラムが前記分析プログラムを呼び出すための呼び出しインタフェースには、当該分析プログラムの引数として設定可能なパラメータの値を含めることができ、
前記分析プログラムは、前記呼び出しインタフェースにおいて当該分析プログラムの引数として前記パラメータの値が設定されていれば当該パラメータの値を用い、前記パラメータの値が設定されていなければ前記デフォルト値を用いる、
分析シーケンス制御システム。
【請求項５】
請求項４に記載の分析シーケンス制御システムであって、
前記共通設定ファイルには、パラメータの種別に対応するパラメータキー情報をさらに含み、
前記引き継ぎファイルには、当該引き継ぎファイルに対応する分析プログラムがその後段の分析プログラムに引き渡すパラメータの種別に対応するパラメータキー情報と当該パラメータのパラメータ値とを含めることができ、
前記プロセッサは、前記分析プログラムを実行することにより、
前記前段の分析プログラムに対応する引き継ぎファイルおよび前記共通設定ファイルに基づき、前記パラメータキー情報を用いて、前記前段の分析プログラムから引き継ぐパラメータの種別および当該パラメータのパラメータ値を取得し、かつ、
当該分析プログラムに対応する引き継ぎファイルに、後段の分析プログラムに引き継ぐパラメータの種別に対応する前記パラメータキー情報と当該パラメータのパラメータ値とを関連付けて書き出す、
分析シーケンス制御システム。
【請求項６】
請求項２に記載の分析シーケンス制御システムであって、
前記分析シーケンス制御プログラムが前記分析プログラムを呼び出すための呼び出しインタフェースには、並列実行単位識別情報をリスト化したリスト情報を含むことができ、
前記並列実行単位識別情報として特定ディレクトリ配下のファイル名を用いる、
分析シーケンス制御システム。
【請求項７】
請求項１に記載の分析シーケンス制御システムであって、
前記分析プログラムと連携動作し、当該分析プログラムの前段の分析プログラムに対応する引き継ぎファイルから前記データが格納されている位置を示す位置情報を読み出し、当該分析プログラムを呼び出し、当該分析プログラムの実行により生成されたデータが格納される位置を示す位置情報を当該分析プログラムに対応する引き継ぎファイルに書き出すという３つの処理を実行する分析プログラム起動スクリプトを生成する、起動スクリプト生成ツールを有する、
分析シーケンス制御システム。
【請求項８】
請求項７に記載の分析シーケンス制御システムであって、
前記記憶装置に、前記分析プログラムの呼び出し順に係る情報が記録された分析シーケンス設定ファイルと、分析ライブラリ名、分析スクリプト名および分析プログラムを呼び出すときに与えるパラメータを含む分析プログラム呼び出し形式情報とが格納され、
前記起動スクリプト生成ツールには、分析シーケンス設定ファイルおよび分析プログラム呼び出し形式情報が与えられ、
前記起動スクリプト生成ツールは、前記分析ライブラリ名で指定された分析ライブラリから前記分析スクリプト名で指定された分析プログラムを特定し、前記パラメータを与えて前記分析プログラムを前記呼び出し順で起動する分析プログラム起動スクリプトを生成する、
分析シーケンス制御システム。
【請求項９】
請求項８に記載の分析シーケンス制御システムであって、
前記記憶装置に、データの種別に対応するデータ名キー情報を含む共通設定ファイルが格納され、
前記分析プログラム呼び出し形式情報は、前記分析プログラムを呼び出すときに引数として設定されるパラメータの名前を示す名前フィールドを有し、
前記名前フィールドには、前記データ名キー情報が設定され、
前記起動スクリプト生成ツールは、前記共通設定ファイルおよび前記分析プログラム呼び出し形式情報に基づき、前記データ名キー情報を用いて、該データを引き渡す分析プログラムと該データを受け取る分析プログラムの間で一貫した前記データのデータ名値を生成する、
分析シーケンス制御システム。
【請求項１０】
複数の分析プログラムを分析シーケンスにしたがって呼び出す分析シーケンス制御方法であって、
前記分析プログラムが並列実行される場合に、前段の分析プログラムに対応して、後段の分析プログラムに引き継ぐデータが格納される位置を示す位置情報を含む引き継ぎファイルを特定する引き継ぎファイル情報を作成し、
前記分析プログラムの実行において、前段の分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに含まれる前記位置情報に基づいて、当該前段の分析プログラムから引き継ぐデータを取得し、当該データに所定の処理を行うことにより生成したデータを記憶装置に格納するとともに、当該生成したデータが格納される位置を示す位置情報を、当該分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに書き出す、
分析シーケンス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析シーケンス制御システムおよび分析シーケンス制御方法に関する。
【背景技術】
【０００２】
世の中の膨大な量のＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）データを分析して、分析結果に基づきコスト削減や新規サービス立案などの価値を創出する取組みが、広く注目されている。データ分析者には、サイエンスとビジネスの知識のほか、データの取得や加工に関するエンジニアリングの知識が求められる。
【０００３】
すなわち、データ分析者は、データを分析する処理（分析処理）の設計に加えて、ファイルシステム、データレイク、データウェアハウス（ＤＷＨ）などを含むデータ格納領域にアクセスする処理（データアクセス処理）、及び、分析結果を可視化する処理（可視化処理）なども設計する必要がある。データアクセス処理、分析処理、及び可視化処理をそれぞれ行うためのソフトウェアプログラムを分析プログラムといい、それらの開発を分析プログラムの開発という。
【０００４】
分析プログラムの開発に関して、データアクセス処理、分析処理、分析結果可視化処理の、それぞれを担う多種多様なＯＳＳ（Ｏｐｅｎ  Ｓｏｕｒｃｅ  Ｓｏｆｔｗａｒｅ）をはじめとするソフトウェアやサービスが利用可能である。データ分析者は、これら複数の分析プログラムを修正しながら組み合わせて１つの分析シーケンスとして組み上げる。分析シーケンスにしたがって各分析プログラムを実行する分析シーケンス制御処理を行うソフトウェアプログラムを分析シーケンス制御プログラムといい、その開発を分析シーケンス制御プログラムの開発という。
【０００５】
このような分析プログラムおよび分析シーケンス制御プログラムは、開発規模が大きくなると、上記各処理を行う各プログラムの開発を、複数のデータ分析者（開発者）で分担することが一般的に行われる。
【０００６】
データアクセス処理、分析処理、および可視化処理は、各処理間でデータを渡したり、一の処理から他の処理を起動したりするなど、互いに密接に関係している。たとえば、最初に可視化処理のためのソフトウェアまたはサービスを選択すると、そのソフトウェアまたはサービスで可視化するためのデータを格納するデータ格納先が限定されることがある。また、先に分析処理のためのソフトウェアまたはサービスを決めるときには、その分析処理に合った入力が得られるように、データアクセス処理において取得対象とするデータ、データ加工の内容、取得するデータのサンプル数などを決める必要がある。そのため、各処理の開発を別のデータ分析者が担当する場合、それぞれの処理間の整合性を保つために、データ分析者同士が意識を合わせる必要である。そのため、複数のデータ分析者で開発を分担するケースでは、各プログラム間で整合がとれるように各プログラムの処理内容やインタフェースを調整して開発を進めなければならない。
【０００７】
分析においてより良い結果を得るために、分析方法等に変更を加えながら何度も分析を繰り返すことが求められる。そして、分析を繰り返す際に、分析対象となるデータの形式を変更したり、データの種別が増加したりして、各プログラムの処理内容やインタフェースを変更する必要が生じることがある。そのため、各プログラムの処理内容やインタフェースの変更について、複数のデータ分析者間で調整した上で再設計する必要があり、このような調整に多くの時間を取られてしまう。これにより、分析アルゴリズムの検討や分析結果の評価にかける時間が短くなる要因となっていた。
【０００８】
このような例として、２つの分析プログラムおよび１つの分析シーケンス制御プログラムの開発を、３人のデータ分析者Ａ、Ｂ、Ｃが分担するケースを以下に示す。データ分析者Ａが担当する第１の分析プログラムは、データベースからデータを取り出す処理を行う。データ分析者Ｂが担当する第２の分析プログラムは、第１の分析プログラムが取り出したデータを分析する処理を行う。データ分析者Ｃが担当する分析シーケンス制御プログラムは、呼び出しインタフェースにより第１の分析プログラムおよび第２の分析プログラムを順に呼び出す処理を行う。さらに、分析シーケンス制御プログラムは、第２の分析プログラムを呼び出す際に、第１の分析プログラムがデータベースから取り出したデータの格納場所を第２の分析プログラムに知らせる。
【０００９】
ここで、分析方法に変更を加えたことにより、分析対象のデータの種別が増えた場合を考える。この場合、データ分析者Ａは、データベースから新たな種別のデータも取り出すように第１の分析プログラムを変更する。データ分析者Ｂは、第１の分析プログラムが取り出した新たな種別のデータも分析するように第２の分析プログラムを変更する。データ分析者Ｃは、第１の分析プログラムがデータベースから取り出した新たな種別のデータの格納場所も第２の分析プログラムに知らせるように分析シーケンス制御プログラムを変更する。
【００１０】
プログラムの変更の手順は次のようになる。データ分析者Ａとデータ分析者Ｂとが、新たな種別のデータのデータ形式を調整して決定する。データ分析者Ａとデータ分析者Ｃとが、新たな種別のデータの格納場所を調整して決定する。データ分析者Ｂとデータ分析者Ｃとが、新たな種別のデータの格納場所をどのようにして第２の分析プログラムに知らせるか調整して決定する。これら調整ののち再設計した各プログラムが完成すると、データ分析者Ａ、Ｂ、Ｃは、同時にサーバ等に配置して使用可能状態にする（以下、「デプロイする」という）。
【００１１】
このように、分析方法に変更が加わる度に各プログラム間のインタフェースが変更となるため、各データ分析者によるインタフェース等の調整にかかる工数が増大することが課題となる。また、完成した各プログラムを使用可能状態にするタイミングを合わせる必要があり、先にプログラムを完成させたデータ分析者は他のプログラムの完成を待たねばならず、各データ分析者に不要な待ち時間が生じることがある。
【００１２】
また、分析には長い時間を要することから、分析にかかる時間を短縮するために、複数の分析プログラムを並列に実行することが求められる。そのため、複数の分析プログラムを並列で実行することを考慮したインタフェースを決めることが必要であり、問題（調整すべき事項）は更に複雑化する。
【００１３】
このような、並列に実行する分析プログラム間でデータを引き継ぐ手法として、例えば特許文献１および特許文献２に記す手法が知られている。
【００１４】
特許文献１には、複数サーバ上でバッチ処理を動かす場合に、複数サーバ上で複数のプログラムが共通のファイルを利用している場合であっても、各ファイルのアクセス情報およびバッチ処理によるファイルアクセスのシーケンスを解析し、その解析結果を利用することで、前段の全てのバッチ処理の終了を待たず、後段の一部の処理を開始する事を可能とする手法が開示されている。
【００１５】
特許文献２には、旧システムから新システムへデータを引き継ぐ場合に、データのアドレス情報を旧システムから新システムへ伝達することによって、新システム上にデータを引き継ぐ手法が開示されている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開平７−１１４５１４号公報
【特許文献２】特開２０００−１３７６０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
前述の通り、分析シーケンス制御プログラムおよび複数の分析プログラムを複数のデータ分析者が分担して開発する場合、各データ分析者によるインタフェース等の調整（意識合わせ）に要する工数や、完成した各プログラムを使用可能状態にする際に生じる待ち時間を削減することが課題となる。
【００１８】
しかしながら、特許文献１、２に開示された手法を適用するだけでは以下の理由から、その課題を解決できなかった。
【００１９】
特許文献１は、プログラムが並列に動作している場合のデータ引き継ぎ方法について開示している。しかし、特許文献１では、引き継ぎ対象のデータは常に固定とされている。そのため、分析シーケンス制御プログラムを構成する複数の分析プログラムを異なる開発者が開発する場合、特許文献１の手法では、引き継ぎ対象のデータが増減する場合に分析プログラム自体の設計を変更することが必要である点は変わらない。そのため、上記開発者間の意識合わせに要する工数が削減されない。
【００２０】
特許文献２には、アドレス情報を引き継ぐことによって、プログラム更新時においてもデータ位置の変更による影響を防ぐ手法が開示されている。しかし、プログラムが並列に動作する場合について考慮されていないため、２つのプログラムを並列に実行することを加味したインタフェースの取り決めは複雑となる。また、アドレス情報自体はプログラム更新の度に作成する必要がある。そのため、上記開発者間の意識合わせに要する工数が削減されない。
【００２１】
本発明の目的は、分析シーケンス制御システムにて実行される複数の分析プログラムと分析プログラムを呼び出す分析シーケンス制御プログラムとをそれぞれ開発する開発者間の意識合わせの工数を削減することを可能にする技術を提供することである。
【課題を解決するための手段】
【００２２】
本発明にかかる分析シーケンス制御システムは、複数の分析プログラムおよび当該複数の分析プログラムを分析シーケンスにしたがって呼び出す分析シーケンス制御プログラムを実行するプロセッサと、前記分析プログラムおよび前記分析シーケンス制御プログラムの実行においてデータの格納に利用される記憶装置と、を備えた分析シーケンス制御システムであって、前記プロセッサは、前記分析シーケンス制御プログラムを実行することにより、前記分析プログラムが並列実行される場合に、前段の分析プログラムに対応して、後段の分析プログラムに引き継ぐデータが格納される位置を示す位置情報を含む引き継ぎファイルを特定する引き継ぎファイル情報を作成し、前記分析プログラムを実行することにより、前段の分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに含まれる前記位置情報に基づいて、当該前段の分析プログラムから引き継ぐデータを取得し、当該データに所定の処理を行うことにより生成したデータを前記記憶装置に格納するとともに、当該生成したデータが格納される位置を示す位置情報を、当該分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに書き出す。
【発明の効果】
【００２３】
本発明によれば、分析プログラムが並列実行される場合に、前段の分析プログラムに対応して、後段の分析プログラムに引き継ぐデータが格納される位置を示す位置情報を含む引き継ぎファイルを特定する引き継ぎファイル情報を作成する。そして、分析プログラムを実行することにより、前段の分析プログラムに対応して作成された引き継ぎファイル情報により特定される引き継ぎファイルに含まれる位置情報に基づいて、当該前段の分析プログラムから引き継ぐデータを取得し、当該データに所定の処理を行うことにより生成したデータを記憶装置に格納するとともに、当該生成したデータが格納される位置を示す位置情報を、当該分析プログラムに対応して作成された引き継ぎファイル情報により特定される前記引き継ぎファイルに書き出す。このようにしたことから、分析プログラム間で引き継ぐデータを引き継ぎファイルにて特定するので、分析プログラム間で引き継ぐデータに変更が生じた場合でも、当該変更を引き継ぎファイルで吸収することができ、分析シーケンス制御プログラムから各分析プログラムを呼び出すインタフェースの変更が生じない。そのため、データの引き継ぎの実現が容易となり、分析シーケンス制御システムにて実行される複数の分析プログラムと分析プログラムを呼び出す分析シーケンス制御プログラムとをそれぞれ開発する開発者間の意識合わせの工数を削減することが可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態にかかるデータ分析システムのハードウェア構成の一例を示すブロック図である。
【図２】分析シーケンス制御サーバの機能の一例を示すブロック図である。
【図３】分析サーバの機能の一例を示すブロック図である。
【図４】共有データストアの機能の一例を示す図である。
【図５】開発サーバの機能の一例を示す図である。
【図６】共通設定ファイルの一例を示す図である。
【図７】引き継ぎファイルの一例を示す図である。
【図８】分析シーケンス設定ファイルの一例を示す図である。
【図９】分析プログラム呼び出し形式の一例を示す図である。
【図１０】分析シーケンス制御プログラムの起動Ｉ／Ｆの一例を示す図である。
【図１１】分析全体の処理の一例を示すフローチャートである。
【図１２】分析シーケンス制御プログラムによる、分析プログラム呼び出し処理の一例を示すフローチャートである。
【図１３】分析プログラム起動スクリプトによる、分析プログラム起動処理の一例を示すフローチャートである。
【図１４】分析プログラム起動スクリプトによる、引き継ぎファイル書き出し処理の一例を示すフローチャートである。
【図１５】起動スクリプト生成ツールの起動スクリプト生成処理の一例を示すフローチャートである。
【図１６】本発明適用時の、データ分析システム変更時のフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明を実施するための形態を、図面を参照しつつ説明する。
【００２６】
図1は、本実施形態に係る分析シーケンス制御システムとしてのデータ分析システム１０１の構成の一例を示す図である。同図に示すように、データ分析システム１０１は、分析シーケンス制御サーバ１０２と、分析サーバ１０３と、共有データストア１０４と、開発サーバ１０５と、クライアントデバイス１０６と、データ格納部１０７と、これらを接続するネットワーク１０８と、を含んで構成されている。
【００２７】
分析シーケンス制御サーバ１０２は、所定の分析シーケンスにしたがって分析プログラムを呼び出す分析シーケンス制御プログラム２０４１を有している。分析シーケンス制御プログラム２０４１は、分析プログラムを特定するＩＤや分析プログラムの実行形式を示す情報、分析プログラムを呼び出す順序を含む。分析シーケンス制御サーバ１０２は、分析シーケンス制御プログラム２０４１を実行することにより、分析サーバ１０３に分析プログラム３０４１の実行を指示する。
【００２８】
分析サーバ１０３は、データアクセス処理、分析処理、及び、分析結果可視化処理などを行う分析プログラムを有している。分析サーバ１０３は、分析シーケンス制御サーバ１０２からの指示により、これら分析プログラム３０４１を実行する。
【００２９】
共有データストア１０４は、分析シーケンス制御サーバ１０２や複数の分析サーバ１０３間で受け渡すデータや、共有が必要なデータを格納する。
【００３０】
開発サーバ１０５は、分析シーケンス制御プログラムや、分析プログラム、または、各種設定ファイルの開発に用いられるサーバである。開発サーバ１０５は、ネットワーク１０８を介して開発されたプログラムや設定ファイルを分析シーケンス制御サーバ１０２や分析サーバ１０３にデプロイする。
【００３１】
クライアントデバイス１０６は、ネットワーク１０８を介し、分析シーケンス制御サーバ１０２に対し、分析シーケンス制御プログラム２０４１の実行を指示する装置である。クライアントデバイス１０６として、パーソナルコンピュータやタブレット端末などが用いられる。
【００３２】
データ格納部１０７は、例えば、ファイルシステム、データレイク、データウェアハウス（ＤＷＨ）などで構成されている。データ格納部１０７は分析対象のデータを格納して保持する。データ格納部１０７に格納される分析対象データは、例えば、ネットワーク１０８を介して外部サーバや外部サービスから取り込まれる。または、データ格納部１０７が有する入出力装置に接続されたＣＤ、ＵＳＢメモリ、外部接続ハードディスクドライブなどの記憶装置から取り込まれる。
【００３３】
ネットワーク１０８は、例えば、有線または無線のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ Ｎｅｔｗｏｒｋ）、インターネット、イントラネット、専用線などである。
【００３４】
分析シーケンス制御サーバ１０２、分析サーバ１０３、共有データストア１０４、及び、開発サーバ１０５は、各々が物理的な計算機によって構成されたサーバ装置であってもよいし、仮想マシンによって構成されてもよい。また、分析シーケンス制御サーバ１０２、分析サーバ１０３、及び、共有データストア１０４は、並列実行のため複数台で構成されてもよい。開発サーバ１０５およびクライアントデバイス１０６も、１台に限定されない。
【００３５】
さらに、各サーバの役割が混合されていてもよく、各サーバの一部又は全部が一つのサーバ装置に含まれてもよい。たとえば、実際の開発とその後の運用において、分析シーケンス制御サーバ１０２および分析サーバ１０３が一つの物理サーバ装置上で構成されていてもよく、分析シーケンス制御サーバ１０２および分析サーバ１０３が、一つの物理サーバ装置の別々の仮想マシン上で構成されていてもよい。
【００３６】
図２は、本実施例の分析シーケンス制御サーバ１０２が備えるハードウェアおよび機能の一例を説明する図である。
【００３７】
分析シーケンス制御サーバ１０２は、入出力回路インタフェース２０１と、プロセッサ２０２と、入出力装置２０３と、記憶装置２０４と、これらを接続する内部通信線（たとえば、バス）と、を含む。
【００３８】
入出力回路インタフェース２０１は、ネットワーク１０８と通信するためのインタフェースである。
【００３９】
プロセッサ２０２は、演算装置および制御装置である。プロセッサ２０２は、記憶装置２０４に格納された分析シーケンス制御プログラム２０４１を実行する。プロセッサ２０２は、分析シーケンス制御プログラム２０４１を実行することにより、複数の分析プログラム３０４１を分析シーケンスにしたがって呼び出す。
【００４０】
入出力装置２０３は、データの入力の受け付け、データの出力、あるいはその両方を行うための装置である。たとえば、入出力装置２０３は、キーボードやマウスなどからの入力を受け付け、プロセッサ２０２からの情報をディスプレイに表示させる。
【００４１】
記憶装置２０４は、揮発性の記憶装置（ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ａｃｃｅｓｓ  Ｒａｎｄｏｍ  Ｍｅｍｏｒｙ）など）と不揮発性の記憶装置（ＨＤＤ、ＳＳＤなど）と、を含む。記憶装置２０４は、分析シーケンス制御プログラム２０４１と、分析シーケンス制御エンジン２０４２と、を格納する。
【００４２】
分析シーケンス制御プログラム２０４１は、分析シーケンスにしたがって各分析プログラムを実行する分析シーケンス制御処理を行うためのソフトウェアプログラムである。分析シーケンス制御プログラム２０４１は、プロセッサ２０２によって実行されることにより、分析シーケンスにしたがって分析プログラムを呼び出すよう分析サーバに指示する。
【００４３】
分析シーケンス制御エンジン２０４２は、分析シーケンス制御プログラム２０４１を実行するアプリケーションフレームワークであり、分析プログラムの並列実行や、分析プログラム障害時の自動リトライ等、分析シーケンス制御に必要な機能を提供する。
【００４４】
図３は、本実施例の分析サーバ１０３が備えるハードウェアおよび機能の一例を説明する図である。
【００４５】
分析サーバ１０３は、入出力回路インタフェース３０１と、プロセッサ３０２と、入出力装置３０３と、記憶装置３０４と、これらを接続する内部通信線（たとえば、バス）と、を含む。
【００４６】
入出力回路インタフェース３０１は、ネットワーク１０８と通信するためのインタフェースである。
【００４７】
プロセッサ３０２は、演算装置および制御装置である。プロセッサ３０２は、記憶装置３０４に格納された、分析プログラム３０４１、分析プログラム起動スクリプト３０４２、リモートプロシージャコール受付プロセス３０４３を実行する。
【００４８】
入出力装置３０３は、データの入力の受け付け、データの出力、あるいはその両方を行うための装置である。たとえば、入出力装置３０３は、キーボードやマウスなどからの入力を受け付け、プロセッサ３０２からの情報をディスプレイに表示させる。
【００４９】
記憶装置３０４は、揮発性の記憶装置（ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ａｃｃｅｓｓ  Ｒａｎｄｏｍ  Ｍｅｍｏｒｙ）など）と不揮発性の記憶装置（ＨＤＤ、ＳＳＤなど）と、を含む。記憶装置３０４は、複数の分析プログラム３０４１と、複数の分析プログラム起動スクリプト３０４２と、リモートプロシージャコール受付プロセス３０４３と、分析ライブラリ３０４４を格納する。
【００５０】
複数種類の分析プログラム３０４１（３０４１［１］〜３０４１［ｎ］、ｎは２以上の自然数）は、データ格納部１０７にアクセスする処理（データアクセス処理）、データを機械学習などのアルゴリズムを用いて分析する処理（分析処理）、分析結果を可視化する処理（分析結果可視化処理）などを行い、処理に応じた結果を出力するプログラムである。複数種類の分析プログラム３０４１［１］〜３０４１［ｎ］は、分析シーケンス制御プログラム２０４１から呼び出され、プロセッサ３０２によって順番（シーケンシャル）に実行される。また、複数種類の分析プログラム３０４１［１］〜３０４１［ｎ］のうち一部又は全部が２つ以上並列（パラレル）に実行されてもよい。分析プログラム３０４１を１個のみ実行することを、１並列という。分析プログラム３０４１をｐ個（ｐは自然数）並列実行することを、ｐ並列という。
【００５１】
分析プログラム３０４１を並列に実行する場合は、並列実行ＩＤリストを基に分析プログラム３０４１を起動する。並列実行ＩＤは、並列実行に含まれる個々の実行単位を識別する並列実行単位識別情報であり、並列実行ＩＤリストは、複数の並列実行ＩＤをリスト化したリスト情報である。並列実行ＩＤとして、例えば、数値（１〜ｐ）を用いてもよく、または、後述する共通設定ファイル４０４１に含まれるデータ名キー４０４１１のデータ名キー値（”ｐｏｗｅｒ”、”ｃｕｒｒｅｎｃｙ”、”ｔｈｅｒｍａｌ”など）を用いてもよい。例えば、複数の機器の故障タイミングを予想するときには、複数の機器毎に異なる並列実行ＩＤを付与し、各機器から収集したデータの分析にかかる分析プログラム３０４１を並列実行して、個々の実行単位を並列実行ＩＤにより識別する。並列実行ＩＤリストに１０個の並列実行ＩＤが含まれている場合は、１０個の並列実行ＩＤのそれぞれについて分析プログラム３０４１を実行して、合計１０個の並列実行とする。データ名キー値は、データ名キー情報に相当する。並列実行方式の詳細は後述する。
【００５２】
分析プログラム起動スクリプト３０４２［１］〜３０４２［ｎ］は、分析プログラム３０４１［１］〜３０４１［ｎ］と連携動作するプログラムである。各分析プログラム起動スクリプト３０４２は、対応する分析プログラム３０４１を起動する。分析プログラム起動スクリプト３０４２［１］〜３０４２［ｎ］は、分析プログラム３０４１［１］〜３０４１［ｎ］それぞれに対し存在し、分析プログラム３０４１［１］〜３０４１［ｎ］の起動にあたって必要な前処理を実施する。すなわち、分析プログラム３０４１がｎ種類存在する場合は、分析プログラム起動スクリプト３０４２もｎ種類存在する。分析プログラム起動スクリプト３０４２は、分析シーケンス制御プログラム２０４１によって並列実行ＩＤ毎に並列実行される。
【００５３】
リモートプロシージャコール受付プロセス３０４３は、分析シーケンス制御プログラム２０４１からの分析プログラム３０４１起動のリモートプロシージャコールを受け付け、分析プログラム起動スクリプト３０４２を起動するためのプロセスである。分析シーケンス制御プログラム２０４１から受け取った指示に応じて、起動する分析プログラム起動スクリプト３０４２を判別し、分析プログラム起動スクリプト３０４２を起動する。
【００５４】
分析ライブラリ３０４４は、分析プログラム３０４１に対し、分析に必要な機能群を提供するライブラリである。例えば機械学習のライブラリや、統計処理を行うライブラリ、データベースやデータレイクへのアクセスを提供するライブラリ、可視化を行うライブラリを用いることが出来る。
【００５５】
分析プログラム３０４１は、その種類毎に異なる開発者が開発しても良い。分析シーケンス制御プログラム２０４１と分析プログラム３０４１の開発者は異なっても良い。
【００５６】
図４は、本実施例の共有データストア１０４が備えるハードウェアおよび機能の一例を説明する図である。
【００５７】
共有データストア１０４は、入出力回路インタフェース４０１と、プロセッサ４０２と、入出力装置４０３と、記憶装置４０４と、これらを接続する内部通信線（たとえば、バス）と、を含む。
【００５８】
入出力回路インタフェース４０１は、ネットワーク１０８と通信するためのインタフェースである。
【００５９】
プロセッサ４０２は、演算装置および制御装置である。プロセッサ４０２は、記憶装置４０４に格納された、共通設定ファイル４０４１、引き継ぎファイル４０４２、分析データ４０４３、分析結果４０４４、などを、ネットワーク１０８を介して分析シーケンス制御サーバ１０２や分析サーバ１０３と受け渡しする処理を行う。
【００６０】
入出力装置４０３は、データの入力の受け付け、データの出力、あるいはその両方を行うための装置である。たとえば、入出力装置４０３は、キーボードやマウスなどからの入力を受け付け、プロセッサ４０２からの情報をディスプレイに表示させる。
【００６１】
記憶装置４０４は、揮発性の記憶装置（ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ａｃｃｅｓｓ  Ｒａｎｄｏｍ  Ｍｅｍｏｒｙ）など）と不揮発性の記憶装置（ＨＤＤ、ＳＳＤなど）と、を含む。記憶装置４０４は、共通設定ファイル４０４１、引き継ぎファイル４０４２、分析データ４０４３、分析結果４０４４を格納する。
【００６２】
共通設定ファイル４０４１は、分析シーケンス制御プログラム２０４１や、分析プログラム３０４１が共通で利用する設定をまとめたファイルである。
【００６３】
引き継ぎファイル４０４２は、分析プログラム３０４１間で引き継ぐデータに関する情報をまとめたファイルである。引き継ぎファイル４０４２は、例えば、分析プログラム３０４１の種類毎に存在し、また、分析プログラム３０４１を並列実行する場合は、並列実行ＩＤ毎に存在する。順番に実行される分析プログラム３０４１［１］〜３０４１［ｎ］それぞれにおいて、引き継ぎファイル４０４２［０］〜［ｎ−１］が用いられる。例えば、順番に実行される前段の分析プログラム３０４１［ｋ−１］とその後段の分析プログラム３０４１［ｋ］（ｋは自然数、１＜ｋ≦ｎ）との間での情報の引き継ぎには、引き継ぎファイル４０４２［ｋ−１］が用いられる。最初に実行される分析プログラム３０４１［１］では、分析シーケンス制御エンジン２０４２の起動インタフェース６０１に渡されたパラメータの内容を含む引き継ぎファイル４０４２［０］が用いられる。また、並列実行ＩＤ＝ｓとして実行される前段の分析プログラム３０４１［ｋ−１］と後段の分析プログラム３０４１［ｋ］との間での情報の引き継ぎには、引き継ぎファイル４０４２［ｋ−１］［ｓ］が用いられる。
【００６４】
分析データ４０４３は、例えば、分析プログラム３０４１間で引き継ぐデータであり、前段の分析プログラム３０４１が分析データ４０４３を書き出し、後段の分析プログラム３０４１がその分析データ４０４３を読み込む。引き継ぎファイル４０４２に、分析データ４０４３が格納されている位置を示す位置情報が記録される。分析データ４０４３の位置（格納場所）は、引き継ぎファイル４０４２に含まれるデータ名４０４２０におけるデータ名キー値（”ｐｏｗｅｒ”、”ｃｕｒｒｅｎｃｙ”、”ｔｈｅｒｍａｌ”など）に対応するデータ名値（”ｐｏｗｅｒ＿１２３２．ｃｓｖ”、”ｃｕｒｒｅｎｃｙ＿１２３２．ｃｓｖ”、”ｔｈｅｒｍａｌ＿１２３２．ｃｓｖ”など）によって示される。
【００６５】
分析結果４０４４は、分析シーケンスにしたがって複数種類の分析プログラム３０４１を実行することにより分析された結果データである。分析データ４０４３および分析結果４０４４は、データ格納部１０７に格納しても良い。
【００６６】
図５は、本実施例の開発サーバ１０５が備えるハードウェアおよび機能の一例を説明する図である。
【００６７】
開発サーバ１０５は、入出力回路インタフェース５０１と、プロセッサ５０２と、入出力装置５０３と、記憶装置５０４と、これらを接続する内部通信線（たとえば、バス）と、を含む。
【００６８】
入出力回路インタフェース５０１は、ネットワーク１０８と通信するためのインタフェースである。
【００６９】
プロセッサ５０２は、演算装置および制御装置である。プロセッサ５０２は、記憶装置５０４に格納された、起動スクリプト生成ツール５０４１を実行することによって、分析プログラム起動スクリプト３０４２を生成する。
【００７０】
入出力装置５０３は、データの入力の受け付け、データの出力、あるいはその両方を行うための装置である。たとえば、入出力装置５０３は、キーボードやマウスなどからの入力を受け付け、プロセッサ５０２からの情報をディスプレイに表示させる。
【００７１】
記憶装置５０４は、揮発性の記憶装置（ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ａｃｃｅｓｓ  Ｒａｎｄｏｍ  Ｍｅｍｏｒｙ）など）と不揮発性の記憶装置（ＨＤＤ、ＳＳＤなど）と、を含む。記憶装置５０４は、起動スクリプト生成ツール５０４１、分析シーケンス設定ファイル５０４２、分析プログラム呼び出し形式５０４３を格納する。
【００７２】
起動スクリプト生成ツール５０４１は、分析シーケンス設定ファイル５０４２および分析プログラム呼び出し形式５０４３を基に、分析プログラム起動スクリプト３０４２を生成する。
【００７３】
図６は、共通設定ファイル４０４１が備える要素の一例を説明する図である。
【００７４】
共通設定ファイル４０４１は、サーバアドレス４０４１０と、データ名キー４０４１１と、パラメータキー４０４１２と、パラメータデフォルト値４０４１３と、を含む。
【００７５】
サーバアドレス４０４１０は、分析時に必要なサーバのアドレスを含む。例えば、共有データストア１０４のアドレスや、データ格納部１０７のアドレスを含む。例えば、分析シーケンス制御プログラム２０４１や分析プログラム３０４１がデータ格納部１０７にアクセスする必要がある場合、サーバアドレス４０４１０の情報をアクセス先のアドレスとして利用する。サーバアドレス４０４１０は、サーバの種別（”ａｎａｌｙｚｅ＿ａｄｄｒ”、”ｄｂ＿ａｄｄｒ”など）に対応して、アドレス値（”１９２．１６８．０．１：８２８２”、”１９２．１６８．０．３：８２８２”など）が設定される。
【００７６】
データ名キー４０４１１は、分析プログラム３０４１間で引き継ぐデータを識別するために利用するキーを含む。データ名キー４０４１１は、データの種別（”ｐｏｗｅｒ＿ｆｉｌｅ＿ｎａｍｅ”、”ｃｕｒｒｅｎｃｙ＿ｆｉｌｅ＿ｎａｍｅ”、”ｔｈｅｒｍａｌ＿ｆｉｌｅ＿ｎａｍｅ”など）に対応して、データ名キー値（”ｐｏｗｅｒ”、”ｃｕｒｒｅｎｃｙ”、”ｔｈｅｒｍａｌ”など）が設定される。データ名の引き継ぎに関する詳細は後述する。
【００７７】
パラメータキー４０４１２は、分析シーケンス制御プログラム２０４１を起動するときに設定可能なパラメータの値を用いる場合に利用するキーを含む。パラメータキー４０４１２は、パラメータの種別（”ｔｉｍｅ＿ｒａｎｇｅ＿ｐａｒａｍｅｔｅｒ”、”ｓｔａｒｔ＿ｔｉｍｅ＿ｐａｒａｍｅｔｅｒ”など）に対応して、パラメータキー値（”ｔｉｍｅ＿ｒａｎｇｅ”、”ｓｔａｒｔ＿ｔｉｍｅ”など）が設定される。図６に示す例では、”ｓｔａｒｔ＿ｔｉｍｅ”および”ｔｉｍｅ＿ｒａｎｇｅ”というパラメータキーを有するパラメータを用いて分析シーケンス制御プログラム２０４１を起動する。パラメータキー値は、パラメータキー情報に相当する。分析シーケンス制御プログラム２０４１の起動インタフェースの詳細は、図１０にて述べる。
【００７８】
パラメータデフォルト値４０４１３は、分析シーケンス制御プログラム２０４１を起動する際に設定可能なパラメータのデフォルト値である。パラメータデフォルト値４０４１３は、パラメータキー４０４１２の各パラメータキー値（”ｔｉｍｅ＿ｒａｎｇｅ”、”ｓｔａｒｔ＿ｔｉｍｅ”など）に対してデフォルト値（”１０”、”２０１６−０１−０１Ｔ１８：００：００．０００Ｚ”など）が設定される。分析シーケンス制御プログラム２０４１の起動インタフェースにこれらのパラメータが含まれていない場合、パラメータデフォルト値４０４１３が利用される。
【００７９】
図７は、引き継ぎファイル４０４２が備える要素の一例を説明する図である。
【００８０】
引き継ぎファイル４０４２の数は、分析プログラムの種類数、及び、分析プログラムの並列実行数に対応する。すなわち、分析プログラム３０４１［１］〜３０４１［ｎ］に対して、ｎ個の引き継ぎファイル４０４２（４０４２［０］〜４０４２［ｎ−１］）を有する。また、分析プログラム３０４１［ｋ］がｐ並列で実行される場合、分析プログラム３０４１［ｋ］の並列実行の個々の実行単位それぞれに対応するｐ個の引き継ぎファイル４０４２（４０４２［ｋ−１］［１］〜４０４２［ｋ−１］［ｐ］）を有する。
【００８１】
引き継ぎファイル４０４２は、分析シーケンス制御プログラム２０４１が複数種類の分析プログラム３０４１［１］〜３０４１［ｎ］を順番に呼び出す場合に、先に実行される前段の分析プログラム３０４１［ｋ−１］と、後に実行される後段の分析プログラム３０４１［ｋ］の間で、並列実行単位毎に引き継ぐデータの情報を持つ。例えば、並列実行ＩＤ＝ｓとして実行される前段の分析プログラム３０４１［ｋ−１］と後段の分析プログラム３０４１［ｋ］において、前段の分析プログラム３０４１［ｋ−１］が、引き継ぎファイル４０４２［ｋ−１］［ｓ］を生成し、この引き継ぎファイル４０４２［ｋ−１］［ｓ］を基に、後段の分析プログラム３０４１［ｋ］が前段の分析プログラム３０４１［ｋ−１］からデータを引き継ぐ。
【００８２】
引き継ぎファイル４０４２は、データ名４０４２０と、パラメータ値４０４２１を含む。
【００８３】
データ名４０４２０は、前段の分析プログラム３０４１［ｋ−１］から引き継がれたデータ名を保持する。データ名は、キーバリュー形式で構成され、左辺にキーとして共通設定ファイル４０４１のデータ名キー４０４１１のデータ名キー値（”ｐｏｗｅｒ”、”ｃｕｒｒｅｎｃｙ”、”ｔｈｅｒｍａｌ”など）を持ち、右辺にバリューとしてデータ名値（”ｐｏｗｅｒ＿１２３２．ｃｓｖ”、”ｃｕｒｒｅｎｃｙ＿１２３２．ｃｓｖ”、”ｔｈｅｒｍａｌ＿１２３２．ｃｓｖ”など）を持つ。データ名値はデータが格納されている位置を示す位置情報であり、例えば、ファイル名、データベースサーバのアドレスとテーブル名、データレイクサーバのアドレスとテーブル名など、利用するデータを取得するために十分な情報である。分析プログラム３０４１は、右辺のデータ名値を用いて処理対象のデータにアクセスすることが可能である。また、データ名キー４０４１１を共通設定ファイル４０４１に含むことによって、全ての分析シーケンス制御プログラム２０４１および分析プログラム３０４１は、特定のデータを共通のデータ名キー４０４１１に基づいて受け渡しすることができる。例えば、引き継ぎファイル４０４２のデータ名キー値が”ｐｏｗｅｒ”である場合、このデータ名キー値に対応するデータ名値に示される”ｐｏｗｅｒ＿１２３２．ｃｓｖ”に格納されているデータのデータ種別は、共通設定ファイル４０４１から”ｐｏｗｅｒ＿ｆｉｌｅ＿ｎａｍｅ”であると導かれる。本実施例では以降、データ名値としてファイル名を設定するが、データ名値としてファイル名以外を利用した場合でも同様の方式を適用することが可能である。
【００８４】
パラメータ値４０４２１は、分析シーケンス制御プログラム２０４１の起動時に実際に設定されたパラメータの値を格納する。パラメータ値４０４２１は、左辺にキーとして共通設定ファイル４０４１のパラメータキー４０４１２のデータパラメータキー値（”ｔｉｍｅ＿ｒａｎｇｅ”、”ｓｔａｒｔ＿ｔｉｍｅ”など）を持ち、右辺にバリューとしてパラメータ値（”５”、”２０１７−０６−１０Ｔ１２：００：００．０００Ｚ”など）を持つ。また、パラメータキー４０４１２を共通設定ファイル４０４１に含むことによって、全ての分析シーケンス制御プログラム２０４１および分析プログラム３０４１は、特定のデータを共通のパラメータキー４０４１２に基づいて受け渡しすることができる。例えば、引き継ぎファイル４０４２のパラメータキー値が”ｓｔａｒｔ＿ｔｉｍｅ”である場合、このパラメータキー値に対応するパラメータ値に示される”２０１７−０６−１０Ｔ１２：００：００．０００Ｚ”のパラメータ種別は、共通設定ファイル４０４１から”ｓｔａｒｔ＿ｔｉｍｅ＿ｐａｒａｍｅｔｅｒ”であることが導かれる。分析プログラム３０４１は共通設定ファイル４０４１に含まれるパラメータデフォルト値４０４１３に優先して、このパラメータ値４０４２１を用いて分析を実施する。
【００８５】
図８に示す分析シーケンス設定ファイル５０４２および図９に示す分析プログラム呼び出し形式５０４３は、起動スクリプト生成ツール５０４１が、分析プログラム起動スクリプト３０４２を自動的に生成する場合に利用する設定ファイルである。
【００８６】
図８は、分析シーケンス設定ファイル５０４２の一例を説明する図である。
【００８７】
分析シーケンス設定ファイル５０４２は、分析シーケンスの特定に用いられる分析シーケンスＩＤ５０４２１と、ファンクションのリスト５０４２２、とを含み、ファンクション毎に、ファンクションＩＤ５０４２３と、ファンクションの呼び出しアドレス５０４２４を含む。分析シーケンス制御プログラム２０４１は、起動時にパラメータとして渡される分析シーケンスＩＤと一致する分析シーケンスＩＤ５０４２１で特定される分析シーケンスを実行する。ファンクションＩＤ５０４２３は、分析プログラム３０４１に割り振られるＩＤである。ファンクションＩＤ５０４２３は、分析プログラム呼び出し形式５０４３と対応を取るために利用する。ファンクションの呼び出しアドレス５０４２４は、分析プログラム３０４１を起動するときに利用するアドレスである。本アドレスにアクセスすることで、リモートプロシージャコール受付プロセス３０４３が当該分析プログラム３０４１を起動する分析プログラム起動スクリプト３０４２を呼び出す。ファンクションの呼び出しアドレス５０４２４に、共通設定ファイル４０４１のサーバアドレス４０４１０のサーバ種別を指定しても良く、その場合アドレス値に変換してアクセスを行う。
【００８８】
図９は、分析プログラム呼び出し形式５０４３の一例を示す図である。
【００８９】
分析プログラム呼び出し形式５０４３は、ファンクションＩＤ５０４３１、ライブラリ名５０４３２、スクリプト名５０４３３、並列実行方式５０４３４、パラメータ５０４３５のリスト、を含む。各パラメータ５０４３５は、ｎａｍｅフィールド５０４３６と、ｔｙｐｅフィールド５０４３７とを含む。
【００９０】
ファンクションＩＤ５０４３１は、分析シーケンス設定ファイル５０４２が含むファンクションＩＤ５０４２３との対応を取るものである。分析シーケンス制御プログラム２０４１は分析シーケンス設定ファイル５０４２に含むファンクションＩＤ５０４２３の順番で分析プログラム３０４１を実行する。ライブラリ名５０４３２は分析プログラム３０４１が利用する分析ツールである。ｂａｓｈやＰｙｔｈｏｎ等のスクリプトや専用の分析ツールを利用することが可能である。スクリプト名５０４３３は、分析プログラム３０４１の実行ファイル名である。ｂａｓｈやＰｙｔｈｏｎであれば、スクリプトのファイル名になる。並列実行方式５０４３４は、分析プログラム３０４１を、（１）並列実行ＩＤを基に複数並列で実行するか、（２）１並列で実行するか、を示し、後者の場合は、（２−１）引き継ぎファイル名のリストを引数にするか、（２−２）並列実行ＩＤリストを引数にするか、を示す。パラメータ５０４３５のリストは、分析プログラム３０４１に渡すパラメータのリストである。各パラメータに対応し、分析プログラム３０４１起動時のパラメータが生成される。パラメータ毎に、ｎａｍｅフィールド５０４３６およびｔｙｐｅフィールド５０４３７を有する。ｎａｍｅフィールド５０４３６は、共通設定ファイル４０４１のデータ名キー４０４１１のデータ名キー値との対応付けを表すフィールドである。後述のように、ｎａｍｅフィールド５０４３６の値が共通設定ファイル４０４１のデータ名キー４０４１１のデータ名キー値と一致したキーの値を取り出し、その値をキーとして引き継ぎファイル４０１２のデータ名４０４２０との対応付けを取る処理を行うプログラムを生成する。ｔｙｐｅフィールド５０４３７は、パラメータの属性を示す。具体的には、リードアクセスするデータ名であるか、ライトアクセスするデータ名であるか、起動インタフェース６０１又は共通設定ファイル４０４１から渡されるパラメータであるかを示す。ｔｙｐｅフィールド５０４３７に応じて、生成するプログラムにおいて行う処理が変わる。ライブラリ名５０４３２およびスクリプト名５０４３３は、分析ライブラリ名および分析スクリプト名に相当する。分析プログラム呼び出し形式情報は、ライブラリ名５０４３２、スクリプト名５０４３３、並列実行方式５０４３４、パラメータ５０４３５のリスト、を含む。ｎａｍｅフィールド５０４３６およびｔｙｐｅフィールド５０４３７は、名前フィールドおよびタイプフィールドである。
【００９１】
図１０は、分析シーケンス制御エンジン２０４２の起動インタフェース６０１の一例を示す。
【００９２】
分析シーケンス制御エンジン２０４２は、例えばＲＥＳＴ（ＲＥｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）インタフェースを用いて起動する。起動インタフェース６０１は、分析シーケンスＩＤ、及び、並列実行単位を指定する並列実行ＩＤリストをパラメータとして含み、分析シーケンス制御エンジン２０４２のアドレスを含む。また、分析シーケンス制御プログラム２０４１に対するパラメータ群を含む。分析シーケンス制御エンジン２０４２は、起動インタフェース６０１に含まれる分析シーケンスＩＤを基に、分析シーケンス制御プログラム２０４１を起動する。
【００９３】
図１０では、起動インタフェース６０１において、アドレス（ｈｔｔｐ／／ｗｗｗ．ｈｏｇｅ．ｃｏ．ｊｐ／ａｎａｌｙｓｙｓ）に示される分析シーケンス制御サーバ１０２の分析シーケンス制御エンジン２０４２に対して、分析シーケンスＩＤ（ａｎａｌｙｓｙｓｉｄ＝ＤａｔａＡｎａｌｙｓｉｓ）および並列実行ＩＤリスト（ｄｉｓｔｌｉｓｔ＝／ｔｍｐ／ｄｉｓｔｄｉｒ／）を渡している。
【００９４】
分析シーケンス制御プログラム２０４１に対するパラメータ群は、例えばＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）形式で受け渡す（ＪａｖａＳｃｒｉｐｔは登録商標）。パラメータとして、共通設定ファイル４０４１のパラメータキー４０４１２に記載されたパラメータを含む場合、共通設定ファイル４０４１のパラメータデフォルト値４０４１３の値より、起動インタフェース６０１で渡された値を優先して利用する。共通設定ファイル４０４１のパラメータキー４０４１２に指定されていない値を起動インタフェース６０１で渡すことも可能である。その場合、共通設定ファイル４０４１のパラメータデフォルト値４０４１３を含んでいないため、分析プログラム３０４１内にデフォルト値を設定する、又は起動インタフェース６０１に必ず当該パラメータを設定する、ということが必要になる。
【００９５】
図１１は、データ分析システム１０１の分析全体の流れのフローチャート一例を示す。なお、データ分析システム１０１において、各プログラムを実行する分析シーケンス制御サーバ１０２のプロセッサ２０２および分析サーバ１０３のプロセッサ３０２が動作主体となるが、以下の説明では、便宜上、各プログラムを動作主体として記載している箇所も含まれる。
【００９６】
まず、クライアントデバイス１０６より、分析シーケンス制御エンジン２０４２の起動インタフェース６０１を実行する（Ｓ１１００）。分析シーケンス制御エンジン２０４２は、起動インタフェース６０１に含まれる分析シーケンスＩＤを基に特定した分析シーケンスを有する分析シーケンス制御プログラム２０４１を選択し、実行する（Ｓ１１０１）。
【００９７】
次に、分析シーケンス制御プログラム２０４１は、分析シーケンスＩＤに対応する分析シーケンスにしたがって分析プログラム３０４１［１］〜３０４１［ｎ］の実行を分析サーバ１０３に指示する（Ｓ１１０２）。各分析プログラム３０４１は、複数並列で実行される場合と、１並列で実行される場合が存在する。
【００９８】
リモートプロシージャコール受付プロセス３０４３は分析プログラム３０４１の実行の指示を受け取り、分析プログラム起動スクリプト３０４２を起動する（Ｓ１１０３）。そして、分析プログラム起動スクリプト３０４２は、分析プログラム３０４１を起動し（Ｓ１１０４）、分析プログラム３０４１が分析を実行する（Ｓ１１０５）。分析終了後は処理が分析シーケンス制御プログラム２０４１に戻る。そして、分析シーケンス制御プログラム２０４１は、前段の分析プログラム３０４１［ｋ−１］の実行の終了を確認し、後段の分析プログラム３０４１［ｋ］の実行を行う（Ｓ１１０６）。全ての分析プログラム３０４１［１］〜３０４１［ｎ］の実行が終了すると、クライアントデバイスに分析結果を通知する（Ｓ１１０７）。クライアントデバイス１０６は、分析結果の表示を行う（Ｓ１１０８）。
【００９９】
図１２は、分析シーケンス制御プログラム２０４１における、分析プログラム呼び出し処理の一例を示すフローチャートである。これは、図１１のＳ１１０２における処理の詳細を説明するものである。
【０１００】
まず、分析シーケンス制御プログラム２０４１は、並列実行ＩＤリストを個々の並列実行ＩＤに分解する（Ｓ１２００）。そして、引き継ぎファイル４０４２のファイル名を生成する（Ｓ１２０１）。引き継ぎファイル４０４２のファイル名は、分析プログラム３０４１の並列実行数にかかわらず、並列実行ＩＤ毎に生成する。引き継ぎファイル４０４２のファイル名の生成ロジックは、本発明の目的に反しない限り任意である。例えば、並列実行ＩＤと、分析プログラム３０４１名を組み合わせ、プレフィックスとポストフィックスを加えたものをファイル名とすることが考えられる。すなわち、プロセッサ２０２は、分析シーケンス制御プログラム２０４１を実行することにより、分析プログラム３０４１［ｋ］がｐ並列で実行される場合に該分析プログラム３０４１［ｋ］［１］〜３０４１［ｋ］［ｐ］のそれぞれに引き継ぐデータを特定するデータ名４０４２０のデータ名値を格納するための引き継ぎファイル４０４２［ｋ−１］［１］〜４０４２［ｋ−１］［ｐ］を特定するファイル名を作成する。データ名４０４２０のデータ名値はデータ情報に相当し、引き継ぎファイル４０４２のファイル名は引き継ぎファイル情報に相当する。
【０１０１】
次に、分析プログラム３０４１の呼び出しインタフェースを作成する。これは、並列実行ＩＤ毎に並列実行する場合と、１並列で実行する場合で異なる。
【０１０２】
並列実行ＩＤ毎に並列実行する場合は（Ｓ１２０２でＹｅｓ）、前段の分析プログラム３０４１［ｋ−１］の実行時に生成した、並列実行ＩＤ＝ｓに対応する引き継ぎファイル４０４２［ｋ−１］［ｓ］のファイル名と、後段の分析プログラム３０４１［ｋ］の実行時に生成する引き継ぎファイル４０４２［ｋ］［ｓ］のファイル名を含めた呼び出しインタフェースを生成する（Ｓ１２０３）。すなわち、プロセッサ２０２が分析シーケンス制御プログラム２０４１を実行することにより並列実行ＩＤ＝ｓとして実行される分析プログラム３０４１［ｋ］を呼び出すインタフェースには、当該分析プログラム３０４１［ｋ］の前段の分析プログラム３０４１［ｋ−１］に対応する引き継ぎファイル４０４２［ｋ−１］［ｓ］のファイル名、及び、当該分析プログラム３０４１［ｋ］自身に対応する引き継ぎファイル４０４２［ｋ］［ｓ］のファイル名が引数として含まれる。このようにすることで、分析シーケンス制御プログラム２０４１は分析プログラム３０４１を呼び出すインタフェースにて引き継ぎファイルの情報を容易に指定することができる。また、先頭の分析プログラム３０４１［１］の実行において、前段の分析プログラム３０４１が存在しないことから、分析シーケンス制御エンジン２０４２の起動インタフェース６０１で渡されたパラメータの内容を引き継ぎファイル４０４２［０］として１つ生成し、このファイルを分析プログラム３０４１［１］が用いる引き継ぎファイル４０４２として扱う。このように、分析シーケンス制御プログラム２０４１は、分析プログラム３０４１を並列に起動する場合、分析プログラム３０４１の並列実行ＩＤ毎に別々の引き継ぎファイル４０４２のファイル名を引数に取る。各引き継ぎファイル４０４２には処理対象のデータを特定するデータ名値が含まれるので、引き継ぎファイル４０４２に含まれるデータ名値に示されるデータを共有データストア１０４やデータ格納部１０７から取り出して処理を行う、という形で分析プログラム３０４１を組めば、共通の分析プログラム３０４１を用いて並列実行ＩＤ毎に並列して分析処理を行うことが可能になる。
【０１０３】
１並列で実行する場合は、引き継ぎファイル４０４２のリストを渡す場合と、並列実行ＩＤリストを渡す場合と、がある。
【０１０４】
引き継ぎファイル４０４２のリストを渡す場合は（Ｓ１２０４でＹｅｓ）、前段の分析プログラム３０４１［ｋ−１］の実行時に生成した引き継ぎファイル４０４２［ｋ−１］のリストと、後段の分析プログラム３０４１［ｋ］の実行時に生成する引き継ぎファイル４０４２［ｋ］のリストを含めた呼び出しインタフェースを生成する（Ｓ１２０５）。引き継ぎファイル４０４２［ｋ−１］および引き継ぎファイル４０４２［ｋ］は並列実行ＩＤ全てに対応する。すなわち、プロセッサ２０２が分析シーケンス制御プログラム２０４１を実行することにより分析プログラム３０４１［ｋ］を呼び出すインタフェースには、当該分析プログラム３０４１［ｋ］の前段の分析プログラム３０４１［ｋ−１］に対応する引き継ぎファイル４０４２［ｋ−１］のリストを示す情報、及び、当該分析プログラム３０４１「ｋ」自身に対応する引き継ぎファイル４０４２［ｋ］のリストを示す情報が含まれる。このようにすることで、分析シーケンス制御プログラム２０４１は分析プログラム３０４１を呼び出すインタフェースにて引き継ぎファイルの情報を容易に指定することができる。例えば、特定のディレクトリに引き継ぎファイル４０４２をまとめて配置し、当該ディレクトリを引き継ぎファイル４０４２のリストを示す情報として渡すことが考えられる。並列実行ＩＤ毎に並列実行した場合と同様に、先頭の分析プログラム３０４１［１］の実行において、前段の分析プログラム３０４１が存在しないことから、分析シーケンス制御エンジン２０４２の起動インタフェース６０１に渡されたパラメータの内容を引き継ぎファイル４０４２［０］として１つ生成し、このファイルを分析プログラム３０４１［１］が用いる引き継ぎファイル４０４２として扱う。
【０１０５】
並列実行ＩＤリストを渡す場合は（Ｓ１２０４でＮｏ）、分析シーケンス制御エンジン２０４２の起動インタフェース６０１に含まれる並列実行ＩＤリストをそのまま分析プログラム３０４１に渡す呼び出しインタフェースを生成する（Ｓ１２０６）。
【０１０６】
最後に、それぞれで作成した呼び出しインタフェースを用いて、分析プログラム３０４１を起動する分析プログラム起動スクリプト３０４２を呼び出す（Ｓ１２０７）。
【０１０７】
１つの分析プログラム３０４１の実行が終了した場合（Ｓ１２０８）、他に実行すべき分析プログラム３０４１が残っているときは（Ｓ１２０８でＮｏ）、次に実行する分析プログラム３０４１を特定して、同様の方法でインタフェースを作成した後、分析プログラム３０４１を実行する。全ての分析プログラム３０４１の実行が終わると（Ｓ１２０８でＹｅｓ）、本フローチャートの処理を終了する。
【０１０８】
図１３は、分析シーケンス制御プログラム２０４１における、分析プログラム起動スクリプト３０４２の動作の詳細を示す。
【０１０９】
分析プログラム起動スクリプト３０４２は、まず、共通設定ファイル４０４１を読みだす。以降の動作は、分析プログラム３０４１の並列実行方式によって異なる。
【０１１０】
まず、並列実行ＩＤ毎に並列実行を行う場合（Ｓ１３０１）について述べる。この場合、分析プログラム３０４１［ｋ］を実行する分析プログラム起動スクリプト３０４２の呼び出しインタフェースの引数に基づいて、並列実行ＩＤ＝ｓとなる前段の分析プログラム３０４１［ｋ−１］に対応する引き継ぎファイル４０４２［ｋ−１］［ｓ］を読みだす（Ｓ１３０２）。そして、読み出した引き継ぎファイル４０４２［ｋ−１］［ｓ］の内容と、共通設定ファイル４０４１のデータ名キー４０４１１のデータ名値を用いて、分析プログラム３０４１が利用するデータの位置（格納場所）を示す位置情報としての読み出しファイル名を特定する（Ｓ１３０３）。これは、全ての分析プログラム３０４１は、共通設定ファイル４０４１のデータ名キー４０４１１に対して特定のデータを結びつけるように処理していることから、分析プログラム３０４１があるデータ名キー４０４１１に対応するデータを読み出したい場合は、当該データ名キー４０４１１のデータ名キー値に対応するデータ名値（ファイル名）を、引き継ぎファイル４０４２から読み出すことで、読み出したデータ名値に基づいて処理対象のデータの位置（格納場所）を後段の分析プログラム３０４１［ｋ］が把握することが可能となる。また、分析プログラムがあるデータ名キー４０４１１に対応するデータを書き出したい場合も同様である。このようにすることで、前段の分析プログラム３０４１［ｋ−１］と、後段の分析プログラム３０４１［ｋ］との間で、適切にデータを引き継ぐことが可能となる。次に、分析データ４０３３や分析結果４０４４などのデータの位置（格納場所）を示す位置情報としての書き込みファイル名を生成する（Ｓ１３０４）。ファイル名生成ロジックは、本発明の目的に反しない限り任意である。例えば引き継ぎファイル４０４２のファイル名にプレフィックスとポストフィックスを付加すれば良い。更に、引き継ぎファイル４０４２からパラメータを取り出す（Ｓ１３０５）。そして、分析プログラム３０４１のインタフェース仕様に合わせ、読み出しファイル名、書き込みファイル名および取り出したパラメータを引数として分析プログラム３０４１を起動する（Ｓ１３０６）。最後に、分析シーケンスにしたがって次に実行される後段の分析プログラム３０４１向けに、引き継ぎファイル４０４２を生成して書き出す（Ｓ１３０７）。新たに生成した引き継ぎファイル４０４２は、現在実行している分析プログラム３０４１を起動した分析プログラム起動スクリプト３０４２の呼び出しインタフェースに含まれる、現在の分析プログラム３０４１向け引き継ぎファイル４０４２のファイル名を利用する。すなわち、プロセッサ３０２は、分析プログラム３０４１［ｋ］を実行することにより、その前段の分析プログラム３０４１［ｋ−１］に対応する引き継ぎファイル［ｋ−１］［ｓ］のファイル名により特定される引き継ぎファイル［ｋ−１］［ｓ］に格納されたデータ名値（ファイル名）により特定される引き継ぎデータを取得し、この引き継ぎデータを用いた所定の処理により生成されたデータを特定するデータ名値（ファイル名）を、分析プログラム［ｋ］に対応する引き継ぎファイル４０４２［ｋ］［ｓ］のファイル名により特定される引き継ぎファイル［ｋ］［ｓ］に書き出す。並列実行ＩＤ毎に異なる引き継ぎファイル４０４２のファイル名が呼び出しインタフェースに設定されているため、並列実行ＩＤ毎に異なるファイル名を有する引き継ぎファイル４０４２が生成される。このように、分析プログラム３０４１からみると、引き継ぎファイル４０４２の存在が見えないため、本発明では分析プログラム３０４１の開発者が、周りの分析プログラム実行環境について意識する必要が無くなる。
【０１１１】
次に、引き継ぎファイル４０４２のリストを呼び出しインタフェースに含む場合（Ｓ１３０８）、まず、前段の分析プログラム３０４１［ｋ−１］の引き継ぎファイル４０４２のリスト、今回実行する後段の分析プログラム３０４１［ｋ］の引き継ぎファイル４０４２のリストを共に、分解する（Ｓ１３０９）。各リストには、引き継ぎファイル４０４０２のファイル名が複数含まれていることもあれば、１つしか含まれていないこともある。そして、並列実行ＩＤ毎に並列実行した場合と同様に、前段の分析プログラム３０４１［ｋ−１］の全ての引き継ぎファイル４０４２を読み出し（Ｓ１３１０）、共通設定ファイル４０４１のデータ名キー４０４１１のデータ名値を基に、読み出すファイルを特定する（Ｓ１３１１）。また、並列実行ＩＤ毎に分析データ４０３３や分析結果４０４４などをデータの位置（格納場所）を示す位置情報としての書き込みファイル名を生成する（Ｓ１３１２）。また、引き継ぎファイル４０４２からパラメータを取り出す（Ｓ１３１３）。そして、分析プログラム３０４１のインタフェースの仕様に合わせ、読み出しファイル名のリスト、書き込みファイル名のリストおよび読み出したパラメータを引数として、分析プログラム３０４１を起動する（Ｓ１３１４）。最後に、並列実行ＩＤ毎に並列実行する場合と同様に、最後に、分析シーケンスにしたがって次に実行される後段の分析プログラム３０４１向けに、引き継ぎファイル４０４２を生成して並列実行ＩＤ毎に書き出す（Ｓ１３１５）。この場合も、また、分析プログラム３０４１からみると、引き継ぎファイル４０４２の存在が見えないため、分析プログラム３０４１の開発者は、周りの分析プログラム実行環境について意識する必要が無くなる。
【０１１２】
最後に、並列実行ＩＤリストを呼び出しインタフェースに含む場合、並列実行ＩＤのリストを引数として、分析プログラム３０４１を起動する（Ｓ１３１６）。分析プログラム３０４１は並列実行ＩＤのリストを認識し、プログラムを実行する。本方式では並列実行ＩＤを分析プログラム３０４１が意識する必要があり、分析プログラム３０４１の開発者が引き継ぎファイル４０４２の存在を意識する必要が生じる。このような並列実行ＩＤのリストを受け渡す方式は、例えば並列実行ＩＤのリストを動的に書き換える場合など、特殊なケースで利用する事が可能である。これは、例えば並列実行ＩＤのリストを特定のディレクトリ内のファイル名とし、ディレクトリ内のファイル数を分析プログラム３０４１内で変更する事で実現することが可能である。なお、並列実行ＩＤリストを呼び出しインタフェースに含むケースは省略してもよい。
【０１１３】
図１４は、引き継ぎファイル書き込み方式の一例を示す。
【０１１４】
本ファイルには、まずパラメータを書き込み（Ｓ１４００）、次に読み出しファイル名を書き込み（Ｓ１４０１）、最後に書き込みファイル名（Ｓ１４０２）を書き込めば良い。それぞれ、共通設定ファイル４０４１に含まれるデータ名キー４０４１１のデータ名値やパラメータキー４０４１２のパラメータキー値をキーとして、実際に利用するファイル名や、パラメータの値を書き込む。
【０１１５】
図１５は、起動スクリプト生成ツール５０４１の動作フローの一例を示す。
【０１１６】
起動スクリプト生成ツール５０４１は、分析シーケンス設定ファイル５０４２および分析プログラム呼び出し形式５０４３を基に、分析プログラム起動スクリプト３０４２を生成するプログラムである。分析シーケンス設定ファイル５０４２は、分析シーケンス制御プログラム２０４１に対して１つ存在し、分析プログラム呼び出し形式５０４３は、分析シーケンス制御プログラム２０４１より呼び出される分析プログラム３０４１の種類毎に１つ存在する。すなわち、分析プログラム呼び出し形式５０４３と分析プログラム３０４１は１対１で対応している。また、分析シーケンス設定ファイル５０４２は分析シーケンス制御プログラム２０４１の開発者が作成し、分析プログラム呼び出し形式５０４３は、それぞれに対応する分析プログラム３０４１の開発者が作成することが自然である。
【０１１７】
まず、起動スクリプト生成ツール５０４１は、分析シーケンス設定ファイル５０４２を読み出す（Ｓ１５００）。次に、分析シーケンス設定ファイル５０４２に含まれるファンクションＩＤ５０４２３を記載順に並べたリストを作成する（Ｓ１５０１）。そして、ファンクションＩＤ５０４２３のリストの先頭から末尾まで順に以下の処理を実施する。処理対象となる１つのファンクションＩＤ５０４２３を定めたら（Ｓ１５０２）、対応する分析プログラム呼び出し形式５０４３を読み出す（Ｓ１５０３）。分析プログラム呼び出し形式５０４３は、分析シーケンス制御プログラム２０４１より呼び出される分析プログラム３０４１の種類毎に存在し、ファンクションＩＤ５０４２３と一致するファンクションＩＤ５０４３１を含む分析プログラム呼び出し形式５０４３が存在する必要がある。もし、ファンクションＩＤ５０４２３に対応する分析プログラム呼び出し形式５０４３が見つからない場合は、エラーを表示して、処理を終了する。
【０１１８】
以降、分析プログラム起動スクリプト３０４２のプログラムを順次生成する。
【０１１９】
まず、共通設定ファイル４０４１読み出しプログラムを生成する（Ｓ１５０４）。これは、共通設定ファイル４０４１の形式が固定されていれば、常に同一のプログラムでよい。例えば、共通設定ファイル４０４１が図６に示すようにＪＳＯＮ形式となっていれば、ＪＳＯＮ形式のファイルを読み出すプログラムを生成すればよい。
【０１２０】
次に、分析プログラム呼び出し形式５０４３より、分析プログラム３０４１の呼び出しパラメータのリストを生成する（Ｓ１５０５）。そして、リストのパラメータ１つずつに対し、パラメータを生成するプログラムを作成する。
【０１２１】
並列実行ＩＤに基づいて分析プログラム３０４１［ｋ］を並列実行する場合（Ｓ１５０６でＹｅｓ）、並列実行ＩＤ＝ｓとなる前段の分析プログラム３０４１［ｋ−１］が生成した引き継ぎファイル４０４２［ｋ−１］［ｓ］を読み出すプログラムを生成する（Ｓ１５０７）。そして、分析プログラム３０４１のパラメータを生成するプログラムを生成する（Ｓ１５０８）。これは、パラメータごとのｎａｍｅフィールド５０４３６とｔｙｐｅフィールド５０４３７に基づき、次のよう生成する。まず、ｔｙｐｅフィールド５０４３７がリード（ｒｅａｄ）の場合は、前段の分析プログラム３０４１［ｋ−１］が生成した引き継ぎファイル４０４２［ｋ−１］［ｓ］に引き継ぎデータの位置（格納場所）を示すデータ名値であるファイル名が含まれている。そのため、分析プログラム呼び出し形式５０４３のｎａｍｅフィールド５０４３６の値と、共通設定ファイル４０４１のデータ名キー４０４１１の一致するキーの値を取り出し、取り出した値をキーとして、引き継ぎファイル４０４２［ｋ−１］［ｓ］から、このファイル名を取り出すプログラムを生成する。ｔｙｐｅフィールド５０４３７がライト（ｗｒｉｔｅ）の場合は、書き込みファイル名を生成するプログラムを生成する。最後に、ｔｙｐｅフィールド５０４３７がパラメータ（ｐａｒａｍｓ）の場合は、前段の分析プログラム３０４１が生成した引き継ぎファイル４０４２［ｋ−１］［ｓ］にパラメータ値が含まれている。そのため、分析プログラム呼び出し形式５０４３のｎａｍｅフィールド５０４３６の値と、共通設定ファイル４０４１のパラメータキー４０４１２の一致するキーの値を取り出し、取り出した値をキーとして、引き継ぎファイル４０４２［ｋ−１］［ｓ］から、利用するパラメータの値を取り出すプログラムを生成する。
【０１２２】
引き継ぎファイル４０４２［ｋ−１］のリストを引数として分析プログラム３０４１を呼び出す場合（Ｓ１５０８でＮｏかつＳ１５０９でＹｅｓ）、まず、引き継ぎファイル４０４２［ｋ−１］のリストを引き継ぎファイル４０４２［ｋ−１］に分解するプログラムを生成する（Ｓ１５１０）。そして引き継ぎファイル４０４２［ｋ−１］毎に、並列実行ＩＤ毎に並列実行する場合と同様に、パラメータのｔｙｐｅフィールド５０４３７の値に応じて、引き継ぎファイル４０４２［ｋ−１］を読み出し、書き込み、呼び出しインタフェースのパラメータの取り出しを行うプログラムを生成し（Ｓ１５１１）、分析プログラム３０４１のパラメータを生成するプログラムを生成する（Ｓ１５１２）。
【０１２３】
並列実行ＩＤのリストを元に分析プログラムを実行する場合（Ｓ１５０９でＮｏ）、並列実行ＩＤのリストをパラメータとして分析プログラム３０４１を実行するプログラムを生成する（Ｓ１５１３）。
【０１２４】
全てのパラメータに対するプログラム生成処理が終了した後に（Ｓ１５１４）、分析プログラムの起動パラメータを生成できるので、分析プログラム呼び出し形式５０４３に含まれるライブラリ名およびスクリプト名と組み合わせて分析プログラム３０４１を実行するプログラムを生成する（Ｓ１５１５）。
【０１２５】
最後に、引き継ぎファイルを書き出すプログラムを生成する（Ｓ１５１６）。これは、前の分析プログラム３０４１から読み出したデータを全てそのまま書き込むと共に、今回新たに生成した書き込みパラメータのｎａｍｅと、共通設定ファイル４０４１のデータ名キー４０４１１の一致するキーの値を取り出し、取り出した値をキーとし、ファイル名を値として、引き継ぎファイル４０４２に書き込みを行うプログラムを生成する。
【０１２６】
最後に生成したプログラムを、分析プログラム起動スクリプト３０４２のプログラムとして書き出す。本プログラムは、任意のスクリプトを用いればよく、例えば、シェルスクリプトとして生成することや、ｐｙｔｈｏｎスクリプトとして生成することが考えられる（Ｓ１５１７）。
【０１２７】
そして、これらの処理を、全てのファンクションＩＤ５０４２３に対して実行が終了するまで繰り返す（Ｓ１５１８）。
【０１２８】
以上により、分析プログラム起動スクリプト３０４２を自動的に生成することが可能である。分析プログラム３０４１の開発者からみると、分析プログラム起動スクリプト３０４２という、本発明の実施環境に依存したプログラムの実装が不要となるので、環境について気にすることなく分析プログラム３０４１の作成に集中することが可能となり、分析プログラム３０４１の施行に必要な期間を更に短縮することが可能となる。
【０１２９】
本仕組みを用いて、分析シーケンス制御プログラム２０４１の開発者と、分析プログラム３０４１［１］、３０４１［２］のそれぞれの開発者２人との計３名でシステムを開発した場合に、分析プログラム３０４１［１］と分析プログラム３０４１［２］間で新たに１つの種類のデータの引き継ぎが必要となった場合のシステム改変シーケンスの一例を図１６に示す。
【０１３０】
まず、前段の分析プログラム３０４１［１］の開発者が、新たに作成するデータ（以下、「本データ」という）の構造を決定する（Ｓ１６００）。そして、分析プログラム３０４１［１］を、本データを書き出しパラメータとするようにプログラムを設計変更し、併せて分析プログラム３０４１［１］に対応する分析プログラム呼び出し形式５０４３を変更する（Ｓ１６０１）、そして、起動スクリプト生成ツール５０４１を実行する（Ｓ１６０２）。これにより、分析プログラム３０４１［１］向けの分析プログラム起動スクリプト３０４２が作成される。そして、分析プログラム３０４１［１］の実装を行い（Ｓ１６０３）、環境にデプロイする（Ｓ１６０４）。
【０１３１】
後段の分析プログラム３０４１［２］の開発者は、まず、前段の分析プログラム３０４１［１］の開発者と本データのデータ形式を合意する。次に、分析プログラム３０４１［２］を、本データを読み出しパラメータとするように設計変更し、合わせて分析プログラム３０４１［１］に対応する分析プログラム呼び出し形式５０４３を変更する（Ｓ１６０５）。そして、起動スクリプト生成ツール５０４１を実行する（Ｓ１６０６）。これにより、分析プログラム３０４１［２］向けの分析プログラム起動スクリプト３０４２が生成される。そして、分析プログラム３０４１［２］の実装を行い（Ｓ１６０７）、実行環境にデプロイする（Ｓ１６０８）。ここで、分析プログラム３０４１［１］のデプロイ（Ｓ１６０４）を、分析プログラム３０４１［２］のデプロイ（Ｓ１６０８）より前に実施するようにすることに気をつければ良い。
【０１３２】
本シーケンスより分かるように、分析シーケンス制御プログラム２０４１の変更が不要となる。これは、分析プログラム３０４１間のデータのやり取りが全て引き継ぎファイル４０４２によって実施されるようになり、分析プログラム３０４１間でやり取りするデータが変更になったとしても、引き継ぎファイル４０４２名に変更はなく、変更の影響が引き継ぎファイル４０４２の中身に抑えられていることによる。また、分析プログラム３０４１のデプロイのタイミングも、以前は分析シーケンス制御プログラム２０４１および、全ての分析プログラム３０４１を同時にデプロイする必要があったが、本発明により、分析プログラム３０４１間の単純なデプロイ順序のみ守れば良い形となっていることが分かる。
【０１３３】
以上より、課題であった、分析プログラムおよび分析シーケンス制御プログラムの開発を複数の開発者で行う場合、開発者間で分析方法の変更に伴うインタフェースの合意や、プログラムのデプロイなどの調整などに必要な時間を、短縮することが可能となる。これにより、分析プログラム作成により重点的に取り組むことが可能となると考えられる。
【０１３４】
また、本発明によって、分析プログラム設計者が、引き継ぎファイル４０４２関連の設計を実施する必要が生じるが、起動スクリプト生成ツール５０４１を用いることに依って、分析プログラム設計者が追加で実施する必要がある事柄を、分析プログラム呼び出し形式５０４３の作成のみに抑えることが可能である。
【０１３５】
以上より、本実施形態のデータ分析システム１０１によれば、分析プログラム３０４１が並列実行される場合に、前段の分析プログラム３０４１［ｋ−１］に対応して、後段の分析プログラム３０４１［ｋ］に引き継ぐデータが格納される位置を示すデータ名値を含む引き継ぎファイル４０４２［ｋ−１］を特定する引き継ぎファイル情報を作成する。そして、分析プログラム３０４１［ｋ］を実行することにより、前段の分析プログラム３０４１［ｋ−１］に対応して作成されたファイル名により特定される引き継ぎファイル［ｋ−１］に含まれるデータ名値に基づいて、当該前段の分析プログラム３０４１［ｋ−１］から引き継ぐデータを取得し、当該データに所定の処理を行うことにより生成したデータを記憶装置として共有データストア１０４やデータ格納部１０７に格納するとともに、当該生成したデータが格納される位置を示すデータ名値を、当該分析プログラムに対応して作成されたファイル名により特定される引き継ぎファイル４０４２［ｋ］に書き出す。このようにしたことから、分析プログラム３０４１間で引き継ぐデータを引き継ぎファイル４０４２にて特定するので、分析プログラム３０４１間で引き継ぐデータに変更が生じた場合でも、当該変更を引き継ぎファイル４０４２で吸収することができ、分析シーケンス制御プログラム２０４１から各分析プログラム３０４１を呼び出すインタフェースの変更が生じない。そのため、データの引き継ぎの実現が容易となり、データ分析システム１０１にて実行される複数の分析プログラム３０４１と分析プログラム３０４１を呼び出す分析シーケンス制御プログラム２０４１とをそれぞれ開発する開発者間の意識合わせの工数を削減することが可能となる。
【０１３６】
また、分析シーケンス制御プログラム２０４１が分析プログラム３０４１を呼び出すための呼び出しインタフェースには、分析プログラム３０４１［ｋ］の前段の分析プログラム３０４１［ｋ−１］に対応する引き継ぎファイル４０４２［ｋ−１］および分析プログラム３０４１［ｋ］に対応する引き継ぎファイル４０４２「ｋ」、又は、分析プログラム３０４１［ｋ］の前段の分析プログラム３０４１［ｋ−１］に対応する引き継ぎファイル４０４２［ｋ−１］のリストおよび分析プログラム３０４１［ｋ］に対応する引き継ぎファイル４０４２［ｋ］のリストが含まれる。このようにしたことから、分析シーケンス制御プログラム２０４１は分析プログラム３０４１を呼び出すための呼び出しインタフェースにて、引き継ぎファイル４０４２の情報を容易に指定することができる。
【０１３７】
また、共有データストア１０４の記憶装置４０４に、データの種別に対応するデータ名キー値を含む共通設定ファイル４０４１が格納される。引き継ぎファイル４０４２［ｋ−１］は、当該引き継ぎファイル４０４２［ｋ−１］に対応する分析プログラム３０４１［ｋ−１］がその後段の分析プログラム３０４１［ｋ］に引き継ぐデータの種別に対応するデータ名キー値と当該データが格納される位置を示すデータ名値とを対応づけて含む。分析サーバ１０３のプロセッサ３０２は、分析プログラム３０４１［ｋ］を実行することにより、前段の分析プログラム３０４１［ｋ−１］に対応する引き継ぎファイル［ｋ−１］および共通設定ファイル４０４１に基づき、データ名キー値を用いて、前段の分析プログラム３０４１［ｋ−１］から引き継ぐデータの種別および当該データが格納されている位置を示すデータ名値を取得する。当該分析プログラム［ｋ］に対応する引き継ぎファイル［ｋ］に、後段の分析プログラム［ｋ＋１］に引き継ぐ前記生成したデータの種別に対応するデータ名キー値と当該データが格納されている位置を示すデータ名値とを関連付けて書き出す。このようにしたことから、共通設定ファイル４０４１においてデータの種別とデータ名キー値とを対応付け、引き継ぎファイル４０４２においてデータ名キー値とデータ名値とを対応付けているので、これら共通設定ファイル４０４１および引き継ぎファイル４０４２に基づいて、分析プログラム３０４１間で引き継ぐデータを特定する情報を共通的かつ集約的に管理することができる。
【０１３８】
また、共有データストア１０４の記憶装置４０４に、分析プログラム３０４１の引数として設定可能なパラメータのデフォルト値が格納された共通設定ファイル４０４１が格納される。分析シーケンス制御プログラム２０４１が分析プログラム３０４１を呼び出すための呼び出しインタフェースには、当該分析プログラム３０４１の引数として設定可能なパラメータの値を含めることができる。分析プログラム３０４１は、呼び出しインタフェースにおいて当該分析プログラム３０４１の引数として設定可能なパラメータの値が設定されていれば当該パラメータの値を用い、設定可能なパラメータの値が設定されていなければデフォルト値を用いる。このようにしたことから、分析プログラム３０４１に設定可能なパラメータについて、そのデフォルト値を共通設定ファイル４０４１に予め設定しておいても良いし、分析プログラム３０４１を呼び出すインタフェースで指定しても良いので、データ分析の設計および運用の利便性が高い。
【０１３９】
また、共通設定ファイル４０４１には、パラメータの種別に対応するパラメータキー値を含む。引き継ぎファイル４０４２［ｋ−１］には、当該引き継ぎファイル４０４２［ｋ−１］に対応する分析プログラム３０４１［ｋ−１］がその後段の分析プログラム３０４１［ｋ］に引き渡すパラメータの種別に対応するパラメータキー値と当該パラメータのパラメータ値とを含めることができる。分析サーバ１０３のプロセッサ３０２は、分析プログラム３０４１［ｋ］を実行することにより、前段の分析プログラム３０４１［ｋ−１］に対応する引き継ぎファイル４０４２［ｋ−１］および共通設定ファイル４０４１に基づき、パラメータキー値を用いて、前段の分析プログラム３０４１から引き継ぐパラメータの種別および当該パラメータのパラメータ値を取得する。当該分析プログラム３０４１［ｋ］に対応する引き継ぎファイル４０４２［ｋ］に、後段の分析プログラム３０４１［ｋ＋１］に引き継ぐパラメータの種別に対応するパラメータキー値と当該パラメータのパラメータ値とを関連付けて書き出す。このようにしたことから、分析プログラム３０４１に与えるパラメータの値を分析プログラム３０４１間で受け渡しても良いので、データ分析の設計および運用の利便性が更に高い。
【０１４０】
また、分析シーケンス制御プログラム２０４１が分析プログラム３０４１を呼び出すための呼び出しインタフェースには、並列実行ＩＤをリスト化した並列実行ＩＤリストを含むことができる。そして、並列実行ＩＤリストとして、特定ディレクトリを与え、並列実行ＩＤとして当該特定ディレクトリ配下のファイル名を用いる。このようにしたことから、引き継ぎファイル４０４２ではなく並列実行ＩＤリストを用いる場合に並列実行ＩＤとして特定ディレクトリ配下のファイル名としておくことで、リスト上の並列実行ＩＤを動的に書き換えることが容易に実現可能となり、データ分析の設計および運用の利便性が向上する。
【０１４１】
また、分析プログラム３０４１［ｋ］と連携動作し、当該分析プログラム３０４１［ｋ］の前段の分析プログラム３０４１［ｋ−１］に対応する引き継ぎファイル４０４２［ｋ−１］から引き継ぐデータが格納されている位置を示すデータ名値を読み出し、当該分析プログラム３０４１［ｋ］を呼び出し、当該分析プログラム３０４１［ｋ］の実行により生成されたデータが格納される位置を示すデータ名値を当該分析プログラム［ｋ］に対応する引き継ぎファイル４０４２［ｋ］に書き出すという３つの処理を実行する分析プログラム起動スクリプト３０４２［ｋ］を生成する、起動スクリプト生成ツール５０４１を有する。このようにしたことから、引き継ぎファイル４０４２の読み書きを起動スクリプト生成ツール５０４１で作成された分析プログラム起動スクリプト３０４２が行うので、各分析プログラム３０４１にその処理が不要となる。その結果、各分析プログラム３０４１の開発者の各々が引き継ぎファイル４０４２を読み書きする部分のプログラムを作成して分析プログラム３０４１に組み込む手間が省ける。
【０１４２】
また、開発サーバ１０５の記憶装置５０４に、分析プログラム３０４１の呼び出し順に係る情報が記録された分析シーケンス設定ファイル５０４２と、ライブラリ名、スクリプト名およびプログラムを呼び出すときに与えるパラメータを含む分析プログラム呼び出し形式５０４３とが格納されている。起動スクリプト生成ツール５０４１には、分析シーケンス設定ファイル５０４２および分析プログラム呼び出し形式５０４３が与えられる。起動スクリプト生成ツール５０４１は、ライブラリ名で指定されたライブラリから分析スクリプト名で指定された分析プログラム３０４１を特定し、パラメータを与えて分析プログラム３０４１を分析シーケンス設定ファイル５０４２の呼び出し順で起動する分析プログラム起動スクリプト３０４２を生成する。このようにしたことから、分析シーケンス制御プログラム２０４１の開発者が分析シーケンス設定ファイル５０４２を作成し、分析プログラム３０４１の開発者が分析プログラム呼び出し形式５０４３を作成すればよく、各々の開発者が精通しているファイルを作成するので、開発効率を効果的に高めることができる。
【０１４３】
また、共有データストア１０４の記憶装置４０４に、データの種別に対応するデータ名キー値を含む共通設定ファイル４０４１が格納される。分析プログラム呼び出し形式５０４３は、分析プログラム３０４１を呼び出すときに引数として設定されるパラメータの名前を示すｎａｍｅフィールドを有し、ｎａｍｅフィールドには、データ名キー値が設定される。起動スクリプト生成ツール５０４１は、共通設定ファイル４０４１および分析プログラム呼び出し形式５０４３に基づき、データ名キー値を用いて、該データを引き渡す分析プログラム３０４１と該データを受け取る分析プログラム３０４１の間で一貫したデータのデータ名値（ファイル名）を生成する。このようにしたことから、共通設定ファイル４０４１に格納されているデータに対応するデータ名キー値は、そのデータを引き渡す分析プログラム３０４１とそのデータを受け取る分析プログラム３０４１が共通的に用いる情報なので、そのデータ名キー値と対応付けるようにデータにデータ名値（ファイル名）を付与すれば、自動的に、それら分析プログラム３０４１間で一貫性のあるファイル名とすることができる。
【０１４４】
本技術分野の通常の知識を有する者には、本開示のその他の実装がここに開示された本開示の明細書および実施形態の考察から明らかになる。記述された実施形態の多様な態および／またはコンポーネントは、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本開示の範囲と着想は特許請求の範囲で示される。
【符号の説明】
【０１４５】
１０１…データ分析システム、１０２…分析シーケンス制御サーバ、１０３…分析サーバ、１０４…共有データストア、１０５…開発サーバ、１０６…クライアントデバイス、１０７…データ格納部、１０８…ネットワーク、２０２、３０２…プロセッサ、６０１…起動インタフェース、２０４１…分析シーケンス制御プログラム、２０４２…分析シーケンス制御エンジン、３０４１…分析プログラム、３０４２…分析プログラム起動スクリプト、３０４３…リモートプロシージャコール受付プロセス、４０４１…共通設定ファイル、４０４２…引き継ぎファイル、４０４３…分析データ、４０４４…分析結果、５０４１…起動スクリプト生成ツール、５０４２…分析シーケンス設定ファイル、５０４３…分析プログラム呼び出し形式
【図１】
2019185314.tif 000003
【図２】
2019185314.tif 000004
【図３】
2019185314.tif 000005
【図４】
2019185314.tif 000006
【図５】
2019185314.tif 000007
【図６】
2019185314.tif 000008
【図７】
2019185314.tif 000009
【図８】
2019185314.tif 000010
【図９】
2019185314.tif 000011
【図１０】
2019185314.tif 000012
【図１１】
2019185314.tif 000013
【図１２】
2019185314.tif 000014
【図１３】
2019185314.tif 000015
【図１４】
2019185314.tif 000016
【図１５】
2019185314.tif 000017
【図１６】
2019185314.tif 000018