JP5181283B2 - データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム - Google Patents

データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム Download PDF

Info

Publication number
JP5181283B2
JP5181283B2 JP2008170857A JP2008170857A JP5181283B2 JP 5181283 B2 JP5181283 B2 JP 5181283B2 JP 2008170857 A JP2008170857 A JP 2008170857A JP 2008170857 A JP2008170857 A JP 2008170857A JP 5181283 B2 JP5181283 B2 JP 5181283B2
Authority
JP
Japan
Prior art keywords
node
selection condition
information
workflow
extracted
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
JP2008170857A
Other languages
English (en)
Other versions
JP2010009489A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2008170857A priority Critical patent/JP5181283B2/ja
Publication of JP2010009489A publication Critical patent/JP2010009489A/ja
Application granted granted Critical
Publication of JP5181283B2 publication Critical patent/JP5181283B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、不要な問い合わせ結果に関する情報を排除した実体化ビューを用いてプロセスインスタンスの進行状況に関する情報を検索又は更新するデータ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラムに関する。
BPEL(Business Process Execution Language)に代表されるフロー記述言語に基づいて生成されたフローエンジンを有するワークフローシステムでは、実行中のプロセスインスタンスの状況を把握するために大規模データベースを必要とする。そして、大量のプロセスインスタンスを同時に処理する場合には、データベースへの検索要求及び更新要求が膨大となり、レスポンスを維持することが困難になる。
大規模データベースに対する検索要求及び更新要求のレスポンスを確保するために、事前に定義された問い合わせ結果に関する情報を含むデータベースビューであるマテリアライズドビュー(以下、実体化ビューという)を用いる技術が開発されている。データの実体を含む実体化ビューに対して検索要求及び更新要求を行うことで、データベース本体へ直接出される検索要求及び更新要求の数を減じることができ、全体としてレスポンスの向上を図ることができる。
しかし、実体化ビューを用いる場合、データベース本体と実体化ビューとの間でデータの整合性が維持されていることが必須となる。そのため、更新要求が実行された場合には、実体化ビューに対してリフレッシュ処理を実行することにより実体化ビューの内容を随時更新する必要があった。
実体化ビューのリフレッシュ処理の実行時には、元になるデータベース本体へアクセスする必要がある。したがって、実体化ビューを用いることでデータベース本体へのアクセス数を減少させたにも拘わらず、更新処理が大量である場合には、リフレッシュ処理によるデータベース本体へのアクセス数が急増し、全体としてレスポンスを維持することができないおそれがあった。
そこで、例えば非特許文献1では、実体化ビューをセルフメンテナブルビューとして使用し、実体化ビューのリフレッシュ処理の実行時に、データベース本体へアクセスする必要がないように工夫している。セルフメンテナブルビューは、データベース本体が更新された場合、更新履歴のみで実体化ビューを更新することができ、実体化ビューのリフレッシュ処理が増大した場合であってもデータベース本体へのアクセス数の増加を抑制することができる。
グプタ他2名、「セルフメンテナブルビューを用いたデータ統合(Data Integration using Self−Maintainable Views)」、1996年
しかし、セルフメンテナブルビューを確実に具現化するためには、更新処理時の選択条件に含まれる各種の属性情報を追加する必要が生じる。通常は、属性情報を追加するための補助ビューを作成することが多く、補助ビューを記憶する分だけ、記憶容量をより多く必要としていた。
また、選択条件に関わる項目に対する更新処理が実行される場合、実体化ビューとして記憶しておくべきタプル(データ組)の個数が増加する。すなわち、通常の実体化ビューでは、定義されている選択条件を具備するタプルだけ記憶しておけば足りるのに対し、セルフメンテナブルビューでは、選択条件自体が更新されることにより、タプルを安易に削除することができない。したがって、増大したタプルを記憶する記憶領域が必要となり、全体として大きな記憶容量を必要とするという問題点があった。
例えばワークフローシステム等で用いられるフローエンジンでは、実体化ビューを高価であるものの高速アクセスが可能な記憶領域に記憶することで、全体のレスポンス向上を図っている。したがって、記憶領域の使用量を可能な限り削減することは、システム全体のコスト面からも重要な課題となっている。
本発明は斯かる事情に鑑みてなされたものであり、記憶容量を増大させることなく実体化ビューをセルフメンテナブルビューとして機能させることができるデータ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラムを提供することを目的とする。
上記目的を達成するために第1発明に係るデータ処理装置は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、ワークフローを構築するフロー記述コードを取得する取得手段と、取得したフロー記述コードを静的に解析する解析手段と、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段と、該第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段とを備えることを特徴とする。
また、第2発明に係るデータ処理装置は、第1発明において、前記第一の抽出手段は、前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段とを備え、該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出するようにしてあることを特徴とする。
次に、上記目的を達成するために第3発明に係るデータ処理装置は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、ワークフローを構築するフロー記述コードを取得する取得手段と、取得したフロー記述コードを静的に解析する解析手段と、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、該第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段とを備えることを特徴とする。
次に、上記目的を達成するために第4発明に係るデータ処理装置は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、ワークフローを構築するフロー記述コードを取得する取得手段と、取得したフロー記述コードを静的に解析する解析手段と、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段と、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段とを備えることを特徴とする。
また、第5発明に係るデータ処理装置は、第4発明において、前記第一の抽出手段は、前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段とを備え、該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出するようにしてあることを特徴とする。
次に、上記目的を達成するために第6発明に係るワークフローシステムは、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有するサーバと、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するクライアントとで構成されるワークフローシステムにおいて、前記サーバは、ワークフローを構築するフロー記述コードを取得する取得手段と、取得したフロー記述コードを静的に解析する解析手段と、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して、前記クライアントとの共有ファイルとして記憶する選択条件情報記憶手段とを備え、前記クライアントは、前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段と、該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する第一の抽出手段と、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段とを備えることを特徴とする。
次に、上記目的を達成するために第7発明に係るデータ処理方法は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出し、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とする。
次に、上記目的を達成するために第8発明に係るデータ処理方法は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、特定されたノードにて前記選択条件を具備するか否かを判定し、前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出し、抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とする。
次に、上記目的を達成するために第9発明に係るデータ処理方法は、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出し、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、特定されたノードにて前記選択条件を具備するか否かを判定し、前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出し、抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とする。
次に、上記目的を達成するために第10発明に係るコンピュータプログラムは、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、前記データ処理装置を、ワークフローを構築するフロー記述コードを取得する取得手段、取得したフロー記述コードを静的に解析する解析手段、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段、及び該第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段として機能させることを特徴とする。
また、第11発明に係るコンピュータプログラムは、第10発明において、前記第一の抽出手段を、前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段、選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段、及び該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する手段として機能させることを特徴とする。
次に、上記目的を達成するために第12発明に係るコンピュータプログラムは、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、前記データ処理装置を、ワークフローを構築するフロー記述コードを取得する取得手段、取得したフロー記述コードを静的に解析する解析手段、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段、特定されたノードにて前記選択条件を具備するか否かを判定する判定手段、該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段、及び該第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段として機能させることを特徴とする。
次に、上記目的を達成するために第13発明に係るコンピュータプログラムは、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、前記データ処理装置を、ワークフローを構築するフロー記述コードを取得する取得手段、取得したフロー記述コードを静的に解析する解析手段、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段、記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段、特定されたノードにて前記選択条件を具備するか否かを判定する判定手段、該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段、及び前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段として機能させることを特徴とする。
また、第14発明に係るコンピュータプログラムは、第13発明において、前記第一の抽出手段を、前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段、選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段、及び該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する手段として機能させることを特徴とする。
第1発明、第7発明、及び第10発明では、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新する。ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する。記憶されている選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する。抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがなく、実体化ビューから削除することができる。したがって、実体化ビューを記憶するのに要する記憶容量を削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下を抑制することが可能となる。
ここで、「プロセス」とは、時間及び空間を通して特定の順番に並べられたアクティビティ群を意味しており、複数の順序付けされたアクティビティで構成される。「プロセスインスタンス」とは、プロセスの実行単位であり、具体的なデータ入力、環境を含むアクティビティの集合を意味する。「問い合わせ結果に関する情報」とは、検索処理又は更新処理時の選択条件に基づく問い合わせ結果を含む情報であり、例えばクエリがSQL文で記載される場合には、select文で選択された結果に関する情報に相当する。「選択条件」とは、ビューに対する検索処理又は更新処理の実行時に対象を選択する条件を意味しており、例えばクエリがSQL文で記載される場合には、select文の内容に相当する。
「フロー記述コード」とは、ワークフロー等の業務フローを定義するソースコードであり、更新処理の実行順序及び各更新処理におけるパラメータが明示されている。「実体化ビュー」とは、いわゆるマテリアライズドビューを意味しており、大規模データベースにおけるレスポンス向上のために設けられる、実体としてのデータを含むビューを意味している。
第2発明、第5発明、第11発明、及び第14発明では、ワークフローの上流に位置するノードから順次一のノードを選定し、選定されたノードそれぞれについて、選定されたノードに対応する選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する。一つでも選択条件を具備しないと判断した場合、選定されたノードを抽出することにより、更新される可能性がないノードを確実に抽出することができ、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、リフレッシュ処理の対象外として実体化ビューから削除することができる。したがって、実体化ビューを記憶するのに要する記憶容量を削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下を抑制することが可能となる。
第3発明、第8発明、及び第12発明では、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新する。ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する。記憶されている選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する。特定されたノードにて選択条件を具備するか否かを判定し、選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する。特定されたノードは、該ノード以後に遷移するノードにて選択条件の属性が更新されないノードであることから、選択条件を具備していない場合には、以後遷移する全てのノードにおいても選択条件を具備する可能性はない。したがって、抽出された他のノードに対応する問い合わせ結果に関する情報は、実体化ビューから削除することができ、実体化ビューを記憶するのに要する記憶容量を削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下を抑制することが可能となる。
第4発明、第9発明、第13発明では、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新する。ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析し、静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する。記憶されている選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する。一方、記憶されている選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する。特定されたノードにて選択条件を具備するか否かを判定し、選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する。抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに抽出された他のノードに対応する問い合わせ結果に関する情報を、実体化ビューから削除する。抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがなく、実体化ビューから削除することができる。また、特定されたノードは、該ノード以後に遷移するノードにて選択条件の属性が更新されないノードであることから、選択条件を具備していない場合には、以後遷移する全てのノードにおいても選択条件を具備する可能性はない。したがって、不要と判断された問い合わせ結果に関する情報を、それぞれ実体化ビューから削除することにより、実体化ビューを記憶するのに要する記憶容量をより削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下をより抑制することが可能となる。
第6発明では、フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有するサーバと、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するクライアントとで構成される。サーバは、ワークフローを構築するフロー記述コードを取得し、取得したフロー記述コードを静的に解析する。静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して、クライアントとの共有ファイルとして記憶する。クライアントは、ワークフローの上流に位置するノードから順次一のノードを選定し、選定されたノードそれぞれについて、選定されたノードに対応する選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する。少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する。一方で、記憶されている選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する。特定されたノードにて選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する。抽出された上述のノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに抽出された他のノードに対応する問い合わせ結果に関する情報を、実体化ビューから削除する。抽出された、選択条件を具備する可能性が無いノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがなく、実体化ビューから削除することができる。また、特定されたノードは、それ以後選択条件の属性が更新されないノードであることから、選択条件を具備していない場合には、以後遷移する全てのノードにおいても選択条件を具備する可能性はない。したがって、不要と判断された問い合わせ結果に関する情報を、それぞれ実体化ビューから削除することにより、実体化ビューを記憶するのに要する記憶容量をより削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下をより抑制することが可能となる。
本発明によれば、抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがなく、実体化ビューから削除することができる。また、特定されたノードは、それ以後選択条件の属性が更新されないノードであることから、選択条件を具備していない場合には、以後遷移する全てのノードにおいても選択条件を具備する可能性はない。したがって、不要と判断された問い合わせ結果に関する情報を、それぞれ実体化ビューから削除することにより、実体化ビューを記憶するのに要する記憶容量をより削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下をより抑制することが可能となる。
以下、本発明の実施の形態に係るデータ処理装置を、ワークフローを実現するワークフローシステムを一例とし、図面に基づいて具体的に説明する。したがって、以下の実施の形態では、サーバとクライアントとがデータ通信することが可能に接続されている環境下でのデータ処理について説明するが、処理フローを定義するフロー記述コードに基づいて実行されるフローエンジンを用いるデータ処理であれば良く、クライアントがWebビューワのみの構成であり、処理自体はサーバ単体で実行する構成であっても良い。また、データベースサーバとフローエンジンを実行するワークフローサーバとがデータ通信可能に接続された異なるサーバであり、実体化ビューがワークフローサーバのメモリ上に保存される構成であっても良い。この場合、フローエンジンの実行に必要となるデータベースへの問い合わせが実体化ビューにて処理される。
(実施の形態1)
図1は、本発明の実施の形態1に係るワークフローシステムの構成を示すブロック図である。図1に示すように、本実施の形態1に係るワークフローシステムは、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有するサーバ1に対して、クライアント(データ処理装置)2、2、・・・からプロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新する。
サーバ1のCPU11は、記憶装置12に記憶されているコンパイラプログラムをメモリ13へ展開し、取得したフロー記述コードをコンパイルすることによりフローエンジンを生成する。生成されたフローエンジンに従って稼動するプロセスインスタンスの進行状況に関する情報は、プロセスインスタンスごと、かつワークフローに含まれるノードごとの情報としてデータベース化され、記憶装置12のプロセス情報記憶部121に記憶されている。
プロセスインスタンスの進行状況に関する情報は、クライアント2からネットワーク3を介して通信インタフェース14を経由して取得する。取得したプロセスインスタンスの進行状況に関する情報は、記憶装置12のプロセス情報記憶部121に随時記憶される。データの表示は、ビデオインタフェース15を介して接続されている表示装置18で行われる。データ入力/選択は、I/Oインタフェース16を介して接続されているキーボード19、マウス20により行われる。これらのハードウェアは、内部バス17を介してCPU11に接続されており、CPU11により動作が制御される。
図2は、本発明の実施の形態1に係るワークフローシステムのクライアント2の構成を示すブロック図である。図2において、本実施の形態1に係るクライアント2は、少なくとも、CPU(中央演算装置)21、記憶装置22、メモリ23、通信インタフェース24、ビデオインタフェース25、I/Oインタフェース26、可搬型ディスクドライブ27及び上述したハードウェアを接続する内部バス28で構成されている。
CPU21は、内部バス28を介してクライアント2の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置22に記憶されているコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ23は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
記憶装置22は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置22に記憶されるコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、可搬型ディスクドライブ27によりインストールされ、実行時には記憶装置22からメモリ23へ展開して実行される。もちろん、通信インタフェース24からネットワーク3を介して外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
また記憶装置22は、検索処理又は更新処理のレスポンスを向上させるために生成された実体化ビューを記憶する実体化ビュー記憶部221と、実体化ビューから不要なデータ組(以下、タプルという)を削除するための選択条件情報を記憶する選択条件情報記憶部222とを備えている。実体化ビューは、いわゆるマテリアライズドビューであり、更新処理が実行されるごとに、サーバのデータベースとの整合を図るために更新される。したがって、検索処理又は更新処理時の問い合わせ結果に関する情報も実体化ビューには含まれる。また、選択条件情報とは、検索処理又は更新処理の対象として選択するための条件に関する情報を意味しており、プロセスインスタンスがワークフロー上の各ノードにおいて指定している選択条件を、フロー記述コードに沿って抽出して記憶したものである。実体化ビューの問い合わせ結果に関する情報には、選択条件情報が含まれており、削除すべき選択条件情報が特定された場合、特定された選択条件情報に対応する問い合わせ結果に関する情報がタプルとして削除される。
通信インタフェース24は内部バス28に接続されており、インターネット、LAN、WAN等の外部のネットワーク3に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置22は、クライアント2に内蔵される構成に限定されるものではなく、通信インタフェース24を介して接続されている外部のサーバ1、又は外部の他のクライアント2、2、・・・等に設置されているハードディスク等の外部記憶媒体であっても良い。
I/Oインタフェース26は内部バス28に接続されており、キーボード31、マウス32等のデータ入力媒体からの入力を受け付ける。ビデオインタフェース25は内部バス28に接続されており、CRTモニタ、LCD等の表示装置30に表示データを送信する。
プロセスインスタンスの進行状況に関する情報は、プロセスインスタンスが進行する都度、データベースであるプロセス情報記憶部121にて検索又は更新される。したがって、データベースに対する検索処理又は更新処理によるレスポンスの低下を回避するべく、通常は問い合わせ結果を事前にデータとともに記憶しておくビューである実体化ビューを用いる。
更新処理が実行された場合、データベース本体と実体化ビューとの間でデータの整合性を図るために、データベース本体及び実体化ビューを最新の状態に更新するリフレッシュ処理が必要となる。リフレッシュ処理によるデータベース本体へのアクセス頻度を軽減し、実体化ビューを記憶するために要する記憶容量を削減するため、本実施の形態1では、フロー記述コードに基づいて静的に解析した選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出して、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報(タプル)を、実体化ビューから削除する点に特徴を有している。
図3は、本発明の実施の形態1に係るクライアント2の機能を模式的に示す機能ブロック図である。図3において、コード取得手段(取得手段)301では、ワークフローを構築するフロー記述コードを取得する。フロー記述コードは、ワークフロー処理の内容を記述したプログラムのソースコードであり、サーバ1、外部コンピュータ等からネットワーク3を介して取得しても良いし、可搬型ディスクドライブ27を介して取得しても良い。
解析手段302では、取得したフロー記述コードを静的に解析する。すなわち、フロー記述コードの記載内容に基づいて、ワークフローを形成するノードの特定、ノードごとの遷移関係の特定、選択条件の抽出等を行う。
選択条件情報記憶手段303では、解析手段302での静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成し、記憶装置22の選択条件情報記憶部222に記憶する。図4は、選択条件情報記憶部222に記憶されるデータ構成の例示図である。
図4に示すように、選択条件情報記憶部222には、ワークフロー上のノードごとに、少なくとも遷移する宛先に関する遷移先情報と、更新処理により設定される選択条件の値の集合値PSS(Possible State Set)とが記憶されている。PSSは、フロー記述コードから静的に抽出することができ、PSSの内容に応じて実体化ビューから削除しても良いタプルを特定する。
ノード抽出手段304では、記憶されている選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する。具体的には選択条件情報として記憶されているPSSが、検索処理又は更新処理のクエリに記述されている選択条件を、該ノード以後遷移するノードにて具備しないノードを抽出する。ここで、クエリとはデータベースに対する処理要求を文字列として示したものであり、SQL等の記述言語で表された文字列である。
削除手段305では、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報(タプル)を、実体化ビューから削除する。すなわち、抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがない。したがって、実体化ビューから削除することができ、実体化ビューを記憶するのに要する記憶容量を削減することができる。
上述した構成のクライアント(データ処理装置)2の処理手順をフローチャートに基づいて説明する。図5及び図6は、本発明の実施の形態1に係るクライアント2のCPU21の処理手順を示すフローチャートである。図5は、本発明の実施の形態1に係るクライアント2のCPU21の、静的解析により削除対象ノードを抽出する処理手順を示すフローチャートであり、図6は、本発明の実施の形態1に係るクライアント2のCPU21の、フローエンジンの実行結果に基づいて関連する実体化ビューの情報を選択的に削除する処理手順を示すフローチャートである。
図5において、クライアント2のCPU21は、ワークフローを構築するフロー記述コードを取得する(ステップS501)。フロー記述コードは、サーバ1、外部コンピュータ等からネットワーク3を介して取得しても良いし、可搬型ディスクドライブ27を介して取得しても良い。
CPU21は、取得したフロー記述コードを静的に解析し(ステップS502)、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成し(ステップS503)、記憶装置22の選択条件情報記憶部222に記憶する(ステップS504)。CPU21は、削除対象ノードを抽出し(ステップS505)、記憶装置22の選択条件情報記憶部222に記憶する(ステップS506)。クエリがSQL文である場合には、選択条件はselect文に相当し、選択条件情報は、それぞれの選択条件の属性値を含むwhere句に相当する。ステップS505における削除対象ノードの抽出処理については、図7にて詳細に説明する。
次に図6において、クライアント2のCPU21は、図5のステップS505で抽出されたノードを選択条件情報記憶部222から読み込み(ステップS601)、ワークフローを実行する(ステップS602)。ワークフローの実行はクライアント2で実行することに限定されるものではなく、サーバ1からワークフローの実行結果を受け取っても良い。CPU21は、一のノードを選択し(ステップS603)、記憶されている選択条件情報に基づいて、該ノードが図5のステップS505で抽出されたノードであるか否かを判断する(ステップS604)。
CPU21が、抽出されたノードであると判断した場合(ステップS604:YES)、CPU21は、抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報(タプル)を、実体化ビューから削除する(ステップS605)。CPU21が、抽出されたノードではないと判断した場合(ステップS604:NO)、CPU21は、ステップS605をスキップする。CPU21は、全てのノードにつき処理が終了したか否かを判断する(ステップS606)。
CPU21が、まだ未処理であるノードが存在すると判断した場合(ステップS606:NO)、CPU21は、次のノードを選択し(ステップS607)、処理をステップS604へ戻し、上述した処理を繰り返す。CPU21が、全てのノードにつき処理が終了したと判断した場合(ステップS606:YES)、CPU21は、処理を終了する。
図5のステップS505のノード抽出処理は、以下の手順で実行することが好ましい。図7は、本発明の実施の形態1に係るクライアント2のCPU21のノード抽出処理の手順を示すフローチャートである。
クライアント2のCPU21は、ワークフローの上流に位置するノードから順次一のノードを選定する(ステップS701)。CPU21は、選定されたノードそれぞれについて、選定されたノードに対応する選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する(ステップS702)。
CPU21が、少なくとも一の選択条件を具備しないと判断した場合(ステップS702:NO)、CPU21は、選定されたノードを、実体化ビューの削除対象ノードとして抽出する(ステップS703)。CPU21が、全ての選択条件を具備すると判断した場合(ステップS702:YES)、CPU21は、ステップS703をスキップする。CPU21は、全てのノードについて処理が終了したか否かを判断し(ステップS704)、CPU21が、未処理のノードが存在すると判断した場合(ステップS704:NO)、CPU21は、次のノードを選定し(ステップS705)、処理をステップS702へ戻して、上述した処理を繰り返す。CPU21が、全てのノードについて処理が終了したと判断した場合(ステップS704:YES)、CPU21は、処理を終了する。
以後、クライアント2での処理手順の詳細について、保険審査処理のワークフローを例に挙げて具体的に説明する。図8は、本実施の形態1に係る保険審査処理のワークフローを模式的に示す例示図である。図8では、保険審査処理のワークフローをアクティビティ単位で表示しており、各アクティビティへの遷移及び他のアクティビティへの遷移を含めてノード定義をしている。すなわち、各アクティビティには、遷移してくるエントリーノードと、他のアクティビティへ遷移するイグジットノードとが存在する。
図8の例では、まず申請を受理し(アクティビティA1)、受理した申請の書類審査を実行する(アクティビティA2)。申請を受理した時点で、新たなプロセスインスタンスが追加され、サーバ1のプロセス情報記憶部121及び実行されるクライアント2の実体化ビュー記憶部221にプロセスインスタンス識別情報(以下、PIIDという)に対応付けて記憶される。
アクティビティA2では、書類審査の結果に応じて、遷移先であるアクティビティが相違する。すなわち、審査結果が「要審査」である場合、審査を実行する担当者を割り当て(アクティビティA3)、調査1(アクティビティA4)及び調査2(アクティビティA5)を審査終了まで繰り返し処理する。審査結果が「受理」である場合、補償金処理を実行し(アクティビティA6)、審査結果が「拒否」である場合、結果の記録を実行する(アクティビティA7)。なお、調査1(アクティビティA4)及び調査2(アクティビティA5)により審査が終了した場合も、審査結果が「受理」である場合、補償金処理を実行し(アクティビティA6)、審査結果が「拒否」である場合、結果の記録を実行する(アクティビティA7)。
なお、各アクティビティが実行に移される都度、その状態が記憶される。例えばアクティビティA3にて担当者が割り当てられた場合、アクティビティA3の状態は「完了:completed」となり、アクティビティA4及びA5が追加される。アクティビティA4及びA5の状態は「開始:started」となる。したがって、アクティビティA4及びA5のようにアクティビティが並列に実行される場合を除けば、一のプロセスインスタンスに属するアクティビティのうち、状態が「開始:started」となるアクティビティは1つとなる。
図9は、本実施の形態1に係る保険審査処理のワークフローにおけるプロセス情報記憶部121に記憶されるデータ構成の例示図である。プロセスインスタンスが追加された場合には、図9(a)に示すようなプロセスインスタンステーブルに新規レコードが追加される。図9(a)において、PTIDは、ワークフローの雛形を識別するための識別情報であり、MSGIDは、プロセスに入力されたメッセージを識別するための識別情報であり、それぞれPIIDに対応付けて記憶される。
また、アクティビティが実行される都度、図9(b)に示すようなアクティビティテーブルに新規レコードが追加される。図9(b)において、AIIDは、実行されたアクティビティを識別する識別情報であり、ATIDは、アクティビティの雛形を識別する識別情報である。PIIDは、実行されたアクティビティが属するプロセスインスタンスを識別する識別情報であり、MSGIDは、実行されたアクティビティにて入力されたメッセージを識別する識別情報であり、STATEは、アクティビティの実行状態を示す情報である。STATEは、「開始:started」、「終了:completed」、又は「失敗:failed」のいずれかとなる。
上述したプロセスインスタンステーブル及びアクティビティインスタンステーブルのレプリケーション、あるいは検索処理又は更新処理により問い合わせ処理が実行された部分を抽出したタプル(問い合わせ結果に関する情報)は、実体化ビューとして実体化ビュー記憶部221に記憶される。クライアント2のCPU21は、フロー記述コードを解析することでPSSを生成し、PSSに基づいて状態遷移図(Possible State Diagram:PSDという)を作成する。
例えばクエリのselect文の選択条件に使用される属性を更新する更新記述をイクスポーズドアップデート(Exposed Update)といい、where句で用いられている属性、例えばPIID、ATID、STATE等を更新する更新記述を意味する。イクスポーズドアップデートが実行される可能性があるノードを特定した場合、ノード遷移において選択条件を具備する可能性がある遷移パスを特定することができる。
イクスポーズドアップデートによって設定される選択条件値の集合がPSSであり、選択条件の属性を識別する属性識別情報と属性値とが対応付けられて、選択条件情報記憶部222に記憶される。図10は、図8に示す保険審査処理のワークフローに対応したPSS及び遷移図(Possible State Diagram:以下、PSDという)の例示図である。
図10(a)では、PSDは、ワークフローを全ての合流点で末尾複製して得られたツリー構造として記載している。各アクティビティにはエントリーノード、イグジットノードの2つのPSDノードが割り当てられている。これは、各アクティビティへの遷移時及び該アクティビティから他のアクティビティへの遷移時には、それぞれ異なったテーブル操作が実行されるからである。
図10(a)のノードA1entry、ノードA4A5entry、ノードA4A5exitでは、イクスポーズドアップデートが実行される。ノードA1entryでは、プロセスインスタンス「InsuranceClaim」を生成する処理を、ノードA4A5entryでは、アクティビティ4の開始処理を、ノードA4A5exitでは、アクティビティ4の終了処理、又はアクティビティ4の失敗処理を、それぞれ実行している。これらの処理が実行されるノードがワークフロー上でどの位置に存在するか把握することで、PSSを生成することができる。すなわち各ノードでPSSを算出することができる。
図10(b)はノードごとに算出されたPSSとして、選択条件情報記憶部222に記憶される選択条件情報の例示図である。ノードごとの遷移先情報とともに、算出されたPSSが記憶されている。CPU21は、選択条件情報記憶部222に記憶された選択条件情報のPSSに基づいてPSDを生成する。PSD生成の処理手順は以下の通りである。図11は、本発明の実施の形態1に係るクライアント2のCPU21のPSD生成処理の手順を示すフローチャートである。なお、イクスポーズドアップデートの実行対象となるアクティビティが特定されていることを前提とする。
図11において、クライアント2のCPU21は、初期アクティビティ、例えばイクスポーズドアップデートの実行対象となる最初のアクティビティであるアクティビティA1を設定する(ステップS1101)。
CPU21は、設定されているアクティビティについて、次に遷移する遷移先アクティビティとの遷移関係に応じてリンクアクティビティを抽出する(ステップS1102)。CPU21が、遷移関係が‘シーケンス’であると判断した場合には(ステップS1102:シーケンス)、CPU21は、次に遷移するアクティビティをリンクアクティビティとして設定する(ステップS1103)。
CPU21が、遷移関係が‘繰り返しの最後’であると判断した場合には(ステップS1102:繰り返しの最後)、CPU21は、繰り返しの最初のアクティビティと、繰り返しを抜け出て最初に遷移するアクティビティをリンクアクティビティとして設定する(ステップS1104)。CPU21が、遷移関係が‘条件分岐’であると判断した場合には(ステップS1102:条件分岐)、CPU21は、分岐先の全てのアクティビティをリンクアクティビティとして設定する(ステップS1105)。
CPU21が、遷移関係が‘並行処理’であると判断した場合には(ステップS1102:並行処理)、CPU21は、並行処理する複数のアクティビティをまとめて、リンクアクティビティとして設定する(ステップS1106)。CPU21は、ワークフローのツリー構造を参照して、設定されているアクティビティの祖先に、リンクアクティビティが存在するか否かを判断する(ステップS1107)。
CPU21が、リンクアクティビティが存在すると判断した場合(ステップS1107:YES)、CPU21は、いわゆる末尾複製を実行し、リンクアクティビティのコピーノードを子ノードとして設定する(ステップS1108)。リンクアクティビティが存在しないと判断した場合(ステップS1107:NO)、CPU21は、リンクアクティビティを子ノードとして設定する(ステップS1109)。
CPU21は、イクスポーズドアップデートの種類を判断し(ステップS1110)、CPU21が、イクスポーズドアップデートが‘insert’であると判断した場合(ステップS1110:insert)、CPU21は、PSSにアクティビティに関する情報を追加する(ステップS1111)。 CPU21が、イクスポーズドアップデートが‘update’であると判断した場合(ステップS1110:update)、CPU21は、PSSに記憶されているアクティビティに関する情報を更新する(ステップS1112)。CPU21が、イクスポーズドアップデートが‘delete’であると判断した場合(ステップS1110:delete)、CPU21は、PSSに記憶されているアクティビティに関する情報を削除する(ステップS1113)。
CPU21は、設定されているリンクアクティビティ(全てのコピーノードも含む)の祖先ノードのPSSの集合積を算出し(ステップS1114)、PSD生成が終了したか否かを判断する(ステップS1115)。CPU21が、終了していないと判断した場合(ステップS1115:NO)、CPU21は、次のアクティビティを設定し(ステップS1116)、処理をステップS1102へ戻して上述した処理を繰り返す。CPU21が、終了したと判断した場合(ステップS1115:YES)、処理を終了する。図10(a)は、上述の処理の結果として求めたPSDである。
そして、記憶装置22の選択条件情報記憶部222に記憶されている選択条件情報を具備する可能性がないノードをSDP(静的除外パス:Static Deselection Pass)ノードとして抽出する。具体的には、選択条件がSQL文で示されている場合には、選択条件の属性値を含む選択条件情報はwhere句に記載される条件となる。該選択条件を各ノードにおけるPSSが具備しているか否かを、ノードごとに判断する。
例えば、図10(b)のようなPSSが記憶されている場合、選択条件として「ATID=‘A4’&STATE=‘failed’&PTID=‘InsuranceClaim’」が選択条件情報記憶部222に記憶されているときには、選択条件「ATID=‘A4’&STATE=‘failed’&PTID=‘InsuranceClaim’」をPSSに全て含んでいないノードをSDPノードとして抽出すれば良い。すなわちA6(2)entry、A6(2)exit、A7(3)entry、A7(3)exit、A7(4)entry、A7(4)exitが、SDPノードとして抽出される。
図12は、図8に示す保険審査処理のワークフローに対応したPSS及びPSDに、SDPノードを追加した例示図である。図12(a)に示すPSDでは、SDPノードとして抽出されたノードが削除された表示となっている。これは、SDPノードが選択条件を具備する可能性が無いノードであることから、SDPノード及び該ノード以後に遷移するノードについては実体化ビューとして記憶していなくても検索処理又は更新処理の問い合わせ結果が変動せず、実体化ビューから削除することができるノードだからである。
図12(b)に示す選択条件情報記憶部222に記憶された選択条件情報の例示図では、SDPノードとして抽出されたノードに‘SDP’と示すフラグを記憶してある。CPU21は、選択条件情報記憶部222に記憶された選択条件情報のPSSのうち、‘SDP’と示すフラグが記憶されているPSSに対応する実体化ビューのタプルを削除することにより、実体化ビューを記憶するために要する記憶容量を削減することが可能となる。
以上のように本実施の形態1によれば、抽出された、選択条件を具備する可能性が無いノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがなく、実体化ビューから削除することができる。したがって、実体化ビューを記憶するのに要する記憶容量を削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下を抑制することが可能となる。
(実施の形態2)
本発明の実施の形態2に係るワークフローシステムの構成、ワークフローシステムのクライアント2の構成等は、実施の形態1と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態2では、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、特定されたノードにて選択条件を具備するか否かを判定することにより、実体化ビューから削除することが可能なPSSを有するノードを抽出する点で実施の形態1と相違する。
すなわち、実施の形態1では、記憶されている選択条件情報に基づいて、選択条件を具備する可能性があるか否かに基づいて実体化ビューから削除可能なPSSを有するノードであるか否かを判断しており、条件に該当するノードは必ず実体化ビューから削除可能なPSSを有するノードとして抽出することができるのに対し、実施の形態2では、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、特定されたノードにて選択条件を具備するか否かを判定した結果に応じて、実体化ビューから削除することが可能なPSSを有するか否かが変動する。
更新処理が実行された場合、データベース本体と実体化ビューとの間でデータの整合性を図るために、データベース本体及び実体化ビューを最新の状態に更新するリフレッシュ処理が必要となる。リフレッシュ処理によるデータベース本体へのアクセス頻度を軽減し、実体化ビューを記憶するために要する記憶容量を削減するため、本実施の形態2でも実施の形態1と同様、フロー記述コードに基づいて静的に解析した選択条件情報に基づいて、特定されたノード上にて所定の条件を具備する場合に、該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報(タプル)を、実体化ビューから削除する。
図13は、本発明の実施の形態2に係るクライアント2の機能を模式的に示す機能ブロック図である。図13において、コード取得手段(取得手段)1301では、ワークフローを構築するフロー記述コードを取得する。フロー記述コードは、ワークフロー処理の内容を記述したプログラムのソースコードであり、サーバ1、外部コンピュータ等からネットワーク3を介して取得しても良いし、可搬型ディスクドライブ27を介して取得しても良い。
解析手段1302では、取得したフロー記述コードを静的に解析する。すなわち、フロー記述コードの記載内容に基づいて、ワークフローを形成するノードの特定、ノードごとの遷移関係の特定、選択条件の抽出等を行う。
選択条件情報記憶手段1303では、解析手段1302での静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成し、記憶装置22の選択条件情報記憶部222に記憶する。選択条件情報記憶部222に記憶されるデータ構成は実施の形態1と同様、ノードに対応付けられた遷移先情報及びPSSが記憶されている。
ノード特定手段1304では、選択条件情報記憶部222に記憶されている選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する。実施の形態1でのSDPノード以外であっても、選択条件を具備するか否かによって、その後選択条件情報が変動するか否かを判断することができるからである。
選択条件判定手段1305では、特定されたノードにて選択条件を具備するか否かを判定する。特定されたノード以後に遷移するノードにおいて選択条件の属性は変動しないことから、一度でも選択条件を具備しないと判定された場合、それ以後遷移するノードでは選択条件を具備する可能性がなく、実体化ビューからの削除対象となりうる。
ノード抽出手段1306では、選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを、実体化ビューの削除対象のPSSを含むノードとして抽出する。
削除手段1307では、特定されたノード以後に遷移するノードに対応する問い合わせ結果に関する情報(タプル)を、実体化ビューから削除する。すなわち、抽出された、選択条件を具備していないノード以後に遷移するノードに対応する問い合わせ結果に関する情報は、更新処理が実行された場合であっても実体化ビューにて更新対象となることがない。したがって、実体化ビューから削除することができ、実体化ビューを記憶するのに要する記憶容量を削減することができる。
上述した構成のクライアント(データ処理装置)2の処理手順をフローチャートに基づいて説明する。図14及び図15は、本発明の実施の形態2に係るクライアント2のCPU21の処理手順を示すフローチャートである。図14は、本発明の実施の形態2に係るクライアント2のCPU21の、静的解析により実行時削除判別対象ノードを抽出する処理手順を示すフローチャートであり、図15は、本発明の実施の形態2に係るクライアント2のCPU21の、フローエンジンの実行結果に基づいて関連する実体化ビューの情報を選択的に削除する処理手順を示すフローチャートである。
図14において、クライアント2のCPU21は、ワークフローを構築するフロー記述コードを取得する(ステップS1401)。フロー記述コードは、サーバ1、外部コンピュータ等からネットワーク3を介して取得しても良いし、可搬型ディスクドライブ27を介して取得しても良い。
CPU21は、取得したフロー記述コードを静的に解析し(ステップS1402)、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成し(ステップS1403)、記憶装置22の選択条件情報記憶部222に記憶する(ステップS1404)。CPU21は、実行時削除判別対象ノードを抽出し(ステップS1405)、記憶装置22の選択条件情報記憶部222に記憶する(ステップS1406)。クエリがSQL文である場合には、選択条件はselect文に相当し、選択条件情報は、それぞれの選択条件の属性値を含むwhere句に相当する。ステップS1405におけるノード抽出処理については、図16にて詳細に説明する。
次に図15において、クライアント2のCPU21は、図14のステップS1405で抽出されたノードを選択条件情報記憶部222から読み込み(ステップS1501)、ワークフローを実行する(ステップS1502)。ワークフローの実行はクライアント2で実行することに限定されるものではなく、サーバ1からワークフローの実行結果を受け取っても良い。CPU21は、一のノードを選択し(ステップS1503)、記憶されている選択条件情報に基づいて、該ノードが図14のステップS1405で抽出されたノードであるか否かを判断する(ステップS1504)。
CPU21が、抽出されたノードであると判断した場合(ステップS1504:YES)、CPU21は、選択条件を具備する可能性があるか否かを判断する(ステップS1505)。CPU21が、選択条件を具備しないと判断した場合(ステップS1505:NO)、CPU21は、該ノード以後に遷移するノードを、実体化ビューの削除対象のPSSを含むノードとして抽出し、抽出されたノードに対応する問い合わせ結果に関する情報(タプル)を、実体化ビューから削除する(ステップS1506)。特定されたノード以後に遷移するノードにおいて選択条件の属性は変動しないことから、一度でも選択条件を具備しないと判定された場合、それ以後遷移するノードでは選択条件を具備する可能性がなく、実体化ビューからの削除対象となりうる。
CPU21が、抽出されたノードではないと判断した場合(ステップS1504:NO)、CPU21は、ステップS1505及びステップS1506を、CPU21が、選択条件を具備すると判定した場合(ステップS1505:YES)、CPU21は、ステップS1506を、それぞれスキップし、全てのノードにつき処理が終了したか否かを判断する(ステップS1507)。CPU21が、まだ未処理であるノードが存在すると判断した場合(ステップS1507:NO)、CPU21は、次のノードを選択し(ステップS1508)、処理をステップS1504へ戻し、上述した処理を繰り返す。CPU21が、全てのノードにつき処理が終了したと判断した場合(ステップS1507:YES)、CPU21は、処理を終了する。
図14のステップS1405のノード抽出処理は以下の手順で実行することが好ましい。図16は、本発明の実施の形態2に係るクライアント2のCPU21のノード抽出処理の手順を示すフローチャートである。
クライアント2のCPU21は、ワークフローの上流に位置するノードから順次一のノードを選択する(ステップS1601)。CPU21は、選択されたノードそれぞれについて、該ノードについて、プロセスインスタンスの選択条件の属性が該ノード以後一定か否かを判断する(ステップS1602)。CPU21が、該ノード以後変更される可能性がないと判断した場合(ステップS1602:YES)、CPU21は、該ノードに対応する選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件不備の可能性が有るか否かを判断する(ステップS1603)。
CPU21が、選択条件不備の可能性がある場合、すなわち少なくとも一の選択条件を具備しないと判断した場合(ステップS1603:YES)、CPU21は、選択されたノードを、実体化ビューの削除対象ノードとして抽出する(ステップS1604)。CPU21が、選択されたノード以後変更される可能性があると判断した場合(ステップS1602:NO)、CPU21は、ステップS1603及びステップS1604を、CPU21が、選択条件不備の可能性がないと判断した場合(ステップS1603:NO)、CPU21は、ステップS1604を、それぞれスキップする。CPU21は、全てのノードについて処理が終了したか否かを判断し(ステップS1605)、CPU21が、未処理のノードが存在すると判断した場合(ステップS1605:NO)、CPU21は、次のノードを選択し(ステップS1606)、処理をステップS1602へ戻して、上述した処理を繰り返す。CPU21が、全てのノードについて処理が終了したと判断した場合(ステップS1605:YES)、CPU21は、処理を終了する。
例えば、実施の形態1と同様の保険審査処理のワークフローの場合、記憶装置22の選択条件情報記憶部222に記憶されている選択条件情報を具備する可能性があり、しかも選択条件の属性が該ノード以後変動しないノードをDFE(動的終値評価:Dynamic Final−value Evaluation)ノードとして抽出する。具体的には、選択条件がSQL文で示されている場合には、選択条件の属性値を含む選択条件情報はwhere句に記載される条件となる。該選択条件の属性が該ノード以後のノードで変動しない一定の属性となるか否かを、PSSに基づいてノードごとに判断する。
図17は、保険審査処理のワークフローに対応したPSS及びPSDに、DFEノード及びFixedノードを追加した例示図である。図17の例でも、実施の形態1と同様、選択条件として「ATID=‘A4’&STATE=‘failed’&PTID=‘InsuranceClaim’」が記憶されている。
そして、図17(b)に示すノードごとのPSSから、該ノード以後PSSの条件属性が変動しないノードを特定する。図17(b)の例では、選択条件の条件属性「PTID,ATID、STATE」が以後変動しないノードとして、A6(1)entry、A7(2)entryが、DFEノードとして抽出される。
DFEノード以後に遷移するノード、すなわち図17(b)でのA6(1)exit、A7(1)entry、A7(1)exit、A7(2)exitでは、DFEノードであるA6(1)entry、A7(2)entryにてSTATE=‘failed’となった場合には一切の更新処理が実行されない。すなわち、これらのノードでは、実体化ビューとして記憶していなくても検索処理又は更新処理の問い合わせ結果が変動せず、実体化ビューから削除することができるノードとなる。DFEノードにて一定の選択条件を具備しないと判定された場合の以後遷移するノードをFixedノードとして図17(a)のPSDに記載している。
図17(b)に示す選択条件情報記憶部222に記憶された選択条件情報の例示図では、DFEノードとして抽出されたノードに選択条件STATE=‘failed’を、Fixedノードとして抽出されたノードに‘Fixed’と示すフラグを記憶してある。CPU21は、選択条件情報記憶部222に記憶された選択条件情報のPSSのうち、‘Fixed’と示すフラグが記憶されているPSSに対応する実体化ビューのタプルを削除することにより、実体化ビューを記憶するために要する記憶容量を削減することが可能となる。
以上のように本実施の形態2によれば、DFEノードは、それ以後選択条件の属性が更新されないノードであることから、選択条件を具備していない場合には、以後遷移する全てのノードにおいても選択条件を具備する可能性はない。したがって、抽出されたFixedノードに対応する問い合わせ結果に関する情報は、実体化ビューから削除することができ、実体化ビューを記憶するのに要する記憶容量を削減することができ、リフレッシュ処理によるデータベース本体へのアクセス数を低減することにより、レスポンスの低下を抑制することが可能となる。
上述した実施の形態1及び2は、それぞれ独立して具現化されても良いし、両者を組み合わせても良い。すなわち、記憶されている選択条件情報に基づいて、選択条件を具備する可能性の有無に基づいて実体化ビューから削除可能なPSSを有するノードであるか否かを判断し、条件に該当するノードを実体化ビューから削除可能なPSSを有するノードとして抽出するとともに、選択条件を具備する可能性があるノードであって、プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、特定されたノードにて選択条件を具備するか否かを判定した結果に応じて、実体化ビューから削除することが可能なPSSを有するか否かを判断してFixedノードを抽出することにより、実体化ビューから不要なタプルをより多く削除することができ、実体化ビューを記憶するために要する記憶容量を一層削減することができることは言うまでもない。
図18は、本発明の実施の形態1及び2で開示されている保険審査処理について、両実施の形態に開示されている技術を組み合わせた場合のPSDの例示図である。図18に示すように、SDPノードであるだけでなく、DFEノード以後に遷移するFixedノードについても、選択条件STATE=‘failed’の場合には実体化ビューからの削除対象ノードとなり、実体化ビューを記憶するための記憶容量をより一層削減することが可能となる。
図19は、本発明の実施の形態1及び2を組み合わせた場合の実体化ビューのタプル削減効果を示すシミュレーション図である。図19には、分岐確率b1を横軸、実体化ビューのタプルの削減率Rを縦軸とし、インスタンス数n=1000、fail確率f=0.5、分岐確率b2=b3、b4=0.5、b5=b6と仮定した場合のシミュレーション結果を示している。
図19に示すように、分岐確率b1を0から1の範囲で変化させた場合、b1=0では全てのプロセスインスタンスがSDPノードへ遷移することから、実体化ビューのタプルの削減効果が最大となる。一方、b1=1の場合、SDPノードへ遷移するプロセスインスタンスが存在しないことから、SDPノードによる実体化ビューのタプルの削減効果は0となる。
一方、DFEノードによる実体化ビューのタプルの削減効果は、b1=0で最小、b1=1で最大となるが、DFEノードが存在しない実行パスも存在する。したがって、最大のタプルの削減効果は、STATEの値を決めるfail確率f=0.5に収束する。そのため、SDPノードのタプルの削減効果が0であるb1=1の場合、削減率Rは0.5となる。
また、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内の記載であれば多種の変形、置換等が可能であることは言うまでもない。例えば、上述の実施の形態1及び2では、サーバ1とクライアント2とがデータ通信することが可能に接続されている環境下でのデータ処理について説明しているが、処理フローを定義するフロー記述コードに基づいて生成されるフローエンジンを用いるデータ処理であれば限定されるものではなく、クライアント2がWebビューワのみの構成であり、処理自体はサーバ1単体で実行する構成、すなわちサーバ1がデータ処理装置である構成であっても良い。この場合、実体化ビューを高速アクセス可能な記憶装置に記憶しておくことにより、全体のレスポンス向上に貢献することが可能となる。
本発明の実施の形態1に係るワークフローシステムの構成を示すブロック図である。 本発明の実施の形態1に係るワークフローシステムのクライアントの構成を示すブロック図である。 本発明の実施の形態1に係るクライアントの機能を模式的に示す機能ブロック図である。 選択条件情報記憶部に記憶されるデータ構成の例示図である。 本発明の実施の形態1に係るクライアントのCPUの、静的解析により削除対象ノードを抽出する処理手順を示すフローチャートである。 本発明の実施の形態1に係るクライアントのCPUの、フローエンジンの実行結果に基づいて関連する実体化ビューの情報を選択的に削除する処理手順を示すフローチャートである。 本発明の実施の形態1に係るクライアントのCPUのノード抽出処理の手順を示すフローチャートである。 本実施の形態1に係る保険審査処理のワークフローを模式的に示す例示図である。 本実施の形態1に係る保険審査処理のワークフローにおけるプロセス情報記憶部に記憶されるデータ構成の例示図である。 保険審査処理のワークフローに対応したPSS及びPSDの例示図である。 本発明の実施の形態1に係るクライアントのCPUのPSD生成処理の手順を示すフローチャートである。 保険審査処理のワークフローに対応したPSS及びPSDに、SDPノードを追加した例示図である。 本発明の実施の形態2に係るクライアントの機能を模式的に示す機能ブロック図である。 本発明の実施の形態2に係るクライアントのCPUの、静的解析により実行時削除判別対象ノードを抽出する処理手順を示すフローチャートである。 本発明の実施の形態2に係るクライアントのCPUの、フローエンジンの実行結果に基づいて関連する実体化ビューの情報を選択的に削除する処理手順を示すフローチャートである。 本発明の実施の形態2に係るクライアントのCPUのノード抽出処理の手順を示すフローチャートである。 保険審査処理のワークフローに対応したPSS及びPSDに、DFEノード及びFixedノードを追加した例示図である。 本発明の実施の形態1及び2で開示されている保険審査処理について、両実施の形態に開示されている技術を組み合わせた場合のPSDの例示図である。 本発明の実施の形態1及び2を組み合わせた場合の実体化ビューのタプル削減効果を示すシミュレーション図である。
符号の説明
1 サーバ
2 クライアント
3 ネットワーク
11、21 CPU
12、22 記憶装置
13、23 メモリ
14、24 通信インタフェース
15、25 ビデオインタフェース
16、26 I/Oインタフェース
17、28 内部バス
18、30 表示装置
27 可搬型ディスクドライブ
90 可搬型記録媒体
100 コンピュータプログラム
121 プロセス情報記憶部
221 実体化ビュー記憶部
222 選択条件情報記憶部

Claims (14)

  1. フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、
    ワークフローを構築するフロー記述コードを取得する取得手段と、
    取得したフロー記述コードを静的に解析する解析手段と、
    静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段と、
    該第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段と
    を備えることを特徴とするデータ処理装置。
  2. 前記第一の抽出手段は、
    前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、
    選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段と
    を備え、
    該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出するようにしてあることを特徴とする請求項1記載のデータ処理装置。
  3. フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、
    ワークフローを構築するフロー記述コードを取得する取得手段と、
    取得したフロー記述コードを静的に解析する解析手段と、
    静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、
    特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、
    該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、
    該第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段と
    を備えることを特徴とするデータ処理装置。
  4. フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置において、
    ワークフローを構築するフロー記述コードを取得する取得手段と、
    取得したフロー記述コードを静的に解析する解析手段と、
    静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段と、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段と、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、
    特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、
    該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、
    前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段と
    を備えることを特徴とするデータ処理装置。
  5. 前記第一の抽出手段は、
    前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、
    選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段と
    を備え、
    該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出するようにしてあることを特徴とする請求項4記載のデータ処理装置。
  6. フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有するサーバと、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するクライアントとで構成されるワークフローシステムにおいて、
    前記サーバは、
    ワークフローを構築するフロー記述コードを取得する取得手段と、
    取得したフロー記述コードを静的に解析する解析手段と、
    静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して、前記クライアントとの共有ファイルとして記憶する選択条件情報記憶手段と
    を備え、
    前記クライアントは、
    前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段と、
    選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段と、
    該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する第一の抽出手段と、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段と、
    特定されたノードにて前記選択条件を具備するか否かを判定する判定手段と、
    該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段と、
    前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段と
    を備えることを特徴とするワークフローシステム。
  7. フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、
    ワークフローを構築するフロー記述コードを取得し、
    取得したフロー記述コードを静的に解析し、
    静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出し、
    抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とするデータ処理方法。
  8. フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、
    ワークフローを構築するフロー記述コードを取得し、
    取得したフロー記述コードを静的に解析し、
    静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、
    特定されたノードにて前記選択条件を具備するか否かを判定し、
    前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出し、
    抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とするデータ処理方法。
  9. フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なデータ処理方法において、
    ワークフローを構築するフロー記述コードを取得し、
    取得したフロー記述コードを静的に解析し、
    静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶し、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出し、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定し、
    特定されたノードにて前記選択条件を具備するか否かを判定し、
    前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出し、
    抽出された、選択条件を具備する可能性が無くなるノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除することを特徴とするデータ処理方法。
  10. フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、
    前記データ処理装置を、
    ワークフローを構築するフロー記述コードを取得する取得手段、
    取得したフロー記述コードを静的に解析する解析手段、
    静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段、及び
    該第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段
    として機能させることを特徴とするコンピュータプログラム。
  11. 前記第一の抽出手段を、
    前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段、
    選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段、及び
    該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する手段
    として機能させることを特徴とする請求項10記載のコンピュータプログラム。
  12. フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、
    前記データ処理装置を、
    ワークフローを構築するフロー記述コードを取得する取得手段、
    取得したフロー記述コードを静的に解析する解析手段、
    静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段、
    特定されたノードにて前記選択条件を具備するか否かを判定する判定手段、
    該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段、及び
    該第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段
    として機能させることを特徴とするコンピュータプログラム。
  13. フロー記述コードに基づいてフローエンジンを実行し、プロセスインスタンスの進行状況に関する情報を、ワークフローに含まれるノードごとに記憶したデータベースを有し、事前定義された該データベースに対する問い合わせ結果に関する情報を含む実体化ビューを用いて、前記プロセスインスタンスの進行状況に関する情報を所定の選択条件で検索又は更新するデータ処理装置で実行することが可能なコンピュータプログラムにおいて、
    前記データ処理装置を、
    ワークフローを構築するフロー記述コードを取得する取得手段、
    取得したフロー記述コードを静的に解析する解析手段、
    静的な解析結果に応じて、ノードごとのプロセスインスタンスの選択条件の属性に関する選択条件情報を生成して記憶する選択条件情報記憶手段、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性が無くなるノードを抽出する第一の抽出手段、
    記憶されている前記選択条件情報に基づいて、選択条件を具備する可能性があるノードであって、前記プロセスインスタンスの選択条件の属性が所定のノード以後更新されないノードを特定する特定手段、
    特定されたノードにて前記選択条件を具備するか否かを判定する判定手段、
    該判定手段で前記選択条件を具備しないと判定された場合、特定された該ノード以後に遷移する他のノードを抽出する第二の抽出手段、及び
    前記第一の抽出手段で抽出されたノード及び該ノード以後に遷移するノードに対応する問い合わせ結果に関する情報、並びに前記第二の抽出手段で抽出された他のノードに対応する問い合わせ結果に関する情報を、前記実体化ビューから削除する削除手段
    として機能させることを特徴とするコンピュータプログラム。
  14. 前記第一の抽出手段を、
    前記ワークフローの上流に位置するノードから順次一のノードを選定する選定手段、
    選定されたノードそれぞれについて、選定されたノードに対応する前記選択条件情報に含まれる属性が、検索処理又は更新処理における選択条件をすべて具備するか否かを判断する判断手段、及び
    該判断手段で少なくとも一の選択条件を具備しないと判断した場合、選定されたノードを抽出する手段
    として機能させることを特徴とする請求項13記載のコンピュータプログラム。
JP2008170857A 2008-06-30 2008-06-30 データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム Expired - Fee Related JP5181283B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008170857A JP5181283B2 (ja) 2008-06-30 2008-06-30 データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008170857A JP5181283B2 (ja) 2008-06-30 2008-06-30 データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2010009489A JP2010009489A (ja) 2010-01-14
JP5181283B2 true JP5181283B2 (ja) 2013-04-10

Family

ID=41589865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008170857A Expired - Fee Related JP5181283B2 (ja) 2008-06-30 2008-06-30 データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP5181283B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170717A (zh) * 2017-12-05 2018-06-15 东软集团股份有限公司 数据探索模式的转换方法、装置、存储介质和电子设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183253B2 (en) * 2012-06-27 2015-11-10 Nec Laboratories America, Inc. System for evolutionary analytics
US10216498B2 (en) * 2016-05-13 2019-02-26 Tibco Software Inc. Custom-built process engine with minimal memory and disk resource consumption

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047696A1 (en) * 2004-08-24 2006-03-02 Microsoft Corporation Partially materialized views
JP2006302038A (ja) * 2005-04-21 2006-11-02 Canon Inc ジョブ管理装置、印刷製本システム、制御方法、及びプログラム
JP4380692B2 (ja) * 2006-12-07 2009-12-09 インターナショナル・ビジネス・マシーンズ・コーポレーション サマリーテーブルをリフレッシュするための装置、方法、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170717A (zh) * 2017-12-05 2018-06-15 东软集团股份有限公司 数据探索模式的转换方法、装置、存储介质和电子设备

Also Published As

Publication number Publication date
JP2010009489A (ja) 2010-01-14

Similar Documents

Publication Publication Date Title
US9177021B2 (en) Relational query planning for non-relational data sources
EP3671526B1 (en) Dependency graph based natural language processing
US11232146B2 (en) Searching non-text machine data
CN101925899A (zh) 对文件内容进行分布式索引
US20100318567A1 (en) Use of data patterns for rapid search of complex rules in a rules-based search engine
KR20150031234A (ko) 어플리케이션 검색들을 가능하게 하기 위해 사용되는 검색 인덱스의 업데이트
RU2733482C2 (ru) Способ и система для обновления базы данных поискового индекса
JPWO2011142134A1 (ja) 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造
JP6173848B2 (ja) 文書分類装置
US20050021542A1 (en) Converting object structures for search engines
US20190294976A1 (en) User-centric artificial intelligence knowledge base
US11675769B2 (en) On-demand, dynamic and optimized indexing in natural language processing
US10614632B2 (en) Massive model visualization with a product lifecycle management system
US20070106767A1 (en) Database device database search device, and method thereof
JP5181283B2 (ja) データ処理装置、ワークフローシステム、データ処理方法及びコンピュータプログラム
JP5639417B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP4698618B2 (ja) 関係抽出方法、関係抽出システム
JP5210970B2 (ja) 共通クエリグラフパターン生成方法、共通クエリグラフパターン生成装置及び共通クエリグラフパターン生成プログラム
JP2014235632A (ja) 文書管理システム、文書管理システムの制御方法、及び、プログラム
JP4772368B2 (ja) ビジネスプロセス例外処理生成支援装置およびプログラム
KR20190129474A (ko) 데이터 검색 장치 및 방법
JP2011070406A (ja) 情報検索プログラム、情報検索システム
Margitus et al. RDF versus attributed graphs: The war for the best graph representation
JP2007172223A (ja) リポジトリシステム、リポジトリシステムの管理方法、及びそのプログラム
CN113032518A (zh) 信息处理装置、存储介质及信息处理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110520

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: 20121211

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121226

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees