(57)【要約】【課題】複数のビジネスプロセスから共用されるサービス部品に関し、利用元ビジネスプロセスの配備時にサービス部品を動的に変更可能とし、その再利用性を高める。【解決手段】アプリケーションサーバ２００は、運用装置６００からビジネスプロセスの配備の指示を受けたとき、内部に未定義値を示すパラメータを含むサービス部品の定義情報を取得し、取得したサービス部品の未定義パラメータを実際の値に書き換えるとともに、そのサービス部品を利用元ビジネスプロセス内にインライン化したビジネスプロセスの定義情報を生成した後、そのビジネスプロセスを実行する。【選択図】図１
2008123038.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂサービスとして実現されるビジネスプロセスの定義情報と、前記ビジネスプロセスから呼び出されるサブプロセスであるサービス部品の定義情報とを記憶装置上に登録し、前記ビジネスプロセスの配備の指示に従って前記ビジネスプロセス及び前記サービス部品の定義情報を実行可能な形式に変換し、配備された前記ビジネスプロセス及び前記サービス部品を実行する計算機によるビジネスプロセス管理方法において、前記計算機は、
前記サービス部品中に未定義値を示すパラメータを含むサービス部品の定義情報を前記記憶装置上に登録する第１のステップと、
前記ビジネスプロセスの配備の指示を受けたとき、前記サービス部品の未定義パラメータを実際の値に書き換えるとともに、前記サービス部品を前記ビジネスプロセス内にインライン化したビジネスプロセスの定義情報を生成する第２のステップと、
生成された前記ビジネスプロセスを実行可能な形式に変換した後、実行する第３のステップとを実行することを特徴とするビジネスプロセス管理方法。
【請求項２】
前記サービス部品の定義情報を登録する際に、前記計算機は、当該サービス部品の定義名と定義ファイル格納場所との対応をテーブルに登録し、配備の指示を受けたとき、前記テーブルを参照し、前記ビジネスプロセスに含まれる当該サービス部品の定義名から当該サービス部品の格納場所を取得することを特徴とする請求項１記載のビジネスプロセス管理方法。
【請求項３】
前記計算機は、さらに、
前記サービス部品のプロセス名と当該サービス部品を呼び出す前記ビジネスプロセスのプロセス名との対応をテーブルに登録するステップと、
前記サービス部品の変更された定義情報を前記記憶装置上に再登録するステップと、
前記テーブルを参照し、前記の変更されたサービス部品のプロセス名に対応する前記ビジネスプロセスのプロセス名を取得するステップと、
取得した前記ビジネスプロセスに対して再配備の指示をするステップとを実行し、前記第２のステップと前記第３のステップとを実行することを特徴とする請求項１記載のビジネスプロセス管理方法。
【請求項４】
前記計算機は、さらに、
前記再配備が成功した際に、前記ビジネスプロセスのプロセス名、呼び出される前記変更されたサービス部品に対応して前記未定義パラメータと実際の値の対応を第２のテーブルに登録するステップと、
前記テーブルを参照し、前記変更されたサービス部品のプロセス名に対応する前記ビジネスプロセスのプロセス名を取得するステップと、
前記第２のテーブルを参照し、前記変更されたサービス部品の未定義パラメータを実際の値に書き換えるとともに、前記変更されたサービス部品を前記ビジネスプロセス内にインライン化したビジネスプロセスの定義情報を生成するステップと、
生成されたビジネスプロセス内に含まれる前記変更されたサービス部品の未定義パラメータであって実際の値に書き換えられていないものがあるか否かチェックするステップを実行することを特徴とする請求項３記載のビジネスプロセス管理方法。
【請求項５】
前記未定義パラメータに対応する実際の値は、他のＷｅｂサービスの呼び出し先を示すことを特徴とする請求項１記載のビジネスプロセス管理方法。
【請求項６】
Ｗｅｂサービスとして実現されるビジネスプロセスの定義情報を格納する記憶手段と、
前記ビジネスプロセスの配備の指示を受けたとき、前記ビジネスプロセスから呼び出されるサブプロセスであるサービス部品であって内部に未定義値を示すパラメータを含むサービス部品の定義情報を取得する手段と、
取得した前記サービス部品の未定義パラメータを実際の値に書き換えるとともに、前記サービス部品を前記ビジネスプロセス内にインライン化したビジネスプロセスの定義情報を生成する手段と、
生成された前記ビジネスプロセスを実行可能な形式に変換した後、実行する手段とを有することを特徴とする計算機。
【請求項７】
計算機を、
Ｗｅｂサービスとして実現されるビジネスプロセスの配備の指示を受けたとき、記憶手段から前記ビジネスプロセスの定義情報を読み込む手段、
前記ビジネスプロセスから呼び出されるサブプロセスであるサービス部品であって内部に未定義値を示すパラメータを含むサービス部品の定義情報を取得する手段、
取得した前記サービス部品の未定義パラメータを実際の値に書き換えるとともに、前記サービス部品を前記ビジネスプロセス内にインライン化したビジネスプロセスの定義情報を生成する手段、および
生成された前記ビジネスプロセスを実行可能な形式に変換した後、実行する手段として機能させるためのプログラム。
【請求項８】
Ｗｅｂサービスとして実現されるビジネスプロセスの定義情報と、前記ビジネスプロセスから呼び出されるサブプロセスであるプロセス部品の定義情報とを記憶装置上に登録し、前記ビジネスプロセスの実行の指示に従って前記ビジネスプロセス及び前記プロセス部品を実行する計算機ににおいて、前記計算機は、
前記プロセス部品中に未定義値を示すパラメータを含むプロセス部品の定義情報を前記記憶装置上に登録するステップと、
前記ビジネスプロセスの実行指示を受けたとき、前記プロセス部品の未定義パラメータを実際の値に書き換えるとともに、前記プロセス部品を前記ビジネスプロセス内にインライン化したビジネスプロセスの定義情報を生成して実行するステップとを実行することを特徴とするビジネスプロセス管理方法。
【請求項９】
Ｗｅｂサービスとして実現されるビジネスプロセスの定義情報を格納する記憶手段と、
前記ビジネスプロセスの実行指示を受けたとき、前記ビジネスプロセスから呼び出されるサブプロセスであるプロセス部品であって内部に未定義値を示すパラメータを含むプロセス部品の定義情報を取得する手段と、
取得した前記プロセス部品の未定義パラメータを実際の値に書き換えるとともに、前記プロセス部品を前記ビジネスプロセス内にインライン化したビジネスプロセスの定義情報を生成した後、生成された前記ビジネスプロセスを実行する手段とを有することを特徴とする計算機。
【請求項１０】
計算機を、
Ｗｅｂサービスとして実現されるビジネスプロセスの実行指示を受けたとき、記憶手段から前記ビジネスプロセスの定義情報を読み込む手段、
前記ビジネスプロセスから呼び出されるサブプロセスであるプロセス部品であって内部に未定義値を示すパラメータを含むプロセス部品の定義情報を取得する手段、
取得した前記プロセス部品の未定義パラメータを実際の値に書き換えるとともに、前記プロセス部品を前記ビジネスプロセス内にインライン化したビジネスプロセスの定義情報を生成した後、生成された前記ビジネスプロセスを実行する手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビジネスプロセス管理方法に係わり、特にサービス部品の再利用機能を備えたビジネスプロセス管理方法に関する。
【背景技術】
【０００２】
ビジネスプロセスシステムは、業務処理の流れをビジネスプロセスとして予め定義しておき、Ｗｅｂアプリケーションとして実行することができる。ビジネスプロセスでは、業務の処理を行うために他のＷｅｂアプリケーションを呼び出すことが出来る。あるビジネスプロセスから別のビジネスプロセスを呼び出すことも出来る。このような一連のビジネスプロセスによって、業務の主な流れと詳細な処理とを分離できるため、詳細処理の変更に対して柔軟なシステムを構築することが出来る（例えば、非特許文献１等参照）。
【０００３】
ビジネスプロセスシステムの構築は、一般に、ビジネスプロセスを定義する第１ステップ、ビジネスプロセスをアプリケーションサーバへ登録する第２ステップ、ビジネスプロセスを実行可能にする第３ステップからなる。第１ステップでは開発装置によって業務の流れを定義するビジネスプロセス定義ファイルが生成される。第２ステップでは第１ステップで生成されたビジネスプロセス定義ファイルがアプリケーションサーバにコピーされる。第３ステップでは、第２ステップでコピーされたビジネスプロセス定義ファイルがアプリケーションサーバの主記憶装置に読み込まれ、実行可能な形式に変換される（配備という）。配備が完了するとビジネスプロセスはＷｅｂアプリケーションとして実行可能な状態となる。
【０００４】
【非特許文献１】Ｂｕｓｉｎｅｓｓ  Ｐｒｏｃｅｓｓ  Ｅｘｅｃｕｔｉｏｎ  Ｌａｎｇｕａｇｅ  ｆｏｒ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｖｅｒｓｉｏｎ１．１  ５  Ｍａｙ  ２００３（ftp://www6.software.ibm.com/software/developer/library/ws-bpel.pdf）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来技術では、全てのビジネスプロセス定義に必要な情報はビジネスプロセス定義ファイルに記述されていなければならないという問題点がある。複数のビジネスプロセスに共通の定義が有る場合、それらを共通のサービス部品あるいはプロセス部品として利用したい要求があるが、上記問題点のために、利用元のビジネスプロセスに依存して、実行時にサービス部品の処理の一部を変更することは出来ず、再利用性の高いサービス部品の開発・実行をすることが出来ない。
【０００６】
また、テスト環境と本番環境で呼出先のサービスが異なるなど、定義時には一部の情報が定まらない場合にも対応できない。
【０００７】
本発明の目的は、利用元ビジネスプロセスに依存して、配備時に動的に変更されるサービス部品の開発と実行のできるビジネスプロセスシステムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、開発装置に動的に変更される場所の情報を含むサービス部品の定義をする機能を備える。
【０００９】
また、アプリケーションサーバは、利用元ビジネスプロセスが配備されるときに、サービス部品中の動的に変更される場所と変更する具体的な値との対応情報を受け取り、その情報に従ってサービス部品を変更する機能を備える。この機能とともに、サービス部品の定義を利用元ビジネスプロセスの定義に埋め込む機能を備える。
【００１０】
また、サービス部品定義を利用元ビジネスプロセス定義中に埋め込むため、サービス部品定義が変更された場合、利用元ビジネスプロセスが古いサービス部品定義を使い続けてしまう問題がある。この問題の解決のため、サービス部品を利用するビジネスプロセスのプロセス名を記憶しておき、サービス部品が変更された際には、ビジネスプロセスに再埋め込みを行う機能を備える。
【発明の効果】
【００１１】
本発明によれば、そのパラメータを動的に変更可能な柔軟性をもち、再利用性の高いサービス部品プロセスの作成が可能となる。それにより、プロセス定義の開発コストと運用コストを削減できる。また、配備時に変更を行うため、定義時に全ての情報が定まらないビジネスプロセスを定義・実行することが出来る。同様に、ビジネスプロセスの実行ごとにサービス部品の変更処理を行う必要がないので、実行性能の低下もおこらない。
【発明を実施するための最良の形態】
【００１２】
以下、図面を用いて、本発明の実施形態について説明する。
【００１３】
図１は、本発明における一実施例のシステム構成を示すものである。システムは、ネットワーク１００に接続されたアプリケーションサーバ２００−１、アプリケーションサーバ２００−２、データベースサーバ３００、開発装置５００、および運用装置６００からなる。
【００１４】
アプリケーションサーバ２００−１は、主記憶装置２４０−１とＣＰＵ２５０−１で構成される計算機であり、主記憶装置２４０に配備されたビジネスプロセスを実行するビジネスプロセスコンテナプログラム２１０と、ビジネスプロセスの運用に係る機能を実現するビジネスプロセス運用プログラム２２０とが配置される。ビジネスプロセス運用プログラム２２０は、プロセス配備プログラム２２１、プロセス書き換えプログラム２２２、および部品プロセス取得プログラム２２３からなる。アプリケーションサーバ２００−２は、アプリケーションサーバ２００−１と同じように、主記憶装置２４０−２とＣＰＵ２５０−２で構成される計算機である。
【００１５】
データベース３００は、主記憶装置３２０とＣＰＵ３３０で構成される計算機であり、主記憶装置３２０にデータベースマネジメントシステム３１０が配置される。データベースマネジメントシステム３１０によって管理されるデータベースとして、サービス部品プロセス定義ファイルやビジネスプロセス定義ファイルが登録されている場所を保持する定義ファイル登録場所テーブル３１１と、サービス部品を利用しているビジネスプロセスの情報を保持する部品参照元テーブル３１２と、配備されたビジネスプロセス中の動的に変更される場所と変更する具体的な値との対応情報を保持する指定値保存テーブル３１３とが配置される。
【００１６】
開発装置５００は、主記憶装置５４０とＣＰＵ５５０で構成される計算機であり、主記憶装置５４０にサービス部品やビジネスプロセスの定義情報と、定義ファイルを生成する開発プログラム５１０とが配置される。
【００１７】
運用装置６００は、主記憶装置６２０とＣＰＵ６３０で構成される計算機であり、主記憶装置６２０に、ユーザ操作によってアプリケーションサーバに対してサービス部品やビジネスプロセスの登録や配備指示を行う運用操作プログラム６１０が配置される。
【００１８】
上記の各プログラムは同じ装置上に配置されてもよい。アプリケーションサーバは２台以上あってもよい。
【００１９】
サービス部品（あるいはプロセス部品）と、サービス部品を利用するビジネスプロセスの定義例を図２に示す。１１００はビジネスプロセスの定義例である。ビジネスプロセス１１００は、リクエスタからのデータを受信する受付アクティビティ１１０１と、次に出現するアクティビティを並列動作させることを示す並列動作アクティビティ１１０２と、並列動作の終了を示す並列終了アクティビティ１１０５と、別途定義されたサービス部品の呼出を示す部品呼出アクティビティ１１０３，１１０４と、リクエスタに応答を返す応答アクティビティ１１０６からなる。１２００はサービス部品の定義例である。サービス部品１２００は、受け取ったデータを別の形式に変換することを示すデータ変換アクティビティ１２０１と、他のＷｅｂサービスの呼出を示すサービス呼出アクティビティ１２０２と、１２０２で呼び出したＷｅｂサービスからデータを受信する受付アクティビティ１２０３からなる。サービス部品１２００は、典型的な非同期メッセージングを行う処理の流れを示すビジネスプロセスである。サービス呼出アクティビティ１２０２では、呼び出すＷｅｂサービスを特定する情報１２０４が含まれる。１２０４中の一部を実行時に動的に変更するため、場所識別子１２０５が定義される。場所識別子１２０５は、仮の呼び出し先であり、実行時に書き換えられる場所の識別子を示す。
【００２０】
図３に開発装置５００による定義ファイル生成の例を示す。開発装置５００を用いて定義されたサービス部品１２００を格納するサービス部品定義ファイル５２２が生成され、開発装置５００中の磁気ディスク装置５２０に保存される。同様にビジネスプロセス１１００が記述されたビジネスプロセス定義ファイル５２１が磁気ディスク装置５２０に保存される。
【００２１】
図４に運用装置６００によるサービス部品１２００とビジネスプロセス１１００の登録の例を示す。運用装置６００中の運用操作プログラム６１０は、システム運用者よりビジネスプロセス１１００をアプリケーションサーバ２００−１に登録するよう指示されたとする。運用操作プログラム６１０は、開発装置５００の磁気ディスク装置５２０に保存されているビジネスプロセス定義ファイル５２１のコピーを作成し、アプリケーションサーバ２００−１の磁気ディスク装置２３０−１に保存する。これとともに運用操作プログラム６１０は、データベースサーバ３００の定義ファイル登録場所テーブル３１１にビジネスプロセス１１００の定義名とコピーされたビジネスプロセス定義ファイル５２１の保存場所を登録する。同様にサービス部品１２００をアプリケーションサーバ２００−２に登録するように指示されると、運用操作プログラム６１０は、磁気ディスク装置５２０に保存されているサービス部品定義ファイル５２２のコピーを作成し、磁気ディスク装置２３０−２に保存し、定義名と保存場所を定義ファイル登録場所テーブル３１１に登録する。
【００２２】
図５に、定義ファイル登録場所テーブル３１１の例を示す。定義ファイル登録場所テーブル３１１は、定義名３１１ａと定義ファイル格納場所３１１ｂの各列で構成される。定義名３１１ａには登録された定義の定義名が格納される。定義ファイル格納場所３１１ｂには登録された定義の定義ファイルが格納されているＵＲＬが格納される。
【００２３】
図６に、運用操作プログラム６１０が行う登録処理の流れを示す。２００１で運用操作プログラム６１０は、開発装置５００に保存されている指定された定義ファイルのコピーを生成する。運用操作プログラム６１０は、２００２で運用操作プログラム６１０は、生成したコピーを指定されたアプリケーションサーバに保存する。変更されたサービス部品をその定義ファイルに登録する場合には、本実施例では元の定義ファイルの更新となる。２００３で運用操作プログラム６１０は、部品変更処理の必要性を判断する。いまステップ２００２で登録したビジネスプロセスの定義名が、既に定義ファイル登録場所テーブル３１１に登録済みであり、かつ、登録した定義がサービス部品の場合、部品変更処理要と判断する。ここで「部品変更処理」とは、「サービス部品が変更されたとき行われる処理」を意味する。定義がビジネスプロセスかサービス部品かは、定義内容から判断できる。２００４で運用操作プログラム６１０は、定義名とステップ２００２で保存した場所を定義ファイル登録場所テーブル３１１に登録する。ステップ２００３で部品変更処理が不要と判断した場合、運用操作プログラム６１０は、ステップ２００５で部品変更処理を行う。部品変更処理については後述する。
【００２４】
図７にサービス部品とビジネスプロセスの配備の例を示す。運用装置６００は、システム運用者からの指示に基づいてビジネスプロセス１１００の配備を指示する。この指示を受け、アプリケーションサーバ２００−１のビジネスプロセス運用プログラム２２０は、プロセス書き換えプログラム２２２によって、コピーされたビジネスプロセス定義ファイル５２１を読み込み、ビジネスプロセス１１００を走査する。走査中に部品呼出アクティビティが見つかると、部品プロセス取得プログラム２２３によって対応するサービス部品定義ファイル５２２をアプリケーションサーバ２００−２から取得し、サービス部品１２００の定義をビジネスプロセス１１００の定義内に埋め込む。さらに、ビジネスプロセス運用プログラム２２０は、運用装置６００から変更情報３０００を受け取り、ビジネスプロセス１１００に埋め込まれたサービス部品１２００を書き換え、変更後ビジネスプロセス１３００を生成する。変更情報３０００は、システム運用者が配備の指示をする際に入力された情報である。変更後ビジネスプロセス１３００が正しく生成されると、ビジネスプロセス運用プログラム２２０は、ビジネスプロセス１１００の定義名と、ビジネスプロセス１１００が利用するサービス部品１２００の定義名をデータベースサーバ３００の部品参照元テーブル３１２に登録する。さらに、変更情報３０００の定義内容を指定値保持テーブル３１３に登録する。
【００２５】
図８に変更情報３０００の例を示す。変更情報３０００は部品呼出１の場所識別子＠ｏｐｅｒａｔｉｏｎに対応する値の情報３００１と、部品呼出２の場所識別子＠ｏｐｅｒａｔｉｏｎに対応する値の情報３００２とからなる。“ｏｐｅＡ”および“ｏｐｅＢ”は、“＠ｏｐｅｒａｔｉｏｎ”が書き換えられた実際の呼び出し先のＷｅｂサービスである。
【００２６】
生成される変更後ビジネスプロセス１３００の定義例を図９に示す。受付アクティビティ１１０１、並列動作アクティビティ１１０２、並列終了アクティビティ１１０５、および応答アクティビティ１１０６は元のビジネスプロセス１１００のものと変わらない。部品呼出アクティビティ１１０３，１１０４が、スコープアクティビティ１３０３，１３０４に変更される。さらに、スコープアクティビティ１３０３，１３０４の内部にサービス部品１２００の定義が埋め込まれ、アクティビティ１３０７〜１３１２が定義される。場所識別子が定義されていた１３１３，１３１４の部分は変更情報に従って書き換えられる。
【００２７】
図１０に部品参照元テーブル３１２の例を示す。部品参照元テーブル３１２は、サービス部品プロセス名３１２ａと、参照ビジネスプロセス名３１２ｂの各列で構成される。サービス部品プロセス名３１２ａの列にはサービス部品定義の定義名が格納される。参照ビジネスプロセス名３１２ｂの列には、対応するサービス部品を利用するビジネスプロセス定義の定義名が格納される。この例では、ビジネスプロセス１１００がサービス部品１２００を利用するので、サービス部品プロセス名３１２ａにサービス部品１２００の定義名である部品１が格納され、参照元ビジネスプロセス名３１２ｂにビジネスプロセス１１００の定義名である呼出元プロセスＡが格納された行が挿入されている。
【００２８】
図１１に指定値保持テーブル３１３の例を示す。指定値保持テーブル３１３は、プロセス名３１３ａ、呼出アクティビティ名３１３ｂ、場所識別子３１３ｃ、値３１３ｄの各列で構成される。プロセス名３１３ａには、部品呼出アクティビティが定義されているビジネスプロセスの定義名が格納される。呼出アクティビティ名３１３ｂには、部品呼出アクティビティの名前が格納される。場所識別子３１３ｃには、呼出先のサービス部品定義に定義されている場所識別子が格納される。値３１３ｄには場所識別子に対応する実際の値が格納される。この例では、ビジネスプロセス１１００が部品呼出アクティビティ１１０３を持つので、プロセス名３１３ａにビジネスプロセス１１００の定義名である「呼出元プロセスＡ」が格納され、呼出アクティビティ名３１３ｂに部品呼出アクティビティ１１０３の名前である「部品呼出１」が格納され、場所識別子３１３ｃと値３１３ｄに、変更情報３０００によって指定された＠ｏｐｅｒａｔｉｏｎとｏｐｅＡがそれぞれ格納された行が挿入されている。同様に部品呼出アクティビティ１１０４に関連する行も挿入されている。
【００２９】
図１２に配備完了時の例を示す。アプリケーションサーバ２００−１に生成された変更後ビジネスプロセス１３００は、ビジネスプロセス運用プログラム２２０中のプロセス配備プログラム２２１によって実行可能な形式に変換され、配備後ビジネスプロセス２１１となる。配備後ビジネスプロセス２１１は、ビジネスプロセスコンテナプログラム２１０により読み込まれ、実行可能な状態となる。
【００３０】
図１３に配備の指示を受けた後に、ビジネスプロセス運用プログラム２２０が行う処理の流れを示す。ビジネスプロセス運用プログラム２２０は、２１０１で配備対象のビジネスプロセス定義を格納するビジネスプロセス定義ファイル５２１を主記憶装置２４０−１上に読み込む。ビジネスプロセス運用プログラム２２０は、２１０２で主記憶装置上のビジネスプロセスの次の要素を読む。２１０３で、２１０２で読み込んだ要素が部品呼出アクティビティでなければ、２１０６に進む。部品呼出アクティビティであれば２１０４に進む。２１０４でビジネスプロセス運用プログラム２２０は、部品呼出アクティビティのｐａｒｔＮａｍｅ属性から呼び出すサービス部品の定義名を取得する。さらに、ビジネスプロセス運用プログラム２２０は、取得した定義名をキーとして定義ファイル登録場所テーブル３１１を検索し、サービス部品定義ファイル５２２の保存場所を取得する。２１０５では、プロセス書き換えプログラム２２２によって、サービス部品定義のビジネスプロセス定義への埋め込みと、変更情報３０００に基づく場所識別子の置き換えを行う。２１０６では定義中の全ての要素を走査したかを判断し、まだ未走査の要素があれば２１０２に戻る。全ての要素の走査完了によって変更後ビジネスプロセス定義が生成される。こうして生成された変更後ビジネスプロセス定義を２１０７で、プロセス配備プログラム２２１によって、実行可能な形式に変換し、ビジネスプロセスコンテナプログラム上に読み込ませる。これはすでに知られている処理である。２１０７の処理が成功すれば配備成功として２１０９に進む、失敗のときはビジネスプロセス運用プログラム２２０が行う処理全体をエラー終了とする。２１０９でビジネスプロセス運用プログラム２２０は、全ての埋め込んだサービス部品の定義名と、配備したビジネスプロセスの定義名を部品参照元テーブル３１２に登録する。
【００３１】
図１４にビジネスプロセス運用プログラム２２０が行うプロセス書き換え処理の流れを示す。２２０１で部品プロセス取得プログラム２２３は、サービス部品定義ファイル５２２を取得する。２２０２では、２２０１で取得した定義ファイルをメモリ上に読み込む。２２０３では、プロセス書き換えプログラム２２２は、行おうとする書き換え処理が通常の書き換え処理か、サービス部品の変更を契機とする再書き換え処理かを呼出元の指示によって判断する。呼出元がビジネスプロセス運用プログラム２２０の場合には通常の書き換え処理であり、開発プログラム５１０の場合には再書き換え処理である。通常の書き換え処理の場合は、２２０４で、運用装置６００から渡される変更情報３０００から全てのパラメータ情報を取得する。パラメータ情報とは、場所識別子と対応する値とのセットである。再書き換え処理の場合、プロセス書き換えプログラム２２２は、２２０５でサービス部品利用元のビジネスプロセスの定義名と現在処理中の部品呼出アクティビティ名をキーとして、指定値保持テーブル３１３を検索し、全てのパラメータ情報を取得する。２２０６では、２２０７〜２２１０の処理をパラメータごとに繰り返す。２２０７では、プロセス書き換えプログラム２２２は、２２０２で読み込んだ部品定義中から現在処理中のパラメータ情報の場所識別子を検索する。２２０８では、２２０７で検索結果があれば２２０９へ進む。なければ、２２０６に戻る。２２０９では検索して見つかった場所識別子を、バラメタ情報の対応する値に置き換える。２２１０では、再インライン化の場合を除き、置き換えた場所識別子と値を指定値保持テーブル３１３に登録し、２２０６に戻る。２２１１でプロセス書き換えプログラム２２２は、サービス部品定義の全体（ルート要素）をスコープ要素に置き換える。２２１２で、プロセス書き換えプログラム２２２は、ビジネスプロセス定義中の現在処理中の部品呼出アクティビティ要素全体を、２２１１までに書き換えたサービス部品定義と置き換える。
【００３２】
本実施例によれば、配備後ビジネスプロセス２１１にはサービス部品のサブプロセスが組み込まれているため、サービス部品を実行するたびにこれを呼び出したり、含まれる場所識別子を実際の値に書き換えたりする必要はなく、実行性能を向上させることができる。
【００３３】
図１５に既に利用されているサービス部品１２００が変更された場合の例を示す。開発装置５００でサービス部品定義を変更し、運用装置６００で登録を指示すると、図６の流れに従い、登録処理が行われる。登録処理により、新しいサービス部品１４００を格納するサービス部品定義ファイル５２３がアプリケーションサーバ２００−２の磁気ディスク装置２３０−２に保存される。新しいサービス部品１４００の定義名は既に部品参照元テーブル３１２に登録済みなので、図６の条件分岐２００３で部品変更要と判断され、部品変更処理が行われる。その結果、ビジネスプロセス運用プログラム２２０は、ビジネスプロセス定義ファイル５２１上のビジネスプロセス１１００とサービス部品定義ファイル５２３上のサービス部品１４００から、変更後ビジネスプロセス１５００を生成し、アプリケーションサーバ２００−１上で実行可能な形式に変換し、ビジネスプロセスコンテナプログラム２１０上で配備後ビジネスプロセス２１２が実行可能な状態となる。配備後ビジネスプロセス２１２は、配備後ビジネスプロセス２１１が更新された新しいバージョンである。
【００３４】
図１６に変更されたサービス部品１４００の例を示す。新しいサービス部品１４００は、サービス部品１２００からデータ変換１２０１を除いたものである。
【００３５】
図１７に部品の変更によって再書き換えされた変更後ビジネスプロセス定義１５００の例を示す。スコープアクティビティ１５０３，１５０４とサービス部品１４００から埋め込まれたアクティビティ１３０８，１３０９，１３１１，１３１２が、部品呼出アクティビティ１１０３，１１０４に置き換わっている。
【００３６】
図１８に運用操作プログラム６１０が行う部品変更処理２００５の流れを示す。変更された部品を登録すると、ステップ２００３で登録処理要と判断され、部品変更処理２００５が実行される。２３０１で運用操作プログラム６１０は，登録された部品の定義名をキーとして部品参照元テーブル３１２を検索し、その部品を利用しているビジネスプロセスのプロセス名を取得する。２３０２では、２３０１で取得したビジネスプロセスごとにステップ２３０３を繰り返す。２３０３で運用操作プログラム６１０は、各参照ビジネスプロセスに対して、再配備を指示する。再配備の際に、変更情報３０００により新しく設定された場所識別子に対してその値が設定され、指定値保持テーブル３１３に登録される。
【００３７】
図１９に既に利用されているサービス部品の変更により、利用もとのビジネスプロセスが実行できなくなる場合の例を示す。サービス部品１２００に対して変更を加えた定義が１６００である。サービス部品１２００のアクティビティ１２０２，１２０３には変更がない。データ変換アクティビティ１２０１に変更が加えられてアクティビティ１６０１となり、場所識別子１６０４が追加されている。開発装置５００において、このような変換を行うと、新しく追加された場所識別子１６０４に対応する値の情報を持っていないので、開発装置５００は、５３０に示すメッセージ通知を行う。
【００３８】
図２０に開発プログラム５１０が行うエラーチェックの処理の流れを示す。２４０１で開発プログラム５１０は、変更したサービス部品の定義名をキーとして部品参照元テーブル３１２を検索し、そのサービス部品を利用しているビジネスプロセスのプロセス名を取得する。２４０２ではステップ２４０３〜２４０６を、ステップ２４０１で取得したビジネスプロセスごとに繰り返す。ステップ２４０３は、ステップ２１０５の処理と同じであり、部品定義インライン化処理を行い、変更後ビジネスプロセスを生成する。２４０４で、開発プログラム５１０は、ステップ２４０３で生成した変更後ビジネスプロセス中に、＠で始まる場所識別子を検索する。２４０５で開発プログラム５１０は、ステップ２４０４で行った検索の結果置き換えられていない場所識別子があればステップ２４０６を実行し、なければステップ２４０２に戻る。２４０６で開発プログラム５１０は、エラーの通知を行う。インライン化を行った後も場所識別子が残っているということは、サービス部品の変更の結果、利用元のビジネスプロセスが実行できなくなることを意味する。
【図面の簡単な説明】
【００３９】
【図１】ビジネスプロセスシステムの構成図である。
【図２】サービス部品及びサービス部品を利用するビジネスプロセスの定義例を示す図である。
【図３】定義ファイルを生成する開発装置を示す図である。
【図４】サービス部品及びビジネスプロセスの登録時のシステム構成図である。
【図５】定義ファイル登録場所テーブルのデータ例を示す図である。
【図６】サービス部品及びビジネスプロセスの登録処理のフローチャートである。
【図７】サービス部品を利用するビジネスプロセスの配備時のシステム構成図である。
【図８】変更情報のデータ例を示す図である。
【図９】変更後ビジネスプロセスの定義例を示す図である。
【図１０】部品参照元テーブルのデータ例を示す図である。
【図１１】指定値保持テーブルのデータ例を示す図である。
【図１２】ビジネスプロセスの配備完了時のアプリケーションサーバの構成図である。
【図１３】サービス部品を利用するビジネスプロセスの配備処理のフローチャートである。
【図１４】部品定義インライン化処理のフローチャートである。
【図１５】既に利用されているサービス部品変更時のシステム構成図である。
【図１６】変更されたサービス部品の定義例を示す図である。
【図１７】変更されたサービス部品を適用する変更後ビジネスプロセスの定義例を示す図である。
【図１８】部品変更処理のフローチャートである。
【図１９】矛盾が起こる変更をしたサービス部品定義の例と、通知されるエラーの例を示す図である。
【図２０】開発プログラム５１０のサービス部品変更処理のフローチャートである。
【符号の説明】
【００４０】
２００…アプリケーションサーバ、３００…データベースサーバ、５００…開発装置、６００…運用装置、２２０…ビジネスプロセス運用プログラム、３１１…定義ファイル登録場所テーブル、３１２…部品参照テーブル、３１３…指定値保持テーブル、５１０…開発プログラム、６１０…運用プログラム
【図１】
2008123038.tif 000003
【図２】
2008123038.tif 000004
【図３】
2008123038.tif 000005
【図４】
2008123038.tif 000006
【図５】
2008123038.tif 000007
【図６】
2008123038.tif 000008
【図７】
2008123038.tif 000009
【図８】
2008123038.tif 000010
【図９】
2008123038.tif 000011
【図１０】
2008123038.tif 000012
【図１１】
2008123038.tif 000013
【図１２】
2008123038.tif 000014
【図１３】
2008123038.tif 000015
【図１４】
2008123038.tif 000016
【図１５】
2008123038.tif 000017
【図１６】
2008123038.tif 000018
【図１７】
2008123038.tif 000019
【図１８】
2008123038.tif 000020
【図１９】
2008123038.tif 000021
【図２０】
2008123038.tif 000022