(57)【要約】【課題】事前定義されたデータベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新する場合において、記憶容量を増大させることなく実体化ビューをセルフメンテナブルビューとして機能させることができるデータ処理装置、ワークフローシステム、データ処理方法、及びコンピュータプログラムを提供する。【解決手段】ワークフローを構築するフロー記述コードを取得し、静的に解析する。静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する。記憶されている選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出し、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、実体化ビューから削除する。【選択図】図５
2010009489.tif 000002
【特許請求の範囲】
【請求項１】
フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、
ワークフローを構築するフロー記述コードを取得する取得手段と、
取得したフロー記述コードを静的に解析する解析手段と、
静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段と、
該第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段と
を備えることを特徴とするデータ処理装置。
【請求項２】
前記第一の抽出手段は、
前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、
選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段と
を備え、
該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出するようにしてあることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、
ワークフローを構築するフロー記述コードを取得する取得手段と、
取得したフロー記述コードを静的に解析する解析手段と、
静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、
特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、
該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、
該第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段と
を備えることを特徴とするデータ処理装置。
【請求項４】
フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、
ワークフローを構築するフロー記述コードを取得する取得手段と、
取得したフロー記述コードを静的に解析する解析手段と、
静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段と、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、
特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、
該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、
前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段と
を備えることを特徴とするデータ処理装置。
【請求項５】
前記第一の抽出手段は、
前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、
選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段と
を備え、
該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出するようにしてあることを特徴とする請求項４記載のデータ処理装置。
【請求項６】
フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有するサーバと、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するクライアントとで構成されるワークフローシステムにおいて、
前記サーバは、
ワークフローを構築するフロー記述コードを取得する取得手段と、
取得したフロー記述コードを静的に解析する解析手段と、
静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して、前記クライアントとの共有ファイルとして記憶する選択条件情報記憶手段と
を備え、
前記クライアントは、
前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、
選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段と、
該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する第一の抽出手段と、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、
特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、
該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、
前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段と
を備えることを特徴とするワークフローシステム。
【請求項７】
フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、
ワークフローを構築するフロー記述コードを取得し、
取得したフロー記述コードを静的に解析し、
静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出し、
抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とするデータ処理方法。
【請求項８】
フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、
ワークフローを構築するフロー記述コードを取得し、
取得したフロー記述コードを静的に解析し、
静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、
特定されたノードにて前記選択条件を具備するか否かを判定し、
前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出し、
抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とするデータ処理方法。
【請求項９】
フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、
ワークフローを構築するフロー記述コードを取得し、
取得したフロー記述コードを静的に解析し、
静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出し、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、
特定されたノードにて前記選択条件を具備するか否かを判定し、
前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出し、
抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とするデータ処理方法。
【請求項１０】
フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、
前記データ処理装置を、
ワークフローを構築するフロー記述コードを取得する取得手段、
取得したフロー記述コードを静的に解析する解析手段、
静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段、及び
該第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段
として機能させることを特徴とするコンピュータプログラム。
【請求項１１】
前記第一の抽出手段を、
前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段、
選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段、及び
該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する手段
として機能させることを特徴とする請求項１０記載のコンピュータプログラム。
【請求項１２】
フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、
前記データ処理装置を、
ワークフローを構築するフロー記述コードを取得する取得手段、
取得したフロー記述コードを静的に解析する解析手段、
静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段、
特定されたノードにて前記選択条件を具備するか否かを判定する判定手段、
該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段、及び
該第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段
として機能させることを特徴とするコンピュータプログラム。
【請求項１３】
フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、
前記データ処理装置を、
ワークフローを構築するフロー記述コードを取得する取得手段、
取得したフロー記述コードを静的に解析する解析手段、
静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段、
記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段、
特定されたノードにて前記選択条件を具備するか否かを判定する判定手段、
該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段、及び
前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段
として機能させることを特徴とするコンピュータプログラム。
【請求項１４】
前記第一の抽出手段を、
前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段、
選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段、及び
該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する手段
として機能させることを特徴とする請求項１３記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不要な問い合わせ結果に関する情報を排除した実体化ビューを用いてプロセスインスタンスの進行状況に関する情報を検索又は更新するデータ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
ＢＰＥＬ（Ｂｕｓｉｎｅｓｓ  Ｐｒｏｃｅｓｓ  Ｅｘｅｃｕｔｉｏｎ  Ｌａｎｇｕａｇｅ）に代表されるフロー記述言語に基づいて生成されたフローエンジンを有するワークフローシステムでは、実行中のプロセスインスタンスの状況を把握するために大規模データベースを必要とする。そして、大量のプロセスインスタンスを同時に処理する場合には、データベースへの検索要求及び更新要求が膨大となり、レスポンスを維持することが困難になる。
【０００３】
大規模データベースに対する検索要求及び更新要求のレスポンスを確保するために、事前に定義された問い合わせ結果に関する情報を含むデータベースビューであるマテリアライズドビュー（以下、実体化ビューという）を用いる技術が開発されている。データの実体を含む実体化ビューに対して検索要求及び更新要求を行うことで、データベース本体へ直接出される検索要求及び更新要求の数を減じることができ、全体としてレスポンスの向上を図ることができる。
【０００４】
しかし、実体化ビューを用いる場合、データベース本体と実体化ビューとの間でデータの整合性が維持されていることが必須となる。そのため、更新要求が実行された場合には、実体化ビューに対してリフレッシュ処理を実行することにより実体化ビューの内容を随時更新する必要があった。
【０００５】
実体化ビューのリフレッシュ処理の実行時には、元になるデータベース本体へアクセスする必要がある。したがって、実体化ビューを用いることでデータベース本体へのアクセス数を減少させたにも拘わらず、更新処理が大量である場合には、リフレッシュ処理によるデータベース本体へのアクセス数が急増し、全体としてレスポンスを維持することができないおそれがあった。
【０００６】
そこで、例えば非特許文献１では、実体化ビューをセルフメンテナブルビューとして使用し、実体化ビューのリフレッシュ処理の実行時に、データベース本体へアクセスする必要がないように工夫している。セルフメンテナブルビューは、データベース本体が更新された場合、更新履歴のみで実体化ビューを更新することができ、実体化ビューのリフレッシュ処理が増大した場合であってもデータベース本体へのアクセス数の増加を抑制することができる。
【非特許文献１】グプタ他２名、「セルフメンテナブルビューを用いたデータ統合（Ｄａｔａ  Ｉｎｔｅｇｒａｔｉｏｎ  ｕｓｉｎｇ  Ｓｅｌｆ−Ｍａｉｎｔａｉｎａｂｌｅ  Ｖｉｅｗｓ）」、１９９６年
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、セルフメンテナブルビューを確実に具現化するためには、更新処理時の選択条件に含まれる各種の属性情報を追加する必要が生じる。通常は、属性情報を追加するための補助ビューを作成することが多く、補助ビューを記憶する分だけ、記憶容量をより多く必要としていた。
【０００８】
また、選択条件に関わる項目に対する更新処理が実行される場合、実体化ビューとして記憶しておくべきタプル（データ組）の個数が増加する。すなわち、通常の実体化ビューでは、定義されている選択条件を具備するタプルだけ記憶しておけば足りるのに対し、セルフメンテナブルビューでは、選択条件自体が更新されることにより、タプルを安易に削除することができない。したがって、増大したタプルを記憶する記憶領域が必要となり、全体として大きな記憶容量を必要とするという問題点があった。
【０００９】
例えばワークフローシステム等で用いられるフローエンジンでは、実体化ビューを高価であるものの高速アクセスが可能な記憶領域に記憶することで、全体のレスポンス向上を図っている。したがって、記憶領域の使用量を可能な限り削減することは、システム全体のコスト面からも重要な課題となっている。
【００１０】
本発明は斯かる事情に鑑みてなされたものであり、記憶容量を増大させることなく実体化ビューをセルフメンテナブルビューとして機能させることができるデータ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために第１発明に係るデータ処理装置は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、ワークフローを構築するフロー記述コードを取得する取得手段と、取得したフロー記述コードを静的に解析する解析手段と、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段と、該第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段とを備えることを特徴とする。
【００１２】
また、第２発明に係るデータ処理装置は、第１発明において、前記第一の抽出手段は、前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段とを備え、該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出するようにしてあることを特徴とする。
【００１３】
次に、上記目的を達成するために第３発明に係るデータ処理装置は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、ワークフローを構築するフロー記述コードを取得する取得手段と、取得したフロー記述コードを静的に解析する解析手段と、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、該第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段とを備えることを特徴とする。
【００１４】
次に、上記目的を達成するために第４発明に係るデータ処理装置は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、ワークフローを構築するフロー記述コードを取得する取得手段と、取得したフロー記述コードを静的に解析する解析手段と、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段と、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段とを備えることを特徴とする。
【００１５】
また、第５発明に係るデータ処理装置は、第４発明において、前記第一の抽出手段は、前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段とを備え、該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出するようにしてあることを特徴とする。
【００１６】
次に、上記目的を達成するために第６発明に係るワークフローシステムは、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有するサーバと、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するクライアントとで構成されるワークフローシステムにおいて、前記サーバは、ワークフローを構築するフロー記述コードを取得する取得手段と、取得したフロー記述コードを静的に解析する解析手段と、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して、前記クライアントとの共有ファイルとして記憶する選択条件情報記憶手段とを備え、前記クライアントは、前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段と、該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する第一の抽出手段と、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段とを備えることを特徴とする。
【００１７】
次に、上記目的を達成するために第７発明に係るデータ処理方法は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出し、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とする。
【００１８】
次に、上記目的を達成するために第８発明に係るデータ処理方法は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、特定されたノードにて前記選択条件を具備するか否かを判定し、前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出し、抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とする。
【００１９】
次に、上記目的を達成するために第９発明に係るデータ処理方法は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出し、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、特定されたノードにて前記選択条件を具備するか否かを判定し、前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出し、抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とする。
【００２０】
次に、上記目的を達成するために第１０発明に係るコンピュータプログラムは、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、前記データ処理装置を、ワークフローを構築するフロー記述コードを取得する取得手段、取得したフロー記述コードを静的に解析する解析手段、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段、及び該第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段として機能させることを特徴とする。
【００２１】
また、第１１発明に係るコンピュータプログラムは、第１０発明において、前記第一の抽出手段を、前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段、選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段、及び該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する手段として機能させることを特徴とする。
【００２２】
次に、上記目的を達成するために第１２発明に係るコンピュータプログラムは、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、前記データ処理装置を、ワークフローを構築するフロー記述コードを取得する取得手段、取得したフロー記述コードを静的に解析する解析手段、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段、特定されたノードにて前記選択条件を具備するか否かを判定する判定手段、該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段、及び該第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段として機能させることを特徴とする。
【００２３】
次に、上記目的を達成するために第１３発明に係るコンピュータプログラムは、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、前記データ処理装置を、ワークフローを構築するフロー記述コードを取得する取得手段、取得したフロー記述コードを静的に解析する解析手段、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段、特定されたノードにて前記選択条件を具備するか否かを判定する判定手段、該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段、及び前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段として機能させることを特徴とする。
【００２４】
また、第１４発明に係るコンピュータプログラムは、第１３発明において、前記第一の抽出手段を、前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段、選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段、及び該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する手段として機能させることを特徴とする。
【００２５】
第１発明、第７発明、及び第１０発明では、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新する。ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する。記憶されている選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する。抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがなく、実体化ビューから削除することができる。したがって、実体化ビューを記憶するのに要する記憶容量を削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下を抑制することが可能となる。
【００２６】
ここで、「プロセス」とは、時間及び空間を通して特定の順番に並べられたアクティビティ群を意味しており、複数の順序付けされたアクティビティで構成される。「プロセスインスタンス」とは、プロセスの実行単位であり、具体的なデータ入力、環境を含むアクティビティの集合を意味する。「問い合わせ結果に関する情報」とは、検索処理又は更新処理時の選択条件に基づく問い合わせ結果を含む情報であり、例えばクエリがＳＱＬ文で記載される場合には、ｓｅｌｅｃｔ文で選択された結果に関する情報に相当する。「選択条件」とは、ビューに対する検索処理又は更新処理の実行時に対象を選択する条件を意味しており、例えばクエリがＳＱＬ文で記載される場合には、ｓｅｌｅｃｔ文の内容に相当する。
【００２７】
「フロー記述コード」とは、ワークフロー等の業務フローを定義するソースコードであり、更新処理の実行順序及び各更新処理におけるパラメータが明示されている。「実体化ビュー」とは、いわゆるマテリアライズドビューを意味しており、大規模データベースにおけるレスポンス向上のために設けられる、実体としてのデータを含むビューを意味している。
【００２８】
第２発明、第５発明、第１１発明、及び第１４発明では、ワークフローの上流に位置するノードから順次一のノードを選定し、選定されたノードそれぞれについて、選定されたノードに対応する選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する。一つでも選択条件を具備しないと判断した場合、選定されたノードを抽出することにより、更新される可能性がないノードを確実に抽出することができ、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、リフレッシュ処理の対象外として実体化ビューから削除することができる。したがって、実体化ビューを記憶するのに要する記憶容量を削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下を抑制することが可能となる。
【００２９】
第３発明、第８発明、及び第１２発明では、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新する。ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する。記憶されている選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する。特定されたノードにて選択条件を具備するか否かを判定し、選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する。特定されたノードは、該ノード以後に遷移するノードにて選択条件の属性が更新されないノードであることから、選択条件を具備していない場合には、以後遷移する全てのノードにおいても選択条件を具備する可能性はない。したがって、抽出された他のノードに対応する問い合わせ結果に関する情報は、実体化ビューから削除することができ、実体化ビューを記憶するのに要する記憶容量を削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下を抑制することが可能となる。
【００３０】
第４発明、第９発明、第１３発明では、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新する。ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する。記憶されている選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する。一方、記憶されている選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する。特定されたノードにて選択条件を具備するか否かを判定し、選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する。抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに抽出された他のノードに対応する問い合わせ結果に関する情報を、実体化ビューから削除する。抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがなく、実体化ビューから削除することができる。また、特定されたノードは、該ノード以後に遷移するノードにて選択条件の属性が更新されないノードであることから、選択条件を具備していない場合には、以後遷移する全てのノードにおいても選択条件を具備する可能性はない。したがって、不要と判断された問い合わせ結果に関する情報を、それぞれ実体化ビューから削除することにより、実体化ビューを記憶するのに要する記憶容量をより削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下をより抑制することが可能となる。
【００３１】
第６発明では、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有するサーバと、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するクライアントとで構成される。サーバは、ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析する。静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して、クライアントとの共有ファイルとして記憶する。クライアントは、ワークフローの上流に位置するノードから順次一のノードを選定し、選定されたノードそれぞれについて、選定されたノードに対応する選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する。少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する。一方で、記憶されている選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する。特定されたノードにて選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する。抽出された上述のノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに抽出された他のノードに対応する問い合わせ結果に関する情報を、実体化ビューから削除する。抽出された、選択条件を具備する可能性が無いノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがなく、実体化ビューから削除することができる。また、特定されたノードは、それ以後選択条件の属性が更新されないノードであることから、選択条件を具備していない場合には、以後遷移する全てのノードにおいても選択条件を具備する可能性はない。したがって、不要と判断された問い合わせ結果に関する情報を、それぞれ実体化ビューから削除することにより、実体化ビューを記憶するのに要する記憶容量をより削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下をより抑制することが可能となる。
【発明の効果】
【００３２】
本発明によれば、抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがなく、実体化ビューから削除することができる。また、特定されたノードは、それ以後選択条件の属性が更新されないノードであることから、選択条件を具備していない場合には、以後遷移する全てのノードにおいても選択条件を具備する可能性はない。したがって、不要と判断された問い合わせ結果に関する情報を、それぞれ実体化ビューから削除することにより、実体化ビューを記憶するのに要する記憶容量をより削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下をより抑制することが可能となる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施の形態に係るデータ処理装置を、ワークフローを実現するワークフローシステムを一例とし、図面に基づいて具体的に説明する。したがって、以下の実施の形態では、サーバとクライアントとがデータ通信することが可能に接続されている環境下でのデータ処理について説明するが、処理フローを定義するフロー記述コードに基づいて実行されるフローエンジンを用いるデータ処理であれば良く、クライアントがＷｅｂビューワのみの構成であり、処理自体はサーバ単体で実行する構成であっても良い。また、データベースサーバとフローエンジンを実行するワークフローサーバとがデータ通信可能に接続された異なるサーバであり、実体化ビューがワークフローサーバのメモリ上に保存される構成であっても良い。この場合、フローエンジンの実行に必要となるデータベースへの問い合わせが実体化ビューにて処理される。
【００３４】
（実施の形態１）
図１は、本発明の実施の形態１に係るワークフローシステムの構成を示すブロック図である。図１に示すように、本実施の形態１に係るワークフローシステムは、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有するサーバ１に対して、クライアント（データ処理装置）２、２、・・・からプロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新する。
【００３５】
サーバ１のＣＰＵ１１は、記憶装置１２に記憶されているコンパイラプログラムをメモリ１３へ展開し、取得したフロー記述コードをコンパイルすることによりフローエンジンを生成する。生成されたフローエンジンに従って稼動するプロセスインスタンスの進行状況に関する情報は、プロセスインスタンスごと、かつワークフローに含まれるノードごとの情報としてデータベース化され、記憶装置１２のプロセス情報記憶部１２１に記憶されている。
【００３６】
プロセスインスタンスの進行状況に関する情報は、クライアント２からネットワーク３を介して通信インタフェース１４を経由して取得する。取得したプロセスインスタンスの進行状況に関する情報は、記憶装置１２のプロセス情報記憶部１２１に随時記憶される。データの表示は、ビデオインタフェース１５を介して接続されている表示装置１８で行われる。データ入力／選択は、Ｉ／Ｏインタフェース１６を介して接続されているキーボード１９、マウス２０により行われる。これらのハードウェアは、内部バス１７を介してＣＰＵ１１に接続されており、ＣＰＵ１１により動作が制御される。
【００３７】
図２は、本発明の実施の形態１に係るワークフローシステムのクライアント２の構成を示すブロック図である。図２において、本実施の形態１に係るクライアント２は、少なくとも、ＣＰＵ（中央演算装置）２１、記憶装置２２、メモリ２３、通信インタフェース２４、ビデオインタフェース２５、Ｉ／Ｏインタフェース２６、可搬型ディスクドライブ２７及び上述したハードウェアを接続する内部バス２８で構成されている。
【００３８】
ＣＰＵ２１は、内部バス２８を介してクライアント２の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置２２に記憶されているコンピュータプログラム１００に従って、種々のソフトウェア的機能を実行する。メモリ２３は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラム１００の実行時にロードモジュールが展開され、コンピュータプログラム１００の実行時に発生する一時的なデータ等を記憶する。
【００３９】
記憶装置２２は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置２２に記憶されるコンピュータプログラム１００は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体９０から、可搬型ディスクドライブ２７によりインストールされ、実行時には記憶装置２２からメモリ２３へ展開して実行される。もちろん、通信インタフェース２４からネットワーク３を介して外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００４０】
また記憶装置２２は、検索処理又は更新処理のレスポンスを向上させるために生成された実体化ビューを記憶する実体化ビュー記憶部２２１と、実体化ビューから不要なデータ組（以下、タプルという）を削除するための選択条件情報を記憶する選択条件情報記憶部２２２とを備えている。実体化ビューは、いわゆるマテリアライズドビューであり、更新処理が実行されるごとに、サーバのデータベースとの整合を図るために更新される。したがって、検索処理又は更新処理時の問い合わせ結果に関する情報も実体化ビューには含まれる。また、選択条件情報とは、検索処理又は更新処理の対象として選択するための条件に関する情報を意味しており、プロセスインスタンスがワークフロー上の各ノードにおいて指定している選択条件を、フロー記述コードに沿って抽出して記憶したものである。実体化ビューの問い合わせ結果に関する情報には、選択条件情報が含まれており、削除すべき選択条件情報が特定された場合、特定された選択条件情報に対応する問い合わせ結果に関する情報がタプルとして削除される。
【００４１】
通信インタフェース２４は内部バス２８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワーク３に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置２２は、クライアント２に内蔵される構成に限定されるものではなく、通信インタフェース２４を介して接続されている外部のサーバ１、又は外部の他のクライアント２、２、・・・等に設置されているハードディスク等の外部記憶媒体であっても良い。
【００４２】
Ｉ／Ｏインタフェース２６は内部バス２８に接続されており、キーボード３１、マウス３２等のデータ入力媒体からの入力を受け付ける。ビデオインタフェース２５は内部バス２８に接続されており、ＣＲＴモニタ、ＬＣＤ等の表示装置３０に表示データを送信する。
【００４３】
プロセスインスタンスの進行状況に関する情報は、プロセスインスタンスが進行する都度、データベースであるプロセス情報記憶部１２１にて検索又は更新される。したがって、データベースに対する検索処理又は更新処理によるレスポンスの低下を回避するべく、通常は問い合わせ結果を事前にデータとともに記憶しておくビューである実体化ビューを用いる。
【００４４】
更新処理が実行された場合、データベース本体と実体化ビューとの間でデータの整合性を図るために、データベース本体及び実体化ビューを最新の状態に更新するリフレッシュ処理が必要となる。リフレッシュ処理によるデータベース本体へのアクセス頻度を軽減し、実体化ビューを記憶するために要する記憶容量を削減するため、本実施の形態１では、フロー記述コードに基づいて静的に解析した選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出して、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報（タプル）を、実体化ビューから削除する点に特徴を有している。
【００４５】
図３は、本発明の実施の形態１に係るクライアント２の機能を模式的に示す機能ブロック図である。図３において、コード取得手段（取得手段）３０１では、ワークフローを構築するフロー記述コードを取得する。フロー記述コードは、ワークフロー処理の内容を記述したプログラムのソースコードであり、サーバ１、外部コンピュータ等からネットワーク３を介して取得しても良いし、可搬型ディスクドライブ２７を介して取得しても良い。
【００４６】
解析手段３０２では、取得したフロー記述コードを静的に解析する。すなわち、フロー記述コードの記載内容に基づいて、ワークフローを形成するノードの特定、ノードごとの遷移関係の特定、選択条件の抽出等を行う。
【００４７】
選択条件情報記憶手段３０３では、解析手段３０２での静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成し、記憶装置２２の選択条件情報記憶部２２２に記憶する。図４は、選択条件情報記憶部２２２に記憶されるデータ構成の例示図である。
【００４８】
図４に示すように、選択条件情報記憶部２２２には、ワークフロー上のノードごとに、少なくとも遷移する宛先に関する遷移先情報と、更新処理により設定される選択条件の値の集合値ＰＳＳ（Ｐｏｓｓｉｂｌｅ  Ｓｔａｔｅ  Ｓｅｔ）とが記憶されている。ＰＳＳは、フロー記述コードから静的に抽出することができ、ＰＳＳの内容に応じて実体化ビューから削除しても良いタプルを特定する。
【００４９】
ノード抽出手段３０４では、記憶されている選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する。具体的には選択条件情報として記憶されているＰＳＳが、検索処理又は更新処理のクエリに記述されている選択条件を、該ノード以後遷移するノードにて具備しないノードを抽出する。ここで、クエリとはデータベースに対する処理要求を文字列として示したものであり、ＳＱＬ等の記述言語で表された文字列である。
【００５０】
削除手段３０５では、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報（タプル）を、実体化ビューから削除する。すなわち、抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがない。したがって、実体化ビューから削除することができ、実体化ビューを記憶するのに要する記憶容量を削減することができる。
【００５１】
上述した構成のクライアント（データ処理装置）２の処理手順をフローチャートに基づいて説明する。図５及び図６は、本発明の実施の形態１に係るクライアント２のＣＰＵ２１の処理手順を示すフローチャートである。図５は、本発明の実施の形態１に係るクライアント２のＣＰＵ２１の、静的解析により削除対象ノードを抽出する処理手順を示すフローチャートであり、図６は、本発明の実施の形態１に係るクライアント２のＣＰＵ２１の、フローエンジンの実行結果に基づいて関連する実体化ビューの情報を選択的に削除する処理手順を示すフローチャートである。
【００５２】
図５において、クライアント２のＣＰＵ２１は、ワークフローを構築するフロー記述コードを取得する（ステップＳ５０１）。フロー記述コードは、サーバ１、外部コンピュータ等からネットワーク３を介して取得しても良いし、可搬型ディスクドライブ２７を介して取得しても良い。
【００５３】
ＣＰＵ２１は、取得したフロー記述コードを静的に解析し（ステップＳ５０２）、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成し（ステップＳ５０３）、記憶装置２２の選択条件情報記憶部２２２に記憶する（ステップＳ５０４）。ＣＰＵ２１は、削除対象ノードを抽出し（ステップＳ５０５）、記憶装置２２の選択条件情報記憶部２２２に記憶する（ステップＳ５０６）。クエリがＳＱＬ文である場合には、選択条件はｓｅｌｅｃｔ文に相当し、選択条件情報は、それぞれの選択条件の属性値を含むｗｈｅｒｅ句に相当する。ステップＳ５０５における削除対象ノードの抽出処理については、図７にて詳細に説明する。
【００５４】
次に図６において、クライアント２のＣＰＵ２１は、図５のステップＳ５０５で抽出されたノードを選択条件情報記憶部２２２から読み込み（ステップＳ６０１）、ワークフローを実行する（ステップＳ６０２）。ワークフローの実行はクライアント２で実行することに限定されるものではなく、サーバ１からワークフローの実行結果を受け取っても良い。ＣＰＵ２１は、一のノードを選択し（ステップＳ６０３）、記憶されている選択条件情報に基づいて、該ノードが図５のステップＳ５０５で抽出されたノードであるか否かを判断する（ステップＳ６０４）。
【００５５】
ＣＰＵ２１が、抽出されたノードであると判断した場合（ステップＳ６０４：ＹＥＳ）、ＣＰＵ２１は、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報（タプル）を、実体化ビューから削除する（ステップＳ６０５）。ＣＰＵ２１が、抽出されたノードではないと判断した場合（ステップＳ６０４：ＮＯ）、ＣＰＵ２１は、ステップＳ６０５をスキップする。ＣＰＵ２１は、全てのノードにつき処理が終了したか否かを判断する（ステップＳ６０６）。
【００５６】
ＣＰＵ２１が、まだ未処理であるノードが存在すると判断した場合（ステップＳ６０６：ＮＯ）、ＣＰＵ２１は、次のノードを選択し（ステップＳ６０７）、処理をステップＳ６０４へ戻し、上述した処理を繰り返す。ＣＰＵ２１が、全てのノードにつき処理が終了したと判断した場合（ステップＳ６０６：ＹＥＳ）、ＣＰＵ２１は、処理を終了する。
【００５７】
図５のステップＳ５０５のノード抽出処理は、以下の手順で実行することが好ましい。図７は、本発明の実施の形態１に係るクライアント２のＣＰＵ２１のノード抽出処理の手順を示すフローチャートである。
【００５８】
クライアント２のＣＰＵ２１は、ワークフローの上流に位置するノードから順次一のノードを選定する（ステップＳ７０１）。ＣＰＵ２１は、選定されたノードそれぞれについて、選定されたノードに対応する選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する（ステップＳ７０２）。
【００５９】
ＣＰＵ２１が、少なくとも一の選択条件を具備しないと判断した場合（ステップＳ７０２：ＮＯ）、ＣＰＵ２１は、選定されたノードを、実体化ビューの削除対象ノードとして抽出する（ステップＳ７０３）。ＣＰＵ２１が、全ての選択条件を具備すると判断した場合（ステップＳ７０２：ＹＥＳ）、ＣＰＵ２１は、ステップＳ７０３をスキップする。ＣＰＵ２１は、全てのノードについて処理が終了したか否かを判断し（ステップＳ７０４）、ＣＰＵ２１が、未処理のノードが存在すると判断した場合（ステップＳ７０４：ＮＯ）、ＣＰＵ２１は、次のノードを選定し（ステップＳ７０５）、処理をステップＳ７０２へ戻して、上述した処理を繰り返す。ＣＰＵ２１が、全てのノードについて処理が終了したと判断した場合（ステップＳ７０４：ＹＥＳ）、ＣＰＵ２１は、処理を終了する。
【００６０】
以後、クライアント２での処理手順の詳細について、保険審査処理のワークフローを例に挙げて具体的に説明する。図８は、本実施の形態１に係る保険審査処理のワークフローを模式的に示す例示図である。図８では、保険審査処理のワークフローをアクティビティ単位で表示しており、各アクティビティへの遷移及び他のアクティビティへの遷移を含めてノード定義をしている。すなわち、各アクティビティには、遷移してくるエントリーノードと、他のアクティビティへ遷移するイグジットノードとが存在する。
【００６１】
図８の例では、まず申請を受理し（アクティビティＡ１）、受理した申請の書類審査を実行する（アクティビティＡ２）。申請を受理した時点で、新たなプロセスインスタンスが追加され、サーバ１のプロセス情報記憶部１２１及び実行されるクライアント２の実体化ビュー記憶部２２１にプロセスインスタンス識別情報（以下、ＰＩＩＤという）に対応付けて記憶される。
【００６２】
アクティビティＡ２では、書類審査の結果に応じて、遷移先であるアクティビティが相違する。すなわち、審査結果が「要審査」である場合、審査を実行する担当者を割り当て（アクティビティＡ３）、調査１（アクティビティＡ４）及び調査２（アクティビティＡ５）を審査終了まで繰り返し処理する。審査結果が「受理」である場合、補償金処理を実行し（アクティビティＡ６）、審査結果が「拒否」である場合、結果の記録を実行する（アクティビティＡ７）。なお、調査１（アクティビティＡ４）及び調査２（アクティビティＡ５）により審査が終了した場合も、審査結果が「受理」である場合、補償金処理を実行し（アクティビティＡ６）、審査結果が「拒否」である場合、結果の記録を実行する（アクティビティＡ７）。  
【００６３】
なお、各アクティビティが実行に移される都度、その状態が記憶される。例えばアクティビティＡ３にて担当者が割り当てられた場合、アクティビティＡ３の状態は「完了：ｃｏｍｐｌｅｔｅｄ」となり、アクティビティＡ４及びＡ５が追加される。アクティビティＡ４及びＡ５の状態は「開始：ｓｔａｒｔｅｄ」となる。したがって、アクティビティＡ４及びＡ５のようにアクティビティが並列に実行される場合を除けば、一のプロセスインスタンスに属するアクティビティのうち、状態が「開始：ｓｔａｒｔｅｄ」となるアクティビティは１つとなる。
【００６４】
図９は、本実施の形態１に係る保険審査処理のワークフローにおけるプロセス情報記憶部１２１に記憶されるデータ構成の例示図である。プロセスインスタンスが追加された場合には、図９（ａ）に示すようなプロセスインスタンステーブルに新規レコードが追加される。図９（ａ）において、ＰＴＩＤは、ワークフローの雛形を識別するための識別情報であり、ＭＳＧＩＤは、プロセスに入力されたメッセージを識別するための識別情報であり、それぞれＰＩＩＤに対応付けて記憶される。
【００６５】
また、アクティビティが実行される都度、図９（ｂ）に示すようなアクティビティテーブルに新規レコードが追加される。図９（ｂ）において、ＡＩＩＤは、実行されたアクティビティを識別する識別情報であり、ＡＴＩＤは、アクティビティの雛形を識別する識別情報である。ＰＩＩＤは、実行されたアクティビティが属するプロセスインスタンスを識別する識別情報であり、ＭＳＧＩＤは、実行されたアクティビティにて入力されたメッセージを識別する識別情報であり、ＳＴＡＴＥは、アクティビティの実行状態を示す情報である。ＳＴＡＴＥは、「開始：ｓｔａｒｔｅｄ」、「終了：ｃｏｍｐｌｅｔｅｄ」、又は「失敗：ｆａｉｌｅｄ」のいずれかとなる。
【００６６】
上述したプロセスインスタンステーブル及びアクティビティインスタンステーブルのレプリケーション、あるいは検索処理又は更新処理により問い合わせ処理が実行された部分を抽出したタプル（問い合わせ結果に関する情報）は、実体化ビューとして実体化ビュー記憶部２２１に記憶される。クライアント２のＣＰＵ２１は、フロー記述コードを解析することでＰＳＳを生成し、ＰＳＳに基づいて状態遷移図（Ｐｏｓｓｉｂｌｅ  Ｓｔａｔｅ  Ｄｉａｇｒａｍ：ＰＳＤという）を作成する。
【００６７】
例えばクエリのｓｅｌｅｃｔ文の選択条件に使用される属性を更新する更新記述をイクスポーズドアップデート（Ｅｘｐｏｓｅｄ  Ｕｐｄａｔｅ）といい、ｗｈｅｒｅ句で用いられている属性、例えばＰＩＩＤ、ＡＴＩＤ、ＳＴＡＴＥ等を更新する更新記述を意味する。イクスポーズドアップデートが実行される可能性があるノードを特定した場合、ノード遷移において選択条件を具備する可能性がある遷移パスを特定することができる。
【００６８】
イクスポーズドアップデートによって設定される選択条件値の集合がＰＳＳであり、選択条件の属性を識別する属性識別情報と属性値とが対応付けられて、選択条件情報記憶部２２２に記憶される。図１０は、図８に示す保険審査処理のワークフローに対応したＰＳＳ及び遷移図（Ｐｏｓｓｉｂｌｅ  Ｓｔａｔｅ  Ｄｉａｇｒａｍ：以下、ＰＳＤという）の例示図である。
【００６９】
図１０（ａ）では、ＰＳＤは、ワークフローを全ての合流点で末尾複製して得られたツリー構造として記載している。各アクティビティにはエントリーノード、イグジットノードの２つのＰＳＤノードが割り当てられている。これは、各アクティビティへの遷移時及び該アクティビティから他のアクティビティへの遷移時には、それぞれ異なったテーブル操作が実行されるからである。
【００７０】
図１０（ａ）のノードＡ１ｅｎｔｒｙ、ノードＡ４Ａ５ｅｎｔｒｙ、ノードＡ４Ａ５ｅｘｉｔでは、イクスポーズドアップデートが実行される。ノードＡ１ｅｎｔｒｙでは、プロセスインスタンス「ＩｎｓｕｒａｎｃｅＣｌａｉｍ」を生成する処理を、ノードＡ４Ａ５ｅｎｔｒｙでは、アクティビティ４の開始処理を、ノードＡ４Ａ５ｅｘｉｔでは、アクティビティ４の終了処理、又はアクティビティ４の失敗処理を、それぞれ実行している。これらの処理が実行されるノードがワークフロー上でどの位置に存在するか把握することで、ＰＳＳを生成することができる。すなわち各ノードでＰＳＳを算出することができる。
【００７１】
図１０（ｂ）はノードごとに算出されたＰＳＳとして、選択条件情報記憶部２２２に記憶される選択条件情報の例示図である。ノードごとの遷移先情報とともに、算出されたＰＳＳが記憶されている。ＣＰＵ２１は、選択条件情報記憶部２２２に記憶された選択条件情報のＰＳＳに基づいてＰＳＤを生成する。ＰＳＤ生成の処理手順は以下の通りである。図１１は、本発明の実施の形態１に係るクライアント２のＣＰＵ２１のＰＳＤ生成処理の手順を示すフローチャートである。なお、イクスポーズドアップデートの実行対象となるアクティビティが特定されていることを前提とする。
【００７２】
図１１において、クライアント２のＣＰＵ２１は、初期アクティビティ、例えばイクスポーズドアップデートの実行対象となる最初のアクティビティであるアクティビティＡ１を設定する（ステップＳ１１０１）。
【００７３】
ＣＰＵ２１は、設定されているアクティビティについて、次に遷移する遷移先アクティビティとの遷移関係に応じてリンクアクティビティを抽出する（ステップＳ１１０２）。ＣＰＵ２１が、遷移関係が‘シーケンス’であると判断した場合には（ステップＳ１１０２：シーケンス）、ＣＰＵ２１は、次に遷移するアクティビティをリンクアクティビティとして設定する（ステップＳ１１０３）。
【００７４】
ＣＰＵ２１が、遷移関係が‘繰り返しの最後’であると判断した場合には（ステップＳ１１０２：繰り返しの最後）、ＣＰＵ２１は、繰り返しの最初のアクティビティと、繰り返しを抜け出て最初に遷移するアクティビティをリンクアクティビティとして設定する（ステップＳ１１０４）。ＣＰＵ２１が、遷移関係が‘条件分岐’であると判断した場合には（ステップＳ１１０２：条件分岐）、ＣＰＵ２１は、分岐先の全てのアクティビティをリンクアクティビティとして設定する（ステップＳ１１０５）。
【００７５】
ＣＰＵ２１が、遷移関係が‘並行処理’であると判断した場合には（ステップＳ１１０２：並行処理）、ＣＰＵ２１は、並行処理する複数のアクティビティをまとめて、リンクアクティビティとして設定する（ステップＳ１１０６）。ＣＰＵ２１は、ワークフローのツリー構造を参照して、設定されているアクティビティの祖先に、リンクアクティビティが存在するか否かを判断する（ステップＳ１１０７）。
【００７６】
ＣＰＵ２１が、リンクアクティビティが存在すると判断した場合（ステップＳ１１０７：ＹＥＳ）、ＣＰＵ２１は、いわゆる末尾複製を実行し、リンクアクティビティのコピーノードを子ノードとして設定する（ステップＳ１１０８）。リンクアクティビティが存在しないと判断した場合（ステップＳ１１０７：ＮＯ）、ＣＰＵ２１は、リンクアクティビティを子ノードとして設定する（ステップＳ１１０９）。
【００７７】
ＣＰＵ２１は、イクスポーズドアップデートの種類を判断し（ステップＳ１１１０）、ＣＰＵ２１が、イクスポーズドアップデートが‘ｉｎｓｅｒｔ’であると判断した場合（ステップＳ１１１０：ｉｎｓｅｒｔ）、ＣＰＵ２１は、ＰＳＳにアクティビティに関する情報を追加する（ステップＳ１１１１）。  ＣＰＵ２１が、イクスポーズドアップデートが‘ｕｐｄａｔｅ’であると判断した場合（ステップＳ１１１０：ｕｐｄａｔｅ）、ＣＰＵ２１は、ＰＳＳに記憶されているアクティビティに関する情報を更新する（ステップＳ１１１２）。ＣＰＵ２１が、イクスポーズドアップデートが‘ｄｅｌｅｔｅ’であると判断した場合（ステップＳ１１１０：ｄｅｌｅｔｅ）、ＣＰＵ２１は、ＰＳＳに記憶されているアクティビティに関する情報を削除する（ステップＳ１１１３）。
【００７８】
ＣＰＵ２１は、設定されているリンクアクティビティ（全てのコピーノードも含む）の祖先ノードのＰＳＳの集合積を算出し（ステップＳ１１１４）、ＰＳＤ生成が終了したか否かを判断する（ステップＳ１１１５）。ＣＰＵ２１が、終了していないと判断した場合（ステップＳ１１１５：ＮＯ）、ＣＰＵ２１は、次のアクティビティを設定し（ステップＳ１１１６）、処理をステップＳ１１０２へ戻して上述した処理を繰り返す。ＣＰＵ２１が、終了したと判断した場合（ステップＳ１１１５：ＹＥＳ）、処理を終了する。図１０（ａ）は、上述の処理の結果として求めたＰＳＤである。
【００７９】
そして、記憶装置２２の選択条件情報記憶部２２２に記憶されている選択条件情報を具備する可能性がないノードをＳＤＰ（静的除外パス：Ｓｔａｔｉｃ  Ｄｅｓｅｌｅｃｔｉｏｎ  Ｐａｓｓ）ノードとして抽出する。具体的には、選択条件がＳＱＬ文で示されている場合には、選択条件の属性値を含む選択条件情報はｗｈｅｒｅ句に記載される条件となる。該選択条件を各ノードにおけるＰＳＳが具備しているか否かを、ノードごとに判断する。
【００８０】
例えば、図１０（ｂ）のようなＰＳＳが記憶されている場合、選択条件として「ＡＴＩＤ＝‘Ａ４’＆ＳＴＡＴＥ＝‘ｆａｉｌｅｄ’＆ＰＴＩＤ＝‘ＩｎｓｕｒａｎｃｅＣｌａｉｍ’」が選択条件情報記憶部２２２に記憶されているときには、選択条件「ＡＴＩＤ＝‘Ａ４’＆ＳＴＡＴＥ＝‘ｆａｉｌｅｄ’＆ＰＴＩＤ＝‘ＩｎｓｕｒａｎｃｅＣｌａｉｍ’」をＰＳＳに全て含んでいないノードをＳＤＰノードとして抽出すれば良い。すなわちＡ６（２）ｅｎｔｒｙ、Ａ６（２）ｅｘｉｔ、Ａ７（３）ｅｎｔｒｙ、Ａ７（３）ｅｘｉｔ、Ａ７（４）ｅｎｔｒｙ、Ａ７（４）ｅｘｉｔが、ＳＤＰノードとして抽出される。
【００８１】
図１２は、図８に示す保険審査処理のワークフローに対応したＰＳＳ及びＰＳＤに、ＳＤＰノードを追加した例示図である。図１２（ａ）に示すＰＳＤでは、ＳＤＰノードとして抽出されたノードが削除された表示となっている。これは、ＳＤＰノードが選択条件を具備する可能性が無いノードであることから、ＳＤＰノード及び該ノード以後に遷移するノードについては実体化ビューとして記憶していなくても検索処理又は更新処理の問い合わせ結果が変動せず、実体化ビューから削除することができるノードだからである。
【００８２】
図１２（ｂ）に示す選択条件情報記憶部２２２に記憶された選択条件情報の例示図では、ＳＤＰノードとして抽出されたノードに‘ＳＤＰ’と示すフラグを記憶してある。ＣＰＵ２１は、選択条件情報記憶部２２２に記憶された選択条件情報のＰＳＳのうち、‘ＳＤＰ’と示すフラグが記憶されているＰＳＳに対応する実体化ビューのタプルを削除することにより、実体化ビューを記憶するために要する記憶容量を削減することが可能となる。
【００８３】
以上のように本実施の形態１によれば、抽出された、選択条件を具備する可能性が無いノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがなく、実体化ビューから削除することができる。したがって、実体化ビューを記憶するのに要する記憶容量を削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下を抑制することが可能となる。
【００８４】
（実施の形態２）
本発明の実施の形態２に係るワークフローシステムの構成、ワークフローシステムのクライアント２の構成等は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態２では、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、特定されたノードにて選択条件を具備するか否かを判定することにより、実体化ビューから削除することが可能なＰＳＳを有するノードを抽出する点で実施の形態１と相違する。
【００８５】
すなわち、実施の形態１では、記憶されている選択条件情報に基づいて、選択条件を具備する可能性があるか否かに基づいて実体化ビューから削除可能なＰＳＳを有するノードであるか否かを判断しており、条件に該当するノードは必ず実体化ビューから削除可能なＰＳＳを有するノードとして抽出することができるのに対し、実施の形態２では、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、特定されたノードにて選択条件を具備するか否かを判定した結果に応じて、実体化ビューから削除することが可能なＰＳＳを有するか否かが変動する。
【００８６】
更新処理が実行された場合、データベース本体と実体化ビューとの間でデータの整合性を図るために、データベース本体及び実体化ビューを最新の状態に更新するリフレッシュ処理が必要となる。リフレッシュ処理によるデータベース本体へのアクセス頻度を軽減し、実体化ビューを記憶するために要する記憶容量を削減するため、本実施の形態２でも実施の形態１と同様、フロー記述コードに基づいて静的に解析した選択条件情報に基づいて、特定されたノード上にて所定の条件を具備する場合に、該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報（タプル）を、実体化ビューから削除する。
【００８７】
図１３は、本発明の実施の形態２に係るクライアント２の機能を模式的に示す機能ブロック図である。図１３において、コード取得手段（取得手段）１３０１では、ワークフローを構築するフロー記述コードを取得する。フロー記述コードは、ワークフロー処理の内容を記述したプログラムのソースコードであり、サーバ１、外部コンピュータ等からネットワーク３を介して取得しても良いし、可搬型ディスクドライブ２７を介して取得しても良い。
【００８８】
解析手段１３０２では、取得したフロー記述コードを静的に解析する。すなわち、フロー記述コードの記載内容に基づいて、ワークフローを形成するノードの特定、ノードごとの遷移関係の特定、選択条件の抽出等を行う。
【００８９】
選択条件情報記憶手段１３０３では、解析手段１３０２での静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成し、記憶装置２２の選択条件情報記憶部２２２に記憶する。選択条件情報記憶部２２２に記憶されるデータ構成は実施の形態１と同様、ノードに対応付けられた遷移先情報及びＰＳＳが記憶されている。
【００９０】
ノード特定手段１３０４では、選択条件情報記憶部２２２に記憶されている選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する。実施の形態１でのＳＤＰノード以外であっても、選択条件を具備するか否かによって、その後選択条件情報が変動するか否かを判断することができるからである。
【００９１】
選択条件判定手段１３０５では、特定されたノードにて選択条件を具備するか否かを判定する。特定されたノード以後に遷移するノードにおいて選択条件の属性は変動しないことから、一度でも選択条件を具備しないと判定された場合、それ以後遷移するノードでは選択条件を具備する可能性がなく、実体化ビューからの削除対象となりうる。
【００９２】
ノード抽出手段１３０６では、選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを、実体化ビューの削除対象のＰＳＳを含むノードとして抽出する。
【００９３】
削除手段１３０７では、特定されたノード以後に遷移するノードに対応する問い合わせ結果に関する情報（タプル）を、実体化ビューから削除する。すなわち、抽出された、選択条件を具備していないノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがない。したがって、実体化ビューから削除することができ、実体化ビューを記憶するのに要する記憶容量を削減することができる。
【００９４】
上述した構成のクライアント（データ処理装置）２の処理手順をフローチャートに基づいて説明する。図１４及び図１５は、本発明の実施の形態２に係るクライアント２のＣＰＵ２１の処理手順を示すフローチャートである。図１４は、本発明の実施の形態２に係るクライアント２のＣＰＵ２１の、静的解析により実行時削除判別対象ノードを抽出する処理手順を示すフローチャートであり、図１５は、本発明の実施の形態２に係るクライアント２のＣＰＵ２１の、フローエンジンの実行結果に基づいて関連する実体化ビューの情報を選択的に削除する処理手順を示すフローチャートである。
【００９５】
図１４において、クライアント２のＣＰＵ２１は、ワークフローを構築するフロー記述コードを取得する（ステップＳ１４０１）。フロー記述コードは、サーバ１、外部コンピュータ等からネットワーク３を介して取得しても良いし、可搬型ディスクドライブ２７を介して取得しても良い。
【００９６】
ＣＰＵ２１は、取得したフロー記述コードを静的に解析し（ステップＳ１４０２）、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成し（ステップＳ１４０３）、記憶装置２２の選択条件情報記憶部２２２に記憶する（ステップＳ１４０４）。ＣＰＵ２１は、実行時削除判別対象ノードを抽出し（ステップＳ１４０５）、記憶装置２２の選択条件情報記憶部２２２に記憶する(ステップＳ１４０６)。クエリがＳＱＬ文である場合には、選択条件はｓｅｌｅｃｔ文に相当し、選択条件情報は、それぞれの選択条件の属性値を含むｗｈｅｒｅ句に相当する。ステップＳ１４０５におけるノード抽出処理については、図１６にて詳細に説明する。
【００９７】
次に図１５において、クライアント２のＣＰＵ２１は、図１４のステップＳ１４０５で抽出されたノードを選択条件情報記憶部２２２から読み込み（ステップＳ１５０１）、ワークフローを実行する（ステップＳ１５０２）。ワークフローの実行はクライアント２で実行することに限定されるものではなく、サーバ１からワークフローの実行結果を受け取っても良い。ＣＰＵ２１は、一のノードを選択し（ステップＳ１５０３）、記憶されている選択条件情報に基づいて、該ノードが図１４のステップＳ１４０５で抽出されたノードであるか否かを判断する（ステップＳ１５０４）。
【００９８】
ＣＰＵ２１が、抽出されたノードであると判断した場合（ステップＳ１５０４：ＹＥＳ）、ＣＰＵ２１は、選択条件を具備する可能性があるか否かを判断する（ステップＳ１５０５）。ＣＰＵ２１が、選択条件を具備しないと判断した場合（ステップＳ１５０５：ＮＯ）、ＣＰＵ２１は、該ノード以後に遷移するノードを、実体化ビューの削除対象のＰＳＳを含むノードとして抽出し、抽出されたノードに対応する問い合わせ結果に関する情報（タプル）を、実体化ビューから削除する（ステップＳ１５０６）。特定されたノード以後に遷移するノードにおいて選択条件の属性は変動しないことから、一度でも選択条件を具備しないと判定された場合、それ以後遷移するノードでは選択条件を具備する可能性がなく、実体化ビューからの削除対象となりうる。
【００９９】
ＣＰＵ２１が、抽出されたノードではないと判断した場合（ステップＳ１５０４：ＮＯ）、ＣＰＵ２１は、ステップＳ１５０５及びステップＳ１５０６を、ＣＰＵ２１が、選択条件を具備すると判定した場合（ステップＳ１５０５：ＹＥＳ）、ＣＰＵ２１は、ステップＳ１５０６を、それぞれスキップし、全てのノードにつき処理が終了したか否かを判断する（ステップＳ１５０７）。ＣＰＵ２１が、まだ未処理であるノードが存在すると判断した場合（ステップＳ１５０７：ＮＯ）、ＣＰＵ２１は、次のノードを選択し（ステップＳ１５０８）、処理をステップＳ１５０４へ戻し、上述した処理を繰り返す。ＣＰＵ２１が、全てのノードにつき処理が終了したと判断した場合（ステップＳ１５０７：ＹＥＳ）、ＣＰＵ２１は、処理を終了する。
【０１００】
図１４のステップＳ１４０５のノード抽出処理は以下の手順で実行することが好ましい。図１６は、本発明の実施の形態２に係るクライアント２のＣＰＵ２１のノード抽出処理の手順を示すフローチャートである。
【０１０１】
クライアント２のＣＰＵ２１は、ワークフローの上流に位置するノードから順次一のノードを選択する(ステップＳ１６０１)。ＣＰＵ２１は、選択されたノードそれぞれについて、該ノードについて、プロセスインスタンスの選択条件の属性が該ノード以後一定か否かを判断する(ステップＳ１６０２)。ＣＰＵ２１が、該ノード以後変更される可能性がないと判断した場合（ステップＳ１６０２：ＹＥＳ）、ＣＰＵ２１は、該ノードに対応する選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件不備の可能性が有るか否かを判断する（ステップＳ１６０３）。
【０１０２】
ＣＰＵ２１が、選択条件不備の可能性がある場合、すなわち少なくとも一の選択条件を具備しないと判断した場合（ステップＳ１６０３：ＹＥＳ）、ＣＰＵ２１は、選択されたノードを、実体化ビューの削除対象ノードとして抽出する（ステップＳ１６０４）。ＣＰＵ２１が、選択されたノード以後変更される可能性があると判断した場合（ステップＳ１６０２：ＮＯ）、ＣＰＵ２１は、ステップＳ１６０３及びステップＳ１６０４を、ＣＰＵ２１が、選択条件不備の可能性がないと判断した場合（ステップＳ１６０３：ＮＯ）、ＣＰＵ２１は、ステップＳ１６０４を、それぞれスキップする。ＣＰＵ２１は、全てのノードについて処理が終了したか否かを判断し（ステップＳ１６０５）、ＣＰＵ２１が、未処理のノードが存在すると判断した場合（ステップＳ１６０５：ＮＯ）、ＣＰＵ２１は、次のノードを選択し（ステップＳ１６０６）、処理をステップＳ１６０２へ戻して、上述した処理を繰り返す。ＣＰＵ２１が、全てのノードについて処理が終了したと判断した場合（ステップＳ１６０５：ＹＥＳ）、ＣＰＵ２１は、処理を終了する。
【０１０３】
例えば、実施の形態１と同様の保険審査処理のワークフローの場合、記憶装置２２の選択条件情報記憶部２２２に記憶されている選択条件情報を具備する可能性があり、しかも選択条件の属性が該ノード以後変動しないノードをＤＦＥ（動的終値評価：Ｄｙｎａｍｉｃ  Ｆｉｎａｌ−ｖａｌｕｅ  Ｅｖａｌｕａｔｉｏｎ）ノードとして抽出する。具体的には、選択条件がＳＱＬ文で示されている場合には、選択条件の属性値を含む選択条件情報はｗｈｅｒｅ句に記載される条件となる。該選択条件の属性が該ノード以後のノードで変動しない一定の属性となるか否かを、ＰＳＳに基づいてノードごとに判断する。
【０１０４】
図１７は、保険審査処理のワークフローに対応したＰＳＳ及びＰＳＤに、ＤＦＥノード及びＦｉｘｅｄノードを追加した例示図である。図１７の例でも、実施の形態１と同様、選択条件として「ＡＴＩＤ＝‘Ａ４’＆ＳＴＡＴＥ＝‘ｆａｉｌｅｄ’＆ＰＴＩＤ＝‘ＩｎｓｕｒａｎｃｅＣｌａｉｍ’」が記憶されている。
【０１０５】
そして、図１７（ｂ）に示すノードごとのＰＳＳから、該ノード以後ＰＳＳの条件属性が変動しないノードを特定する。図１７（ｂ）の例では、選択条件の条件属性「ＰＴＩＤ，ＡＴＩＤ、ＳＴＡＴＥ」が以後変動しないノードとして、Ａ６（１）ｅｎｔｒｙ、Ａ７（２）ｅｎｔｒｙが、ＤＦＥノードとして抽出される。
【０１０６】
ＤＦＥノード以後に遷移するノード、すなわち図１７（ｂ）でのＡ６（１）ｅｘｉｔ、Ａ７（１）ｅｎｔｒｙ、Ａ７（１）ｅｘｉｔ、Ａ７（２）ｅｘｉｔでは、ＤＦＥノードであるＡ６（１）ｅｎｔｒｙ、Ａ７（２）ｅｎｔｒｙにてＳＴＡＴＥ＝‘ｆａｉｌｅｄ’となった場合には一切の更新処理が実行されない。すなわち、これらのノードでは、実体化ビューとして記憶していなくても検索処理又は更新処理の問い合わせ結果が変動せず、実体化ビューから削除することができるノードとなる。ＤＦＥノードにて一定の選択条件を具備しないと判定された場合の以後遷移するノードをＦｉｘｅｄノードとして図１７（ａ）のＰＳＤに記載している。
【０１０７】
図１７（ｂ）に示す選択条件情報記憶部２２２に記憶された選択条件情報の例示図では、ＤＦＥノードとして抽出されたノードに選択条件ＳＴＡＴＥ＝‘ｆａｉｌｅｄ’を、Ｆｉｘｅｄノードとして抽出されたノードに‘Ｆｉｘｅｄ’と示すフラグを記憶してある。ＣＰＵ２１は、選択条件情報記憶部２２２に記憶された選択条件情報のＰＳＳのうち、‘Ｆｉｘｅｄ’と示すフラグが記憶されているＰＳＳに対応する実体化ビューのタプルを削除することにより、実体化ビューを記憶するために要する記憶容量を削減することが可能となる。
【０１０８】
以上のように本実施の形態２によれば、ＤＦＥノードは、それ以後選択条件の属性が更新されないノードであることから、選択条件を具備していない場合には、以後遷移する全てのノードにおいても選択条件を具備する可能性はない。したがって、抽出されたＦｉｘｅｄノードに対応する問い合わせ結果に関する情報は、実体化ビューから削除することができ、実体化ビューを記憶するのに要する記憶容量を削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下を抑制することが可能となる。
【０１０９】
上述した実施の形態１及び２は、それぞれ独立して具現化されても良いし、両者を組み合わせても良い。すなわち、記憶されている選択条件情報に基づいて、選択条件を具備する可能性の有無に基づいて実体化ビューから削除可能なＰＳＳを有するノードであるか否かを判断し、条件に該当するノードを実体化ビューから削除可能なＰＳＳを有するノードとして抽出するとともに、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、特定されたノードにて選択条件を具備するか否かを判定した結果に応じて、実体化ビューから削除することが可能なＰＳＳを有するか否かを判断してＦｉｘｅｄノードを抽出することにより、実体化ビューから不要なタプルをより多く削除することができ、実体化ビューを記憶するために要する記憶容量を一層削減することができることは言うまでもない。
【０１１０】
図１８は、本発明の実施の形態１及び２で開示されている保険審査処理について、両実施の形態に開示されている技術を組み合わせた場合のＰＳＤの例示図である。図１８に示すように、ＳＤＰノードであるだけでなく、ＤＦＥノード以後に遷移するＦｉｘｅｄノードについても、選択条件ＳＴＡＴＥ＝‘ｆａｉｌｅｄ’の場合には実体化ビューからの削除対象ノードとなり、実体化ビューを記憶するための記憶容量をより一層削減することが可能となる。
【０１１１】
図１９は、本発明の実施の形態１及び２を組み合わせた場合の実体化ビューのタプル削減効果を示すシミュレーション図である。図１９には、分岐確率ｂ１を横軸、実体化ビューのタプルの削減率Ｒを縦軸とし、インスタンス数ｎ＝１０００、ｆａｉｌ確率ｆ＝０．５、分岐確率ｂ２＝ｂ３、ｂ４＝０．５、ｂ５＝ｂ６と仮定した場合のシミュレーション結果を示している。
【０１１２】
図１９に示すように、分岐確率ｂ１を０から１の範囲で変化させた場合、ｂ１＝０では全てのプロセスインスタンスがＳＤＰノードへ遷移することから、実体化ビューのタプルの削減効果が最大となる。一方、ｂ１＝１の場合、ＳＤＰノードへ遷移するプロセスインスタンスが存在しないことから、ＳＤＰノードによる実体化ビューのタプルの削減効果は０となる。
【０１１３】
一方、ＤＦＥノードによる実体化ビューのタプルの削減効果は、ｂ１＝０で最小、ｂ１＝１で最大となるが、ＤＦＥノードが存在しない実行パスも存在する。したがって、最大のタプルの削減効果は、ＳＴＡＴＥの値を決めるｆａｉｌ確率ｆ＝０．５に収束する。そのため、ＳＤＰノードのタプルの削減効果が０であるｂ１＝１の場合、削減率Ｒは０．５となる。
【０１１４】
また、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内の記載であれば多種の変形、置換等が可能であることは言うまでもない。例えば、上述の実施の形態１及び２では、サーバ１とクライアント２とがデータ通信することが可能に接続されている環境下でのデータ処理について説明しているが、処理フローを定義するフロー記述コードに基づいて生成されるフローエンジンを用いるデータ処理であれば限定されるものではなく、クライアント２がＷｅｂビューワのみの構成であり、処理自体はサーバ１単体で実行する構成、すなわちサーバ１がデータ処理装置である構成であっても良い。この場合、実体化ビューを高速アクセス可能な記憶装置に記憶しておくことにより、全体のレスポンス向上に貢献することが可能となる。
【図面の簡単な説明】
【０１１５】
【図１】本発明の実施の形態１に係るワークフローシステムの構成を示すブロック図である。
【図２】本発明の実施の形態１に係るワークフローシステムのクライアントの構成を示すブロック図である。
【図３】本発明の実施の形態１に係るクライアントの機能を模式的に示す機能ブロック図である。
【図４】選択条件情報記憶部に記憶されるデータ構成の例示図である。
【図５】本発明の実施の形態１に係るクライアントのＣＰＵの、静的解析により削除対象ノードを抽出する処理手順を示すフローチャートである。
【図６】本発明の実施の形態１に係るクライアントのＣＰＵの、フローエンジンの実行結果に基づいて関連する実体化ビューの情報を選択的に削除する処理手順を示すフローチャートである。
【図７】本発明の実施の形態１に係るクライアントのＣＰＵのノード抽出処理の手順を示すフローチャートである。
【図８】本実施の形態１に係る保険審査処理のワークフローを模式的に示す例示図である。
【図９】本実施の形態１に係る保険審査処理のワークフローにおけるプロセス情報記憶部に記憶されるデータ構成の例示図である。
【図１０】保険審査処理のワークフローに対応したＰＳＳ及びＰＳＤの例示図である。
【図１１】本発明の実施の形態１に係るクライアントのＣＰＵのＰＳＤ生成処理の手順を示すフローチャートである。
【図１２】保険審査処理のワークフローに対応したＰＳＳ及びＰＳＤに、ＳＤＰノードを追加した例示図である。
【図１３】本発明の実施の形態２に係るクライアントの機能を模式的に示す機能ブロック図である。
【図１４】本発明の実施の形態２に係るクライアントのＣＰＵの、静的解析により実行時削除判別対象ノードを抽出する処理手順を示すフローチャートである。
【図１５】本発明の実施の形態２に係るクライアントのＣＰＵの、フローエンジンの実行結果に基づいて関連する実体化ビューの情報を選択的に削除する処理手順を示すフローチャートである。
【図１６】本発明の実施の形態２に係るクライアントのＣＰＵのノード抽出処理の手順を示すフローチャートである。
【図１７】保険審査処理のワークフローに対応したＰＳＳ及びＰＳＤに、ＤＦＥノード及びＦｉｘｅｄノードを追加した例示図である。
【図１８】本発明の実施の形態１及び２で開示されている保険審査処理について、両実施の形態に開示されている技術を組み合わせた場合のＰＳＤの例示図である。
【図１９】本発明の実施の形態１及び２を組み合わせた場合の実体化ビューのタプル削減効果を示すシミュレーション図である。
【符号の説明】
【０１１６】
１  サーバ
２  クライアント
３  ネットワーク
１１、２１  ＣＰＵ
１２、２２  記憶装置
１３、２３  メモリ
１４、２４  通信インタフェース
１５、２５  ビデオインタフェース
１６、２６  Ｉ／Ｏインタフェース
１７、２８  内部バス
１８、３０  表示装置
２７  可搬型ディスクドライブ
９０  可搬型記録媒体
１００  コンピュータプログラム
１２１  プロセス情報記憶部
２２１  実体化ビュー記憶部
２２２  選択条件情報記憶部
【図１】
2010009489.tif 000003
【図２】
2010009489.tif 000004
【図３】
2010009489.tif 000005
【図４】
2010009489.tif 000006
【図５】
2010009489.tif 000007
【図６】
2010009489.tif 000008
【図７】
2010009489.tif 000009
【図８】
2010009489.tif 000010
【図９】
2010009489.tif 000011
【図１０】
2010009489.tif 000012
【図１１】
2010009489.tif 000013
【図１２】
2010009489.tif 000014
【図１３】
2010009489.tif 000015
【図１４】
2010009489.tif 000016
【図１５】
2010009489.tif 000017
【図１６】
2010009489.tif 000018
【図１７】
2010009489.tif 000019
【図１８】
2010009489.tif 000020
【図１９】
2010009489.tif 000021