説明

ワークフロー生成、配置、及び/又は実行のためのシステム、方法、及びグラフィカルユーザインターフェイス

1つ又は複数のワークフローを生成し、配置し、及び/又は実行するための方法、システム、及びグラフィカルユーザインターフェイスが提供される。この方法は、グラフィカルユーザインターフェイスを介して、ワークフローの複数のタスクを実行するための情報を取得するステップであって、その情報が複数のタスクの少なくとも1つの機能の抽象概念を定義するステップと、その情報から、ワークフローを実行するためのレコードを形成するステップであって、そのレコードが、発送されてワークフローの実行を容易にするよう動作可能である、ステップとを含む。

【発明の詳細な説明】
【技術分野】
【0001】
[0002]以下は、グラフィカルユーザインターフェイスに関する。より詳細には、以下は、1つ又は複数のワークフローを生成し、配置し、及び/又は実行するためのグラフィカルユーザインターフェイス及び関連のシステムに関する。
【背景技術】
【0002】
[0004]一般に、会社は、1つ又は複数のビジネスプロセス及び他のワークフローを使用して、そのコアのビジネス及び補助的なビジネスを実行することができる。これらのワークフローは、例えば、会社及び/又はそのクライアント、ベンダー、サプライヤなどの購入、製造、マーケティング、販売、アカウンティング、新規採用、情報技術サポートなどを含めて、任意のビジネス部門の間又はその中で情報が移動するときにその情報の処理を容易にするためのワークフローを含むことができる。
【0003】
[0005]情報の処理を容易にするために、このワークフローは、特定の、できれば効率的なやり方でまとめられ、結び付けられる2つ以上のタスクを定義する。タスクのそれぞれは、こうしたタスクに入力される情報(「入力情報」)が操作され、及び/又は出力され得るビジネス部門の任意の自動的なアクティビティとすることができる。タスクの例には、リモートサーバから情報をダウンロードすること、ファイルをフォーマット間で変換すること、更新を処理すること、顧客又は受注管理システムと通信すること、電子メールメッセージを送信すること、変更を自動的にバックアップすることなどがある。
【0004】
[0006]しばしば、タスクのそれぞれについての入力情報は、会社、及び/又はそのクライアント、ベンダー、サプライヤなどの複数のコンピュータシステムの1つ又は複数のデータファイルに存在する、又は(例えば物理的なファイルから)入力する必要がある。これらのコンピュータシステムの中には、互換性のあるプラットフォーム及びプロトコル(「互換性のあるシステム」)を使用するものもあるが、コンピュータシステムの中には、相変わらず本質的に異なるプラットフォーム及び/又はプロトコル(「互換性のないシステム」)を使用するものもある。残念ながら、互換性のないシステムは、どうひいき目にみても、コンピュータシステム中の入力情報にアクセスし、それを伝えることを難しくする。
【0005】
[0007]入力情報への自動的なアクセス、及び/又は互換性のあるシステムと互換性のないシステムとの間での通信を行うための従来のソリューションは、(i)手動ソリューション、及び(ii)自動ソリューションを含む。手動ソリューションは、人々を使用して、互換性のないシステムとインターフェイスをとり、それによってこうした人々は、互換性のないコンピュータとの間で入力情報の転送を手動で行う。一方、自動ソリューションは、特に互換性のないシステムとインターフェイスをとるように構成されたカスタマイズされたソフトウェア及び/又はハードウェア(「カスタマイズされたインターフェイス」)を使用する。
【0006】
[0008]従来のソリューションは、1組の状況が与えられると、特定のニーズに適合することはできるが、こうした従来のソリューションは、時間、費用、及びリソースに関して、会社にとって犠牲が大きい可能性がある。例えば、会社には、初期バージョンのカスタマイズされたインターフェイスを作成し、テストし、実施し、そのサポートを提供するための時間、費用、及びリソースの最初の出費がある。しかし、入力情報が、初期バージョンのカスタマイズされたインターフェイスを作成するときに考慮されていない、又は見落とされた互換性のないシステムにあるとき、会社には、カスタマイズされたインターフェイスの追加のバージョンを作成し、テストし、実施し、そのサポートを提供するための時間、費用、及びリソースの追加の出費がある。更に、会社は、コンピュータシステムに対する更新、アップグレード、又は他の変更のために、カスタマイズされたインターフェイスが完全に機能しない、又は機能しているとしても適切に機能しなくなったとき、新しい、又は手直しされた実施を形成するための時間、費用、及びリソースの他の追加の費用を被ることがある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
[0009]従って、互換性のある及び本質的に異なるプラットフォーム及び/又はプロトコルの両方を有するコンピュータシステム間での入力情報へのアクセス及びその通信がカスタマイズされたインターフェイスを必要としないワークフローの生成、配置、及び/又は実行を容易にするためのシステム及び方法が必要である。すなわち、互換性のある及び本質的に異なるプラットフォーム及び/又はプロトコルの両方のコンピュータシステム間での相互運用性を容易にするワークフローの生成、配置、及び/又は実行を容易にするシステム及び方法である。更に、コンピュータシステム及び/又はコンピュータシステムの追加への更新、アップグレード、又は他の変更にもかかわらず、入力情報へのアクセス及びその通信が提供され得るワークフローの生成、配置、及び/又は実行を容易にするためのシステム及び方法が必要である。
【0008】
[0010]上述した特徴が実現される方法を詳しく理解できるように、添付の図面に示された図を参照して、以下、詳細に説明する。
【0009】
[0011]添付の図面における図は、詳細な説明と同様、例であることに留意されたい。従って、図及び詳細な説明は、限定的なものと考えられるのではなく、他の同様に有効な例が可能であり、又あり得る。更に、図における類似の参照番号は、類似の要素を示す。
【図面の簡単な説明】
【0010】
【図1】ワークフローの生成、配置、及び/又は実行を容易にするためのユーザデバイスの一例を示すブロック図である。
【図2】ワークフローの生成、配置、及び/又は実行を容易にする容易にするためのフローを示すフロー図である。
【図3】ワークフローを生成し、配置し、及び/又は実行するためのシステムを示すブロック図である。
【図4】ワークフローの生成、配置、及び/又は実行を容易にするためのフローを示すフロー図である。
【図5】ワークフローを生成し、配置し、及び/又は実行するための別のシステムを示すブロック図である。
【図6】ワークフローの生成、配置、及び/又は実行を容易にするのに使用するためのグラフィカルユーザインターフェイスの表示画面の一例を示すグラフィカル図である。
【発明を実施するための形態】
【0011】
[0018]以下の詳細な説明において、本明細書に記載した実施形態例又は他の例の完全な理解を提供するために、多数の特定の詳細が記載されている。しかし、これらの実施形態及び例は、特定の詳細無しに実施され得ることを理解されたい。別の例において、よく知られている方法、手順、構成要素、及び回路は、以下の説明を不明瞭にしないように、詳しくは記載されていない。更に、開示した実施形態は、例示の目的にすぎず、開示した実施形態の代わりに、又は開示した実施形態との組み合わせで、他の実施形態を使用することもできる。
【0012】
[0019]アーキテクチャ例
【0013】
[0020]図1は、ワークフローの生成、配置、及び/又は実行を容易にするためのユーザデバイス100の一例を示すブロック図である。上記のように、このワークフローは、それに入力された情報に作用する、及び/又はそれを出力するための対応する自動的なアクティビティ(「タスクの機能」)をそれぞれ定義する複数のタスクを含む。
【0014】
[0021]ユーザデバイス100は、例えば、パーソナルコンピュータ、ポータブルコンピュータ、ハンドヘルドコンピュータ、携帯電話、デジタルアシスタント、パーソナルデジタルアシスタント、セルラー電話、スマートフォン、ページャ、デジタルタブレット、ラップトップコンピュータ、インターネット機器などのうちの任意のもの、又は任意の組み合わせとすることができる。一般に、ユーザデバイス100は、マイクロソフト(Microsoft)(登録商標)ウィンドウズ(Windows)(登録商標)、リナックス(Linux)及び/又はシンビアン(Symbian)など、任意の適したオペレーティングシステム上で動作し、ソフトウェアを実行することができるプロセッサベースのプラットフォームを含む。
【0015】
[0022]しかし、ユーザデバイス100は、多数の要素を含むことができ、その多くは、説明を簡単にするために、図1に示されていない。ユーザデバイス100を表し得るユーザデバイスのアーキテクチャ例の詳細は、図3を参照して説明される。図1に示すように、ユーザデバイス100は、それぞれの結合を介して、モニタ又は他の表示装置(まとめて「モニタ」)104及び/又は入出力デバイス(「I/O」)106を制御し、操作し、又はそうでなければそれと対話するよう動作可能な処理プラットフォーム102を含む。
【0016】
[0023]モニタ104は、処理プラットフォーム102によって生成される閲覧可能な画像を表示する任意の適したデバイスとすることができる。例えば、モニタ104は、液晶表示装置ベースのモニタ、ブラウン管モニタ、プラズマディスプレイモニタ、表面伝導型電子放出素子ディスプレイモニタ、有機発光ダイオードディスプレイモニタ、又はスーパービデオグラフィックアレイ、デジタル仮想インターフェイス、位相反転線(Phase Alternating Line)、SECAM、NTSCなど、テレビ及び/又はコンピュータプロトコルを使用して閲覧可能な画像を表示することができる任意の他のモニタのうちの任意のもの、又はその任意の組み合わせとすることができる。
【0017】
[0024]I/Oデバイス106は、処理プラットフォーム102の動作を制御し、操作し、又はそうでなければそれと対話するために、ユーザ(人又はマシン)から入力を受け付ける任意のデバイスとすることができる。I/Oデバイス106の例には、マウス、ジョイスティック、トラックボール、タッチパッド、ポインティングスティック、ライトペン、ヘッドポインタ、SOAPマウス、アイトラッキングデバイス、デジタイジングタブレット及びスタイラス、ユーザの動きをコンピュータジェスチャに変換するデータグローブ、及びキーボード又はタッチパッドなどのキー入力デバイスなどのポインティングデバイスのうちの任意のもの、又は任意の組み合わせがある。1つのデバイスとして示されているが、I/Oデバイス106は、2つ以上のデバイスに分けることができ、そのそれぞれは、I/Oデバイス106と比較して、低下した、向上した、又は同等の機能を有することができる。
【0018】
[0025]処理プラットフォーム102は、(i)グラフィカルユーザインターフェイス(「GUI」)ソフトウェア110などのソフトウェア、及び(ii)単一のファイル又は複数のファイルとして、又はそこにそれぞれ格納することができる1つ又は複数のレコード又は他のデータ構造(まとめて「レコード」)112を格納することができるメモリ108を含む。レコード112は、拡張可能なマークアップ言語(「XML」)、拡張可能なマークアップ言語−リモートプロシージャコールプロトコル(「XML/RPC」)などのマークアップ又はマークアップのような言語を使用して、又はハイパーテキストトランスファプロトコル(「HTTP」)、シンプルオブジェクトアクセスプロトコル(「SOAP」)など所与のプロトコルに従って形成されたテキスト、テーブル、データベース、分散ハッシュテーブル、分散コンカレントオブジェクトストア、ドキュメントとして構築することができる。
【0019】
[0026]レコード112は、ワークフローレコード114、ワークフロー操作レコード116〜116、及びワークフロー順序付けレコード118〜118を含むことができる。ワークフローレコード114は、例えば、1つ又は複数のファイルにXMLドキュメントとして格納することができる。ワークフロー操作レコード116〜116は、1つ又は複数のファイルに格納され、ワークフロー順序付けレコード118〜118は、1つ又は複数のファイルに格納することができる。
【0020】
[0027]以下により詳細に記載するように、ワークフロー操作レコード116〜116のそれぞれは、ワークフローのタスクのうちの1つに対応する。これらのタスクのそれぞれは、タスクの適切な実行を達成するための事前の設定操作及び/又はその後の妥当性検査操作と共にこうしたタスクを終了させるための一連の論理的な操作として構成することができる。タスクの論理的な設定及び/又は妥当性検査操作は、所与の機能を呼び出す、又は所与の値を変数に割り当てるなど、こうした機能のほんの一部分を扱う個々の低レベルのプログラミング構文を実行するための情報の形をとるのではなく、情報を取得し、変形し、出力するための1つ又は複数の複雑なプロセスに関連付けられている機能の抽象概念の形をとることができる。これを容易にするために、ワークフロー操作レコード116〜116は、対応するタスクのそれぞれについての1つ又は複数のパラメータを含むことができる。タスクのそれぞれについてのパラメータ(「タスクパラメータ」)は、タスクの機能の表示、タスクの入力情報への1つ又は複数の参照、及び/又はタスクを生成し、配置し、及び/又は実行するためのサービス、設定、ルール、変数、数式、テンプレート、指数、指示、コマンド、フィールドなどへの1つ又は複数の参照を含むことができる。
【0021】
[0028]ワークフロー順序付けレコード118〜118のそれぞれは、あるタスクの別のタスクに対する順序付けに対応する。これを容易にするために、ワークフロー順序付けレコード118〜118のそれぞれは、こうした順序付けに関連付けられている1つ又は複数のパラメータ(「シーケンスパラメータ」)を含むことができる。シーケンスパラメータは、順序付けるためのタスクの表示、タスクの実行の順序、タスクの実行の順序を管理する1組の条件、及び/又は順序付けを生成し、配置し、及び/又は実行するためのサービス、設定、ルール、変数、数式、テンプレート、指数、指示、コマンドなどへの1つ又は複数の参照を含むことができる。
【0022】
[0029]ワークフローレコード114は、タスクのすべての又は一部についてのタスクパラメータ、及びワークフローにおけるシーケンスのすべて又は一部についてのシーケンスパラメータを含むことができる。あるいは、ワークフローレコード114は、タスクのすべて又は一部についてのタスクパラメータを含み、順序付けと一致する順序で配列することができる。ワークフローレコード114、ワークフロー操作レコード116〜116、及びワークフロー順序付けレコード118〜118は、他の形をとってもよく、他の情報を含んでもよい。
【0023】
[0030]メモリ108に加えて、処理プラットフォーム102は、適したオペレーティングシステムを実行(例えば、開始、生成、稼働、維持)し、その上で動作する1つ又は複数のプロセッサ(まとめて「プロセッサ」)120を含む。プロセッサ120は、GUIソフトウェア110を実行し、メモリ108にレコード112を格納し、ワークフローの生成、配置、及び/又は実行を容易にするためにワークフローレコード114を発送し、トリガを発行し、及び/又はワークフローの生成、配置、及び/又は実行をもたらすために1つ又は複数のコマンド及び/又は命令を発行することができる。プロセッサ108の例には、従来のプロセッサ、マイクロプロセッサ、マルチコアプロセッサ、及び/又はマイクロコントローラなどがある。
【0024】
[0031]GUIソフトウェア110は、プロセッサ120によって実行されると、GUIを実行し、モニタ104上に、GUIの少なくとも1つの表示画面122をレンダリングすることができる。表示画面122は、ウィンドウ124を含む。次いでウィンドウ124は、ウィジェットペイン126、ウィジェットツールバー128、及びワークフローペイン130を含む。
【0025】
[0032]ウィジェットペイン126は、タスクウィジェット132〜132を含む。タスクウィジェット132〜132は、ワークフローに含めるために選択され得るタスクを図示する。こうした選択は、ワークフローペイン130に記載されているワークフロー(「グラフィカルワークフロー」)134の図示表現にタスクウィジェット132〜132のインスタンスを含めることによって実行される。タスクウィジェット132〜132、及びその任意のインスタンスは、アイコンなどとしてGUIソフトウェア110によってレンダリングすることができる。
【0026】
[0033]ウィジェットツールバー128は、順序付けウィジェット136を含み、そのインスタンスは、グラフィカルワークフロー134、及び次いでワークフローを形成するために使用することもできる。順序付けウィジェット136は、タスクを連結し、順序付けるために使用され得る結合を図示する。順序付けウィジェット136、及びその任意のインスタンスは、コネクタラインなどとしてGUIソフトウェア110によってレンダリングすることができる。
【0027】
[0034]ワークフローペイン130は、グラフィカルワークフロー134を含む。グラフィカルワークフロー134は、順序付けウィジェットインスタンス140〜140と共に順序付けられたタスクウィジェットインスタンス138〜138を含むことができる。タスクウィジェットインスタンス140〜140のそれぞれは、タスクウィジェット132〜132のうちのいずれかのインスタンスとすることができ、順序付けウィジェットインスタンス138〜138のそれぞれは、順序付けウィジェット136のインスタンスとすることができる。
【0028】
[0035]タスクウィジェットインスタンス138〜138は、それぞれワークフロー操作レコード116〜116と関連付けられ、ワークフロー操作レコード116〜116は、タスクウィジェットインスタンス138〜138によって表されるタスクのタスクパラメータを含むことができる。同様に、順序付けウィジェットインスタンス140〜140は、それぞれワークフロー順序付けレコード118〜118と関連付けられ、ワークフロー順序付けレコード118〜118は、順序付けウィジェットインスタンス140〜140によって表されるシーケンスのシーケンスパラメータを含むことができる。
【0029】
[0036]ワークフロー操作レコード138〜138、ワークフロー順序付けレコード140〜140、及びワークフローレコード114は、上記で3つの個別のエンティティとして図示されているが、3つのエンティティの図及び使用は、省かれてもよい。例えば、ワークフローレコード114(又は任意の他のレコード112)は、タスクウィジェットインスタンス138〜138によって表されるタスクのタスクパラメータ、及び順序付けウィジェットインスタンス140〜140によって表されるシーケンスのシーケンスパラメータを含むことができる。
【0030】
[0037]あるいは、ワークフローレコード114(又は任意の他のレコード112)は、タスクウィジェットインスタンス138〜138によって表されるタスクのタスクパラメータを含み、順序付けウィジェットインスタンス140〜140の集合的なシーケンスよって表される順序付けに一致した順序で配列することができる。上記を容易にするために、タスクウィジェットインスタンス138〜138及び順序付けウィジェットインスタンス140〜140は、ワークフローレコード114に直接関連付けることができる。ワークフローレコード114、ワークフロー操作レコード116〜116、及びワークフロー順序付けレコード118〜118は、他の形をとってもよく、及び他の方法で配列されてもよい。
【0031】
[0038]更に、ウィンドウ124は、図示するように、2つのペイン及び1つのツールバーのみを含むが、ウィンドウ124は、より多くの又はより少ないペイン及びツールバーを含んでいてもよい。更に、ウィンドウ124は、タブ、ドロップダウンメニュー、コマンドメニューなどを含んでいてもよい。ウィジェットペイン126は、示されているものより多くの又はより少ないタスクタイプのウィジェットを含んでいてもよく、ウィジェットツールバー128は、示されているものより多くの順序付けタイプウィジェットを含んでいてもよい。
【0032】
[0039]代替として、ウィジェットペイン126及びウィジェットツールバー128は、タスクタイプ及び順序付けタイプの両方のウィジェットを含む単一のペイン又はツールバーに結合することができる。別の代替として、ウィジェットペイン126及びウィジェットツールバー128の一方又は両方は、タスクタイプ及び順序付けタイプの両方のウィジェットを含んでいてもよい。
【0033】
[0040]別の代替として、順序付けタイプのウィジェット136のうちの1つ又は複数は、タスクウィジェット132〜132に結合され、統合され、又はそうでなければ一体的に形成されて、1つにまとめられたウィジェットを形成することができる。1つにまとめられたウィジェットは、タスクタイプのウィジェットごとに個別の順序付けタイプのウィジェットを有することを不要にする。こうした1つにまとめられたウィジェットは、コネクタ要素を有するアイコンなどとしてGUIソフトウェア110によってレンダリングすることができる。ワークフローペイン130における1つにまとめられたウィジェットのインスタンスは、ワークフロー操作レコード116〜116及びワークフロー順序付けレコード118〜118の両方に関連付けられてもよい。あるいは、1つにまとめられたウィジェットのインスタンスは、ワークフローレコード114に直接関連付けられてもよい。
【0034】
[0041]操作例
【0035】
[0042]次に図2を参照すると、ワークフローの生成、配置、及び/又は実行を容易にするためのフロー200を示すフロー図が示されている。便宜上、フロー200は、図1のユーザデバイス100を参照して記載されている。しかし、フロー200は、他のアーキテクチャを使用して実行することもできる。
【0036】
[0043]フロー200は、終了ブロック202で開始し、プロセッサ120がGUIソフトウェア110を実行して、GUIを形成し、表示画面124のレンダリングを行う。終了ブロック202の後、フロー200は、プロセスブロック204に移行する。
【0037】
[0044]プロセスブロック204に示されているように、GUIソフトウェア110は、グラフィカルワークフロー134を形成することができる。GUIソフトウェア110は、I/Oデバイス106を介してユーザによってGUIの1つ又は複数の操作に応答してそのように実行することができる。例えば、GUIソフトウェア110は、タスクウィジェット132〜132から選択し、こうしたインスタンスをワークフローペイン130に入れる(例えば、ドラッグアンドドロップによって)ために、I/Oデバイス106がGUIを操作することに対応して、タスクウィジェットインスタンス138〜138をワークフローペイン130にレンダリングすることができる。
【0038】
[0045]更に、GUIソフトウェア110は、(i)ウィジェットツールバー128からこうしたインスタンスを選択する、(ii)ワークフローペイン130にインスタンスを入れる、及び(iii)タスクウィジェットインスタンス138〜138を順序付けウィジェットインスタンス140〜140と結合するために、I/Oデバイス106がGUIを操作することに応答して順序付けウィジェットインスタンス140〜140をワークフローペイン130にレンダリングすることができる。
【0039】
[0046]GUIソフトウェア110は、I/Oデバイス106によるGUIの操作を介して、レコード114、116〜116及び118〜118を埋めるために、タスク及びシーケンスパラメータを取得することができる。例えば、GUIソフトウェア110は、グラフィカルワークフロー132におけるタスクウィジェットインスタンス138〜138の存在に応じて、タスクの機能を定義するタスクパラメータを取得することができる。タスクウィジェットインスタンス138は、例えば、ワークフローを開始するためのタスク(「開始タスク」)を表すことができる。開始タスクパラメータは、上述したように、ワークフローの開始をマークするための開始タスクの機能の情報を含むことができる。グラフィカルワークフロー134にタスクウィジェットインスタンス138があることによって、開始タスクパラメータでレコード114及び/又は116〜116を埋めることが可能になる。
【0040】
[0047]あるいは及び/又は更に、GUIソフトウェア110は、ユーザがキーボード又は他のI/Oデバイスを使用してGUIの1つ又は複数の表示画面(図示せず)の1つ又は複数のフィールドに1文字又は文字列を入力することによって、開始及び/又は他のタスクパラメータを補うことができる。このように情報を入力することは、タスクウィジェットインスタンス138〜138を選択し、ワークフローペイン130に入れる(例えば、ドラッグアンドドロップ)ことの代替として使用することもできる。例えば、ユーザは、タスクウィジェットインスタンス138〜138のそれぞれについて、GUIの表示画面のフィールドのうちの1つ又は複数に1文字又は文字列を入力することができる。GUIソフトウェア110は、次いで、こうしたエントリを解釈し、GUIにタスクウィジェットインスタンス138〜138を応答可能なようにレンダリングすることができる。
【0041】
[0048]タスクパラメータ同様、GUIソフトウェア110は、グラフィカルワークフロー132の存在及びレイアウトに応じて、タスクウィジェットインスタンス140〜140の実行の順序を開発するために使用され得るシーケンスパラメータを取得することができる。例えば、シーケンスパラメータは、タスクウィジェットインスタンス138〜138のうちの1つの出力をタスクウィジェットインスタンス138〜138のうちの別のものへの入力に接続するリンク(順序付けウィジェットインスタンス140〜140によってレンダリングされる)のそれぞれに応じて取得することができる。あるいは及び/又は更に、GUIソフトウェア110は、1文字又は文字列をGUIの1つ又は複数の表示画面(図示せず)の1つ又は複数のフィールドに入力することによって、シーケンスパラメータを取得することができる。次いで、このようにパラメータを入力することは、順序付けウィジェットインスタンス140〜140を選択し、ワークフローペイン130に入れることの代替を提供することができる。上述したように、次いで、GUIソフトウェア110は、エントリを解釈し、タスクウィジェットインスタンス138〜138を接続するリンクを作成する順序付けウィジェットインスタンス140〜140を応答可能なようにレンダリングすることができる。
【0042】
[0049]プロセスブロック204の後、フローは、プロセスブロック206に移行することができる。プロセスブロック206に示されるように、GUIソフトウェア110は、グラフィカルワークフロー134からワークフローレコード114を生成し、又はそうでなければ形成することができる。例えば、GUIソフトウェア110は、プロセスブロック204で獲得されたタスク及びシーケンスパラメータでワークフローレコード114を埋めることができる。
【0043】
[0050]ワークフローレコード114を直接埋める代替として、GUIソフトウェア110は、まず、ワークフロー操作レコード116〜116及びワークフロー順序付けレコード118〜118を埋めることができる。例えば、GUIソフトウェア110は、ワークフロー操作レコード116〜116を、プロセスブロック204で獲得されたタスクインスタンス138〜138に関連付けられているタスクパラメータで埋めることができる。更に、GUIソフトウェア110は、ワークフロー順序付けレコード118〜118を、プロセスブロック204で獲得された順序付けウィジェットインスタンス140〜140に関連付けられているシーケンスパラメータで埋めることもできる。ワークフロー操作及びワークフロー順序付けレコード116〜116、118〜118を埋めた後、GUIソフトウェア110は、ワークフロー操作レコード116〜116を順序付けに従ってワークフローレコード114に挿入することができる。
【0044】
[0051]更に、GUIソフトウェア110は、レコード114、116〜116、及び118〜118を特定のやり方で配列することができる。例えば、レコード114、116〜116、及び118〜118におけるタスク及びシーケンスパラメータは、オブジェクト指向プログラミングに関して、1つ又は複数の所与のクラスのオブジェクトのそれぞれのインスタンスとして配列することができる。一例として、タスクウィジェットインスタンス138〜138は、それぞれ、開始タスク及びワークフローを停止するためのタスク(「停止タスク」)を定義することができる。ワークフロー操作レコード116、116は、それぞれ開始及び停止クラスの開始及び停止オブジェクトの開始及び停止インスタンスの配置のためのタスクパラメータを定義する。ワークフロー順序付けレコード118〜118及びワークフローレコード114は、類似のやり方で配列することができる。
【0045】
[0052]GUIソフトウェア110は、ワークフローの生成、配置、及び/又は実行を容易にするために、ワークフローレコード114をターゲットデバイスに発送するように準備することもできる。例えば、GUIソフトウェア110は、1つ又は複数の適した情報交換機構に従ってワークフローレコード114をフォーマットすることができる。こうした交換機構の例には、American Standard Code for Information Interchange(「ASCII」)、XML、XML/RPC、HTTP、SOAP、共有メモリ、ソケット、ローカル又はリモートのプロシージャコーリングなどがある。又、ワークフローレコード114の共有及び反復を容易にすることに加えて、交換機構は、処理プラットフォーム102と、ワークフローレコード114が発送され得るターゲットデバイス、例えばホストデバイス306(図3)などとの間の相互運用性を効率的に容易にする。
【0046】
[0053]プロセスブロック206の後、フロー200は、プロセスブロック208に移行する。プロセスブロック208に示されるように、GUIソフトウェア110は、ワークフローの生成、配置、及び/又は実行を容易にするために、ワークフローレコード114を発送することができる。これを行うために、GUIソフトウェア110は、処理プラットフォーム102に、ユーザデバイス100からターゲットデバイスにワークフローレコード114を発送させることができる。発送は、GUIソフトウェア110によって開始されるトリガに応答して(例えば、GUIのユーザの操作に応答して)、又はターゲットデバイスからの照会に応答して行うことができる。
【0047】
[0054]あるいは、GUIソフトウェア110は、例えばターゲットデバイスにおいてワークフローレコード114を同期し、及び/又は複製するためのルーチンを使用して、処理プラットフォーム102に、ワークフローレコード114を定期的に発送させることができる。プロセスブロック208の後、フロー200は、プロセスブロック210に移行する。
【0048】
[0055]プロセスブロック210に示されるように、GUIソフトウェア110は、処理プラットフォーム102に、GUIから出るコマンドを発行させて、ワークフローの実行をもたらすことができる。実行コマンドは、例えば、GUIから出るトリガとすることができる。このトリガは、GUIのユーザの操作に応答して開始することができる。
【0049】
[0056]GUIソフトウェア110は、処理プラットフォーム102に、ワークフローレコード114の発送後の任意の時、あるいは発送時と同時又はほぼ同時に実行コマンドを発行させることができる。以下により詳しく説明するように、ターゲットデバイスは、実行コマンドに応答して、ワークフローレコード114を直接解釈してワークフローを実行することができる。
【0050】
[0057]ワークフローレコード114を直接解釈することの代替として、ターゲットデバイスは、ワークフローレコード114に応じて、ワークフローを実行するためのコンピュータ実行可能命令(又は単に「コード」)(「ワークフロー実行可能コード」)を生成することができる。ターゲットデバイスは、実行時より前、あるいは実行時と同時又はほぼ同時にワークフロー実行可能コードを生成することができる。前記を容易にするために、GUIソフトウェア110及び/又は処理プラットフォーム102は、実行コマンドの前に、ターゲットデバイスにワークフロー実行可能コードを生成させるための別のコマンドを発行することができる。又、ターゲットデバイスは、ワークフロー実行可能コードをテストするための1つ又は複数のテストを生成することもできる。
【0051】
[0058]プロセスブロック210の後、フロー200は、終了ブロック212に移行し、この時点でフロー200は終了する。あるいは、フロー200を、定期的に、継続的に、又はワークフローのタスクのうちの1つ又は複数の追加、削除、又は変更など、ある条件の結果としてトリガして、繰り返してもよい。別の代替として、ワークフローの追加の配置をもたらすために、プロセスブロック210を、定期的に、継続的に、又はある条件の結果としてトリガして、繰り返してもよい。
【0052】
[0059]システムアーキテクチャ例
【0053】
[0060]図3は、ワークフローの生成、配置、及び/又は実行を容易にするためのシステム300を示すブロック図である。システム300は、ユーザデバイス302及びホストデバイス(「ホスト」)306を含む。ユーザデバイス302及びホスト304は、ネットワーク304を介して通信可能に連結することができる。このように、ユーザデバイス302及びホスト304は、ネットワーク304を介して運ばれる1つ又は複数の通信を介して、入力及び/又は配置情報、及びワークフローの配置に関連付けられている他の情報を交換することができる。
【0054】
[0061]ネットワーク304は、パブリック又はプライベートの地上無線又は衛星又はワイヤーラインネットワークの任意の組み合わせを含めて、ほぼすべての通信又はコンピュータネットワークの部分的又は完全な配置とすることができる。従って、ネットワーク302は、公衆電話交換網(「PSTN」)、インターネット、コア及び専有のパブリックネットワーク、1G、2G、2.5G及び3Gの電気通信網などの無線音声及びパケットデータネットワーク、無線オフィス電話システム(「WOTS」)及び/又はBluetooth及び/又はIEEE802.11WLAN、無線パーソナルエリアネットワーク(「WLAN」)、無線メトロポリタンエリアネットワーク(「WMAN」)などを含む無線ローカルエリアネットワーク(「WLAN」)からのネットワーク要素を含むことができる。
【0055】
[0062]ネットワーク要素は、ワークフローレコード114のトランスポート、トリガ、実行コマンド、及びワークフローを生成し、配置し、及び/又は実行するための他の情報(まとめて「ワークフローコンテンツ」)を提供するための回路交換及びパケットデータ要素を含み、任意の数のプロトコルを使用して、こうした情報をユーザデバイス302及びホスト304に提供することと一致する任意の方法で、こうしたワークフローコンテンツを伝えるように構成することができる。これらのプロトコルは、回路交換及び/又はパケットデータネットワークなどでコンテンツを伝えるための標準化された、専有の、オープンソースの、及び自由に入手可能な通信プロトコルを含むことができる。
【0056】
[0063]ユーザデバイス302は、本明細書に後述されるものを除いて、図1のユーザデバイス100と似ている。ユーザデバイス302は、任意のコンピューティングデバイス、システムなどとすることができ、単一のデバイスに形成されてもよく、又単一のサーバ、クライアント、ピア、又は他のタイプのノードに集中させてもよい。あるいは、ユーザデバイス302は、1つ又は複数の個別のデバイスから形成されてもよく、従って、いくつかのサーバ、クライアント、ピア、又は他のタイプのノードに分散されてもよい。更に、ユーザデバイス302は、スケーラブルとすることもできる(すなわち、スケールアップ及び/又はスケールアウト手法を使用することができる)。
【0057】
[0064]示されるように、ユーザデバイス302は、それぞれの結合を介してモニタ104及び/又はI/Oデバイス106を制御し、操作し、又はそうでなければそれと対話するよう動作可能な処理プラットフォーム308を含むことができる。処理プラットフォーム308は、1つ又は複数の処理ユニット(まとめて「プロセッサ」)310、メモリ312、サポート回路314、及びバス316を含む。メモリ310は、1つ又は複数の従来のプロセッサ、マイクロプロセッサ、マルチコアプロセッサ、及び/又はマイクロコントローラとすることができる。サポート回路314は、プロセッサ310の操作を容易にし、例えば、I/Oインターフェイス、1つ又は複数のネットワークインターフェイスユニット(「NIU」)、キャッシュ、クロック回路、電源などを含めて、よく知られている回路構成又は回路を含むことができる。
【0058】
[0065]プロセッサ310は、ネットワーク304を介してワークフローコンテンツホスト306を交換するためにNIUを使用することができる。従って、NIUは、地上無線、衛星、及び/又はワイヤーラインメディアのうちの任意のものを介して通信するように構成することができる。
【0059】
[0066]メモリ312は、ソフトウェア318、レコード112、114、116〜116及び118〜118、並びにオペレーティングシステム320など様々な他の格納されたソフトウェアパッケージを格納する(及び取得するためにプロセッサ310から要求を受信する)ことができる。メモリ312は、ランダムアクセスメモリ、読み取り専用メモリ、光ストレージ、磁気ストレージ、取外式ストレージ、消去可能プログラマブル読み取り専用メモリ及びその変形、コンテンツアドレス可能メモリ及びその変形、フラッシュメモリ、ディスクドライブストレージ、取外式ストレージ、及びその組み合わせなどとすることができ、又はそれらを使用することができる。更に、メモリ312は、ユーザデバイス302の操作を制御し、及び/又は機能の実行を容易にするために、オペランド、演算子、次元値、構成、及びオペレーティングシステム320及びソフトウェア318によって使用される他のデータを格納する(及び取得するためにプロセッサ310から要求を受信する)ことができる。
【0060】
[0067]バス320は、プロセッサ310、メモリ312、サポート回路314、及びユーザデバイス302の他の部分(図示及び非図示)間のデジタル情報の送信を提供する。I/Oインターフェイスは、ユーザデバイス302の(図示及び非図示の)構成要素間のデジタル情報の送信を制御するように構成されている。更に、I/Oインターフェイスは、ユーザデバイス302に配置された、関連付けられた、又はそうでなければ接続されたI/Oデバイス間のデジタル情報の送信を制御するように構成されている。I/Oデバイスの例には、I/Oデバイス106、モニタ104、及び(i)それだけには限定されないが、テープドライブ、フロッピードライブ、ハードディスクドライブ、又はコンパクトディスクドライブを含む記憶装置、(ii)受信機、(ii)送信機、(iii)スピーカ、(iv)ディスプレイ、(v)音声シンセサイザ、(vi)出力ポート、及び(vii)類似のもののうちの任意のもの、又は任意の組み合わせなどがある。
【0061】
[0068]オペレーティングシステム320は、ユーザデバイス302を操作するため、及びソフトウェア318が実行され得るプラットフォームを提供するためのコードを含むことができる。ソフトウェア318は、GUIソフトウェア110、並びにユーザ及びホストデバイス302、306と互換性のある通信及びセキュリティプロトコルを使用して、ワークフローコンテンツの交換を実行し得る他のユーザデバイスソフトウェア322を含むことができる。
【0062】
[0069]GUIソフトウェア110及びユーザデバイスソフトウェア322は、スタンドアロン、クライアント/サーバ、ピアツーピア、及び他のフォーマットのうちの任意のものとすることができる。GUIソフトウェア110は、ホスト306によって提供される1つ又は複数のサービスにアクセスするためのコードを含むことができる。ユーザから取得されたこのコード及び情報を使用して、GUIソフトウェア110は、その識別を実証し、次いでホスト306によって提供されたサービスへのアクセス(例えば、閲覧、構成、及び/又は実行)の許可を受信するよう動作可能である。
【0063】
[0070]ホスト306は、ホストアプリケーションサーバ324を含めて、1つ又は複数のサーバを含むことができる。ホストアプリケーションサーバ324は、1つ又は複数の汎用又は専用コンピュータ、パーソナルコンピュータ、メインフレーム、ミニコンピュータ、サーバタイプコンピュータ、及び/又はマイクロソフト(登録商標)ウィンドウズ(登録商標)及び/又はリナックスなど、任意の適したオペレーティングシステムで動作し、ソフトウェアを実行することができる任意のプロセッサベースのプラットフォームに配置することができる。
【0064】
[0071]ユーザデバイス302と同様に、ホストアプリケーションサーバ324は、多数の要素を含むことができ、その多くは、説明を簡単にするために、図3に示されていない。ホストアプリケーションサーバ324の要素は、単一のデバイスに形成されてもよく、又単一のサーバ、クライアント、ピア、又は他のタイプのノードに集中させてもよい。あるいは、ホストアプリケーションサーバ324の要素は、2つ以上の個別のデバイスから形成されてもよく、従って、いくつかのサーバ、クライアント、ピア、又は他のタイプのノードに分散されてもよい。
【0065】
[0072]図示したように、ホストアプリケーションサーバ324は、1つ又は複数の処理ユニット(まとめて「プロセッサ」)326、メモリ328、サポート回路330、及びバス332を含む。プロセッサ326は、1つ又は複数の従来のプロセッサ、マイクロプロセッサ、マルチコアプロセッサ、及び/又はマイクロコントローラなどとすることができる。
【0066】
[0073]バス332は、プロセッサ326、メモリ328、サポート回路330、及びホストアプリケーションサーバ324の他の部分(図示せず)間のデジタル情報の送信を提供する。サポート回路330は、プロセッサ326の操作を容易にし、例えば、1つ又は複数の入出力I/Oインターフェイス、1つ又は複数のNIU、キャッシュ、クロック回路、電源などを含めて、よく知られている回路構成又は回路を含むことができる。
【0067】
[0074]I/Oインターフェイスは、ホストアプリケーションサーバ324の構成要素(図示及び非図示)間のデジタル情報の送信を制御するためのインターフェイスを提供する。更に、I/Oインターフェイスは、ホストアプリケーションサーバ324に関連付けられた、又はそうでなければ接続されたI/Oデバイス(図示せず)間のデジタル情報の送信を制御するためのインターフェイスを提供する。I/Oデバイス(図示せず)は、(i)それだけには限定されないが、テープドライブ、フロッピードライブ、ハードディスクドライブ、又はコンパクトディスクドライブを含む記憶装置、(ii)受信機、(ii)送信機、(iii)スピーカ、(iv)ディスプレイ、(v)音声シンセサイザ、(vi)出力ポート、及び(vii)マウス、ジョイスティック、トラックボール、タッチパッド、ポインティングスティック、ライトペン、ヘッドポインタ、SOAPマウス、アイトラッキングデバイス、デジタイジングタブレット及びスタイラス、ユーザの動きをコンピュータジェスチャに変換するデータグローブ、及びキーボード又はタッチパッドなどのキー入力デバイスなどのポインティングデバイス、及び(vii)類似のものうちの任意のもの、又は任意の組み合わせとして組み込むことができる。
【0068】
[0075]NIUは、ワークフローコンテンツの交換(例えば、送信及び/又は受信)を容易にする。従って、NIUは、地上無線、衛星、及び/又はワイヤーラインメディアを介して通信するように構成することができる。
【0069】
[0076]メモリ328は、オペレーティングシステム334、アプリケーションサーバソフトウェア336、及びワークフローアプリケーションソフトウェア338など、様々なソフトウェアパッケージを格納することができ、又、それらを取得するために、プロセッサ326によって照会を行うことができる。メモリ328は、ランダムアクセスメモリ、読み取り専用メモリ、光ストレージ、磁気ストレージ、取外式ストレージ、消去可能プログラマブル読み取り専用メモリ及びその変形、コンテンツアドレス可能メモリ及びその変形、フラッシュメモリ、ディスクドライブストレージ、取外式ストレージ、及びその組み合わせなどとすることができ、又はそれらを使用することができる。
【0070】
[0077]更に、メモリ328は、ワークフロー実行可能コードを生成するために、ワークフローレコード114及び1つ又は複数のライブラリ340を格納することができる。C++で記述され得るライブラリ340は、例えば、タスクのそれぞれに関連付けられているワークフロー実行可能コードを生成するためのルーチン(「タスクルーチン」)を含むことができる。更に、ライブラリ340は、ワークフローレコード114に記載されているシーケンスパラメータに従ってタスクルーチンを順序付けるためのルーチン(「シーケンスルーチン」)を含むことができる。
【0071】
[0078]メモリ328は、ホストアプリケーションサーバ324の操作を制御し、及び/又は機能の実行を容易にするために、オペランド、演算子、次元値、構成、及びアプリケーションサーバソフトウェア336及びオペレーティングシステム334によって使用される他のデータを格納することもできる。
【0072】
[0079]ホストアプリケーションサーバ324は、スケールアップ及び/又はスケールアウト手法に従って配置することができる。スケールアップ手法を使用して、ホストアプリケーションサーバ324は、対称的なマルチプロセッサアーキテクチャを使用して追加の容量を提供することによって、その処理能力、金額、及びネットワーク可能な接続の数を増やすことができる。このスケールアップ手法の利点は、こうした手法がスケールアウト手法に比べて簡略化された構成及び管理を提供することである。スケールアウト手法を使用して、ホストアプリケーションサーバ324は、必要に応じて容量を徐々に追加し、及び/又は削除する、複数のプロセッサ、複数のサーバにわたって仕事量のバランスをとる、特定のプロセッサ及び/又はサーバを特定のタスクを実行するための専用にする、物理的又は論理的サーバを使用する(例えば、マルチノードクラスタ手法)などによって、その処理能力、金額、及びネットワーク可能な接続の数を増やすことができる。
【0073】
[0080]オペレーティングシステム334は、ホストアプリケーションサーバ324を動作させるための様々なソフトウェア及び/又は実行可能な命令又はコードを含んでいてもよく、及び/又はそれに組み込まれていてもよい。オペレーティングシステム334は、プロセッサ326によって実行されると、アプリケーションサーバソフトウェア336及びワークフローアプリケーションソフトウェア338が実行され得るプラットフォームを提供する。
【0074】
[0081]ワークフローアプリケーションソフトウェア334は、プロセッサ326によって実行されると、ワークフローを生成し、配置し、及び/又は実行するよう動作可能である。これを容易にするために、ワークフローアプリケーションソフトウェア122は、ワークフローレコード114を解釈するためのインタプリタを含むことができる。インタプリタは、例えば、実行コマンドに応答してワークフローを実行するように、実行時にワークフローレコード114を直接解釈するためのコードを含むことができる。
【0075】
[0082]あるいは、ワークフローアプリケーションソフトウェア122は、例えば、ワークフロービルダモジュール及びワークフロー配置モジュールを含むことができる。ワークフロービルダモジュールは、プロセッサ326によって実行されると、ワークフローレコード114を取得し、ワークフローレコードに応じてワークフロー実行可能コードを生成するよう動作可能である。ワークフロー実行可能コードを生成するために、ワークフロービルダモジュール124は、パーサ及びコード生成器を含むことができる。
【0076】
[0083]パーサは、ワークフローレコード114からのタスク及び/又はシーケンスパラメータを構文解析するためのコード(「構文解析済み情報」)を含む。パーサは、ワークフローレコード114が適切に形成され、有効であることを検証するための機能を含むこともできる。
【0077】
[0084]コード生成器は、ライブラリ340のうちのどれがタスクに対応するかを決定するために、構文解析済み情報を検査し、構文解析済み情報をこうしたライブラリ340のうちの1つ又は複数と結合して、コードの組(「構文解析済みコードセット」)を形成するためのコードを含む。これを容易にするために、コード生成器は、構文解析済み情報に反映された順序付けに従って構文解析済み情報を順序付けるためのコードを含むこともできる。コード生成器は、構文解析済み情報を動的に及び/又はユーザ対話を介して配列又は再配列して、構文解析済み情報に反映された順序付けから逸脱し、ワークフローのタスクの実行の別の順序を提供するためのコードを含むこともできる。これは、(例えば構文解析情報を分析し、最適に効率的な実行シーケンスを決定することによって)効率、分岐を処理する、エラーを処理するなどのために行うことができる。
【0078】
[0085]コード生成器は、構文解析済みコードセットを、それらの構文解析済みコードセットを結合するためのライブラリ340(「結合ライブラリ」)のうちの1つ又は複数と結合するためのコードを含むこともできる。このコードは、隣接する構文解析済みコードセット間のタスク及び/又はシーケンスパラメータの適切な部分の転送を容易にするために、結合ライブラリを使用することができる。
【0079】
[0086]ワークフロービルダモジュールは、任意選択でコンパイラ(図示せず)を含むことができる。コンパイラは、ワークフロー配置モジュール126によって実行するためのワークフロー実行可能コードをコンパイルするためのコードを含む。あるいは、ワークフロービルダモジュール124は、当然、ワークフロー実行可能コードを生成するためにどのプログラミング言語が使用されるかに応じて、実行時まで又は全然ワークフロー実行可能コードをコンパイルしない場合がある。
【0080】
[0087]ワークフロー配置モジュールは、プロセッサ326によって実行されると、ワークフロー実行可能コードを実行するよう動作可能である。ワークフロー配置モジュールは、ネットワーク304を介して実行コマンドを受信、又はそうでなければ取得することに応答してワークフロー実行可能コードを実行することができる。ワークフロー実行可能コードの実行を実行するために、ワークフロー配置モジュールは、(以下で詳しく説明するように)ワークフローアプリケーションソフトウェア338及びアプリケーションサーバソフトウェア340の他のモジュールをプロビジョニングするために構成することができる。
【0081】
[0088]ワークフロービルダ及びワークフロー配置モジュールは、説明を容易にするために、個別のエンティティとして本明細書に記載される。しかし、ワークフロービルダ及びワークフロー配置モジュール又はその機能は、混じり合っていてもよく、又はそうでなければ、ワークフローアプリケーションソフトウェア324内に結合されてもよく、又はまったく存在しなくてもよい。あるいは、ワークフローアプリケーションソフトウェア324は、ワークフロービルダ及びワークフロー配置モジュールと同じ又はほぼ同じ機能を含むことができる。別の代替として、ワークフロービルダ及びワークフロー配置モジュールのそれぞれは、互いに、及び/又はワークフローアプリケーションソフトウェア324とは別のエンティティ(例えば、スタンドアロンソフトウェアパッケージ)とすることができる。
【0082】
[0089]ワークフロー配置操作
【0083】
[0090]次に図4を参照すると、ワークフローの生成、配置、及び/又は実行を容易にする容易にするためのフロー400を示すフロー図が示されている。便宜上、フロー400は、図3のシステム300を参照して記載されている。しかし、フロー400は、他のアーキテクチャを使用して実行することもできる。
【0084】
[0091]フロー400は、終了ブロック402で開始し、ユーザデバイス302がGUIソフトウェア110を実行してGUIを形成し、表示画面124のレンダリングを行う。終了ブロック402の後、フロー400は、プロセスブロック404に移行する。
【0085】
[0092]プロセスブロック404に示されるように、GUIソフトウェア110を介したユーザデバイス302は、ワークフローレコード114を発送のために準備する。GUIソフトウェア110は、図2のプロセスブロック204、206に従ってそのように行うことができる。GUIソフトウェア110は、ワークフローレコード114を、他の方法でも発送するように準備することができる。プロセスブロック404の後、フロー400は、プロセスブロック406に移行する。
【0086】
[0093]プロセスブロック406に示されるように、ワークフローアプリケーションソフトウェア338は、GUIソフトウェア110からワークフローレコード114を取得する。これを行うために、ワークフローアプリケーションソフトウェア338は、GUIの操作によってもたられる、又は代わりに同期及び/又は反復ルーチンによってもたらされる発送に応答して、ネットワーク304を介して、ワークフローレコード114を受信することができる。GUIソフトウェア110及びワークフローアプリケーションソフトウェア338は、適した情報交換機構のうちの任意のものを使用して、ワークフローレコード114の発送及び受信を実行することができる。プロセスブロック406の後、フロー400は、オプションのプロセスブロック408又はプロセスブロック410に移行することができる。
【0087】
[0094]オプションのプロセスブロック408に示されるように、ワークフローアプリケーションソフトウェア338は、ワークフローレコード114に応じてワークフロー実行可能コードを生成することができる。ワークフローアプリケーションソフトウェア338は、これを次のように行うことができる。
【0088】
[0095]ワークフローアプリケーションソフトウェア338は、ワークフローレコード114をワークフロービルダモジュールに渡すことができる。次いでワークフロービルダモジュールは、ワークフローレコード114をパーサに渡すことができる。パーサは、ワークフローレコード114からの構文解析済み情報を構文解析することができる。構文解析済み情報は、ワークフローレコード114からのタスク及び/又はシーケンスパラメータを含む。次いでパーサは、構文解析済み情報をコード生成器に渡すことができる。
【0089】
[0096]コード生成器は、ライブラリ340のうちのどれが構文解析済み情報と一致するかを決定するために、構文解析済み情報を検査することができる。これは、例えば、(例えば、各タスクパラメータにおけるタスクの機能の表示を検査することによって)ワークフローに含まれるタスクを決定するために、構文解析済み情報に記載されているタスクパラメータを検査するコード生成器を含むことができる。
【0090】
[0097]ワークフローに含まれるタスクを決定することに加えて、コード生成器は、構文解析済み情報に反映される順序付けに従ってタスクを順序付けることができる。これを実行するために、コード生成器は、まず、順序付けを取得するために、構文解析済み情報からシーケンスパラメータを選ぶことができる。次いで、コード生成器は、(グラフィカルワークフロー134によって表されるように)ワークフローで定義された順序でタスクが実行されるように、順序付けに従って構文解析済みコードセットを配列することができる。あるいは、コード生成器は、順序付けによって定義された順序とは異なる順序で、タスクを動的に、及び/又はユーザ対話を介して配列又は再配列することができる。コード生成器は、上述したように、最適に効率的な実行シーケンスを取得する、及び/又は分岐を処理する、エラーを処理するなどのために、これを行うことができる。
【0091】
[0098]更に、コード生成器は、ライブラリ340の中を検索して、タスク及び/又はシーケンスパラメータと一致する(と一致する、同じ、及び/又はほぼ同じパターンを有する)ライブラリ(「一致するライブラリ」)を決定することができる。一致するライブラリを探し出した後、コード生成器は、構文解析済みコードセットを形成するように、構文解析済み情報を一致するライブラリと結合することができる。コード生成器は、例えば、1つのタスクパラメータをこうしたタスクに対応する一致するライブラリに適用することによって、構文解析コードセットのそれぞれを形成することができる。これは、例えば、タスク及び/又はシーケンスパラメータで指定された基準を一致するライブラリのコードに組み込むことを含むことができる。更に、コード生成器は、タスク及び/又はシーケンスパラメータの適切な部分が隣接する構文解析済みコードセット間で移動するように、構文解析済みコードセットを結合するために、構文解析コードセットを構成する、又は結合ライブラリを含むことができる。いったん結合されると、構文解析済みコードセットは、ワークフロー実行可能コードを形成する。
【0092】
[0100]コード生成器は、任意選択で、ワークフロー実行可能コードをコンパイラに渡すことができる。次いでコンパイラは、ワークフロー実行可能コードをコンパイルして、それをワークフロー配置モジュール126によって実行するように用意することができる。あるいは、ワークフロービルダモジュール124は、実行時まで、又は全然ワークフロー実行可能コードをコンパイルしない場合がある。
【0093】
[0101]プロセスブロック408の後、フロー400は、プロセスブロック410に移行する。プロセスブロック410に示されるように、ワークフローアプリケーションソフトウェア338は、ネットワーク304を介してGUIソフトウェア110から実行コマンドを取得する。GUIソフトウェア110及びワークフローアプリケーションソフトウェア338は、適した情報交換機構のうちの任意のものを使用して、実行コマンドの発送及び受信を実行することができる。上述したように、実行コマンドは、ワークフローレコード114受信後のいつか、あるいは、ワークフローレコード114と同時又はほぼ同時に受信することができる。プロセスブロック410の後、フロー400は、プロセスブロック412に移行する。
【0094】
[0102]プロセスブロック412に示されるように、ワークフロー配置モジュールは、ワークフローを実行する。実行コマンドに応答して、ワークフローアプリケーションソフトウェア338は、ワークフローを実行するように、ワークフローレコード114を直接解釈することができる。
【0095】
[0103]直接解釈されない場合、ワークフローアプリケーションソフトウェア338は、それが実行コマンドを受信したことをワークフロー配置モジュールに示すことができる。あるいは、ワークフローアプリケーションソフトウェア338は、実行コマンドをワークフロー配置モジュールに渡して、ワークフロー配置モジュールにワークフローを実行させることができる。ワークフロー配置モジュールは、実行コマンドに応答してそのように行うことができる。
【0096】
[0104]実行コマンドがワークフロー実行可能コードの生成前にワークフローアプリケーションソフトウェア338で受信されると、ワークフローアプリケーションソフトウェア338及び/又はワークフロー配置モジュールは、ワークフロー実行可能コードの生成が終了するのを待つ。その後、ワークフローアプリケーションソフトウェア338は、ワークフロー実行可能コードの実行を行うように、ワークフロー配置モジュールに指示することができる。ワークフロー配置モジュールは、ワークフロー実行可能コードの生成及び実行コマンドの受信後いつでも、ワークフロー実行可能コードを実行することができる。
【0097】
[0105]ワークフローアプリケーションソフトウェア338は、(直接解釈又はワークフロー実行可能コードを介して)テストモード又は生産モードでワークフローを実行することができる。テストモードでは、ワークフローアプリケーションソフトウェア338は、1つ又は複数のテストを開発してワークフローをテストし、ワークフローをテストに対して実行して評価することができる。ワークフローをテストに対して実行するとき、入力情報は、生産モードのために入力情報を模倣することができる。生産モードでは、ワークフローアプリケーションソフトウェア338は、入力情報を生産モードに使用して、ワークフローを実行することができる。
【0098】
[0106](直接解釈又はワークフロー実行可能コードを介した)ワークフローの実行を容易にするために、ワークフローアプリケーションソフトウェア338は、(例えば、サービスを受信するタスクのために、ワークフローアプリケーションソフトウェア338及び/又はアプリケーションサーバソフトウェア340の1つ又は複数のモジュールをプロビジョニングすることによってホストアプリケーションサーバ324をプロビジョニングすることができる。ワークフローアプリケーションソフトウェア338は、各タスクの機能及び基準に応じて、ホストアプリケーションサーバ324をプロビジョニングすることができる。タスク及び関連の機能及び基準の例について、図5及び図6に関してより詳しく説明する。
【0099】
[0107]プロセスブロック412の後、フロー400は、終了ブロック414に移行し、この時点でフロー400は終了する。あるいは、フロー400を、定期的に、継続的に、又はコマンド又はトリガなど、ある条件の結果としてトリガして、繰り返してもよい。別の代替として、ワークフローを実行するために、プロセスブロック410を、定期的に、継続的に、又は追加の実行コマンドなど、ある条件の結果としてトリガして、繰り返してもよい。更に別の代替として、ワークフローを再実行するために、プロセスブロック412を、定期的に(例えば所与のスケジュールなどごとに)、継続的に、又はある条件の結果としてトリガして、繰り返してもよい。
【0100】
[0108]代替のシステムアーキテクチャ例
【0101】
[0109]図5は、ワークフローを生成し、配置し、及び/又は実行するためのシステム500を示すブロック図である。システム500は、ここに記載することを除いて、図3のシステム300に似ている。システム500は、ユーザデバイス302、ホストデバイス(「ホスト」)502、第1のエンドポイントデバイス504、第2のエンドポイントデバイス506、サービスデータベースサーバ508、サービスFTPサーバ510、リモートメッセージストア512、サービスHTTPサーバ514、Webサーバ516、及びサービス電子メールサーバ517を含み、そのそれぞれは、ネットワーク304を介して他に通信可能に結合することができる。
【0102】
[0110]第1のエンドポイントデバイス504、第2のエンドポイントデバイス506、サービスデータベースサーバ508、サービスFTPサーバ510、リモートメッセージストア512、サービスHTTPサーバ514、Webサーバ516、及びサービス電子メールサーバ517(まとめて「リモートデバイス」)のそれぞれは、マイクロソフト(登録商標)ウィンドウズ(登録商標)、リナックス及び/又はシンビアンなど、任意の適したオペレーティングシステム上で動作し、ソフトウェアを実行することができる任意のプロセッサベースのプラットフォームとすることができる。リモートデバイス504〜517のそれぞれは、多数の要素を含むことができ、その多くは、説明を簡単にするために、図5に示されていない。
【0103】
[0111]リモートデバイス504〜517のそれぞれの要素は、単一のデバイスに形成されてもよく、又単一のサーバ、クライアント、ピア、又は他のタイプのノードに集中させてもよい。あるいは、リモートデバイス504〜517は、2つ以上の個別のデバイスから形成されてもよく、従って、いくつかのサーバ、クライアント、ピア、又は他のタイプのノードに分散されてもよい。
【0104】
[0112]ホストアプリケーションサーバ324と同様に、リモートデバイス504〜517のそれぞれは、こうしたデバイスがホストアプリケーションサーバ324とは異なるサービスを実行することができることを除いて、サーバとして構成することができる。しかし、リモートデバイス504〜517は、サーバとして構成する必要はなく、むしろ、ホストアプリケーションサーバ324にサービスを提供する機能を有する。
【0105】
[0113]第1のエンドポイントデバイス504は、アプリケーションサーバとして構成され、メモリ(「第1のエンドポイントメモリ」)556を含むことができる。第1のエンドポイントメモリ556は、ファイル転送プロトコル(「FTP」)を使用して、ホストアプリケーションサーバ324から取得されたソースレコードを格納することができる。
【0106】
[0114]第2のエンドポイントデバイス506は、メッセージングアプリケーションで構成することができる。メッセージングアプリケーションは、ホストアプリケーションサーバ324から送信された要求及び/又はメッセージに応じることができる。
【0107】
[0115]サービスデータベースサーバ508は、データベースサーバとして構成され、ホストアプリケーションサーバ324からの要求に応じることもできる。サービスデータベースサーバ508は、ホストアプリケーションサーバ324に転送するためのターゲットデータベースレコードと共に、ホストアプリケーションサーバ324から転送されたソースデータベースレコードを格納するためのメモリ558を含むことができる。
【0108】
[0116]サービスFTPサーバ510は、FTPサーバとして構成され、ホストアプリケーションサーバ324からの要求に応じることもできる。サービスFTPサーバ510は、ホストアプリケーションサーバ324に転送するためのターゲットftpファイル562を格納するためのメモリ560を含むことができる。
【0109】
[0117]リモートメッセージストア512は、1つ又は複数のメッセージを保持する(一時的に、永久に、又は他の何らかの期間の間)ために構成することができる。これらのメッセージは、ワークフロー、別のプロセス(例えば、リモートサーバ、クライアントなどを介した手動又は自動のエントリ)、及び/又は別のワークフローのタスクのうちの1つ又は複数によって取り出され、及び/又はそこに入れることができる。
【0110】
[0118]更に、リモートメッセージストア512におけるメッセージは、1つ又は複数のターゲットメッセージ及び/又は1つ又は複数のソースメッセージを含んでいてもよく、又はそれで埋められてもよい。ターゲットメッセージは、リモートメッセージストア512とコンテンツレコード526との間で(ワークフローの実行を介して)交換され得るメッセージである。ソースメッセージは、(以下でより詳しく説明されるように)リモートメッセージストア512とコンテンツレコード526及び/又はメッセージングソフトウェア570との間で交換され得るメッセージである。
【0111】
[0119]サービスhttpサーバ514は、HTTPサーバとして構成され、ホストアプリケーションサーバ324から送信されたHTTP要求に応じることができる。Webサーバ516は、ホストアプリケーションサーバ324にWebサービスを提供するよう構成することができる。サービス電子メールサーバ517は、電子メールサーバとして構成され、ホストアプリケーションサーバ324から送信された電子メール要求に応じることができる。
【0112】
[0120]上述したシステム300の要素の詳細及び/又は特徴で上記及び以下の説明を不明瞭にしないために、これらの詳細及び/特徴の一部は、以下の説明で繰り返されず、又は図5に示されていない。記載されていない、及び/又は図3に示されていない他の詳細及び/又は特徴が提示される。
【0113】
[0121]ホスト502は、図3のホスト306に似ている。ホスト306と同様、ホスト502は、ホストアプリケーションサーバ324を含む。ホスト502は、ホストhttpサーバ564も含む。ホストアプリケーションサーバ324は、ワークフローアプリケーションソフトウェア324の制御下(例えば、ワークフロー実行可能コードを実行しているワークフロー配置モジュールの制御下)で、ホストHTTP564と結合し、それとトランザクションを行うことができる。
【0114】
[0122]ホストhttpサーバ564は、マイクロソフト(登録商標)ウィンドウズ(登録商標)、リナックス及び/又はシンビアンなど、任意の適したオペレーティングシステム上で動作し、ソフトウェアを実行することができる任意のプロセッサベースのプラットフォームを含むことができる。ホストアプリケーションサーバ324と同様、ホストhttpサーバ564は、多数の要素を含むことができ、その多くは、説明を簡単にするために、図5に示されていない。
【0115】
[0123]ホストhttpサーバ564の要素は、単一のデバイスに形成されてもよく、又単一のサーバ、クライアント、ピア、又は他のタイプのノードに集中させてもよい。あるいは、ホストhttpサーバ564の要素は、2つ以上の個別のデバイスから形成されてもよく、従って、いくつかのサーバ、クライアント、ピア、又は他のタイプのノードに分散されてもよい。
【0116】
[0124]図示されていないが、ホストHTTPサーバ564は、1つ又は複数の処理ユニット、メモリ、サポート回路、バス、及びホストアプリケーションサーバ324の要素に似た他の要素を含むことができる。ホストHTTPサーバ564のメモリは、オペレーティングシステムを含み、これは、ホストHTTPサーバ564を作動するための様々なソフトウェア及び/又は実行可能命令又はコードを含み、及び/又はそれに組み込むことができる。オペレーティングシステムは、そのプロセッサによって実行されると、ホストHTTP564サーバがホストアプリケーションサーバ324から出る、及び/又はそこに終わるHTTP要求に応じるためのソフトウェアアプリケーションを実行することができるプラットフォームを提供する。
【0117】
[0125]ホストhttpサーバ564は、サーバとして構成されてもよく、(以下でより詳しく説明するように)ワークフローの実行を実行するためのホストアプリケーションサーバ324を援助することができる。しかし、ホストhttpサーバ564は、サーバとして構成する必要はなく、むしろ、ホストアプリケーションサーバ324のサービスを実行するよう動作可能である任意の形とする必要がある。
【0118】
[0126]メモリ328は、ホストアプリケーションサーバ324の要求を容易にするように構成され得るメッセージングソフトウェア570、電子メールソフトウェア572、FTPソフトウェア574、データベースソフトウェア574などの様々な他のソフトウェアを含むこともできる。メッセージングソフトウェア570、電子メールソフトウェア572、FTPソフトウェア574、及びデータベースソフトウェア574のそれぞれは、クライアント、ピア、及び/又はサーバとして動作することができる。
【0119】
[0127]メッセージングソフトウェア570は、ホストアプリケーションサーバ324によって実行されると、ワークフローアプリケーションソフトウェア338と、リモートメッセージストア512などのリモートデバイスのうちの1つ又は複数との間で1つ又は複数のメッセージを交換するためのエンジン(「ホストメッセージングエンジン」)を提供する。メッセージングエンジンは、Javaメッセージングサービス(「JMS」)、セッション開始プロトコル(「SIP」)、SIP for Instant Messaging and Presence Leveraging Extensions(「SIMPLE」)、Application Exchange(「APEX」)、Presence and Instant Messaging Protocol(「PRIM」)、Extensible Messaging and Presence Protocol(「XMPP」)、Instant Messaging and Presence Service(「IMPS」)、インターネットメッセージアクセスプロトコル(「IMAP」)など、任意のメッセージングプロトコルを使用してメッセージを交換することができる。
【0120】
[0128]電子メールソフトウェア572は、ホストアプリケーションサーバ324によって実行されると、サービス電子メールサーバ517と1つ又は複数の電子メールメッセージを交換(添付ファイル有り又は無しで)し、こうした電子メールメッセージのメモリ328との間での転送を行うためのエンジン(「ホスト電子メールエンジン」)をホストアプリケーションサーバ324に提供する。電子メールエンジンは、簡易メール転送プロトコル(「SMTP」)、ポストオフィスプロトコル(「POP」)、インターネットメッセージアクセスプロトコル(「IMAP」)、及び他の電子メールサービスタイプのうちの任意のバージョンに従ってサービス電子メールサーバ518とインターフェイスをとることができる。
【0121】
[0129]FTPソフトウェア574は、ホストアプリケーションサーバ324によって実行されると、ホストアプリケーションサーバ324にエンジン(「ホストFTPエンジン」)を提供する。このFTPエンジンは、FTPに従って、サービスFTPサーバ510及びメモリ328など、1つ又は複数のリモートデバイス間でのファイルの1つ又は複数の転送を実行することができる。
【0122】
[0130]データベースソフトウェア576は、ホストアプリケーションサーバ324によって実行されると、サービスデータベースサーバ508など1つ又は複数のリモートデバイスからの1つ又は複数のデータベースレコードを交換し、こうしたデータベースレコードのメモリ328との間での転送を行うためのインターフェイス(「ホストデータベースインターフェイス」)をホストアプリケーションサーバ324に提供する。データベースソフトウェア576は、例えば、Javaデータベース接続(「JDBC」)API、ルートデータベース接続(「RDBC」)APIなどのクライアントインターフェイスでもよい。このクライアントインターフェイスは、オラクル、DB2、マイクロソフトアクセス、マイクロソフトSQLサーバ、MySQL、4th Dimension、FileMaker、及び類似のデータベースアプリケーションのうちの任意のものとインターフェイスをとるよう動作可能とすることができる。いかなる場合でも、データベースソフトウェア576は、オラクル、DB2、マイクロソフトアクセス、マイクロソフトSQLサーバ、MySQL、4th Dimension、FileMakerなど、データベースアプリケーションを使用して形成されたものを含む任意の数のデータベースとインターフェイスをとることができる。
【0123】
[0131]メモリ328は、上記に加えて、いくつかのレコード又は他のデータ構造(まとめて「レコード」)を含むことができる。レコードは、ワークフローの実行中、タスクのうちの1つ又は複数によって使用することができ、及び/又は使用されるために取得することができる。レコードの例には、メッセージレコード518、テンプレートレコード520、サービス定義レコード522、コンテンツレコード526、及び記録済みワークフローレコード556などがある。
【0124】
[0132]メッセージレコード518は、ワークフローのタスクのうちの1つ又は複数によって取り出されるために、1つ又は複数のメッセージを保持するように構成され得るレポジトリ(「メッセージレポジトリ」)を含むことができる。メッセージレポジトリは、例えば、ホストアプリケーションサーバ324から転送する又は取り出すための1つ又は複数のメッセージ(「ソースメッセージ」)及び/又はホストアプリケーションサーバ324に転送する又はそれによって取り出される1つ又は複数のメッセージ(「ターゲットメッセージ」)を含むことができる。
【0125】
[0133]テンプレートレコード520は、1つ又は複数の変換テンプレート、スキーマテンプレート、妥当性検査テンプレート、及び/又はメッセージテンプレートを含むことができる。以下により詳しく記載されるように、変換テンプレートは、入力情報を生来のフォーマットから別のフォーマットに変換するためのタスクによって使用することができる。これを容易にするために、変換テンプレートは、1つ又は複数の変換ファイルを含むことができる。こうした変換フィルタの例には、マイクロソフト(登録商標)エクセル(Excel)(登録商標)(「XLS」)−XMLフィルタ、デリミタ付きフィールドフォーマット−XMLフィルタ、固定長フィールドフォーマット−XMLフィルタ、XML−XLSフィルタ、XML−デリミタ付きフィールドフォーマットフィルタ、XML−固定長フィールドフィルタなどがある。
【0126】
[0134]スキーマテンプレートは、こうしたタスクから出力されたある入力情報又は結果が1つ又は複数のスキーマ及び/又は1つ又は複数のセマンティックプロトコルに適合するかどうかを識別し、評価し、及び/又は妥当性検査するためのワークフローのタスクのうちの1つ又は複数によって使用することができる。スキーマ及び/又はセマンティックプロトコルの例には、XML、金融情報交換(「FIX」)プロトコル、FIXプロトコルのカスタマイズされたバージョン、SWIFT(Society for Worldwide Interbank Financial Telecommunication SCRL)により公表された標準、FpML(Financial products Markup Language)プロトコル、Simple Object Access Protocol又はService Oriented Architecture Protocol(まとめて「SOAP」)などがある。
【0127】
[0135]更に、妥当性検査テンプレート(以下により詳しく説明するように)は、こうしたタスクに入力されたコンテンツの訂正及び/又は妥当性の評価のためにタスクのうちの1つ又は複数によって使用され得る1つ又は複数の数式及び/又は1つ又は複数のマッピングを含むことができる。数式及び/又はマッピングは、タスクに入力されたコンテンツが有効である(例えば、コンテンツが予想された基準に適合する)かどうかを決定するための機能を形成する一連のルールを作成するために使用することができる。
【0128】
[0136]メッセージテンプレートは、入力情報を構文解析するためのタスクのうちの1つ又は複数によって使用され得るステンシルタイプのテンプレート(例えば、メールマージテンプレート)として構成することができる。メッセージテンプレートは、入力情報が構文解析され得る1つ又は複数のエントリを含むことができる。エントリは、入力情報を使用して評価され得る数式(例えば公式)で埋めることもできる。メッセージテンプレートは、任意の数のレコードをプログラム的に生成するためのタスクのうちの1つ又は複数によって使用することができる。例えば、メッセージテンプレートは、Webページ、会社の社内報などを生成するためのタスクによって使用することができる。
【0129】
[0137]コンテンツレコード526は、タスクに入力するためのコンテンツ、タスクの実行から生成される結果、タスクのうちの1つ又は複数による評価のための1つ又は複数の数式(例えば、公式、手順、ルールなど)、タスクパラメータ、数式及び/又はタスクパラメータと共に使用するための1つ又は複数の変数、電子メールレコード、及びタスクによって使用される、処理される、及び/又は格納される他の情報を含むことができる。
【0130】
[0138]電子メールレコードのそれぞれは、(i)電子メールメッセージの送信者に割り当てられる、又はそうでなければ関連付けられる電子メールアドレスで埋められ得る第1のフィールド、(ii)電子メールメッセージの受信者に割り当てられる、又はそうでなければ関連付けられる電子メールアドレスで埋められ得る第2のフィールド、(iii)電子メールメッセージの件名で埋められ得る第3のフィールド、(iv)電子メールメッセージの本文で埋められ得る第4のフィールド、及び/又は(v)ある場合は、電子メールメッセージへの任意の添付ファイルを取り出し、又はそうでなければ取得するための情報を含むことができる。
【0131】
[0139]記録済みワークフローファイル556は、以前記録されたワークフロー(「記録済みワークフロー」)を実行するための1つ又は複数のレコード(「記録済みワークフローレコード」)を含むことができる。これらの記録済みワークフローレコードは、(i)記録済みワークフローの実行のための入力情報を取得する、及び/又は(ii)記録済みワークフローの実行からの任意の結果をコンテンツレコード526に格納するために、コンテンツレコード526にアクセスするための情報を含むことができる。
【0132】
[0140]GUI表示画面例
【0133】
[0141]図6は、グラフィカルユーザインターフェイスの表示画面600の一例を示すグラフィカル図である。表示画面600は、本明細書に後述されるものを除いて、図5の表示画面124と似ている。便宜上、表示画面600は、図5のシステム500を参照して記載されている。しかし、表示画面600は、他のアーキテクチャを使用してレンダリングすることもできる。
【0134】
[0142]表示画面600は、ウィジェットペイン126、ウィジェットツールバー128、及びワークフローペイン130を含む。ウィジェットペイン126は、開始ウィジェット132、停止ウィジェット132、表示ウィジェット132、条件文ウィジェット132、構文解析テンプレートウィジェット132、数式ウィジェット132、電子メール送信ウィジェット132、ftp取得ウィジェット132、ftp送信ウィジェット132、dB取得ウィジェット13210、dB送信ウィジェット13211、httpリッスンウィジェット13212、http送信ウィジェット13213、http応答ウィジェット13214、MQ取得ウィジェット13215、MQ送信ウィジェット13216、webサービスウィジェット13217、変形ウィジェット13218、変換ウィジェット13219、セマンティックプロトコルウィジェット13220、削除ウィジェット13221、妥当性検査ウィジェット13222、tcpリッスンウィジェット13223、tcp取得ウィジェット13224、tcp送信ウィジェット13225、待機ウィジェット13226、電子メール取得ウィジェット13227、コピーウィジェット13228、反復ウィジェット13229、及びワークフロー開始ウィジェット13230を含む。
【0135】
[0143]これらのウィジェット132〜13230は、開始、停止、表示、条件文、構文解析テンプレート、数式、電子メール送信、ftp取得、ftp送信、dB取得、dB送信、httpリッスン、http送信、http応答、MQ取得、MQ送信、webサーバ、変形、変換、セマンティックプロトコル、削除、妥当性検査、tcpリッスン、tcp取得、tcp送信、待機、電子メール取得、コピー、反復、及びワークフロー開始タスク(まとめて「タスク」)に対応し、それぞれワークフロー操作レコード116〜11630に関連付けられる。次いでワークフロー操作レコード116〜11630は、それぞれのタスクパラメータを含む。
【0136】
[0144]上述したように、GUIソフトウェア110は、グラフィカルワークフロー134におけるウィジェット132〜13230のインスタンスごとに、(例えば、キーボードを介して入力される)I/Oデバイス106によるGUIの操作を介して対応するタスクパラメータを取得することができる。ワークフローアプリケーションソフトウェア338は、GUIソフトウェア110から発送されたワークフローレコード114からこうしたタスクパラメータを取得することができ、これらのタスクパラメータを使用してワークフローを実行することができる。以下は、ウィジェット132〜13230のそれぞれに関して、(i)こうしたタスクがワークフロー(及びグラフィカルワークフロー134)に含まれていた場合、ワークフローアプリケーションソフトウェア338が実行することができるタスク、及び(ii)ワークフローの実行及びワークフローを実行するためのホスト502のプロビジョニングに関するタスクパラメータの例について説明する。
【0137】
[0145]開始タスク例
【0138】
[0146]開始タスクは、開始ウィジェット132によって表され、ワークフローを実行するための開始点として機能し、ホストアプリケーションサーバ324に、ワークフローのタスクの実行を開始させる。一般に、ワークフローは、開始タスクを1つだけ含む。
【0139】
[0147]開始タスクパラメータの一部は、全体として他のタスク及び/又はワークフローに共通していてもよい。共通の開始タスクパラメータには、ワークフロー名エントリ、ワークフロー記述エントリ、ワークフロー著者エントリ、ワークフローバージョンエントリ、及びログレベルエントリなどがある。
【0140】
[0148]ワークフロー名エントリは、ワークフローを識別するためにワークフローに与えられた名前を含むことができる。ワークフロー記述エントリは、例えばワークフローの目的を説明するワークフローの与えられた記述で埋めることができる。ワークフロー著者エントリは、ワークフローを著す著者の名前で埋めることができる。ワークフローバージョンエントリは、ワークフローに割り当てられたバージョンを示すためのインジケータ(例えば数字)で埋めることができる。ワークフロー名、ワークフロー記述、ワークフロー著者、及びワークフローバージョンのエントリのそれぞれは、1文字又は文字列として表すことができる。
【0141】
[0149]ログレベルエントリは、ワークフローの実行中にイベントのロギングをトリガするためのレベル(例えば、エラー、ワーニング、又はデバッグレベル)を示すインジケータで埋めることができる。ログレベルエントリは、所与の数の設定のうちの1つとして表すことができる。
【0142】
[0150]以下のタスクのそれぞれについて、タスクパラメータは、それぞれの名前エントリ及び記述エントリを含むことができる。特に記載がない限り、名前エントリのそれぞれは、その特定のインスタンスを識別するように対応するタスクに割り当てられた名前を含むことができ、1文字、文字列、変数、数式などとして表すことができる。
【0143】
[0151]更に、記述エントリのそれぞれは、対応するタスクの特定のインスタンスを記述するために対応するタスクに割り当てられた記述を含むことができる。これらの記述エントリは、1文字、文字列、変数、数式などとして表すことができる。他のタスクパラメータは、以下でより詳細に説明される。
【0144】
[0152]停止タスク例
【0145】
[0153]停止タスクは、停止ウィジェット132によって表され、ワークフローの終点又は終了として機能し、ホストアプリケーションサーバ324にワークフローを終了させる。停止タスクの定義は、終了パラメータを含むことができる。終了パラメータは、ワークフローの正常な又は異常な終了を示すための設定(「終了設定」)、及びワークフローによる処理を受ける任意の入力情報がワークフローによって十分処理されると考えられるかどうかを示すためのフラグを含むことができる。
【0146】
[0154]例えば、ワークフローがタスクの実行の代替パス又は「分岐」(「ワークフロー分岐」)を複数含むとき、ワークフローは、複数の停止タスクを含むことができる。一例により、ワークフロー分岐は、第1及び第2の分岐を含むことができる。第1の分岐は、第1の停止タスクで終了し、第2の分岐は、第2の停止タスクで終了することができる。この場合、GUIソフトウェア110は、ワークフローにそれぞれのワークフロー分岐のみを終了させるように、第1及び第2の停止タスクの両方の終了設定を正常終了に設定することによって、第1及び第2の停止タスクパラメータを構成することができる。そのように構成されると、GUIソフトウェア110は、第1及び第2の分岐のタスクによる処理を受ける入力情報が十分処理されると考えられることを示すようにフラグを設定することができる。
【0147】
[0155]あるいは、GUIソフトウェア110は、第1又は第2の停止タスクのいずれかを実行すると、ワークフローに終了させるように、終了設定を異常終了に設定することによって、第1及び第2の停止タスクパラメータのうちのいずれか又は両方を構成することができる。そのように構成されると、GUIソフトウェア110は、ワークフローによる処理を受ける入力情報が十分処理されると考えられないことを示すようにフラグを設定することができる。
【0148】
[0156]表示タスク例
【0149】
[0157]表示タスクは、表示ウィジェット132によって表され、ホストアプリケーションサーバ324に、ホストメッセージングエンジンを介して、取り出すためのメッセージレコード518及び/又は第2のエンドポイントデバイス506にメッセージを送信させる。メッセージレコード518におけるこのメッセージは、他のタスク、別のワークフロー、ユーザデバイス302、ホスト306、及び/又は第2のエンドポイントデバイス506などによって取り出すことができる。
【0150】
[0158]表示タスクパラメータの例には、メッセージ照会エントリ及びメッセージエントリなどがある。メッセージ照会エントリは、メッセージを配信するためにメッセージレコード518及び/又は第2のエンドポイントデバイス506にアクセスし、及び/又はそれと通信するための情報を含むことができる。この情報は、例えば、メッセージレコード518及び/又は第2のエンドポイントデバイス506に割り当てられた、又はそうでなければ関連付けられた名前又はアドレスとすることができる。あるいは、情報は、メモリ328内のメッセージレコード518の位置、及び/又は第2のエンドポイントデバイス506の名前又はアドレスへの参照、ポインタ、統一資源識別子(「URL」)、又は他のインジケータとすることができる。
【0151】
[0159]メッセージエントリは、(i)メッセージの件名(「メッセージの件名」)で埋められ得る第1のフィールド、及び(ii)メッセージの本文又はコンテンツ(「メッセージ本文」)で埋められ得る第2のフィールドを含むことができる。メッセージ照会及びメッセージエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができるように表すことができる。更に、メッセージ本文は、上述したメッセージングテンプレートを使用して指定することができる。
【0152】
[0160]条件文タスク例
【0153】
[0161]条件文タスクは、条件文ウィジェット132によって表され、ホストアプリケーションサーバ324に条件文に応じてワークフロー分岐のうちの1つ又は複数を実行させるための決定点として機能する。条件文タスクパラメータは、条件式エントリを含むことができる。
【0154】
[0162]条件式エントリは、条件文で埋めることができる。条件文は、if−then文及び/又はブール式などの論理的な式として表すことができ、条件文の評価(例えば、真又は偽の決定)後に実行するためのワークフロー分岐及び/又はタスクのうちの1つ又は複数を指定することができる。
【0155】
[0163]構文解析テンプレートタスク例
【0156】
[0164]構文解析テンプレートタスクは、構文解析テンプレートウィジェット132によって表され、ホストアプリケーションサーバ324に、メッセージテンプレートから1つのテンプレートを選択させ(「選択済みテンプレート」)、選択済みテンプレートによりその入力情報の少なくとも一部分を構文解析する。入力情報を構文解析するために、ホストアプリケーションサーバ324は、(i)それに対応する入力情報で選択済みテンプレートにおける変数を埋める、(ii)結果を形成するように、選択済みテンプレートで指定された数式を評価する、及び(iii)結果を出力する、及び/又はコンテンツレコード526に格納する。
【0157】
[0165]構文解析テンプレートタスクパラメータは、テンプレートエントリを含むことができる。テンプレートエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる表すことができる。
【0158】
[0166]テンプレートエントリは、入力情報を構文解析するために、選択済みテンプレートを取り出す、又はそうでなければ取得するための情報を含むことができる。この情報は、例えば、選択済みテンプレートに割り当てられた、又はそうでなければ関連付けられた名前とすることができる。あるいは、情報は、メモリ328上のテンプレートレコード520に格納されている選択済みテンプレートの位置への参照、ポインタ、URI、又は他のインジケータとすることができる。
【0159】
[0167]数式タスク例
【0160】
[0168]数式タスクは、数式ウィジェット132によって表され、ホストアプリケーションサーバ324に、数式のタスクパラメータで指定された数式の1つ又は複数を評価させ、その後の取り出し及び/又は分析のために、コンテンツレコード526に評価の1つ又は複数の結果を格納させることができる。数式タスクは、数式エントリが複数の式を含むとき、ホストアプリケーションサーバ324に命令実行を適用させることができる。実行のこの命令は、エントリの時間、エントリの順序、数学的階層、分析的階層、算術的階層、統計的分析などに基づかせることができる。
【0161】
[0169]数式タスクパラメータの例には、数式エントリ及び結果−位置エントリなどがある。数式エントリは、1つ又は複数の数式(例えば、公式)を含むことができる。結果−位置エントリは、以前格納された結果をコンテンツレコード526から取り出す、又はそうでなければ取得するため、及びコンテンツレコード526に戻す現在の結果を格納するための情報を含むことができる。この情報は、例えば、コンテンツレコード526における現在の結果、及び/又はコンテンツレコード526に格納されている以前格納された結果に割り当てられた、又はそうでなければ関連付けられた名前とすることができる。あるいは、結果−位置エントリの情報は、(i)コンテンツレコード526の、(ii)コンテンツレコード526に格納されている以前格納された結果の、及び/又は(iii)コンテンツレコード526における現在の結果を格納するための参照、ポインタ、URI、又は他の位置のインジケータとすることもできる。結果−位置エントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0162】
[0170]電子メール送信タスク例
【0163】
[0171]電子メール送信タスクは、電子メール送信ウィジェット132によって表され、ホストアプリケーションサーバ324に、電子メールメッセージ(添付ファイル有り又は無し)を作成させ、電子メールソフトウェア572及び/又はサービス電子メールサーバ517を介して、それを第2のエンドポイントデバイス506など少なくとも1つの受信側に送信させることができる。電子メール送信タスクパラメータの例には、電子メールサービス定義エントリ及び電子メールエントリなどがある。
【0164】
[0172]電子メールサービス定義エントリは、電子メール送信タスクの実行に使用され得る電子メールサービスを識別する以前構成されたサービス定義(「電子メールサービス定義」)への参照を含むことができる。電子メールサービス定義は、メモリ338のサービス定義レコード522に格納され得るいくつかのパラメータ(「電子メールサービスパラメータ」)を含むことができる。電子メールサービスパラメータは、電子メール送信タスクを実行するために電子メールソフトウェア572及び/又はサービス電子メールサーバ517を構成するための情報を含むことができる。この情報は、例えば、電子メールソフトウェア572及び/又はサービス電子メールサーバ517のURI及び/又は他のアドレス、電子メールサービスを実行するために使用されるプロトコルなどを含むことができる。
【0165】
[0173]電子メールエントリは、電子メールを埋めるための情報を含むことができる。この情報は、1文字、1組の文字及び/又は変数として表すことができる。代替として、電子メールエントリの情報は、数式として表すことができ、その評価は、電子メールのコンテンツを決定する。いずれの場合も、電子メールエントリの情報は、例えば、コンテンツレコード526に格納された電子メールレコードから取得され得る電子メールの1つ又は複数の部分に割り当てられた、又はそうでなければ関連付けられた名前を含むことができる。あるいは、電子メールエントリの情報は、コンテンツレコード526電子メールに格納されている電子メールレコードの位置への参照、ポインタ、URI、又は他のインジケータとすることができる。
【0166】
[0174]電子メールサービス定義及び関連の電子メールサービスパラメータは、本明細書に、サービス定義レコード522に含まれているものとして記載されているが、サービス定義レコード522は、省かれてもよい。省かれる場合、電子メール送信タスクパラメータは、電子メールサービスを構成するための、電子メールサービス定義及び関連の電子メールサービスパラメータに似た情報を含むことができる。
【0167】
[0175]FTP取得タスク例
【0168】
[0176]ftp取得タスクは、ftp取得ウィジェット132によって表され、ホストアプリケーションサーバ324に、ホストFTPエンジンを介してサービスFTPサーバ508からファイル(「ターゲットftpファイル」)を取り出し、ターゲットftpファイルをメモリ328に格納させることができる。ftp取得タスクパラメータの例には、ftp取得サービス定義エントリ、ターゲットファイルエントリ、宛先位置エントリ、及び追加ファイル取得エントリなどがある。ftp取得サービス定義、ターゲットファイル、宛先位置、及び追加ファイル取得のエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0169】
[0177]ftp取得サービス定義エントリは、ftp取得タスクの実行に使用され得るFTPサービスを識別する以前構成されたサービス定義への参照を含むことができる。このサービス定義(「FTPサービス定義」)は、メモリ338のサービス定義レコード522に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ(「FTPサービスパラメータ」)は、ftp取得タスクを実行するようにFTPソフトウェア574、及び/又はサービスFTPサーバ510を構成するための情報を含むことができる。例えば、この情報は、サービスFTPサーバ508に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、使用すべき転送モードのタイプを指定するための設定(例えば、ASCII又はバイナリ)などを含むことができる。
【0170】
[0178]ターゲットファイルエントリは、FTPサービスを使用してサービスFTPサーバ508からターゲットftpファイルを取り出す、又はそうでなければ取得するための情報を含むことができる。この情報は、ターゲットftpファイルに割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、ターゲットファイルエントリのための情報は、サービスFTPメモリ560上のターゲットftpファイルの位置への参照、ポインタ、URI、又は他のインジケータとすることができる。
【0171】
[0179]宛先位置エントリは、メモリ328上のターゲットftpファイルを格納する場所を示すための情報を含むことができる。この情報は、例えば、メモリ328上の位置への参照、ポインタ、URI、又は他のインジケータを含むことができる。
【0172】
[0180]追加ファイル取得エントリは、サービスFTPメモリ560から複数のファイルを取り出すかどうかを指定するための設定を含むことができる。宛先位置エントリ及び追加ファイル取得エントリは、ftp取得タスクパラメータに含まれているものとして本明細書に記載されているが、こうしたエントリのいずれか又は両方(及びそれに含まれるパラメータ)は、ftp取得タスクパラメータの代わりに、FTPサービス定義にFTPサービスパラメータとして含まれていてもよい。こうした場合、ftp取得タスクパラメータは、任意選択で、こうしたFTPサービスパラメータをオーバーライドする、変更する、調整する、又はそうでなければ変更するためのパラメータを含むことができる。別の代替として、FTPサービス定義及び関連のFTPサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード522の代わりにftp取得タスクパラメータに含まれていてもよい。
【0173】
[0181]FTP送信タスク例
【0174】
[0182]ftp送信タスクは、ftp送信ウィジェット132によって表され、ホストアプリケーションサーバ324に、FTPソフトウェア574を使用して、メモリ328から第1のエンドポイントデバイス504のサービスデバイスメモリ556にファイル(「ソースftpファイル」)を転送させることができる。ftp送信タスクパラメータの例には、ftp送信サービス定義エントリ、ソースファイルエントリ、宛先位置エントリ、及び追加ファイル送信エントリなどがある。
【0175】
[0183]ftp送信サービス定義エントリは、ftp送信タスクの実行に使用され得る以前構成されたFTPサービス定義への参照を含むことができる。このFTPサービス定義は、メモリ338のサービス定義レコード522に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ(「FTPサービスパラメータ」)は、ftp送信タスクを実行するようにFTPソフトウェア574、及び/又は第1のエンドポイントデバイス504を構成するための情報を含むことができる。例えば、この情報は、FTPソフトウェア574及び/又は第1のエンドポイントデバイス504に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、使用すべき転送モードのタイプ(例えば、ASCII又はバイナリ)を指定するための設定などを含むことができる。
【0176】
[0184]ソースファイルエントリは、メモリ328からソースftpファイルを取り出す、又はそうでなければ取得するための情報を含むことができる。この情報は、ソースftpファイルに割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、ソースファイルエントリのための情報は、メモリ328上のソースftpファイルの位置への参照、ポインタ、URI、又は他のインジケータとすることもできる。
【0177】
[0185]宛先位置エントリは、サービスデバイスメモリ556上にソースftpファイルを格納するための情報を含むことができる。この情報は、例えば、サービスデバイスメモリ556及び/又は第1のエンドポイントデバイス504の位置への参照、ポインタ、URI、又は他のインジケータを含むことができる。
【0178】
[0186]追加ファイル送信エントリは、第1のエンドポイントデバイス504のサービスデバイスメモリ556上の複数のファイルを転送するかどうかを指定するための設定を含むことができる。ftp送信サービス定義、ソースファイル、宛先位置、及び追加ファイル送信のエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0179】
[0187]宛先位置エントリ及び追加ファイル送信エントリは、ftp送信タスクパラメータに含まれているものとして本明細書に記載されているが、こうしたエントリのいずれか又は両方(及びそれに含まれるパラメータ)は、ftp送信タスクパラメータの代わりに、FTPサービス定義にFTPサービスパラメータとして含まれていてもよい。こうした場合、ftp送信タスクパラメータは、任意選択で、こうしたFTPサービスパラメータをオーバーライドする、変更する、調整する、又はそうでなければ変更するためのパラメータを含むことができる。別の代替として、FTPサービス定義及び関連のFTPサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード522の代わりにftp取得タスクパラメータに含まれていてもよい。
【0180】
[0188]データベース取得タスク例
【0181】
[0189]dB取得タスクは、dB取得ウィジェット13210によって表され、ホストアプリケーションサーバ324に、サービスデータベースサーバ508のメモリ558におけるターゲットレコードからターゲットデータを取り出させ、又はそうでなければ取得させ、こうしたターゲットデータをコンテンツレコード526に格納させることができる。dB取得タスクは、ホストアプリケーションサーバ324のサービスデータベースサーバ508への照会の送信(例えば1つ又は複数のSQLコマンド)に応答してターゲットデータのこうした転送をもたらすことができる。
【0182】
[0190]dB取得タスクパラメータの例には、dB取得サービス定義エントリ、データ要求エントリ、及び宛先位置エントリなどがある。dB取得サービス定義、データ要求、及び宛先位置のエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0183】
[0191]dB取得サービス定義エントリは、dB取得タスクの実行に使用され得るデータベースサービスを識別する以前構成されたサービス定義(「dBサービス定義」)への参照を含むことができる。このdBサービス定義は、メモリ338のサービス定義レコード522に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ(「dBサービスパラメータ」)は、dB取得タスクを実行するようにデータベースソフトウェア576、及び/又はサービスデータベースサーバ508を構成するための情報を含むことができる。この情報は、例えば、データベースソフトウェア576及び/又はサービスデータベースサーバ508に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、サービスデータベースサーバ508に照会を行うために、オラクル、DB2、マイクロソフトアクセス、マイクロソフトSQLコマンドサーバ、Postgres、MySQL、4th Dimension、FileMaler、及びAlpha Five DBMSのうちの任意のものなど、少なくとも1つのデータベース管理システム(「DBMS」)を指定するための1つ又は複数の設定などを含むことができる。
【0184】
[0192]dBサービスパラメータの情報は、名前、アドレス、参照、ポインタ、URI、又はサービスdBサーバ508のメモリ558内のソースレコードの位置への他のインジケータを含むこともできる。dBサービスパラメータの情報は、コンテンツレコード526への転送前にターゲットデータが構文解析され得る、変形され得る、変換され得る、及び/又は妥当性検査され得るテンプレート又はスキーマへの参照を更に含むことができる。
【0185】
[0193]このテンプレート又はスキーマは、例えば、要素のXMLシーケンスを定義することができる。こうした要素の一例は、以下の通りである。
<rowset>
<row>
<Column1Name></Column1Name>
<Column2Name></Column2Name>
...
<ColumnNName></ColumnNName>
</row>
</rowset>
【0186】
[0202]<row>対は、<column−column>対を囲み、例えば、ソース−データベースレコードに格納されているソースデータの行、又はサービスデータベースサーバ508に格納されているターゲットデータの行に対応することができる。<column−column>対は、プレースホルダーのそれぞれの数字を囲む。これらのプレースホルダーは、ソースデータの行のそれぞれの列に対応するコンテンツで構文解析することができる。
【0187】
[0203]上記の例は<row>対を1つだけ含むが、XMLシーケンスは、複数の<row>対を含んでいてもよい。これらの追加の<row>対は、1つ又は複数の追加の<row>対を囲むことができる。更に、上記の例は、複数の列の対、すなわち、<column−column>を含む。しかし、XMLシーケンスは、列対を1つだけ含むことができる。
【0188】
[0204]データ要求エントリは、サービスデータベースサーバ508のメモリ558内のターゲットレコードからターゲットデータを取得するように、データベースソフトウェア576に、サービスデータベースサーバ508のメモリ558内のソースレコードに対する実行のための照会を生成させるための情報を含むことができる。宛先位置エントリは、可変レコード526にターゲットデータを格納するための情報を含むことができる。この情報は、名前、アドレス、参照、ポインタ、URI、又はコンテンツレコード526の位置への他のインジケータを含むことができる。
【0189】
[0205]宛先位置エントリは、本明細書に、dB取得タスクパラメータに含まれているものとして記載されているが、このエントリ(及びそれに含まれるパラメータ)は、dB取得タスクパラメータの代わりに、dBサービスパラメータとしてdBサービス定義に含まれていてもよい。こうした場合、dB取得タスクパラメータは、任意選択で、こうしたdBサービスパラメータをオーバーライドする、変更する、調整する、又はそうでなければ変更するためのパラメータを含むことができる。別の代替として、dBサービス定義及び関連のdBサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード522の代わりにdB取得タスクパラメータに含まれていてもよい。
【0190】
[0206]データベース送信タスク例
【0191】
[0207]dB送信タスクは、dB送信ウィジェット13211によって表され、サービスデータベースサーバ508上でデータ又はスキーマを挿入し、更新し、削除し、取り出し、又はそうでなければ変更するように、ホストアプリケーションサーバ324に、サービスデータベースサーバ508による1つ又は複数の操作を実行させることができる。例えば、dB送信タスクは、ホストアプリケーションサーバ324に、コンテンツレコード526から取得されたソースデータを、データベースソフトウェア576を介してサービスデータベースサーバ508に転送させることができる。あるいは、dB送信タスクは、データベースソフトウェア576に、(i)ソースデータを取得するために、コンテンツレコード526に対する照会を実行させ、(ii)サービスデータベースサーバ508にソースデータを転送させることができる。
【0192】
[0208]dB送信タスクパラメータの例には、dB送信サービス定義エントリ及びデータベース操作エントリなどがある。dB送信サービス定義及びデータベース操作エントリのそれぞれは、文字、文字列、数式、テンプレート、及び/又は変数として表すことができる。
【0193】
[0209]dBサービス定義送信エントリは、dB送信タスクの実行のために以前構成されたdBサービス定義への参照を含むことができる。この情報は、例えば、データベースソフトウェア576及び/又はサービスデータベースサーバ508に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、サービスデータベースサーバ508とインターフェイスをとるための少なくとも1つのDBMSを指定するための1つ又は複数の設定、コンテンツレコード526に対して照会を行うための少なくとも1つのDBMSを指定するための1つ又は複数の設定などを含むことができる。
【0194】
[0210]dBサービスパラメータの情報は、名前、アドレス、参照、ポインタ、URI、又はソースデータを格納するためのサービスデータベースサーバ508のメモリ558のターゲットレコードの位置への他のインジケータを含むこともできる。dBサービスパラメータの情報は、サービスデータベースサーバ508のメモリ558のターゲットレコードへの転送前にソースデータが構文解析され得るテンプレート又はスキーマ(例えば、XMLシーケンス)への参照を含むこともできる。
【0195】
[0211]データベース操作エントリは、サービスデータベースサーバ508のデータ及び/又はスキーマを挿入する、更新する、削除する、取り出す、又はその他の形で変更する情報(例えば、データベースソフトウェア576によって実行するための照会をデータベースソフトウェア576に生成させるための情報を含むことができる。あるいは、データベース操作エントリは、名前、アドレス、参照、ポインタ、URI、又はコンテンツレコード526内のソースデータの位置への他のインジケータを含むこともできる。
【0196】
[0212]サービスデータベースサーバ508へのソースデータの提供を容易にするために、dB送信タスクは、ホストアプリケーションサーバ324に、置換タイプのセマンティクスなどのセマンティクスに従って、ソースデータを構文解析させることができる。例えば、dB送信タスクは、ホストアプリケーションサーバ324に、こうした<row>要素に対応するソースデータでサービスデータベースサーバ508のメモリ558内のターゲットデータの<row>要素を更新させることができる。一方、サービスデータベースサーバ508のメモリ558内のターゲットデータがこうした<row>要素を含まないとき、dB送信タスクは、ホストアプリケーションサーバ324に、こうしたソースデータの<row>要素を挿入させることができる。
【0197】
[0213]代替として、dBサービス定義及び関連のdBサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード522の代わりにdB送信タスクパラメータに含まれていてもよい。
【0198】
[0214]HTTPリッスンタスク例
【0199】
[0215]httpリッスンタスクは、httpリッスンウィジェット13212によって表され、ホストHTTPサーバ564に、(i)第2のエンドポイントデバイス506のWebブラウザなど、サービスデバイスの1つ又は複数のアプリケーションからの所与のサービスHTTP要求をリッスンさせ、(ii)ホストHTTPサーバ564と、所与のサービスHTTP要求に対応する第2のエンドポイントデバイス506のアプリケーションとの間の通信を確立させ、(iii)ホストアプリケーションサーバ324に、実行のために照会が行われたタスクの1つ又は複数の組(「照会されたタスクセット」)から選択された所与の組のタスク(「所与のタスクセット」)を実行させることができる。
【0200】
[0216]httpリッスンタスクは、ホストアプリケーションサーバ324に、所与のサービスHTTP要求、及び/又はホストHTTPサーバ564と第2のエンドポイントデバイス506のアプリケーションとの間の通信から情報(まとめて「HTTP接続詳細」)を抽出させることもできる。httpリッスンタスクは、照会されたタスクセットから所与のタスクセットを選択し、所与のタスクセットを実行するために、HTTP接続詳細を使用することができる。
【0201】
[0217]httpリッスンタスクパラメータの例には、httpリッスンサービス定義エントリ及び宛先位置エントリなどがある。httpリッスンサービス定義エントリ及び宛先位置エントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0202】
[0218]httpリッスンサービス定義エントリは、httpリッスンタスクの実行に使用され得るサービスを識別する以前構成されたサービス定義(「HTTPサービス定義」)への参照を含むことができる。このHTTPサービス定義は、メモリ338のサービス定義レコード522に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ(「HTTPサービスパラメータ」)は、要求をリッスンするために、ホストHTTPサーバ564のインターネットプロトコル(「IP」)アドレス及びポートを示す情報を含むことができる。この情報は、例えば、サービスHTTPサーバ514のドメインに関連付けられているURIを含むことができる。このURIは、全部でも一部分でもよい。URIの前に、ドメイン名サーバ(「DNS」)によって割り当てられたサービスHTTPサーバ514のIP及び/又は名前を配置することができる。httpサービス定義の情報は、(i)サービスHTTPサーバ514に関連付けられている1つ又は複数のIPアドレス、及び(ii)httpリッスンタスクがリッスンするアプリケーション及び/又はサービスデバイスを示すための情報を含むこともできる。
【0203】
[0219]宛先位置エントリは、コンテンツレコード526にHTTP接続詳細を格納するための情報を含むことができる。この情報は、例えば、名前、アドレス、参照、ポインタ、URI、又はコンテンツレコード526の位置への他のインジケータを含むことができる。
【0204】
[0220]HTTP送信タスク例
【0205】
[0221]http送信タスクは、http送信ウィジェット13213によって表され、ホストアプリケーションサーバ324に、(i)サービスHTTPサーバ514に所与のHTTP要求を送信させ、(ii)ホストHTTPサーバ564とサービスHTTPサーバ514との間の通信を確立させ、(iii)サービスHTTPサーバ514からHTTP応答を受信させ、(iv)コンテンツレコード526にHTTP応答に関連付けられているコンテンツを格納させることができる。http送信タスクパラメータの例には、http送信サービス定義エントリ及びhttp送信操作エントリなどがある。http送信サービス定義及びhttp送信操作エントリのそれぞれは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0206】
[0222]http送信サービス定義エントリは、以前構成されたHTTPサービス定義への参照を含むことができる。このHTTPサービス定義は、メモリ338のサービス定義レコード522に格納され得るいくつかのHTTPサービスパラメータを含むことができる。代替として、HTTPサービス定義及び関連のパラメータ(「HTTPサービスパラメータ」)における、又はそれに似た情報は、サービス定義レコード522の代わりにhttp送信タスクパラメータに含まれていてもよい。HTTPサービスパラメータは、所与のホストHTTP要求を受信するように構成されたサービスHTTPサーバ514のIPアドレス及び/又はポートを示す情報を含むことができる。
【0207】
[0223]http送信操作エントリは、(i)DNSによって割り当てられるサービスHTTPサーバ514のIP及び/又は名前が前に配置され得るサービスHTTPサーバ514のドメインに関連付けられているURL(全部又は一部)、(ii)例えばHTTP GET、POST、及び/又はPUTなど、転送の方法をサービスHTTPサーバ514に示すための情報、(iii)所与のHTTP要求を生成するためにコンテンツレコード526からソースデータ(例えば、変数、数式、及び/又はテンプレート)を取り出し、及び/又は取得するための情報、(iv)その後の取り出しのために、関連付けられているコンテンツをメッセージチャネルに通信に格納するための情報、及び(v)HTTP応答に関連付けられているコンテンツをコンテンツレコード526に格納するための情報を含むことができる。
【0208】
[0224]http送信操作エントリは、本明細書に、HTTP送信タスクパラメータに含まれているものとして記載されているが、このエントリ(及びそれに含まれるパラメータ)は、HTTP送信タスクパラメータの代わりに、HTTPサービスパラメータとしてHTTPサービス定義に含まれていてもよい。こうした場合、HTTP送信タスクパラメータは、任意選択で、こうしたHTTPサービスパラメータをオーバーライドする、変更する、調整する、又はそうでなければ変更するためのパラメータを含むことができる。別の代替として、HTTPサービス定義及び関連のHTTPサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード522の代わりにHTTP送信タスクパラメータに含まれていてもよい。
【0209】
[0225]HTTP応答タスク例
【0210】
[0226]http応答タスクは、http応答ウィジェット13214によって表され、ホストHTTPサーバ564に、第2のエンドポイントデバイス506のWebブラウザなど、サービスデバイスの1つ又は複数のアプリケーションから発行された所与のサービスHTTP要求に対する所与のホストHTTP応答を発行させることができる。これは、ホストHTTPサーバ564に、(i)所与のホストHTTP応答に含めるために、コンテンツレコード526からコンテンツを取得させ、(ii)サービスHTTPサーバ514にコンテンツを送信させることを含むことができる。所与のホストHTTP応答に含まれるコンテンツは、コンテンツレコード526に格納された情報から選択され、あるいは、数式、テンプレートなどに応じて、こうした情報から構築されてもよい。
【0211】
[0227]http応答タスクパラメータの例には、http接続定義エントリ及びソースファイルエントリなどがある。http接続定義及びソースファイルエントリのそれぞれは、文字、文字列、数式、テンプレート、及び/又は変数として表すことができる。
【0212】
[0228]http接続定義エントリは、メモリ338におけるコンテンツレコード526に格納されたHTTP接続詳細への参照を含むことができる。HTTP接続詳細は、上述したように、所与のホストHTTP応答を受信するために第2のエンドポイントデバイス506のWebブラウザのIPアドレス及びポートを示すための情報を含むことができる。
【0213】
[0229]ソースファイルエントリは、コンテンツレコード526からコンテンツを取得するための情報を含むことができる。この情報は、コンテンツレコード526におけるコンテンツに割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード526内のコンテンツの位置への参照、ポインタ、URI、又は他のインジケータを含むことができる。
【0214】
[0230]メッセージ照会取得タスク例
【0215】
[0231]MQ取得タスクは、MQ取得ウィジェット13215によって表され、ホストアプリケーションサーバ324に、リモートメッセージ照会512からメッセージ(「ターゲットメッセージ」)を取り出させ、メッセージングソフトウェア570を介してコンテンツレコード526に転送させることができる。MQ取得タスクパラメータの例には、MQ取得サービス定義エントリ、ターゲットメッセージエントリ、及び宛先位置エントリなどがある。MQ取得サービス定義、メッセージ取得、及び宛先位置取得エントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0216】
[0232]MQ取得サービス定義エントリは、MQ取得タスクの実行に使用され得るメッセージ照会サービスを識別する以前構成されたサービス定義への参照を含むことができる。このサービス定義(「MQサービス定義」)は、メモリ338のサービス定義レコード522に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ(「MQサービスパラメータ」)は、MQ取得タスクを実行するようにメッセージングソフトウェア570、及び/又はリモートメッセージストア512を構成するための情報を含むことができる。この情報は、例えば、リモートメッセージストア512のドメインに関連付けられているURI、及び/又はリモートメッセージストア512に関連付けられている1つ又は複数のIPアドレスを含むことができる。
【0217】
[0233]ターゲットメッセージエントリは、リモートメッセージストア512における他のメッセージからターゲットメッセージを区別するための情報を含むことができる。この情報は、例えば、ターゲットメッセージについて、リモートメッセージストア512を検索し、監視するための用語を含むことができる。
【0218】
[0234]宛先位置エントリは、コンテンツレコード526にターゲットメッセージを格納するための情報を含むことができる。この情報は、例えば、名前、アドレス、参照、ポインタ、URI、又はコンテンツレコード526の位置への他のインジケータを含むことができる。
【0219】
[0235]宛先位置エントリは、本明細書に、MQ取得タスクパラメータに含まれているものとして記載されているが、このエントリ(及びそれに含まれるパラメータ)は、dB取得タスクパラメータの代わりに、MQサービスパラメータとしてMQサービス定義に含まれていてもよい。こうした場合、MQ取得タスクパラメータは、任意選択で、こうしたMQサービスパラメータをオーバーライドする、変更する、調整する、又はそうでなければ変更するためのパラメータを含むことができる。
【0220】
[0236]別の代替として、MQサービス定義及び関連のMQサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード522の代わりにMQ取得タスクパラメータに含まれていてもよい。
【0221】
[0237]メッセージ照会送信タスク例
【0222】
[0238]MQ送信タスクは、MQ送信ウィジェット13216によって表され、ホストアプリケーションサーバ324に、コンテンツレコード526からコンテンツを取得させ、コンテンツレコード526から取得されたコンテンツでソースメッセージのうちの1つ又は複数を埋めさせ、メッセージングソフトウェア570を介して、リモートメッセージ照会512にソースメッセージを転送させることができる。コンテンツレコード526から取得されたコンテンツは、コンテンツレコード526に格納された情報から選択され、あるいは、数式、テンプレートなどに応じて、こうした情報から構築されてもよい。
【0223】
[0239]MQ送信タスクパラメータの例には、MQ送信サービス定義エントリ及びメッセージエントリなどがある。MQ送信サービス定義エントリ及びメッセージエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0224】
[0240]MQサービス定義送信エントリは、MQ送信タスクの実行に使用され得る以前構成されたMQサービス定義への参照を含むことができる。このMQサービス定義は、メモリ338のサービス定義レコード522に格納され得るいくつかのMQサービスパラメータを含むことができる。これらのMQサービスパラメータは、MQ送信タスクを実行するようにメッセージングソフトウェア570、及び/又はリモートメッセージ照会512を構成するための情報を含むことができる。この情報は、例えば、リモートメッセージ照会512のドメインに関連付けられているURI、あるいは、リモートメッセージ照会512に関連付けられている1つ又は複数のIPアドレスを含むことができる。
【0225】
[0241]MQサービスパラメータは、コンテンツレコード526からコンテンツを取得するための情報を含むこともできる。この情報は、コンテンツレコード526に格納された情報に割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード526内のこうした情報の位置への参照、ポインタ、URI、又は他のインジケータを含むことができる。更に、MQサービスパラメータは、コンテンツレコード526に格納される情報からコンテンツを構築するための用語及び/又は命令を含むことができる。
【0226】
[0242]メッセージエントリは、(i)メッセージの件名で埋められ得る第1のフィールド、及び(ii)メッセージの本文で埋められ得る第2のフィールドを含むことができる。メッセージエントリは、他のフィールドを含むこともできる。
【0227】
[0243]MQサービス定義及び関連のMQサービスパラメータは、本明細書に、サービス定義レコード522に含まれているものとして記載されているが、その中に含まれるMQサービス定義及びパラメータは、省かれてもよい。省かれる場合、MQ送信タスクパラメータは、MQサービスを構成するための情報を含むことができる。
【0228】
[0244]Webサービスタスク例
【0229】
[0245]Webサービスタスクは、Webサービスウィジェット13217によって表され、ホストアプリケーションサーバ324に、(i)可変レコード526からコンテンツを取得させ、(ii)リモートWebサーバ516上でのWebサーバの実行をトリガするために、コンテンツを転送させることができる。Webサービスタスクは、ホストアプリケーションサーバ324に、コンテンツレコード526のうちの1つに、Webサービスから戻された任意の結果を格納させることもできる。コンテンツレコード526から取得されたコンテンツは、コンテンツレコード526に格納された情報から選択され、あるいは、数式、テンプレートなどに応じて、こうした情報から構築されてもよい。
【0230】
[0246]Webサービスタスクパラメータの例には、Webサービス定義エントリ及びコンテンツエントリなどがある。Webサービス定義エントリ及びコンテンツエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0231】
[0247]Webサービス定義エントリは、Webサービスタスクを実行するためのサービスを識別する以前構成されたサービス定義への参照を含むことができる。このサービス定義(「Webサービス定義」)は、メモリ338のサービス定義レコード522に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ(「Webサービスパラメータ」)は、Webサービスタスクを実行するようにホストアプリケーションサーバ324、及び/又はリモートWebサーバ516を構成するための情報を含むことができる。構成情報は、例えば、IPアドレス、パラメータ、データのタイプ、キー値対、画像の投稿など、ホストアプリケーションサーバ324とWebサーバ516など他のデバイスとの間の入力情報の転送を実行するための情報を含むことができる。
【0232】
[0248]Webサービスパラメータは、リモートWebサーバ516によって提供されるWebサービスの組からWebサービスを選択するための情報、及び/又はWebサービスの実行の方法を示すための情報を含むこともできる。Webサービスパラメータは、もしあれば、コンテンツレコード526に結果を格納するための情報を更に含むことができる。こうした情報は、名前、アドレス、参照、ポインタ、URI、又はコンテンツレコード526の位置への他のインジケータを含むことができる。
【0233】
[0249]コンテンツエントリは、コンテンツレコード526からコンテンツを取得するための情報を含むことができる。この情報は、コンテンツレコード526におけるコンテンツに割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード526内のコンテンツの位置への参照、ポインタ、URI、又は他のインジケータを含むことができる。
【0234】
[0250]Webサービス定義及び関連のWebサービスパラメータは、本明細書に、サービス定義レコード522に含まれているものとして記載されているが、その中に含まれるWebサービス定義及びパラメータは、省かれてもよい。省かれる場合、Webサービスタスクパラメータは、Webサービスを構成するための情報を含むことができる。
【0235】
[0251]変形タスク例
【0236】
[0252]変形タスクは、変形ウィジェット13218によって表され、ホストアプリケーションサーバ324に、(i)コンテンツレコード526からコンテンツを取得させ、(ii)結果をもたらすように、コンテンツに対する変形を適用させ、(iii)コンテンツレコード526に結果を転送させることができる。変形タスクパラメータの例には、変形エントリ、コンテンツエントリ、及び宛先位置エントリなどがある。変形、コンテンツ、宛先位置のエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0237】
[0253]変形エントリは、コンテンツを変形する(例えば、コンテンツの構造を再配列し、及び/又は変更する)ための変形をコンテンツレコード526から取り出す、又はそうでなければ取得するための情報を含むことができる。この情報は、変形への参照を含むことができる。参照は、コンテンツレコード526に格納されたいくつかの変形のうちの1つを参照することができる。コンテンツエントリは、コンテンツレコード526からコンテンツを取得するための情報を含むことができる。この情報は、コンテンツレコード526におけるコンテンツに割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード526内のコンテンツの位置への参照、ポインタ、URI、又は他のインジケータを含むことができる。
【0238】
[0254]宛先位置エントリは、コンテンツレコード526に結果を格納するための情報を含むことができる。こうした情報は、名前、アドレス、参照、ポインタ、URI、又はコンテンツレコード526の位置への他のインジケータを含むことができる。
【0239】
[0255]変換タスク例
【0240】
[0256]変換タスクは、変形ウィジェット13219によって表され、ホストアプリケーションサーバ324に、(i)コンテンツレコード526からコンテンツを取得させ、(ii)テンプレートレコード520から変換テンプレートを選択させ(「選択済み変換テンプレート」)、(iii)こうしたコンテンツを変換するために、コンテンツに選択済み変換テンプレートを適用させ、(iv)コンテンツレコード526にそれからの結果を格納させることができる。変換タスクパラメータの例には、変換テンプレートエントリ、コンテンツエントリ、及び宛先位置エントリなどがある。変換テンプレート、コンテンツ、宛先位置のエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0241】
[0257]変換テンプレートエントリは、選択済み変換テンプレートへの参照を含むことができる。この参照は、テンプレートレコード520に格納された変換テンプレートのうちの任意の1つを参照することができる。コンテンツエントリは、コンテンツレコード526からコンテンツを取得するための情報を含むことができる。この情報は、コンテンツレコード526におけるコンテンツに割り当てられた、又はそうでなければ関連付けられた名前及び/又はアドレスを含むことができる。あるいは、情報は、参照、ポインタ、URI、又はコンテンツレコード526内のコンテンツの位置への他のインジケータを含むことができる。
【0242】
[0258]宛先位置エントリは、コンテンツレコード526に結果を格納するための情報を含むことができる。こうした情報は、名前、アドレス、参照、ポインタ、URI、又はコンテンツレコード526の位置への他のインジケータを含むことができる。
【0243】
[0259]セマンティックプロトコルタスク例
【0244】
[0260]セマンティックプロトコルタスクは、セマンティックプロトコルウィジェット13220によって表され、1つの入力及び少なくとも2つの出力を含み、出力のそれぞれは、ワークフローの異なる分岐に接続することができる。動作中、セマンティックプロトコルタスクは、ホストアプリケーションサーバ324に、所与のスキーマテンプレートに一致する、又はそうでなければ適合するコンテンツ(「入力コンテンツ」)を受信する、又はそうでなければ取得することに対応するワークフローの分岐のうちの1つ又は複数を実行させることができる。
【0245】
[0261]これを容易にするために、セマンティックプロトコルタスクは、ホストアプリケーションサーバ324に、(i)テンプレートレコード520からスキーマテンプレートを選択させ(「選択済みスキーマテンプレート」)、(ii)入力コンテンツがこうしたスキーマに一致し、又はそうでなければ適合するかどうかを決定するために、入力コンテンツを、選択されたスキーマテンプレートのスキーマの一部又はすべてと比較させ、(iii)入力コンテンツとスキーマとの間の一致の決定に合うセマンティックプロトコルタスクの出力を有効にさせ、又はそうでなければアクティブにさせることができる。
【0246】
[0262]セマンティックプロトコルタスクパラメータは、選択された妥当性検査テンプレートへの参照を含むことができる。この参照は、名前、アドレス、参照、ポインタ、URI、又はテンプレートレコード520における妥当性検査テンプレートの位置への他のインジケータを含むことができる。
【0247】
[0263]削除タスク例
【0248】
[0264]削除タスクは、削除ウィジェット13221によって表され、ホストアプリケーションサーバ324に、メモリ328に格納された1つ又は複数のレコード及び/又はファイルを削除させ、又は削除するようにマークさせることができる。削除タスクパラメータは、削除されるべき、又は削除するようにマークされるべきレコード又はファイルへの参照を含むことができる。この参照は、レコード及び/又はファイルの名前及び/又はアドレス、及び/又はメモリにおけるレコード及び/又はファイルの位置へのポインタ、URI、又は他のインジケータを含むことができる。参照は、文字、文字列、数式、変数、及び/又は類似のものとして表すことができる。
【0249】
[0265]妥当性検査タスク例
【0250】
[0266]妥当性検査タスクは、妥当性検査ウィジェット13222によって表され、ホストアプリケーションサーバ324に、コンテンツレコード526から取得されたレコード(「評価レコード」)の構造(「例えば、論理的構造」)が妥当性検査タスクで指定された妥当性検査テンプレートに適合することを検証させることができる。あるいは、及び/又は更に、妥当性検査タスクは、ホストアプリケーションサーバ324に、評価レコード内のコンテンツが妥当性検査タスクパラメータで指定された1組のルールに適合することを妥当性検査させることができる。妥当性検査タスクは、ホストアプリケーションサーバ324に、妥当性検査の結果に応じて、タスクのうちの1つ又は複数を実行させることもできる。例えば、ホストアプリケーションサーバ324は、妥当性検査の結果が妥当性検査の成功を示す場合、タスクのうちの1つ又は複数を実行することができる。しかし、妥当性検査の結果が妥当性検査の失敗を示す場合、ホストアプリケーションサーバ324は、こうした妥当性検査の失敗を示すエラーメッセージを発行することができる。
【0251】
[0267]妥当性検査タスクパラメータの例には、妥当性検査エントリ、コンテンツエントリ、及び宛先位置エントリなどがある。妥当性検査、コンテンツ、宛先位置のエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0252】
[0268]妥当性検査エントリは、テンプレートレコード520から妥当性検査テンプレート及び/又は妥当性検査ルールを取り出し、又はそうでなければ取得するための情報を含むことができる。これは、例えば、妥当性検査テンプレート及び/又は妥当性検査ルールに関連付けられている名前、及び/又はアドレスを含むことができる。あるいは、情報は、テンプレートレコード520内の妥当性検査テンプレート及び/又は妥当性検査ルールの位置への参照、ポインタ、URI、又は他のインジケータを含むことができる。妥当性検査エントリは、妥当性検査の結果(例えば、成功又は失敗)に対応する実行のためのタスクの1つ又は複数を指定するための情報を含むこともできる。
【0253】
[0269]コンテンツエントリは、コンテンツレコード526からそこにおける評価レコード及びコンテンツを取り出す、又はそうでなければ取得するための情報を含むことができる。この情報は、コンテンツレコード526における評価レコードに割り当てられた、又はそうでなければ関連付けられた名前/又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード526内の評価レコードの位置への参照、ポインタ、URI、又は他のインジケータを含むことができる。
【0254】
[0270]宛先位置エントリは、妥当性検査タスクを実行することに応答して生成される結果を格納するための情報を含むことができる。この情報は、名前、アドレス、及び/又は参照、ポインタ、URI、又はコンテンツレコード526における位置への他のインジケータを含むことができる。
【0255】
[0271]TCPリッスン、TCP取得、及びTCP送信タスク例
【0256】
[0272]tcpリッスン、tcp取得、及びtcp送信タスクは、tcpリッスン、tcp取得、及びtcp送信ウィジェット13223〜13225によって表され、TCP通信プロトコルとHTTP通信プロトコルとの間の違いを行うための詳細のアプリケーション(例えば、TCPは一般にURLパラメータを有していない)を除いて、上述したhttpリッスン、http応答、及びhttp送信タスクに似ている。こうした詳細は知られており、説明を簡潔にするために、ここでは含まれない。
【0257】
[0273]待機タスク例
【0258】
[0274]待機タスクは、待機ウィジェット13226によって表され、ホストアプリケーションサーバ324に、ワークフロー、及び/又はワークフロー分岐のうちの1つ又は複数の実行を所与の時間の間一時停止させる。待機タスクパラメータは、実行を一時停止するための時間を指定するためのエントリを含む。このパラメータは、文字、文字列、変数、数式、及び/又は類似のものとして表すことができる。
【0259】
[0275]電子メール取得タスク例
【0260】
[0276]電子メール取得タスクは、電子メール取得ウィジェット13227によって表され、ホストアプリケーションサーバ324に、ホスト電子メールエンジンを介してサービス電子メールサーバ518から電子メールメッセージ(添付ファイル有り又は無し)を取り出させ、又はそうでなければ取得させ、電子メールメッセージをその後取り出すために電子メールレコードに転送させることができる。電子メール送信タスクパラメータの例には、電子メール取得サービス定義エントリなどがある。電子メール取得サービス定義エントリは、文字、文字列、及び/又は変数として表すことができる。
【0261】
[0277]電子メール取得サービス定義エントリは、電子メール取得タスクを実行するための電子メールサービスを識別する以前構成されたサービス定義への参照を含むことができる。このサービス定義(「電子メール取得サービス定義」)は、メモリ338のサービス定義レコード522に格納され得るいくつかのパラメータを含むことができる。代替として、電子メール取得サービス定義及び関連のパラメータ(「電子メール取得サービスパラメータ」)における、又はそれに似た情報は、サービス定義レコード522の代わりに電子メール取得タスクパラメータに含まれていてもよい。
【0262】
[0278]電子メール取得サービスパラメータは、サービス電子メールサーバ518を識別する設定を含むことができる。この設定は、例えば、サービス電子メールサーバ517のドメイン、及び/又はサービスのタイプ、例えば、POP、IMAP、及び他の電子メールサービスタイプとすることもできる。電子メール取得サービスパラメータは、コンテンツレコード526に電子メールメッセージ及び/又は電子メール添付ファイルを格納するための情報を含むこともできる。この情報は、名前、アドレス、及び/又は参照、ポインタ、URI、又はコンテンツレコード526における位置への他のインジケータを含むことができる。
【0263】
[0279]電子メールサービス定義及び関連の電子メールサービスパラメータは、本明細書に、サービス定義レコード522に含まれているものとして記載されているが、その中に含まれる電子メールサービス定義及びパラメータは、省かれてもよい。省かれる場合、電子メール取得タスクパラメータは、電子メールサービスを構成するための情報を含むことができる。
【0264】
[0280]コピータスク例
【0265】
[0281]コピータスクは、コピーウィジェット13228によって表され、ホストアプリケーションサーバ324に、結果を生成するための数式を評価させ、コンテンツレコード526における結果レコードのうちの1つ又は複数に結果を転送させることができる。コピータスクは、ホストアプリケーションサーバ324に、結果レコード及び/又はそうでなければコンテンツレコード526における結果レコードのうちの任意のものを作成させることもできる。
【0266】
[0282]コピータスクパラメータの例には、数式エントリ及び位置宛先エントリなどがある。数式定義は、数式(例えば、公式)を含むことができる。
【0267】
[0283]位置宛先エントリは、結果レコードのうちの1つ又は複数に結果を格納するための情報を含むことができる。この情報は、結果レコードに割り当てられた又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、位置宛先エントリの情報は、コンテンツレコード526内の位置への参照、ポインタ、URI、又は他のインジケータを含むことができる。
【0268】
[0284]反復タスク例
【0269】
[0285]反復タスクは、コピーウィジェット13229によって表され、ホストアプリケーションサーバ324に、コンテンツレコード526から取得されたコンテンツの組を使用して、指定された回数タスクのうちの1つを反復させる(「反復タスク」)ことができる。あるいは、反復タスクは、ホストアプリケーションサーバ324に、コンテンツレコード526から取得された1組のコンテンツにわたって反復タスクを反復させることができる。一例として、反復タスクは、電子メールを作成し、コンテンツレコード526から取得されたコンテンツの組内に含まれる複数の受信者の電子メールアドレスに送信するように(例えば、メーリングリスト)、ホストアプリケーションサーバ324に、電子メール送信タスクを反復させることができる。この反復は、指定された回数、又はコンテンツレコード526から取得されたコンテンツの組にコンテンツが残っている限り実行することができる。
【0270】
[0286]反復タスクパラメータの例には、収集エントリ及び反復フラグエントリなどがある。収集及び反復フラグのエントリは、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0271】
[0287]収集エントリは、コンテンツレコード526から反復タスクへの入力のためのコンテンツの組を取り出す、又はそうでなければ取得するための情報を含む。この情報は、コンテンツレコード526におけるコンテンツの組に割り当てられた、又はそうでなければ関連付けられた名前及び/又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード526内のコンテンツの組の位置への参照、ポインタ、URI、又は他のインジケータを含むことができる。
【0272】
[0288]反復フラグエントリは、反復タスクの終了(例えば、未処理のコンテンツがコンテンツの組に残っていない)を示すためのフラグを定義するための情報を含むことができる。
【0273】
[0289]ワークフロー開始タスク例
【0274】
[0290]ワークフロー開始タスクは、ワークフローウィジェット13230によって表され、ホストアプリケーションサーバ324に、(i)記録済みワークフローレコード528から記録済みワークフローを選択させ、(ii)記録済みワークフローの実行をトリガさせることができる。実行をトリガするために、ワークフロー開始タスクは、ホストアプリケーションサーバ324に、コンテンツレコード526から、記録済みワークフローの実行のための入力情報を取得させることができる。更に、ワークフロー開始タスクは、ホストアプリケーションサーバ324に、同期又は非同期モードで、記録済みワークフローを実行させることができる。
【0275】
[0291]同期モードでは、ワークフロー開始タスクは、ワークフロー又はワークフロー開始タスクを含むワークフロー分岐における別のタスクを実行する前に、ホストアプリケーションサーバ324に、記録済みワークフローを実行させ、終了させることができる。記録済みワークフローの実行後、ワークフロー開始タスクは、ホストアプリケーションサーバ324に、記録済みワークフローの実行からの結果をタスクの別のものの入力情報としてコンテンツレコード526に格納させることができる。
【0276】
[0292]非同期モードでは、ワークフロー開始タスクは、ホストアプリケーションサーバ324に、記録済みワークフローを実行させ、記録済みワークフローの終了を待つことなく、ワークフローの、又はワークフロー開始タスクを含むワークフロー分岐における他のタスクの実行を続けさせることができる。ワークフロー開始タスクは、ホストアプリケーションサーバ324に、別のタスクの入力情報を取得させないことがある。
【0277】
[0293]ワークフロー開始タスクの定義の例には、記録済みワークフロー定義、記録済みワークフロー入力定義、及びワークフロー開始モード、及び情報返却定義などがある。記録済みワークフロー及び情報返却の定義は、文字、文字列、数式、テンプレート、変数、及び/又は類似のものとして表すことができる。
【0278】
[0294]記録済みワークフロー定義は、記録済みワークフローレコードから記録済みワークフローを取り出し、又はそうでなければ取得するための情報を含むことができる。この情報は、記録済みワークフローファイル556に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、あるいはメモリ328上の記録済みワークフローファイル556の位置へのポインタを含むことができる。
【0279】
[0295]記録済みワークフロー入力定義は、コンテンツレコード526から記録済みワークフロー入力のための入力情報を取り出し、又はそうでなければ取得するための情報を含むことができる。この情報は、コンテンツレコード526に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、あるいはメモリ328上のコンテンツレコード526の位置へのポインタを含むことができる。
【0280】
[0296]ワークフロー開始モード定義は、同期又は非同期のモードを示すための情報を含むことができる。情報返却定義は、コンテンツレコード526から結果を取得するための情報を含むことができる。この情報は、コンテンツレコード526に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、あるいはメモリ328上のコンテンツレコード526の位置へのポインタを含むことができる。
【0281】
[0297]結論
【0282】
[0298]上述した装置及び方法の変形は、本発明の範囲から逸脱することなく可能である。例えば、上記の例において、コントローラ及びプロセッサを含む他のデバイスが記載される。これらのデバイスは、少なくとも1つの中央処理装置(「CPU」)及びメモリを含むことができる。コンピュータプログラミングの当業者によれば、行為、及び動作又は命令の記号表現の参照は、様々なCPU及びメモリによって行うことができる。こうした行為、及び動作又は命令は、「実行される」、「コンピュータで実行される」、又は「CPUで実行される」と呼ぶことができる。
【0283】
[0299]当業者は、行為及び記号的に表された動作又は命令がCPUによる電気的信号の操作を含むことを理解されたい。電気システムは、電気的信号の結果として得られた変形又は低減、及びメモリシステムにおけるメモリ位置でのデータビットの維持をもたらし、それによってCPUの動作及び信号の他の処理を再構成し、又はそうでなければ変更するデータビットを表す。データビットが維持されるメモリ位置は、データビットに対応する、又はそれを表す特定の電気、磁気、光、又は有機的特性を有する物理位置である。実施形態例は、上述したプラットフォーム又はCPUに限定されず、他のプラットフォーム及びCPUは、記載の方法をサポートすることができることを理解されたい。
【0284】
[0300]データビットは、CPUによって読み取り可能な、磁気ディスク、光ディスク、及び任意の他の揮発性(例えばランダムアクセスメモリ(「RAM」)、又は不揮発性(例えば読み取り専用メモリ(「ROM」)の大容量記憶システムを含むコンピュータ可読媒体で維持することもできる。コンピュータ可読媒体には、もっぱら処理システムに存在する、又は処理システムにローカル又はリモートであり得る複数の相互接続された処理システムにわたって分散される協働する又は相互接続されたコンピュータ可読媒体などがある。例は、上述したメモリに限定されず、他のプラットフォーム及びメモリは、記載の方法をサポートすることができることを理解されたい。
【0285】
[0301]適用され得る広範の実施形態に照らして、示した例は、例示にすぎず、以下の特許請求の範囲を制限するものとみなされないものとすることを理解されたい。更に、特許請求の範囲は、その影響を特記しない限り、記載された順序又は要素に限定されるとみなされないものとする。更に、任意の請求項における「手段」という用語の使用は、米国特許法第112条第6項を実施するものであり、「手段」という単語を含まない任意の請求項は、そのように意図されない。

【特許請求の範囲】
【請求項1】
グラフィカルユーザインターフェイスを介して、ワークフローの複数のタスクを実行するための情報を取得するステップであって、前記情報が前記複数のタスクの少なくとも1つの機能の抽象概念を定義する、ステップと、
前記情報から、ワークフローを実行するためのレコードを形成するステップであって、前記レコードが、発送されて前記ワークフローの実行を容易にするよう動作可能である、ステップと
を含む方法。
【請求項2】
前記レコードを発送して、前記ワークフローの実行を容易にするステップと、
前記グラフィカルユーザインターフェイスを介して、前記ワークフローを実行する命令を発行するステップと
を更に含む請求項1に記載の方法。
【請求項3】
前記抽象概念が、実行可能命令を生成するために使用されて、前記複数のタスクの前記少なくとも1つの機能を実行する請求項1に記載の方法。
【請求項4】
前記少なくとも1つの機能が前記複数のタスクのそれぞれの機能を含む請求項1に記載の方法。
【請求項5】
前記グラフィカルユーザインターフェイスの要素を操作して、前記グラフィカルユーザインターフェイスに、前記ワークフローの複数のタスクを実行するための前記情報を取得させるステップを更に含む請求項1に記載の方法。
【請求項6】
前記グラフィカルユーザインターフェイスを介して、前記ワークフローのグラフィカル表現を形成するステップであって、前記グラフィカル表現が複数のウィジェットを備え、前記複数のウィジェットが前記複数のタスクをそれぞれ表す、ステップを更に含む請求項1に記載の方法。
【請求項7】
前記抽象概念が、前記複数のタスクの前記少なくとも1つの機能を示すパラメータを含む請求項1に記載の方法。
【請求項8】
前記抽象概念がパラメータを備え、前記パラメータが、(i)前記複数のタスクの前記少なくとも1つの機能の表示、及び(ii)前記複数のタスクのうちの任意のものに関連付けられているサービス、設定、ルール、変数、数式、テンプレート、指数、指示、コマンド、フィールドへの参照から成るグループから選択される情報を含む請求項1に記載の方法。
【請求項9】
ワークフローを実行するためのレコードを取得するステップであって、前記レコードが、ワークフローの複数のタスクを実行するための情報から形成され、前記情報がグラフィカルユーザインターフェイスを介して取得され、前記情報が前記複数のタスクの少なくとも1つの機能の抽象概念を定義する、ステップと、
前記ワークフローを実行する命令に応答して前記ワークフローを実行するステップであって、前記命令が前記グラフィカルユーザインターフェイスから出る、ステップと
を含む方法。
【請求項10】
前記ワークフローを前記レコードに応じて生成するステップを更に含む請求項9に記載の方法。
【請求項11】
前記レコードに応じて前記ワークフローを生成するステップが、前記抽象概念に応じて、前記複数のタスクの前記少なくとも1つの機能を実行するための実行可能命令を生成するステップを含む請求項10に記載の方法。
【請求項12】
前記少なくとも1つの機能が前記複数のタスクのそれぞれの機能を備え、前記レコードに応じて前記ワークフローを生成するステップが、前記抽象概念に応じて、前記複数のタスクのそれぞれの前記機能を実行するための実行可能命令を生成するステップを含む請求項10に記載の方法。
【請求項13】
前記抽象概念が少なくとも1つのパラメータを備え、前記少なくとも1つのパラメータが前記複数のタスクの前記少なくとも1つの機能を示し、前記レコードに応じて前記ワークフローを生成するステップが、前記少なくとも1つのパラメータに応じて、前記複数のタスクの前記少なくとも1つの機能を実行するための実行可能命令を生成するステップを含む請求項9に記載の方法。
【請求項14】
前記抽象概念がパラメータを備え、前記パラメータが、(i)前記複数のタスクの前記少なくとも1つの機能の表示、及び(ii)前記複数のタスクのうちの任意のものに関連付けられているサービス、設定、ルール、変数、数式、テンプレート、指数、指示、コマンド、フィールドへの参照から成るグループから選択される情報を含む請求項9に記載の方法。
【請求項15】
前記ワークフローを実行する命令が、前記ワークフローから実行可能命令を生成するための命令を含む請求項9に記載の方法。
【請求項16】
グラフィカルユーザインターフェイスを介して、複数のタスクの少なくとも1つの機能の抽象概念を定義する、ワークフローの前記複数のタスクを実行するための情報を取得し、
前記情報から、発送されて前記ワークフローの実行を容易にするよう動作可能である、前記ワークフローを実行するためのレコードを形成する
ようにコンピュータ実行可能であるプログラム命令を備える有形のコンピュータでアクセス可能な媒体。
【請求項17】
前記抽象概念が、前記複数のタスクの前記少なくとも1つの機能を実行するためのコンピュータ実行可能命令を生成するために使用される請求項16に記載の有形のコンピュータでアクセス可能な媒体。
【請求項18】
前記少なくとも1つの機能が前記複数のタスクのそれぞれの機能を備える請求項16に記載の有形のコンピュータでアクセス可能な媒体。
【請求項19】
前記グラフィカルユーザインターフェイスの要素を操作して、前記グラフィカルユーザインターフェイスに、前記ワークフローの複数のタスクを実行するための前記情報を取得させるようにコンピュータ実行可能なプログラム命令を更に備える請求項16に記載の有形のコンピュータでアクセス可能な媒体。
【請求項20】
前記グラフィカルユーザインターフェイスを介して、前記ワークフローのグラフィカル表現を形成するようにコンピュータ実行可能なプログラム命令であって、前記グラフィカル表現が複数のウィジェットを備え、前記複数のウィジェットが前記複数のタスクをそれぞれ表す、プログラム命令を更に備える請求項16に記載の有形のコンピュータでアクセス可能な媒体。
【請求項21】
前記抽象概念が、前記複数のタスクの前記少なくとも1つの機能を示すパラメータを備える請求項16に記載の有形のコンピュータでアクセス可能な媒体。
【請求項22】
前記抽象概念がパラメータを備え、前記パラメータが、(i)前記複数のタスクの前記少なくとも1つの機能の表示、及び(ii)前記複数のタスクのうちの任意のものに関連付けられているサービス、設定、ルール、変数、数式、テンプレート、指数、指示、コマンド、フィールドへの参照から成るグループから選択される情報を備える請求項16に記載の有形のコンピュータでアクセス可能な媒体。
【請求項23】
グラフィカルユーザインターフェイスと、メモリと、プロセッサとを備える装置であって、
前記メモリが、
前記グラフィカルユーザインターフェイスを介して、複数のタスクの少なくとも1つの機能の抽象概念を定義する、ワークフローの前記複数のタスクを実行するための情報を取得し、
前記情報から、発送されて前記ワークフローの実行を容易にするよう動作可能である、前記ワークフローを実行するためのレコードを形成する
ための実行可能命令を格納するよう動作可能であり、
前記プロセッサが、前記実行可能命令を前記メモリから取得し、実行するよう動作可能である、装置。
【請求項24】
前記抽象概念が、前記複数のタスクの前記少なくとも1つの機能を実行するためのコンピュータ実行可能命令を生成するために使用される請求項23に記載の装置。
【請求項25】
前記少なくとも1つの機能が前記複数のタスクのそれぞれの機能を備える請求項23に記載の装置。
【請求項26】
前記メモリが、前記グラフィカルユーザインターフェイスの要素を操作して、前記グラフィカルユーザインターフェイスに、前記ワークフローの複数のタスクを実行するための前記情報を取得させる実行可能命令を格納するよう更に動作可能である請求項23に記載の装置。
【請求項27】
前記メモリが、前記グラフィカルユーザインターフェイスを介して、前記ワークフローのグラフィカル表現を形成する実行可能命令を格納するよう更に動作可能であり、前記グラフィカル表現が複数のウィジェットを備え、前記複数のウィジェットが前記複数のタスクをそれぞれ表す請求項23に記載の装置。
【請求項28】
前記抽象概念が、前記複数のタスクの前記少なくとも1つの機能を示すパラメータを備える請求項23に記載の装置。
【請求項29】
前記抽象概念がパラメータを備え、前記パラメータが、(i)前記複数のタスクの前記機能の表示、及び(ii)前記複数のタスクのうちの任意のものに関連付けられるためのサービス、設定、ルール、変数、数式、テンプレート、指数、指示、コマンド、フィールドへの参照から成るグループから選択される情報を備える請求項23に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2010−539600(P2010−539600A)
【公表日】平成22年12月16日(2010.12.16)
【国際特許分類】
【出願番号】特願2010−524963(P2010−524963)
【出願日】平成20年9月10日(2008.9.10)
【国際出願番号】PCT/US2008/075880
【国際公開番号】WO2009/036079
【国際公開日】平成21年3月19日(2009.3.19)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.リナックス
2.Linux
3.Bluetooth
4.フロッピー
5.JAVA
【出願人】(510066514)シャンベラ リミテッド (2)
【Fターム(参考)】