本明細書では、本発明のさまざまな実施形態が関連図を参照して説明される。本発明の範囲を逸脱することなく本発明の代替実施形態を考案することができる。以下の説明および図面には、要素間のさまざまな接続および位置関係(例えば上、下、隣りなど)が記載されている。これらの接続もしくは位置関係またはその両方は、特に指定されていない限り、直接的なものであることまたは間接的なものであることができ、本発明は、この点に関して限定を意図したものではない。したがって、実在物の結合は、直接結合または間接結合であることができ、実在物間の位置関係は、直接的位置関係または間接的位置関係であることができる。さらに、本明細書に記載されたさまざまなタスクおよび処理ステップが、本明細書では詳細に説明されていない追加のステップまたは機能を有するより包括的な手順またはプロセスに包含されていることもある。
特許請求の範囲および本明細書の解釈のために、以下の定義および略語が使用される。本明細書で使用されるとき、用語「備える(comprises)」、「備える(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」、「含有する(contains)」もしくは「含有する(containing)」、またはこれらの他の変異語は、非排他的包含(non−exclusive inclusion)をカバーすることが意図されている。例えば、要素のリストを含む組成物、混合物、プロセス、方法、物品または装置は、必ずしもそれらの要素だけに限定されるわけではなく、明示的にはリストに入れられていない他の要素、あるいはこのような組成物、混合物、プロセス、方法、物品または装置に固有の他の要素を含みうる。
さらに、本明細書では、用語「例示的な」が、「例、事例または実例として役立つ」ことを意味するものとして使用されている。本明細書に「例示的」として記載された実施形態または設計は必ずしも、他の実施形態または設計よりも好ましいまたは有利であるとは解釈されない。用語「少なくとも1つの」および「1つまたは複数の」は、1以上の任意の整数、すなわち1、2、3、4などを含むと理解されることがある。用語「複数の」は、2以上の任意の整数、すなわち2、3、4、5などを含むと理解されることがある。用語「接続」は、間接「接続」と直接「接続」の両方を含むことがある。
用語「約」、「実質的に」、「およそ」およびこれらの変異語は、特定の数量の大きさに関連した、本出願の提出時に利用可能な機器に基づく誤差の程度を含むことが意図されている。例えば、「約」は、所与の値の±8%、5%または2%の範囲を含むことがある。
簡潔にするために、本明細書では、本発明の諸態様を製作および使用することに関係した従来の技法が、詳細に説明されたりまたは詳細には説明されなかったりすることがある。特に、本明細書に記載されたさまざまな技術的特徴を実施するためのコンピューティング・システムおよび特定のコンピュータ・プログラムのさまざまな態様はよく知られている。したがって、本明細書では、簡潔にするために、よく知られたシステムもしくはプロセスまたはその両方の詳細を提供することなしに、従来の多くの実施態様の詳細が簡単にしか言及されておらず、または完全に省かれている。
本明細書に記載された技術的解決策は、実行するためにユーザに提供されたワークフローの更新を容易にし、この更新は、ユーザによってワークフローが実行されている間にオンラインで動的に実施される。ワークフローは、そのワークフローに従って特定の順序で実行するためにユーザに提供される操作のリストである。1つまたは複数の例では、ワークフローの1つまたは複数の操作(ワークフロー・ステップ)が、機械、例えばワークフローが実行されている機械を改変することがある。1つまたは複数の例では、ワークフローが第1の機械上でユーザに提供され、第2の機械上でワークフローが実行される。1つまたは複数の例では、ワークフローの1つまたは複数のワークフロー・ステップが手動で実行される。その代わりに、またはそれに加えて、1つまたは複数のワークフロー・ステップが自動で実行されることもある。1つまたは複数の例では、手動ステップと自動ステップの組合せとしてワークフローが実行される。
ワークフローの例は、機械のハードウェアを改変するためのワークフロー・ステップのリスト、例えばコンピュータのメモリ・デバイスを更新/交換するため、自動車のバッテリを更新/交換するため、プリンタの歯車を改変するため、または機械の他のハードウェアを改変するためのワークフロー・ステップのリストを含む。その代わりに、またはそれに加えて、ワークフローの例は、機械に関連したソフトウェアを改変するためのワークフロー・ステップのリスト、例えばオペレーティング・システムを更新/交換するため、ソフトウェア・システムを更新/交換するため、機械の構成を改変するため、例えばメモリを暗号化するため、ソフトウェア・システムの1つもしくは複数のオプションを設定するため、または機械の他のソフトウェアを改変するためのワークフロー・ステップのリストを含む。上記のことはワークフローの少数の例に過ぎないこと、ならびに、本明細書に記載された技術的解決策は、本明細書に挙げられた例もしくは記載された例またはその両方に加え、ワークフローの他の例にも適用可能であることが理解される。
ワークフローの実行に関する技術的課題は、それぞれのワークフロー・ステップが実行されているときに、1つまたは複数のワークフロー・ステップの実行を支援する情報でワークフローを更新することを含む。例えば、ワークフローの所有者(提供者/開発者)によって提供された情報よりも多くの情報が必要であり、そのような情報がユーザに提供されない/そのような情報をユーザが利用できない場合には、そのワークフロー・ステップをユーザが実行できない可能性がある。本明細書に記載された技術的解決策は、ワークフロー・ステップが実行される前/実行されているときにこのような欠落情報(missing information)を提供することを容易にすることによって、このような技術的課題を解決する。
例えば、本明細書に記載される技術的解決策は、多数のデータ源からこのような欠落情報を決定し、提供することを容易にする。例えば、これらのデータ源は、ワークフロー開発者からの更新を含むことがある。例えば、開発者(ワークフローを設計した販売者または所有者)によってワークフローが更新または修正される場合には、その更新された情報がユーザに提供される。以降の説明では、このような情報を「販売者更新情報」と呼ぶ。
さらに、その同じワークフローを実行した別のユーザであり、ワークフローを実行しているユーザとは異なる領域(domain)からの別のユーザからの更新を、データ源が含むこともある。ここで言う異なる領域は、ユーザとは異なる環境でそのワークフローを実行した別のユーザに関することがあり、例えば、この別のユーザがユーザとは異なる組織体(organization)からのユーザであり、ワークフローが組織体情報に影響を及ぼす/使用する場合、例えばワークフローが組織体のサーバを更新する場合などに関することがある。異なる領域の別の例は、異なるハードウェア、異なるオペレーティング・システムなどで同じワークフローを実行しているユーザを含むことがある。異なる領域からの2人以上のユーザであり、その対応するそれぞれの領域の環境で同じワークフローを実行している2人以上のユーザの他のさまざまな例が可能であることが理解される。いずれにせよ、その同じワークフローを実行した異なる領域の別のユーザが、ワークフロー実行に関する共有すべき情報を有している場合、このような共有情報は、本明細書に記載される技術的解決策によって識別され、ユーザに提供される。以降の説明では、このような情報を「別ユーザ情報」と呼ぶ。
さらにまた、類似のワークフロー、例えば実行中のワークフローと共通の1つまたは複数のワークフロー・ステップを含む別のワークフローを同じユーザが以前に実行したときに得た更新を、データ源が含むことがある。例えば、ワークフロー・ステップに対する/関する特定の情報をユーザがデータ源に追加していることがある。そのような場合、その情報は、本明細書に記載された技術的解決策によって別のワークフローと共有される。以降の説明では、このような情報を「ドメスティック情報(domestic information)」と呼ぶ。
さらに、データ源が、外界の別の源からの更新を含むこともあり、本明細書では以降、このような更新を「別ユーザ情報」と呼ぶ。このような情報は、TWITTER(商標)、LINKEDIN(商標)、FACEBOOK(商標)などの1つまたは複数のソーシャル・メディア・データ源、REDDIT(商標)、QUORA(商標)などの1つまたは複数のフォーラムもしくはブログ・データ源またはその両方、およびインターネットを介して利用可能なこのような他のデータ源のような1つまたは複数の源から自動的に識別され、提供される情報を含む。
ワークフローを実行しているときに取得されて、ユーザに提供される欠落情報は、限定はされないが、技術レベル・フィードバック、時間フィードバック、影響フィードバックを含む。さらに、欠落情報は、1つまたは複数のワークフロー・ステップに対する格付け(rating)、例えば、容易かまたは難しいか、ステップを実施するかどうかを示す同意かまたは不満足か、ワークフロー・ステップが期待した結果を与えたかどうかを示す有用かまたは有用でないか、ワークフロー・ステップをスキップすることができるかどうかを示す重要かまたは重要でないかなどを含む。その代わりに、またはそれに加えて、この情報が、ワークフロー・ステップに対して利用可能な情報の概要を示す星評価などの格付けを含むこともある。さらに、欠落情報は、同じユーザが実行した別のワークフローの以前の情報、例えばコメント、注記、ステップ・オーナーシップ、ノートパッド情報、ワークフロー履歴ファイルなどを含むことがある。ソーシャル・メディアまたは他のインターネット源からの情報は、そのワークフローを実行した別のユーザからのヒントおよびティップス(tips)を含むことがある。ユーザに提供される欠落情報はさらに、欠陥情報または補正、パッチ、更新など、販売者からの製品問題情報を含むことがある。
このような情報は、さまざまなユーザがワークフローを実行するに従って絶えず蓄積している。しかしながら、それぞれのユーザがそのワークフローを実施/実行しなければならない時点が存在し、そのため、そのワークフローを実行するときにユーザが「最新の」追加情報を得ることが望ましい。本明細書に記載された技術的解決策は、欠落情報によってワークフローを更新するこのような技術的課題を、ワークフローを実行しているときに多数のデータ源からのこのような更新を自動的に識別しユーザに提供することによって、したがって多数のデータ源からの最新の更新を提供することによって解決する。
1つまたは複数の例では、本明細書に記載された技術的解決策がクラウド・コンピューティングを使用して実施されうる。本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実施態様はクラウド・コンピューティング環境に限定されないことを予め理解されたい。本発明の実施形態は、現在知られているまたは後に開発される任意の他の任意のタイプのコンピューティング環境で実施することができる。
クラウド・コンピューティングは、最小限の管理労力またはサービスの提供者との最小限のインタラクションで迅速に供給およびリリースすることができる構成可能なコンピューティング・リソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするサービス配信モデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント(deployment)モデルを含むことがある。
特徴は以下のとおりである。
オンデマンド・セルフサービス:クラウド・コンシューマ(cloud consumer)は、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能の供給を、サービス提供者とのヒューマン・インタラクションを必要とすることなく必要に応じて自動的に一方的に受けることができる。
ブロード・ネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種シン(thin)またはシック(thick)クライアント・プラットホーム(例えば移動電話、ラップトップおよびPDA)による使用を促進する標準的機構を通してアクセスされる。
リソース・プーリング:マルチテナント・モデルを使用して多数のコンシューマにサービスを提供するために、提供者のコンピューティング・リソースはプールされており、要求に応じて、異なる物理および仮想リソースが動的に割当ておよび再割当てされる。コンシューマは一般に、提供されたリソースの正確な位置を制御できずまたは正確な位置を知らないが、より高い抽象化レベル(例えば国、州またはデータセンター)で位置を指定することができるという意味で、位置独立の感覚がある。
ラピッド・エラスティシティ(rapid elasticity):機能は、素早くスケールアウトするために迅速かつ弾力的に、場合によっては自動的に供給することができ、素早くスケールインするために迅速にリリースすることができる。
コンシューマにとって、供給に使用可能な機能はしばしば無限であるように見え、いつでも好きな量だけ購入することができる。
メジャード・サービス(measured servece):クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅および使用中ユーザ・アカウント)に適合したある抽象化レベルで計測機能に介入することによって、リソースの使用状況を自動的に制御および最適化する。リソースの使用状況を監視、制御および報告して、利用されているサービスの提供者とコンシューマの両方に透明性を提供することができる。
サービス・モデルは以下のとおりである。
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供されるこの機能は、クラウド・インフラストラクチャ上でランしている提供者のアプリケーションを使用する機能である。ウェブ・ブラウザなどのシン・クライアント・インタフェース(例えばウェブ・ベースの電子メール)を通してさまざまなクライアント・デバイスからアプリケーションにアクセス可能である。場合によっては可能な限られたユーザ固有のアプリケーション構成の設定を除けば、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージまたは個々のアプリケーション機能を含む根底にあるクラウド・インフラストラクチャを管理もまたは制御もしない。
プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供されるこの機能は、クラウド・インフラストラクチャ上で、提供者がサポートするプログラム言語およびツールを使用して作成されたコンシューマ作成または取得のアプリケーションをデプロイする機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む根底にあるクラウド・インフラストラクチャを管理もまたは制御もしないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成は制御することができる。
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供されるこの機能は、処理、ストレージ、ネットワークおよび他の基本的なコンピューティング・リソースを供給する機能であり、コンシューマは任意のソフトウェアをデプロイおよびランすることができ、このソフトウェアは、オペレーティング・システムおよびアプリケーションを含むことができる。コンシューマは、根底にあるクラウド・インフラストラクチャを管理もまたは制御もしないが、オペレーティング・システム、ストレージおよびデプロイされたアプリケーションは制御することができ、場合によっては、選択されたネットワーク構成要素(例えばホスト・ファイアウォール)を限定的に制御することができる。
デプロイメント・モデルは以下のとおりである。
プライベート・クラウド:このクラウドのインフラストラクチャは、組織体のためだけに運営される。
インフラストラクチャは、その組織体または第三者によって管理されることがあり、敷地内または敷地外に置かれることがある。
コミュニティ・クラウド:このクラウドのインフラストラクチャは、いくつかの組織体によって共有され、利害(例えば任務、セキュリティ要件、方針およびコンプライアンス上の問題)を共有する特定のコミュニティを支援する。インフラストラクチャは、その組織体または第三者によって管理されることがあり、敷地内または敷地外に置かれることがある。
パブリック・クラウド:このクラウドのインフラストラクチャは、一般大衆または大きな産業グループが利用可能であり、クラウド・サービスを販売している組織体によって所有される。
ハイブリッド・クラウド:このクラウドのインフラストラクチャは、固有の実体を維持しているが、データおよびアプリケーション・ポータビリティを可能にする標準化された技術または独占技術(例えばクラウド間のロード・バランシングのためのクラウド・バースティング)によって1つに結合された2つ以上のクラウド(プライベート、コミュニティまたはパブリック)の合成体である。クラウド・コンピューティング環境は、無国籍(statelessness)、低結合(low coupling)、モジュール性(modularity)および意味論的相互運用性(sementic interoperability)に重きを置くサービス指向の環境である。クラウド・コンピューティングの中心に、相互接続されたノードのネットワークを含むインフラストラクチャがある。
次に図1を参照すると、例示的なクラウド・コンピューティング環境50が示されている。示されているとおり、クラウド・コンピューティング環境50は1つまたは複数のクラウド・コンピューティング・ノード10を含み、これらのノードによって、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイス、例えばパーソナル・ディジタル・アシスタント(PDA)もしくは移動電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54Cまたは自動車コンピュータ・システム54Nあるいはこれらの組合せは通信することができる。ノード10は互いに通信することができる。それらのノードは、1つまたは複数のネットワークにおいて、上で説明したプライベート、コミュニティ、パブリックまたはハイブリッド・クラウドまたはこれらの組合せなどのグループ(図示せず)に物理的または仮想的にグループ分けされていることがある。これによって、クラウド・コンピューティング環境50は、インフラストラクチャ、プラットホームもしくはソフトウェアまたはこれらの組合せを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要がないサービスとして提供することができる。図1に示されたタイプのコンピューティング・デバイス54A〜Nは単なる例であることが意図されていること、ならびにコンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワーク上もしくはアドレス指定可能なネットワーク接続上で(例えばウェブ・ブラウザを使用して)またはその両方で、コンピュータ化された任意のタイプのデバイスと通信することができることが理解される。
次に図2を参照すると、クラウド・コンピューティング環境50(図1)によって提供される一組の機能抽象層が示されている。図2に示された構成要素、層および機能は単なる例であることが意図されており、本発明の実施形態はそれらに限定されないことを予め理解しておくべきである。図示のとおり、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60は、ハードウェア構成要素およびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャに基づくサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65ならびにネットワークおよびネットワーキング構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素が、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化層70は抽象化層を提供し、この層から、仮想実体の以下の例が提供されることがある:仮想サーバ71、仮想ストレージ72、仮想専用ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74および仮想クライアント75。
一例では、管理層80が下記の機能を提供する。リソース供給81は、クラウド・コンピューティング環境内でタスクを実施する目的に利用されるコンピューティング・リソースおよび他のリソースの動的調達を提供する。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡、およびこれらのリソースの消費に対する課金または請求を提供する。一例では、これらのリソースがアプリケーション・ソフトウェア・ライセンスを含む。セキュリティは、クラウド・コンシューマおよびタスクの識別確認ならびにデータおよび他のリソースの保護を提供する。ユーザ・ポータル83は、コンシューマおよびシステム管理者に、クラウド・コンピューティング環境へのアクセスを提供する。サービス水準管理84は、必要なサービス水準が達成されるようなクラウド・コンピューティング・リソースの割振りおよび管理を提供する。サービス水準合意(SLA)計画および履行85は、SLAによって将来必要になると予想されるクラウド・コンピューティング・リソースの事前調整および調達を提供する。
作業負荷層90は、クラウド・コンピューティング環境が利用される可能性がある機能の例を提供する。この層から提供されうる作業負荷および機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ解析処理94、トランザクション処理95およびワークフロー実行処理96を含む。
図3は、ワークフローを実行する本発明の1つまたは複数の実施形態に基づく例示的なシステム100を示す。システム100は、認知学習を使用したワークフローの実行を容易にする。システム100は、ワークフロー125へのアクセスをワークフロー実行者105に提供するワークフロー・アクセス・システム120を含む。ワークフロー125は、ワークフロー・ターゲット・システム110の構成要素もしくは構成またはその両方を変更するためのものである。図3では、ワークフロー・アクセス・システム120とワークフロー・ターゲット・システム110とが2つの別個のシステムとして示されているが、1つまたは複数の例では、これらの2つのシステムが同じ1つのシステムであることに留意すべきである。
ワークフロー125は、例えばワークフロー・ターゲット・システム110の販売者もしくは開発者またはその両方によって提供される。ワークフロー125は、ワークフロー実行者105によって実行される1つまたは複数のワークフロー・ステップを含む。ワークフロー125には固有の識別子が割り当てられている。さらに、1つまたは複数の例では、それぞれのワークフロー・ステップに固有の識別子が割り当てられている。1つまたは複数の例では、ワークフロー・ステップが、ワークフロー125によって提供される特定の順序で実行される。したがって、ワークフロー125は、ワークフロー実行者105によって実行される機械支援ワークフローである。ワークフロー実行者105は、ワークフロー125のそれぞれのワークフロー・ステップを実行するユーザであることがある。あるいは、ワークフロー実行者105は、ワークフロー125のワークフロー・ステップを自動または半自動で実行する機械である。
システム100はさらに、ワークフロー125を更新する目的に使用される1つまたは複数のデータ源130を含む。データ源130は、1つまたは複数のサーバ・コンピュータであることがある。1つまたは複数の例では、データ源130が、ワークフロー125の更新されたワークフロー・ステップもしくは情報またはその両方を記憶した販売者データ源130を含む。販売者データ源130は、例えばワークフロー125の販売者/作成者/開発者によって提供される。1つまたは複数の例では、ワークフロー125に関連した情報にアクセスするため、ワークフロー125が、販売者データ源130のアクセス位置、例えばIPアドレス、または他のアクセス情報を含む。1つまたは複数の例では、販売者データ源130が、ワークフロー125の固有の識別子に関連した情報、さらに、ワークフローの1つまたは複数のワークフロー・ステップの固有の識別子に関連した情報を保持している。ワークフロー・アクセス・システム120は、ワークフローおよびワークフロー・ステップに関連したこれらのデータを、販売者データ源130内において、例えば販売者データ源130によって提供されたアプリケーション・プログラミング・インタフェース(API)を使用して明確に識別することができる。他の例では、APIの他に、これらのデータにアクセスする別の技法が使用されることがあることが理解される。
その代わりに、またはそれに加えて、データ源130は、ワークフロー実行者105の組織体内からの「ドメスティック情報」を記憶したドメスティック・データ源を含む。ドメスティック情報はその組織体固有の情報である。例えば、ワークフロー125がSEARS(商標)などの組織体内で実行されている場合、ワークフロー実行者105は、1つまたは複数のワークフロー・ステップの実行中に、従業員番号、サーバ名、ファイル名、プロトコル、顧客識別データ、仕入先識別データなどのパラメータを使用することができ、このようなパラメータはSEARS(商標)固有のパラメータである。このような情報は公開されない極秘情報であることがある。さらに、このような情報は、SEARS(商標)組織体内でそのワークフロー・ステップを実行したときにのみ有用であることがあり、異なる組織体内でそのワークフロー・ステップを実行するとエラー(例えばワークフローの失敗または誤った結果)の原因になることがある。したがって、データ源130は、ワークフロー実行者105の組織体内でのワークフロー実行に特化したデータを記憶したドメスティック情報データ源130を含むことができる。その代わりに、またはそれに加えて、その組織体が、ワークフロー・ターゲット・システム110に対して固有であることがあり、ワークフロー実行者105に対してはそうでないことがある。
さらに、データ源130は、インターネットを介してアクセス可能な「オープン」データ源であり、ワークフロー125の別のユーザによって提供された情報(「別ユーザ情報」と呼ぶ)を提供するデータ源である、別ユーザ・データ源130を含む。例えば、別のユーザ・データ源130は、ソーシャル・メディア・サーバ(例えばFACEBOOK(商標)、LINKEDIN(商標)、TWITTER(商標)など)、別のワークフロー実行者のブログ(例えばWORDPRESS(商標)など)、フォーラム(QUORA(商標)、REDDIT(商標)など)、あるいはインターネットを介してアクセス可能な他のデータ源であり、ワークフロー125もしくはワークフロー・ステップまたはその両方に関連した情報をワークフロー・アクセス・システム120が検索することを容易にする他のデータ源を含むことができる。
ワークフロー実行者105は、特定のワークフロー125に対してどのデータ源130を使用するのかを指定することができ、記憶するまたはそのデータ源130から検索するデータのタイプを指示することができる。上に挙げたデータ源のタイプは少数の例であること、および別の例では追加のデータ源タイプもしくは異なるデータ源タイプまたはその両方が使用されることに留意すべきである。
ワークフロー125を更新することは、1つまたは複数のワークフロー・ステップを更新することを含む。1つまたは複数の例では、ワークフロー・アクセス・システム120がワークフロー125を更新する。1つまたは複数の例では、この更新が、ワークフロー実行者105からの要求に応答して実施されうる。ワークフロー・アクセス・システム120は、機械学習アルゴリズムなどの認知学習技法を使用してワークフロー125を更新する。例えば、ワークフロー・アクセス・システム120は、ニューラル・ネットワーク、ベイズ(Bayesian)、クラスタ化、回帰、決定樹、正則化などのような、またはこれらの組合せのようなアルゴリズムを使用する。ワークフロー・アクセス・システム120は、データ源130から利用可能な更新情報を使用して、ワークフロー125の1つまたは複数のワークフロー・ステップを改訂する。1つまたは複数の例では、ワークフロー・アクセス・システム120が、ワークフロー125の識別子もしくはワークフロー・ステップの識別子またはその両方を使用して、特定のワークフロー120もしくはワークフロー・ステップまたはその両方のためのデータ源から利用可能な更新情報を識別する。
さらにまた、ワークフロー・アクセス・システム120は、ワークフロー実行者105によるワークフロー125の実行に関連した情報によってワークフロー実行者105がデータ源130を更新することを容易にする。例えば、ワークフロー実行者105は、自己の更新情報を、ワークフロー125のワークフロー・ステップを実行したまたはワークフロー125全体を実行した自己の経験に基づいて提供する。
したがって、ワークフロー実行システム100は、データ源130からの1つまたは複数のフィードバック更新情報に基づいてワークフロー125を更新/改訂する。さらに、ワークフロー実行システム100は、ワークフロー・ステップの完了後もしくはワークフロー125の実行の完了に応答してまたはその両方において、データ源130を、ワークフロー実行者105からのフィードバック更新情報によって更新することを容易にする。ワークフロー実行システム100は、ワークフロー・ステップの固有の識別子もしくはワークフロー125の固有の識別子またはその両方を使用して、対応するそれぞれのフィードバック情報にアクセスし、対応するそれぞれのフィードバック情報を受け取りもしく更新し、またはこれらの組合せを実施する。
図4は、1つまたは複数の実施形態に基づく例示的なシステム200を示す。システム200は、コンピュータなどの通信装置とすることができる。例えば、システム200は、デスクトップ・コンピュータ、タブレット・コンピュータ、ラップトップ・コンピュータ、電話、例えばスマートフォン、サーバ・コンピュータ、またはネットワーク265を介して通信する他のデバイスとすることができる。システム200は、電子回路などのハードウェアを含む。1つまたは複数の例では、システム200が、実行時データ収集システム120である。
システム200は、とりわけ、プロセッサ205、メモリ・コントローラ215に結合されたメモリ210、およびローカルI/Oコントローラ235を介して通信可能に結合された、周辺デバイスまたは制御デバイスなどの1つもしくは複数の入力デバイス245もしくは出力デバイス240またはその両方を含む。これらのデバイス240および245は例えばバッテリ・センサ、位置センサ、インジケータ/識別灯などを含むことができる。I/Oコントローラ235には、従来のキーボード250およびマウス255などの入力デバイスを結合することができる。I/Oコントローラ235は例えば、当技術分野で知られている1つまたは複数のバスまたは他の有線もしくは無線接続とすることができる。単純にするために省略されているが、I/Oコントローラ235は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、中継器および受信器などの追加の要素を有することができる。
I/Oデバイス240、245はさらに、入力と出力の両方で通信するデバイス、例えばディスクおよびテープ・ストレージ、(他のファイル、デバイス、システムまたはネットワークにアクセスするための)ネットワーク・インタフェース・カード(NIC)または変調器/復調器、無線周波(RF)トランシーバまたは他のトランシーバ、テレフォン・インタフェース、ブリッジ、ルータなどを含むことができる。
プロセッサ205は、ハードウェア命令またはソフトウェア、特にメモリ210に記憶されたハードウェア命令またはソフトウェアを実行するハードウェア・デバイスである。プロセッサ205は、特注または市販のプロセッサ、中央処理ユニット(CPU)、システム200に関連したいくつかのプロセッサの中の補助プロセッサ、(マイクロチップもしくはチップ・セットの形態の)半導体ベースのマイクロプロセッサ、マクロプロセッサまたは命令を実行する他のデバイスとすることができる。プロセッサ205はキャッシュ270を含み、キャッシュ270は、限定はされないが、実行可能命令フェッチの速度を上げる命令キャッシュ、データ・フェッチおよび記憶の速度を上げるデータ・キャッシュ、および実行可能命令とデータの両方に関する仮想−物理アドレス変換の速度を上げるために使用される変換索引バッファ(TLB)を含むことができる。キャッシュ270は、より高次のキャッシュ・レベル(L1、L2など)の階層として編成することができる。
メモリ210は、揮発性メモリ要素(例えばランダム・アクセス・メモリ(RAM)、例えばDRAM、SRAM、SDRAM)および不揮発性メモリ要素(例えば、ROM、消去可能なプログラマブル・リード・オンリー・メモリ(EPROM)、電子的に消去可能なプログラマブル・リード・オンリー・メモリ(EEPROM)、プログラマブル・リード・オンリー・メモリ(PROM)、テープ、コンパクト・ディスク・リード・オンリー・メモリ(CD−ROM)、ディスク、ディスケット、カートリッジ、カセットなど)のうちの1つまたは組合せを含むことができる。さらに、メモリ210は、電子、磁気、光または他のタイプのストレージ媒体を含むことができる。メモリ210は、さまざまな構成要素が互いに離れて位置するが、プロセッサ205はそれらの構成要素にアクセスすることができる分散アーキテクチャを有することができることに留意されたい。
メモリ210の中の命令は、論理機能を実施するための実行可能命令の順序付きリストをそれぞれが含む1つまたは複数の別個のプログラムを含むことができる。図4の例では、メモリ210の中の命令が適当なオペレーティング・システム(OS)211を含む。オペレーティング・システム211は、他のコンピュータ・プログラムの実行を本質的に制御することができ、スケジューリング、入力−出力制御、ファイルおよびデータ管理、メモリ管理、通信制御ならびに関連サービスを提供する。
例えばプロセッサ205に対する命令または他の検索可能な情報を含む追加のデータをストレージ220に記憶することができ、ストレージ220は、ハード・ディスク・ドライブまたは固体ドライブなどのストレージ・デバイスとすることができる。メモリ210またはストレージ220に記憶された命令は、本明細書に記載されたシステムおよび方法の1つまたは複数の態様をプロセッサが実行することを可能にする命令を含むことができる。
システム200はさらに、ユーザ・インタフェースまたはディスプレイ230に結合されたディスプレイ・コントローラ225を含むことができる。いくつかの実施形態では、ディスプレイ230がLCDスクリーンである。別の実施形態では、ディスプレイ230が複数のLEDステータス・ライトを含む。いくつかの実施形態では、システム200がさらに、ネットワーク265に結合するためのネットワーク・インタフェース260を含む。ネットワーク265は、システム200と外部サーバ、クライアントなどとの間のブロードバンド接続を介した通信用のIPベースのネットワークとすることができる。一実施形態では、ネットワーク265が衛星ネットワークとすることもできる。ネットワーク265は、システム200と外部システムとの間でデータを送受信する。いくつかの実施形態では、ネットワーク265が、サービス提供者によって運営されたマネージドIPネットワークとすることもできる。ネットワーク265は、無線方式で、例えばWiFi、WiMax、衛星などの無線プロトコルおよび無線技術を使用して実施することができる。ネットワーク265は、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、インターネットまたは他の同様のタイプのネットワーク環境などのパケット交換網とすることもできる。ネットワーク265は、固定無線ネットワーク、無線ローカル・エリア・ネットワーク(LAN)、無線ワイド・エリア・ネットワーク(WAN)パーソナル・エリア・ネットワーク(PAN)、仮想専用ネットワーク(VPN)、イントラネットまたは他の適当なネットワーク・システムとすることができ、信号を受信および送信するための機器を含むことができる。
1つまたは複数の例では、図3に示された1つまたは複数の構成要素がシステム200として実施される。例えば、ワークフロー・アクセス・システム120、ワークフロー・ターゲット・システム110、1つまたは複数のデータ源130、もしくはシステム100の他の構成要素、またはこれらの組合せを、システム200によって実施することができる。システム100は、本明細書に記載された技術的解決策を実施することを容易にする。
1つまたは複数の例では、ワークフロー125の固有の識別子、さらにワークフロー125の各ワークフロー・ステップの固有の識別子が割り当てられている。1つまたは複数の例では、ワークフロー125およびワークフロー・ステップがさらに、より人間の使用に適した(human−usable)記述名に関連づけられうる。この記述名は固有のものでなくてもよい。1つまたは複数の例では、データ源130からの適切な情報にアクセスするために、ワークフロー125およびワークフロー・ステップの固有の識別子の突合せが使用される。ワークフロー実行者105が入手したい情報は、ワークフロー125が生成され、販売者によって提供されて以降にコミュニティが生成した、ワークフロー125およびそれぞれのワークフロー・ステップに関連した追加情報である。
ワークフロー・アクセス・システム120は、ワークフロー・ステップもしくはワークフロー125またはその両方に対する更新情報を、ワークフロー125によって予め設定された特定のデータ源130に対するアクセス情報を使用して見つけ出す。その代わりに、またはそれに加えて、アクセス情報はワークフロー実行者105によっても提供される。その代わりに、またはそれに加えて、ワークフロー・アクセス・システム120は、対応するアクセス情報を含むデータ源の予め設定されたリストを含む。その代わりに、またはそれに加えて、ワークフロー・アクセス・システム120は、ワークフロー・ステップのための新しいデータ源130を、例えばサーチ・エンジンを使用して、ワークフロー・ステップに関連したキーワードもしくはワークフロー・ステップの固有の識別子またはその両方に基づいて発見する。例えば、ワークフロー・アクセス・システム120は、ワークフロー・ステップの自然言語構文解析を実施し、サーチ・エンジンまたは他の探索システムを使用して実行される探索問合せを生成する。したがって、ワークフロー・アクセス・システム120は、ワークフロー実行者105が、ワークフロー125およびそれぞれのワークフロー・ステップに対して使用可能な1つまたは複数のデータ源130からの最新情報を検索することを容易にする。
データ源130は、ワークフロー実行者105の組織体内にある(「ドメスティック情報」の)ドメスティック・データ・ストアを含む。ドメスティック情報は、ワークフロー実行者105と同じ組織体内の1または複数のワークフロー実行者によって生成された情報を含む。データ源130はさらに、ワークフロー125の販売者によって直接に提供された情報(「販売者更新情報」)を記憶した販売者のデータ・ストアを含むことができる。さらに、データ源130は、インターネットを介して利用可能であり、例えばアプリケーション・プログラミング・インタフェース(API)を介してアクセス可能な(「別ユーザ情報」の)「オープン」データ・ストアを含むことができる。1つまたは複数の例では、ワークフロー実行者105が、特定のワークフロー125もしくは特定のワークフロー・ステップまたはその両方に対してどのデータ源を使用するのかを指定し、ワークフロー実行者105が記憶または検索するであろうデータの種類(ドメスティック情報、販売者更新情報など)を示す。
ワークフロー・アクセス・システム120は、ワークフロー実行者105がワークフロー125を実行しているときのある時点で、ワークフロー125およびワークフロー・ステップに対する更新を要求する。1つまたは複数の例では、ワークフロー実行者105が、このような更新に対する同意を示さなければならない。それに応答して、ワークフロー・アクセス・システム120は、適切な1つまたは複数のデータ源130との通信を開始して、ワークフロー125に対する更新情報を固有の識別子を使用して検索する。検索された更新情報は、実行時にワークフロー125を改訂するためにワークフロー125に組み込まれる。1つまたは複数の例では、組み込まれた更新情報が、その情報がそこから検索されたデータ源130によって識別される。
1つまたは複数の例では、ワークフロー・ステップの実行が完了したときに、ワークフロー・アクセス・システム120が、更新された情報を適切なデータ源130にプッシュする。生成されたデータの正しいタイプに対応する更新された情報データがプッシュされる。例えば、ワークフロー実行者の組織体に固有のプライベート・データは、「ドメスティック情報」用のデータ源130に送られる。さらに、「別ユーザ情報」としてリリースされることが望まれる更新された情報は、別のデータ源130にプッシュされる。さらにまた、販売者に戻すことが望まれる情報は、ワークフロー設計者(ISV)に関連した「販売者更新情報」用のデータ源130に送られる。1つまたは複数の例では、データ源130が、使用に利用可能なデータ源130のリストを含み、ワークフロー・アクセス・システム120は、そのリストのデータ源130に対する発見を実施して、特定のタイプのデータ源(ドメスティック、販売者など)を識別する。
図5は、実行時にワークフローを更新する1つまたは複数の実施形態に基づく例示的な方法の流れ図を示す。この方法は、システム100を使用して実施することができる。この方法は、510に示されているように、ワークフロー・アクセス・システム120を介してワークフロー実行者105が実行するワークフロー125を選択することを含む。1つまたは複数の例では、この選択が、ワークフロー125を実行する通知を受け取ったことに応答して、またはワークフロー125自体を受け取ったことに応答して実施される。1つまたは複数の例では、ワークフロー125が多数のワークフローの中から選択される。ワークフローは販売者によってワークフロー実行者105に提供され、またはワークフロー実行者105が自分で書くこともできる。
1つまたは複数の例では、ワークフロー125が、さまざまなタイプのデータ(ドメスティック、販売者更新、別ユーザ情報)に対して使用する1つまたは複数のデータ源130を含む。データ源130は、ワークフロー125を作成した販売者もしくはワークフロー実行者105またはその両方が、ワークフロー125中で識別することができる。その代わりに、またはそれに加えて、ワークフロー125はさらに、更新もしくはワークフロー125に関する追加情報またはその両方を見つけ出すために使用するデータ源130を探索する発見動作を実施するよう、ワークフロー・アクセス・システム120に指示することもできる。
この方法はさらに、515に示されているように、ワークフロー125を更新するかどうかをワークフロー実行者105に確認することを含む。ワークフロー実行者105が更新を開始する場合、この方法は、520に示されているように、ワークフロー125に対する情報を1つまたは複数のデータ源からプルすることを含む。この情報は、ワークフロー125の実行を継続するかどうかをワークフロー実行者105が判定することを容易にする可能性がある、ワークフロー125に対する更新情報および追加情報を含む。
この情報をデータ源130からプルすることは、522および524に示されているように、データ源130を選択すること、およびワークフロー125に対する更新された情報がデータ源130において利用可能であるかどうかを確認することを含む。例えば、この方法は、販売者からワークフロー125を受け取って(または作成して)以降に、ワークフロー125が更新されたどうかを検出することを含む。その代わりに、またはそれに加えて、この方法は、別のユーザまたは販売者が関連情報を1つまたは複数のデータ源に追加したかどうかを検出することを含む。この検出は、ワークフロー125の固有の識別子を使用して1つまたは複数のデータ源130を確認することを含む。データ源130は、更新された情報を、固有の識別子に従って、例えば固有の識別子によって索引付けされて、保持している。
1つまたは複数のデータ源130は、ワークフロー125によって識別される所定の一組のデータ源130を含むことができる。例えば、確認される所定のデータ源130は、ワークフロー125の作成以降に販売者がワークフロー125に提供した更新用の販売者データ源を含むことがある。例えばドメスティック情報データ・ソース、ソーシャル・メディア・データ源などの他のデータ源が確認されることもある。データ源130は、逐次的にもしくは並行してまたはその両方で確認されることがある。1つまたは複数の例では、この確認が、実行するワークフロー125が選択されたことに応答して実施され、これが、ワークフロー125が作成され販売者によって提供されたときよりも後であることがある。
更新された情報が利用可能である場合、この方法は、526に示されているように、更新された情報を1つまたは複数のデータ源130から検索することを含む。525に示されているように、この更新された情報はワークフロー125に組み込まれる。したがってワークフロー125は更新される。例えば、この組込みは、1つもしくは複数のワークフロー・ステップを追加すること、または1つもしくは複数のワークフロー・ステップをワークフロー125から除くこと、あるいはその両方を含むことがある。その代わりに、またはそれに加えて、この更新は、ワークフロー125からの1つまたは複数のワークフロー・ステップを改訂することを含むことができる。例えば、この改訂は、ワークフロー・ステップで使用するパラメータ値の改変、例えばファイルのパス名、ファイル名、使用する数値、実行するスクリプト、使用するスクリプト・ファイル、実行するデータベース問合せ、アプリケーション・プログラミング・インタフェース呼出し、バージョン番号、またはワークフロー・ステップによって指定された他の動作などの改変を含むことができる。
この方法はさらに、530に示されているように、ワークフロー125からワークフロー・ステップを選択することによって、ワークフロー125の実行を開始することを含む。このワークフロー・ステップの実行は、上述のワークフロー更新の後でまたは上述のワークフロー更新なしで開始される。
ワークフロー・ステップを実行する前に、この方法はさらに、535に示されているように、ワークフロー・ステップを更新するかどうかを判定することを含む。例えば、以前の予備更新(515)以降に、いずれかのデータ源130でワークフロー・ステップが更新されている可能性がある。その代わりに、またはそれに加えて、そのワークフロー・ステップの実行に関連するデータがデータ源130上で利用可能であることもありうる。例えば、この追加データは、販売者データ源、ドメスティック情報データ源、ソーシャル・メディア・データ源または他のデータ源130に追加された情報を含むことがある。この追加データは、ワークフロー・ステップの実行を続行するかどうかを判定するためにワークフロー実行者105が読むこともしくは分析することまたはその両方を実施することができる情報を示す。
535に示されているように、ワークフロー・ステップに対するこのような更新された情報をプルするかどうかを、ワークフロー実行者105に問い合わせる。1つまたは複数の例では、このような確認が、更新を開始するかどうかをワークフロー実行者105に確認するようワークフロー・ステップに記されている場合にのみ実施される。このような記載が存在しない場合、更新された情報をプルすることに関するワークフロー実行者105への問合せは実施されない。
ワークフロー実行者105がワークフロー・ステップの更新を開始する場合、この方法は、540に示されているように、ワークフロー・ステップに対する更新された情報を1つまたは複数のデータ源130からプルすることを含む。更新された情報をプルすることは、522に示されているように、ワークフロー125に関連した1つまたは複数の所定のデータ源130の中からデータ源130を選択することを含む。1つまたは複数の例では、ワークフロー・ステップに関連したデータ源130が、この方法の始めのワークフロー125の更新(515)に関連したデータ源130とは異なることもある。さらに、更新された情報をプルすることは、524に示されているように、ワークフロー・ステップに対する更新された情報が、選択されたデータ源において利用可能であるかどうかを確認することを含む。1つまたは複数の例では、ワークフロー・ステップに関連した更新された情報が、ワークフロー・ステップ識別子を使用して識別される。1つまたは複数の例では、データ源130が、ワークフロー・ステップに対する更新された情報を、ワークフロー・ステップに関連した識別子に基づいて、例えばワークフロー・ステップ識別子に従って索引付けされて、保持している。1つまたは複数の例では、更新された情報が信頼できるデータ源(trusted data source)からのものであること、および更新された情報がワークフロー販売者107によって推奨されていることの両方の条件が満たされている場合にのみ、ワークフロー実行者105がワークフロー・ステップを実行する。
526に示されているように、ワークフロー・ステップに関連した更新された情報を検索する。545に示されているように、この検索された情報はワークフロー・ステップに組み込まれる。更新された情報は、ワークフロー・ステップに対する改訂を含むことがある。その代わりに、またはそれに加えて、更新された情報は、ワークフロー・ステップの実行を続行するかどうかを判定するためにワークフロー実行者105が読むこともしくは分析することまたはその両方を実施することができるデータを含むことがある。
実行を継続するとワークフロー実行者105が判定した場合、この方法は、550に示されているように、ワークフロー・ステップを実行すること、およびそれによってワークフロー・ターゲット・システム110の改変に影響を及ぼすことを含む。この改変は、本明細書に記載されたハードウェア構成の改変もしくはソフトウェア構成の改変またはその両方を含むことがある。あるいは、570に示されているように、1つまたは複数のデータ源130から受け取った更新された情報に基づいて、ワークフロー実行者105が、ワークフローの実行を終了すると判定することもある。
1つまたは複数の例では、ワークフロー・ステップが実行されたか否かに関わらず、555に示されているように、ワークフロー実行者105が、更新された情報をデータ源130にプッシュする。例えば、ワークフロー・ステップの実行を続行しないとワークフロー実行者105が判定した場合、ワークフロー実行者105は、そのことをデータ源130に示すことができる。1つまたは複数の例では、データ源130が、ワークフロー・ステップが実行された回数のカウントを保持し、このような情報がワークフロー実行者105によりプッシュされることは、このカウントの保持を容易にする。例えば、販売者データ源はこのような情報を保持していることがある。その代わりに、またはそれに加えて、他のいずれかのデータ源130がこのような情報を保持していることもある。加えて、ワークフロー実行者105は、セキュリティ上の懸念、互換性の懸念、またはそのワークフロー・ステップが完了した/完了しなかった他の理由など、ワークフロー・ステップの実行を打ち切る/続行するワークフロー実行者105の判断につながった情報をアップロードまたはプッシュすることができる。その代わりに、またはそれに加えて、ワークフロー実行者105は、所定の基準(例えば星の数など)を使用した格付けなど、ワークフロー・ステップの実行の容易さを示す情報をプッシュすることができる。プッシュされた情報は、実行中のワークフロー・ステップの識別子に従ってデータ源130に記憶される。
ワークフロー実行者105がワークフロー・ステップを実施するとき、ワークフロー実行者105は、ワークフロー・ステップに関する情報を追加することができ、その情報は、ワークフロー・ステップの実行が完了したときにデータ源130に送られる。例えば、ワークフロー実行者105は、注記、ティップスを提供することができ、または、ワークフロー実行者105がそのワークフロー・ステップのために開発したスクリプトなど、ワークフロー・ステップを実施するツールさえも提供することができる。その代わりに、またはそれに加えて、ワークフロー実行者105は、ワークフロー・ステップに元からあるコードの代わりに実行される、変更されたコード(プログラミング命令)を提供することができる。その代わりに、またはそれに加えて、ワークフロー実行者105は、ワークフロー・ステップを実行する前または後に実施される前操作または後操作を提供することができる。その代わりに、またはそれに加えて、ワークフロー実行者は、そのワークフロー・ステップを実行することのワークフロー・ターゲット・システム110に対する副作用を記述することもできる。上記は例を列挙したものであり、別の例では、ワークフロー実行者105が、ワークフロー・ステップの実行に関する追加の詳細を提供する。
ワークフロー・ステップに関する情報をデータ源にプッシュするとワークフロー実行者105が判定した場合、ワークフロー・アクセス・システム120は、560に示されているように、その情報を蓄積し、データ源にプッシュする。このデータの蓄積は、ワークフロー・ステップの実行に関するコンテキスト情報を提供するシリアル・ナンバー、バージョン番号、(オペレーティング・システム、パス名などの)特定の構成パラメータなど、ワークフロー・ターゲット・システム110に関連した1つまたは複数のパラメータを決定することを含む。その代わりに、またはそれに加えて、この蓄積は、ワークフロー・ステップの実行に関するコンテキスト情報を提供するために、ワークフロー実行者105に関連したユーザ名、従業員ID、職務、組織体の許可などのデータを収集することを含む。さらにまた、この蓄積は、ワークフロー・ステップを実行した期間、実行が開始された時刻もしくは終了した時刻またはその両方、ワークフロー・ステップがデータ源130から更新された回数、ワークフロー実行者105によって獲得された、例えば所定のソフトウェア・アプリケーション(例えばONENOTE(商標)など)中の注記など、実行の実施に関連したデータを収集することを含む。1つまたは複数の例では、この蓄積がさらに、実行の容易さ、実行時間、実行を満たすワークフロー・ステップの結果などに基づくワークフロー・ステップの実行の格付けを実施するようワークフロー実行者105に要求することを含む。
蓄積された情報をデータ源130にプッシュすることは、562に示されているように、プッシュ先の1つまたは複数のデータ源130を選択することを含む。このデータ源130は、ワークフロー実行者105が予め選択しておくことができる。その代わりに、またはそれに加えて、ワークフロー・アクセス・システム120は、プッシュ先のデータ源130を、プッシュするデータのタイプに基づいて選択する。例えば、プッシュするデータがワークフロー・ステップの格付けである場合には、データを販売者データ源130にプッシュすることができる。その代わりに、またはそれに加えて、ワークフロー実行者105の環境に特定の設定を使用してワークフロー・ステップが実行された場合には、データをドメスティック・データ源130にプッシュすることができる。さらに、販売者データ源またはソーシャル・メディア・データ源のような別ユーザ・データ源などの組織体の外部にデータを公開するかどうかを、ワークフロー実行者105に尋ねることもできる。組織体の外部にデータをプッシュする場合、1つまたは複数の例では、ワークフロー・アクセス・システム120がそのデータを解析し、ファイル名、ユーザ名、パスワード、パス名、従業員名、従業員番号、シリアル・ナンバーなどの一切の組織体特定情報を、プッシュしているデータから除去する。1つまたは複数の例では、ドメスティック情報データ源130にデータをプッシュするときにはこのような組織体特定情報が保持され、または追加されることもある。
564に示されているように、ワークフロー・アクセス・システム120は、ワークフロー・ステップに関連したデータの容易な探索および識別のため、そのデータを、ワークフロー・ステップの固有の識別子と一緒にデータ源130にプッシュする。1つまたは複数の例ではさらに、プッシュされるデータにワークフロー識別子がタグ付けされる。
ワークフロー・ステップの実行が完了した後、この方法は、570に示されているように、ワークフローの実行が完了したのか、または実行すべきさらなるワークフロー・ステップが残っているのかを判定することを含む。追加のワークフロー・ステップが残っている場合には、ワークフロー全体の実行が完了するまで、次のワークフロー・ステップについてこの方法を繰り返す。ワークフロー全体の実行が完了した場合には、この方法が、575に示されているように、ワークフロー全体の実行に関連したデータをデータ源130にプッシュするかどうかをワークフロー実行者105に確認することを含む。情報をプッシュしないとワークフロー実行者105が判断した場合、この方法は完了となる。
データをデータ源130にプッシュする場合、ワークフロー・アクセス・システム120は、580に示されているように、プッシュするデータを蓄積し、1つまたは複数のデータ源130にプッシュする。このデータの蓄積は、ワークフロー125の実行に関するコンテキスト情報を提供するシリアル・ナンバー、バージョン番号、(オペレーティング・システム、パス名などの)特定の構成パラメータなどの、ワークフロー・ターゲット・システム110に関連した1つまたは複数のパラメータを決定することを含む。その代わりに、またはそれに加えて、この蓄積は、ワークフロー125の実行に関するコンテキスト情報を提供するために、ワークフロー実行者105に関連したユーザ名、従業員ID、職務、組織体の許可などのデータを収集することを含む。さらにまた、この蓄積は、ワークフロー125を実行した期間、実行が開始された時刻もしくは終了した時刻またはその両方、ワークフロー125がデータ源130から更新された回数、ワークフロー実行者105によって獲得された、例えば所定のソフトウェア・アプリケーション(例えばONENOTE(商標)など)中の注記など、実行の実施に関連したデータを収集することを含む。さらに、この蓄積は、ワークフロー・バージョン、販売者情報、どのワークフロー・ステップを実行したのか、どのワークフロー・ステップをスキップしたのかなどのワークフロー特定情報を収集することを含む。1つまたは複数の例では、この蓄積がさらに、実行の容易さ、実行時間、実行を満たすワークフロー・ステップの結果などに基づくワークフロー125の実行の格付けを実施するようワークフロー実行者105に要求することを含む。580に示されているように、ワークフロー・アクセス・システム120は、ワークフローに関連したデータの容易な探索および識別のため、そのデータを、ワークフローの固有の識別子と一緒にデータ源130にプッシュする。
したがって、この時点で、データ源130は、第2のワークフロー実行者が固有の識別子を使用して求めたときに検索することができる、ワークフロー125およびワークフロー・ステップに対する更新された情報を記憶している。したがって、第2のワークフロー実行者は、ワークフロー実行者105が提供した情報を使用してワークフロー125を実行するときに、情報に基づく判断を実施することができる。記憶されている情報の詳細は、プッシュするためにワークフロー実行者105が選択したものおよび(例えばソーシャル・メディア源などから)見つかったものに基づきさまざまである。
したがって、本明細書に記載された技術的解決策は、ワークフロー実行者105が、ワークフローを実行するときにワークフロー・ステップの更新された最新のバージョンを有することを容易にする。さらに、ワークフロー実行者105は、ワークフロー・ステップの実行を開始する前に、ワークフロー・ステップに関する更新された最新の情報を受け取る。さらに、本明細書に記載された技術的解決策は、ワークフロー実行者が、ワークフロー・ステップに関連したデータ源を更新して、次のワークフロー実行者がワークフロー・ステップを実行するときにそのワークフロー実行者が最新のバージョン/データを有するようにすることを容易にする。
更新された情報をデータ源130から受け取り、ワークフロー125を更新することに関する技術的課題は、ワークフロー125を変更するときもしくはデータ源130からデータを検索するとき、またはその両方を実施するときに、コンピュータ・セキュリティが維持されることを保証することを含む。本明細書に記載された技術的解決策はさらに、ワークフロー125の変更を管理するセキュリティ機能を提供し、もしくはワークフロー・アクセス・システム120のセキュリティを劣化させない更新された情報を検索し、またはその両方を実施することによって、さらに、信頼できるデータ源だけによって提供されたときに前記変更および更新された情報が追跡されることを保証することによって、このような技術的課題を解決する。1つまたは複数の実施形態によれば、本明細書に記載された技術的解決策は、システム100を使用するときに、ワークフロー実行者105に対する追加のセキュリティ予防措置および強化の下で、機械支援ワークフロー125を実行することを容易にする。
例えば、ワークフロー125に関連した最新情報を得ようとして、ワークフロー実行者105が、1つまたは複数のデータ源130から情報を検索し、その検索された情報が不正確である可能性、例えばその情報がワークフロー実行者105に当てはまらないものである可能性を増大させ、その結果、誤った結果を導く可能性がある。その代わりに、またはそれに加えて、例えばウイルス、トロイの木馬、マルウェアまたは他のタイプのデータ・セキュリティ問題のために、検索されたデータを使用してワークフロー・ステップを実行したときに、そのデータが、ワークフロー実行者105に害を及ぼす可能性もある。本明細書に記載された技術的解決策は、検索された情報に基づいてワークフロー・ステップを検索および実行するときに、ワークフロー実行者105に妥当性確認を提供することを容易にする。例えば、このような妥当性確認は、そのステップが、必要なものであるだけでなく、ワークフロー販売者によってまたは信頼できるユーザのリストのメンバーによって実行しても安全であることが確認されたものでもあることをワークフロー実行者105に保証する。その代わりに、またはそれに加えて、この妥当性確認は、検索されたデータを使用したワークフロー・ステップの実行が、そのワークフロー・ステップの完了時にランしているワークフロー・ターゲット・システム110のセキュリティを強化することを、ワークフロー実行者105に示す。
1つまたは複数の例では、ワークフロー125もしくはワークフロー・ステップまたはその両方に関連した更新された情報にアクセスするときに、販売者データ源130が、ワークフロー実行者105に1つまたは複数の通知を提供する。この通知は、その販売者更新情報が、ワークフロー・ターゲット・システム110のセキュリティ強化機能に関連したものであるかどうかを示す。例えば、更新された情報に、ワークフロー実行者105に対して推奨されるものであることが記されている。したがって、更新された情報を販売者データ源130から受け取ったときに、ワークフロー実行者105は、その更新された情報が、販売者によって推奨および検査されたものであることを知り、したがって、ワークフロー実行者が、検索およびワークフロー125への組込みに関して、更新された情報を信頼することを容易にする。
さらに、本明細書に記載されているとおり、1つまたは複数の例では、ワークフロー・アクセス・システム120が、ワークフロー実行者105によって提供されたデータ源に基づいて、販売者データ源130以外のデータ源から、ワークフロー125に対する更新された情報を見つけ出す。例えば、ワークフロー実行者105は、ワークフローに関連した更新された最新の情報を発見するための、ソーシャル・メディア・サーバ、ブログ、フォーラムおよびこのような他のデータ・エンジンなどの別の1つまたは複数のデータ源を追加することができる。ワークフロー・アクセス・システム120は、このような別のデータ源を使用して、ワークフロー125およびワークフロー・ステップに対する更新された最新の情報を記憶および検索することができる。1つまたは複数の例では、ワークフロー販売者に、このようなデータ源の識別が、例えば販売者データ源130を介して提供される。販売者データ源130は、それらの別のデータ源を、販売者が保持している信頼できるデータ源のリストと比較する。ワークフロー・アクセス・システム120は、販売者データ源が保持しているこの信頼できるデータ源のリストに基づいて、それらの別のデータ源からの利用可能な更新された情報に、それが信頼できるか否かを記し、そのようにして、その利用可能な更新された情報を検索するかどうか、もしくはワークフロー125に組み込むかどうか、またはその両方を実施するかどうかを、ワークフロー実行者が判断することを容易にする。したがって、本明細書に記載された技術的解決策は、分析目的およびセキュリティ目的に関して信頼できるデータ・マイニング・エンジンのリストを提供する。本明細書に記載された技術的解決策は、信頼できるデータ源を使用したセキュリティに関する強化により、「別ユーザ」データ源からインポートされたばかりのワークフロー・ステップが正確であるかどうか、および実行しても安全かどうかに関する情報を提供することによって、ワークフロー実行者105が、ワークフロー・ステップを実行するかどうかを判定することを容易にする。さらに、本明細書に記載された技術的解決策は、ワークフロー・ターゲット・システム110をできるだけ安全なものにするためにそのワークフロー・ステップが実行されることを、ワークフロー販売者が推奨しているかどうかを、ワークフロー実行者105が判定することを容易にする。
図6は、セキュリティが強化された認知学習を使用してワークフローを実行する1つまたは複数の実施形態に基づく例示的な方法の流れ図を示す。この方法は、本明細書に記載されたワークフロー実行システム100またはその他のワークフロー実行システムによって実施することができる。この方法は、610に示されているように、ワークフロー・アクセス・システム120を介してワークフロー実行者105が実行するワークフロー125を選択することを含む。1つまたは複数の例では、この選択が、ワークフロー125を実行する通知を受け取ったことに応答して、またはワークフロー125自体を受け取ったことに応答して実施される。1つまたは複数の例では、ワークフロー125が多数のワークフローの中から選択される。ワークフローは販売者によってワークフロー実行者105に提供され、またはワークフロー実行者105が自分で書くこともできる。
1つまたは複数の例では、ワークフロー125が、さまざまなタイプのデータ(ドメスティック、販売者更新、別ユーザ情報)に対して使用する1つまたは複数のデータ源130を含む。データ源130は、ワークフロー125を作成した販売者もしくはワークフロー実行者105またはその両方が、ワークフロー125中で識別することができる。その代わりに、またはそれに加えて、データ源130は、ワークフロー125を実行しているワークフロー実行者105が、ワークフロー125中で識別することができる。その代わりに、またはそれに加えて、ワークフロー125はさらに、更新もしくはワークフロー125に関する追加情報またはその両方を見つけ出すために使用するデータ源130を探索する発見動作を実施するよう、ワークフロー・アクセス・システム120に指示することもできる。
この方法はさらに、615に示されているように、ワークフロー125を更新するかどうかをワークフロー実行者105に確認することを含む。ワークフロー実行者105が更新を開始する場合、この方法は、620に示されているように、ワークフロー125に対する情報を1つまたは複数のデータ源からプルすることを含む。この情報は、ワークフロー125の実行を継続するかどうかをワークフロー実行者105が判定することを容易にする可能性がある、ワークフロー125に対する更新情報および追加情報を含む。更新された情報をデータ源からプルすることは、本明細書に記載された1つまたは複数の操作を含む(図5参照)。
この方法はさらに、622に示されているように、1つまたは複数のデータ源130からの利用可能な更新された情報の妥当性を確認することを含む。この妥当性確認は、624に示されているように、更新された情報を検索している先のデータ源が信頼できるデータ源であるかどうかを判定することを含む。例えば、ワークフロー実行者105が、信頼できるデータ源であるとそのデータ源に記している場合、そのデータ源は信頼できるデータ源であるとみなされる。その代わりに、またはそれに加えて、データ源の識別、例えばIPアドレス、サーバ名、データ源に関連した証明書またはデータ源の他の識別情報が、ワークフロー販売者に、例えば販売者データ源130を介して送られる。1つまたは複数の例では、ワークフロー・アクセス・システム120が、データ源識別情報を、ワークフロー識別子と一緒にワークフロー販売者に送る。ワークフロー販売者は、実行されているワークフロー125に関して、そのデータ源が信頼できるデータ源であるかどうかを確認する。1つまたは複数の例では、この確認が、そのデータ源識別が、ワークフロー販売者が保持している信頼できるデータ源のリストの一部であるかどうか、例えばワークフロー125の認可された販売者または供給者の一部であるかどうかを判定することを含む。例えば、信頼できるデータ源は、ワークフロー販売者が作成し、信頼できるデータ源だけに提供する認証証明書を保持することができる。認証証明書は、現在利用可能なまたは後に開発される任意の認証プロトコルを使用することができる。データ源の妥当性の判定に認証証明書を使用することは一例に過ぎないこと、および1つまたは複数の例では、追加の形態または異なる形態の妥当性確認を使用してデータ源が認証されることに留意すべきである。
ワークフロー実行者105またはワークフロー販売者107によってデータ源が認証された後、この妥当性確認はさらに、626に示されているように、ワークフロー125に関して、更新された情報がワークフロー販売者107によって推奨されているかどうかを判定することを含む。1つまたは複数の例では、ワークフロー販売者107が、更新された情報に、ワークフロー125に関して推奨された情報であることを、例えばデータ源130が保持しているデータに関連した推奨フラグを使用して記載する。更新された情報がまだワークフロー販売者107によって分析されていない場合、または更新された情報がワークフロー販売者107によって推奨されていない場合、推奨フラグは、非推奨ステータスを示す。
この方法はさらに、ワークフロー実行者105がこの妥当性確認の結果を受け取り、分析すること、および、625に示されているように、ワークフロー実行者105がこのような更新を許可した場合に、データ源からの更新された情報を使用してワークフロー125を更新することを含む。例えば、更新された情報を提供するデータ源が信頼できる源ではないことを妥当性確認結果が示している場合、ワークフロー実行者105は、更新された情報のワークフロー125への組込みを阻止することができ、既存のワークフロー125を更新なしで継続することができる。あるいは、データ源が信頼できる源ではないにも関わらず、ワークフロー実行者105が組込みを許可することもできる。さらに、ワークフロー125に関する推奨された更新または推奨された情報を更新された情報が含んでいないことを妥当性確認結果が示している場合、ワークフロー実行者105は、ワークフロー125への組込みを阻止することができる。あるいは、更新された情報が推奨された更新/データではないにも関わらず、ワークフロー実行者105がワークフロー125の組込みおよび変更を継続することもできる。
この方法はさらに、630に示されているように、ワークフロー125からワークフロー・ステップを選択することによって、ワークフロー125の実行を開始することを含む。このワークフロー・ステップの実行は、上述のワークフロー更新の後でまたは上述のワークフロー更新なしで開始される。
ワークフロー・ステップを実行する前に、この方法はさらに、635に示されているように、ワークフロー・ステップを更新するかどうかを判定することを含む。例えば、以前の予備更新(615)以降に、いずれかのデータ源130でワークフロー・ステップが更新されている可能性がある。その代わりに、またはそれに加えて、そのワークフロー・ステップの実行に関連するデータがデータ源130上で利用可能であることもありうる。例えば、この追加データは、販売者データ源、ドメスティック情報データ源、ソーシャル・メディア・データ源または他のデータ源130に追加された情報を含むことがある。この追加データは、ワークフロー・ステップの実行を続行するかどうかを判定するためにワークフロー実行者105が読むこともしくは分析することまたはその両方を実施することができる情報を示す。
635に示されているように、ワークフロー・ステップに対するこのような更新された情報をプルするかどうかを、ワークフロー実行者105に問い合わせる。1つまたは複数の例では、このような確認が、実行前に更新を開始するかどうかをワークフロー実行者105に確認するようワークフロー・ステップに記されている場合にのみ実施される。このような記載が存在しない場合、更新された情報をプルすることに関するワークフロー実行者105への問合せは実施されない。ワークフロー実行者105がワークフロー・ステップの更新を開始する場合、この方法は、640に示されているように、ワークフロー・ステップに対する更新された情報を1つまたは複数のデータ源130からプルすることを含む。ワークフロー・ステップに対する更新された情報をプルすることは、本明細書に記載された1つまたは複数の操作を含む(例えば515参照)。
さらに、セキュリティを強化するため、この方法は、622に示されているように、1つまたは複数のデータ源130からの利用可能な更新された情報の妥当性を、本明細書に記載されたとおりに確認することを含む。さらに、妥当性確認結果に基づいて、この方法は、645に示されているように、実行者が許可した場合に、検索された情報を使用してワークフロー・ステップを更新することを含む。例えば、更新された情報を提供するデータ源が信頼できる源ではないことを妥当性確認結果が示している場合、ワークフロー実行者105は、更新された情報のワークフロー・ステップへの組込みを阻止することができ、既存のワークフロー・ステップを更新なしで継続することができる。あるいは、データ源が信頼できる源ではないにも関わらず、ワークフロー実行者105が組込みを許可することもできる。さらに、ワークフロー・ステップに関する推奨された更新または推奨された情報を更新された情報が含んでいないことを妥当性確認結果が示している場合、ワークフロー実行者105は、ワークフロー・ステップへの組込みを阻止することができる。あるいは、更新された情報が推奨された更新/データではないにも関わらず、ワークフロー実行者105がワークフロー・ステップの組込みおよび変更を継続することもできる。1つまたは複数の例では、更新された情報が信頼できるデータ源からのものであること、および更新された情報がワークフロー販売者107によって推奨されていることの両方の条件が満たされている場合にのみ、ワークフロー実行者105がワークフロー・ステップを実行する。
実行を継続するとワークフロー実行者105が判定した場合、この方法は、650に示されているように、ワークフロー・ステップを実行すること、およびそれによってワークフロー・ターゲット・システム110の改変に影響を及ぼすことを含む。この改変は、本明細書に記載されたハードウェア構成の改変もしくはソフトウェア構成の改変またはその両方を含むことがある。あるいは、670に示されているように、1つまたは複数のデータ源130から受け取った更新された情報に基づいて、ワークフロー実行者105が、ワークフローの実行を終了すると判定することもある。
1つまたは複数の例では、ワークフロー・ステップが実行されたか否かに関わらず、655に示されているように、ワークフロー実行者105が、更新された情報をデータ源130にプッシュする。例えば、ワークフロー・ステップの実行を続行しないとワークフロー実行者105が判定した場合、ワークフロー実行者105は、そのことをデータ源130に示すことができる。ワークフロー実行者105は、どの情報をプッシュするのかを本明細書に記載されたとおりに判断することができる。
ワークフロー・ステップに関する情報をデータ源にプッシュするとワークフロー実行者105が判定した場合、ワークフロー・アクセス・システム120は、660に示されているように、その情報を本明細書に記載されたとおりにデータ源に蓄積する。蓄積された情報をデータ源130にプッシュすることは、665に示されているように、プッシュ先の1つまたは複数のデータ源130の妥当性を確認することを含む。622に示されているように、データをプッシュする先のデータ源の妥当性を確認することを本明細書に記載されたとおりに実施することができる。1つまたは複数の例では、データをプッシュする先のデータ源が、データをそこからプルしているデータ源とは異なることがある。例えば、販売者データ源からデータをプルすることができるが、組織体極秘データの存在のため、データはドメスティック情報データ源にだけプッシュされる。
ワークフロー・アクセス・システム120は、ワークフロー・ステップに関連したデータの容易な探索および識別のため、そのデータを、ワークフロー・ステップの固有の識別子と一緒にデータ源130にプッシュする。1つまたは複数の例ではさらに、プッシュされるデータにワークフロー識別子がタグ付けされる。
一旦ワークフロー・ステップの実行が完了すると、この方法は、670に示されているように、ワークフローの実行が完了したのか、または実行すべきさらなるワークフロー・ステップが残っているのかを判定することを含む。追加のワークフロー・ステップが残っている場合には、ワークフロー全体の実行が完了するまで、次のワークフロー・ステップについてこの方法を繰り返す。ワークフロー全体の実行が完了した場合には、この方法が、675に示されているように、ワークフロー全体の実行に関連したデータをデータ源130にプッシュするかどうかをワークフロー実行者105に確認することを含む。情報をプッシュしないとワークフロー実行者105が判断した場合、この方法は完了となる。
データをデータ源130にプッシュする場合、ワークフロー・アクセス・システム120は、680に示されているように、1つまたは複数のデータ源130にプッシュするデータを本明細書に記載されたとおりに蓄積する。蓄積された情報をデータ源130にプッシュすることは、685に示されているように、プッシュ先の1つまたは複数のデータ源130の妥当性を確認することを含む。622に示されているように、データをプッシュする先のデータ源の妥当性を確認することを本明細書に記載されたとおりに実施することができる。1つまたは複数の例では、データをプッシュする先のデータ源が、データをそこからプルしているデータ源とは異なることがある。例えば、販売者データ源からデータをプルすることができるが、組織体極秘データの存在のため、データはドメスティック情報データ源にだけプッシュされる。ワークフロー・アクセス・システム120は、ワークフロー125に関連したデータの容易な探索および識別のため、そのデータを、ワークフローの固有の識別子と一緒にデータ源130にプッシュする。
したがって、この時点で、データ源130は、第2のワークフロー実行者が固有の識別子を使用して求めたときに検索することができる、ワークフロー125およびワークフロー・ステップに対する更新された情報を記憶している。したがって、第2のワークフロー実行者は、ワークフロー実行者105が提供した、信頼できるデータ源から検索された情報を使用してワークフロー125を実行するときに、情報に基づく判断を実施することができる。記憶されている情報の詳細は、プッシュするためにワークフロー実行者105が選択したものおよび(例えばソーシャル・メディア源などから)見つかったものに基づきさまざまである。したがって、本明細書に記載された技術的解決策は、ワークフロー実行者105が、ワークフローを実行するときにワークフロー・ステップの更新された最新のバージョンを有することを容易にし、この更新されたバージョンおよび関連情報は、信頼できるデータ源から検索されたものであり、ワークフロー販売者によって推奨されているものである。
さらに、ワークフロー125およびワークフロー125に関連した情報の動的変更に関する技術的課題は、ワークフロー125を更新する理由に関連した販売者更新情報を識別すること、ならびにワークフロー125をランするかどうかの判断をワークフロー実行者105が情報に基づいて実施することを可能にすること、さらに、ワークフロー125に関する認知推論情報をワークフロー・アクセス・システム120が自動的に検索および記憶することを可能にすることである。例えば、ワークフロー実行者105が、ワークフロー125のワークフロー・ステップの更新および実行を考えているとする。1つまたは複数の例において、ワークフロー実行者105は、更新された情報を検索すべきかどうか、もしくはワークフロー実行者105の環境でワークフロー・ステップを実行するかどうか、またはその両方を判定しなければならない。例えば、ワークフロー・ステップの更新もしくは実行またはその両方が、ワークフロー・ターゲット・システム110に対するワークフロー125全体に悪影響を与えることもあり、または何の影響も及ぼさないこともある。このことは、特に、他の環境よりもデータ保護の必要性が高い銀行、行政、保健医療産業などの環境で企業ソフトウェアをランしているワークフロー実行者にとって、よりいっそう重大な懸念であることがある。
本明細書に記載された技術的解決策は、ワークフロー実行システム100に対するさらなる強化として機械支援推論を提供することにより、このような技術的課題を解決する。1つまたは複数の例では、ワークフロー125もしくはいずれかのワークフロー・ステップまたはその両方を実行する(または実行をスキップする)かどうかをワークフロー実行者105が判定するために、機械支援ワークフロー125が追加的な認知推論強化を提供する。この推論/妥当性確認は、ワークフロー実行者105の環境でのワークフロー125全体の成功のためにそのワークフロー・ステップが必要なのかまたは必要でないのかをワークフロー実行者105が示すこと、さらにワークフロー実行者105に1つまたは複数の理由を提供することを容易にする。加えて、ワークフロー・ステップをランするか否かを同じワークフロー125の別のワークフロー実行者が判定することができるように、推論情報に従って更新された後のワークフロー125をワークフロー販売者107と共有することができる。したがって、この認知推論情報を精査したワークフロー実行者は、ワークフロー実行者の環境でそのワークフロー・ステップをなぜランするのかに関する更新された最新の情報を有する。
ワークフロー・ステップを更新するかどうか、もしくはワークフロー・ステップを実行するかどうか、またはその両方に関する推論を提供するために、ワークフロー・アクセス・システム120は、ワークフロー・ターゲット・システム110に対するワークフロー・ステップを更新し、次いで実行する理由に関連した販売者更新情報を識別する。加えて、ワークフロー・アクセス・システム120は、ワークフロー実行者105がワークフロー・ステップを実行しているときに、このような推論関連データを記録する。記録されたこのようなデータは、そのワークフロー・ステップを実行する次のワークフロー実行者がそのワークフロー・ステップを実際に実行するかどうかを情報に基づいて判断するのを助けるために、次のワークフロー実行者に提供される。したがって、ワークフロー実行者105は、ワークフロー・ステップを変更するかどうかまたは実行するかどうかを判断する前に、更新自体を受け取るだけでなく、ワークフロー・ターゲット・システム110に対する次のステップを更新するかどうか、もしくは実行するかどうか、またはその両方が情報に基づいて判断されるように、利用可能な最新の認知推論情報も受け取る。さらに、ワークフロー実行者105は、ワークフロー・ステップの実行を完了/スキップした後にワークフロー実行者自身の推論関係情報をデータ源130にプッシュすることによって、推論情報を装飾することもできる。
図7は、認知推論を提供する認知学習を使用してワークフローを実行する1つまたは複数の実施形態に基づく例示的な方法の流れ図を示す。この方法は、本明細書に記載されたワークフロー実行システム100またはその他のワークフロー実行システムによって実施することができる。この方法は、710に示されているように、ワークフロー・アクセス・システム120を介してワークフロー実行者105が実行するワークフロー125を選択することを含む。1つまたは複数の例では、この選択が、ワークフロー125を実行する通知を受け取ったことに応答して、またはワークフロー125自体を受け取ったことに応答して実施される。1つまたは複数の例では、ワークフロー125が多数のワークフローの中から選択される。ワークフローは販売者によってワークフロー実行者105に提供され、またはワークフロー実行者105が自分で書くこともできる。
この方法はさらに、715に示されているように、ワークフロー125を更新するかどうかをワークフロー実行者105に確認することを含む。ワークフロー実行者105が更新を開始する場合、この方法は、720に示されているように、ワークフロー125に対する情報を1つまたは複数のデータ源からプルすることを含む。この情報は、ワークフロー125の実行を継続するかどうかをワークフロー実行者105が判定することを容易にする可能性がある、ワークフロー125に対する更新情報および追加情報を含む。更新された情報をデータ源からプルすることは、本明細書に記載された1つまたは複数の操作を含む(図5参照)。この更新は、データ源を妥当性確認することを含むことができる(図6参照)。725に示されているように、ワークフロー125は、データ源130からプルされた更新された情報を使用して、本明細書に記載されたとおりに更新される。
この方法はさらに、730に示されているように、ワークフロー125からワークフロー・ステップを選択することによって、ワークフロー125の実行を開始することを含む。このワークフロー・ステップの実行は、上述のワークフロー更新の後でまたは上述のワークフロー更新なしで開始される。ワークフロー・ステップを実行する前に、この方法はさらに、735に示されているように、ワークフロー・ステップを更新するかどうかを判定することを含む。例えば、以前の予備更新(715)以降に、いずれかのデータ源130でワークフロー・ステップが更新されている可能性がある。その代わりに、またはそれに加えて、そのワークフロー・ステップの実行に関連するデータがデータ源130上で利用可能であることもありうる。例えば、この追加データは、販売者データ源、ドメスティック情報データ源、ソーシャル・メディア・データ源または他のデータ源130に追加された情報を含むことがある。この追加データは、ワークフロー・ステップの実行を続行するかどうかを判定するためにワークフロー実行者105が読むこともしくは分析することまたはその両方を実施することができる情報を示す。
ワークフロー実行者105がワークフロー・ステップの更新を開始する場合、この方法は、740に示されているように、1つまたは複数のデータ源130からワークフロー・ステップをプルし、更新することを含む。ワークフロー・ステップに対する更新された情報をプルし、ワークフロー・ステップを更新することは、本明細書に記載された1つまたは複数の操作を含む(例えば図5参照)。1つまたは複数の例では、データ源の妥当性確認が、本明細書に記載されたとおりに実施されうる。この時点で、ワークフロー実行者105は、ワークフロー・ステップが更新されていることを知っているため、ワークフロー実行者には、750に示されているように、なぜワークフロー実行者105がワークフロー・ターゲット・システム110でこの特定のワークフロー・ステップをランすべきなのかを記述した推論情報が提供される。
推論情報を提供することは、752に示されているように、1つまたは複数のデータ源130から、ワークフロー・ステップに関連した更新された情報からの認知推論情報を識別することを含む。1つまたは複数の例では、推論情報が、ワークフロー・ステップの更新を検索するデータ源とは異なるデータ源から識別される。1つまたは複数の例では、そのデータが推論関連データであることを示し、さらにそのデータがワークフロー・ステップの固有の識別子に関連づけられていることを示す識別タグを含むデータ源130に基づいて、推論情報が識別される。例えば、このデータは、ワークフロー・アクセス・システム120が推論に関連したデータを効率的に決定することを容易にするために、「実行推論(execution reasoning)」などのタグを含むことができる。さらにまた、推論情報は、データ源130からのデータを構文解析および意味解析することによって識別することができる。例えば、ワークフロー・アクセス・システム120は、例えば人工ニューラル・ネットワークなどの機械学習アルゴリズムを使用して、推論関連情報を提供するデータ源130からの更新された情報の断片を決定することができる。1つまたは複数の例では、ワークフロー・アクセス・システム120が、IBM(R)のIBM WATSON(R)またはそのような他のサービスなどのAPIを使用して、そのワークフロー・ステップ用のデータ源130上で利用可能な更新された情報から推論関連情報を決定する。IBM(R)およびIBM WATSON(R)は、世界中の多くの裁判所管轄区域で登録されているインターナショナル・ビジネス・マシーンズ・コーポレーション(International Business Machines Corporation)の商標である。
さらに、推論情報を提供することは、754に示されているように、ワークフロー・アクセス・システム120によってユーザ・インタフェース(UI)要素を生成すること、およびデータ源130からの推論関連情報の1つまたは複数の断片を表示することを含む。1つまたは複数の例では、UI要素が、ワークフロー実行者105に提示されているワークフロー・ステップの側に生成される。その代わりに、またはそれに加えて、UI要素は、ポップアップ・ウィンドウ、オーバレイ・ウィンドウなどの別の方式で生成される。1つまたは複数の例では、UI要素が、そのワークフローの実行がワークフロー販売者107によって推奨されているかどうかの指示を含む。さらに、1つまたは複数の例では、ワークフロー実行者105と実質的に同じワークフロー・ターゲット・システム環境、例えば同じバージョン、オペレーティング・システムなどを使用して別のワークフロー実行者によって提供された推論情報だけが提供されるように、ワークフロー実行者105に提供される推論情報がフィルタにかけられる。
推論情報はさらに、ワークフロー実行者105がなぜワークフロー・ステップの実行をスキップしたいのかに関する理由を含むことができる。例えば、推論情報は、ワークフロー・ステップを実行した後に別のワークフロー実行者が直面する技術的問題を示す情報を含むことができる。
さらにまた、推論情報は、時間情報に基づく理由を含むことができる。例えば、ワークフロー・ステップを実行する平均時間はX分であると、ワークフロー・アクセス・システム120が判定したとする。この時間の間、ワークフロー・ターゲット・システム110は使用できない。この瞬間にワークフロー・ステップを実行すると、多数のユーザがワークフロー・ターゲット・システム110を使用している高トラフィック時間の間、ワークフロー・ターゲット・システム110が使用できなくなる可能性がある。ワークフロー・アクセス・システム120は、ワークフロー・ターゲット・システム110の高トラフィック時間を、ワークフロー・ターゲット・システム110の履歴実行データに基づいて決定する。したがって、ワークフロー・アクセス・システム120は、高トラフィック時間との重なりが最小限になる推奨される時間がとれる後刻にワークフロー・ステップを実行するように、推論情報をワークフロー実行者105に提供する。
推論情報をワークフロー実行者105に提供することはさらに、756に示されているように、UI要素を介して推論情報を提示することを含む。745に示されているように、ワークフロー実行者105は、推論情報に基づいて、ワークフロー・ステップを実行すること、またはワークフロー・ステップを実行しないことができる。748に示されているように、ワークフロー実行者は、ワークフロー・ステップを実行し、それによってワークフロー・ターゲット・システム110の改変を達成することができる。この改変は、本明細書に記載されたハードウェア構成の改変もしくはソフトウェア構成の改変またはその両方を含むことがある。あるいは、745に示されているように、ワークフロー実行者105が、推論情報に基づいてワークフロー・ステップをスキップすると判定することもある。
1つまたは複数の例では、ワークフロー・ステップが実行されたか否かに関わらず、755に示されているように、ワークフロー実行者105が、更新された情報をデータ源130にプッシュできる。例えば、ワークフロー・ステップの実行を続行しないとワークフロー実行者105が判定した場合、ワークフロー実行者105は、そのことをデータ源130に示すことができる。ワークフロー実行者105は、どの情報をプッシュするのかを本明細書に記載されたとおりに判断することができる。
ワークフロー・ステップに関する情報をデータ源にプッシュするとワークフロー実行者105が判定した場合、ワークフロー・アクセス・システム120は、760に示されているように、データ源130にプッシュする情報を本明細書に記載されたとおりに蓄積する。蓄積された情報はさらに、ワークフロー実行者105からの、なぜ実行をスキップ/実施するのかのワークフロー実行者105の推論を含み、この推論は、例えばメモリ消費量、ダウン時間量、帯域幅所要量もしくは他のリソース、またはこれらの組合せなどのワークフロー・ステップの実行に必要な1つまたは複数のリソースの利用可能性/利用不能性に言及する。その代わりに、またはそれに加えて、推論情報は、ワークフローが容易/複雑であること、所定のステップ数よりも短い/長いこと、ワークフロー・ステップの格付けが所定のしきい値よりも低い/高いことなどの記述など、ワークフローの実行の難しさ/容易さを含むことができる。
1つまたは複数の例では、ワークフロー・アクセス・システム120が、ワークフロー実行者105によって提供された推論情報に、所定の推論タグを使用してタグ付けする。さらに、ワークフロー・アクセス・システム120は、765に示されているように、この情報を、ワークフロー・ステップの固有の識別子と一緒に1つまたは複数のデータ源130にプッシュする。1つまたは複数の例では、蓄積された情報をデータ源130にプッシュすることが、プッシュする先の1つまたは複数のデータ源130の妥当性を確認することを含む。1つまたは複数の例ではさらに、プッシュされるデータにワークフロー識別子がタグ付けされる。
ワークフロー・ステップの実行が完了した後、この方法は、770に示されているように、ワークフローの実行が完了したのか、または実行すべきさらなるワークフロー・ステップが残っているのかを判定することを含む。追加のワークフロー・ステップが残っている場合には、ワークフロー全体の実行が完了するまで、次のワークフロー・ステップについてこの方法を繰り返す。ワークフロー全体の実行が完了した場合には、この方法が、775に示されているように、ワークフロー全体の実行に関連したデータをデータ源130にプッシュするかどうかをワークフロー実行者105に確認することを含む。情報をプッシュしないとワークフロー実行者105が判断した場合、この方法は完了となる。
データをデータ源130にプッシュする場合、ワークフロー・アクセス・システム120は、780に示されているように、1つまたは複数のデータ源130にプッシュするデータを本明細書に記載されたとおりに蓄積する。蓄積された情報は、ワークフロー125全体に対する推論情報を含むことができる。ワークフロー・アクセス・システム120はさらに、785に示されているように、蓄積された情報をデータ源130にプッシュする。ワークフロー・アクセス・システム120は、ワークフロー125に関連したデータの容易な探索および識別のため、そのデータを、ワークフローの固有の識別子と一緒にデータ源130にプッシュする。
したがって、この時点で、データ源130は、第2のワークフロー実行者が固有の識別子を使用して求めたときに検索することができる、ワークフロー125およびワークフロー・ステップに対する更新された推論情報を記憶している。したがって、第2のワークフロー実行者は、ワークフロー実行者105が提供した、データ源130から検索されたこの情報を使用してワークフロー125を実行するときに、情報に基づく判断を実施することができる。したがって、本明細書に記載された技術的解決策は、ワークフロー実行者105が、ワークフローを実行するときにワークフロー・ステップの更新された最新のバージョンを有することを容易にし、この更新されたバージョンおよび関連情報は、信頼できるデータ源から検索されたものであり、さらなる推論情報は、ワークフロー・ステップを実行するかどうかをワークフロー実行者105が判断することを容易にする。
さらにまた、ワークフロー125などの機械支援ワークフローの実行に関する技術的課題は、ワークフロー・ステップを更新し、次いでランすることを考えているワークフロー実行者105が、ワークフロー・ステップの実行を完了するための情報もしくはパラメータ・セットアップまたはその両方を自分が有しているのかどうかを知らないことである。さらに、ワークフロー実行者105は、ワークフロー・ステップもしくはワークフローまたはその両方がワークフロー・ターゲット・システム110のかなりのダウン時間に関わる場合に特に、ワークフロー・ステップの実行が、ワークフロー・ターゲット・システム110に対するワークフロー全体に悪影響を与えるのかどうか、またはワークフローの結果が何の影響も持たず、ワークフローを実行する時間および労力が無駄になるのかどうかも知らない。このことは、ワークフロー実行者、特に、システム・ダウン時間の回避が極めて重要である銀行、行政、保健医療などの環境で企業ソフトウェアをランしているワークフロー実行者にとって重大な懸念である。
例えば、ワークフロー実行者105は、ステップを実行する前に最新かつ最大の情報を有していることを望み、本明細書に記載されたワークフロー実行システム100は、ワークフロー実行者105がワークフロー・ステップの実行を開始するまで、ワークフロー実行者105が、データ源130に蓄積した最新の追加情報を有することを容易にする。しかしながら、このような最新情報の使用は、そのような情報がワークフロー実行者105に当てはまらない可能性またはそのような情報がワークフロー実行者105には不要もしくは有害である可能性を増大させることがある。
本明細書に記載された技術的解決策は、更新された情報がワークフロー実行者のワークフロー・ターゲット・システム110に影響を及ぼすのかどうかを判定する目的、およびどのような影響を及ぼすのかを決定する目的にワークフロー実行者105が利用できるステップ後ブラウジング能力またはプレビュー機能を提供するようワークフロー実行システム100を強化することにより、このような技術的課題を解決する。加えて、そのワークフロー・ステップをランするか否かを同じワークフロー125の別のユーザが判断する際に役立つように、ワークフロー・プレビューおよびワークフロー・ステップが実行された後の実際の結果を、ワークフロー販売者107およびそれらの別のユーザと共有することができる。したがって、このような認知プレビュー情報を精査したユーザは、ユーザの環境でそのワークフロー・ステップをランするべきか否かに関する更新された最新の情報を有し、他のユーザのステップ・プレビューに寄与し、これを改良することができる。
1つまたは複数の例では、ワークフロー・ターゲット・システム110に対する実行のワークフロー・ステップ・プレビューを提供する販売者更新情報が、ワークフロー・アクセス・システム120によって識別および記録される。このようなプレビュー情報は、ワークフローを実行するワークフロー実行者105に提供され、したがって、この情報は、ワークフロー・ターゲット・システム110に対するワークフロー・ステップを実際に実行するかどうかをワークフロー実行者105が情報に基づいて判断するのを助ける更新された情報を供給する。1つまたは複数の例では、ワークフロー・アクセス・システム120が、プレビュー情報を識別するために、1つまたは複数のデータ源130にプッシュされているこの更新情報を監視する。
プレビュー情報は、ワークフロー・ステップを実行するのに必要なリソースなどの情報、例えば時間、通信帯域幅、メモリ量、ストレージ・ディスク空間量、人数、1つまたは複数の特定のファイル、1つまたは複数の特定の工具(ねじ回しなど)、1つまたは複数の特定のハードウェア構成要素などの情報を含むことができる。さらに、プレビュー情報は、ワークフロー・ステップの実行前または実行中に実施するパラメータ設定などの情報、例えばレジストリ設定、アカウント許可設定などの情報を含むことができる。プレビュー情報は、電子テキストまたは画像、例えばワークフロー・ステップから実施されている1つまたは複数のタスクのスクリーン・ショットの形態をとることができる。1つまたは複数の例では、プレビュー情報が、実施されているワークフロー・ステップのそれぞれの操作を示す一組のスクリーン・ショット(または画像)を含む。ワークフロー・アクセス・システム120は、ワークフロー・ステップが実行されているときにそれらのスクリーン・ショットを捕捉し、ワークフロー・ステップ実行の完了後に、捕捉したスクリーン・ショットをデータ源130にプッシュする。効率的なアクセスのため、捕捉したスクリーン・ショットには、ワークフロー・ステップおよびワークフロー125の固有の識別子とともに、プレビュー情報である旨が記入される。
その代わりに、またはそれに加えて、ワークフロー・アクセス・システム120は、ワークフロー・ステップ実行の仮想シミュレーションを生成する。1つまたは複数の例では、ワークフロー・アクセス・システム120が、データ源から検索された更新された情報からの1つまたは複数のパラメータを使用した、ワークフロー・ターゲット・システム120の仮想機械複製を実行する。ワークフロー実行者105は、この仮想機械でワークフロー・ステップの結果をプレビューすることができ、そのプレビューに基づいて、ワークフロー・ターゲット・システム110でワークフロー・ステップを実行するかどうかを判断することができる。したがって、この技術的解決策は、更新された情報を使用して、ワークフロー125の1つまたは複数のワークフロー・ステップの実行をプレビューすることを容易にし、したがって、ワークフロー・ステップの実際の実行を続行するかどうかをワークフロー実行者105が判定することを容易にする。
図8は、ワークフロー・ステップ・プレビューを提供する認知学習を使用してワークフローを実行する1つまたは複数の実施形態に基づく例示的な方法の流れ図を示す。この方法は、本明細書に記載されたワークフロー実行システム100またはその他のワークフロー実行システムによって実施することができる。この方法は、810に示されているように、ワークフロー・アクセス・システム120を介してワークフロー実行者105が実行するワークフロー125を選択することを含む。1つまたは複数の例では、この選択が、ワークフロー125を実行する通知を受け取ったことに応答して、またはワークフロー125自体を受け取ったことに応答して実施される。1つまたは複数の例では、ワークフロー125が多数のワークフローの中から選択される。ワークフローは販売者によってワークフロー実行者105に提供され、またはワークフロー実行者105が自分で書くこともできる。
この方法はさらに、815に示されているように、ワークフロー125を更新するかどうかをワークフロー実行者105に確認することを含む。ワークフロー実行者105が更新を開始する場合、この方法は、820に示されているように、ワークフロー125に対する情報を1つまたは複数のデータ源からプルすることを含む。この情報は、ワークフロー125の実行を継続するかどうかをワークフロー実行者105が判定することを容易にする可能性がある、ワークフロー125に対する更新情報および追加情報を含む。更新された情報をデータ源からプルすることは、本明細書に記載された1つまたは複数の操作を含む(図5参照)。この更新は、データ源を妥当性確認することを含むことができる(図6参照)。825に示されているように、ワークフロー125は、データ源130からプルされた更新された情報を使用して、本明細書に記載されたとおりに更新される。
この方法はさらに、830に示されているように、ワークフロー125からワークフロー・ステップを選択することによって、ワークフロー125の実行を開始することを含む。このワークフロー・ステップの実行は、上述のワークフロー更新の後でまたは上述のワークフロー更新なしで開始される。ワークフロー・ステップを実行する前に、この方法はさらに、835に示されているように、ワークフロー・ステップを更新するかどうかを判定することを含む。例えば、以前の予備更新(815)以降に、いずれかのデータ源130でワークフロー・ステップが更新されている可能性がある。その代わりに、またはそれに加えて、そのワークフロー・ステップの実行に関連するデータがデータ源130上で利用可能であることもありうる。例えば、この追加データは、販売者データ源、ドメスティック情報データ源、ソーシャル・メディア・データ源または他のデータ源130に追加された情報を含むことがある。この追加データは、ワークフロー・ステップの実行を続行するかどうかを判定するためにワークフロー実行者105が読むこともしくは分析することまたはその両方を実施することができる情報を示す。
ワークフロー実行者105がワークフロー・ステップの更新を開始する場合、この方法は、840に示されているように、1つまたは複数のデータ源130からワークフロー・ステップをプルし、更新することを含む。ワークフロー・ステップに対する更新された情報をプルし、ワークフロー・ステップを更新することは、本明細書に記載された1つまたは複数の操作を含む(例えば図5参照)。1つまたは複数の例では、データ源の妥当性確認が、本明細書に記載されたとおりに実施される。この時点で、ワークフロー実行者105は、ワークフロー・ステップが更新されていることを知っているため、ワークフロー実行者には、850に示されているように、この更新された特定のワークフロー・ステップをワークフロー・ターゲット・システム110で実行するためのプレビュー情報が提供される。
プレビュー情報を提供することは、852に示されているように、1つまたは複数のデータ源130から、ワークフロー・ステップに関連した更新された情報からのプレビュー情報を識別することを含む。1つまたは複数の例では、プレビュー情報が、ワークフロー・ステップの更新を検索するデータ源とは異なるデータ源から識別されうる。1つまたは複数の例では、そのデータがプレビュー関連データであることを示し、さらにそのデータがワークフロー・ステップの固有の識別子に関連づけられていることを示す識別タグを含むデータ源130に基づいて、プレビュー情報が識別される。例えば、このデータは、ワークフロー・アクセス・システム120が、ワークフロー・ステップ実行のプレビューに関連したデータを効率的に決定することを容易にするために、「実行プレビュー(execution preview)」などのタグを含むことができる。さらにまた、プレビュー情報は、データ源130からのデータを構文解析および意味解析することによって識別することができる。例えば、ワークフロー・アクセス・システム120は、例えば人工ニューラル・ネットワークなどの機械学習アルゴリズムを使用して、プレビュー関連情報を提供するデータ源130からの更新された情報の断片を決定することができる。1つまたは複数の例では、ワークフロー・アクセス・システム120が、IBM WATSON(R)またはそのような他のサービスなどのAPIを使用して、そのワークフロー・ステップ用のデータ源130上で利用可能な更新された情報からプレビュー関連情報を決定する。
さらに、プレビュー情報を提供することは、854に示されているように、ワークフロー・アクセス・システム120によってワークフロー・ターゲット・システム110のシミュレーションを生成すること、およびデータ源からの識別されたプレビュー情報のデータを使用して、ワークフロー・ステップの実行のプレビューを表示することを含む。1つまたは複数の例では、このシミュレーションが、ワークフロー・ターゲット・システム110の複製を使用して仮想機械を実行することを含む。その代わりに、またはそれに加えて、このシミュレーションは、プレビュー情報から受け取った1つまたは複数のスクリーン・ショットからなる一連のスクリーン・ショットを含むことができる。その代わりに、またはそれに加えて、このシミュレーションは、プレビュー情報に基づいて所定のスクリーン・ショットを変更することにより生成された1つまたは複数の画像を含むことができる。例えば、ワークフロー・アクセス・システム120は、ワークフロー・ターゲット・システム110のテンプレート・スクリーン・ショットを含むことができ、このテンプレート・スクリーン・ショットは、「このワークフロー・ステップに必要なストレージ空間:XXXX」などを含み、XXXXは、プレビュー情報からの結果値で置き換えられる。1つまたは複数の例では、このシミュレーションが、テキスト・ベースであり、画像ベースではなく、ここでテンプレートはテキスト・ベース、または両方の組合せである。
1つまたは複数の例では、856に示されているように、このシミュレーションがワークフロー実行者105に提示される。この提示はユーザ・インタフェース要素を含むことができ、このユーザ・インタフェース要素は、ワークフロー・ステップの1つまたは複数の要件および更新された情報に従って実行されているワークフロー・ステップの中間結果をプレビューするために、ワークフロー実行者105が、ワークフロー・ステップの1つまたは複数のサブタスクの中で前進(および後退)することを容易にする。その代わりに、またはそれに加えて、プレビュー情報のこの提示は、一連の画像またはテキストを提示することを含むことができる。
845に示されているように、ワークフロー実行者105は、プレビュー情報に基づいて、ワークフロー・ステップを実行すること、またはワークフロー・ステップを実行しないことができる。848に示されているように、ワークフロー実行者は、ワークフロー・ステップを実行し、それによってワークフロー・ターゲット・システム110の改変を達成することができる。この改変は、本明細書に記載されたハードウェア構成の改変もしくはソフトウェア構成の改変またはその両方を含むことがある。あるいは、845に示されているように、ワークフロー実行者105が、プレビュー情報に基づいてワークフロー・ステップをスキップすると判定することもある。
1つまたは複数の例では、ワークフロー・ステップが実行されたか否かに関わらず、855に示されているように、ワークフロー実行者105が、更新された情報をデータ源130にプッシュできる。例えば、ワークフロー・ステップの実行を続行しないとワークフロー実行者105が判定した場合、ワークフロー実行者105は、そのことをデータ源130に示すことができる。ワークフロー実行者105は、どの情報をプッシュするのかを本明細書に記載されたとおりに判断することができる。
ワークフロー・ステップに関する情報をデータ源にプッシュするとワークフロー実行者105が判定した場合、ワークフロー・アクセス・システム120は、860に示されているように、データ源にプッシュする情報を本明細書に記載されたとおりに蓄積する。蓄積された情報はさらに、ワークフロー実行者105からの、ワークフロー・ステップを実行したときのワークフロー実行者105のスクリーン・ショットおよびパラメータ値を含む。1つまたは複数の例では、ワークフロー・アクセス・システム120が、ワークフロー実行者105がワークフロー・ステップを実行しているときにプレビュー情報を監視および捕捉し、プレビュー情報をプッシュするようワークフロー実行者105が命じたときに、捕捉したプレュー情報を1つまたは複数のデータ源130にアップロードする。例えば、ワークフロー・アクセス・システム120は、ワークフロー・ステップが実行されているときにスクリーン・ショットを捕捉し、ワークフロー・ステップ実行の完了後に、捕捉したスクリーン・ショットをデータ源130にプッシュする。効率的なアクセスのため、捕捉したスクリーン・ショットには、ワークフロー・ステップおよびワークフロー125の固有の識別子とともに、プレビュー情報である旨が記入される。1つまたは複数の例では、ワークフロー実行者の組織体の外部のデータ源130にプレビュー情報をアップロードする前に、ワークフロー・アクセス・システム120が、プレビュー情報から極秘データを除去する。
1つまたは複数の例では、ワークフロー・アクセス・システム120が、ワークフロー実行者105によって提供されたプレビュー情報に、所定のプレビュー・タグを使用してタグ付けする。さらに、ワークフロー・アクセス・システム120は、865に示されているように、プレビュー情報を、ワークフロー・ステップの固有の識別子と一緒に1つまたは複数のデータ源130にプッシュする。1つまたは複数の例では、蓄積された情報をデータ源130にプッシュすることが、プッシュする先の1つまたは複数のデータ源130の妥当性を確認することを含む。1つまたは複数の例ではさらに、プッシュされるデータにワークフロー識別子がタグ付けされる。
ワークフロー・ステップの実行が完了した後、この方法は、870に示されているように、ワークフローの実行が完了したのか、または実行すべきさらなるワークフロー・ステップが残っているのかを判定することを含む。追加のワークフロー・ステップが残っている場合には、ワークフロー全体の実行が完了するまで、次のワークフロー・ステップについてこの方法を繰り返す。ワークフロー全体の実行が完了した場合には、この方法が、875に示されているように、ワークフロー全体の実行に関連したデータをデータ源130にプッシュするかどうかをワークフロー実行者105に確認することを含む。情報をプッシュしないとワークフロー実行者105が判断した場合、この方法は完了となる。
データをデータ源130にプッシュする場合、ワークフロー・アクセス・システム120は、880に示されているように、1つまたは複数のデータ源130にプッシュするデータを本明細書に記載されたとおりに蓄積する。蓄積された情報は、ワークフロー125全体に対するプレビュー情報を含むことができる。例えば、プレビュー情報は、それぞれのワークフロー・ステップに対するプレビュー情報のサブセット、またはそれぞれのワークフロー・ステップに対する全てのプレビュー情報の集合を含むことができる。ワークフロー・アクセス・システム120はさらに、885に示されているように、蓄積された情報をデータ源130にプッシュする。ワークフロー・アクセス・システム120は、ワークフロー125に関連したデータの容易な探索および識別のため、そのデータを、ワークフローの固有の識別子と一緒にデータ源130にプッシュする。
したがって、この時点で、データ源130は、第2のワークフロー実行者が固有の識別子を使用して求めたときに検索することができる、ワークフロー125およびワークフロー・ステップに対する更新されたプレビュー情報を記憶している。したがって、第2のワークフロー実行者は、ワークフロー実行者105が提供した、データ源130から検索されたプレビュー情報を使用してワークフロー125を実行するときに、情報に基づく判断を実施することができる。したがって、本明細書に記載された技術的解決策は、ワークフロー実行者105が、ワークフローを実行するときにワークフロー・ステップの更新された最新のバージョンを有することを容易にし、この更新されたバージョンおよび関連情報は、信頼できるデータ源から検索されたものであり、さらなるプレビュー情報は、ワークフローを実行するかどうかをワークフロー実行者105が判断することを容易にする。
機械支援ワークフロー実行に関するさらに別の技術的課題は、更新された情報もしくは更新されたワークフロー・ステップまたはその両方がワークフロー実行者105のワークフロー・ターゲット・システム環境で首尾よく実行されることに、ワークフロー・ステップを実行する前のワークフロー実行者105が確信を持てないということである。このことは、更新もしくは他の情報またはその両方を販売者源以外の源から検索するときの重大な懸念である。さらに、このことは、特に、ワークフロー実行に起因するダウン時間が生命に関わったりまたは大きな出費につながったりする可能性がある銀行、行政ならびに保健医療および他の同様の産業などの環境の企業システムであるワークフロー・ターゲット・システムでこのようなワークフローを実行するときに重大な懸念となりうる。
例えば、ワークフロー・ステップを実行する前にワークフロー・ステップに関する最新情報を持っていたいと望んでいるワークフロー実行者105が、市場に継続的に蓄積している情報を使用してワークフロー・ステップを更新する場合には、更新されたワークフロー・ステップがワークフロー実行者105の環境に関して機能しない可能性が増大し、特に、その更新が販売者源以外の源(信頼できるデータ源ではある)から受け取ったものである場合にはなおさらである。したがって、ワークフロー・ステップの実行がワークフロー・ターゲット・システム110に害を及ぼさないことをワークフロー実行者105に対して保証するために、ワークフロー・ステップをランしているワークフロー実行者105に、ワークフロー・ステップを実行している別のユーザからのステップ試験結果または履歴情報を提供するという技術的課題が存在する。さらに、ワークフロー実行者105がワークフロー125を(成功または失敗に関わらず)実行したときに、ワークフロー実行者105からの実行情報によってワークフロー125を装飾するという技術的課題も存在する。この装飾は、ワークフロー・ステップをランする他のユーザを前もって助けるために、ステップ結果情報を、ワークフロー販売者もしくはワークフロー125の他のユーザあるいはその両方と共有することを含むことができる。この共有情報は、更新後のワークフロー・ステップを実行した結果である有害な問題またはエラー(例えば限定セキュリティ更新)に関する任意の情報を含むことができる。
これらの技術的課題は、ワークフロー・ステップの実行によるステップ結果情報をワークフロー実行者105が別の実行者から受け取ることを容易にすることによって、システム100によって解決される。したがって、最新情報に基づくこの結果情報は、ワークフロー実行者105のワークフロー・ターゲット・システム環境でのワークフロー・ステップのランが成功する確率を増大させるのに役立つ。システム100はさらに、ユーザが、別のユーザの同じワークフロー・ステップ結果情報に寄与し、これを改良することを容易にする。
1つまたは複数の例では、ワークフロー・ターゲット・システム110に対するワークフロー・ステップ結果およびワークフロー・ステップの実行に関連する販売者更新情報が記録され、ワークフロー実行者105に対して推奨される。この推奨は、ワークフロー実行者105が使用している環境でワークフロー・ステップがうまくランするか否かをワークフロー実行者が情報に基づいて判断することを容易にする情報を供給することを含む。
データ源のアクセス情報がワークフロー・アクセス・システム120に提供されていることによって、またはサーチ・エンジンを使用するなどして新たなデータ源130の発見を実施することによって、ワークフロー・アクセス・システム120は、1つまたは複数のデータ源130から、ワークフロー・ステップに関連した更新情報を見つけ出す。
データ源130は、ワークフロー・アクセス・システム110を記憶し、ワークフロー・アクセス・システム110を提供する。例えば、ワークフロー・アクセス・システム120は、ワークフロー125もしくはワークフロー・ステップあるいはその両方に関して記憶された最新の認知ワークフロー・ステップ結果情報を1つまたは複数のデータ源130から検索する。このステップ結果情報は、例えば、ワークフロー・ステップが有効であることの保証格付け、その環境で成功したステップ実行の数などを含む。ワークフロー・アクセス・システム120は、ワークフロー125の実行中のある特定の時点で、ワークフロー125もしくは特定のワークフロー・ステップまたはその両方に対する更新を要求する。1つまたは複数の例では、ワークフロー125もしくはワークフロー・ステップまたはその両方が、実行前に更新が探索されることを指示する。これに応答して、ワークフロー・アクセス・システム120は、固有の識別子を使用した、適切なデータ源130との通信を開始する。
したがって、ワークフロー更新自体に加えて、ワークフロー・ターゲット・システム110に対してワークフロー・ステップをランするかどうかをそのステップの過去の試験結果の認知結果情報に基づいて判断する目的に利用可能な全ての可能な認知ステップ試験結果情報を有することで、ワークフロー実行者105は安心する。さらに、ワークフロー・ステップが完了した後、1つまたは複数の例では、ワークフロー・アクセス・システム120が、ユーザの合意の下に、ワークフロー実行者105による実行に基づく新たなワークフロー・ステップ結果情報を、1つまたは複数のデータ源130にプッシュする。1つまたは複数の例では、結果データのタイプに基づいて、そのような結果の適切な部分が、対応するデータ源にプッシュされる。例えば、ワークフロー実行者105の組織体内のデータ源130は「ドメスティック情報」にプッシュされる。
図9は、ワークフロー・ステップ結果情報を提供する認知学習を使用してワークフローを実行する本発明の1つまたは複数の実施形態に基づく例示的な方法の流れ図を示す。この方法は、本明細書に記載されたワークフロー実行システム100またはその他のワークフロー実行によって実施することができる。この方法は、910に示されているように、ワークフロー・アクセス・システム120を介してワークフロー実行者105が実行するワークフロー125を選択することを含む。1つまたは複数の例では、この選択が、ワークフロー125を実行する通知を受け取ったことに応答して、またはワークフロー125自体を受け取ったことに応答して実施される。1つまたは複数の例では、ワークフロー125が多数のワークフローの中から選択される。ワークフローは販売者によってワークフロー実行者105に提供され、またはワークフロー実行者105が自分で書くこともできる。
この方法はさらに、915に示されているように、ワークフロー125を更新するかどうかをワークフロー実行者105に確認することを含む。ワークフロー実行者105が更新を開始する場合、この方法は、920に示されているように、ワークフロー125に対する情報を1つまたは複数のデータ源からプルすることを含む。この情報は、ワークフロー125の実行を継続するかどうかをワークフロー実行者105が判定することを容易にする可能性がある、ワークフロー125に対する更新情報および追加情報を含む。更新された情報をデータ源からプルすることは、本明細書に記載された1つまたは複数の操作を含む(図5参照)。この更新は、データ源を妥当性確認することを含むことができる(図6参照)。925に示されているように、ワークフロー125は、データ源130からプルされた更新された情報を使用して、本明細書に記載されたとおりに更新される。
この方法はさらに、930に示されているように、ワークフロー125からワークフロー・ステップを選択することによって、ワークフロー125の実行を開始することを含む。このワークフロー・ステップの実行は、上述のワークフロー更新の後でまたは上述のワークフロー更新なしで開始される。ワークフロー・ステップを実行する前に、この方法はさらに、935に示されているように、ワークフロー・ステップを更新するかどうかを判定することを含む。例えば、以前の予備更新(915)以降に、いずれかのデータ源130でワークフロー・ステップが更新されている可能性がある。その代わりに、またはそれに加えて、そのワークフロー・ステップの実行に関連するデータがデータ源130上で利用可能であることもありうる。例えば、この追加データは、販売者データ源、ドメスティック情報データ源、ソーシャル・メディア・データ源または他のデータ源130に追加された情報を含むことがある。この追加データは、ワークフロー・ステップの実行を続行するかどうかを判定するためにワークフロー実行者105が読むこともしくは分析することまたはその両方を実施することができる情報を示す。
ワークフロー実行者105がワークフロー・ステップの更新を開始する場合、この方法は、940に示されているように、1つまたは複数のデータ源130からワークフロー・ステップをプルし、更新することを含む。ワークフロー・ステップに対する更新された情報をプルし、ワークフロー・ステップを更新することは、本明細書に記載された1つまたは複数の操作を含む(例えば図5参照)。1つまたは複数の例では、データ源の妥当性確認が、本明細書に記載されたとおりに実施される。この時点で、ワークフロー実行者105は、ワークフロー・ステップが更新されていることを知っているため、ワークフロー実行者には、950に示されているように、この更新された特定のワークフロー・ステップをワークフロー・ターゲット・システム110で実行したステップ結果情報が提供される。
結果情報を提供することは、952に示されているように、1つまたは複数のデータ源130から、ワークフロー・ステップに関連した更新された情報からの結果情報を識別することを含む。1つまたは複数の例では、結果情報が、ワークフロー・ステップの更新を検索するデータ源とは異なるデータ源から識別される。1つまたは複数の例では、そのデータが結果関連データであることを示し、さらにそのデータがワークフロー・ステップの固有の識別子に関連づけられていることを示す識別タグを含むデータ源130に基づいて、結果情報が識別される。例えば、このデータは、ワークフロー・アクセス・システム120が、ワークフロー・ステップ実行の結果に関連したデータを効率的に決定することを容易にするために、「実行結果(execution results)」などのタグを含むことができる。さらにまた、結果情報は、データ源130からのデータを構文解析および意味解析することによって識別することができる。例えば、ワークフロー・アクセス・システム120は、例えば人工ニューラル・ネットワークなどの機械学習アルゴリズムを使用して、結果関連情報を提供するデータ源130からの更新された情報の断片を決定することができる。1つまたは複数の例では、ワークフロー・アクセス・システム120が、IBM WATSON(R)またはそのような他のサービスなどのAPIを使用して、そのワークフロー・ステップ用のデータ源130上で利用可能な更新された情報から結果関連情報を決定することができる。
さらに、ワークフロー・アクセス・システムは、データ源からの利用可能な結果関連情報に基づいて、ワークフローの結果情報を生成する。例えば、結果情報は、別のユーザによって実行されたワークフロー・ステップの回数、ワークフロー・ステップがスキップされた回数、ワークフロー・ステップに起因するエラーが報告された回数、開始後にワークフロー・ステップの実行が完了しなかった回数、およびワークフロー・ステップの実行に関する他の同様の情報を含むことができる。その代わりに、またはそれに加えて、結果情報は、例えば実行の容易さ、実行に必要な時間、実行に必要なリソース、ワークフロー・ステップの全体的な格付けなど、別のユーザによって提供されたワークフロー・ステップの実行に関係した格付けを含むことができる。
さらに、結果情報を提供することは、954に示されているように、データ源130からの結果関連情報に基づいて生成された結果情報を表示するためのユーザ・インタフェース(UI)要素をワークフロー・アクセス・システム120によって生成することを含む。1つまたは複数の例では、UI要素が、ワークフロー実行者105に提示されているワークフロー・ステップの側に生成される。その代わりに、またはそれに加えて、UI要素は、ポップアップ・ウィンドウ、オーバレイ・ウィンドウなどの別の方式で生成される。1つまたは複数の例では、UI要素が、ワークフロー・アクセス・システム120によって生成された結果情報の他に、そのワークフローの実行がワークフロー販売者107によって推奨されているかどうかの指示を含む。さらに、1つまたは複数の例では、ワークフロー実行者105と実質的に同じワークフロー・ターゲット・システム環境、例えば同じバージョン、オペレーティング・システムなどを使用して別のワークフロー実行者によって提供された結果情報だけが提供されるように、ワークフロー実行者105に提供される結果情報がフィルタにかけられる。
結果情報をワークフロー実行者105に提供することはさらに、956に示されているように、UI要素を介して結果情報を提示することを含む。945に示されているように、ワークフロー実行者105は、結果情報に基づいて、ワークフロー・ステップを実行すること、またはワークフロー・ステップを実行しないことができる。948に示されているように、ワークフロー実行者は、ワークフロー・ステップを実行し、それによってワークフロー・ターゲット・システム110の改変を達成することができる。この改変は、本明細書に記載されたハードウェア構成の改変もしくはソフトウェア構成の改変またはその両方を含むことがある。あるいは、945に示されているように、ワークフロー実行者105が、結果情報に基づいてワークフロー・ステップをスキップすると判定することもある。
1つまたは複数の例では、ワークフロー・ステップが実行されたか否かに関わらず、955に示されているように、ワークフロー実行者105が、更新された情報をデータ源130にプッシュすることができる。例えば、ワークフロー・ステップの実行を続行しないとワークフロー実行者105が判定した場合、ワークフロー実行者105は、そのことをデータ源130に示すことができる。ワークフロー実行者105は、どの情報をプッシュするのかを本明細書に記載されたとおりに判断することができる。
ワークフロー・ステップに関する情報をデータ源にプッシュするとワークフロー実行者105が判定した場合、ワークフロー・アクセス・システム120は、960に示されているように、データ源にプッシュする情報を本明細書に記載されたとおりに蓄積する。蓄積された情報はさらに、ワークフロー実行者105からの、ワークフロー・ステップ実行のワークフロー実行者105の格付けを含み、この格付けは例えば、ワークフローが容易/複雑であること、所定のステップ数よりも短い/長いこと、ワークフロー・ステップの格付けが所定のしきい値よりも低い/高いことなどの記述など、ワークフロー・ステップの実行の難しさ/容易さに基づく。さらに、プッシュされる結果情報は、そのワークフロー・ステップが実行されたのかまたはスキップされたのか、実行時間、実行に使用されるメモリ、実行に使用されるディスク空間などの客観的データを含むことができる。
1つまたは複数の例では、ワークフロー・アクセス・システム120が、ワークフロー実行者105によって提供された結果情報に、所定の結果タグを使用してタグ付けする。さらに、ワークフロー・アクセス・システム120は、965に示されているように、この情報を、ワークフロー・ステップの固有の識別子と一緒に1つまたは複数のデータ源130にプッシュする。1つまたは複数の例では、蓄積された情報をデータ源130にプッシュすることが、プッシュする先の1つまたは複数のデータ源130の妥当性を確認することを含む。1つまたは複数の例ではさらに、プッシュされるデータにワークフロー識別子がタグ付けされる。
ワークフロー・ステップの実行が完了した後、この方法は、970に示されているように、ワークフローの実行が完了したのか、または実行すべきさらなるワークフロー・ステップが残っているのかを判定することを含む。追加のワークフロー・ステップが残っている場合には、ワークフロー全体の実行が完了するまで、次のワークフロー・ステップについてこの方法を繰り返す。ワークフロー全体の実行が完了した場合には、この方法が、975に示されているように、ワークフロー全体の実行に関連したデータをデータ源130にプッシュするかどうかをワークフロー実行者105に確認することを含む。情報をプッシュしないとワークフロー実行者105が判断した場合、この方法は完了となる。
データをデータ源130にプッシュする場合、ワークフロー・アクセス・システム120は、980に示されているように、1つまたは複数のデータ源130にプッシュするデータを本明細書に記載されたとおりに蓄積する。蓄積された情報は、ワークフロー全体の格付け/情報など、ワークフロー125全体に対する結果情報を含むことができる。ワークフロー・アクセス・システム120はさらに、985に示されているように、蓄積された情報をデータ源130にプッシュする。ワークフロー・アクセス・システム120は、ワークフロー125に関連したデータの容易な探索および識別のため、そのデータを、ワークフローの固有の識別子と一緒にデータ源130にプッシュする。
したがって、この時点で、データ源130は、第2のワークフロー実行者が固有の識別子を使用して求めたときに検索することができる、ワークフロー125およびワークフロー・ステップに対する更新された結果情報を記憶している。したがって、第2のワークフロー実行者は、ワークフロー実行者105が提供した、データ源130から検索されたこの情報を使用してワークフロー125を実行するときに、情報に基づく判断を実施することができる。したがって、本明細書に記載された技術的解決策は、ワークフロー実行者105が、ワークフローを実行するときにワークフロー・ステップの更新された最新のバージョンを有することを容易にし、この更新されたバージョンおよび関連情報は、信頼できるデータ源から検索されたものであり、さらなる結果情報は、ワークフロー・ステップを実行するかどうかを別のユーザからの結果および格付けに基づいてワークフロー実行者105が判断することを容易にする。
本明細書に記載された技術的解決策は、最新の更新および情報を使用して機械支援ワークフローを実行することを容易にし、さらに、ワークフロー実行者の組織体の内部または外部の別のユーザ、ワークフローの販売者/作成者、実行前のワークフロー実行者自身、インターネット(ソーシャル・メディア、ブログ、フォーラム、記事など)および他のタイプのデータ源からの関連情報によってワークフロー実行者をさらに支援することを容易にする。1つまたは複数の例では、ワークフロー実行者もしくは販売者またはその両方が、識別するデータ源を識別する。1つまたは複数の例では、アクセスされたデータ源が信頼できる源として認証され、その後に、それらのデータ源からの情報にアクセスする。さらにまた、本明細書に記載された技術的解決策は、ワークフロー実行者が、ワークフローの実行中に生成された情報でデータ源をさらに装飾することも容易にする。したがって、本明細書に記載された技術的解決策は、ワークフローおよびワークフロー・ステップを動的に更新すること、ならびにワークフロー・ステップに対する更新された最新情報を1つまたは複数のデータ源から提供することによって、さらには、更新された追加情報をワークフロー・ステップの実行の完了に応答してデータ源にプッシュすることを容易にすることによって、機械支援ワークフローを実行するシステムなどのコンピュータ技術の向上を提供する。
本発明の技術的解決策は、インテグレーションの任意の可能な技術的詳細レベルにおいて、システム、方法もしくはコンピュータ・プログラム製品、またはこれらの組合せとすることができる。このコンピュータ・プログラム製品は、本発明の技術的解決策の諸態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことができる。
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は例えば、限定はされないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたはこれらの適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リードオンリー・メモリ(ROM)、消去可能なプログラマブル・リードオンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リードオンリー・メモリ(CD−ROM)、ディジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、機械的にコード化されたデバイス、例えばパンチカードまたはその上に命令が記録された溝の中の一段高くなった構造体、およびこれらの適当な組合せを含む。本明細書で使用されるコンピュータ可読ストレージ媒体は、それ自体が一時的信号、例えば電波もしくは他の自由に伝搬する電磁波、ウェーブガイドもしくは他の伝送体内を伝搬する電磁波(例えば光ファイバ・ケーブル内を通る光パルス)、または電線を通して伝送される電気信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から対応するそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたは無線ネットワークあるいはそれらの組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバ、あるいはこれらの組合せを含んでもよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それらのコンピュータ可読プログラム命令を、対応するそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
本発明の技術的解決策の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データもしくは集積回路用の構成データであってもよく、またはSmalltalk、C++または他の同種のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同種のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。このコンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で実行されてもよく、独立型ソフトウェア・パッケージとして実行されてもよく、一部がユーザのコンピュータ上で、一部が遠隔コンピュータ上で実行されてもよく、または全体が遠隔コンピュータもしくはサーバ上で実行されてもよい。上記の最後のシナリオでは、遠隔コンピュータが、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはこの接続が、外部コンピュータに対して(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)実施されてもよい。いくつかの実施形態では、本発明の技術的解決策の諸態様を実施するために、例えばプルグラム可能論理回路、フィールド・プログラム可能ゲート・アレイ(FPGA)またはプログラム可能論理アレイ(PLA)を含む電子回路が、このコンピュータ可読プログラム命令の状態情報を利用してその電子回路をパーソナライズすることにより、このコンピュータ可読プログラム命令を実行してもよい。
本明細書では、本発明の技術的解決策の諸態様が、本発明の技術的解決策の実施形態に基づく方法、装置(システム)およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方の図を参照して説明される。それらの流れ図またはブロック図あるいはそれらの両方の図の各ブロック、およびそれらの流れ図またはブロック図あるいはその両方の図のブロックの組合せは、このコンピュータ可読プログラム命令によって実施することができることが理解される。
これらのコンピュータ可読プログラム命令は、機械を形成する汎用コンピュータ、専用コンピュータまたは他のプルグラム可能データ処理装置のプロセッサに、それらのコンピュータまたは他のプルグラム可能データ処理装置のプロセッサによって実行されるこれらの命令が、これらの流れ図またはブロック図あるいはその両方の図のブロックに指定された機能/動作を実施する手段を生成するような態様で提供することができる。これらのコンピュータ可読プログラム命令はさらに、特定の方式で機能するようにコンピュータ、プログラム可能データ処理装置または他のデバイスあるいはこれらの組合せに指図することができるコンピュータ可読ストレージ媒体に、その中に命令が記憶されたコンピュータ可読ストレージ媒体が、これらの流れ図またはブロック図あるいはその両方の図のブロックに指定された機能/動作の態様を実施する命令を含む製造物品を含むような態様で記憶することができる。
コンピュータ可読プログラム命令はさらに、コンピュータ、他のプログラム可能装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータによって実施されるプロセスを生み出すために、このコンピュータ、他のプログラム可能データ処理装置または他のデバイス上に、このコンピュータ、他のプログラム可能装置または他のデバイス上で実施されるこれらの命令が、これらの流れ図またはブロック図あるいはその両方の図のブロックに指定された機能/動作を実施するような態様でロードすることができる。
添付図中の流れ図およびブロック図は、本発明の技術的解決策のさまざまな実施形態に基づくシステム、方法およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能および動作を示す。この点に関して、それらの流れ図またはブロック図の各ブロックは、指定された論理機能を実施する1つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表すことがある。いくつかの代替的実施態様では、これらのブロックに示された機能が、図に示された順序とは異なる順序で実施されることがある。例えば、連続して示された2つのブロックが、実際は、実質的に同時に実行されることがあり、または、含まれる機能によってはそれらのブロックが逆の順序で実行されることもある。それらのブロック図または流れ図あるいはその両方の図の各ブロック、ならびにそれらのブロック図または流れ図あるいはその両方の図のブロックの組合せを、指定された機能もしくは動作を実行しまたは専用ハードウェアとコンピュータ命令の組合せを実施するハードウェアベースの専用システムによって実施することができることにも留意すべきである。
第2の動作が第1の動作の直接の結果であるのかまたは間接的な結果であるのかに関わらず、第2の動作は第1の動作「に応答して」いると言うことができる。第2の動作が第1の動作よりもかなり後に起こっても、第2の動作が第1の動作に応答していることはある。同様に、第1の動作と第2の動作の間に介在する動作が起こる場合でも、また、たとえ1つまたは複数の介在動作が原因で第2の動作が実施される場合であっても、第2の動作は第1の動作に応答していると言うことができる。例えば、第1の動作がフラグをセットし、その後に、フラグがセットされているときにはいつでも第3の動作が第2の動作を開始する場合でも、第2の動作は第1の動作に応答していると言うことができる。
使用法を明らかにし、これによりそれを公示するために、句「<A>、<B>、...および<N>のうちの少なくとも1つ」、または「<A>、<B>、...<N>およびこれらの組合せのうちの少なくとも1つ」、または「<A>、<B>、...もしくは<N>またはこれらの組合せ」は最も広い意味で解釈され、本明細書のこれよりも前もまたは後も、別段の指定のない限り、暗示されるその他の定義は破棄され、A、B、...およびNを含むグループから選択された1つまたは複数の要素を意味する。言い換えると、この語句は、要素A、B、...またはNのうちの1つまたは複数の要素の任意の組合せを意味し、この組合せは、任意の1つの要素だけ、またはその1つの要素と残りの1つもしくは複数の要素との組合せを含み、組合せの中に、列挙されていない追加の要素が含まれていてもよい。
命令を実行する本明細書に例示されたモジュール、ユニット、構成要素、サーバ、コンピュータ、端末またはデバイスはいずれも、ストレージ媒体、コンピュータ・ストレージ媒体またはデータ・ストレージ・デバイス(取外し可能もしくは取外し不能またはその両方)、例えば磁気ディスク、光ディスクまたはテープなどのコンピュータ可読媒体を含むことがあり、または別の方式でこのようなコンピュータ可読媒体にアクセスすることができることがあることも理解される。コンピュータ・ストレージ媒体は、コンピュータ可読命令、データ構造、プログラム・モジュールまたは他のデータなどの情報を記憶するために任意の方法または技術で実施された揮発性および不揮発性ならびに取外し可能および取外し不能の媒体を含むことができる。このようなコンピュータ・ストレージ媒体は、デバイスの一部であることがあり、またはデバイスにアクセス可能であることがあり、またはデバイスに接続可能であることがある。本明細書に記載されたアプリケーションまたはモジュールはいずれも、このようなコンピュータ可読媒体によって記憶されうるまたは他の方式で保持されうるコンピュータ可読/実行可能命令を使用して実施することができる。
本発明の技術的特徴のさまざまな実施形態の以上の説明は、例示のために示したものであり、以上の説明が網羅的であること、または、以上の説明が、開示された実施形態だけに限定されることは意図されていない。当業者には、記載された実施形態の範囲を逸脱しない多くの変更および変形が明らかである。本明細書で使用した用語は、それらの実施形態の原理、実用的用途、もしくは市販されている技術にはない技術的改良点を最もよく説明するように、または本明細書に開示された実施形態を当業者が理解できるように選択した。