(57)【要約】【課題】分析ソリューションモジュールを再利用可能とする。【解決手段】本開示方法は、第１のシステムが、フロー定義、演算子定義、及び実行可能コードを含むメタデータを取得して、データベースに分析ライブラリを生成する。分析ライブラリは、フロー構成テンプレート、演算子構成テンプレート、分析プラットフォーム構成テンプレート、並びに、フロー構成テンプレート、演算子構成テンプレート及び分析プラットフォーム構成テンプレートのインスタンス化のためのラッパコード、を含む。第１のシステムが実行可能コードで検証を実行し、検証が成功すると、第２のシステムによる分析ライブラリへのアクセスが可能となる。第２のシステムが、フロー構成テンプレート、演算子構成テンプレート及び分析プラットフォーム構成テンプレートに対してラッパコードを実行して、実行可能分析モジュールをインスタンス化する。【選択図】図１
2020201936.tif 000002
【特許請求の範囲】
【請求項１】
第１のシステムが、フロー定義、演算子定義及び実行可能コードを含むメタデータを取得して、データベースに分析ライブラリを生成し、
前記分析ライブラリは、フロー構成テンプレート、演算子構成テンプレート、分析プラットフォーム構成テンプレート、並びに、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートのインスタンス化のためのラッパコード、を含み、
前記第１のシステムが前記実行可能コードで検証を実行し、前記検証が成功すると、第２のシステムによる前記分析ライブラリへのアクセスが可能となり、
前記第２のシステムが、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートに対して前記ラッパコードを実行して、実行可能分析モジュールをインスタンス化する、方法。
【請求項２】
請求項１に記載の方法であって、前記検証は、
前記演算子定義からテスト環境を作成し、
前記テスト環境で前記実行可能コードへの入力データ及びパラメータ設定について単体テストを実施して、結果を生成し、
前記単体テストの結果が与えられた結果に対して検証されると、前記テスト環境で前記実行可能コードに対して機能テストを実施し、
前記機能テストが成功すると、検証が成功したことを示す、ことを含む方法。
【請求項３】
請求項１に記載の方法であって、
前記第１のシステムが、前記演算子定義及び前記フロー定義から導出されたスキーマに対してスキーマ照合を行って前記ラッパコードを生成し、
前記スキーマ照合を行うことは、
前記演算子定義と前記フロー定義から導出された前記スキーマからターゲットスキーマ配列及びソーススキーマ配列を生成し、
前記ターゲットスキーマ配列における各スキーマを、検索スキームのためにパーシングし、前記検索スキームは、完全要素一致、スター一致、複数オプションによる単一一致、複数オプションによる複数一致のいずれかであり、
前記検索スキームに従って、前記ターゲットスキーマ配列と前記ソーススキーマ配列との間でスキーマ照合を実行する、ことを含む方法。
【請求項４】
請求項１に記載の方法であって、
前記第１のシステムが、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートの生成に利用されるモデルを生成するために使用されるデータを指定して、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートを生成し、
前記データはモデル階層に従って指定され、
前記第１のシステムが、前記生成されたモデルに基づいて実行フローを割り当てて、前記ラッパコードを生成する、方法。
【請求項５】
請求項１に記載の方法であって、
前記第２のシステムが、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレート上で前記ラッパコードを実行して、前記実行可能な分析モジュールをインスタンス化し、
前記実行可能な分析モジュールのインスタンス化において、前記第２のシステムが、前記分析プラットフォーム構成テンプレートに示されている前記実行可能分析モジュールを、分離された分析サービスの依存関係に従って、前記分離された分析サービスとして生成し、
前記分離された分析サービスのそれぞれは、前記フロー構成テンプレート及び前記演算子構成テンプレートから定義される、方法。
【請求項６】
請求項１に記載の方法であって、
前記第２のシステムが、入力データ型及び実行モードに基づいて実行される前記インスタンス化された実行可能分析モジュールを提供するように構成されたグラフィカルユーザーインターフェイスを提供し、
前記第２のシステムが、前記提供されたインスタンス化された実行可能分析モジュールの一つの選択を受信すると、前記第２のシステムに提供されたデータに対して、前記提供されたインスタンス化された実行可能分析モジュールの選択された一つを実行する、方法。
【請求項７】
第１のシステム及び第２のシステムに処理を実行させるプログラムであって、前記処理は、
第１のシステムが、フロー定義、演算子定義及び実行可能コードを含むメタデータを取得して、データベースに分析ライブラリを生成し、
前記分析ライブラリは、フロー構成テンプレート、演算子構成テンプレート、分析プラットフォーム構成テンプレート、並びに、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートのインスタンス化のためのラッパコード、を含み、
前記第１のシステムが前記実行可能コードで検証を実行し、前記検証が成功すると、第２のシステムによる前記分析ライブラリへのアクセスが可能となり、
前記第２のシステムが、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートに対して前記ラッパコードを実行して、実行可能分析モジュールをインスタンス化する、ことを含むプログラム。
【請求項８】
請求項７に記載のプログラムであって、前記検証は、
前記演算子定義からテスト環境を作成し、
前記テスト環境で前記実行可能コードへの入力データ及びパラメータ設定について単体テストを実施して、結果を生成し、
前記単体テストの結果が与えられた結果に対して検証されると、前記テスト環境で前記実行可能コードに対して機能テストを実施し、
前記機能テストが成功すると、検証が成功したことを示す、ことを含むプログラム。
【請求項９】
請求項７に記載のプログラムであって、前記処理は、
前記第１のシステムが、前記演算子定義及び前記フロー定義から導出されたスキーマに対してスキーマ照合を行って前記ラッパコードを生成し、
前記スキーマ照合を行うことは、
前記演算子定義及び前記フロー定義から導出された前記スキーマからターゲットスキーマ配列とソーススキーマ配列を生成し、
前記ターゲットスキーマ配列における各スキーマを、検索スキームのためにパーシングし、前記検索スキームは、完全要素一致、スター一致、複数オプションによる単一一致、複数オプションによる複数一致のいずれかであり、
前記検索スキームに従って、前記ターゲットスキーマ配列と前記ソーススキーマ配列との間でスキーマ照合を実行する、ことを含むプログラム。
【請求項１０】
請求項７に記載のプログラムであって、前記処理は、
前記第１のシステムが、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートの生成に利用されるモデルを生成するために使用されるデータを指定して、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートを生成し、
前記データはモデル階層に従って指定され、
前記第１のシステムが、前記生成されたモデルに基づいて実行フローを割り当てて、前記ラッパコードを生成する、ことを含むプログラム。
【請求項１１】
請求項７に記載のプログラムであって、前記処理は、
前記第２のシステムが、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレート上で前記ラッパコードを実行して、前記実行可能な分析モジュールをインスタンス化し、
前記実行可能な分析モジュールのインスタンス化において、前記第２のシステムが、前記分析プラットフォーム構成テンプレートに示されている前記実行可能分析モジュールを、分離された分析サービスの依存関係に従って、前記分離された分析サービスとして生成し、
前記分離された分析サービスのそれぞれは、前記フロー構成テンプレート及び前記演算子構成テンプレートから定義される、プログラム。
【請求項１２】
請求項７に記載のプログラムであって、前記処理は、
前記第２のシステムが、入力データ型及び実行モードに基づいて実行される前記インスタンス化された実行可能分析モジュールを提供するように構成されたグラフィカルユーザーインターフェイスを提供し、
前記第２のシステムが、前記提供されたインスタンス化された実行可能分析モジュールの一つの選択を受信すると、前記第２のシステムに提供されたデータに対して、前記提供されたインスタンス化された実行可能分析モジュールの選択された一つを実行する、ことを含むプログラム。
【請求項１３】
第１のプロセッサを含む第１のシステムと、
第２のプロセッサを含む第２のシステムと、を含み、
第１のプロセッサは、フロー定義、演算子定義及び実行可能コードを含むメタデータを取得して、データベースに分析ライブラリを生成し、
前記分析ライブラリは、フロー構成テンプレート、演算子構成テンプレート、分析プラットフォーム構成テンプレート、並びに、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートのインスタンス化のためのラッパコード、を含み、
前記第１のプロセッサは、前記実行可能コードで検証を実行し、前記検証が成功すると、第２のシステムによる前記分析ライブラリへのアクセスが可能となり、
前記第２のプロセッサは、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートに対して前記ラッパコードを実行して、実行可能分析モジュールをインスタンス化する、システム。
【請求項１４】
請求項１３に記載のシステムであって、前記検証は、
前記演算子定義からテスト環境を作成し、
前記テスト環境で前記実行可能コードへの入力データ及びパラメータ設定について単体テストを実施して、結果を生成し、
前記単体テストの結果が与えられた結果に対して検証されると、前記テスト環境で前記実行可能コードに対して機能テストを実施し、
前記機能テストが成功すると、検証が成功したことを示す、ことを含むシステム。
【請求項１５】
請求項１３に記載のシステムであって、
前記第１のプロセッサは、前記演算子定義及び前記フロー定義から導出されたスキーマに対してスキーマ照合を行って前記ラッパコードを生成し、
前記スキーマ照合を行うことは、
前記演算子定義及び前記フロー定義から導出された前記スキーマからターゲットスキーマ配列とソーススキーマ配列を生成し、
前記ターゲットスキーマ配列における各スキーマを、検索スキームのためにパーシングし、前記検索スキームは、完全要素一致、スター一致、複数オプションによる単一一致、複数オプションによる複数一致のいずれかであり、
前記検索スキームに従って、前記ターゲットスキーマ配列と前記ソーススキーマ配列との間でスキーマ照合を実行する、ことを含むシステム。
【請求項１６】
請求項１３に記載のシステムであって、
前記第１のプロセッサは、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートの生成に利用されるモデルを生成するために使用されるデータを指定して、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートを生成し、
前記データはモデル階層に従って指定され、
前記第１のプロセッサは、前記生成されたモデルに基づいて実行フローを割り当てて、前記ラッパコードを生成する、システム。
【請求項１７】
請求項１３に記載のシステムであって、
前記第２のプロセッサは、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレート上で前記ラッパコードを実行して、前記実行可能な分析モジュールをインスタンス化し、
前記実行可能な分析モジュールのインスタンス化において、前記第２のプロセッサは、前記分析プラットフォーム構成テンプレートに示されている前記実行可能分析モジュールを、分離された分析サービスの依存関係に従って、前記分離された分析サービスとして生成し、
前記分離された分析サービスのそれぞれは、前記フロー構成テンプレート及び前記演算子構成テンプレートから定義される、システム。
【請求項１８】
請求項１３に記載のシステムであって、
前記第２のプロセッサは、
入力データ型及び実行モードに基づいて実行される前記インスタンス化された実行可能分析モジュールを提供するように構成されたグラフィカルユーザーインターフェイス（ＧＵＩ）を提供し、
前記提供されたインスタンス化された実行可能分析モジュールの一つの選択を受信すると、前記第２のシステムに提供されたデータに対して、前記提供されたインスタンス化された実行可能分析モジュールの選択された一つを実行する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、データ分析に関し、より具体的には、産業用途の分析ソリューションモジュールを管理及び展開するためのシステムに関する。
【背景技術】
【０００２】
データ駆動型産業用アプリケーションは、様々な分野で広く採用され、コストを削減し、効率を改善している。長年、多数の分析モデルが実稼働環境で作成及び検証されている。しかし、貴重な分析モデルは、新しいシナリオで簡単に再利用できない。通常、新しいプロジェクトのために、分析モデルは、データサイエンティストによってゼロから作成され、実装される必要がある。そのような関連技術は、高価であり、動きが遅く、スケーラブルではない。再利用可能な分析モデルが、手頃なデータ駆動型産業用アプリケーションに不可欠である。
【０００３】
分析のために予めパッケージ化されたライブラリを使用することが、一般的な分析エンジンの事実上の慣行として行われている。例えば、ＲエンジンとＰｙｔｈｏｎエンジンは、様々な分析タスクを実行するための多数のライブラリを有している。しかし、全てのこれらのライブラリはアルゴリズム指向であり、データサイエンティストの作業負荷を軽減するために作成されている。さらに、ユーザがライブラリを選択するときに実行エンジンを考慮する必要があるという意味で、全てのライブラリはエンジン依存である。
【０００４】
クラウドベースのＡｎａｌｙｔｉｃｉｃ−Ａｓ−Ａ−Ｓｅｒｖｉｃｅは、複数のベンダによって推進されている。これらのプラットフォームは、分析を、Ｗｅｂベースのマイクロサービスとしてパッケージ化し、クラウドサービス提供の一部として分析機能を提供する。これらのプラットフォームは、分析ライブラリのクラウドへの展開に焦点を当て、分析結果についてのユーザフレンドリな視覚化を与える。
【０００５】
分析モデルを再利用するために、いくつかの標準インターフェースが必要となる。分析ソリューションモジュールは、十分に定義され、十分に文書化され、予めパッケージ化され、再展開可能な分析モデルを含む。各分析ソリューションモジュールは、対応するユースケースから一般化された展開可能なモジュールであり、１つの特定の分析問題を解決するために形式化及び分類される。分析ソリューションモジュールを使用することは、産業分析ソリューションの開発を促進して早める。しかし、多くの分析ソリューションモジュールを効果的に理解し、使用することは、実際における課題である。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】“Azure solutions for Internet of Things (IoT Suite) | Microsoft Docs.”［online］、［令和１年６月１０日検索］、インターネット＜https://docs.microsoft.com/en-us/azure/iot-suite/iot-suite-what-is-azure-iot＞
【発明の概要】
【０００７】
実施例は、問題指向型、自己完結型、そして実行エンジン透過的な、分析ソリューションモジュールに向けられている。分析ソリューションモジュールの対象者は、ドメインエキスパートであり、分析機能の詳細について深い知識を持っていない可能性がある。代わりに、ここで説明する実施例は、産業分析の問題指向一般化、統合、及び分類を対象とする。ここで説明する分析ソリューションモジュールは、プラットフォーム非依存であり、クラウドで提供されるＷｅｂベースのマイクロサービスとして拡張できる。
【０００８】
ここで説明する実施例は、２段階アプローチを含み、分析ソリューションモジュールに関連付けられた豊富なメタデータを利用することにより、スケーラビリティ問題を解決する。メタデータは、分析モジュールをカスタマイズ、展開及び実行するために必要な全てを記述する標準フォーマットに従って、データサイエンティストによって作成される。メタデータを処理した後、システムは以下を実行できる。（１）カスタマイズ可能な分析ソリューションモジュールテンプレートを自動的に生成する。（２）インスタンス化後に展開可能な分析ソリューションモジュールを生成する。
【０００９】
ここで説明する実施例は、以下の主要な要因を含む。（１）分析ソリューションモジュールメタデータ及びユーザカスタマイズに基づいて、様々な実行エンジンのための実行可能な分析パイプラインを自動的に生成するシステム。（２）産業分析アプリケーションの開発において複数の役割によって行われる全ての作業を橋渡しする標準インターフェースとプロトコル。（３）クラウド又はエッジサーバで分析パイプラインを管理、展開、及び実行するシステム。
【００１０】
ここで説明される実施例は、以下に限定されるものではないが、以下の実装を可能とする。（１）分析ソリューションモジュールの再利用性を改善する。（２）同様の産業分析アプリケーションの開発コストを削減する。（３）同一分析ソリューションモジュールを共有する産業用アプリケーションのメンテナンス及び更新コストを削減する。（４）産業分析アプリケーションの開発における役割を分離する。（５）展開のターゲットの実行環境から分析作業を分離する。
【００１１】
実施例は、産業分析の開発における分析ソリューションモジュールの作成及び展開をサポートするメタデータ処理システムを含む。実施例において、分析ソリューションモジュールの安定（ｓｔａｂｌｅ）メタデータとカスタマイズ可能メタデータを分離する２段階のメタデータ処理アプローチがある。第１段階において、データサイエンティストからの入力を処理し、安定分析ソリューションモジュールテンプレートライブラリを生成するシステムユニットが使用される。
【００１２】
第１段階は、データサイエンティストからの入力の品質管理のための検証及びテスト処理、分析ソリューションモジュールの一般化を容易にする柔軟なスキーマ照合パラダイム、及び様々な顧客のユースケースを満たすための訓練から実用フェーズまでの階層モデル割り当てスキーム、を含むことができる。
【００１３】
第２段階において、ユーザカスタマイズをテンプレートライブラリと組み合わせ、サービス指向コンポーネントのための構築ファイルを生成するシステムユニットがあり、これは、サービス間の依存関係に従って構築ファイルを生成する処理を含むことができる。サービスは、クラウド又はエッジで構築及び展開できる。
【００１４】
本開示の一態様に係る方法は、第１のシステムが、フロー定義、演算子定義、及び実行可能コードを含むメタデータを取得して、データベースに分析ライブラリを生成し、前記分析ライブラリは、フロー構成テンプレート、演算子構成テンプレート、分析プラットフォーム構成テンプレート、並びに、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートのインスタンス化のためのラッパコード、を含み、前記第１のシステムが前記実行可能コードで検証を実行し、前記検証が成功すると、第２のシステムによる分析ライブラリへのアクセスが可能となり、前記第２のシステムが、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートに対して前記ラッパコードを実行して、実行可能分析モジュールをインスタンス化する。
【００１５】
本開示の一態様に係るプログラムは、第１のシステム及び第２のシステムに処理を実行させ、前記第１のシステムに、フロー定義、演算子定義、及び実行可能コードを含むメタデータを取得して、データベースに分析ライブラリを生成させ、前記分析ライブラリは、フロー構成テンプレート、演算子構成テンプレート、分析プラットフォーム構成テンプレート、並びに、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートのインスタンス化のためのラッパコード、を含み、前記第１のシステムに前記実行可能コードで検証を実行させ、前記検証が成功すると、前記第２のシステムによる分析ライブラリへのアクセスが可能となり、前記第２のシステムに、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートに対して前記ラッパコードを実行して、実行可能分析モジュールをインスタンス化させる。
【００１６】
本開示の一態様に係るシステムは、フロー定義、演算子定義、及び実行可能コードを含むメタデータを取得して、データベースに分析ライブラリを生成する手段を含む。前記分析ライブラリは、フロー構成テンプレート、演算子構成テンプレート、分析プラットフォーム構成テンプレート、並びに、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートのインスタンス化のためのラッパコード、を含む。システムは、さらに、前記実行可能コードで検証を実行する手段を含む。前記検証が成功すると、分析ライブラリへのアクセスが可能となる。システムはさらに、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートに対して前記ラッパコードを実行して、実行可能分析モジュールをインスタンス化する手段を含む。
【００１７】
本開示の一態様のシステムは、第１のプロセッサを含む第１のシステムと、第２のプロセッサを含む第２のシステムと、を含み、前記第１のプロセッサは、フロー定義、演算子定義、及び実行可能コードを含むメタデータを取得して、データベースに分析ライブラリを生成し、前記分析ライブラリは、フロー構成テンプレート、演算子構成テンプレート、分析プラットフォーム構成テンプレート、並びに、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートのインスタンス化のためのラッパコード、を含み、前記第１のプロセッサは、前記実行可能コードで検証を実行し、前記検証が成功すると、第２のシステムによる分析ライブラリへのアクセスが可能となり、前記第２のプロセッサは、前記フロー構成テンプレート、前記演算子構成テンプレート及び前記分析プラットフォーム構成テンプレートに対して前記ラッパコードを実行して、実行可能分析モジュールをインスタンス化する。
【図面の簡単な説明】
【００１８】
【図１】実施例によるシステムの概要アーキテクチャを示す。
【図２】実施例による分析ソリューションモジュールテンプレート生成ユニットのシステムコンポーネントを示す。
【図３】実施例によるコード検証器の処理フローを示す。
【図４】実施例による、スキーマ、変数及びパラメータリゾルバにおけるスキーマ解決の処理フローを示す。
【図５】実施例による使用される分析モデル階層を示す。
【図６】実施例による柔軟な分析モデル割り当ての処理フローを示す。
【図７】実施例による展開生成ユニットにおけるシステムコンポーネントを示している。
【図８】実施例によるサービス間の依存関係グラフを示す。
【図９】実施例による実行時に分析ソリューションモジュールを使用するためのＲＥＳＴ  ＡＰＩ呼び出しのシーケンス図の例を示す。
【図１０】実施例による分析ソリューションモジュール選択のためのＧＵＩ例を示す。
【図１１】実施例による各役割についてグループ化されたＧＵＩ例を示す。
【図１２】いくつかの実施例での使用に適したコンピュータ装置の例を含むコンピューティング環境の例を示す。
【発明を実施するための形態】
【００１９】
以下の詳細な説明は、本出願の図及び実施例のさらなる詳細を提供する。図の間の冗長要素の参照番号と説明は、説明の明確化のために省略されている。説明全体で使用される用語は例として提供されており、限定することを意図したものではない。例えば、「自動」という用語の使用は、本願の実装を実施する当業者の所望の実装に応じて、全自動又は実装の特定の態様に対するユーザ又は管理者の制御を伴う半自動の実装を含み得る。選択は、ユーザがユーザインターフェース又は他の入力手段を介して実行するか、所望のアルゴリズムを使用して実装できる。ここで説明される実施例は、単独で又は組み合わせて利用することができ、実施例の機能は、所望の実装による任意の手段を通じて実装することができる。
【００２０】
分析ソリューションモジュール及び再利用性の概要
生産における分析モデルは、産業用途にとって貴重な資産となり得る。しかし、分析モデルは、新しいプロジェクトのために、データサイエンティストによってゼロから作成及び実装される。これは、データサイエンティストにとって大きな負担となる。さらに、新しいプロジェクトのために分析モデルをゼロから開発することは、長い時間を必要とする。さらに悪いことに、製造エンジニアやドメインエキスパートのようなデータサイエンティスト以外の技術者は、分析モデルの分析及び実装の深い知識持っていないため、分析モデルを開発及び管理することは、ほぼ不可能である。
【００２１】
これらの問題を解決するために、既存の分析モデルが汎用化され、ライブラリにパッケージ化される。これらの予めにパッケージ化された分析モデルは、本明細書において、「分析ソリューションモジュール」と呼ばれる。分析ソリューションモジュールは、一般に、次の特性を有する。（１）ソリューションモジュールは、収益化されるビジネスの問題を解決する分析の反復可能なユニットである。（２）同一のビジネス問題は、データ型、データプロパティ及び実行要件に応じて、いくつかのソリューションモジュールが解決し得る。（３）ソリューションモジュールは、ビジネスの問題を所与として、ドメインエキスパートが容易に選択及び使用できるべきである。（４）ソリューションモジュールは、データサイエンティストとドメインエキスパートの知識を含む。（５）ソリューションモジュールは、１つ以上の実行エンジン（イネーブラ）を必要とする。分析ソリューションモジュールを再利用することによって、プロジェクト開発の時間とコストを大幅に削減できる。
【００２２】
分析ソリューションモジュールは時間の経過と共に作成及び蓄積され、ライブラリは大きすぎ、手動で処理できなくなる。分析ソリューションモジュールを管理するシステムが、スケーラビリティと再利用性のために必要である。
【００２３】
コンポーネント及びアクタの概要
分析ソリューションモジュールは、ここで説明される実施例のテンプレートとして実装及び展開される。ここで説明する実施例は、テンプレートの選択、構成及び展開を行うことで、ドメインエキスパートが分析ソリューションモジュールを使用することをサポートするシステムを含む。主なコンポーネントとアクタは次の通りである。
【００２４】
データサイエンティスト：分析ソリューションモジュールを汎用化し作成する分析エキスパート
ドメインエキスパート：特定のドメインのノウハウの深い知識を有する産業分析アプリケーションの作成者
カスタマ：産業分析アプリケーションのエンドユーザ
分析モデル：機械学習及び人工知能（ＡＩ）タスクを実行するために使用できる訓練処理の結果。分析モデルは、そのモデルを生成する訓練プロセスも含み得る。
分析ソリューションモジュールリポジトリ：分析ソリューションモジュールを保持して管理するシステム又はサービス
分析プラットフォーム：分析ソリューションモジュールを展開し、分析ソリューションモジュールの実行を調整する汎用的なシステム又はサービス
【００２５】
システムの概要：入出力
図１は、実施例によるシステムのアーキテクチャの概要を示している。図１に示すように、２段階（フェーズＩ及びフェーズＩＩ）のメタデータ処理システムがあり、安定分析ソリューションモジュールテンプレートライブラリ、及び、展開可能な分析サービスを、自動的に生成する。システムは、２つの処理ユニットを含み、それらは、分析ソリューションモジュールテンプレート生成ユニット（プログラム）１０２及び分析ソリューションモジュール展開生成ユニット（プログラム）１０８である。
【００２６】
データサイエンティストは、分析ソリューションモジュールテンプレート生成ユニット１０２に入力１０１を与える。入力１０１は、使用される分析演算子及びデータパイプライン（例えば、データフロー）の標準的な記述を含む。また、入力１０１は、所望の実装に応じて、Ｒ、Ｐｙｔｈｏｎ又はその他の言語の対応するコードを含む。テストのため、サンプルデータセットも含まれる。
【００２７】
分析ソリューションモジュールテンプレート生成ユニット１０２は、データサイエンティストからの入力及びターゲットの分析プラットフォームのソフトウェア開発キット（ＳＤＫ）アプリケーションプログラミングインターフェース（ＡＰＩ）に従って、テンプレートメタデータファイルを生成する。
【００２８】
ホスト分析プラットフォームのＳＤＫ  ＡＰＩ１０３は、少なくとも以下をサポートするように構成される。（１）パイプライン実行、（２）ユーザ定義関数の呼び出し。
【００２９】
分析ソリューションモジュールテンプレート生成ユニット１０２からの出力１０４は、ホスト分析プラットフォーム１０３からのＡＰＩに依存する演算子及びフローのラッパコード（ｗｒａｐｐｅｒ  ｃｏｄｅ）を含む。フロー及び演算子テンプレート構成は、分析演算子に対して言語依存しない。
【００３０】
安定分析ソリューションモジュールテンプレートライブラリ１０５は、人による検証後、安定化されたテンプレートをライブラリに保持する。
【００３１】
分析ソリューションモジュール展開生成ユニット１０８への入力１０６は、安定テンプレートラッパと、顧客、ドメインエキスパート及び情報技術（ＩＴ）エンジニアによりインスタンス化されたテンプレート構成と、を含む。各インスタンス化は、特定のユースケースを対象としている。分析コード１０７は、入力１０１から与えられる。分析ソリューションモジュール展開生成ユニット１０８は、管理のためのヘルパサービスと共に、展開可能な分析ソリューションモジュールを生成する。分析ソリューションモジュール展開生成ユニット１０８の出力１０９は、分析ソリューションモジュールに与えられる。これらのモジュールは、クラウド又はエッジサーバに展開可能である。分析ソリューションモジュール展開生成ユニット１０８の出力１１０は、分析ソリューションモジュールへの出力１０９のサービスを管理するヘルパーモジュールのためのものである。ヘルパーモジュールは、ホスト分析プラットフォームのサービスも含む。
【００３２】
入力１０１は、まとめられたデータサイエンティストからの全ての寄与を含む。定義では、標準のプログラミング言語に依存しないインターフェースを使用して、分析を説明する。図１に示すように、入力１０１は以下のものを含むことができる。
【００３３】
演算子定義
各実装について、データサイエンティストは、データフロー定義でさらに使用される正式なコンピュータ可読仕様のインターフェース定義を作成する必要がある。このようなアトミックで自己完結型の分析関数は、「演算子」と呼ばれる。演算子定義において、データサイエンティストは、関数の入力及び出力データスキーマ構造の他、構成パラメータ、及び演算子実装の他の必要な実行プロパティを記述する必要がある。演算子定義は、分析プラットフォームから独立している。各分析プラットフォームベンダは、指定された演算子のための独自のラッパを作成する必要がある。
【００３４】
フロー定義
フロー定義は、複数の演算子をパイプライン又は反復において接続及び統合する方法を記述する。加えて、フローレベル入力／出力データスキーマ及びパラメータも、定義される。フロー定義は、正式なコンピュータ可読仕様形式で記述される。
【００３５】
コード及びデータスニペット（Ｓｎｉｐｐｅｔ）
各演算子のための主要な分析関数及びサポート関数は、分析プラットフォームでロード及び実行可能なパッケージにまとめられる。データサイエンティストがテストデータ及びテスト結果を提供する場合、単体テストケースも含めることができる。
【００３６】
出力ラッパコード１０４は、分析ソリューションモジュールテンプレート生成ユニット１０２からの出力をラップする。図１に示されるように、ラッパコード１０４は以下を含み得る。
【００３７】
フローラッパコード
異なる分析プラットフォームは、固有のフロー表現を使用し得る。分析データフローは、各特定の分析プラットフォームのインターフェースに従うように変換されなければならない。フローラッパコードは、ターゲットのホスト分析プラットフォームにおいて必要とされるフロー制御を満たすための実装も含み得る。
【００３８】
演算子ラッパコード
このラッパコードは、ホスト分析プラットフォームのユーザ定義関数呼び出しインターフェースを実装するために使用される。このラッパコードは、実際の作業がプラットフォームの外において行われる場合に、他の分析ライブラリ又はサービスに対するリモートプロセス呼び出しの実装も含み得る。
【００３９】
フロー構成テンプレート
このテンプレートは、第２フェーズ処理の分析ソリューションモジュール展開生成ユニット１０８における、ドメインエキスパートがカスタマイズすることができるフローレベルパラメータを含む。パラメータはプラットフォーム毎に異なり得る。このようなパラメータは、フローレベルグローバル変数、フロー間データリンク（例えばメッセージキュー名）、及びフローの実行頻度を含むことができる。
【００４０】
演算子構成テンプレート
このテンプレートは、ドメインエキスパートによってインスタンス化される演算子レベルパラメータを含む。パラメータは、対応する演算子定義において定義され、第２フェーズ処理に提示される。テンプレートは、入力及び出力データフレームのデータフレーム割り当て、演算子レベルパラメータ、及びスキーマパラメータを含むことができる。
【００４１】
分析プラットフォーム構成テンプレート
このテンプレートは、展開及び実行の前にＩＴエンジニアによって設定されるシステムレベルパラメータを含む。システム情報は、例えば、プラットフォームのネットワーク設定、セキュリティ／認証設定、パス、及びＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ（ＵＲＬ）設定を含む。
【００４２】
２段階メタデータ処理アプローチは、分析ソリューションモジュールの安定メタデータとカスタマイズ可能なメタデータとを分離する。第１段階において、安定テンプレートが、データサイエンティストによって与えられ、分析モジュールを実行するための全ての要件を記述しているメタデータから、生成される。同時に、ホストプラットフォームＳＤＫ  ＡＰＩに組み込むためのラッパコードも生成される。複数の分析プラットフォームがターゲットとなる場合、プラットフォーム毎にラッパコードの異なるセットが生成される。第２段階において、安定テンプレートが、各ユースケースに合うようにカスタマイズされる。安定ラッパコードとインスタンス化されたテンプレートを組み合わせることによって、最終的な展開可能な分析ソリューションサービスが、補助（ｈｅｌｐｉｎｇ）サービスと共に生成される。
【００４３】
実施例の使用例は、例えば、次の通りである。分析ソリューションモジュールは、データサイエンティストによって、実行エンジン／分析プラットフォームにテンプレートとして実装及び展開される。さらに、分析プラットフォームは、テンプレートの自動化された選択、構成、及び展開を提供し、ドメインエキスパートが分析ソリューションモジュールを使用することを支援する。ドメインのエキスパートは、ビジネス問題に応じて適切なテンプレートを選択し、テンプレートに対してデータセット及びパラメータを構成し、データフローの観点からテンプレートの実行可能インスタンスを生成する。学習（訓練）／実用処理の実行は、分析プラットフォームのバックエンドに隠されている。学習した分析モデル及びパラメータ構成は、分析ソリューションモジュールリポジトリサービス内部で管理（格納／取得）される。
【００４４】
分析ソリューションモジュールテンプレート生成ユニット
第１メタデータ処理段階では、分析ソリューションモジュールテンプレート生成ユニット１０２が使用されて、安定分析ソリューションモジュールテンプレートを自動的に生成する。これはライブラリに保持され、第２段階で使用される。図２は、実施例による、分析ソリューションモジュールテンプレート生成ユニット１０２におけるシステムコンポーネントを示す。
【００４５】
フローパーサ（ｆｌｏｗ  ｐａｒｓｅｒ）及び検証器２０１は、入力フロー定義ファイルを処理し、フローセマンティック検証を実行する。演算子パーサ及び検証器２０２は、入力演算子定義ファイルを処理し、演算子セマンティック検証を実行する。コード検証器２０３は、データサイエンティストから提供された分析コードの単体テストを実施し、単体性能レポートを生成する。分析コードは、外部実行エンジン／環境でプログラムによりテストされる。
【００４６】
スキーマ、変数及びパラメータリゾルバ２０４は、組み合わされたフローレベルスキーマ、変数及びパラメータを解決する。フローと演算子のメタデータを分析した後、辞書が作成される。パラメータ化されたスキーマ及び柔軟なスキーマ解決がサポートされている。モード及びモデル割り当て２０５は、実行モード（学習、テスト、又は実用）及び階層モデルを演算子及びフローに割り当てる。
【００４７】
分析プラットフォームＳＤＫ  ＡＰＩトランスレータ２０６は、提供されたＳＤＫ  ＡＰＩを介して、フロー実行ロジックを、ホスト分析プラットフォームのシステム呼び出しにマッピングする。各ホスト分析プラットフォームは、特定のＡＰＩトランスレータを必要とする。フローラッパコードジェネレータ２０７は、ターゲットの分析プラットフォームで実行できるフローパイプラインのためのラッパコードを生成する。演算子ラッパコードジェネレータ２０８は、ターゲットの分析プラットフォームで実行できるユーザ定義関数呼び出しのためのラッパコードを生成する。フローメタデータジェネレータ２０９は、第２段階においてカスタマイズされる全てのテンプレートファイルを生成する。これらテンプレートは、ターゲットの分析プラットフォームに関連している。
【００４８】
ソリューションモジュールテンプレートジェネレータは、分析プラットフォーム固有である。つまり、個々のフロー実行エンジン又はオーケストレーションプラットフォームについて、特別なジェネレータが、全ての分析ソリューションモジュールのために作成されることが必要である。自動生成プロセス（ジェネレータ）は、分析ソリューションモジュールと個々の分析プラットフォームとの間の演算子インターフェース、フローインターフェース、及びその他のブリッジコードのラッパを作成する。従って、インスタンス化されたソリューションモジュールテンプレートは、対応するプラットフォームユーザインターフェース（ＵＩ）及びＳＤＫ  ＡＰＩ仕様に密接に統合されて、ターゲットの分析プラットフォームで実行可能である。
【００４９】
分析コードスニペット検証及び品質管理
コード検証器２０３は、データサイエンティストによって提出された分析コードを検証する。同時に、このコンポーネントは、パフォーマンスレポートでメタデータを充実させる。データサイエンティストに提供されるメタデータは、分析のセマンティクスに焦点を当て、プラットフォームから独立であるべきである。一方、このコンポーネントで収集されるパフォーマンスメタデータは、プラットフォームに関連している。このコンポーネントは、分析コードの品質を保証するために利用され、収集されたパフォーマンス情報は、顧客の問題のサイズに基づくシステム推奨にさらに使用できる。
【００５０】
図３は、実施例によるコード検証器２０３の処理フローを示す。処理は２つの部分に要約される。第１の部分は、データサイエンティストによって提供されたテストケースを使用するベースラインテストである。第２の部分は、入力されたデータセット及びパラメータに基づき生成したテストケースを使用する拡張ストレステストである。拡張ストレステストケースは、新しいユースケースでの分析ソリューションモジュールの適用可能性を保証する。
【００５１】
３０１において、コード検証器２０３は、演算子定義ファイルに基づいてテスト環境を作成し、３０２において、対応するライブラリをインストール及びロードする。３０３において、コード検証器２０３は、ベースライン単体テストとして、与えられた入力データ及びパラメータ設定の単体テストを実行し、３０４において結果及びパフォーマンス統計を収集する。３０５において、コード検証器２０３は、結果チェックを実行して、その結果を提供された結果で検証する。分析がランダム化を含む場合、完全結果一致が適用されないこともある。成功の場合、フローは３０６に進み、そうでない場に例外が生成される。
【００５２】
３０６において、コード検証器２０３は、拡張ストレステストのための新しいテストケースを生成する。テストケースは、次の変数から生成できる（しかし、これらに限定されない）。パラメータのタイプを考慮してランダム化されたパラメータ値、サンプリングされた入力データセット、欠損値が追加されたデータセット、である。３０７において、サンプル入力データ及び新しいパラメータを使用した機能テストが実行される。３０８において、結果及びパフォーマンス統計が収集される。３０９において、結果がチェックされ、結果が成功であるか判定される。失敗の場合は失敗ログが生成され、成功の場合、フローは３１０に進む。３１０において、さらなるテストが必要か判定される。そうである場合（Ｙ）、フローは３０６に戻り、そうでない場合（Ｎ）、フローは３１１に進み、レポートのパフォーマンスメタデータを生成する。
【００５３】
パラメータ化されたスキーマ及び柔軟なスキーマ解決
スキーマ、変数及びパラメータリゾルバ２０４は、スキーマ解決のためのシステムコンポーネントである。実施例は、データフレームの概念を利用して、演算子毎の入力データ及び出力データを表す。データフレームは、行又は列によってアクセスすることができる。各データフレームのスキーマは、＜ＣｏｌｕｍｎＮａｍｅ＞＠＜ＤａｔａＴｙｐｅ＞の形式における、列名及び対応するプライマリデータ型のリストである。デフォルトのデータ型はＮｕｍｅｒｉｃ／Ｄｏｕｂｌｅであり、＠Ｎｕｍｅｒｉｃ又は＠Ｄｏｕｂｌｅは省略することができる。
【００５４】
各データフレームは、１つの静的スキーマに関連付けられている。ここで、静的は、データフレームのスキーマが実行前に決定され、実行中に変更されないことを意味する。つまり、スキーマ及び対応するデータフレームは、実行時に１対１のマッピングとなる。実行時に列を追加又は削除することによってデータフレームが変更される場合、そのデータフレームは新しいデータフレームになり、新しい名前を持つことが必要である。データフレームのスキーマはパラメータ化できる。実行前に、全てのパラメータは対応する値に対して解決される必要がある。パラメータ化されたスキーマは、データサイエンティストが、入力データフレームに対する可変長スキーマをより柔軟に指定することを可能とする。可変長スキーマ仕様の形式は、例えば、次の通りである。
ＦｉｅｌｄＮａｍｅ−［ＳｕｆｆｉｘＯｆＮｕｍｂｅｒＲａｎｇｅ］＠ＰｒｉｍａｒｙＤａｔａＴｙｐｅ
【００５５】
「−」及び「＠」は、スキーマフィールド名の使用に予約されている。このようなスキーマが使用されるとき、データサイエンティストは、可変フィールドの長さを示す暗黙的なパラメータを定義することができる。例えば、データサイエンティストは、スキーマフィールドを下記にように定義することができる。下記は、可変な数のｄｏｕｂｌｅ値のセンサ読み取り値を意味する。分析コード内において、データサイエンティストはパラメータ＄Ｎを参照してセンサの値を取得することができる。ホスティング環境は、実行前に＄Ｎの値を設定することが必要である。
Ｓｅｎｓｏｒ−［１．．＄Ｎ］＠Ｄｏｕｂｌｅ
【００５６】
正規表現ＲｅｇＥｘｐｒは、ユーザスキーマにおけるフィールド名を、データサイエンティスト定義の分析スキーマと、照合するために使用される。スキーマ照合のための形式は、ＴａｒｇｅｔＦｉｅｌｄＮａｍｅ：ＲｅｇＥｘｐｒである。以下の４つのケースがある。
【００５７】
デフォルト完全一致スキーマ照合
ＴａｒｇｅｔＦｉｅｌｄＮａｍｅ：ＵｓｅｒＦｉｅｌｄＮａｍｅ。つまり、ユーザスキーマにおける同一フィールド名は、分析スキーマにおける同一フィールドと適合する。
【００５８】
スター＊スキーマ照合
分析スキーマが＊との照合を指定する場合、データサイエンティストはユーザスキーマにおける対応フィールド名を必要としていないことを意味する。つまり、データサイエンティストは、＊と適合したフィールド名を参照しない。
【００５９】
複数オプションとの単一照合
例えば、ＴａｒｇｅｔＦｉｅｌｄＮａｍｅ：ＵｓｅｒＦｉｅｌｄＮａｍｅ１｜ＵｓｅｒＦｉｅｌｄＮａｍｅ２｜ＵｓｅｒＦｉｅｌｄＮａｍｅ３。この指定は、ＵｓｅｒＦｉｅｌｄＮａｍｅ１、ＵｓｅｒＦｉｅｌｄＮａｍｅ２又はＵｓｅｒＦｉｅｌｄＮａｍｅ３が、ＴａｒｇｅｔＦｉｅｌｄＮａｍｅと適合できることを意味する。しかし、１つの適合フィールドのみが、ユーザスキーマにおいて現れている。分析スキーマは、ＴａｒｇｅｔＦｉｅｌｄＮａｍｅを使用して、ユーザスキーマにおける対応フィールドを参照する。
【００６０】
複数オプションとの複数照合
例えば、分析スキーマが柔軟な長さのスキーマを定義する場合、ユーザスキーマは柔軟なスキーマにおける複数のフィールドと適合することができる。上記例に従うと以下のようになる。
Ｓｅｎｓｏｒ−［１．．＄Ｎ］＠Ｄｏｕｂｌｅ：Ｔｅｍｐ＊｜Ｓｐｅｅｄ＊
【００６１】
ユーザスキーマがＴｅｍｐ１、Ｓｐｅｅｄ１、Ｔｅｍｐ２、Ｓｐｅｅｄ２である場合、スキーマ照合の後、分析スキーマは、Ｓｅｎｓｏｒ−１、Ｓｅｎｓｏｒ−２、Ｓｅｎｓｏｒ−３、Ｓｅｎｓｏｒ−４である。そして、パラメータ＄Ｎ＝４が設定され、これは、データサイエンティストが分析コードで参照するために使用できる。
【００６２】
図４は、実施例による、スキーマ、変数及びパラメータリゾルバにおけるスキーマ解決の処理フローを示している。処理フローは４つの主要なパスに分けることができ、各パスは、柔軟なスキーマ照合の１つのケースに対応する。
【００６３】
４０１及び４０２において、ターゲットスキーマ配列及びソーススキーマ配列がロードされる。４０３において、ターゲットスキーマ配列の要素を処理するためのループが開始される。４０４において、ターゲットスキーマ配列の要素に対してスキーマ照合が開始される。４０５において、完全一致であるかどうかの判定が行われる。そうである場合（Ｙ）、フローは４１１〜４１４を実行し、デフォルトの完全一致スキーマ照合を行う。そうでない場合（Ｎ）、フローは４０６に進み、スター（＊）照合であるかどうかを判定する。
【００６４】
もしそうであれば（Ｙ）、フローは４１５〜４１８を実行し、スター（＊）スキーマ照合を行う。そうでない場合（Ｎ）、フローは４０７に進み、複数オプションとの単一照合であるかどうかを判定する。そうである場合（Ｙ）、フローは４１９〜４２２を実行し、複数オプションとの単一照合を行う。
【００６５】
そうでなければ（Ｎ）、フローは４０８に進み、複数オプションとの複数照合であるかどうかを判定する。そうである場合（Ｙ）、フローは４２３〜４２８でフローを実行し、複数オプションとの複数照合を行う。そうでない場合（Ｎ）、フローは失敗する。
【００６６】
４１１〜４１４のフローは、デフォルトの完全一致スキーマ照合を行う。４１１において、列名とデータ型の双方で最初に適合するものを見つけるために、ソーススキーマ配列の各要素に対して検索が実行される。４１２において、それが見つかったかどうかに関して判定がなされる。そうでない場合（Ｎ）フローは失敗し、さもなくば（Ｙ）フローは４１３に進み、ソーススキーマからターゲットスキーマへの名前変更マッピングを記録する。４１４において、インデックスｉ及びｊが更新される。
【００６７】
４１５〜４１８におけるフローは、スター（＊）スキーマ照合を行う。４１５において、ソーススキーマ配列を検索して全てのデータ型が適合するものを見つけるための検索が実行され、最初の不適合配列要素で停止する。４１６において、不適合配列要素が見つかったかどうかに関して判定が行われる。そうでない場合（Ｎ）フローは失敗し、さもなくば（Ｙ）、フローは４１７に進み、ソーススキーマの名前を変更せずにソーススキーマ名を記録する。４１８において、インデックスｉ及びｊが更新される。
【００６８】
４１９〜４２２におけるフローは、複数オプションとの単一照合を行う。４１９において、ソーススキーマ配列を検索して、列名ＲｅｇＥｘｐｒとデータ型の双方での最初に適合するものを見つけるための検索が行われる。４２０において、そのような適合するものが見つかったかどうかに関して判定が行われる。そうでない場合（Ｎ）プロセスは失敗し、さもなくば（Ｙ）フローは４２１に進み、ソーススキーマからターゲットスキーマへの名前変更マッピングを記録する。４２２において、インデックスｉ及びｊが更新される。
【００６９】
４２３〜４２８におけるフローは、複数オプションとの複数照合を行う。４２３において、ソーススキーマ配列を検索して、列名ＲｅｇＥｘｐｒ及びデータ型双方において適合する全てのものを検索する。４２４で、適合したものが見つかったかどうかについて判定が行われる。そうでない場合（Ｎ）、プロセスは失敗し、さもなくば（Ｙ）、フローは４２５に進み、新しいターゲット列名を生成する。４２６において、フローは変数＄ＣｏｕｎｔＣｏｌｕｍｎＮａｍｅを生成する。４２７において、フローはソーススキーマからターゲットスキーマへの名前変更マッピングを記録する。４２２において、インデックスｉ及びｊが更新される。
【００７０】
学習フェーズから実用フェーズまでの階層モデル割り当てスキーム
モード及びモデル割り当て２０５は、モデル割り当てのためのシステムコンポーネントである。実施例において、このコンポーネントは、学習フェーズから実用フェーズまでの柔軟な階層モデルの展開パターンをサポートする。この仕様は、データサイエンティストにより解決された分析問題から独立している。モデル割り当ては、機械学習モデル及びパラメータを生成するための、学習モードにおいて使用される機器データを指定する。また、モデル割り当ては、実用モードの実行において使用される学習モデルを指定する。
【００７１】
図５は、実施例において使用される分析モデル階層を示している。３つの基本的なモデル展開パターンがサポートされている。（１）機器カタログごとにモデルを生成する。（２）機器モデルタイプごとにモデルを生成する。（３）特定の機器パターンのモデルを生成する。３つの基本的なタイプに基づいて、対応する識別子（ＩＤ）のグループでの拡張展開パターンも定義できる。
【００７２】
処理の後、異なるテンプレートが、モデル展開パターン設定に従って生成される。実行時に、様々な機器データ上で学習フェーズを実行することにより、複数の分析モデルを生成及び保持できる。これら分析モデルは、次の実用フェーズでさらに使用される。
【００７３】
図６は、実施例による、柔軟な分析モデル割り当ての処理フローを示している。入力された訓練データの統計に基づいて、このコンポーネントは全ての有効なモデル階層キーを見つけ、対応するヘルパ演算子をデータフローテンプレートファイルにおいて生成する。
【００７４】
６０１〜６０５において、訓練フローのための有効なモデル割り当てを生成する。６０１において、訓練データの統計をロード及び計算する。６０２において、最小訓練データサイズ閾値をチェックし、全ての有効なモデル階層キーを見つける。６０３において、各キーのモデルストレージターゲットを生成する。６０４において、各キーについてデータフィルタ演算子（又は並列訓練のためのパーティション演算子）を生成する。６０５において、各キーについて訓練モードでのフローを生成する。
【００７５】
６０６〜６０８において、実用フローに対する有効モデル割り当ての生成を行う。６０６において、モデル階層メタデータをロードする。６０７において、テストフローからの各モデルについての精度閾値をチェックする。６０８において、各有効なモデルに対する実用フローを生成する。
【００７６】
分析ソリューションモジュール展開生成ユニット
クラウド及びエッジサーバの双方における分析ソリューションモジュールの柔軟な展開は、再利用性に対して不可欠である。実施例は、対応する分析プラットフォームに関連付けられた分析モジュールのサービス指向の展開をサポートしている。展開生成ユニット１０８は、分析モジュール及び管理サービスにとって必要な全てのサービスを作成するように構成される。
【００７７】
ジェネレータは、サービス構成ファイル（例えば、ｄｏｃｋｅｒファイル）を最初に作成し、次に実行可能なバイナリ（例えば、ｄｏｃｋｅｒイメージファイル又は他の仮想マシンイメージ）にコンパイルする。実行可能バイナリは、外部サービスストレージ（例えば、ｄｏｃｋｅｒレジストリ）でさらに保持することができる。展開生成ユニット１０８は、Ｄｏｃｋｅｒ以外の他の仮想イメージエコシステムに採用してもよい。
【００７８】
図７は、実施例による、展開生成ユニット１０８におけるシステムコンポーネントを示している。図７は、全ての関連サービスのサービス構成ジェネレータを示している。管理Ｗｅｂサービス構成ジェネレータ７０１は、データフロー及び分析モデルの実行時管理用のために、エンドユーザにＧＵＩを提供する。Ｒｅｓｔｆｕｌ  ＡＰＩサービス構成ジェネレータ７０２は、他のサービスのプログラムによる管理に利用される。
【００７９】
エッジ管理サービス構成ジェネレータ７０３は、分析モジュールの実行のためのエッジサーバのリモート管理に使用される。分析モデルストレージサービス構成ジェネレータ７０４は、保持された分析モデルのアクセスを管理する集中型サービスである。分析コードサービス構成ジェネレータ７０５は、バージョン管理された分析コードファイルをホスト及びアクセスするために使用される。メタデータサービス構成ジェネレータ７０６は、インスタンス化されたテンプレートをホスト及びアクセスするために使用される。
【００８０】
ホスト分析プラットフォームサービス構成ジェネレータ７０７は、ホスト分析プラットフォームをラップして、プラットフォームへのＳＤＫ  ＡＰＩアクセスを提供する。Ｒ／Ｐｙｔｈｏｎエンジンサービス構成ジェネレータ７０８は、分析コードのための外部分析実行環境をラップする。クラウドストレージサービス構成ジェネレータ７０９は、クラウドからエッジに同期されるデータモデルをホストするために使用される。サービス構成マネージャ７１０は、サービス用に生成された全ての構成ファイルを管理する。サービスビルダ７１１は、外部ユーティリティを呼び出して実行可能バイナリを作成し、実行可能イメージを外部ストレージに格納する。
【００８１】
サービスの分離
コンポーネント７０１〜７０９は、それぞれ対応するサービス構成の生成を担当する。ここで説明される実施例は、アプリケーション全体をサービスのセットに分離するための次の特別な設計上の考慮を含む。
【００８２】
１．分析コードからのＲ／Ｐｙｔｈｏｎ分析エンジンの分離
データサイエンティストからの分析コードは、更新されバージョン管理される傾向がある。この分離は、ＩＴエンジニアとデータサイエンティストの分離された管理責任を可能とする。
【００８３】
２．分析モデルの他の全てからの分離
分析モデルは学習処理の結果であり、特別な管理の対象となる。この分離によって、顧客のプライバシと知的財産を保護することができる。
【００８４】
３．分析ソリューションモジュールメタデータの他の全てからの分離
この分離は、役割ベースの産業分析ソリューションの開発を促進する。
【００８５】
４．サービス構成依存関係
ここで説明される実施例は、依存関係グラフを利用して、対応するサービスの生成順序を捉える。図８は、実施例による、サービス間の依存関係グラフを示している。依存関係は、実行時サービスの依存関係ではなく、サービス構成ファイルを生成するためのメタデータ依存関係である。例えば、Ｒｅｓｔｆｕｌ  ＡＰＩサービス構成ファイルの生成は、他のサービスの全てのネットワークアドレス及びＵＲＬに関するメタデータを必要とする。したがって、Ｒｅｓｔｆｕｌ  ＡＰＩサービス構成ファイルは、他の管理されたサービス構成ファイルの後に生成される必要がある。
【００８６】
サービス構成の生成
図８に示される依存関係グラフに従って、図７におけるコンポーネント７０１〜７０９が、サービス構成ファイルを生成するために呼び出される。７０１〜７０９におけるステップは互いに似ているが、ターゲットとなるサービスホスティングエコシステムに固有のものである。７０１〜７０９のコンポーネントにおける生成処理は、ここでは、サービスを構築するためのステートメント又はコマンドのみを生成する。実際の構築処理は、図７のコンポーネント７１１において起こる。ステップは、詳細には、以下の項目を有している。
【００８７】
１．基本サービスの選択
生成されたサービスは通常、基本的な特徴を備えた他のサービステンプレートに基づいている。例えば、このステップはＤｏｃｋｅｒシステムのＦＲＯＭ句を生成する。
【００８８】
２．ネットワークのセットアップ
このステップは、関連サービスからのネットワーク設定の収集を含む。既存ネットワーク設定に基づいて、生成されたサービスはそれ自体のネットワーク設定を作成することができる。
【００８９】
３．インスタンス化されたファイル及びコードスニペットのコピー
このステップは、生成されたサービスのファイルシステムを扱うためのコマンドを生成する。全ての関連ファイルは、予め定義された場所にコピーされることが必要である。
【００９０】
４．パッケージのインストール
このステップは、サービスの前提条件をインストールするためのコマンドを生成する。パッケージは、ソフトウェアパッケージ及びライブラリパッケージとすることが可能である。
【００９１】
５．サービスの初期化
このステップは、サービスを初期化するためのコマンドを生成する。コマンドは予め定義されており、サービスごとに異なることができる。
【００９２】
６．サービスの開始
このステップは、サービスを開始するためのコマンドを生成する。コマンドは予め定義されており、サービスごとに異なることができる。
【００９３】
したがって、実施例は、産業分析ソリューションの再利用性及び開発容易性を目的とする分析ソリューションモジュールを作成及び使用するための、エンドツーエンドのツールキットを提示する。実施例を使用することで、問題指向の分析ソリューションモジュールライブラリと産業分析ソリューションを構築することができる。
【００９４】
実施例において、ウェブベースのＧＵＩが、産業用アプリケーション開発者の複数の役割のために構築可能である。ＧＵＩフロントエンドは、バックエンドＲＥＳＴ  ＡＰＩサービスを利用してタスクを完了する。コマンドラインベースのクライアントを開発することで、ＲＥＳＴ  ＡＰＩの同一セットを介して、分析ソリューションモジュールをプログラムで制御することもできる。
【００９５】
図９は、実施例による、実行時に分析ソリューションモジュールを使用するためのＲＥＳＴ  ＡＰＩ呼び出しのシーケンス図の例を示している。各ＲＥＳＴ  ＡＰＩ呼び出しに対して、同じ機能を実現するための対応するＧＵＩステップが存在する。ＧＵＩ（又は他のクライアント）から、ドメインエキスパートは下記ワークフローに従う。（１）分析ソリューションモジュールテンプレートのリストを取得する。（２）メタデータに基づいて、ニーズに最も適合するものを選択する。（３）選択したテンプレートのパラメータを構成してカスタマイズする。（４）ホスト分析プラットフォームの仕様に従って実行可能フローを生成する。（５）ホスト分析プラットフォームでフローを実行して、Ｒ及び／又はＰｙｔｈｏｎ分析エンジン／サービスを呼び出す。
【００９６】
フローが学習モードで実行される場合、学習したモデル及び／又はパラメータ値は、モデルＤＢに格納される。フローがテスト／実用モードで実行される場合、フローに関連付けられた対応する学習済みモデルがモデルＤＢから取得され、後の分析で使用される。フローからの分析結果は、ダッシュボード（ＡＭＱＰを介して）及び／又は他のユーザ指定場所に送信される。
【００９７】
分析ソリューションモジュールのライフサイクルを促進するため、ウェブベースのＧＵＩシステムは以下の特別なＨＣＩモジュールを有する。
【００９８】
分析ソリューションモジュール選択のウィザード
図１０は、実施例による、分析ソリューションモジュール選択のためのＧＵＩ例を示している。これは、機械学習の詳細を抽象化し、そして、非データサイエンティストが機械学習の特定の知識を深く理解することなく分析ソリューションモジュールを使用できるように支援する。分析ソリューションモジュールが作成される場合、データサイエンティストは、以下の項目についての文書化された知識を提供することが必要である。
【００９９】
（１）解決された分析問題についての記述
（２）入力データ及び対応するスキーマの記述
（３）入力データの必要な特性（例えば、正規化されているか否か、時系列か否か、等）
（４）各パラメータの意味及び典型的な設定
（５）サンプル入力データ及び推定される分析モデル結果
（６）ソリューションモジュールが適用できない制限
【０１００】
文書化された知識は、ドメインエキスパートに適切なソリューションモジュールを推奨するためのウィザードを生成するために使用される。入力データ型、そのデータ量及び解決すべき問題についての望ましい実行モードに関するいくつかの質問に回答することによって、プロジェクトに適したソリューションモジュールがユーザに対して自動的に推奨される。この処理において、自然言語処理（ＮＬＰ）を使用することで、分類とランキングのために記述されたテキストからキーワードを抽出することができる。
【０１０１】
異なる役割に対して分離されたＧＵＩ
システム構成画面は、産業分析ソリューションの開発における異なる役割を支援するために分離されている。図１１に示されるＧＵＩシステムは、３つの主要な役割をサポートし、対応するＧＵＩは各役割のためにグループ化されている。
【０１０２】
ドメインエキスパートＧＵＩ
ドメインエキスパートは、入力データに関するプロジェクトソリューション固有の情報を指定し、選択された分析ソリューションモジュールテンプレートにパラメータ値を設定することができる。
【０１０３】
ＩＴエンジニアＧＵＩ
この画面において、ＩＴエンジニアは、外部システムのファイルパス及びネットワークアドレス等の実行環境を構成するために必要なＩＴ関連パラメータを設定することができる。
【０１０４】
データサイエンティストＧＵＩ
このＧＵＩは、データサイエンティストによって、分析モデル及び分析ソリューションモジュールのさらに調整することができる高度な設定のために使用される。
【０１０５】
フロー検証及びカスタマイズのためのＧＵＩ
提案されたシステムは、システム構成及び他のメタデータで分析ソリューションモジュールテンプレートをインスタンス化する自動フロージェネレータを提供するが、ドメインエキスパートは、生成されたフローに対する最終決定権を有する。提案されたシステムは、展開前に人間の介入を容易にするＧＵＩセットを提供する。対応するＧＵＩは次の特徴を有している。
【０１０６】
（１）ドメインエキスパートは、生成されたフローを検証及び修正することができる。
（２）ドメインエキスパートは、フローの一部又は全てをカット、コピー、貼り付け、複製することができる。
（３）ドメインエキスパートは、生成されたフローの前、中間、又は後に追加の演算子を追加することができる。
（４）ドメインエキスパートは、モデル展開パターンを選択することができ、これは、いずれの機器データを学習モードで使用して機械学習モデル及びパラメータを生成し、いずれの学習モデルが実用モードの実行において使用されるかを指定することを意味する。
【０１０７】
クラウドからエッジへのソリューションモジュール展開の統合管理のためのＧＵＩ
分析ソリューションモジュールは、部分的にクラウド上に展開し、そして部分的にエッジサーバ上に展開できる。そのため、提案されたシステムは、エッジサーバのクラウド／リモート管理用統合ＧＵＩを提供する。統合ＧＵＩは、以下の要素を含むことができる（これらに限定されない）。
【０１０８】
（１）分析モデルを使用し、分析ソリューションモジュールを実行できる新しいエッジサーバのレジストリ
（２）クラウドサーバとエッジサーバとの間の分析モデル及びメタデータの同期
（３）カスタマイズされた構成での分析モデル及びメタデータの展開
（４）エッジサーバ上の分析ソリューションモジュールの実行制御及び結果収集
【０１０９】
図１２は、図１に示すフェーズＩ及び／又はフェーズＩＩのシステムの機能を可能とするデバイスなど、いくつかの実施例での使用に適した例示的なコンピュータ装置を含む例示的なコンピューティング環境を示す。実施例において、第２のコンピュータ装置を含む第２のシステムから分離された、第１のコンピュータ装置を含む第１のシステムが存在し得る。
【０１１０】
例えば、第１のシステムはデータサイエンティストのためのものであり、データ分析処理及びコンソールを可能とするように構成された専用のコンピュータ装置を含む。コンソールは、フロー定義と演算子定義のためのコンソール、及びデータ分析を生成するための実行可能コードを提供するためのコンソールを含むことができる。
【０１１１】
対照的に、第２のシステムは、第１のシステムから生成されたモジュールテンプレートライブラリを組み込むように構成され、顧客、ドメインエキスパート、ＩＴエンジニアなどの非データサイエンティストにより使用されるように構成される。第２のシステムは、第１のシステムとは異なるハードウェア及びコンソール構成を含むことができる。しかし、目的の実装に応じて、双方のシステムは同じハードウェアを共有するクラウド上に配置され（例えば、双方が同一コンピュータ装置に統合される）、図１１に示すようなログイン認証若しくは異なるアクセス用ＧＵＩの使用又は他の所望の実装に従って、第１のシステムが第２のシステムから隔離されるようにセットアップされてもよい。
【０１１２】
コンピューティング環境１２００のコンピュータ装置１２０５は、１つ以上の処理ユニット、コア、又はプロセッサ１２１０、メモリ１２１５（例えば、ＲＡＭ、ＲＯＭなど）、内部ストレ−ジ１２２０（例えば、磁気ストレ−ジ、光学ストレ−ジ、ソリッドステ−トストレ−ジ及び／又は有機ストレ−ジ）、及び／又はＩ／Ｏインタ−フェ−ス１２２５を含むことができる。これらのいずれも、情報を通信するための通信機構又はバス１２３０に結合されるか、コンピュ−タ装置１２０５に埋め込まれることができる。Ｉ／Ｏインタ−フェ−ス１２２５も、目的の実装に応じて、カメラからの画像を受信し、又はプロジェクタやディスプレイに画像を与えるように構成される。
【０１１３】
コンピュータ装置１２０５は、入力／ユ−ザインタ−フェース１２３５及び出力デバイス／インタ−フェ−ス１２４０に通信可能に結合され得る。入力／ユ−ザインタ−フェース１２３５及び出力デバイス／インタ−フェ−ス１２４０のいずれか一方又は両方は、有線又は無線インタ−フェ−スであり、取り外し可能であり得る。入力／ユ−ザインタ−フェ−ス１２３５には、入力を与えるために使用できる物理的又は仮想的なデバイス、コンポーネント、センサ、又はインタ−フェ−スを含めることができる（例えば、ボタン、タッチスクリ−ンインタ−フェ−ス、キ−ボ−ド、ポインティング／カーソルコントロール、マイク、カメラ、点字、モ−ションセンサ、光学式リ−ダなど）。
【０１１４】
出力デバイス／インタ−フェ−ス１２４０は、ディスプレイ、テレビ、モニタ、プリンタ、スピ−カ、点字などを含み得る。いくつかの実施例では、入力／ユーザインタ−フェ−ス１２３５及び出力デバイス／インタ−フェ−ス１２４０は、コンピュ−タ装置１２０５に埋め込まれるか、又は物理的に結合され得る。他の例では、他のコンピュータ装置は、コンピュータ装置１２０５の入力／ユ−ザインタ−フェ−ス１２３５及び出力デバイス／インタ−フェ−ス１２４０として機能するか、それらの機能を提供することができる。
【０１１５】
コンピュータ装置１２０５の例は、これらに限定されないが、高度にモバイルな装置（例えば、スマートフォン、車両及び他の機械の装置、人間及び動物によって運ばれる装置など）、モバイル装置（例えば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオなど）、及びモバイル向けに設計されていないデバイス（デスクトップコンピュータ、他のコンピュータ、情報キオスク、１つ以上のプロセッサが埋め込まれている及び／又は結合されているテレビ、ラジオなど）、が含まれ得る。
【０１１６】
コンピュータ装置１２０５は、外部ストレージ１２４５及びネットワーク１２５０に通信可能に（例えば、Ｉ／Ｏインターフェース１２２５を介して）結合し、同一又は異なる構成のコンピュータ装置を含む、任意の数のネットワーク化されたコンポーネント、装置、及びシステムと通信することができる。コンピュータ装置１２０５又は接続されたコンピュータ装置は、サーバ、クライアント、シンサーバ、一般機械、専用機械、又は別の名称の装置として、機能する、サービスを与える、又はそれらとして参照され得る。
【０１１７】
Ｉ／Ｏインターフェース１２２５は、任意の通信又はＩ／Ｏのプロトコル又は規格（例えば、イーサネット（登録商標）、８０２．１１ｘ、ユニバーサルシステムバス、ＷｉＭａｘ、モデム、携帯電話ネットワーク等）を使用する有線及び／又は無線インターフェースを含むことができ（これらに限定されない）、コンピューティング環境１２００内の少なくとも全ての接続コンポーネント、デバイス、及びネットワークと情報をやり取りすることができる。ネットワーク１２５０は、任意のネットワーク又はネットワークの組み合わせ（例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク、電話ネットワーク、携帯電話ネットワーク、衛星ネットワークなど）であり得る。
【０１１８】
コンピュータ装置１２０５は、一過性媒体及び非一過性媒体を含むコンピュータ使用可能又はコンピュータ可読媒体を使用する及び／又は使用して通信することができる。一過性媒体には、伝送媒体（金属ケーブル、光ファイバなど）、信号、搬送波などが含まれる。非過性媒体には、磁気媒体（ディスクやテープなど）、光学媒体（ＣＤ  ＲＯＭ、デジタルビデオディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスクなど）、ソリッドステート媒体（ＲＡＭ、ＲＯＭ、フラッシュメモリ、ソリッドステートストレージなど）、及びその他の不揮発性ストレージ又はメモリが含まれる。
【０１１９】
コンピュータ装置１２０５を使用して、いくつかの例示的なコンピューティング環境において、技術、方法、アプリケーション、プロセス、又はコンピュータ実行可能命令を実装することができる。コンピュータで実行可能な命令は、一過性媒体から取得し、非一過性媒体に格納して取得できる。実行可能命令は、プログラミング、スクリプト、及び機械言語（Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｐｙｔｈｏｎ、Ｐｅｒｌ、Ｊａｖａ  Ｓｃｒｉｐｔ（登録商標）など）の１つ又は複数から生成できる。
【０１２０】
プロセッサ１２１０は、任意のオペレーティングシステム（ＯＳ）（図示せず）の下で、ネイティブ環境又は仮想環境で実行でき、中央処理装置（ＣＰＵ）、又はソフトウェア及びハードウェアプロセッサの組み合わせなどの、物理ハードウェアプロセッサの形態であり得る。論理ユニット１２６０、アプリケーションプログラミングインタ−フェ−ス（ＡＰＩ）ユニット１２６５、入力ユニット１２７０、出力ユニット１２７５、及び、異なるユニットが相互に、ＯＳと、そして他のアプリケーション（図示せず）と通信するユニット間通信メカニズム１２９５を含む、１つ以上のアプリケーションを展開できる。説明されているユニット及び要素は、設計、機能、構成、又は実装が様々であり、提供された説明に限定されない。プロセッサ１２１０は、中央処理装置（ＣＰＵ）のようにハードウェアの形で提供する又はハードウェアとソフトウェアの組み合わせにおいて提供できる。
【０１２１】
いくつかの実施例では、情報又は実行命令がＡＰＩユニット１２６５によって受信されると、１つ又は複数の他のユニット（例えば、論理ユニット１２６０、入力ユニット１２７０、出力ユニット１２７５）に通信され得る。いくつかの例では、論理ユニット１２６０は、ユニット間の情報フローを制御し、上記のいくつかの実施例においてＡＰＩユニット１２６５、入力ユニット１２７０、出力ユニット１２７５によって提供されるサービスを指示すように構成され得る。
【０１２２】
例えば、１つ又は複数のプロセス又は実装のフローは、論理ユニット１２６０単独又はＡＰＩユニット１２６５と連動して制御されてもよい。入力ユニット１２７０は、実施例で説明された計算の入力を取得するように構成されてもよい。出力ユニット１２７５は、実施例で説明される計算に基づいて出力を与えるように構成され得る。
【０１２３】
図１及び２に示すように、第１のシステムの実施例において、１以上のプロセッサ１２１０は、フロー定義、演算子定義、及び実行可能コードを含むメタデータを処理して、データベースに分析ライブラリを生成するように構成される。分析ライブラリは、フロー構成テンプレート、演算子構成テンプレート、分析プラットフォーム構成テンプレート、並びに、フロー構成テンプレート、演算子構成テンプレート及び分析プラットフォーム構成テンプレートのインスタンス化のためのラッパコード、を含む。プロセッサ１２１０は、実行可能コードで検証を実行するように構成され、検証が成功すると、プロセッサ１２１０は、第２のシステムが分析ライブラリへアクセスできるようにする。
【０１２４】
図１に示すように、第２のシステムの実施例において、１以上のプロセッサ１２１０は、フロー構成テンプレート、演算子構成テンプレート及び分析プラットフォーム構成テンプレートに対してラッパコードを実行して、実行可能分析モジュールをインスタンス化するように、に構成される。
【０１２５】
図３の３０１〜３０５に示すにように、第１のシステムの実施例において、１以上のプロセッサ１２１０は、上記検証において、演算子定義からテスト環境を作成し、テスト環境で実行可能コードへの入力データ及びパラメータ設定について単体テストを実行して、結果を生成するように構成される。図３の３０６〜３０８に示すように、１以上のプロセッサ１２１０は、単体テストの結果が提供された結果に対して検証されると、テスト環境で実行可能コードに対して機能テストを実施するように構成される。図３の３１１に示すように、プロセッサ１２１０は、機能テストが成功すると、検証が成功したことを示すように構成される。
【０１２６】
図４の４０１及び４０２に示すにように、第１のシステムの実施例において、１以上のプロセッサ１２１０は、演算子定義及びフロー定義から導出されたスキーマに対してスキーマ照合を行って、ラッパコードを生成する。１以上のプロセッサ１２１０は、スキーマ照合において、演算子定義とフロー定義から導出されたスキーマからターゲットスキーマ配列とソーススキーマ配列を生成するように構成される。図４の４０３〜４０８に示すにように、１以上のプロセッサ１２１０は、ターゲットスキーマ配列における各スキーマを検索スキーム用にパーシングするように構成される。検索スキームは、完全要素一致、スター一致、複数オプションによる単一一致、複数オプションによる複数一致のいずれかである。図４の４１１〜４２８に示すにように、１以上のプロセッサ１２１０は、検索スキームに従って、ターゲットスキーマ配列とソーススキーマ配列の間でスキーマ照合を実行する、ように構成される。
【０１２７】
図５及び６に示すように、第１のシステムの実施例において、１以上のプロセッサ１２１０は、フロー構成テンプレート、演算子構成テンプレート及び分析プラットフォーム構成テンプレートの生成に利用されるモデルを生成するために使用されるデータを指定して、フロー構成テンプレート、演算子構成テンプレート及び分析プラットフォーム構成テンプレートを生成するように構成される。上記データはモデル階層に従って指定される。１以上のプロセッサ１２１０は、生成されたモデルに基づいて実行フローを割り当てて、ラッパコードを生成するように構成される。
【０１２８】
図７〜９に示すように、第２のシステムの実施例において、１以上のプロセッサ１２１０は、フロー構成テンプレート、演算子構成テンプレート及び分析プラットフォーム構成テンプレート上でラッパコードを実行して、実行可能な分析モジュールをインスタンス化するように構成される。１以上のプロセッサ１２１０は、実行可能な分析モジュールのインスタンス化において、分析プラットフォーム構成テンプレートに示されている実行可能分析モジュールを、分離された分析サービスの依存関係に従って、分離された分析サービスとして生成するように構成される。分離された分析サービスのそれぞれは、フロー構成テンプレート及び演算子構成テンプレートから定義される。
【０１２９】
図１０及び１１に示すように、第２のシステムの実施例において、１以上のプロセッサ１２１０は、入力データ型及び実行モードに基づいて実行するインスタンス化された実行可能分析モジュールを提供するように構成されたグラフィカルユーザーインターフェイスを提供し、提供されたインスタンス化された実行可能分析モジュールの一つ選択を受信すると、第２のシステムに提供されたデータに対して、提供されたインスタンス化された実行可能分析モジュールの選択された一つを実行する、ように構成される。
【０１３０】
詳細な説明のいくつかの部分は、コンピュータ内の動作のアルゴリズム及び記号的表現に関して提示されている。これらのアルゴリズム記述及び記号的表現は、データ処理技術の当業者が、その革新の本質を他の当業者に伝えるために使用する手段である。アルゴリズムは、目的の最終状態又は結果に至る一連の定義済みステップでる。実施例では、実行されるステップは、具体的な結果を得るために具体的な量を物理的に操作する必要がある。
【０１３１】
議論から明らかなように、以下のことが理解される。説明全体を通して、「処理」、「演算」、「計算」、「決定」、「表示」などの用語を利用する議論は、コンピュータシステム又は他の情報処理装置の動作及び処理を含むことができる。これら装置は、コンピュータシステムのレジスタ及びメモリ内の物理（電子）量として表されるデータを、コンピュータシステムのメモリ、レジスタ、その他の情報ストレージ、送信又は表示デバイス内の物理量として同様に表される他のデータに操作及び変換する。
【０１３２】
実施例はまた、本明細書のオペレーションを実行するための装置に関連してもよい。この装置は、必要な目的のために特別に構築されてもよいし、１以上のコンピュータプログラムによって選択的に起動又は再構成される１以上の汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、コンピュータ可読記憶媒体又はコンピュータ可読信号媒体などのコンピュータ可読媒体に格納されてもよい。コンピュータ可読記憶媒体は、限定ではないが、電子情報を保存するための、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイス及びドライブ、又はその他の適切な有形又は非一過性の媒体などの有形媒体を含み得る。コンピュータ可読信号媒体は、搬送波などの媒体が含み得る。本明細書で提示されるアルゴリズム及び表示は、特定のコンピュータ又は他の装置に本質的に関連するものではない。コンピュータプログラムは、目的の実装のオペレーションを実行する命令を含む純粋なソフトウェア実装を含むことができる。
【０１３３】
本明細書の例に従って、様々な汎用システムをプログラム及びプログラムモジュールとともに使用することができ、又は所望の方法ステップを実行するための専用の装置を構築することがより適切であることが判明する場合がある。さらに、実施例は、特定のプログラミング言語を参照して説明されていない。様々なプログラミング言語を使用して、本明細書で説明する実施例の教示を実装できることが理解される。プログラミング言語の命令は、１以上の処理デバイス、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行されてよい。
【０１３４】
当技術分野で知られているように、上記オペレーションは、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの何らかの組み合わせによって実行することができる。実施例の様々な態様は、回路及び論理デバイス（ハードウェア）を使用して実装できるが、他の態様は、プロセッサによって実行されるとプロセッサに本願の実装を実行する方法を実行させる、機械可読媒体（ソフトウェア）に格納された命令を使用して実装できる。さらに、本願のいくつかの実施例は、ハードウェアのみで実行されてもよく、他の実施例は、ソフトウェアのみで実行されてもよい。さらに、説明されている様々な機能は、単一のユニットで実行することも、様々な方法で多数のコンポーネントに分散させることもできる。ソフトウェアによって実行される場合、これらの方法は、コンピュータ可読媒体に格納された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。必要に応じて、命令は圧縮及び／又は暗号化された形式で媒体に保存できる。
【０１３５】
さらに、本願の他の実装は、本願の教示の仕様及び実施を考慮することにより、当業者には明らかであろう。説明した実施例の様々な態様及び／又は構成要素は、単独で又は任意の組み合わせで使用することができる。本明細書及び実施例は、例としてのみ考慮されることが意図されており、本願の真の範囲及び精神は、添付の特許請求の範囲によって示される。
【符号の説明】
【０１３６】
１０１、１０６  入力
１０２  分析ソリューションモジュールテンプレート生成ユニット
１０３  ホスト分析プラットフォームのＳＤＫ  ＡＰＩ
１０４  ラッパコード
１０５  安定分析ソリューションモジュールテンプレートライブラリ
１０７  分析コード
１０８  分析ソリューションモジュール展開生成ユニット  
１０９、１１０  出力
２０１  フローパーサ及び検証器
２０２  演算子パーサ及び検証器
２０３  コード検証器
２０４  スキーマ、変数及びパラメータリゾルバ
２０５モード及びモデル割り当て
２０６  分析プラットフォームＳＤＫ  ＡＰＩトランスレータ
２０７  フローラッパコードジェネレータ
２０８  演算子ラッパコードジェネレータ
２０９  フローメタデータジェネレータ
【図１】
2020201936.tif 000003
【図２】
2020201936.tif 000004
【図３】
2020201936.tif 000005
【図４】
2020201936.tif 000006
【図５】
2020201936.tif 000007
【図６】
2020201936.tif 000008
【図７】
2020201936.tif 000009
【図８】
2020201936.tif 000010
【図９】
2020201936.tif 000011
【図１０】
2020201936.tif 000012
【図１１】
2020201936.tif 000013
【図１２】
2020201936.tif 000014