JP2019185314A - 分析シーケンス制御システムおよび分析シーケンス制御方法 - Google Patents

分析シーケンス制御システムおよび分析シーケンス制御方法 Download PDF

Info

Publication number
JP2019185314A
JP2019185314A JP2018074117A JP2018074117A JP2019185314A JP 2019185314 A JP2019185314 A JP 2019185314A JP 2018074117 A JP2018074117 A JP 2018074117A JP 2018074117 A JP2018074117 A JP 2018074117A JP 2019185314 A JP2019185314 A JP 2019185314A
Authority
JP
Japan
Prior art keywords
analysis
data
analysis program
program
file
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
Application number
JP2018074117A
Other languages
English (en)
Inventor
健 杉本
Takeshi Sugimoto
健 杉本
木下 雅文
Masafumi Kinoshita
雅文 木下
宏明 郡浦
Hiroaki Konoura
宏明 郡浦
中田侑
Yu NAKADA
侑 中田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018074117A priority Critical patent/JP2019185314A/ja
Priority to PCT/JP2019/001531 priority patent/WO2019193810A1/ja
Publication of JP2019185314A publication Critical patent/JP2019185314A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】分析シーケンス制御システムにて実行される複数の分析プログラムと分析プログラムを呼び出す分析シーケンス制御プログラムとをそれぞれ開発する開発者間の意識合わせの工数を削減することを可能にする技術を提供する。【解決手段】データ分析システム101は、前段の分析プログラム3041[k−1]に対応して、後段の分析プログラム3041[k]に引き継ぐデータのファイル名を含む引き継ぎファイル4042[k−1]を特定する引き継ぎファイル名を作成する。そして、分析プログラム3041[k]を実行することにより、前段の分析プログラム3041[k−1]に対応する引き継ぎファイル[k−1]に含まれるファイル名に基づいて、当該前段の分析プログラム3041[k−1]から引き継ぐデータを取得する。【選択図】図12

Description

本発明は、分析シーケンス制御システムおよび分析シーケンス制御方法に関する。
世の中の膨大な量のIoT(Internet of Things)データを分析して、分析結果に基づきコスト削減や新規サービス立案などの価値を創出する取組みが、広く注目されている。データ分析者には、サイエンスとビジネスの知識のほか、データの取得や加工に関するエンジニアリングの知識が求められる。
すなわち、データ分析者は、データを分析する処理(分析処理)の設計に加えて、ファイルシステム、データレイク、データウェアハウス(DWH)などを含むデータ格納領域にアクセスする処理(データアクセス処理)、及び、分析結果を可視化する処理(可視化処理)なども設計する必要がある。データアクセス処理、分析処理、及び可視化処理をそれぞれ行うためのソフトウェアプログラムを分析プログラムといい、それらの開発を分析プログラムの開発という。
分析プログラムの開発に関して、データアクセス処理、分析処理、分析結果可視化処理の、それぞれを担う多種多様なOSS(Open Source Software)をはじめとするソフトウェアやサービスが利用可能である。データ分析者は、これら複数の分析プログラムを修正しながら組み合わせて1つの分析シーケンスとして組み上げる。分析シーケンスにしたがって各分析プログラムを実行する分析シーケンス制御処理を行うソフトウェアプログラムを分析シーケンス制御プログラムといい、その開発を分析シーケンス制御プログラムの開発という。
このような分析プログラムおよび分析シーケンス制御プログラムは、開発規模が大きくなると、上記各処理を行う各プログラムの開発を、複数のデータ分析者(開発者)で分担することが一般的に行われる。
データアクセス処理、分析処理、および可視化処理は、各処理間でデータを渡したり、一の処理から他の処理を起動したりするなど、互いに密接に関係している。たとえば、最初に可視化処理のためのソフトウェアまたはサービスを選択すると、そのソフトウェアまたはサービスで可視化するためのデータを格納するデータ格納先が限定されることがある。また、先に分析処理のためのソフトウェアまたはサービスを決めるときには、その分析処理に合った入力が得られるように、データアクセス処理において取得対象とするデータ、データ加工の内容、取得するデータのサンプル数などを決める必要がある。そのため、各処理の開発を別のデータ分析者が担当する場合、それぞれの処理間の整合性を保つために、データ分析者同士が意識を合わせる必要である。そのため、複数のデータ分析者で開発を分担するケースでは、各プログラム間で整合がとれるように各プログラムの処理内容やインタフェースを調整して開発を進めなければならない。
分析においてより良い結果を得るために、分析方法等に変更を加えながら何度も分析を繰り返すことが求められる。そして、分析を繰り返す際に、分析対象となるデータの形式を変更したり、データの種別が増加したりして、各プログラムの処理内容やインタフェースを変更する必要が生じることがある。そのため、各プログラムの処理内容やインタフェースの変更について、複数のデータ分析者間で調整した上で再設計する必要があり、このような調整に多くの時間を取られてしまう。これにより、分析アルゴリズムの検討や分析結果の評価にかける時間が短くなる要因となっていた。
このような例として、2つの分析プログラムおよび1つの分析シーケンス制御プログラムの開発を、3人のデータ分析者A、B、Cが分担するケースを以下に示す。データ分析者Aが担当する第1の分析プログラムは、データベースからデータを取り出す処理を行う。データ分析者Bが担当する第2の分析プログラムは、第1の分析プログラムが取り出したデータを分析する処理を行う。データ分析者Cが担当する分析シーケンス制御プログラムは、呼び出しインタフェースにより第1の分析プログラムおよび第2の分析プログラムを順に呼び出す処理を行う。さらに、分析シーケンス制御プログラムは、第2の分析プログラムを呼び出す際に、第1の分析プログラムがデータベースから取り出したデータの格納場所を第2の分析プログラムに知らせる。
ここで、分析方法に変更を加えたことにより、分析対象のデータの種別が増えた場合を考える。この場合、データ分析者Aは、データベースから新たな種別のデータも取り出すように第1の分析プログラムを変更する。データ分析者Bは、第1の分析プログラムが取り出した新たな種別のデータも分析するように第2の分析プログラムを変更する。データ分析者Cは、第1の分析プログラムがデータベースから取り出した新たな種別のデータの格納場所も第2の分析プログラムに知らせるように分析シーケンス制御プログラムを変更する。
プログラムの変更の手順は次のようになる。データ分析者Aとデータ分析者Bとが、新たな種別のデータのデータ形式を調整して決定する。データ分析者Aとデータ分析者Cとが、新たな種別のデータの格納場所を調整して決定する。データ分析者Bとデータ分析者Cとが、新たな種別のデータの格納場所をどのようにして第2の分析プログラムに知らせるか調整して決定する。これら調整ののち再設計した各プログラムが完成すると、データ分析者A、B、Cは、同時にサーバ等に配置して使用可能状態にする(以下、「デプロイする」という)。
このように、分析方法に変更が加わる度に各プログラム間のインタフェースが変更となるため、各データ分析者によるインタフェース等の調整にかかる工数が増大することが課題となる。また、完成した各プログラムを使用可能状態にするタイミングを合わせる必要があり、先にプログラムを完成させたデータ分析者は他のプログラムの完成を待たねばならず、各データ分析者に不要な待ち時間が生じることがある。
また、分析には長い時間を要することから、分析にかかる時間を短縮するために、複数の分析プログラムを並列に実行することが求められる。そのため、複数の分析プログラムを並列で実行することを考慮したインタフェースを決めることが必要であり、問題(調整すべき事項)は更に複雑化する。
このような、並列に実行する分析プログラム間でデータを引き継ぐ手法として、例えば特許文献1および特許文献2に記す手法が知られている。
特許文献1には、複数サーバ上でバッチ処理を動かす場合に、複数サーバ上で複数のプログラムが共通のファイルを利用している場合であっても、各ファイルのアクセス情報およびバッチ処理によるファイルアクセスのシーケンスを解析し、その解析結果を利用することで、前段の全てのバッチ処理の終了を待たず、後段の一部の処理を開始する事を可能とする手法が開示されている。
特許文献2には、旧システムから新システムへデータを引き継ぐ場合に、データのアドレス情報を旧システムから新システムへ伝達することによって、新システム上にデータを引き継ぐ手法が開示されている。
特開平7−114514号公報 特開2000−137604号公報
前述の通り、分析シーケンス制御プログラムおよび複数の分析プログラムを複数のデータ分析者が分担して開発する場合、各データ分析者によるインタフェース等の調整(意識合わせ)に要する工数や、完成した各プログラムを使用可能状態にする際に生じる待ち時間を削減することが課題となる。
しかしながら、特許文献1、2に開示された手法を適用するだけでは以下の理由から、その課題を解決できなかった。
特許文献1は、プログラムが並列に動作している場合のデータ引き継ぎ方法について開示している。しかし、特許文献1では、引き継ぎ対象のデータは常に固定とされている。そのため、分析シーケンス制御プログラムを構成する複数の分析プログラムを異なる開発者が開発する場合、特許文献1の手法では、引き継ぎ対象のデータが増減する場合に分析プログラム自体の設計を変更することが必要である点は変わらない。そのため、上記開発者間の意識合わせに要する工数が削減されない。
特許文献2には、アドレス情報を引き継ぐことによって、プログラム更新時においてもデータ位置の変更による影響を防ぐ手法が開示されている。しかし、プログラムが並列に動作する場合について考慮されていないため、2つのプログラムを並列に実行することを加味したインタフェースの取り決めは複雑となる。また、アドレス情報自体はプログラム更新の度に作成する必要がある。そのため、上記開発者間の意識合わせに要する工数が削減されない。
本発明の目的は、分析シーケンス制御システムにて実行される複数の分析プログラムと分析プログラムを呼び出す分析シーケンス制御プログラムとをそれぞれ開発する開発者間の意識合わせの工数を削減することを可能にする技術を提供することである。
本発明にかかる分析シーケンス制御システムは、複数の分析プログラムおよび当該複数の分析プログラムを分析シーケンスにしたがって呼び出す分析シーケンス制御プログラムを実行するプロセッサと、前記分析プログラムおよび前記分析シーケンス制御プログラムの実行においてデータの格納に利用される記憶装置と、を備えた分析シーケンス制御システムであって、前記プロセッサは、前記分析シーケンス制御プログラムを実行することにより、前記分析プログラムが並列実行される場合に、前段の分析プログラムに対応して、後段の分析プログラムに引き継ぐデータが格納される位置を示す位置情報を含む引き継ぎファイルを特定する引き継ぎファイル情報を作成し、前記分析プログラムを実行することにより、前段の分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに含まれる前記位置情報に基づいて、当該前段の分析プログラムから引き継ぐデータを取得し、当該データに所定の処理を行うことにより生成したデータを前記記憶装置に格納するとともに、当該生成したデータが格納される位置を示す位置情報を、当該分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに書き出す。
本発明によれば、分析プログラムが並列実行される場合に、前段の分析プログラムに対応して、後段の分析プログラムに引き継ぐデータが格納される位置を示す位置情報を含む引き継ぎファイルを特定する引き継ぎファイル情報を作成する。そして、分析プログラムを実行することにより、前段の分析プログラムに対応して作成された引き継ぎファイル情報により特定される引き継ぎファイルに含まれる位置情報に基づいて、当該前段の分析プログラムから引き継ぐデータを取得し、当該データに所定の処理を行うことにより生成したデータを記憶装置に格納するとともに、当該生成したデータが格納される位置を示す位置情報を、当該分析プログラムに対応して作成された引き継ぎファイル情報により特定される前記引き継ぎファイルに書き出す。このようにしたことから、分析プログラム間で引き継ぐデータを引き継ぎファイルにて特定するので、分析プログラム間で引き継ぐデータに変更が生じた場合でも、当該変更を引き継ぎファイルで吸収することができ、分析シーケンス制御プログラムから各分析プログラムを呼び出すインタフェースの変更が生じない。そのため、データの引き継ぎの実現が容易となり、分析シーケンス制御システムにて実行される複数の分析プログラムと分析プログラムを呼び出す分析シーケンス制御プログラムとをそれぞれ開発する開発者間の意識合わせの工数を削減することが可能となる。
本発明の実施形態にかかるデータ分析システムのハードウェア構成の一例を示すブロック図である。 分析シーケンス制御サーバの機能の一例を示すブロック図である。 分析サーバの機能の一例を示すブロック図である。 共有データストアの機能の一例を示す図である。 開発サーバの機能の一例を示す図である。 共通設定ファイルの一例を示す図である。 引き継ぎファイルの一例を示す図である。 分析シーケンス設定ファイルの一例を示す図である。 分析プログラム呼び出し形式の一例を示す図である。 分析シーケンス制御プログラムの起動I/Fの一例を示す図である。 分析全体の処理の一例を示すフローチャートである。 分析シーケンス制御プログラムによる、分析プログラム呼び出し処理の一例を示すフローチャートである。 分析プログラム起動スクリプトによる、分析プログラム起動処理の一例を示すフローチャートである。 分析プログラム起動スクリプトによる、引き継ぎファイル書き出し処理の一例を示すフローチャートである。 起動スクリプト生成ツールの起動スクリプト生成処理の一例を示すフローチャートである。 本発明適用時の、データ分析システム変更時のフローチャートである。
以下、本発明を実施するための形態を、図面を参照しつつ説明する。
図1は、本実施形態に係る分析シーケンス制御システムとしてのデータ分析システム101の構成の一例を示す図である。同図に示すように、データ分析システム101は、分析シーケンス制御サーバ102と、分析サーバ103と、共有データストア104と、開発サーバ105と、クライアントデバイス106と、データ格納部107と、これらを接続するネットワーク108と、を含んで構成されている。
分析シーケンス制御サーバ102は、所定の分析シーケンスにしたがって分析プログラムを呼び出す分析シーケンス制御プログラム2041を有している。分析シーケンス制御プログラム2041は、分析プログラムを特定するIDや分析プログラムの実行形式を示す情報、分析プログラムを呼び出す順序を含む。分析シーケンス制御サーバ102は、分析シーケンス制御プログラム2041を実行することにより、分析サーバ103に分析プログラム3041の実行を指示する。
分析サーバ103は、データアクセス処理、分析処理、及び、分析結果可視化処理などを行う分析プログラムを有している。分析サーバ103は、分析シーケンス制御サーバ102からの指示により、これら分析プログラム3041を実行する。
共有データストア104は、分析シーケンス制御サーバ102や複数の分析サーバ103間で受け渡すデータや、共有が必要なデータを格納する。
開発サーバ105は、分析シーケンス制御プログラムや、分析プログラム、または、各種設定ファイルの開発に用いられるサーバである。開発サーバ105は、ネットワーク108を介して開発されたプログラムや設定ファイルを分析シーケンス制御サーバ102や分析サーバ103にデプロイする。
クライアントデバイス106は、ネットワーク108を介し、分析シーケンス制御サーバ102に対し、分析シーケンス制御プログラム2041の実行を指示する装置である。クライアントデバイス106として、パーソナルコンピュータやタブレット端末などが用いられる。
データ格納部107は、例えば、ファイルシステム、データレイク、データウェアハウス(DWH)などで構成されている。データ格納部107は分析対象のデータを格納して保持する。データ格納部107に格納される分析対象データは、例えば、ネットワーク108を介して外部サーバや外部サービスから取り込まれる。または、データ格納部107が有する入出力装置に接続されたCD、USBメモリ、外部接続ハードディスクドライブなどの記憶装置から取り込まれる。
ネットワーク108は、例えば、有線または無線のLAN(Local Area Network)、WAN(Wide Area Network)、インターネット、イントラネット、専用線などである。
分析シーケンス制御サーバ102、分析サーバ103、共有データストア104、及び、開発サーバ105は、各々が物理的な計算機によって構成されたサーバ装置であってもよいし、仮想マシンによって構成されてもよい。また、分析シーケンス制御サーバ102、分析サーバ103、及び、共有データストア104は、並列実行のため複数台で構成されてもよい。開発サーバ105およびクライアントデバイス106も、1台に限定されない。
さらに、各サーバの役割が混合されていてもよく、各サーバの一部又は全部が一つのサーバ装置に含まれてもよい。たとえば、実際の開発とその後の運用において、分析シーケンス制御サーバ102および分析サーバ103が一つの物理サーバ装置上で構成されていてもよく、分析シーケンス制御サーバ102および分析サーバ103が、一つの物理サーバ装置の別々の仮想マシン上で構成されていてもよい。
図2は、本実施例の分析シーケンス制御サーバ102が備えるハードウェアおよび機能の一例を説明する図である。
分析シーケンス制御サーバ102は、入出力回路インタフェース201と、プロセッサ202と、入出力装置203と、記憶装置204と、これらを接続する内部通信線(たとえば、バス)と、を含む。
入出力回路インタフェース201は、ネットワーク108と通信するためのインタフェースである。
プロセッサ202は、演算装置および制御装置である。プロセッサ202は、記憶装置204に格納された分析シーケンス制御プログラム2041を実行する。プロセッサ202は、分析シーケンス制御プログラム2041を実行することにより、複数の分析プログラム3041を分析シーケンスにしたがって呼び出す。
入出力装置203は、データの入力の受け付け、データの出力、あるいはその両方を行うための装置である。たとえば、入出力装置203は、キーボードやマウスなどからの入力を受け付け、プロセッサ202からの情報をディスプレイに表示させる。
記憶装置204は、揮発性の記憶装置(DRAM(Dynamic Access Random Memory)など)と不揮発性の記憶装置(HDD、SSDなど)と、を含む。記憶装置204は、分析シーケンス制御プログラム2041と、分析シーケンス制御エンジン2042と、を格納する。
分析シーケンス制御プログラム2041は、分析シーケンスにしたがって各分析プログラムを実行する分析シーケンス制御処理を行うためのソフトウェアプログラムである。分析シーケンス制御プログラム2041は、プロセッサ202によって実行されることにより、分析シーケンスにしたがって分析プログラムを呼び出すよう分析サーバに指示する。
分析シーケンス制御エンジン2042は、分析シーケンス制御プログラム2041を実行するアプリケーションフレームワークであり、分析プログラムの並列実行や、分析プログラム障害時の自動リトライ等、分析シーケンス制御に必要な機能を提供する。
図3は、本実施例の分析サーバ103が備えるハードウェアおよび機能の一例を説明する図である。
分析サーバ103は、入出力回路インタフェース301と、プロセッサ302と、入出力装置303と、記憶装置304と、これらを接続する内部通信線(たとえば、バス)と、を含む。
入出力回路インタフェース301は、ネットワーク108と通信するためのインタフェースである。
プロセッサ302は、演算装置および制御装置である。プロセッサ302は、記憶装置304に格納された、分析プログラム3041、分析プログラム起動スクリプト3042、リモートプロシージャコール受付プロセス3043を実行する。
入出力装置303は、データの入力の受け付け、データの出力、あるいはその両方を行うための装置である。たとえば、入出力装置303は、キーボードやマウスなどからの入力を受け付け、プロセッサ302からの情報をディスプレイに表示させる。
記憶装置304は、揮発性の記憶装置(DRAM(Dynamic Access Random Memory)など)と不揮発性の記憶装置(HDD、SSDなど)と、を含む。記憶装置304は、複数の分析プログラム3041と、複数の分析プログラム起動スクリプト3042と、リモートプロシージャコール受付プロセス3043と、分析ライブラリ3044を格納する。
複数種類の分析プログラム3041(3041[1]〜3041[n]、nは2以上の自然数)は、データ格納部107にアクセスする処理(データアクセス処理)、データを機械学習などのアルゴリズムを用いて分析する処理(分析処理)、分析結果を可視化する処理(分析結果可視化処理)などを行い、処理に応じた結果を出力するプログラムである。複数種類の分析プログラム3041[1]〜3041[n]は、分析シーケンス制御プログラム2041から呼び出され、プロセッサ302によって順番(シーケンシャル)に実行される。また、複数種類の分析プログラム3041[1]〜3041[n]のうち一部又は全部が2つ以上並列(パラレル)に実行されてもよい。分析プログラム3041を1個のみ実行することを、1並列という。分析プログラム3041をp個(pは自然数)並列実行することを、p並列という。
分析プログラム3041を並列に実行する場合は、並列実行IDリストを基に分析プログラム3041を起動する。並列実行IDは、並列実行に含まれる個々の実行単位を識別する並列実行単位識別情報であり、並列実行IDリストは、複数の並列実行IDをリスト化したリスト情報である。並列実行IDとして、例えば、数値(1〜p)を用いてもよく、または、後述する共通設定ファイル4041に含まれるデータ名キー40411のデータ名キー値(”power”、”currency”、”thermal”など)を用いてもよい。例えば、複数の機器の故障タイミングを予想するときには、複数の機器毎に異なる並列実行IDを付与し、各機器から収集したデータの分析にかかる分析プログラム3041を並列実行して、個々の実行単位を並列実行IDにより識別する。並列実行IDリストに10個の並列実行IDが含まれている場合は、10個の並列実行IDのそれぞれについて分析プログラム3041を実行して、合計10個の並列実行とする。データ名キー値は、データ名キー情報に相当する。並列実行方式の詳細は後述する。
分析プログラム起動スクリプト3042[1]〜3042[n]は、分析プログラム3041[1]〜3041[n]と連携動作するプログラムである。各分析プログラム起動スクリプト3042は、対応する分析プログラム3041を起動する。分析プログラム起動スクリプト3042[1]〜3042[n]は、分析プログラム3041[1]〜3041[n]それぞれに対し存在し、分析プログラム3041[1]〜3041[n]の起動にあたって必要な前処理を実施する。すなわち、分析プログラム3041がn種類存在する場合は、分析プログラム起動スクリプト3042もn種類存在する。分析プログラム起動スクリプト3042は、分析シーケンス制御プログラム2041によって並列実行ID毎に並列実行される。
リモートプロシージャコール受付プロセス3043は、分析シーケンス制御プログラム2041からの分析プログラム3041起動のリモートプロシージャコールを受け付け、分析プログラム起動スクリプト3042を起動するためのプロセスである。分析シーケンス制御プログラム2041から受け取った指示に応じて、起動する分析プログラム起動スクリプト3042を判別し、分析プログラム起動スクリプト3042を起動する。
分析ライブラリ3044は、分析プログラム3041に対し、分析に必要な機能群を提供するライブラリである。例えば機械学習のライブラリや、統計処理を行うライブラリ、データベースやデータレイクへのアクセスを提供するライブラリ、可視化を行うライブラリを用いることが出来る。
分析プログラム3041は、その種類毎に異なる開発者が開発しても良い。分析シーケンス制御プログラム2041と分析プログラム3041の開発者は異なっても良い。
図4は、本実施例の共有データストア104が備えるハードウェアおよび機能の一例を説明する図である。
共有データストア104は、入出力回路インタフェース401と、プロセッサ402と、入出力装置403と、記憶装置404と、これらを接続する内部通信線(たとえば、バス)と、を含む。
入出力回路インタフェース401は、ネットワーク108と通信するためのインタフェースである。
プロセッサ402は、演算装置および制御装置である。プロセッサ402は、記憶装置404に格納された、共通設定ファイル4041、引き継ぎファイル4042、分析データ4043、分析結果4044、などを、ネットワーク108を介して分析シーケンス制御サーバ102や分析サーバ103と受け渡しする処理を行う。
入出力装置403は、データの入力の受け付け、データの出力、あるいはその両方を行うための装置である。たとえば、入出力装置403は、キーボードやマウスなどからの入力を受け付け、プロセッサ402からの情報をディスプレイに表示させる。
記憶装置404は、揮発性の記憶装置(DRAM(Dynamic Access Random Memory)など)と不揮発性の記憶装置(HDD、SSDなど)と、を含む。記憶装置404は、共通設定ファイル4041、引き継ぎファイル4042、分析データ4043、分析結果4044を格納する。
共通設定ファイル4041は、分析シーケンス制御プログラム2041や、分析プログラム3041が共通で利用する設定をまとめたファイルである。
引き継ぎファイル4042は、分析プログラム3041間で引き継ぐデータに関する情報をまとめたファイルである。引き継ぎファイル4042は、例えば、分析プログラム3041の種類毎に存在し、また、分析プログラム3041を並列実行する場合は、並列実行ID毎に存在する。順番に実行される分析プログラム3041[1]〜3041[n]それぞれにおいて、引き継ぎファイル4042[0]〜[n−1]が用いられる。例えば、順番に実行される前段の分析プログラム3041[k−1]とその後段の分析プログラム3041[k](kは自然数、1<k≦n)との間での情報の引き継ぎには、引き継ぎファイル4042[k−1]が用いられる。最初に実行される分析プログラム3041[1]では、分析シーケンス制御エンジン2042の起動インタフェース601に渡されたパラメータの内容を含む引き継ぎファイル4042[0]が用いられる。また、並列実行ID=sとして実行される前段の分析プログラム3041[k−1]と後段の分析プログラム3041[k]との間での情報の引き継ぎには、引き継ぎファイル4042[k−1][s]が用いられる。
分析データ4043は、例えば、分析プログラム3041間で引き継ぐデータであり、前段の分析プログラム3041が分析データ4043を書き出し、後段の分析プログラム3041がその分析データ4043を読み込む。引き継ぎファイル4042に、分析データ4043が格納されている位置を示す位置情報が記録される。分析データ4043の位置(格納場所)は、引き継ぎファイル4042に含まれるデータ名40420におけるデータ名キー値(”power”、”currency”、”thermal”など)に対応するデータ名値(”power_1232.csv”、”currency_1232.csv”、”thermal_1232.csv”など)によって示される。
分析結果4044は、分析シーケンスにしたがって複数種類の分析プログラム3041を実行することにより分析された結果データである。分析データ4043および分析結果4044は、データ格納部107に格納しても良い。
図5は、本実施例の開発サーバ105が備えるハードウェアおよび機能の一例を説明する図である。
開発サーバ105は、入出力回路インタフェース501と、プロセッサ502と、入出力装置503と、記憶装置504と、これらを接続する内部通信線(たとえば、バス)と、を含む。
入出力回路インタフェース501は、ネットワーク108と通信するためのインタフェースである。
プロセッサ502は、演算装置および制御装置である。プロセッサ502は、記憶装置504に格納された、起動スクリプト生成ツール5041を実行することによって、分析プログラム起動スクリプト3042を生成する。
入出力装置503は、データの入力の受け付け、データの出力、あるいはその両方を行うための装置である。たとえば、入出力装置503は、キーボードやマウスなどからの入力を受け付け、プロセッサ502からの情報をディスプレイに表示させる。
記憶装置504は、揮発性の記憶装置(DRAM(Dynamic Access Random Memory)など)と不揮発性の記憶装置(HDD、SSDなど)と、を含む。記憶装置504は、起動スクリプト生成ツール5041、分析シーケンス設定ファイル5042、分析プログラム呼び出し形式5043を格納する。
起動スクリプト生成ツール5041は、分析シーケンス設定ファイル5042および分析プログラム呼び出し形式5043を基に、分析プログラム起動スクリプト3042を生成する。
図6は、共通設定ファイル4041が備える要素の一例を説明する図である。
共通設定ファイル4041は、サーバアドレス40410と、データ名キー40411と、パラメータキー40412と、パラメータデフォルト値40413と、を含む。
サーバアドレス40410は、分析時に必要なサーバのアドレスを含む。例えば、共有データストア104のアドレスや、データ格納部107のアドレスを含む。例えば、分析シーケンス制御プログラム2041や分析プログラム3041がデータ格納部107にアクセスする必要がある場合、サーバアドレス40410の情報をアクセス先のアドレスとして利用する。サーバアドレス40410は、サーバの種別(”analyze_addr”、”db_addr”など)に対応して、アドレス値(”192.168.0.1:8282”、”192.168.0.3:8282”など)が設定される。
データ名キー40411は、分析プログラム3041間で引き継ぐデータを識別するために利用するキーを含む。データ名キー40411は、データの種別(”power_file_name”、”currency_file_name”、”thermal_file_name”など)に対応して、データ名キー値(”power”、”currency”、”thermal”など)が設定される。データ名の引き継ぎに関する詳細は後述する。
パラメータキー40412は、分析シーケンス制御プログラム2041を起動するときに設定可能なパラメータの値を用いる場合に利用するキーを含む。パラメータキー40412は、パラメータの種別(”time_range_parameter”、”start_time_parameter”など)に対応して、パラメータキー値(”time_range”、”start_time”など)が設定される。図6に示す例では、”start_time”および”time_range”というパラメータキーを有するパラメータを用いて分析シーケンス制御プログラム2041を起動する。パラメータキー値は、パラメータキー情報に相当する。分析シーケンス制御プログラム2041の起動インタフェースの詳細は、図10にて述べる。
パラメータデフォルト値40413は、分析シーケンス制御プログラム2041を起動する際に設定可能なパラメータのデフォルト値である。パラメータデフォルト値40413は、パラメータキー40412の各パラメータキー値(”time_range”、”start_time”など)に対してデフォルト値(”10”、”2016−01−01T18:00:00.000Z”など)が設定される。分析シーケンス制御プログラム2041の起動インタフェースにこれらのパラメータが含まれていない場合、パラメータデフォルト値40413が利用される。
図7は、引き継ぎファイル4042が備える要素の一例を説明する図である。
引き継ぎファイル4042の数は、分析プログラムの種類数、及び、分析プログラムの並列実行数に対応する。すなわち、分析プログラム3041[1]〜3041[n]に対して、n個の引き継ぎファイル4042(4042[0]〜4042[n−1])を有する。また、分析プログラム3041[k]がp並列で実行される場合、分析プログラム3041[k]の並列実行の個々の実行単位それぞれに対応するp個の引き継ぎファイル4042(4042[k−1][1]〜4042[k−1][p])を有する。
引き継ぎファイル4042は、分析シーケンス制御プログラム2041が複数種類の分析プログラム3041[1]〜3041[n]を順番に呼び出す場合に、先に実行される前段の分析プログラム3041[k−1]と、後に実行される後段の分析プログラム3041[k]の間で、並列実行単位毎に引き継ぐデータの情報を持つ。例えば、並列実行ID=sとして実行される前段の分析プログラム3041[k−1]と後段の分析プログラム3041[k]において、前段の分析プログラム3041[k−1]が、引き継ぎファイル4042[k−1][s]を生成し、この引き継ぎファイル4042[k−1][s]を基に、後段の分析プログラム3041[k]が前段の分析プログラム3041[k−1]からデータを引き継ぐ。
引き継ぎファイル4042は、データ名40420と、パラメータ値40421を含む。
データ名40420は、前段の分析プログラム3041[k−1]から引き継がれたデータ名を保持する。データ名は、キーバリュー形式で構成され、左辺にキーとして共通設定ファイル4041のデータ名キー40411のデータ名キー値(”power”、”currency”、”thermal”など)を持ち、右辺にバリューとしてデータ名値(”power_1232.csv”、”currency_1232.csv”、”thermal_1232.csv”など)を持つ。データ名値はデータが格納されている位置を示す位置情報であり、例えば、ファイル名、データベースサーバのアドレスとテーブル名、データレイクサーバのアドレスとテーブル名など、利用するデータを取得するために十分な情報である。分析プログラム3041は、右辺のデータ名値を用いて処理対象のデータにアクセスすることが可能である。また、データ名キー40411を共通設定ファイル4041に含むことによって、全ての分析シーケンス制御プログラム2041および分析プログラム3041は、特定のデータを共通のデータ名キー40411に基づいて受け渡しすることができる。例えば、引き継ぎファイル4042のデータ名キー値が”power”である場合、このデータ名キー値に対応するデータ名値に示される”power_1232.csv”に格納されているデータのデータ種別は、共通設定ファイル4041から”power_file_name”であると導かれる。本実施例では以降、データ名値としてファイル名を設定するが、データ名値としてファイル名以外を利用した場合でも同様の方式を適用することが可能である。
パラメータ値40421は、分析シーケンス制御プログラム2041の起動時に実際に設定されたパラメータの値を格納する。パラメータ値40421は、左辺にキーとして共通設定ファイル4041のパラメータキー40412のデータパラメータキー値(”time_range”、”start_time”など)を持ち、右辺にバリューとしてパラメータ値(”5”、”2017−06−10T12:00:00.000Z”など)を持つ。また、パラメータキー40412を共通設定ファイル4041に含むことによって、全ての分析シーケンス制御プログラム2041および分析プログラム3041は、特定のデータを共通のパラメータキー40412に基づいて受け渡しすることができる。例えば、引き継ぎファイル4042のパラメータキー値が”start_time”である場合、このパラメータキー値に対応するパラメータ値に示される”2017−06−10T12:00:00.000Z”のパラメータ種別は、共通設定ファイル4041から”start_time_parameter”であることが導かれる。分析プログラム3041は共通設定ファイル4041に含まれるパラメータデフォルト値40413に優先して、このパラメータ値40421を用いて分析を実施する。
図8に示す分析シーケンス設定ファイル5042および図9に示す分析プログラム呼び出し形式5043は、起動スクリプト生成ツール5041が、分析プログラム起動スクリプト3042を自動的に生成する場合に利用する設定ファイルである。
図8は、分析シーケンス設定ファイル5042の一例を説明する図である。
分析シーケンス設定ファイル5042は、分析シーケンスの特定に用いられる分析シーケンスID50421と、ファンクションのリスト50422、とを含み、ファンクション毎に、ファンクションID50423と、ファンクションの呼び出しアドレス50424を含む。分析シーケンス制御プログラム2041は、起動時にパラメータとして渡される分析シーケンスIDと一致する分析シーケンスID50421で特定される分析シーケンスを実行する。ファンクションID50423は、分析プログラム3041に割り振られるIDである。ファンクションID50423は、分析プログラム呼び出し形式5043と対応を取るために利用する。ファンクションの呼び出しアドレス50424は、分析プログラム3041を起動するときに利用するアドレスである。本アドレスにアクセスすることで、リモートプロシージャコール受付プロセス3043が当該分析プログラム3041を起動する分析プログラム起動スクリプト3042を呼び出す。ファンクションの呼び出しアドレス50424に、共通設定ファイル4041のサーバアドレス40410のサーバ種別を指定しても良く、その場合アドレス値に変換してアクセスを行う。
図9は、分析プログラム呼び出し形式5043の一例を示す図である。
分析プログラム呼び出し形式5043は、ファンクションID50431、ライブラリ名50432、スクリプト名50433、並列実行方式50434、パラメータ50435のリスト、を含む。各パラメータ50435は、nameフィールド50436と、typeフィールド50437とを含む。
ファンクションID50431は、分析シーケンス設定ファイル5042が含むファンクションID50423との対応を取るものである。分析シーケンス制御プログラム2041は分析シーケンス設定ファイル5042に含むファンクションID50423の順番で分析プログラム3041を実行する。ライブラリ名50432は分析プログラム3041が利用する分析ツールである。bashやPython等のスクリプトや専用の分析ツールを利用することが可能である。スクリプト名50433は、分析プログラム3041の実行ファイル名である。bashやPythonであれば、スクリプトのファイル名になる。並列実行方式50434は、分析プログラム3041を、(1)並列実行IDを基に複数並列で実行するか、(2)1並列で実行するか、を示し、後者の場合は、(2−1)引き継ぎファイル名のリストを引数にするか、(2−2)並列実行IDリストを引数にするか、を示す。パラメータ50435のリストは、分析プログラム3041に渡すパラメータのリストである。各パラメータに対応し、分析プログラム3041起動時のパラメータが生成される。パラメータ毎に、nameフィールド50436およびtypeフィールド50437を有する。nameフィールド50436は、共通設定ファイル4041のデータ名キー40411のデータ名キー値との対応付けを表すフィールドである。後述のように、nameフィールド50436の値が共通設定ファイル4041のデータ名キー40411のデータ名キー値と一致したキーの値を取り出し、その値をキーとして引き継ぎファイル4012のデータ名40420との対応付けを取る処理を行うプログラムを生成する。typeフィールド50437は、パラメータの属性を示す。具体的には、リードアクセスするデータ名であるか、ライトアクセスするデータ名であるか、起動インタフェース601又は共通設定ファイル4041から渡されるパラメータであるかを示す。typeフィールド50437に応じて、生成するプログラムにおいて行う処理が変わる。ライブラリ名50432およびスクリプト名50433は、分析ライブラリ名および分析スクリプト名に相当する。分析プログラム呼び出し形式情報は、ライブラリ名50432、スクリプト名50433、並列実行方式50434、パラメータ50435のリスト、を含む。nameフィールド50436およびtypeフィールド50437は、名前フィールドおよびタイプフィールドである。
図10は、分析シーケンス制御エンジン2042の起動インタフェース601の一例を示す。
分析シーケンス制御エンジン2042は、例えばREST(REpresentational State Transfer)インタフェースを用いて起動する。起動インタフェース601は、分析シーケンスID、及び、並列実行単位を指定する並列実行IDリストをパラメータとして含み、分析シーケンス制御エンジン2042のアドレスを含む。また、分析シーケンス制御プログラム2041に対するパラメータ群を含む。分析シーケンス制御エンジン2042は、起動インタフェース601に含まれる分析シーケンスIDを基に、分析シーケンス制御プログラム2041を起動する。
図10では、起動インタフェース601において、アドレス(http//www.hoge.co.jp/analysys)に示される分析シーケンス制御サーバ102の分析シーケンス制御エンジン2042に対して、分析シーケンスID(analysysid=DataAnalysis)および並列実行IDリスト(distlist=/tmp/distdir/)を渡している。
分析シーケンス制御プログラム2041に対するパラメータ群は、例えばJSON(JavaScript Object Notation)形式で受け渡す(JavaScriptは登録商標)。パラメータとして、共通設定ファイル4041のパラメータキー40412に記載されたパラメータを含む場合、共通設定ファイル4041のパラメータデフォルト値40413の値より、起動インタフェース601で渡された値を優先して利用する。共通設定ファイル4041のパラメータキー40412に指定されていない値を起動インタフェース601で渡すことも可能である。その場合、共通設定ファイル4041のパラメータデフォルト値40413を含んでいないため、分析プログラム3041内にデフォルト値を設定する、又は起動インタフェース601に必ず当該パラメータを設定する、ということが必要になる。
図11は、データ分析システム101の分析全体の流れのフローチャート一例を示す。なお、データ分析システム101において、各プログラムを実行する分析シーケンス制御サーバ102のプロセッサ202および分析サーバ103のプロセッサ302が動作主体となるが、以下の説明では、便宜上、各プログラムを動作主体として記載している箇所も含まれる。
まず、クライアントデバイス106より、分析シーケンス制御エンジン2042の起動インタフェース601を実行する(S1100)。分析シーケンス制御エンジン2042は、起動インタフェース601に含まれる分析シーケンスIDを基に特定した分析シーケンスを有する分析シーケンス制御プログラム2041を選択し、実行する(S1101)。
次に、分析シーケンス制御プログラム2041は、分析シーケンスIDに対応する分析シーケンスにしたがって分析プログラム3041[1]〜3041[n]の実行を分析サーバ103に指示する(S1102)。各分析プログラム3041は、複数並列で実行される場合と、1並列で実行される場合が存在する。
リモートプロシージャコール受付プロセス3043は分析プログラム3041の実行の指示を受け取り、分析プログラム起動スクリプト3042を起動する(S1103)。そして、分析プログラム起動スクリプト3042は、分析プログラム3041を起動し(S1104)、分析プログラム3041が分析を実行する(S1105)。分析終了後は処理が分析シーケンス制御プログラム2041に戻る。そして、分析シーケンス制御プログラム2041は、前段の分析プログラム3041[k−1]の実行の終了を確認し、後段の分析プログラム3041[k]の実行を行う(S1106)。全ての分析プログラム3041[1]〜3041[n]の実行が終了すると、クライアントデバイスに分析結果を通知する(S1107)。クライアントデバイス106は、分析結果の表示を行う(S1108)。
図12は、分析シーケンス制御プログラム2041における、分析プログラム呼び出し処理の一例を示すフローチャートである。これは、図11のS1102における処理の詳細を説明するものである。
まず、分析シーケンス制御プログラム2041は、並列実行IDリストを個々の並列実行IDに分解する(S1200)。そして、引き継ぎファイル4042のファイル名を生成する(S1201)。引き継ぎファイル4042のファイル名は、分析プログラム3041の並列実行数にかかわらず、並列実行ID毎に生成する。引き継ぎファイル4042のファイル名の生成ロジックは、本発明の目的に反しない限り任意である。例えば、並列実行IDと、分析プログラム3041名を組み合わせ、プレフィックスとポストフィックスを加えたものをファイル名とすることが考えられる。すなわち、プロセッサ202は、分析シーケンス制御プログラム2041を実行することにより、分析プログラム3041[k]がp並列で実行される場合に該分析プログラム3041[k][1]〜3041[k][p]のそれぞれに引き継ぐデータを特定するデータ名40420のデータ名値を格納するための引き継ぎファイル4042[k−1][1]〜4042[k−1][p]を特定するファイル名を作成する。データ名40420のデータ名値はデータ情報に相当し、引き継ぎファイル4042のファイル名は引き継ぎファイル情報に相当する。
次に、分析プログラム3041の呼び出しインタフェースを作成する。これは、並列実行ID毎に並列実行する場合と、1並列で実行する場合で異なる。
並列実行ID毎に並列実行する場合は(S1202でYes)、前段の分析プログラム3041[k−1]の実行時に生成した、並列実行ID=sに対応する引き継ぎファイル4042[k−1][s]のファイル名と、後段の分析プログラム3041[k]の実行時に生成する引き継ぎファイル4042[k][s]のファイル名を含めた呼び出しインタフェースを生成する(S1203)。すなわち、プロセッサ202が分析シーケンス制御プログラム2041を実行することにより並列実行ID=sとして実行される分析プログラム3041[k]を呼び出すインタフェースには、当該分析プログラム3041[k]の前段の分析プログラム3041[k−1]に対応する引き継ぎファイル4042[k−1][s]のファイル名、及び、当該分析プログラム3041[k]自身に対応する引き継ぎファイル4042[k][s]のファイル名が引数として含まれる。このようにすることで、分析シーケンス制御プログラム2041は分析プログラム3041を呼び出すインタフェースにて引き継ぎファイルの情報を容易に指定することができる。また、先頭の分析プログラム3041[1]の実行において、前段の分析プログラム3041が存在しないことから、分析シーケンス制御エンジン2042の起動インタフェース601で渡されたパラメータの内容を引き継ぎファイル4042[0]として1つ生成し、このファイルを分析プログラム3041[1]が用いる引き継ぎファイル4042として扱う。このように、分析シーケンス制御プログラム2041は、分析プログラム3041を並列に起動する場合、分析プログラム3041の並列実行ID毎に別々の引き継ぎファイル4042のファイル名を引数に取る。各引き継ぎファイル4042には処理対象のデータを特定するデータ名値が含まれるので、引き継ぎファイル4042に含まれるデータ名値に示されるデータを共有データストア104やデータ格納部107から取り出して処理を行う、という形で分析プログラム3041を組めば、共通の分析プログラム3041を用いて並列実行ID毎に並列して分析処理を行うことが可能になる。
1並列で実行する場合は、引き継ぎファイル4042のリストを渡す場合と、並列実行IDリストを渡す場合と、がある。
引き継ぎファイル4042のリストを渡す場合は(S1204でYes)、前段の分析プログラム3041[k−1]の実行時に生成した引き継ぎファイル4042[k−1]のリストと、後段の分析プログラム3041[k]の実行時に生成する引き継ぎファイル4042[k]のリストを含めた呼び出しインタフェースを生成する(S1205)。引き継ぎファイル4042[k−1]および引き継ぎファイル4042[k]は並列実行ID全てに対応する。すなわち、プロセッサ202が分析シーケンス制御プログラム2041を実行することにより分析プログラム3041[k]を呼び出すインタフェースには、当該分析プログラム3041[k]の前段の分析プログラム3041[k−1]に対応する引き継ぎファイル4042[k−1]のリストを示す情報、及び、当該分析プログラム3041「k」自身に対応する引き継ぎファイル4042[k]のリストを示す情報が含まれる。このようにすることで、分析シーケンス制御プログラム2041は分析プログラム3041を呼び出すインタフェースにて引き継ぎファイルの情報を容易に指定することができる。例えば、特定のディレクトリに引き継ぎファイル4042をまとめて配置し、当該ディレクトリを引き継ぎファイル4042のリストを示す情報として渡すことが考えられる。並列実行ID毎に並列実行した場合と同様に、先頭の分析プログラム3041[1]の実行において、前段の分析プログラム3041が存在しないことから、分析シーケンス制御エンジン2042の起動インタフェース601に渡されたパラメータの内容を引き継ぎファイル4042[0]として1つ生成し、このファイルを分析プログラム3041[1]が用いる引き継ぎファイル4042として扱う。
並列実行IDリストを渡す場合は(S1204でNo)、分析シーケンス制御エンジン2042の起動インタフェース601に含まれる並列実行IDリストをそのまま分析プログラム3041に渡す呼び出しインタフェースを生成する(S1206)。
最後に、それぞれで作成した呼び出しインタフェースを用いて、分析プログラム3041を起動する分析プログラム起動スクリプト3042を呼び出す(S1207)。
1つの分析プログラム3041の実行が終了した場合(S1208)、他に実行すべき分析プログラム3041が残っているときは(S1208でNo)、次に実行する分析プログラム3041を特定して、同様の方法でインタフェースを作成した後、分析プログラム3041を実行する。全ての分析プログラム3041の実行が終わると(S1208でYes)、本フローチャートの処理を終了する。
図13は、分析シーケンス制御プログラム2041における、分析プログラム起動スクリプト3042の動作の詳細を示す。
分析プログラム起動スクリプト3042は、まず、共通設定ファイル4041を読みだす。以降の動作は、分析プログラム3041の並列実行方式によって異なる。
まず、並列実行ID毎に並列実行を行う場合(S1301)について述べる。この場合、分析プログラム3041[k]を実行する分析プログラム起動スクリプト3042の呼び出しインタフェースの引数に基づいて、並列実行ID=sとなる前段の分析プログラム3041[k−1]に対応する引き継ぎファイル4042[k−1][s]を読みだす(S1302)。そして、読み出した引き継ぎファイル4042[k−1][s]の内容と、共通設定ファイル4041のデータ名キー40411のデータ名値を用いて、分析プログラム3041が利用するデータの位置(格納場所)を示す位置情報としての読み出しファイル名を特定する(S1303)。これは、全ての分析プログラム3041は、共通設定ファイル4041のデータ名キー40411に対して特定のデータを結びつけるように処理していることから、分析プログラム3041があるデータ名キー40411に対応するデータを読み出したい場合は、当該データ名キー40411のデータ名キー値に対応するデータ名値(ファイル名)を、引き継ぎファイル4042から読み出すことで、読み出したデータ名値に基づいて処理対象のデータの位置(格納場所)を後段の分析プログラム3041[k]が把握することが可能となる。また、分析プログラムがあるデータ名キー40411に対応するデータを書き出したい場合も同様である。このようにすることで、前段の分析プログラム3041[k−1]と、後段の分析プログラム3041[k]との間で、適切にデータを引き継ぐことが可能となる。次に、分析データ4033や分析結果4044などのデータの位置(格納場所)を示す位置情報としての書き込みファイル名を生成する(S1304)。ファイル名生成ロジックは、本発明の目的に反しない限り任意である。例えば引き継ぎファイル4042のファイル名にプレフィックスとポストフィックスを付加すれば良い。更に、引き継ぎファイル4042からパラメータを取り出す(S1305)。そして、分析プログラム3041のインタフェース仕様に合わせ、読み出しファイル名、書き込みファイル名および取り出したパラメータを引数として分析プログラム3041を起動する(S1306)。最後に、分析シーケンスにしたがって次に実行される後段の分析プログラム3041向けに、引き継ぎファイル4042を生成して書き出す(S1307)。新たに生成した引き継ぎファイル4042は、現在実行している分析プログラム3041を起動した分析プログラム起動スクリプト3042の呼び出しインタフェースに含まれる、現在の分析プログラム3041向け引き継ぎファイル4042のファイル名を利用する。すなわち、プロセッサ302は、分析プログラム3041[k]を実行することにより、その前段の分析プログラム3041[k−1]に対応する引き継ぎファイル[k−1][s]のファイル名により特定される引き継ぎファイル[k−1][s]に格納されたデータ名値(ファイル名)により特定される引き継ぎデータを取得し、この引き継ぎデータを用いた所定の処理により生成されたデータを特定するデータ名値(ファイル名)を、分析プログラム[k]に対応する引き継ぎファイル4042[k][s]のファイル名により特定される引き継ぎファイル[k][s]に書き出す。並列実行ID毎に異なる引き継ぎファイル4042のファイル名が呼び出しインタフェースに設定されているため、並列実行ID毎に異なるファイル名を有する引き継ぎファイル4042が生成される。このように、分析プログラム3041からみると、引き継ぎファイル4042の存在が見えないため、本発明では分析プログラム3041の開発者が、周りの分析プログラム実行環境について意識する必要が無くなる。
次に、引き継ぎファイル4042のリストを呼び出しインタフェースに含む場合(S1308)、まず、前段の分析プログラム3041[k−1]の引き継ぎファイル4042のリスト、今回実行する後段の分析プログラム3041[k]の引き継ぎファイル4042のリストを共に、分解する(S1309)。各リストには、引き継ぎファイル40402のファイル名が複数含まれていることもあれば、1つしか含まれていないこともある。そして、並列実行ID毎に並列実行した場合と同様に、前段の分析プログラム3041[k−1]の全ての引き継ぎファイル4042を読み出し(S1310)、共通設定ファイル4041のデータ名キー40411のデータ名値を基に、読み出すファイルを特定する(S1311)。また、並列実行ID毎に分析データ4033や分析結果4044などをデータの位置(格納場所)を示す位置情報としての書き込みファイル名を生成する(S1312)。また、引き継ぎファイル4042からパラメータを取り出す(S1313)。そして、分析プログラム3041のインタフェースの仕様に合わせ、読み出しファイル名のリスト、書き込みファイル名のリストおよび読み出したパラメータを引数として、分析プログラム3041を起動する(S1314)。最後に、並列実行ID毎に並列実行する場合と同様に、最後に、分析シーケンスにしたがって次に実行される後段の分析プログラム3041向けに、引き継ぎファイル4042を生成して並列実行ID毎に書き出す(S1315)。この場合も、また、分析プログラム3041からみると、引き継ぎファイル4042の存在が見えないため、分析プログラム3041の開発者は、周りの分析プログラム実行環境について意識する必要が無くなる。
最後に、並列実行IDリストを呼び出しインタフェースに含む場合、並列実行IDのリストを引数として、分析プログラム3041を起動する(S1316)。分析プログラム3041は並列実行IDのリストを認識し、プログラムを実行する。本方式では並列実行IDを分析プログラム3041が意識する必要があり、分析プログラム3041の開発者が引き継ぎファイル4042の存在を意識する必要が生じる。このような並列実行IDのリストを受け渡す方式は、例えば並列実行IDのリストを動的に書き換える場合など、特殊なケースで利用する事が可能である。これは、例えば並列実行IDのリストを特定のディレクトリ内のファイル名とし、ディレクトリ内のファイル数を分析プログラム3041内で変更する事で実現することが可能である。なお、並列実行IDリストを呼び出しインタフェースに含むケースは省略してもよい。
図14は、引き継ぎファイル書き込み方式の一例を示す。
本ファイルには、まずパラメータを書き込み(S1400)、次に読み出しファイル名を書き込み(S1401)、最後に書き込みファイル名(S1402)を書き込めば良い。それぞれ、共通設定ファイル4041に含まれるデータ名キー40411のデータ名値やパラメータキー40412のパラメータキー値をキーとして、実際に利用するファイル名や、パラメータの値を書き込む。
図15は、起動スクリプト生成ツール5041の動作フローの一例を示す。
起動スクリプト生成ツール5041は、分析シーケンス設定ファイル5042および分析プログラム呼び出し形式5043を基に、分析プログラム起動スクリプト3042を生成するプログラムである。分析シーケンス設定ファイル5042は、分析シーケンス制御プログラム2041に対して1つ存在し、分析プログラム呼び出し形式5043は、分析シーケンス制御プログラム2041より呼び出される分析プログラム3041の種類毎に1つ存在する。すなわち、分析プログラム呼び出し形式5043と分析プログラム3041は1対1で対応している。また、分析シーケンス設定ファイル5042は分析シーケンス制御プログラム2041の開発者が作成し、分析プログラム呼び出し形式5043は、それぞれに対応する分析プログラム3041の開発者が作成することが自然である。
まず、起動スクリプト生成ツール5041は、分析シーケンス設定ファイル5042を読み出す(S1500)。次に、分析シーケンス設定ファイル5042に含まれるファンクションID50423を記載順に並べたリストを作成する(S1501)。そして、ファンクションID50423のリストの先頭から末尾まで順に以下の処理を実施する。処理対象となる1つのファンクションID50423を定めたら(S1502)、対応する分析プログラム呼び出し形式5043を読み出す(S1503)。分析プログラム呼び出し形式5043は、分析シーケンス制御プログラム2041より呼び出される分析プログラム3041の種類毎に存在し、ファンクションID50423と一致するファンクションID50431を含む分析プログラム呼び出し形式5043が存在する必要がある。もし、ファンクションID50423に対応する分析プログラム呼び出し形式5043が見つからない場合は、エラーを表示して、処理を終了する。
以降、分析プログラム起動スクリプト3042のプログラムを順次生成する。
まず、共通設定ファイル4041読み出しプログラムを生成する(S1504)。これは、共通設定ファイル4041の形式が固定されていれば、常に同一のプログラムでよい。例えば、共通設定ファイル4041が図6に示すようにJSON形式となっていれば、JSON形式のファイルを読み出すプログラムを生成すればよい。
次に、分析プログラム呼び出し形式5043より、分析プログラム3041の呼び出しパラメータのリストを生成する(S1505)。そして、リストのパラメータ1つずつに対し、パラメータを生成するプログラムを作成する。
並列実行IDに基づいて分析プログラム3041[k]を並列実行する場合(S1506でYes)、並列実行ID=sとなる前段の分析プログラム3041[k−1]が生成した引き継ぎファイル4042[k−1][s]を読み出すプログラムを生成する(S1507)。そして、分析プログラム3041のパラメータを生成するプログラムを生成する(S1508)。これは、パラメータごとのnameフィールド50436とtypeフィールド50437に基づき、次のよう生成する。まず、typeフィールド50437がリード(read)の場合は、前段の分析プログラム3041[k−1]が生成した引き継ぎファイル4042[k−1][s]に引き継ぎデータの位置(格納場所)を示すデータ名値であるファイル名が含まれている。そのため、分析プログラム呼び出し形式5043のnameフィールド50436の値と、共通設定ファイル4041のデータ名キー40411の一致するキーの値を取り出し、取り出した値をキーとして、引き継ぎファイル4042[k−1][s]から、このファイル名を取り出すプログラムを生成する。typeフィールド50437がライト(write)の場合は、書き込みファイル名を生成するプログラムを生成する。最後に、typeフィールド50437がパラメータ(params)の場合は、前段の分析プログラム3041が生成した引き継ぎファイル4042[k−1][s]にパラメータ値が含まれている。そのため、分析プログラム呼び出し形式5043のnameフィールド50436の値と、共通設定ファイル4041のパラメータキー40412の一致するキーの値を取り出し、取り出した値をキーとして、引き継ぎファイル4042[k−1][s]から、利用するパラメータの値を取り出すプログラムを生成する。
引き継ぎファイル4042[k−1]のリストを引数として分析プログラム3041を呼び出す場合(S1508でNoかつS1509でYes)、まず、引き継ぎファイル4042[k−1]のリストを引き継ぎファイル4042[k−1]に分解するプログラムを生成する(S1510)。そして引き継ぎファイル4042[k−1]毎に、並列実行ID毎に並列実行する場合と同様に、パラメータのtypeフィールド50437の値に応じて、引き継ぎファイル4042[k−1]を読み出し、書き込み、呼び出しインタフェースのパラメータの取り出しを行うプログラムを生成し(S1511)、分析プログラム3041のパラメータを生成するプログラムを生成する(S1512)。
並列実行IDのリストを元に分析プログラムを実行する場合(S1509でNo)、並列実行IDのリストをパラメータとして分析プログラム3041を実行するプログラムを生成する(S1513)。
全てのパラメータに対するプログラム生成処理が終了した後に(S1514)、分析プログラムの起動パラメータを生成できるので、分析プログラム呼び出し形式5043に含まれるライブラリ名およびスクリプト名と組み合わせて分析プログラム3041を実行するプログラムを生成する(S1515)。
最後に、引き継ぎファイルを書き出すプログラムを生成する(S1516)。これは、前の分析プログラム3041から読み出したデータを全てそのまま書き込むと共に、今回新たに生成した書き込みパラメータのnameと、共通設定ファイル4041のデータ名キー40411の一致するキーの値を取り出し、取り出した値をキーとし、ファイル名を値として、引き継ぎファイル4042に書き込みを行うプログラムを生成する。
最後に生成したプログラムを、分析プログラム起動スクリプト3042のプログラムとして書き出す。本プログラムは、任意のスクリプトを用いればよく、例えば、シェルスクリプトとして生成することや、pythonスクリプトとして生成することが考えられる(S1517)。
そして、これらの処理を、全てのファンクションID50423に対して実行が終了するまで繰り返す(S1518)。
以上により、分析プログラム起動スクリプト3042を自動的に生成することが可能である。分析プログラム3041の開発者からみると、分析プログラム起動スクリプト3042という、本発明の実施環境に依存したプログラムの実装が不要となるので、環境について気にすることなく分析プログラム3041の作成に集中することが可能となり、分析プログラム3041の施行に必要な期間を更に短縮することが可能となる。
本仕組みを用いて、分析シーケンス制御プログラム2041の開発者と、分析プログラム3041[1]、3041[2]のそれぞれの開発者2人との計3名でシステムを開発した場合に、分析プログラム3041[1]と分析プログラム3041[2]間で新たに1つの種類のデータの引き継ぎが必要となった場合のシステム改変シーケンスの一例を図16に示す。
まず、前段の分析プログラム3041[1]の開発者が、新たに作成するデータ(以下、「本データ」という)の構造を決定する(S1600)。そして、分析プログラム3041[1]を、本データを書き出しパラメータとするようにプログラムを設計変更し、併せて分析プログラム3041[1]に対応する分析プログラム呼び出し形式5043を変更する(S1601)、そして、起動スクリプト生成ツール5041を実行する(S1602)。これにより、分析プログラム3041[1]向けの分析プログラム起動スクリプト3042が作成される。そして、分析プログラム3041[1]の実装を行い(S1603)、環境にデプロイする(S1604)。
後段の分析プログラム3041[2]の開発者は、まず、前段の分析プログラム3041[1]の開発者と本データのデータ形式を合意する。次に、分析プログラム3041[2]を、本データを読み出しパラメータとするように設計変更し、合わせて分析プログラム3041[1]に対応する分析プログラム呼び出し形式5043を変更する(S1605)。そして、起動スクリプト生成ツール5041を実行する(S1606)。これにより、分析プログラム3041[2]向けの分析プログラム起動スクリプト3042が生成される。そして、分析プログラム3041[2]の実装を行い(S1607)、実行環境にデプロイする(S1608)。ここで、分析プログラム3041[1]のデプロイ(S1604)を、分析プログラム3041[2]のデプロイ(S1608)より前に実施するようにすることに気をつければ良い。
本シーケンスより分かるように、分析シーケンス制御プログラム2041の変更が不要となる。これは、分析プログラム3041間のデータのやり取りが全て引き継ぎファイル4042によって実施されるようになり、分析プログラム3041間でやり取りするデータが変更になったとしても、引き継ぎファイル4042名に変更はなく、変更の影響が引き継ぎファイル4042の中身に抑えられていることによる。また、分析プログラム3041のデプロイのタイミングも、以前は分析シーケンス制御プログラム2041および、全ての分析プログラム3041を同時にデプロイする必要があったが、本発明により、分析プログラム3041間の単純なデプロイ順序のみ守れば良い形となっていることが分かる。
以上より、課題であった、分析プログラムおよび分析シーケンス制御プログラムの開発を複数の開発者で行う場合、開発者間で分析方法の変更に伴うインタフェースの合意や、プログラムのデプロイなどの調整などに必要な時間を、短縮することが可能となる。これにより、分析プログラム作成により重点的に取り組むことが可能となると考えられる。
また、本発明によって、分析プログラム設計者が、引き継ぎファイル4042関連の設計を実施する必要が生じるが、起動スクリプト生成ツール5041を用いることに依って、分析プログラム設計者が追加で実施する必要がある事柄を、分析プログラム呼び出し形式5043の作成のみに抑えることが可能である。
以上より、本実施形態のデータ分析システム101によれば、分析プログラム3041が並列実行される場合に、前段の分析プログラム3041[k−1]に対応して、後段の分析プログラム3041[k]に引き継ぐデータが格納される位置を示すデータ名値を含む引き継ぎファイル4042[k−1]を特定する引き継ぎファイル情報を作成する。そして、分析プログラム3041[k]を実行することにより、前段の分析プログラム3041[k−1]に対応して作成されたファイル名により特定される引き継ぎファイル[k−1]に含まれるデータ名値に基づいて、当該前段の分析プログラム3041[k−1]から引き継ぐデータを取得し、当該データに所定の処理を行うことにより生成したデータを記憶装置として共有データストア104やデータ格納部107に格納するとともに、当該生成したデータが格納される位置を示すデータ名値を、当該分析プログラムに対応して作成されたファイル名により特定される引き継ぎファイル4042[k]に書き出す。このようにしたことから、分析プログラム3041間で引き継ぐデータを引き継ぎファイル4042にて特定するので、分析プログラム3041間で引き継ぐデータに変更が生じた場合でも、当該変更を引き継ぎファイル4042で吸収することができ、分析シーケンス制御プログラム2041から各分析プログラム3041を呼び出すインタフェースの変更が生じない。そのため、データの引き継ぎの実現が容易となり、データ分析システム101にて実行される複数の分析プログラム3041と分析プログラム3041を呼び出す分析シーケンス制御プログラム2041とをそれぞれ開発する開発者間の意識合わせの工数を削減することが可能となる。
また、分析シーケンス制御プログラム2041が分析プログラム3041を呼び出すための呼び出しインタフェースには、分析プログラム3041[k]の前段の分析プログラム3041[k−1]に対応する引き継ぎファイル4042[k−1]および分析プログラム3041[k]に対応する引き継ぎファイル4042「k」、又は、分析プログラム3041[k]の前段の分析プログラム3041[k−1]に対応する引き継ぎファイル4042[k−1]のリストおよび分析プログラム3041[k]に対応する引き継ぎファイル4042[k]のリストが含まれる。このようにしたことから、分析シーケンス制御プログラム2041は分析プログラム3041を呼び出すための呼び出しインタフェースにて、引き継ぎファイル4042の情報を容易に指定することができる。
また、共有データストア104の記憶装置404に、データの種別に対応するデータ名キー値を含む共通設定ファイル4041が格納される。引き継ぎファイル4042[k−1]は、当該引き継ぎファイル4042[k−1]に対応する分析プログラム3041[k−1]がその後段の分析プログラム3041[k]に引き継ぐデータの種別に対応するデータ名キー値と当該データが格納される位置を示すデータ名値とを対応づけて含む。分析サーバ103のプロセッサ302は、分析プログラム3041[k]を実行することにより、前段の分析プログラム3041[k−1]に対応する引き継ぎファイル[k−1]および共通設定ファイル4041に基づき、データ名キー値を用いて、前段の分析プログラム3041[k−1]から引き継ぐデータの種別および当該データが格納されている位置を示すデータ名値を取得する。当該分析プログラム[k]に対応する引き継ぎファイル[k]に、後段の分析プログラム[k+1]に引き継ぐ前記生成したデータの種別に対応するデータ名キー値と当該データが格納されている位置を示すデータ名値とを関連付けて書き出す。このようにしたことから、共通設定ファイル4041においてデータの種別とデータ名キー値とを対応付け、引き継ぎファイル4042においてデータ名キー値とデータ名値とを対応付けているので、これら共通設定ファイル4041および引き継ぎファイル4042に基づいて、分析プログラム3041間で引き継ぐデータを特定する情報を共通的かつ集約的に管理することができる。
また、共有データストア104の記憶装置404に、分析プログラム3041の引数として設定可能なパラメータのデフォルト値が格納された共通設定ファイル4041が格納される。分析シーケンス制御プログラム2041が分析プログラム3041を呼び出すための呼び出しインタフェースには、当該分析プログラム3041の引数として設定可能なパラメータの値を含めることができる。分析プログラム3041は、呼び出しインタフェースにおいて当該分析プログラム3041の引数として設定可能なパラメータの値が設定されていれば当該パラメータの値を用い、設定可能なパラメータの値が設定されていなければデフォルト値を用いる。このようにしたことから、分析プログラム3041に設定可能なパラメータについて、そのデフォルト値を共通設定ファイル4041に予め設定しておいても良いし、分析プログラム3041を呼び出すインタフェースで指定しても良いので、データ分析の設計および運用の利便性が高い。
また、共通設定ファイル4041には、パラメータの種別に対応するパラメータキー値を含む。引き継ぎファイル4042[k−1]には、当該引き継ぎファイル4042[k−1]に対応する分析プログラム3041[k−1]がその後段の分析プログラム3041[k]に引き渡すパラメータの種別に対応するパラメータキー値と当該パラメータのパラメータ値とを含めることができる。分析サーバ103のプロセッサ302は、分析プログラム3041[k]を実行することにより、前段の分析プログラム3041[k−1]に対応する引き継ぎファイル4042[k−1]および共通設定ファイル4041に基づき、パラメータキー値を用いて、前段の分析プログラム3041から引き継ぐパラメータの種別および当該パラメータのパラメータ値を取得する。当該分析プログラム3041[k]に対応する引き継ぎファイル4042[k]に、後段の分析プログラム3041[k+1]に引き継ぐパラメータの種別に対応するパラメータキー値と当該パラメータのパラメータ値とを関連付けて書き出す。このようにしたことから、分析プログラム3041に与えるパラメータの値を分析プログラム3041間で受け渡しても良いので、データ分析の設計および運用の利便性が更に高い。
また、分析シーケンス制御プログラム2041が分析プログラム3041を呼び出すための呼び出しインタフェースには、並列実行IDをリスト化した並列実行IDリストを含むことができる。そして、並列実行IDリストとして、特定ディレクトリを与え、並列実行IDとして当該特定ディレクトリ配下のファイル名を用いる。このようにしたことから、引き継ぎファイル4042ではなく並列実行IDリストを用いる場合に並列実行IDとして特定ディレクトリ配下のファイル名としておくことで、リスト上の並列実行IDを動的に書き換えることが容易に実現可能となり、データ分析の設計および運用の利便性が向上する。
また、分析プログラム3041[k]と連携動作し、当該分析プログラム3041[k]の前段の分析プログラム3041[k−1]に対応する引き継ぎファイル4042[k−1]から引き継ぐデータが格納されている位置を示すデータ名値を読み出し、当該分析プログラム3041[k]を呼び出し、当該分析プログラム3041[k]の実行により生成されたデータが格納される位置を示すデータ名値を当該分析プログラム[k]に対応する引き継ぎファイル4042[k]に書き出すという3つの処理を実行する分析プログラム起動スクリプト3042[k]を生成する、起動スクリプト生成ツール5041を有する。このようにしたことから、引き継ぎファイル4042の読み書きを起動スクリプト生成ツール5041で作成された分析プログラム起動スクリプト3042が行うので、各分析プログラム3041にその処理が不要となる。その結果、各分析プログラム3041の開発者の各々が引き継ぎファイル4042を読み書きする部分のプログラムを作成して分析プログラム3041に組み込む手間が省ける。
また、開発サーバ105の記憶装置504に、分析プログラム3041の呼び出し順に係る情報が記録された分析シーケンス設定ファイル5042と、ライブラリ名、スクリプト名およびプログラムを呼び出すときに与えるパラメータを含む分析プログラム呼び出し形式5043とが格納されている。起動スクリプト生成ツール5041には、分析シーケンス設定ファイル5042および分析プログラム呼び出し形式5043が与えられる。起動スクリプト生成ツール5041は、ライブラリ名で指定されたライブラリから分析スクリプト名で指定された分析プログラム3041を特定し、パラメータを与えて分析プログラム3041を分析シーケンス設定ファイル5042の呼び出し順で起動する分析プログラム起動スクリプト3042を生成する。このようにしたことから、分析シーケンス制御プログラム2041の開発者が分析シーケンス設定ファイル5042を作成し、分析プログラム3041の開発者が分析プログラム呼び出し形式5043を作成すればよく、各々の開発者が精通しているファイルを作成するので、開発効率を効果的に高めることができる。
また、共有データストア104の記憶装置404に、データの種別に対応するデータ名キー値を含む共通設定ファイル4041が格納される。分析プログラム呼び出し形式5043は、分析プログラム3041を呼び出すときに引数として設定されるパラメータの名前を示すnameフィールドを有し、nameフィールドには、データ名キー値が設定される。起動スクリプト生成ツール5041は、共通設定ファイル4041および分析プログラム呼び出し形式5043に基づき、データ名キー値を用いて、該データを引き渡す分析プログラム3041と該データを受け取る分析プログラム3041の間で一貫したデータのデータ名値(ファイル名)を生成する。このようにしたことから、共通設定ファイル4041に格納されているデータに対応するデータ名キー値は、そのデータを引き渡す分析プログラム3041とそのデータを受け取る分析プログラム3041が共通的に用いる情報なので、そのデータ名キー値と対応付けるようにデータにデータ名値(ファイル名)を付与すれば、自動的に、それら分析プログラム3041間で一貫性のあるファイル名とすることができる。
本技術分野の通常の知識を有する者には、本開示のその他の実装がここに開示された本開示の明細書および実施形態の考察から明らかになる。記述された実施形態の多様な態および/またはコンポーネントは、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本開示の範囲と着想は特許請求の範囲で示される。
101…データ分析システム、102…分析シーケンス制御サーバ、103…分析サーバ、104…共有データストア、105…開発サーバ、106…クライアントデバイス、107…データ格納部、108…ネットワーク、202、302…プロセッサ、601…起動インタフェース、2041…分析シーケンス制御プログラム、2042…分析シーケンス制御エンジン、3041…分析プログラム、3042…分析プログラム起動スクリプト、3043…リモートプロシージャコール受付プロセス、4041…共通設定ファイル、4042…引き継ぎファイル、4043…分析データ、4044…分析結果、5041…起動スクリプト生成ツール、5042…分析シーケンス設定ファイル、5043…分析プログラム呼び出し形式

Claims (10)

  1. 複数の分析プログラムおよび該複数の分析プログラムを分析シーケンスにしたがって呼び出す分析シーケンス制御プログラムを実行するプロセッサと、
    前記分析プログラムおよび前記分析シーケンス制御プログラムの実行においてデータの格納に利用される記憶装置と、を備え、
    前記プロセッサは、
    前記分析シーケンス制御プログラムを実行することにより、前記分析プログラムが並列実行される場合に、前段の分析プログラムに対応して、後段の分析プログラムに引き継ぐデータが格納される位置を示す位置情報を含む引き継ぎファイルを特定する引き継ぎファイル情報を作成し、
    前記分析プログラムを実行することにより、前段の分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに含まれる前記位置情報に基づいて、該前段の分析プログラムから引き継ぐデータを取得し、該データに所定の処理を行うことにより生成したデータを前記記憶装置に格納するとともに、該生成したデータが格納される位置を示す位置情報を、当該分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに書き出す、
    分析シーケンス制御システム。
  2. 請求項1に記載の分析シーケンス制御システムであって、
    前記分析シーケンス制御プログラムが前記分析プログラムを呼び出すための呼び出しインタフェースには、
    当該分析プログラムの前段の分析プログラムに対応する引き継ぎファイルおよび当該分析プログラム自身に対応する引き継ぎファイル、又は、
    当該分析プログラムの前段の分析プログラムに対応する引き継ぎファイルのリストを示す情報および当該分析プログラム自身に対応する引き継ぎファイルのリストを示す情報、
    が含まれる、
    分析シーケンス制御システム。
  3. 請求項1記載の分析シーケンス制御システムであって、
    前記記憶装置に、データの種別に対応するデータ名キー情報を含む共通設定ファイルが格納され、
    前記引き継ぎファイルは、当該引き継ぎファイルに対応する分析プログラムがその後段の分析プログラムに引き継ぐデータの種別に対応するデータ名キー情報と当該データが格納される位置を示す位置情報とを対応づけて含み、
    前記プロセッサは、前記分析プログラムを実行することにより、
    前記前段の分析プログラムに対応する引き継ぎファイルおよび前記共通設定ファイルに基づき、前記データ名キー情報を用いて、前記前段の分析プログラムから引き継ぐデータの種別および当該データが格納されている位置を示す位置情報を取得し、かつ、
    当該分析プログラムに対応する引き継ぎファイルに、後段の分析プログラムに引き継ぐ前記生成したデータの種別に対応する前記データ名キー情報と当該データが格納されている位置を示す位置情報とを関連付けて書き出す、
    分析シーケンス制御システム。
  4. 請求項1記載の分析シーケンス制御システムであって、
    前記記憶装置に、前記分析プログラムの引数として設定可能なパラメータのデフォルト値が格納された共通設定ファイルが格納され、
    前記分析シーケンス制御プログラムが前記分析プログラムを呼び出すための呼び出しインタフェースには、当該分析プログラムの引数として設定可能なパラメータの値を含めることができ、
    前記分析プログラムは、前記呼び出しインタフェースにおいて当該分析プログラムの引数として前記パラメータの値が設定されていれば当該パラメータの値を用い、前記パラメータの値が設定されていなければ前記デフォルト値を用いる、
    分析シーケンス制御システム。
  5. 請求項4に記載の分析シーケンス制御システムであって、
    前記共通設定ファイルには、パラメータの種別に対応するパラメータキー情報をさらに含み、
    前記引き継ぎファイルには、当該引き継ぎファイルに対応する分析プログラムがその後段の分析プログラムに引き渡すパラメータの種別に対応するパラメータキー情報と当該パラメータのパラメータ値とを含めることができ、
    前記プロセッサは、前記分析プログラムを実行することにより、
    前記前段の分析プログラムに対応する引き継ぎファイルおよび前記共通設定ファイルに基づき、前記パラメータキー情報を用いて、前記前段の分析プログラムから引き継ぐパラメータの種別および当該パラメータのパラメータ値を取得し、かつ、
    当該分析プログラムに対応する引き継ぎファイルに、後段の分析プログラムに引き継ぐパラメータの種別に対応する前記パラメータキー情報と当該パラメータのパラメータ値とを関連付けて書き出す、
    分析シーケンス制御システム。
  6. 請求項2に記載の分析シーケンス制御システムであって、
    前記分析シーケンス制御プログラムが前記分析プログラムを呼び出すための呼び出しインタフェースには、並列実行単位識別情報をリスト化したリスト情報を含むことができ、
    前記並列実行単位識別情報として特定ディレクトリ配下のファイル名を用いる、
    分析シーケンス制御システム。
  7. 請求項1に記載の分析シーケンス制御システムであって、
    前記分析プログラムと連携動作し、当該分析プログラムの前段の分析プログラムに対応する引き継ぎファイルから前記データが格納されている位置を示す位置情報を読み出し、当該分析プログラムを呼び出し、当該分析プログラムの実行により生成されたデータが格納される位置を示す位置情報を当該分析プログラムに対応する引き継ぎファイルに書き出すという3つの処理を実行する分析プログラム起動スクリプトを生成する、起動スクリプト生成ツールを有する、
    分析シーケンス制御システム。
  8. 請求項7に記載の分析シーケンス制御システムであって、
    前記記憶装置に、前記分析プログラムの呼び出し順に係る情報が記録された分析シーケンス設定ファイルと、分析ライブラリ名、分析スクリプト名および分析プログラムを呼び出すときに与えるパラメータを含む分析プログラム呼び出し形式情報とが格納され、
    前記起動スクリプト生成ツールには、分析シーケンス設定ファイルおよび分析プログラム呼び出し形式情報が与えられ、
    前記起動スクリプト生成ツールは、前記分析ライブラリ名で指定された分析ライブラリから前記分析スクリプト名で指定された分析プログラムを特定し、前記パラメータを与えて前記分析プログラムを前記呼び出し順で起動する分析プログラム起動スクリプトを生成する、
    分析シーケンス制御システム。
  9. 請求項8に記載の分析シーケンス制御システムであって、
    前記記憶装置に、データの種別に対応するデータ名キー情報を含む共通設定ファイルが格納され、
    前記分析プログラム呼び出し形式情報は、前記分析プログラムを呼び出すときに引数として設定されるパラメータの名前を示す名前フィールドを有し、
    前記名前フィールドには、前記データ名キー情報が設定され、
    前記起動スクリプト生成ツールは、前記共通設定ファイルおよび前記分析プログラム呼び出し形式情報に基づき、前記データ名キー情報を用いて、該データを引き渡す分析プログラムと該データを受け取る分析プログラムの間で一貫した前記データのデータ名値を生成する、
    分析シーケンス制御システム。
  10. 複数の分析プログラムを分析シーケンスにしたがって呼び出す分析シーケンス制御方法であって、
    前記分析プログラムが並列実行される場合に、前段の分析プログラムに対応して、後段の分析プログラムに引き継ぐデータが格納される位置を示す位置情報を含む引き継ぎファイルを特定する引き継ぎファイル情報を作成し、
    前記分析プログラムの実行において、前段の分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに含まれる前記位置情報に基づいて、当該前段の分析プログラムから引き継ぐデータを取得し、当該データに所定の処理を行うことにより生成したデータを記憶装置に格納するとともに、当該生成したデータが格納される位置を示す位置情報を、当該分析プログラムに対応して作成された前記引き継ぎファイル情報により特定される前記引き継ぎファイルに書き出す、
    分析シーケンス制御方法。
JP2018074117A 2018-04-06 2018-04-06 分析シーケンス制御システムおよび分析シーケンス制御方法 Pending JP2019185314A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018074117A JP2019185314A (ja) 2018-04-06 2018-04-06 分析シーケンス制御システムおよび分析シーケンス制御方法
PCT/JP2019/001531 WO2019193810A1 (ja) 2018-04-06 2019-01-18 分析シーケンス制御システムおよび分析シーケンス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018074117A JP2019185314A (ja) 2018-04-06 2018-04-06 分析シーケンス制御システムおよび分析シーケンス制御方法

Publications (1)

Publication Number Publication Date
JP2019185314A true JP2019185314A (ja) 2019-10-24

Family

ID=68100422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018074117A Pending JP2019185314A (ja) 2018-04-06 2018-04-06 分析シーケンス制御システムおよび分析シーケンス制御方法

Country Status (2)

Country Link
JP (1) JP2019185314A (ja)
WO (1) WO2019193810A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134304A (en) * 1992-11-10 2000-10-17 Telefonaktiebolaget Lm Ericsson General analysis system
JPH09179742A (ja) * 1995-12-26 1997-07-11 Nec Software Ltd データ受け渡し方法およびその手段
JP2004102934A (ja) * 2002-09-12 2004-04-02 Dainippon Printing Co Ltd 自動処理汎用制御システム、ジョブ入力装置、自動処理汎用制御装置、自動処理汎用制御方法、プログラム、及び、記録媒体
JP4740926B2 (ja) * 2007-11-27 2011-08-03 フェリカネットワークス株式会社 サービス提供システム、サービス提供サーバ、及び情報端末装置

Also Published As

Publication number Publication date
WO2019193810A1 (ja) 2019-10-10

Similar Documents

Publication Publication Date Title
US11099816B2 (en) Workflow development system with ease-of-use features
US10592082B2 (en) Parallel front end application and workflow development
WO2018072634A1 (zh) 应用程序处理方法和装置
CN111078315A (zh) 微服务编排、执行方法及系统、架构、设备、存储介质
JP2014038364A (ja) リソース管理サーバ、リソース管理方法及びリソース管理プログラム
JP5350026B2 (ja) ワークフロー処理システム、ワークフロー処理装置、及びワークフロー処理方法
WO2019193810A1 (ja) 分析シーケンス制御システムおよび分析シーケンス制御方法
CN116302398A (zh) 基于云原生的工作流编排方法、装置、设备及介质
JPH11143701A (ja) 高可用性システムの設計支援機能を有する計算機システム
JP5471198B2 (ja) 統合管理装置、統合管理システム、統合管理方法、統合管理プログラム、及びそのプログラムを記録した記録媒体
JP6653849B2 (ja) ビジネスアプリケーションにおいて単一コードを用いて多重スクリーンを支援するコンポーネントを構造化する方法および装置
JP2015185127A (ja) 保守環境提供システム、保守環境提供装置、保守環境提供方法、及び、そのプログラム
JP6040836B2 (ja) 実行制御プログラム、実行制御方法およびネットワークシステム
JP5847855B2 (ja) 画像形成装置、該装置の制御方法、及び制御プログラム
US20240241758A1 (en) Flexible computing resource cluster allocation
US20240220237A1 (en) Smart grouping of code packages
JP2018185685A (ja) 情報処理装置およびその制御方法およびプログラム
JP2010026695A (ja) ビジネスプロセス実行方法、ビジネスプロセス実行装置及びビジネスプロセス実行プログラム
JP6996364B2 (ja) ガイド生成プログラム、ガイド生成方法及びサーバ装置
JP5144467B2 (ja) 伝送制御用jcl自動生成装置、伝送制御用jcl自動生成方法および伝送制御用jcl自動生成プログラム
JP2015212907A (ja) 出力システム、端末装置、プログラム及び出力方法
JP2021015645A (ja) 情報処理装置と、その処理方法及びプログラム
US20190138328A1 (en) System and method for designating multi-object favorites
JP2024076016A (ja) 情報処理システム、情報処理システムの制御方法、及びプログラム
JP2024076008A (ja) 情報処理システム、情報処理システムの制御方法、及びプログラム