(57)【要約】      （修正有）【課題】１つ又は複数のワークフローを生成し、配置し、及び／又は実行するための方法、システム、及びグラフィカルユーザインターフェイスが提供される。【解決手段】この方法は、グラフィカルユーザインターフェイスを介して、ワークフローの複数のタスクを実行するための情報を取得するステップであって、その情報が複数のタスクの少なくとも１つの機能の抽象概念を定義するステップと、その情報から、ワークフローを実行するためのレコードを形成するステップであって、そのレコードが、発送されてワークフローの実行を容易にするよう動作可能である、ステップとを含む。【選択図】図２
2014194814.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサにより実行されるコンピュータ実行可能な命令がコンピュータにより実行されるワークフロー方法であって、
複数のグラフィカルタスクウィジェットと複数のシーケンスウィジェットを、選択可能なグラフィカルユーザインターフェイスにプロセッサを介してユーザデバイスにおいて構成するステップと、
少なくとも３つのグラフィカルタスクウィジェットと少なくとも２つのシーケンスウィジェットを選択するステップであって、前記少なくとも３つのグラフィカルタスクウィジェットはネットワークを跨いでホストアプリケーションサーバで実行される少なくとも３つのタスクを含み、前記シーケンスウィジェットは前記少なくとも３つのタスクのための少なくとも２つのシーケンスパラメータを含む、ステップと、
前記少なくとも２つのシーケンスウィジェットのうちの一つと共に各グラフィカルタスクウィジェットを順序づけすることによりグラフィカルワークフローを形成するステップと、
少なくとも一つのテンプレートエントリフィールドに入力されたデータを用いて前記少なくとも３つのグラフィカルタスクウィジェットの少なくとも一つのタスクパラメータを開始タスクパラメータとして定義するステップであって、前記開始タスクパラメータが複数のグラフィカルタスクウィジェットに共通である、ステップと、
タスクパラメータとシーケンスパラメータとを、ネットワークを超えて前記ホストアプリケーションサーバに発送されたワークフローレコードにプロセッサを介して挿入するステップと、
前記ワークフローレコードの全てのシーケンスパラメータ及びタスクパラメータを抽出し、前記全てのシーケンスパラメータ及びタスクパラメータを構文解析するステップと、
前記構文解析された全てのシーケンスパラメータ及びタスクパラメータを検査して、前記ホストアプリケーションサーバを介して、複数のライブラリのうちの対応するライブラリに一致させるステップと、
前記ホストアプリケーションサーバで、第１のタスク及び第２のタスクを生成するために、構文解析された全てのシーケンスパラメータ及びタスクパラメータを前記対応するライブラリに結合するステップであって、前記第１のタスクは、少なくとも一つのリモートデバイスからのサービス要求データを受ける、ステップと、
前記少なくとも一つのリモートデバイスからサービス要求データを受信するステップと、
前記ホストアプリケーションサーバでワークフロー実行可能コードを実行し、前記第１のタスクから受信した前記サービス要求データに基づき第２のリモートデバイスに前記対応するライブラリから第２のタスクを配置するステップと、
を含む方法。
【請求項２】
前記ワークフローレコードは、ワークフロー順序づけレコード及びワークフロー操作レコードを含む、請求項１に記載の方法。
【請求項３】
前記ワークフロー操作レコードは、開始及び停止インスタンス、オブジェクトまたはクラスの配置のためのタスクパラメータを定義する、請求項２に記載の方法。
【請求項４】
前記ホストアプリケーションサーバとは異なるサーバ上の前記ホストアプリケーションサーバにより提供された少なくとも一つのサービスにアクセスするために、前記パラメータは、構文解析されると、対応するライブラリのルーチンに対応する、請求項１に記載の方法。
【請求項５】
少なくとも一つのパラメータは、前記ホストアプリケーションサーバにより提供された少なくとも一つのサービスにアクセスするための情報を含む、請求項１に記載の方法。
【請求項６】
前記少なくとも一つのパラメータは、少なくとも一つのサービスにアクセスするための許可情報を含み、該サービスは、ＦＴＰサービス、ＨＴＴＰサービス、ＤＢサービス、ＰＯＰサービス、ＳＭＴＰ、ＭＱサービス、ＤＢＭＳサービス、ＪＭＳサービス、ＳＩＭＰＬＥ（ＳＩＰＰ  ｆｏｒ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｌｅｖｅｒａｇｉｎｇ  Ｅｘｔｅｎｓｉｏｎｓ）、アプリケーション変換（ＡＰＥＸ：Ａｐｐｌｉｃａｔｉｏｎ  Ｅｘｃｈａｎｇｅ）、ＰＲＩＭ（Ｐｒｅｓｅｎｃｅ  ａｎｄ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  Ｐｒｏｔｏｃｏｌ）、ＸＭＰＰ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｐｒｏｔｏｃｏｌ）、ＩＭＰＳ（Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｓｅｒｖｉｃｅ）、インターネットメッセージアクセスプロトコル（ＩＭＡＰ）及び電子メールサービスのうちの１つを含む、請求項５に記載の方法。
【請求項７】
コンピュータ実行可能な命令を記憶するコンピュータでアクセス可能な媒体であって、少なくとも一つのプロセッサにより実行されたときに、
複数のグラフィカルタスクウィジェットと複数のシーケンスウィジェットを、選択可能なグラフィカルユーザインターフェイスにプロセッサを介してユーザデバイスにおいて構成するステップと、
少なくとも３つのグラフィカルタスクウィジェットと少なくとも２つのシーケンスウィジェットを選択するステップであって、前記少なくとも３つのグラフィカルタスクウィジェットはネットワークを跨いでホストアプリケーションサーバで実行される少なくとも３つのタスクを含み、前記シーケンスウィジェットは前記少なくとも３つのタスクのための少なくとも２つのシーケンスパラメータを含む、ステップと、
前記少なくとも２つのシーケンスウィジェットのうちの一つと共に各グラフィカルタスクウィジェットを順序づけすることによりグラフィカルワークフローを形成するステップと、
少なくとも一つのテンプレートエントリフィールドに入力されたデータを用いて前記少なくとも３つのグラフィカルタスクウィジェットの少なくとも一つのタスクパラメータを開始タスクパラメータとして定義するステップであって、前記開始タスクパラメータが複数のグラフィカルタスクウィジェットに共通である、ステップと、
タスクパラメータとシーケンスパラメータとを、ネットワークを超えて前記ホストアプリケーションサーバに発送されたワークフローレコードにプロセッサを介して挿入するステップと、
前記ワークフローレコードの全てのシーケンスパラメータ及びタスクパラメータを抽出し、前記全てのシーケンスパラメータ及びタスクパラメータを構文解析するステップと、
前記構文解析された全てのシーケンスパラメータ及びタスクパラメータを検査して、前記ホストアプリケーションサーバを介して、複数のライブラリのうちの対応するライブラリに一致させるステップと、
前記ホストアプリケーションサーバで、第１のタスク及び第２のタスクを生成するために、構文解析された全てのシーケンスパラメータ及びタスクパラメータを前記対応するライブラリに結合するステップであって、前記第１のタスクは、少なくとも一つのリモートデバイスからのサービス要求データを受ける、ステップと、
前記少なくとも一つのリモートデバイスからサービス要求データを受信するステップと、
前記ホストアプリケーションサーバでワークフロー実行可能コードを実行し、前記第１のタスクから受信した前記サービス要求データに基づき第２のリモートデバイスに前記対応するライブラリから第２のタスクを配置するステップと、
を含む方法を前記少なくとも一つのプロセッサに実行させる、コンピュータでアクセス可能な媒体。
【請求項８】
前記ワークフローレコードは、ワークフロー順序づけレコード及びワークフロー操作レコードを含む、請求項７に記載のコンピュータでアクセス可能な媒体。
【請求項９】
前記ワークフロー操作レコードは、開始及び停止インスタンス、オブジェクトまたはクラスの配置のためのタスクパラメータを定義する、請求項８に記載のコンピュータでアクセス可能な媒体。
【請求項１０】
前記ホストアプリケーションサーバとは異なるサーバ上の前記ホストアプリケーションサーバにより提供された少なくとも一つのサービスにアクセスするために、前記パラメータは、構文解析されると、対応するライブラリのルーチンに対応する、請求項７に記載のコンピュータでアクセス可能な媒体。
【請求項１１】
少なくとも一つのパラメータは、前記ホストアプリケーションサーバにより提供された少なくとも一つのサービスにアクセスするための情報を含む、請求項７に記載のコンピュータでアクセス可能な媒体。
【請求項１２】
前記少なくとも一つのパラメータは、少なくとも一つのサービスにアクセスするための許可情報を含み、該サービスは、ＦＴＰサービス、ＨＴＴＰサービス、ＤＢサービス、ＰＯＰサービス、ＳＭＴＰ、ＭＱサービス、ＤＢＭＳサービス、ＪＭＳサービス、ＳＩＭＰＬＥ（ＳＩＰＰ  ｆｏｒ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｌｅｖｅｒａｇｉｎｇ  Ｅｘｔｅｎｓｉｏｎｓ）、アプリケーション変換（ＡＰＥＸ：Ａｐｐｌｉｃａｔｉｏｎ  Ｅｘｃｈａｎｇｅ）、ＰＲＩＭ（Ｐｒｅｓｅｎｃｅ  ａｎｄ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  Ｐｒｏｔｏｃｏｌ）、ＸＭＰＰ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｐｒｏｔｏｃｏｌ）、ＩＭＰＳ（Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｓｅｒｖｉｃｅ）、インターネットメッセージアクセスプロトコル（ＩＭＡＰ）及び電子メールサービスのうちの１つを含む、請求項１１に記載のコンピュータでアクセス可能な媒体。
【請求項１３】
ホストアプリケーションサーバと、
ユーザデバイスからホストアプリケーションサーバにワークフローレコードを発送し、少なくとも一つのリモートデバイスに配置された前記ホストアプリケーションサーバにより提供された少なくとも一つのサービスにアクセスするためのネットワークと、を含み、
前記ユーザデバイスは、少なくとも一つのプロセッサと、プロセス実行可能命令を記憶する少なくとも一つのストレージデバイスとをさらに含み、前記プロセス実行可能命令が前記少なくとも一つのプロセッサに実行されたときに、
（ｉ）少なくとも３つのグラフィカルタスクウィジェットと少なくとも２つのシーケンスウィジェットを選択するステップであって、前記少なくとも３つのグラフィカルタスクウィジェットはネットワークを跨いでホストアプリケーションサーバで実行される少なくとも３つのタスクを含み、前記シーケンスウィジェットは前記少なくとも３つのタスクのための少なくとも２つのシーケンスパラメータを含む、ステップと、
（ｉｉ）前記少なくとも２つのシーケンスウィジェットのうちの一つと共に各グラフィカルタスクウィジェットを順序づけすることによりグラフィカルワークフローを形成するステップと、
（ｉｉｉ）少なくとも一つのテンプレートエントリフィールドに入力されたデータを用いて前記少なくとも３つのグラフィカルタスクウィジェットの少なくとも一つのタスクパラメータを開始タスクパラメータとして定義するステップであって、前記開始タスクパラメータが複数のグラフィカルタスクウィジェットに共通である、ステップと、
（ｉｖ）タスクパラメータとシーケンスパラメータとを、ネットワークを超えて前記ホストアプリケーションサーバに発送されたワークフローレコードにプロセッサを介して挿入するステップと、
（ｖ）前記ワークフローレコードの全てのシーケンスパラメータ及びタスクパラメータを抽出し、前記全てのシーケンスパラメータ及びタスクパラメータを構文解析するステップと、
（ｖｉ）前記構文解析された全てのシーケンスパラメータ及びタスクパラメータを検査して、前記ホストアプリケーションサーバを介して、複数のライブラリのうちの対応するライブラリに一致させるステップと、
（ｖｉｉ）前記ホストアプリケーションサーバで、第１のタスク及び第２のタスクを生成するために、構文解析された全てのシーケンスパラメータ及びタスクパラメータを前記対応するライブラリに結合するステップであって、前記第１のタスクは、少なくとも一つのリモートデバイスからのサービス要求データを受ける、ステップと、
（ｖｉｉｉ）前記少なくとも一つのリモートデバイスからサービス要求データを受信するステップと、
（ｉｘ）前記ホストアプリケーションサーバでワークフロー実行可能コードを実行し、前記第１のタスクから受信した前記サービス要求データに基づき第２のリモートデバイスに前記対応するライブラリから第２のタスクを配置するステップと、
を含む方法を実行する、システム。
【請求項１４】
前記ワークフローレコードは、ワークフロー順序づけレコード及びワークフロー操作レコードを含む、請求項１３に記載のシステム。
【請求項１５】
前記ワークフロー操作レコードは、開始及び停止インスタンス、オブジェクトまたはクラスの配置のためのタスクパラメータを定義する、請求項１４に記載のシステム。
【請求項１６】
前記ホストアプリケーションサーバとは異なるサーバ上の前記ホストアプリケーションサーバにより提供された少なくとも一つのサービスにアクセスするために、前記パラメータは、構文解析されると、対応するライブラリのルーチンに対応する、請求項１４に記載のシステム。
【請求項１７】
前記少なくとも一つのパラメータは、前記ホストアプリケーションサーバにより提供された少なくとも一つのサービスにアクセスするための許可情報を含み、該サービスは、ＦＴＰサービス、ＨＴＴＰサービス、ＤＢサービス、ＰＯＰサービス、ＳＭＴＰ、ＭＱサービス、ＤＢＭＳサービス、ＪＭＳサービス、ＳＩＭＰＬＥ（ＳＩＰＰ  ｆｏｒ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｌｅｖｅｒａｇｉｎｇ  Ｅｘｔｅｎｓｉｏｎｓ）、アプリケーション変換（ＡＰＥＸ：Ａｐｐｌｉｃａｔｉｏｎ  Ｅｘｃｈａｎｇｅ）、ＰＲＩＭ（Ｐｒｅｓｅｎｃｅ  ａｎｄ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  Ｐｒｏｔｏｃｏｌ）、ＸＭＰＰ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｐｒｏｔｏｃｏｌ）、ＩＭＰＳ（Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｓｅｒｖｉｃｅ）、インターネットメッセージアクセスプロトコル（ＩＭＡＰ）及び電子メールサービスのうちの１つを含む、請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0002]以下は、グラフィカルユーザインターフェイスに関する。より詳細には、以下は、１つ又は複数のワークフローを生成し、配置し、及び／又は実行するためのグラフィカルユーザインターフェイス及び関連のシステムに関する。
【背景技術】
【０００２】
[0004]一般に、会社は、１つ又は複数のビジネスプロセス及び他のワークフローを使用して、そのコアのビジネス及び補助的なビジネスを実行することができる。これらのワークフローは、例えば、会社及び／又はそのクライアント、ベンダー、サプライヤなどの購入、製造、マーケティング、販売、アカウンティング、新規採用、情報技術サポートなどを含めて、任意のビジネス部門の間又はその中で情報が移動するときにその情報の処理を容易にするためのワークフローを含むことができる。
【０００３】
[0005]情報の処理を容易にするために、このワークフローは、特定の、できれば効率的なやり方でまとめられ、結び付けられる２つ以上のタスクを定義する。タスクのそれぞれは、こうしたタスクに入力される情報（「入力情報」）が操作され、及び／又は出力され得るビジネス部門の任意の自動的なアクティビティとすることができる。タスクの例には、リモートサーバから情報をダウンロードすること、ファイルをフォーマット間で変換すること、更新を処理すること、顧客又は受注管理システムと通信すること、電子メールメッセージを送信すること、変更を自動的にバックアップすることなどがある。
【０００４】
[0006]しばしば、タスクのそれぞれについての入力情報は、会社、及び／又はそのクライアント、ベンダー、サプライヤなどの複数のコンピュータシステムの１つ又は複数のデータファイルに存在する、又は（例えば物理的なファイルから）入力する必要がある。これらのコンピュータシステムの中には、互換性のあるプラットフォーム及びプロトコル（「互換性のあるシステム」）を使用するものもあるが、コンピュータシステムの中には、相変わらず本質的に異なるプラットフォーム及び／又はプロトコル（「互換性のないシステム」）を使用するものもある。残念ながら、互換性のないシステムは、どうひいき目にみても、コンピュータシステム中の入力情報にアクセスし、それを伝えることを難しくする。
【０００５】
[0007]入力情報への自動的なアクセス、及び／又は互換性のあるシステムと互換性のないシステムとの間での通信を行うための従来のソリューションは、（ｉ）手動ソリューション、及び（ｉｉ）自動ソリューションを含む。手動ソリューションは、人々を使用して、互換性のないシステムとインターフェイスをとり、それによってこうした人々は、互換性のないコンピュータとの間で入力情報の転送を手動で行う。一方、自動ソリューションは、特に互換性のないシステムとインターフェイスをとるように構成されたカスタマイズされたソフトウェア及び／又はハードウェア（「カスタマイズされたインターフェイス」）を使用する。
【０００６】
[0008]従来のソリューションは、１組の状況が与えられると、特定のニーズに適合することはできるが、こうした従来のソリューションは、時間、費用、及びリソースに関して、会社にとって犠牲が大きい可能性がある。例えば、会社には、初期バージョンのカスタマイズされたインターフェイスを作成し、テストし、実施し、そのサポートを提供するための時間、費用、及びリソースの最初の出費がある。しかし、入力情報が、初期バージョンのカスタマイズされたインターフェイスを作成するときに考慮されていない、又は見落とされた互換性のないシステムにあるとき、会社には、カスタマイズされたインターフェイスの追加のバージョンを作成し、テストし、実施し、そのサポートを提供するための時間、費用、及びリソースの追加の出費がある。更に、会社は、コンピュータシステムに対する更新、アップグレード、又は他の変更のために、カスタマイズされたインターフェイスが完全に機能しない、又は機能しているとしても適切に機能しなくなったとき、新しい、又は手直しされた実施を形成するための時間、費用、及びリソースの他の追加の費用を被ることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
[0009]従って、互換性のある及び本質的に異なるプラットフォーム及び／又はプロトコルの両方を有するコンピュータシステム間での入力情報へのアクセス及びその通信がカスタマイズされたインターフェイスを必要としないワークフローの生成、配置、及び／又は実行を容易にするためのシステム及び方法が必要である。すなわち、互換性のある及び本質的に異なるプラットフォーム及び／又はプロトコルの両方のコンピュータシステム間での相互運用性を容易にするワークフローの生成、配置、及び／又は実行を容易にするシステム及び方法である。更に、コンピュータシステム及び／又はコンピュータシステムの追加への更新、アップグレード、又は他の変更にもかかわらず、入力情報へのアクセス及びその通信が提供され得るワークフローの生成、配置、及び／又は実行を容易にするためのシステム及び方法が必要である。
【０００８】
[0010]上述した特徴が実現される方法を詳しく理解できるように、添付の図面に示された図を参照して、以下、詳細に説明する。
【０００９】
[0011]添付の図面における図は、詳細な説明と同様、例であることに留意されたい。従って、図及び詳細な説明は、限定的なものと考えられるのではなく、他の同様に有効な例が可能であり、又あり得る。更に、図における類似の参照番号は、類似の要素を示す。
【図面の簡単な説明】
【００１０】
【図１】ワークフローの生成、配置、及び／又は実行を容易にするためのユーザデバイスの一例を示すブロック図である。
【図２】ワークフローの生成、配置、及び／又は実行を容易にする容易にするためのフローを示すフロー図である。
【図３】ワークフローを生成し、配置し、及び／又は実行するためのシステムを示すブロック図である。
【図４】ワークフローの生成、配置、及び／又は実行を容易にするためのフローを示すフロー図である。
【図５】ワークフローを生成し、配置し、及び／又は実行するための別のシステムを示すブロック図である。
【図６】ワークフローの生成、配置、及び／又は実行を容易にするのに使用するためのグラフィカルユーザインターフェイスの表示画面の一例を示すグラフィカル図である。
【発明を実施するための形態】
【００１１】
[0018]以下の詳細な説明において、本明細書に記載した実施形態例又は他の例の完全な理解を提供するために、多数の特定の詳細が記載されている。しかし、これらの実施形態及び例は、特定の詳細無しに実施され得ることを理解されたい。別の例において、よく知られている方法、手順、構成要素、及び回路は、以下の説明を不明瞭にしないように、詳しくは記載されていない。更に、開示した実施形態は、例示の目的にすぎず、開示した実施形態の代わりに、又は開示した実施形態との組み合わせで、他の実施形態を使用することもできる。
【００１２】
[0019]アーキテクチャ例
【００１３】
[0020]図１は、ワークフローの生成、配置、及び／又は実行を容易にするためのユーザデバイス１００の一例を示すブロック図である。上記のように、このワークフローは、それに入力された情報に作用する、及び／又はそれを出力するための対応する自動的なアクティビティ（「タスクの機能」）をそれぞれ定義する複数のタスクを含む。
【００１４】
[0021]ユーザデバイス１００は、例えば、パーソナルコンピュータ、ポータブルコンピュータ、ハンドヘルドコンピュータ、携帯電話、デジタルアシスタント、パーソナルデジタルアシスタント、セルラー電話、スマートフォン、ページャ、デジタルタブレット、ラップトップコンピュータ、インターネット機器などのうちの任意のもの、又は任意の組み合わせとすることができる。一般に、ユーザデバイス１００は、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ）（登録商標）ウィンドウズ（Ｗｉｎｄｏｗｓ）（登録商標）、リナックス（Ｌｉｎｕｘ）及び／又はシンビアン（Ｓｙｍｂｉａｎ）など、任意の適したオペレーティングシステム上で動作し、ソフトウェアを実行することができるプロセッサベースのプラットフォームを含む。
【００１５】
[0022]しかし、ユーザデバイス１００は、多数の要素を含むことができ、その多くは、説明を簡単にするために、図１に示されていない。ユーザデバイス１００を表し得るユーザデバイスのアーキテクチャ例の詳細は、図３を参照して説明される。図１に示すように、ユーザデバイス１００は、それぞれの結合を介して、モニタ又は他の表示装置（まとめて「モニタ」）１０４及び／又は入出力デバイス（「Ｉ／Ｏ」）１０６を制御し、操作し、又はそうでなければそれと対話するよう動作可能な処理プラットフォーム１０２を含む。
【００１６】
[0023]モニタ１０４は、処理プラットフォーム１０２によって生成される閲覧可能な画像を表示する任意の適したデバイスとすることができる。例えば、モニタ１０４は、液晶表示装置ベースのモニタ、ブラウン管モニタ、プラズマディスプレイモニタ、表面伝導型電子放出素子ディスプレイモニタ、有機発光ダイオードディスプレイモニタ、又はスーパービデオグラフィックアレイ、デジタル仮想インターフェイス、位相反転線（Ｐｈａｓｅ  Ａｌｔｅｒｎａｔｉｎｇ  Ｌｉｎｅ）、ＳＥＣＡＭ、ＮＴＳＣなど、テレビ及び／又はコンピュータプロトコルを使用して閲覧可能な画像を表示することができる任意の他のモニタのうちの任意のもの、又はその任意の組み合わせとすることができる。
【００１７】
[0024]Ｉ／Ｏデバイス１０６は、処理プラットフォーム１０２の動作を制御し、操作し、又はそうでなければそれと対話するために、ユーザ（人又はマシン）から入力を受け付ける任意のデバイスとすることができる。Ｉ／Ｏデバイス１０６の例には、マウス、ジョイスティック、トラックボール、タッチパッド、ポインティングスティック、ライトペン、ヘッドポインタ、ＳＯＡＰマウス、アイトラッキングデバイス、デジタイジングタブレット及びスタイラス、ユーザの動きをコンピュータジェスチャに変換するデータグローブ、及びキーボード又はタッチパッドなどのキー入力デバイスなどのポインティングデバイスのうちの任意のもの、又は任意の組み合わせがある。１つのデバイスとして示されているが、Ｉ／Ｏデバイス１０６は、２つ以上のデバイスに分けることができ、そのそれぞれは、Ｉ／Ｏデバイス１０６と比較して、低下した、向上した、又は同等の機能を有することができる。
【００１８】
[0025]処理プラットフォーム１０２は、（ｉ）グラフィカルユーザインターフェイス（「ＧＵＩ」）ソフトウェア１１０などのソフトウェア、及び（ｉｉ）単一のファイル又は複数のファイルとして、又はそこにそれぞれ格納することができる１つ又は複数のレコード又は他のデータ構造（まとめて「レコード」）１１２を格納することができるメモリ１０８を含む。レコード１１２は、拡張可能なマークアップ言語（「ＸＭＬ」）、拡張可能なマークアップ言語−リモートプロシージャコールプロトコル（「ＸＭＬ／ＲＰＣ」）などのマークアップ又はマークアップのような言語を使用して、又はハイパーテキストトランスファプロトコル（「ＨＴＴＰ」）、シンプルオブジェクトアクセスプロトコル（「ＳＯＡＰ」）など所与のプロトコルに従って形成されたテキスト、テーブル、データベース、分散ハッシュテーブル、分散コンカレントオブジェクトストア、ドキュメントとして構築することができる。
【００１９】
[0026]レコード１１２は、ワークフローレコード１１４、ワークフロー操作レコード１１６１〜１１６ｎ、及びワークフロー順序付けレコード１１８１〜１１８ｍを含むことができる。ワークフローレコード１１４は、例えば、１つ又は複数のファイルにＸＭＬドキュメントとして格納することができる。ワークフロー操作レコード１１６１〜１１６ｎは、１つ又は複数のファイルに格納され、ワークフロー順序付けレコード１１８１〜１１８ｍは、１つ又は複数のファイルに格納することができる。
【００２０】
[0027]以下により詳細に記載するように、ワークフロー操作レコード１１６１〜１１６ｎのそれぞれは、ワークフローのタスクのうちの１つに対応する。これらのタスクのそれぞれは、タスクの適切な実行を達成するための事前の設定操作及び／又はその後の妥当性検査操作と共にこうしたタスクを終了させるための一連の論理的な操作として構成することができる。タスクの論理的な設定及び／又は妥当性検査操作は、所与の機能を呼び出す、又は所与の値を変数に割り当てるなど、こうした機能のほんの一部分を扱う個々の低レベルのプログラミング構文を実行するための情報の形をとるのではなく、情報を取得し、変形し、出力するための１つ又は複数の複雑なプロセスに関連付けられている機能の抽象概念の形をとることができる。これを容易にするために、ワークフロー操作レコード１１６１〜１１６ｎは、対応するタスクのそれぞれについての１つ又は複数のパラメータを含むことができる。タスクのそれぞれについてのパラメータ（「タスクパラメータ」）は、タスクの機能の表示、タスクの入力情報への１つ又は複数の参照、及び／又はタスクを生成し、配置し、及び／又は実行するためのサービス、設定、ルール、変数、数式、テンプレート、指数、指示、コマンド、フィールドなどへの１つ又は複数の参照を含むことができる。
【００２１】
[0028]ワークフロー順序付けレコード１１８１〜１１８ｍのそれぞれは、あるタスクの別のタスクに対する順序付けに対応する。これを容易にするために、ワークフロー順序付けレコード１１８１〜１１８ｍのそれぞれは、こうした順序付けに関連付けられている１つ又は複数のパラメータ（「シーケンスパラメータ」）を含むことができる。シーケンスパラメータは、順序付けるためのタスクの表示、タスクの実行の順序、タスクの実行の順序を管理する１組の条件、及び／又は順序付けを生成し、配置し、及び／又は実行するためのサービス、設定、ルール、変数、数式、テンプレート、指数、指示、コマンドなどへの１つ又は複数の参照を含むことができる。
【００２２】
[0029]ワークフローレコード１１４は、タスクのすべての又は一部についてのタスクパラメータ、及びワークフローにおけるシーケンスのすべて又は一部についてのシーケンスパラメータを含むことができる。あるいは、ワークフローレコード１１４は、タスクのすべて又は一部についてのタスクパラメータを含み、順序付けと一致する順序で配列することができる。ワークフローレコード１１４、ワークフロー操作レコード１１６１〜１１６ｎ、及びワークフロー順序付けレコード１１８１〜１１８ｍは、他の形をとってもよく、他の情報を含んでもよい。
【００２３】
[0030]メモリ１０８に加えて、処理プラットフォーム１０２は、適したオペレーティングシステムを実行（例えば、開始、生成、稼働、維持）し、その上で動作する１つ又は複数のプロセッサ（まとめて「プロセッサ」）１２０を含む。プロセッサ１２０は、ＧＵＩソフトウェア１１０を実行し、メモリ１０８にレコード１１２を格納し、ワークフローの生成、配置、及び／又は実行を容易にするためにワークフローレコード１１４を発送し、トリガを発行し、及び／又はワークフローの生成、配置、及び／又は実行をもたらすために１つ又は複数のコマンド及び／又は命令を発行することができる。プロセッサ１０８の例には、従来のプロセッサ、マイクロプロセッサ、マルチコアプロセッサ、及び／又はマイクロコントローラなどがある。
【００２４】
[0031]ＧＵＩソフトウェア１１０は、プロセッサ１２０によって実行されると、ＧＵＩを実行し、モニタ１０４上に、ＧＵＩの少なくとも１つの表示画面１２２をレンダリングすることができる。表示画面１２２は、ウィンドウ１２４を含む。次いでウィンドウ１２４は、ウィジェットペイン１２６、ウィジェットツールバー１２８、及びワークフローペイン１３０を含む。
【００２５】
[0032]ウィジェットペイン１２６は、タスクウィジェット１３２１〜１３２ｎを含む。タスクウィジェット１３２１〜１３２ｎは、ワークフローに含めるために選択され得るタスクを図示する。こうした選択は、ワークフローペイン１３０に記載されているワークフロー（「グラフィカルワークフロー」）１３４の図示表現にタスクウィジェット１３２１〜１３２ｎのインスタンスを含めることによって実行される。タスクウィジェット１３２１〜１３２ｎ、及びその任意のインスタンスは、アイコンなどとしてＧＵＩソフトウェア１１０によってレンダリングすることができる。
【００２６】
[0033]ウィジェットツールバー１２８は、順序付けウィジェット１３６を含み、そのインスタンスは、グラフィカルワークフロー１３４、及び次いでワークフローを形成するために使用することもできる。順序付けウィジェット１３６は、タスクを連結し、順序付けるために使用され得る結合を図示する。順序付けウィジェット１３６、及びその任意のインスタンスは、コネクタラインなどとしてＧＵＩソフトウェア１１０によってレンダリングすることができる。
【００２７】
[0034]ワークフローペイン１３０は、グラフィカルワークフロー１３４を含む。グラフィカルワークフロー１３４は、順序付けウィジェットインスタンス１４０１〜１４０ｍと共に順序付けられたタスクウィジェットインスタンス１３８１〜１３８ｎを含むことができる。タスクウィジェットインスタンス１４０１〜１４０ｎのそれぞれは、タスクウィジェット１３２１〜１３２ｎのうちのいずれかのインスタンスとすることができ、順序付けウィジェットインスタンス１３８１〜１３８ｍのそれぞれは、順序付けウィジェット１３６のインスタンスとすることができる。
【００２８】
[0035]タスクウィジェットインスタンス１３８１〜１３８ｎは、それぞれワークフロー操作レコード１１６１〜１１６ｎと関連付けられ、ワークフロー操作レコード１１６１〜１１６ｎは、タスクウィジェットインスタンス１３８１〜１３８ｎによって表されるタスクのタスクパラメータを含むことができる。同様に、順序付けウィジェットインスタンス１４０１〜１４０ｍは、それぞれワークフロー順序付けレコード１１８１〜１１８ｍと関連付けられ、ワークフロー順序付けレコード１１８１〜１１８ｎは、順序付けウィジェットインスタンス１４０１〜１４０ｎによって表されるシーケンスのシーケンスパラメータを含むことができる。
【００２９】
[0036]ワークフロー操作レコード１３８１〜１３８ｎ、ワークフロー順序付けレコード１４０１〜１４０ｍ、及びワークフローレコード１１４は、上記で３つの個別のエンティティとして図示されているが、３つのエンティティの図及び使用は、省かれてもよい。例えば、ワークフローレコード１１４（又は任意の他のレコード１１２）は、タスクウィジェットインスタンス１３８１〜１３８ｎによって表されるタスクのタスクパラメータ、及び順序付けウィジェットインスタンス１４０１〜１４０ｎによって表されるシーケンスのシーケンスパラメータを含むことができる。
【００３０】
[0037]あるいは、ワークフローレコード１１４（又は任意の他のレコード１１２）は、タスクウィジェットインスタンス１３８１〜１３８ｎによって表されるタスクのタスクパラメータを含み、順序付けウィジェットインスタンス１４０１〜１４０ｎの集合的なシーケンスよって表される順序付けに一致した順序で配列することができる。上記を容易にするために、タスクウィジェットインスタンス１３８１〜１３８ｎ及び順序付けウィジェットインスタンス１４０１〜１４０ｍは、ワークフローレコード１１４に直接関連付けることができる。ワークフローレコード１１４、ワークフロー操作レコード１１６１〜１１６ｎ、及びワークフロー順序付けレコード１１８１〜１１８ｍは、他の形をとってもよく、及び他の方法で配列されてもよい。
【００３１】
[0038]更に、ウィンドウ１２４は、図示するように、２つのペイン及び１つのツールバーのみを含むが、ウィンドウ１２４は、より多くの又はより少ないペイン及びツールバーを含んでいてもよい。更に、ウィンドウ１２４は、タブ、ドロップダウンメニュー、コマンドメニューなどを含んでいてもよい。ウィジェットペイン１２６は、示されているものより多くの又はより少ないタスクタイプのウィジェットを含んでいてもよく、ウィジェットツールバー１２８は、示されているものより多くの順序付けタイプウィジェットを含んでいてもよい。
【００３２】
[0039]代替として、ウィジェットペイン１２６及びウィジェットツールバー１２８は、タスクタイプ及び順序付けタイプの両方のウィジェットを含む単一のペイン又はツールバーに結合することができる。別の代替として、ウィジェットペイン１２６及びウィジェットツールバー１２８の一方又は両方は、タスクタイプ及び順序付けタイプの両方のウィジェットを含んでいてもよい。
【００３３】
[0040]別の代替として、順序付けタイプのウィジェット１３６のうちの１つ又は複数は、タスクウィジェット１３２１〜１３２ｎに結合され、統合され、又はそうでなければ一体的に形成されて、１つにまとめられたウィジェットを形成することができる。１つにまとめられたウィジェットは、タスクタイプのウィジェットごとに個別の順序付けタイプのウィジェットを有することを不要にする。こうした１つにまとめられたウィジェットは、コネクタ要素を有するアイコンなどとしてＧＵＩソフトウェア１１０によってレンダリングすることができる。ワークフローペイン１３０における１つにまとめられたウィジェットのインスタンスは、ワークフロー操作レコード１１６１〜１１６ｎ及びワークフロー順序付けレコード１１８１〜１１８ｎの両方に関連付けられてもよい。あるいは、１つにまとめられたウィジェットのインスタンスは、ワークフローレコード１１４に直接関連付けられてもよい。
【００３４】
[0041]操作例
【００３５】
[0042]次に図２を参照すると、ワークフローの生成、配置、及び／又は実行を容易にするためのフロー２００を示すフロー図が示されている。便宜上、フロー２００は、図１のユーザデバイス１００を参照して記載されている。しかし、フロー２００は、他のアーキテクチャを使用して実行することもできる。
【００３６】
[0043]フロー２００は、終了ブロック２０２で開始し、プロセッサ１２０がＧＵＩソフトウェア１１０を実行して、ＧＵＩを形成し、表示画面１２４のレンダリングを行う。終了ブロック２０２の後、フロー２００は、プロセスブロック２０４に移行する。
【００３７】
[0044]プロセスブロック２０４に示されているように、ＧＵＩソフトウェア１１０は、グラフィカルワークフロー１３４を形成することができる。ＧＵＩソフトウェア１１０は、Ｉ／Ｏデバイス１０６を介してユーザによってＧＵＩの１つ又は複数の操作に応答してそのように実行することができる。例えば、ＧＵＩソフトウェア１１０は、タスクウィジェット１３２１〜１３２ｎから選択し、こうしたインスタンスをワークフローペイン１３０に入れる（例えば、ドラッグアンドドロップによって）ために、Ｉ／Ｏデバイス１０６がＧＵＩを操作することに対応して、タスクウィジェットインスタンス１３８１〜１３８ｎをワークフローペイン１３０にレンダリングすることができる。
【００３８】
[0045]更に、ＧＵＩソフトウェア１１０は、（ｉ）ウィジェットツールバー１２８からこうしたインスタンスを選択する、（ｉｉ）ワークフローペイン１３０にインスタンスを入れる、及び（ｉｉｉ）タスクウィジェットインスタンス１３８１〜１３８ｎを順序付けウィジェットインスタンス１４０１〜１４０ｍと結合するために、Ｉ／Ｏデバイス１０６がＧＵＩを操作することに応答して順序付けウィジェットインスタンス１４０１〜１４０ｍをワークフローペイン１３０にレンダリングすることができる。
【００３９】
[0046]ＧＵＩソフトウェア１１０は、Ｉ／Ｏデバイス１０６によるＧＵＩの操作を介して、レコード１１４、１１６１〜１１６ｎ及び１１８１〜１１８ｍを埋めるために、タスク及びシーケンスパラメータを取得することができる。例えば、ＧＵＩソフトウェア１１０は、グラフィカルワークフロー１３２におけるタスクウィジェットインスタンス１３８１〜１３８ｎの存在に応じて、タスクの機能を定義するタスクパラメータを取得することができる。タスクウィジェットインスタンス１３８１は、例えば、ワークフローを開始するためのタスク（「開始タスク」）を表すことができる。開始タスクパラメータは、上述したように、ワークフローの開始をマークするための開始タスクの機能の情報を含むことができる。グラフィカルワークフロー１３４にタスクウィジェットインスタンス１３８１があることによって、開始タスクパラメータでレコード１１４及び／又は１１６１〜１１６ｎを埋めることが可能になる。
【００４０】
[0047]あるいは及び／又は更に、ＧＵＩソフトウェア１１０は、ユーザがキーボード又は他のＩ／Ｏデバイスを使用してＧＵＩの１つ又は複数の表示画面（図示せず）の１つ又は複数のフィールドに１文字又は文字列を入力することによって、開始及び／又は他のタスクパラメータを補うことができる。このように情報を入力することは、タスクウィジェットインスタンス１３８１〜１３８ｎを選択し、ワークフローペイン１３０に入れる（例えば、ドラッグアンドドロップ）ことの代替として使用することもできる。例えば、ユーザは、タスクウィジェットインスタンス１３８１〜１３８ｎのそれぞれについて、ＧＵＩの表示画面のフィールドのうちの１つ又は複数に１文字又は文字列を入力することができる。ＧＵＩソフトウェア１１０は、次いで、こうしたエントリを解釈し、ＧＵＩにタスクウィジェットインスタンス１３８１〜１３８ｎを応答可能なようにレンダリングすることができる。
【００４１】
[0048]タスクパラメータ同様、ＧＵＩソフトウェア１１０は、グラフィカルワークフロー１３２の存在及びレイアウトに応じて、タスクウィジェットインスタンス１４０１〜１４０ｎの実行の順序を開発するために使用され得るシーケンスパラメータを取得することができる。例えば、シーケンスパラメータは、タスクウィジェットインスタンス１３８１〜１３８ｎのうちの１つの出力をタスクウィジェットインスタンス１３８１〜１３８ｎのうちの別のものへの入力に接続するリンク（順序付けウィジェットインスタンス１４０１〜１４０ｍによってレンダリングされる）のそれぞれに応じて取得することができる。あるいは及び／又は更に、ＧＵＩソフトウェア１１０は、１文字又は文字列をＧＵＩの１つ又は複数の表示画面（図示せず）の１つ又は複数のフィールドに入力することによって、シーケンスパラメータを取得することができる。次いで、このようにパラメータを入力することは、順序付けウィジェットインスタンス１４０ａ〜１４０ｍを選択し、ワークフローペイン１３０に入れることの代替を提供することができる。上述したように、次いで、ＧＵＩソフトウェア１１０は、エントリを解釈し、タスクウィジェットインスタンス１３８１〜１３８ｎを接続するリンクを作成する順序付けウィジェットインスタンス１４０ａ〜１４０ｍを応答可能なようにレンダリングすることができる。
【００４２】
[0049]プロセスブロック２０４の後、フローは、プロセスブロック２０６に移行することができる。プロセスブロック２０６に示されるように、ＧＵＩソフトウェア１１０は、グラフィカルワークフロー１３４からワークフローレコード１１４を生成し、又はそうでなければ形成することができる。例えば、ＧＵＩソフトウェア１１０は、プロセスブロック２０４で獲得されたタスク及びシーケンスパラメータでワークフローレコード１１４を埋めることができる。
【００４３】
[0050]ワークフローレコード１１４を直接埋める代替として、ＧＵＩソフトウェア１１０は、まず、ワークフロー操作レコード１１６１〜１１６ｎ及びワークフロー順序付けレコード１１８１〜１１８ｍを埋めることができる。例えば、ＧＵＩソフトウェア１１０は、ワークフロー操作レコード１１６１〜１１６ｎを、プロセスブロック２０４で獲得されたタスクインスタンス１３８１〜１３８ｎに関連付けられているタスクパラメータで埋めることができる。更に、ＧＵＩソフトウェア１１０は、ワークフロー順序付けレコード１１８１〜１１８ｍを、プロセスブロック２０４で獲得された順序付けウィジェットインスタンス１４０１〜１４０ｍに関連付けられているシーケンスパラメータで埋めることもできる。ワークフロー操作及びワークフロー順序付けレコード１１６１〜１１６ｎ、１１８１〜１１８ｍを埋めた後、ＧＵＩソフトウェア１１０は、ワークフロー操作レコード１１６１〜１１６ｎを順序付けに従ってワークフローレコード１１４に挿入することができる。
【００４４】
[0051]更に、ＧＵＩソフトウェア１１０は、レコード１１４、１１６１〜１１６ｎ、及び１１８１〜１１８ｍを特定のやり方で配列することができる。例えば、レコード１１４、１１６１〜１１６ｎ、及び１１８１〜１１８ｍにおけるタスク及びシーケンスパラメータは、オブジェクト指向プログラミングに関して、１つ又は複数の所与のクラスのオブジェクトのそれぞれのインスタンスとして配列することができる。一例として、タスクウィジェットインスタンス１３８１〜１３８ｎは、それぞれ、開始タスク及びワークフローを停止するためのタスク（「停止タスク」）を定義することができる。ワークフロー操作レコード１１６１、１１６２は、それぞれ開始及び停止クラスの開始及び停止オブジェクトの開始及び停止インスタンスの配置のためのタスクパラメータを定義する。ワークフロー順序付けレコード１１８１〜１１８ｍ及びワークフローレコード１１４は、類似のやり方で配列することができる。
【００４５】
[0052]ＧＵＩソフトウェア１１０は、ワークフローの生成、配置、及び／又は実行を容易にするために、ワークフローレコード１１４をターゲットデバイスに発送するように準備することもできる。例えば、ＧＵＩソフトウェア１１０は、１つ又は複数の適した情報交換機構に従ってワークフローレコード１１４をフォーマットすることができる。こうした交換機構の例には、Ａｍｅｒｉｃａｎ  Ｓｔａｎｄａｒｄ  Ｃｏｄｅ  ｆｏｒ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｉｎｔｅｒｃｈａｎｇｅ（「ＡＳＣＩＩ」）、ＸＭＬ、ＸＭＬ／ＲＰＣ、ＨＴＴＰ、ＳＯＡＰ、共有メモリ、ソケット、ローカル又はリモートのプロシージャコーリングなどがある。又、ワークフローレコード１１４の共有及び反復を容易にすることに加えて、交換機構は、処理プラットフォーム１０２と、ワークフローレコード１１４が発送され得るターゲットデバイス、例えばホストデバイス３０６（図３）などとの間の相互運用性を効率的に容易にする。
【００４６】
[0053]プロセスブロック２０６の後、フロー２００は、プロセスブロック２０８に移行する。プロセスブロック２０８に示されるように、ＧＵＩソフトウェア１１０は、ワークフローの生成、配置、及び／又は実行を容易にするために、ワークフローレコード１１４を発送することができる。これを行うために、ＧＵＩソフトウェア１１０は、処理プラットフォーム１０２に、ユーザデバイス１００からターゲットデバイスにワークフローレコード１１４を発送させることができる。発送は、ＧＵＩソフトウェア１１０によって開始されるトリガに応答して（例えば、ＧＵＩのユーザの操作に応答して）、又はターゲットデバイスからの照会に応答して行うことができる。
【００４７】
[0054]あるいは、ＧＵＩソフトウェア１１０は、例えばターゲットデバイスにおいてワークフローレコード１１４を同期し、及び／又は複製するためのルーチンを使用して、処理プラットフォーム１０２に、ワークフローレコード１１４を定期的に発送させることができる。プロセスブロック２０８の後、フロー２００は、プロセスブロック２１０に移行する。
【００４８】
[0055]プロセスブロック２１０に示されるように、ＧＵＩソフトウェア１１０は、処理プラットフォーム１０２に、ＧＵＩから出るコマンドを発行させて、ワークフローの実行をもたらすことができる。実行コマンドは、例えば、ＧＵＩから出るトリガとすることができる。このトリガは、ＧＵＩのユーザの操作に応答して開始することができる。
【００４９】
[0056]ＧＵＩソフトウェア１１０は、処理プラットフォーム１０２に、ワークフローレコード１１４の発送後の任意の時、あるいは発送時と同時又はほぼ同時に実行コマンドを発行させることができる。以下により詳しく説明するように、ターゲットデバイスは、実行コマンドに応答して、ワークフローレコード１１４を直接解釈してワークフローを実行することができる。
【００５０】
[0057]ワークフローレコード１１４を直接解釈することの代替として、ターゲットデバイスは、ワークフローレコード１１４に応じて、ワークフローを実行するためのコンピュータ実行可能命令（又は単に「コード」）（「ワークフロー実行可能コード」）を生成することができる。ターゲットデバイスは、実行時より前、あるいは実行時と同時又はほぼ同時にワークフロー実行可能コードを生成することができる。前記を容易にするために、ＧＵＩソフトウェア１１０及び／又は処理プラットフォーム１０２は、実行コマンドの前に、ターゲットデバイスにワークフロー実行可能コードを生成させるための別のコマンドを発行することができる。又、ターゲットデバイスは、ワークフロー実行可能コードをテストするための１つ又は複数のテストを生成することもできる。
【００５１】
[0058]プロセスブロック２１０の後、フロー２００は、終了ブロック２１２に移行し、この時点でフロー２００は終了する。あるいは、フロー２００を、定期的に、継続的に、又はワークフローのタスクのうちの１つ又は複数の追加、削除、又は変更など、ある条件の結果としてトリガして、繰り返してもよい。別の代替として、ワークフローの追加の配置をもたらすために、プロセスブロック２１０を、定期的に、継続的に、又はある条件の結果としてトリガして、繰り返してもよい。
【００５２】
[0059]システムアーキテクチャ例
【００５３】
[0060]図３は、ワークフローの生成、配置、及び／又は実行を容易にするためのシステム３００を示すブロック図である。システム３００は、ユーザデバイス３０２及びホストデバイス（「ホスト」）３０６を含む。ユーザデバイス３０２及びホスト３０４は、ネットワーク３０４を介して通信可能に連結することができる。このように、ユーザデバイス３０２及びホスト３０４は、ネットワーク３０４を介して運ばれる１つ又は複数の通信を介して、入力及び／又は配置情報、及びワークフローの配置に関連付けられている他の情報を交換することができる。
【００５４】
[0061]ネットワーク３０４は、パブリック又はプライベートの地上無線又は衛星又はワイヤーラインネットワークの任意の組み合わせを含めて、ほぼすべての通信又はコンピュータネットワークの部分的又は完全な配置とすることができる。従って、ネットワーク３０２は、公衆電話交換網（「ＰＳＴＮ」）、インターネット、コア及び専有のパブリックネットワーク、１Ｇ、２Ｇ、２．５Ｇ及び３Ｇの電気通信網などの無線音声及びパケットデータネットワーク、無線オフィス電話システム（「ＷＯＴＳ」）及び／又はＢｌｕｅｔｏｏｔｈ及び／又はＩＥＥＥ８０２．１１ＷＬＡＮ、無線パーソナルエリアネットワーク（「ＷＬＡＮ」）、無線メトロポリタンエリアネットワーク（「ＷＭＡＮ」）などを含む無線ローカルエリアネットワーク（「ＷＬＡＮ」）からのネットワーク要素を含むことができる。
【００５５】
[0062]ネットワーク要素は、ワークフローレコード１１４のトランスポート、トリガ、実行コマンド、及びワークフローを生成し、配置し、及び／又は実行するための他の情報（まとめて「ワークフローコンテンツ」）を提供するための回路交換及びパケットデータ要素を含み、任意の数のプロトコルを使用して、こうした情報をユーザデバイス３０２及びホスト３０４に提供することと一致する任意の方法で、こうしたワークフローコンテンツを伝えるように構成することができる。これらのプロトコルは、回路交換及び／又はパケットデータネットワークなどでコンテンツを伝えるための標準化された、専有の、オープンソースの、及び自由に入手可能な通信プロトコルを含むことができる。
【００５６】
[0063]ユーザデバイス３０２は、本明細書に後述されるものを除いて、図１のユーザデバイス１００と似ている。ユーザデバイス３０２は、任意のコンピューティングデバイス、システムなどとすることができ、単一のデバイスに形成されてもよく、又単一のサーバ、クライアント、ピア、又は他のタイプのノードに集中させてもよい。あるいは、ユーザデバイス３０２は、１つ又は複数の個別のデバイスから形成されてもよく、従って、いくつかのサーバ、クライアント、ピア、又は他のタイプのノードに分散されてもよい。更に、ユーザデバイス３０２は、スケーラブルとすることもできる（すなわち、スケールアップ及び／又はスケールアウト手法を使用することができる）。
【００５７】
[0064]示されるように、ユーザデバイス３０２は、それぞれの結合を介してモニタ１０４及び／又はＩ／Ｏデバイス１０６を制御し、操作し、又はそうでなければそれと対話するよう動作可能な処理プラットフォーム３０８を含むことができる。処理プラットフォーム３０８は、１つ又は複数の処理ユニット（まとめて「プロセッサ」）３１０、メモリ３１２、サポート回路３１４、及びバス３１６を含む。メモリ３１０は、１つ又は複数の従来のプロセッサ、マイクロプロセッサ、マルチコアプロセッサ、及び／又はマイクロコントローラとすることができる。サポート回路３１４は、プロセッサ３１０の操作を容易にし、例えば、Ｉ／Ｏインターフェイス、１つ又は複数のネットワークインターフェイスユニット（「ＮＩＵ」）、キャッシュ、クロック回路、電源などを含めて、よく知られている回路構成又は回路を含むことができる。
【００５８】
[0065]プロセッサ３１０は、ネットワーク３０４を介してワークフローコンテンツホスト３０６を交換するためにＮＩＵを使用することができる。従って、ＮＩＵは、地上無線、衛星、及び／又はワイヤーラインメディアのうちの任意のものを介して通信するように構成することができる。
【００５９】
[0066]メモリ３１２は、ソフトウェア３１８、レコード１１２、１１４、１１６１〜１１６ｎ及び１１８１〜１１８ｍ、並びにオペレーティングシステム３２０など様々な他の格納されたソフトウェアパッケージを格納する（及び取得するためにプロセッサ３１０から要求を受信する）ことができる。メモリ３１２は、ランダムアクセスメモリ、読み取り専用メモリ、光ストレージ、磁気ストレージ、取外式ストレージ、消去可能プログラマブル読み取り専用メモリ及びその変形、コンテンツアドレス可能メモリ及びその変形、フラッシュメモリ、ディスクドライブストレージ、取外式ストレージ、及びその組み合わせなどとすることができ、又はそれらを使用することができる。更に、メモリ３１２は、ユーザデバイス３０２の操作を制御し、及び／又は機能の実行を容易にするために、オペランド、演算子、次元値、構成、及びオペレーティングシステム３２０及びソフトウェア３１８によって使用される他のデータを格納する（及び取得するためにプロセッサ３１０から要求を受信する）ことができる。
【００６０】
[0067]バス３２０は、プロセッサ３１０、メモリ３１２、サポート回路３１４、及びユーザデバイス３０２の他の部分（図示及び非図示）間のデジタル情報の送信を提供する。Ｉ／Ｏインターフェイスは、ユーザデバイス３０２の（図示及び非図示の）構成要素間のデジタル情報の送信を制御するように構成されている。更に、Ｉ／Ｏインターフェイスは、ユーザデバイス３０２に配置された、関連付けられた、又はそうでなければ接続されたＩ／Ｏデバイス間のデジタル情報の送信を制御するように構成されている。Ｉ／Ｏデバイスの例には、Ｉ／Ｏデバイス１０６、モニタ１０４、及び（ｉ）それだけには限定されないが、テープドライブ、フロッピードライブ、ハードディスクドライブ、又はコンパクトディスクドライブを含む記憶装置、（ｉｉ）受信機、（ｉｉ）送信機、（ｉｉｉ）スピーカ、（ｉｖ）ディスプレイ、（ｖ）音声シンセサイザ、（ｖｉ）出力ポート、及び（ｖｉｉ）類似のもののうちの任意のもの、又は任意の組み合わせなどがある。
【００６１】
[0068]オペレーティングシステム３２０は、ユーザデバイス３０２を操作するため、及びソフトウェア３１８が実行され得るプラットフォームを提供するためのコードを含むことができる。ソフトウェア３１８は、ＧＵＩソフトウェア１１０、並びにユーザ及びホストデバイス３０２、３０６と互換性のある通信及びセキュリティプロトコルを使用して、ワークフローコンテンツの交換を実行し得る他のユーザデバイスソフトウェア３２２を含むことができる。
【００６２】
[0069]ＧＵＩソフトウェア１１０及びユーザデバイスソフトウェア３２２は、スタンドアロン、クライアント／サーバ、ピアツーピア、及び他のフォーマットのうちの任意のものとすることができる。ＧＵＩソフトウェア１１０は、ホスト３０６によって提供される１つ又は複数のサービスにアクセスするためのコードを含むことができる。ユーザから取得されたこのコード及び情報を使用して、ＧＵＩソフトウェア１１０は、その識別を実証し、次いでホスト３０６によって提供されたサービスへのアクセス（例えば、閲覧、構成、及び／又は実行）の許可を受信するよう動作可能である。
【００６３】
[0070]ホスト３０６は、ホストアプリケーションサーバ３２４を含めて、１つ又は複数のサーバを含むことができる。ホストアプリケーションサーバ３２４は、１つ又は複数の汎用又は専用コンピュータ、パーソナルコンピュータ、メインフレーム、ミニコンピュータ、サーバタイプコンピュータ、及び／又はマイクロソフト（登録商標）ウィンドウズ（登録商標）及び／又はリナックスなど、任意の適したオペレーティングシステムで動作し、ソフトウェアを実行することができる任意のプロセッサベースのプラットフォームに配置することができる。
【００６４】
[0071]ユーザデバイス３０２と同様に、ホストアプリケーションサーバ３２４は、多数の要素を含むことができ、その多くは、説明を簡単にするために、図３に示されていない。ホストアプリケーションサーバ３２４の要素は、単一のデバイスに形成されてもよく、又単一のサーバ、クライアント、ピア、又は他のタイプのノードに集中させてもよい。あるいは、ホストアプリケーションサーバ３２４の要素は、２つ以上の個別のデバイスから形成されてもよく、従って、いくつかのサーバ、クライアント、ピア、又は他のタイプのノードに分散されてもよい。
【００６５】
[0072]図示したように、ホストアプリケーションサーバ３２４は、１つ又は複数の処理ユニット（まとめて「プロセッサ」）３２６、メモリ３２８、サポート回路３３０、及びバス３３２を含む。プロセッサ３２６は、１つ又は複数の従来のプロセッサ、マイクロプロセッサ、マルチコアプロセッサ、及び／又はマイクロコントローラなどとすることができる。
【００６６】
[0073]バス３３２は、プロセッサ３２６、メモリ３２８、サポート回路３３０、及びホストアプリケーションサーバ３２４の他の部分（図示せず）間のデジタル情報の送信を提供する。サポート回路３３０は、プロセッサ３２６の操作を容易にし、例えば、１つ又は複数の入出力Ｉ／Ｏインターフェイス、１つ又は複数のＮＩＵ、キャッシュ、クロック回路、電源などを含めて、よく知られている回路構成又は回路を含むことができる。
【００６７】
[0074]Ｉ／Ｏインターフェイスは、ホストアプリケーションサーバ３２４の構成要素（図示及び非図示）間のデジタル情報の送信を制御するためのインターフェイスを提供する。更に、Ｉ／Ｏインターフェイスは、ホストアプリケーションサーバ３２４に関連付けられた、又はそうでなければ接続されたＩ／Ｏデバイス（図示せず）間のデジタル情報の送信を制御するためのインターフェイスを提供する。Ｉ／Ｏデバイス（図示せず）は、（ｉ）それだけには限定されないが、テープドライブ、フロッピードライブ、ハードディスクドライブ、又はコンパクトディスクドライブを含む記憶装置、（ｉｉ）受信機、（ｉｉ）送信機、（ｉｉｉ）スピーカ、（ｉｖ）ディスプレイ、（ｖ）音声シンセサイザ、（ｖｉ）出力ポート、及び（ｖｉｉ）マウス、ジョイスティック、トラックボール、タッチパッド、ポインティングスティック、ライトペン、ヘッドポインタ、ＳＯＡＰマウス、アイトラッキングデバイス、デジタイジングタブレット及びスタイラス、ユーザの動きをコンピュータジェスチャに変換するデータグローブ、及びキーボード又はタッチパッドなどのキー入力デバイスなどのポインティングデバイス、及び（ｖｉｉ）類似のものうちの任意のもの、又は任意の組み合わせとして組み込むことができる。
【００６８】
[0075]ＮＩＵは、ワークフローコンテンツの交換（例えば、送信及び／又は受信）を容易にする。従って、ＮＩＵは、地上無線、衛星、及び／又はワイヤーラインメディアを介して通信するように構成することができる。
【００６９】
[0076]メモリ３２８は、オペレーティングシステム３３４、アプリケーションサーバソフトウェア３３６、及びワークフローアプリケーションソフトウェア３３８など、様々なソフトウェアパッケージを格納することができ、又、それらを取得するために、プロセッサ３２６によって照会を行うことができる。メモリ３２８は、ランダムアクセスメモリ、読み取り専用メモリ、光ストレージ、磁気ストレージ、取外式ストレージ、消去可能プログラマブル読み取り専用メモリ及びその変形、コンテンツアドレス可能メモリ及びその変形、フラッシュメモリ、ディスクドライブストレージ、取外式ストレージ、及びその組み合わせなどとすることができ、又はそれらを使用することができる。
【００７０】
[0077]更に、メモリ３２８は、ワークフロー実行可能コードを生成するために、ワークフローレコード１１４及び１つ又は複数のライブラリ３４０を格納することができる。Ｃ＋＋で記述され得るライブラリ３４０は、例えば、タスクのそれぞれに関連付けられているワークフロー実行可能コードを生成するためのルーチン（「タスクルーチン」）を含むことができる。更に、ライブラリ３４０は、ワークフローレコード１１４に記載されているシーケンスパラメータに従ってタスクルーチンを順序付けるためのルーチン（「シーケンスルーチン」）を含むことができる。
【００７１】
[0078]メモリ３２８は、ホストアプリケーションサーバ３２４の操作を制御し、及び／又は機能の実行を容易にするために、オペランド、演算子、次元値、構成、及びアプリケーションサーバソフトウェア３３６及びオペレーティングシステム３３４によって使用される他のデータを格納することもできる。
【００７２】
[0079]ホストアプリケーションサーバ３２４は、スケールアップ及び／又はスケールアウト手法に従って配置することができる。スケールアップ手法を使用して、ホストアプリケーションサーバ３２４は、対称的なマルチプロセッサアーキテクチャを使用して追加の容量を提供することによって、その処理能力、金額、及びネットワーク可能な接続の数を増やすことができる。このスケールアップ手法の利点は、こうした手法がスケールアウト手法に比べて簡略化された構成及び管理を提供することである。スケールアウト手法を使用して、ホストアプリケーションサーバ３２４は、必要に応じて容量を徐々に追加し、及び／又は削除する、複数のプロセッサ、複数のサーバにわたって仕事量のバランスをとる、特定のプロセッサ及び／又はサーバを特定のタスクを実行するための専用にする、物理的又は論理的サーバを使用する（例えば、マルチノードクラスタ手法）などによって、その処理能力、金額、及びネットワーク可能な接続の数を増やすことができる。
【００７３】
[0080]オペレーティングシステム３３４は、ホストアプリケーションサーバ３２４を動作させるための様々なソフトウェア及び／又は実行可能な命令又はコードを含んでいてもよく、及び／又はそれに組み込まれていてもよい。オペレーティングシステム３３４は、プロセッサ３２６によって実行されると、アプリケーションサーバソフトウェア３３６及びワークフローアプリケーションソフトウェア３３８が実行され得るプラットフォームを提供する。
【００７４】
[0081]ワークフローアプリケーションソフトウェア３３４は、プロセッサ３２６によって実行されると、ワークフローを生成し、配置し、及び／又は実行するよう動作可能である。これを容易にするために、ワークフローアプリケーションソフトウェア１２２は、ワークフローレコード１１４を解釈するためのインタプリタを含むことができる。インタプリタは、例えば、実行コマンドに応答してワークフローを実行するように、実行時にワークフローレコード１１４を直接解釈するためのコードを含むことができる。
【００７５】
[0082]あるいは、ワークフローアプリケーションソフトウェア１２２は、例えば、ワークフロービルダモジュール及びワークフロー配置モジュールを含むことができる。ワークフロービルダモジュールは、プロセッサ３２６によって実行されると、ワークフローレコード１１４を取得し、ワークフローレコードに応じてワークフロー実行可能コードを生成するよう動作可能である。ワークフロー実行可能コードを生成するために、ワークフロービルダモジュール１２４は、パーサ及びコード生成器を含むことができる。
【００７６】
[0083]パーサは、ワークフローレコード１１４からのタスク及び／又はシーケンスパラメータを構文解析するためのコード（「構文解析済み情報」）を含む。パーサは、ワークフローレコード１１４が適切に形成され、有効であることを検証するための機能を含むこともできる。
【００７７】
[0084]コード生成器は、ライブラリ３４０のうちのどれがタスクに対応するかを決定するために、構文解析済み情報を検査し、構文解析済み情報をこうしたライブラリ３４０のうちの１つ又は複数と結合して、コードの組（「構文解析済みコードセット」）を形成するためのコードを含む。これを容易にするために、コード生成器は、構文解析済み情報に反映された順序付けに従って構文解析済み情報を順序付けるためのコードを含むこともできる。コード生成器は、構文解析済み情報を動的に及び／又はユーザ対話を介して配列又は再配列して、構文解析済み情報に反映された順序付けから逸脱し、ワークフローのタスクの実行の別の順序を提供するためのコードを含むこともできる。これは、（例えば構文解析情報を分析し、最適に効率的な実行シーケンスを決定することによって）効率、分岐を処理する、エラーを処理するなどのために行うことができる。
【００７８】
[0085]コード生成器は、構文解析済みコードセットを、それらの構文解析済みコードセットを結合するためのライブラリ３４０（「結合ライブラリ」）のうちの１つ又は複数と結合するためのコードを含むこともできる。このコードは、隣接する構文解析済みコードセット間のタスク及び／又はシーケンスパラメータの適切な部分の転送を容易にするために、結合ライブラリを使用することができる。
【００７９】
[0086]ワークフロービルダモジュールは、任意選択でコンパイラ（図示せず）を含むことができる。コンパイラは、ワークフロー配置モジュール１２６によって実行するためのワークフロー実行可能コードをコンパイルするためのコードを含む。あるいは、ワークフロービルダモジュール１２４は、当然、ワークフロー実行可能コードを生成するためにどのプログラミング言語が使用されるかに応じて、実行時まで又は全然ワークフロー実行可能コードをコンパイルしない場合がある。
【００８０】
[0087]ワークフロー配置モジュールは、プロセッサ３２６によって実行されると、ワークフロー実行可能コードを実行するよう動作可能である。ワークフロー配置モジュールは、ネットワーク３０４を介して実行コマンドを受信、又はそうでなければ取得することに応答してワークフロー実行可能コードを実行することができる。ワークフロー実行可能コードの実行を実行するために、ワークフロー配置モジュールは、（以下で詳しく説明するように）ワークフローアプリケーションソフトウェア３３８及びアプリケーションサーバソフトウェア３４０の他のモジュールをプロビジョニングするために構成することができる。
【００８１】
[0088]ワークフロービルダ及びワークフロー配置モジュールは、説明を容易にするために、個別のエンティティとして本明細書に記載される。しかし、ワークフロービルダ及びワークフロー配置モジュール又はその機能は、混じり合っていてもよく、又はそうでなければ、ワークフローアプリケーションソフトウェア３２４内に結合されてもよく、又はまったく存在しなくてもよい。あるいは、ワークフローアプリケーションソフトウェア３２４は、ワークフロービルダ及びワークフロー配置モジュールと同じ又はほぼ同じ機能を含むことができる。別の代替として、ワークフロービルダ及びワークフロー配置モジュールのそれぞれは、互いに、及び／又はワークフローアプリケーションソフトウェア３２４とは別のエンティティ（例えば、スタンドアロンソフトウェアパッケージ）とすることができる。
【００８２】
[0089]ワークフロー配置操作
【００８３】
[0090]次に図４を参照すると、ワークフローの生成、配置、及び／又は実行を容易にする容易にするためのフロー４００を示すフロー図が示されている。便宜上、フロー４００は、図３のシステム３００を参照して記載されている。しかし、フロー４００は、他のアーキテクチャを使用して実行することもできる。
【００８４】
[0091]フロー４００は、終了ブロック４０２で開始し、ユーザデバイス３０２がＧＵＩソフトウェア１１０を実行してＧＵＩを形成し、表示画面１２４のレンダリングを行う。終了ブロック４０２の後、フロー４００は、プロセスブロック４０４に移行する。
【００８５】
[0092]プロセスブロック４０４に示されるように、ＧＵＩソフトウェア１１０を介したユーザデバイス３０２は、ワークフローレコード１１４を発送のために準備する。ＧＵＩソフトウェア１１０は、図２のプロセスブロック２０４、２０６に従ってそのように行うことができる。ＧＵＩソフトウェア１１０は、ワークフローレコード１１４を、他の方法でも発送するように準備することができる。プロセスブロック４０４の後、フロー４００は、プロセスブロック４０６に移行する。
【００８６】
[0093]プロセスブロック４０６に示されるように、ワークフローアプリケーションソフトウェア３３８は、ＧＵＩソフトウェア１１０からワークフローレコード１１４を取得する。これを行うために、ワークフローアプリケーションソフトウェア３３８は、ＧＵＩの操作によってもたられる、又は代わりに同期及び／又は反復ルーチンによってもたらされる発送に応答して、ネットワーク３０４を介して、ワークフローレコード１１４を受信することができる。ＧＵＩソフトウェア１１０及びワークフローアプリケーションソフトウェア３３８は、適した情報交換機構のうちの任意のものを使用して、ワークフローレコード１１４の発送及び受信を実行することができる。プロセスブロック４０６の後、フロー４００は、オプションのプロセスブロック４０８又はプロセスブロック４１０に移行することができる。
【００８７】
[0094]オプションのプロセスブロック４０８に示されるように、ワークフローアプリケーションソフトウェア３３８は、ワークフローレコード１１４に応じてワークフロー実行可能コードを生成することができる。ワークフローアプリケーションソフトウェア３３８は、これを次のように行うことができる。
【００８８】
[0095]ワークフローアプリケーションソフトウェア３３８は、ワークフローレコード１１４をワークフロービルダモジュールに渡すことができる。次いでワークフロービルダモジュールは、ワークフローレコード１１４をパーサに渡すことができる。パーサは、ワークフローレコード１１４からの構文解析済み情報を構文解析することができる。構文解析済み情報は、ワークフローレコード１１４からのタスク及び／又はシーケンスパラメータを含む。次いでパーサは、構文解析済み情報をコード生成器に渡すことができる。
【００８９】
[0096]コード生成器は、ライブラリ３４０のうちのどれが構文解析済み情報と一致するかを決定するために、構文解析済み情報を検査することができる。これは、例えば、（例えば、各タスクパラメータにおけるタスクの機能の表示を検査することによって）ワークフローに含まれるタスクを決定するために、構文解析済み情報に記載されているタスクパラメータを検査するコード生成器を含むことができる。
【００９０】
[0097]ワークフローに含まれるタスクを決定することに加えて、コード生成器は、構文解析済み情報に反映される順序付けに従ってタスクを順序付けることができる。これを実行するために、コード生成器は、まず、順序付けを取得するために、構文解析済み情報からシーケンスパラメータを選ぶことができる。次いで、コード生成器は、（グラフィカルワークフロー１３４によって表されるように）ワークフローで定義された順序でタスクが実行されるように、順序付けに従って構文解析済みコードセットを配列することができる。あるいは、コード生成器は、順序付けによって定義された順序とは異なる順序で、タスクを動的に、及び／又はユーザ対話を介して配列又は再配列することができる。コード生成器は、上述したように、最適に効率的な実行シーケンスを取得する、及び／又は分岐を処理する、エラーを処理するなどのために、これを行うことができる。
【００９１】
[0098]更に、コード生成器は、ライブラリ３４０の中を検索して、タスク及び／又はシーケンスパラメータと一致する（と一致する、同じ、及び／又はほぼ同じパターンを有する）ライブラリ（「一致するライブラリ」）を決定することができる。一致するライブラリを探し出した後、コード生成器は、構文解析済みコードセットを形成するように、構文解析済み情報を一致するライブラリと結合することができる。コード生成器は、例えば、１つのタスクパラメータをこうしたタスクに対応する一致するライブラリに適用することによって、構文解析コードセットのそれぞれを形成することができる。これは、例えば、タスク及び／又はシーケンスパラメータで指定された基準を一致するライブラリのコードに組み込むことを含むことができる。更に、コード生成器は、タスク及び／又はシーケンスパラメータの適切な部分が隣接する構文解析済みコードセット間で移動するように、構文解析済みコードセットを結合するために、構文解析コードセットを構成する、又は結合ライブラリを含むことができる。いったん結合されると、構文解析済みコードセットは、ワークフロー実行可能コードを形成する。
【００９２】
[0100]コード生成器は、任意選択で、ワークフロー実行可能コードをコンパイラに渡すことができる。次いでコンパイラは、ワークフロー実行可能コードをコンパイルして、それをワークフロー配置モジュール１２６によって実行するように用意することができる。あるいは、ワークフロービルダモジュール１２４は、実行時まで、又は全然ワークフロー実行可能コードをコンパイルしない場合がある。
【００９３】
[0101]プロセスブロック４０８の後、フロー４００は、プロセスブロック４１０に移行する。プロセスブロック４１０に示されるように、ワークフローアプリケーションソフトウェア３３８は、ネットワーク３０４を介してＧＵＩソフトウェア１１０から実行コマンドを取得する。ＧＵＩソフトウェア１１０及びワークフローアプリケーションソフトウェア３３８は、適した情報交換機構のうちの任意のものを使用して、実行コマンドの発送及び受信を実行することができる。上述したように、実行コマンドは、ワークフローレコード１１４受信後のいつか、あるいは、ワークフローレコード１１４と同時又はほぼ同時に受信することができる。プロセスブロック４１０の後、フロー４００は、プロセスブロック４１２に移行する。
【００９４】
[0102]プロセスブロック４１２に示されるように、ワークフロー配置モジュールは、ワークフローを実行する。実行コマンドに応答して、ワークフローアプリケーションソフトウェア３３８は、ワークフローを実行するように、ワークフローレコード１１４を直接解釈することができる。
【００９５】
[0103]直接解釈されない場合、ワークフローアプリケーションソフトウェア３３８は、それが実行コマンドを受信したことをワークフロー配置モジュールに示すことができる。あるいは、ワークフローアプリケーションソフトウェア３３８は、実行コマンドをワークフロー配置モジュールに渡して、ワークフロー配置モジュールにワークフローを実行させることができる。ワークフロー配置モジュールは、実行コマンドに応答してそのように行うことができる。
【００９６】
[0104]実行コマンドがワークフロー実行可能コードの生成前にワークフローアプリケーションソフトウェア３３８で受信されると、ワークフローアプリケーションソフトウェア３３８及び／又はワークフロー配置モジュールは、ワークフロー実行可能コードの生成が終了するのを待つ。その後、ワークフローアプリケーションソフトウェア３３８は、ワークフロー実行可能コードの実行を行うように、ワークフロー配置モジュールに指示することができる。ワークフロー配置モジュールは、ワークフロー実行可能コードの生成及び実行コマンドの受信後いつでも、ワークフロー実行可能コードを実行することができる。
【００９７】
[0105]ワークフローアプリケーションソフトウェア３３８は、（直接解釈又はワークフロー実行可能コードを介して）テストモード又は生産モードでワークフローを実行することができる。テストモードでは、ワークフローアプリケーションソフトウェア３３８は、１つ又は複数のテストを開発してワークフローをテストし、ワークフローをテストに対して実行して評価することができる。ワークフローをテストに対して実行するとき、入力情報は、生産モードのために入力情報を模倣することができる。生産モードでは、ワークフローアプリケーションソフトウェア３３８は、入力情報を生産モードに使用して、ワークフローを実行することができる。
【００９８】
[0106]（直接解釈又はワークフロー実行可能コードを介した）ワークフローの実行を容易にするために、ワークフローアプリケーションソフトウェア３３８は、（例えば、サービスを受信するタスクのために、ワークフローアプリケーションソフトウェア３３８及び／又はアプリケーションサーバソフトウェア３４０の１つ又は複数のモジュールをプロビジョニングすることによってホストアプリケーションサーバ３２４をプロビジョニングすることができる。ワークフローアプリケーションソフトウェア３３８は、各タスクの機能及び基準に応じて、ホストアプリケーションサーバ３２４をプロビジョニングすることができる。タスク及び関連の機能及び基準の例について、図５及び図６に関してより詳しく説明する。
【００９９】
[0107]プロセスブロック４１２の後、フロー４００は、終了ブロック４１４に移行し、この時点でフロー４００は終了する。あるいは、フロー４００を、定期的に、継続的に、又はコマンド又はトリガなど、ある条件の結果としてトリガして、繰り返してもよい。別の代替として、ワークフローを実行するために、プロセスブロック４１０を、定期的に、継続的に、又は追加の実行コマンドなど、ある条件の結果としてトリガして、繰り返してもよい。更に別の代替として、ワークフローを再実行するために、プロセスブロック４１２を、定期的に（例えば所与のスケジュールなどごとに）、継続的に、又はある条件の結果としてトリガして、繰り返してもよい。
【０１００】
[0108]代替のシステムアーキテクチャ例
【０１０１】
[0109]図５は、ワークフローを生成し、配置し、及び／又は実行するためのシステム５００を示すブロック図である。システム５００は、ここに記載することを除いて、図３のシステム３００に似ている。システム５００は、ユーザデバイス３０２、ホストデバイス（「ホスト」）５０２、第１のエンドポイントデバイス５０４、第２のエンドポイントデバイス５０６、サービスデータベースサーバ５０８、サービスＦＴＰサーバ５１０、リモートメッセージストア５１２、サービスＨＴＴＰサーバ５１４、Ｗｅｂサーバ５１６、及びサービス電子メールサーバ５１７を含み、そのそれぞれは、ネットワーク３０４を介して他に通信可能に結合することができる。
【０１０２】
[0110]第１のエンドポイントデバイス５０４、第２のエンドポイントデバイス５０６、サービスデータベースサーバ５０８、サービスＦＴＰサーバ５１０、リモートメッセージストア５１２、サービスＨＴＴＰサーバ５１４、Ｗｅｂサーバ５１６、及びサービス電子メールサーバ５１７（まとめて「リモートデバイス」）のそれぞれは、マイクロソフト（登録商標）ウィンドウズ（登録商標）、リナックス及び／又はシンビアンなど、任意の適したオペレーティングシステム上で動作し、ソフトウェアを実行することができる任意のプロセッサベースのプラットフォームとすることができる。リモートデバイス５０４〜５１７のそれぞれは、多数の要素を含むことができ、その多くは、説明を簡単にするために、図５に示されていない。
【０１０３】
[0111]リモートデバイス５０４〜５１７のそれぞれの要素は、単一のデバイスに形成されてもよく、又単一のサーバ、クライアント、ピア、又は他のタイプのノードに集中させてもよい。あるいは、リモートデバイス５０４〜５１７は、２つ以上の個別のデバイスから形成されてもよく、従って、いくつかのサーバ、クライアント、ピア、又は他のタイプのノードに分散されてもよい。
【０１０４】
[0112]ホストアプリケーションサーバ３２４と同様に、リモートデバイス５０４〜５１７のそれぞれは、こうしたデバイスがホストアプリケーションサーバ３２４とは異なるサービスを実行することができることを除いて、サーバとして構成することができる。しかし、リモートデバイス５０４〜５１７は、サーバとして構成する必要はなく、むしろ、ホストアプリケーションサーバ３２４にサービスを提供する機能を有する。
【０１０５】
[0113]第１のエンドポイントデバイス５０４は、アプリケーションサーバとして構成され、メモリ（「第１のエンドポイントメモリ」）５５６を含むことができる。第１のエンドポイントメモリ５５６は、ファイル転送プロトコル（「ＦＴＰ」）を使用して、ホストアプリケーションサーバ３２４から取得されたソースレコードを格納することができる。
【０１０６】
[0114]第２のエンドポイントデバイス５０６は、メッセージングアプリケーションで構成することができる。メッセージングアプリケーションは、ホストアプリケーションサーバ３２４から送信された要求及び／又はメッセージに応じることができる。
【０１０７】
[0115]サービスデータベースサーバ５０８は、データベースサーバとして構成され、ホストアプリケーションサーバ３２４からの要求に応じることもできる。サービスデータベースサーバ５０８は、ホストアプリケーションサーバ３２４に転送するためのターゲットデータベースレコードと共に、ホストアプリケーションサーバ３２４から転送されたソースデータベースレコードを格納するためのメモリ５５８を含むことができる。
【０１０８】
[0116]サービスＦＴＰサーバ５１０は、ＦＴＰサーバとして構成され、ホストアプリケーションサーバ３２４からの要求に応じることもできる。サービスＦＴＰサーバ５１０は、ホストアプリケーションサーバ３２４に転送するためのターゲットｆｔｐファイル５６２を格納するためのメモリ５６０を含むことができる。
【０１０９】
[0117]リモートメッセージストア５１２は、１つ又は複数のメッセージを保持する（一時的に、永久に、又は他の何らかの期間の間）ために構成することができる。これらのメッセージは、ワークフロー、別のプロセス（例えば、リモートサーバ、クライアントなどを介した手動又は自動のエントリ）、及び／又は別のワークフローのタスクのうちの１つ又は複数によって取り出され、及び／又はそこに入れることができる。
【０１１０】
[0118]更に、リモートメッセージストア５１２におけるメッセージは、１つ又は複数のターゲットメッセージ及び／又は１つ又は複数のソースメッセージを含んでいてもよく、又はそれで埋められてもよい。ターゲットメッセージは、リモートメッセージストア５１２とコンテンツレコード５２６との間で（ワークフローの実行を介して）交換され得るメッセージである。ソースメッセージは、（以下でより詳しく説明されるように）リモートメッセージストア５１２とコンテンツレコード５２６及び／又はメッセージングソフトウェア５７０との間で交換され得るメッセージである。
【０１１１】
[0119]サービスｈｔｔｐサーバ５１４は、ＨＴＴＰサーバとして構成され、ホストアプリケーションサーバ３２４から送信されたＨＴＴＰ要求に応じることができる。Ｗｅｂサーバ５１６は、ホストアプリケーションサーバ３２４にＷｅｂサービスを提供するよう構成することができる。サービス電子メールサーバ５１７は、電子メールサーバとして構成され、ホストアプリケーションサーバ３２４から送信された電子メール要求に応じることができる。
【０１１２】
[0120]上述したシステム３００の要素の詳細及び／又は特徴で上記及び以下の説明を不明瞭にしないために、これらの詳細及び／特徴の一部は、以下の説明で繰り返されず、又は図５に示されていない。記載されていない、及び／又は図３に示されていない他の詳細及び／又は特徴が提示される。
【０１１３】
[0121]ホスト５０２は、図３のホスト３０６に似ている。ホスト３０６と同様、ホスト５０２は、ホストアプリケーションサーバ３２４を含む。ホスト５０２は、ホストｈｔｔｐサーバ５６４も含む。ホストアプリケーションサーバ３２４は、ワークフローアプリケーションソフトウェア３２４の制御下（例えば、ワークフロー実行可能コードを実行しているワークフロー配置モジュールの制御下）で、ホストＨＴＴＰ５６４と結合し、それとトランザクションを行うことができる。
【０１１４】
[0122]ホストｈｔｔｐサーバ５６４は、マイクロソフト（登録商標）ウィンドウズ（登録商標）、リナックス及び／又はシンビアンなど、任意の適したオペレーティングシステム上で動作し、ソフトウェアを実行することができる任意のプロセッサベースのプラットフォームを含むことができる。ホストアプリケーションサーバ３２４と同様、ホストｈｔｔｐサーバ５６４は、多数の要素を含むことができ、その多くは、説明を簡単にするために、図５に示されていない。
【０１１５】
[0123]ホストｈｔｔｐサーバ５６４の要素は、単一のデバイスに形成されてもよく、又単一のサーバ、クライアント、ピア、又は他のタイプのノードに集中させてもよい。あるいは、ホストｈｔｔｐサーバ５６４の要素は、２つ以上の個別のデバイスから形成されてもよく、従って、いくつかのサーバ、クライアント、ピア、又は他のタイプのノードに分散されてもよい。
【０１１６】
[0124]図示されていないが、ホストＨＴＴＰサーバ５６４は、１つ又は複数の処理ユニット、メモリ、サポート回路、バス、及びホストアプリケーションサーバ３２４の要素に似た他の要素を含むことができる。ホストＨＴＴＰサーバ５６４のメモリは、オペレーティングシステムを含み、これは、ホストＨＴＴＰサーバ５６４を作動するための様々なソフトウェア及び／又は実行可能命令又はコードを含み、及び／又はそれに組み込むことができる。オペレーティングシステムは、そのプロセッサによって実行されると、ホストＨＴＴＰ５６４サーバがホストアプリケーションサーバ３２４から出る、及び／又はそこに終わるＨＴＴＰ要求に応じるためのソフトウェアアプリケーションを実行することができるプラットフォームを提供する。
【０１１７】
[0125]ホストｈｔｔｐサーバ５６４は、サーバとして構成されてもよく、（以下でより詳しく説明するように）ワークフローの実行を実行するためのホストアプリケーションサーバ３２４を援助することができる。しかし、ホストｈｔｔｐサーバ５６４は、サーバとして構成する必要はなく、むしろ、ホストアプリケーションサーバ３２４のサービスを実行するよう動作可能である任意の形とする必要がある。
【０１１８】
[0126]メモリ３２８は、ホストアプリケーションサーバ３２４の要求を容易にするように構成され得るメッセージングソフトウェア５７０、電子メールソフトウェア５７２、ＦＴＰソフトウェア５７４、データベースソフトウェア５７４などの様々な他のソフトウェアを含むこともできる。メッセージングソフトウェア５７０、電子メールソフトウェア５７２、ＦＴＰソフトウェア５７４、及びデータベースソフトウェア５７４のそれぞれは、クライアント、ピア、及び／又はサーバとして動作することができる。
【０１１９】
[0127]メッセージングソフトウェア５７０は、ホストアプリケーションサーバ３２４によって実行されると、ワークフローアプリケーションソフトウェア３３８と、リモートメッセージストア５１２などのリモートデバイスのうちの１つ又は複数との間で１つ又は複数のメッセージを交換するためのエンジン（「ホストメッセージングエンジン」）を提供する。メッセージングエンジンは、Ｊａｖａメッセージングサービス（「ＪＭＳ」）、セッション開始プロトコル（「ＳＩＰ」）、ＳＩＰ  ｆｏｒ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｌｅｖｅｒａｇｉｎｇ  Ｅｘｔｅｎｓｉｏｎｓ（「ＳＩＭＰＬＥ」）、Ａｐｐｌｉｃａｔｉｏｎ  Ｅｘｃｈａｎｇｅ（「ＡＰＥＸ」）、Ｐｒｅｓｅｎｃｅ  ａｎｄ  Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  Ｐｒｏｔｏｃｏｌ（「ＰＲＩＭ」）、Ｅｘｔｅｎｓｉｂｌｅ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｐｒｏｔｏｃｏｌ（「ＸＭＰＰ」）、Ｉｎｓｔａｎｔ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｓｅｒｖｉｃｅ（「ＩＭＰＳ」）、インターネットメッセージアクセスプロトコル（「ＩＭＡＰ」）など、任意のメッセージングプロトコルを使用してメッセージを交換することができる。
【０１２０】
[0128]電子メールソフトウェア５７２は、ホストアプリケーションサーバ３２４によって実行されると、サービス電子メールサーバ５１７と１つ又は複数の電子メールメッセージを交換（添付ファイル有り又は無しで）し、こうした電子メールメッセージのメモリ３２８との間での転送を行うためのエンジン（「ホスト電子メールエンジン」）をホストアプリケーションサーバ３２４に提供する。電子メールエンジンは、簡易メール転送プロトコル（「ＳＭＴＰ」）、ポストオフィスプロトコル（「ＰＯＰ」）、インターネットメッセージアクセスプロトコル（「ＩＭＡＰ」）、及び他の電子メールサービスタイプのうちの任意のバージョンに従ってサービス電子メールサーバ５１８とインターフェイスをとることができる。
【０１２１】
[0129]ＦＴＰソフトウェア５７４は、ホストアプリケーションサーバ３２４によって実行されると、ホストアプリケーションサーバ３２４にエンジン（「ホストＦＴＰエンジン」）を提供する。このＦＴＰエンジンは、ＦＴＰに従って、サービスＦＴＰサーバ５１０及びメモリ３２８など、１つ又は複数のリモートデバイス間でのファイルの１つ又は複数の転送を実行することができる。
【０１２２】
[0130]データベースソフトウェア５７６は、ホストアプリケーションサーバ３２４によって実行されると、サービスデータベースサーバ５０８など１つ又は複数のリモートデバイスからの１つ又は複数のデータベースレコードを交換し、こうしたデータベースレコードのメモリ３２８との間での転送を行うためのインターフェイス（「ホストデータベースインターフェイス」）をホストアプリケーションサーバ３２４に提供する。データベースソフトウェア５７６は、例えば、Ｊａｖａデータベース接続（「ＪＤＢＣ」）ＡＰＩ、ルートデータベース接続（「ＲＤＢＣ」）ＡＰＩなどのクライアントインターフェイスでもよい。このクライアントインターフェイスは、オラクル、ＤＢ２、マイクロソフトアクセス、マイクロソフトＳＱＬサーバ、ＭｙＳＱＬ、４ｔｈ  Ｄｉｍｅｎｓｉｏｎ、ＦｉｌｅＭａｋｅｒ、及び類似のデータベースアプリケーションのうちの任意のものとインターフェイスをとるよう動作可能とすることができる。いかなる場合でも、データベースソフトウェア５７６は、オラクル、ＤＢ２、マイクロソフトアクセス、マイクロソフトＳＱＬサーバ、ＭｙＳＱＬ、４ｔｈ  Ｄｉｍｅｎｓｉｏｎ、ＦｉｌｅＭａｋｅｒなど、データベースアプリケーションを使用して形成されたものを含む任意の数のデータベースとインターフェイスをとることができる。
【０１２３】
[0131]メモリ３２８は、上記に加えて、いくつかのレコード又は他のデータ構造（まとめて「レコード」）を含むことができる。レコードは、ワークフローの実行中、タスクのうちの１つ又は複数によって使用することができ、及び／又は使用されるために取得することができる。レコードの例には、メッセージレコード５１８、テンプレートレコード５２０、サービス定義レコード５２２、コンテンツレコード５２６、及び記録済みワークフローレコード５５６などがある。
【０１２４】
[0132]メッセージレコード５１８は、ワークフローのタスクのうちの１つ又は複数によって取り出されるために、１つ又は複数のメッセージを保持するように構成され得るレポジトリ（「メッセージレポジトリ」）を含むことができる。メッセージレポジトリは、例えば、ホストアプリケーションサーバ３２４から転送する又は取り出すための１つ又は複数のメッセージ（「ソースメッセージ」）及び／又はホストアプリケーションサーバ３２４に転送する又はそれによって取り出される１つ又は複数のメッセージ（「ターゲットメッセージ」）を含むことができる。
【０１２５】
[0133]テンプレートレコード５２０は、１つ又は複数の変換テンプレート、スキーマテンプレート、妥当性検査テンプレート、及び／又はメッセージテンプレートを含むことができる。以下により詳しく記載されるように、変換テンプレートは、入力情報を生来のフォーマットから別のフォーマットに変換するためのタスクによって使用することができる。これを容易にするために、変換テンプレートは、１つ又は複数の変換ファイルを含むことができる。こうした変換フィルタの例には、マイクロソフト（登録商標）エクセル（Ｅｘｃｅｌ）（登録商標）（「ＸＬＳ」）−ＸＭＬフィルタ、デリミタ付きフィールドフォーマット−ＸＭＬフィルタ、固定長フィールドフォーマット−ＸＭＬフィルタ、ＸＭＬ−ＸＬＳフィルタ、ＸＭＬ−デリミタ付きフィールドフォーマットフィルタ、ＸＭＬ−固定長フィールドフィルタなどがある。
【０１２６】
[0134]スキーマテンプレートは、こうしたタスクから出力されたある入力情報又は結果が１つ又は複数のスキーマ及び／又は１つ又は複数のセマンティックプロトコルに適合するかどうかを識別し、評価し、及び／又は妥当性検査するためのワークフローのタスクのうちの１つ又は複数によって使用することができる。スキーマ及び／又はセマンティックプロトコルの例には、ＸＭＬ、金融情報交換（「ＦＩＸ」）プロトコル、ＦＩＸプロトコルのカスタマイズされたバージョン、ＳＷＩＦＴ（Ｓｏｃｉｅｔｙ  ｆｏｒ  Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｂａｎｋ  Ｆｉｎａｎｃｉａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  ＳＣＲＬ）により公表された標準、ＦｐＭＬ（Ｆｉｎａｎｃｉａｌ  ｐｒｏｄｕｃｔｓ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）プロトコル、Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ又はＳｅｒｖｉｃｅ  Ｏｒｉｅｎｔｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｐｒｏｔｏｃｏｌ（まとめて「ＳＯＡＰ」）などがある。
【０１２７】
[0135]更に、妥当性検査テンプレート（以下により詳しく説明するように）は、こうしたタスクに入力されたコンテンツの訂正及び／又は妥当性の評価のためにタスクのうちの１つ又は複数によって使用され得る１つ又は複数の数式及び／又は１つ又は複数のマッピングを含むことができる。数式及び／又はマッピングは、タスクに入力されたコンテンツが有効である（例えば、コンテンツが予想された基準に適合する）かどうかを決定するための機能を形成する一連のルールを作成するために使用することができる。
【０１２８】
[0136]メッセージテンプレートは、入力情報を構文解析するためのタスクのうちの１つ又は複数によって使用され得るステンシルタイプのテンプレート（例えば、メールマージテンプレート）として構成することができる。メッセージテンプレートは、入力情報が構文解析され得る１つ又は複数のエントリを含むことができる。エントリは、入力情報を使用して評価され得る数式（例えば公式）で埋めることもできる。メッセージテンプレートは、任意の数のレコードをプログラム的に生成するためのタスクのうちの１つ又は複数によって使用することができる。例えば、メッセージテンプレートは、Ｗｅｂページ、会社の社内報などを生成するためのタスクによって使用することができる。
【０１２９】
[0137]コンテンツレコード５２６は、タスクに入力するためのコンテンツ、タスクの実行から生成される結果、タスクのうちの１つ又は複数による評価のための１つ又は複数の数式（例えば、公式、手順、ルールなど）、タスクパラメータ、数式及び／又はタスクパラメータと共に使用するための１つ又は複数の変数、電子メールレコード、及びタスクによって使用される、処理される、及び／又は格納される他の情報を含むことができる。
【０１３０】
[0138]電子メールレコードのそれぞれは、（ｉ）電子メールメッセージの送信者に割り当てられる、又はそうでなければ関連付けられる電子メールアドレスで埋められ得る第１のフィールド、（ｉｉ）電子メールメッセージの受信者に割り当てられる、又はそうでなければ関連付けられる電子メールアドレスで埋められ得る第２のフィールド、（ｉｉｉ）電子メールメッセージの件名で埋められ得る第３のフィールド、（ｉｖ）電子メールメッセージの本文で埋められ得る第４のフィールド、及び／又は（ｖ）ある場合は、電子メールメッセージへの任意の添付ファイルを取り出し、又はそうでなければ取得するための情報を含むことができる。
【０１３１】
[0139]記録済みワークフローファイル５５６は、以前記録されたワークフロー（「記録済みワークフロー」）を実行するための１つ又は複数のレコード（「記録済みワークフローレコード」）を含むことができる。これらの記録済みワークフローレコードは、（ｉ）記録済みワークフローの実行のための入力情報を取得する、及び／又は（ｉｉ）記録済みワークフローの実行からの任意の結果をコンテンツレコード５２６に格納するために、コンテンツレコード５２６にアクセスするための情報を含むことができる。
【０１３２】
[0140]ＧＵＩ表示画面例
【０１３３】
[0141]図６は、グラフィカルユーザインターフェイスの表示画面６００の一例を示すグラフィカル図である。表示画面６００は、本明細書に後述されるものを除いて、図５の表示画面１２４と似ている。便宜上、表示画面６００は、図５のシステム５００を参照して記載されている。しかし、表示画面６００は、他のアーキテクチャを使用してレンダリングすることもできる。
【０１３４】
[0142]表示画面６００は、ウィジェットペイン１２６、ウィジェットツールバー１２８、及びワークフローペイン１３０を含む。ウィジェットペイン１２６は、開始ウィジェット１３２１、停止ウィジェット１３２２、表示ウィジェット１３２３、条件文ウィジェット１３２４、構文解析テンプレートウィジェット１３２５、数式ウィジェット１３２６、電子メール送信ウィジェット１３２７、ｆｔｐ取得ウィジェット１３２８、ｆｔｐ送信ウィジェット１３２９、ｄＢ取得ウィジェット１３２１０、ｄＢ送信ウィジェット１３２１１、ｈｔｔｐリッスンウィジェット１３２１２、ｈｔｔｐ送信ウィジェット１３２１３、ｈｔｔｐ応答ウィジェット１３２１４、ＭＱ取得ウィジェット１３２１５、ＭＱ送信ウィジェット１３２１６、ｗｅｂサービスウィジェット１３２１７、変形ウィジェット１３２１８、変換ウィジェット１３２１９、セマンティックプロトコルウィジェット１３２２０、削除ウィジェット１３２２１、妥当性検査ウィジェット１３２２２、ｔｃｐリッスンウィジェット１３２２３、ｔｃｐ取得ウィジェット１３２２４、ｔｃｐ送信ウィジェット１３２２５、待機ウィジェット１３２２６、電子メール取得ウィジェット１３２２７、コピーウィジェット１３２２８、反復ウィジェット１３２２９、及びワークフロー開始ウィジェット１３２３０を含む。
【０１３５】
[0143]これらのウィジェット１３２１〜１３２３０は、開始、停止、表示、条件文、構文解析テンプレート、数式、電子メール送信、ｆｔｐ取得、ｆｔｐ送信、ｄＢ取得、ｄＢ送信、ｈｔｔｐリッスン、ｈｔｔｐ送信、ｈｔｔｐ応答、ＭＱ取得、ＭＱ送信、ｗｅｂサーバ、変形、変換、セマンティックプロトコル、削除、妥当性検査、ｔｃｐリッスン、ｔｃｐ取得、ｔｃｐ送信、待機、電子メール取得、コピー、反復、及びワークフロー開始タスク（まとめて「タスク」）に対応し、それぞれワークフロー操作レコード１１６１〜１１６３０に関連付けられる。次いでワークフロー操作レコード１１６１〜１１６３０は、それぞれのタスクパラメータを含む。
【０１３６】
[0144]上述したように、ＧＵＩソフトウェア１１０は、グラフィカルワークフロー１３４におけるウィジェット１３２１〜１３２３０のインスタンスごとに、（例えば、キーボードを介して入力される）Ｉ／Ｏデバイス１０６によるＧＵＩの操作を介して対応するタスクパラメータを取得することができる。ワークフローアプリケーションソフトウェア３３８は、ＧＵＩソフトウェア１１０から発送されたワークフローレコード１１４からこうしたタスクパラメータを取得することができ、これらのタスクパラメータを使用してワークフローを実行することができる。以下は、ウィジェット１３２１〜１３２３０のそれぞれに関して、（ｉ）こうしたタスクがワークフロー（及びグラフィカルワークフロー１３４）に含まれていた場合、ワークフローアプリケーションソフトウェア３３８が実行することができるタスク、及び（ｉｉ）ワークフローの実行及びワークフローを実行するためのホスト５０２のプロビジョニングに関するタスクパラメータの例について説明する。
【０１３７】
[0145]開始タスク例
【０１３８】
[0146]開始タスクは、開始ウィジェット１３２１によって表され、ワークフローを実行するための開始点として機能し、ホストアプリケーションサーバ３２４に、ワークフローのタスクの実行を開始させる。一般に、ワークフローは、開始タスクを１つだけ含む。
【０１３９】
[0147]開始タスクパラメータの一部は、全体として他のタスク及び／又はワークフローに共通していてもよい。共通の開始タスクパラメータには、ワークフロー名エントリ、ワークフロー記述エントリ、ワークフロー著者エントリ、ワークフローバージョンエントリ、及びログレベルエントリなどがある。
【０１４０】
[0148]ワークフロー名エントリは、ワークフローを識別するためにワークフローに与えられた名前を含むことができる。ワークフロー記述エントリは、例えばワークフローの目的を説明するワークフローの与えられた記述で埋めることができる。ワークフロー著者エントリは、ワークフローを著す著者の名前で埋めることができる。ワークフローバージョンエントリは、ワークフローに割り当てられたバージョンを示すためのインジケータ（例えば数字）で埋めることができる。ワークフロー名、ワークフロー記述、ワークフロー著者、及びワークフローバージョンのエントリのそれぞれは、１文字又は文字列として表すことができる。
【０１４１】
[0149]ログレベルエントリは、ワークフローの実行中にイベントのロギングをトリガするためのレベル（例えば、エラー、ワーニング、又はデバッグレベル）を示すインジケータで埋めることができる。ログレベルエントリは、所与の数の設定のうちの１つとして表すことができる。
【０１４２】
[0150]以下のタスクのそれぞれについて、タスクパラメータは、それぞれの名前エントリ及び記述エントリを含むことができる。特に記載がない限り、名前エントリのそれぞれは、その特定のインスタンスを識別するように対応するタスクに割り当てられた名前を含むことができ、１文字、文字列、変数、数式などとして表すことができる。
【０１４３】
[0151]更に、記述エントリのそれぞれは、対応するタスクの特定のインスタンスを記述するために対応するタスクに割り当てられた記述を含むことができる。これらの記述エントリは、１文字、文字列、変数、数式などとして表すことができる。他のタスクパラメータは、以下でより詳細に説明される。
【０１４４】
[0152]停止タスク例
【０１４５】
[0153]停止タスクは、停止ウィジェット１３２２によって表され、ワークフローの終点又は終了として機能し、ホストアプリケーションサーバ３２４にワークフローを終了させる。停止タスクの定義は、終了パラメータを含むことができる。終了パラメータは、ワークフローの正常な又は異常な終了を示すための設定（「終了設定」）、及びワークフローによる処理を受ける任意の入力情報がワークフローによって十分処理されると考えられるかどうかを示すためのフラグを含むことができる。
【０１４６】
[0154]例えば、ワークフローがタスクの実行の代替パス又は「分岐」（「ワークフロー分岐」）を複数含むとき、ワークフローは、複数の停止タスクを含むことができる。一例により、ワークフロー分岐は、第１及び第２の分岐を含むことができる。第１の分岐は、第１の停止タスクで終了し、第２の分岐は、第２の停止タスクで終了することができる。この場合、ＧＵＩソフトウェア１１０は、ワークフローにそれぞれのワークフロー分岐のみを終了させるように、第１及び第２の停止タスクの両方の終了設定を正常終了に設定することによって、第１及び第２の停止タスクパラメータを構成することができる。そのように構成されると、ＧＵＩソフトウェア１１０は、第１及び第２の分岐のタスクによる処理を受ける入力情報が十分処理されると考えられることを示すようにフラグを設定することができる。
【０１４７】
[0155]あるいは、ＧＵＩソフトウェア１１０は、第１又は第２の停止タスクのいずれかを実行すると、ワークフローに終了させるように、終了設定を異常終了に設定することによって、第１及び第２の停止タスクパラメータのうちのいずれか又は両方を構成することができる。そのように構成されると、ＧＵＩソフトウェア１１０は、ワークフローによる処理を受ける入力情報が十分処理されると考えられないことを示すようにフラグを設定することができる。
【０１４８】
[0156]表示タスク例
【０１４９】
[0157]表示タスクは、表示ウィジェット１３２３によって表され、ホストアプリケーションサーバ３２４に、ホストメッセージングエンジンを介して、取り出すためのメッセージレコード５１８及び／又は第２のエンドポイントデバイス５０６にメッセージを送信させる。メッセージレコード５１８におけるこのメッセージは、他のタスク、別のワークフロー、ユーザデバイス３０２、ホスト３０６、及び／又は第２のエンドポイントデバイス５０６などによって取り出すことができる。
【０１５０】
[0158]表示タスクパラメータの例には、メッセージ照会エントリ及びメッセージエントリなどがある。メッセージ照会エントリは、メッセージを配信するためにメッセージレコード５１８及び／又は第２のエンドポイントデバイス５０６にアクセスし、及び／又はそれと通信するための情報を含むことができる。この情報は、例えば、メッセージレコード５１８及び／又は第２のエンドポイントデバイス５０６に割り当てられた、又はそうでなければ関連付けられた名前又はアドレスとすることができる。あるいは、情報は、メモリ３２８内のメッセージレコード５１８の位置、及び／又は第２のエンドポイントデバイス５０６の名前又はアドレスへの参照、ポインタ、統一資源識別子（「ＵＲＬ」）、又は他のインジケータとすることができる。
【０１５１】
[0159]メッセージエントリは、（ｉ）メッセージの件名（「メッセージの件名」）で埋められ得る第１のフィールド、及び（ｉｉ）メッセージの本文又はコンテンツ（「メッセージ本文」）で埋められ得る第２のフィールドを含むことができる。メッセージ照会及びメッセージエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができるように表すことができる。更に、メッセージ本文は、上述したメッセージングテンプレートを使用して指定することができる。
【０１５２】
[0160]条件文タスク例
【０１５３】
[0161]条件文タスクは、条件文ウィジェット１３２４によって表され、ホストアプリケーションサーバ３２４に条件文に応じてワークフロー分岐のうちの１つ又は複数を実行させるための決定点として機能する。条件文タスクパラメータは、条件式エントリを含むことができる。
【０１５４】
[0162]条件式エントリは、条件文で埋めることができる。条件文は、ｉｆ−ｔｈｅｎ文及び／又はブール式などの論理的な式として表すことができ、条件文の評価（例えば、真又は偽の決定）後に実行するためのワークフロー分岐及び／又はタスクのうちの１つ又は複数を指定することができる。
【０１５５】
[0163]構文解析テンプレートタスク例
【０１５６】
[0164]構文解析テンプレートタスクは、構文解析テンプレートウィジェット１３２５によって表され、ホストアプリケーションサーバ３２４に、メッセージテンプレートから１つのテンプレートを選択させ（「選択済みテンプレート」）、選択済みテンプレートによりその入力情報の少なくとも一部分を構文解析する。入力情報を構文解析するために、ホストアプリケーションサーバ３２４は、（ｉ）それに対応する入力情報で選択済みテンプレートにおける変数を埋める、（ｉｉ）結果を形成するように、選択済みテンプレートで指定された数式を評価する、及び（ｉｉｉ）結果を出力する、及び／又はコンテンツレコード５２６に格納する。
【０１５７】
[0165]構文解析テンプレートタスクパラメータは、テンプレートエントリを含むことができる。テンプレートエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる表すことができる。
【０１５８】
[0166]テンプレートエントリは、入力情報を構文解析するために、選択済みテンプレートを取り出す、又はそうでなければ取得するための情報を含むことができる。この情報は、例えば、選択済みテンプレートに割り当てられた、又はそうでなければ関連付けられた名前とすることができる。あるいは、情報は、メモリ３２８上のテンプレートレコード５２０に格納されている選択済みテンプレートの位置への参照、ポインタ、ＵＲＩ、又は他のインジケータとすることができる。
【０１５９】
[0167]数式タスク例
【０１６０】
[0168]数式タスクは、数式ウィジェット１３２６によって表され、ホストアプリケーションサーバ３２４に、数式のタスクパラメータで指定された数式の１つ又は複数を評価させ、その後の取り出し及び／又は分析のために、コンテンツレコード５２６に評価の１つ又は複数の結果を格納させることができる。数式タスクは、数式エントリが複数の式を含むとき、ホストアプリケーションサーバ３２４に命令実行を適用させることができる。実行のこの命令は、エントリの時間、エントリの順序、数学的階層、分析的階層、算術的階層、統計的分析などに基づかせることができる。
【０１６１】
[0169]数式タスクパラメータの例には、数式エントリ及び結果−位置エントリなどがある。数式エントリは、１つ又は複数の数式（例えば、公式）を含むことができる。結果−位置エントリは、以前格納された結果をコンテンツレコード５２６から取り出す、又はそうでなければ取得するため、及びコンテンツレコード５２６に戻す現在の結果を格納するための情報を含むことができる。この情報は、例えば、コンテンツレコード５２６における現在の結果、及び／又はコンテンツレコード５２６に格納されている以前格納された結果に割り当てられた、又はそうでなければ関連付けられた名前とすることができる。あるいは、結果−位置エントリの情報は、（ｉ）コンテンツレコード５２６の、（ｉｉ）コンテンツレコード５２６に格納されている以前格納された結果の、及び／又は（ｉｉｉ）コンテンツレコード５２６における現在の結果を格納するための参照、ポインタ、ＵＲＩ、又は他の位置のインジケータとすることもできる。結果−位置エントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０１６２】
[0170]電子メール送信タスク例
【０１６３】
[0171]電子メール送信タスクは、電子メール送信ウィジェット１３２７によって表され、ホストアプリケーションサーバ３２４に、電子メールメッセージ（添付ファイル有り又は無し）を作成させ、電子メールソフトウェア５７２及び／又はサービス電子メールサーバ５１７を介して、それを第２のエンドポイントデバイス５０６など少なくとも１つの受信側に送信させることができる。電子メール送信タスクパラメータの例には、電子メールサービス定義エントリ及び電子メールエントリなどがある。
【０１６４】
[0172]電子メールサービス定義エントリは、電子メール送信タスクの実行に使用され得る電子メールサービスを識別する以前構成されたサービス定義（「電子メールサービス定義」）への参照を含むことができる。電子メールサービス定義は、メモリ３３８のサービス定義レコード５２２に格納され得るいくつかのパラメータ（「電子メールサービスパラメータ」）を含むことができる。電子メールサービスパラメータは、電子メール送信タスクを実行するために電子メールソフトウェア５７２及び／又はサービス電子メールサーバ５１７を構成するための情報を含むことができる。この情報は、例えば、電子メールソフトウェア５７２及び／又はサービス電子メールサーバ５１７のＵＲＩ及び／又は他のアドレス、電子メールサービスを実行するために使用されるプロトコルなどを含むことができる。
【０１６５】
[0173]電子メールエントリは、電子メールを埋めるための情報を含むことができる。この情報は、１文字、１組の文字及び／又は変数として表すことができる。代替として、電子メールエントリの情報は、数式として表すことができ、その評価は、電子メールのコンテンツを決定する。いずれの場合も、電子メールエントリの情報は、例えば、コンテンツレコード５２６に格納された電子メールレコードから取得され得る電子メールの１つ又は複数の部分に割り当てられた、又はそうでなければ関連付けられた名前を含むことができる。あるいは、電子メールエントリの情報は、コンテンツレコード５２６電子メールに格納されている電子メールレコードの位置への参照、ポインタ、ＵＲＩ、又は他のインジケータとすることができる。
【０１６６】
[0174]電子メールサービス定義及び関連の電子メールサービスパラメータは、本明細書に、サービス定義レコード５２２に含まれているものとして記載されているが、サービス定義レコード５２２は、省かれてもよい。省かれる場合、電子メール送信タスクパラメータは、電子メールサービスを構成するための、電子メールサービス定義及び関連の電子メールサービスパラメータに似た情報を含むことができる。
【０１６７】
[0175]ＦＴＰ取得タスク例
【０１６８】
[0176]ｆｔｐ取得タスクは、ｆｔｐ取得ウィジェット１３２８によって表され、ホストアプリケーションサーバ３２４に、ホストＦＴＰエンジンを介してサービスＦＴＰサーバ５０８からファイル（「ターゲットｆｔｐファイル」）を取り出し、ターゲットｆｔｐファイルをメモリ３２８に格納させることができる。ｆｔｐ取得タスクパラメータの例には、ｆｔｐ取得サービス定義エントリ、ターゲットファイルエントリ、宛先位置エントリ、及び追加ファイル取得エントリなどがある。ｆｔｐ取得サービス定義、ターゲットファイル、宛先位置、及び追加ファイル取得のエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０１６９】
[0177]ｆｔｐ取得サービス定義エントリは、ｆｔｐ取得タスクの実行に使用され得るＦＴＰサービスを識別する以前構成されたサービス定義への参照を含むことができる。このサービス定義（「ＦＴＰサービス定義」）は、メモリ３３８のサービス定義レコード５２２に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ（「ＦＴＰサービスパラメータ」）は、ｆｔｐ取得タスクを実行するようにＦＴＰソフトウェア５７４、及び／又はサービスＦＴＰサーバ５１０を構成するための情報を含むことができる。例えば、この情報は、サービスＦＴＰサーバ５０８に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、使用すべき転送モードのタイプを指定するための設定（例えば、ＡＳＣＩＩ又はバイナリ）などを含むことができる。
【０１７０】
[0178]ターゲットファイルエントリは、ＦＴＰサービスを使用してサービスＦＴＰサーバ５０８からターゲットｆｔｐファイルを取り出す、又はそうでなければ取得するための情報を含むことができる。この情報は、ターゲットｆｔｐファイルに割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、ターゲットファイルエントリのための情報は、サービスＦＴＰメモリ５６０上のターゲットｆｔｐファイルの位置への参照、ポインタ、ＵＲＩ、又は他のインジケータとすることができる。
【０１７１】
[0179]宛先位置エントリは、メモリ３２８上のターゲットｆｔｐファイルを格納する場所を示すための情報を含むことができる。この情報は、例えば、メモリ３２８上の位置への参照、ポインタ、ＵＲＩ、又は他のインジケータを含むことができる。
【０１７２】
[0180]追加ファイル取得エントリは、サービスＦＴＰメモリ５６０から複数のファイルを取り出すかどうかを指定するための設定を含むことができる。宛先位置エントリ及び追加ファイル取得エントリは、ｆｔｐ取得タスクパラメータに含まれているものとして本明細書に記載されているが、こうしたエントリのいずれか又は両方（及びそれに含まれるパラメータ）は、ｆｔｐ取得タスクパラメータの代わりに、ＦＴＰサービス定義にＦＴＰサービスパラメータとして含まれていてもよい。こうした場合、ｆｔｐ取得タスクパラメータは、任意選択で、こうしたＦＴＰサービスパラメータをオーバーライドする、変更する、調整する、又はそうでなければ変更するためのパラメータを含むことができる。別の代替として、ＦＴＰサービス定義及び関連のＦＴＰサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード５２２の代わりにｆｔｐ取得タスクパラメータに含まれていてもよい。
【０１７３】
[0181]ＦＴＰ送信タスク例
【０１７４】
[0182]ｆｔｐ送信タスクは、ｆｔｐ送信ウィジェット１３２９によって表され、ホストアプリケーションサーバ３２４に、ＦＴＰソフトウェア５７４を使用して、メモリ３２８から第１のエンドポイントデバイス５０４のサービスデバイスメモリ５５６にファイル（「ソースｆｔｐファイル」）を転送させることができる。ｆｔｐ送信タスクパラメータの例には、ｆｔｐ送信サービス定義エントリ、ソースファイルエントリ、宛先位置エントリ、及び追加ファイル送信エントリなどがある。
【０１７５】
[0183]ｆｔｐ送信サービス定義エントリは、ｆｔｐ送信タスクの実行に使用され得る以前構成されたＦＴＰサービス定義への参照を含むことができる。このＦＴＰサービス定義は、メモリ３３８のサービス定義レコード５２２に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ（「ＦＴＰサービスパラメータ」）は、ｆｔｐ送信タスクを実行するようにＦＴＰソフトウェア５７４、及び／又は第１のエンドポイントデバイス５０４を構成するための情報を含むことができる。例えば、この情報は、ＦＴＰソフトウェア５７４及び／又は第１のエンドポイントデバイス５０４に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、使用すべき転送モードのタイプ（例えば、ＡＳＣＩＩ又はバイナリ）を指定するための設定などを含むことができる。
【０１７６】
[0184]ソースファイルエントリは、メモリ３２８からソースｆｔｐファイルを取り出す、又はそうでなければ取得するための情報を含むことができる。この情報は、ソースｆｔｐファイルに割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、ソースファイルエントリのための情報は、メモリ３２８上のソースｆｔｐファイルの位置への参照、ポインタ、ＵＲＩ、又は他のインジケータとすることもできる。
【０１７７】
[0185]宛先位置エントリは、サービスデバイスメモリ５５６上にソースｆｔｐファイルを格納するための情報を含むことができる。この情報は、例えば、サービスデバイスメモリ５５６及び／又は第１のエンドポイントデバイス５０４の位置への参照、ポインタ、ＵＲＩ、又は他のインジケータを含むことができる。
【０１７８】
[0186]追加ファイル送信エントリは、第１のエンドポイントデバイス５０４のサービスデバイスメモリ５５６上の複数のファイルを転送するかどうかを指定するための設定を含むことができる。ｆｔｐ送信サービス定義、ソースファイル、宛先位置、及び追加ファイル送信のエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０１７９】
[0187]宛先位置エントリ及び追加ファイル送信エントリは、ｆｔｐ送信タスクパラメータに含まれているものとして本明細書に記載されているが、こうしたエントリのいずれか又は両方（及びそれに含まれるパラメータ）は、ｆｔｐ送信タスクパラメータの代わりに、ＦＴＰサービス定義にＦＴＰサービスパラメータとして含まれていてもよい。こうした場合、ｆｔｐ送信タスクパラメータは、任意選択で、こうしたＦＴＰサービスパラメータをオーバーライドする、変更する、調整する、又はそうでなければ変更するためのパラメータを含むことができる。別の代替として、ＦＴＰサービス定義及び関連のＦＴＰサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード５２２の代わりにｆｔｐ取得タスクパラメータに含まれていてもよい。
【０１８０】
[0188]データベース取得タスク例
【０１８１】
[0189]ｄＢ取得タスクは、ｄＢ取得ウィジェット１３２１０によって表され、ホストアプリケーションサーバ３２４に、サービスデータベースサーバ５０８のメモリ５５８におけるターゲットレコードからターゲットデータを取り出させ、又はそうでなければ取得させ、こうしたターゲットデータをコンテンツレコード５２６に格納させることができる。ｄＢ取得タスクは、ホストアプリケーションサーバ３２４のサービスデータベースサーバ５０８への照会の送信（例えば１つ又は複数のＳＱＬコマンド）に応答してターゲットデータのこうした転送をもたらすことができる。
【０１８２】
[0190]ｄＢ取得タスクパラメータの例には、ｄＢ取得サービス定義エントリ、データ要求エントリ、及び宛先位置エントリなどがある。ｄＢ取得サービス定義、データ要求、及び宛先位置のエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０１８３】
[0191]ｄＢ取得サービス定義エントリは、ｄＢ取得タスクの実行に使用され得るデータベースサービスを識別する以前構成されたサービス定義（「ｄＢサービス定義」）への参照を含むことができる。このｄＢサービス定義は、メモリ３３８のサービス定義レコード５２２に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ（「ｄＢサービスパラメータ」）は、ｄＢ取得タスクを実行するようにデータベースソフトウェア５７６、及び／又はサービスデータベースサーバ５０８を構成するための情報を含むことができる。この情報は、例えば、データベースソフトウェア５７６及び／又はサービスデータベースサーバ５０８に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、サービスデータベースサーバ５０８に照会を行うために、オラクル、ＤＢ２、マイクロソフトアクセス、マイクロソフトＳＱＬコマンドサーバ、Ｐｏｓｔｇｒｅｓ、ＭｙＳＱＬ、４ｔｈ  Ｄｉｍｅｎｓｉｏｎ、ＦｉｌｅＭａｌｅｒ、及びＡｌｐｈａ  Ｆｉｖｅ  ＤＢＭＳのうちの任意のものなど、少なくとも１つのデータベース管理システム（「ＤＢＭＳ」）を指定するための１つ又は複数の設定などを含むことができる。
【０１８４】
[0192]ｄＢサービスパラメータの情報は、名前、アドレス、参照、ポインタ、ＵＲＩ、又はサービスｄＢサーバ５０８のメモリ５５８内のソースレコードの位置への他のインジケータを含むこともできる。ｄＢサービスパラメータの情報は、コンテンツレコード５２６への転送前にターゲットデータが構文解析され得る、変形され得る、変換され得る、及び／又は妥当性検査され得るテンプレート又はスキーマへの参照を更に含むことができる。
【０１８５】
[0193]このテンプレート又はスキーマは、例えば、要素のＸＭＬシーケンスを定義することができる。こうした要素の一例は、以下の通りである。
＜ｒｏｗｓｅｔ＞
＜ｒｏｗ＞
＜Ｃｏｌｕｍｎ１Ｎａｍｅ＞＜／Ｃｏｌｕｍｎ１Ｎａｍｅ＞
＜Ｃｏｌｕｍｎ２Ｎａｍｅ＞＜／Ｃｏｌｕｍｎ２Ｎａｍｅ＞
...
＜ＣｏｌｕｍｎＮＮａｍｅ＞＜／ＣｏｌｕｍｎＮＮａｍｅ＞
＜／ｒｏｗ＞
＜／ｒｏｗｓｅｔ＞
【０１８６】
[0202]＜ｒｏｗ＞対は、＜ｃｏｌｕｍｎ１−ｃｏｌｕｍｎｎ＞対を囲み、例えば、ソース−データベースレコードに格納されているソースデータの行、又はサービスデータベースサーバ５０８に格納されているターゲットデータの行に対応することができる。＜ｃｏｌｕｍｎ１−ｃｏｌｕｍｎｎ＞対は、プレースホルダーのそれぞれの数字を囲む。これらのプレースホルダーは、ソースデータの行のそれぞれの列に対応するコンテンツで構文解析することができる。
【０１８７】
[0203]上記の例は＜ｒｏｗ＞対を１つだけ含むが、ＸＭＬシーケンスは、複数の＜ｒｏｗ＞対を含んでいてもよい。これらの追加の＜ｒｏｗ＞対は、１つ又は複数の追加の＜ｒｏｗ＞対を囲むことができる。更に、上記の例は、複数の列の対、すなわち、＜ｃｏｌｕｍｎ１−ｃｏｌｕｍｎｎ＞を含む。しかし、ＸＭＬシーケンスは、列対を１つだけ含むことができる。
【０１８８】
[0204]データ要求エントリは、サービスデータベースサーバ５０８のメモリ５５８内のターゲットレコードからターゲットデータを取得するように、データベースソフトウェア５７６に、サービスデータベースサーバ５０８のメモリ５５８内のソースレコードに対する実行のための照会を生成させるための情報を含むことができる。宛先位置エントリは、可変レコード５２６にターゲットデータを格納するための情報を含むことができる。この情報は、名前、アドレス、参照、ポインタ、ＵＲＩ、又はコンテンツレコード５２６の位置への他のインジケータを含むことができる。
【０１８９】
[0205]宛先位置エントリは、本明細書に、ｄＢ取得タスクパラメータに含まれているものとして記載されているが、このエントリ（及びそれに含まれるパラメータ）は、ｄＢ取得タスクパラメータの代わりに、ｄＢサービスパラメータとしてｄＢサービス定義に含まれていてもよい。こうした場合、ｄＢ取得タスクパラメータは、任意選択で、こうしたｄＢサービスパラメータをオーバーライドする、変更する、調整する、又はそうでなければ変更するためのパラメータを含むことができる。別の代替として、ｄＢサービス定義及び関連のｄＢサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード５２２の代わりにｄＢ取得タスクパラメータに含まれていてもよい。
【０１９０】
[0206]データベース送信タスク例
【０１９１】
[0207]ｄＢ送信タスクは、ｄＢ送信ウィジェット１３２１１によって表され、サービスデータベースサーバ５０８上でデータ又はスキーマを挿入し、更新し、削除し、取り出し、又はそうでなければ変更するように、ホストアプリケーションサーバ３２４に、サービスデータベースサーバ５０８による１つ又は複数の操作を実行させることができる。例えば、ｄＢ送信タスクは、ホストアプリケーションサーバ３２４に、コンテンツレコード５２６から取得されたソースデータを、データベースソフトウェア５７６を介してサービスデータベースサーバ５０８に転送させることができる。あるいは、ｄＢ送信タスクは、データベースソフトウェア５７６に、（ｉ）ソースデータを取得するために、コンテンツレコード５２６に対する照会を実行させ、（ｉｉ）サービスデータベースサーバ５０８にソースデータを転送させることができる。
【０１９２】
[0208]ｄＢ送信タスクパラメータの例には、ｄＢ送信サービス定義エントリ及びデータベース操作エントリなどがある。ｄＢ送信サービス定義及びデータベース操作エントリのそれぞれは、文字、文字列、数式、テンプレート、及び／又は変数として表すことができる。
【０１９３】
[0209]ｄＢサービス定義送信エントリは、ｄＢ送信タスクの実行のために以前構成されたｄＢサービス定義への参照を含むことができる。この情報は、例えば、データベースソフトウェア５７６及び／又はサービスデータベースサーバ５０８に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、サービスデータベースサーバ５０８とインターフェイスをとるための少なくとも１つのＤＢＭＳを指定するための１つ又は複数の設定、コンテンツレコード５２６に対して照会を行うための少なくとも１つのＤＢＭＳを指定するための１つ又は複数の設定などを含むことができる。
【０１９４】
[0210]ｄＢサービスパラメータの情報は、名前、アドレス、参照、ポインタ、ＵＲＩ、又はソースデータを格納するためのサービスデータベースサーバ５０８のメモリ５５８のターゲットレコードの位置への他のインジケータを含むこともできる。ｄＢサービスパラメータの情報は、サービスデータベースサーバ５０８のメモリ５５８のターゲットレコードへの転送前にソースデータが構文解析され得るテンプレート又はスキーマ（例えば、ＸＭＬシーケンス）への参照を含むこともできる。
【０１９５】
[0211]データベース操作エントリは、サービスデータベースサーバ５０８のデータ及び／又はスキーマを挿入する、更新する、削除する、取り出す、又はその他の形で変更する情報（例えば、データベースソフトウェア５７６によって実行するための照会をデータベースソフトウェア５７６に生成させるための情報を含むことができる。あるいは、データベース操作エントリは、名前、アドレス、参照、ポインタ、ＵＲＩ、又はコンテンツレコード５２６内のソースデータの位置への他のインジケータを含むこともできる。
【０１９６】
[0212]サービスデータベースサーバ５０８へのソースデータの提供を容易にするために、ｄＢ送信タスクは、ホストアプリケーションサーバ３２４に、置換タイプのセマンティクスなどのセマンティクスに従って、ソースデータを構文解析させることができる。例えば、ｄＢ送信タスクは、ホストアプリケーションサーバ３２４に、こうした＜ｒｏｗ＞要素に対応するソースデータでサービスデータベースサーバ５０８のメモリ５５８内のターゲットデータの＜ｒｏｗ＞要素を更新させることができる。一方、サービスデータベースサーバ５０８のメモリ５５８内のターゲットデータがこうした＜ｒｏｗ＞要素を含まないとき、ｄＢ送信タスクは、ホストアプリケーションサーバ３２４に、こうしたソースデータの＜ｒｏｗ＞要素を挿入させることができる。
【０１９７】
[0213]代替として、ｄＢサービス定義及び関連のｄＢサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード５２２の代わりにｄＢ送信タスクパラメータに含まれていてもよい。
【０１９８】
[0214]ＨＴＴＰリッスンタスク例
【０１９９】
[0215]ｈｔｔｐリッスンタスクは、ｈｔｔｐリッスンウィジェット１３２１２によって表され、ホストＨＴＴＰサーバ５６４に、（ｉ）第２のエンドポイントデバイス５０６のＷｅｂブラウザなど、サービスデバイスの１つ又は複数のアプリケーションからの所与のサービスＨＴＴＰ要求をリッスンさせ、（ｉｉ）ホストＨＴＴＰサーバ５６４と、所与のサービスＨＴＴＰ要求に対応する第２のエンドポイントデバイス５０６のアプリケーションとの間の通信を確立させ、（ｉｉｉ）ホストアプリケーションサーバ３２４に、実行のために照会が行われたタスクの１つ又は複数の組（「照会されたタスクセット」）から選択された所与の組のタスク（「所与のタスクセット」）を実行させることができる。
【０２００】
[0216]ｈｔｔｐリッスンタスクは、ホストアプリケーションサーバ３２４に、所与のサービスＨＴＴＰ要求、及び／又はホストＨＴＴＰサーバ５６４と第２のエンドポイントデバイス５０６のアプリケーションとの間の通信から情報（まとめて「ＨＴＴＰ接続詳細」）を抽出させることもできる。ｈｔｔｐリッスンタスクは、照会されたタスクセットから所与のタスクセットを選択し、所与のタスクセットを実行するために、ＨＴＴＰ接続詳細を使用することができる。
【０２０１】
[0217]ｈｔｔｐリッスンタスクパラメータの例には、ｈｔｔｐリッスンサービス定義エントリ及び宛先位置エントリなどがある。ｈｔｔｐリッスンサービス定義エントリ及び宛先位置エントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０２０２】
[0218]ｈｔｔｐリッスンサービス定義エントリは、ｈｔｔｐリッスンタスクの実行に使用され得るサービスを識別する以前構成されたサービス定義（「ＨＴＴＰサービス定義」）への参照を含むことができる。このＨＴＴＰサービス定義は、メモリ３３８のサービス定義レコード５２２に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ（「ＨＴＴＰサービスパラメータ」）は、要求をリッスンするために、ホストＨＴＴＰサーバ５６４のインターネットプロトコル（「ＩＰ」）アドレス及びポートを示す情報を含むことができる。この情報は、例えば、サービスＨＴＴＰサーバ５１４のドメインに関連付けられているＵＲＩを含むことができる。このＵＲＩは、全部でも一部分でもよい。ＵＲＩの前に、ドメイン名サーバ（「ＤＮＳ」）によって割り当てられたサービスＨＴＴＰサーバ５１４のＩＰ及び／又は名前を配置することができる。ｈｔｔｐサービス定義の情報は、（ｉ）サービスＨＴＴＰサーバ５１４に関連付けられている１つ又は複数のＩＰアドレス、及び（ｉｉ）ｈｔｔｐリッスンタスクがリッスンするアプリケーション及び／又はサービスデバイスを示すための情報を含むこともできる。
【０２０３】
[0219]宛先位置エントリは、コンテンツレコード５２６にＨＴＴＰ接続詳細を格納するための情報を含むことができる。この情報は、例えば、名前、アドレス、参照、ポインタ、ＵＲＩ、又はコンテンツレコード５２６の位置への他のインジケータを含むことができる。
【０２０４】
[0220]ＨＴＴＰ送信タスク例
【０２０５】
[0221]ｈｔｔｐ送信タスクは、ｈｔｔｐ送信ウィジェット１３２１３によって表され、ホストアプリケーションサーバ３２４に、（ｉ）サービスＨＴＴＰサーバ５１４に所与のＨＴＴＰ要求を送信させ、（ｉｉ）ホストＨＴＴＰサーバ５６４とサービスＨＴＴＰサーバ５１４との間の通信を確立させ、（ｉｉｉ）サービスＨＴＴＰサーバ５１４からＨＴＴＰ応答を受信させ、（ｉｖ）コンテンツレコード５２６にＨＴＴＰ応答に関連付けられているコンテンツを格納させることができる。ｈｔｔｐ送信タスクパラメータの例には、ｈｔｔｐ送信サービス定義エントリ及びｈｔｔｐ送信操作エントリなどがある。ｈｔｔｐ送信サービス定義及びｈｔｔｐ送信操作エントリのそれぞれは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０２０６】
[0222]ｈｔｔｐ送信サービス定義エントリは、以前構成されたＨＴＴＰサービス定義への参照を含むことができる。このＨＴＴＰサービス定義は、メモリ３３８のサービス定義レコード５２２に格納され得るいくつかのＨＴＴＰサービスパラメータを含むことができる。代替として、ＨＴＴＰサービス定義及び関連のパラメータ（「ＨＴＴＰサービスパラメータ」）における、又はそれに似た情報は、サービス定義レコード５２２の代わりにｈｔｔｐ送信タスクパラメータに含まれていてもよい。ＨＴＴＰサービスパラメータは、所与のホストＨＴＴＰ要求を受信するように構成されたサービスＨＴＴＰサーバ５１４のＩＰアドレス及び／又はポートを示す情報を含むことができる。
【０２０７】
[0223]ｈｔｔｐ送信操作エントリは、（ｉ）ＤＮＳによって割り当てられるサービスＨＴＴＰサーバ５１４のＩＰ及び／又は名前が前に配置され得るサービスＨＴＴＰサーバ５１４のドメインに関連付けられているＵＲＬ（全部又は一部）、（ｉｉ）例えばＨＴＴＰ  ＧＥＴ、ＰＯＳＴ、及び／又はＰＵＴなど、転送の方法をサービスＨＴＴＰサーバ５１４に示すための情報、（ｉｉｉ）所与のＨＴＴＰ要求を生成するためにコンテンツレコード５２６からソースデータ（例えば、変数、数式、及び／又はテンプレート）を取り出し、及び／又は取得するための情報、（ｉｖ）その後の取り出しのために、関連付けられているコンテンツをメッセージチャネルに通信に格納するための情報、及び（ｖ）ＨＴＴＰ応答に関連付けられているコンテンツをコンテンツレコード５２６に格納するための情報を含むことができる。
【０２０８】
[0224]ｈｔｔｐ送信操作エントリは、本明細書に、ＨＴＴＰ送信タスクパラメータに含まれているものとして記載されているが、このエントリ（及びそれに含まれるパラメータ）は、ＨＴＴＰ送信タスクパラメータの代わりに、ＨＴＴＰサービスパラメータとしてＨＴＴＰサービス定義に含まれていてもよい。こうした場合、ＨＴＴＰ送信タスクパラメータは、任意選択で、こうしたＨＴＴＰサービスパラメータをオーバーライドする、変更する、調整する、又はそうでなければ変更するためのパラメータを含むことができる。別の代替として、ＨＴＴＰサービス定義及び関連のＨＴＴＰサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード５２２の代わりにＨＴＴＰ送信タスクパラメータに含まれていてもよい。
【０２０９】
[0225]ＨＴＴＰ応答タスク例
【０２１０】
[0226]ｈｔｔｐ応答タスクは、ｈｔｔｐ応答ウィジェット１３２１４によって表され、ホストＨＴＴＰサーバ５６４に、第２のエンドポイントデバイス５０６のＷｅｂブラウザなど、サービスデバイスの１つ又は複数のアプリケーションから発行された所与のサービスＨＴＴＰ要求に対する所与のホストＨＴＴＰ応答を発行させることができる。これは、ホストＨＴＴＰサーバ５６４に、（ｉ）所与のホストＨＴＴＰ応答に含めるために、コンテンツレコード５２６からコンテンツを取得させ、（ｉｉ）サービスＨＴＴＰサーバ５１４にコンテンツを送信させることを含むことができる。所与のホストＨＴＴＰ応答に含まれるコンテンツは、コンテンツレコード５２６に格納された情報から選択され、あるいは、数式、テンプレートなどに応じて、こうした情報から構築されてもよい。
【０２１１】
[0227]ｈｔｔｐ応答タスクパラメータの例には、ｈｔｔｐ接続定義エントリ及びソースファイルエントリなどがある。ｈｔｔｐ接続定義及びソースファイルエントリのそれぞれは、文字、文字列、数式、テンプレート、及び／又は変数として表すことができる。
【０２１２】
[0228]ｈｔｔｐ接続定義エントリは、メモリ３３８におけるコンテンツレコード５２６に格納されたＨＴＴＰ接続詳細への参照を含むことができる。ＨＴＴＰ接続詳細は、上述したように、所与のホストＨＴＴＰ応答を受信するために第２のエンドポイントデバイス５０６のＷｅｂブラウザのＩＰアドレス及びポートを示すための情報を含むことができる。
【０２１３】
[0229]ソースファイルエントリは、コンテンツレコード５２６からコンテンツを取得するための情報を含むことができる。この情報は、コンテンツレコード５２６におけるコンテンツに割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード５２６内のコンテンツの位置への参照、ポインタ、ＵＲＩ、又は他のインジケータを含むことができる。
【０２１４】
[0230]メッセージ照会取得タスク例
【０２１５】
[0231]ＭＱ取得タスクは、ＭＱ取得ウィジェット１３２１５によって表され、ホストアプリケーションサーバ３２４に、リモートメッセージ照会５１２からメッセージ（「ターゲットメッセージ」）を取り出させ、メッセージングソフトウェア５７０を介してコンテンツレコード５２６に転送させることができる。ＭＱ取得タスクパラメータの例には、ＭＱ取得サービス定義エントリ、ターゲットメッセージエントリ、及び宛先位置エントリなどがある。ＭＱ取得サービス定義、メッセージ取得、及び宛先位置取得エントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０２１６】
[0232]ＭＱ取得サービス定義エントリは、ＭＱ取得タスクの実行に使用され得るメッセージ照会サービスを識別する以前構成されたサービス定義への参照を含むことができる。このサービス定義（「ＭＱサービス定義」）は、メモリ３３８のサービス定義レコード５２２に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ（「ＭＱサービスパラメータ」）は、ＭＱ取得タスクを実行するようにメッセージングソフトウェア５７０、及び／又はリモートメッセージストア５１２を構成するための情報を含むことができる。この情報は、例えば、リモートメッセージストア５１２のドメインに関連付けられているＵＲＩ、及び／又はリモートメッセージストア５１２に関連付けられている１つ又は複数のＩＰアドレスを含むことができる。
【０２１７】
[0233]ターゲットメッセージエントリは、リモートメッセージストア５１２における他のメッセージからターゲットメッセージを区別するための情報を含むことができる。この情報は、例えば、ターゲットメッセージについて、リモートメッセージストア５１２を検索し、監視するための用語を含むことができる。
【０２１８】
[0234]宛先位置エントリは、コンテンツレコード５２６にターゲットメッセージを格納するための情報を含むことができる。この情報は、例えば、名前、アドレス、参照、ポインタ、ＵＲＩ、又はコンテンツレコード５２６の位置への他のインジケータを含むことができる。
【０２１９】
[0235]宛先位置エントリは、本明細書に、ＭＱ取得タスクパラメータに含まれているものとして記載されているが、このエントリ（及びそれに含まれるパラメータ）は、ｄＢ取得タスクパラメータの代わりに、ＭＱサービスパラメータとしてＭＱサービス定義に含まれていてもよい。こうした場合、ＭＱ取得タスクパラメータは、任意選択で、こうしたＭＱサービスパラメータをオーバーライドする、変更する、調整する、又はそうでなければ変更するためのパラメータを含むことができる。
【０２２０】
[0236]別の代替として、ＭＱサービス定義及び関連のＭＱサービスパラメータにおける、又はそれに似た情報は、サービス定義レコード５２２の代わりにＭＱ取得タスクパラメータに含まれていてもよい。
【０２２１】
[0237]メッセージ照会送信タスク例
【０２２２】
[0238]ＭＱ送信タスクは、ＭＱ送信ウィジェット１３２１６によって表され、ホストアプリケーションサーバ３２４に、コンテンツレコード５２６からコンテンツを取得させ、コンテンツレコード５２６から取得されたコンテンツでソースメッセージのうちの１つ又は複数を埋めさせ、メッセージングソフトウェア５７０を介して、リモートメッセージ照会５１２にソースメッセージを転送させることができる。コンテンツレコード５２６から取得されたコンテンツは、コンテンツレコード５２６に格納された情報から選択され、あるいは、数式、テンプレートなどに応じて、こうした情報から構築されてもよい。
【０２２３】
[0239]ＭＱ送信タスクパラメータの例には、ＭＱ送信サービス定義エントリ及びメッセージエントリなどがある。ＭＱ送信サービス定義エントリ及びメッセージエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０２２４】
[0240]ＭＱサービス定義送信エントリは、ＭＱ送信タスクの実行に使用され得る以前構成されたＭＱサービス定義への参照を含むことができる。このＭＱサービス定義は、メモリ３３８のサービス定義レコード５２２に格納され得るいくつかのＭＱサービスパラメータを含むことができる。これらのＭＱサービスパラメータは、ＭＱ送信タスクを実行するようにメッセージングソフトウェア５７０、及び／又はリモートメッセージ照会５１２を構成するための情報を含むことができる。この情報は、例えば、リモートメッセージ照会５１２のドメインに関連付けられているＵＲＩ、あるいは、リモートメッセージ照会５１２に関連付けられている１つ又は複数のＩＰアドレスを含むことができる。
【０２２５】
[0241]ＭＱサービスパラメータは、コンテンツレコード５２６からコンテンツを取得するための情報を含むこともできる。この情報は、コンテンツレコード５２６に格納された情報に割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード５２６内のこうした情報の位置への参照、ポインタ、ＵＲＩ、又は他のインジケータを含むことができる。更に、ＭＱサービスパラメータは、コンテンツレコード５２６に格納される情報からコンテンツを構築するための用語及び／又は命令を含むことができる。
【０２２６】
[0242]メッセージエントリは、（ｉ）メッセージの件名で埋められ得る第１のフィールド、及び（ｉｉ）メッセージの本文で埋められ得る第２のフィールドを含むことができる。メッセージエントリは、他のフィールドを含むこともできる。
【０２２７】
[0243]ＭＱサービス定義及び関連のＭＱサービスパラメータは、本明細書に、サービス定義レコード５２２に含まれているものとして記載されているが、その中に含まれるＭＱサービス定義及びパラメータは、省かれてもよい。省かれる場合、ＭＱ送信タスクパラメータは、ＭＱサービスを構成するための情報を含むことができる。
【０２２８】
[0244]Ｗｅｂサービスタスク例
【０２２９】
[0245]Ｗｅｂサービスタスクは、Ｗｅｂサービスウィジェット１３２１７によって表され、ホストアプリケーションサーバ３２４に、（ｉ）可変レコード５２６からコンテンツを取得させ、（ｉｉ）リモートＷｅｂサーバ５１６上でのＷｅｂサーバの実行をトリガするために、コンテンツを転送させることができる。Ｗｅｂサービスタスクは、ホストアプリケーションサーバ３２４に、コンテンツレコード５２６のうちの１つに、Ｗｅｂサービスから戻された任意の結果を格納させることもできる。コンテンツレコード５２６から取得されたコンテンツは、コンテンツレコード５２６に格納された情報から選択され、あるいは、数式、テンプレートなどに応じて、こうした情報から構築されてもよい。
【０２３０】
[0246]Ｗｅｂサービスタスクパラメータの例には、Ｗｅｂサービス定義エントリ及びコンテンツエントリなどがある。Ｗｅｂサービス定義エントリ及びコンテンツエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０２３１】
[0247]Ｗｅｂサービス定義エントリは、Ｗｅｂサービスタスクを実行するためのサービスを識別する以前構成されたサービス定義への参照を含むことができる。このサービス定義（「Ｗｅｂサービス定義」）は、メモリ３３８のサービス定義レコード５２２に格納され得るいくつかのパラメータを含むことができる。これらのパラメータ（「Ｗｅｂサービスパラメータ」）は、Ｗｅｂサービスタスクを実行するようにホストアプリケーションサーバ３２４、及び／又はリモートＷｅｂサーバ５１６を構成するための情報を含むことができる。構成情報は、例えば、ＩＰアドレス、パラメータ、データのタイプ、キー値対、画像の投稿など、ホストアプリケーションサーバ３２４とＷｅｂサーバ５１６など他のデバイスとの間の入力情報の転送を実行するための情報を含むことができる。
【０２３２】
[0248]Ｗｅｂサービスパラメータは、リモートＷｅｂサーバ５１６によって提供されるＷｅｂサービスの組からＷｅｂサービスを選択するための情報、及び／又はＷｅｂサービスの実行の方法を示すための情報を含むこともできる。Ｗｅｂサービスパラメータは、もしあれば、コンテンツレコード５２６に結果を格納するための情報を更に含むことができる。こうした情報は、名前、アドレス、参照、ポインタ、ＵＲＩ、又はコンテンツレコード５２６の位置への他のインジケータを含むことができる。
【０２３３】
[0249]コンテンツエントリは、コンテンツレコード５２６からコンテンツを取得するための情報を含むことができる。この情報は、コンテンツレコード５２６におけるコンテンツに割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード５２６内のコンテンツの位置への参照、ポインタ、ＵＲＩ、又は他のインジケータを含むことができる。
【０２３４】
[0250]Ｗｅｂサービス定義及び関連のＷｅｂサービスパラメータは、本明細書に、サービス定義レコード５２２に含まれているものとして記載されているが、その中に含まれるＷｅｂサービス定義及びパラメータは、省かれてもよい。省かれる場合、Ｗｅｂサービスタスクパラメータは、Ｗｅｂサービスを構成するための情報を含むことができる。
【０２３５】
[0251]変形タスク例
【０２３６】
[0252]変形タスクは、変形ウィジェット１３２１８によって表され、ホストアプリケーションサーバ３２４に、（ｉ）コンテンツレコード５２６からコンテンツを取得させ、（ｉｉ）結果をもたらすように、コンテンツに対する変形を適用させ、（ｉｉｉ）コンテンツレコード５２６に結果を転送させることができる。変形タスクパラメータの例には、変形エントリ、コンテンツエントリ、及び宛先位置エントリなどがある。変形、コンテンツ、宛先位置のエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０２３７】
[0253]変形エントリは、コンテンツを変形する（例えば、コンテンツの構造を再配列し、及び／又は変更する）ための変形をコンテンツレコード５２６から取り出す、又はそうでなければ取得するための情報を含むことができる。この情報は、変形への参照を含むことができる。参照は、コンテンツレコード５２６に格納されたいくつかの変形のうちの１つを参照することができる。コンテンツエントリは、コンテンツレコード５２６からコンテンツを取得するための情報を含むことができる。この情報は、コンテンツレコード５２６におけるコンテンツに割り当てられた、又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード５２６内のコンテンツの位置への参照、ポインタ、ＵＲＩ、又は他のインジケータを含むことができる。
【０２３８】
[0254]宛先位置エントリは、コンテンツレコード５２６に結果を格納するための情報を含むことができる。こうした情報は、名前、アドレス、参照、ポインタ、ＵＲＩ、又はコンテンツレコード５２６の位置への他のインジケータを含むことができる。
【０２３９】
[0255]変換タスク例
【０２４０】
[0256]変換タスクは、変形ウィジェット１３２１９によって表され、ホストアプリケーションサーバ３２４に、（ｉ）コンテンツレコード５２６からコンテンツを取得させ、（ｉｉ）テンプレートレコード５２０から変換テンプレートを選択させ（「選択済み変換テンプレート」）、（ｉｉｉ）こうしたコンテンツを変換するために、コンテンツに選択済み変換テンプレートを適用させ、（ｉｖ）コンテンツレコード５２６にそれからの結果を格納させることができる。変換タスクパラメータの例には、変換テンプレートエントリ、コンテンツエントリ、及び宛先位置エントリなどがある。変換テンプレート、コンテンツ、宛先位置のエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０２４１】
[0257]変換テンプレートエントリは、選択済み変換テンプレートへの参照を含むことができる。この参照は、テンプレートレコード５２０に格納された変換テンプレートのうちの任意の１つを参照することができる。コンテンツエントリは、コンテンツレコード５２６からコンテンツを取得するための情報を含むことができる。この情報は、コンテンツレコード５２６におけるコンテンツに割り当てられた、又はそうでなければ関連付けられた名前及び／又はアドレスを含むことができる。あるいは、情報は、参照、ポインタ、ＵＲＩ、又はコンテンツレコード５２６内のコンテンツの位置への他のインジケータを含むことができる。
【０２４２】
[0258]宛先位置エントリは、コンテンツレコード５２６に結果を格納するための情報を含むことができる。こうした情報は、名前、アドレス、参照、ポインタ、ＵＲＩ、又はコンテンツレコード５２６の位置への他のインジケータを含むことができる。
【０２４３】
[0259]セマンティックプロトコルタスク例
【０２４４】
[0260]セマンティックプロトコルタスクは、セマンティックプロトコルウィジェット１３２２０によって表され、１つの入力及び少なくとも２つの出力を含み、出力のそれぞれは、ワークフローの異なる分岐に接続することができる。動作中、セマンティックプロトコルタスクは、ホストアプリケーションサーバ３２４に、所与のスキーマテンプレートに一致する、又はそうでなければ適合するコンテンツ（「入力コンテンツ」）を受信する、又はそうでなければ取得することに対応するワークフローの分岐のうちの１つ又は複数を実行させることができる。
【０２４５】
[0261]これを容易にするために、セマンティックプロトコルタスクは、ホストアプリケーションサーバ３２４に、（ｉ）テンプレートレコード５２０からスキーマテンプレートを選択させ（「選択済みスキーマテンプレート」）、（ｉｉ）入力コンテンツがこうしたスキーマに一致し、又はそうでなければ適合するかどうかを決定するために、入力コンテンツを、選択されたスキーマテンプレートのスキーマの一部又はすべてと比較させ、（ｉｉｉ）入力コンテンツとスキーマとの間の一致の決定に合うセマンティックプロトコルタスクの出力を有効にさせ、又はそうでなければアクティブにさせることができる。
【０２４６】
[0262]セマンティックプロトコルタスクパラメータは、選択された妥当性検査テンプレートへの参照を含むことができる。この参照は、名前、アドレス、参照、ポインタ、ＵＲＩ、又はテンプレートレコード５２０における妥当性検査テンプレートの位置への他のインジケータを含むことができる。
【０２４７】
[0263]削除タスク例
【０２４８】
[0264]削除タスクは、削除ウィジェット１３２２１によって表され、ホストアプリケーションサーバ３２４に、メモリ３２８に格納された１つ又は複数のレコード及び／又はファイルを削除させ、又は削除するようにマークさせることができる。削除タスクパラメータは、削除されるべき、又は削除するようにマークされるべきレコード又はファイルへの参照を含むことができる。この参照は、レコード及び／又はファイルの名前及び／又はアドレス、及び／又はメモリにおけるレコード及び／又はファイルの位置へのポインタ、ＵＲＩ、又は他のインジケータを含むことができる。参照は、文字、文字列、数式、変数、及び／又は類似のものとして表すことができる。
【０２４９】
[0265]妥当性検査タスク例
【０２５０】
[0266]妥当性検査タスクは、妥当性検査ウィジェット１３２２２によって表され、ホストアプリケーションサーバ３２４に、コンテンツレコード５２６から取得されたレコード（「評価レコード」）の構造（「例えば、論理的構造」）が妥当性検査タスクで指定された妥当性検査テンプレートに適合することを検証させることができる。あるいは、及び／又は更に、妥当性検査タスクは、ホストアプリケーションサーバ３２４に、評価レコード内のコンテンツが妥当性検査タスクパラメータで指定された１組のルールに適合することを妥当性検査させることができる。妥当性検査タスクは、ホストアプリケーションサーバ３２４に、妥当性検査の結果に応じて、タスクのうちの１つ又は複数を実行させることもできる。例えば、ホストアプリケーションサーバ３２４は、妥当性検査の結果が妥当性検査の成功を示す場合、タスクのうちの１つ又は複数を実行することができる。しかし、妥当性検査の結果が妥当性検査の失敗を示す場合、ホストアプリケーションサーバ３２４は、こうした妥当性検査の失敗を示すエラーメッセージを発行することができる。
【０２５１】
[0267]妥当性検査タスクパラメータの例には、妥当性検査エントリ、コンテンツエントリ、及び宛先位置エントリなどがある。妥当性検査、コンテンツ、宛先位置のエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０２５２】
[0268]妥当性検査エントリは、テンプレートレコード５２０から妥当性検査テンプレート及び／又は妥当性検査ルールを取り出し、又はそうでなければ取得するための情報を含むことができる。これは、例えば、妥当性検査テンプレート及び／又は妥当性検査ルールに関連付けられている名前、及び／又はアドレスを含むことができる。あるいは、情報は、テンプレートレコード５２０内の妥当性検査テンプレート及び／又は妥当性検査ルールの位置への参照、ポインタ、ＵＲＩ、又は他のインジケータを含むことができる。妥当性検査エントリは、妥当性検査の結果（例えば、成功又は失敗）に対応する実行のためのタスクの１つ又は複数を指定するための情報を含むこともできる。
【０２５３】
[0269]コンテンツエントリは、コンテンツレコード５２６からそこにおける評価レコード及びコンテンツを取り出す、又はそうでなければ取得するための情報を含むことができる。この情報は、コンテンツレコード５２６における評価レコードに割り当てられた、又はそうでなければ関連付けられた名前／又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード５２６内の評価レコードの位置への参照、ポインタ、ＵＲＩ、又は他のインジケータを含むことができる。
【０２５４】
[0270]宛先位置エントリは、妥当性検査タスクを実行することに応答して生成される結果を格納するための情報を含むことができる。この情報は、名前、アドレス、及び／又は参照、ポインタ、ＵＲＩ、又はコンテンツレコード５２６における位置への他のインジケータを含むことができる。
【０２５５】
[0271]ＴＣＰリッスン、ＴＣＰ取得、及びＴＣＰ送信タスク例
【０２５６】
[0272]ｔｃｐリッスン、ｔｃｐ取得、及びｔｃｐ送信タスクは、ｔｃｐリッスン、ｔｃｐ取得、及びｔｃｐ送信ウィジェット１３２２３〜１３２２５によって表され、ＴＣＰ通信プロトコルとＨＴＴＰ通信プロトコルとの間の違いを行うための詳細のアプリケーション（例えば、ＴＣＰは一般にＵＲＬパラメータを有していない）を除いて、上述したｈｔｔｐリッスン、ｈｔｔｐ応答、及びｈｔｔｐ送信タスクに似ている。こうした詳細は知られており、説明を簡潔にするために、ここでは含まれない。
【０２５７】
[0273]待機タスク例
【０２５８】
[0274]待機タスクは、待機ウィジェット１３２２６によって表され、ホストアプリケーションサーバ３２４に、ワークフロー、及び／又はワークフロー分岐のうちの１つ又は複数の実行を所与の時間の間一時停止させる。待機タスクパラメータは、実行を一時停止するための時間を指定するためのエントリを含む。このパラメータは、文字、文字列、変数、数式、及び／又は類似のものとして表すことができる。
【０２５９】
[0275]電子メール取得タスク例
【０２６０】
[0276]電子メール取得タスクは、電子メール取得ウィジェット１３２２７によって表され、ホストアプリケーションサーバ３２４に、ホスト電子メールエンジンを介してサービス電子メールサーバ５１８から電子メールメッセージ（添付ファイル有り又は無し）を取り出させ、又はそうでなければ取得させ、電子メールメッセージをその後取り出すために電子メールレコードに転送させることができる。電子メール送信タスクパラメータの例には、電子メール取得サービス定義エントリなどがある。電子メール取得サービス定義エントリは、文字、文字列、及び／又は変数として表すことができる。
【０２６１】
[0277]電子メール取得サービス定義エントリは、電子メール取得タスクを実行するための電子メールサービスを識別する以前構成されたサービス定義への参照を含むことができる。このサービス定義（「電子メール取得サービス定義」）は、メモリ３３８のサービス定義レコード５２２に格納され得るいくつかのパラメータを含むことができる。代替として、電子メール取得サービス定義及び関連のパラメータ（「電子メール取得サービスパラメータ」）における、又はそれに似た情報は、サービス定義レコード５２２の代わりに電子メール取得タスクパラメータに含まれていてもよい。
【０２６２】
[0278]電子メール取得サービスパラメータは、サービス電子メールサーバ５１８を識別する設定を含むことができる。この設定は、例えば、サービス電子メールサーバ５１７のドメイン、及び／又はサービスのタイプ、例えば、ＰＯＰ、ＩＭＡＰ、及び他の電子メールサービスタイプとすることもできる。電子メール取得サービスパラメータは、コンテンツレコード５２６に電子メールメッセージ及び／又は電子メール添付ファイルを格納するための情報を含むこともできる。この情報は、名前、アドレス、及び／又は参照、ポインタ、ＵＲＩ、又はコンテンツレコード５２６における位置への他のインジケータを含むことができる。
【０２６３】
[0279]電子メールサービス定義及び関連の電子メールサービスパラメータは、本明細書に、サービス定義レコード５２２に含まれているものとして記載されているが、その中に含まれる電子メールサービス定義及びパラメータは、省かれてもよい。省かれる場合、電子メール取得タスクパラメータは、電子メールサービスを構成するための情報を含むことができる。
【０２６４】
[0280]コピータスク例
【０２６５】
[0281]コピータスクは、コピーウィジェット１３２２８によって表され、ホストアプリケーションサーバ３２４に、結果を生成するための数式を評価させ、コンテンツレコード５２６における結果レコードのうちの１つ又は複数に結果を転送させることができる。コピータスクは、ホストアプリケーションサーバ３２４に、結果レコード及び／又はそうでなければコンテンツレコード５２６における結果レコードのうちの任意のものを作成させることもできる。
【０２６６】
[0282]コピータスクパラメータの例には、数式エントリ及び位置宛先エントリなどがある。数式定義は、数式（例えば、公式）を含むことができる。
【０２６７】
[0283]位置宛先エントリは、結果レコードのうちの１つ又は複数に結果を格納するための情報を含むことができる。この情報は、結果レコードに割り当てられた又はそうでなければ関連付けられた名前又はアドレスを含むことができる。あるいは、位置宛先エントリの情報は、コンテンツレコード５２６内の位置への参照、ポインタ、ＵＲＩ、又は他のインジケータを含むことができる。
【０２６８】
[0284]反復タスク例
【０２６９】
[0285]反復タスクは、コピーウィジェット１３２２９によって表され、ホストアプリケーションサーバ３２４に、コンテンツレコード５２６から取得されたコンテンツの組を使用して、指定された回数タスクのうちの１つを反復させる（「反復タスク」）ことができる。あるいは、反復タスクは、ホストアプリケーションサーバ３２４に、コンテンツレコード５２６から取得された１組のコンテンツにわたって反復タスクを反復させることができる。一例として、反復タスクは、電子メールを作成し、コンテンツレコード５２６から取得されたコンテンツの組内に含まれる複数の受信者の電子メールアドレスに送信するように（例えば、メーリングリスト）、ホストアプリケーションサーバ３２４に、電子メール送信タスクを反復させることができる。この反復は、指定された回数、又はコンテンツレコード５２６から取得されたコンテンツの組にコンテンツが残っている限り実行することができる。
【０２７０】
[0286]反復タスクパラメータの例には、収集エントリ及び反復フラグエントリなどがある。収集及び反復フラグのエントリは、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０２７１】
[0287]収集エントリは、コンテンツレコード５２６から反復タスクへの入力のためのコンテンツの組を取り出す、又はそうでなければ取得するための情報を含む。この情報は、コンテンツレコード５２６におけるコンテンツの組に割り当てられた、又はそうでなければ関連付けられた名前及び／又はアドレスを含むことができる。あるいは、情報は、コンテンツレコード５２６内のコンテンツの組の位置への参照、ポインタ、ＵＲＩ、又は他のインジケータを含むことができる。
【０２７２】
[0288]反復フラグエントリは、反復タスクの終了（例えば、未処理のコンテンツがコンテンツの組に残っていない）を示すためのフラグを定義するための情報を含むことができる。
【０２７３】
[0289]ワークフロー開始タスク例
【０２７４】
[0290]ワークフロー開始タスクは、ワークフローウィジェット１３２３０によって表され、ホストアプリケーションサーバ３２４に、（ｉ）記録済みワークフローレコード５２８から記録済みワークフローを選択させ、（ｉｉ）記録済みワークフローの実行をトリガさせることができる。実行をトリガするために、ワークフロー開始タスクは、ホストアプリケーションサーバ３２４に、コンテンツレコード５２６から、記録済みワークフローの実行のための入力情報を取得させることができる。更に、ワークフロー開始タスクは、ホストアプリケーションサーバ３２４に、同期又は非同期モードで、記録済みワークフローを実行させることができる。
【０２７５】
[0291]同期モードでは、ワークフロー開始タスクは、ワークフロー又はワークフロー開始タスクを含むワークフロー分岐における別のタスクを実行する前に、ホストアプリケーションサーバ３２４に、記録済みワークフローを実行させ、終了させることができる。記録済みワークフローの実行後、ワークフロー開始タスクは、ホストアプリケーションサーバ３２４に、記録済みワークフローの実行からの結果をタスクの別のものの入力情報としてコンテンツレコード５２６に格納させることができる。
【０２７６】
[0292]非同期モードでは、ワークフロー開始タスクは、ホストアプリケーションサーバ３２４に、記録済みワークフローを実行させ、記録済みワークフローの終了を待つことなく、ワークフローの、又はワークフロー開始タスクを含むワークフロー分岐における他のタスクの実行を続けさせることができる。ワークフロー開始タスクは、ホストアプリケーションサーバ３２４に、別のタスクの入力情報を取得させないことがある。
【０２７７】
[0293]ワークフロー開始タスクの定義の例には、記録済みワークフロー定義、記録済みワークフロー入力定義、及びワークフロー開始モード、及び情報返却定義などがある。記録済みワークフロー及び情報返却の定義は、文字、文字列、数式、テンプレート、変数、及び／又は類似のものとして表すことができる。
【０２７８】
[0294]記録済みワークフロー定義は、記録済みワークフローレコードから記録済みワークフローを取り出し、又はそうでなければ取得するための情報を含むことができる。この情報は、記録済みワークフローファイル５５６に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、あるいはメモリ３２８上の記録済みワークフローファイル５５６の位置へのポインタを含むことができる。
【０２７９】
[0295]記録済みワークフロー入力定義は、コンテンツレコード５２６から記録済みワークフロー入力のための入力情報を取り出し、又はそうでなければ取得するための情報を含むことができる。この情報は、コンテンツレコード５２６に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、あるいはメモリ３２８上のコンテンツレコード５２６の位置へのポインタを含むことができる。
【０２８０】
[0296]ワークフロー開始モード定義は、同期又は非同期のモードを示すための情報を含むことができる。情報返却定義は、コンテンツレコード５２６から結果を取得するための情報を含むことができる。この情報は、コンテンツレコード５２６に割り当てられた、又はそうでなければ関連付けられた名前又はアドレス、あるいはメモリ３２８上のコンテンツレコード５２６の位置へのポインタを含むことができる。
【０２８１】
[0297]結論
【０２８２】
[0298]上述した装置及び方法の変形は、本発明の範囲から逸脱することなく可能である。例えば、上記の例において、コントローラ及びプロセッサを含む他のデバイスが記載される。これらのデバイスは、少なくとも１つの中央処理装置（「ＣＰＵ」）及びメモリを含むことができる。コンピュータプログラミングの当業者によれば、行為、及び動作又は命令の記号表現の参照は、様々なＣＰＵ及びメモリによって行うことができる。こうした行為、及び動作又は命令は、「実行される」、「コンピュータで実行される」、又は「ＣＰＵで実行される」と呼ぶことができる。
【０２８３】
[0299]当業者は、行為及び記号的に表された動作又は命令がＣＰＵによる電気的信号の操作を含むことを理解されたい。電気システムは、電気的信号の結果として得られた変形又は低減、及びメモリシステムにおけるメモリ位置でのデータビットの維持をもたらし、それによってＣＰＵの動作及び信号の他の処理を再構成し、又はそうでなければ変更するデータビットを表す。データビットが維持されるメモリ位置は、データビットに対応する、又はそれを表す特定の電気、磁気、光、又は有機的特性を有する物理位置である。実施形態例は、上述したプラットフォーム又はＣＰＵに限定されず、他のプラットフォーム及びＣＰＵは、記載の方法をサポートすることができることを理解されたい。
【０２８４】
[0300]データビットは、ＣＰＵによって読み取り可能な、磁気ディスク、光ディスク、及び任意の他の揮発性（例えばランダムアクセスメモリ（「ＲＡＭ」）、又は不揮発性（例えば読み取り専用メモリ（「ＲＯＭ」）の大容量記憶システムを含むコンピュータ可読媒体で維持することもできる。コンピュータ可読媒体には、もっぱら処理システムに存在する、又は処理システムにローカル又はリモートであり得る複数の相互接続された処理システムにわたって分散される協働する又は相互接続されたコンピュータ可読媒体などがある。例は、上述したメモリに限定されず、他のプラットフォーム及びメモリは、記載の方法をサポートすることができることを理解されたい。
【０２８５】
[0301]適用され得る広範の実施形態に照らして、示した例は、例示にすぎず、以下の特許請求の範囲を制限するものとみなされないものとすることを理解されたい。更に、特許請求の範囲は、その影響を特記しない限り、記載された順序又は要素に限定されるとみなされないものとする。更に、任意の請求項における「手段」という用語の使用は、米国特許法第１１２条第６項を実施するものであり、「手段」という単語を含まない任意の請求項は、そのように意図されない。
【図１】
2014194814.tif 000003
【図２】
2014194814.tif 000004
【図３】
2014194814.tif 000005
【図４】
2014194814.tif 000006
【図５】
2014194814.tif 000007
【図６】
2014194814.tif 000008
【外国語明細書】
2014194814000001.pdf