(57)【要約】  本発明は、ワークフローとデータベーストランザクションを統合するコンピュータに組み込まれた方法及びシステム、並びにプログラムを含むコンピュータが読み出し可能な記録媒体を提供する。コンピュータに実装された方法は、データベースに保存されたデータ構成を１つ又は複数のワークフロープロセスに割り当てることを含む。コンピュータに組み込まれた方法は、データ構成に在る新たな記録に対応してワークフロープロセスのインスタンスを自動的に作成することも含む。
2013530464.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに実装された方法であって、
１つ又は複数のワークフロープロセスに、データベース内に保存されたデータ構成を割り当てるステップ、及び
前記データ構成に在る新たな記録に対応してワークフロープロセスのインスタンスを自動的に作成するステップを含むことを特徴とする方法。
【請求項２】
更に、前記１つ又は複数のワークプロセスにアプリケーションを割り当てるステップを含み、前記アプリケーションは前記データ構成の処理を実行することを特徴とする請求項１に記載の方法。
【請求項３】
前記データ構成は複数の列を含むベーステーブルであり、それぞれの列は前記１つ又は複数のワークフロープロセスの新たなインスタンスを示すことを特徴とする請求項１又は請求項２に記載の方法。
【請求項４】
前記データ構成は、１つ又は複数のトリガーを含むことを特徴とする請求項３に記載の方法。
【請求項５】
データ構成に新たな記録が挿入されると、前記１つ又は複数のトリガーが起動してワークフロープロセスのインスタンスを作成することを特徴とする請求項４に記載の方法。
【請求項６】
コンピュータが読み出し可能な記録媒体であって、
１つ又は複数のワークフロープロセスに、データベース内に保存されたデータ構成を割り当てるステップ、及び
前記データ構成に在る新たな記録に対応してワークフロープロセスのインスタンスを自動的に作成するステップを含む処理を処理装置において実行するプログラムを含むことを特徴とする記録媒体。
【請求項７】
更に、前記１つ又は複数のワークプロセスにアプリケーションを割り当てるステップを含み、前記アプリケーションは前記データ構成の処理を実行することを特徴とする請求項６に記載の記録媒体。
【請求項８】
前記データ構成は複数の列を含むベーステーブルであり、それぞれの列は前記１つ又は複数のワークフロープロセスの新たなインスタンスを示すことを特徴とする請求項６又は請求項７に記載の記録媒体。
【請求項９】
前記データ構成は、１つ又は複数のトリガーを含むことを特徴とする請求項８に記載の記録媒体。
【請求項１０】
データ構成に新たな記録が挿入されると、前記１つ又は複数のトリガーが起動してワークフロープロセスのインスタンスを作成することを特徴とする請求項９に記載の記録媒体。
【請求項１１】
処理装置及びメモリーを含むシステムであって、
前記メモリーは、１つ又は複数のワークフロープロセスに、データベース内に保存されたデータ構成を割り当てるステップ、及び
前記データ構成に在る新たな記録に対応してワークフロープロセスのインスタンスを自動的に作成するステップを含む処理が処理装置において実行されるプログラムを含むことを特徴とシステム。
【請求項１２】
更に、前記１つ又は複数のワークフロープロセスにアプリケーションを割り当てるステップを含み、前記アプリケーションは前記データ構成の処理を実行することを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記データ構成は複数の列を含むベーステーブルであり、それぞれの列は前記１つ又は複数のワークフロープロセスの新たなインスタンスを示すことを特徴とする請求項１１又は請求項１２に記載のシステム。
【請求項１４】
前記データ構成は、１つ又は複数のトリガーを含むことを特徴とする請求項１３に記載のシステム。
【請求項１５】
データ構成に新たな記録が挿入されると、前記１つ又は複数のトリガーが起動してワークフロープロセスのインスタンスを作成することを特徴とする請求項１４に記載のシステム。
【請求項１６】
更に、前記メモリーは、データベース層を含み、該データベース層はワークフローエンジン層を含むことを特徴とする請求項１５に記載のシステム。
【請求項１７】
少なくとも１つのアプリケーション及びデータベースフロントエンドアプリケーションツールは、ワークフローエンジンをその存在に意識することなく操作し、且つワークエンジンコントロールを含むことを特徴とする請求項１６に記載のシステム。
【請求項１８】
少なくとも１つのアプリケーション及びデータベースフロントエンドアプリケーションツールは、ワークフローエンジンＡＰＩを用いることにより、ワークフローエンジンの存在を意識して操作することを特徴とする請求項１６に記載のシステム。
【請求項１９】
前記ワークフローエンジンは。１つ又は複数のイベント形式を作成し、それぞれの前記イベント形式はワークフロー移動形式であり、前記ワークフロー移動形式は１つ又は複数のワークフローエレメントと関連付けられ、それぞれの前記ワークフローエレメントは少なくとも１つ又は複数のデータベースに関連付けられたプログラムコードを実行することにより統合的なワークフロー及びデータベーストランザクションを提供することを特徴とする請求項１６に記載のシステム。
【請求項２０】
更に、前記メモリーは、統合されたデータベースに依存するワークフロートランザクションを可能とする、少なくとも１つのサービス指向アーキテクチャ（ＳＯＡ）又はサービスブローカーを含むことを特徴とする請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビジネスプロセス管理（ＢＰＭ）及びワークフロー管理、計算機ソウトウェア業界並びにリレーショナルデータベース技術分野に関する。
【背景技術】
【０００２】
ビジネス分野のアプリケーションでは、オラクルＤＢ２又はマイクロソフトＳＱＬサーバのような、リレーショナルデータベースに関するものが最も多い。ワークフロー管理としても知られているビジネスプロセス管理（ＢＰＭ）は、任務を完了するのにプロセス指向の方法を構築しようする組織に採用されている、急速に発展している考え方である。ＢＰＭソリューソンを実行する幾つかのソフトウェアソルーションは、アプリケーション・プログラマティク・インターフェース（ＡＰＩ）、コモンライン・インターフェース（ＣＬＩ）及びｎ階層アーキテクチャ中の他のインターフェースを通して、単独のソフトウェアとして働くか又はデータベース、オペレーティングシステム及び第三者のソフトウェアなど他のソフトウェア・プラットフォームとの組み合わせで働く。多くのＢＰＭソウトウェアソルーションは、文書、画像及び電子メール管理システムから発展しており、これらの管理システムの全ては、主体（文書、ファイル、電子メール又は記録）が生成されると、その主体は最初から終わりまで管理されるとの考え方が中心にある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、データベースとワークフロー・ソリューソンを統合して、特定のビシネス上の要求に対するカスタム・ソリューソンとして、異なったソフトウェア・プラットフォームを緩やかに連結することを含んだ統合ワークフロー及びデータベーストランザクションを実現することを目的としている。
【課題を解決するための手段】
【０００４】
本発明の一実施態様では、コンピュータにより実行される方法を提供する。その方法には、データベースに保存されたデータ構成を一つ又は複数のワークフロープロセスへ割り当てることも含む。更にこの方法には、新たな記録がデータ構成に在るとワークフローのインスタンスを自動的に作成することも含む。
【０００５】
別の実施態様では、処理装置においてオペレーションを実行するプログラムを含んでいる、コンピュータが読み出し可能な記録媒体を提供する。オペレーションには、データベースに保存されたデータ構成を一つ又は複数のワークフロープロセスへ割り当てることを含む。オペレーションには、新たな記録がデータ構成に在るとワークフローのインスタンスを自動的に作成することも含む。
【０００６】
更に、別の実施態様では、システムが提供される。システムには、処理装置及び処理装置においてオペレーションを実行するプログラムを含む。オペレーションには、データベースに保存されたデータ構成を一つ又は複数のワークフロープロセスへ割り当てることを含む。オペレーションには、新たな記録がデータ構成に在るとワークフローのインスタンスを自動的に作成することも含む。
【図面の簡単な説明】
【０００７】
【図１】本発明によるシステム構成の一例を示すブロック図
【図２】図１のワークフローエンジン周辺の詳細を示すブロック図
【図３】ベーステーブル及びサブ−テーブルの構成の一例を示すブロック図
【図４】ワークフロープロセスを設計及び管理するＧＵＩ画面を示すブロック図
【図５】データベーストランザクションとワークフロートランザクションの関係を示す２つの表
【図６】ワークフローのデータベースを有効とし、ワークフロープロセスを作成するためのフローチャート
【図７】データベースワークフロー統合トランザクションのフローチャート
【図８】ワークフロートランザクションのフローチャート
【図９】ワークフロートランザクションに関連するワークフローイベントを実行するためのフローチャート
【図１０】ワークフロートランザクション内のサービスブローカーを用いてワークフローイベントを実行するためのフローチャート
【発明を実施するための形態】
【０００８】
以下、図面を用いて本発明による実施例を説明する。明確な記載とするため、本発明の全て特徴を記載してはいない。具体化が進展するにつれ、システム及びビジネスに関連した制限など、開発者の特定な目標を達成するように、具体例によって異なる種々の決定が行われることを正しく認識すべきである。更に、そのように開発する努力は、複雑で時間を要するにもかかわらず、本開示の恩恵を受ける当業者にとっては、定常的に行うことであることを正しく認識すべきである。
【０００９】
説明のためにのみ及び当業者には周知のことが不明瞭にならないように、種々の構成、連結、システム及び装置は模式的に図示されている。しかしながら、本発明による実施例を記載及び説明する図面も含まれている。ここで使用された語句は、当業者の理解に一致していると解釈すべきである。ここでは、当業者の解釈とは異なる特別な定義となるように語句を繰り返し用いてはいない。ある語句に対して、当業者の解釈とは異なった特別な定義をする場合には、明細書中で明確に定義する。
【００１０】
本発明の一実施態様では、例えば図１に示すシステム構成１００のようなコンピュータシステムを用いるソフトウェアパッケージとして実行される。ソフトウェアパッケージのプログラムは、（ここでは方法も含む）実施態様の機能を規定し、信号を含む種々の媒体に含まれている。信号を含む種々の媒体には、（ｉ）書き込み不可の記録媒体（例えば、ＣＤ−ＲＯＭドライブにより読み出し可能なＣＤ−ＲＯＭディスクのようなコンピュータ内の読み出し専用記憶装置）に不変に保存された情報、（ｉｉ）書き込み可能媒体（例えばディスケットドライブ内のフロッピー（登録商標）ディスク又はハードディスクドライブ）に保存された変更可能な情報及び（ｉｉｉ）コンピュータ又は無線通信を含む電話網などを通じての通信媒体によってコンピュータへ伝達される情報が含まれるが、これらに限定されるものではない。最後の例には、インターネット及び他の通信網からダウンロードされた情報も含まれる。このような信号を含む媒体が、コンピュータが読み取り可能な命令を伝える場合には、本発明の実施態様を示すことになる。
【００１１】
一般に、発明が具現化するように実行されるルーチンは、オペレーティングシステムの一部又は特定のアプリケーション、データベース、コンポーネント、プログラム、モジュール、オブジェクト又は一連の命令であってもよい。本発明のコンピュータプログラムは、コンピュータによって、読み取り可能なフォーマット、即ち実行可能な命令に翻訳する多数の命令を含んで構成されることが多い。プログラム群には、一部のプログラムに存在するか又はメモリー又は記憶装置内に存在する変数及びデータ構成も含まれる。更に、以下に記載する種々のプログラムは、特定の実施例において実行されるアプリケーションに基づいて識別される。しかしながら、以後に用いられる特殊なプログラム用語は、単に便宜的に使われるので、本発明は、そのような用語によって識別及び／又は暗示される特定のアプリケーションに限定されるものではないことを正しく認識すべきである。この点に関連して、ＨＴＭＬ、ＸＭＬ、ＳＱＬ、ＮＥＴ、Ｃ＃などの特定の定義及びプログラム言語は単なる例として言及する。本発明は、ネットワークリソースの内容を定義する特殊なスキーマ又は言語に関係なく、適用可能であるように企図している。
【００１２】
図１には、本発明の実施例であるシステム構成１００のブロック図を示す。通常、システム構成１００は、クライアント（例えばユーザー）コンピュータ１０２及びサーバコンピュータ１０４を含む。クライアントコンピュータ１０２及びサーバコンピュータ１０４は、同じコンピュータシステム内のコンポーネントでもよいし、インターネットのようなネットワーク１０６を介して連結してもよい。
【００１３】
図に示すように、クライアントコンピュータ１０２は、バス１１６を介してメモリー１１０、記憶装置１１２及びネットワークインターフェース１１４に連結された中央処理装置（ＣＰＵ）１０８を含む。ＣＰＵ１０８は、単一のＣＰＵ、複数のＣＰＵ、マルチ処理コアを有する単一のＣＰＵなどを含む。記憶装置１１２は、アプリケーションプログラム及びクライアントコンピュータ１０２の使用するデータが保存されている。記憶装置１１２の例としては、１つ又は複数のハードディスクドライブ、フラッシュメモリー装置、光媒体などがある。ネットワークインターフェース１１４を用いて、クライアントコンピュータ１０２を、データ通信ネットワーク１０６（例えばインターネットなど他のネットワークに連結できるＬＡＮ）に連結してもよい。メモリー１１０は、ＲＡＭ、不揮発又はバックアップメモリー（例えば、プログラマブルメモリー又はフラッシュメモリー、読み出し専用メモリーなど）を含むメモリーデバイスの組み合わせでもよい。クライアントコンピュータ１０２のメモリー１１０は、ハードウェア及びクライアントコンピュータ１０２において実行されるソフトウェアを管理するオペレーティングシステム（Ｏ／Ｓ）１１８を保存している。図に示すように、メモリー１１０は、種々のサーバと１つ又は複数のサーバ（例えばサーバコンピュータ１０４）の所定のネットワークアドレスとの間のやりとりを支援する、ＣＰＵ１０８により実行されるブラウザープログラム１２０も保存している。
【００１４】
クライアントコンピュータ１０２は、１つ又は複数の表示装置１２２、入力装置１２４、出力装置１２６及び周辺装置１２８に連結してもよい。表示装置１２２は、内部又は外部モニター、テレビ画面、携帯表示装置などでもよい。入力装置１２４は、キーボード、マウス、トラックボール、スタイラス、マウスパッド、マウスボタン、ジョイスティック、スキャナーなどのいずれかでもよい。出力装置１２６は、モニター、プリンター、プロッター、コピアー又は他の出力装置のいずれでもよい。周辺装置１２８は、ディジタル媒体に読み書き可能なＣＤ／ＤＶＤドライブ、ＵＳＢ装置、Ｚｉｐドライブ、外付けフロッピー（登録商標）ドライブ、外付けハードディスクドライブ、電話及び／又はブロードバンドモデム、ルーター／ゲートウェイ、アクセスポイントなどのコンピュータに連結可能などのような装置でもよい。
【００１５】
クライアントコンピュータ１０２と同様に、サーバコンピュータ１０４は、バス１３８を介して連結されるＣＰＵ１３０、メモリー１３２、ネットワークインターフェース装置１３４及び記憶装置１３６を含んでもよい。メモリー１３２は、必要なプログラム及びサーバコンピュータ１０４に設置されたデータ構成を保存するのに十分な容量のＲＡＭでもよい。図に示すように、メモリー１３２は、サーバのハードウェア及びサーバコンピュータ１０４を動かすソフトウェアを管理するオペレーティングシステム（Ｏ／Ｓ）１４２を保存している。メモリー１３２は、クライアントコンピュータ１０２からのサービスリクエストに適応するように構成されたハイパーテキスト・トランスファー・プロトコール（ｈｔｔｐ）サーバ１４４を含む。例えばｈｔｔｐサーバ１４４は、サーバコンピュータ１０４内に存在する電子レソース（例えばＨＴＭＬ文書、ネットワーク情報など）へのアクセスのリクエストに応答してもよい。メモリー１３２は、データベースアプリケーションクエリーなどへのアクセスのリクエストに応答するデータベースサーバ１４３を含んでもよい。しかし、データベースサーバ１４３又はｈｔｔｐサーバ１４４は単なる例であり、本発明は周知及び未知のプロトコールをサポートするように適用できることは言うまでもない。必要に応じて、ＣＰＵ１３０は、ｈｔｔｐサーバ１４４のプログラミング及びデータ構成にアクセスして実行してもよい。サーバコンピュータ１０４は、ネットワークインターフェース装置１３４（例えば、アナログモデム、有線ネットワークカード又は無線ネットワークデバイス）を用いてネットワーク１０６に連結してもよい。
【００１６】
ユーザーは、グラフィカルユーザインターフェース（ＧＵＩ）を用いてサーバコンピュータ１０４と相互に対話してもよい。ブラウザー１２０を用いてクライアントコンピュータ１０２に連結された表示装置１２２に画像表示するＨＴＭＬ文書（すなわち、Ｗｅｂページ）がＧＵＩのコンテンツに含まれてもよい。Ｗｅｂページは、ユーザーが、種々のビジネスプロセス（すなわち、ワークフロー）の機能をデザイン、操作、実行及び監視を可能とするページを含んでもよい。
【００１７】
データベースサーバ１４３は、複数のデータベース１４５１、１４５２を含んでもよい。データベース１４５１は、ワークフローエンジン１４６を管理（ｈｏｓｔ）してもよい。ワークフローエンジン１４６は、データベースに関連したワークアクティビティを制御できるように、ワークフローを形作る（例えば、プロセス、状態、タスク、アクション、イベント、ルールなどを定義する）能力を（例えばＧＵＩを介して）提供できるように構成されたソフトウェアアプリケーションを含んでもよい。データベース１４５は、ＳＱＬクエリーが照会（ｑｕｅｒｙ）する、リレーショナルデータベース１４５１又はＸＭＬクエリーが問い合わせするＸＭＬデータベース１４５２を含む。しかしながら、本発明は、特定のデータベースの記憶方式に限定されるものではなく、別の方式への簡単に拡張できる。図面では、データベース１４５１、１４５２がサーバシステムに内蔵されているが、データベース１４５１、１４５２は、サーバコンピュータ１０４の外部記憶装置（例えば、記憶装置１３６）に在るか、又はネットワーク１０６を介してのアクセスであってもよい。
【００１８】
図２は、ワークフローエンジン１４６の部分を図示した。ワークフローエンジン１４６は、データベース１４５１内に在る。データベース１４５１はデータベースサーバ１４３内に在る。図に示すように、プロセスデザイナー２０４、ビジネスソフトウェアアプリケーション２０６、データベース照会ツール２０７、データベース報告ツール２０８及び他のデータベースツール２０９が、データベース１４５１に連結されている。データベースサーバ１４３は、データベース１４５１、１４５２の作成、保守及び使用を制御するデータベース管理システム（ＤＢＭＳ）でもよい。データベース１４５１、１４５２は、データ、手続き及びセキュリティが使用する関連アプリケーションによって分離されている論理ユニットに関連している。データベースサーバ１４３は、データベース１４５１内のプログラム可能な機能及び／又はデータベースサーバ１４３内のソフトウェア又はＯ／Ｓ１４２（図１参照）を通してワークフローエンジン１４６により直接に制御するか統合する、第三者のシステムであってもよい外部システム１４８１、１４８２にも連結できる。先端のデータベースサーバが備えているサービスブローカー（不図示）の機能を統合するのに用いることもある。
【００１９】
統合とは、自動化された管理、調整及び複合コンピュータシステム、ミドルウェア及びサービスの管理のことである。統合操作によっては、タスクを完遂するために共動する緩やかに連結されたシステム間でメッセージが交わされることもある。製品をある場所に出荷する旨のメッセージがある輸送会社に送られることが、その一例である。輸送会社は、自主的に出荷し、出荷の詳細を依頼者に確認する。出荷を依頼した会社は、出荷業務を気づかう必要はなく、また輸送会社は、出荷の目的を気づかう必要はない。出荷業務が完遂されるように、２つの会社のシステム間でメッセージが交わされるだけである。
【００２０】
プロセスデザイナー２０４により、ユーザーが、（例えば図１のブラウザー１２０内に在るＧＵＩを介して）、ワークフロープロセスを作成及び変更することができる。ユーザーは、ＧＵＩを用いて、ワークフロープロセスを定義、編集、再検討及び管理することができる。プロセスデザイナー２０４を用いて、ワークフロープロセスが作成されると、データベース１４５１内のテーブル（又はデータ構成）がプロセスに対する制御テーブル（ベーステーブル）として定義される。ベーステーブルへデータが流れ込むと、ワークフローエンジン１４６が作動（ｔｒｉｇｇｅｒ）する。データがベーステーブル（テーブルの記録）に流れ込むや否や、ワークフローのインスタンスが始動する。ベーステーブルは２つ以上のプロセスに対する制御テーブルであってもよく、それにより、ベーステーブルに流れ込むデータのインスタンスが、ワークフローの多くの（各プロセスに１つの）インスタンスを始動させることができる。代わりに、ワークフロートランザクションを、ベーステーブルへのデータベーストランザクションの一部として始動させてもよい。
【００２１】
一般的に、ワークフローは、３つの基本エレメントである、プロセス、ステート及び移行（トランジション）から成り立っている。ワークフロープロセスは、タスクを完遂させる一連のワークの流れである。この流れは、プロセスデザイナー２０４により設定された条件に応じて、異なったポイントにおいて異なったルートを取ることができる。大きなタスクは、相互に関連する多数のサブプロセスに、論理的に分割してもよい。ステートは、ワークフロープロセスにおける休止工程である。移行は、ワークフローインスタンスをあるステートから他のステートへ移動させる動作である。移行は、ユーザー特有の行動か又はユーザーにより設定された特有の条件に基づく自動化されたフローである。ユーザーは、ＧＵＩを用いて、ステート及びそれに関連するモデルとされるワークフローの移行を定義できる。ワークフローは、アクティビティをプロセスとして論理的に記述することを可能とする（図４に示す）高度な流れ図としてのモデルであってもよい。流れ図は、アイコンの“ドラッグ＆ドロップ”操作により作成することもできる。プロセスデザイナー２０４は、ワークフローエンジン１４６と相互に作用する。ワークフローの全てのプロセスの定義（“ワークフローメタデータ”）はデータベース１４５１と共にデータとして保存される。
【００２２】
アプリケーション２０６は、ソフトウェアが支援するビシネスを実行するビジネスアプリケーションである。例えば、メールで注文操作するための顧客注文管理アプリケーションソフトウェアは、ビジネスアプリケーションである。このビジネスアプリケーションは、顧客への注文、出荷命令及び請求を作成する画面を有することもできる。ワークフローを備えているか否かに拘わらず、このようなアプリケーションを構築できる。ワークフローを具備しないアプリケーションは、データベース１４５１内のワークフローエンジン１４６を有していなくてもよい。ワークフローを備えたアプリケーションは、ソフトウェアアプリケーションのように作動するが、ワークフローエンジン１４６からの制御を必要とする。このアプリケーションは、アプリケーション２０６がワークフローエンジン１４６と相互に作用してワークフローの機能を利用するワークフローを意識したアプリケーションへと機能が高められる。例えば、ワークフローの機能を高めたアプリケーションは、公開された全ての注文のワークフローのステートを示すことができる。ワークフローの機能を高めたアプリケーションは、ユーザーの実行できる業務の調整、ユーザー間の調整なども提供できる。
【００２３】
上述したように、ワークフローエンジン１４６は、データベース１４５１内に在り、データベース１４５１及びデータベースサーバ１４３と統合されている。データベース１４５１のデータベース層に在るプログラムとしてのワークフローエンジン１４６が実行されて、上記の統合が達成される。このような統合により、新たなデータがデータベース１４５１に流れ込む際、又はデータが修正及び／又は削除される場合に、ワークフローエンジン１４６は、ワークフロープロセスを制御することができるようになる。この統合により、データベースの機能性をそのまま使用（すなわち、ワークフローエンジン１４６の存在を意識せずに）できる。しかし、統合にはワークフローの制御が含まれる。ワークフロープロセスは、データベース１４５１内に在るベーステーブルにおけるデータへ変更することにより、具体化、誘導及び制御される。アプリケーション２０６、データベース照会ツール２０７、データベース報告ツール２０８及び他のデータベースツール２０９によるデータへのすべての変更は、ワークフローエンジン２０６により自動的に調査されて制御される。上記統合により、データベース１４５１層内のワークフローエンジン１４６が継ぎ目なく作動するようになる。
【００２４】
ワークフローエンジン１４６は、ワークフロープロセスの作成及び管理の提供、ワークフローのモデルの解釈並びにワークフローの実行の管理ができる。ワークフローエンジン１４６は、流れの経路の決定、複数のアクティビティの同期化、複数のアクティビティへのリソースの割り当て、個体への通知、イベント及びアプリケーションの実行、データ及び文書のアプリケーション及び個体への転送、ユーザーのセキュリティ及び特権の制御、種々のワークフローのインスタンスの種々のステートの維持、ワークフロートランザクションのログの維持もできる。
【００２５】
図３は、ベーステーブル及びサブ−テーブルの構成図の例を示す。一般に、ビジネス、組織、団体（ｅｎｔｉｔｙ）などは、データベース１４５１、１４５２の幾つかの関連するテーブル３０２、３０４、３０６に保存されている。そのようなテーブルの１つが、記録が入っている多数の列から成るベーステーブル３０２である。ベーステーブルを発注管理アプリケーションに用いると、ベーステーブルのそれぞれの記録は、アプリケーションによる発注を示す。図示のように、それぞれの記録は、発注の識別番号を含んでもよい。ベーステーブル３０２は、Ｎ個の関連するサブ−テーブル３０４、３０６を有している。それぞれのサブ−テーブル３０４、３０６は、それぞれの発注に関する追加の情報を含むことができる。図示のように、サブ−テーブル３０４は、それぞれの発注に対する顧客名を含み、サブ−テーブル３０６は、発注された商品の数量を含んでいる。新たなデータがベーステーブル３０２に書き加えられると、ワークフローが始動する。従って、ベーステーブルのそれぞれの列は、ワークフロープロセス（例えば、ワークフローで定義された発注管理プロセス）の発生を示している。ベーステーブル３０２（又はサブ−テーブル３０４、３０６）内に保存されるデータの作成又は修正をするように、アプリケーション２０６を構成してもよい。アプリケーション２０６は、データを入力又は修正するユーザーインターフェースの利用、報告する機能の提供などもできる。
【００２６】
ワークフローは、内部及び外部システム１４８１、１４８２と関連付けてもよい。例えば、購入の点数（ｆｒｅｑｕｅｎｔ  ｂｕｙｅｒ  ｐｏｉｎｔｓ）により顧客に信用貸しするビジネスモデルを考える。この場合、点数制は、内部システムであってもよいが、データベース１４５２を用いる異なったアプリケーションとなる。第三者の輸送会社を、顧客への直送に起用する例もある。輸送会社のシステム（例えば外部システム１４８１及び／又は１４８２）は、出荷の詳細を通知される。輸送会社は、出荷業務を行い、確認の詳細を送信する。ワークフローイベントを通して、内部システムと外部システムの相互のやり取りが完了する。ワークフローイベントは、プログラム可能な言語（例えば、Ｃ＃、Ｊａｖａ（登録商標）など）を用いてスクリプトに記述することができる。イベントスクリプトは、トランザクションに統合されたデータベース−ワークフローの一部としてか、又は単にワークフロートランザクションの一部として実行できる。イベントは、あるステートに入る時点、あるステートから出る時点又はユーザーがアクションを実行する時点など、適切な時点において実行される。イベントは、ファイルの作成、他のシステム及び／又はアプリケーションにおけるアクションの開始、電子メール通知の送信などが含まれるが、これに限定されない。
【００２７】
図４は、ワークフロープロセス４０４を設計及び管理するＧＵＩ画面４０２を示す。説明のため、図には発注管理プロセス用のワークフロープロセス４０４を示す。発注管理システムは、開始４０６、注文の進行中４０８、注文の出荷済み４１０、送り状送付済み４１２及び終了４１４を含む複数のステートを含んで構成されている。ステート４０６、４０８、４１０、４１２、４１４は、発注４１６、出荷４１８、送り状送付４２０、取消し４２２及び完了４２４を含む複数のトランジションのそれぞれと互いに連結してもよい。ワークフロープロセス４０４は、購入者が製品を（例えば、ｗｅｂ形式で）発注した際に、注文の進行ステート４０８に入るように構成されている。このステート中に取るアクションに応じて、ワークフロー４０４は、注文進行ステート４０８から、終了ステート４１４又は出荷済みステート４１０へ移行できる。例えば、注文が（例えば供給者により）取り消されると、ワークフロープロセス４０２は、注文の進行ステート４０８から取消トランジション４２２を経て終了ステート４１４へと移行できる。この場合、供給者は、ワークフローが取消トランジション４２２に従うイベントを開始するユーザーフォームを用いてもよい。しかし、もし製品が出荷されると、ワークフロープロセス４０４は、注文進行ステート４０８から出荷済みステート４１０へと移行するかもしれない。この場合、ユーザーフォームは、ワークフロープロセス４０４が出荷のトランジション４１８を実行する対話を開始する。（例えばユーザーフォームを用いて）送り状を送付すると、ワークフロープロセス４０４は、出荷済みステート４１０から、送り状送付のトランジション４２０を経て送り状送付済みステート４１２へと移行できる。発注が完了すると、送り状送付済みステート４１２は、完了のトランジション４２４を経て終了のステート４１４へと移行できる。
【００２８】
ステート４０６、４０８、４１０、４１２、４１４及びトランジション４１６、４１８、４２０、４２２、４２４は、ステートボックス４２６及びトランジションボックス４２８内のアイコンを、ドラッグ＆ドロップすることにより、ワークフロー４０２の一部として実行することができる。
【００２９】
上述したように、ワークフロープロセス４０４は、データベース１４５１、１４５２のベーステーブルに保存されたデータに関連付けられる。ユーザーは、データベース選択ボタン４３０を用いて適切なデータベース１４５１、１４５２を選択してもよい。注文情報（例えば識別番号）を含むベーステーブル３０２（図３参照）関連付けられているベーステーブル選択ボタン４３２を用いて、発注管理用のワークフロープロセス４０４を作成できる。注文を処理するアプリケーション２０６、照会ツール又は互換可能な他のアプリケーションを含む種々のツールにより、注文（ワークフローのインスタンス）を作成できる。使用するツールに関係なく、ワークフローのインスタンスが作成される。
【００３０】
ベーステーブル３０２をワークフロープロセス４０４に関連付けする間に、ワークフローエンジン１４６は、ベーステーブルに、テーブルレベルトリガーを作成する。このような、トリガーは、ワークフローエンジン１４６へのゲートウェイとして働く。ベーステーブルの記録が追加、更新及び削除されると、テーブルトリガーを通して、ワークフローエンジン１４６が制御機能を獲得する。制御機能を獲得したワークフローエンジン１４６は、記録の主キーを用いて記録を識別してワークフロートランザクションを完了させる。このようにして、データベーストランザクションの一部として、ワークフロートランザクションを完了させる。ベーステーブル３０２に、新たな注文の記録が追加されると、この注文に対してワークフロープロセス４０４のインスタンスが自動的に作成される。新たな注文がベーステーブル３０２に挿入されると、ワークフロープロセス４０４が始動して、始動ステート４０６から注文進行ステート４０８へと、自動的且つ／又は条件付きで移行する。
【００３１】
所望のワークフロープロセス４０４が設定されると、その機能が既存のアプリケーション又は新たなアプリケーション（例えば、ｗｅｂに基づいた発注アプリケーション）に組み込まれる。ユーザーは、（例えば、マイクロソフト社のＶｉｓｕａｌ  Ｂａｓｉｃ．ＮＥＴを用いて）ｗｅｂフォームを作成してｗｅｂフォームをデータベース１４５１、１４５２と関連付けてもよい。ブラウザー１２２を用いて、それぞれが異なった目的の複数のｗｅｂフォームを作成することができる。例えば、製品の注文を受けるのに用いる、特定のｗｅｂフォームを作成することができる。このようなｗｅｂフォームは、注文に関する情報（例えば、出荷先、請求先、製品名、数量など）を受け入れる種々のフィールドを含んでもよい。ユーザーがフォームを送ると、新たな注文を示すエントリーが、ワークフロープロセス４０４に対して選択されたのと同じベーステーブル３０２内に作成される。従って、ベーステーブル３０２にエントリーが作成されると、この注文に対するワークフロープロセスインスタンスが自動的に作成される。ワークフロープロセスインスタンスは、プロセスに対する条件により作成されることも、作成されないこともある。例えば、大型店の購入注文ではなく、メールによる注文に対してのみ作成するとの条件を設定することもできる。列が作成されると、発注トランジション４１６も始動する。ワークフローのインスタンスは、ベーステーブルの主キー又はユニークキーにより識別される。テーブルの主キーは、テーブルの列に対するユニーク識別子である。ワークフローエンジン１４６は、複数のテーブルより成るデータストア内のベーステーブルのそれぞれの記録のステート情報を独立して維持する。例えば、ワークフローエンジン１４６は、ＯＲＤＥＲ＿ＩＤ＝０００１（主キー）が現時点においてステート４０８に在るとの情報を有する。
【００３２】
作成可能な別のフォームのテーブルは、製品の供給者が用いる受注終了及び出荷フォームである。供給者は、このフォームを用いて、受注の取消し、並びに受注の完了又は製品受注（すなわち出荷指示）をすることができる。フォームが送られると、ワークフロープロセス４０４が注文進行ステート４０８から適切なステートへと移動するように、ワークフローエンジン１４６に通知するイベントが始動する。例えば、供給者が受注を取消すと、取消トランジションイベントが始動して、ワークフロープロセス４０４が、注文進行ステート４０８から終了ステート４１４へと移動する。受注終了及び出荷フォームが送られると、取消トランジション４２２へ信号を送る機能が呼び出され、ワークフローエンジン１４６に、ワークフロープロセス４０４が注文進行ステート４０８から終了ステート４１４へと移動するように指示する。これに対して、供給者が受注を終了すると、出荷トランジション４１８が始動して、ワークフロープロセス４０４が注文進行ステート４０８から出荷済みステート４１０へと移動する。受注終了及び出荷フォームが送られると、ワークフロープロセス４０４が注文進行ステート４０８から出荷済みステート４１０へと移動するように、ワークフローエンジン１４６に指示する機能が呼び出される。
【００３３】
ベーステーブルの記録及びデータは、ワークフローエンジン１４６には依存しない。ワークフローエンジン１４６は、ベーステーブルにどのようなデータが入力できるかの決定権を有していない。この場合、ワークフローエンジン１４６は、主キーを用いて、ベーステーブルの記録のステート情報を独立して案内及び監視する。ステート情報は、ワークフローエンジン１４６のデータストア内に分離して保存される。ワークフローデータをベーステーブルデータから分離することにより、アプリケーション２０６及びデータベース１４５１は、ワークフローに依存せずありのままに働く。しかし、ワークフローの全機能性は、ワークフローエンジン１４６により提供される。
【００３４】
ワークフローエンジン１４６は、プロセスの現時点のステート（４０８、４１０及び４１２）におけるベーステーブルの記録に対しても機能している。始動ステート４０６及び終了ステート４１４は、一時的なステートであり、ベーステーブルの記録はこのステートには、止まらない。ベーステーブルの記録が、終了ステート４１４に到達すると、記録はワークフローキューから分離され、ワークフローエンジン１４６は、記録の追跡を停止する。終了ステートに到達すると、注文は完了（又は取消され）し、この注文に対して更に作業する必要はなくなる。ベーステーブルは、完了した注文に関するデータを持ち続ける。ベーステーブルデータは、引き続きアプリケーション２０６に管理される。実施例によっては、ベーステーブルの主キー及び記録の在るステートを用いて、ワークフローエンジン１４６に、再ステート状態とするワークフローエンジン１４６への“再ステート”リクエストにより完了した注文をワークフローに戻すことも可能である。
【００３５】
ベーステーブルの記録データが、アプリケーション２０６、クエリーツール２０７又は他のデータベースツール２０９により更新されても、主キー以外のデータの変更はワークフローインスタンスには何らの影響も及ぼさない。もし記録がワークフローにおいて能動的であれば（例えば記録の現時点のステートが４０８、４１０又は４１２であれば）、ワークフローエンジン１４６は、主キーをステートの追跡に使うと同時に、主キーを更新できない能力を補強することもできる。また、ワークフローエンジン１４６は、データベース主キーの変化に合うように、ワークフローインスタンスキーを自動的に調整し、それによって主キーを更新することが可能となる。ワークフローエンジン１４６から制限された干渉はあるが、アプリケーション２０６に完全な独立が付与される場合には、用いた手法に関係なく、記録は制限なく更新される。
【００３６】
アプリケーション２０６、クエリーツール２０７又は他のデータベースツール２０９によりベーステーブルの記録が削除されると、ワークフローエンジン１４６は主キーの記録を調べて、主キーがワークフローにおいて能動的のままであれば（例えば記録の現時点のステートが４０８、４１０又は４１２であれば）、ワークフローキューから主キーを削除する。
【００３７】
ベーステーブルの挿入により、ワークフローインスタンス及びトランザクションが始動する。しかしながら、ベーステーブルの記録の変更を伴わない多数の後続のトランザクションがあり得る。ステートが移動すると、ワークフロートランザクションが起こる。
【００３８】
上述のしたことを図５に要約して示す。図５の２つの表５０２、５０４は、データベースとワークフロートランザクションとの関係を示す。表５０２は、データベーステーブルトランザクションのワークトランザクションへの影響を示す。表５０４は、ワークフロートランザクションのデータベーステーブルトランザクションへの影響を示す。表５０２に示すように、ベーステーブルのデータベーストランザクションは、ワークフロートランザクションを始動させる。例えば、データベーストランザクションが挿入トランザクションであって、ベーステーブルの条件が満たされれば、挿入トランザクションがワークフロートランザクションにおいて実行される。データベーストランザクションがベーステーブルの主キーに対して更新されたトランザクションならば、データベーストランザクションは停止させられる。しかしながら、更新されたトランザクションが主キーに対するものでないならば、ワークフロートランザクションには何らの影響もない。データベーストランザクションが、削除トランザクションならば、それに対応する記録の主キーもワークフローから削除される。
【００３９】
しかしながら、表５０４に示すように、ワークフロートランザクション（例えば、挿入、更新又は削除トランザクション）は、ベーステーブルにデータベーストランザクションを作成しない。このことは、データベースに基づいて開発したアプリケーションのアーキテクチャを変更せずに、既存又は新たなビシネスアプリケーションへ、最小限に侵略的（ｉｎｖａｓｉｖｅ）なワークフローエンジン１４６を導入し易くする。
【００４０】
また、統合されたデータベース−ワークフロートランザクションは、データベースに従うワークフロートランザクションとして実行される。データベーストランザクションの観点から、テーブルに列が挿入されると、通常はデータベースエンジンが列レベルのロック又はテーブルレベルのロックを設定する。ロックの実行はデータベースのベンダ毎に異なっている。（ワークフローエンジン１４６により作成された）トリガーは、妥当な性能を維持するため、極めて迅速に実行してもよい。トリガーは、同時に数百又は数千の注文が入っても受入れできるほど十分に速い。本発明では、内部システム及び外部システム１４８の統合も可能としている。そのような統合により、データベーストランザクションが遅くなるか又は他のシステムからの応答を待つ時間が不確定となるおそれがある。更に、あるステートから他のステートへのフローがループ状の幾つかステートに流れ、多数のワークフローのサブ−プロセスが自動的に形成されることもある。このような、長いフローはシステムを停止（ｌｏｃｋ  ｄｏｗｎ）させ、全体のシステムが遅くなることもある。多くのデータベースのインプレメンターションは、まとめられた（ｎｅｓｔｅｄ  ｌｅｖｅｌ）トリガーに関しての制限を有し、数ステップの長くまとめられた自動化されたフローを防ぐことができる。ワークフロープロセスを上手く設計することで、この問題点は克服できる。表５０２、５０４から、データベース−ワークフロー統合トランザクションは、データベースの挿入及び削除トランザクションに関連することがわかる。多くのデータベースシステムは、このようなトランザクションに対して列レベルのロックを提供し、別のユーザーのトタンザクション（例えば別の注文トランザクション）が停止されるか又は遅らせることは考えられない。しかしながら、まとまられたデータベーストランザクションに関して制限時間を超過するおそれ及び外部システムなどが関与するトランザクションの持ち時間が不確定となるおそれがある。データベースに従うワークフロートランザクションによりそのような問題点は克服できる。
【００４１】
データベースに従うワークフロー機構を組み込めるように、ワークフローエンジン１４６は、サービスブローカー又はサービス指向アーキテクチャ（ＳＯＡ）（不図示）を使用してもよい。最近の多くの周知のデータベースに関して、サービスブローカー又はＳＯＡインプレメンターションが利用できる。このことにより、タスクを分離して、停止しないやり方で独立してタスクを完了する能力が提供される。ワークフローエンジン１４６が、データベーストランザクションからコントロールを受け取ると、ワークフローエンジン１４６は、ワークフロートランザクションの一部又は全てを任意に選択して、サービスブローカーへ送る。サービスブローカーへ送った後に、ワークフローエンジン１４６は、ワークフロートランザクションが未定か又は完了との信号をデータベースエンジンに送って、データベーストランザクションが完了して全てのデータベースのロックを解除する。しかしながら、ワークフローエンジン１４６は、ワークフロートランザクションが未定であると印を付けて、ベーステーブルが他のステートに移動するのを防ぐ。サービスブローカーにより作業がうまく完了してワークフローエンジン１４６に通知すると、ワークフローエンジン１４６は、次のワークフロートランザクションに備えて、この記録のロックを解除する。サービスブローカーが作業を完了し損なう（例えば、外部システム１４８に連結できない）と、サービスブローカーは、待機して再度試みる。条件によっては、以前に完了した（間違ったデータベース−ワークフロートランザクションに関する）データベーストランザクションを、最初のデータベーストランザクションが行われなかった時点まで、プログラム的にロールバックすることができる。
【００４２】
図６は、ワークフローのデータベースを有効とし、ワークフロープロセスを作成するためのフローチャートである。操作は、ワークフローと共に使用するデータベースを選択するステップ６０２から始まる。ステップ６０４において、データベースが既に有効であるかを判定するためのチェックを行う。データベースが有効であると、判定されると、ステップ６０８におけるプロセス用に、データベース内のベーステーブルを選択する。これにより、新たなプロセス（例えば、図４の始動ステート４０６）がベーステーブルに作成される。次いで、プロセスは、ステップ６１０において、多数のステート、トランジション、終了ステート、条件、イベント、セキュリティなどにより機能が高められる。ステップ６０４に置いて、データベースがワークフローに対して有効でないと判定されると、ステップ６０６においてワークフローエンジン１４６により、ワークフローが有効とされる。
【００４３】
図７は、データベース−ワークフロー統合トランザクションのフローチャートを示す。図７は、図５の表５０２に示すトランザクションの詳細なフローチャートである。このフローチャートは、ベーステーブルにおいて始動したデータベーストランザクションを用いて可能となる、データベース−ワークフロー統合トランザクションを示す。フローチャートは、ワークフローエンジン１４６がデータベースの挿入、更新及び／又は削除トランザクションかを調べる、ステップ７０２のデータベーストランザクションから始まる。データベーストランザクションが、記録の挿入トランザクションと判定されると、ステップ７０４において、データベーストランザクションが、ワークフローインスタンスを作成する条件を満たしているか否かを判定する。条件を満たしている場合には、ステップ７０８においてワークフローインスタンスが作成され、ステップ７１０においてワークフローエンジン１４６により記録の挿入トランザクションが実行される。ステップ７０４において条件を満たしていない場合は、ステップ７０６に移行し、ワークフローインスタンスを作成せず、ステップ７１０においてワークフローエンジン１４６により記録の挿入トランザクションが実行される。
【００４４】
ステップ７０２において、データベーストランザクションが、記録の更新トランザクションと判定されると、ステップ７１２においてデータベーストランザクションは、記録の主キーが更新されているか否かを調べる。主キーが更新されている場合は、更にステップ７１４において、記録がワークフローインスタンスを有しているか否かを調べる。ワークフローインスタンスが主キーに在る場合には、ステップ７１６においてワークフローエンジン１４６は、トランザクションを停止する信号をデータベースエンジンに送る。ワークフローエンジン１４６は、主キーを用いてワークフローを追跡するので、主キーは更新されない。変更された主キーに整合するように、ワークフローエンジン１４６は、ワークフローインスタンスのキーを自動的に調整する（フローチャートには図示されていない）。ステップ７１４において、主キーが更新されていないか、ワークフローに記録が無いと判定された場合は、ステップ７１８に移行し、ワークフローエンジン１４６は、データベースを更新してデータベーストランザクションを完了するようにデータベースに信号を送る。
【００４５】
ステップ７０２において、データベーストランザクションが、記録の削除トランザクションと判定されると、ステップ７２０においてデータベーストランザクションは、主キーに対するワークフローインスタンスが存在するか否かを調べる。ワークフローインスタンスが存在する場合は、ステップ７２２において、ワークフローエンジン１４６は、ワークフローインスタンスを削除して、ステップ７２４においてデータベースの削除トランザクションを完了するようにデータベースエンジンに信号を送る。ワークフローインスタンスが存在しない場合は、ワークフローエンジン１４６は、ステップ７２４においてデータベースの削除トランザクションを完了するようにデータベースエンジンに信号を送る。
【００４６】
図８は、ワークフロートランザクションのフローチャートを示す。図８は、図５の表５０４に示すトランザクションの詳細なフローチャートである。このフローチャートは、ベーステーブルにおけるデータベーストランザクションによって始動されないワークフロートランザクションを示す。ステップ８０２において、現時点においてワークフローには無いが、ベーステーブルに存在する記録を用いて、ワークフローインスタンスを作成できる。ワークの記録（例えば注文）を、ワークフローに戻して再作動させれば、この作成が可能である。例えば、誤って実行した顧客からの注文をワークフローに戻して再度調べることができる。ステップ８０６において、挿入トランザクション中にワークフローエンジン１４６は、ユーザーにより定義される復帰ステートへと移行する。
【００４７】
ステップ８０８において、更新トランザクション中に、ワークフローインスタンスが更新される。ワークフローインスタンスが更新されて、ユーザー又はマシンによりトランジションが実行されると、ステートが別のステートへ移行する。ステップ８１０において、ワークフローエンジン１４６は、トランジションを調べて次のステートが終了ステートか否かを判定する。次のステートが終了ステートであると判定されると、ステップ８１２へ移行してワークフローインスタンスが削除される。ワークフローインスタンスを削除しても、データベースのベーステーブルの記録には何らの影響も及ぼさない。データはベーステーブルに残っている。その記録に対してワークフローが無い場合は、作業は未定であることを意味する。ステップ８１０において、次のステートが終了ステートで無いと判定されると、ステップ８１４においてワークフローインスタンスの現時点のステートが更新される。
【００４８】
ステップ８１６において、削除トランザクション中にワークフローインスタンスが削除される。ワークフローインスタンスが削除されると、記録がベーステーブルから取り除かれる。
【００４９】
図９は、ワークフロー内のイベントに対するフローチャートを示す。ワークフローエンジン１４６において、注文が、出荷トランジション４１８を用いて注文進行ステート４０８から出荷済みステート４１０に移行すると、複数のワークフローイベントを実行することができる。出荷済みステート４１８は、ユーザー又はシステムにより始動される。サンプルイベント９２２、９２４、９２６は、内部システム又は外部システム１４８において実行される、プログラミング言語で書かれたプログラミングコードを示している。フローチャートにおいて、“終了中（ｏｎ  ｅｘｉｔ）”タイプのイベント９２２が在って、注文進行中ステート４０８が終了する際に実行することができる。“実行中（ｏｎ  ｐｅｒｆｏｒｍ）”タイプのイベント９２４が在って、出荷済みトランジション４１８が実行される際に実行することができる。“移行中（ｏｎ  ｅｎｔｅｒ）”タイプのイベント９２６が在って、出荷済みステート４１０に移行した際に実行することができる。例えば、イベント９２６は、注文の受け手への通知と同期して、電子メールサーバ９４０に伝達９２８する。トランジションが首尾よく実行されると、ワークフローインスタンスは、あるステートから別のステートに移行して、この例における全ての３つのイベントは９２２、９２４、９２６の順に実行される。ワークフローの動きに対応する幾つかのタイプのイベントを形成してもよい。
【００５０】
図１０は、ワークフロートランザクションにおけるイベントと共にサービスボローカーを用いるためのフローチャートを示す。この図の流れは、ワークフローエンジン１４６と電子メールサーバ９４０を仲介する、サービスブローカー１０３０を用いること以外は、図９と同じである。イベント１０２６は、データベース１４５内に存在するサービスブローカー１０４０に電子メールサーバ９４０が受信したか否かの結果を待つことなく委任内容を電子メールするように伝達１０２８する点において、図９のイベント９２６と異なっている。サービスブローカー１０３０は、電子メールサーバ９４０に送信し、電子メールサーバ９４０から応答を受信し、その応答をワークフローエンジン１４６に返信１０３４する。この方法は、電子メールサーバが働いていなくても、データベース−ワークフロートランザクションのデータベーストランザクションコンポーネントは、待機する必要が無いとの利点がある。ワークフロートランザクションは、サービスブローカーが作業を完了するまで待機する必要がある。これにより、ワークフローイベントを用いるシステムの減速、フリーズ（ｌｏｃｋ  ｄｏｗｎ）が無くなる。
【００５１】
上述したことは、広範に適用が可能であり、本明細書に記載の実施例に限定されるものではないことは明らかである。
【００５２】
異なるが同等のやり方による発明の修正及び実施は、当業者には明らかなので、ここでは特定の実施態様のみを開示した。更に、以下に述べる特許請求の範囲以外は、構成又は構想の詳細は、限定するものではない。従って、上述の特定な実施態様は、変更又は修正でき、そのような変更は全て請求した発明の範囲及び主旨の範囲にあるものと考える。
【符号の説明】
【００５３】
１００    システム構成
１０２    クライアントコンピュータ
１０４    サーバコンピュータ
１０６    ネットワーク
１０８    中央演算装置（ＣＰＵ）
１１０    メモリー
１１２    記憶装置
１１４    ネットワークインターフェース
１１６    バス
１１８    オペレーティングシステム（Ｏ／Ｓ）
１２０    ブラウザー
１２２    表示装置
１２４    入力装置
１２６    出力装置
１２８    周辺装置
１３０    ＣＰＵ
１３２    メモリー
１３４    ネットワークインターフェース
１３６    記憶装置
１３８    バス
１４２    オペレーティングシステム（Ｏ／Ｓ）
１４３    データベースサーバ
１４４    ｈｔｔｐサーバ
１４５    データベース
１４６    ワークフローエンジン
１４８    外部システム
２０４    プロセスデザイナー
２０６    ビジネスソフトウェアアプリケーション
２０７    データベース照会ツール
２０８    データベース報告ツール
２０９    他のデータベースツール
３０２    ベーステーブル
３０４、３０６    サブテーブル
４０２    ＧＵＩ画面
４０４    ワークフロープロセス
４０６、４０８、４１０、４１２、４１４    ステート
４１６、４１８、４２０、４２２、４２４    トランジション
４２６    ステートボックス
４２８    トランジションボックス
４３０    データベース選択ボタン
４３２    ベーステーブル選択ボタン
９２２、９２４、９２６    イベント
９４０    電子メールサーバ
１０２６    イベント
１０３０    サービスブローカー
【図１】
2013530464.tif 000003
【図２】
2013530464.tif 000004
【図３】
2013530464.tif 000005
【図４】
2013530464.tif 000006
【図５】
2013530464.tif 000007
【図６】
2013530464.tif 000008
【図７】
2013530464.tif 000009
【図８】
2013530464.tif 000010
【図９】
2013530464.tif 000011
【図１０】
2013530464.tif 000012
【手続補正書】
【提出日】平成24年3月19日(2012.3.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータに実装された方法であって、
１つ又は複数のワークフロープロセスに、ワークフローエンジンを含むデータベース内に保存されたデータ構成を割り当てるステップ、及び
前記データ構成に在る新たな記録に対応して前記ワークフローエンジンを通して、ワークフロープロセスのインスタンスを自動的に作成するステップ、又は削除した記録トランザクションに対応して前記１つ又は複数のワークフロープロセスのインスタンスを自動的に除去するステップを含むことを特徴とする方法。
【請求項２】
更に、前記１つ又は複数のワークプロセスにアプリケーションを割り当てるステップを含み、前記アプリケーションは前記データ構成の処理を実行することを特徴とする請求項１に記載の方法。
【請求項３】
前記データ構成は複数の列を含むベーステーブルであり、それぞれの列は前記１つ又は複数のワークフロープロセスの新たなインスタンスを示すことを特徴とする請求項１又は請求項２に記載の方法。
【請求項４】
前記データ構成は、前記ワークフローへのゲートウェイとして働く１つ又は複数のトリガーを含むことを特徴とする請求項３に記載の方法。
【請求項５】
データ構成に記録が追加、更新又は削除されると、前記１つ又は複数のトリガーが起動してワークフロートランザクションが完了することを特徴とする請求項４に記載の方法。
【請求項６】
１つ又は複数のワークフロープロセスに、ワークフローエンジンを含むデータベース内に保存されたデータ構成を割り当てるステップ、及び
前記データ構成に在る新たな記録に対応して前記ワークフローエンジンを通して、ワークフロープロセスのインスタンスを自動的に作成するステップ、又は削除した記録トランザクションに対応して前記１つ又は複数のワークフロープロセスのインスタンスを自動的に除去するステップを含むことを特徴とする記録媒体。
【請求項７】
更に、前記１つ又は複数のワークプロセスにアプリケーションを割り当てるステップを含み、前記アプリケーションは前記データ構成の処理を実行することを特徴とする請求項６に記載の記録媒体。
【請求項８】
前記データ構成は複数の列を含むベーステーブルであり、それぞれの列は前記１つ又は複数のワークフロープロセスの１つのインスタンスを示すことを特徴とする請求項６又は請求項７に記載の記録媒体。
【請求項９】
前記データ構成は、ワークフローエンジンへのゲートウェイとして働く１つ又は複数のトリガーを含むことを特徴とする請求項８に記載の記録媒体。
【請求項１０】
データ構成に記録が追加、更新又は削除されると、前記１つ又は複数のトリガーが起動してワークフロートランザクションが完了することを特徴とする請求項９に記載の記録媒体。
【請求項１１】
処理装置及びデータベース層を含んだメモリーを含むシステムであって、
前記データベース層は、前記データベース層内のデータの変更の全てを自動的に調べ且つ制御するワークフローエンジンを含むことを特徴とシステム。
【請求項１２】
更に、前記メモリーは操作を実行する、コンピュータで動かされるプログラムを含み、前記操作は、
１つ又は複数のワークフロープロセスにアプリケーションを割り当てるステップ、及び
ワークフロープロセスのインスタンスを自動的に作成するステップ、又は削除した記録トランザクションに対応して前記１つ又は複数のワークフロープロセスのインスタンスを自動的に除去するステップを含むことを特徴とする請求項１１に記載のシステム。
【請求項１３】
更に、データ構成に操作を実行するアプリケーションを前記１つ又は複数のワークフロープロセスに割り当てるステップを含むことを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記データ構成は複数の列を含むベーステーブルであり、それぞれの列は前記１つ又は複数のワークフロープロセスの１つのインスタンスであることを特徴とする請求項１１又は請求項１２に記載のシステム。
【請求項１５】
前記データ構成は、前記ワークフローエンジン層のゲートウェイとして働く１つ又は複数のトリガーを含むことを特徴とする請求項１２に記載のシステム。
【請求項１６】
前記データ構成に記録が追加、更新又は削除されると前記１つ又は複数にトリガーが働いてワークフロートランザクションが完了することを特徴とする請求項１４に記載のシステム。
【請求項１７】
少なくとも１つのデータベースフロントエンドアプリケーションツールは、ワークフローエンジンをその存在に意識することなく操作することを特徴とする請求項１１に記載のシステム。
【請求項１８】
少なくとも１つのアプリケーション及びデータベースフロントエンドアプリケーションツールは、ワークフローエンジンＡＰＩを用いることにより、ワークフローエンジンの存在を意識して操作することを特徴とする請求項１１に記載のシステム。
【請求項１９】
前記ワークフローエンジンは。１つ又は複数のイベント形式を作成し、それぞれの前記イベント形式はワークフロー移動形式であり、前記ワークフロー移動形式は１つ又は複数のワークフローエレメントと関連付けられ、それぞれの前記ワークフローエレメントは少なくとも１つ又は複数のデータベースに関連付けられたプログラムコードを実行することにより統合的なワークフロー及びデータベーストランザクションを提供することを特徴とする請求項１１に記載のシステム。
【請求項２０】
更に、前記メモリーは、統合されたデータベースに依存するワークフロートランザクションを可能とする、少なくとも１つのサービス指向アーキテクチャ（ＳＯＡ）又はサービスブローカーを含むことを特徴とする請求項１９に記載のシステム。
【国際調査報告】
2013530464.tif 000013
2013530464.tif 000014