JP5885859B2 - 構成可能なワークフロー機能の提供 - Google Patents

構成可能なワークフロー機能の提供 Download PDF

Info

Publication number
JP5885859B2
JP5885859B2 JP2014557727A JP2014557727A JP5885859B2 JP 5885859 B2 JP5885859 B2 JP 5885859B2 JP 2014557727 A JP2014557727 A JP 2014557727A JP 2014557727 A JP2014557727 A JP 2014557727A JP 5885859 B2 JP5885859 B2 JP 5885859B2
Authority
JP
Japan
Prior art keywords
workflow
service
data
configurable
components
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014557727A
Other languages
English (en)
Other versions
JP2015512099A (ja
Inventor
ピー.バートレット ジェームス
ピー.バートレット ジェームス
ジェイ.コール リチャード
ジェイ.コール リチャード
ディー.グレイ アダム
ディー.グレイ アダム
シロタ ピーター
シロタ ピーター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2015512099A publication Critical patent/JP2015512099A/ja
Application granted granted Critical
Publication of JP5885859B2 publication Critical patent/JP5885859B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Software Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、構成可能なワークフロー機能の提供に関する。
ソフトウエアプログラムによって生成および使用されるデータの量が増すにつれて、このようなデータを管理および分析する複雑性も、少なくとも一部の状況において増している。加えて、オンライン環境および他のネットワーク化された環境におけるソフトウエアプログラムの実行が増えるにつれて、種々異なる場所および様式での管理および分析すべきデータのアクセス可能性も高まり、このことは、このようなデータの管理および分析の複雑性を増しかねない。したがって、ソフトウエアプログラムによって生成および使用されるデータを管理および分析する際に、様々な問題が存在する。
遠隔の顧客が定義された様式でソースデータを操作する定義されたワークフローを作成、構成、および実行することを可能にする機能性を提供する構成可能なワークフローサービスの例示の実施形態を図示する。 ソースデータを特定の条件下で特定の様式で操作するために定義されたワークフローを用いる例を図示する。 ソースデータを特定の条件下で特定の様式で操作するために定義されたワークフローを用いる例を図示する。 サポートされた顧客システムのために、定義されたワークフローの使用を管理する構成可能なワークフローサービスを提供するように構成されたコンピューティングシステムの例示の実施形態を図示するブロック図である。 構成可能なワークフローサービスルーチンの流れ図の例示の実施形態を図示する。 ワークフローコンポーネントワーカープロセスルーチンの例示の実施形態の流れ図を図示する。
複数の遠隔の顧客にとって利用可能な構成可能なワークフローサービスの制御下などにある定義された様式でソースデータを操作する定義されたワークフローを作成、構成、および実行する機能性へのアクセスを顧客に提供する技法を説明する。少なくとも一部の実施形態では、遠隔の顧客は、1つ以上の公衆網を介して構成可能なワークフローサービスと対話して、顧客によって使用されるようにこの構成可能なワークフローサービスによって提供される定義されたワークフローを作成して、構成し得るが、このような定義されたワークフローは、例えば、各々が指定されたタイプの入力データに対して1つ以上の指定されたタイプのデータ操作動作を実施するように構成された複数の相互接続されたワークフローコンポーネントを含み得る。顧客がこのような定義されたワークフローを構成した後、構成可能なワークフローサービスは、さらに、一部の状況下で、構成可能なワークフローサービスによって提供される複数のコンピューティングノードを供給して、各々が、定義されたワークフロー用のワークフローコンポーネントのうちの少なくとも1つを実装するようにすることによって、および、定義されたタイプのソースデータを検索して、それを定義された様式でワークフローコンポーネントに提供することによってなど、定義されたワークフローを一回以上にわたって、かつ1つ以上の様式で実行し得る。すなわち、少なくとも一部の実施形態では、説明した技法の一部または全部は、以下により詳細に説明するように、1つ以上の構成されたコンピューティングシステム上で実行される1つ以上のソフトウエアモジュールによって実装され得るように、構成可能なワークフローサービスの実施形態によって自動的に実行される。
上記のように、定義されたワークフローは、少なくとも一部の実施形態では、定義されたワークフローに対する入力データに対応する1つ以上のデータソースワークフローコンポーネントを有することを含む複数のタイプのものであり得る複数のワークフローコンポーネントと、データに対して実施されることになっている定義されたデータ変換または他の操作に対応する1つ以上のデータ操作ワークフローコンポーネントと、定義されたワークフローから出力データを提供することに対応する1つ以上のデータ宛先ワークフローコンポーネントと、を含み得る。加えて、相互接続は、ワークフローコンポーネント間でのデータフローに対応するワークフローコンポーネント間で定義され得るため、第1のコンポーネントから出力されたデータは、入力として第2のコンポーネントに供給され得るが、この関係は、第1のコンポーネントから第2のコンポーネントへの接続であると表され得る。少なくとも一部の実施形態および状況においては、構成可能なワークフローサービスは、オプションとしては、1つ以上の様式で構成された後で、顧客が定義された顧客のワークフロー中で選択して用い得る事前定義されたワークフローコンポーネントの群を提供し得る。さらにその上、少なくとも一部の実施形態および状況においては、構成可能なワークフローサービスは、顧客が、定義された顧客のワークフロー中で用いられるワークフローコンポーネントの一部または全部を供給するまたは別様に定義することを可能にし得る。
ワークフローに対して定義された各々のデータソースワークフローコンポーネントは、示されたデータソースからデータを取得することに対応し、かつこのデータの記憶場所などの情報と、オプションとしては、この記憶場所に関連するさらなるアクセス情報(例えば、顧客と関連付けられたログイン情報、メタデータおよび/またはデータ内容に関連するなどの、用いられるデータを識別するために使用する特定の探索物または他の情報など)とを含み得る。一部の実施形態では、構成可能なワークフローサービスは、顧客がそのソースデータを記憶する際に用いる内部記憶場所を提供し得るが、特定のデータソースはこのような内部記憶場所に対応し、一方、特定のデータソースが、顧客によって提供されるまたは別様に制御される1つ以上のネットワークアクセス可能記憶システム、1つ以上のオンライン記憶サービス、1つ以上のオンラインデータ生成サービスなどのような構成可能なワークフローサービスの外部の実施形態および状況もある。用いられ得るオンライン記憶サービスの例の包括的なリストには、次が含まれる:さまざまなタイプのオブジェクトデータを記憶するAmazon Simple Storage Service (S3)、リレーショナルデータベース機能性を提供するAmazon Relational Database Service (RDS)、キー値対を記憶する機能性を提供するAmazon SimpleDB、NoSQLデータベース機能性を提供するAmazon DynamoDBサービス、仮想ローカルブロック記憶デバイスを目標となるコンピュータシステムに搭載することを可能にすることを含む、生ブロック記憶デバイスにアクセスするAmazon Elastic Block Store (EBS)など。オンラインデータ生成サービスの例の包括的なリストには、RSSフィード、アプリケーションおよびサービスを実行する機能性を監視して、対応する情報を生成するAmazon Cloudwatch Serviceなどが含まれる。したがって、データソースは、オプションとしては分散様式で実装されるリレーショナルもしくは他のデータベース(例えば、HBaseオープンソース分散データベース、BigTable分散データベース、MongoDBデータベースシステム、Apache Cassandra分散データベース管理システムなど)、ハッシュテーブル、ファイルシステム、オブジェクトストアなどの様々な形態のものであり得、データソースから所得され得るデータ群の例の包括的なリストは、ファイル(例えば、ウェブサーバログ)、データベースローもしくは他の報告、記憶されたデータオブジェクト、データのストリーミングされた群などを含む。
したがって、一部の状況および実施形態では、特定の定義済みワークフローは、複数のデータソースからデータを取得して用い得るが、これらのデータソースの一部または全部が、オプションとして、構成可能なワークフローサービスの外部にある。加えて、構成可能なワークフローサービスは、構成可能なワークフローサービスの特定の内部記憶機構に対応する、1つ以上の特定のオンライン記憶サービス(例えば、構成可能なワークフローサービスと統合されたもしくは別様に提携したまたは、そうする代わりに、構成可能なワークフローサービスとは提携していないオンライン記憶サービス)に対応するためなどで、オプションとして、1つ以上のタイプのデータソースワークフローコンポーネントを事前定義する。同様に、顧客は、顧客固有の記憶場所、事前定義されたデータソースワークフローコンポーネントなしのオンライン記憶デバイスなどに対応するためなどで、オプションとして、1つ以上のデータソースワークフローコンポーネントを定義し得る。
ワークフローに対して定義される各々のデータ操作ワークフローコンポーネントは、1つ以上の定義されたデータ変換または他の操作を、データ操作ワークフローコンポーネントに入力されたデータに対して実施することに対応し得る。加えて、データ操作ワークフローコンポーネントからの出力は、顧客に提供される予定のデータ宛先ワークフローコンポーネントに提供され得る、または、そうする代わりに、次のデータ操作ワークフローコンポーネントにとって(例えば、構成可能なワークフローサービスによって提供される1つ以上の記憶場所を用いることによって)アクセス可能な記憶場所に中間データを記憶することなどによって、1つ以上の電子メッセージを介することなどによって、次のデータ操作ワークフローコンポーネントに提供される中間データであり得る。定義されたデータ操作は、定義されたタイプの計算を1つ以上の入力データ群に対して実施すること、複数の入力データ群を1つ以上の様式で集約すること、1つ以上の入力データ群のサブ集合を選択すること、データを1つの記憶場所から別の記憶場所に移動させること、などを含む様々な形態のものであり得る。実施例のデータ操作の包括的なリストには、分散データのコピーを実施すること、1つ以上のSQL(構造化照会言語)変換を実施すること、マップ減少アーキテクチャ(例えば、Amazon Elastic MapReduceサービス内で用いられる)内で1つ以上のマップ関数および/または減少関数(reduce function)を実施すること、科学的または数学的なパッケージ(例えば、MatLab、Mathematicaなど)を用いること、顧客から供給されたスクリプトまたは他のプログラムを実行すること、などが含まれる。したがって、一部の状況および実施形態においては、定義された特定のワークフローは、事前定義されたおよび/または顧客によって定義されたデータ操作ワークフローコンポーネントを用いて、複数の定義されたデータ操作ワークフローコンポーネントを介して複数のデータ操作動作を実施し得る。
ワークフローに対して定義された各々のデータ宛先ワークフローコンポーネントは、出力データを定義されたワークフローから1つ以上の記憶場所に対しておよび/または1つ以上の様式で提供することに対応し得る。データ宛先ワークフローコンポーネントによって用いられる記憶場所のタイプおよび(およびこのようなデータ宛先ワークフローコンポーネントに対して記憶された対応する情報)は、構成可能なワークフローサービスの内部および/または外部の記憶場所を用いることを含め、少なくとも一部の実施形態におけるデータソースワークフローコンポーネントの場合と類似または同じであり得る。加えて、少なくとも一部の実施形態および状況においては、特定のデータ宛先ワークフローコンポーネントは、特定のタイプの報告を生成すること、出力データを1つ以上のタイプの定義された電子通信を介して送ること、などの、特定の様式で出力データを準備して提供することを含み得る。したがって、一部の状況および実施形態では、特定の定義されたワークフローは、事前定義されたおよび/または顧客によって定義されたデータ宛先ワークフローコンポーネントを用いて、複数の定義されたデータ宛先ワークフローコンポーネントを介して、複数の様式で複数のタイプの出力データを提供し得る。
加えて、顧客は、様々な実施形態で様々な様式でワークフローを定義し得る。例えば、構成可能なワークフローサービスのある実施形態は、定義されたGUI(「グラフィカルユーザインターフェース」)、定義されたAPI(「アプリケーションプログラミングインターフェース」)、および/または定義されたCLI(「コマンドラインインターフェース」)などの、顧客が用いる1つ以上のインターフェースを提供し得る。提供されたGUIを用いるとき、顧客を表すユーザは、例えば、定義されるワークフローに対する特定のワークフローコンポーネントを指定するためにビジュアルエディターを用い得るし、かつ、データフローに対応する特定のワークフローコンポーネント間の相互接続をさらに指定し得るが、少なくとも一部のこのような実施形態では、構成可能なワークフローサービスは、様々なグラフノードが特定のワークフローコンポーネントに対応していて、定義されたワークフローを、ワークフローを論理的に表すグラフとして表し得る。図2Aは、このようなワークフローグラフの例に対するさらなる解説的な詳細を提供する。
構成可能なワークフローサービスは、顧客に対する定義されたワークフローを、様々な様式で様々な時点でさらに実装し得る。一部の実施形態では、定義されたワークフローが用いられようとするごとに、構成可能なワークフローサービスは、各々が、定義されたワークフローに対する少なくとも1つのワークフローコンポーネントを実装する複数のコンピューティングノードを用いることなどによって、定義されたワークフローを表す論理グラフの物理的コピーをインスタンス化する。特に、少なくとも一部の実施形態では、コンピューティングノードの一部または全部が、構成可能なワークフローサービスによって供給されて、これらのコンピューティングノードが、各々が、作業負荷ワーカープロセスを実行するなど、各々のこのような実装されたワークフローコンポーネントに対応する特定のワークフローコンポーネントを実装する(例えば、対応するソフトウエアおよび/またはデータをこれらのコンピューティングノードにロードする)ように構成する。コンピューティングノードは、各々が個別の物理的コンピュータシステム、個別の仮想マシン(例えば、物理的コンピュータシステム上にホスティングされる複数の仮想マシンのうちの1つ)、分散様式で動作する複数の物理的コンピュータシステムの群などであることを含む、少なくとも一部の実施形態では様々な形態を有し得る。定義されたワークフロー用に用いられるこのようなコンピューティングノードの一部または全部は、一部の実施形態では、顧客に用いられる構成可能なワークフローサービスによって提供される複数のコンピューティングノードから選択され得る。加えて、構成可能なワークフローサービスによって提供されるコンピューティングノードの代わりであろうとまたはこれに加えてであろうと、このようなコンピューティングノードの一部または全部は、顧客によって提供されるまたは別様に制御され得るおよび/または1つ以上のオンライン実行サービスによって提供され得る。用いられ得る実施例のオンライン実行サービスの包括的リストには、Amazon Elastic Compute Cloud([EC2])プログラム実行サービス、分散マップ−減少動作(例えば、サービスからのコンピューティングシステムのクラスタを用いて、構成可能なワークフローサービス用にコンピューティングノードを表すまたは実装することによって)を実施するためのAmazon Elastic MapReduceサービス、などが含まれる。加えて、定義された特定のワークフローを複数回実装しようとするとき、構成可能なワークフローサービスが、定義されたワークフローに対するコンピューティングノードの一部または全部の供給および利用可能性を、定義されたワークフローを(例えば、構成可能なワークフローサービスなどによる自動的決定に基づいて、顧客からの命令に従って)実装するこのような2回以上の回数間で維持し得る実施形態もあれば、次の実装のために、このようなコンピューティングノードの一部または全部が、実装後に利用可能になるように解放されて、コンピューティングノード(オプションとしては異なるコンピューティングノード)同じタイプの供給が提供され得る実施形態もある。
定義されたワークフローは、少なくとも一部の実施形態および状況においてはさらなるタイプの関連付けられた情報をさらに有し得る。例えば、顧客は、将来の実装を1つ以上の定義された将来の時点にスケジューリングすること、1つ以上の定義された基準が満たされたときに(例えば、特定のソースデータの利用可能性に少なくとも部分的に基づいて)1つ以上の将来の実装をスケジューリングすること、などによって、定義されたワークフローをいつ実装するかを示す情報を、即座に実装するための顧客命令に基づくなどして、指定し得る。定義された基準は、特定のワークフローコンポーネントとまたはそうする代わりに、定義されたワークフローと全体として関連付けられること、などの様々な様式で指定され得る。例えば、特定のワークフローコンポーネントは、ワークフローコンポーネントをいつ実行するかを決定することを評価するための定義された前提条件基準を有し得るおよび/またはいつ実行を完了するかおよび/または生成されたデータを(例えば、次のワークフローコンポーネント、中間記憶場所などに)提供するかを評価する定義された事後条件の基準を有し得る。一部の実施形態および状況においては、定義されたワークフローは、1つ以上の指定された基準が満たされたまたは満たされなかったときに(例えば、特定のソースデータが利用可能でないなどの、定義されたワークフローが特定の時点で実装されない場合)、顧客に通知を提供する(または他のアクティビティを実施する)ために用いられ得る1つ以上の関連付けられた警告をさらに有し得る。
構成可能なワークフローサービスはさらに、少なくとも一部の実施形態では有料のサービスであり得るため、構成可能なワークフローサービスの顧客は、構成可能なワークフローサービスによって提供される機能性の少なくとも一部に対する料金を構成可能なワークフローサービスに支払う顧客である。加えて、1つ以上のオンライン記憶サービスおよび/またはオンライン実行サービスが、構成可能なワークフローサービスによって、特定の顧客に対する特定の定義されたワークフローを実装することの一部として用いられるとき、このような他のサービスもまた、オプションとしては、構成可能なワークフローサービスを介してであろうと直接に顧客に対してであろうと、このような使用に対して使用料を課し得る。
したがって、構成可能なワークフローサービスの使用は、特定の時点または別様に特定の基準が満たされたときに複数のソースからデータを収集することをスケジューリングする、定義されたタイプのデータ操作動作をソースデータに対して実施すること、および定義されたワークフローによって生成された出力データを様々な様式で提供することを顧客に対して可能にすることを含む、様々な恩典を様々な実施形態および状況で提供し得る。さらなる恩典は、本明細書の他の箇所で論じられており、当業者によって別様に理解されるであろう。
解説目的で、ワークフローを定義して実装する特定のインスタンスが、特定のタイプのデータ、特定のタイプのデータ操作動作、ならびに特定のタイプの記憶サービスおよび実行サービスに関連した方法を含む特定の方法で提供される一部の実施形態を以下に説明する。これらの実施例は、解説目的で提供されており、簡潔さのために単純化されており、独創的な技法を広範囲の様々な状況下で用いることが可能であり、その一部が以下で論じられるが、これらの技法は特定のタイプのデータ、記憶もしくは他のデバイス、コンピューティングシステム、またはコンピューティングシステム装置での使用に制限されない。
図1は、構成可能なワークフローサービスの様々な顧客に対する定義されたワークフローの作成および実行を管理する構成可能なワークフローサービス110の実施例の実施形態を示すネットワーク図である。定義されたワークフローを実装する一部として、構成可能なワークフローサービス110は、特定のコンピューティングノードを、各々が定義されたワークフローに対応する指定されたアクティビティを実施するようにさらに供給する。一部の実施形態では、構成可能なワークフローサービス110は、オプションとして、顧客用の定義されたワークフローが実行され得るコンピューティングノード140のある群を提供する。構成可能なワークフローサービスによって用いられるコンピューティングノードの一部または全部が、定義されたワークフローがそのために実装される顧客、1つ以上のオンライン実行サービスなどによるなどして、構成可能なワークフローサービスの外部で提供され得る実施形態もある。加えて、一部の実施形態では、構成可能なワークフローサービス110は、オプションとして、定義されたワークフローの実行を容易化するためにデータ記憶され得る1つ以上の記憶ノード150を含む。例えば、記憶ノード150は、存在すれば、定義されたワークフローの実行中に生成される中間結果データを記憶するために用いられ得るし、一部の実施形態では、定義されたワークフローに提供されるソースデータおよび/または定義されたワークフローによって生成される最終的な出力データを記憶するために、さらに用いられ得る。図1には示されていないが、構成可能なワークフローサービスは、図3および別のところを参照してより詳細に説明するように、1つ以上の構成されたコンピューティングシステムを用いて実装され得る。
図1は、1つ以上のネットワーク190と、構成可能なワークフローサービス110の顧客が、ワークフローを定義して実行するためにサービス110と対話する際に介する様々な顧客コンピューティングシステム160と、をさらに示す。図1のネットワーク190は、イントラネット、インターネット、インターネットへのおよび/またはからのアクセスが可能な1つ以上の私的ネットワーク、セルラーネットワーク、ローカルエリアネットワーク、または他のいずれかのこのようなネットワークもしくはこれらの組み合わせを含む、いずれかの適当なネットワークまたはネットワークの組み合わせを含み得る。ネットワークを介する通信は、有線もしくは無線の接続ならびにこれらの組み合わせによって可能にされ得る。
一部の実施形態では、構成可能なワークフローサービス110は、顧客はサービス110との様々な対話を実施することを可能にするなどのために、GUI(図示せず)および/またはAPI(図示せず)の一方または双方を提供し得る。例えば、特定の顧客を表すユーザ(図示せず)は、ネットワーク190上で構成可能なワークフローサービス110とのさらなる対話を発生させるために、顧客コンピューティングシステム160のうちの1つとローカルで対話し得る。ユーザは、例えば、ユーザが顧客にとって興味のある1つ以上のワークフローを定義し得る際に介する構成可能なワークフローサービスのワークフローエディターモジュール120と対話し得る。ユーザとの対話の一部として、構成可能なワークフローサービス110は、顧客および、オプションとして、ユーザの代表者に関する様々な顧客情報112を記憶し得るし、また、顧客に対する新たに定義されたワークフローの特定の定義を情報114の一部として記憶し得る。一部の実施形態では、特定のワークフローの定義には、1つ以上の事前定義済みシステムによって提供されたワークフローコンポーネント定義116を用いることなどによって、1つ以上の定義されたワークフローコンポーネントを選択し、これらのワークフローコンポーネント間の対話を指定するというユーザによる行為が含まれ得るが、構成可能なワークフローサービス110がこのようなシステムによって提供された事前定義済みのワークフローコンポーネントをなんら提供し得ない実施形態もある。新しいワークフローを定義することの一部として、ユーザは、ソースデータが検索されて、ワークフローの定義のために用いられることになっている1つ以上のソース位置と、定義されたワークフローによって生成されたデータが提供される1つ以上の宛先位置と、をさらに指定し得る。構成可能なワークフローサービス110によって用いられる様々な情報112、114および116は、構成可能なワークフローサービスのデータベースなどの、構成可能なワークフローサービス110をサポートまたは提供する1つ以上のシステム上にさらに記憶され得るが、このようなシステムは、図1に関連して示されてはいない。
加えて、顧客を表すユーザは、オプションとして一部の実施形態では、1つ以上の新しいワークフローコンポーネントを新しいワークフローを定義することの一部として定義し得るが、そうであれば、このような顧客が定義したワークフローコンポーネントは、少なくとも一部の実施形態では情報116中に記憶される定義情報をさらに有し得る。顧客が定義したワークフローおよびいずれかの顧客が定義したワークフローコンポーネントは、一部の実施形態では、顧客が別様に指定しない限り、私的なものである(例えば、他の指定がない限り、この顧客にしかアクセスできないまたは別様に見えない)として取り扱われ得るが、少なくとも一部のこのような顧客固有の情報が、こうする代わりに指定された状況下で、(例えば、このような情報を定義した顧客が他者による使用を承認する場合に、このような情報を定義した顧客に提供された料金または他の恩典の代わりに)他の顧客が顧客の定義されたワークフローコンポーネントおよび/またはワークフローの一部または全部を使用することを可能にするなど、他の顧客に利用可能なものとし得る実施形態および状況もある。類似の様式で、顧客の定義されたワークフローによって使用されるソースデータと、顧客の定義されたワークフローによって生成される最終的な出力データとは、少なくとも一部の実施形態では、別様に指定されない限りその顧客にとっては私的なものとして取り扱われ得るが、一部または全部のソースデータおよび/または最終的な出力データは、こうする代わりに、(例えば、このような情報と関連付けられる顧客が他者による使用を承認する場合に、データが関連付けられた顧客に対する料金または他の恩典の代わりに)指定された状況下では他の顧客に対して利用可能にされ得る実施形態もある。
顧客が、ソースデータがそこから取得され得るおよび/または最終的な出力データが定義されたワークフロー用にそこに提供され得る1つ以上の記憶場所を示すとき、このような記憶場所は、別のところでより詳しく討論するように、様々な実施形態で様々な形態を有し得る。一例として、少なくとも一部の実施形態では、構成可能なワークフローサービスは、1つのシステム105(例えば、1つのエンティティによって動作される1つのシステム)を形成するなどのために、1つ以上の特定のオプションとしてのオンライン記憶サービス145と統合または別様に提携し得る。そうである場合、このようなオプションとしてのオンライン記憶サービス145を持つ対話147は、ソースデータを検索するためおよび/または最終的な出力データを記憶するために実施され得る。さらにその上、少なくとも一部の実施形態では、ワークフローの実行中に生成された中間データ結果は、1つ以上のオプションとしての記憶ノード150に加えてであろうとこれらの代わりであろうと、同様に、定義されたワークフローの第1の部分によって生成され、かつ後で、ワークフローの第2の定義された部分によってアクセスされて用いられるなどのために、このようなオンライン記憶サービス145に記憶され得る。その上、少なくとも一部の実施形態および状況においては、1つ以上のオンライン記憶サービス170が、オプションとしてのオンライン記憶サービス145の一部または全部に加えてまたはこれらの代わりに、顧客コンピューティングシステム160に対して、および構成可能なワークフローサービス110に対してネットワーク190を介して利用可能であり、また、同様にネットワーク190を介して用いられ得る。加えて、少なくとも一部の実施形態および状況においては、特定の顧客は、1つ以上の顧客固有の記憶システムまたは他の記憶場所を、同様にネットワーク190を介して用いられ得る1つ以上の他のコンピューティングシステム185を用いて提供し得る。
顧客は、ワークフローを定義するために構成可能なワークフローサービスと対話した後、定義されたワークフローの実行を開始するために、構成可能なワークフローサービスのワークフローエンジンモジュール130とさらに対話し得る。特定のワークフローの実行は、顧客からの対応する命令があれば即座に実施される、指定された将来の時点でまたはワークフローの実行を開始する他の指定された基準(1つ以上の定義された前提条件に対する前提条件など)が満たされたときに発生する、など様々な様式で開始され得る。ワークフローエディターモジュール120と同様に、ワークフローエンジンモジュール130は、一部の実施形態では、顧客に使用されるように、GUIインターフェースおよび/またはAPIインターフェースを提供し得る。定義されたワークフローの実行が開始されるとき、実施例の実施形態におけるワークフローエンジンモジュール130は、定義されたワークフローに対するワークフロー定義情報を情報114から検索して、定義されたワークフローの実行を、1つ以上のコンピューティングノード上で開始する。特に、ワークフロー定義は、各々が定義された動作に対応しかつ様々な様式で相互接続される様々な論理ノードで構築され得るし、ワークフローエンジンモジュール130は、用いられる特定のコンピューティングノードを選択して、特定のこのような動作を実施し、かつ対応するワークフローワーカープロセスを供給してそれらの実行を各々のこのような選択されたコンピューティングノード上で開始するためのアクティビティをさらに実施し得る。このようなコンピューティングノードを供給することおよび/またはワークフローワーカープロセスをコンピューティングノード上で実行することの一部として、1つ以上の記憶場所とのさらなる対話を実施して、定義されたワークフローの他のワークフローワーカープロセスによって用いられる中間結果データの場合を含め、用いられる入力データを取得するおよび/または生成された結果データを記憶し得る。
定義されたワークフローを実装するために用いられるコンピューティングノードの一部または全部は、例えば、存在すれば構成可能なワークフローサービス110によって提供されるオプションとしてのコンピューティングノード140から選択され得るし、ワークフローワーカープロセス142は、定義された動作を実装するためにこれらのコンピューティングノード上で実行され得る。ワークフローエンジンモジュール130は、オプションのコンピューティングノード140の代わりにまたはこれらに加えて、構成可能なワークフローサービス110によって提供されないコンピューティングノードを用い得る実施形態もある。例えば、一部の実施形態および状況においては、特定の顧客は、1つ以上の他のコンピューティングシステム185を提供するまたは別様に制御し得るし、ワークフローエンジン130は、このような他のコンピューティングシステム185を、その顧客が定義したワークフローを実行する際に用いられるコンピューティングノードとして構成して用い得る。加えて、一部の実施形態では、1つ以上のオンラインプログラム実行サービス148および/または175が、様々な様式でプログラムを実行する際に用いられるように利用可能であり得るし、そうであれば、特定の顧客の定義されたワークフローの一部または全部を実行するためにコンピューティングノード(図示せず)を提供するために用いられ得るが、例えば、ワークフローエンジンモジュール130は、特定のワークフローワーカープロセスを供給して、このようなオンラインプログラム実行サービスによって提供された特定のコンピューティングノード上でそれらの実行を開始し得る。一例として、少なくとも一部の実施形態では、構成可能なワークフローサービスは、上述した単一システム105の一部などの、1つ以上の特定のオプションのオンラインプログラム実行サービス148と(1つ以上のオプションの記憶サービス145に加えてまたはこれらの代わりに)統合または提携し得る。そうであれば、このようなオプションのオンラインプログラム実行サービス148との対話149は、コンピューティングノードを供給するために、特定のワークフローコンポーネントの実行を開始するため、特定のワークフローコンポーネントによって生成された出力データを受信するなどのために、実施され得る。
構成可能なワークフローサービス110は、定義されたワークフロー用の特定のタイプのソースデータを生成して提供する、顧客の定義されたワークフローによって生成された最終的な出力データを管理することに対するさらなるアクティビティを実施することなどのさらなる技法を実施し得る実施形態もある。加えて、構成可能なワークフローサービス110は、一部の実施形態では、サーバコンピューティングシステムの1つ以上のハードウエアCPUプロセッサ(図示せず)をプログラムするなどの、説明した技法の一部または全部を実施するためのサーバコンピューティングシステムをプログラムするまたは別様に構成するために1つ以上のサーバコンピューティングシステムを実行するソフトウエア命令に基づいて実装され得るが、このようなソフトウエア命令は、例えば、モジュール120および/または130を実装するために用いられ得る、または、こうする代わりに、構成可能なワークフローサービスの機能性が、他のタイプのモジュールを用いて提供され得る。
このような様式で、構成可能なワークフローサービス110は、部分的または全体的に構成可能なワークフローサービス110の計算および記憶のリソースを用いて実行され得るワークフローを定義することを顧客に対して可能にすること、操作されるデータを取得するために様々なタイプのオンラインデータソースと対話すること、および記憶または他の用途のために生成された出力データを提供することを含む様々な恩典を様々な外部の顧客に提供する。構成可能なワークフローサービス110の特定の動作に関連するさらなる詳細は、本明細書の他の箇所に含まれる。
図1の前述の実施例の実施形態を、各々が1つ以上の関連付けられたユーザを有し得る1つ以上の顧客システムと連動して様々なタイプの機能性を提供する構成可能なワークフローサービス110に関連して説明したが、他の様々な実施形態が存在し得ることが理解されるであろう。例えば、少なくとも一部の実施形態および状況においては、顧客は、組織または他のグループ(例えば、個々の人物ではなくて複数の人を有する会社)を表し得る。したがって、顧客は、様々な実施形態で様々な形態を有し得る。
一部の実施形態では、構成可能なワークフローサービス110ならびに、オプションとして、使用されるいずれかのオンライン記憶サービスおよび/またはオンラインプログラム実行サービスは各々が、1つ以上の料金ベースの構造または合意に従って動作し得る。例えば、構成可能なワークフローサービス110から説明した技法の一部または全部へのアクセスは、一部の実施形態では、構成可能なワークフローサービス110の提供者または操作者に対しておよび/または構成可能なワークフローサービス110の説明された技法を用いる少なくとも一部の顧客システムに対して、料金ベースまたは他の有料様式で提供され得る。一例として、構成可能なワークフローサービス110の顧客は、構成可能なワークフローサービス110によって提供される機能性を使用するために、一回払い料金、定期的(例えば、月ごとの)料金、および/または1つ以上のタイプの使用量ベースの料金を支払い得る。このような料金は、次の包括的リストに示されるような1つ以上の要因およびアクティビティに基づき得る:特定のワークフローを定義するために実施される対話の量および/またはタイプに基づく;定義されたワークフローおよび/またはその定義されたワークフローコンポーネントの一部または全部のサイズおよび/またはタイプ;定義されたワークフローの用途に基づく、例えば、記憶されるおよび/または転送されるデータの量に基づいて、例えば、データのサイズ、記憶時間の量などに基づいて、例えば、定義されたワークフローを実行する際に用いられる計算リソースの尺度(例えば、用いられるコンピューティングノードの量)、用いられるプロセッサ機能の尺度(例えば、CPUサイクル)、定義されたワークフローの実行中に発生する時間の量、定義されたワークフロー用のコンピューティングノードを提供する際のアクティビティ、定義されたワークフロー用に供給されたコンピューティングノードが他の使用に対しては利用不可能である時間、例えば、これらのコンピューティングノードが、ソースデータが利用可能となるのを、または他の前提条件が満たされるのを待っている時間の量;記憶され、操作され、および/または生成される特定のデータ群のコンテンツまたは他の特徴に基づいて、などである。
図2A〜2Bは、顧客用のワークフローを、特定の状況下で特定の様式で定義して実行する例を示す。特に、図2A〜2Bの例では、顧客は、ウェブログデータ(例えば、顧客によって動作されるウェブサイトからまたはこうする代わりに他の様式で)にアクセスして、このデータを分析して、目的とする情報を決定することを所望する。特に、この例では、顧客は、ウェブサイトの特定のユーザのクリックストリームデータを特定するために、ウェブログデータの周期的な(例えば、3時間ごとの)分析を実施すること、および、このクリックストリームデータを1つ以上の様式で集約すること(例えば、ウェブサイトの特定の定義された年齢群のユーザに対する集約情報を決定すること)を所望する。クリックストリームデータは、それが定義された様式で集約された後で、後で用いられるように顧客のデータベースに記憶されること、および、1つ以上の電子通信を介して顧客に提供される1つ以上の報告を生成するために用いられることを含む、様々な様式でさらに用いられ得る。
特に、図2Aに関連して、構成可能なワークフローサービスの特定の顧客(この例では「カスタマーC」と呼ぶ)は、例えば、構成可能なワークフローサービスのワークフローエディターモジュールとの様々な対話に基づいて、または、こうする代わりに、定義されたワークフローに関する情報を定義された様式で提供するために構成可能なワークフローサービスの定義されたAPIとの1つ以上のプログラム的対話を実施することによって(例えば、定義されたワークフローを表すために、ファイルをアップロードするまたは別様に1つ以上のデータ構造を指定することによって)様々なノードおよび相互接続を含む新しいワークフローを定義した。この例では、定義されたワークフローは、様々なノードを含む論理グラフ200であらわされる。
図2Aでは、カスタマーCは、定義されたワークフローに対する2つのタイプのデータソースを表すために、2つのデータソースノード220を定義した。第1のデータソース220aは、この例ではオンライン記憶サービス205によって記憶される周期的に利用可能となるウェブログデータに対応する。特に、この例では、オンライン記憶サービス205は様々なデータ群206および207(例えば、ファイル)を記憶し、ウェブログデータソースに対応するノード220aは、顧客用のウェブログデータを表すオンライン記憶サービスから1つ以上の特定のデータ群207を選択するために用いる情報を含む。ノード220aは、ファイル名または特定のデータ群と関連付けられた他のメタデータなどの特定のデータ群207を識別するために用いる様々な基準、データ群207のコンテンツに関連する1つ以上の指定された基準(例えば、目的とする時間周期に対応するデータベースから報告を抽出するために用いられるウェブログデータに対応する時間フレーム)などを含み得る。ノード220aは、データ群207が関連付けられるオンライン記憶サービスでのカスタマーCの口座情報または他のアクセス情報などの、データ群207をオンライン記憶サービス205から取得するために用いられる様々なアクセス情報をさらに含み得る。加えて、この例では、カスタマーCは、ノード220aの実行と、ノード220aに対する指定された基準を満たすデータ群207が利用可能であるときに、ワークフローの残りが始まることと、を示すために、1つ以上の前提条件をデータソースノード220aに関連付けられたノード225aの一部として定義した。前提条件225aまたは定義されたワークフローの実行のための他の構成情報が、ワークフローが、特定の時点でまたは定義されたワークフローの最後の実行後に特定の時間量が通過した後で実行されることなどを示すために、他の形態を有し得る実施形態もある。したがって、前提条件225aは、例えば、データ群207がいつ利用可能になるかを決定するためにオンライン記憶サービス205と対話するワーカープロセスに実装され得るし、すると、ノード220aに対応するワーカープロセスの実行を開始するが、少なくとも一部の実施形態では、構成可能なワークフローサービスは、前提条件が満たされた後でノード220aに対応するワーカープロセスを実行するためにコンピューティングノードを供給するなどのために、前提条件225a以外のワークフロー200の一部または全部のノードを実装することを、これらの前提条件が満たされるまで待ち得る。
ウェブログデータソースノード220aに加えて、カスタマーCはまた、顧客の制御下の、または、そうする代わりにオンラインデータベース記憶サービス(図示せず)を介して利用可能な1つ以上の記憶システム(図示せず)に記憶され得るような、顧客のデータベースに対応するデータソースノード220bを定義した。この例では、カスタマーCのデータベース210は、様々なデータ群211および212(例えば、データベース報告)を含み、データ群212は、このまたは類似のワークフローの前もっての実行によってまたは他の様式で、顧客のウェブサイト用に前もって生成されたクリックストリームデータを記憶している。この例では、ノード220bは、例えば、存在することが周知であるデータベースデータに基づいて、またはこの代わりに、定義されたワークフローの実行のためのオプションであるデータベースデータに基づいて(例えば、これにより、現行のウェブログデータが、いずれかの前もって記憶されたクリックストリームデータに追加またはこれと集約されるが、しかし、このような既存のクリックストリームデータが存在しない場合においても、記憶される新しいクリックストリームデータを生成するように)なんら定義された前提条件を含まない。
データソースノード220に加えて、カスタマーCは、定義されたワークフローの一部である様々なデータ操作ノード235a〜280aをさらに定義した。ワークフローの定義されたノード235a〜280aは各々が、指定されたソースデータに対して実施され、かつこれらの定義されたデータ操作動作の結果によって特定のアクティビティを実施する1つ以上のデータ操作動作を指定する。特に、この例では、カスタマーCは、データソースノード220aと相互接続される第1のノード235aを定義しており、第1のノード235aは、データソースノード220aによって提供されるウェブログデータから様々なユーザに対するクリックストリームデータを抽出することを伴うデータ操作動作を実施するように構成される。他の箇所でより詳細に論じられるように、データ操作動作は、定義された数学的または科学的ライブラリもしくは関数などを用いて、実行される特定のプログラムコード、(例えば、SQLまたは別の定義されたデータベース操作形式で指定される)実施されるデータベース動作による場合を含め様々な様式で指定され得る。さらにその上、特定のデータ操作動作は、例えば、定義されたノード235a〜280aの一部または全部をより少ない数のノード(例えば1つ)に組み合わせるためおよび/またはノード235aのデータ変換動作を複数のはっきりと異なるノードに分離するために、他の実施形態では他の様式で指定され得る。
この例では、データ操作ノード235aが、そのデータ操作動作を実施した後で、これらのデータ操作動作の中間結果は、この例では、ノード235aによって抽出された各々の群のクリックストリームデータを特定のユーザと関連付けるように構成される次のデータ操作ノード240aに提供されるように構成される。例えば、ノード235aによって提供されたクリックストリームデータは、分類されて、各々のユーザに対する固有の識別子と関連付けられるが、対応するユーザに関するさらなる識別情報を欠き得る。ノード240aのデータ操作動作は、特定のユーザを識別することと、これらのユーザに対する対応する情報を決定することを含み得る。例えば、各々のユーザの年齢は、取得されてノード240aで用いられて、ブロック235aで抽出されたユーザの対応するクリックストリームデータと関連付けられ得る。したがって、ブロック240aからの中間結果出力データは、年齢で識別され、かつ、この実施例の実施形態では、ワークフローに対して定義される次のデータ操作ノード245aに提供される特定のユーザに対応するクリックストリームデータの群を含む。この例では図示しないが、データ操作ノード240aは、一部の実施形態では、ユーザ関連のデータを別のデータソースノード(図示せず)からさらに取得して、例えば、図示するソース位置205または210のうちに一方からまたは、そうする代わりに、異なるソース位置(図示せず)からその動作を可能にし得る。
データ操作ノード245aは、この実施例の実施形態では、ノード240aからの様々なクリックストリームデータと関連付けられたユーザとを定義された年齢群によって集約する、例えば、年齢群18〜25、26〜50、51〜65、および66+のユーザに対するクリックストリームデータを集約するように定義される。したがって、ノード245aのデータ操作動作からの中間結果は、閲覧されたページの数、1ページまたは1サイト当たりの費やされた時間の量、実施されたアクティビティの特定のタイプなどの、各々の定義された年齢群に対する1つ以上のクリックストリーム尺度の要約情報を含み得る。ノード245aによって生成されたこれらの中間データ結果は、図示する例では、この新しいクリックストリームデータを他の前から存在するクリックストリームデータと(もし存在すれば)組み合わせるデータ操作ノード275aに提供されるように構成される。
加えて、定義されたワークフローのノードが、図2Aの例では、ノード間の相互接続を抽象的な様式で示す論理的様式で図示されているが、一部の実施形態では、定義されたワークフローは、定義されたワークフローの実装が実行中にどのように発生するかについてのさらなる詳細をさらに含み得る。例えば、定義されたワークフローのノードの一部または全部が、ノードが用いるデータをそこから取得する特定の記憶場所および/またはノードの結果が記憶される特定の記憶場所に関する詳細を含み得る。したがって、データ操作ノード245aに関連して、ノードは、オプションとして、それが生成する中間データ結果を、図2Aではオプションの中間ストレージ250として図示される特定の指定された記憶場所に記憶するようにさらに定義され得る。このような中間ストレージ250は、例えば、図1のオプションの記憶ノード150、図1のオプションのオンライン記憶サービス145、図1のオンライン記憶サービス170などのうちの1つ以上に対応し得る。1つの具体的な例として、中間ストレージ250はオンライン記憶サービス205であり得るし、ノード245aは、例えば、特定のデータ群の名称またはノード245aからの中間結果が記憶されるオンライン記憶サービスの他の記憶場所を指定することによって、その結果をオンライン記憶サービス上の1つ以上の特定のデータ群208(図示せず)として記憶するように構成され得る。類似の様式で、このような中間記憶場所がノード245aに対して指定されると、ノードグラフ中の次のノード275aが、ノード245aによって生成されたこれらの中間データ結果をそこから取得する同じ記憶場所である定義された入力記憶場所を含み得る。このような中間記憶場所のユーザのさらなる詳細は、図2Bの例に関連してさらに詳しく説明する。構成可能なワークフローサービスが、構成可能なワークフローサービスによって自動的に選択された1つ以上の中間記憶場所を用いること、メッセージ受け渡しを実施することなどによって、ワークフローコンポーネント間でのデータの転送を管理し得る実施形態もある。
加えて、以前に注記したように、カスタマーCは、この例では、顧客に対する以前から存在するクリックストリームデータに対応するデータベース210上でデータ群212を前もって生成した。このようなクリックストリームデータは、例えば、ノード245aに関連して集約された一部または全部のタイプのクリックストリームデータを含み得るが、さらに、データベース210の他のデータ群211に関連するそれなどの、ノード245aに対応しない他のタイプのクリックストリームデータを含み得る。加えて、データソースノード220bは、この定義されたワークフローにとって目的とされるクリックストリームデータに対応するこれらのデータ群212を抽出するように前もって定義された。したがって、カスタマーCは、クリックストリームデータソースノード220bからこれらのデータ群212を受信するように、かつノード245aの定義された年齢群およびタイプのクリックストリームデータに対応する目的とする特定のクリックストリームデータを検索するように構成されるデータ操作ノード270aをさらに定義する。ノード270aのデータ操作動作は、例えば、データベース210から特定のデータ報告を抽出することを含み得るまたはさらなるタイプの動作(例えば、データベースの複数のデータベース表からのデータを組み合わせる1つ以上のデータベース結合動作を実施すること、データベース表からデータのサブ集合を選択する1つ以上のデータベース選択動作を実施することなど)を含み得る。したがって、ノード270aのデータ操作によって提供される中間データ結果は、ノード245aに関連して以前に注記したのと同じタイプのクリックストリームデータおよび同じタイプの定義された年齢群を含む。1つ以上のノード235a〜245aが、こうする代わりに、新しいクリックストリームデータが、データ群212のデータベース報告構造に適合するように操作し得る実施形態もある。
したがって、データ操作ノード275aは、ノード245aによって生成された中間データ結果を受信するように構成され、さらに、ノード270aによって生成された中間データ結果を受信するように構成される。双方のタイプのデータが利用可能なとき、ノード275aは、定義されたタイプのクリックストリームデータを定義された年齢群と組み合わせるように構成される。ノード275aによって生成された中間データ結果は、次に、この例では2つのはっきりと異なる様式で用いられるように構成される。特に、カスタマーCは、定義されたワークフローにより生成されるデータが提供される2つの定義された宛先に対応する定義された2つのデータ宛先ノード230をさらに定義した。特に、第1のデータ宛先ノード230aは、カスタマーCのデータベース210に対応するように、特に、データソースノード220bが対応するのと同じ集合のデータ群212に対応するように定義される。したがって、ノード275aの中間データ結果が生成されてデータ宛先ノード230aに対して利用可能にされるとき、これらのデータ結果は、例えば、さらなるデータ報告をデータベースに追加して、ノード220bによって検索された以前からの既存データを補完するまたは、そうする代わりに、以前に検索されたデータを、ウェブログデータの最新の集合からの情報をさらに含む新しい更新済みデータと交換することによって、定義されたワークフローの最終出力としてデータベース210に送られ、かつデータ群212の一部として記憶されるように構成される。
更新されたクリックストリームデータをデータベース210に記憶することに加えて、カスタマーCは、カスタマーCのメールボックス290に送られた1つ以上の電子通信を介してカスタマーCに生成された報告を通信することに対応するデータ宛先ノード230bをさらに定義する。したがって、定義されたワークフロー200は、ノード275aから中間結果を取り、かつノード275aからのクリックストリームデータ(例えば、オプションとして、ノード245aによって出力されたちょうど新しいクリックストリームデータ)の一部または全部を含む報告を定義された様式で生成することを含むデータ操作動作を実施するように定義されるデータ操作ノード280aをさらに含む。この例では、構造化された様式で情報を提示する1つ以上の定義された報告を含むように構成されるノード280aによって生成された中間データ結果は、データ宛先ノード230bに提供されるが、このノードは、定義されたワークフロー200の最終出力を、1つ以上の電子通信を介してカスタマーCのメールボックス290に提供するように構成される。
したがって、図2Aの図示する例では、構成可能なワークフローサービスのカスタマーCという顧客は、実装されると、異なるソースからの異なるタイプのデータを組み合わせて、複数の指定される様式で顧客に自動的に利用可能とされる複数のタイプの目的とする出力データを顧客に対して生成するワークフロー200を定義した。
図2Bは、図2Aの例を継続し、特に、図2Aの定義されたワークフロー200の実装例に関連するさらなる詳細を提供する。特に、図2Bは、定義されたワークフローグラフ200の論理ノード225a〜238aに対応する様々なワークフローワーカープロセス225b〜280bを実施するように構成された様々なコンピューティングノード140を示す。
他の箇所でより詳細に論じられるように、コンピューティングノード140は、構成可能なワークフローサービスによって提供される1つ以上のコンピューティングノードを用いること、カスタマーCという顧客によって利用可能にされる1つ以上のコンピューティングノードを用いること、および/または1つ以上の外部オンライン実行サービスの各々によって提供される1つ以上のコンピューティングノードを用いることを手段とすることを含め、1つ以上のソースに由来し得る。カスタマーCという顧客によって利用可能とされるコンピューティングノードにアクセスするとき、構成可能なワークフローサービスは、オプションとして、カスタマーCという顧客によって供給されたアクセス情報を用いて、これらのコンピューティングノードとの対話を可能にする(例えば、コンピューティングノードに対する供給をすること、コンピューティングノード上でソフトウエアを実行することなど)。顧客のために用いられる外部オンライン実行サービスからコンピューティングノードにアクセスするとき、構成可能なワークフローサービスは、一部の実施形態および状況においては、オンライン実行サービスによる顧客の既存の口座の情報などの顧客用の情報をオンライン実行サービスとの対話の一部として用い得るが、その場合、構成可能なワークフローサービスによって用いられている、オンライン実行サービスからのコンピューティングノードは、少なくとも一部のこのような状況下でも、顧客と構成可能なワークフローサービスとの間の対話を介して顧客に対してアクセス可能であり得る。代替的に、顧客のために用いられる外部オンライン実行サービスからコンピューティングノードにアクセスするとき、構成可能なワークフローサービスは、一部の実施形態および状況においては、オンライン実行サービスによる構成可能なワークフローサービスの口座を用い得るが、これにより、オンライン実行サービスは、これらのコンピューティングノードを、顧客とではなくて構成可能なワークフローサービスと関連付けられると考慮するが、その場合、顧客のために構成可能なワークフローサービスによって用いられているオンライン実行サービスからのこれらのコンピューティングノードは、少なくとも一部のこのような状況下では、顧客と構成可能なワークフローサービスとの間のなんらかの対話に基づく場合を含め、顧客に対してアクセス可能ではないということがあり得る(またはことによると可視ですらない)。
図2Bは、図2Aのオンライン記憶サービス205を含むが、オンライン記憶サービス205によって記憶される特定のデータ群206および207についての詳細は図示しない。この例では、構成可能なワークフローサービスは、定義された前提条件が満たされていると決定すること(例えば、1つ以上の対話257を実施して、図2Aのデータ群207に対応するオンライン記憶サービス205からの特定のソースデータが利用可能かどうかを決定すること)などによって、定義されたワークフロー200の前提条件ノード225aに対応するワークフローワーカープロセス225bを実施するために、第1のコンピューティングノードE140eを選択して供給した。前提条件が満たされるとき、ワークフローワーカープロセス225bは、対応する命令(図示せず)を構成可能なワークフローサービスに提供することなどによって、次のワーカープロセス235bの実施を開始する。構成可能なワークフローサービスは、定義されたワークフロー200のノード235aに対応する、これの例ではワークフローワーカープロセス235bを実施するために、コンピューティングノードA140aをさらに選択して供給した。特に、図2Bのワーカープロセス235bは、図2Aのソースノード220aに関連して、かつ、満たされている定義されたワークフロー200のノード225aに対する前提条件に従って定義された情報を用いることなどによって、図2Aのデータ群207に対応するオンライン記憶サービス205からソースデータを取得するために、1つ以上の対話255aを実施する。
ワーカープロセス225bおよび235bは、一部の実施形態および状況においては、例えば、異なる時点で、異なるタイプのコンピューティングノード上で(例えば、コンピューティングノードEが構成可能なワークフローサービスによって提供され、コンピューティングノードAが構成可能なワークフローサービスの外部で提供される場合)、異なる様式で(例えば、ワーカープロセス225bはコンピューティングノードEを提供する1つの物理的コンピューティングシステム上で実行され、ワーカープロセス235bはコンピューティングノードAを提供する複数の物理的コンピューティングシステム上で、分散様式で実行される)実行される。したがって、ワーカープロセス235bのような特定のワーカープロセスを、図2Bの例では1つのプロセスとして図示するが、実際のワーカープロセスは、構成可能なワークフローサービスによって提供されようと、その代わりに、構成可能なワークフローサービスの外部の1つ以上のオンラインプログラム実行サービスによって提供されようと、ワーカープロセスを実行するコンピューティングノードを表すために1つ以上の物理的コンピューティングシステムを用いることを含むことによって、様々な様式で、様々な実施形態に実装され得ることが理解されるであろう。
図示する例では、ワーカープロセス235bは、対話255aを介してソースデータを受信して、図2Aのノード235aに関連して説明されたデータ操作動作を実施した後では、ワーカープロセス235bが、オンライン記憶サービスとの1つ以上の対話225bを介してオンライン記憶サービス205に記憶される中間データ結果を生成する。特定の中間結果が図2Bの例では示されていないが、ノード235aおよび/またはワーカープロセス235bの一部として構成される特定の記憶場所に記憶することを含め、図2Aの中間ストレージ250に関連して説明したように様々な様式で記憶され得る。
中間結果が対話225bを介して記憶された後、コンピューティングノードB140b上で実行中のワーカープロセス240bは、オプションとしては、これらの中間データ結果が利用可能であるときに満たされる1つ以上の前提条件(図示せず)の使用に基づいて、これらの中間データ結果を使用目的で取得するために、オンライン記憶サービス205とより多くの対話255cを実施する。特に、この例では、構成可能なワークフローサービスは、それぞれ図2Aのノード240aおよび245aに対応するワーカープロセス240bおよび245bを実行するために、コンピューティングノードBを選択した。したがって、ワーカープロセス240bに対して、プロセスは、図2Aのノード240aに関連して以前に説明した1つ以上のデータ操作動作を実施する。この例では、コンピューティングノードBは複数のワーカープロセスを実行しているため、ワーカープロセス240bによって生成された中間データ結果は、例えばオンライン記憶サービス205には記憶されず、しかし、その代わりに、インメモリアクセスによって、またはそうする代わりに1つ以上の他のタイプの電子通信によって、対話255dを介してワーカー245bに直接に渡される。ワーカープロセス240bは、こうする代わりに、データフロー中での次のワーカープロセス245bが、後でこれらの同じ中間データ結果を検索して用いる場合でさえも、オンライン記憶サービスによるこのような中間データ結果を記憶し得る実施形態もある。
この例では、実行中のワーカープロセス245bは、次に、ワーカープロセス240bによって生成された中間データ結果を用いることと、この例では、1つ以上の対話255eを介してオンライン記憶サービス205に記憶されるそれ自身の中間データ結果を生成することとを含む、図2Aのノード245aに関連して以前に説明したデータ操作動作を実施する。オンライン記憶サービス205はこの例では複数のはっきりと異なるワーカープロセスの中間データ結果を記憶するために用いられるが、様々なワーカープロセスの中間データ結果が、異なるワーカープロセスの中間データ結果を異なるオンライン記憶サービスにまたは他の様式で記憶することを含む、他の様式で記憶され得る実施形態もある。
図2Aのオンライン記憶サービス205に加えて、図2Bはまた、カスタマーCとしての顧客のデータベース210を示すが、図2Aの実施例のデータ群211および212は図2Bでは図示されていない。この例では、構成可能なワークフローサービスは、図2Aのワークフロー200のノード270aに対応するワーカープロセス270bを実行するために、コンピューティングノードC 140cをさらに選択した。したがって、図2Bのワーカープロセス270bは、データソースノード220bに対して定義されたデータ群212を取得するためにデータベース210との対話255fを実施することを含め、ノード270aに関連して以前に説明した1以上のデータ操作動作を実施する。この例では、ワーカープロセス270bは、同様に、その中間データ結果を1つ以上の対話255gを介してオンライン記憶サービス205に記憶するが、このような中間結果を他の様式で記憶する実施形態もある。
中間データ結果が、ワーカープロセス245bおよび270bから利用可能とされた後、コンピューティングノードD140dのワーカープロセス275bは、オンライン記憶サービス205との1つ以上の対話255hを実施して、中間データ結果のこれら双方の集合を取得し、かつ図2Aのノード275aに関連して以前に説明した1つ以上のデータ操作動作を実施することによって、対応する組み合わされたデータを生成する。特に、この例では、構成可能なワークフローサービスは、ワーカープロセス275bと、図2Aのノード280aに対応するワーカープロセス280bとを実行するために、コンピューティングノードDを選択した。したがって、ワーカープロセス275bはその結果を生成した後、このプロセスは、図2Aの宛先ノード230aに関連して指定した様式などで、これらの結果をデータベース210に記憶するために、1つ以上の対話255jを実施する。加えて、この例では、ワーカープロセス280bは、これらの中間データ結果をワーカープロセス275bから1つ以上の対話255iを介して取得し、1つ以上の報告を、図1のノード280aに対して構成された様式で生成する。ワーカープロセス280bは、さらに進んで1つ以上の対話255kを実施して、これらの報告を、図2Aの宛先ノード230bに対して構成された様式で、カスタマーCのメールボックス290に送出する。
したがって、この様式では、図2Aの論理定義されたワークフローグラフ200は、図2Bに関連して図示されたコンピューティングノード140を用いて、および、ワークフローワーカープロセス間の中間データ結果の一部または全部の転送を管理するために中間ストレージを用いて、この定義されたワークフローの物理的インスタンス化によって実装される。
図2Aおよび2Bの例が説明のために提供されており、本発明がこれらの例に関して論じられる詳細によって制限されないことが理解される。
図3は、サポートされた顧客システムのために、ワークフローの定義および実装を管理する技法を実施するのに適切なコンピュータシステムの実施例の実施形態を示すブロック図である。特に、図3は、構成可能なワークフローサービスを提供するシステム340の実施形態を実行するのに適切なサーバコンピュータシステム300ならびに、様々な顧客コンピュータシステム350、オプションのオンライン記憶サービスシステム360、オプションのオンラインプログラム実行サービスシステム370、および他のコンピューティングシステム380を示す。図示する実施形態では、コンピュータシステム300は、1つ以上のハードウエアCPUプロセッサ305、様々なI/Oコンポーネント310、ストレージ320、およびメモリ330を含むコンポーネントを有し、図示するI/Oコンポーネントは、ディスプレイ311、ネットワーク接続312、コンピュータ可読媒体ドライブ313、および他のI/Oデバイス315(例えば、キーボード、マウス、スピーカなど)を含む。コンピュータシステム300は図示するより多いまたは少ないコンポーネントを有し得るし、ローカルストレージ320は、オプションとして、コンピュータシステム300に含まれるまたはこれに対して別様にローカルで取り付けられる1つ以上の不揮発性記憶デバイスによって提供され得る実施形態もある。
加えて、図示する顧客コンピュータシステム350は、CPU351、I/Oコンポーネント352(特定のコンポーネントは図示されていないが)、ストレージ354、およびメモリ357を含む、コンピュータシステム300のそれらに類似のコンポーネントを有する。他のシステム360、370、および380もまた各々が、コンピュータシステム300に関連して図示されたコンポーネントの一部または全部に類似したコンポーネントを含むが、しかし、このようなコンポーネントは、簡潔さのためにこの例では図示されていない。顧客コンピュータシステム350は各々が、このような顧客コンピュータシステムのユーザが、構成可能なワークフローサービスシステム340によって提供されるウェブベースのGUIと対話することを可能にするなどのために、メモリ357中で実行されるブラウザプログラム358を含み、また、オプションとして、顧客固有のワークフローコンポーネントについての情報355をローカルストレージ354に記憶するが、これらのコンポーネントの一方または双方が、一部または全部の顧客システム上に存在し得ない実施形態もある。さらにその上、特定の顧客コンピュータシステム350は、図示するより多いまたは少ないコンポーネントを有し得る。
CPU305によって実行されるときに、説明した技法の一部または全部を提供するための自動化された動作を実施するように、コンピュータシステム300をプログラムするまたは別様に構成するソフトウエア命令を含むような、構成可能なワークフローサービスシステム340の実施形態が、コンピュータシステム300のメモリ330中で実行されている。図3には図示されないが、システム340は、図1のモジュール120および/または130にオプションとして対応する1つ以上のモジュールを含み得る。加えて、構成可能なワークフローサービスシステム340がこのようなサービス335および/または337と統合されるまたは連動して別様に動作する状況に対応するようなサーバコンピュータシステムが、1つ以上のオンライン記憶サービス335および/または1つ以上のオンラインプログラム実行サービス337をメモリ330中でさらにオプションとして実行し得るが、システム340は、こうする代わりに、一部の実施形態では、このような他のシステムのいずれからも独立して動作し得る。構成可能なワークフローサービスシステム340によって用いられるいずれかのこのようなオンライン記憶サービスおよび/またはオンラインプログラム実行サービスが、例えば、オプションのシステム360および/または370に対して、ネットワーク390上でアクセスされ得る実施形態もある。
この実施例の実施形態では、構成可能なワークフローサービスシステム340は、サポートされる顧客システムのためにワークフロー関連の機能性を管理することに関連する機能性を含み、かつ、ネットワーク390上で(例えば、インターネットおよび/またはワールドワイドウェブを介して、私的セルラネットワークを介してなど)、顧客コンピュータシステム350および/または他のシステムおよびデバイスと対話するようにさらにオプションとして構成される。他のシステム350、360、370、および/または380もまた各々が、システム340との対話の一部として様々なソフトウエアを実行し得る。特定の顧客システムおよび/またはユーザについての情報322、顧客用の1つ以上の特定の定義されたワークフローについての情報324、およびいずれかの定義されたワークフローコンポーネントについての情報326などの構成可能なワークフローサービスシステム340(およびオプションとして、サービス335および/または337)の動作に関連する様々な情報は、図1の情報112〜116のそれに類似したまたは本明細書の他の箇所で説明されたような様式などで、ストレージ320中にまたはその代わりに遠隔に記憶され得る。特定の実施形態におけるシステム340の動作に関連するさらなる詳細は、他の箇所でより詳細に説明される。
システム300、350、360、370、および380は、単に解説目的であり、本開示の実施形態の範囲を制限する意図はないことが理解されるであろう。例えば、システム340は、代わりに、複数の対話するコンピューティングシステムまたはデバイスによって実行され得るし、コンピューティングシステム300は、例えば、インターネットなどの1つ以上のネットワークを通じて、ワールドワイドウェブ(「ウェブ」)を介して、または他の電子通信ネットワーク(例えば、セルラベースのネットワーク、公衆交換電話網)で、図示されない他のデバイスに接続され得る。より一般的には、コンピュータシステムもしくはコンピューティングシステムまたはコンピューティングノードは、オプションとして、特定の対応するソフトウエア命令によってプログラムまたは別様に構成されるときに、記述したタイプの機能性と対話してこれらを実施することが可能なハードウエアのいずれかの組み合わせを備え得るが、制限なしで、デスクトップもしくは他の固定位置コンピュータ、ラップトップ、タブレット、および他のモバイルコンピュータ、データベースサーバ、ネットワーク記憶デバイスおよび他のネットワークデバイス、PDA、スマートフォンおよび他の携帯電話、無線電話、ポケベル、電子手帳、インターネット機器、テレビベースのシステム(例えば、セットトップボックスおよび/またはパーソナル/デジタルビデオレコーダを用いる)、ならびに適当な通信機能を含む様々な他の消費者製品を含む。加えて、図示するシステム340によって提供される機能性は、一部の実施形態では、様々なモジュール中に配信される。
また、様々なアイテムを、使用中にはメモリ中にまたはストレージ上に記憶されているものとして図示されているが、これらのアイテムまたはそれらの部分は、メモリ管理およびデータ保全目的でメモリと他の記憶デバイスとの間で転送され得ることが理解されるであろう。代替的に、ソフトウエアモジュールおよび/またはシステムの一部または全部が別のデバイス上のメモリ中で実行されて、コンピュータ間通信によって、図示するコンピュータシステムと通信し得る実施形態もある。したがって、一部の実施形態では、記述した技法の一部または全部が、例えば、1つ以上のソフトウエアプログラムのソフトウエア命令の実行によっておよび/またはこのようなソフトウエア命令および/またはデータ構造の記憶によって、1つ以上のソフトウエアプログラムによって(例えば、システム340によって)および/またはデータ構造(例えば、定義されたワークフロー情報324および/または定義されたワークフローコンポーネント情報326)によって構成されるときに、1つ以上のプロセッサおよび/またはメモリおよび/またはストレージを含むハードウエア手段によって実施され得る。さらにその上、一部の実施形態では、システムおよび/またはモジュールの一部または全部が、例えば、これには限られないが、1つ以上の特定用途向け集積回路(ASIC)、標準型集積回路、コントローラ(例えば、マイクロコントローラおよび/または埋め込み型コントローラを含め、適当な命令を実行することによって)、現場プログラム可能ゲートアレイ(FPGA)、結合プログラム可能論理回路(CPLD)、などの、少なくとも部分的にまたは完全にファームウエアおよび/またはハードウエアに実装される手段(専用の電子機器など)を用いることによって、他の様式で実装または提供され得る。モジュール、システム、およびデータ構造のうちの一部または全部もまた、ハードディスクもしくはフラッシュドライブまたは他の不揮発性記憶デバイス、揮発性もしくは不揮発性メモリ(例えば、RAM)、ネットワーク記憶デバイス、またた、適当なデバイス(例えば、DVDディスク、CDディスク、光ディスクなど)によってもしくは適当な接続を介して読み出される携帯式媒体物品などの非一時的コンピュータ可読記憶媒体上に(例えば、ソフトウエア命令または構造化データとして)記憶され得る。システム、モジュール、およびデータ構造もまた、一部の実施形態では、無線ベースおよび有線/ケーブルベースの媒体を含む様々なコンピュータ可読送信媒体上で、生成されたデータ信号として(例えば、搬送波または他のアナログもしくはデジタル伝搬信号の一部として)送信され、かつ(単一または多重アナログ信号の一部としてまたは複数の不連続デジタルパケットもしくはフレームとして)様々な形態を取り得る。このようなコンピュータプログラム製品もまた、他の実施形態で他の形態をとり得る。したがって、本発明は、他のコンピュータシステム構成で実施され得る。
図4は、構成可能なワークフローサービスルーチン400の実施例の実施形態のフロー図である。このルーチンは、例えば、構成可能なワークフローサービスの様々な遠隔の顧客のためのワークフローの定義および実装を管理するために、例えば、図1の構成可能なワークフローサービス110および/または図3の構成可能な作業負荷サービスシステム340の実行によって提供され得る。この実施例の実施形態では、ルーチンは、構成可能なワークフローサービスルーチンの外部にあるにせよ、構成可能なワークフローサービスルーチンと統合されたもしくは別様に提携しているにせよ、1つ以上のデータ記憶システムまたはデータ記憶サービスから情報をアクセスすることおよび/またはこれらの情報を提供することを管理し得るが、記述の技法は他の実施形態では他の様式で用いられ得る。
図示する実施形態では、ルーチンはブロック405から始まるが、ここで、ワークフロー関連の機能性を管理することに関連する命令が受信される。ルーチンはブロック410に進み、ブロック405で受信された命令が構成可能なワークフローサービスの顧客のために新しいワークフローを定義するかどうか決定する。定義する場合、ルーチンはブロック415〜425に進み、顧客用の定義されたワークフローについての情報を取得して記憶する。他の箇所でさらに詳しく説明されるように、一部の実施形態および状況においては、構成可能なワークフローサービスは、顧客を表すユーザが、定義されている新しいワークフロー用の情報を対話式に指定する際に介するユーザインターフェースを提供するが、新しいワークフローを定義するために用いる情報は、こうする代わりに、顧客の代わりに1つ以上の実行中のプログラムから1つ以上のプログラム的対話を介して受信され得る実施形態もある。
図示する実施形態では、ブロック415中のルーチンは、顧客によって選択されて用いられる利用可能なシステム定義されたワークフローコンポーネントを含む、新しいワークフローを定義するためのオプションについての情報をオプションとして顧客に提供するが、このような情報は、例えば、対応する情報および機能性をユーザに表示することによって、構成可能なワークフローサービスのGUIを介して提供され得る。ブロック415の後は、ルーチンはブロック420に進んで、顧客用のワークフローを定義するために構成情報を受信する。一部の実施形態では、このような構成情報は、構成可能なワークフローサービスのAPIとのプログラム的対話を介して受信され得るが、ブロック420で受信された情報が、構成可能なワークフローサービスのユーザインターフェースを介して、顧客を表すユーザから提供され得る実施形態および状況もある。構成可能なワークフローサービスのユーザインターフェースを介するワークフローの定義は、顧客を表すユーザによる複数の連続的な対話を伴い得るが、構成可能なワークフローサービスは、オプションとしては、実施された事前の選択に基づいてユーザインターフェースを介してさらなるまたは代替の情報を更新すること、およびユーザに提供することが理解されるであろう。したがって、ブロック415および420の機能性は、一部の実施形態および状況では、構成可能なワークフローサービスによる複数の反復するアクティビティを含み得る。ブロック420の後、新しいワークフローの定義が完了するとき、ルーチンはブロック425に進んで、データベースまたは構成可能なワークフローサービスの内部の他の記憶場所を用いることなどによって、後で用いるために顧客のワークフロー定義情報を記憶する。一部の実施形態では、顧客は、ルーチン400のブロック435〜450に関して取り扱われ得るような、この時点でワークフローの実行を開始するために命令をさらに提供し得る。
ブロック405で受信された命令が新しいワークフローを定義することはないとブロック410で代わりに決定された場合、ルーチンは、代わりにブロック435に進んで、(例えば、ブロック415〜425に関して論じられるように、新たに定義されたワークフローに関連して)現行の実行を開始するために顧客から受信された命令や、このような実行のために以前に指定された予定された時点が到来したとの指示などの、受信された命令が、既存のワークフローを実行するかどうかを決定する。既存のワークフローを実行する場合、ルーチンはブロック440に進んで、内部データベースまたは、構成可能なワークフローサービスと関連付けられた他の記憶場所からのものなどの、顧客に対する記憶されたワークフロー定義情報を検索する。ブロック440の後、ルーチンはブロック445に進んで、ワークフローに対するワーカープロセスを実行するために用いるコンピューティングノードを選択し、かつこれらのワーカープロセス用のこれらの選択されたコンピューティングノードを供給する。他の箇所でさらに詳しく論じられるように、構成可能なワークフローサービスの様々な顧客に用いられるように構成可能なワークフローサービスによって提供されたコンピューティングノード、1つ以上の外部(オプションとしては提携した)プログラム実行サービスによって提供されたコンピューティングノード、顧客によって提供されたまたは別様に顧客の制御下で提供されたコンピューティングノードなどの、用いられるように選択されたコンピューティングノードは、様々な実施形態では様々な形態を有し得る。加えて、選択されたコンピューティングノードの供給は、例えば、1つ以上の特定のワーカープロセスに対して実行されるソフトウエアを各々の選択されたコンピューティングノードにロードすること、オプションとしては、このようなワーカープロセスによって用いられるデータを各々の選択されたコンピューティングノードにロードすることなどを含み得る。ブロック445の後、ルーチンはブロック450に進んで、選択されたコンピューティングノード上で実行中のワークフローに対するワーカープロセスの実行を開始する。図5は、ワーカープロセスを供給して選択されたコンピューティングノード上で実行する1つの実施例の実施形態のさらなる詳細を示す。
そうでなくて、ブロック405で受信された命令が定義されたワークフローを実行しないとブロック435で決定された場合、ルーチンは、代わりにブロック460に進んで、受信された命令が、自身の前提条件が満たされたときに実行されるように構成されるワークフローに対してなど、1つ以上の定義されたワークフローに対する前提条件をチェックするかどうか決定する。チェックする場合、ルーチンはブロック465に進んで、いずれかのこのような定義されたワークフローに対する前提条件についての情報を検索し、かつこれらの検索された前提条件が現在満たされているかどうかを決定する。ルーチンは、次に、ブロック470に進み、いずれかの定義されたワークフローに対するそれらの実装を開始するための十分な前提条件が、満たされたかどうかを決定し、満たされた場合、ブロック440に戻り、各々のこのような定義されたワークフローの実行を開始する。特定の時点で前提条件をチェックする命令は、例えば、周期ベースで、発生した事象(例えば、データの新たな到来または利用可能性)の指示に応答してなど、様々な実施形態で様々な様式で開始され得る。
そうではなくて、ブロック405で受信された命令がいずれかの定義されたワークフローに対するワークフロー前提条件を現在チェックすることはないことがブロック460で決定された場合、ルーチンはブロック490に進んで、適宜1つ以上の他の示された動作を実施する。ブロック490に関連して実施される動作は、顧客用の定義されたワークフローを修正するもしくは削除する、顧客用の定義されたワークフローの現行のもしくは予定された実行を停止もしくは別様に修正する、いずれかの定義されたワークフローに関連する警告条件がないかどうかをチェックして、適宜対応する動作をとるなどの、様々な時点で様々な実施形態で様々な形態を有し得る。
ブロック425、450、もしくは490の後で、または、そうではなくて、現在満たされている前提条件を有する定義されたワークフローがないことがブロック470で決定された場合、ルーチンはブロック495に進んで、例えば、明示的な終了指示が受信されるまでは継続するかどうかを決定する。継続することが決定された場合、ルーチンはブロック405に進み、そうでない場合にはブロック499に進んで、終了する。
図5は、ワークフローコンポーネントワーカープロセスルーチン500に対する実施例の実施形態の流れ図を示す。ルーチンは、例えば、図1のコンピューティングノード140およびワークフローワーカープロセス142ならびに図2Bのコンピューティングノード140およびワークフローワーカープロセス235b〜280bに対して、他の外部プログラム実行サービスによって提供されたコンピューティングノードおよびこれらのコンピューティングノードによって実行される対応するワーカープロセスに関連して、および/または顧客によって提供されたまたは別様に制御されたコンピューティングノードおよびこれらのコンピューティングノードによって実行される対応するワーカープロセスに関連して、例えば、定義されたワークフローに対する構成されたワーカープロセスの供給されたコンピューティングノード上での実行によって提供され得る。
ルーチンのこの実施例の実施形態では、ルーチンの行動は、1つのワーカープロセスに関連して図示されているが、特定のコンピューティングノードが、特定の実施形態および状況において複数のワーカープロセスを実行し得ること、および特定のワーカープロセスが、一部の実施形態および状況においては、複数のコンピューティングノードまたは他のコンピューティングシステム上に対して実行され得る(例えば、これらのコンピューティングシステムに対して同時におよび/または連続的になど、分散様式で)こと、が理解されるであろう。加えて、特定のワークフローコンポーネントワーカープロセスは、自身の対応するワークフローコンポーネントに対する特定の構成に従って、異なる動作(例えば、図示されるより多くまたは少ない動作)を実施し得ることが理解されるであろう。
ルーチンの図示する実施形態は、ブロック505から始まり、ここで、実行される定義された作業負荷のワーカープロセスに対する構成情報が受信され、ワーカープロセスの実行が開始される。一部の実施形態および状況においては、構成情報および実行開始は、図4のブロック445および450に関するような、構成可能なワークフローサービスの実施形態のルーチン400との1つ以上の対話に基づいて受信される。他の箇所でより詳細に論じられるように、各々のワーカープロセスは、定義されたタイプであることを含め、様々な関連付けられた情報を有して、ワーカープロセスを実装するために実行される定義されたソフトウエアコードを有したり、ワーカープロセスが入力をそこから受信する1つ以上の定義されたデータソースを有したり、ワーカープロセスによって生成されたデータ結果が提供される1つ以上の定義されたデータ宛先を有したり、オプションとして、ワーカープロセスと関連付けられた他のデータ(例えば、ワーカープロセスがどのように1つ以上の指定されたデータ操作動作を実施するかに関する構成情報)を有したり、オプションとして、1つ以上の前提条件および/または事後条件を有したり、オプションとして1つ以上の関連付けられた警告を有したり、などし得る。したがって、ルーチン500の実施例の実施形態に関連しては図示されていないが、ルーチンが、ワーカープロセスで用いられる構成データを含め、さらなる情報をブロック505で他の時点でさらに受信し得る実施形態もある。
ブロック505の後で、ルーチンは510に進み、ここで、それは、オプションとして、ワークプロセスが、その指定されたデータ操作動作または他の動作を実施するように準備することなどの、ワーカープロセスに対するなんらかの前処理アクティビティを実施する。ブロック510の後で、ルーチンは535に進み、ここで、それは、ワーカープロセスによって用いられるソースデータを1つ以上の指定されたソース位置から取得する。例えば、一部の実施形態および状況においては、このようなソースデータの利用可能性を決定することに少なくとも部分的に基づく前提条件が、用いられ得る。ブロック525の後で、ルーチンは540に進んで、ワーカープロセス用の1つ以上の指定されたデータ操作アクティビティを取得されたソースデータに対して実施する。他の箇所でより詳細に論じられるように、このような指定されたデータ操作アクティビティは、データを1つの位置から別の位置に移動させること、データを様々な様式で修正するもしくは別様に変換すること、などを含め、様々な実施形態および状況において様々な形態を有し得る。
ブロック540の後で、ルーチンは570に進んで、ブロック540の指定されたデータ操作アクティビティによる結果を1つ以上の指定された宛先位置に提供する。他の箇所でより詳細に論じられるように、結果データを提供する際にこのようなアクティビティには、結果データの一部または全部を指定された記憶場所に記憶すること、指定された結果データの一部または全部を含む1つ以上の電子通信を送出すること、結果データの一部または全部を提示用に含む特定の報告または他の形式を生成することなどが含まれ得る。
ブロック570の後で、ルーチンは595に進んで、例えば、終了の明示的な指示が受信されるまで、継続するかどうかを決定する。継続することが決定された場合、ルーチンはブロック520に戻り、そうでない場合、ブロック599に進んで終了する。図示する実施形態では、所与のワーカープロセスは、したがって、そのように構成されていれば、ブロック520〜570のアクティビティを複数回実施して、例えば、ワーカープロセスを実行するコンピューティングノードが、定義されたワークフローの複数の実装などのために延長された期間にわたって動作される状況にある場合を含め、1つ以上の指定されたデータ操作アクティビティを異なる群のソースデータに対して異なる時点で実施し得る。ワーカープロセスは、ワーカープロセスの将来の実施を修正するさらなる構成情報をさらに時として受信し得るおよび/または他の前処理アクティビティを時として実施し得る実施形態もあるが、したがって、このような状況下では、ルーチンは、ブロック595からブロック505および/または510に適宜戻り得る。
一部の実施形態では、上述のルーチンによって提供される機能性が、より多いルーチン間に分割されるまたはより少ないルーチンに統合されるなどの、代替的な方法で提供され得ることが理解されるであろう。同様に、一部の実施形態では、例示したルーチンは、提供される機能性の量が変更されたときなどに、説明したより多きまたは少ない機能性を提供し得る。加えて、様々な動作を特定の様式(例えば、連続してまたは並行に)でおよび/または特定の順序で実施されるものとして解説したが、動作が、他の順序または他の様式で実施され得る実施形態もある。同様に、上述したデータ構造は、1つのデータ構造を複数のデータ構造に分割させたり、または、複数のデータ構造を1つのデータ構造に統合させたりすることなどによって、他の実施形態では異なる様式で構造化され得るし、また、説明したより多いまたは少ない情報を(例えば、他の図示するデータ構造が逆にこのような情報をそれぞれ欠いたりまたは含んだりするときに、または、記憶される情報の量またはタイプが変更されたときに)記憶し得る。
構成可能なワークフローサービスの特定の実施例の実施形態に関するさらなる詳細は、以下に含まれるが、説明した技法はこのような詳細に制限されないことが理解されるであろう。
この実施例の実施形態では、構成可能なワークフローサービス(「CWS」)のワークフロー(この実施例の実施形態では「パイプライン」とも呼ばれる)は、パイプラインを形成するノード(この実施例の実施形態では「オブジェクト」とも呼ばれる)の記述を可能にする構成言語を介して定義される。次のように、この実施例の実施形態ではCWSパイプラインに記述することが可能な5つの一般的なタイプのオブジェクトが存在する。
−データソース−データ操作ワークフローコンポーネント(この実施例の実施形態では「アクティビティ」とも呼ばれる)に対する入力またはこれからの出力。
−アクティビティ−データ処理変換およびデータコピーなどの、実行させる動作。アクティビティは、ある状態で警告し、失敗の場合には複数回再試行するように設定することが可能である。事前定義されるアクティビティには、Copy、SQLTransform、HiveQLTransform、ElasticMapReduceTransform、およびCommandLineTransformが含まれる。
−前提条件および事後条件−データソースが利用可能および/または良好に形成されたと考えられるときには真になる、データソースに関連付けられた動作。成功裏に完了する前提条件は、データソースを入力として消費する次のアクティビティを実行することを可能にする。成功裏に完了する事後条件は、データソースを作成するアクティビティを、成功裏に完了したと考えることを可能にする。
−予定−データの周期性を記述するデータソースの、または、それが実行されるときの周期性を定義するアクティビティの属性であり、1分以上、時間、日、週、月などの精度で設定することが可能である。
−警告−通知サービス(例えば、アマゾンのSNSまたはSimple Notification Service)に公開されるメッセージ、電子通信(例えば、eメール)を介して送信されるメッセージなどを記述する。パイプラインおよび個々のアクティビティは、失敗および成功の双方に対して定義された警告を有し得る。
パイプラインはオブジェクトから成り、オブジェクトは属性から成る。属性は、タグ:値という形式を有する。
オブジェクトは、名称:属性およびタイプ:属性を有する。名称およびタイプに加えて、オブジェクトは、オブジェクトのタイプ次第でいくつかの他の属性を有し得る。以下の例では、「インボイスログ」というオブジェクトは、実施例のオンライン記憶サービスSSS(<オンライン−記憶−サービス−SSS>と呼ばれる)に記憶されるデータオブジェクトを記述し、名称:およびタイプ:に加えて経路:属性を有する。
名称:インボイスログ
タイプ:<オンライン−記憶−サービス−SSS>DataNode
経路:<オンライン−記憶−サービス−SSS>//my_data/xyz.cvs
属性は、オプションとしては、オブジェクト内で繰り返され得る。以下の例では、入力:は繰り返され、および各々の入力:属性に対する値は、順序リストとして扱われる。
名称:インボイス処理
タイプ:CommandRunnerTransform
入力:インボイスログ
入力:インボイスディメンジョン
属性の値は、次のうちの1つであり得る:
オブジェクトの参照

ストリングリテラル
各々のタイプの属性値を示す簡潔な例が個々にある:
名称:HourPeriod
タイプ:予定
期間:「1時間」←これがストリングリテラル
名称:オブジェクト
タイプ:MyTransform
ディメンジョン:HourPeriod←これがオブジェクトの参照
属性:#{区間.終了}←これが式
5分間ログを毎時ログに連結する例を考えてみよう。ここに、オンライン−記憶−サービス−SSSで、反復して、5分間ログを毎時ログに連結する単純なパイプラインがある。このパイプラインは次のものから成る:

入力データソース−5分間クリックログ<オンライン−記憶−サービス−SSS>
コピーアクティビティ
出力データソース(例えば、データ宛先ノード)−1時間クリックログイン
<オンライン−記憶−サービス−SSS>
2つの予定オブジェクト
警告オブジェクト
名称:FiveMinPeriod
タイプ:予定
期間:「5分間」
名称:HourPeriod
タイプ:予定
期間:「1時間」
名称:5分間ログ
タイプ:<オンライン−記憶−サービス−SSS>DataNode
ディメンジョン:FiveMinPeriod
経路:「<オンライン−記憶−サービス−SSS>://prod/Clicks/#{区間.終了}.csv」
名称:連結
タイプ:CopyTransform
ディメンジョン:HourPeriod
入力:5分間ログ
出力:毎時ログ
フェイル時:CopyFailedAlarm
名称:CopyFailedAlarm
タイプ:「EmailAlarm」
宛先:<顧客eメールアドレス>
件名:「クリック5分間→1時間フェイル!」
本体:
区間#{ノード.区間.開始}..#{ノード.区間.終了}でエラー
名称:毎時ログ
タイプ:<オンライン−記憶−サービス−SSS>DataNode
ディメンジョン:HourPeriod
経路:「<オンライン−記憶−サービス−SSS>://XXX−test/OutData/#{区間.終了}.csv」
最初に、我々のパイプラインに対する入力である我々の5分間クリックログをさらに詳細に説明しよう。次の2つのオブジェクトは、1)予定(「FiveMinPeriod」)および2)FiveMinPeriod」と関連付けられたデータソース(「5分間ログ」)を定義する。
名称:FiveMinPeriod
タイプ:予定
期間:「5分間」
名称:5分間ログ
タイプ:<オンライン−記憶−サービス−SSS>DataNode
ディメンジョン:FiveMinPeriod
経路:「<オンライン−記憶−サービス−SSS>://prod/Clicks/#{区間.終了}.csv」
これは、以下のような一連の<オンライン−記憶−サービス−SSS>ファイルを記述することによる効果である。
・・・
<オンライン−記憶−サービス−SSS>://prod/Clicks/2011−11−14:10:05:00.csv
<オンライン−記憶−サービス−SSS>://prod/Clicks/2011−11−14:10:10:00.csv
<オンライン−記憶−サービス−SSS>://prod/Clicks/2011−11−14:10:15:00.csv
<オンライン−記憶−サービス−SSS>://prod/Clicks/2011−11−14:10:20:00.csv
<オンライン−記憶−サービス−SSS>://prod/Clicks/2011−11−14:10:25:00.csv
・・・
各々のこのようなオンライン−記憶−サービス−SSSファイルは、「5分間ログ」のインスタンスとして考えることが可能である。各々の1つは、自身が表す時間期間と、自身が含むデータとに基づいて他から区別可能である。
さらに、以下に示すオブジェクト情報を考えてみよう。
名称:5分間ログ
タイプ:<オンライン−記憶−サービス−SSS>DataNode
ディメンジョン:FiveMinPeriod
経路:「<オンライン−記憶−サービス−SSS>://prod/Clicks/#{区間.終了}.csv」
属性タイプ:は、これが、<オンライン−記憶−サービス−SSS>DataNodeソースオブジェクトであると識別する。名称:は、何でもよいが、この実施例の実施形態では、このパイプライン定義に対して固有であり得る。<オンライン−記憶−サービス−SSS>DataNodeなどのようなデータソースオブジェクトもまた、オブジェクトがオカレンスに具現化されることが可能な異なる方法を記述するこの実施例の実施形態ではディメンジョン属性を有し得る。ディメンジョンの1つの一般的な例は時間期間であり、これは、分、時間、日、週、または月として表現することが可能である。別の例としてのディメンジョンは、データソースシステムの異なる位置に対応するものなどの地理的領域に基づいたものがある。
加えて、時間期間は、この実施例の実施形態では予定オブジェクトによって指定され得る。特に、我々は、5分間期間を指定する予定オブジェクトを次にように定義する:
名称:FiveMinPeriod
タイプ:予定
期間:「5分間」
「5分間ログ」の属性であるディメンジョン:は、予定オブジェクト「FiveMinPeriod」のことであることに注意されたい。ここで、属性経路:を見てみよう。
経路:「<オンライン−記憶−サービス−SSS>://prod/Clicks/#{区間.終了}.csv」
シーケンス「#{ }」は、式を記述する。この場合、評価される式は、区間.終了である。「5分間ログ」は、自身と関連付けられた予定を有するため、それは、自身が「開始」と「終了」の値を有する「区間」と呼ばれる属性を含む。このように、区間.開始..区間.終了は予定の具体的な時間期間を記述する。
・・・
区間.開始2011−11−14:10:00:00 区間.終了2011−11−14:10:05:00
区間.開始2011−11−14:10:05:00 区間.終了2011−11−14:10:10:00
区間.開始2011−11−14:10:15:00 区間.終了2011−11−14:10:20:00
・・・
属性経路:は、この場合での予定オブジェクトごとの各々の5分間区間の終了を用いる<オンライン−記憶−サービス−SSS>と評価される。
次に、1時間分の5分間クリックを読み出して、これらを時間ごと出力ファイルに連結するアクティビティを説明しよう。これら3つのオブジェクトは、1)予定(「HourPeriod」)、2)「HourPeriod」と関連付けられるCopyTransform(「連結」)、および3)フェイル発生で発動される警告(「CopyFailedAlarm」):
名称:HourPeriod
タイプ:予定
期間:「1時間」
名称:連結
タイプ:CopyTransform
ディメンジョン:HourPeriod
入力:5分間ログ
出力:時間ごとログ
フェイル時:CopyFailedAlarm
名称: CopyFailedAlarm
タイプ:「EmailAlarm」
宛先:<顧客−eメール−アドレス>
件名:「クリック5分間→1時間フェイル!」
本体:
区間#{ノード.区間.開始}..#{ノード.区間.終了}でエラー
CWSは、1時間分の入力:(「5分間ログ」)が利用可能なときは、「連結」を予定して実行する。所与の時間に対する20個すべての5分間ファイルが用意できるとき、各々は、出力「時間ごとログ」中にコピーされる。「連結」プロセスがフェイル状態に遭遇する場合、警告オブジェクト「CopyFailedAlarm」が実行され、eメールが送出される。
特に、「連結」は、この実施例の実施形態ではCWSによって提供される内臓のアクティビティであるタイプ「CopyTransform」のオブジェクトである。CopyTransformは、入力データソースおよび出力データソースを取る。アクティビティ(CopyTransformはアクティビティのタイプ)は、ちょうどデータソースのように、自身と関連付けられた予定ディメンジョンを有し得る。この場合、「連結」は、時間ごとの時間区間を記述する予定オブジェクト「時間ごと期間」と関連付けられる。これは、次にように考えることが可能である。「連結」は、1時間分のデータを処理する。
この場合における入力:の予定は、5分間区間を記述するが、「連結」の予定は時間ごとである。CWSは、20個の5分間ファイルが、「連結」がそのために構成される時間ごと区間の処理にマッピングされるものと推測する。「CopyFailedAlarm」などの警告オブジェクトは、任意の数のアクティビティと関連付けることが可能である。この場合での本体:属性は、次の式を含む:区間#{ノード.区間.開始}..#{ノード.区間.終了}でエラー。警告は、実行時間時には警告がそれについて報告しているオブジェクトとして評価されるノード:属性を有する。この場合、「ノード」は、警告が「連結」でのフェイルのため発せられた場合には、オブジェクト「連結」のことである。
最後に、我々の出力データソースがここにある:
名称:時間ごとログ
タイプ:<オンライン−記憶−サービス−SSS>DataNode
ディメンジョン:HourPeriod
経路:「<オンライン−記憶−サービス−SSS>://prod/concat−clicks/#{区間.終了}.csv」
これは、以下のような一連の<オンライン−記憶−サービス−SSS>ファイルを記述することによる効果である。
・・・
<オンライン−記憶−サービス−SSS>://prod/concat−clicks/2011−11−14:00:0:00.csv
<オンライン−記憶−サービス−SSS>://prod/concat−clicks/2011−11−14:01:0:00.csv
<オンライン−記憶−サービス−SSS>://prod/concat−clicks/2011−11−14:02:0:00.csv
・・・
各々の<オンライン−記憶−サービス−SSS>ファイルは、「時間ごとログ」のインスタンスとして考えることが可能である。各々の1つは、自身が表す時間期間と、自身が含むデータとに基づいて他から区別可能である。
さらに、次のものを考えてみよう。
名称:連結
タイプ:CopyTransform
ディメンジョン:HourPeriod
入力:5分間ログ
出力:時間ごとログ
名称:時間ごとログ
タイプ:<オンライン−記憶−サービス−SSS>DataNode
ディメンジョン:HourPeriod
経路:「<オンライン−記憶−サービス−SSS>://prod/concat−clicks/#{区間.終了}.csv」
上述した「5分間ログ」データソースのように、「時間ごとログ」は、この場合には時間ごと予定である予定と関連付けられる。経路:属性は、この場合には予定オブジェクトごとに各々の時間ごと予定の終了を用いる<オンライン−記憶−サービス−SSS>ファイル名と評価される。
「連結」アクティビティは、「時間ごとログ」を出力データソースとして指定する。CWSが「連結」を予定して実行するとき、それはまた、現行の実行に対する時間ごと予定期間の終了時間範囲に対応する<オンライン−記憶−サービス−SSS>ファイルを生じさせる。
属性の値は、次の形態をとる事が可能である。
オブジェクトの参照

ストリングリテラル
オブジェクトの参照に関して、属性は別のパイプラインオブジェクトを名称で言及することが可能である。これは、あるタイプの式を形成する際に役に立つ:
名称:オブジェクト1
タイプ:サンプル
名称:オブジェクト2
タイプ:サンプル
属性1:オブジェクト1←オブジェクト1に対する参照
式に関して、式は、この構成の内部で発生する:
#{「式」}。式は組み込み関数であり得る:
属性:#{日(現行時間())}
ストリング値:
属性:#{「これはストリング値である」}
ストリングの項の連結
属性:#{「接頭辞」−関数復帰ストリング()}
整数または浮動小数点値
属性:#{関数(3.14、5)}
数式:
属性:#{関数(3.14+5)}
別の属性に対する単なる言及
名称:オブジェクト1
タイプ:サンプル
属性1:#{今日()}
属性2:#{属性1}←属性2は属性1の値を有する
別の属性に対する修飾参照
名称:オブジェクト1
タイプ:サンプル
属性1:#{今日()}
属性2:属性1
名称:オブジェクト2
タイプ:サンプル
属性3:オブジェクト1←オブジェクトの参照、「#{ }」という構成内には現れない
属性4:#{属性3.属性2}←これは、修飾属性参照(値はオブジェクト1.属性2)
ストリングリテラルに関して、属性は、「これはストリングリテラルである」などのストリングリテラル値を有し得る。また、ストリングリテラルは、ストリングとして評価される式を含むことがあり得る:
属性1:「これは#{属性2}を含む」
属性2:「式」
上の属性1は、式構成:「#{ }」を介して埋め込まれた式を有する
ストリングリテラルもまた、各々ラインが2つのスペースだけ字下げされたマルチラインであり得る:
属性3:
これはライン1
これは第2のライン
そしてこれは最後のライン
本開示の様々な実施形態は、以下の付記を考慮して説明され得る:
1.コンピュータ実装方法であって、
構成可能なワークフローサービスの1つ以上の構成されたコンピューティングシステムによって、1つ以上のインターフェースを提供して、前記構成可能なワークフローサービスの複数の顧客が、実装されるワークフローを構成することを可能とすることと、
前記1つ以上の構成されたコンピューティングシステムによって、第1の定義されたワークフローに対する前記複数の顧客のうちの第1の顧客からの構成情報を受信することであって、前記構成情報が、前記提供されたインターフェースのうちの少なくとも1つを介して受信され、かつ1つ以上のネットワーク上で前記第1の顧客の遠隔位置から送られていて、前記構成情報が、前記第1の定義されたワークフローの複数のワークフローコンポーネントと、前記複数のワークフローコンポーネント間の相互接続と、を指定し、前記複数のワークフローコンポーネントの少なくとも一部が、前記複数の顧客によって用いられるように、前記構成可能なワークフローサービスによって提供された複数の事前定義されたワークフローコンポーネントから前記顧客によって選択される、受信することと、
前記1つ以上の構成されたコンピューティングシステムによって、前記第1の定義されたワークフローを実装するために用いる複数のコンピューティングノードを選択することであって、前記複数のコンピューティングノードのうちの少なくとも一部が、前記複数の顧客によって用いられる前記構成可能なワークフローサービスによって提供される複数のコンピューティングノードのサブ集合である、選択することと、
前記1つ以上の構成されたコンピューティングシステムによって、前記選択されたコンピューティングノードを、各々が前記複数のワークフローコンポーネントのうちの少なくとも1つを実装するように供給することと、
前記1つ以上の構成されたコンピューティングシステムによって、前記実装されたワークフローコンポーネントに対応する前記選択されたコンピューティングノードに対する定義されたアクティビティの実施を開始することによって、前記顧客に対する前記第1の定義されたワークフローを実装することと、を含み、前記定義されたアクティビティが、
前記構成可能なワークフローサービスの外部の1つ以上のデータソースから入力データを取得することを伴う1つ以上の第1のアクティビティと、
前記取得された入力データに少なくとも部分的に基づいたデータ操作動作を実施することによって中間結果データを生成することを伴う1つ以上の第2のアクティビティと、
前記第2のアクティビティの前記中間結果データに少なくとも部分的に基づいて出力データを生成することを伴い、かつ前記生成された出力データを前記第1の顧客に提供することを伴う1つ以上の第3のアクティビティと、を含む、方法。
2.前記提供された1つ以上のインターフェースが、少なくともグラフィカルユーザインターフェースおよびアプリケーションプログラミングインターフェースを含み、前記方法が、
前記提供されたインターフェースのうちの1つを介して、前記第1の定義されたワークフローの実装を開始するための1つ以上の基準についての情報を受信することであって、前記1つ以上の基準が、前記顧客によって指定され、かつ前記複数の時点で利用可能な入力データの変更に基づいて前記複数の時点での前記第1の定義されたワークフローの周期的実装に対応する、受信することと、
前記複数の時点の各時点において、
前記1つ以上の構成されたコンピューティングシステムによって、1つ以上の基準が満たされていると決定することと、
前記第1の定義されたワークフローの前記実装を実施することと、
をさらに含む、付記1に記載の方法。
3.前記構成可能なワークフローサービスが料金ベースのサービスであり、前記方法が、前記第1の定義されたワークフローの前記実装を実施するために、前記第1の顧客から1つ以上の料金を取得することさらに含む、付記2に記載の方法。
4.コンピュータ実装方法であって、
構成可能なワークフローサービスの1つ以上の構成されたコンピューティングシステムによって、前記構成可能なワークフローサービスの顧客の定義されたワークフローのために構成情報を受信することであって、前記構成情報が、前記定義されたワークフローの複数のワークフローコンポーネントと、前記複数のワークフローコンポーネントのうちの少なくともいくつかの間の相互接続とを指定する、受信することと、
前記1つ以上の構成されたコンピューティングシステムによって、複数のコンピューティングノードを供給して、各々が前記複数のワークフローコンポーネントのうちの少なくとも1つを実装することであって、前記複数のコンピューティングノードのうちの少なくとも1つが、顧客による前記構成可能なワークフローサービスの使用のために前記構成可能なワークフローサービスによって提供される、実装することと、
前記実装されたワークフローコンポーネントに対応する前記複数のコンピューティングノードで定義されたアクティビティの実施を開始することによって、前記顧客の前記定義されたワークフローを実装することと、を含み、前記定義されたアクティビティが、
前記構成可能なワークフローサービスの外部の1つ以上のデータソースから入力データを取得することを伴う1つ以上の第1のアクティビティと、
前記取得された入力データに少なくとも部分的に基づいたデータ操作動作を実施することによって中間結果データを生成することを伴う1つ以上の第2のアクティビティと、
前記第2のアクティビティの前記中間結果データに少なくとも部分的に基づいて出力データを生成することを伴う1つ以上の第3のアクティビティと、を含む、方法。
5.前記顧客に対する前記定義されたワークフローの前記実装が、前記生成された出力データを前記顧客によって指定された1つ以上の記憶場所に記憶することと、前記生成された出力データに少なくとも部分的に基づき、かつ前記顧客に提供される1つ以上の報告を生成することと、のうちの少なくとも一方をさらに含む、付記4に記載の方法。
6.前記定義されたワークフローの実装を開始するための1つ以上の基準の指示を受信することと、
前記定義されたワークフローの前記実装前に、1つ以上の構成されたコンピューティングシステムによって、前記1つ以上の基準が満たされていると決定すること、
をさらに含む、付記4に記載の方法。
7.前記1つ以上の基準が、複数時点で利用可能な入力データの変更に基づいて前記複数の時点での前記定義されたワークフローの周期的実装に対応し、前記方法が、前記定義されたワークフローの前記実装を前記複数時点の各時点で実施することをさらに含む、付記6に記載の方法。
8.前記1つ以上の基準のうちの少なくとも1つが、前記複数のワークフローコンポーネントのうちの少なくとも1つと関連付けられた前提条件として定義される、付記6に記載の方法。
9.前記複数のワークフローコンポーネントのうちの1つと関連付けられる事後条件の基準についての情報を受信することをさらに含み、前記定義されたワークフローの前記実装が、前記1つのワークフローコンポーネントに対応する前記定義されたアクティビティのうちの1つ以上の前記実施の後に、前記事後条件の基準が満たされていると決定することをさらに含む、付記6に記載の方法。
10.前記1つ以上の基準が満たされたとの前記決定が、第1の時点で発生し、前記方法が、
前記1つ以上の構成されたコンピューティングシステムによって、前記1つ以上の基準が第2の時点で満たされていないと決定することと、
これに応答して、前記顧客にアラーム通知を生成して前記1つ以上の基準が満たされていないことを知らせることと、
をさらに含む、付記6に記載の方法。
11.
グラフィカルユーザインターフェースを提供することをさらに含み、前記顧客が、前記定義されたワークフローを論理的に表すグラフを編集することによって前記グラフィカルユーザインターフェースを介して前記構成情報によって、前記グラフの複数のノードのうちの少なくとも1つによって前記グラフ内に示される前記複数のワークフローコンポーネントの各々を指定し、
前記定義されたワークフローの前記実装が、前記グラフのコピーを物理的にインスタンス化することを含む、付記4に記載の方法。
12.前記顧客に対して前記定義されたワークフローを、複数のはっきりと異なる時点において実装することをさらに含み、前記複数のコンピューティングノードのうちの1つ以上が、前記1つ以上のコンピューティングノードの前記供給が一回のみ発生することを可能にするために、前記複数のはっきりと異なる時点の間で維持される、付記4に記載の方法。
13.前記複数のコンピューティングノードのうちに1つ以上について、前記コンピューティングノードが、前記定義されたアクティビティのうちの少なくとも1つを分散様式で実施する複数のコンピュータシステムのクラスタとして実装される、付記4に記載の方法。
14.前記複数のコンピューティングノードの各々について、前記複数のコンピューティングノードの前記供給が、ソフトウエアプログラムおよび構成データのうちの少なくとも1つを前記コンピューティングノードにロードすることを含む、付記4に記載の方法。
15.前記複数のコンピューティングノードのうちに1つ以上が、前記構成可能なワークフローサービスの外部のオンライン実行サービスによって提供され、前記1つ以上のコンピューティングノードの前記供給が、前記1つ以上の構成されたコンピューティングシステムによって、前記1つ以上のコンピューティングノードに対応する前記オンライン実行サービスとの1つ以上の対話を実施することを含む、付記4に記載の方法。
16.前記提供された1つ以上のコンピューティングノードが、前記オンライン実行サービスによって、前記オンライン実行サービスを持つ前記顧客の口座と関連付けられ、前記オンライン実行サービスとの前記1つ以上の対話が、前記オンライン実行サービスに対して、前記顧客の代わりに、前記顧客の前記口座についての情報を提供することを含む、付記15に記載の方法。
17.前記提供された1つ以上のコンピューティングノードが、前記顧客が前記1つ以上のコンピューティングノードにアクセスすることを防止する様式で、前記オンライン実行サービスによって、前記構成可能なワークフローサービスと関連付けられる、付記15に記載の方法。
18.前記複数のワークフローコンポーネントが、1つ以上のソースコンポーネントおよび1つ以上のデータ操作コンポーネントおよび1つ以上の宛先コンポーネントを含み、前記1つ以上のソースコンポーネントの各々が、関連付けられたデータソースと、前記関連付けられたデータソースから前記入力データの少なくとも一部にアクセスするための関連付けられた命令と、を含み、前記1つ以上のデータ操作コンポーネントの各々が、前記データ操作動作のうちの少なくとも1つを実施するための関連付けられた命令を有し、前記1つ以上の宛先コンポーネントの各々が、生成された前記出力データのうちの少なくとも一部を取り扱う関連付けられた命令を有する、付記4に記載の方法。
19.前記複数のワークフローコンポーネントが、複数の前記ソースコンポーネントをさらに含み、前記顧客に対して特有のデータソースに対するアクセスを可能にするために、前記ソースコンポーネントのうちの少なくとも1つが、前記顧客によって、前記構成可能なワークフローサービスに対して供給される、付記18に記載の方法。
20.前記複数のワークフローコンポーネントが、複数の前記データ操作コンポーネントをさらに含み、前記データ操作コンポーネントのうちの少なくとも1つが、前記顧客に対して特有の定義されたアクティビティの実施を可能にするために、前記顧客によって、前記構成可能なワークフローサービスに対して供給される関連付けられたデータ操作動作を有する、付記18に記載の方法。
21.前記複数のワークフローコンポーネントのうちの1つ以上が、前記構成可能なワークフローサービスによって提供され、前記定義されたワークフローで用いられるように前記顧客によって選択される、付記18に記載の方法。
22.前記構成可能なワークフローサービスの複数のさらなる顧客の各々について、
前記さらなる顧客のさらなる定義されたワークフローに対する構成情報を受信することと、
前記さらなる顧客のさらなる定義されたワークフローに対する前記構成情報を、前記構成可能なワークフローサービスの1つ以上の記憶機構に記憶することと、
前記さらなる定義されたワークフローを、前記さらなる顧客の代わりに、1つ以上のコンピューティングノードに1回以上実装することと、
をさらに含む、付記4に記載の方法。
23.構成可能なワークフローサービスのコンピューティングシステムを、
前記構成されたコンピューティングシステムによって、定義されたワークフローに対して顧客によって供給された構成情報に基づいて、複数のコンピューティングノードを供給することであって、前記供給が、前記複数のコンピューティングノードを、前記定義されたワークフローに対して複数のワークフローコンポーネントを実装するように構成することを含み、前記定義されたワークフローが、前記複数のワークフローコンポーネントのうちの少なくとも一部間の相互接続を含む、供給することと、
前記実装されたワークフローコンポーネントに対応する前記複数のコンピューティングノードに対する定義されたアクティビティの実施を開始することによって、前記顧客に対する前記定義されたワークフローを実装することであって、前記定義されたアクティビティの前記実施が、1つ以上のデータソースから入力データを取得することと、前記取得された入力データに少なくとも部分的に基づくデータ操作動作を実施することと、前記実施されたデータ操作動作に少なくとも部分的に基づいた出力データを生成することと、を含む、実装することと、
を行うように構成する記憶されたコンテンツを有する非一時的コンピュータ可読媒体。
24.前記構成可能なワークフローサービスが、前記構成可能なワークフローサービスの複数の顧客に対してワークフローを実装する際に用いられるように、複数のコンピューティングノードを提供し、前記複数のコンピューティングノードのうちの少なくとも一部が、前記複数のコンピューティングノードのサブ集合であり、前記記憶されたコンテンツが、実行されるときに、前記構成されたコンピューティングシステムをプログラムするソフトウエア命令である、付記23に記載の非一時的コンピュータ可読媒体。
25.前記複数のコンピューティングノードの前記供給前に、前記コンピューティングシステムが、
情報の指定時に、前記構成可能なネットワークサービスの顧客による使用のために1つ以上のインターフェースを提供し、かつ
前記定義されたワークフローに対する構成情報を前記顧客から、前記提供されたインターフェースのうちの少なくとも1つを介して受信するようにさらに構成され、
前記定義されたアクティビティが、前記受信された構成情報に従って実施される、付記23に記載の非一時的コンピュータ可読媒体。
26.前記複数のコンピューティングノードのうちの少なくとも一部が、前記構成可能なワークフローサービスの外部の1つ以上のプログラム実行サービスによって提供され、前記コンピューティングシステムが、前記複数のコンピューティングノードの前記供給の一部として、前記顧客の代わりに、前記1つ以上のプログラム実行サービスと対話するようにさらに構成される、付記23に記載の非一時的コンピュータ可読媒体。
27.前記複数のコンピューティングノードのうちの少なくとも一部が、前記構成されたコンピューティングシステムから遠隔の位置で前記顧客の制御下で1つ以上のコンピュータシステムを介して前記顧客によって提供され、前記コンピューティングシステムが、前記複数のコンピューティングノードの前記供給の一部として、前記1つ以上のコンピュータシステムと対話するようにさらに構成される、付記23に記載の非一時的コンピュータ可読媒体。
28.システムであって、
1つ以上のプロセッサと、
構成可能なワークフローサービスの1つ以上のモジュールであって、前記1つ以上のプロセッサのうちの少なくとも1つによって実行されるとき、
前記定義されたワークフローの複数のワークフローコンポーネントおよび相互接続を指定する前記顧客から構成情報を受信することと、
前記受信された構成情報に少なくとも部分的に基づいて複数のコンピューティングノードを供給して、前記複数のワークフローコンポーネントを実装することと、
前記実装されたワークフローコンポーネントに対応する前記複数のコンピューティングノードで定義されたアクティビティの実施を開始することによって、前記顧客の前記定義されたワークフローを実装することであって、前記定義されたアクティビティの前記実施が、1つ以上のデータソースから入力データを取得することと、前記取得された入力データに少なくとも部分的に基づいてデータ操作動作を実施することと、前記実施されたデータ操作動作に少なくとも部分的に基づいて出力データを生成することとを含むこと、
によって顧客に対する定義されたワークフローの機能性を提供するように構成される1つ以上のモジュールと、を備える、システム。
29.前記構成可能なワークフローサービスの複数の顧客に対するワークフローを実装する際に用いられる複数のコンピューティングノードをさらに備え、前記複数のコンピューティングノードのうちの少なくとも一部が前記複数のコンピューティングノードのサブ集合であり、前記1つ以上のモジュールが、前記1つ以上のプロセッサのうちの少なくとも1つによる実行のためのソフトウエア命令を含む、付記28に記載のシステム。
30.1つ以上のモジュールが、前記顧客に対する前記定義されたワークフローの前記機能性の前記提供の実施のための1つ以上の手段から成る、付記28に記載のシステム。
上記のように、これらの例示の実施形態のこれらの詳細は、説明するために提供されており、他の実施形態に関して説明された技法の範囲を制限するようには意図されない。
前述から、特定の実施形態が説明のために本明細書に記載されているが、本発明の精神および範囲から逸脱することなく様々な修正を加えることができることは明らかである。したがって、本発明は、添付の特許請求の範囲およびそこで列挙される要素以外によって限定されない。加えて、本発明のある態様が以下の特許請求の範囲に示される一方で、本発明者は、任意の利用可能な請求の形態で本発明の様々な態様を企図する。例えば、本発明のごく一部の態様がコンピュータ可読媒体において具現化されるように現在列挙され得るが、他の態様も同様にそのように具現化することができる。

Claims (21)

  1. システムであって、
    1つ以上のプロセッサと、
    構成可能なワークフローサービスの1つ以上のモジュールであって、前記1つ以上のプロセッサのうちの少なくとも1つによって実行されるとき、
    クライアントから、定義されたワークフローに対する複数のワークフローコンポーネントおよび相互接続を指定する構成情報を受信することであって、前記指定される複数のワークフローコンポーネントのうちの1つ以上は、前記構成可能なワークフローサービスによって提供された複数の事前定義されたワークフローコンポーネントから前記クライアントによって選択される、ことと、
    前記受信した構成情報に少なくとも部分的に基づいて複数のコンピューティングノードを供給して、前記複数のワークフローコンポーネントを実装することと、
    前記実装したワークフローコンポーネントに対応する前記複数のコンピューティングノードで定義されたアクティビティの実施を開始することによって、前記クライアントの前記定義されたワークフローを実装することであって、前記定義されたアクティビティの前記実施が、1つ以上のデータソースから入力データを取得することと、前記取得した入力データに少なくとも部分的に基づいたデータ操作動作を実施することと、前記実施したデータ操作動作に少なくとも部分的に基づいて出力データを生成することと、を含む、ことと
    によって、前記クライアントに対して定義されたワークフローの機能を提供するよう構成される1つ以上のモジュールと
    を備え
    前記複数のワークフローコンポーネントが、1つ以上のソースコンポーネントおよび1つ以上のデータ操作コンポーネントおよび1つ以上の宛先コンポーネントを含み、前記1つ以上のソースコンポーネントの各々が、関連付けられたデータソースと、前記関連付けられたデータソースから前記入力データの少なくとも一部にアクセスするための関連付けられた命令と、を含み、前記1つ以上のデータ操作コンポーネントの各々が、前記データ操作動作のうちの少なくとも1つを実施するための関連付けられた命令を有し、前記1つ以上の宛先コンポーネントの各々が、生成された前記出力データのうちの少なくとも一部を取り扱う関連付けられた命令を有することを特徴とするシステム。
  2. 前記構成可能なワークフローサービスの複数のクライアントに対するワークフローを実装する際に用いられる複数のコンピューティングノードをさらに備え、
    前記複数のコンピューティングノードのうちの少なくとも一部が、前記複数のコンピューティングノードのサブ集合であり、前記クライアントが支払った1つ以上の料金と引き換えに、前記クライアントに対して前記定義されたワークフローを実装する際に用いられるために提供され、
    前記1つ以上のモジュールが、前記1つ以上のプロセッサのうちの少なくとも1つによる実行のためのソフトウエア命令を含むことを特徴とする請求項1に記載のシステム。
  3. 前記1つ以上のモジュールが、前記クライアントに対する前記定義されたワークフローの前記機能の提供の実施のための1つ以上の手段から成ることを特徴とする請求項1に記載のシステム。
  4. コンピュータ実装方法であって、
    構成可能なワークフローサービスの1つ以上の構成されたコンピューティングシステムによって、前記構成可能なワークフローサービスのクライアントの定義されたワークフローに対する構成情報を受信することであって、前記構成情報が、前記定義されたワークフローの複数のワークフローコンポーネントと、前記複数のワークフローコンポーネントのうちの少なくともいくつかの間の相互接続とを指定し、前記指定される複数のワークフローコンポーネントのうちの1つ以上は、クライアントによる前記構成可能なワークフローサービスの使用のために、前記構成可能なワークフローサービスによって提供された複数の事前定義されたワークフローコンポーネントから前記クライアントによって選択される、ことと、
    前記構成可能なワークフローサービスの前記1つ以上の構成されたコンピューティングシステムによって、複数のコンピューティングノードを供給して、各々が前記複数のワークフローコンポーネントのうちの少なくとも1つを実装することであって、前記複数のコンピューティングノードのうちの少なくとも1つが、クライアントによる前記構成可能なワークフローサービスの使用のために前記構成可能なワークフローサービスによって提供される、ことと、
    前記構成可能なワークフローサービスの前記1つ以上の構成されたコンピューティングシステムによって、前記実装したワークフローコンポーネントに対応する前記複数のコンピューティングノードで定義されたアクティビティの実施を開始することによって、前記クライアントの前記定義されたワークフローを実装することと
    を含み、前記定義されたアクティビティが、
    前記構成可能なワークフローサービスの外部の1つ以上のデータソースから入力データを取得することを伴う1つ以上の第1のアクティビティと、
    前記取得した入力データに少なくとも部分的に基づいたデータ操作動作を実施することによって中間結果データを生成することを伴う1つ以上の第2のアクティビティと、
    前記第2のアクティビティの前記中間結果データに少なくとも部分的に基づいて出力データを生成することを伴う1つ以上の第3のアクティビティと
    を含み、
    前記複数のワークフローコンポーネントが、1つ以上のソースコンポーネントおよび1つ以上のデータ操作コンポーネントおよび1つ以上の宛先コンポーネントを含み、前記1つ以上のソースコンポーネントの各々が、関連付けられたデータソースと、前記関連付けられたデータソースから前記入力データの少なくとも一部にアクセスするための関連付けられた命令と、を含み、前記1つ以上のデータ操作コンポーネントの各々が、前記データ操作動作のうちの少なくとも1つを実施するための関連付けられた命令を有し、前記1つ以上の宛先コンポーネントの各々が、生成された前記出力データのうちの少なくとも一部を取り扱う関連付けられた命令を有することを特徴とする方法。
  5. 前記クライアントに対する前記定義されたワークフローの前記実装が、前記生成された出力データを前記クライアントによって指定された1つ以上の記憶場所に記憶することと、前記生成された出力データに少なくとも部分的に基づき、かつ前記クライアントに提供される1つ以上の報告を生成することと、のうちの少なくとも一方をさらに含むことを特徴とする請求項4に記載の方法。
  6. 前記定義されたワークフローの実装を開始するための1つ以上の基準の指示を受信することと、
    前記定義されたワークフローの前記実装の前に、前記1つ以上の構成されたコンピューティングシステムによって、前記1つ以上の基準が満たされていると決定することと
    をさらに含むことを特徴とする請求項4に記載の方法。
  7. コンピュータ実装方法であって、
    構成可能なワークフローサービスの1つ以上の構成されたコンピューティングシステムによって、前記構成可能なワークフローサービスのクライアントの定義されたワークフローに対する構成情報を受信することであって、前記構成情報が、前記定義されたワークフローの複数のワークフローコンポーネントと、前記複数のワークフローコンポーネントのうちの少なくともいくつかの間の相互接続とを指定し、前記指定される複数のワークフローコンポーネントのうちの1つ以上は、クライアントによる前記構成可能なワークフローサービスの使用のために、前記構成可能なワークフローサービスによって提供された複数の事前定義されたワークフローコンポーネントから前記クライアントによって選択される、ことと、
    前記構成可能なワークフローサービスの前記1つ以上の構成されたコンピューティングシステムによって、複数のコンピューティングノードを供給して、各々が前記複数のワークフローコンポーネントのうちの少なくとも1つを実装することであって、前記複数のコンピューティングノードのうちの少なくとも1つが、クライアントによる前記構成可能なワークフローサービスの使用のために前記構成可能なワークフローサービスによって提供される、ことと、
    前記構成可能なワークフローサービスの前記1つ以上の構成されたコンピューティングシステムによって、前記実装したワークフローコンポーネントに対応する前記複数のコンピューティングノードで定義されたアクティビティの実施を開始することによって、前記クライアントの前記定義されたワークフローを実装することと
    を含み、前記定義されたアクティビティが、
    前記構成可能なワークフローサービスの外部の1つ以上のデータソースから入力データを取得することを伴う1つ以上の第1のアクティビティと、
    前記取得した入力データに少なくとも部分的に基づいたデータ操作動作を実施することによって中間結果データを生成することを伴う1つ以上の第2のアクティビティと、
    前記第2のアクティビティの前記中間結果データに少なくとも部分的に基づいて出力データを生成することを伴う1つ以上の第3のアクティビティと
    を含み、
    前記方法は、
    前記定義されたワークフローの実装を開始するための1つ以上の基準の指示を受信することと、
    前記定義されたワークフローの前記実装の前に、前記1つ以上の構成されたコンピューティングシステムによって、前記1つ以上の基準が満たされていると決定することと
    をさらに含み、
    前記1つ以上の基準が、複数の時点で利用可能な入力データの変更に基づいて前記複数の時点での前記定義されたワークフローの周期的実装に対応し、前記方法が、前記定義されたワークフローの前記実装を前記複数の時点の各時点で実施することをさらに含む
    ことを特徴とする方法。
  8. コンピュータ実装方法であって、
    構成可能なワークフローサービスの1つ以上の構成されたコンピューティングシステムによって、前記構成可能なワークフローサービスのクライアントの定義されたワークフローに対する構成情報を受信することであって、前記構成情報が、前記定義されたワークフローの複数のワークフローコンポーネントと、前記複数のワークフローコンポーネントのうちの少なくともいくつかの間の相互接続とを指定し、前記指定される複数のワークフローコンポーネントのうちの1つ以上は、クライアントによる前記構成可能なワークフローサービスの使用のために、前記構成可能なワークフローサービスによって提供された複数の事前定義されたワークフローコンポーネントから前記クライアントによって選択される、ことと、
    前記構成可能なワークフローサービスの前記1つ以上の構成されたコンピューティングシステムによって、複数のコンピューティングノードを供給して、各々が前記複数のワークフローコンポーネントのうちの少なくとも1つを実装することであって、前記複数のコンピューティングノードのうちの少なくとも1つが、クライアントによる前記構成可能なワークフローサービスの使用のために前記構成可能なワークフローサービスによって提供される、ことと、
    前記構成可能なワークフローサービスの前記1つ以上の構成されたコンピューティングシステムによって、前記実装したワークフローコンポーネントに対応する前記複数のコンピューティングノードで定義されたアクティビティの実施を開始することによって、前記クライアントの前記定義されたワークフローを実装することと
    を含み、前記定義されたアクティビティが、
    前記構成可能なワークフローサービスの外部の1つ以上のデータソースから入力データを取得することを伴う1つ以上の第1のアクティビティと、
    前記取得した入力データに少なくとも部分的に基づいたデータ操作動作を実施することによって中間結果データを生成することを伴う1つ以上の第2のアクティビティと、
    前記第2のアクティビティの前記中間結果データに少なくとも部分的に基づいて出力データを生成することを伴う1つ以上の第3のアクティビティと
    を含み、
    前記方法は、
    前記定義されたワークフローの実装を開始するための1つ以上の基準の指示を受信することと、
    前記定義されたワークフローの前記実装の前に、前記1つ以上の構成されたコンピューティングシステムによって、前記1つ以上の基準が満たされていると決定することと
    をさらに含み、
    前記1つ以上の基準のうちの少なくとも1つが、前記複数のワークフローコンポーネントのうちの少なくとも1つと関連付けられた前提条件として定義される
    ことを特徴とする方法。
  9. 前記複数のワークフローコンポーネントのうちの1つと関連付けられる事後条件の基準についての情報を受信することをさらに含むことを特徴とする請求項6に記載の方法。
  10. コンピュータ実装方法であって、
    構成可能なワークフローサービスの1つ以上の構成されたコンピューティングシステムによって、前記構成可能なワークフローサービスのクライアントの定義されたワークフローに対する構成情報を受信することであって、前記構成情報が、前記定義されたワークフローの複数のワークフローコンポーネントと、前記複数のワークフローコンポーネントのうちの少なくともいくつかの間の相互接続とを指定し、前記指定される複数のワークフローコンポーネントのうちの1つ以上は、クライアントによる前記構成可能なワークフローサービスの使用のために、前記構成可能なワークフローサービスによって提供された複数の事前定義されたワークフローコンポーネントから前記クライアントによって選択される、ことと、
    前記構成可能なワークフローサービスの前記1つ以上の構成されたコンピューティングシステムによって、複数のコンピューティングノードを供給して、各々が前記複数のワークフローコンポーネントのうちの少なくとも1つを実装することであって、前記複数のコンピューティングノードのうちの少なくとも1つが、クライアントによる前記構成可能なワークフローサービスの使用のために前記構成可能なワークフローサービスによって提供される、ことと、
    前記構成可能なワークフローサービスの前記1つ以上の構成されたコンピューティングシステムによって、前記実装したワークフローコンポーネントに対応する前記複数のコンピューティングノードで定義されたアクティビティの実施を開始することによって、前記クライアントの前記定義されたワークフローを実装することと
    を含み、前記定義されたアクティビティが、
    前記構成可能なワークフローサービスの外部の1つ以上のデータソースから入力データを取得することを伴う1つ以上の第1のアクティビティと、
    前記取得した入力データに少なくとも部分的に基づいたデータ操作動作を実施することによって中間結果データを生成することを伴う1つ以上の第2のアクティビティと、
    前記第2のアクティビティの前記中間結果データに少なくとも部分的に基づいて出力データを生成することを伴う1つ以上の第3のアクティビティと
    を含み、
    前記方法は、
    前記定義されたワークフローの実装を開始するための1つ以上の基準の指示を受信することと、
    前記定義されたワークフローの前記実装の前に、前記1つ以上の構成されたコンピューティングシステムによって、前記1つ以上の基準が満たされていると決定することと
    をさらに含み、
    前記1つ以上の基準が満たされたとの前記決定が、第1の時点で発生し、前記方法が、
    前記1つ以上の構成されたコンピューティングシステムによって、前記1つ以上の基準が第2の時点で満たされていないと決定することと、
    これに応答して、前記クライアントにアラーム通知を生成して前記1つ以上の基準が満たされていないことを知らせることと、
    をさらに含むことを特徴とする方法。
  11. 前記1つ以上の構成されたコンピューティングシステムによって、前記クライアントに前記構成可能なワークフローサービスのグラフィカルユーザインターフェースを提供することであって、前記クライアントが、前記定義されたワークフローを論理的に表すグラフを編集することによって前記グラフィカルユーザインターフェースを介して前記構成情報を指定し、前記複数のワークフローコンポーネントの各々は、前記グラフの複数のノードのうちの少なくとも1つによって前記グラフ内に示される、ことをさらに含むことを特徴とする請求項4に記載の方法。
  12. 前記クライアントに対して前記定義されたワークフローを、複数の時点において実装することをさらに含み、前記複数のコンピューティングノードのうちの1つ以上を前記複数の時点の間で維持して、前記1つ以上のコンピューティングノードの前記供給が一回のみ発生することを可能にすることを特徴とする請求項4に記載の方法。
  13. 前記複数のコンピューティングノードについて、前記コンピューティングノードが、前記定義されたアクティビティのうちの複数を分散方式で実施する複数のコンピュータシステムのクラスタとして実装されることを特徴とする請求項4に記載の方法。
  14. 前記複数のコンピューティングノードの各々について、前記複数のコンピューティングノードの前記供給が、ソフトウエアプログラムまたは構成データのうちの少なくとも1つを前記コンピューティングノードにロードすることを含むことを特徴とする請求項4に記載の方法。
  15. 前記複数のコンピューティングノードのうちの1つ以上が、ネットワークを介して、前記構成可能なワークフローサービスの前記1つ以上の構成されたコンピューティングシステムに利用可能なオンライン実行サービスによって提供され、前記1つ以上のコンピューティングノードの前記供給が、前記1つ以上の構成されたコンピューティングシステムによって、前記1つ以上のコンピューティングノードに対応する前記オンライン実行サービスとの1つ以上の対話を実施することを含むことを特徴とする請求項4に記載の方法。
  16. 前記提供された1つ以上のコンピューティングノードが、前記オンライン実行サービスによって、前記オンライン実行サービスを使用する前記クライアントの口座と関連付けられ、前記オンライン実行サービスとの前記1つ以上の対話が、前記オンライン実行サービスに対して、前記クライアントの代わりに、前記クライアントの前記口座についての情報を提供することを含むことを特徴とする請求項15に記載の方法。
  17. 前記提供された1つ以上のコンピューティングノードが、前記クライアントが前記1つ以上のコンピューティングノードにアクセスすることを防止する方式で、前記オンライン実行サービスによって、前記構成可能なワークフローサービスと関連付けられることを特徴とする請求項15に記載の方法。
  18. 前記複数のワークフローコンポーネントが、複数の前記ソースコンポーネントをさらに含み、前記クライアントが、前記ソースコンポーネントのうちの少なくとも1つを前記構成可能なワークフローサービスに対して供給して、前記クライアントに対して特有のデータソースに対するアクセスを可能にすることを特徴とする請求項に記載の方法。
  19. 前記複数のワークフローコンポーネントが、複数の前記データ操作コンポーネントをさらに含み、前記データ操作コンポーネントのうちの少なくとも1つが、前記クライアントによって、前記構成可能なワークフローサービスに対して供給される関連付けられたデータ操作動作を有し、前記クライアントに対して特有の定義されたアクティビティの実施を可能にすることを特徴とする請求項に記載の方法。
  20. 前記クライアントは、前記複数のコンピューティングノードの前記供給または前記クライアントに対する前記定義されたワークフローの前記実装のうちの少なくとも1つと引き換えに、前記構成可能なワークフローサービスに1つ以上の料金を提供する前記構成可能なワークフローサービスのカスタマーであることを特徴とする請求項4に記載の方法。
  21. 前記構成可能なワークフローサービスの複数のさらなるクライアントの各々について、
    前記さらなるクライアントのさらなる定義されたワークフローに対する構成情報を受信することと、
    前記さらなるクライアントのさらなる定義されたワークフローに対する前記構成情報を、前記構成可能なワークフローサービスの1つ以上の記憶機構に記憶することと、
    前記さらなる定義されたワークフローを、前記さらなるクライアントの代わりに、1つ以上のコンピューティングノードに1回以上実装することと
    をさらに含むことを特徴とする請求項4に記載の方法。
JP2014557727A 2012-02-14 2013-02-12 構成可能なワークフロー機能の提供 Active JP5885859B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/396,479 US8856291B2 (en) 2012-02-14 2012-02-14 Providing configurable workflow capabilities
US13/396,479 2012-02-14
PCT/US2013/025790 WO2013122964A1 (en) 2012-02-14 2013-02-12 Providing configurable workflow capabilities

Publications (2)

Publication Number Publication Date
JP2015512099A JP2015512099A (ja) 2015-04-23
JP5885859B2 true JP5885859B2 (ja) 2016-03-16

Family

ID=48946589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014557727A Active JP5885859B2 (ja) 2012-02-14 2013-02-12 構成可能なワークフロー機能の提供

Country Status (10)

Country Link
US (4) US8856291B2 (ja)
EP (2) EP3327643A1 (ja)
JP (1) JP5885859B2 (ja)
CN (2) CN106067080B (ja)
AU (1) AU2013221760B2 (ja)
BR (1) BR112014020197A8 (ja)
CA (1) CA2864113C (ja)
RU (2) RU2550520C1 (ja)
SG (2) SG11201404849SA (ja)
WO (1) WO2013122964A1 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11455287B1 (en) * 2012-08-01 2022-09-27 Tibco Software Inc. Systems and methods for analysis of data at disparate data sources
KR101516055B1 (ko) * 2012-11-30 2015-05-04 주식회사 엘지씨엔에스 맵리듀스 워크플로우 처리 장치와 방법 및 이를 저장한 기록 매체
US9521198B1 (en) * 2012-12-19 2016-12-13 Springpath, Inc. Systems and methods for implementing an enterprise-class converged compute-network-storage appliance
KR20150033453A (ko) * 2013-09-24 2015-04-01 주식회사 엘지씨엔에스 빅데이터 처리 방법, 이를 수행하는 빅데이터 처리 장치 및 이를 저장하는 기록매체
US9336020B1 (en) * 2013-11-18 2016-05-10 Amazon Technologies, Inc. Workflows with API idiosyncrasy translation layers
CN103577941A (zh) * 2013-11-25 2014-02-12 方正国际软件有限公司 可配置的医疗信息管理平台和医疗信息管理方法
US9450955B2 (en) * 2014-01-13 2016-09-20 Oracle International Corporation Authenticator for user state management
US10705877B2 (en) 2014-05-29 2020-07-07 Ab Initio Technology Llc Workload automation and data lineage analysis
US9311134B1 (en) * 2014-09-29 2016-04-12 International Business Machines Corporation Automated creation of executable workflow
CN105630589A (zh) * 2014-11-24 2016-06-01 航天恒星科技有限公司 分布式流程调度系统及流程调度、执行方法
US9430290B1 (en) 2015-03-31 2016-08-30 International Business Machines Corporation Determining storage tiers for placement of data sets during execution of tasks in a workflow
US9946983B1 (en) * 2015-06-10 2018-04-17 Amazon Technologies, Inc. Rule-based electronic workflow processing
US9934026B2 (en) 2015-06-23 2018-04-03 Microsoft Technology Licensing, Llc Workflow generation and editing
US9910654B1 (en) 2015-09-29 2018-03-06 Amazon Technologies, Inc. Extensible software release management automation service
US9934016B1 (en) 2015-09-29 2018-04-03 Amazon Technologies, Inc. Extensible software release management automation service
US9904585B1 (en) * 2015-10-06 2018-02-27 Amazon Technologies, Inc. Error handling in executing workflow state machines
US9766927B1 (en) * 2015-10-06 2017-09-19 Amazon Technologies, Inc. Data flow management in processing workflows
AU2015391765A1 (en) 2015-10-30 2017-05-18 Intuit Inc. Globally scalable solution
KR102028496B1 (ko) * 2016-03-03 2019-10-04 한국전자통신연구원 스트림 분석 장치 및 방법
US10516791B2 (en) 2016-03-04 2019-12-24 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method for executing an iteration of one or more processes
US10122788B2 (en) * 2016-03-29 2018-11-06 Amazon Technologies, Inc. Managed function execution for processing data streams in real time
DE102016004264A1 (de) * 2016-04-08 2017-10-12 Liebherr-Werk Nenzing Gmbh System zur digitalen Unterstützung eines Arbeitsprozesses
CN107679817B (zh) * 2016-08-02 2022-02-08 阿里巴巴集团控股有限公司 工作流执行方法及相关设备
US10672156B2 (en) 2016-08-19 2020-06-02 Seven Bridges Genomics Inc. Systems and methods for processing computational workflows
US10545792B2 (en) 2016-09-12 2020-01-28 Seven Bridges Genomics Inc. Hashing data-processing steps in workflow environments
CN108009017B (zh) 2016-11-01 2022-02-18 阿里巴巴集团控股有限公司 一种应用链路的扩容方法、装置和系统
US10885057B2 (en) 2016-11-07 2021-01-05 Tableau Software, Inc. Correlated incremental loading of multiple data sets for an interactive data prep application
US11853529B2 (en) 2016-11-07 2023-12-26 Tableau Software, Inc. User interface to prepare and curate data for subsequent analysis
US10182156B2 (en) 2017-03-24 2019-01-15 Microsoft Technology Licensing, Llc Insight based routing for help desk service
US10135981B2 (en) 2017-03-24 2018-11-20 Microsoft Technology Licensing, Llc Routing during communication of help desk service
US11256743B2 (en) 2017-03-30 2022-02-22 Microsoft Technology Licensing, Llc Intermixing literal text and formulas in workflow steps
US10536348B2 (en) * 2017-04-28 2020-01-14 At&T Intellectual Property I, L.P. Operational micro-services design, development, deployment
US11055135B2 (en) 2017-06-02 2021-07-06 Seven Bridges Genomics, Inc. Systems and methods for scheduling jobs from computational workflows
CN107229723B (zh) * 2017-06-05 2022-05-03 腾讯科技(深圳)有限公司 指令处理方法及指令处理装置
CN107369005A (zh) * 2017-07-18 2017-11-21 合肥云数安存数据科技有限公司 一种工作流模型生成、业务处理方法及装置
US10678613B2 (en) 2017-10-31 2020-06-09 Seven Bridges Genomics Inc. System and method for dynamic control of workflow execution
WO2019144240A1 (en) * 2018-01-29 2019-08-01 Rubikloud Technologies Inc. Method and system for flexible pipeline generation
JP7379369B2 (ja) 2018-04-13 2023-11-14 プレイド インク ユーザ口座集計データのセキュア分配を含むユーザ口座へのアクセスのセキュア許可
US11106492B2 (en) * 2018-04-27 2021-08-31 EMC IP Holding Company LLC Workflow service for a cloud foundry platform
CN108874487B (zh) * 2018-06-13 2020-01-10 北京九章云极科技有限公司 基于工作流的数据分析处理方法、系统、装置及存储介质
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
CN109345202B (zh) * 2018-09-27 2020-09-29 中国银行股份有限公司 一种多产品多层级的流程定制方法及系统
US11250032B1 (en) 2018-10-22 2022-02-15 Tableau Software, Inc. Data preparation user interface with conditional remapping of data values
US10691304B1 (en) 2018-10-22 2020-06-23 Tableau Software, Inc. Data preparation user interface with conglomerate heterogeneous process flow elements
US11281364B2 (en) * 2018-12-20 2022-03-22 Citrix Systems, Inc. Flowchart-style diagramming tool to build automated workflows
FR3091106B1 (fr) * 2018-12-20 2021-02-12 Commissariat Energie Atomique Système de supervision formelle de communications
US11467858B2 (en) * 2019-03-27 2022-10-11 Amazon Technologies, Inc. Techniques for performing continuation workflows
US11366681B2 (en) 2019-03-27 2022-06-21 Amazon Technologies, Inc. Chaining virtual machines
US11176149B2 (en) * 2019-08-13 2021-11-16 International Business Machines Corporation Predicted data provisioning for analytic workflows
CA3154159A1 (en) 2019-09-17 2021-03-25 Plaid Inc. System and method linking to accounts using credential-less authentication
US11580206B2 (en) * 2019-10-08 2023-02-14 Palantir Technologies Inc. Project-based permission system
US11216270B2 (en) * 2019-10-24 2022-01-04 Dell Products L.P. Metadata driven workflow semantics for management operations
US11816713B2 (en) * 2019-10-24 2023-11-14 Shopify Inc. Systems and methods for automating tasks across multiple online stores
US11526661B2 (en) 2019-11-18 2022-12-13 Monday.com Ltd. Digital processing systems and methods for integrated communications module in tables of collaborative work systems
CN111090790B (zh) * 2019-12-20 2024-03-29 联想(北京)有限公司 一种数据处理方法、装置及电子设备
CN111401849B (zh) * 2020-03-18 2023-04-18 浩云科技股份有限公司 一种流程工具自定义节点配置方法
CN111461531B (zh) * 2020-03-30 2022-02-01 拉扎斯网络科技(上海)有限公司 业务处理系统、业务编排方法、装置、设备及存储介质
US11829953B1 (en) 2020-05-01 2023-11-28 Monday.com Ltd. Digital processing systems and methods for managing sprints using linked electronic boards
US11501255B2 (en) 2020-05-01 2022-11-15 Monday.com Ltd. Digital processing systems and methods for virtual file-based electronic white board in collaborative work systems
CA3189855A1 (en) * 2020-08-18 2022-02-24 William Frederick Kiefer System and method for managing user interaction flows within third party applications
US11755543B2 (en) 2020-12-29 2023-09-12 International Business Machines Corporation Optimization of workflows with dynamic file caching
US11782582B2 (en) 2021-01-14 2023-10-10 Monday.com Ltd. Digital processing systems and methods for detectable codes in presentation enabling targeted feedback in collaborative work systems
US11461297B1 (en) 2021-06-09 2022-10-04 T-Mobile Usa, Inc. Ensuring database integrity using a data flow in a graph, such as for use by a wireless telecommunications service provider
WO2023096887A1 (en) * 2021-11-23 2023-06-01 Kebotix, Inc. Techniques for combined data and execution driven pipeline
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200168A1 (en) * 2002-04-10 2003-10-23 Cullen Andrew A. Computer system and method for facilitating and managing the project bid and requisition process
US8284423B2 (en) 2006-04-07 2012-10-09 Ricoh Production Print Solutions LLC Customer-configurable print workflow system
US20070245013A1 (en) * 2006-04-13 2007-10-18 Fischer International Identity Llc Cross domain provisioning methodology and apparatus
US8655939B2 (en) * 2007-01-05 2014-02-18 Digital Doors, Inc. Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US8301480B2 (en) * 2007-11-01 2012-10-30 International Business Machines Corporation Automatically evolving processes in workflow automation
JP5212381B2 (ja) * 2008-01-31 2013-06-19 日本電気株式会社 フィードフォーワード制御方法、サービス提供品質制御装置、システム、プログラム及びその記録媒体
TW201009688A (en) * 2008-08-20 2010-03-01 Clevest Solutions Inc Method and system of editing workflow logic and screens with a GUI tool
US20100057826A1 (en) * 2008-08-29 2010-03-04 Weihsiung William Chow Distributed Workflow Process Over a Network
JP2010092260A (ja) * 2008-10-08 2010-04-22 Fujitsu Microelectronics Ltd 思考的品質改善システム
US8099480B1 (en) 2008-11-25 2012-01-17 Google Inc. Scalable workflow design for automated service management
US20100192053A1 (en) * 2009-01-26 2010-07-29 Kabushiki Kaisha Toshiba Workflow system and method of designing entry form used for workflow
US8880436B2 (en) * 2009-02-23 2014-11-04 The Hong Kong and Shanghai Banking Corporation Limited Automation system and method for a web-based implementation portal
US8250520B2 (en) * 2009-03-17 2012-08-21 Microsoft Corporation Implementing custom activities in a workflow
CA2667036A1 (en) 2009-05-27 2010-11-27 Clevest Solutions Inc. A system and method for workflow management with configurable states and extensibility
CN101599145A (zh) * 2009-06-30 2009-12-09 中兴通讯股份有限公司 一种工作流管理方法和系统
CN101794226B (zh) * 2010-03-08 2012-11-07 山东大学 一种适应多业务抽象层次的服务化软件构造方法和系统
US8806346B2 (en) * 2010-03-30 2014-08-12 Itxc Ip Holdings S.A.R.L. Configurable workflow editor for multimedia editing systems and methods therefor
CN102947819B (zh) * 2010-04-29 2016-08-03 惠普发展公司,有限责任合伙企业 信息追踪系统和方法
US9128768B2 (en) * 2011-01-27 2015-09-08 Microsoft Technology Licensing, LCC Cloud based master data management
US20120254173A1 (en) * 2011-03-31 2012-10-04 Goetz Graefe Grouping data
US9361323B2 (en) * 2011-10-04 2016-06-07 International Business Machines Corporation Declarative specification of data integration workflows for execution on parallel processing platforms

Also Published As

Publication number Publication date
BR112014020197A2 (ja) 2017-06-20
US8856291B2 (en) 2014-10-07
EP2815327A4 (en) 2015-08-19
US10324761B2 (en) 2019-06-18
WO2013122964A1 (en) 2013-08-22
CN106067080A (zh) 2016-11-02
US20160041846A1 (en) 2016-02-11
CA2864113A1 (en) 2013-08-22
EP3327643A1 (en) 2018-05-30
US10901791B2 (en) 2021-01-26
CA2864113C (en) 2015-11-24
RU2550520C1 (ru) 2015-05-10
CN104115139A (zh) 2014-10-22
RU2015109290A (ru) 2015-06-20
AU2013221760A1 (en) 2014-09-25
RU2610288C2 (ru) 2017-02-08
US20190258524A1 (en) 2019-08-22
AU2013221760B2 (en) 2015-12-24
SG10201502362RA (en) 2015-05-28
SG11201404849SA (en) 2014-09-26
BR112014020197A8 (pt) 2017-07-11
US20130212234A1 (en) 2013-08-15
CN106067080B (zh) 2019-11-15
EP2815327A1 (en) 2014-12-24
CN104115139B (zh) 2016-06-01
JP2015512099A (ja) 2015-04-23
US20140379879A1 (en) 2014-12-25
US9184988B2 (en) 2015-11-10

Similar Documents

Publication Publication Date Title
JP5885859B2 (ja) 構成可能なワークフロー機能の提供
US11086917B2 (en) Design-time information based on run-time artifacts in transient cloud-based distributed computing clusters
US11741412B2 (en) Event-based composition model for workflow systems
US11321337B2 (en) Crowdsourcing data into a data lake
US10650424B2 (en) Dynamic cloud solution catalog
US8812752B1 (en) Connector interface for data pipeline
US11755461B2 (en) Asynchronous consumer-driven contract testing in micro service architecture
US11347548B2 (en) Transformation specification format for multiple execution engines
US11531539B2 (en) Automated compliance and testing framework for software development
WO2016040370A1 (en) Methods and apparatus for tracking construction material delivery
US20150242476A1 (en) Updating database statistics with dynamic profiles
US20230315580A1 (en) Disaster recovery in a cell model for an extensibility platform
Pande Summer Fellows
Vilensten et al. Aggregating and utilizing sensor data
Parameshwaran Analysis and design of document centric workflows for automating tasks in a multi-tenant cloud archive solution

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20150113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150422

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151116

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20151124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160209

R150 Certificate of patent or registration of utility model

Ref document number: 5885859

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250