JP2009522645A - ワークフローベースのアプリケーションにおけるユーザ入力および対話のモデル化 - Google Patents

ワークフローベースのアプリケーションにおけるユーザ入力および対話のモデル化 Download PDF

Info

Publication number
JP2009522645A
JP2009522645A JP2008548537A JP2008548537A JP2009522645A JP 2009522645 A JP2009522645 A JP 2009522645A JP 2008548537 A JP2008548537 A JP 2008548537A JP 2008548537 A JP2008548537 A JP 2008548537A JP 2009522645 A JP2009522645 A JP 2009522645A
Authority
JP
Japan
Prior art keywords
workflow
computer
host
pause
implemented method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008548537A
Other languages
English (en)
Inventor
サナブリア アンドレス
ミハイ コンスタンティン
コタリ ニキル
ヒレリオ イスラエル
ハーダー マイケル
イー.メイビー ポール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=38225702&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2009522645(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009522645A publication Critical patent/JP2009522645A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

ワークフロー自身の一部として対話を実装するシステムおよび方法を提供する。対話アクティビティコンポーネントを介して、ワークフローとデータの受け渡しをして、対話ワークフローを形成する。この対話アクティビティコンポーネントは、ワークフロー定義内の一時停止ポイントをモデル化する。ユーザ入力を要求するさまざまな対話の中断の間、ユーザ入力と関連する対話をワークフローに提供することができる。このような構成により、ワークフローとそのワークフローに関連付けられたホストアプリケーションとの間の制御された/同期式データ交換を可能にする。

Description

本発明は、ワークフローベースのアプリケーションにおけるユーザ入力および対話のモデル化に関する。
一般に、ワークフローとは組織における情報および制御の流れのことである。企業は効果的に競争するために、プロセスを定義付け、文書化し、そして効率化することを常に目指している。ビジネス環境においては、これらのプロセスには、販売や注文処理、仕入れ業務、在庫調整や在庫管理、製造や生産管理、出荷や入荷、売掛金勘定などが挙げられる。
最近のコンピュータシステムおよび関連ソフトウェアは、企業や他の組織がワークフローを改善できるツールを提供する。ソフトウェアツールは、ビジネスのワークフローのプロセスやスケジュールをモデル化し、非効率性や改善の可能性を識別するのに使用できる。さらに、あるプロセスが人、部署、工場の間で、または別の会社間でデータ交換を伴う場合に、コンピュータシステムやネットワークを使用してこれらの交換を実施することができる。該システムとソフトウェアツールはさらに、大量の計算、およびビジネス関連情報に典型的に関連付けられた他のデータまたは情報処理を実施することができる。
したがって、ワークフロー管理には、情報フローの効果的な管理と組織のビジネスプロセスにおける制御が含まれる。そのような情報処理を自動化することにより、現代のビジネスの世界における多くの効率改善につながった。さらに、ワークフロー管理を自動化することより、今日、企業や他の組織は、インターネットなどのグローバルなコンピュータネットワークを含むコンピュータシステムのワークフロートランザクションを実行することで、業績をさらに改善することができるようになってきている。
典型的なワークフローベースのアプリケーションは、複数の条件を満たさなければならない。たとえば、1つの条件は、ビジネスルールに基づいた決定を行う能力である。これには、簡単なルール(たとえば、信用調査の結果に基づくイエスまたはノーの決定)と、より複雑なルール(たとえば、引受業務の最初の決定を行うために検討すべき多数の可能性)が含まれる。他の要件は、そのワークフローの外部の他のソフトウェアおよび他のシステムとの通信である。たとえば、アプリケーションの一部から初期要求が受信されるが、いくつかの態様においては(たとえば、クレジットサービスに連絡を取る場合)、他のウェブサービスまたはウェブ技術を使用する通信が必要である場合がある。さらに満たすべき条件は、ユーザとのワークフローの適切な対話(interaction)である。たとえば、典型的にはワークフローは、ユーザインタフェース自身を表示するか、または他のソフトウェアを通して人間と対話できなければならない。さらに、満たすべき他の条件は、ワークフローの有効期間を通して状態を維持する能力である。したがって、ソフトウェアでワークフローを作成し、実行することは、独自の課題を突きつけている。
たとえば、ビジネスプロセスには、完了するまでに数時間、数日、または数週間かかる場合がある。それだけの時間、ワークフローの現在の状態に関する情報を維持することは困難である。さらにそのような長期間にわたる種類のワークフローは、典型的にノンブロッキングな方法で他のソフトウェアと通信することになり、非同期通信は困難になる可能性がある。同時に、ソフトウェア間の固定化した対話のモデル化は比較的簡単であるが、消費者は断続的に、オンザフライでビジネスプロセスを変更する能力などの追加の柔軟性を必要とする傾向にある。多様なアプリケーションを扱うと、さらにワークフローの作成や管理が複雑になる可能性がある。
ワークフローツール用アプリケーションの多くは、企業や組織内部にある。モデムまたは他の種類の通信リンクを有するネットワークコンピュータの出現で、今では遠隔地のコンピュータシステムも簡単に互いに通信することが可能である。そのような高度通信により、コンピュータシステムのワークフローアプリケーションを企業内の複数の遠隔施設間で使用することができる。一例として、顧客注文を適切な販売員が確認するために本社から遠隔地の営業所に転送すること、および本社へ確認を返送することが挙げられる。またワークフローアプリケーションは、異なる会社間でのビジネストランザクションの処理における特定のユーティリティにもなりうる。典型的なアプリケーションでは、売買関係のある2社が発注、製品出荷、請求書作成および代金回収を行い、処理するのを自動化することを望むことができる。
たとえば、顧客関係管理(CRM)などの特定の課題、または金融サービスなどの特定のバーティカルマーケットを目的としたアプリケーションを、ワークフロー中心に構築することができる。そのような種類のアプリケーションは、一般に多数の異なるビジネスプロセスを実装する。Windows(登録商標) Workflow Foundationなどの一般的なワークフロー基盤上でこれらのプロセスを進めるロジックを構築することで、アプリケーションを早期に構築し、素早く変更し、容易にカスタマイズすることができる。さらに、そのプロセスを自動化することで、かなりの効率改善ができる。これは、自動化でなければ不可能である。しかし、このようなワークフロー技術の企業間アプリケーションは、企業の連携、および個々の企業の既存のコンピュータシステムとアプリケーションの適切なインタフェースと適切な持続性サービスの実装が必要となる。
これまでは、ワークフロースケジュールを定義することによりビジネスワークフローを自動化する機能を提供するワークフローアプリケーションツールが開発されてきた。たとえば、買い手が購入予定の製品リストと一緒に発注番号を売り手に送信したいと望み、売り手が注文請書と出荷予定日をつけて返信したいと望む場合がある。そのようなトランザクションは、一般消費者が小売業者から製品を購入する場合が対象であり、または定期的に取引のある2つの大きな企業体が対象である。発注書と確認書に関連付けられたデータは比較的小さく、データの送信時間はおよそコンマ数秒である。コンピュータシステム内で実行するワークフロースケジュールアプリケーションは、未決(pendency)の間にシステムリソースをそのトランザクションに割り当てることができる。この未決期間は、一般に非常に短い。
しかし、ワークフロー内のユーザ対話のモデル化には問題が伴う。特に、人が関わるときに、ワークフローは完了するのに長い時間がかかる可能性があり、拡張可能なシステムの構築にはユーザとの対話のワークフローを非アクティブにする必要がある。さらに、ワークフローの状態に基づいてユーザインタフェース(UI)を駆動することは、アプリケーションの種類に関わらず、複雑性がさらに増大する可能性がある。
したがって、従来のシステムおよび装置に関連付けられた上記に例示した欠陥を克服する必要がある。
以下に、特許請求の範囲の主題のいくつかの態様について基本的に理解できるように、簡略した概要を示す。本概要は、広範な要約ではない。主要な/クリティカルな要素を特定するものでもなく、また特許請求の範囲の主題の範囲を示すものでもない。後述するより詳細な説明の前置きとして、簡略した形でいくつかの概念を示すのが唯一の目的である。
本発明は、ワークフロー自身の一部として対話/ユーザ入力を実装するシステムおよび方法を提供するものである。これは、対話アクティビティコンポーネントの使用により、ワークフローとデータを受け渡しして対話ワークフローを形成するものである。そのような対話アクティビティコンポーネントは、ワークフロー定義内の一時停止ポイントをモデル化するもので、ウェブサービスアプリケーション、コンソール、デスクトップ、ウェブサービスなどを含むアプリケーションの型にとらわれない。したがって、ユーザ入力を要求するさまざまな対話の中断の間、ユーザ入力と関連する対話をワークフローに提供して、ワークフローとそのワークフローに関連付けられたホストアプリケーションとの間の制御された/同期式データ交換を可能にする。こうして、ワークフローの実行の範囲内の定義された時間に、ユーザコンテキストをワークフローインスタンスに関連付けることができる。
関連する態様において、対話アクティビティコンポーネントと一時停止ポイントは、ワークフローのユーザの切り替えに関係する。たとえば、ワークフローは一時停止の間、ワークフローのユーザに関する情報などのワークフローの状態に基づいてユーザインタフェース(UI)を駆動することができる。したがって、特定のポイントまで実行して、ホスティングアプリケーションにフィードバックする対話ワークフローを提供する。さらに、ホスティングアプリケーションは、一時停止状態に基づいてワークフローの外観を変更することができる。ワークフローの型は、(たとえば、プログラムで、または視覚的ツールを介して)定義することができる。ホストアプリケーションは、イベントを一時停止することに同意して、ワークフローの実行にフック(hook)を提供することができる。次いで一時停止イベント(単数または複数)を提起し、該イベントの情報(たとえば、ワークフローの現在のユーザに関する情報)に基づいて、UIの外観を変更することができる。こうして、ワークフロークラスとデータの受け渡しをして、実行時の対話に対してカスタム機能(たとえば、強く型付けされたワークフロー)を定義することができる。
たとえば、経費報告書のコンテキストでは、最初のユーザが経費報告書のワークフローを開始し、次いで、承認者であるユーザがその経費報告書を承認することができる。こうして、プロセスをワークフロークラスに抽象化することができる。このプロセスとワークフロークラスは、承認者が関係するポイントまで実行中である。このポイントで、最初のユーザの対話は停止する。次いで、承認者はワークフローを実行するためにアプリケーションを開始し(たとえば、別のマシンから)、承認者が指定したアクション(たとえば、承認、不承認など)でワークフローインスタンスを再開することができる。こうして、ワークフローインスタンスの有効期間中、一時停止ポイントでワークフローインスタンスとデータを受け渡しすることができる。
本発明の方法によれば、ワークフローにおける動作をチェックして、それが対話アクティビティであるか否かを確認することができる。それが対話アクティビティである場合、ワークフローを一時停止する。続いて、一時停止イベントを提起し、ホストに通信する。そうして、ワークフローインスタンスが一時停止している間、データをホストから取得し、ワークフローとデータを受け渡しする。さらに、ホストから取得したデータが再開イベントを示す場合、ワークフローを再開することができる。ワークフローは、ワークフローインスタンス識別に基づいて(たとえば、ルックアップコンポーネントを介して)ロードすることもできる。再開イベントは、ワークフローが受信し、実行されて、プロセス内の次の動作に移ることができる。
上述のおよび関連する目的を達成するために、特許請求の範囲の主題のいくつかの例示的態様を以下の説明と図面とを関連させてここに説明する。これらの態様は、主題を実施できるさまざまな方法を示すものであり、これらの方法全ては特許請求の範囲の主題の範囲内にあるものである。他の利点および新たな特徴は、図面と併せて考慮すれば、以下の詳細な説明から明らかであろう。
ここで、本発明の種々の態様を、添付図面を参照して説明する。全体にわたって、同じ番号は同じまたは対応する要素を示す。しかし、図面とそれに関する詳細な説明は特許請求の範囲の主題を開示した特定の形式に限定するものではないことを理解されたい。むしろ、本発明は、特許請求の範囲の主題の本質と範囲内であれば、変更したもの、均等物、および代替物の全てを対象とするものである。
ここで使用するように、「コンポーネント」「システム」「サービス」などの用語は、コンピュータ関連のエンティティを指し、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアを指す。たとえば、コンポーネントは、プロセッサ上で実行しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよいが、これらに限定されない。例として、コンピュータ上で実行しているアプリケーションもコンピュータもコンポーネントにできる。1つまたは複数のコンポーネントがプロセスおよび/または実行スレッド内に存在してもよく、1つのコンポーネントを1つのコンピュータにローカライズしてもよく、および/または2つ以上のコンピュータの間に分散させてもよい。
単語「例示的」は、ここでは一例、事例、実例となるという意味で使用されている。本明細書内で「例示的」として記載したいずれの態様または設計も、必ずしも他の態様または設計より好適または有利であると解釈すべきでない。
さらに、開示事項をシステム、方法、装置、または標準的なプログラミング技術および/またはエンジニアリング技法を使用してソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせを作成する製品として実装して、本明細書内で説明する態様を実装するコンピュータベースの装置またはプロセッサベースの装置を制御することができる。本明細書内で使用する用語コンピュータプログラムは、任意のコンピュータ可読装置、キャリアまたは媒体からアクセス可能なコンピュータプログラムを含むものである。たとえば、コンピュータ可読媒体は、磁気記憶装置(たとえば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ…)、光ディスク(たとえば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)…)、スマートカード、およびフラッシュメモリ装置(たとえば、カード、スティック)を含むが、これらに限定されない。さらに、搬送波を使用して、電子メールの送受信に使用する、またはインターネットまたはローカルエリアネットワーク(LAN)などのネットワークにアクセスするのに使用するようなコンピュータ可読電子データを搬送できることを理解されたい。もちろん、当業者は、特許請求の範囲の主題の範囲または本質から逸脱することなく、この構成に多くの変更を加えてもよいことは理解できるであろう。
まず初めに、図1はシステム101のブロック図を示す。これは、ワークフロー自身の一部として対話を実装する。ここでワークフローとデータの受け渡しをして、対話ワークフローを形成する。システム101は、ワークフロー定義内の一時停止ポイントをモデル化する対話アクティビティコンポーネント140を採用し、アプリケーションの型にとらわれず、ウェブサービスアプリケーション、コンソール、デスクトップ、ウェブサービスなどを含む。
さらに、システム101は、ワークフローシステム100と対話するホストアプリケーション120を含む。ワークフローは、アクティビティのマップとして定義されるヒューマンプロセスまたはシステムプロセスをモデル化することができる。アクティビティはワークフローのステップであり、ワークフローの実行、再使用、および構成の単位である。アクティビティのマップは、ルール、アクション、状態、およびそれらの関係を表す。典型的に、ワークフローは、ワークフローエンジン/ランタイム110を介して実行し、ワークフローランタイムは、ホスト120として示すようにいくつかのルールに従ってワークフローランタイムをホストする外部アプリケーションが必要である。ホスト120とワークフローシステム100との間のデータ交換は、ビジネス文書および他のオブジェクトに関連し、および/またはそれらを記述するものである。このビジネス文書および他のオブジェクトは、データ交換に使用される、またはワークフローアクティビティ若しくはホストアプリケーション120とデータを通信するのに使用するワークフローの複数のローカル変数の間のフローを促進するものである。
たとえば、ホストアプリケーション120は、ワークフロープロバイダ基本クラス(Workflow Provider Base Class)117および/またはそれに関連付けられた実装を介して、ワークフローシステム100に関連付けられたワークフロープロバイダ(Workflow Provider)115と対話することができる。さらに、ホスト120は、1つまたは複数のワークフローの作成、ワークフローの適切な実行に対して必要に応じて種々のコンポーネント間のコールをマーシャリングすること、および分離機構のセットアップなど、追加の重要な多数の態様に責任を負うことができる。さらに、ホスト120は、拡張の意味から複数の中央処理装置(CPU)を1つのマシン内で活用し、または複数のマシンのファーム上で多数のワークフローインスタンスを実行させる、複数のプロセスを作成することができる。ホスト120はさらにポリシーを制御することができる。このポリシーは、ワークフローが長い待機状態のときに適用し、特定のイベントをリッスン(listen)してそのイベントをユーザまたは管理者に通信し、各ワークフローのタイムアウトおよび終了を設定し、パフォーマンスカウンタを公開し、デバッグや診断目的でログ情報を書き込むポリシーである。
ワークフローシステム101に関連付けられたワークフローは、その目的に向けて特別に確立されたサービスを介して外部世界と通信することができる。このサービスでは、ワークフロー内のイベントドリブンアクティビティが接続するイベントを提起することができる。また、このサービスは、ホストをコールし、ホストにデータを送信するワークフローのパブリックメソッドを公開する。
図1に示すように、対話アクティビティコンポーネント140は、ワークフロー自身の一部として対話を実装することができる。ここでワークフローとデータの受け渡しをして、対話ワークフローを形成する。対話アクティビティコンポーネント140は、ワークフロー定義内の一時停止ポイントをモデル化する。したがって、ユーザ入力を要求するさまざまな対話の中断の間、ユーザ入力および関連する対話をワークフローに提供して、ワークフローとそのワークフローに関連付けられたホストアプリケーションとの間の制御された/同期式データ交換を可能にすることができる。こうして、ワークフローの実行の範囲内の定義された時間に、ユーザコンテキストをワークフローインスタンスに関連付けることができる。
図2は、ユーザとの対話を必要とする複数の一時停止ポイントを有するワークフロー200の実行を示す図である。一時停止ポイント212〜215(1個からn個、ここでnは整数)は、ワークフロー実行時のインスタンスに対応するように、対話アクティビティコンポーネントによりモデル化することができる。たとえば、ホストアプリケーションとのデータ交換のためにワークフローを一時停止することができる。さらに、この一時停止ポイント212〜215はワークフローのユーザの切り替えに関係する。たとえば、一時停止の間、ワークフローのユーザに関する情報などのワークフローの状態に基づいて、ユーザインタフェース(UI)を駆動することができる。
ワークフロー200は、コンピュータシステム内で実行スケジュールの形式で定義することができる。スケジュールは、指定した並行性、依存性、およびそれに関連付けられたトランザクション属性を有するアクションのセットを含む。各スケジュールは関連するスケジュール状態を有し、スケジュール状態はスケジュールの定義、スケジュール内の現在の位置、スケジュールに関連付けられたアクティブまたは生のデータおよびオブジェクトを含む。スケジュールの中には、アクションのグルーピングに基づいてトランザクション境界を設けることができる。この点について、トランザクションは、個々のアクション、トランザクション、またはトランザクションのグループを含めることができる。アクションは順番にグループ化され、連続して実行される。たとえば、アクションを同時に実行するタスクも同様である。したがって、グルーピングに基づいて、並行性の属性をスケジュール内のアクションおよびトランザクションに対して決定することができる。
アクションはスケジュール内で行うワークに対応し、スケジュール内の構成の基本単位である。そのようなアクションは、スケジュールのコンテキスト内に待ち時間、並行性、および補償に関する属性を選択的にまたは組み合わせて含むことができる。たとえば、アクションが外部からの刺激をスケジュールに送信することができる。これにより、外部のプログラムがスケジュール状態を向上させることができる。これらの刺激は、保護されたコンポーネント上のイベント、メッセージ、またはコールである。イベントの場合、実行中のスケジュールはサブスクライバとして機能する。特定のスケジュールのインスタンスを、保護されたコンポーネント上のイベント、メッセージ、またはコールなどのアクションに対して配置することになる。
さらに、アクションはコンポーネント上のメソッドコールを駆動することができる。そのようなアクションは、典型的にコンポーネントをインスタンス化(たとえば、コンポーネントのインスタンスを作成)し、そのインスタンス上のメソッドをコールし、続いてそのインスタンスに対する参照をスケジュール内の後の方で使用しない場合は、それを解放する。アプリケーションがスケジュールを実行するとき、スケジューラエンジンのインスタンスを作成することができる。そして、スケジュールと関連するバインディングをロードする。さらにアクションは、予想される、または実際の終了時間や待ち時間に関する情報を含むことができる。この情報は、スケジュールを定義しているときにスケジュール定義に組み込むことができ、および/またはアクションの待ち時間に関する履歴情報または予測情報に基づいて実行時に動的に提供してもよい。
一時停止ポイント212〜215はまた、ワークフロー内のデハイドレーション(dehydration)ポイントを示すことができる。ワークフローが何時間、何日、または何週間も実行するかもしれないので、ランタイム200は自動的に実行中のワークフローを停止して、ワークフローがある期間アクティブでないとき、一時停止ポイント212〜215で持続的にワークフロー状態を記憶することができる。デハイドレーションとは一般に、待ち時間を考慮して記憶媒体にスケジュール状態を選択的に記憶するメソッドのことである。たとえば、スケジュール内のアクションが受信メールを5時間待つと予測されると、スケジュール状態をメッセージが受信されるまでディスクにデハイドレーションしてもよい。そのような場合に、システムはメッセージを受信するまで他のタスクを実行してもよい。それにより、ワーク出力とシステムの効率を大幅に向上させることができる。したがって、ユーザ入力を要求するさまざまな対話の中断の間、ユーザ入力および関連する対話をワークフローに提供して、ワークフローとそのワークフローに関連付けられたホストアプリケーションとの間の制御された/同期式データ交換を可能にすることができる。ワークフローの実行の範囲内の定義された時間に、ユーザコンテキストをワークフローインスタンスに関連付けることができる。
以下に、対話アクティビティコンポーネントの例示的な定義を示す。これは一時停止ポイント212〜215でワークフローインスタンスを一時停止および/または再開する定義である。
Figure 2009522645
Figure 2009522645
示したように、アクティビティクラスは対話サービス(Interactivity Service)上の一時停止(Suspend)メソッドをコールすることで、ワークフローの実行をブロックするために自身のエグゼキュータを使用することができる。そして、ホストハンドラまで対話アクティビティコンポーネントに関連付けられたInteractionIdentifierの伝播を開始する。
したがって、特定のポイントまで実行して、ホストアプリケーションにフィードバックする対話ワークフローを提供することができる。ホストアプリケーションは、一時停止状態に基づいてワークフローの外観を変更することができる。ワークフローの型は、(たとえば、プログラムで、またはビジュアルツールを介して)定義することができる。ホストアプリケーションは、イベントを一時停止することに同意して、ワークフローの実行にフックを提供することができる。次いで一時停止イベント(単数または複数)を提起し、該イベントの情報(たとえば、ワークフローの現在のユーザに関する情報)に基づいて、UIの外観を変更することができる。こうして、ワークフロークラスとデータの受け渡しをして、実行時の対話に対してカスタム機能(たとえば、強く型付けされたワークフロー)を定義することができる。
図3および図4は、一時停止ポイントを有する経費報告書の詳細なフローチャートである。このフローチャートにより、ユーザ入力を要求するさまざまな対話の中断の間、ユーザ入力および関連する対話は、ワークフローとそのワークフローに関連付けられたホストアプリケーションとの間の制御されたおよび/または同期式のデータ交換が可能になる。フローチャート300および400は、汎用のExpense Reportingワークフロー内の一時停止ポイントとして、SwitchUserアクティビティコンポーネントおよびInteractiveActivity(対話アクティビティ)コンポーネントを使用する例を示すものである。
そのように、経費報告書のコンテキストでは、最初のユーザが経費報告書のワークフローを開始し、次いで、承認者であるユーザがその経費報告書を承認することができる。こうして、プロセスをワークフロークラスに抽象化することができる。このプロセスとワークフロークラスは承認者が関係するポイントまで実行中である。このポイントで、最初のユーザの対話は停止する。次いで、承認者はワークフローを実行するためにアプリケーションを開始し(たとえば、別のマシンから)、承認者が指定したアクション(たとえば、承認、不承認など)でワークフローインスタンスを再開することができる。こうして、ワークフローインスタンスの有効期間中、一時停止ポイントでワークフローインスタンスとデータを受け渡しすることができる。
図3に示すように、ボックス310はSubmittedER動作を表す。この動作では、以下図5で詳細に述べるように、一時停止状態を示して、ホストアプリケーションがグラフィカルインタフェース(たとえば、専用形式)を介して、提出した経費報告書ビューをレンダリングする。さらにワークフロー定義300内の動作320は、SwitchUserアクティビティのインスタンスを表す。このSwitchUserアクティビティのインスタンスを介して、本発明は次のワークフローセグメントの実行に責任を負うユーザとワークフローインスタンスとの間の現在の関係を変更する。これにより、典型的には、適切なユーザのみの実行コンテキストで行った承認/却下のアクションによって、ワークフローを確実に再開できるようになる。同様にして、動作330および動作430は、本発明の例示的態様によるInteractiveActivity中断のインスタンスを表す。同様に、NewERとして設計されたボックス420は、New Expense Reportを示す。ワークフローは、グローバルな経費報告データを待つ間一時停止して、グラフィカルインタフェース(たとえば、図5の専用形式)を介して、ユーザ入力の結果として提供される。
このワークフローは、経費報告書を提出、承認するアプリケーションを特徴とする。このアプリケーションは、ワークフローにより統合された複数のページを含む。種々のアクティビティおよび制御フロー構成に加えて、たとえば、ワークフローは、経費報告書の承認を提示されたとき、関連ユーザの切り替え方法を明示する。すでに説明したが、FillER動作430の間、ワークフローは一時停止し、ユーザは経費報告書に行項目の追加を続けることができる。利用可能な進行中のワークフローのリストへの問い合わせを行い、アプリケーションワークフロー内に表示することも含まれる。
たとえば、経費報告アプリケーションは、現在のユーザが提出した進行中の経費報告書およびユーザの承認を待つ任意の経費報告書を記載したホームページを含むことができる。このアプリケーションは、経費報告書などを目的とした情報を特定すること、個別の行項目を追加すること、および情報の正確さを検証することにより、新規の経費報告書を作成することが可能になる。さらに、アプリケーションは、新規の経費報告書が提出されたときに、電子メール通知460を承認者に送信することができる。続いて、承認者はその経費報告書を見て、承認または却下し、その際に、最終メールを送信する。
以下は、本発明の例示的な態様による、対話を組み入れた例示的なExpense Reporting(経費報告)ワークフロー定義を示す。
<Workflow Name="ExpenseReportingWorkflow"
Inherits="InteractiveWorkflow"
Implements="ITrackingWorkflowStateHandler"
xmlns="System. ApplicationServices .Workflows, System.ApplicationServices . Workflow"

xmlns :w="System.Web.Workflows, System.Web"
xmlns : s="SampleApp">
<StartActivity Name="Start">
<Transitions>
<ActivityTransition Destination="NewER" />
</Transitions>
</StartActivity>
<UIActivity Name="NewER" Interactionldentifier="NewER" Actions="Submit">
<Transitions>
<ActivityTransition Destination=="FillER" Action="Submit" />
</Transitions>
</UIActivity>

<UIActivity Name="FillER" Interactionldentifier="FillER" Actions="AddItem, Submit">
<Transitions>
<ActivityTransition Destination="FiIlER" Action="AddItem" />
<ActivityTransition Destination="FillApprover" Action=""Submit" />
</Transitions>
</UIActivity>

<CodeActivity Name="FillApprover" CustomExecute="FillApprover_CustomExecute">
<Transitions>
<ActivityTransition Destination="VerifyER" />
</Transitions>
</CodeActivity>

<UIActivity Name="VerifyER" Interactionldentifier="VerifyER" Actions="Submit">
<Transitions>
<ActivityTransition Destination="MailActivityl" Action="Submit" />
</Transitions>
</UIActivity>

<s:.MailActivity Name="MailActivityl"
From="expenses@example . com" Subject="New expense report submitted; approval required. ">
<Transitions>
<ActivityTransition Destination="SwitchUserl" />
</Transitions>
</s :MailActivity>

<SwitchUserActivity Name="SwitchUserl">
<Transitions>
<ActivityTransition Destination="ApproveER" />
</Transitions>
<Bindings>
<ActivityBinding ActivityPropertyName="UserName" WorkflowPropertyName="Approver">
</Bindings>
</CodeActivity>

<UIActivity Name="ApproveER" Interactionldentifier="ApproveER" Actions="Approve, Reject">
<Transitions>
<ActivityTransition Destination="Payment"" Action="Approve" />
<ActivityTransition Destination="MailActivity2" Action="Reject" />
</Transitions>
</UIActivity>

<s :MailActivity Name="MailActivity2"
From="expenses@example . com" Subject="Expense report was rejected. ">
<Transitions>
<ActivityTransition Destination="Stop" />
</Transitions>
</s :MailActivity>

<CodeActivity Name="Payment" CustoraExecute="Payment_CustomExecute">
<Transitions>
<ActivityTransition Destination="MailActivity3" />
</Transitions>
</CodeActivity>

<s :MailActivity Name="MailActivity3"
From="expenses@example . com" Subject="Expense report was
approved . ">
<Transitions>
<ActivityTransition Destination="Stop" />
</Transitions>
</s :MailActivity>

<StopActivity Name="Stop" />

<Code Language="C#">
private Guid _expenseReportI D ;

private ExpenseReport _expenseReport ;

public ExpenseReport ExpenseReport {
get { return _expenseReport ; }
}

public Guid ExpenseReportI D {
get { return _expenseReportID; }
set { _expenseReportID = value ; }
}

protected override void OnStarting (EventArgs e ) {
base . OnStarting ( e ) ;
_expenseReport = new ExpenseReport ( ) ;
_expenseReportID = __expenseReport . ID;
}

private void FillAρprover_CustomExecute (object sender, ActivityExecuteEventArgs e) {
// TODO: Use current user and expense report amount to determine approver e. Result = true;
}

private void Payment_CustomExecute (object sender, ActivityExecuteEventArgs e) {
// TODO: Make payment by calling a Web service e. Result = true;
}

#region Implementation of ITrackingWorkflowStateHandler
void ITrackingWorkflowStateHandler .BeginLoad ( ) {
}

void ITrackingWorkflowStateHandler .BeginSave () {
ExpensesDB. UpdateExpenseReport (_expenseReport) ; .
}

void ITrackingWorkflowStateHandler . EndLoad () {
_expenseReport =
ExpensesDB . GetExpenseReport (ExpenseReportID) ;
}

void ITrackingWorkflowStateHandler .EndSave () {
}
#endregion
</Code>
</Workflow>

Web . config

<system.web>

<pageFlows>

<pageFlow name="ExpenseReporting"
workflow="ExpenseReporting . workflow"
provider="SqlWorkflowProvider"
startPagePath="Default . aspx">
<pages>
<add name="NewER" pagePath="NewER. aspx" behavior="CreateWorkflow" />
<add name="FillER" pagePath="FillER. aspx" behavior="ResumeWorkflow" />
・・・
</pages>
</pageFlow>
</pageFlows>
</system. web>

Default . aspx

<%@ Page %>
<html>
<body>
<form runat="server">
<asp :WorkflowDataSource runat="server" id="pendingWorkflows"
pageFlowName="ExpenseReporting" Filter="CreatedByUser"
/>
<asp :WorkflowDataSource runat="server" id="approvalWorkflows"
pageFlowName="ExpenseReporting" Filter="AssignedToUser"
/>

Expense Reports Pending Approval:
<asp : GridView runat="server"
DataSourceID="pendingWorkflows" />

Expense Reports Needing Approval:
<asp: GridView runat="server"
DataSourceID="approvalWorkflows" />

<a href="NewER.aspx">Create New Expense Report</a>
</form>
</body>
</html>

Approve . aspx

<%@ Page %>
<asp:PageFlowManager runat="server" id="pageFlowManagerl" PageFlowName="ExpenseReporting" />
<html>
<body>
<form runat="server">
<asp : FormView runat="server" 1 DataSourceID="pageFlowManagerl">
<ItemTemplate>
・・・
</ItemTemplate>
</asp : FormView>
<asp:ActionButton runat="server" Text="Approve">
<ClickActions>
<asp: PageFlowAction Type="Resume" ResumeAction="Approve" />
</ClickActions>
</asp : ActionButton>
<asp :ActionButton runat="server" Text="Reject">
<ClickActions>
<asp: PageFlowAction Type="Resume" ResumeAction="Reject" />
</ClickActions>
</asp : ActionButton>
</form>
</body>
</html>
図5は、本発明の種々の態様と併せて使用できるグラフィカルインタフェース(たとえば、専用形式)を示す。たとえば、ページフロー510の経費報告アプリケーションは、経費報告書を提出し、承認するためのウェブアプリケーションを特徴とする。このアプリケーションはワークフローにより統合された複数のページを含む。種々のアクティビティと制御フロー構成に加えて、ワークフローは関連ユーザの切り替え方法を明示する。ページフロー510はまた、利用可能な進行中のワークフローのリストに問い合わせをして、アプリケーションワークフロー内に表示することを示す。たとえば、ワークフローは一時停止の間、ワークフローのユーザに関する情報などのワークフローの状態に基づいて、ユーザインタフェース(UI)を駆動することができる。したがって、特定のポイントまで実行して、ホスティングアプリケーションにフィードバックする対話ワークフローを提供する。さらに、ホスティングアプリケーションは、一時停止状態に基づいてワークフローの外観を変更することができる。上述したように、経費報告書のコンテキストにおいて、ワークフローの型は、(たとえば、プログラムで、またはビジュアルツールを介して)定義することができる。ホストアプリケーションは、イベントを一時停止することに同意して、ワークフローの実行にフックを提供することができる。次いで一時停止イベント(単数または複数)を提起し、該イベントの情報(たとえば、ワークフローの現在のユーザに関する情報)に基づいて、UIの外観を変更することができる。こうして、ワークフロークラスとデータの受け渡しをして、実行時の対話に対してカスタム機能(たとえば、強く型付けされたワークフロー)を定義することができる。また、ホストはワークフローインスタンスに問い合わせをして、ワークフローを一時停止および/またはアイドル(待ち状態)にする、現在の対話アクティビティを識別することができる。
図6は、ワークフロー定義内で一時停止ポイントをモデル化できるシステム600のブロック図である。ここで、ワークフローとデータの受け渡しをして対話ワークフローを形成する。典型的には、ワークフローインスタンス640において、一時停止イベントを提起することができる。ワークフローインスタンス640は、その一部としてつくられた対話アクティビティコンポーネント610を有し、たとえば、時間設定で、または現在のユーザの切り替えにより、ワークフローの実行の一時停止を可能にする。ワークフローは、含まれているStartActivityを実行することにより実行を開始でき、StopActivityを実行したときに、実行を終了することができる。実行している間、各アクティビティをチェックして、各アクティビティが実行されているか否かを検証する。たとえば、アクティビティが実行されていなければ、ワークフローは一時停止している。アクティビティが実行されていれば、関連するExecuteメソッドを呼び出す。そのメソッドが成功結果を返せば、適切なアクティビティ遷移を使用して次のアクティビティを判断する。ワークフローは、多数の理由で一時停止することができる。たとえば、アクティビティの実行をキャンセルするため、アクティビティが実行を継続できないため、次の実行を遅らせるために導入される特定の遅延のため、および異なるユーザが実行するために次の実行が必要なユーザコンテキストの切り替えのためなどの理由がある。一時停止に入ると、ワークフローインスタンスはデータベースまたは同等の記憶装置に保存され、および/またはシリアライズされる。このデータベースまたは同等の記憶装置は、それからワークフローを順次取り出し、デシリアライズし、および再開する。また、アクティビティの実行が処理できないエラー結果になった場合、ワークフローはエラー状態に入ることもできる。
図6に示すように、対話アクティビティコンポーネント610は、ワークフローエンジン/ランタイム635に関連付けられた対話サービス620を介して、イベントを提起することができる。続いて、ワークフローは一時停止し、ホスト630がワークフローインスタンス640とデータ交換(たとえば、データ取得)をすることができる。ホストは、次いで、ワークフロー実行を再開するために、対話アクティビティサービス620をコールすることによりワークフローを再開することができる。したがって、ユーザ入力を要求するさまざまな対話の中断の間、ユーザ入力と関連する対話をワークフローに提供して、ワークフローとそのワークフローに関連付けられたホストアプリケーションとの間の制御された/同期式データ交換を可能にすることができる。
図7〜9は、本発明の一態様による、ワークフローの実行フローの例示的なフローチャートを示す図である。例示的な方法を示し、本明細書では種々のイベントおよび/または動作を表す一連のブロックとして説明するが、本発明はこの示したブロックの順序付けに限定されない。たとえば、本発明による本明細書内で示した順序付けの他に、いくつかの動作またはイベントは、異なる順序で、および/または他の動作またはイベントと同時に発生する場合がある。また、示した全てのブロック、イベント、および動作に本発明による方法を実装する必要があるわけではない。さらに、本発明による例示的な方法および他の方法を、本明細書内で図示し、説明した方法に関連付けて、また図示、説明していない他のシステムおよび装置に関連付けて実装してもよい。図7の方法700で示すように、ワークフロープロセス705は実行してプロセス内の次の動作に移行する。ワークフロー実行は、710において、実行すべき動作がワークフローの終了を示すか否かを検証することができる。その動作がワークフローの終了を示す場合、720においてワークフローの実行は終了する。その動作がワークフローの終了を示さない場合、方法は動作730に進み、ワークフローが実行すべき動作をチェックして、その動作が対話アクティビティであるか否かを検証する。その動作が対話アクティビティである場合、740においてワークフローは一時停止して、上記で詳述したホストアプリケーションとの対話が可能になる。その動作が対話アクティビティでない場合、方法は動作705に戻り、ワークフローは現在の動作を実行し、次の動作に進む。
図7に示すように、740におけるワークフローの一時停止の後、実行フローは進んで、750においてホストに対して一時停止イベントを提起する。そのようにして、図8に示すように、860においてワークフローインスタンスが一時停止している間、862においてホストとワークフローとの間でデータを交換する。こうして、ワークフローとデータの受け渡しを行う。このデータの受け渡しは、864におけるワークフローインスタンスからのデータの取得、および/または866におけるホストによるデータの設定を含むことができる。したがって、ユーザ入力を要求するさまざまな対話の中断の間、ユーザ入力と関連する対話をワークフローに提供して、ワークフローとそのワークフローに関連付けられたホストアプリケーションとの間の制御された/同期式データ交換を可能にすることができる。そのため、ワークフローの実行の範囲内の定義された時間に、ユーザコンテキストをワークフローインスタンスに関連付けることができる。
870において検証を行って、ホストにより送出されたデータが再開イベントであるか否かをチェックすることができる。そしてそのデータが再開イベントでない場合、ワークフローインスタンスは一時停止状態にとどまり、データ交換を続けることができ、方法は動作862に戻る。そのデータが再開イベントである場合、方法は図9に進み、980において、ホストはワークフローにイベントを送信し、実行を再開することができる。982において、ワークフローがロードされるか否かに関する検証を行うことができる。ワークフローがロードされる場合、ワークフローは986において再開イベントを受信し、次に動作705に戻って実行フローの次の動作を実行する。ワークフローがロードされない場合、984において、ワークフローに関連付けられた識別に基づいて(たとえば、ワークフローインスタンスが作成されたときに)、ワークフローはロードされ、次いで、ワークフローを再開する動作986に進む。
開示事項の種々の態様のコンテキストを提供するために、図10、図11および以下の説明は、開示事項の種々の態様を実装できる適切な環境を、簡単に、一般的に記述するものである。開示事項を1つのコンピュータおよび/または複数のコンピュータ上で実行するコンピュータプログラムのコンピュータ実行可能命令の一般的なコンテキストで上述したが、本発明を他のプログラムモジュールとの組み合わせで実装してもよいことは、当業者には理解できるだろう。一般に、プログラムモジュールは、特定のタスクを実行する、および/または特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造体などを含む。さらに、当業者は、本発明の方法は他のコンピュータシステム構成で実施できることを理解するだろう。コンピュータシステム構成には、シングルプロセッサまたはマルチプロセッサコンピュータシステム、小型コンピューティングデバイス、メインフレームコンピュータ、およびパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス(たとえば、携帯端末(PDA)、携帯電話、時計…)、マイクロプロセッサベースのまたはプログラム可能な家電製品または産業用電子機器などが含まれる。示した態様は、通信ネットワークを介してリンクしたリモート処理装置によりタスクを実行する、分散コンピューティング環境で実施してもよい。しかし、本発明の全ての態様ではなく、いくつかの態様については、スタンドアロンのコンピュータで実施することができる。分散コンピューティング環境においては、プログラムモジュールはローカルメモリ記憶装置およびリモートメモリ記憶装置の両方に配置することができる。
図10を参照して、コンピュータ1012を含む、本発明の種々の態様を実装する例示的な環境1010を説明する。コンピュータ1012は、処理ユニット1014、システムメモリ1016、およびシステムバス1018を含む。システムバス1018は、システムコンポーネントを処理ユニット1014に接続する。システムコンポーネントはシステムメモリ1016を含むが、これに限定されない。処理ユニット1014は、種々の利用可能なプロセッサのいずれかであってよい。デュアルマイクロプロセッサおよび他のマルチプロセッサのアーキテクチャを、処理ユニット1014として使用することもできる。
システムバス1018は、いくつかのタイプのバス構造(単数または複数)のいずれかであってよい。このバス構造には、メモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および/または利用可能なバスアーキテクチャの任意の種類を使用するローカルバスが含まれる。利用可能なバスアーキテクチャには、11ビットバス、業界標準アーキテクチャ(ISA)、マイクロチャネルアーキテクチャ(MSA)、拡張ISA(EISA)、インテリジェントドライブエレクトロニクス(IDE)、VESAローカルバス(VLB)、周辺コンポーネント相互接続(PCI)、ユニバーサルシリアルバス(USB)、アドバンストグラフィックスポート(AGP)、パーソナルコンピュータメモリカード国際協会バス(PCMCIA)、およびスモールコンピュータシステムインタフェース(SCSI)が含まれるが、これらに限定されない。
システムメモリ1016は、揮発性メモリ1020および不揮発性メモリ1022を含む。起動時などにコンピュータ1012内の要素間で情報を転送する基本ルーチンを含む、基本入出力システム(BIOS)は、不揮発性メモリ1022内に格納される。例として、不揮発性メモリ1022には、ROM(Read Only Memory)、プログラム可能ROM(PROM)、電気的プログラム可能ROM(EPROM)、電気的消去可能ROM(EEPROM)またはフラッシュメモリが含まれるが、これらに限定されない。揮発性メモリ1020は、外部キャッシュメモリとして機能するRAM(Random Access Memory)を含む。例として、RAMは以下の多くの形式で利用可能である。その形式は、同期RAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンク(Synchlink)DRAM(SLDRAM)、およびダイレクトランバス(direct Rambus)RAM(DRRAM)などである。
コンピュータ1012はまた、取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶媒体を含む。たとえば、図10で示しているのはディスク記憶装置1024である。ディスク記憶装置1024には、磁気ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、ジャズ(Jaz)ドライブ、ジップ(Zip)ドライブ、LS−100ドライブ、フラッシュメモリカード、またはメモリスティックなどの装置が含まれるが、これらに限定されない。さらに、ディスク記憶装置1024は、単独で、または他の記憶媒体と組み合わせて記憶媒体を含むことができる。この記憶媒体には、コンパクトディスクROM装置(CD−ROM)、CD記録可能ドライブ(CD−Rドライブ)、CD書き換え可能ドライブ(CD−RWドライブ)またはデジタル多用途ディスクROMドライブ(DVD−ROM)などの光ディスクドライブが含まれるが、これらに限定されない。ディスク記憶装置1024とシステムバス1018との接続を容易にするために、典型的には、インタフェース1026などの取り外し可能または取り外し不能なインタフェースを使用する。
図10は、ユーザと適切な動作環境1010で示される基本コンピュータリソースとの仲介役として機能するソフトウェアを示していることを理解されたい。このソフトウェアはオペレーティングシステム1028を含む。オペレーティングシステム1028は、ディスク記憶装置1024に格納することが可能であり、コンピュータシステム1012のリソースを制御し、割り当てるために機能する。システムアプリケーション1030は、システムメモリ1016内またはディスク記憶装置1024上のいずれかに格納されたプログラムモジュール1032およびプログラムデータ1034を介して、オペレーティングシステム1028によるリソース管理を利用する。本明細書内で説明した種々のコンポーネントは、種々のオペレーティングシステムまたはオペレーティングシステムの組み合わせで実装可能であることを理解されたい。
ユーザは、入力装置(単数または複数)1036を介してコンピュータ1012にコマンドまたは情報を入力する。入力装置1036には、マウスなどのポインティングデバイス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナ、テレビチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラなどが含まれるが、これらに限定されない。これらの入力装置および他の入力装置は、インタフェースポート(単数または複数)1038を経由してシステムバス1018を介して、処理ユニット1014に接続する。たとえば、インタフェースポート(単数または複数)1038には、シリアルポート、パラレルポート、ゲームポート、およびユニバーサルシリアルバス(USB)が含まれる。出力装置(単数または複数)1040は、入力装置(単数または複数)1036と同一タイプのポートをいくつか使用する。そのためたとえば、USBポートを使用して、コンピュータ1012に入力を提供し、コンピュータ1012からの情報を出力装置1040に出力することができる。出力アダプタ1042を提供して、特定のアダプタを必要とする他の出力装置1040のうち、モニタ、スピーカ、およびプリンタのような出力装置1040があることを示している。例として、出力アダプタ1042には、出力装置1040とシステムバス1018との間の接続手段を提供するビデオカードおよびサウンドカードが含まれるが、これらに限定されない。他の装置および/または装置のシステムは、リモートコンピュータ(単数または複数)1044などの入力機能と出力機能の両方を備えることに留意されたい。
コンピュータ1012は、リモートコンピュータ(単数または複数)1044などの1つまたは複数のリモートコンピュータに対する論理接続を使用するネットワーク化環境で動作することができる。リモートコンピュータ(単数または複数)1044は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの機器、ピア装置または他の共通ネットワークノードなどであってよく、典型的に、コンピュータ1012に関して説明した要素の多くまたは全てを含む。簡潔にするために、メモリ記憶装置1046に限っては、リモートコンピュータ(単数または複数)1044と一緒に示している。リモートコンピュータ(単数または複数)1044は、ネットワークインタフェース1048を介してコンピュータ1012に論理的に接続され、その後、通信接続1050経由で物理的に接続される。ネットワークインタフェース1048は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)などの通信ネットワークを含む。LAN技術には、光ファイバ分散データインタフェース(FDDI)、銅線分散データインタフェース(CDDI)、イーサネット(登録商標)/IEEE 802.3、トークンリング/IEEE 802.5などが含まれる。WAN技術には、ポイントツーポイントリンク、総合デジタル通信網(ISDN)およびその変形のような回路交換ネットワーク、パケット交換ネットワーク、およびデジタル加入者線(DSL)が含まれるが、これらに限定されない。
通信接続(単数または複数)1050は、ネットワークインタフェース1048をバス1018に接続するのに使用するハードウェア/ソフトウェアを指す。通信接続1050は、コンピュータ1012内部を明確に示すために図示しているが、コンピュータ1012の外部にあってもよい。ネットワークインタフェース1048への接続に必要なハードウェア/ソフトウェアには、例示としてのみ、通常の電話級モデム、ケーブルモデムおよびDSLモデム、ISDNアダプタ、およびイーサネット(登録商標)カードを含むモデムのような内部技術および外部技術が挙げられる。
図11は、本発明の対話コンポーネントを有するワークフローを実装するのに使用できる、サンプルコンピューティング環境1100の概略のブロック図である。システム1100は、1つまたは複数のクライアント1110を含む。クライアント(単数または複数)1110は、ハードウェア、および/またはソフトウェア(たとえば、スレッド、プロセス、コンピューティングデバイス)であってよい。システム1100はまた、1つまたは複数のサーバ1130を含む。サーバ(単数または複数)1130も、ハードウェア、および/またはソフトウェア(たとえば、スレッド、プロセス、コンピューティングデバイス)であってよい。サーバ1130は、たとえば、スレッドを収容して、本明細書内で記載したコンポーネントを使用することにより変換を実行することができる。クライアント1110とサーバ1130との間の可能な通信の1つは、2つ以上のコンピュータプロセスの間で伝送されるように適合されたデータパケットの形式であってよい。システム1100は、クライアント(単数または複数)1110とサーバ(単数または複数)1130との間の通信を容易にするために使用できる通信フレームワーク1150を含む。クライアント(単数または複数)1110は、クライアント(単数または複数)1110にローカルな情報を格納するのに使用できる、1つまたは複数のクライアントデータストア(単数または複数)1160に動作可能に接続される。同様に、サーバ(単数または複数)1130は、サーバ(単数または複数)1130にローカルな情報を格納するのに使用できる、1つまたは複数のサーバデータストア(単数または複数)1140に動作可能に接続される。
上述の内容は、種々の例示的な態様を含む。もちろん、これらの態様を説明するために、コンポーネントまたは方法の考えられるあらゆる組み合わせを説明することは不可能であるが、当業者は、さらに多数の組み合わせや順序の入れ替えが可能であることは理解できるだろう。したがって、本明細書で示した態様は、添付した請求項の精神と範囲内にある全ての代替、変更、変形を包含するものである。さらに、「含む(include)」という用語は、詳細な説明または請求項のいずれかで使用する限り、請求項の移行語として使用するときに「備える(comprising)」という用語が解釈されるのと同様に、包括的であることを意図するものである。
対話アクティビティコンポーネントを介してワークフローと対話するホストアプリケーションの例示的なシステム図である。 ユーザおよび/またはホストとの対話を必要とする複数の一時停止ポイントを有するワークフロー実行を示す図である。 本発明の例示的な態様による、一時停止ポイントを有する経費報告書の詳細なフローチャートである。 本発明の例示的な態様による、一時停止ポイントを有する経費報告書の詳細なフローチャートである。 ワークフロー実行時に実行する種々の動作のプレゼンテーションに使用する、例示的なグラフィカルインタフェースを示す図である。 本発明の一態様による、ワークフローインスタンスとホストアプリケーションとの間のデータ交換を示す図である。 本発明の一態様による、ワークフローの実行フローの例示的な方法を示す図である。 本発明の一態様による、ワークフローの実行フローの例示的な方法を示す図である。 本発明の一態様による、ワークフローの実行フローの例示的な方法を示す図である。 本発明の種々の態様を実装する例示的な環境を示す図である。 本発明の対話アクティビティコンポーネントを有するワークフローを実装するのに使用できる、追加のコンピューティング環境の略ブロック図である。

Claims (20)

  1. ワークフロー内の一時停止ポイントをモデル化する対話アクティビティコンポーネント(140)を有するワークフローシステム(100)、および
    前記一時停止ポイントで前記ワークフローとデータ交換を行うホスト(120)
    のコンピュータ実行可能コンポーネントを備えることを特徴とするコンピュータ実装システム。
  2. 前記一時停止ポイントは、ユーザ入力のために対話が中断することを特徴とする請求項1に記載のコンピュータ実装システム。
  3. 前記対話アクティビティコンポーネントは、ユーザを切り替える機能を有することを特徴とする、請求項1に記載のコンピュータ実装システム。
  4. 前記ワークフローは、前記ワークフローに関連付けられた識別に基づいてロード可能であることを特徴とする請求項2に記載のコンピュータ実装システム。
  5. 前記一時停止ポイントは、前記ワークフローの変更可能なユーザインタフェース(UI)の外観に関連付けられることを特徴とする請求項1に記載のコンピュータ実装システム。
  6. 前記UIは、一時停止の間、前記ワークフローの状態に基づいて駆動可能であることを特徴とする請求項5に記載のコンピュータ実装システム。
  7. 前記ワークフローは、前記ホストのアクティビティにより再開可能であることを特徴とする請求項5に記載のコンピュータ実装システム。
  8. 前記ワークフローシステムは、前記ホストと通信するためのワークフロープロバイダクラスを有することを特徴とする請求項5に記載のコンピュータ実装システム。
  9. ワークフローを一時停止するアクティビティに遭遇し、
    前記ワークフローの一時停止の間にホストと前記ワークフローとの間でデータを交換する
    コンピュータ実行可能な動作を有することを特徴とする、コンピュータ実装方法。
  10. 前記ホストによりデータを設定する動作をさらに有することを特徴とする請求項9に記載のコンピュータ実装方法。
  11. 前記ホストによるイベントを前記ワークフローに送信して、実行を再開する動作をさらに有することを特徴とする請求項9に記載のコンピュータ実装方法。
  12. ワークフローインスタンスの識別に基づいて、ワークフローをロードすることを特徴とする請求項9に記載のコンピュータ実装方法。
  13. データが再開イベントであるか否かを検証する動作をさらに有することを特徴とする請求項9に記載のコンピュータ実装方法。
  14. 前記ホストに一時停止イベントを提起する動作をさらに含むことを特徴とする、請求項9に記載のコンピュータ実装方法。
  15. 前記一時停止イベントに基づいて、UIを切り替える動作およびUIを変更する動作のうちの1つをさらに有することを特徴とする請求項14に記載のコンピュータ実装方法。
  16. 前記ワークフローにユーザ入力を提供する動作をさらに有することを特徴とする請求項14に記載のコンピュータ実装方法。
  17. 前記ホストがワークフロー内のイベントを一時停止することに同意する動作をさらに有することを特徴とする請求項14に記載のコンピュータ実装方法。
  18. ワークフローインスタンスに問い合わせることにより、前記ワークフローの状態を判定し、前記ワークフローの一時停止を発生させる対話アクティビティを識別する動作をさらに有することを特徴とする請求項14に記載のコンピュータ実装方法。
  19. 一時停止ポイントに基づいて、前記ワークフローの外観を変更する動作をさらに有することを特徴とする請求項14に記載のコンピュータ実装方法。
  20. ワークフローを一時停止する手段(110)、および
    前記ワークフローの一時停止の間、ホストと前記ワークフローとの間でデータを交換する手段(140)
    のコンピュータ実行可能コンポーネントを備えることを特徴とするコンピュータ実装システム。
JP2008548537A 2005-12-29 2006-12-07 ワークフローベースのアプリケーションにおけるユーザ入力および対話のモデル化 Pending JP2009522645A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/321,490 US8849691B2 (en) 2005-12-29 2005-12-29 Modeling user input and interaction in workflow based applications
PCT/US2006/046905 WO2007078593A1 (en) 2005-12-29 2006-12-07 Modeling user input and interaction in worklow based applications

Publications (1)

Publication Number Publication Date
JP2009522645A true JP2009522645A (ja) 2009-06-11

Family

ID=38225702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008548537A Pending JP2009522645A (ja) 2005-12-29 2006-12-07 ワークフローベースのアプリケーションにおけるユーザ入力および対話のモデル化

Country Status (8)

Country Link
US (2) US8849691B2 (ja)
EP (1) EP1969484A4 (ja)
JP (1) JP2009522645A (ja)
KR (1) KR20080087804A (ja)
CN (1) CN101346713B (ja)
BR (1) BRPI0618302A8 (ja)
RU (1) RU2445688C2 (ja)
WO (1) WO2007078593A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110276A (ja) * 2007-10-30 2009-05-21 Toshiba Corp 顧客対応作成管理装置、顧客対応管理システム、及び顧客対応作成管理プログラム
JP2011008506A (ja) * 2009-06-25 2011-01-13 Fuji Xerox Co Ltd 文書処理装置、文書処理プログラム、及び文書フローシステム

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412513B2 (en) * 2003-11-14 2008-08-12 Microsoft Corporation Systems and methods for using metrics to control throttling and swapping in a message processing system
US8849691B2 (en) 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
US8429668B2 (en) * 2007-12-07 2013-04-23 Sap Ag Workflow task re-evaluation
US10169199B2 (en) 2008-06-10 2019-01-01 Microsoft Technology Licensing, Llc Automatic model-specific debugger extensions
EP2199960A1 (en) * 2008-12-17 2010-06-23 Accenture Global Services GmbH Manufacturing collaboration hub data exchange interface
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
CN101741666B (zh) * 2010-02-26 2012-02-01 西安交通大学 一种通过网络结构划分来实现工作流多实例的方法
US8522256B2 (en) * 2010-10-12 2013-08-27 Microsoft Corporation Hosting non-messaging workflows in a messaging host
US8984531B2 (en) * 2011-06-01 2015-03-17 Microsoft Technology Licensing, Llc Episodic coordination model for distributed applications
US9536264B2 (en) 2011-11-14 2017-01-03 Microsoft Technology Licensing, Llc Host agnostic messaging in a continuation based runtime
KR101508496B1 (ko) * 2011-11-25 2015-04-10 서강대학교산학협력단 자산 기반의 요구사항 시뮬레이터 및 요구사항 관리 방법
US10332213B2 (en) * 2012-03-01 2019-06-25 Ricoh Company, Ltd. Expense report system with receipt image processing by delegates
US9483307B2 (en) * 2013-09-04 2016-11-01 Swiftpage Act! Llc Asynchronous, interactive task workflows
US10289411B2 (en) 2013-11-18 2019-05-14 Microsoft Technology Licensing, Llc Diagnosing production applications
KR102348354B1 (ko) * 2013-11-19 2022-01-11 국민대학교산학협력단 원격 시뮬레이션 과정을 관리하는 클라우드 서비스 제공 방법
KR102205651B1 (ko) * 2013-11-19 2021-01-21 국민대학교산학협력단 원격 시뮬레이션 과정을 관리하는 클라우드 서비스 제공 방법
EP3074845A4 (en) * 2013-11-25 2016-12-07 Yandex Europe Ag SYSTEM, METHOD AND USER INTERFACE FOR COMPUTER-BASED PLANNING OF COMPUTER TASKS
EP2933064A1 (en) * 2014-04-17 2015-10-21 Aldebaran Robotics System, method and computer program product for handling humanoid robot interaction with human
US9552562B2 (en) * 2014-09-26 2017-01-24 Oracle International Corporation Visual information builder for business rules
US9612939B2 (en) * 2014-10-29 2017-04-04 Microsoft Technology Licensing, Llc. Diagnostic workflow for production debugging
US10235337B2 (en) * 2015-06-24 2019-03-19 EMC IP Holding Company LLC Distributed work flow using database replication
US10127509B2 (en) 2015-09-17 2018-11-13 Bank Of America Corporation System for temporarily suspending a workflow associated with a work item
US10528327B2 (en) 2015-11-23 2020-01-07 Microsoft Technology Licensing Llc Workflow development system with ease-of-use features
US10353560B2 (en) 2016-04-28 2019-07-16 Microsoft Technology Licensing, Llc Debugging a flow
US10423393B2 (en) 2016-04-28 2019-09-24 Microsoft Technology Licensing, Llc Intelligent flow designer
US11169982B2 (en) * 2016-06-30 2021-11-09 Microsoft Technology Licensing, Llc Dynamic deactivation of cold database in database service
US10379826B1 (en) * 2018-03-08 2019-08-13 International Business Machines Corporation Determining inputs to an integration flow component
US10904238B2 (en) 2018-07-13 2021-01-26 Sap Se Access token management for state preservation and reuse
US11238386B2 (en) 2018-12-20 2022-02-01 Sap Se Task derivation for workflows
US11467858B2 (en) * 2019-03-27 2022-10-11 Amazon Technologies, Inc. Techniques for performing continuation workflows
US11366681B2 (en) 2019-03-27 2022-06-21 Amazon Technologies, Inc. Chaining virtual machines
US10963287B2 (en) 2019-03-27 2021-03-30 Amazon Technologies, Inc. Reducing request latency in a multi-tenant web service host
US20210089990A1 (en) * 2019-09-19 2021-03-25 Sap Se Intelligent forms platform for modeling workflow forms
US11446818B2 (en) * 2019-10-01 2022-09-20 UiPath, Inc. Resuming robotic process automation workflows based on external triggers
US11444903B1 (en) * 2021-02-26 2022-09-13 Slack Technologies, Llc Contextual discovery and design of application workflow

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003331095A (ja) * 2002-05-13 2003-11-21 Nec Software Kyushu Ltd Db管理によるワークフロー(申請承認業務)システム
JP2005063253A (ja) * 2003-08-18 2005-03-10 Knowledge Works:Kk クリニカルフロー実行方法、及び、クリニカルフロー実行システム

Family Cites Families (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490097A (en) * 1993-03-22 1996-02-06 Fujitsu Limited System and method for modeling, analyzing and executing work process plans
US5634127A (en) * 1994-11-30 1997-05-27 International Business Machines Corporation Methods and apparatus for implementing a message driven processor in a client-server environment
JP2666755B2 (ja) * 1995-01-11 1997-10-22 日本電気株式会社 ワークフローシステム
US7069451B1 (en) * 1995-02-13 2006-06-27 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5999911A (en) * 1995-06-02 1999-12-07 Mentor Graphics Corporation Method and system for managing workflow
US6272672B1 (en) * 1995-09-06 2001-08-07 Melvin E. Conway Dataflow processing with events
DE19705955A1 (de) * 1996-03-29 1997-10-02 Ibm Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung
AU2453797A (en) * 1996-04-10 1997-10-29 Paul M. Konnersman Computer-based system for work processes that consist of interdependent decisions involving one or more participants
JPH10105623A (ja) * 1996-09-27 1998-04-24 Hitachi Ltd 階層型ワークフロー管理方法及びワークフロー書類回覧方法
US5748962A (en) * 1996-09-30 1998-05-05 Mci Communications Corporation Common channels for inter-application communications
US6041306A (en) * 1996-12-05 2000-03-21 Hewlett-Packard Company System and method for performing flexible workflow process execution in a distributed workflow management system
JPH10207939A (ja) * 1997-01-17 1998-08-07 Nec Corp ワークフローシステム
EP0854431A3 (en) * 1997-01-20 2001-03-07 International Business Machines Corporation Events as activities in process models of workflow management systems
US6047260A (en) * 1997-06-05 2000-04-04 Attention Control Systems, Inc. Intelligent planning and calendaring system with cueing feature and floating tasks
US5960404A (en) * 1997-08-28 1999-09-28 International Business Machines Corp. Mechanism for heterogeneous, peer-to-peer, and disconnected workflow operation
US6108711A (en) * 1998-09-11 2000-08-22 Genesys Telecommunications Laboratories, Inc. Operating system having external media layer, workflow layer, internal media layer, and knowledge base for routing media events between transactions
US5999910A (en) * 1997-10-06 1999-12-07 Fmr Corp. Processing a workflow item
CA2226062A1 (en) * 1997-12-31 1999-06-30 Ibm Canada Limited-Ibm Canada Limitee Workflow mechanism for a stateless environment
US6339838B1 (en) * 1998-01-02 2002-01-15 At&T Corp. Control of commercial processes
JPH11306244A (ja) * 1998-04-16 1999-11-05 Hitachi Ltd ワーク管理システム
US6134559A (en) * 1998-04-27 2000-10-17 Oracle Corporation Uniform object model having methods and additional features for integrating objects defined by different foreign object type systems into a single type system
US6430538B1 (en) * 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
US6442528B1 (en) * 1998-06-05 2002-08-27 I2 Technologies Us, Inc. Exemplar workflow used in the design and deployment of a workflow for multi-enterprise collaboration
US6397191B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Object-oriented workflow for multi-enterprise collaboration
US6282531B1 (en) * 1998-06-12 2001-08-28 Cognimed, Llc System for managing applied knowledge and workflow in multiple dimensions and contexts
US6772407B1 (en) * 1998-10-02 2004-08-03 International Business Machines Corporation Staging objects in workflow management systems
US6820118B1 (en) * 1999-01-20 2004-11-16 International Business Machines Corporation Method and system for providing a linkage between systems management systems and applications
DE10003015A1 (de) * 1999-02-06 2000-08-17 Ibm Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen
US6499023B1 (en) * 1999-02-19 2002-12-24 Lucent Technologies Inc. Data item evaluation based on the combination of multiple factors
US6473794B1 (en) * 1999-05-27 2002-10-29 Accenture Llp System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework
US8862507B2 (en) 1999-06-14 2014-10-14 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US6539396B1 (en) * 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
US6434568B1 (en) * 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
JP2001084320A (ja) * 1999-09-13 2001-03-30 Oki Electric Ind Co Ltd ワークフロー管理システム
US6769113B1 (en) * 1999-10-08 2004-07-27 International Business Machines Corporation Enterprise process models and enterprise application for information technologies
KR100377189B1 (ko) 1999-12-24 2003-03-28 한국전자통신연구원 워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법
US6968503B1 (en) 2000-03-09 2005-11-22 Quovadx, Inc. XML user interface for a workflow server
RU2191425C2 (ru) * 2000-04-03 2002-10-20 Северо-Кавказский региональный центр информатизации высшей школы Способ оптимизации параллельной обработки информации для минимизации ее времени
US7503033B2 (en) * 2000-04-28 2009-03-10 Microsoft Corporation Model for business workflow processes
US6772216B1 (en) * 2000-05-19 2004-08-03 Sun Microsystems, Inc. Interaction protocol for managing cross company processes among network-distributed applications
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
JP2001356907A (ja) * 2000-06-09 2001-12-26 Ibm Japan Ltd 処理コード情報を有するデータベース・システムおよび情報処理システム
AU2001269886A1 (en) * 2000-06-15 2002-01-14 Xis Incorporated Method and system for product lifecycle management
US6854016B1 (en) * 2000-06-19 2005-02-08 International Business Machines Corporation System and method for a web based trust model governing delivery of services and programs
US7219304B1 (en) * 2000-06-19 2007-05-15 International Business Machines Corporation System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US6859217B2 (en) * 2000-07-19 2005-02-22 Microsoft Corporation System and method to display and manage data within hierarchies and polyarchies of information
US20020038450A1 (en) 2000-08-03 2002-03-28 International Business Machines Corporation Method and system to run stored procedures as workflow activity implementations
AU2001286848A1 (en) * 2000-08-28 2002-03-13 Michael D. Harold System and method for transmitting and retrieving data via a distributed persistence framework
US20020188597A1 (en) * 2000-09-01 2002-12-12 Jonathan Kern Methods and systems for linking tasks to workflow
WO2002021314A2 (en) 2000-09-08 2002-03-14 Asera, Inc. Integrated design environment for a commerce server system
US7653566B2 (en) * 2000-11-30 2010-01-26 Handysoft Global Corporation Systems and methods for automating a process of business decision making and workflow
US6801227B2 (en) * 2001-01-16 2004-10-05 Siemens Medical Solutions Health Services Inc. System and user interface supporting user navigation and concurrent application operation
US6675133B2 (en) * 2001-03-05 2004-01-06 Ncs Pearsons, Inc. Pre-data-collection applications test processing system
US6847974B2 (en) * 2001-03-26 2005-01-25 Us Search.Com Inc Method and apparatus for intelligent data assimilation
US6966049B2 (en) * 2001-04-24 2005-11-15 Heuristics Physics Laboratories, Inc. Software development tool employing workflows for developing user interactive programs
JP2002324155A (ja) * 2001-04-26 2002-11-08 Hitachi Ltd ワークフロー・システムおよびプログラム
US6941514B2 (en) * 2001-04-30 2005-09-06 Bellsouth Intellectual Property Corporation System and method for priority-based work order scheduling
US6983421B1 (en) * 2001-06-22 2006-01-03 I2 Technologies Us, Inc. Using connectors to automatically update graphical user interface elements at a client system according to an updated state of a configuration
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US7100147B2 (en) * 2001-06-28 2006-08-29 International Business Machines Corporation Method, system, and program for generating a workflow
GB2377779A (en) * 2001-07-18 2003-01-22 Hewlett Packard Co Computer apparatus for implementing a workflow with graphical representation
US20030023622A1 (en) * 2001-07-27 2003-01-30 Liaison Technology, Inc. Manual activity persistence in content management workflow systems
AU2002355575A1 (en) 2001-08-08 2003-02-24 Trivium Systems Inc. Scalable messaging platform for the integration of business software components
US20030135384A1 (en) 2001-09-27 2003-07-17 Huy Nguyen Workflow process method and system for iterative and dynamic command generation and dynamic task execution sequencing including external command generator and dynamic task execution sequencer
US20030078975A1 (en) * 2001-10-09 2003-04-24 Norman Ken Ouchi File based workflow system and methods
AU2002347926A1 (en) 2001-10-18 2003-04-28 Bea Systems, Inc. System and method for invoking business functionality for a workflow
US20030090514A1 (en) * 2001-10-23 2003-05-15 Cole Douglas J. Business process user interface generation system and method
US7389335B2 (en) * 2001-11-26 2008-06-17 Microsoft Corporation Workflow management based on an integrated view of resource identity
US7370335B1 (en) * 2001-11-29 2008-05-06 Vignette Corporation System and method for providing a public application program interface
US7865867B2 (en) * 2002-03-08 2011-01-04 Agile Software Corporation System and method for managing and monitoring multiple workflows
US20030233374A1 (en) 2002-03-14 2003-12-18 Ulrich Spinola Dynamic workflow process
US20030217054A1 (en) * 2002-04-15 2003-11-20 Bachman George E. Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution
US7627631B2 (en) * 2002-05-02 2009-12-01 Bea Systems, Inc. Systems and methods for collaborative business plug-ins
US7149747B1 (en) * 2002-06-27 2006-12-12 Siebel Systems, Inc. Dynamic generation of user interface components
AU2003262702A1 (en) * 2002-08-23 2004-03-11 Jway Group, Inc. Extensible user interface (xui) framework and development environment
US20040078105A1 (en) * 2002-09-03 2004-04-22 Charles Moon System and method for workflow process management
WO2004038556A2 (en) * 2002-10-23 2004-05-06 David Theiler Method and apparatus for managing workflow
US20040103014A1 (en) * 2002-11-25 2004-05-27 Teegan Hugh A. System and method for composing and constraining automated workflow
US7299244B2 (en) 2002-12-10 2007-11-20 Hewlett-Packard Development Company, L.P. System and method for dynamic sequencing of a requirements-based workflow
US7448024B2 (en) 2002-12-12 2008-11-04 Bea Systems, Inc. System and method for software application development in a portal environment
US7272820B2 (en) * 2002-12-12 2007-09-18 Extrapoles Pty Limited Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity
US7171664B2 (en) * 2002-12-16 2007-01-30 International Business Machines Corporation Content management system and method of employing extensible workflow entities with user-defined attributes in an object-oriented framework
US7711694B2 (en) * 2002-12-23 2010-05-04 Sap Ag System and methods for user-customizable enterprise workflow management
US7409674B2 (en) * 2002-12-26 2008-08-05 Research In Motion Limited System and method of creating and communicating with component based wireless applications
US7555538B2 (en) 2002-12-26 2009-06-30 Research In Motion Limited System and method for building and execution of platform-neutral generic services' client applications
GB2396928A (en) 2003-01-04 2004-07-07 Quicksilva Ltd Business process management tool framework
US20040162741A1 (en) * 2003-02-07 2004-08-19 David Flaxer Method and apparatus for product lifecycle management in a distributed environment enabled by dynamic business process composition and execution by rule inference
US6839062B2 (en) * 2003-02-24 2005-01-04 Microsoft Corporation Usage semantics
US20050022164A1 (en) 2003-02-25 2005-01-27 Bea Systems, Inc. Systems and methods utilizing a workflow definition language
US20050044173A1 (en) * 2003-02-28 2005-02-24 Olander Daryl B. System and method for implementing business processes in a portal
US20050005259A1 (en) * 2003-03-14 2005-01-06 Infowave Software, Inc. System and method for communication and mapping of business objects between mobile client devices and a plurality of backend systems
US7370333B2 (en) * 2003-06-02 2008-05-06 Microsoft Corporation Efficient processing of a convoy workflow scenario in a message driven process
US7876705B2 (en) * 2003-06-25 2011-01-25 Schlumberger Technology Corporation Method and apparatus and program storage device for generating a workflow in response to a user objective and generating software modules in response to the workflow and executing the software modules to produce a product
JP2005050318A (ja) * 2003-07-16 2005-02-24 Ricoh Co Ltd ワークフロー管理装置、ワークフロー管理方法、ワークフロー管理プログラム及び記録媒体
CA2443454A1 (en) * 2003-09-11 2005-03-11 Teamplate Inc. Data binding method in workflow system
US20050096959A1 (en) * 2003-10-31 2005-05-05 Microsoft Corporation Rule engine method and system
US7698383B2 (en) * 2004-02-27 2010-04-13 Research In Motion Limited System and method for building component applications using metadata defined mapping between message and data domains
US20050203757A1 (en) * 2004-03-11 2005-09-15 Hui Lei System and method for pervasive enablement of business processes
US7881233B2 (en) * 2004-09-01 2011-02-01 Cisco Technology, Inc. Techniques for planning a conference using location data
US7464366B2 (en) * 2004-10-01 2008-12-09 Microsoft Corporation Programming interface for a componentized and extensible workflow model
US7792693B2 (en) 2005-02-25 2010-09-07 Novell, Inc. Distributed workflow techniques
US8140373B2 (en) * 2005-04-07 2012-03-20 International Business Machines Corporation Data driven dynamic workflow
US8230042B2 (en) * 2005-04-19 2012-07-24 International Business Machines Corporation Policy based auditing of workflows
US7363628B2 (en) * 2005-06-27 2008-04-22 Microsoft Corporation Data centric and protocol agnostic workflows for exchanging data between a workflow instance and a workflow host
US7680683B2 (en) 2005-12-29 2010-03-16 Microsoft Corporation Dynamically repositioning workflow by end users
US20070156486A1 (en) 2005-12-29 2007-07-05 Microsoft Corporation Multiple concurrent workflow persistence schemes
US20070156487A1 (en) 2005-12-29 2007-07-05 Microsoft Corporation Object model on workflow
US8849691B2 (en) 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
US20070245300A1 (en) * 2006-03-22 2007-10-18 Benjamin Chan Apparatus, system, and method for presenting project scheduling information in combination with workflow information
US7739135B2 (en) * 2006-03-30 2010-06-15 Microsoft Corporation Asynchronous fault handling in process-centric programs
US8069439B2 (en) * 2006-03-30 2011-11-29 Microsoft Corporation Framework for modeling continuations in workflows
US20070239505A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Abstract execution model for a continuation-based meta-runtime
US20070239498A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Framework for modeling cancellation for process-centric programs
US8024405B2 (en) 2006-03-30 2011-09-20 Microsoft Corporation Declarative model for concurrency-control across lightweight threads
JP2007279838A (ja) * 2006-04-03 2007-10-25 Ibm Japan Ltd 情報処理装置、方法およびプログラム
US20080040417A1 (en) * 2006-08-09 2008-02-14 Gearworks, Inc. System and method for allocating workflow operations to a computing device
US9183011B2 (en) * 2006-10-31 2015-11-10 Oracle America Inc. Method and system for runtime environment emulation
US7506001B2 (en) * 2006-11-01 2009-03-17 I3Solutions Enterprise proposal management system
US20080243524A1 (en) 2007-03-28 2008-10-02 International Business Machines Corporation System and Method for Automating Internal Controls
WO2008152687A1 (ja) 2007-06-11 2008-12-18 Fujitsu Limited ワークフロー定義変更プログラム、ワークフロー定義変更方法およびワークフロー定義変更装置
US7827127B2 (en) * 2007-10-26 2010-11-02 Microsoft Corporation Data scoping and data flow in a continuation based runtime
US8868532B2 (en) 2008-08-08 2014-10-21 Microsoft Corporation Message exchange pattern rendezvous abstraction
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
US8307368B2 (en) 2009-05-26 2012-11-06 Microsoft Corporation Locality-based scheduling in continuation-based runtimes
US20100324948A1 (en) * 2009-06-18 2010-12-23 Microsoft Corporation Managing event timelines
US9536264B2 (en) * 2011-11-14 2017-01-03 Microsoft Technology Licensing, Llc Host agnostic messaging in a continuation based runtime

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003331095A (ja) * 2002-05-13 2003-11-21 Nec Software Kyushu Ltd Db管理によるワークフロー(申請承認業務)システム
JP2005063253A (ja) * 2003-08-18 2005-03-10 Knowledge Works:Kk クリニカルフロー実行方法、及び、クリニカルフロー実行システム

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSND200001178009; '使える!アプリケーションサーバー活用法 樋口研究室 第15回' Notes/Domino Magazine 第5巻,第8号, 20000801, p.136-141, ソフトバンクパブリッシング株式会社 *
CSND200100007002; 'アプリケーションサーバ新時代 EJBコンポーネントが流通するソフトウェア"工業"の21世紀' Computopia Vol.35,No.410, 20001101, p.024-025, 株式会社コンピュータ・エージ社 *
CSND200100731006; 'J2EEアプリを透過的なサービスにBEAのCTO、スコット・ディッゼンが語るWebサービスの全貌 BE' Computopia Vol.36,No.420, 20010901, p.084-089, 株式会社コンピュータ・エージ社 *
JPN6012055789; '使える!アプリケーションサーバー活用法 樋口研究室 第15回' Notes/Domino Magazine 第5巻,第8号, 20000801, p.136-141, ソフトバンクパブリッシング株式会社 *
JPN6012055791; 'アプリケーションサーバ新時代 EJBコンポーネントが流通するソフトウェア"工業"の21世紀' Computopia Vol.35,No.410, 20001101, p.024-025, 株式会社コンピュータ・エージ社 *
JPN6012055792; 'J2EEアプリを透過的なサービスにBEAのCTO、スコット・ディッゼンが語るWebサービスの全貌 BE' Computopia Vol.36,No.420, 20010901, p.084-089, 株式会社コンピュータ・エージ社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110276A (ja) * 2007-10-30 2009-05-21 Toshiba Corp 顧客対応作成管理装置、顧客対応管理システム、及び顧客対応作成管理プログラム
JP2011008506A (ja) * 2009-06-25 2011-01-13 Fuji Xerox Co Ltd 文書処理装置、文書処理プログラム、及び文書フローシステム

Also Published As

Publication number Publication date
CN101346713A (zh) 2009-01-14
EP1969484A1 (en) 2008-09-17
BRPI0618302A2 (pt) 2011-08-23
KR20080087804A (ko) 2008-10-01
US20150206079A1 (en) 2015-07-23
EP1969484A4 (en) 2011-06-22
US9710773B2 (en) 2017-07-18
RU2008126237A (ru) 2010-01-10
BRPI0618302A8 (pt) 2016-12-20
RU2445688C2 (ru) 2012-03-20
US20070156485A1 (en) 2007-07-05
CN101346713B (zh) 2011-10-26
US8849691B2 (en) 2014-09-30
WO2007078593A1 (en) 2007-07-12

Similar Documents

Publication Publication Date Title
US9710773B2 (en) Modeling user input and interaction in workflow based applications
JP2009522647A (ja) ワークフローのオブジェクトモデル
RU2433463C2 (ru) Динамическое перепозиционирование потока работ конечными пользователями
US9660884B2 (en) Providing a monitoring service in a cloud-based computing environment
US10185937B1 (en) Workflow support for an annotations-based generic load generator
US20070156486A1 (en) Multiple concurrent workflow persistence schemes
US20160055079A1 (en) Software application lifecycle management
US20140177821A1 (en) System and method for testing and deploying rules
US20200074539A1 (en) Debt resolution planning platform
WO2022087581A1 (en) Quantifying usage of robotic processs automation related resources
US20200293977A1 (en) System and method for concurrent processing of work items
US20230333882A1 (en) Systems and methods for creating workflows by chaining microapps in a workspace platform
US20220100953A1 (en) System and method for autoproducing a form
Ding BMC Control-M 7: A Journey from Traditional Batch Scheduling to Workload Automation
Xin Application of workflow management systems in e-services
Haitao Application of workflow management systems in e-services
Zhao Workflow Management System Analysis and Construction Design Framework for Large-scale Enterprise

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130125

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130705