JP2009522647A - ワークフローのオブジェクトモデル - Google Patents

ワークフローのオブジェクトモデル Download PDF

Info

Publication number
JP2009522647A
JP2009522647A JP2008548547A JP2008548547A JP2009522647A JP 2009522647 A JP2009522647 A JP 2009522647A JP 2008548547 A JP2008548547 A JP 2008548547A JP 2008548547 A JP2008548547 A JP 2008548547A JP 2009522647 A JP2009522647 A JP 2009522647A
Authority
JP
Japan
Prior art keywords
workflow
computer
instance
host
custom
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
JP2008548547A
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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009522647A publication Critical patent/JP2009522647A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

ワークフローおよび管理動作のビューを、実際のワークフローインスタンスへのアクセスを供給するアクセスコンポーネントを介してオブジェクト化するシステムおよび方法。本発明により、実行時に対話用にカスタム機能を定義することができる。例えば、カスタム機能(例えば、強く型付けされたワークフロー)には、メソッド(複数も可)、イベント(複数も可)、プロパティ(複数も可)、インターフェース等が含まれ得る。したがって、ワークフローをオブジェクト型またはクラスとして公開でき、そこで、新しいメンバを追加してワークフローを拡張できる。

Description

本発明は、ワークフローおよび管理動作のビューをオブジェクト化するシステムおよび方法に関する。
一般的に、今日企業で利用されるすべてのソフトウェアは、ビジネスプロセスをサポートする。かかるプロセスの一部は完全に自動化され、アプリケーション間の通信のみに依存する一方、その他のプロセスはユーザに依存してプロセスを開始したり、プロセスが使用するドキュメントを承認したり、発生した例外状況を解決したりする。いずれの場合も、プロセスに関わるユーザおよびソフトウェアのアクティビティを記述する、ワークフローと呼ばれる独立した一連のステップを指定するのが一般的である。かかるワークフローを定義すれば、その定義を中心にアプリケーションを構築してビジネスプロセスをサポートできる。
言い換えると、ワークフローは一般に、かかる組織における情報および制御の流れである。企業は、効果的に競争を行うために、かかるプロセスの定義、文書化および合理化に継続的に取り組む。ビジネス環境において、これらのプロセスには、販売および注文の処理、購入タスク、在庫の制御および管理、製造および生産の制御、出荷および入荷、買掛金勘定等が含まれる。
コンピュータシステムおよび関連するソフトウェアは現在、企業および他の組織がワークフローを改善するために使用できるツールを提供している。ソフトウェアツールを使用すると、ビジネスワークフローのプロセスまたはスケジュールをモデル化し、非効率性と考えられる改善とを特定することができる。加えて、プロセスにユーザ間、部署間、工場間、さらには個別の企業間でのデータ交換が含まれる場合は、コンピュータシステムおよびコンピュータネットワークを使用して、かかる交換を実装できる。これらのシステムおよびソフトウェアツールではさらに、ビジネス関連情報に典型的に関連する大規模な計算ならびに他のデータ処理または情報処理を実装できる。
したがって、ワークフロー管理には、情報の流れの効果的な管理と、組織のビジネスプロセスの効果的な制御とが含まれ、かかる情報処理の自動化が現代のビジネス世界における多数の効率向上につながった。さらに、ワークフロー管理のかかる自動化は現在、企業および他の組織が、インターネット等のグローバルコンピュータネットワークを含むコンピュータシステムでワークフロートランザクションを実行することにより、パフォーマンスをさらに向上させることを可能にしている。
典型的なワークフローベースアプリケーションでは、複数の条件を満たすことがしばしば求められる。例えば、かかる条件の1つは、ビジネスルールに基づいて意思決定を行う機能である。これには、単純なルール(例えば、信用調査の結果に基づくイエスかノーかの意思決定等)と、より複雑なルール(例えば、最初の引き受けの意思決定を行うために評価する必要がある、潜在的に大きなセット)とが含まれ得る。別の要件は、ワークフローの外部にある他のソフトウェアおよび他のシステムとの通信である。例えば、最初の要求をアプリケーションの一部分から受け取ることがある一方で、一部の態様(例えば、信用サービスへの連絡)では他のWebサービスまたは技術を使用した通信が必要なことがある。さらに満たす必要がある条件は、ワークフローとユーザの適切な対話である。例えば、ワークフローでは通常、ユーザインターフェースを独自に表示できるか、または他のソフトウェアを通じて人間と対話できる必要がある。さらに満たす必要がある別の条件は、ワークフローの存続期間を通じて状態を維持する機能である。したがって、ワークフローをソフトウェアで作成および実行することには、独特の難題が伴う。
例えば、一部のビジネスプロセスは、完了するまでに数時間、数日、または数週間かかることがあり、かかる期間にわたってワークフローの現在の状態に関する情報を維持するのは負担が大きい。さらに、かかる種類の長期的なワークフローはまた、典型的には他のソフトウェアと非ブロッキング方式で通信し、非同期通信によって困難が生じることがある。同時に、ソフトウェア間の固定対話をモデリングするのは比較的容易だが、消費者はビジネスプロセスをその場で変更する機能等の追加の柔軟性を継続的に求める傾向がある。多様なアプリケーションを扱うことで、ワークフローの作成および管理にまつわる複雑さはさらに増す可能性がある。
ワークフローツール用のアプリケーションの多くは、企業または組織にとって内的である。モデムまたは他の種類の通信リンクを備えたネットワークコンピュータの出現により、現在では遠隔地にあるコンピュータシステムが互いに容易に通信できる。そのような強化された通信により、コンピュータシステムのワークフローアプリケーションを1つの企業内の離れた施設間で使用することが可能になる。例として、顧客注文を適切な販売員に確認してもらうために企業本社から遠隔地の営業所に転送し、確認を本社に返す処理が含まれよう。ワークフローアプリケーションはまた、異なる企業間のビジネストランザクションの処理における特定のユーティリティにもなり得る。典型的なアプリケーションでは、売り手と買い手の関係にある2つの企業が、購入注文、製品出荷、請求、および集金の生成と処理とを自動化することを望む場合がある。
例えば、顧客関係管理(customer relationship management:CRM)等の特定の問題または財務サービス等の特定の垂直市場を対象とするアプリケーションは、ワークフローを中心に構築できる。かかる種類のアプリケーションは、一般にいくつかの異なるビジネスプロセスを実装する。これらのプロセスを駆動するロジックをWindows(登録商標)Workflow Foundation等の共通ワークフロー基盤上で構築すると、アプリケーションの構築を高速化し、変更を迅速化し、カスタマイズを容易にすることができる。さらに、かかるプロセスを自動化すると、効率が大幅に向上することがあり、これは他のやり方では実現できない。ただし、ワークフロー技術のかかる企業間アプリケーションでは、企業の協力と、個々の企業の既存のコンピュータシステムおよびアプリケーションの適切なインターフェイシングと適切な永続化サービス実装とが必要である。
これまで、ワークフロースケジュールを定義することによってビジネスワークフローを自動化するための何らかの機能を提供するワークフローアプリケーションツールが開発されてきた。それでもなお、問題空間(problem space)(企業/プロセスドメイン)で見られるオブジェクトと、ソリューション(実際のワークフローモデル/定義)で利用されるオブジェクトとの間にさらに高度な同形性(isomorphism)を確立する機能は厄介であり、にもかかわらず高品質なソフトウェアにとっての重要な要件であると考えられる。
したがって、従来のシステムおよびデバイスに関連する前述の例示的欠点を克服することが求められている。
特許請求の範囲に記載された主題のいくつかの態様についての基本的な知識を提供するために、以下に簡単な概要を示す。この概要は広範な要約ではない。この概要は、特許請求の範囲に記載された主題の主要または重要な構成要素を識別したり、特許請求の範囲に記載された主題の範囲を線引きしたりするものではない。この概要の唯一の目的は、後述するより詳細な説明への前置きとして、いくつかの概念を簡単な形式で示すことである。
本発明は、ワークフローおよび管理動作のビューを、ワークフローインスタンスへのホストアクセスを提供するアクセスコンポーネント(例えば、GetWorkflow<workflow>メソッド)を介してオブジェクト化するシステムおよび方法を提供するが、そこでは実行時に対話用にカスタム機能を定義することができる。かかるカスタム機能(例えば、強く型付けされたワークフロー)には、プロパティ(複数も可)、メソッド(複数も可)、イベント(複数も可)、インターフェース等が含まれ得る。さらに、本発明は、ワークフロー定義から作成され、典型的には実際のワークフローインスタンスオブジェクトのプロキシ、ファサード(facade)またはラッパー(wrapper)ではないワークフローインスタンスを提供する。そのため、実際のワークフローインスタンスに直接アクセスできる。したがって、ワークフローをオブジェクト型またはクラスとして公開でき、そこでは新しいメンバを追加してワークフローを拡張できる。これによって柔軟性が提供され、ユーザがカスタムプロパティと対話することが可能となる。
関連する一態様では、ホストとワークフローインスタンスとの間のデータ交換時に、カスタムメソッドおよびカスタムプロパティを呼び出すことができる。ホストは、ワークフローインスタンスと対話して、ワークフロークラスにカスタム動作を関連付けることができる。例えば、ホストはそのようなワークフローインスタンスにアクセスするためにカスタムイベントをサブスクライブし、ワークフローをオブジェクトとして操作できる。ワークフロー用のリッチ型は、プログラム的にかつ/またはビジュアルツールを通じて定義できる。
本発明の方法によると、カスタムプロパティ、カスタムメソッド、カスタムイベント等を有する新しいワークフロー定義を、基本ワークフロー定義から定義できる。さらに、ホストアプリケーションは、ワークフローインスタンスに関連する識別情報を通じて、ワークフロープロバイダからワークフローインスタンスを要求できる。この識別情報は、ワークフローのインスタンスを一意に識別するものであり、プログラム的に生成するか、またはホストアプリケーションによって割り当てる/アクセスすることができる。ワークフロープロバイダは、ワークフローのインスタンスを生成する/返すことができ、ユーザは、プロパティ、メソッド、イベント等のクラスメンバを呼び出すことによってかかるインスタンスと対話できる。その後、かかる対話が完了したときに、ワークフローインスタンスを保存できる。
前述および関連する目的を達成するために、特許請求の範囲に記載された主題の特定の例示的態様が、以下の説明および添付の図面を通じて本明細書で説明されている。これらの態様は、主題を実施し得る種々の方法を示しており、それらの方法のすべては特許請求の範囲に記載された主題の範囲内に含まれるように意図される。他の利点および新しい機能は、以下の詳細な説明を図面と組み合わせて検討することで明らかになり得る。
本発明の様々な態様を、添付の図面を参照して説明するが、これらの図面を通して、同様の符号は同様の要素または対応する要素を示す。ただし、図面と図面に関連する詳細な説明とは、特許請求の範囲に記載された主題を、開示されている特定の形式に制限するものではないことを理解されたい。むしろ目的は、特許請求の範囲に記載された主題の趣旨および範囲に含まれるすべての変形、均等物および代替物を網羅することである。
本明細書で使用される「コンポーネント」、「システム」、「サービス」等の用語は、コンピュータ関連の実体、すなわちハードウェアと、ハードウェアおよびソフトウェアの組合せと、ソフトウェアと、実行中のソフトウェアとのいずれかを示すものである。例えば、コンポーネントは、プロセッサで実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド(thread of execution)、プログラムおよび/またはコンピュータであり得るが、これに限定されるものではない。例として、コンピュータで実行されるアプリケーションとコンピュータとは、いずれもコンポーネントになり得る。1つまたはそれ以上のコンポーネントが1つのプロセス内に存在することがあり、かつ/または実行のスレッドとコンポーネントとが1台のコンピュータ上でローカル化されることがあり、かつ/または実行のスレッドとコンポーネントとが2台またはそれ以上のコンピュータ間で分散されることがある。
「例示的」という用語は、本明細書では実施例、事例、または例示としての役割を果たすことを意味するために使用されている。本明細書で「例示的」と説明されているすべての態様または設計は、必ずしも他の態様または設計よりも好ましいまたは優れていると解釈されるべきものではない。
さらに、開示される主題は、標準的なプログラミングおよび/またはエンジニアリングのテクニックを使用して、本明細書で詳細に示される態様を実装するようにコンピュータまたはプロセッサベースのデバイスを制御するソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを製作することで、システム、メソッド、装置または製品として実装し得る。本明細書で使用されるコンピュータプログラムという用語は、コンピュータで読み取り可能な任意のデバイス、キャリアまたはメディアからアクセス可能なコンピュータプログラムを網羅するものである。例えば、コンピュータで読み取り可能なメディアには、磁気ストレージデバイス(例えば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストライプ等)、光学ディスク(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)等)、スマートカードおよびフラッシュメモリデバイス(例えば、カード、スティック)が含まれ得るがこれに限定されるものではない。加えて、電子メールの送受信あるいはインターネットまたはローカルエリアネットワーク(LAN)等のネットワークへのアクセスで使用されるような、コンピュータで読み取り可能な電子データを伝送するために、搬送波を利用できることを理解されたい。もちろん、当業者は、特許請求の範囲に記載された主題の範囲および趣旨から離れることなく、この構成に多数の変更を加えられることを認識するであろう。
最初に図1を参照すると、ホスト110にワークフローインスタンスへのアクセスを提供するワークフローシステム130のブロック図が示されており、そこでは実行時に対話用にカスタム機能を定義することができる。かかるカスタム機能(例えば、強く型付けされたワークフロー)には、メソッド(複数も可)、イベント(複数も可)、インターフェース等が含まれ得る。ワークフローでは、アクティビティの図解として定義されるユーザまたはシステムのプロセスをモデル化できる。アクティビティは、ワークフロー内の行為であり、ワークフローの実行、再使用および編成の単位である。アクティビティの図解は、ルール、行為、状態、およびアクティビティの関係を表す。典型的には、ホスト110によって示されるように、いくつかのルールに応じて、ワークフローはワークフローエンジン/ランタイム150を介して実行され、ワークフローランタイムにはワークフローランタイムをホストする外部アプリケーションが必要である。
ホスト110は、ワークフローインスタンスへのアクセスを提供するアクセスコンポーネント120を介して、ワークフローシステム130と対話するが、そこでは実行時に対話用にカスタム機能を定義できる。かかるカスタム機能(例えば、強く型付けされたワークフロー)には、メソッド(複数も可)、イベント(複数も可)、プロパティ(複数も可)、インターフェース等が含まれ得る。したがって、ワークフローをオブジェクト型またはクラスとして公開でき、そこでは新しいメンバを追加してワークフローを拡張できる。これによって柔軟性が提供され、ユーザがカスタムプロパティと対話することが可能になる。
さらに、以下に詳細に説明するように、かかるアクセスコンポーネント120を通じて、ホスト110はワークフローシステム130のワークフローインスタンスとデータを交換できる。ホスト110は、1つまたは複数のワークフローの作成、ワークフローを適切に実行するための必要性に応じた様々なコンポーネント間の呼び出しのマーシャリング(marshaling)、および分離メカニズムの設定等、いくつかの追加の態様および重要な態様を担うことができる。加えて、ホスト110は、スケーラビリティ上の理由で複数のプロセスを作成してマシン内の複数のCPUを利用するか、またはマシンのファーム上で大量のワークフローインスタンスを実行することができる。ホスト110はさらに、ワークフローが長時間待機する場合に適用するポリシーを制御したり、特定のイベントをリッスンしてユーザまたは管理者に伝えたり、各ワークフローのタイムアウトおよび再試行を設定したり、パフォーマンスカウンタを公開したり、デバッグおよび分析の目的でログ情報を書き込んだりすることができる。
ワークフローシステム130に関連するワークフローは、外部の世界と通信するために特に確立されたサービスを通じて外部の世界と通信できるが、そこではかかるサービスはワークフロー内のイベント駆動型アクティビティがフックアップ(hook up)するイベントを発生させることができる。同様に、このサービスは、ワークフローが呼び出してデータをホスト110に送信するためのパブリックメソッドを公開する。ワークフローは、コンピュータシステムでの実行用のスケジュールの形式で定義できる。スケジュールには、指定された同時実行、依存関係およびトランザクションの属性が関連付けられた行為のセットが含まれ得る。各スケジュールは関連するスケジュール状態を持ち、このスケジュール状態には、スケジュールの定義と、スケジュール内の現在の位置とに加えて、スケジュールに関連するアクティブまたはライブのデータおよびオブジェクトが含まれる。スケジュール内には、行為のグループ分けに基づいて、トランザクション境界が存在することがある。これに関連して、トランザクションは、個々の行為またはトランザクション、あるいはそれらのグループを包含し得る。以下にさらに説明するように、行為は、順次方式で実行されるシーケンスにグループ化できることに加えて、行為が同時に実行されるタスクにもグループ化できる。したがってグループ分けに基づき、スケジュール内の行為およびトランザクションに対して同時実行属性(concurrency attribute)が解決され得る。
図1に示されているように、アクセスコンポーネント120は、ワークフローインスタンスを作成/取得し、それをさらなる対話のためにホストアプリケーションに提供することができる。アクセスコンポーネント120は、ホスト110がプロパティ、メソッドおよびイベントにアクセスするための、ワークフローインスタンスへのハンドルを供給できる。したがって、アクセスコンポーネント120はワークフローのインスタンスを提供でき、そこではワークフローインスタンスはワークフロー型である。
以下に、アクセスコンポーネント120の例示的定義を示すが、ここでメソッドGetWorkflow<WorkflowType>は、実行中のワークフロー定義とそのカスタムプロパティ、メソッドおよびイベントへのアクセスを供給する(例えば、ワークフローがアイドル状態の場合)。このように<WorkflowType>に対して総称ベースのメカニズムを使用することで、通常は強く型付けされたワークフロー定義の型セーフな方法での取得を促進することができる。
Figure 2009522647
ここで図2を参照すると、本発明の一態様による基本ワークフロー定義210から作成される新規ワークフロー型220およびカスタムプロパティのブロック図が示されている。この型は、クラスメンバを追加することによって拡張できる。典型的には、かかるフレームワークの主要な構成単位はアクティビティである。これらのアクティビティは、関連する実行メソッドがフレームワークによって呼び出されたときに実行されるタスク(複数も可)または単一の論理作業単位を表す。各アクティビティは、プロパティ、メソッドおよびイベントで構成されるオブジェクトモデルを提供することができ、開発者はそれらに対してアプリケーションコードでプログラミングを行うことができる(例えば、UIコントロールおよびコンポーネントに対してプログラミングを行うのに似ている)。アクティビティには様々な種類が存在し、本発明では個別の当事者がUIコントロール等と同様にカスタムアクティビティを構築できる。
例えば、フレームワークでは、アクティビティ基本クラスのコアセットに加えて、いくつかの特定のアクティビティを定義できる。これには、StartActivityおよびStopActivity(ワークフロー内の開始点および停止点を表す)、CodeActivity(ワークフロー開発者がアクティビティに関連する機能をワークフロー型内のイベントハンドラで実装できるようにする)、ControlFlowActivity(ワークフロー開発者が条件およびルールに基づいて分岐ロジックをワークフローに導入できるようにする)、SuspendableActivity(ワークフロー開発者がワークフローの実行中の一時停止を、時間の観点で、または現在のユーザを切り替えることにより、モデル化できるようにする。例えば、DelayActivityおよびSwitchUserActivity)、InteractiveActivity(ワークフロー開発者が、エンドユーザからの行為によってワークフロー内の実行がいつ、どのように進むかが決まるユーザ対話ポイントをモデル化できるようにする。かかるInteractiveActivityは、有効な行為が実行されるまで実行を一時停止するSuspendableActivity型として扱うことができる)、CompositeActivity(ワークフロー開発者がアクティビティをグループ化できるようにする)、LoopActivity(含まれているアクティビティの実行を反復するCompositeActivityの一実施例)、IMultiActionActivity(複数の行為をサポートし、実行を進める前にそれらの行為のいずれかを選択することを要求するアクティビティによって実装されるインターフェース。InteractiveActivityはかかるインターフェースを実装できる)、IMultiResultActivity(実行時に考えられる結果のセットのいずれかを生成するアクティビティによって実装されるインターフェース。ControlFlowActivityはこのインターフェースを実装する)、ならびにISuspendableActivity(特定の待機条件のセットについてワークフローの実行を一時停止することができるアクティビティによって実装されるインターフェース)が含まれ得る。
ワークフローは、包含されているStartActivityを実行することにより実行を開始でき、StopActivityが実行されたときに終了する。実行の過程で、各アクティビティを調べて実行可能かどうか確認することができる。例えば、アクティビティがホストから何らかの情報(例えば、メッセージ、タイマー等)を待機しているために実行を継続できない場合は、ワークフローは一時停止される。アクティビティが実行可能な場合は、関連する実行メソッドが呼び出され、このメソッドが成功の結果を返す場合は、適切なアクティビティ移行が使用されて次のアクティビティが判断される。さらに、ワークフローはその継続期間中にいくつかの理由で一時停止されることがある。これらの理由には、アクティビティの実行のキャンセル、アクティビティがホストからメッセージ、タイマー等の何らかの情報を待機しているために実行を継続できない、以降の実行を延期するために導入された特定の遅延、および以降の実行を異なるユーザによって実行することが必要なユーザコンテキストの切り替え等がある。一時停止したワークフローインスタンスは、データベースまたは同等のストレージにシリアル化し、そこから後で取得、逆シリアル化、および再開することができる。アクティビティの実行がエラーになった場合、そのエラーは処理されず、ワークフローはエラー状態に入ることもある。
図3は、ホストアプリケーション310の、ワークフローインスタンス330との対話のブロック図を示しており、そこではワークフローとの間でデータが受け渡しされるカスタムプロパティ320を基本クラス上に構築して、対話型ワークフローを形成することができる。実行の過程で、各アクティビティを調べて実行可能かどうかを確認できる。例えば、アクティビティが実行できない場合は、ワークフローを一時停止できる。アクティビティが実行可能な場合は、関連する実行メソッドを呼び出すことができ、このメソッドが成功の結果を返す場合は、適切なアクティビティ移行が使用されて次のアクティビティが判断される。例示されているように、ホストアプリケーション310は、ワークフローインスタンス330とデータを交換することができる(例えば、データの取得)。それにより、ワークフローインスタンスとホストアプリケーションとの間で、制御された/同期的なデータ交換が可能となり、そこではカスタムメソッドおよびカスタムプロパティを呼び出すことができる。したがって、ホストアプリケーション310はワークフローインスタンスと対話して、ワークフロークラスにカスタム動作を関連付けることができる。例えば、ホストはかかるワークフローインスタンスにアクセスするためにカスタムイベントをサブスクライブして、ワークフローをオブジェクトとして操作できる。さらに、ワークフローのリッチ型を、プログラム的にかつ/またはビジュアルツールを通じて定義できる。
図4は、本発明の例示的態様によりカスタム機能を利用するおよび/または新規ワークフロー定義を定義する関連方法を示している。かかる新規ワークフロー定義は、基本ワークフロー定義から定義されるカスタムプロパティ、カスタムメソッド、カスタムイベント等を持ち得る。ここでは例示的方法が様々なイベントおよび/または行為を表す一連のブロックとして例示および説明されているが、本発明はかかるブロックの例示された順序に限定されるものではない。例えば、一部の行為またはイベントは、本発明に従い、ここで例示された順序とは別に、異なる順序で発生することがあり、かつ/あるいは他の動作またはイベントと同時に発生することがある。加えて、本発明による方法を実装するために、例示されたすべてのブロック、イベントまたは行為が必要だとは限らない。さらに、本発明による例示的方法およびその他の方法は、本明細書で例示および説明される方法と関連させて実装できるだけでなく、例示または説明されていない他のシステムおよび装置と関連させて実装できることも理解されよう。最初に、410においてワークフロープロバイダが取得され、その後420において、ホストアプリケーションはワークフローインスタンスに関連する識別情報を通じて、かかるワークフロープロバイダにワークフローインスタンスを要求できる。かかる識別情報は、ワークフローのインスタンスを一意に識別するものであり、プログラム的に生成するか、またはホストアプリケーションによって割り当てることができる。430において、確認(verification)が実行されて、かかるワークフローインスタンスが存在するかどうかが調べられる。ワークフローインスタンスが存在しない場合、この方法は435において停止する。
それ以外の場合、この方法は行為440に進み、そこでワークフロープロバイダはワークフローのインスタンスを生成できる。その後、ホストアプリケーションはかかるインスタンスと450において対話でき、プロパティ、メソッド、イベント等のクラスメンバを460において呼び出す。かかる対話が完了すると、以下に詳細に説明するように、ワークフロープロセスを保存できる。
図5は、本発明の一特定態様によるプロセス間での情報の流れの例示的シーケンス図を示している。最初に、ホストアプリケーションはアクセスコンポーネント(例えば、GetWorkflow<WorkflowType>)を利用してワークフロー定義とそのカスタムプロパティ、カスタムメソッドおよびカスタムイベントを取得できる(例えば、ワークフローがアイドル状態の場合)。このように<WorkflowType>に対して総称ベースのメカニズムを使用することで、通常は強く型付けされたワークフロー定義の型セーフな方法での取得を促進することができる。カスタム機能(例えば、強く型付けされたワークフロー)には、メソッド(複数も可)、イベント(複数も可)、プロパティ(複数も可)、インターフェース等が含まれ得る。したがって、ワークフローをオブジェクト型またはクラスとして公開でき、そこでは新しいメンバを追加してワークフローを拡張できる。これによって柔軟性が提供され、ユーザがカスタムプロパティと対話することが可能となる。
ワークフロープロバイダ510は、ワークフローのインスタンスを作成/取得でき、ホストアプリケーションは、プロパティ、メソッド、イベント等のクラスメンバを呼び出すことによってかかるインスタンスと対話できる。したがって、ワークフローインスタンスの識別情報(例えば、ID番号)に基づき、ワークフローインスタンスへのアクセスが可能となる(例えば、ホストアプリケーションを介して)。ホストは、ワークフロー型/クラスに関連するカスタム動作を通じて、ワークフローインスタンスと対話できる。例えば、ホストは、かかるワークフローインスタンスにアクセスするためにカスタムイベントをサブスクライブして、ワークフローをオブジェクトとして操作できる。ワークフロー定義のリッチ型は、プログラム的にかつ/またはビジュアルツールを通じて定義できる。
図6は、ホストアプリケーションとのデータ交換時にワークフローのインスタンスを読み込むための関連方法600を示している。図6に示されているように、永続化ストア(persistence store)へのアクセスが610において提供される。この永続化ストアは、ワークフローインスタンス表現を格納する。その後、620において、ワークフローインスタンスの状態表現が、対応する永続化ストアから取得される。かかる表現は、その後630においてワークフローインスタンスに変換できる。次に、640において、ワークフローインスタンスがホストアプリケーションに提供され、そこでホストはワークフロー型/クラスに関連するカスタム動作を通じてワークフローインスタンスと対話できる。例えば、ホストは、かかるワークフローインスタンスにアクセスするためにカスタムイベントをサブスクライブして、ワークフローをオブジェクトとして操作できる。ワークフローのリッチ型は、プログラム的にかつ/またはビジュアルツールを通じて定義できる。
同様に、図7に示されているように、ワークフローのインスタンスを保存するために、ワークフローインスタンスが710において取得される。その後、720において、かかるワークフローインスタンスの表現であるワークフロー状態が生成される。ホストアプリケーションは、その後725において、プロパティ、メソッド、イベント等のクラスメンバを呼び出すことによってかかるインスタンスと対話できる。かかる対話/表現に関連するデータは、その後730において、データストアおよび/または永続化サービス実装に保存できる。これにより740において、ワークフローランタイムの保存イベントを発生させることができ、そこでワークフローインスタンスが保存および/またはアクセスされる。したがって、本発明により、カスタムプロパティ、カスタムメソッドおよびカスタムイベントを有する新しいワークフロー定義を基本ワークフロー定義から定義することが可能となる。
ワークフロープロバイダは、ワークフローのインスタンスを作成/取得でき、開発者は、プロパティ、メソッド、イベント等のクラスメンバを呼び出すことによってかかるインスタンスと対話できる。
図8は、本発明の一態様により、実行中のワークフローにアクセスする特定の方法800を示している。最初に、810において、ホストアプリケーションはワークフローインスタンスの識別情報を取得することにより、実行中のワークフローにアクセスできる。その後、820において、call loadメソッドを介してワークフローインスタンスにアクセスでき、そこでは表形式の配置(tabular arrangement)によりワークフローインスタンスが関連する識別情報(ID)に対応付けられる。次に、830において、ホストアプリケーションはワークフローと対話できる。かかる対話時に、840において、ホストはワークフローの型のカスタム動作と対話できる。例えば、ホストは、かかるワークフローインスタンスにアクセスするためにカスタムイベントをサブスクライブして、ワークフローをオブジェクトとして操作できる。ワークフローのリッチ型は、プログラム的にかつ/またはビジュアルツールを通じて定義できる。
開示される主題の様々な態様のためのコンテキストを提供するために、図9および図10、並びに以下の説明は、開示される主題の様々な態様を実装し得る適切な環境の簡潔で一般的な説明を提供するものである。この主題について、1台のコンピュータおよび/または複数のコンピュータで実行されるコンピュータプログラムのコンピュータ実行可能命令の一般的なコンテキストで上述したが、当業者は、本発明が他のプログラムモジュールと組み合わせても実装可能であることを認識するであろう。一般に、プログラムモジュールは、特定のタスクを実行するおよび/または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造体等を含む。さらに当業者は、本発明の方法が、シングルプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピューティングデバイス、メインフレームコンピュータ、さらにはパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス(例えば、携帯情報端末(PDA)、電話、腕時計等)、マイクロプロセッサベースまたはプログラム可能な家庭用電子製品または工業用電子装置等を含む他のコンピュータシステム構成でも実施できることを理解するであろう。例示された態様はまた、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施できる。ただし、本発明のすべてではないにせよ一部の態様は、スタンドアロンのコンピュータ上で実施できる。分散コンピューティング環境では、プログラムモジュールをローカルメモリストレージデバイス内およびリモートメモリストレージデバイス内の両方に配置できる。
図9を参照すると、コンピュータ912を含む、本発明の様々な態様を実装するための例示的環境910が説明されている。コンピュータ912は、処理ユニット914と、システムメモリ916と、システムバス918とを含む。システムバス918は、システムメモリ916等を含むがそれに限定されるものではないシステムコンポーネントを処理ユニット914に結合する。処理ユニット914は、種々の使用可能なプロセッサの任意のものでよい。デュアルマイクロプロセッサおよびその他のマイクロプロセッサアーキテクチャも処理ユニット914として利用できる。
システムバス918は、メモリバスまたはメモリコントローラ、周辺機器用バスまたは外部バス、ならびに/または11ビットバス、業界標準アーキテクチャ(ISA)、マイクロチャネルアーキテクチャ(MSA)、拡張ISA(EISA)、インテリジェントドライブエレクトロニクス(IDE)、VESAローカルバス(VLB)、周辺コンポーネント相互接続(PCI)、ユニバーサルシリアルバス(USB)、アドバンスドグラフィックポート(AGP)、パーソナルコンピュータメモリカード国際協会バス(PCMCIA)、スモールコンピュータシステムインターフェース(SCSI)等を含むがそれに限定されるものではない使用可能なバスアーキテクチャの任意の種類を使用するローカルバスを含む、複数の種類のバス構造のいずれかでよい。
システムメモリ916は、揮発性メモリ920と不揮発性メモリ922とを含む。起動時等にコンピュータ912内の構成要素間で情報を転送する基本ルーチンを含む基本入力/出力システム(BIOS)は、不揮発性メモリ922内に格納される。例として、不揮発性メモリ922には、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、またはフラッシュメモリが含まれ得るがこれに限定されるものではない。揮発性メモリ920には、外部キャッシュメモリとして機能するランダムアクセスメモリ(RAM)が含まれる。例として、RAMには、同期型RAM(SRAM)、ダイナミックRAM(DRAM)、同期型DRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、および拡張SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)、Direct Rambus RAM(DRRAM)等の多数の形式があるがこれに限定されるものではない。
コンピュータ912はまた、リムーバブル/非リムーバブルの揮発性/不揮発性コンピュータストレージメディアを含む。例えば、図9は、ディスクストレージ924を示している。ディスクストレージ924には、磁気ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュメモリカード、またはメモリスティック等のデバイスが含まれるがこれに限定されるものではない。加えて、ディスクストレージ924は、ストレージメディアを単独で含むか、あるいはコンパクトディスクROMドライブ(CD−ROM)、書き込み可能CDドライブ(CD−Rドライブ)、書き換え可能CDドライブ(CD−RWドライブ)、またはデジタル多目的ディスクROMドライブ(DVD−ROM)等の光学ディスクドライブを含むがこれに限定されるものではない他のストレージメディアとの組合せで含み得る。ディスクストレージデバイス924のシステムバス918への接続を容易にするために、インターフェース926等のリムーバブルまたは非リムーバブルのインターフェースが典型的に使用される。
図9は、ユーザと、適切な運用環境910内で説明される基本コンピュータリソースとの間で仲介物として機能するソフトウェアを説明していることを理解されたい。かかるソフトウェアには、オペレーティングシステム928が含まれる。ディスクストレージ924上に格納できるオペレーティングシステム928は、コンピュータシステム912のリソースを制御および割り当てるように動作する。システムアプリケーション930は、システムメモリ916内またはディスクストレージ924上に格納されるプログラムモジュール932およびプログラムデータ934を通じて、オペレーティングシステム928によるリソースの管理を利用する。本明細書で説明される様々なコンポーネントは、様々なオペレーティングシステムまたはオペレーティングシステムの組合せと共に実装できることを理解されたい。
ユーザは、入力デバイス(複数も可)936を通じて、コンピュータ912にコマンドまたは情報を入力する。入力デバイス936には、マウス、トラックボール、スタイラス、タッチパッド、キーボード、マイク、ジョイスティック、ゲームパッド、衛星放送用アンテナ、スキャナ、TVチューナカード、デジタルカメラ、デジタルビデオカメラ、Webカメラ等のポインティングデバイスが含まれるがこれに限定されるものではない。これらおよびその他の入力デバイスは、インターフェースポート(複数も可)938を介し、システムバス918を通じて処理ユニット914に接続する。インターフェースポート(複数も可)938には、例えば、シリアルポート、パラレルポート、ゲームポート、およびユニバーサルシリアルバス(USB)が含まれる。出力デバイス(複数も可)940は、入力デバイス(複数も可)936と同じ種類のポートのいくつかを使用する。したがって、例えば、USBポートを使用して入力をコンピュータ912に提供し、またコンピュータ912からの情報を出力デバイス940に出力することができる。出力アダプタ942は、特別なアダプタを必要とする他の出力デバイス940の中に、モニタ、スピーカ、プリンタ等のいくつかの出力デバイス940があることを示すために提供されている。出力アダプタ942には、例として、出力デバイス940とシステムバス918との間の接続の手段を提供するビデオカードおよびサウンドカードが含まれるがこれに限定されるものではない。リモートコンピュータ(複数も可)944等の他のデバイスおよび/またはデバイスのシステムは、入力機能と出力機能の両方を提供することに留意されたい。
コンピュータ912は、リモートコンピュータ(複数も可)944等の1台またはそれ以上のリモートコンピュータへの論理接続を使用して、ネットワーク環境で動作できる。リモートコンピュータ(複数も可)944は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースのアプライアンス、ピアデバイスまたはその他の一般的なネットワークノード等でよく、典型的にはコンピュータ912に関連して説明される構成要素の多数またはすべてを含む。話を簡単にするために、メモリストレージデバイス946のみがリモートコンピュータ(複数も可)944と共に示されている。リモートコンピュータ(複数も可)944は、ネットワークインターフェース948を通じてコンピュータ912に論理的に接続され、さらに通信接続950を介して物理的に接続される。ネットワークインターフェース948は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)等の通信ネットワークを包含する。LAN技術には、光ファイバ分散データインターフェース(FDDI)、銅線分散データインターフェース(CDDI)、イーサネット(登録商標)/IEEE 802.3、トークンリング/IEEE 802.5等が含まれる。WAN技術には、ポイントツーポイントリンク、総合デジタル通信網サービス(ISDN)およびその変形等の回線交換ネットワーク、パケット交換ネットワークならびにデジタル加入者回線(DSL)が含まれるがこれに限定されるものではない。
通信接続(複数も可)950は、ネットワークインターフェース948をバス918に接続するために利用されるハードウェア/ソフトウェアを示す。通信接続950は、例を明快にするためにコンピュータ912の内部に示されているが、コンピュータ912に対して外的でもよい。ネットワークインターフェース948への接続に必要なハードウェア/ソフトウェアには、例示のみを目的とした場合、標準電話グレードモデム、ケーブルモデムおよびDSLモデムを含むモデム、ISDNアダプタ、ならびにイーサネット(登録商標)カード等の内的および外的な技術が含まれる。
図10は、本発明のワークフロー実装を実装するために利用できるサンプルコンピューティング環境1000の概略ブロック図である。システム1000は、1つまたはそれ以上のクライアント1010を含む。クライアント(複数も可)1010は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)でよい。システム1000はまた、1つまたはそれ以上のサーバ1030を含む。サーバ1030(複数も可)もまた、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)でよい。サーバ1030は、例えば、本明細書で説明されるコンポーネントを利用することによって変換を実行するスレッドを収容できる。クライアント1010とサーバ1030との間で考えられる通信の1つは、2つまたはそれ以上のコンピュータプロセス間で転送されるのに適したデータパケットの形式であり得る。システム1000は、クライアント(複数も可)1010とサーバ(複数も可)1030との間の通信を容易にするために利用できる通信フレームワーク1050を含む。クライアント(複数も可)1010は、情報をクライアント(複数も可)1010に対してローカルに格納するために利用できる1つまたはそれ以上のクライアントデータストア1060に動作可能に接続される。同様に、サーバ(複数も可)1030は、情報をサーバ1030に対してローカルに格納するために利用できる1つまたはそれ以上のサーバデータストア1040に動作可能に接続される。
以上の説明は、様々な例示的態様を含んでいる。これらの態様を説明するためにコンポーネントまたは方法の考え得るすべての組合せを説明することはもちろん不可能だが、当業者は、さらに多くの組合せおよび置き換えが可能であることを認識し得る。したがって、本明細書で説明される態様は、添付の特許請求の範囲の趣旨および範囲に含まれるすべての代替物、改変および変形を包含するものである。さらに、用語「含む」が詳細な説明または特許請求の範囲で使用される限り、かかる用語は、「有する」が特許請求の範囲で移行語として使用されるときに解釈されるように、用語「有する」と同様に包括的である。
アクセスコンポーネントを介してワークフローと対話して、ワークフローのカスタム機能を定義するホストアプリケーションの例示的システム図である。 基本ワークフロー定義上に構築されるカスタム機能を示す図である。 基本クラス上にカスタム機能を構築できる、ワークフローインスタンスとのホストアプリケーション対話のブロック図である。 カスタムプロパティを使用してワークフロー型を利用する例示的方法を示す図である。 本発明の一特定態様によるプロセス間の情報の流れの例示的シーケンス図である。 ワークフローのインスタンスを保存する例示的方法を示す図である。 ワークフローのインスタンスを読み込むための例示的方法を示す図である。 本発明の例示的態様によるホストとワークフローインスタンスとの間のデータ交換のための別の方法を示す図である。 本発明の様々な態様を実装するための例示的環境を示す図である。 本技術の1つの態様によりワークフローをリッチ化するために利用できる追加のコンピューティング環境の概略ブロック図である。

Claims (20)

  1. コンピュータ実装システムであって、
    ホスト(110)にワークフローインスタンスへのアクセスを提供するアクセスコンポーネント(120)と、
    前記ワークフローインスタンスとのデータ交換時にカスタム機能を呼び出す前記ホスト(110)と
    の各コンピュータ実行可能コンポーネントを含むことを特徴とするコンピュータ実装システム。
  2. 前記カスタム機能は、強く型付けされたワークフローのためのメソッド、プロパティおよびイベントのうちの少なくとも1つであることを特徴とする請求項1に記載のコンピュータ実装システム。
  3. 前記ワークフローインスタンスに関連するワークフローは、オブジェクト型またはクラスとして公開可能であることを特徴とする請求項1に記載のコンピュータ実装システム。
  4. 前記ワークフローの定義は、新しいメンバを追加することによって拡張可能であることを特徴とする請求項3に記載のコンピュータ実装システム。
  5. 前記ワークフローインスタンスに関連するカスタムワークフロー定義は、前記ホストとのデータ交換時に一時停止可能であることを特徴とする請求項1に記載のコンピュータ実装システム。
  6. 前記ワークフローインスタンスを取得するワークフロープロバイダをさらに含むことを特徴とする請求項5に記載のコンピュータ実装システム。
  7. 前記ワークフローインスタンスは前記ホストの行為によって再開可能であることを特徴とする請求項5に記載のコンピュータ実装システム。
  8. ワークフロー定義は、新しいワークフロー定義の派生元となる基本クラスを有することを特徴とする請求項5に記載のコンピュータ実装システム。
  9. コンピュータ実装方法であって、
    前記ワークフローシステムのアクセスコンポーネントを介してワークフローインスタンスにアクセスする行為と、
    ホストと前記ワークフローインスタンスとの間のデータ交換時にカスタム機能を呼び出す行為と
    の各コンピュータ実行可能行為を含むことを特徴とするコンピュータ実装方法。
  10. 前記ワークフローインスタンスに関連する識別情報に基づいて前記ワークフローインスタンスを要求する行為をさらに含むことを特徴とする請求項9に記載のコンピュータ実装方法。
  11. 前記ワークフローインスタンスの存在を確認する行為をさらに含むことを特徴とする請求項10に記載のコンピュータ実装方法。
  12. 前記ホストと前記ワークフローインスタンスとの間のデータ交換時にクラスメンバを利用する行為をさらに含むことを特徴とする請求項9に記載のコンピュータ実装方法。
  13. 前記ワークフローインスタンスのためのワークフロー状態表現を生成する行為をさらに含むことを特徴とする請求項9に記載のコンピュータ実装方法。
  14. 前記ホストと前記ワークフローインスタンスとの間のデータ交換時にカスタム機能を定義する行為をさらに含むことを特徴とする請求項13に記載のコンピュータ実装方法。
  15. 前記ワークフローインスタンスに関連するワークフロー定義またはワークフロー型にカスタム動作を関連付ける行為をさらに含むことを特徴とする請求項14に記載のコンピュータ実装方法。
  16. 前記ホストがカスタムイベントをサブスクライブする行為をさらに含むことを特徴とする請求項15に記載のコンピュータ実装方法。
  17. 前記ワークフローインスタンスのリッチ型をプログラム的に定義する行為をさらに含むことを特徴とする請求項16に記載のコンピュータ実装方法。
  18. 新しいメンバを追加することによって前記ワークフロー定義またはワークフロー型を拡張する行為をさらに含むことを特徴とする請求項17に記載のコンピュータ実装方法。
  19. 保存メソッドを呼び出して前記ワークフローインスタンスを格納する行為をさらに含むことを特徴とする請求項18に記載のコンピュータ実装方法。
  20. コンピュータ実装システムであって、
    ワークフローインスタンスに関連するカスタムワークフロー定義に基づいて前記ワークフローインスタンスにアクセスするための手段(120)と、
    基本ワークフロー定義から新規ワークフローを作成するための手段(110)と
    の各コンピュータ実行可能コンポーネントを含むことを特徴とするコンピュータ実装システム。
JP2008548547A 2005-12-29 2006-12-07 ワークフローのオブジェクトモデル Pending JP2009522647A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/321,820 US20070156487A1 (en) 2005-12-29 2005-12-29 Object model on workflow
PCT/US2006/047220 WO2007078668A1 (en) 2005-12-29 2006-12-07 Object model on workflow

Publications (1)

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

Family

ID=38225704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008548547A Pending JP2009522647A (ja) 2005-12-29 2006-12-07 ワークフローのオブジェクトモデル

Country Status (8)

Country Link
US (1) US20070156487A1 (ja)
EP (1) EP1966688A4 (ja)
JP (1) JP2009522647A (ja)
KR (1) KR20080087802A (ja)
CN (1) CN101317153B (ja)
BR (1) BRPI0620869A2 (ja)
RU (1) RU2008126264A (ja)
WO (1) WO2007078668A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013530464A (ja) * 2010-06-04 2013-07-25 エムシーエル システムズ リミテド 統合ワークフロー及びデータベーストランザクション
US9304726B2 (en) 2014-01-23 2016-04-05 Konica Minolta, Inc. Printing system and control method to generate a print job from a mobile device

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8849691B2 (en) 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
US8001429B2 (en) * 2006-09-25 2011-08-16 International Business Machines Corporation Method and system for automated handling of errors in execution of system management flows consisting of system management tasks
US20090249293A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation Defining Workflow Processing Using a Static Class-Level Network in Object-Oriented Classes
US10169199B2 (en) 2008-06-10 2019-01-01 Microsoft Technology Licensing, Llc Automatic model-specific debugger extensions
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
US8265980B2 (en) * 2009-04-21 2012-09-11 International Business Machines Corporation Workflow model for coordinating the recovery of IT outages based on integrated recovery plans
US20100299631A1 (en) * 2009-05-22 2010-11-25 Weihsiung William Chow Prompt for User Input on All Workflow Activities Before Workflow Execution
US8522256B2 (en) * 2010-10-12 2013-08-27 Microsoft Corporation Hosting non-messaging workflows in a messaging host
US9536264B2 (en) * 2011-11-14 2017-01-03 Microsoft Technology Licensing, Llc Host agnostic messaging in a continuation based runtime
CN102915477A (zh) * 2012-09-17 2013-02-06 北京中电普华信息技术有限公司 一种工作流活动节点参与者扩展方法及装置
US8606599B1 (en) 2013-01-03 2013-12-10 Medidata Solutions, Inc. Apparatus and method for executing tasks
US9639830B2 (en) * 2014-03-10 2017-05-02 Aliaswire, Inc. Methods, systems, and devices to dynamically customize electronic bill presentment and payment workflows
US10504075B2 (en) * 2014-03-10 2019-12-10 Aliaswire, Inc. Methods, systems, and devices to dynamically customize electronic bill presentment and payment workflows
GB201417262D0 (en) * 2014-09-30 2014-11-12 Bizagi Group Contextual workflow management
US11231910B2 (en) 2016-12-14 2022-01-25 Vmware, Inc. Topological lifecycle-blueprint interface for modifying information-technology application
US11231912B2 (en) 2016-12-14 2022-01-25 Vmware, Inc. Post-deployment modification of information-technology application using lifecycle blueprint
US10664350B2 (en) * 2016-12-14 2020-05-26 Vmware, Inc. Failure handling for lifecycle blueprint workflows
US11249803B2 (en) * 2019-03-11 2022-02-15 Nec Corporation Usecase specification and runtime execution
US11483412B2 (en) * 2020-12-30 2022-10-25 Blackberry Limited Method for marshalling events in a publish-subscribe system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005506618A (ja) * 2001-10-18 2005-03-03 ビーイーエイ システムズ, インコーポレイテッド システム統合のためのアプリケーションビューコンポーネント
JP2005063253A (ja) * 2003-08-18 2005-03-10 Knowledge Works:Kk クリニカルフロー実行方法、及び、クリニカルフロー実行システム

Family Cites Families (86)

* 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 階層型ワークフロー管理方法及びワークフロー書類回覧方法
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
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
US6434568B1 (en) * 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US6539396B1 (en) * 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
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
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 処理コード情報を有するデータベース・システムおよび情報処理システム
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
US20020032775A1 (en) * 2000-08-28 2002-03-14 Ramesh Venkataramaiah 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
US7027997B1 (en) * 2000-11-02 2006-04-11 Verizon Laboratories Inc. Flexible web-based interface for workflow management systems
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
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
WO2003015000A1 (en) * 2001-08-08 2003-02-20 Trivium Systems Inc. Workflow engine for automating business processes in scalable multiprocessor computer platforms
US20030078975A1 (en) * 2001-10-09 2003-04-24 Norman Ken Ouchi File based workflow system and methods
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
US6975914B2 (en) * 2002-04-15 2005-12-13 Invensys Systems, Inc. Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with unified messaging interface
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
WO2004019160A2 (en) * 2002-08-23 2004-03-04 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
US7729935B2 (en) * 2002-10-23 2010-06-01 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
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
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
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
US7506001B2 (en) * 2006-11-01 2009-03-17 I3Solutions Enterprise proposal management system
US20100324948A1 (en) * 2009-06-18 2010-12-23 Microsoft Corporation Managing event timelines

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005506618A (ja) * 2001-10-18 2005-03-03 ビーイーエイ システムズ, インコーポレイテッド システム統合のためのアプリケーションビューコンポーネント
JP2005063253A (ja) * 2003-08-18 2005-03-10 Knowledge Works:Kk クリニカルフロー実行方法、及び、クリニカルフロー実行システム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND200401139012; 佐々木 政和: 'BEA WebLogic Platform8.1J上でアプリ開発からシステム統合までを実現するGUI' DB Magazine 第13巻,第8号, 20031101, p.2-9, 株式会社翔泳社 *
CSND200401139014; 中谷 喜久: 'BEA WebLogic Platform8.1J上でアプリ開発からシステム統合までを実現するGUI' DB Magazine 第13巻,第8号, 20031101, p.23-28, 株式会社翔泳社 *
JPN6012055801; 中谷 喜久: 'BEA WebLogic Platform8.1J上でアプリ開発からシステム統合までを実現するGUI' DB Magazine 第13巻,第8号, 20031101, p.23-28, 株式会社翔泳社 *
JPN6012055803; 佐々木 政和: 'BEA WebLogic Platform8.1J上でアプリ開発からシステム統合までを実現するGUI' DB Magazine 第13巻,第8号, 20031101, p.2-9, 株式会社翔泳社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013530464A (ja) * 2010-06-04 2013-07-25 エムシーエル システムズ リミテド 統合ワークフロー及びデータベーストランザクション
US9304726B2 (en) 2014-01-23 2016-04-05 Konica Minolta, Inc. Printing system and control method to generate a print job from a mobile device

Also Published As

Publication number Publication date
EP1966688A4 (en) 2010-01-20
US20070156487A1 (en) 2007-07-05
RU2008126264A (ru) 2010-01-10
KR20080087802A (ko) 2008-10-01
CN101317153A (zh) 2008-12-03
EP1966688A1 (en) 2008-09-10
WO2007078668A1 (en) 2007-07-12
CN101317153B (zh) 2012-07-04
BRPI0620869A2 (pt) 2011-11-29

Similar Documents

Publication Publication Date Title
JP2009522647A (ja) ワークフローのオブジェクトモデル
US9710773B2 (en) Modeling user input and interaction in workflow based applications
US20070156486A1 (en) Multiple concurrent workflow persistence schemes
RU2433463C2 (ru) Динамическое перепозиционирование потока работ конечными пользователями
WO2020233037A1 (zh) 数据处理方法、装置及存储介质
CN102375731B (zh) 一种免编码集成应用软件平台系统
US7653566B2 (en) Systems and methods for automating a process of business decision making and workflow
US9852382B2 (en) Dynamic human workflow task assignment using business rules
Mietzner et al. Towards provisioning the cloud: On the usage of multi-granularity flows and services to realize a unified provisioning infrastructure for saas applications
US8762933B2 (en) Converting business process models to component models in a service oriented architecture domain
US9513874B2 (en) Enterprise computing platform with support for editing documents via logical views
CN102810057A (zh) 一种记录日志的方法
US20050044173A1 (en) System and method for implementing business processes in a portal
US20060136924A1 (en) Workflow process management system including shadow process instances
US8522256B2 (en) Hosting non-messaging workflows in a messaging host
Kwak et al. A framework for dynamic workflow interoperation using multi-subprocess task
Ding BMC Control-M 7: A Journey from Traditional Batch Scheduling to Workload Automation
Haitao Application of workflow management systems in e-services
Xin Application of workflow management systems in e-services
Lui et al. Enterprise application integration fundamentals
Mekala et al. Web Service Business Policy Customization through Finite State Machine based Semantic Representation
AU2002241530A1 (en) System and method for automating a process of business decision and workflow

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091104

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 Written amendment

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

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130329