説明

ワークフローシステムおよびワークフローシステムの管理方法およびプログラムおよび記録媒体

【課題】異なる複数のワークフローに分散されて稼動するワークフローシステムの各ワークフローにおけるデータベース処理の高速化と、各ワークフローの一括管理による保守作業の軽減を実現し、大量の業務を抱える大規模組織におけるワークフローシステムのデータベース処理の高速化と保守作業負荷の軽減を図ること。
【解決手段】サーバ600は、異なる複数のワークフロー(サーブレット1,サーブレット2)に分散された各ワークフロー間で共有するデータベース(組織DB608,ユーザDB609,役割DB611)の内容を、前記各ワークフローでそれぞれキャッシュしておきデータベース処理を高速化しておき、また、サーバ600の管理プログラムは、前記データベースの内容が変更されたとき、当該データベースに関連した各ワークフローのキャッシュをそれぞれリフレッシュする構成を特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異なる複数のワークフローに分散され、前記各ワークフロー間でデータベースを共有するワークフローシステムおよびワークフローシステムの管理方法およびプログラムおよび記録媒体に関する。
【背景技術】
【0002】
電子文書の承認業務の効率を向上させるインフラのひとつとして、ワークフローシステムがある。ワークフローシステムは、ワークフロー、組織、担当者といった対象が相互に依存しあったシステムを構成していることから、これらの対象の中のいずれかを変更しようとすると、他の対象も影響を受けざるおえないような変更を余儀なくされていた。
【0003】
このため、ワークフローのカスタマイズは可能であるとしても、例えば、組織の変更といった対象の変更を行おうとした場合、組織に関連する対象も変更しなくてはならず、関連対象の検索等が複雑化し、簡単には対処できないという問題があった。
【0004】
この問題に対し、特許文献1(特開2000−250967号公報)は、ワークフロー管理機能と実行環境を分散化させることで、この問題を解決させようとした。
【0005】
具体的には、ワークフロー制御サーバは、ワークフローを論理的な業務単位を形成するタスクと、入出力データと処理条件を含んだ階層構造の業務オブジェクトで構成し、この階層構造の各層の業務オブジェクト単位にワークフローの制御及び管理を行おうというものである。
【0006】
組織や人の変更については、例えば、人の変更は、作業者と秘書エージェントの追加・削除を、組織の変更については、秘書エージェントの属性変更で対応する構成となっている。
【特許文献1】特開2000−250967号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、上記特許文献1では、組織・役割といったワークフロー共通のデータについても入出力データを業務オブジェクトに含んでいるため、組織変更等においては、各業務オブジェクトに含まれる組織情報データである秘書エージェントの属性をそれぞれ更新する必要があり、特に大量の業務を抱える大規模組織においては、システム管理者の保守作業負荷増大につながるといった問題があった。
【0008】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、異なる複数のワークフローに分散された各ワークフロー間で共有するデータベースの内容を前記各ワークフローでそれぞれキャッシュし、前記データベースの内容が変更されたとき、当該データベースに関連した各ワークフローのキャッシュをそれぞれリフレッシュすることにより、異なる複数のワークフローに分散されて稼動するワークフローシステムにおいて、各ワークフローにおけるデータベース処理の高速化と各ワークフローの一括管理による保守作業の軽減を実現し、大量の業務を抱える大規模組織におけるワークフローシステムのデータベース処理の高速化と保守作業負荷の軽減を図ることができるワークフローシステムおよびワークフローシステムの管理方法およびプログラムおよび記録媒体を提供することである。
【課題を解決するための手段】
【0009】
本発明は、異なる複数のワークフローに分散されたワークフローシステムにおいて、該ワークフローシステムで用いる情報を管理するデータベースを前記各ワークフロー間で共有する共有手段と、前記データベースの内容を前記各ワークフローでそれぞれキャッシュするキャッシュ手段と、前記データベースの内容が変更されたとき、当該データベースに関連した各ワークフローのキャッシュをそれぞれリフレッシュするリフレッシュ手段とを有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、異なる複数のワークフローに分散された各ワークフロー間で共有するデータベースの内容を前記各ワークフローでそれぞれキャッシュし、前記データベースの内容が変更されたとき、当該データベースに関連した各ワークフローのキャッシュをそれぞれリフレッシュすることにより、異なる複数のワークフローに分散されて稼動するワークフローシステムにおいて、各ワークフローにおけるデータベース処理の高速化と、データベースの変更時にも各ワークフローをリブートすることなく各ワークフロー間のキャッシュの一貫性を保証することができる等の効果を奏する。
【0011】
従って、各ワークフローの一括管理を実現し、大量の業務を抱える大規模組織におけるワークフローシステムのデータベース処理の高速化と保守作業負荷の軽減を両立することができる。
【0012】
例えば、人事関連,総務関連といったカテゴリごとに伝票情報,経路情報を管理者の管理負担を増大させることなく、また、データベース処理効率を落とすことなく、独立して運用管理できるとともに、組織情報,役割情報については共通情報として一括管理が可能となる。これにより、分散ワークフローの各サブシステムにおける電子文書を含めた開発の効率の向上,システム管理者の運用効率の向上を実現できる。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して、本発明の詳細を説明する。
【0014】
図1は、本実施形態が適用されるワークフローシステムの概略構成を示す図である。
【0015】
本実施形態におけるワークフローシステムは、ワークフロー及び伝票設計用コンピュータ端末(ワークフロー及び伝票設計用端末)400、業務を遂行する処理者(担当者)に対応して設けられたワークフロー操作用コンピュータ端末(ワークフロー操作用端末)300、ワークフローを実行するための各種テーブル,各種プログラムを格納するワークフローサーバ200を備えている。
【0016】
これらワークフロー及び伝票設計用端末400,ワークフロー操作用端末300,ワークフローサーバ200は、それぞれネットワーク500に接続され運用されている。
【0017】
ワークフロー及び伝票設計用端末400は、伝票デザイナプログラム401及びシステム管理プログラム402を有し、ワークフローサーバ200上の図示しない管理プログラムと通信して、ワークフローシステムにて使用する伝票の定義体の作成及びワークフローシステムで利用する各種定義情報の作成を行う。例えば、ワークフロー及び伝票設計用端末400は、ワークフローサーバ200に組織テーブル,役割テーブル,ユーザテーブル,ユーザ役割テーブル,配送定義情報,各種伝票情報等を登録することができる。このワークフロー及び伝票設計用端末400は、これらの作業を行うために、自己の識別情報を入力することによりワークフローサーバ200に接続することが可能になる。
【0018】
ワークフロー操作用端末300は、ワークフロー操作用端末300上で実行されるWebブラウザ301を用いて、伝票に関するアクセス情報をワークフローサーバ200に対してHTTPで送信し、その結果を受信するものであり、その際に、発生する表示・計算処理は、Java(登録商標)アプレット302等を利用することにより実行する。なお、このワークフロー操作用端末300は、予め指定された所定の業務を行う担当者(例えば、起票者、課長、部長等)に配置されている。
【0019】
ワークフローサーバ200は、ワークフローシステムに関する情報(組織テーブル,役割テーブル,ユーザテーブル,ユーザ役割テーブル,配送定義情報,配送情報テーブル等)を格納するRDBMS(Relational DataBaSe Management SyStem)205、ワークフロー操作用コンピュータ端末よりの要求を受け付けて要求を実行するためのWEBサーバ201,サーブレットエンジン202,ワークフロープログラム203、ワークフロー通知機能を実現するSMTPサーバ204にて構成されている。
【0020】
なお、ワークフロー操作用端末300は、ワークフローサーバ200に対して、伝票検索要求を送信し、ワークフローサーバ200から返信される検索結果に基づいて、外部DBに格納された決裁済みの伝票(電子文書)を閲覧可能である。
【0021】
以下、図2を参照して、図1に示したワークフローサーバ200,ワークフロー操作用端末300,ワークフロー及び伝票設計用端末400に適用可能なコンピュータのハードウェア構成について説明する。
【0022】
図2は、図1に示したワークフローサーバ200,ワークフロー操作用端末300,ワークフロー及び伝票設計用端末400に適用可能なコンピュータのハードウェア構成の一例を示すブロック図である。
【0023】
図2において、101はCPUで、ROM103又はハードディスク(HD)(その他の記憶装置、例えば、フレキシブルディスク,CD−ROM,DVD−ROM等どのような記憶装置であってもよい)104に格納されたプログラムをRAM102上にロードして実行することにより、コンピュータ全体を制御する。RAM102は、CPU101の作業領域として使用される。
【0024】
107は通信インタフェースで、ネットワーク500への接続を可能とする。105は入力装置で、キーボードやマウス等のポインティングデバイス等に相当する。106は表示装置で、CRT,LCD等で構成される。
【0025】
なお、図1に示したワークフローサーバ200のRDBMS205は、ワークフローサーバ200のHD104内に構築されている。また、ワークフローサーバ200のWEBサーバ201,サーブレットエンジン202,ワークフロープログラム203,SMTPサーバ204は、ワークフローサーバ200のCPU101が、HD104に格納されるプログラムをRAM102上にロードして実行することにより、実現される。
【0026】
また、図1に示したワークフロー操作用端末300のWebブラウザ301は、ワークフロー操作用端末300のCPU101が、HD104に格納されるプログラムをRAM102上にロードして実行することにより、実現される。
【0027】
さらに、図1に示したワークフロー操作用端末300のJava(登録商標)アプレット302は、ワークフロー操作用端末300のCPU101が、ワークフローサーバ200よりダウンロードされたプログラムをWebブラウザ301上で実行することにより、実現される。
【0028】
また、図1に示したワークフロー及び伝票設計用端末400の伝票デザイナプログラム401,システム管理プログラム402は、ワークフロー及び伝票設計用端末400のCPU101が、HD104に格納されるプログラムをRAM102上にロードして実行することにより、実現される。
【0029】
図3は、図1に示したワークフローシステムにおける伝票の流れを示す模式図である。
【0030】
本実施形態のワークフローシステムでは、ワークフロー操作用端末300を用いて、図3に示すように、伝票の起票,伝票の承認/否認の手続きを、ノードと呼ばれる組織と役割で定義された担当者が行う。なお、伝票が配送されるノードをひとつに括ったものをビジネスプロセスと定義する。
【0031】
図4は、図1に示したワークフローサーバ200のRDBMS205に記憶される組織テーブルのデータ構造の一例を示すデータ構成図である。なお、この組織テーブルは、ワークフローを実現するための組織に関する情報を記憶するためのものである。
【0032】
図4に示す組織テーブルにおいて、組織IDは、任意の組織名をコードとして表記したものであり、常に上位組織IDを網羅している。また、組織名は、組織IDの表示上の名称を示したものである。さらに、親組織IDは、上位の組織IDを示したものである。
【0033】
図5は、図1に示したワークフローサーバ200のRDBMS205に記憶される役割テーブルのデータ構造の一例を示すデータ構成図である。なお、この役割テーブルは、ワークフローを実現するための役割に関する情報を記憶するためのものである。
【0034】
図5に示す役割テーブルにおいて、役割IDは、任意の役割名をコードとして表記したものである。また、役割名は、役割IDの表示上の名称を示したものである。
【0035】
図6は、図1に示したワークフローサーバ200のRDBMS205に記憶されるユーザテーブルのデータ構造の一例を示すデータ構成図である。なお、このユーザテーブルは、ワークフローを利用するためのユーザの情報を記憶するためのものである。
【0036】
図6に示すユーザテーブルにおいて、ユーザIDは、利用者を任意のコードとして表示したものである。また、パスワードは、ワークフローシステムにログインする際にユーザIDと共に認証に利用するためのものである。さらに、ユーザ名は、ユーザIDの表示上の名称を示したものである。
【0037】
図7は、図1に示したワークフローサーバ200のRDBMS205に記憶される役職テーブルのデータ構造の一例を示すデータ構成図である。なお、この役職テーブルは、ワークフローを利用するための役職の情報を記憶するためのものである。
【0038】
図7に示すように、役職テーブルの各レコードは、ユーザテーブル内で定義されている「ユーザID」,役割テーブル内で定義されている「役割ID」,組織テーブル内で定義されている「組織ID」で構成されている。
【0039】
図8は、図1に示したワークフローサーバ200のRDBMS205に記憶される配送定義情報のデータ構造の一例を示すデータ構成図である。なお、この配送定義情報は、伝票が配送される経路を定義した情報を記憶するためのものである。
【0040】
ここでは、一例として役割が「社員」→「部長」→「本部長」→「事業本部長」→「社長」の順に伝票配送をする例を示している。このように伝票の配送経路を定義した場合、この配送経路の配送定義情報は、図8に示すような5レコードの情報として作成される。
【0041】
以下、配送定義情報の作成方法について説明する。
【0042】
例えば、伝票名が「交通費」の場合、まず、ユーザがワークフロー及び伝票設計用端末400から、システム管理プログラムを用いて、伝票名に「交通費」と設定し、次に、各ノードを設定する。ノード1を例にすると、ノード1に役割IDに部長を示すコード「U0007」を設定し、対象となる組織を選択(ここでは組織ID「80」の「A会社」を選択)することにより、「伝票名」が「交通費」,「組織ID」が「80」,「ノード番号」が「1」,「経路役割ID」が「部長」を示す役割ID「004」、「経路組織ID」が役割を担う組織IDとして設定される。なお、ここでは、対象となる組織として、組織ID「80」の「A会社」が選択されており、役割ID「部長」を持つ配送対象者は決定されない。そのため、経路組織IDは「NULL」となっている(図中では空白で示している)。
【0043】
図9は、図1に示したワークフローサーバ200のRDBMS205に記憶される配送情報テーブルのデータ構造の一例を示すデータ構成図である。なお、この配送情報テーブルは、後述する図10に示すワークフローシステムにおける配送処理時に図8に示した配送定義情報に基づいて生成されるものであり、ワークフローの経路,状態等を記憶するためのものである。また、この配送情報テーブルは、特に、ユーザID「U0012」のユーザが起票した場合に対応する。この場合、伝票は、ユーザID「U0012」,「U0007」,「U0003」,「U0002」,「U0001」のように配送されることとなる。
【0044】
以下、図10を参照して、本発明のワークフローシステムにおける配送処理手順の全体の流れについて説明する。
【0045】
図10は、本発明のワークフローシステムにおける第1の制御処理手順の一例を示すフローチャートであり、図1に示したワークフローサーバ200のワークフロープログラム203による配送処理に対応する。なお、図中、S5000〜S5013は各ステップを示す。
【0046】
まず、ワークフロープログラム203を実行するワークフローサーバ200のCPU(以下、ワークフローサーバ200のCPU)が、ワークフロー操作用端末300より伝票処理要求を受信すると(ステップS5000)、配送処理を開始する。
【0047】
ワークフローサーバ200のCPUは、ステップS5000で受信した伝票処理要求の要求区分である「起票」,「承認」,「否認」に基づいて、配送処理を切り替えていく(ステップS5001)。
【0048】
ステップS5001において、ワークフローサーバ200のCPUが、ステップS5000で受信した伝票処理要求の要求区分が「起票」であると判定した場合には、ステップS5002において、ワークフローサーバ200のCPUは、起票時の情報として、ノード番号「0」を配送情報テーブルに設定する。「処理ユーザ」には、起票したユーザのユーザIDを設定する。
【0049】
例えば、図8に示した配送定義情報に基づく伝票が起票された場合、図8に示したように、配送情報テーブルのノード番号「0」のレコードに、伝票名に「交通費」、伝票番号を起票時に発行される伝票番号(ここでは「00001」とする)、ノード番号に「0」、処理ユーザを起票ユーザのユーザID「U0012」、状態に「処理済」を設定する。
【0050】
次に、ステップS5003において、ワークフローサーバ200のCPUは、現在のノード番号を「1」とし、ステップS5000で受信した伝票処理要求の伝票名に対応する配送定義情報(図8)を参照し、ノード番号「1」の情報(経路役割ID,経路組織ID)を取得し、ステップS5008に進む。
【0051】
例えば、図8に示した配送定義情報に基づく伝票が起票された場合、経路役割ID「004」,経路組織ID「NULL」を取得する。
【0052】
一方、ステップS5001で、ワークフローサーバ200のCPUが、ステップS5000で受信した伝票処理要求の要求区分が「承認」又は「否認」であると判定した場合には、ステップS5004において、ワークフローサーバ200のCPUは、配送情報テーブル(図9)を参照して現在のノード番号を取得する。
【0053】
次に、ステップS5005において、ワークフローサーバ200のCPUは、ステップS5000で受信した伝票処理要求の要求区分が「承認」であるか「否認」であるかを判定し、「否認」であると判定した場合には、ステップS5007において、ステップS5004で取得した現在のノード番号をデクリメントした後、該デクリメントした現在のノード番号を持つ配送定義情報(図9)を参照し、該現在のノード番号の情報(経路役割ID,経路組織ID)を取得し、ステップS5008に進む。
【0054】
一方、ステップS5005で、ワークフローサーバ200のCPUが、ステップS5000で受信した伝票処理要求の要求区分が「承認」であると判定した場合には、ステップS5006において、ステップS5004で取得した現在のノード番号をインクリメントした後、該インクリメントした現在のノード番号を持つ配送定義情報(図8)を参照し、該現在のノード番号の情報(経路役割ID,経路組織ID)を取得し、ステップS5008に進む。
【0055】
そして、ステップS5008において、ワークフローサーバ200のCPUは、ステップS5003、S5006、又はS5007で取得した経路役割ID,経路組織IDを用いて、ユーザ役職情報(図7)を参照して次の配送対象ユーザIDを決定する(役職テーブル(図7)から役割IDが経路役割IDで、組織IDが経路組織IDのユーザIDを決定する)。なお、取得した経路組織IDが「NULL」の場合(図8の空白の場合)には、現在のノード番号より1つ小さいノード番号に対応するユーザIDの属する組織IDを「経路組織ID」として次の配送対象ユーザIDを決定するものとする。さらに、これでも次の配送対象ユーザIDを決定することができない場合(ユーザ役職情報(図7)に、役割IDが経路役割IDで、組織IDが経路組織IDのレコードが存在しない場合)には、該組織IDの親組織IDを「経路組織ID」として次の配送対象ユーザIDを決定するものとし、次の配送対象ユーザIDが決定するまでこの処理を繰り返すものとする。
【0056】
例えば、図8に示した配送定義情報に基づく伝票が起票された場合、図9に示したように、ステップS5003で、ノード番号「1」の経路役割ID「004」,経路組織ID「NULL」が取得され、該取得された経路役割ID「004」,経路組織ID「NULL」に基づいて配送対象となるユーザIDが決定される。ここで、取得した経路組織IDが「NULL」であるため、現在のノード番号「1」より1つ小さいノード番号「0」に対応するユーザID「U0012」の属する組織ID「8010101010」を「経路組織ID」として次の配送対象ユーザIDを決定する。このとき、ユーザ役職情報(図7)に、役割ID「004」で、組織ID「8010101010」のレコードが存在しないため、組織ID「8010101010」の親組織ID「80101010」を「経路組織ID」として次の配送対象ユーザIDを決定する。ここで、ユーザ役職情報(図7)を参照すると、役割ID「004」で、組織ID「8010101010」のユーザIDは「U0007」となり、このユーザID「U0007」が次の配送対象ユーザIDに決定される。
【0057】
次に、ステップS5009において、ワークフローサーバ200のCPUは、ステップS5000で受信した伝票処理要求が最終承認者からのものであるか否かを判定する。
【0058】
ステップS5009で、ワークフローサーバ200のCPUが、ステップS5000で受信した伝票処理要求が最終承認者からのものであると判定した場合には、ステップS5010において、配送情報テーブル(図9)から当該配送情報を削除するとともに、SMTPサーバ204により起票者に全て承認された旨のワークフロー通知を行い、処理を終了する。
【0059】
一方、ステップS5009で、ワークフローサーバ200のCPUが、ステップS5000で受信した伝票処理要求が最終承認者からのものでないと判定した場合には、ステップS5011において、ワークフローサーバ200のCPUは、ステップS5000で受信した伝票処理要求の要求区分が「承認」又は「起票」であるか「否認」であるかを判定し、「否認」であると判定した場合には、ステップS5013において、配送情報テーブル(図9)から上記現在ノード番号を削除するとともに、SMTPサーバ204により配送対象者に否認された旨のワークフロー通知を行い、処理を終了する。
【0060】
一方、ステップS5011で、ワークフローサーバ200のCPUが、ステップS5000で受信した伝票処理要求の要求区分が「承認」又は「起票」であると判定した場合には、ステップS5012において、配送情報テーブル(図9)に次のノード番号の情報を設定(この時、「処理ユーザ」には、ステップS5009で決定された次の配送対象ユーザIDを設定)するとともに、SMTPサーバ204により配送対象者にワークフロー通知を行い、処理を終了する。
【0061】
以下、図11〜図14を用いて本実施形態における分散ワークフローについて説明する。
【0062】
図11は、本発明のワークフローシステムの運用環境の一例を示すシステム構成図である。
【0063】
図11において、600はサーバで、図1に示したワークフローサーバ200に対応する。また、620はクライアントで、図1に示したワークフロー及び伝票設計用端末400等に対応する。
【0064】
サーバ600は、Webサーバ601と複数のアプリケーションサーバ602,603で構成されている。アプリケーションサーバ1(602),アプリケーションサーバ2(603)は、サブシステムごとに起動がかけられ、ワークフローシステムのサーブレット1(604),サーブレット2(605)をそれぞれ別プロセスとして運用する。このように、本発明のワークフローシステムは、異なる複数のエンティティ(サーブレット)に分散されたワークフローシステムである。
【0065】
アプリケーションサーバ1(602),アプリケーションサーバ2(603)は、データベースインスタンス1(606),データベースインスタンス2(607)をサーバ600のメモリ上にそれぞれ生成する
なお、アプリケーションサーバ1(602)は、組織DB608,ユーザDB609,経路DB610,役割DB611,伝票DB612の各テーブルを有するDBインスタンス1(606)を生成する。また、アプリケーションサーバ2(603)はアプリケーションサーバ1(602)と同様のテーブルを有するDBインスタンス2(607)をそれぞれ生成する。
【0066】
本実施形態のシステム構成では、DBインスタンス1(606)の組織DB(608)とユーザDB(609)と役割DB(611)を本システムにおける共通データベースとして設定している。
【0067】
サーブレット1(604)は、デフォルトの情報テーブルであるDBインスタンス1(606)にアクセスする。
【0068】
サーブレット2(605)は、ユーザDB(609)と組織DB(608)と役割DB(611)については共通データベースであるDBインスタンス1(606)をアクセスし、経路DB(615)、伝票DB(613)についてはデフォルトのDBインスタンス2(607)にアクセスする。なお、各サーブレットがアクセスするDBの情報は、サーバ600のHD等に記憶されている管理テーブルで記憶管理されている。
【0069】
このように、本発明のシステムでは、ワークフローシステムで接続するデータベースの接続先をサブシステム(サーブレット)単位で指定可能とし、ワークフローシステムのシステム情報(組織情報,ユーザ情報,役割情報,伝票情報等)を、サブシステム間で部分共有可能としている。
【0070】
なお、各アプリケーションサーバは、データベースへの接続のためのメモリキャッシュであるコネクションプーリングをサーバ600のメモリ上にそれぞれ作成する。このコネクションプーリングにより、各アプリケーションサーバは、アプリケーション層で事前にデータベースへのコネクションを確保しておき、接続時の負荷を軽減している。また、各アプリケーションサーバは、データソースをサーバ600上で起動されているネーミングサービス等に登録して、データベースの情報をサーバ600のメモリ上にキャッシュする。このようにデータベースの処理を高速化している。
【0071】
なお、アプリケーションサーバ1(602)とアプリケーションサーバ2(603)の切り替えは、クライアント620からアクセスするURLの切り替えにより実現される。
【0072】
図12は、本発明のワークフローシステムで運用されるワークフローサーバ600の監視画面の一例を示す模式図である。なお、この監視画面は、クライアント620からサーバ600にシステム管理者としてログインし、この監視画面を要求することにより、サーバ600上で動作する管理プログラムから返信され、クライアント620のシステム管理プログラム402(図1)(Webブラウザ上等であってもよい)に表示される。
【0073】
図12において、700は監視画面であり、この監視画面700は、サーバ情報の一覧表示701と、データベースの接続情報一覧702とで構成されている。
【0074】
サーバ情報一覧701は、ホスト名703と、サブシステムごとに起動をかけられたサーブレットの情報704の一覧を表示する。サーブレットの情報704は、サーブレット・パスを表示する。
【0075】
なお、ここで示した例では、2つのサーバを生成し、ホスト名はともに"CAT"(705,706)、サーブレット名称はサーブレットパスよりWebJ(707)とWebC(708)であることがわかる。
【0076】
なお、サーバ一覧701のラジオボタン719の切り替えにより、DB接続情報一覧702の表示が切り替わる。
【0077】
DB接続情報一覧702は、組織DB,役割DB,経路DB,ユーザDBの各テーブル(組織テーブル709,役割テーブル710,経路テーブル711,ユーザテーブル712)へのログイン情報を表示する。なお、これらの情報は、サーバ600のHD等に記憶されている管理テーブルで記憶管理されている。
【0078】
ログイン情報は、データベースへのログインID,パスワード,ホスト名,サーバ名称で構成される。
【0079】
例えば、組織テーブル709のログイン情報713は、ログインIDが"Ringi"、パスワードが"kannon"、ホスト名が"cat"、サーバ名称が"webj"であり、それらを連結させてログイン情報"Ringi/kannon/cat/webj"としている。
【0080】
また、714はサーバ追加ボタンで、サーバ一覧701にサーバを追加するためのものである。このサーバ追加ボタン714をクライアント620の入力装置で押下指示すると、クライアント620からその旨の通知がサーバ600に送信される。この通知を受信したサーバ600では、サーバ一覧701の現在選択中のサーバの後に、新たなサーバ情報を追加制御する。図12に示した例では、新たなサーバが、サーバ708の後に追加されることとなる。
【0081】
715はサーバ修正ボタンで、サーバ一覧701のラジオボタン719で選択されているサーバ情報を変更するためのものである。このサーバ修正ボタン715をクライアント620の入力装置で押下指示すると、クライアント620からその旨の通知がサーバ600に送信される。この通知を受信したサーバ600では、サーバ一覧701のラジオボタン719で選択されているサーバ情報を変更制御する。
【0082】
716はサーバ削除ボタンで、サーバ一覧701のラジオボタン719で選択されているサーバ情報を削除するためのものである。このサーバ削除ボタン716をクライアント620の入力装置で押下指示すると、クライアント620からその旨の通知がサーバ600に送信される。この通知を受信したサーバ600では、サーバ一覧701のラジオボタン719で選択されているサーバ情報を削除制御する。
【0083】
717はDB接続変更ボタンで、現在選択されているサーブレットに接続されているデータベース709〜712のログイン情報を変更するためのものである。このDB接続変更ボタン717をクライアント620の入力装置で押下指示すると、クライアント620からその旨の通知がサーバ600に送信される。この通知を受信したサーバ600では、現在選択されているサーブレットに接続されているデータベース709〜712のログイン情報を変更制御する。
【0084】
718はテーブル内容変更ボタンで、現在選択されているサーバに接続されている組織テーブル709,役割テーブル710,経路テーブル711,ユーザテーブル712の各テーブルの内容を変更するためのものである。このテーブル内容変更ボタン718をクライアント620の入力装置で押下指示すると、クライアント620からその旨の通知がサーバ600に送信される。この通知を受信したサーバ600では、現在選択されているサーバに接続されている組織テーブル709,役割テーブル710,経路テーブル711,ユーザテーブル712の各テーブルの内容を変更制御する。
【0085】
なお、複数のサーブレットがアクセスすることを許可した共有データベース、例えば、組織テーブル709の内容変更を、WebJ(サーブレット1)を選択した状態で行った場合、通常、WebJ(サーブレット1)に割り当てられた組織テーブルのキャッシュは最新のものとなるが、WebC(サーブレット2)に割り当てられた組織テーブルのキャッシュは旧情報のままである。
【0086】
即ち、共有データベースの内容変更に対し、各サーブレットに割り当てられた当該データベースに対するキャッシュの内容がサーブレット間で不一致となり、キャッシュの一貫性が問題となる。この問題に対して、従来では、アプリケーションサーバを再起動して、各サーブレットに割り当てられた当該データベースに対するキャッシュの内容をサーブレット間で一致させるようにしていた。
【0087】
本発明のワークフローシステムでは、共有データベース、例えば組織テーブル709の内容を変更した場合は、サーバ600のCPUが、変更時の選択サーブレットに割り当てられたキャッシュのリフレッシュのみならず、当該テーブルをキャッシュしている全てのサーブレットのキャッシュをリフレッシュするように制御している。
【0088】
以下、図13,図14のフローチャートを参照して、本発明のワークフローシステムにおけるデータベーステーブル内容変更時のキャッシュリフレッシュ処理について説明する。
【0089】
図13は、本発明のワークフローシステムにおける第2の制御処理手順の一例を示すフローチャートであり、データベーステーブル内容変更時のキャッシュリフレッシュ処理のメイン処理に対応する。なお、このフローチャートの処理は、図11に示したサーバ600のCPUがHD又はその他の記録媒体に格納されたプログラム(管理プログラム)をRAMにロードして実行することにより実現されるものである。また、S801〜S803は各ステップを示す。
【0090】
まず、サーバ600のCPUは、クライアント620から図12に示したテーブル内容変更ボタン718がクライアント620の入力装置で押下指示されたことを示す通知を受信すると、本フローチャートの処理を開始する。
【0091】
ステップS801において、サーバ600のCPUは、変更入力処理により、クライアント620からのテーブル内容の変更情報の入力を待機し、クライアント620からのテーブル内容の変更入力情報を受信すると、ステップS802において、ステップS801で入力された変更内容を、サーバ600のHD等に構築されている当該テーブルに書き込みテーブル内容を変更する。
【0092】
そして、テーブルの内容が変更された後、ステップS803において、サーバ600のCPUは、各サーブレットに割り当てられている当該テーブルの全てのキャッシュをリフレッシュするキャッシュリフレッシュ処理を行い(詳細は図14に示す)、本フローチャートの処理を終了する。
【0093】
図14は、本発明のワークフローシステムにおける第3の制御処理手順の一例を示すフローチャートであり、図13のステップS803に示したキャッシュリフレッシュ処理に対応する。なお、このフローチャートの処理は、図11に示したサーバ600のCPUがHD又はその他の記録媒体に格納されたプログラムをRAMにロードして実行することにより実現されるものである。また、S901〜S906は各ステップを示す。
【0094】
ステップS901において、サーバ600のCPUは、図13のステップS802で内容変更したテーブル(当該テーブル)に接続されているサーブレット名称を1つ取得する。
【0095】
次に、ステップS902において、サーバ600のCPUは、ステップS901で取得したサーブレット(当該サーブレット)の当該テーブルへのDBログイン情報(例えば、図12の713)を、サーバ600のHD等に記憶されている管理テーブルから取得する。
【0096】
次に、ステップS903において、サーバ600のCPUは、当該サーブレットのキャッシュメモリをサーバ600のメモリ上から解放する。
【0097】
次に、ステップS904において、サーバ600のCPUは、当該テーブルに接続するためのメモリキャッシュであるコネクションプーリングをサーバ600のメモリ上に作成する。さらに、サーバ600のCPUは、当該テーブルのデータソースをサーバ600上で起動されているネーミングサービス等に登録して、当該テーブルの情報をサーバ600のメモリ上にキャッシュし、キャッシュリフレッシュを完了する。
【0098】
次に、ステップS905において、サーバ600のCPUは、再び、当該テーブルに接続しているサーブレット名称(未処理のもの)の取得を試みる。そして、ステップS906において、サーバ600のCPUは、ステップS905でサーブレットが取得できたか否かを判定し、取得できた(まだキャッシュリフレッシュしていないサーブレットがあった)と判断した場合には、ステップS902に処理を戻し、次のサーブレットに対する処理を行う。
【0099】
一方、ステップS906で、サーバ600のCPUが、ステップS905でサーブレットの取得ができなかった(もうキャッシュリフレッシュしていないサーブレットがなかった)と判断した場合には、本フローチャートの処理を終了する。即ち、当該テーブルに接続された全てのサーブレットについてキャッシュリフレッシュが完了するまでステップS902〜S905の処理を繰り返す。これにより、運用環境であるシステム情報(各テーブル)の更新時、アプリケーションサーバの再起動によるキャッシュリフレッシュではなく、各サーブレットの個別のキャッシュリフレッシュすることを可能にした。
【0100】
以上示したように、ワークフローシステムのシステム情報(組織情報,ユーザ情報,役割情報,伝票情報等)を、サブシステム(サーブレット)間で部分共有可能とするため、ワークフローシステムで接続するデータベース(組織情報,ユーザ情報,役割情報,伝票情報等を格納)の接続先をサブシステム単位で指定可能とし(管理テーブルで管理)、運用環境であるシステム情報の更新時、アプリケーションサーバの再起動によるキャッシュリフレッシュではなく、各ワークフローサーバ(各サーブレット)の個別のキャッシュリフレッシュを可能にした。
【0101】
このように、複数アプリケーションサーバ,複数ワークフローの一括管理機能を実現したことで、例えば、人事関連,総務関連といったカテゴリごとに伝票情報,経路情報を独立して運用管理できるとともに、組織情報,役割情報等については共通情報として一括管理することを可能とした。これにより、各サブシステムにおける電子文書を含めた開発の効率向上、システム管理者の運用効率の向上を実現することができる。
【0102】
従って、大量の業務を抱える大規模組織におけるワークフローシステムの保守作業負荷の軽減を図ることができる。
【0103】
なお、上記実施形態内で示した各変形例のいずれか又は全てを組み合わせた構成も全て本発明に含まれるものである。
【0104】
また、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0105】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0106】
以下、図15に示すメモリマップを参照して本発明に係るワークフローシステムを構成する各情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【0107】
図15は、本発明に係るワークフローシステムを構成する各情報処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【0108】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0109】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0110】
本実施形態における図10,図13,図14に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0111】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0112】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0113】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
【0114】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0115】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0116】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0117】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【図面の簡単な説明】
【0118】
【図1】本実施形態が適用されるワークフローシステムの概略構成を示す図である。
【図2】図1に示したワークフローサーバ,ワークフロー操作用端末,ワークフロー及び伝票設計用端末に適用可能なコンピュータのハードウェア構成の一例を示すブロック図である。
【図3】図1に示したワークフローシステムにおける伝票の流れを示す模式図である。
【図4】図1に示したワークフローサーバのRDBMSに記憶される組織テーブルのデータ構造の一例を示すデータ構成図である。
【図5】図1に示したワークフローサーバのRDBMSに記憶される役割テーブルのデータ構造の一例を示すデータ構成図である。
【図6】図1に示したワークフローサーバのRDBMSに記憶されるユーザテーブルのデータ構造の一例を示すデータ構成図である。
【図7】図1に示したワークフローサーバのRDBMSに記憶される役職テーブルのデータ構造の一例を示すデータ構成図である。
【図8】図1に示したワークフローサーバのRDBMSに記憶される配送定義情報のデータ構造の一例を示すデータ構成図である。
【図9】図1に示したワークフローサーバのRDBMSに記憶される配送情報テーブルのデータ構造の一例を示すデータ構成図である。
【図10】本発明のワークフローシステムにおける第1の制御処理手順の一例を示すフローチャートである。
【図11】本発明のワークフローシステムの運用環境の一例を示すシステム構成図である。
【図12】本発明のワークフローシステムで運用されるワークフローサーバの監視画面の一例を示す模式図である。
【図13】本発明のワークフローシステムにおける第2の制御処理手順の一例を示すフローチャートである。
【図14】本発明のワークフローシステムにおける第3の制御処理手順の一例を示すフローチャートである。
【図15】本発明に係るワークフローシステムを構成する各情報処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
【符号の説明】
【0119】
600 サーバ
601 Webサーバ
602 アプリケーションサーバ1
603 アプリケーションサーバ2
604 ワークフローシステムサーブレット1
605 ワークフローシステムサーブレット2
606 DBインスタンス1
607 DBインスタンス2
620 クライアント

【特許請求の範囲】
【請求項1】
異なる複数のワークフローに分散されたワークフローシステムにおいて、
該ワークフローシステムで用いる情報を管理するデータベースを前記各ワークフロー間で共有する共有手段と、
前記データベースの内容を前記各ワークフローでそれぞれキャッシュするキャッシュ手段と、
前記データベースの内容が変更されたとき、当該データベースに関連した各ワークフローのキャッシュをそれぞれリフレッシュするリフレッシュ手段と、
を有することを特徴とするワークフローシステム。
【請求項2】
異なる複数のワークフローに分散され、前記各ワークフロー間でデータベースを共有するワークフローシステムの管理方法において、
前記データベースの内容を前記各ワークフローでそれぞれキャッシュするキャッシュステップと、
前記データベースの内容が変更されたとき、当該データベースに関連した各ワークフローのキャッシュをそれぞれリフレッシュするリフレッシュステップと、
を有することを特徴とするワークフローシステムの管理方法。
【請求項3】
請求項2に記載されたワークフローシステムの管理方法をコンピュータが実行するためのプログラム。
【請求項4】
請求項2に記載されたワークフローシステムの管理方法をコンピュータが実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2006−185117(P2006−185117A)
【公開日】平成18年7月13日(2006.7.13)
【国際特許分類】
【出願番号】特願2004−377279(P2004−377279)
【出願日】平成16年12月27日(2004.12.27)
【出願人】(301015956)キヤノンソフトウェア株式会社 (364)
【Fターム(参考)】