(57)【要約】【課題】ワークフロー処理システムにおいてワークフローの変更を行う際に，システムを停止することなく，かつ利用者が別のワークフローとして新たに接続先を変更しなくてもよいようにする。【解決手段】ワークフローの実行開始要求に対して，セッション管理部１２は，そのワークフローを管理するためのセッションＩＤを割り当て，ワークフロー名とセッションＩＤと実行開始要求時点のワークフロー定義情報１１１の最新の版情報とをセッション管理情報１３として管理する。セッションＩＤを指定したセッション作動要求に対しては，セッション管理部１２は，コンテキスト１６が管理する進捗状況に応じて，セッションＩＤに対応する版のワークフローの定義情報１１１から生成された中間コード１８２を実行部１７に実行させ，同時に複数の版のワークフローが併存できるようにする。【選択図】図１
2005092544.tif 000002
【特許請求の範囲】
【請求項１】
一連の作業の流れを定義したワークフロー定義情報を記憶する定義情報記憶手段を持ち，計算機によって前記ワークフロー定義情報に従いワークフローを処理するワークフロー処理システムにおけるワークフロー世代管理処理方法であって，
前記計算機が，ワークフローの実行開始要求に対して，一つの動作するワークフローを識別するセッションＩＤを割り当てるステップと，
前記計算機が，要求されたワークフローを定義したワークフロー定義情報の最新の版情報を取得するステップと，
前記計算機が，要求されたワークフローのワークフロー名とその定義情報の版情報と前記セッションＩＤとの対応情報を，セッション管理情報として記憶し管理するステップと，
前記計算機が，前記実行開始要求時点における最新の版のワークフロー定義情報に従ってワークフローを実行するステップと，
前記計算機が，前記セッションＩＤを指定したワークフローの作動要求に対して，前記セッション管理情報を参照し，該セッションＩＤに対応する版のワークフロー定義情報に従ってワークフローを実行するステップとを有する
ことを特徴とするワークフロー世代管理処理方法。
【請求項２】
一連の作業の流れを定義したワークフロー定義情報を記憶する定義情報記憶手段を持ち，計算機によって前記ワークフロー定義情報に従いワークフローを処理するワークフロー処理システムにおいて，
ワークフローの実行開始要求に対して，一つの動作するワークフローを識別するセッションＩＤを割り当て，要求されたワークフローのワークフロー名とその定義情報の実行開始要求時点における最新の版情報と前記セッションＩＤとの対応情報を，セッション管理情報として記憶して管理するセッション管理手段と，
前記セッション管理手段によって指定された版のワークフロー定義情報に従ってワークフローを実行する実行手段とを備え，
前記セッション管理手段は，前記セッションＩＤを指定したワークフローの作動要求に対して，前記セッション管理情報を参照し，該セッションＩＤに対応する版を指定して前記実行手段に指定した版のワークフロー定義情報に基づくワークフローを実行させる
ことを特徴とするワークフロー処理システム。
【請求項３】
一連の作業の流れを定義したワークフロー定義情報を記憶する定義情報記憶手段を持ち，計算機によって前記ワークフロー定義情報に従いワークフローを処理するワークフロー処理システムを実現するためのワークフロー制御プログラムであって，
前記計算機が，ワークフローの実行開始要求に対して，一つの動作するワークフローを識別するセッションＩＤを割り当てる処理と，
前記計算機が，要求されたワークフローを定義したワークフロー定義情報の最新の版を取得する処理と，
前記計算機が，要求されたワークフローのワークフロー名とその定義情報の版情報と前記セッションＩＤとの対応情報を，セッション管理情報として記憶し管理する処理と，
前記計算機が，前記実行開始要求時点における最新の版のワークフロー定義情報に従ってワークフローを実行する処理と，
前記計算機が，前記セッションＩＤを指定したワークフローの作動要求に対して，前記セッション管理情報を参照し，該セッションＩＤに対応する版のワークフロー定義情報に従ってワークフローを実行する処理とを，
計算機に実行させるためのワークフロー制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，複数の利用者が同一の業務に対し次々と関与することにより業務を達成するワークフローと呼ばれる分野において，電子計算機により複数のワークフローを逐次的または並列的に処理するワークフロー処理の技術に関するものであり，特に，ワークフローの処理内容を処理順序や入出力情報の定義情報という形式で記述するワークフロー処理において業務を停止することなく世代の更新を可能にしたワークフロー処理システムに関するものである。
【背景技術】
【０００２】
一般に，ある業務を遂行するための一連の作業の流れは，「ワークフロー」と呼ばれる。また，ワークフローの内部の一作業単位は，「アクティビティ」と呼ばれる。このようなワークフローをコンピュータで管理し，業務の円滑な遂行を支援するワークフロー処理システムが用いられている。
【０００３】
ワークフローは，複数の利用者が一連のアクティビティに対して次々と関与することにより，長期間存続することを特徴とする。このため，業務の都合などにより，ワークフローを実際に処理するプログラムの更新や，作業の流れの変更が必要になった場合に，従来，実行中の一連のアクティビティにおける処理内容の整合性が取れず，その実行が失敗することがあるという問題があった。
【０００４】
下記の特許文献１には，決裁のワークフロー中，決裁文書とその決裁に必要な添付文書としてのカタログ書類の処理を行う電子決裁システムに関する技術が記載されている。この電子決済システムにおいて，ワークフローとして動作するカタログ情報格納のシステムや，社内購買情報システムや，情報を共有しているワークフローサーバシステムを更新する場合には，プログラムの入れ替え作業を行うときにシステムの停止が必要となる。この際，長期間にわたるワークフローを一旦すべて終わらせなければならない。
【０００５】
また，情報共有用のワークフローサーバの一方を更新するといった場合には，遠方のもう一方のワークフローサーバの管理元に新たな接続先を連絡しておき，遠方のワークフローサーバ上に連絡された接続先を設定するなどの作業を行う必要がある。
【０００６】
また，作業の流れの変更という観点からシステムの停止を行わずワークフローサーバ上の決裁処理のルートを変更するという作業が行われる場合，その変更のタイミングと作業の進捗状況次第によって，決裁の必要な担当へ作業が通知されなかったり，決裁の必要ない担当へ作業が通知されたりするという問題が発生してしまうおそれがある。そのため，やはりワークフローを一旦すべて終わらせるなどの対策が必要であった。
【０００７】
特許文献２には，ワークフローシステムとしてのソフトウェアの変更時に，配布されるソフトウェアを受け取り，更新作業を行うメンテナンスマスタモジュールを備える業務管理用コンピュータシステムに関する技術が記載されている。このシステムでは，更新作業を行う際に，一旦システムを停止させ，変更されて配布されてきたソフトウェアに入れ替えた後に，システムを起動するといった作業を行っている。
【０００８】
以上のように，従来，長期間存続するワークフローの処理中にその処理の整合性を確保するために，次の方法を実施する必要があった。
１．複数の利用者が利用するワークフロー処理システムにおいて，ワークフローシステムのソフトウェアプログラム（以下，単にワークフローシステムという）の入れ替え時に，新規のアクティビティの実施要求を一時的に止め，実行中のワークフローを一旦すべて終了させる。
２．新規の別のワークフローとしてシステムを構築し，そのシステムを利用する利用者に対し，新たなワークフローシステムを使用するように接続先などを通知する。
【特許文献１】特開平１０−４９５９８号公報
【特許文献２】特開２０００−３３１０８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来の技術におけるワークフロー処理システムでは，実行中のワークフローの整合性をとる必要があるため，ワークフローの修正時やシステムの入れ替え時に，新規のアクティビティの開始要求を一時的に止めて実行中のアクティビティを一旦すべて終了させる必要があり，利用者の要求を無停止で受け入れることができないという問題があった。
【００１０】
また，現在のシステムを停止せずに新規の別のワークフローシステムとして更新作業を行う場合には，利用者に対して別の接続先にて使用するように周知徹底する必要があり，接続先の変更を伴うという問題があった。
【００１１】
本発明は，上記問題点の解決を図り，システムを停止することなく，利用者の新たな要求を継続して受け入れることができるようにし，かつ別のワークフローとして新たに接続先を変更する必要をなくし，ワークフローシステムの更新や処理の流れの変更を可能とすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明は，上記課題を解決し，ワークフローの修正時やシステムの入れ替え時に，新規のアクティビティの開始要求を一時的に止めずに，利用者からの要求を無停止で受け入れるため，以下のことを特徴とする。
（１）ワークフロー処理システム上で動作するワークフローを，一つの動作するワークフローごとにセッションとして管理する。
（２）ワークフローの修正やシステムの入れ替え後のワークフローを，該ワークフローの新しい「版」として管理する。
（３）ワークフローの開始要求ごとに，ワークフローの「版」をセッションに対応づけして，進捗状況を管理する。
（４）新しい開始要求に対しては，該ワークフローの最新の「版」を定義した情報を利用する。
【００１３】
すなわち，本発明は，ワークフロー処理システムにおいて，個々の実行されているワークフローに対してそのセッションとそのときのワークフローの版とを管理し，システム運用中にワークフローの変更が行われたとしても，以前の版を実行しているセッションが存在する限りは以前の版も保持しておくことにより，同時に複数の版のワークフローを実行可能としている。これにより，たとえワークフローの変更が行われた場合でも，従来のように，現在のワークフローが終わるまでは入れ替えができないなどの不具合が生じることがなくなる。
【００１４】
図１は，本発明におけるワークフロー処理システムの構成例を示す図である。以下，図1 を用いて，本発明におけるワークフロー処理を説明する。ワークフロー処理システム１０は，１または複数のＣＰＵとメモリと二次記憶装置１１と本システムを実現するためのソフトウェアプログラム等によって構成される。
【００１５】
本システムまたは業務アプリケーションの開発者２０は，ワークフローにおける処理の流れ，一作業であるアクティビティで必要な入出力の情報やアプリケーション情報等を記述した定義情報１１１を作成する。作成したワークフローのための定義情報１１１は，「版」ごとに，ファイルシステム１９により二次記憶装置１１に保存する。各ワークフローは，固有の名前を持っている。
【００１６】
ワークフロー処理システム１０において，あるワークフローの実行開始要求を外部システム３０や利用者４０から受け取ると，セッション管理部１２は，それぞれの要求ごとにどのワークフローを実行するかを解釈して，解釈した要求内容から，ワークフロー名，版番号，セッションＩＤ，コンテキスト１６等をセッション管理情報１３として管理する。セッションＩＤは，セッション管理部１２が要求を受けたときに作成する。セッションは，ホスト計算機間や利用者と計算機の間の通信の単位であるが，ここでは，実行開始から実行終了までの一つの動作するワークフローを意味し，セッションＩＤは，その一つの動作するワークフローを一意に識別する情報である。
【００１７】
版管理部１４は，セッション管理部１２からワークフロー名を取得し，該ワークフローの最新の定義情報１１１を二次記憶装置１１から取得し，取得した定義情報１１１のワークフロー名，版番号等を版管理情報１５として保持し，版番号をセッション管理部１２に送る。セッション管理部１２は，版番号を版管理部１４から受け取り，コンテキスト１６を作成する。
【００１８】
コンテキスト１６は，セッション管理部１２からワークフロー名，版番号を受け取り，ワークフローを実行するときの処理する位置を管理する情報と，その情報を扱う処理手続きからなる。すなわち，ワークフローのどのアクティビティまで実行したかの情報を管理する。コンテキスト１６は，例えばオブジェクト指向プログラミング環境におけるオブジェクトとして実現することができる。セッション管理部１２は，セッションＩＤとコンテキスト１６を一対一で管理する。
【００１９】
実行部１７では，コンテキスト１６からワークフロー名，版番号，アクティビティ名等を受け取り，定義情報管理部１８の定義情報読み込み部１８１から該ワークフローの中間コード１８２をアクティビティ単位で読み込んで，実行する。コンテキスト１６は，実行中のワークフローのアクティビティの実行結果を受け取り，アクティビティ単位で処理状況を管理する。
【００２０】
定義情報読み込み部１８１は，ワークフロー名，版番号，アクティビティ名等を実行部１７から受け取り，該ワークフローの定義情報１１１を二次記憶装置１１から読み込み，中間コード１８２を作成して指示されているアクティビティを実行部１７に送る。また，実行部１７から中間コード１８２の送信要求を受け取るたびに，ワークフローの版番号と保持している中間コード１８２の版番号とをチェックし，該当する中間コード１８２を実行部１７に返す。実行部１７から受け取った版番号が新しい版番号であった場合には，定義情報１１１が更新されていると判断し，該ワークフローの中間コード１８２を再度作成し，実行部１７へ渡す。
【００２１】
以上のような方式を採用することにより，ワークフローの一部を変更して新たなワークフローとして実施したい場合，あるすでに開始されていたワークフローの処理については，セッションＩＤをもとに管理された特定の「版」のワークフローを利用し続けることが可能となり，変更後のワークフローに対する新規の開始の要求に対しては，「版」をチェックして最新の定義情報１１１に従ったワークフローを実行可能となり，システムの停止を行うことなく，ワークフローの更新（「版」の入れ替え）を行うことができる。
【００２２】
また，セッション管理部１２では，セッションと実行するワークフローとを対応付けて管理する方式を採用しているため，システムの更改のためのシステムの停止に伴う別システムの新規構築，新規システムへの接続先変更という作業を行うことなく，ワークフローや実行アプリケーションの更改作業を行うことができる。
【００２３】
以上のような本発明におけるワークフロー処理は，コンピュータとソフトウェアプログラムとによって実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも，ネットワークを通して提供することも可能である。
【発明の効果】
【００２４】
本発明により，新規の処理要求を拒否することなくワークフローの処理内容を記述した定義情報を完全に入れ替えることが可能になり，入れ替え時においても，利用者の要求を無停止で，かつ以前のワークフローの実施と同様の接続先で受け入れることが可能になる。
【発明を実施するための最良の形態】
【００２５】
以下，本発明の実施の形態を図を用いて説明する。まず，開発者２０は，ワークフローに関する定義情報１１１を作成，編集する。このとき，該ワークフローには，固有の名前（ワークフロー名）を付ける。開発者２０は，二次記憶装置１１としてファイルシステム１９を利用し，そこに該ワークフロー名と同じ名前のワークフローの定義情報１１１が保存されているか否かを確認する。
【００２６】
そのワークフロー名のワークフローの定義情報１１１が保存されていなければ，新規にそのワークフロー名のフォルダを作成し，そのフォルダ中に版番号のフォルダを作成し，開発者２０が作成，編集した定義情報１１１を保存する。初めての定義情報１１１の保存であるので，版番号は例えば「１」とする。
【００２７】
同じワークフロー名のフォルダがすでに存在する場合には，その名前のフォルダ中に最新の版番号のフォルダを作成し，そこに定義情報１１１を保存する。すでに保存されている版の番号が，例えば「１」であった場合には，最新の版番号として「２」というフォルダを作成することになる。
【００２８】
図２は，本実施の形態におけるワークフローの定義情報の例を示している。本実施の形態では，ワークフローごとに２つの定義情報（定義情報Ａ１１１ａ，定義情報Ｂ１１１ｂ）を作成する。
【００２９】
定義情報Ａ１１１ａには，ワークフロー名，ワークフローを開始するときに必要な入力データ（数組のデータ名とデータ型），ワークフローを終了するとき出力する出力データ（数組のデータ名とデータ型），ワークフローの一作業単位であるアクティビティの名称（アクティビティ名），アクティビティを開始するときに必要な入力データ（数組のデータ名，データ型），アクティビティを終了するときに必要な出力データ（数組のデータ名，データ型），アクティビティを実施できる利用者（ある役割），実行するアプリケーション１１０のアプリケーション名，次に行うアクティビティ名を記述する。アクティビティを実施できる利用者（ある役割）とは，個人名や利用者ＩＤのことではなく，例えば社員，課長，部長というような利用者の権限情報のことである。
【００３０】
定義情報Ｂ１１１ｂには，アプリケーション１１０を実行するときに必要な情報として，アプリケーション名，実行するアプリケーション１１０の実行ファイル，その実行ファイルの配置場所（ファイルシステム）を記述する。これらの定義情報１１１は，本実施の形態では，ＸＭＬファイルとして記述される。
【００３１】
図３は，本実施の形態におけるワークフロー処理のシーケンス（１）である。図３のシーケンスは，新規の定義情報１１１の利用時のシーケンスを示している。
【００３２】
ワークフロー処理システム１０において，セッション管理部１２は，利用者４０や他システム３０からの各種要求を受信する。ワークフロー処理の開始時には，セッション作成要求（ワークフロー実行開始要求）の受信（Ｓ１０）によって，セッションＩＤを作成し（Ｓ１１），セッションを取得する。要求のあったワークフロー名の定義情報１１１をチェックするために，作成したセッションＩＤを版管理部１４に送る（Ｓ１２）。この例では，開始されるワークフローのワークフロー名を「ｗｏｒｋｆｌｏｗ１」とし，そのセッションＩＤを「ｓｅｓｓｉｏｎ１」として説明する。
【００３３】
版管理部１４は，ファイルシステム１９から当該ワークフローの定義情報１１１の最新の版番号を取得する（Ｓ１３，Ｓ１４）。版番号は，ファイルシステム１９においてフォルダ名から取得されるが，版管理部１４が版管理情報１５としてワークフロー名と最新の版番号との対応情報を内部で管理するようにしてもよい。版管理部１４は，取得した最新の版番号をセッション管理部１２に送る（Ｓ１５）。
【００３４】
セッション管理部１２は，利用者４０や他システム３０に対してセッションＩＤを通知する（Ｓ１６）。このセッションＩＤは，利用者４０や他システム３０が，現在実行中のあるワークフローを特定するために利用される。このセッションＩＤの利用例について説明する。例えば，社内稟議のためのワークフローがあったとする。社員が起票をするためにシステムにアクセスして，あるワークフローが開始されると，そのワークフローには，あるセッションＩＤが対応付けられることになる。社員の起票が終了して，上司である課長がその起票したものを決済する場合には，課長が決済するためにシステムにアクセスして，開始していたワークフローの決済処理を実施する必要がある。このとき，課長がアクセスする際に，開始していたワークフローを識別するためのＩＤとしてセッションＩＤを利用する。
【００３５】
セッション管理部１２は，続いて，ワークフローのアクティビティの処理状況を管理するため，コンテキスト１６を作成する（Ｓ１７）。このとき，セッション管理部１２では，セッションＩＤとコンテキスト１６とを一対一に対応付けて管理することとなる。コンテキスト１６の作成によりコンテキスト１６を一意に識別するコンテキストＩＤを得る（Ｓ１８）。セッション管理部１２は，ワークフロー名，版番号をコンテキスト１６に送る（Ｓ１９）。
【００３６】
図４は，本実施の形態におけるセッション管理情報の例を示す図である。セッション管理部１２は，図４に示すようなセッション管理情報１３を用いて，セッションとワークフロー定義情報とを管理する。
【００３７】
例えば，セッション管理部１２が，版管理部１４から更新済みである最新のワークフローの版番号を示す「２」を取得すると，セッション管理部１２は，取得した版番号「２」を該ワークフローの最新の版番号として保持する。このとき，図４に示すように，セッションＩＤ「ｓｅｓｓｉｏｎ１」と版番号「２」とを，該ワークフロー「ｗｏｒｋｆｌｏｗ１」の版番号「２」を使用しているセッションＩＤ「ｓｅｓｓｉｏｎ１」というように対応付けて管理する。
【００３８】
また，例えば該ワークフロー「ｗｏｒｋｆｌｏｗ１」の定義情報１１１がさらに更新されて版番号「３」が存在し，その「版」を利用しているセッションのセッションＩＤが「ｓｅｓｓｉｏｎ２」であれば，同様に，該ワークフロー「ｗｏｒｋｆｌｏｗ１」の版番号「３」を使用しているセッションＩＤ「ｓｅｓｓｉｏｎ２」というように対応付けて管理する。
【００３９】
セッション管理部１２がコンテキスト１６を作成すると，例えば図４に示すように，セッションＩＤ「ｓｅｓｓｉｏｎ１」に対してコンテキスト「ｃｏｎｔｅｘｔ１」，セッションＩＤ「ｓｅｓｓｉｏｎ２」に対してコンテキスト「ｃｏｎｔｅｘｔ２」というように，セッションＩＤとコンテキストとを１対１に対応付けて管理する。
【００４０】
次に，セッション管理部１２が，利用者４０や他システム３０からワークフローの作動要求をセッションＩＤとともに受信すると（Ｓ２０），当該セッションＩＤと対応付けされているコンテキスト１６に実行要求を送信する（Ｓ２１）。
【００４１】
ワークフローを処理する中で，１処理単位としてワークフロー名と版番号に対応したワークフローの管理単位があり，その管理単位がワークフロー名と版番号に対応したアクティビティである。ワークフローには複数のアクティビティがあり，コンテキスト１６は，それぞれの進捗状況を管理している。例えば，あるアクティビティ「ａｃｔｉｖｉｔｙ０１」というものがあるとすると，そのアクティビティ「ａｃｔｉｖｉｔｙ０１」の状態が，「処理前」，「処理中」，「終了」のいずれであるかを管理している。コンテキスト１６が作成された状態では，すべてのアクティビティが「処理前」となっている。コンテキスト１６は，指定されたワークフローのワークフロー名と，版番号と，これから処理すべきアクティビティ名とを，実行部１７に送る（Ｓ２２）。
【００４２】
実行部１７は，受信した要求にしたがって，該ワークフローの版番号，アクティビティ名に相当する中間コード１８２を実行していくこととなる。その中間コード１８２の実行のため，定義情報読み込み部１８１に該ワークフローの版番号の中間コード１８２を要求する（Ｓ２３）。
【００４３】
定義情報読み込み部１８１は，受信した版番号と定義情報管理部１８で保持している中間コード１８２の版番号とをチェックし，該当する中間コード１８２が存在しなければ，最新の定義情報１１１をファイルシステム１９を介して二次記憶装置１１から取得し（Ｓ２４，Ｓ２５），中間コード１８２を作成し（Ｓ２６），最新の中間コード１８２を実行部１７に渡す（Ｓ２７）。実行部１７は，中間コードを実行する（Ｓ２８）。
【００４４】
例えば，上記セッションＩＤ「ｓｅｓｓｉｏｎ１」の作動要求を受信したセッション管理部１２は，コンテキスト１６にワークフローの実行要求を渡す。コンテキスト１６は，ワークフロー名「ｗｏｒｋｆｌｏｗ１」と版番号「２」とアクティビティ名「ａ」とを実行部１７に渡す。実行部１７は，ワークフロー名「ｗｏｒｋｆｌｏｗ１」の版番号「２」のアクティビティ名「ａ」を定義情報読み込み部１８１に渡す。
【００４５】
他のセッションの要求により，すでにファイルシステム１９から該当する定義情報１１１を読み込み，その定義情報１１１を中間コード１８２に変換している場合には，その作成済みの中間コード１８２を取得して実行部１７に渡す。
【００４６】
該当する定義情報１１１をまだ読み込んでいない場合には，ファイルシステム１９を介して二次記憶装置１１上のワークフロー名「ｗｏｒｋｆｌｏｗ１」のフォルダの版番号「２」のフォルダに保存している定義情報１１１を読み込み，中間コード１８２に変換し，該アクティビティ名の中間コード１８２を実行部１７に渡す。中間コード１８２は，図２に示したＸＭＬファイルとして記述された定義情報１１１ａ，１１１ｂから作成されるものであり，この内容を実行する際には，本実施の形態では，定義情報１１１ａ，１１１ｂから中間コード１８２としてＪａｖａ（登録商標）コードが生成され，Ｊａｖａコードが実行部１７によって実行されるようになっている。
【００４７】
二次記憶装置１１に格納されるアプリケーション１１０は，既存のシステムやこのワークフローのために必要な処理プログラムであり，例えば上記中間コード１８２を実行するＪａｖａコードにより呼び出されるライブラリとして構成される。なお，これらの中間コード１８２およびその実行機構については一例であり，種々の実施の形態が考えられる。これらの実行機構の実現方法については，ワークフロー処理の遂行において世代管理を行う本発明の要旨とは直接的には関係ないため，ここでのさらに詳しい説明は省略する。
【００４８】
実行部１７は，中間コードの実行が完了した後，コンテキスト１６に完了を通知する。コンテキスト１６は，アクティビティ名「ａ」の実行が終了したので，次のアクティビティ名「ｂ」の実行を実行部１７に要求する。このように，アクティビティの実行要求によって，ワークフローとして定義されているアクティビティを順次実行していく。
【００４９】
さらに，定義情報１１１が変更されて最新の版番号「３」の情報が保存されたものとする。その後，利用者４０や他システム３０からの新規の作動要求を受けると，セッション管理部１２は，セッションＩＤ「ｓｅｓｓｉｏｎ２」を作成し，それを版管理部１４に渡す。版管理部１４は，ワークフロー名「ｗｏｒｋｆｌｏｗ１」の定義情報１１１の更新状況をファイルシステム１９により二次記憶装置１１にアクセスしてチェックし，最新の版番号「３」をフォルダ名から取得する。
【００５０】
ここで，版管理部１４で版管理情報１５として管理しているセッションと版番号は，ワークフロー「ｗｏｒｋｆｌｏｗ１」に対して，セッションＩＤ「ｓｅｓｓｉｏｎ１」と版番号「２」，セッションＩＤ「ｓｅｓｓｉｏｎ２」と版番号「３」である。
【００５１】
セッション管理部１２は，セッションＩＤ「ｓｅｓｓｉｏｎ２」のコンテキスト「ｃｏｎｔｅｘｔ２」を作成する。セッションＩＤ「ｓｅｓｓｉｏｎ２」の作動要求を受信すると，対応付けされたワークフロー名「ｗｏｒｋｆｌｏｗ１」と版番号「３」とを取得し，コンテキスト「ｃｏｎｔｅｘｔ２」に渡す。コンテキスト「ｃｏｎｔｅｘｔ２」は，ワークフロー「ｗｏｒｋｆｌｏｗ１」と版番号「３」とアクティビティ名「ａ」とを実行部１７に渡す。実行部１７は，ワークフロー「ｗｏｒｋｆｌｏｗ１」の版番号「３」のアクティビティ名「ａ」を定義情報読み込み部１８１に渡す。
【００５２】
他のセッションの要求により，すでにファイルシステム１９により二次記憶装置１１から該当する定義情報１１１を読み込み，中間コード１８２に変換している場合には，その中間コード１８２を取得して実行部１７に渡す。
【００５３】
該当する定義情報１１１をまだ読み込んでいない場合には，ファイルシステム１９を介して二次記憶装置１１上のワークフロー名「ｗｏｒｋｆｌｏｗ１」のフォルダの版番号「３」のフォルダに保存している定義情報１１１を読み込み，中間コード１８２に変換し，該アクティビティ名「ａ」の中間コード１８２を実行部１７に渡す。
【００５４】
図５は，本実施の形態におけるワークフロー処理のシーケンス（２）である。図５のシーケンスは，既存のセッションへの要求に対する定義情報１１１の利用時のシーケンスを示している。
【００５５】
セッション管理部１２は，利用者４０や他システム３０からの既存のセッションへの作動要求とセッションＩＤとを受信し（Ｓ３０），保持しているセッションＩＤと版番号とをもとに，コンテキスト１６に版番号とともに実行要求を送る（Ｓ３１）。コンテキスト１６は，該ワークフローの実行要求を実行部１７に送る（Ｓ３２）。実行部１７は，定義情報読み込み部１８１から中間コード１８２を取得し，中間コード１８２を実行する（Ｓ３３〜Ｓ３６）。
【００５６】
例えば，上記セッションＩＤ「ｓｅｓｓｉｏｎ１」の作動要求を受信した場合，セッション管理部１２は，すでに保持している該ワークフローの版番号「２」の実行を，生成済みのコンテキスト「ｃｏｎｔｅｘｔ１」に送る。コンテキスト「ｃｏｎｔｅｘｔ１」は，実行部１７に，該ワークフロー名「ｗｏｒｋｆｌｏｗ１」の版番号「２」，アクティビティ「ｃ」の実行を要求する。実行部１７は，定義情報読み込み部１８１から渡された該アクティビティ「ｃ」の中間コード１８２を実行する。
【００５７】
また，セッション管理部１２は，保持しているセッションに対応してコンテキスト１６を保持し，このコンテキスト１６上でワークフローの作業の進捗状況を保持している。セッション管理部１２では，この進捗状況を監視していれば，セッションＩＤに対応する該ワークフローの終了がわかる。
【００５８】
コンテキスト１６の実行しているワークフローが終了の状態であれば，該コンテキスト１６を削除し，対応付けられているセッションＩＤに対応するワークフローの中間コード１８２の実行がすべて終了していることとなる。セッション管理部１２は，該セッションＩＤの削除を行う。また，セッションＩＤの利用していた版番号を検索し，その版番号に対応付けされたセッションＩＤが他に存在しないかを検索する。他にセッションＩＤが存在しなければ，版管理部１４にその版番号の削除を通知する。
【００５９】
また，セッション管理部１２は，定義情報読み込み部１８１に該セッションＩＤに対応付けられていたワークフローの版番号に対応する中間コード１８２の削除要求を送る。定義情報読み込み部１８１は，要求されたワークフローの版番号に対応する中間コード１８２を削除する。
【図面の簡単な説明】
【００６０】
【図１】本発明におけるワークフロー処理システムの構成例を示す図である。
【図２】本実施の形態におけるワークフローの定義情報の例を示す図である。
【図３】本実施の形態におけるワークフロー処理のシーケンス（１）である。
【図４】本実施の形態におけるセッション管理情報の例を示す図である。
【図５】本実施の形態におけるワークフロー処理のシーケンス（２）である。
【符号の説明】
【００６１】
１０    ワークフロー処理システム
１１    二次記憶装置
１１０  アプリケーション
１１１  定義情報
１２    セッション管理部
１３    セッション管理情報
１４    版管理部
１５    版管理情報
１６    コンテキスト
１７    実行部
１８    定義情報管理部
１８１  定義情報読み込み部
１８２  中間コード
１９    ファイルシステム
２０    開発者
３０    他システム
４０    利用者
【図１】
2005092544.tif 000003
【図２】
2005092544.tif 000004
【図３】
2005092544.tif 000005
【図４】
2005092544.tif 000006
【図５】
2005092544.tif 000007