JP5026415B2 - データセントリックワークフロー - Google Patents

データセントリックワークフロー Download PDF

Info

Publication number
JP5026415B2
JP5026415B2 JP2008518161A JP2008518161A JP5026415B2 JP 5026415 B2 JP5026415 B2 JP 5026415B2 JP 2008518161 A JP2008518161 A JP 2008518161A JP 2008518161 A JP2008518161 A JP 2008518161A JP 5026415 B2 JP5026415 B2 JP 5026415B2
Authority
JP
Japan
Prior art keywords
workflow
data
instance
activity
host
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.)
Expired - Fee Related
Application number
JP2008518161A
Other languages
English (en)
Other versions
JP2008544400A5 (ja
JP2008544400A (ja
Inventor
ケー.シュクラ ダーマ
メヘタ マヤンク
ピー.バレゲレプラ クマースワミー
ジェイ.サガー アカシュ
ヒレリオ イスラエル
ピラリノス デニス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2008544400A publication Critical patent/JP2008544400A/ja
Publication of JP2008544400A5 publication Critical patent/JP2008544400A5/ja
Application granted granted Critical
Publication of JP5026415B2 publication Critical patent/JP5026415B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • 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/10Office automation; Time management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Description

本発明は、データセントリックワークフローに関する。
ワークフローは、ビジネスプロセスをモデル化するものである。一般的なワークフロー技術を使用して開発されたワークフローアプリケーションは、開発者がデータを2つのアプリケーション間で交換されているメッセージと考えるものと見込んでいる。この一般的な手法によって、ワークフロー開発者は、実行中ワークフローインスタンスと、そのワークフローをインスタンス化したアプリケーション(たとえばワークフローホスト)の間でデータを渡すために従う必要がある通信交換およびプロトコルを定義することを強いられる。しかし、多くのワークフロー開発者は、メッセージング、またはメッセージ交換のモデル化のニュアンスを理解していない。
本発明の実施形態は、ワークフローメッセージングをモデル化するための抽象化を提供する。
具体的には、本発明の実施形態は、ワークフローのフレームワーク内に固有のデータ構成体を設けることによってデータセントリックなワークフローアプリケーションの開発を容易にする。この構成体によって、開発者は、メッセージング通信およびプロトコルを見えないようにしながら、ワークフローをワークフローインスタンスとワークフローホストの間のデータ交換としてモデル化することができる。本発明の態様によって、ワークフローは、基礎をなすメッセージング技術を意識しない(agnostic)ものとなることができる。
この要約は、以下の詳細説明においてさらに述べられる選択された概念について簡略化された形で述べるために提供されている。この要約は、特許請求の範囲中に記載された主題の主な特徴または本質的な特徴を識別するためのものではなく、また特許請求の範囲中に記載された主題の範囲を定める助けとして使用するためのものでもない。
他の特徴は、本明細書の以下で一部明らかになり、また一部指摘されている。
対応する参照符号は、諸図面にわたって対応する部分を示す。
図1は、例示的なワークフローを示している。本発明の実施形態は、ビジネスプロセスなどのプロセスを表すワークフローで動作可能である。ビジネスプロセスは、予測可能かつ反復可能な結果をもたらす順序付けられたタスク、アクティビティなどに依存する。操作手順、制度上の実用的知識、および組織の情報リソースを含めて、ビジネスプロセスは、定義された事業目的を効率的で時宜を得たやり方で満たすように設計されている。効率的な環境では、プロセスの機能コンポーネントは、容易に識別され、常に変化する企業要件に対処するように適応され展開される。ワークフローは、ビジネスプロセス内のタスクの一部と対話するエンドユーザの体験である。タスクは、人または機械によって実施される仕事の単位をそれぞれが表すアクティビティ、コンポーネントなどとしてモデル化される。
ワークフローホストは、ワークフローインスタンスを作成するためにワークフローをインスタンス化する。ワークフローホストとワークフローは、ワークフローインスタンスの実行中にメッセージを交換し、または別のやり方で通信する。一実施形態では、これらの各交換のメッセージングの詳細は、ワークフロー作成中にユーザによってモデル化されなければならない。こうした作成プロセスは、ワークフローインスタンスとワークフローホストの間のあらゆる通信のためのローカルサービスインターフェースを定義すること(たとえば通信プロトコルの指定)、ワークフローホストでこのインターフェースを実装すること、このインターフェースをワークフロー環境内の通信サービスとして登録すること、およびワークフローホストで実装されたインターフェースと通信する厳密に型指定された(strongly typed)ワークフローアクティビティを生成することを伴う。一部のワークフローは、インターフェース、メソッド(たとえば、チャネル、ポート)を使用して通信する。
本発明の実施形態は、ワークフローとの型指定されない通信のやり方を提供するために、図5に示されるようにワークフローホストと実行中ワークフローインスタンスの間の通信を抽象化しモデル化する。ワークフローインスタンスとの通信は、知られているチャネルを使用して実施され、データは、ワークフローの特定のインスタンスとの通信の決定的要因である。(たとえばデータバインドされたアクティビティを介した)抽象化によって、開発者または他のユーザがメッセージングの詳細をモデル化することなしにワークフロー環境内の通信をモデル化することが可能となる。ユーザは、通信構成体またはメッセージ概念を知る必要はない。メッセージングの詳細は、オブジェクト通信サービス、またはワークフロー環境内の他の通信層によって自動的に対処される。したがって、抽象化は、基礎となるメッセージング技術を意識しないものである。本発明の態様のデータセントリックな手法は、任意のアプリケーションまたはユーザとのデータ交換を実施する。
具体的には、ワークフローホストは、(たとえばフォームを介して)ユーザから、または(たとえばデータアクセスプロトコルを使用して)外部システムから情報を収集し、処理のために実行中ワークフローインスタンスにデータを渡して戻す。一実施形態では、ユーザからデータを得るためにワークフローホストプログラマによって使用されるフォーム技術の一部は、メッセージング概念をワークフロープログラマから見えないようにする。本発明の態様は、ワークフローホストと実行中ワークフローインスタンスの間で渡されたデータを表すための特定のデータソース定義(たとえばスキーマまたは型定義)に関連するデータオブジェクトを提供する。開発者の混乱を減少させ、ワークフローデータオブジェクトとワークフローホストの間のデータバインディング体験を提供するために、ワークフローインスタンスとワークフローホストによって同じデータオブジェクトが操作されてもよい。一般に、(たとえばワークフローホストによってアクセス可能な)データソースは、データを消費し、またはデータ消費側(たとえばワークフローアクティビティ)にデータを提供するデータオブジェクトためのデータを提供する。一実施例では、ワークフローインスタンスとワークフローホストの間の対話は、フォーム固有のものではない。
図2を参照すると、例示的なフローチャートが、プロトコルを意識しないメッセージングを実施するための本発明の設計時間および実行時間態様の操作を示している。本発明の態様は、データソースに関して外部データをモデル化し、データソースをデータバインドアクティビティに関連付ける。一般に、ワークフロー開発者は、ワークフローアプリケーション内のデータソースを定義し、データソースをデータオブジェクト(たとえばコンテナまたはフォーム)に関連付け、同じデータオブジェクトを介して戻された修正済みのデータを受信する。この修正済みデータがワークフローインスタンスによって受信されると、決定および他のデータバインドが可能となる。
図2に示された方法は、ワークフローホストと実行中ワークフローインスタンスの間のプロトコルを意識しないメッセージングを実施する。一実施形態では、1つまたは複数のコンピュータ読取り可能媒体が、図2に示された方法を実施するためのコンピュータ実行可能命令またはコンポーネントを有する。例示的なコンピュータ実行可能コンポーネントは、ワークフローとワークフローホストの間のメッセージング操作をモデル化するための事前定義されたワークフローデータアクティビティの選択物をユーザから受信するためのユーザインターフェースコンポーネント202を含む。一実施形態では、事前定義されたワークフローデータアクティビティの選択物を受信することは、アプリケーションプログラミングインターフェースを介して選択物を受信することを含む。ユーザにとって、事前定義されたデータアクティビティは、メッセージングプロトコルを意識しないものである。
このコンポーネントはさらに、データソース定義を指定し、選択されたデータアクティビティを指定されたデータソース定義にバインドし、そのバインドされたデータアクティビティをワークフローとワークフローホストの間のメッセージングを実施するワークフロー内の複数のアクティビティのうちの1つとして参照するためのプロパティコンポーネント204を含む。データソース定義は、ワークフローの実行中インスタンスとワークフローホストの間で通信されるメッセージデータを格納するためのデータオブジェクトを定義する。ワークフローホストは、ワークフローインスタンスをインスタンス化する。データソースの定義の指定は、たとえば、データソース定義に対応する識別子をユーザから受信すること、またはメッセージデータのためのスキーマを定義することを含んでもよい。一実施形態では、ユーザは、データソース定義およびプログラムに関連するデータオブジェクトを定義し、または別のやり方でワークフロー内のデータオブジェクトにアクセスする。
このコンピュータ実行可能コンポーネントはさらに、インスタンスコンポーネント206を含み、このインスタンスコンポーネント206は、ワークフローインスタンスの実行中に、指定されたデータソース定義ごとにデータオブジェクト生成し、生成されたデータオブジェクトをワークフローホストに送信する。ワークフローホスト内のホストコンポーネント(図5を参照)は、データオブジェクトにメッセージデータを取り込み(populate)、その取込み済みデータオブジェクトをワークフローインスタンス内のインスタンスコンポーネントに送信する。インスタンスコンポーネント206は、取込み済みデータオブジェクトをワークフローホストから受信し、受信された取込み済みデータオブジェクト内のメッセージデータを処理する。一実施形態では、メッセージデータは、データの要求に対応する。こうした実施形態では、インスタンスコンポーネント206は、データオブジェクトに、要求されたデータを取り込み、(たとえばフォームの更新のために)取込み済みデータオブジェクトをワークフローホストに送信する。
データバインドアクティビティは、ワークフロー作成者およびワークフローホスト開発者がメッセージ交換のためのローカルサービスインターフェースを定義する必要がないように、基礎となるメッセージング機構をカプセル化する。一般に、ローカルサービスインターフェースの任意の実装形態が、ワークフローと、この抽象化を使用するホストとの間でデータを交換するために使用されてもよい。一実施例では、この抽象化を使用したデータ交換を可能にするために、汎用ローカルサービスインターフェースが定義される。
一実施例では、本発明の実施形態は、以下の4つのデータバインドアクティビティ、すなわちUpdateData、SelectData、WaitForDataおよびWaitForQueryを提供する。UpdateDataアクティビティは、ワークフローが外部データを更新することを可能にする。SelectDataアクティビティは、ワークフローが外部データを求めて照会することを可能にする。WaitForDataアクティビティは、外部データについてのワークフロー内の待機点をモデル化する。WaitForQueryアクティビティは、データ照会要求に対応するワークフロー内の待機点をモデル化する。一実施形態では、外部データは、ワークフローホストによってアクセス可能なデータベース内に存在することも、フォームから得られたデータであることもある。たとえば、フォームに接続する場合、データはワークフロー内に格納され、UpdateDataアクティビティは、データが修正されたことをフォームに通知する。
以下の表は、これらの各データアクティビティのプロパティについて記述している。コンテキストプロパティ内のアクティブ化プロパティは、データバインドアクティビティWaitForDataおよびWaitForQueryのアクティブ化プロパティにマップされる。これらのアクティビティのいずれかが真に設定されたアクティブ化を有する場合、コンテキストプロパティは、値として真を有するアクティブ化プロパティを含む。
Figure 0005026415
データソースは、外部データスキーマを表す。たとえば、データソースは、フォームおよびワークフローへ/から送信されるデータのためのローカルコンテナであり得る。データソースは、その中に格納されたデータの形式および/または構造を定義する。本発明の一実施形態は、拡張可能マークアップ言語スキーマ定義(XSD:extensible markup language schema definition)および共通言語ランタイム(CLR:common language runtime)型ベースのデータソースを提供する。しかし、オブジェクトまたはデータの構造について記述するために使用されるいずれの形式も、データソースを定義するために使用されてもよい。たとえば、データソースを定義するために、インターフェース定義言語(IDL:interface definition language)またはウェブサービス記述言語(WSDL:web services description language)が使用されてもよい。以下の表は、データオブジェクトを自動生成するための定義として型(たとえばクラス)定義を使用する例示的な型/オブジェクトデータソースのプロパティについて記述している。
Figure 0005026415
以下の表は、データオブジェクトを自動生成するためのスキーマ定義としてXSD定義を使用する例示的なXSD/XMLデータソースのプロパティについて記述している。
Figure 0005026415
次に図3を参照すると、ブロック図が、2つのデータアクティビティを有するシーケンシャルワークフロー302を示している。この実施例では、ワークフロー作成者は、updateData1アクティビティ304を介してデータをアップロードし、waitForData1アクティビティ306を介してワークフローホストからのデータ変更イベント待つためのワークフロー302を設計している。ワークフロー開発者が体験することは、データソースを構成すること、およびこれらのデータバインドアクティビティ304、306を構成することを含む。
データソースは、ユーザインターフェースを介して、またアプリケーションプログラミングインターフェースを介してプログラムによって構成されてもよい。一実施例では、ObjectDataSourceのインスタンスが作成され、DataContextアクティビティのDataSourcesコレクションに追加される。次いで、ObjectDataSource(以下の表に示される)のプロパティが構成されてもよい。
Figure 0005026415
開発者は、2つのデータバインドアクティビティ(たとえばUpdateDataおよびWaitForData)をワークフローに追加する。開発者は、ユーザインターフェースを介して、またはアプリケーションプログラミングインターフェースを介してプログラムによって、これらのデータバインドアクティビティのプロパティを構成する。たとえば、図4は、シーケンシャルワークフロー402内の各データアクティビティに関連するプロパティおよびプロパティ値を含めて、図3のシーケンシャルワークフロー302などのシーケンシャルワークフロー402を示している。表5は、図4に示されたUpdateDataデータバインドアクティビティのプロパティ404を示している。表6は、図4に示されたWaitForDataデータバインドアクティビティのプロパティ406を示している。
Figure 0005026415
Figure 0005026415
ワークフローホスト開発者が体験することは、実行中ワークフローインスタンスにイベント(たとえばデータ交換イベント)をサブミットするためにデータソースサービスと共に働くコードを書くことを含む。たとえば、データソースサービスは、DataChangedおよびDataQueryイベントを発生させるためのメソッドをワークフローに提供する。ワークフローホスト開発者は、オブジェクト通信サービス(OCS:object communication service)インターフェースまたは他のローカルサービスインターフェースを実装する必要はない。以下のワークフローホストコードの抜粋は、データソースサービスを利用して、ワークフローにDataChangedイベントを出す。
Figure 0005026415
次に図5を参照すると、ブロック図が、実行中ワークフローインスタンス502とワークフローホスト504の間の対話を示している。一般に、ワークフローホスト504は、フォームまたは外部アプリケーション(図示せず)からイベントを受信し、処理のためにワークフローインスタンス502にデータオブジェクト510を処理し公開する。ドキュメントシナリオでは、ワークフローホスト504は、ワークフローインスタンス502からデータオブジェクト509のペイロード内のデータオブジェクトの型を取り出し、その型に関連したフォームを識別し、データオブジェクト509を拡張可能マークアップ言語(XML)に直列化し、ドキュメントレポジトリ(図示せず)内にXMLを格納する。
図5の実施例では、コンピュータで実施されるシステムが、ワークフロー環境内でプロトコルを意識しないメッセージングを提供している。このシステムは、実行のためのワークフローインスタンスを作成するためにワークフローをインスタンス化するワークフロー502ホストを含む。このシステムは、ワークフローで使用するためのフォームデータアクティビティ506など、事前定義された1つまたは複数のデータアクティビティをも含む。フォームデータアクティビティ506は、「ホストへのデータ送信」アクティビティ508と「ホストからのデータ受信」アクティビティ511とを含む。事前定義されたデータアクティビティ508、511はそれぞれ、ワークフローインスタンス502とワークフローホスト504の間のメッセージング操作をモデル化する。事前定義されたデータアクティビティ508は、メッセージデータを格納するためにワークフローインスタンスの実行中にデータオブジェクト509を生成する。データオブジェクト509は、ワークフローインスタンス502からワークフローホスト504に通信される。データ構造体を定義するデータソース定義が、データオブジェクト509に関連付けられる。このシステムはさらに、データオブジェクト509にメッセージデータを取り込み、その取込み済みデータオブジェクトを処理のためにデータオブジェクト510としてワークフローインスタンス502に通信するための、ワークフローホスト504に関連するデータソースサービス512を含む。
図5のシステムは、データオブジェクト509を表すデータ構造体を格納するコンピュータ読取り可能媒体(図示せず)をも含む。このデータ構造は、プロトコルタイプフィールド518と、ペイロードフィールド520と、ソースフィールド522とを含む。プロトコルタイプフィールド518は、実行中ワークフローインスタンス502とワークフローホスト504の間の通信で使用されるプロトコルを識別する値を格納する。ペイロードフィールド520は、メッセージデータを格納する。ソースフィールド522は、データオブジェクト509のためのデータソース定義を識別する値を格納する。データソース定義は、ワークフローインスタンス502とワークフローホスト504の間の通信のためのプロトコルを識別する。
ワークフローホスト内のデータソースサービス512は、ホスト処理空間内の514でヘルパークラスをインスタンス化することによってデータオブジェクト内のメッセージのペイロードをワークフローホスト内のアプリケーションに転送する。ワークフローホスト開発者は、データソースを定義するとき、ワークフロー定義内でこれらのヘルパークラスを構成する。ヘルパークラスインスタンスが作成されまたは呼び出されると、ホスト504は、インスタンス化されたヘルパークラス(たとえばデータハンドラ)を介してメッセージのペイロードに対する制御を行う。ホスト504によって管理されたいずれのクライアントも、このデータを受信し、その内容を更新することができる。ヘルパークラスは、データオブジェクトを処理するための複数のデータハンドラを含む。ホスト504内の通信サービス516は、取込み済みのデータオブジェクト510をワークフローインスタンス502に通信する。
ワークフローホスト504によって提供される例示的なデータソースサービス512は、以下に示されたメソッドを含む。第1のメソッドは、ワークフローへのDataChangedのイベントを生成し、第2のメソッドは、ワークフローへのDataQueriedのイベントを生成し、照会結果を受信する。
voidRaiseDataChanged(IDictionary<string,object>contextProperties,object msg)
objectRaiseDataQueried(IDictionary<string,object>contextProperties,object msg)
引き数「IDictionary<string,object>contextProperties」は、ワークフローインスタンス識別子、ワークフロー型、データソースの修飾名、および(たとえばメッセージがアクティブ化メッセージである場合の)アクティブ化値など、コンテキストプロパティを含む。引き数「object message」は、データオブジェクト510、またはワークフローに送信されるメッセージを表す。
一実施形態では、以下の操作が、実行時に、ワークフローインスタンス502とワークフローホスト504の間のメッセージを介して実施される。アクティブ化イベントが、ワークフロー定義によって受信され、ワークフローインスタンス502が作成される。ワークフローインスタンス502は、アクティブ化イベントについての情報で初期化される。実行中ワークフローインスタンス502内で、アクティビティ506など、データバインドアクティビティ(たとえばフォームデータアクティビティまたはデータアクティビティ)が発生する。データバインドアクティビティ506コンテナによって含まれたアクティビティ508は、データオブジェクト509を生成し、ワークフローホスト504に送信する。ワークフローホスト504に関連するデータソースサービス512は、ワークフローインスタンス502からデータオブジェクト509を受信する。データソースサービス512は、受信されたデータオブジェクト509を処理するためにワークフローホスト504上のデータハンドラを呼び出す。ワークフローインスタンス502では、別のアクティビティ511(たとえば「ホストからのデータ受信」)が、照会要求またはサブミットイベントがワークフローホスト504から受信されるまで待機する。照会要求がワークフローインスタンス502内のアクティビティ511によって受信される場合、要求は処理され、「ホストへのデータアップロード」アクティビティ(図示せず)を使用して結果がワークフローホスト504に送信される。サブミットイベントがワークフローインスタンス502内のアクティビティ511によって受信される場合、イベントは処理され、アクティビティ506は、完了とマーク付けされる。ワークフローインスタンス502は、ワークフローアプリケーションが終了するまで、そのデータアクティビティのすべてを処理し続ける。
本発明の実施形態は、図式化されたまたはオブジェクトベースのフォーム技術、ならびに任意の第三者外部アプリケーションについて本明細書で述べられたワークフロー操作をサポートする。
例示的な動作環境
図6は、コンピュータ130の形の汎用コンピューティング装置の一例を示している。本発明の一実施形態では、コンピュータ130などのコンピュータは、本明細書で示され述べられた他の図面で使用するのに適している。コンピュータ130は、1つまたは複数のプロセッサまたは処理装置132と、システムメモリ134とを有する。示された実施形態では、システムバス136は、システムメモリ134を含めて様々なシステム構成要素をプロセッサ132に結合する。バス136は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレイテッドグラフィックポートおよびプロセッサ、または様々なバスアーキテクチャのいずれかを使用したローカルバスを含めて、複数のタイプのバス構造のいずれかの1つまたは複数を表す。限定するためではなく、例を挙げると、こうしたアーキテクチャには、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロチャネルアーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ電子規格協会(VESA:Video Electronics Standards Association)ローカルバス、およびメザニンバスとして知られる周辺コンポーネント相互接続(PCI:Peripheral Component Interconnect)バスが含まれる。
コンピュータ130は一般に、少なくとも何らかの形のコンピュータ読取り可能媒体を有する。揮発性と不揮発性媒体、取外し可能と取外し不可能媒体の両方を含むコンピュータ読取り可能媒体は、コンピュータ130によってアクセス可能な任意の使用可能媒体であり得る。限定するためではなく、例を挙げると、コンピュータ読取り可能媒体は、コンピュータ記憶媒体と通信媒体とを含む。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造体、プログラムモジュールまたは他のデータなどの情報を格納するための任意の方法または技術で実装された揮発性と不揮発性、取外し可能と取外し不可能媒体を含む。たとえば、コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD:digital versatile disk)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、またコンピュータ130によってアクセス可能な他の任意の媒体が含まれる。通信媒体は一般に、コンピュータ読取り可能命令、データ構造体、プログラムモジュールまたは他のデータを搬送波や他の移送機構などの変調されたデータ信号として実施し、また任意の情報送達媒体を含む。当業者は、信号内の情報を符号化するなどのやり方でその特性の1つまたは複数が設定されまたは変更された、変調されたデータ信号についてよく知っている。有線ネットワークや直接有線接続などの有線媒体、ならびに音響、RF、赤外線などの無線媒体、および他の無線媒体は、通信媒体の例である。上記内容のいずれかの組合せもまた、コンピュータ読取り可能媒体の範囲内に含まれる。
システムメモリ134は、取外し可能および/または取外し不可能、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。示された実施形態では、システムメモリ134は、読出し専用メモリ(ROM:read only memory)138とランダムアクセスメモリ(RAM:random access memory)140とを含む。起動時などにコンピュータ130内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム(BIOS:basic input/output system)142は一般に、ROM138に格納される。RAM 140は一般に、処理装置132によって即時にアクセス可能であり、かつ/またはそれによる操作を現在受けているデータおよび/またはプログラムモジュールを含む。限定するためではなく、例示するために、図6に、オペレーティングシステム144、アプリケーションプログラム146、他のプログラムモジュール148およびプログラムデータ150を示す。
コンピュータ130は、他の取外し可能/取外し不可能、揮発性/不揮発性のコンピュータ記憶装置媒体を含むこともできる。たとえば、図6は、取出し不可能な不揮発性の磁気媒体から読み出し、またはそこに書き込むハードディスクドライブ154を示している。図6は、取外し可能な不揮発性の磁気ディスク158から読み出しまたはそこに書き込む磁気ディスクドライブ156、およびCD−ROMや他の光媒体などの取外し可能な不揮発性の光ディスク162から読み出しまたはそこに書き込む光ディスクドライブ160をも示している。例示的な動作環境内で使用してもよい他の取外し可能/取外し不可能、揮発性/不揮発性のコンピュータ記憶媒体には、それだけに限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスクドライブ154、磁気ディスクドライブ156および光ディスクドライブ160は一般に、インターフェース166などの不揮発性メモリインターフェースによってシステムバス136に接続される。
上記で論じられ、図6に示されたドライブまたは他の大容量記憶装置、およびその関連のコンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、およびコンピュータ130のための他のデータの記憶域を提供する。図6で、たとえばハードディスクドライブ154は、オペレーティングシステム170、アプリケーションプログラム172、他のプログラムモジュール174およびプログラムデータ176を格納するものとして示されている。これらの構成要素は、オペレーティングシステム144、アプリケーションプログラム146、他のプログラムモジュール148およびプログラムデータ150と同じでも、それとは異なっていてもよいことに留意されたい。少なくともそれらがそれぞれ異なるコピーであることを示すために、オペレーティングシステム170、アプリケーションプログラム172、他のプログラムモジュール174およびプログラムデータ176には、それぞれ異なる番号がここでは付与されている。
ユーザは、キーボード180およびポインティングデバイス182(たとえばマウス、トラックボール、ペンまたはタッチパッド)などの入力装置またはユーザインターフェース選択装置を用いてコンピュータ130内にコマンドおよび情報を入力してもよい。他の入力装置(図示せず)には、マイク、ジョイスティック、ゲームパッド、衛星放送アンテナ、スキャナなどが含まれ得る。これらおよび他の入力装置は、システムバス136に結合されたユーザ入力インターフェース184を介して処理装置132に接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB:universal serial bus)などの他のインターフェースおよびバス構造によって接続されてもよい。モニタ188または他のタイプの表示装置もまた、ビデオインターフェース190などのインターフェースを介してシステムバス136に接続される。モニタ188に加えて、コンピュータはしばしば、出力周辺インターフェース(図示せず)を介して接続してもよいプリンタおよびスピーカなど、他の周辺出力装置(図示せず)を含む。
コンピュータ130は、リモートコンピュータ194など、1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境内で動作してもよい。リモートコンピュータ194は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、コンピュータ130に関して上記で述べた要素の多くまたはすべてを一般に含む。図6に示された論理接続は、ローカルエリアネットワーク(LAN:local area network)196と広域ネットワーク(WAN:wide area network)198とを含むが、さらに他のネットワークを含むこともできる。LAN 136および/またはWAN 138は、有線ネットワーク、無線ネットワーク、その組合せなどであってもよい。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびグローバルコンピュータネットワーク(たとえばインターネット)では一般的である。
ローカルエリアネットワーキング環境内で使用される場合は、コンピュータ130は、ネットワークインターフェースまたはアダプタ186を介してLAN 196に接続される。広域ネットワーキング環境内で使用される場合は、コンピュータ130は一般に、モデム178、またはインターネットなどのWAN 198を介して通信を確立する他の手段を含む。内部にあることも、外部にあることもあるモデム178は、ユーザ入力インターフェース184または他の適切な機構を介してシステムバス136に接続される。ネットワーク化された環境では、コンピュータ130に関して示したプログラムモジュール、またはその一部は、リモートメモリ記憶装置(図示せず)内に格納してもよい。限定のためではなく、例示するために、図6は、メモリ装置内に常駐するリモートアプリケーションプログラム192を示している。示されたネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段を使用してもよい。
一般に、コンピュータ130のデータプロセッサは、コンピュータの様々なコンピュータ読取り可能媒体内にそれぞれ異なるときに格納された命令を用いてプログラムされる。プログラムおよびオペレーティングシステムは一般に、たとえばフロッピー(登録商標)ディスクまたはCD−ROM上に分散される。それらは、そこからコンピュータの2次メモリにインストールされロードされる。実行時、それらは、コンピュータの1次電子メモリに少なくとも部分的にロードされる。本明細書で述べられた本発明の態様は、こうした媒体がマイクロプロセッサまたは他のデータプロセッサと共に後述の諸ステップを実行するための命令またはプログラムを含む場合、これらのおよび他の様々なタイプのコンピュータ読取り可能記憶媒体を含む。本発明の実施形態は、本明細書で述べられた諸方法および技術に従ってプログラムされる場合、コンピュータ自体をも含む。
例示するために、オペレーティングシステムなど、プログラムおよび他の実行可能プログラムコンポーネントは、個別のブロックとしてここでは示されている。しかし、こうしたプログラムおよび構成要素は、様々なときにコンピュータの異なる記憶コンポーネント内に常駐し、コンピュータのデータプロセッサによって実行されることが認識されよう。
コンピュータ130を含めて例示的なコンピューティングシステム環境に関連して述べられているが、本発明の態様は、他の複数の汎用または特別目的のコンピューティングシステム環境または構成で動作可能である。このコンピューティングシステム環境は、本発明の態様の使用または機能の範囲に関する限定について示唆するものではない。さらに、このコンピューティングシステム環境は、例示的な動作環境内に示された構成要素のいずれか1つまたは組合せに関する依存関係または要件を有するものと解釈すべきでない。本発明の態様で使用するのに適し得るよく知られているコンピューティングシステム、環境および/または構成の例には、それだけに限らないが、パーソナルコンピュータ、サーバコンピュータ、携帯型またはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電、携帯電話、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
本発明の実施形態について、1つまたは複数のコンピュータまたは他の装置によって実行されるプログラムモジュールなど、コンピュータ実行可能命令の一般的な文脈で述べることができる。一般にプログラムモジュールには、それだけに限らないが、ルーチン、プログラム、オブジェクト、コンポーネント、および特定のタスクを実施しまたは特定の抽象データ型を実装するデータ構造体が含まれる。本発明の実施形態は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実施される分散コンピューティング環境内で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含めて、ローカルとリモートの両方のコンピュータ記憶媒体内に位置してもよい。
インターフェースは、ソフトウェアアーキテクチャの文脈では、ソフトウェアモジュール、コンポーネント、コード部分または他のコンピュータ実行可能命令シーケンスを含む。インターフェースは、たとえば、第1のモジュールの代理でコンピューティングタスクを実施するために第2のモジュールにアクセスする第1のモジュールを含む。一実施例では、第1および第2のモジュールは、たとえばオペレーティングシステムによって提供されるアプリケーションプログラミングインターフェース(API:application programming interfaces)、(たとえばピアツーピアアプリケーション通信用の)コンポーネントオブジェクトモデル(COM:component object model)インターフェース、および(たとえばウェブサービス間の通信用の)拡張可能マークアップ言語メタデータ交換形式(XMI:metadata interchange format)インターフェースを含む。
インターフェースは、Java(登録商標)2プラットフォームエンタープライズエディション(J2EE:Java(登録商標)2 Platform Enterprise Edition)、COMまたは分散COM(DCOM:distributed COM)の実施例における密結合の同期実装であってもよい。あるいはまたはさらに、インターフェースは、(たとえば簡易オブジェクトアクセスプロトコルを使用した)ウェブサービスなどにおける疎結合の非同期実装であってもよい。一般にインターフェースは、以下の特性、すなわち密結合、疎結合、同期および非同期のいずれかの組合せを含む。さらに、インターフェースは、標準のプロトコル、独自仕様の(proprietary)プロトコル、または標準と独自仕様プロトコルの任意の組合せに準拠してもよい。
本明細書で述べられたインターフェースはすべて、単一のインターフェースの一部とすることができ、あるいは別個のインターフェースまたはその任意の組合せとして実装してもよい。インターフェースは、機能を提供するためにローカルに実行しても、リモートに実行してもよい。さらに、インターフェースは、追加の機能を含むことも、本明細書で示されまたは述べられたものより少ない機能を含むこともある。
動作においてコンピュータ130は、本発明の態様を実施するために、図面に示されたものなどのコンピュータ実行可能命令を実行する。ハードウェア、ソフトウェア、ファームウェア、コンピュータ実行可能コンポーネント、および/またはコンピュータ実行可能命令は、ワークフロー内でプロトコルを意識しないメッセージングを実施する手段を構成するものである。
以下の実施例は、本発明の実施形態をさらに示している。あるシナリオでは、開発者は、ユーザが何らかのフォーム技術(たとえばウェブフォーム)を使用して情報を入力すること求めるワークフローアプリケーションの開発に関心を持っている。フォームについては、上記で定義されており、それ自体のスキーマ定義を有する。開発者は、ワークフローアプリケーションの内部のステップとしてフォームの対話およびデータ要素をモデル化することを望む。フォームとワークフローの対話は、フォームを書き換える必要なしに行われると予想される。これを達成するために、開発者は、フォームデータアクティビティと呼ばれるワークフローステップまたはビルディングブロックを使用し、それをワークフロー定義に追加する。開発者は、フォームスキーマ定義を指すためにこのオブジェクトに関連するデータソースを構成する(たとえばスキーマ定義はXMLスキーマとして表され得る)。この関連付けによってマッピング型が自動生成され、このマッピング型から、オブジェクトインスタンスがワークフローの実行中にワークフロー内部で作成される。このオブジェクトインスタンスは、開発者によって、それぞれフォームにデータを送信し、またそこからデータを取り出すために操作される。実行時に、このオブジェクトインスタンスは、ワークフローホストによって直列化され、非直列化され、情報がフォームに入れられ、またそこから取り出される。これは、フォームの修正を伴わずに行われる。
別のシナリオでは、開発者は、実行する外部レガシーシステムからのデータに依存するワークフローアプリケーションの開発に関心を持っている。この実施例では、外部システムは、そのデータにアクセスするためのデータベースインターフェースだけを提供し、ウェブサービスインターフェースは有さない。開発者は、ワークフローと外部のレガシーシステムの間のデータ交換をモデル化することを望む。ワークフローステップは、レガシーシステムにデータを求めるワークフローステップが実行されるごとに、情報がレガシーシステムによって更新されるのを待つ。これを達成するために、開発者は、データアクティビティと呼ばれるワークフローステップまたはビルディングブロックを使用し、それをワークフロー定義に追加する。開発者は、オブジェクトデータソースを指すために、このオブジェクトに関連したデータソースを構成する。この構成ステップの間、開発者は、外部システムとワークフローインスタンスの間でデータを交換するための型ライブラリおよび型(たとえばクラス)を定義する。この関連付けによって、ワークフローインスタンスの実行中にワークフロー定義内の選択された型のオブジェクトインスタンスを作成する。このオブジェクトインスタンスは、開発者によって、それぞれデータをレガシーシステムに送信し、またそこから取り出すために操作される。実行時に、このオブジェクトは、ワークフローホストによって提供された変換コードを介して、外部システムに渡され、それによって照会される。この実施例では、ワークフローホストは、新しい型を取り入れずに外部レガシーシステムとワークフローインスタンスの間のデータ交換を容易にする。
ワークフローがドキュメントレビュープロセスをモデル化する一実施例では、ドキュメントをレビューするためのインターフェース(たとえばIDocumentReviewInterface)が、以下に示される。
Figure 0005026415
この実施例では、オブジェクト「o」は、以下に示すような引き数のフラットリストを捕捉する型のインスタンスに対応する。
Figure 0005026415
DocumentReviewInfo型は、通信されているデータの形状/スキーマについて記述する。この型は、ワークフロー作成者によって作成され、ワークフローホスト開発者は、この実施例では何も実装する必要はない。
本発明の態様は、標準インターフェースとの通信やり方を知っているデータバインドアクティビティを標準ローカルサービスインターフェースに備えることによって、メッセージング機構がワークフロー作成者から見えないようにする。ワークフロー作成者は、交換されているデータのスキーマを記述する(たとえばローカルサービスインターフェースのメソッドの引き数のフラットリストを、本明細書で述べられたDocumentReviewInfoクラスなどのクラス定義に変換する)。一実施例では、標準ローカルサービスインターフェースは、IDataSourceServiceと呼ばれ、以下に示されている。以下に示されたIDataSourceServiceは、例示的なものにすぎず、一部の実施形態では、IDataSourceServiceは公開されない。逆に、DataSourceServiceのメソッド、RaiseDataChangedおよびRaiseDataQueriedは公開される。
Figure 0005026415
DataSourceServiceと呼ばれる例示的な実装形態が、以下に示される。
Figure 0005026415
本明細書で示され述べられた諸方法の実行または実施順は、特に指定されていない限り、必須ではない。すなわち、諸方法の要素は、特に指定されていない限り、任意の順序で実施してもよく、諸方法は、本明細書で開示されたものより多い要素を含むことも、少ない要素を含むこともある。たとえば、特定の要素を別の要素の前に、それと同時に、またはその後に実行しまたは実施することは、本発明の実施形態の範囲内であることが企図されている。
本発明の実施形態の要素について述べるとき、冠詞「一(a、an)」、「前記(the、said)」は、諸要素のうちの1つまたは複数があることを意味するものである。用語「含む(comprising、including)」、「有する(having)」は、包含的なものであり、リストされた諸要素以外に追加の要素があり得ることを意味する。
本発明の実施形態の範囲から逸脱せずに上記構成、製品および方法に様々な変更を加えることができるように、上記説明に含まれ、添付の図面に示されたすべての事柄は、限定的な意味ではなく、例示的なものと解釈すべきである。
タスクおよび制御フロー複合アクティビティを含む例示的なワークフローを示す図である。 本発明の設計時間および実行時間態様の操作を示す例示的なフローチャートである。 2つのデータアクティビティを有するシーケンシャルワークフローを示すブロック図である。 図3のシーケンシャルワークフロー、ならびにシーケンシャルワークフロー内の各データアクティビティに関連するプロパティおよびプロパティ値を示すブロック図である。 実行中ワークフローインスタンスとワークフローホストの間の対話を示すブロック図である。 本発明の態様が実施されてもよい適切なコンピューティングシステム環境の一例を示すブロック図である。

Claims (11)

  1. ワークフローをインスタンス化してワークフローインスタンスを作成するワークフローホストアプリケーションと実行中の前記ワークフローインスタンスとの間のメッセージングを実施する方法であって、前記方法は、コンピューティングデバイスに
    ユーザインターフェースコンポーネントが、ユーザから、実行中の前記ワークフローインスタンスと前記ワークフローホストアプリケーションとの間のメッセージング操作をモデル化するための事前定義された複数のワークフローデータアクティビティの中から選択されたワークフローデータアクティビティと、前記ワークフローインスタンスと前記ワークフローホストアプリケーションとの間の通信のためのプロトコルを識別する値を含むデータソース定義に対応する識別子とを受信するステップであって、当該選択されたワークフローデータアクティビティは、特定のメッセージプロトコルを指定せず、前記事前定義された複数のワークフローデータアクティビティは、少なくとも、実行中の前記ワークフローインスタンスから前記ワークフローホストアプリケーションにデータを通信する更新データアクティビティと、実行中の前記ワークフローインスタンスが前記ワークフローホストアプリケーションからの前記データを照会することを可能にする選択データアクティビティと、実行中の前記ワークフローインスタンスが前記ワークフローホストアプリケーションからの前記データの受信を待つことを可能にするデータ待機アクティビティと、実行中の前記ワークフローインスタンスが前記ワークフローホストアプリケーションからの照会要求に対応する前記データの受信を待つことを可能にする照会データ待機アクティビティとを備える、ステップと、
    プロパティコンポーネントが、前記ユーザインターフェースコンポーネントを介して受信した前記識別子を用いて前記データソース定義を特定するステップと、
    前記プロパティコンポーネントが、前記選択されたワークフローデータアクティビティを当該特定されたデータソース定義にバインドするステップと、
    前記プロパティコンポーネントが、当該バインドされたワークフローデータアクティビティに基づいて、前記ワークフローインスタンスと前記ワークフローホストアプリケーションとの間のメッセージングを実施するステップであって、前記バインドされたワークフローデータアクティビティは、前記特定のメッセージプロトコルを指定しない、ステップと
    を実行させ、前記実施するステップは、
    前記ワークフローインスタンスが、前記特定されたデータソース定義ごとにデータオブジェクトを生成するステップであって、前記データオブジェクトは、前記ワークフローインスタンスと前記ワークフローホストアプリケーションとの間の通信のためのプロトコルを識別する値を格納するためのプロトコルタイプフィールドと、実行中の前記ワークフローインスタンスと前記ワークフローホストアプリケーションとの間で通信されるべきメッセージデータを格納するためのペイロードフィールドと、前記データソース定義を識別する値を格納するためのソースフィールドとを含む、ステップと、
    前記ワークフローインスタンスが、前記ワークフローホストアプリケーションに当該生成されたデータオブジェクトを送信するステップであって、前記ワークフローホストアプリケーションは、前記データオブジェクトに前記メッセージデータを格納する、ステップと、
    前記ワークフローインスタンスが、前記メッセージデータを格納したデータオブジェクトを前記ワークフローホストアプリケーションから受信するステップ
    を含むことを特徴とする方法。
  2. 前記選択されたワークフローデータアクティビティを受信するステップは、アプリケーションプログラミングインターフェースを介して前記選択されたワークフローデータアクティビティを受信するステップを含むことを特徴とする請求項1に記載の方法。
  3. 前記メッセージデータは、データ要求に対応し、
    前記ワークフローインスタンスが、当該要求されたデータを前記データオブジェクトに格納するステップと
    前記ワークフローインスタンスが、前記要求されたデータを格納したデータオブジェクトを前記ワークフローホストアプリケーションに送信するステップをさらに含むことを特徴とする請求項1に記載の方法。
  4. 前記要求されたデータを格納したデータオブジェクトを前記ワークフローホストアプリケーションに送信するステップは、前記メッセージデータを格納したデータオブジェクトを前記ワークフローアプリケーションに送信してフォームを更新するステップを含むことを特徴とする請求項に記載の方法。
  5. 請求項1に記載の方法を実施するためのコンピュータ実行可能命令を格納したことを特徴とするコンピュータ読み取り可能記憶媒体
  6. ワークフロー環境内のメッセージングをするコンピュータ実施システムであって、前記コンピュータ実施システムは、一つ又は複数のコンピュータ読み取り可能記憶媒体に格納されたコンピュータ実行可能コンポーネントを実行するように構成されたプロセッサを備え、前記コンピュータ実行可能コンポーネントは、
    ワークフローをインスタンス化して実行に関するワークフローインスタンスを作成するためのワークフローホストアプリケーションと、
    ユーザから、実行中の前記ワークフローインスタンスと前記ワークフローホストアプリケーションとの間のメッセージング操作をモデル化するための事前定義された複数のデータアクティビティの中から選択されたデータアクティビティと、前記ワークフローインスタンスと前記ワークフローホストアプリケーションとの間の通信のためのプロトコルを識別する値を含むデータソース定義に対応する識別子とを受信するユーザインターフェースコンポーネントであって、前記事前定義された複数のデータアクティビティの各々は、メッセージングプロトコルを指定せず、前記事前定義された複数のデータアクティビティは、少なくとも、実行中の前記ワークフローインスタンスから前記ワークフローホストアプリケーションにデータを通信する更新データアクティビティと、実行中の前記ワークフローインスタンスが前記ワークフローホストアプリケーションからの前記データを照会することを可能にする選択データアクティビティと、実行中の前記ワークフローインスタンスが前記ワークフローホストアプリケーションからの前記データの受信を待つことを可能にするデータ待機アクティビティと、実行中の前記ワークフローインスタンスが前記ワークフローホストアプリケーションからの照会要求に対応する前記データの受信を待つことを可能にする照会データ待機アクティビティとを備える、ユーザインターフェースコンポーネントと、
    前記ユーザインターフェースコンポーネントを介して受信した前記識別子を用いて前記データソース定義を特定し、当該選択されたデータアクティビティを当該特定されたデータソース定義にバインドし、当該バインドされたデータアクティビティに基づいて、前記ワークフローインスタンスと前記ワークフローホストアプリケーションとの間のメッセージングを実施するプロパティコンポーネントであって、前記バインドされたデータアクティビティは、前記特定のメッセージプロトコルを指定しない、プロパティコンポーネントとを備え、
    前記メッセージングの実施中に、
    前記ワークフローインスタンスは、前記特定されたデータソース定義ごとにデータオブジェクトを生成し、前記データオブジェクトは、前記ワークフローインスタンスと前記ワークフローホストアプリケーションとの間の通信のためのプロトコルを識別する値を格納するためのプロトコルタイプフィールドと、実行中の前記ワークフローインスタンスと前記ワークフローホストアプリケーションとの間で通信されるべきメッセージデータを格納するためのペイロードフィールドと、前記データソース定義を識別する値を格納するためのソースフィールドとを含み、
    前記ワークフローインスタンスは、当該生成されたデータオブジェクトを前記ワークフローホストアプリケーションに送信し、
    前記ワークフローホストアプリケーションは、前記データオブジェクトに前記メッセージデータを格納し、
    前記ワークフローインスタンスは、前記メッセージデータを格納したデータオブジェクトを前記ワークフローホストアプリケーションから受信することを特徴とするコンピュータ実施システム。
  7. 前記更新データアクティビティは、前記データを実行中の前記ワークフローインスタンスから前記ワークフローホストに通信してフォームを更新することを特徴とする請求項に記載のコンピュータ実施システム。
  8. 前記ユーザが前記ワークフローを作成することを可能にする、インターフェースをプログラミングするアプリケーションをさらに備えることを特徴とする請求項に記載のコンピュータ実施システム。
  9. ワークフローをインスタンス化してワークフローインスタンスを作成するワークフローホストと前記ワークフローインスタンスとの間のメッセージングをするためのコンピュータ実行可能コンポーネントを格納したコンピュータ読み取り可能記憶媒体であって、
    前記コンピュータ実行可能コンポーネントは、
    ユーザから、実行中の前記ワークフローインスタンスと前記ワークフローホストとの間のメッセージング操作をモデル化するための事前定義された複数のデータアクティビティの中から選択されたデータアクティビティと、前記ワークフローインスタンスと前記ワークフローホストとの間の通信のためのプロトコルを識別する値を含むデータソース定義に対応する識別子とを受信するユーザインターフェースコンポーネントであって、前記事前定義された複数のデータアクティビティの各々は、メッセージングプロトコルを指定せず、前記事前定義された複数のデータアクティビティは、少なくとも、実行中の前記ワークフローインスタンスから前記ワークフローホストにデータを通信する更新データアクティビティと、実行中の前記ワークフローインスタンスが前記ワークフローホストからの前記データを照会することを可能にする選択データアクティビティと、実行中の前記ワークフローインスタンスが前記ワークフローホストからの前記データの受信を待つことを可能にするデータ待機アクティビティと、実行中の前記ワークフローインスタンスが前記ワークフローホストからの照会要求に対応する前記データの受信を待つことを可能にする照会データ待機アクティビティとを備える、ユーザインターフェースコンポーネントと、
    前記ユーザインターフェースコンポーネントを介して受信した前記識別子を用いて前記データソース定義を特定し、当該選択されたデータアクティビティを当該特定されたデータソース定義にバインドし、当該バインドされたデータアクティビティに基づいて、前記ワークフローインスタンスと前記ワークフローホストとの間のメッセージングを実施するプロパティコンポーネントであって、前記バインドされたデータアクティビティは、前記特定のメッセージプロトコルを指定しない、プロパティコンポーネントと
    前記メッセージングの実施中に、前記特定されたデータソース定義ごとにデータオブジェクトを生成し、当該生成されたデータオブジェクトを前記ワークフローホストに送信し、メッセージデータを格納したデータオブジェクトを前記ワークフローホストから受信するインスタンスコンポーネントであって、前記データオブジェクトは、前記ワークフローインスタンスと前記ワークフローホストとの間の通信のためのプロトコルを識別する値を格納するためのプロトコルタイプフィールドと、実行中の前記ワークフローインスタンスと前記ワークフローホストとの間で通信されるべきメッセージデータを格納するためのペイロードフィールドと、前記データソース定義を識別する値を格納するためのソースフィールドとを含む、インスタンスコンポーネントと、
    前記ワークフローホスト内のホストコンポーネントであって、前記インスタンスコンポーネントから前記生成されたデータオブジェクトを受信し、当該受信したデータオブジェクト前記メッセージデータを格納し、前記メッセージデータを格納したデータオブジェクトを前記ワークフローインスタンスに送信するホストコンポーネントと
    を含むことを特徴とするコンピュータ読み取り可能記憶媒体。
  10. 前記インスタンスコンポーネントはさらに、前記データオブジェクトにデータを格納し、前記データを格納したデータオブジェクトを前記ワークフローホストに送信することを特徴とする請求項に記載のコンピュータ読取り可能媒体。
  11. 前記インスタンスコンポーネントはさらに、前記メッセージデータを前記ユーザに表示することを特徴とする請求項に記載のコンピュータ読取り可能記憶媒体。
JP2008518161A 2005-06-27 2006-05-05 データセントリックワークフロー Expired - Fee Related JP5026415B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/167,472 2005-06-27
US11/167,472 US7363628B2 (en) 2005-06-27 2005-06-27 Data centric and protocol agnostic workflows for exchanging data between a workflow instance and a workflow host
PCT/US2006/017766 WO2007001640A2 (en) 2005-06-27 2006-05-05 Data centric workflows

Publications (3)

Publication Number Publication Date
JP2008544400A JP2008544400A (ja) 2008-12-04
JP2008544400A5 JP2008544400A5 (ja) 2009-06-25
JP5026415B2 true JP5026415B2 (ja) 2012-09-12

Family

ID=37568786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008518161A Expired - Fee Related JP5026415B2 (ja) 2005-06-27 2006-05-05 データセントリックワークフロー

Country Status (9)

Country Link
US (1) US7363628B2 (ja)
EP (1) EP1896939A4 (ja)
JP (1) JP5026415B2 (ja)
KR (1) KR20080017351A (ja)
CN (1) CN101223505B (ja)
BR (1) BRPI0612281A2 (ja)
MX (1) MX2007015887A (ja)
RU (1) RU2419837C2 (ja)
WO (1) WO2007001640A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441249B2 (en) * 2003-11-13 2008-10-21 International Business Machines Corporation Activity monitoring without accessing a process object
US7509519B2 (en) * 2005-11-29 2009-03-24 International Business Machines Corporation Recovery and debugging of failed network-accessible service construction
US8849691B2 (en) * 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
KR101501174B1 (ko) * 2007-09-28 2015-03-19 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
US8131663B1 (en) 2007-10-12 2012-03-06 Bonamy Taylor Apparatus for generating software logic rules by flowchart design
KR101390177B1 (ko) * 2008-04-01 2014-05-26 삼성전자주식회사 워크폼 관리 방법, 워크폼 관리를 위한 호스트 장치,화상형성장치의 워크폼 관리방법 및 워크폼 관리 시스템
US8478715B2 (en) * 2008-05-16 2013-07-02 Microsoft Corporation Extending OLAP navigation employing analytic workflows
JP5393059B2 (ja) * 2008-06-04 2014-01-22 キヤノン株式会社 ワークフロー処理装置及びワークフロー処理方法
KR101437453B1 (ko) * 2008-08-29 2014-11-03 삼성전자주식회사 워크폼 관리장치, 워크폼 관리방법, 화상형성장치 및 워크폼 관리 시스템
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
US8413150B2 (en) * 2009-07-31 2013-04-02 Sap Ag Systems and methods for data aware workflow change management
US8522256B2 (en) * 2010-10-12 2013-08-27 Microsoft Corporation Hosting non-messaging workflows in a messaging host
US8862975B2 (en) 2011-09-19 2014-10-14 Microsoft Corporation Web-based workflow service visualization and navigation
US9536264B2 (en) * 2011-11-14 2017-01-03 Microsoft Technology Licensing, Llc Host agnostic messaging in a continuation based runtime
US9524323B2 (en) 2012-09-05 2016-12-20 Microsoft Technology Licensing, Llc Delegation of expression tree evaluation
CN105765577A (zh) * 2014-09-29 2016-07-13 微软技术许可有限责任公司 可定制的数据服务
US10592082B2 (en) * 2015-11-24 2020-03-17 Microsoft Technology Licensing, Llc Parallel front end application and workflow development
US10223163B2 (en) * 2016-07-14 2019-03-05 Microsoft Technology Licensing, Llc Workflow-based object destruction
CN107102978B (zh) * 2017-05-24 2020-11-24 北京星选科技有限公司 数据回填方法、装置及移动终端
CN110297625B (zh) * 2018-03-22 2023-08-08 阿里巴巴集团控股有限公司 应用的处理方法及装置
US10666718B2 (en) * 2018-06-07 2020-05-26 Spatika Technologies Inc. Dynamic data transport between enterprise and business computing systems
US11216424B2 (en) 2018-06-07 2022-01-04 Spatika Technologies Inc. Dynamically rendering an application programming interface for internet of things applications
CN111309315B (zh) * 2018-12-12 2024-03-29 中国科学院沈阳自动化研究所 一种基于工业物联网数据和业务建模的自动化配置方法
CN111382729A (zh) * 2018-12-27 2020-07-07 北京图森智途科技有限公司 一种从数据源采集数据的方法、主机和汽车

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2263988B (en) * 1992-02-04 1996-05-22 Digital Equipment Corp Work flow management system and method
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
US5774661A (en) * 1995-04-18 1998-06-30 Network Imaging Corporation Rule engine interface for a visual workflow builder
EP0854431A3 (en) * 1997-01-20 2001-03-07 International Business Machines Corporation Events as activities in process models of workflow management systems
US6225998B1 (en) * 1997-12-02 2001-05-01 Aspect Communications Visual design of workflows for transaction processing
US6430538B1 (en) 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
US6567783B1 (en) * 1998-06-05 2003-05-20 I2 Technologies Us, Inc. Communication across one or more enterprise boundaries regarding the occurrence of a workflow event
US6397192B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic
WO2000054202A2 (en) 1999-03-11 2000-09-14 Paysys International, Inc. Methods and systems for developing applications and for interfacing with users
GB2350911B (en) * 1999-06-10 2004-06-09 Ibm Form data files generator
US6768986B2 (en) * 2000-04-03 2004-07-27 Business Objects, S.A. Mapping of an RDBMS schema onto a multidimensional data model
US6845507B2 (en) * 2000-05-18 2005-01-18 Ss & C Technologies, Inc. Method and system for straight through processing
JP2002041744A (ja) * 2000-07-27 2002-02-08 Ranseputo Kk ワークフロー処理方法及びワークフロー処理システム
US20020032692A1 (en) * 2000-09-08 2002-03-14 Atsuhito Suzuki Workflow management method and workflow management system of controlling workflow process
WO2002029517A2 (en) * 2000-10-02 2002-04-11 International Projects Consultancy Services, Inc. Automated loan processing system and method
US6604104B1 (en) * 2000-10-02 2003-08-05 Sbi Scient Inc. System and process for managing data within an operational data store
US7174534B2 (en) * 2001-01-22 2007-02-06 Symbol Technologies, Inc. Efficient system and method for running and analyzing multi-channel, multi-modal applications
US6757689B2 (en) * 2001-02-02 2004-06-29 Hewlett-Packard Development Company, L.P. Enabling a zero latency enterprise
US7240324B2 (en) * 2001-02-28 2007-07-03 Hewlett-Packard Development Company, L.P. Event-based scheduling method and system for workflow activities
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US20030097457A1 (en) * 2001-08-08 2003-05-22 Amitabh Saran Scalable multiprocessor architecture for business computer platforms
US6895573B2 (en) * 2001-10-26 2005-05-17 Resultmaker A/S Method for generating a workflow on a computer, and a computer system adapted for performing the method
US20030177046A1 (en) * 2001-12-03 2003-09-18 John Socha-Leialoha Method and system for reusing components
US7441197B2 (en) * 2002-02-26 2008-10-21 Global Asset Protection Services, Llc Risk management information interface system and associated methods
DE10215653A1 (de) 2002-04-09 2003-11-06 Bernhard Voslamber Verfahren und Anordung zur automatischen Erzeugung von Programmcodeabschnitten sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
EP1502218A4 (en) * 2002-04-15 2005-08-17 Invensys Sys Inc METHOD AND DEVICES FOR A PROCESS-, FACTORY-, ENVIRONMENT-, ENVIRONMENT- AND COMPUTER AIDED MANUFACTURING-BASED OR OTHERWISE CONTROL SYSTEM WITH REAL-TIME DATA DISTRIBUTION
US7272816B2 (en) * 2002-07-31 2007-09-18 Sap Aktiengesellschaft Transformations between private and shared workflows
US7437703B2 (en) * 2002-10-25 2008-10-14 Sap Ag Enterprise multi-agent software system with services able to call multiple engines and scheduling capability
US20040148213A1 (en) * 2002-11-25 2004-07-29 Microsoft Corporation Automated workflow constraints
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
US20050066002A1 (en) * 2003-07-31 2005-03-24 Arnold Teres Workflow compatible healthcare information message communication system
CA2442796A1 (en) * 2003-09-26 2005-03-26 Ibm Canada Limited - Ibm Canada Limitee Binding a workflow engine to a data model
US7093207B1 (en) * 2003-11-17 2006-08-15 Kla-Tencor Technologies Corporation Data analysis flow engine
US7650344B2 (en) * 2004-02-09 2010-01-19 Coremetrics, Inc. System and method of managing software product-line customizations
US7631291B2 (en) * 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US7493594B2 (en) * 2005-03-14 2009-02-17 Research In Motion System and method for designing component based applications
US20060241954A1 (en) * 2005-04-22 2006-10-26 International Business Machines Corporation Method and system for adaptive action management for business solutions
US7983943B2 (en) * 2005-05-27 2011-07-19 Xerox Corporation Method and system for workflow process node synchronization

Also Published As

Publication number Publication date
BRPI0612281A2 (pt) 2010-11-03
EP1896939A2 (en) 2008-03-12
CN101223505B (zh) 2011-09-07
US7363628B2 (en) 2008-04-22
MX2007015887A (es) 2008-03-04
RU2419837C2 (ru) 2011-05-27
US20060294048A1 (en) 2006-12-28
RU2007149277A (ru) 2009-07-10
WO2007001640A2 (en) 2007-01-04
KR20080017351A (ko) 2008-02-26
WO2007001640A3 (en) 2007-11-22
CN101223505A (zh) 2008-07-16
EP1896939A4 (en) 2010-09-22
JP2008544400A (ja) 2008-12-04

Similar Documents

Publication Publication Date Title
JP5026415B2 (ja) データセントリックワークフロー
JP5277251B2 (ja) モデル・ベースのコンポジット・アプリケーション・プラットフォーム
Alpdemir et al. Service-based distributed querying on the grid
JP5021193B2 (ja) 拡張可能ワークフローモデルの宣言的表現
US8335862B2 (en) Programmatic management of software resources in a content framework environment
US7797708B2 (en) Simulating actions on mockup business objects
US7080092B2 (en) Application view component for system integration
US6985939B2 (en) Building distributed software services as aggregations of other services
US7370335B1 (en) System and method for providing a public application program interface
KR101292401B1 (ko) 풍부한 데이터 바인딩된 애플리케이션
US20030055624A1 (en) Dynamic, real-time integration of software resources through services of a content framework
JP2006252536A (ja) レガシーコンポーネントのための動的サービスの生成
US20090165021A1 (en) Model-Based Composite Application Platform
JP2004511034A (ja) 電子通信および電子商取引で使用される異種ネットワークを統合するシステムおよび方法
WO2003034285A1 (en) Application view component for system integration
US20070006121A1 (en) Development activity recipe
KR101190597B1 (ko) 로봇 소프트웨어 컴포넌트를 위한 메소드 포트 장치 및 구성 방법
Sobolewski Federated collaborations with exertions
Mykkänen et al. Component and Service Technology Families
Cosmina et al. Spring Advanced Topics
Fox et al. New Systems Technologies and Software Products for HPCC: Volume III-High Performance Commodity Computing on the Pragmatic Object Web
Sam-Bodden et al. Business Tier with JBoss
AU2002347920A1 (en) Application view component for system integration

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090501

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111109

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111209

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120110

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120615

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120620

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees