(57)【要約】マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの要素の視覚化、配布、およびイベント駆動管理のための方法およびシステムが、提供される。そのようなワークフローの要素の視覚化のための方法は、ユーザインターフェースを介してワークフローを表示するステップと、要素の群を折り畳むステップと、さらなる要素を追加するステップと、要素を除去するステップと、ワークフロー内の要素を修正するステップとを含んでもよい。
2017508219.tif 000002
【特許請求の範囲】
【請求項１】
マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの要素の視覚化のための方法であって、
グラフィカルユーザインターフェース（ＧＵＩ）を介して、前記ワークフローを表示することであって、前記ワークフローは、複数の要素を含む、ことと、
事前判定された群化基準に基づいて、前記ワークフロー内に、１つまたはそれを上回る折り畳み可能な要素の群を定義することと、
ユーザから、前記１つまたはそれを上回る折り畳み可能な要素の群を折り畳むための要求を受信することと、
前記１つまたはそれを上回る折り畳み可能な要素の群を、１つまたはそれを上回る折り畳まれた要素の群に折り畳むことと、
前記複数の要素と、前記１つまたはそれを上回る折り畳まれた要素の群との配置を選択的に再調節することと、
を含む、方法。
【請求項２】
さらなる要素を、前記ワークフローに追加するための要求を受信することと、
前記さらなる要素を、前記ワークフローに追加することと、
前記ワークフローの配置を選択的に再調節することと、
をさらに含む、請求項１に記載の方法。
【請求項３】
さらなる要素を、前記ワークフローから除去するための要求を受信することと、
前記さらなる要素を、前記ワークフローから除去することと、
前記ワークフローの配置を選択的に再調節することと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記ワークフローのさらなる要素を修正するための要求を受信することと、
前記ワークフローのさらなる要素を修正することと、
前記ワークフローの配置を選択的に再調節することと、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記１つまたはそれを上回る折り畳み可能な要素の群は、ループと、条件文と、コンピュータツールと、マーカーと、アルゴリズムと、ネスト化ワークフローとのうちの１つまたはそれを上回るものを含む、請求項１に記載の方法。
【請求項６】
前記複数の要素は、単語と、アイデアと、タスクとのうちの１つまたはそれを上回るものを含む、請求項１に記載の方法。
【請求項７】
省スペース化要素を、前記ワークフローの配置に追加することをさらに含む、請求項１に記載の方法。
【請求項８】
前記ワークフローの要素またはその要素の群の視覚化を作成するための要求を受信することであって、前記視覚化は、ユーザが、前記ワークフロー上で作業しながら、前記要素または要素の群を編集することを可能にする、ことと、
前記ワークフローの要素または要素の群の視覚化を作成することと、
をさらに含む、請求項１に記載の方法。
【請求項９】
前記視覚化は、インラインエディタを備える、請求項８に記載の方法。
【請求項１０】
前記マルチノード算出クラスタは、Ｈａｄｏｏｐベースである、請求項１から９のうちのいずれか１つに記載の方法。
【請求項１１】
前記ワークフローは、科学的ワークフローである、請求項１から１０のうちのいずれか１つに記載の方法。
【請求項１２】
前記科学的ワークフローは、非常に大きなゲノムデータセットを分析する、バイオインフォマティクスワークフローである、請求項１１に記載の方法。
【請求項１３】
マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの要素の視覚化のためのシステムであって、
プロセッサであって、
事前判定された群化基準に基づいて、前記ワークフロー内に、１つまたはそれを上回る折り畳み可能な要素の群を定義することと、
ユーザから、前記１つまたはそれを上回る折り畳み可能な要素の群を折り畳むための要求を受信することと、
前記１つまたはそれを上回る折り畳み可能な要素の群を、１つまたはそれを上回る折り畳まれた要素の群に折り畳むことと、
前記複数の要素と、前記１つまたはそれを上回る折り畳まれた要素の群との配置を選択的に再調節することと
を行うように構成される、プロセッサと、
前記ワークフローを表示するように構成される、ユーザインターフェースであって、前記ワークフローは、複数の要素を含む、ユーザインターフェースと、
を備える、システム。
【請求項１４】
前記ワークフローと関連付けられるデータを記憶するように構成される、データベースをさらに備える、請求項１３に記載のシステム。
【請求項１５】
前記プロセッサは、
さらなる要素を、前記ワークフローに追加するための要求を受信することと、
前記さらなる要素を、前記ワークフローに追加することと、
前記ワークフローの配置を選択的に再調節することと
を行うようにさらに構成される、請求項１３に記載のシステム。
【請求項１６】
前記プロセッサは、
さらなる要素を、前記ワークフローから除去するための要求を受信することと、
前記さらなる要素を、前記ワークフローから除去することと、
前記ワークフローの配置を選択的に再調節することと
を行うようにさらに構成される、請求項１３に記載のシステム。
【請求項１７】
前記プロセッサは、
前記ワークフローのさらなる要素を修正するための要求を受信することと、
前記ワークフローのさらなる要素を修正することと、
前記ワークフローの配置を選択的に再調節することと
を行うようにさらに構成される、請求項１３に記載のシステム。
【請求項１８】
前記１つまたはそれを上回る折り畳み可能な要素の群は、ループと、条件文と、コンピュータツールと、マーカーと、アルゴリズムと、ネスト化ワークフローとのうちの１つまたはそれを上回るものを含む、請求項１３に記載のシステム。
【請求項１９】
前記複数の要素は、単語と、アイデアと、タスクとのうちの１つまたはそれを上回るものを含む、請求項１３に記載のシステム。
【請求項２０】
前記プロセッサは、省スペース化要素を、前記ワークフローの配置に追加するようにさらに構成される、請求項１３に記載のシステム。
【請求項２１】
前記プロセッサは、
前記ワークフローの要素またはその要素の群の視覚化を作成するための要求を受信することであって、前記視覚化は、ユーザが、前記ワークフロー上で作業しながら、前記要素または要素の群を編集することを可能にする、ことと、
前記ワークフローの要素またはその要素の群の視覚化を作成することと
を行うようにさらに構成される、請求項１３に記載のシステム。
【請求項２２】
前記視覚化は、インラインエディタを備える、請求項２１に記載のシステム。
【請求項２３】
前記マルチノード算出クラスタは、Ｈａｄｏｏｐベースである、請求項１３から２２のうちのいずれか１つに記載のシステム。
【請求項２４】
前記ワークフローは、科学的ワークフローである、請求項１３から２３のうちのいずれか１つに記載のシステム。
【請求項２５】
前記科学的ワークフローは、非常に大きなゲノムデータセットを分析する、バイオインフォマティクスワークフローである、請求項２４に記載のシステム。
【請求項２６】
その上にプログラムを具現化している非一過性コンピュータ可読記憶媒体であって、前記プログラムは、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの要素の視覚化のための方法を実施するために、プロセッサによって実行可能であり、前記方法は、
ユーザインターフェースを介して、前記ワークフローを表示することであって、前記ワークフローは、複数の要素を含む、ことと、
事前判定された群化基準に基づいて、前記ワークフロー内に、１つまたはそれを上回る折り畳み可能な要素の群を定義することと、
ユーザから、前記１つまたはそれを上回る折り畳み可能な要素の群を折り畳むための要求を受信することと、
前記１つまたはそれを上回る折り畳み可能な要素の群を、１つまたはそれを上回る折り畳まれた要素の群に折り畳むことと、
前記複数の要素と、前記１つまたはそれを上回る折り畳まれた要素の群との配置を選択的に再調節することと、
さらなる要素を、前記ワークフローに追加するための要求を受信することと、
前記さらなる要素を、前記ワークフローに追加することと、
さらなる要素を、前記ワークフローから除去するための要求を受信することと、
前記さらなる要素を、前記ワークフローから除去することと、
前記ワークフローのさらなる要素を修正するための要求を受信することと、
前記ワークフローのさらなる要素を修正することと、
前記ワークフローの配置を選択的に再調節することと、
省スペース化要素を、前記ワークフローの配置に追加することと、
前記ワークフローの要素またはその要素の群の視覚化を作成するための要求を受信することであって、前記視覚化は、ユーザが、前記ワークフロー上で作業しながら、前記要素または要素の群を編集することを可能にする、ことと、
前記ワークフローの要素またはその要素の群の視覚化を作成することと、
を含む、非一過性コンピュータ可読記憶媒体。
【請求項２７】
マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのための配布プラットフォームであって、
ユーザが、前記ワークフローと関連付けられる１つまたはそれを上回るパラメータに基づいて、前記ワークフローを選択することを可能にするように構成される、ユーザインターフェースと、
配布モジュールであって、
ユーザが、前記ワークフローを取得することと、
前記ワークフローを、ユーザ環境中にインポートすることと
を行うことを可能にするように構成される、配布モジュールと、
前記ユーザ環境中にインポートされたワークフローの展開をサポートするように構成される、ワークフローのための管理エンジンと、
を備える、配布プラットフォーム。
【請求項２８】
前記ユーザインターフェースは、前記ワークフローを検索すること、前記ワークフローと関連付けられる情報を閲覧すること、前記ワークフローを購入すること、前記ワークフローをユーザデバイスにダウンロードすること、および、開発者が、ツールを開発し、前記ツールを前記ワークフローのための管理エンジンにアップロードすることを可能にすること、のうちの１つまたはそれを上回る機能性を提供するように構成される、請求項２７に記載のプラットフォーム。
【請求項２９】
前記ワークフローは、ユーザデバイス上にインストールされたアプリケーションを介して、またはウェブベースのアプリケーションを介して提供される、請求項２７に記載のプラットフォーム。
【請求項３０】
前記ユーザインターフェースは、プラットフォームオペレータによって調整され、各ワークフローは、事前判定されたガイドラインを用いて、承認プロセスおよび承諾を要求する、請求項２７に記載のプラットフォーム。
【請求項３１】
前記ワークフローと関連付けられるパラメータおよびツールは、前記ワークフローが前記ユーザ環境中にインポートされた後、編集可能である、請求項２７に記載のプラットフォーム。
【請求項３２】
前記ワークフローは、前記ユーザ環境中にインポートされた後、編集可能である、請求項２７に記載のプラットフォーム。
【請求項３３】
前記配布モジュールは、ワークフロー取得者からの手数料を査定することを可能にする、請求項２７に記載のプラットフォーム。
【請求項３４】
前記手数料のある割合は、プラットフォームオペレータに支払われる、請求項３３に記載のプラットフォーム。
【請求項３５】
前記ワークフローは、定義された期間にわたる無制限の使用、使用あたりベース、および、無制限の使用に対する１回限りの一括ベース、のうちの１つまたはそれを上回るものから選択されるものに基づいて販売される、請求項２７に記載のプラットフォーム。
【請求項３６】
前記ワークフローは、サービスとしてのソフトウェア（ＳａａＳ）として配布される、請求項２７に記載のプラットフォーム。
【請求項３７】
前記マルチノード算出クラスタは、Ｈａｄｏｏｐベースである、請求項２７から３６のうちのいずれか１つに記載のシステム。
【請求項３８】
前記ワークフローは、科学的ワークフローである、請求項２７から３７のうちのいずれか１つに記載のシステム。
【請求項３９】
前記科学的ワークフローは、非常に大きなゲノムデータセットを分析する、バイオインフォマティクスワークフローである、請求項３８に記載のシステム。
【請求項４０】
マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローを配布するためのコンピュータ実装方法であって、
ユーザインターフェースによって、前記ワークフローと関連付けられる１つまたはそれを上回るパラメータに基づいて、前記ワークフローを選択するためのユーザコマンドを受信することと、
ユーザが、前記ワークフローを取得することを可能にすることと、
前記ユーザが、ユーザ環境中に前記ワークフローをインポートすることを可能にすることと、
ワークフローのための管理エンジンによって、前記ユーザ環境中にインポートされたワークフローの展開をサポートすることと、
を含む、コンピュータ実装方法。
【請求項４１】
前記ユーザインターフェースは、前記ワークフローを検索すること、前記ワークフローと関連付けられる情報を閲覧すること、前記ワークフローを購入すること、前記ワークフローをユーザデバイスにダウンロードすること、および、開発者が、ツールを開発し、前記ツールを前記ワークフローのための管理エンジンにアップロードすることを可能にすることのうちの１つまたはそれを上回る機能性を提供するように構成される、請求項４０に記載の方法。
【請求項４２】
前記ワークフローは、ユーザデバイス上にインストールされたアプリケーションを介して、またはウェブベースのアプリケーションを介して提供される、請求項４０に記載の方法。
【請求項４３】
前記ユーザインターフェースは、プラットフォームオペレータによって調整され、各ワークフローは、事前判定されたガイドラインを用いて、承認プロセスおよび承諾を要求する、請求項４０に記載の方法。
【請求項４４】
前記ワークフローと関連付けられるパラメータおよびツールは、前記ワークフローが前記ユーザ環境中にインポートされた後、編集可能である、請求項４０に記載の方法。
【請求項４５】
前記ワークフローは、定義された期間にわたる無制限の使用、使用あたりベース、および、無制限の使用に対する１回限りの一括ベース、のうちの１つまたはそれを上回るものから選択されるものに基づいて販売される、請求項４０に記載の方法。
【請求項４６】
前記ワークフローは、サービスとしてのソフトウェア（ＳａａＳ）として配布される、請求項４０に記載の方法。
【請求項４７】
前記マルチノード算出クラスタは、Ｈａｄｏｏｐベースである、請求項４０から４６のうちのいずれか１つに記載の方法。
【請求項４８】
前記ワークフローは、科学的ワークフローである、請求項４０から４７のうちのいずれか１つに記載の方法。
【請求項４９】
前記科学的ワークフローは、非常に大きなゲノムデータセットを分析する、バイオインフォマティクスワークフローである、請求項４８に記載の方法。
【請求項５０】
非一過性コンピュータ可読媒体であって、１つまたはそれを上回るプロセッサによって実行されるとき、
ユーザインターフェースによって、前記ワークフローと関連付けられる１つまたはそれを上回るパラメータに基づいて、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローを選択するためのユーザコマンドを受信する動作と、
ユーザが、前記ワークフローを取得することを可能にする動作と、
前記ユーザが、ユーザ環境中に前記ワークフローをインポートすることを可能にする動作と、
ワークフローのための管理エンジンによって、前記ユーザ環境中にインポートされたワークフローの展開をサポートする動作と、
を実施する命令を備える、非一過性コンピュータ可読媒体。
【請求項５１】
マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのイベント駆動管理エンジンであって、
決定ノードであって、
少なくとも１つの条件が真であると判定することであって、前記少なくとも１つの条件が真であるという判定は、前記少なくとも１つの条件が真であるかどうかをチェックするように構成される、条件付きループを起動することを含む、ことと、
前記判定に基づいて、少なくとも１つのコンピュータモジュールを選択的に起動させることと
を行うように構成される、決定ノードと、
フォークジョイン待ち行列クラスタであって、
前記少なくとも１つのコンピュータモジュールを、分散型クラウドコンピューティング環境内の関与コンピュータノードに非連続的に割り当てることと、
事前判定された基準に従ってデータセットを処理することと
を行うように構成される、フォークジョイン待ち行列クラスタと、
分散型データベースであって、
前記少なくとも１つのコンピュータモジュールを記憶することと、
前記少なくとも１つのコンピュータモジュールと関連付けられる、前記少なくとも１つの条件を記憶することであって、少なくとも１つの算出モジュールは、前記少なくとも１つの条件が真となるまで起動されない、ことと
を行うように構成される、分散型データベースと、
を備える、イベント駆動管理エンジン。
【請求項５２】
前記少なくとも１つのコンピュータモジュールを、関与コンピュータノードに非連続的に割り当てることは、前記コンピュータモジュールと関連付けられるタスクを、複数のフラグメントに分割することを含み、各フラグメントは、前記関与コンピュータノード上で処理される、請求項５１に記載のエンジン。
【請求項５３】
前記少なくとも１つのコンピュータモジュールは、前記関与コンピュータノードによるサービスのためのタスクを分割し、前記関与コンピュータノードによって処理された後、処理されたフラグメントを合体させるように構成される、１つまたはそれを上回るフォークジョイン待ち行列クラスタを使用するように構成される、請求項５２に記載のエンジン。
【請求項５４】
前記少なくとも１つのコンピュータモジュールを、前記関与コンピュータノードに非連続的に割り当てることは、処理されたフラグメントを処理されたデータセットに合体させることを含む、請求項５１に記載のエンジン。
【請求項５５】
前記フォークジョイン待ち行列クラスタは、マスタノードと、関与コンピュータノードとを含み、前記マスタノードは、前記コンピュータモジュールと関連付けられるタスクを受信し、前記タスクを複数のフラグメントに分割し、前記フラグメントを前記関与コンピュータノードに配布するように構成され、前記関与コンピュータノードは、前記フラグメントを処理し、前記処理されたフラグメントを前記マスタノードに送信するように構成される、請求項５１に記載のエンジン。
【請求項５６】
前記マスタノードは、前記関与コンピュータノードから前記処理されたフラグメントを収集し、前記処理されたフラグメントを処理されたデータセットに合体させるようにさらに構成される、請求項５５に記載のエンジン。
【請求項５７】
前記クラウドコンピューティング環境は、性能を向上させ、タスクの並列実行を可能にするために、複数のコンピュータクラスタを含む、請求項５１に記載のエンジン。
【請求項５８】
前記コンピュータモジュールは、バイオインフォマティクスツールを備える、請求項５１に記載のエンジン。
【請求項５９】
ユーザが、コンピュータモジュールを構築し、前記コンピュータモジュールを修正し、データソースを規定し、前記コンピュータモジュールの実行のための条件を規定することを可能にするための、ユーザインターフェースをさらに備える、請求項５１に記載のエンジン。
【請求項６０】
前記ワークフローは、複数の生物学的データ形式と、前記複数の生物学的データ形式間の変換とをサポートする、請求項５１に記載のエンジン。
【請求項６１】
前記マルチノード算出クラスタは、Ｈａｄｏｏｐベースである、請求項５１から６０のうちのいずれか１つに記載のエンジン。
【請求項６２】
前記ワークフローは、科学的ワークフローである、請求項５１から６１のうちのいずれか１つに記載のエンジン。
【請求項６３】
前記科学的ワークフローは、非常に大きなゲノムデータセットを分析する、バイオインフォマティクスワークフローである、請求項６２に記載のエンジン。
【請求項６４】
マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのコンピュータ実装イベント駆動管理方法であって、
分散型データベースによって、少なくとも１つのコンピュータモジュールを記憶することと、
前記分散型データベースによって、前記少なくとも１つのコンピュータモジュールと関連付けられる、少なくとも１つの条件を記憶することであって、少なくとも１つの算出モジュールは、前記少なくとも１つの条件が真となるまで起動されない、ことと、
決定ノードによって、前記少なくとも１つの条件が、真であると判定することであって、前記少なくとも１つの条件が真であるという判定は、前記少なくとも１つの条件が真であるかどうかをチェックするように構成される、条件付きループを起動することを含む、ことと、
前記判定に基づいて、前記決定ノードによって、前記少なくとも１つのコンピュータモジュールを選択的に起動させることと、
フォークジョイン待ち行列クラスタによって、前記少なくとも１つのコンピュータモジュールを、分散型クラウドコンピューティング環境内の関与コンピュータノードに非連続的に割り当てることであって、前記少なくとも１つのコンピュータモジュールは、事前判定された基準に従ってデータセットを処理するように構成される、ことと、
を含む、コンピュータ実装イベント駆動管理方法。
【請求項６５】
前記少なくとも１つのコンピュータモジュールを、前記関与コンピュータノードに非連続的に割り当てることは、前記コンピュータモジュールと関連付けられるタスクを、複数のフラグメントに分割することを含み、各フラグメントは、前記関与コンピュータノード上で処理される、請求項６４に記載の方法。
【請求項６６】
前記コンピュータモジュールは、前記関与コンピュータノードによるサービスのためのタスクを分割し、前記関与コンピュータノードによって処理された後、処理されたフラグメントを合体させるように構成される、１つまたはそれを上回るフォークジョイン待ち行列クラスタを使用するように構成される、請求項６５に記載の方法。
【請求項６７】
前記１つまたはそれを上回るフォークジョイン待ち行列クラスタはそれぞれ、マスタノードと、関与コンピュータノードとを含み、前記マスタノードは、前記コンピュータモジュールと関連付けられるタスクを受信し、前記タスクを複数のフラグメントに分割し、前記フラグメントを前記関与コンピュータノードに配布するように構成され、前記関与コンピュータノードは、前記フラグメントを処理し、前記処理されたフラグメントを前記マスタノードに送信するように構成される、請求項６６に記載の方法。
【請求項６８】
前記少なくとも１つのコンピュータモジュールを、前記関与コンピュータノードに非連続的に割り当てることは、処理されたフラグメントを処理されたデータセットに合体させることを含む、請求項６４に記載の方法。
【請求項６９】
前記クラウドコンピューティング環境は、性能を向上させ、前記タスクの並列実行を可能にするために、複数のコンピュータクラスタを含む、請求項６４に記載の方法。
【請求項７０】
前記コンピュータモジュールは、バイオインフォマティクスツールを備える、請求項６４に記載の方法。
【請求項７１】
ユーザが、コンピュータモジュールを構築し、前記コンピュータモジュールを修正し、データソースを規定し、前記コンピュータモジュールの実行のための条件を規定することを可能にするための、ユーザインターフェースを提供することをさらに含む、請求項６４に記載の方法。
【請求項７２】
前記ワークフローは、複数の生物学的データ形式と、前記複数の生物学的データ形式間の変換とをサポートする、請求項６４に記載の方法。
【請求項７３】
前記マルチノード算出クラスタは、Ｈａｄｏｏｐベースである、請求項６４から７２のうちのいずれか１つに記載の方法。
【請求項７４】
前記ワークフローは、科学的ワークフローである、請求項６４から７３のうちのいずれか１つに記載の方法。
【請求項７５】
前記科学的ワークフローは、非常に大きなゲノムデータセットを分析する、バイオインフォマティクスワークフローである、請求項７４に記載の方法。
【請求項７６】
非一過性コンピュータ可読媒体であって、１つまたはそれを上回るプロセッサによって実行されるとき、
分散型データベースによって、少なくとも１つのコンピュータモジュールを記憶する動作と、
前記分散型データベースによって、前記少なくとも１つのコンピュータモジュールと関連付けられる、少なくとも１つの条件を記憶する動作であって、少なくとも１つの算出モジュールは、前記少なくとも１つの条件が真となるまで起動されない、動作と、
決定ノードによって、前記少なくとも１つの条件が、真であると判定する動作であって、前記少なくとも１つの条件が真であるという判定は、前記少なくとも１つの条件が真であるかどうかをチェックするように構成される、条件付きループを起動することを含む、動作と、
前記判定に基づいて、前記決定ノードによって、前記少なくとも１つのコンピュータモジュールを選択的に起動させる動作と、
フォークジョイン待ち行列クラスタによって、前記少なくとも１つのコンピュータモジュールを、分散型クラウドコンピューティング環境内の関与コンピュータノードに非連続的に割り当てる動作であって、前記少なくとも１つのコンピュータモジュールは、事前判定された基準に従ってデータセットを処理するように構成される、動作と、
を実施する命令を備える、非一過性コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、データ処理に関し、より具体的には、大きなデータセット（「ビッグデータ」）が関与するとき、データ分析を定義する、ワークフローの視覚化、配布プラットフォーム、およびイベント駆動管理に関する。
【背景技術】
【０００２】
本セクションにおいて説明されるアプローチは、追求され得るが、必ずしも以前に想起または追求されているアプローチではない。したがって、別様に示されない限り、本セクションにおいて説明されるアプローチのいずれも、単に、本セクションにおいて従来技術を包含することによって、従来技術と見なされると想定されるべきではない。
【０００３】
伝統的ワークフロー管理システムは、異なるタイプのタスクまたはプロセスに対して、異なるワークフローを定義することを可能にし得る、最終結果ワークフロー管理システムを生成するために、プロジェクト内に一連のタスクを管理および定義することができる。さらに、ワークフロー管理システムは、ユーザが、実装詳細を取り扱うことなく、機能構成要素を結集することによって、より高いレベルで複合的アプリケーションを展開することを補助することができる。ワークフロー内の各段階において、１つまたはそれを上回る実行可能ソフトウェアモジュールが、具体的タスクに関与し得る。いったんタスクが完了すると、ワークフローソフトウェアは、次のタスクが、本プロセスの次の段階に関与するモジュールによって実行されることを確実にすることができる。ワークフロー管理システムは、各タスクの完了に対して要求される依存性を反映することができる。概して、ワークフロー管理システムは、冗長タスクを自動化し、未完了タスクが追従されることを確実にすることによって、自動化プロセスを制御することができる。
【０００４】
ワークフロー管理システムは、具体的必要性に対する特殊化形態において開発されることができる。具体的には、科学的ワークフロー管理システムは、科学的用途のための一連のコンピュータおよびデータ処理動作を成し、実行するように設計されることができる。科学的ワークフロー管理システムの実施例は、バイオインフォマティクスワークフロー管理システムである。バイオインフォマティクスは、生物学的データを記憶、読み出し、編成、および分析するための方法を開発および改良する、学際的分野として定義されることができる。バイオインフォマティクスにおける主要な活動は、有用な生物学的知識を生成するためのソフトウェアツールを開発することである。しかしながら、ここで開示される技術の用途は、必ずしもバイオインフォマティクスに限定されないことを理解されたい。
【０００５】
科学的ワークフローは、伝統的ビジネスプロセスワークフローと異なり得るため、科学的ワークフロー管理システムは、科学者が、具体的ステップを実施すること可能にすることができる。例えば、双方向性ツールは、科学者が、科学的ワークフローを実行し、結果を双方向的に閲覧することを可能にするために提供されることができる。加えて、科学者は、科学的ワークフロー実行結果のソースおよびワークフローを作成するために使用されたステップを追跡することが可能であり得る。
【０００６】
ビッグデータ分析と関連付けられる、増え続けるデータセットサイズから、洞察を抽出する必要性は、管理することがますます複雑なワークフローにつながる。その結果、ワークフロー管理システム内のそのようなワークフローの視覚化は、対応して複雑になり、多くの場合、ワークフロー開発者に対して、ワークフローの視覚認知および編集可能性を妨害する。結果として、ワークフロー開発者によるワークフローの開発および編集は、時間および労力がかかり得る。デフォルトのツールのセットを伴うワークフローが、ワークフローの開発者から購入されることができる。しかしながら、他の開発者によって開発されたツールを追加すること、またはデフォルトのツールを修正することは、互換性および他の問題のため、可能ではない場合がある。さらに、利用可能なワークフローおよびワークフローエンジンは、具体的タイプの用途に制限され、他の具体的目的の範囲に対するそれらの適合は、困難であり得る。加えて、利用可能なワークフローエンジンは、通常、有向非巡回グラフとして構成される。有向非巡回グラフでは、各ノードは、実行されるべきタスクを表し、エッジは、異なるタスク間のデータフローまたは実行依存性のいずれかを表す。したがって、データのシーケンスは、具体的方向にのみ流れ得、コンピュータユニットの並列実行を可能にし得ない。
【発明の概要】
【課題を解決するための手段】
【０００７】
本概要は、以下の発明を実施するための形態においてさらに説明される、一連の概念を簡略化形態において導入するために提供される。本概要は、請求される主題の主要な特徴または不可欠な特徴を識別することを目的としておらず、また、請求される主題の範囲を判定する際の補助として使用されることも目的としていない。
【０００８】
本開示は、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの要素の視覚化のためのアプローチに関する。具体的には、ワークフローの要素の視覚化のための方法が、コンピュータ端末上のグラフィカルユーザインターフェース（ＧＵＩ）を介して、ワークフローを表示するステップを含む。事前判定された群化基準に基づいて、１つまたはそれを上回る折り畳み可能な要素の群が、ワークフロー内に定義される。折り畳み可能な要素の群を折り畳むための要求を受信するステップに応じて、折り畳み可能な要素の群は、折り畳まれた要素の群に折り畳まれる。折り畳むステップの後、複数の要素と、折り畳まれた要素の群との配置が、選択的に再調節されることができる。本方法は、さらなる要素をワークフローに追加するステップと、ワークフローから要素を除去するステップと、ワークフロー内の要素を修正するステップとをさらに含む。
【０００９】
本開示の別のアプローチによると、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの要素の視覚化のためのシステムが、提供される。本システムは、ワークフロー内に、折り畳み可能な要素の群を定義するように構成される、プロセッサを備える。定義するステップは、事前判定された群化基準に基づいて行われることができる。ユーザから、折り畳み可能な要素の群を折り畳むための要求を受信するステップに応じて、プロセッサは、折り畳み可能な要素の群を、折り畳まれた要素の群に折り畳むことができる。プロセッサは、複数の要素と、折り畳まれた要素の群との配置を選択的に再調節するようにさらに構成される。本システムは、複数の要素を含むワークフローを表示するように構成される、ユーザインターフェースをさらに備える。
【００１０】
本開示は、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの配布のためのアプローチにさらに関する。具体的には、デジタルワークフロー配布プラットフォームが、ユーザが、ワークフローと関連付けられる１つまたはそれを上回るパラメータに基づいて、ワークフローを選択することを可能にするように構成される、ユーザインターフェースを備える。選択に基づいて、配布モジュールが、ユーザが、ワークフローを取得し、ワークフローをユーザ環境中にインポートすることを可能にする。デジタルワークフロー配布プラットフォームは、ユーザ環境中にインポートされたワークフローおよびワークフローツールの展開をサポートするように構成される、ワークフローのための管理エンジンをさらに備える。従来技術はワークフロー配布を含み得るが、これは、続けて修正可能なワークフローを含まない。
【００１１】
本開示の別のアプローチによると、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの配布のためのコンピュータ実装方法が、提供される。本方法によると、ユーザインターフェースが、ワークフローと関連付けられる１つまたはそれを上回るパラメータに基づいて、ワークフローを選択するためのユーザコマンドを受信する。ユーザコマンドに応答して、ユーザは、ワークフローを取得し、ワークフローをユーザ環境中にインポートすることを可能にされる。ワークフローのインポート後、ワークフローの展開が、ワークフローのための管理エンジンによってサポートされることができる。
【００１２】
本開示は、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのコンピュータ実装イベント駆動管理のためのアプローチにさらに関する。具体的には、そのようなワークフローのためのイベント駆動管理エンジンが、条件付きループを起動することによって、ある条件が真であると判定するように構成される、決定ノードを備えてもよい。判定に基づいて、決定ノードは、コンピュータモジュールを選択的に起動させてもよい。そのようなワークフローのためのイベント駆動管理エンジンは、フォークジョイン待ち行列クラスタをさらに備えてもよい。フォークジョイン待ち行列クラスタは、コンピュータモジュールを、関与コンピュータノードに非連続的に割り当て、事前判定された基準に従ってデータセットを処理してもよい。関与コンピュータノードは、分散型クラウドコンピューティング環境内に位置してもよい。マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのイベント駆動管理エンジンの分散型データベースが、コンピュータモジュールおよびコンピュータモジュールと関連付けられる条件を記憶してもよい。算出モジュールが、条件が真となるまで起動されないままであってもよい。
【００１３】
本開示の別のアプローチによると、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのコンピュータ実装イベント駆動管理方法が、提供される。本方法によると、データベースが、コンピュータモジュールおよびコンピュータモジュールと関連付けられる条件を記憶してもよい。本方法は、条件が真であると判定するために、条件付きループを起動する決定ノードを備えてもよい。判定に基づいて、決定ノードは、コンピュータモジュールを選択的に起動させてもよい。本方法は、フォークジョイン待ち行列クラスタによって、コンピュータモジュールを、分散型クラウドコンピューティング環境内の関与コンピュータノードに非連続的に割り当てるステップをさらに含んでもよい。コンピュータモジュールは、事前判定された基準に従ってデータセットを処理するように構成されてもよい。
【００１４】
本開示のさらなる例示的実施形態では、本方法ステップは、１つまたはそれを上回るプロセッサによって実装されるとき、引用されるステップを実施する命令を備える、機械可読媒体上に記憶される。またさらなる実施形態では、ハードウェアシステムまたはデバイスが、引用されるステップを実施するように適合されることができる。またさらなる例示的実施形態では、マルチノード算出クラスタは、Ｈａｄｏｏｐベースのマルチノード算出クラスタである。他の特徴、実施例、および実施形態も、以下に説明される。
【図面の簡単な説明】
【００１５】
同様の参照記号が類似する要素を示す、付随する図面の図において、実施形態は、限定としてではなく、実施例として例証される。
【図１】図１は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのイベント駆動管理エンジンおよび対応する方法が実装され得る、環境を示す。
【図２】図２は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのイベント駆動管理エンジンの種々のモジュールを示す、ブロック図である。
【図３】図３は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのイベント駆動管理エンジンによる、タスクの処理を例証する、ブロック図である。
【図４】図４は、例示的実施形態による、フォークジョイン待ち行列クラスタによる、タスクの処理を例証する、ブロック図である。
【図５】図５は、例示的実施形態による、フォークジョイン待ち行列クラスタによる、タスクの処理を例証する、ブロック図である。
【図６】図６は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのイベント駆動管理方法を示す、プロセスフロー図である。
【図７】図７は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのための詳細なコンピュータ実装イベント駆動管理方法を例証する、フローチャートである。
【図８】図８は、例示的実施形態による、ある条件をチェックするための方法を例証する、フローチャートである。
【図９】図９は、例示的実施形態による、条件付きループを例証する、フローチャートである。
【図１０】図１０は、例示的実施形態による、条件付きループを例証する、フローチャートである。
【図１１】図１１は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのデジタル配布のためのプラットフォームおよび対応する方法が実装され得る、環境を示す。
【図１２】図１２は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、デジタルワークフローのための配布プラットフォームの種々のモジュールを示す、ブロック図である。
【図１３】図１３は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの配布のための方法を例証する、スキームである。
【図１４】図１４は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのツールの配布のための方法を例証する、スキームである。
【図１５】図１５は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの配布のためのコンピュータ実装方法を示す、プロセスフロー図である。
【図１６】図１６は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの要素の視覚化のためのシステムおよび関連付けられる方法が実装され得る、環境を示す。
【図１７】図１７は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの要素の視覚化のための方法を示す、プロセスフロー図である。
【図１８】図１８は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの要素の視覚化のためのシステムの種々のモジュールを示す、ブロック図である。
【図１９】図１９は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、折り畳まれたワークフローを例証する、ブロック図である。
【図２０】図２０は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、部分的に折り畳まれたワークフローを例証する、ブロック図である。
【図２１】図２１は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、部分的に折り畳まれたワークフローを例証する、スキームである。
【図２２Ａ】図２２Ａ−Ｃは、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、拡張されたワークフローを例証する。
【図２２Ｂ】図２２Ａ−Ｃは、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、拡張されたワークフローを例証する。
【図２２Ｃ】図２２Ａ−Ｃは、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、拡張されたワークフローを例証する。
【図２３】図２３は、機械に、本明細書に議論される方法論のうちの任意の１つまたはそれを上回るものを実施させるための命令のセットが実行され得る、コンピュータシステムの例示的電子形態における機械に対するコンピューティングクラスタの概略図を示す。
【発明を実施するための形態】
【００１６】
以下の詳細な説明は、詳細な説明の一部を形成する、付随の図面の参照を含む。図面は、例示的実施形態による、例証を示す。また、本明細書に「実施例」とも称される、これらの例示的実施形態は、当業者が、本主題を実践することを可能にするために十分に詳細に説明される。請求されるものの範囲から逸脱することなく、本実施形態は、組み合わせられることができ、他の実施形態も、利用されることができ、また、構造的、論理的、および電気的変更も、成されることができる。以下の詳細な説明は、したがって、限定的意味と見なされるべきではなく、範囲は、添付される請求項およびそれらの均等物によって定義される。本文書では、特許文書において一般的である、用語「ａ」および「ａｎ」は、１つまたは１つを上回るものを含むように使用される。本文書では、用語「ｏｒ」は、「Ａ  ｏｒ  Ｂ」が、別様に示されない限り、「Ｂを除くＡ」と、「Ａを除くＢ」と、「ＡおよびＢ」とを含むように、包括的な「ｏｒ」を指すように使用される。
【００１７】
本明細書に開示される実施形態の技法は、ビッグデータ分析と関連付けられる技術を使用して実装される。具体的には、マルチノード算出クラスタの使用は、好ましい実施形態である。より具体的には、大規模なマルチノード算出クラスタの管理のためのオープンソースのＨａｄｏｏｐソフトウェアエコシステムの使用は、好ましい実施形態である。本開示は、改良された視覚化を伴うワークフローエディタを提供するための、およびマルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローの開発者による使用性を改良するための、システムおよび方法に関する。具体的には、本明細書に説明される実施形態は、そのようなワークフローの要素の視覚化のための方法を含む。例示的ワークフローが、複数の要素を含むことができる。要素は、ループ、条件文、マーカー、アルゴリズム、ネスト化ワークフロー、コンピュータツール等のツール等を含むことができる。ワークフローの要素は、ワークフローの配置内に表されることができる。配置は、ユーザインターフェース上に示されるワークフローの要素の具体的配列、サイズ変更、間隔、および位置を有することができる。多数の要素を伴うワークフローのための複雑な管理システムの場合では、ユーザ、例えば、ワークフロー開発者にとって、各要素の機能性を見ることは、困難であり得る。本明細書に開示される方法は、当分野において周知の方法に優る、改良されたワークフローの編集可能性を提供することができる。本明細書に開示される方法は、新しい要素を配置に追加するステップ、要素をともに接続するステップ、要素を除去するステップ、要素を隠すステップ、要素を自動的に再順序付けするステップ等を可能にすることができる。ここで開示される方法は、例えば、生物学、生態学、およびバイオインフォマティクスの分野における科学者が、従来技術の方法を用いて可能なものよりも効率的に、いくつかのインフォマティクスツールを使用して大きな遺伝子データセットにクエリを行い、これを分析し、結果を保存することを可能にし得る、イベント駆動管理エンジンによって実装されることができる。
【００１８】
本開示によると、配置の要素は、群に順序付けられることができる。これらの群は、群を表す単一要素に折り畳まれることができる。同様に、折り畳まれた群は、構成要素を示すために、拡張されることができる。さらに、ユーザは、折り畳み可能な群を定義するために、ワークフローの配置内のいくつかの要素を接続することを可能にされることができる。群は、群内にどの要素が含まれるかを示すために、サイズを拡大されることができる。ユーザが群の特定の要素にアクセスする必要があるとき、ユーザは、組み合わせられた要素を拡張し、特定の要素を選択することができる。
【００１９】
さらに、例示的実施形態では、ユーザは、ワークフローのいくつかの要素に対してマーカーを使用することができる。ユーザは、いくつかの要素をブロック中に配列し、マーカーを用いてブロックをマーキングすることができる。マーキングされたブロックは、初期サイズのブロックと比較して、より小さくなり得る。例示的実施形態では、マーカーは、マーキングされた要素が折り畳まれた状態にあり、拡張され得ること、ブロックが配置から除去されること等を示すことができる。さらに、ユーザは、ブロックに対して名前を提供する、または記号を用いてブロックをマーキングしてもよい。名前は、ブロック内に含まれる要素を説明することができる。ユーザが折り畳まれたブロック内に隠された特定の要素を使用する必要があるとき、ユーザは、名前を読むことによって折り畳まれたブロック上の情報を得、必要に応じて、ブロックを拡張することができる。ブロックを拡張した後、ブロックの全ての要素は、示されることができ、ユーザは、具体的要素を選択することができる。さらに、ワークフローのいくつかの要素が類似する方法で使用され得る場合、ユーザは、これらの要素を群として使用するために、アルゴリズムを作成することができる。これらの要素は、単一ブロック中に接続され、それらの共通機能性に従って名付けられることができる。
【００２０】
さらに、本開示のワークフローエディタは、より良好な視覚化のために配置内の要素の位置を最適化するために、配置内の要素の自己位置決めを提供する。したがって、要素は、ワークフローの要素間の配置の使用されない部分を回避するように、配置内に位置付けられ得る。
【００２１】
ワークフローの要素を折り畳むステップおよび拡張するステップは、ネスト化ワークフローを実証するために、特に有用であり得る。ネスト化ワークフローは、主要ワークフローの内側のワークフローである。ネスト化ワークフローは、要素を含むことができる。ワークフローは、任意の数のネスト化ワークフローを含むことができ、ネスト化ワークフローはそれぞれ、順に、さらなるネスト化ワークフローを含むことができる。ネスト化ワークフローは、主要ワークフロー内で折り畳まれる、または拡張されることができる。ネスト化ワークフローは、具体的マーカーを用いてマーキングされることができる。
【００２２】
本開示は、ワークフロー配布のためのシステムおよび方法にさらに関する。具体的には、本明細書に説明される実施形態は、ワークフロー配布のためのデジタルワークフロー配布プラットフォームおよびコンピュータ実装方法を含む。本明細書に説明されるデジタルワークフロー配布プラットフォームは、ワークフローのための仮想市場を提供する。プラットフォームは、データ分析のためのワークフローを配布するだけではなく、種々のワークフローツールをサポートするようにも構成されることができる。デジタルワークフロー配布プラットフォームは、例えば、生物学、生態学、およびバイオインフォマティクス等の科学の分野における科学者が、従来技術の方法を用いて可能なものよりも効率的に、いくつかのインフォマティクスツールを使用して大きな遺伝子データセットにクエリを行い、これを分析し、結果を保存することを可能にする。
【００２３】
いくつかの例示的実施形態では、ユーザは、ユーザインターフェースを介してデジタルワークフロー配布プラットフォームにアクセスし、利用可能なワークフローを精査することができる。ワークフローの選択に応じて、ユーザは、デジタルワークフロー配布プラットフォームに、ワークフローの取得のための要求を送信することができる。デジタルワークフロー配布プラットフォームは、ワークフローをユーザに、サービスとしてのソフトウェア（ＳａａＳ）として提供することができる。ワークフローは、クラウド環境内にホストされる。
【００２４】
ユーザ要求を受信するステップに応じて、デジタルワークフロー配布プラットフォームは、選択されたワークフローを、ユーザ環境中にインポートすることができる。ユーザは、ユーザ環境へのアクセスを（例えば、プラットフォームに登録することによって）提供される。認証に応じて、ユーザは、ワークフローへのアクセスを提供され、種々のワークフロー動作を実施することが可能となる。例えば、ワークフローは、生物学的データの算出を管理するための使用されることができる。
【００２５】
デジタルワークフロー配布プラットフォームは、ユーザが、ユーザ環境中にインポートされたワークフローを展開することを可能にすることができる。特に、ユーザは、ワークフローのパラメータを選択および変更し、ワークフローと関連付けられるツールを追加、除去、および修正し、実行の条件および順序を選択すること等が可能である。デジタルワークフロー配布プラットフォームのオペレータが、ワークフロー展開環境の保守およびサポートに関与し得る。
【００２６】
ワークフローをユーザ環境中にインポートした後、ユーザは、付加的なワークフローツールを取得または展開することを所望し得る。デジタルワークフロー配布プラットフォームは、ワークフローツールの展開および動作サポートを可能にする。プラットフォームは、プラットフォームと関連付けられるアプリケーションプログラミングインターフェース（ＡＰＩ）を使用して、ツールの展開を促進することができる。プラットフォームはまた、ユーザへのツールの配布だけではなく、クラウドコンピューティング環境内でのツールの起動も可能にすることができる。例えば、ユーザは、デジタルワークフロー配布プラットフォームにアクセスし、ワークフローに追加されるべきツールを選択することができる。デジタルワークフロー配布プラットフォームは、ユーザ要求を受信し、選択されたツールをワークフローに追加する。ツールが追加された後、ユーザは、ワークフロー内でツールを利用することができる。
【００２７】
前述されるように、デジタルワークフロー配布プラットフォームは、ユーザが、ユーザ環境中にインポートされたツールを展開することを可能にする。特に、ユーザは、ワークフローのツールを（例えば、ツールパラメータを編集することによって）追加、作成、または修正することが可能である。
【００２８】
本開示はさらにまた、自動化ワークフローアクティビティを生成および実装するためのシステムおよび方法に関する。具体的には、本明細書に説明される実施形態は、ワークフローのためのイベント駆動管理エンジンおよび方法を含む。従来のワークフローエンジンは、ワークフローの現在の状態および実行されるべき次のステップを判定し得る、ワークフロー毎のプロセスを作成する。言い換えると、そのようなワークフローエンジンは、ワークフローの現在の状態を永続的に追跡し、どのアクションが次に講じられるべきかに関する決定を行う必要があり得る。さらに、従来のワークフローシステムは、不具合の場合にワークフローの再始動が成功することを確実にするために、ワークフローの現在の状態を保存するための制御点を必要とし得る。イベント駆動管理エンジンは、例えば、生物学、生態学、およびバイオインフォマティクス等の科学の分野における科学者が、いくつかのインフォマティクスツールを使用して大きな遺伝子データセットにクエリを行い、これを分析し、結果を保存することを可能にする。
【００２９】
概要に概説されるように、本開示の実施形態は、ワークフローのためのイベント駆動管理を対象とする。イベント駆動ワークフローが、ユーザアクション、センサ出力、他のプログラムからの通知等、ワークフロー内で発生するイベントによって判定されてもよい。開示される技術は、ワークフロー内で発生する各イベントと関連付けられる条件を定義し、データベース内に条件を記憶することを可能にしてもよい。さらに、データベースは、条件の充足に応じて、実施されるべきステップおよび関連付けられるタスクを記憶してもよい。したがって、イベントが発生すると、エンジンは、イベントと関連付けられる条件が満たされることを確認し、対応するプロセスを起動し、条件と関連付けられるタスクを実行するために、データベースを読み出してもよい。
【００３０】
具体的には、決定ノードが、条件が満たされるかどうかをチェックし得る、条件付きループを起動してもよい。いったん条件が満たされると、決定ノードは、満たされた条件を処理するステップに関与するコンピュータノードを起動させ、ワークフローの対応する部分を実行してもよい。処理するステップに関与するコンピュータノードは、条件が満たされた後にのみ起動してもよい。条件が満たされるまで、コンピュータノードは、待機モード（すなわち、起動されない状態）であってもよい。
【００３１】
予期されないシャットダウンの場合では、ワークフローは、条件付きループを起動し、どの条件が満たされているかを判定することによって、容易に復元され得ることに留意されたい。どの条件が満たされているかを判定した後、満たされた条件と関連付けられるタスクは、再始動されてもよい。したがって、ワークフローを再始動するために、制御点を保存する必要性はない。
【００３２】
さらに、本技術は、コンピュータ集約的である、生物学的データに対して実施される算出を管理するために、バイオインフォマティクスワークフロー管理システム等、科学的ワークフローシステムにおいて使用されてもよい。効率を改良するために、本技術は、並列分散型ソフトウェアフレームワークにおけるデータ処理を伴ってもよい。並列分散型ソフトウェアフレームワークは、いくつかの並列のコンピュータクラスタ上のタスクを起動することによって、コンピュータ集約的分散型タスクをサポートしてもよい。並列分散型ソフトウェアフレームワークは、Ｈａｄｏｏｐベースであってもよい。本技術は、複数のコンピュータクラスタ間のタスクを分割するために、フォーク待ち行列ノードを利用してもよい。さらに、フォーク待ち行列ノードは、イベントと関連付けられるタスクを、それぞれ、クラスタの任意のノード上の他のフラグメントと並列して実行され得る、複数のタスクフラグメントに分割するように構成されてもよい。フォーク待ち行列クラスタは、これらのタスクフラグメントの実行のためのノードを選択してもよい。ノードは、クラウドベースのコンピュータクラスタを含んでもよい。ノードによるフラグメントの実行後、フォーク待ち行列クラスタは、実行されたフラグメントを、結果として生じるデータに合体させてもよい。
【００３３】
結果として生じるデータは、ユーザインターフェース上でユーザに示されてもよい。ユーザは、処理されたデータが表され得る方法を選定してもよい。例えば、処理されたデータは、データテーブル、図、テキスト、グラフ、図面等として示されてもよい。
【００３４】
ここで図面を参照すると、図１は、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのイベント駆動管理エンジンおよび方法が実装され得る、大規模なコンピュータクラスタ１００を例証する。環境１００は、ネットワーク１１０と、ユーザ１２０と、ワークフローのためのイベント駆動管理エンジン２００と、ユーザインターフェース１３０と、１つまたはそれを上回るクライアントデバイス１４０と、データベース１５０とを含んでもよい。
【００３５】
ネットワーク１１０は、インターネットまたはデバイス間でデータを通信することが可能な任意の他のネットワークを含んでもよい。好適なネットワークは、例えば、ローカルイントラネット、ＰＡＮ（パーソナルエリアネットワーク）、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（広域ネットワーク）、ＭＡＮ（メトロポリタンエリアネットワーク）、仮想プライベートネットワーク（ＶＰＮ）、ストレージエリアネットワーク（ＳＡＮ）、フレームリレー接続、高度インテリジェントネットワーク（ＡＩＮ）接続、同期型光ネットワーク（ＳＯＮＥＴ）接続、デジタルＴ１、Ｔ３、Ｅ１、もしくはＥ３回線、デジタルデータサービス（ＤＤＳ）接続、ＤＳＬ（デジタル加入者回線）接続、イーサネット（登録商標）接続、ＩＳＤＮ（統合サービスデジタルネットワーク）回線、Ｖ．９０、Ｖ．３４、もしくはＶ．３４ｂｉｓアナログモデム接続等のダイヤルアップポート、ケーブルモデム、ＡＴＭ（非同期転送モード）接続、またはＦＤＤＩ（光ファイバ分散データインターフェース）もしくはＣＤＤＩ（銅線分散データインターフェース）接続のうちの任意の１つまたはそれを上回るものを含む、またはそれとインターフェースをとってもよい。さらに、通信はまた、ＷＡＰ（無線アプリケーションプロトコル）、ＧＰＲＳ（汎用パケット無線サービス）、ＧＳＭ（登録商標）（グローバルシステムフォーモバイルコミュニケーション）、ＣＤＭＡ（符号分割多重アクセス）もしくはＴＤＭＡ（時分割多重アクセス）、セルラー電話ネットワーク、ＧＰＳ（全地球測位システム）、ＣＤＰＤ（セルラーデジタルパケットデータ）、ＲＩＭ（Ｒｅｓｅａｒｃｈ  ｉｎ  Ｍｏｔｉｏｎ，Ｌｉｍｉｔｅｄ）二重ページングネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線、またはＩＥＥＥ  ８０２．１１ベースの無線周波数ネットワークを含む、種々の無線ネットワークのいずれかへのリンクを含んでもよい。ネットワーク１１０は、ＲＳ−２３２直列接続、ＩＥＥＥ−１３９４（ファイヤワイヤ）接続、ファイバチャネル接続、ＩｒＤＡ（赤外線）ポート、ＳＣＳＩ（小型コンピュータシステムインターフェース）接続、ＵＳＢ（ユニバーサルシリアルバス）接続、または他の有線もしくは無線、デジタルもしくはアナログインターフェースまたは接続、メッシュ、もしくはＤｉｇｉ（Ｒ）ネットワーキングのうちの任意の１つまたはそれを上回るものをさらに含む、またはそれとインターフェースをとることができる。ネットワーク１１０は、データ通信を目的として相互接続される、データ処理ノードのネットワークを含んでもよい。ネットワーク１１０は、ソフトウェア定義ネットワーキング（ＳＤＮ）を含んでもよい。ＳＤＮは、上記のネットワークタイプの１つまたはそれを上回るものを含んでもよい。概して、ネットワーク１１０は、事前定義されたプロトコルを使用することによって、デバイス間の通信を可能にするトランスポート媒体によって、ともに接続されるいくつかの類似する、または類似しないデバイスを含んでもよい。当業者は、本開示が、種々のネットワーク構成環境内で、および種々のコンピューティングデバイス上で実践され得ることを認識するであろう。
【００３６】
クライアントデバイス１４０は、いくつかの例示的実施形態では、ユーザインターフェース１３０を表示するためのグラフィカルユーザインターフェース（ＧＵＩ）を含んでもよい。典型的なＧＵＩでは、テキストメニューのみを提供する、または打ち込まれたコマンドを要求する代わりに、エンジン２００は、ウィジェットと呼ばれるグラフィカルアイコン、視覚インジケータ、または特殊グラフィック要素を提示してもよい。ユーザインターフェース１３０は、ユーザ１２０が、プログラミング知識を殆どまたは全く用いずに、複雑なタスクを構築および修正することを可能にするために、視覚フロントエンドとして利用されてもよい。
【００３７】
クライアントデバイス１４０は、モバイル電話、コンピュータ、ラップトップ、スマートフォン、タブレットパーソナルコンピュータ（ＰＣ）等を含んでもよい。いくつかの実施形態では、クライアントデバイス１４０は、１人またはそれを上回るユーザ１２０と関連付けられてもよい。クライアントデバイス１４０は、ユーザ１２０に利用可能な情報およびアクションを完全に表すために、テキスト、標識、またはテキストナビゲーションと併せて使用される、アイコンを利用するように構成されてもよい。ユーザ１２０は、いくつかの例示的実施形態では、クライアントデバイス１４０のうちの１つを介して、ユーザインターフェース１３０と相互作用する人物であってもよい。ユーザ１２０は、自身の必要性のためにワークフローのためのイベント駆動管理エンジン２００を使用する、人物を表してもよい。例えば、ユーザ１２０は、一連の集約的コンピュータまたはデータ操作ステップを実施するための科学的ワークフローのためのイベント駆動管理エンジン２００を使用する、科学者を含んでもよい。図１に示されるように、ユーザ１２０は、クライアントデバイス１４０上で起動するアプリケーションにデータを入力してもよい。アプリケーションは、ワークフローのためのイベント駆動管理エンジン２００を利用してもよい。ユーザ１２０の入力に基づいて、ワークフローのためのイベント駆動管理エンジン２００は、クライアントデバイス１４０上で起動するアプリケーションの自動化ワークフローを生成および実行してもよい。ワークフローのためのイベント駆動管理エンジン２００は、１つまたはそれを上回るデータベース１５０に接続されてもよい。データベース１５０は、一連のワークフロー内で実行される必要があるタスクと関連付けられるデータを記憶してもよい。
【００３８】
図２は、例示的実施形態による、マルチノード算出クラスタを使用して、非常に大きなデータセットの分析を定義する、ワークフローのためのイベント駆動管理エンジン２００の詳細なブロック図を示す。エンジン２００は、決定ノード２０２と、フォークジョイン待ち行列クラスタ２０４と、データベース２０６と、随意に、ユーザインターフェース２０８とを含んでもよい。
【００３９】
ユーザは、ワークフローのためのイベント駆動管理エンジン２００を利用し得る、アプリケーションを起動してもよい。アプリケーションの起動中、イベントが、発生し得る。イベントは、ユーザアクション、センサ出力、他のプログラムからの通知等を含んでもよい。各イベントは、ワークフローのためのイベント駆動管理エンジン２００内に記憶され得る、１つまたはそれを上回る条件と関連付けられてもよい。ワークフローのための管理エンジン２００は、決定ノード２０２と、フォークジョイン待ち行列クラスタ２０４と、データベース２０６と、随意に、ユーザインターフェース２０８とを含んでもよい。
【００４０】
例示的実施形態では、決定ノード２０２は、少なくとも１つの条件が真であると判定するように構成されてもよい。少なくとも１つの条件が真であるという判定は、条件付きループを起動することによって実施されてもよい。条件付きループは、少なくとも１つの条件が真であるかどうかをチェックするように構成されてもよい。
【００４１】
決定ノード２０２は、判定に基づいて、少なくとも１つのコンピュータモジュールを選択的に起動させるようにさらに構成されてもよい。コンピュータモジュールは、コンピュータツールを含んでもよい。ワークフローは、複数の生物学的データ形式と、複数の生物学的データ形式間の変換とをサポートしてもよい。したがって、コンピュータツールは、科学の具体的分野（例えば、バイオインフォマティクス）に言及してもよい。この場合では、コンピュータツールは、ユーザが具体的バイオインフォマティクスタスクを処理することを可能にする、バイオインフォマティクスツールを含んでもよい。
【００４２】
コンピュータモジュールの起動後、フォークジョイン待ち行列クラスタ２０４は、少なくとも１つのコンピュータモジュールを、関与コンピュータノードに非連続的に割り当ててもよい。関与コンピュータノードは、分散型クラウドコンピューティング環境内に位置してもよい。関与コンピュータノードを用いて、フォークジョイン待ち行列クラスタ２０４は、事前判定された基準に従ってデータセットを処理してもよい。フォークジョイン待ち行列クラスタ２０４は、ノード算出クラスタを使用する、非常に大きなデータセットの分析の速度および効率を向上させる。
【００４３】
分散型データベース２０６は、少なくとも１つのコンピュータモジュールを記憶するように構成されてもよい。さらに、分散型データベース２０６は、少なくとも１つのコンピュータモジュールと関連付けられる、少なくとも１つの条件を記憶するように構成されてもよい。ユーザインターフェース２０８は、ユーザが、コンピュータモジュールを構築し、コンピュータモジュールを修正し、データソースを規定し、コンピュータモジュールの実行のための条件を規定すること等を可能にしてもよい。
【００４４】
エンジン２００は、図３を参照してさらに詳細に説明される。図３は、エンジン２００を使用してワークフローを管理するためのグラフ表現３００を示す。ワークフロー内で発生する各イベントは、１つまたはそれを上回る条件と関連付けられてもよい。言い換えると、条件は、この条件と関連付けられるイベントが発生するとき、満たされてもよい。ワークフローのためのイベント駆動管理エンジンの決定ノードが、少なくとも１つの条件が真であるかどうかをチェックするために、条件付きループを起動してもよい。イベント３１０の発生に応じて、決定ノードは、少なくとも１つの条件が真であると判定してもよい。イベント３１０と関連付けられる各真の条件３２０が、タスクを起動してもよい。タスクは、算出を実施するステップ、データを記憶するステップ、図を描くステップ等、データセットを処理するステップを含んでもよい。例示的実施形態では、データセットは、ユーザによって（例えば、データベースから）選択されてもよい。さらに、データセットは、試験機器から得られてもよい。ユーザは、データセットが得られ得るデータソースを規定するために、ユーザインターフェースを使用してもよい。
【００４５】
真の条件３２０が存在するという判定後、決定ノードは、少なくとも１つのコンピュータモジュールを選択的に起動させてもよい。コンピュータモジュールおよびコンピュータモジュールと関連付けられる条件は、データベース２０６内に記憶されてもよい。例示的実施形態では、ユーザは、コンピュータモジュールを構築または修正するだけではなく、コンピュータモジュールの実行のための条件を規定するために、ユーザインターフェースを使用してもよい。
【００４６】
いったん少なくとも１つのコンピュータモジュール３３０が起動されると、ワークフローのためのイベント駆動管理エンジンのフォークジョイン待ち行列クラスタが、少なくとも１つのコンピュータモジュールを、分散型クラウドコンピューティング環境内の関与コンピュータノードに非連続的に割り当ててもよい。クラウドコンピューティング環境は、性能を向上させ、タスクの並列実行を可能にするために、複数のコンピュータクラスタを含んでもよい。さらに、フォークジョイン待ち行列クラスタは、事前判定された基準に従ってデータセットを処理してもよい。
【００４７】
フォークジョイン待ち行列クラスタによって実施される並列ステップは、図４のスキーム４００上に詳細に例証される。従来のワークフロー実行エンジンは、事前定義された分割のみをサポートし、具体的パラメータに依存する動的分割を取り扱うことはできない。したがって、フォークジョイン待ち行列クラスタは、従来技術に優る有意な向上を表す。開示される技術では、いくつかの並列タスクが実施されている場合、フォークジョイン待ち行列クラスタは、フォーク点４５０において、着信するタスク４１０を、フラグメント４２０として表されるいくつかのサブタスクに分割することができる。従来技術のワークフロー実行エンジンと対照的に、分割は、フォークジョイン待ち行列クラスタがタスクを分割するステップを開始すると、それを判定されることができる。フラグメント４２０は、多数のコンピュータノード（図示せず）によって処理されることができる。フラグメント４２０の処理後、処理されたフラグメント４３０は、ジョイン点４６０において、処理されたデータセット４４０に合体されてもよい。分割するステップは、合体させるステップの前に終了される必要があることに留意されたい。
【００４８】
図５は、フォークジョイン待ち行列クラスタによって、非対称の分割するステップおよび合体させるステップを実施するためのフローチャート５００を示す。従来のワークフロー実行エンジンは、フォークおよびジョイン点の対を要求する。開示される技術では、フォーク点は、必ず対応するジョイン点を有する。したがって、図５に示されるフォークジョイン待ち行列クラスタは、２つのフォーク点および３つのジョイン点を有する。フォーク点およびジョイン点は、ワークフロー内のどこに位置してもよい。実際には、複数のソースからの入力を可能にする任意のツールが、ジョイン点としての役割を果たすことができる。ジョイン点がいくつかのフォーク点からの入力を有する場合、ジョイン点は、全てのフォーク点からの結果が利用可能であるとき、フラグメントを合体させることができる。これは、従来技術の従来のワークフロー実行エンジンに優り、開示される技術の柔軟性および効率を大幅に向上させる。
【００４９】
図５に示されるように、フォークジョイン待ち行列クラスタは、フォーク点５６０において、着信するタスク５１０を、フラグメント５２０、５２５として表されるいくつかのサブタスクに分割してもよい。フラグメント５２０は、多数のコンピュータノード（図示せず）によって処理されることができる。フラグメント５２０の処理後、処理されたフラグメント５３０は、ジョイン点５８０において合体されることができる。
【００５０】
フラグメント５２５は、依然として、単一コンピュータノードによって処理するためには複雑すぎることがあり得る。したがって、フラグメント５２５は、フォーク点５７０において、いくつかのフラグメント５４０に分割されてもよい。フラグメント５４０は、コンピュータノードによって処理されてもよい。フラグメント５４０の処理後、処理されたフラグメントのいくつか、特に、処理されたフラグメント５５０は、ジョイン点５８５において、ジョイン点５８０において合体された、処理されたフラグメントと合体されることができる。処理されたフラグメントの別の部分、特に、処理されたフラグメント５５５は、ジョイン点５９０において、ジョイン点５８５において合体された、処理されたフラグメントと合体されることができる。ジョイン点５９０における合体後、処理されたデータセット５９５が、得られることができる。  
【００５１】
再び図３を参照すると、フォークジョイン待ち行列クラスタは、マスタノードと、関与コンピュータノードとを含んでもよい。マスタノードは、コンピュータモジュールと関連付けられるタスクを受信し、タスクを複数のフラグメントに分割し、フラグメントを関与コンピュータノードに配布するように構成されてもよい。関与コンピュータノードは、フラグメントを処理し、処理されたフラグメントをマスタノードに送信するように構成されてもよい。
【００５２】
具体的には、関与コンピュータノードへのコンピュータモジュールの割当は、コンピュータモジュールと関連付けられるタスクを、複数のフラグメント３４０に分割することによって実施されてもよい。各フラグメント３４０は、関与コンピュータノード３５０上で処理されてもよい。コンピュータモジュールは、関与コンピュータノード３５０によるサービスのためのタスクを分割するように構成される、１つまたはそれを上回るフォークジョイン待ち行列クラスタを使用するように構成されてもよい。関与コンピュータノード３５０は、処理されたフラグメント３６０を得るために、フラグメント３４０を処理してもよい。関与コンピュータノード３５０による処理後、マスタノードは、関与コンピュータノード３５０から処理されたフラグメント３６０を収集し、処理されたフラグメント３６０を処理されたデータセット３７０に合体させてもよい。処理されたデータセット３７０は、ユーザインターフェースによってユーザに提供されてもよい。
【００５３】
図６は、例示的実施形態による、ワークフローのためのコンピュータ実装イベント駆動管理方法６００を示す、プロセスフロー図である。方法６００は、ハードウェア（例えば、意思決定論理、専用論理、プログラマブル論理、およびマイクロコード）、ソフトウェア（汎用コンピュータシステムまたは専用機械上で起動するソフトウェア等）、または両方の組み合わせから成り得る、処理論理によって実施されてもよい。
【００５４】
方法６００は、動作６１０において、分散型データベースによって、少なくとも１つのコンピュータモジュールを記憶するステップから始まってもよい。動作６２０において、本方法は、分散型データベースによって、コンピュータモジュールと関連付けられる少なくとも１つの条件を記憶するステップを含んでもよい。算出モジュールは、少なくとも１つの条件が真となるまで起動されなくてもよい。
【００５５】
動作６３０において、決定ノードが、少なくとも１つの条件が真であるかどうかをチェックするように構成される、条件付きループを起動することによって、少なくとも１つの条件が真であると判定してもよい。判定に基づいて、決定ノードは、動作６４０において、少なくとも１つのコンピュータモジュールを選択的に起動させてもよい。
【００５６】
コンピュータモジュールが起動された後、動作６５０において、フォークジョイン待ち行列クラスタが、コンピュータモジュールを、分散型クラウドコンピューティング環境内の関与コンピュータノードに非連続的に割り当ててもよい。クラウドコンピューティング環境は、性能を向上させ、タスクの並列実行を可能にするために、複数のコンピュータクラスタを含んでもよい。ワークフローは、複数の生物学的データ形式と、複数の生物学的データ形式間の変換とをサポートしてもよい。この点から見て、例示的実施形態では、コンピュータモジュールは、バイオインフォマティクスツールを備えてもよい。
【００５７】
コンピュータモジュールは、事前判定された基準に従ってデータセットを処理するように構成されてもよい。例示的実施形態では、コンピュータモジュールは、コンピュータモジュールと関連付けられるタスクを複数のフラグメントに分割することによって、関与コンピュータノードに割り当てられてもよい。各フラグメントは、関与コンピュータノード上で処理されてもよい。処理されたフラグメントは、処理されたデータセットに合体されてもよい。
【００５８】
具体的には、コンピュータモジュールは、関与コンピュータノードによる処理のためにタスクを分割するように構成される、１つまたはそれを上回るフォークジョイン待ち行列クラスタを使用してもよい。フォークジョイン待ち行列クラスタは、関与コンピュータノードによる処理後、処理されたフラグメントを合体させてもよい。特に、フォークジョイン待ち行列クラスタはそれぞれ、マスタノードと、関与コンピュータノードとを含んでもよい。マスタノードは、コンピュータモジュールと関連付けられるタスクを受信し、タスクを複数のフラグメントに分割し、フラグメントを関与コンピュータノードに配布するように構成されてもよい。関与コンピュータノードは、フラグメントを処理し、処理されたフラグメントをマスタノードに送信するように構成されてもよい。マスタノードは、関与コンピュータノードから処理されたフラグメントを収集し、処理されたフラグメントを処理されたデータセットに合体させてもよい。
【００５９】
方法６００の論理は、図７により詳細に例証される。図７は、いくつかの実施形態による、ワークフローのための詳細なコンピュータ実装イベント駆動管理方法７００を例証する、フローチャートを示す。図７に示されるように、方法７００は、動作７１０において、決定ノードによって、ワークフロー中に発生するイベントと関連付けられる条件を受信するステップから始まってもよい。
【００６０】
動作７２０において、決定ノードは、受信された条件が真であるかどうかをチェックするために、条件付きループを起動してもよい。条件が真ではない場合、決定ノードは、さらなる条件をチェックするために、動作７１０において、さらなる条件付きループを起動してもよい。条件が真である場合、条件は、イベントと関連付けられるタスクを処理してもよい。本目的のために、決定ノードは、動作７３０において、コンピュータモジュールを起動させてもよい。コンピュータモジュールは、事前判定された基準に従って、タスクと関連付けられるデータセットを処理するように構成されてもよい。
【００６１】
コンピュータモジュールの起動後、フォークジョイン待ち行列クラスタが、動作７４０において、タスクをいくつかのフラグメントに分割してもよい。フォークジョイン待ち行列クラスタのコンピュータノードは、動作７５０において、フラグメントを処理してもよい。処理後、フォークジョイン待ち行列クラスタは、動作７６０において、処理されたフラグメントを処理されたデータセットに合体させてもよい。随意に、処理されたデータセットは、ユーザインターフェース上でユーザに表されてもよい。
【００６２】
図８は、ある条件をチェックするための方法８００を例証する、フローチャート８００である。条件チェック８１０中、条件８２０、８３０、８４０のうちのどれが満たされるかが判定される。条件８２０、８３０が満たされる場合、決定ノードは、対応するステップ８５０または８６０を実施する。条件８２０、８３０のいずれも満たされない場合、決定ノードは、デフォルトの条件８４０を選択し、ステップ８７０を実施する。条件チェックが終了されると、ステップ８８０が、実行される。
【００６３】
図７のステップ７２０の条件付きループは、条件付きループ９００として図９により詳細に例証される。条件チェック９１０が、条件付きループ９００が実行される前に実施される。条件チェック９１０中、条件が偽であると判定される場合、全てのループステップが、データベースに追加される。ループステップをデータベースに追加した後、ループ内の第１のステップ９２０およびループ内の第２のステップ９３０として示されるループステップが、実行される。条件が真である場合、条件付きループ９００は、終了し、条件付きループ９００に続く全てのステップが、データベースに追加される。ステップがデータベースに追加された後、ステップ９４０が、実行される。第１のチェックに対して条件が真である場合、ループステップのいずれも、実行されない。
【００６４】
図１０は、別の例示的条件付きループ１０００を例証する。ループ１０００は、条件チェック１０３０の前に、少なくとも１回実行される。条件付きループ１０００の実行中、ループ内の第１のステップ１０１０およびループ内の第２のステップ１０２０として示される、いくつかのステップが、実施されることができる。条件が偽である場合、条件付きループ１０００は、再び実行される。条件付きループ１０００のステップ１０１０および１０２０は、データベースに追加されることができる。
【００６５】
条件が真である場合、条件付きループ１０００は、終了する。条件付きループ１０００後の全てのステップが、データベースに追加される。ステップをデータベースに追加した後、第１のステップ１０４０が、実行される。
【００６６】
図１１は、デジタルワークフロー配布プラットフォームおよびワークフロー配布のための方法が実装され得る、環境１１００を例証する。環境１１００は、ネットワーク１１１０と、ユーザ１１２０と、デジタルワークフロー配布プラットフォーム１２００と、ユーザインターフェース１１３０と、１つまたはそれを上回るユーザデバイス１１４０と、データベース１１５０とを含む。
【００６７】
ネットワーク１１１０は、インターネットまたはデバイス間でデータを通信することが可能な任意の他のネットワークを含む。好適なネットワークは、例えば、ローカルイントラネット、ＰＡＮ（パーソナルエリアネットワーク）、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（広域ネットワーク）、ＭＡＮ（メトロポリタンエリアネットワーク）、仮想プライベートネットワーク（ＶＰＮ）、ストレージエリアネットワーク（ＳＡＮ）、フレームリレー接続、高度インテリジェントネットワーク（ＡＩＮ）接続、同期型光ネットワーク（ＳＯＮＥＴ）接続、デジタルＴ１、Ｔ３、Ｅ１、もしくはＥ３回線、デジタルデータサービス（ＤＤＳ）接続、ＤＳＬ（デジタル加入者回線）接続、イーサネット（登録商標）接続、ＩＳＤＮ（統合サービスデジタルネットワーク）回線、Ｖ．９０、Ｖ．３４、もしくはＶ．３４ｂｉｓアナログモデム接続等のダイヤルアップポート、ケーブルモデム、ＡＴＭ（非同期転送モード）接続、またはＦＤＤＩ（光ファイバ分散データインターフェース）もしくはＣＤＤＩ（銅線分散データインターフェース）接続のうちの任意の１つまたはそれを上回るものを含む、またはそれとインターフェースをとる。さらに、通信はまた、ＷＡＰ（無線アプリケーションプロトコル）、ＧＰＲＳ（汎用パケット無線サービス）、ＧＳＭ（登録商標）（グローバルシステムフォーモバイルコミュニケーションズ）、ＣＤＭＡ（符号分割多重アクセス）もしくはＴＤＭＡ（時分割多重アクセス）、セルラー電話ネットワーク、ＧＰＳ（全地球測位システム）、ＣＤＰＤ（セルラーデジタルパケットデータ）、ＲＩＭ（Ｒｅｓｅａｒｃｈ  ｉｎ  Ｍｏｔｉｏｎ，Ｌｉｍｉｔｅｄ）二重ページングネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線、またはＩＥＥＥ  ８０２．１１ベースの無線周波数ネットワークを含む、種々の無線ネットワークのいずれかへのリンクを含む。ネットワーク１１１０は、ＲＳ−２３２直列接続、ＩＥＥＥ−１３９４（ファイヤワイヤ）接続、ファイバチャネル接続、ＩｒＤＡ（赤外線）ポート、ＳＣＳＩ（小型コンピュータシステムインターフェース）接続、ＵＳＢ（ユニバーサルシリアルバス）接続、または他の有線もしくは無線、デジタルもしくはアナログインターフェースまたは接続、メッシュ、もしくはＤｉｇｉ（Ｒ）ネットワーキングのうちの任意の１つまたはそれを上回るものをさらに含む、またはそれとインターフェースをとることができる。ネットワーク１１１０は、データ通信を目的として相互接続される、データ処理ノードのネットワークを含む。概して、ネットワーク１１１０は、事前定義されたプロトコルを使用することによって、デバイス間の通信を可能にするトランスポート媒体によって、ともに接続されるいくつかの類似する、または類似しないデバイスを含む。当業者は、本開示が、種々のネットワーク構成環境内で、および種々のコンピューティングデバイス上で実践され得ることを認識するであろう。
【００６８】
ユーザデバイス１１４０は、いくつかの例示的実施形態では、ユーザインターフェース１１３０を表示するためのグラフィカルユーザインターフェース（ＧＵＩ）を含む。典型的なＧＵＩでは、テキストメニューのみを提供する、または打ち込まれたコマンドを要求する代わりに、プラットフォーム１２００は、ウィジェットと呼ばれるグラフィカルアイコン、視覚インジケータ、または特殊グラフィック要素を提示する。ユーザインターフェース１１３０は、ユーザ１１２０が、プログラミング知識を殆どまたは全く用いずに、複雑なタスクを構築および修正することを可能にするために、視覚フロントエンドとして利用される。
【００６９】
ユーザデバイス１１４０は、モバイル電話、コンピュータ、ラップトップ、スマートフォン、ファブレット、タブレットＰＣ等を含む。いくつかの実施形態では、ユーザデバイス１１４０は、１人またはそれを上回るユーザ１１２０と関連付けられる。ユーザデバイス１１４０は、ユーザ１１２０に利用可能な情報およびアクションを完全に表すために、テキスト、標識、またはテキストナビゲーションと併せて使用される、アイコンを利用するように構成される。ユーザ１１２０は、いくつかの例示的実施形態では、ユーザデバイス１１４０のうちの１つを介して、ユーザインターフェース１１３０と相互作用する人物である。ユーザ１１２０は、自身の必要性のためにプラットフォーム１２００を使用する人物を含んでもよい。例えば、ユーザ１１２０は、一連のコンピュータまたはデータ操作ステップを実施するためのプラットフォーム１２００によって提供される、ワークフローを使用することを意図する科学者を含む。プラットフォーム１２００は、１つまたはそれを上回るデータベース１１５０に接続されることができる。データベース１１５０は、ワークフロー、ユーザ１１２０、およびワークフローの展開のために必要とされる他のデータと関連付けられるデータを記憶することができる。
【００７０】
図１１に示されるように、ユーザ１１２０は、ユーザデバイス１１４０上に提示されるユーザインターフェース１１３０を介して、プラットフォーム１２００にアクセスすることができる。ユーザ１１２０は、要求をプラットフォーム１２００に、ユーザインターフェース１１３０を介して送信することができる。例示的実施形態では、要求は、取得されるべきワークフローの選択によって提供されることができる。ユーザ１１２０の要求に応答して、プラットフォーム１２００は、選択されたワークフローをユーザ環境中にインポートする。
【００７１】
図１２は、例示的実施形態による、デジタルワークフロー配布プラットフォーム１２００の詳細なブロック図を示す。プラットフォーム１２００は、ユーザインターフェース１２０２と、配布モジュール１２０４と、ワークフローのための管理エンジン１２０６と、随意に、データベース１２０８とを含むことができる。
【００７２】
ユーザは、プラットフォーム１２００にアクセスするために、ユーザインターフェース１２０２を利用することができる。ユーザインターフェース１２０２は、ユーザが、プラットフォーム１２００上で利用可能なワークフローから、ワークフローのうちの１つを選択することを可能にすることができる。ユーザは、ワークフローと関連付けられる１つまたはそれを上回るパラメータに基づいて、選択を行うことができる。具体的には、プラットフォーム１２００へのアクセス後、ユーザは、以下のパラメータ、すなわち、利用可能なワークフローのリスト、ワークフローのそれぞれと関連付けられる具体的情報、ワークフローのそれぞれに対して利用可能なツール、ワークフローの価格等のうちの１つまたはそれを上回るものを閲覧することができる。例示的実施形態では、ユーザは、ワークフローの図像上をクリックすることによって、着目ワークフローを選択することができる。
【００７３】
例示的実施形態では、ユーザインターフェース１２０２は、以下の機能性、すなわち、ワークフローを検索するステップ、ワークフローと関連付けられる情報を閲覧するステップ、ワークフローを購入するステップ、ワークフローをユーザ環境中にインポートするステップ、開発者が、ツールを開発し、ツールをワークフローのための管理エンジンにアップロードすることを可能にするステップ等のうちの１つまたはそれを上回るものを提供するように構成されることができる。
【００７４】
ユーザインターフェース１２０２は、プラットフォームオペレータによって調整されることができる。例示的実施形態では、各ワークフローは、事前判定されたガイドラインを用いて、承認プロセスおよび承諾を要求する。事前判定されたガイドラインを用いるワークフローの承認プロセスおよび承諾チェックは、プラットフォームオペレータによって実施されることができる。
【００７５】
プラットフォーム１２００の配布モジュール１２０４は、ユーザが、ワークフローを取得することを可能にするように構成されることができる。さらに、配布モジュール１２０４は、ワークフローをユーザ環境中にインポートすることを可能にするように動作可能であり得る。例えば、ワークフローは、ユーザデバイス上にインストールされたアプリケーションとして、またはウェブベースのアプリケーションとして実装されることができる。
【００７６】
例示的実施形態では、配布モジュール１２０４は、ワークフローユーザからの手数料を査定することを可能にすることができる。例えば、プラットフォーム１２００と関連付けられるユーザ口座は、ユーザ環境中にインポートされるべきワークフローの料金を請求されることができる。したがって、例えば、ワークフローがユーザ環境中にインポートされる前に、ワークフローの価格に対応する金額が、ユーザ口座から差し引かれ、ワークフロー所有者と関連付けられる口座に転送されることができる。さらに、ある割合の手数料または一定金額が、プラットフォームオペレータに支払われることができる。ワークフローは、予約購入ベースで、例えば、月間手数料または年間手数料を支払うことによって販売されることができる。別の例示的実施形態では、ワークフローは、使用あたりベース、１回限りの一括払い等で販売されることができる。
【００７７】
ワークフローは、ＳａａＳとして利用可能であり、そのため、ワークフローおよび関連付けられるデータは、クラウド環境内に一元的にホストされる。そのような環境では、ユーザは、シンクライアントを使用して、ウェブブラウザを介してワークフローにアクセスすることができる。ワークフローがＳａａＳとして提供されると、その使用は、容易に追跡され、ユーザは、使用あたりで請求されることができる。
【００７８】
マルチテナントＳａａＳ環境では、ユーザプロビジョニング（すなわち、ユーザ属性の作成、保守、および無効化）のコストは、比較的安価である。したがって、ワークフロー提供者は、ユーザに、制限付き機能性または範囲を伴う無料ワークフローサービスさえ提供してもよい。この場合では、手数料は、基本無料ワークフローサービスに加えて向上された機能性に対してのみ請求されることができる。
【００７９】
プラットフォーム１２００のワークフローのための管理エンジン１２０６は、ユーザ環境中にインポートされたワークフローの展開をサポートするように構成されることができる。ワークフローのための管理エンジン１２０６は、決定ノードと、フォークジョイン待ち行列クラスタと、分散型データベースとを含むことができる。ワークフローのための管理エンジン１２０６は、ユーザ環境内で起動するアプリケーションに通信可能に結合され、ユーザが、アプリケーション内で一連のタスクを管理および定義することを可能にすることができる。種々のイベントが、アプリケーションが起動するにつれて発生し得る。これらのイベントは、ユーザアクション、センサ出力、他のプログラムからの通知等を含むことができる。各イベントは、ワークフローのための管理エンジン１２０６内に記憶される、１つまたはそれを上回る条件と関連付けられることができる。
【００８０】
例示的実施形態では、決定ノードは、少なくとも１つの条件が真であると判定するように構成される。少なくとも１つの条件が真であるという判定は、条件付きループを起動することによって実施されることができる。条件付きループは、少なくとも１つの条件が真であるかどうかをチェックするように構成されることができる。決定ノードは、判定に基づいて、少なくとも１つのコンピュータモジュールを選択的に起動させるようにさらに構成されることができる。コンピュータモジュールは、コンピュータツールを含むことができる。ワークフローは、複数の生物学的データ形式だけではなく、複数の生物学的データ形式間の変換もサポートすることができる。コンピュータツールは、科学の具体的分野（例えば、バイオインフォマティクス）に関連することができる。一実施形態では、コンピュータツールは、ユーザが具体的バイオインフォマティクスタスクを処理することを可能にする、バイオインフォマティクスツールである。
【００８１】
コンピュータモジュールの起動後、フォークジョイン待ち行列クラスタは、少なくとも１つのコンピュータモジュールを、関与コンピュータノードに非連続的に割り当てることができる。関与コンピュータノードは、分散型クラウドコンピューティング環境内に位置することができる。関与コンピュータノードを使用して、フォークジョイン待ち行列クラスタは、事前判定された基準に従ってデータセットを処理することができる。さらなる例示的実施形態では、プラットフォーム１２００のワークフローのための管理エンジン１２０６は、図２のワークフローのためのイベント駆動管理エンジン２００である。
【００８２】
分散型データベース１２０８は、少なくとも１つのコンピュータモジュールと、少なくとも１つのコンピュータモジュールと関連付けられる、少なくとも１つの条件とを記憶するように構成されることができる。さらに、分散型データベース１２０８は、ワークフロー、ユーザ、およびユーザによるワークフローの展開のために必要とされる他のデータと関連付けられるデータを記憶するように構成されることができる。いったんワークフローがユーザ環境中にインポートされると、ユーザは、ワークフローを編集することが可能となり得る。さらに、ユーザは、ワークフローと関連付けられるパラメータおよびツールを編集することができる。
【００８３】
図１３は、別の例示的実施形態による、ワークフロー配布のための方法１３００を例証する。ユーザ１１２０は、デジタルワークフロー配布プラットフォーム１２００に接続するために、ユーザインターフェースを有するユーザデバイス１１４０を使用することができる。ユーザデバイス１１４０は、ネットワーク１１１０を介してデジタルワークフロー配布プラットフォーム１２００と接続されることができる。デジタルワークフロー配布プラットフォーム１２００への接続に応じて、ユーザ１１２０は、デジタルワークフロー配布プラットフォーム１２００から取得され得るワークフローを検索することができる。ユーザ１１２０は、利用可能なワークフローと関連付けられる情報を閲覧することができる。ユーザ１１２０は、ワークフローを選択し、ユーザ要求１３１０をデジタルワークフロー配布プラットフォーム１２００に送信することができる。
【００８４】
例示的実施形態では、ユーザ要求１３１０は、ワークフローを取得するステップと、ワークフローをユーザ環境中にインポートするステップとに関連することができる。ユーザ要求１３１０を受信するステップに応じて、デジタルワークフロー配布プラットフォーム１２００は、ユーザ要求１３１０を処理する。ユーザ要求１３１０の処理後、デジタルワークフロー配布プラットフォーム１２００は、ワークフロー１３２０をユーザ１１２０のクラウドベースの環境１３３０に提供することができる。図１３に示される実施形態では、ワークフロー１３２０は、ウェブベースのワークフローであり、クラウドベースの環境１３３０中にインポートされるように構成される。ユーザ１１２０は、ユーザデバイス１１４０上のユーザインターフェースを介して、クラウドベースの環境１３３０にアクセスすることができる。ワークフロー１３２０をユーザ１１２０に提供するステップは、ワークフロー１３２０をクラウドベースの環境１３３０中にインポートするステップを含むことができる。ワークフロー１３２０のインポート後、ユーザ１１２０は、自身の必要性に従ってワークフロー１３２０を編集してもよい。
【００８５】
図１４は、例示的実施形態による、ワークフローツール配布のための方法１４００を例証する。図１３に示されるクラウドベースの環境中へのワークフローのインポート後、ユーザ１１２０は、ワークフロー１４１０と関連付けられるツールを取得することによって、ワークフロー１４１０を展開することができる。ユーザ１１２０は、ネットワーク１１１０を介してデジタルワークフロー配布プラットフォーム１２００に接続するために、ユーザインターフェース１１３０を有するユーザデバイス１１４０を利用することができる。デジタルワークフロー配布プラットフォーム１２００への接続に応じて、ユーザ１１２０は、デジタルワークフロー配布プラットフォーム１２００内での取得に利用可能なツールを検索することができる。ツールは、次いで、クラウドベースの環境１３３０内にインストールされたワークフロー１４１０と関連付けられる（すなわち、ツールは、ワークフロー１４１０中に追加されることができる）。ユーザ１１２０は、利用可能なツールと関連付けられる情報を閲覧し、着目ツールを選択する。ユーザ１１２０は、ツール要求１４２０をデジタルワークフロー配布プラットフォーム１２００に送信することができる。例示的実施形態では、ツール要求１４１０は、ユーザ環境１３３０中に追加されるべきツールを取得するステップを含む。ツール要求１４２０を受信するステップに応じて、デジタルワークフロー配布プラットフォーム１２００は、ツール要求１４２０を処理することができる。ツール要求１４２０の処理後、デジタルワークフロー配布プラットフォーム１２００は、ツール１４３０をクラウドベースの環境１３３０内のワークフロー１４１０に追加することができる。ツール１４３０の追加後、ユーザ１１２０は、ワークフロー１４１０と関連付けられるツール１４３０を編集することが可能である。
【００８６】
図１５は、例示的実施形態による、ワークフロー配布のためのコンピュータ実装方法１５００を示す、プロセスフロー図である。方法１５００は、ハードウェア（例えば、意思決定論理、専用論理、プログラマブル論理、およびマイクロコード）、ソフトウェア（汎用コンピュータシステムまたは専用機械上で起動するソフトウェア等）、または両方の組み合わせを含む、処理論理によって実施されることができる。
【００８７】
方法１５００は、動作１５１０において、ワークフローを選択するために、ユーザインターフェースによってユーザコマンドを受信するステップから始まることができる。ユーザは、ワークフローと関連付けられる１つまたはそれを上回るパラメータに基づいて、選択を行うことができる。動作１５２０において、ユーザは、ワークフローを取得することが可能である。動作１５３０において、ユーザは、ユーザ環境中にワークフローをインポートすることが可能である。例示的実施形態では、ワークフローは、プラットフォームまたはウェブベースのワークフローにアクセスするクライアントソフトウェア等、ユーザデバイス上にインストールされるアプリケーションを含むことができる。ワークフローは、予約購入ベース、使用あたりベース、１回限りの一括ベース、ピアツーピアベース、または同等物で販売されることができる。例示的実施形態では、ワークフローは、ＳａａＳとして配布される。
【００８８】
ワークフローのインポート後、ワークフローのための管理エンジン１２０６が、動作１５４０において、ユーザ環境中にインポートされたワークフローの展開をサポートする。ワークフローの展開をサポートするために、ワークフローのための管理エンジンは、決定ノードと、フォークジョイン待ち行列クラスタと、分散型データベースとを含むことができる。決定ノードは、ワークフロー内で発生するイベントと関連付けられる少なくとも１つの条件が、真であると判定するように構成される。少なくとも１つの条件が真であるという判定は、少なくとも１つの条件が真であるかどうかをチェックするように構成される、条件付きループを起動することによって実施される。さらに、判定に基づいて、決定ノードは、少なくとも１つのコンピュータモジュールを選択的に起動させることができる。コンピュータモジュールは、真の条件と関連付けられるタスクを処理することができる。フォークジョイン待ち行列クラスタは、少なくとも１つのコンピュータモジュールを、分散型クラウドコンピューティング環境内の関与コンピュータノードに非連続的に割り当てるように構成されることができる。フォークジョイン待ち行列クラスタは、事前判定された基準に従ってデータセットを処理することができる。分散型データベースは、コンピュータモジュールおよびコンピュータモジュールと関連付けられる条件を記憶するように構成されることができる。算出モジュールは、少なくとも１つの条件が真となるまで起動されない。ワークフローの展開は、ワークフローがユーザ環境中にインポートされた後、ワークフローを修正するステップと、ワークフローと関連付けられるパラメータおよびツールを修正するステップとを含む。
【００８９】
例示的実施形態では、ユーザインターフェースは、以下の機能性、すなわち、ワークフローを検索するステップ、ワークフローと関連付けられる情報を閲覧するステップ、ワークフローを購入するステップ、ワークフローをユーザ環境中にインポートするステップ、開発者が、ツールを開発し、ツールをワークフローのための管理エンジンにアップロードすることを可能にするステップ等のうちの１つまたはそれを上回るものを提供するように構成される。ユーザインターフェースは、プラットフォームオペレータによって調整されることができる。各ワークフローは、事前判定されたガイドラインを用いて、承認プロセスおよび承諾を要求してもよい。プラットフォームオペレータは、事前判定されたガイドラインを用いて、ワークフローの承認プロセスおよび制御承諾を実施することができる。
【００９０】
図１６は、ワークフローの要素の視覚化のための方法およびシステムが実装され得る、環境１６００を例証する。環境１６００は、ネットワーク１６１０と、ユーザ１６２０と、ワークフローの要素の視覚化ためのシステム１８００と、ユーザインターフェース１６３０と、１つまたはそれを上回るクライアントデバイス１６４０と、データベース１６５０とを含んでもよい。
【００９１】
ネットワーク１６１０は、インターネットまたはデバイス間でデータを通信することが可能な任意の他のネットワークを含んでもよい。好適なネットワークは、例えば、ローカルイントラネット、ＰＡＮ（パーソナルエリアネットワーク）、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（広域ネットワーク）、ＭＡＮ（メトロポリタンエリアネットワーク）、仮想プライベートネットワーク（ＶＰＮ）、ストレージエリアネットワーク（ＳＡＮ）、フレームリレー接続、高度インテリジェントネットワーク（ＡＩＮ）接続、同期型光ネットワーク（ＳＯＮＥＴ）接続、デジタルＴ１、Ｔ３、Ｅ１、もしくはＥ３回線、デジタルデータサービス（ＤＤＳ）接続、ＤＳＬ（デジタル加入者回線）接続、イーサネット（登録商標）接続、ＩＳＤＮ（統合サービスデジタルネットワーク）回線、Ｖ．９０、Ｖ．３４、もしくはＶ．３４ｂｉｓアナログモデム接続等のダイヤルアップポート、ケーブルモデム、ＡＴＭ（非同期転送モード）接続、またはＦＤＤＩ（光ファイバ分散データインターフェース）もしくはＣＤＤＩ（銅線分散データインターフェース）接続のうちの任意の１つまたはそれを上回るものを含む、またはそれとインターフェースをとってもよい。さらに、通信はまた、ＷＡＰ（無線アプリケーションプロトコル）、ＧＰＲＳ（汎用パケット無線サービス）、ＧＳＭ（登録商標）（グローバルシステムフォーモバイルコミュニケーションズ）、ＣＤＭＡ（符号分割多重アクセス）もしくはＴＤＭＡ（時分割多重アクセス）、セルラー電話ネットワーク、ＧＰＳ（全地球測位システム）、ＣＤＰＤ（セルラーデジタルパケットデータ）、ＲＩＭ（Ｒｅｓｅａｒｃｈ  ｉｎ  Ｍｏｔｉｏｎ，Ｌｉｍｉｔｅｄ）二重ページングネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線、またはＩＥＥＥ  ８０２．１１ベースの無線周波数ネットワークを含む、種々の無線ネットワークのいずれかへのリンクを含んでもよい。ネットワーク１６１０は、ＲＳ−２３２直列接続、ＩＥＥＥ−１３９４（ファイヤワイヤ）接続、ファイバチャネル接続、ＩｒＤＡ（赤外線）ポート、ＳＣＳＩ（小型コンピュータシステムインターフェース）接続、ＵＳＢ（ユニバーサルシリアルバス）接続、または他の有線もしくは無線、デジタルもしくはアナログインターフェースまたは接続、メッシュ、もしくはＤｉｇｉ（Ｒ）ネットワーキングのうちの任意の１つまたはそれを上回るものをさらに含む、またはそれとインターフェースをとることができる。ネットワーク１６１０は、データ通信を目的として相互接続される、データ処理ノードのネットワークを含んでもよい。ネットワーク１６１０は、ソフトウェア定義ネットワーキング（ＳＤＮ）を含んでもよい。ＳＤＮは、上記のネットワークタイプの１つまたはそれを上回るものを含んでもよい。概して、ネットワーク１６１０は、事前定義されたプロトコルを使用することによって、デバイス間の通信を可能にするトランスポート媒体によって、ともに接続されるいくつかの類似する、または類似しないデバイスを含んでもよい。当業者は、本開示が、種々のネットワーク構成環境内で、および種々のコンピューティングデバイス上で実践され得ることを認識するであろう。
【００９２】
クライアントデバイス１６４０は、いくつかの例示的実施形態では、ユーザインターフェース１６３０を表示するためのグラフィカルユーザインターフェース（ＧＵＩ）を含んでもよい。典型的なＧＵＩでは、テキストメニューのみを提供する、または打ち込まれたコマンドを要求する代わりに、ユーザインターフェース１６３０は、ウィジェットと呼ばれるグラフィカルアイコン、視覚インジケータ、または特殊グラフィック要素を提示してもよい。ユーザインターフェース１６３０は、ユーザ１６２０が、プログラミング知識を殆どまたは全く用いずに、ワークフローを構築および修正することを可能にするために、視覚フロントエンドとして利用されてもよい。
【００９３】
クライアントデバイス１６４０は、モバイル電話、コンピュータ、ラップトップ、スマートフォン、タブレットパーソナルコンピュータ（ＰＣ）等を含んでもよい。いくつかの実施形態では、クライアントデバイス１６４０は、１人またはそれを上回るユーザ１６２０と関連付けられてもよい。クライアントデバイス１６４０は、ユーザ１６２０に利用可能な情報およびアクションを完全に表すために、テキスト、標識、またはテキストナビゲーションと併せて使用される、アイコンを利用するように構成されてもよい。ユーザ１６２０は、いくつかの例示的実施形態では、クライアントデバイス１６４０のうちの１つを介して、ユーザインターフェース１６３０と相互作用する人物であってもよい。ユーザ１６２０は、自身の必要性のためにワークフローの要素の視覚化のためのシステム１８００を使用する、人物を表してもよい。例えば、ユーザ１６２０は、一連の集中的コンピュータまたはデータ操作ステップを実施するためのワークフローの要素の視覚化のためのシステム１８００を使用する、科学者を含んでもよい。図１６に示されるように、ユーザ１６２０は、クライアントデバイス１６４０上で起動するアプリケーションにデータを入力してもよい。アプリケーションは、ワークフローの要素の視覚化のためのシステム１８００を利用してもよい。ユーザ１６２０の入力に基づいて、ワークフローの要素の視覚化のためのシステム１８００は、クライアントデバイス１６４０上で起動するアプリケーションのワークフローを視覚化してもよい。ワークフローの要素の視覚化のためのシステム１８００は、１つまたはそれを上回るデータベース１６５０に接続されてもよい。データベース１６５０は、一連のワークフロー内で実行される必要があるタスク、ワークフローの配置上のワークフロー要素を位置決めするステップと関連付けられるルール等と関連付けられるデータを記憶してもよい。
【００９４】
図１７は、例示的実施形態による、ワークフローの要素の視覚化のためのコンピュータ実装方法１７００を示す、プロセスフロー図である。方法１７００は、ハードウェア（例えば、意思決定論理、専用論理、プログラマブル論理、およびマイクロコード）、ソフトウェア（汎用コンピュータシステムまたは専用機械上で起動するソフトウェア等）、または両方の組み合わせから成り得る、処理論理によって実施されてもよい。
【００９５】
方法１７００は、動作１７１０において、ユーザインターフェースを介してワークフローを表示するステップから始まる。ワークフローは、単語、アイデア、タスク等、複数の要素を含む。要素は、ユーザインターフェース上にブロックの形態において示されてもよい。要素間の接続は、ブロック間の接続として示されてもよい。動作１７２０において、本方法は、ワークフロー内に１つまたはそれを上回る折り畳み可能な要素の群を定義するステップを含む。定義するステップは、事前判定された群化基準に基づいて行われる。１つまたはそれを上回る折り畳み可能な要素の群は、ループ、条件文、コンピュータツール、マーカー、アルゴリズム、ネスト化ワークフロー等のうちの１つまたはそれを上回るものを含む。
【００９６】
動作１７３０において、１つまたはそれを上回る折り畳み可能な要素の群を折り畳むための要求が、ユーザから受信される。要求の受信後、１つまたはそれを上回る折り畳み可能な要素の群は、動作１７４０において、１つまたはそれを上回る折り畳まれた要素の群に折り畳まれる。
【００９７】
１つまたはそれを上回る折り畳み可能な要素の群の折り畳み後、動作１７５０において、複数の要素と、１つまたはそれを上回る折り畳まれた要素の群との配置が、選択的に再調節される。配置上に折り畳まれた要素の群を描写するブロックが、折り畳み可能な要素の群のブロックよりもサイズが大きくてもよい。
【００９８】
例示的実施形態では、方法１７００は、動作１７４０において形成される、１つまたはそれを上回る折り畳まれた要素の群を拡張するための要求を、ユーザから受信するステップをさらに含む。要求に応答して、折り畳まれた要素の群は、１つまたはそれを上回る要素の群に拡張される。要素の群の拡張後、ワークフローの配置は、選択的に再調節される。
【００９９】
例示的実施形態では、方法１７００は、随意に、さらなる要素をワークフローに追加するために、ユーザから要求を受信するステップを含む。要求に応答して、さらなる要素は、ワークフローに追加され、ワークフローの配置は、選択的に再調節される。
【０１００】
例示的実施形態では、方法１７００は、随意に、さらなる要素をワークフローから除去するために、ユーザから要求を受信するステップを含む。要求に応答して、さらなる要素は、ワークフローから除去され、ワークフローの配置は、選択的に再調節される。
【０１０１】
さらなる例示的実施形態では、方法１７００は、随意に、ワークフローのさらなる要素を修正するために、ユーザから要求を受信するステップを含む。要求に応答して、ワークフローのさらなる要素は、修正され、ワークフローの配置は、選択的に再調節される。
【０１０２】
いくつかの例示的実施形態では、方法１７００は、省スペース化要素をワークフローの配置に追加するステップを含む。省スペース化要素は、配置上の要素の配列を最適化するために、ワークフローの要素の配列を再順序付けするように構成される。いくつかの実施形態では、再順序付けするステップは、自動的に起こる。つまり、ワークフローの各要素は、折り畳み可能な要素の群を折り畳むため、折り畳まれた要素の群を拡張するため、さらなる要素をワークフローに追加するため、および同等物のために、ユーザ要求を受信するステップに応答して、自己位置決めされる。
【０１０３】
例示的実施形態では、方法１７００は、ワークフローの要素またはその要素の群の視覚化を作成するための要求を受信するステップを含む。視覚化は、ユーザが、ワークフロー上で作業しながら、要素または要素の群を編集することを可能にする。要求に応答して、ワークフローの要素またはその要素の群の視覚化は、作成される。
【０１０４】
例示的実施形態では、視覚化は、インラインエディタを備える。インラインエディタは、ユーザが、ユーザインターフェースを介して示される要素を動的に編集することを可能にする。インラインエディタは、ユーザが、ワークフローの要素のマーカーを作成し、拡張可能ブロックとしてマーカーを描写することを可能にする。マーカーは、拡張可能ブロック内に含まれる要素の説明を含んでもよい。マーカーの作成後、マーカーは、配置上に描写される。
【０１０５】
ユーザがマーカーによってマーキングされたブロックの要素を実行する必要があるとき、ユーザは、マーカーによってマーキングされた拡張可能ブロックを拡張するための要求を与える。要求に応答して、拡張可能ブロックは、拡張し、ユーザは、ワークフローの必要とされる要素を選択する。ユーザは、いくつかのマーカーを選択してもよく、その要素がワークフロー内で実行される。そのような場合では、選択されないマーカーの要素は、ワークフロー中に実行されない。
【０１０６】
さらに、例示的実施形態では、ユーザは、ワークフローの選択された要素の群に対してアルゴリズムを作成し、アルゴリズムを記述するマーカーを用いて、選択された要素の群をマーキングする。選択された要素の群の全ての要素が、ユーザによって作成されたアルゴリズムを使用して実行される。
【０１０７】
図１８は、例示的実施形態による、ワークフローの要素の視覚化のためのシステム１８００の詳細なブロック図を示す。システム１８００は、プロセッサ１８０２と、ユーザインターフェース１８０４と、随意に、データベース１８０６とを含んでもよい。
【０１０８】
例示的実施形態では、プロセッサ１８０２は、事前判定された群化基準に基づいて、ワークフロー内に１つまたはそれを上回る折り畳み可能な要素の群を定義するように構成される。さらに、プロセッサ１８０２は、ユーザから、１つまたはそれを上回る折り畳み可能な要素の群を折り畳むための要求を受信するように構成される。要求に応答して、プロセッサ１８０２は、１つまたはそれを上回る折り畳み可能な要素の群を、１つまたはそれを上回る折り畳まれた要素の群に折り畳むように構成される。１つまたはそれを上回る折り畳み可能な要素の群は、ループ、条件文、コンピュータツール、マーカー、アルゴリズム、ネスト化ワークフロー等を含む。１つまたはそれを上回る折り畳み可能な要素の群の折り畳み後、プロセッサは、複数の要素と、１つまたはそれを上回る折り畳まれた要素の群との配置を選択的に再調節する。
【０１０９】
例示的実施形態では、プロセッサ１８０２は、さらなる要素をワークフローに追加するための要求を受信するようにさらに構成される。要求に応答して、プロセッサ１８０２は、さらなる要素をワークフローに追加し、ワークフローの配置を選択的に再調節する。さらなる例示的実施形態では、プロセッサ１８０２は、さらなる要素をワークフローから除去するための要求を受信するようにさらに構成される。要求に応答して、プロセッサ１８０２は、さらなる要素をワークフローから除去し、ワークフローの配置を選択的に再調節する。例示的実施形態では、プロセッサ１８０２は、ワークフローのさらなる要素を修正するための要求を受信するようにさらに構成される。要求に応答して、プロセッサ１８０２は、ワークフローのさらなる要素を修正し、ワークフローの配置を選択的に再調節する。
【０１１０】
さらなる例示的実施形態では、プロセッサ１８０２は、省スペース化要素をワークフローの配置に追加するように構成される。省スペース化要素は、配置上の要素の配列を最適化するために、ワークフローの要素の配列を再順序付けするように構成される。
【０１１１】
さらなる例示的実施形態では、プロセッサ１８０２は、ワークフローの要素またはその要素の群の視覚化を作成するための要求を受信するように構成される。視覚化は、ユーザが、ワークフロー上で作業しながら、要素または要素の群を編集することを可能にする。要求に応答して、プロセッサ１８０２は、ワークフローの要素またはその要素の群の視覚化を作成する。例示的実施形態では、視覚化は、インラインエディタを備える。さらなる例示的実施形態では、プロセッサ１８０２は、図１２のデジタルワークフロー配布プラットフォーム１２００である。
【０１１２】
システム１８００のユーザインターフェース１８０４は、ワークフローを表示するように構成される。ワークフローは、複数の要素を含む。複数の要素は、単語、アイデア、タスク、および同等物を含む。例示的実施形態では、ユーザインターフェース１８０４は、ワークフローの要素をブロックとして描写する。ワークフローの要素間の接続は、ブロック間の接続として描写される。
【０１１３】
データベース１８０６は、一連のワークフロー内で実行される必要があるタスク、ワークフローの配置上のワークフロー要素を位置決めするステップと関連付けられるルール等、ワークフローと関連付けられるデータを記憶する。
【０１１４】
図１９は、折り畳まれた形態におけるワークフローに関するスキーム１９００を示す。ワークフローは、タスク１９１０−１９６０を含む。各タスクが、別個のブロック内に示される。タスク１９１０−１９６０のブロックは、マーカー１９７０、１９８０、１９９０、１９９５を備える。マーカー１９７０、１９８０、１９９０、１９９５は、タスク１９１０−１９６０上で行われることが可能なアクションを示す。例えば、タスク１９６０は、マーカー１９９０を使用することによって、ワークフローの配置から除去または隠されてもよい。タスク１９２０、１９３０、１９５０は、マーカー１９９５を使用することによって拡張されてもよい。マーカー１９７０、１９８０は、拡張されるべきタスクの能力、ワークフローの必須タスク、ワークフローの随意のタスク、および同等物等、タスク１９１０−１９６０に関連する任意の情報を表してもよい。
【０１１５】
図２０は、タスク１９２０が拡張される、図１９の折り畳まれたワークフローに関するスキーム２０００を示す。タスク１９２０は、ステップ２０１０−２０６０として示される、いくつかのステップを含む。拡張されたタスク１９２０は、マーカー１９９５を使用して、初期形態に折り畳まれてもよい。マーカー２０７０は、タスク１９２０からステップ２０１０−２０６０を除去するために使用される。マーカー２０８０は、タスク１９２０を閉じるために使用される。
【０１１６】
図２１は、タスク１９３０が拡張される、図１９の折り畳まれたワークフローに関するスキーム２１００を示す。明確な例証のために、タスク１９１０、１９５０、１９６０は、図２１に示されない。タスク１９３０は、ステップ２１１０−２１６０として示される、いくつかのステップを含む。拡張されたタスク１９３０は、マーカー１９９５を使用して、初期形態に折り畳まれてもよい。マーカー２０８０は、タスク１９３０を閉じるために使用される。マーカー２０７０は、タスク１９３０からステップ２１１０−２１６０を除去するために、またはワークフローからタスク１９４０を除去するために使用される。
【０１１７】
図２２Ａ−２２Ｃは、拡張された形態における図１９のワークフローに関するスキーム２２００を示す。特に、図２２Ａに示されるように、タスク２２１０は、拡張不可能である。タスク２２２０は、拡張され、ステップ２２２１−２２２６を含む。マーカー２０７０は、タスク２２２０からステップ２２２１−２２２６のいずれかを除去するために使用される。拡張されたタスク２２２０は、マーカー１９９５を使用して、初期形態に折り畳まれてもよい。マーカー２０８０は、タスク２２２０を閉じるために使用される。
【０１１８】
図２２Ｂは、拡張された形態におけるタスク２２３０を示す。タスク２２３０は、拡張され、ステップ２２３１−２２３６を含む。マーカー１９９５は、タスク２２３０を折り畳むために使用されてもよい。マーカー２０７０は、タスク２２３０からステップ２２３１−２２３６のいずれかを除去するために使用される。マーカー２０８０は、タスク２２３０を閉じるために使用される。
【０１１９】
図２２Ｃに示されるように、タスク２２４０および２２６０は、拡張不可能である。タスク２２５０は、拡張され、ステップ２２５１−２２５７を含む。マーカー１９９５は、タスク２２５０を折り畳むために使用される。マーカー２０７０は、タスク２２５０からステップ２２５１−２２５７のいずれかを除去するために使用される。マーカー２０８０は、タスク２２５０を閉じるために使用される。
【０１２０】
タスク２２２０、２２３０、２２５０は、図２２Ａ−２２Ｃに示されるワークフロー内に備えられるネスト化ワークフローを表す。具体的には、タスク２２２０、２２３０、２２５０は、図２２Ａ−２２Ｃに示されるワークフローの起動中に実行される、ワークフローである。
【０１２１】
図２３は、機械に、本明細書に議論される方法論のうちの任意の１つまたはそれを上回るものを実行させるための命令のセットが実行され得る、コンピュータシステム２３００の例示的電子形態における機械の概略図を示す。種々の例示的実施形態では、機械は、独立型デバイスとして動作するか、または他の機械に接続（例えば、ネットワーク接続）されてもよい。ネットワーク接続展開では、機械は、サーバクライアントネットワーク環境内のサーバもしくはクライアント機械の容量内で、またはピアツーピア（または分散）ネットワーク環境内のピア機械として動作してもよい。機械は、ＰＣ、タブレットＰＣ、セットトップボックス（ＳＴＢ）、セルラー電話、携帯用音楽プレーヤ（例えば、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ａｕｄｉｏ  Ｌａｙｅｒ  ３（ＭＰ３）プレーヤ等の携帯用ハードドライブオーディオデバイス）、ウェブアプライアンス、ネットワークルータ、スイッチもしくはブリッジ、またはその機械によって講じられるアクションを規定する（逐次または別様の）命令のセットを実行することが可能な任意の機械であってもよい。さらに、単一の機械のみが例証されているが、用語「機械」はまた、本明細書で議論される方法論のうちの任意の１つまたはそれを上回るものを実施するように、命令のセット（または複数のセット）を個別に、または合同で実行する、機械の任意の集合を含むと解釈されるものとする。
【０１２２】
例示的なコンピュータシステム２３００は、バス２３０８を介して相互に通信する、プロセッサまたは複数のプロセッサ２３０２（例えば、中央処理装置（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、または両方）と、メインメモリ２３０４と、スタティックメモリ２３０６とを含む。コンピュータシステム２３００は、ビデオディスプレイユニット２３１０（例えば、液晶ディスプレイ（ＬＣＤ）または陰極線管（ＣＲＴ））をさらに含んでもよい。コンピュータシステム２３００はまた、英数字入力デバイス２３１２（例えば、キーボード）と、カーソル制御デバイス２３１４（例えば、マウス）と、ディスクドライブユニット２３１６と、信号生成デバイス２３１８（例えば、スピーカ）と、ネットワークインターフェースデバイス２３２０とを含んでもよい。
【０１２３】
ディスクドライブユニット２３１６は、本明細書に説明される方法論または機能のうちの任意の１つまたはそれを上回るものを具現化する、またはそれによって利用される、命令およびデータ構造の１つまたはそれを上回るセット（例えば、命令２３２４）が記憶される、非一過性コンピュータ可読媒体２３２２を含む。命令２３２４はまた、コンピュータシステム２３００によるその実行中に、完全または少なくとも部分的に、メインメモリ２３０４内および／またはプロセッサ２３０２内に常駐してもよい。メインメモリ２３０４およびプロセッサ２３０２はまた、機械可読媒体を構成してもよい。
【０１２４】
命令２３２４は、いくつかの周知の転送プロトコル（例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ））のうちの任意の１つを利用して、ネットワークインターフェースデバイス２３２０を介して、ネットワーク２３２６を経由してさらに伝送または受信されてもよい。
【０１２５】
コンピュータ可読媒体２３２２は、例示的実施形態において単一の媒体であるように示されているが、用語「コンピュータ可読媒体」は、１つまたはそれを上回る命令のセットを記憶する、単一の媒体または複数の媒体を（例えば、集中型または分散型データベース、および／または関連付けられるキャッシュおよびサーバ）含むと解釈されるべきである。用語「コンピュータ可読媒体」はまた、機械による実行のための命令のセットを記憶、符号化、または搬送することが可能である、機械に本願の方法論のうちの任意の１つもしくはそれを上回るものを実施させる、またはそのような命令のセットによって利用される、もしくはそれらと関連付けられるデータ構造を記憶、符号化、または搬送することが可能である、任意の媒体を含むとも解釈されるものとする。用語「コンピュータ可読媒体」は、故に、限定ではないが、ソリッドステートメモリ、光学および磁気媒体、ならびに搬送波信号を含むと解釈されるものとする。そのような媒体はまた、限定ではないが、ハードディスク、フロッピー（登録商標）ディスク、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、および同等物を含んでもよい。
【０１２６】
本明細書に説明される例示的実施形態は、コンピュータ上に、ハードウェア内に、またはソフトウェアおよびハードウェアの組み合わせ内にインストールされる、コンピュータ実行可能命令（例えば、ソフトウェア）を備える、動作環境内で実装されることができる。コンピュータ実行可能命令は、コンピュータプログラミング言語で書き込まれることができる、またはファームウェア論理で具現化されることができる。認識された規格に適合するプログラミング言語で書き込まれる場合、そのような命令は、種々のハードウェアプラットフォーム上で、種々のオペレーティングシステムへのインターフェースに対して実行されることができる。それらに限定されないが、本方法を実装するためのコンピュータソフトウェアプログラムは、例えば、ハイパーテキストマークアップ言語（ＨＴＭＬ）、ダイナミックＨＴＭＬ、拡張マークアップ言語（ＸＭＬ）、拡張スタイルシート言語（ＸＳＬ）、文書スタイル意味指定言語（ＤＳＳＳＬ）、カスケーディングスタイルシート（ＣＳＳ）、同期化マルチメディア統合言語（ＳＭＩＬ）、無線マークアップ言語（ＷＭＬ）、Ｊａｖａ（登録商標）ＴＭ、ＪｉｎｉＴＭ、Ｃ、Ｃ＋＋、Ｐｅｒｌ、ＵＮＩＸ（登録商標）シェル、ビジュアルベーシックもしくはビジュアルベーシックスクリプト、仮想現実マークアップ言語（ＶＲＭＬ）、ＣｏｌｄＦｕｓｉｏｎＴＭ、または他のコンパイラ、アセンブラ、インタプリタ、または他のコンピュータ言語もしくはプラットフォーム等の任意の数の好適なプログラミング言語で書き込まれることができる。
【０１２７】
したがって、ワークフローの要素の視覚化のための、ワークフロー配布のための、およびワークフローのためのイベント駆動管理のための方法およびシステムが、開示される。実施形態は具体的かつ例示的実施形態を参照して説明されているが、種々の修正および変更が、本願のより広い精神および範囲から逸脱することなく、これらの例示的実施形態になされ得ることが、明白であろう。故に、本明細書および図面は、制限的ではなく、例証的意味であると見なされたい。
【図１】
2017508219.tif 000003
【図２】
2017508219.tif 000004
【図３】
2017508219.tif 000005
【図４】
2017508219.tif 000006
【図５】
2017508219.tif 000007
【図６】
2017508219.tif 000008
【図７】
2017508219.tif 000009
【図８】
2017508219.tif 000010
【図９】
2017508219.tif 000011
【図１０】
2017508219.tif 000012
【図１１】
2017508219.tif 000013
【図１２】
2017508219.tif 000014
【図１３】
2017508219.tif 000015
【図１４】
2017508219.tif 000016
【図１５】
2017508219.tif 000017
【図１６】
2017508219.tif 000018
【図１７】
2017508219.tif 000019
【図１８】
2017508219.tif 000020
【図１９】
2017508219.tif 000021
【図２０】
2017508219.tif 000022
【図２１】
2017508219.tif 000023
【図２２Ａ】
2017508219.tif 000024
【図２２Ｂ】
2017508219.tif 000025
【図２２Ｃ】
2017508219.tif 000026
【図２３】
2017508219.tif 000027
【国際調査報告】
2017508219.tif 000028
2017508219.tif 000029
2017508219.tif 000030