(57)【要約】【課題】ビジネスプロセス実行時のリソース使用量を削減する。【解決手段】サービス実行装置及びサービスを組み合わせたビジネスプロセスを実行するビジネスプロセス実行装置を備える計算機システムで、ビジネスプロセスは、少なくとも一つのアクティビティを含む領域ごとに分割され、ビジネスプロセス実行装置は、領域とアクティビティとの対応を含むプロセス分割情報及びビジネスプロセスの実行情報を含むプロセス実行状態情報を記憶し、ビジネスプロセスの実行を受け付けた場合には、プロセス実行状態情報及びプロセス分割情報に基づいて実行するアクティビティ及び領域を抽出し、抽出された領域に対応する実行情報に基づいて抽出された領域に含まれるアクティビティを実行し、抽出された領域に含まれるすべてのアクティビティの実行が完了した場合には領域に対応する実行情報をプロセス実行状態情報に格納する。【選択図】図１
2010026695.tif 000002
【特許請求の範囲】
【請求項１】
サービスを提供するサービス実行装置と、前記サービスを組み合わせて業務処理を定義したビジネスプロセスを実行するビジネスプロセス実行装置と、を備える計算機システムにおけるビジネスプロセス実行方法であって、
前記ビジネスプロセス実行装置は、前記サービス実行装置に接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリとを備え、
前記ビジネスプロセスは、前記ビジネスプロセスを構成するアクティビティに基づいて、少なくとも一つのアクティビティを含む領域に分割され、
前記メモリは、前記ビジネスプロセスの実行経過を含む実行情報を格納するプロセス実行状態情報、及び前記領域と前記アクティビティとの対応を含むプロセス分割情報を記憶し、
前記方法は、
前記ビジネスプロセスの実行を受け付けた場合には、前記プロセス実行状態情報及び前記プロセス分割情報に基づいて、実行されるアクティビティを特定し、
前記特定されたアクティビティを含む領域を抽出し、
前記抽出された領域に対応する実行情報を前記プロセス実行状態情報から取得し、
前記取得された実行情報に基づいて、前記抽出された領域に含まれるアクティビティを実行し、
前記抽出された領域に含まれるすべてのアクティビティの実行が完了した場合には、前記抽出された領域に対応する実行情報を前記プロセス実行状態情報に格納することを特徴とするビジネスプロセス実行方法。
【請求項２】
前記方法は、
前記ビジネスプロセスが定義された場合には、前記ビジネスプロセスの実行が中断される可能性が高いアクティビティを特定し、
前記特定されたアクティビティに基づいて、前記ビジネスプロセスを分割することを特徴とする請求項１に記載のビジネスプロセス実行方法。
【請求項３】
前記ビジネスプロセスの実行が中断される可能性が高いアクティビティは、外部からの入力を受け付ける受付アクティビティであることを特徴とする請求項２に記載のビジネスプロセス実行方法。
【請求項４】
前記方法は、前記ビジネスプロセスが新たに定義された場合に、前記ビジネスプロセスの分割結果を提示することを特徴とする請求項２に記載のビジネスプロセス実行方法。
【請求項５】
前記方法は、前記ビジネスプロセスの分割結果が提示された後、前記領域の分割又は統合を受け付けることを特徴とする請求項４に記載のビジネスプロセス実行方法。
【請求項６】
前記抽出された領域に対応する実行情報には、前記ビジネスプロセスの実行時に使用される変数が含まれることを特徴とする請求項１に記載のビジネスプロセス実行方法。
【請求項７】
前記方法は、
前記ビジネスプロセスに含まれるアクティビティの実行開始時刻及び実行終了時刻を含む時間情報を測定し、
前記測定された時間情報に基づいて、前記ビジネスプロセスを分割することを特徴とする請求項１に記載のビジネスプロセス実行方法。
【請求項８】
前記方法は、
前記時間情報に基づいて、前記アクティビティの実行間隔を算出し、
前記算出された実行間隔が所定の閾値よりも長いアクティビティの間で、前記ビジネスプロセスを分割することを特徴とする請求項７に記載のビジネスプロセス実行方法。
【請求項９】
前記ビジネスプロセスは、並列処理を制御するアクティビティに基づいて分割されることを特徴とする請求項１に記載のビジネスプロセス実行方法。
【請求項１０】
前記ビジネスプロセスは、条件分岐処理を制御するアクティビティに基づいて分割されることを特徴とする請求項１に記載のビジネスプロセス実行方法。
【請求項１１】
サービスを提供するサービス実行装置に接続し、前記サービスを組み合わせて業務処理を定義したビジネスプロセスを実行するビジネスプロセス実行装置であって、
前記サービス実行装置に接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
前記ビジネスプロセスは、前記ビジネスプロセスを構成するアクティビティに基づいて、少なくとも一つのアクティビティを含む領域に分割され、
前記メモリは、前記ビジネスプロセスの実行経過を含む実行情報を格納するプロセス実行状態情報、及び前記領域と前記アクティビティとの対応を含むプロセス分割情報を記憶し、
前記プロセッサは、
前記ビジネスプロセスの実行を受け付けた場合には、前記プロセス実行状態情報及び前記プロセス分割情報に基づいて、実行されるアクティビティを特定し、
前記特定されたアクティビティを含む領域を抽出し、
前記抽出された領域に対応する実行情報を前記プロセス実行状態情報から取得し、
前記取得された実行情報に基づいて、前記抽出された領域に含まれるアクティビティを実行し、
前記抽出された領域に含まれるすべてのアクティビティの実行が完了した場合には、前記抽出された領域に対応する実行情報を前記プロセス実行状態情報に格納することを特徴とするビジネスプロセス実行装置。
【請求項１２】
前記プロセッサは、
前記ビジネスプロセスが新たに定義された場合には、前記ビジネスプロセスの実行が中断される可能性が高いアクティビティを特定し、
前記特定されたアクティビティに基づいて、前記ビジネスプロセスを分割することを特徴とする請求項１１に記載のビジネスプロセス実行装置。
【請求項１３】
前記ビジネスプロセスの実行が中断される可能性が高いアクティビティは、外部からの入力を受け付ける受付アクティビティであることを特徴とする請求項１２に記載のビジネスプロセス実行装置。
【請求項１４】
前記抽出された領域に対応する実行情報には、前記ビジネスプロセスの実行時に使用される変数が含まれることを特徴とする請求項１１に記載のビジネスプロセス実行装置。
【請求項１５】
前記プロセッサは、
前記ビジネスプロセスに含まれるアクティビティの実行開始時刻及び実行終了時刻を含む時間情報を測定し、
前記測定された時間情報に基づいて、前記ビジネスプロセスを分割することを特徴とする請求項１１に記載のビジネスプロセス実行装置。
【請求項１６】
前記プロセッサは、
前記測定された時間情報に基づいて、前記アクティビティの実行間隔を算出し、
前記算出された実行間隔が所定の閾値よりも長いアクティビティの間で、前記ビジネスプロセスを分割することを特徴とする請求項１５に記載のビジネスプロセス実行装置。
【請求項１７】
サービスを提供するサービス実行装置に接続し、前記サービスを組み合わせて業務処理を定義したビジネスプロセスを実行するビジネスプロセス実行装置によって実行されるプログラムであって、
前記ビジネスプロセスは、前記ビジネスプロセスを構成するアクティビティに基づいて、少なくとも一つのアクティビティを含む領域に分割され、
前記ビジネスプロセス実行装置は、前記ビジネスプロセスの実行経過を含む実行情報を格納するプロセス実行状態情報、及び前記領域と前記アクティビティとの対応を含むプロセス分割情報を記憶し、
前記プログラムは、
前記ビジネスプロセスの実行を受け付けた場合には、前記プロセス実行状態情報及び前記プロセス分割情報に基づいて、実行されるアクティビティを特定する手順と、
前記特定されたアクティビティを含む領域を抽出する手順と、
前記抽出された領域に対応する実行情報を前記プロセス実行状態情報から取得する手順と、
前記取得された実行情報に基づいて、前記抽出された領域に含まれるアクティビティを実行する手順と、
前記抽出された領域に含まれるすべてのアクティビティの実行が完了した場合には、前記抽出された領域に対応する実行情報を前記プロセス実行状態情報に格納する手順と、を含むことを特徴とするビジネスプロセス実行プログラム。
【請求項１８】
前記プログラムは、
前記ビジネスプロセスが新たに定義された場合には、前記ビジネスプロセスの実行が中断される可能性が高いアクティビティする手順と、
前記特定されたアクティビティに基づいて、前記ビジネスプロセスを分割する手順と、をさらに含むことを特徴とする請求項１７に記載のビジネスプロセス実行プログラム。
【請求項１９】
前記プログラムは、
前記ビジネスプロセスに含まれるアクティビティの実行開始時刻及び実行終了時刻を含む時間情報を測定する手順と、
前記測定された時間情報に基づいて、前記ビジネスプロセスを分割する手順と、さらに含むことを特徴とする請求項１７に記載のビジネスプロセス実行プログラム。
【請求項２０】
前記プログラムは、
前記測定された時間情報に基づいて、前記アクティビティの実行間隔を算出する手順と、
前記算出された実行間隔が所定の閾値よりも長いアクティビティの間で、前記ビジネスプロセスを分割する手順と、をさらに含むことを特徴とする請求項１９に記載のビジネスプロセス実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビジネスプロセス実行時に消費されるリソースを低減する技術に関する。
【背景技術】
【０００２】
近年、企業の統廃合及び市場競争の激化といった企業をとりまくビジネス環境の激しい変化に対し、短期間で柔軟に対応可能なシステムが求められている。そこで、ＳＯＡ（Ｓｅｒｖｉｃｅ  Ｏｒｉｅｎｔｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）の考え方に基づいたシステムが注目を集めている。ＳＯＡとは、業務において独立した機能を有するソフトウェアをサービスと呼ばれる単位で構築し、サービスの名前及び入出力メッセージの形式が定義されたサービスのインターフェース情報を公開することによって、当該サービスの機能を提供するソフトウェア構築手法の一つである。ここでは、ＳＯＡに基づいて構築されたシステムを、ＳＯＡシステムと呼ぶこととする。
【０００３】
ＳＯＡシステムでは、可能な限り既存のサービスを再利用し、また、必要に応じて新たなサービスを開発し、これらのサービスを組み合わせて新たな機能を提供することによって、業務の変化に柔軟に対応することができる。以上のように複数のサービスを組み合わせることによって提供される新たなサービスは、ビジネスプロセスと呼ばれる。
【０００４】
ビジネスプロセスは、ＢＰＥＬ（Ｂｕｓｉｎｅｓｓ  Ｐｒｏｃｅｓｓ  Ｅｘｅｃｕｔｉｏｎ  Ｌａｎｇｕａｇｅ）などのビジネスプロセス記述言語を用いて、複数のサービスを組み合わせて新たな機能を提供する。ビジネスプロセスは、自身もサービスとなりうる。したがって、ビジネスプロセスを組み合わせて新たなビジネスプロセスを構成することも可能である。
【０００５】
ビジネスプロセスは、独立した機能を有するサービスを組み合わせて機能を提供するため、機能の変更が必要になった際には、サービスの組み合わせを変更するだけで対応することが可能であり、ビジネスの変化に柔軟に対応することができる。ビジネスプロセスには、サービス呼び出しの他、分岐処理及びフォーマット編集処理などのフロー制御を記述することが可能である。このようなビジネスプロセスを構成する要素をアクティビティと呼ぶ。また、ビジネスプロセスにおいて、各アクティビティで使用されるメッセージインスタンスを格納するための領域を変数と呼ぶ。変数は、サービス呼び出しの入出力メッセージの格納及び分岐処理の分岐条件などに用いることができる。
【０００６】
ビジネスプロセスの記述方式としては、前述したＢＰＥＬなどのビジネスプロセス定義言語が用いられる。ビジネスプロセス及びサービスの実装方式としては、各種のコンポーネントモデルなどが用いられる。また、ビジネスプロセス及びサービスの実行基盤プログラムとしては、実装されたコンポーネントを実行する各種プログラムが用いられる。ここでは、サービスの実行基盤プログラムをサービス実行基盤プログラムと呼ぶ。
【０００７】
業務フローが記述されたビジネスプロセスを実行すると、非常に長い時間を要する場合がある。例えば、人手を介した作業を含む場合などは、数日から数週間に渡る場合もある。ビジネスプロセスの実行は、一般的にインスタンスをメモリ上に配備して実行するが、ビジネスプロセスにおいて人手作業の完了を待機するなど、待ち状態になっている間もメモリ上に配備しておくことは非効率的である。そこで、待ち状態となったビジネスプロセスの実行時情報をデータベース（ＤＢ）などに永続化して実行を一時的に中断し、人手作業が完了した時点で、ビジネスプロセスを活性化して処理を継続することによって、メモリの利用効率を向上させる手法が一般的に用いられている。ここで、永続化とは、ビジネスプロセスのフロー定義、フローに含まれる各アクティビティの実行状態、変数の定義情報及び変数の値といった、ビジネスプロセスの実行時情報をＤＢなどに格納することである。また、活性化とは、ＤＢに永続化した情報を取得し、メモリ上に展開することである。
【０００８】
特許文献１には、ビジネスプロセス実行時に必要なメモリ量を削減するために、ビジネスプロセスの実行時に必要に応じて変数をメモリ上に作成し、不要になった時点で変数をメモリ上から削除することによって、メモリ上に必要以上の変数がロードされないようにする技術が開示されている。
【特許文献１】特開２００６−３１５００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ビジネスプロセスが長大化すると、ビジネスプロセスの実行時間も長時間に渡る傾向がり、ビジネスプロセスが永続化及び活性化される頻度が増加する。また、ビジネスプロセスを構成する業務ステップ数及びビジネスプロセスが利用する変数の数が増加することから、ビジネスプロセスを永続化又は活性化する際に操作される情報量も増加する。
【００１０】
従来の技術では、ビジネスプロセス全体を一括して活性化又は永続化するため、ビジネスプロセスを活性化した際に実行されない業務ステップの定義情報及び実行状態、活性化時に利用されない変数定義及び値なども常に活性化又は永続化されていた。このように、実行されないアクティビティ及び利用されない変数情報を活性化することは、メモリなどのリソースを不要に消費してしまうため、メモリの効率的な利用を妨げていた。
【００１１】
また、特許文献１に開示された技術は、ビジネスプロセスで定義された変数が必要になった時点で変数をメモリ上に作成し、不要になった時点で変数をメモリから破棄することによって、メモリ利用効率を向上させている。しかし、変数を必要に応じて生成するため、新たな変数が必要になるたびにＤＢから情報を読み込んで、メモリ領域を割り当てる必要があるため、実行性能が悪化するおそれがある。また、ビジネスプロセスのフロー定義を解析していないため、フロー定義に基づいた効率的なリソースの利用が実現されていない。
【００１２】
本発明は、ビジネスプロセスの実行性能を向上させ、ビジネスプロセスの実行に必要なリソース量を削減することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の代表的な一形態では、サービスを提供するサービス実行装置と、前記サービスを組み合わせて業務処理が定義されたビジネスプロセスを実行するビジネスプロセス実行装置と、を備える計算機システムにおけるビジネスプロセス実行方法であって、前記ビジネスプロセス実行装置は、前記サービス実行装置に接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリとを備え、前記ビジネスプロセスは、前記ビジネスプロセスを構成するアクティビティに基づいて、少なくとも一つのアクティビティを含む領域に分割され、前記メモリは、前記ビジネスプロセスの実行経過を含む実行情報を格納するプロセス実行状態情報、及び前記領域と前記アクティビティとの対応を含むプロセス分割情報を記憶し、前記方法は、前記ビジネスプロセスの実行を受け付けた場合には、前記プロセス実行状態情報及び前記プロセス分割情報に基づいて、実行されるアクティビティを特定し、前記特定されたアクティビティを含む領域を抽出し、前記抽出された領域に対応する実行情報を前記プロセス実行状態情報から取得し、前記取得された実行情報に基づいて、前記抽出された領域に含まれるアクティビティを実行し、前記抽出された領域に含まれるすべてのアクティビティの実行が完了した場合には、前記抽出された領域に対応する実行情報を前記プロセス実行状態情報に格納する。
【発明の効果】
【００１４】
本発明の一形態によれば、ビジネスプロセスを分割して実行することによって、ビジネスプロセスの実行単位を縮小し、ビジネスプロセス実行時に必要なリソース量を削減することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
【００１６】
図１は、本発明の実施の形態のＳＯＡシステムの構成の一例を示す図である。
【００１７】
本発明の実施の形態のＳＯＡシステムは、ビジネスプロセス実行計算機２０１、ビジネスプロセス開発用計算機３００、サービス実行計算機（５０１、５０２）、及びクライアント用計算機７０１を含む。ビジネスプロセス実行計算機２０１、ビジネスプロセス開発用計算機３００、サービス実行計算機（５０１、５０２）、及びクライアント用計算機７０１は、互いにネットワークによって接続される。
【００１８】
ビジネスプロセス実行計算機２０１は、ビジネスプロセスを実行する。ビジネスプロセス実行計算機２０１は、パーソナルコンピュータ（以下、パソコンと呼ぶ）などの汎用の計算機である。ビジネスプロセス実行計算機２０１の構成の詳細については、図３にて後述する。
【００１９】
ビジネスプロセス実行計算機２０１は、ビジネスプロセス実行部２２１、ロード領域判定部２２２、プロセス分割結果格納テーブル２３０、変数参照関係格納テーブル２４０、プロセス実行状態格納テーブル２５０、及び変数状態格納テーブル２６０を含む。本発明の実施の形態では、ビジネスプロセス実行部２２１及びロード領域判定部２２２はソフトウェアとして実現されているが、これに限定されるものではなく、専用の半導体回路などによって実現されてもよい。
【００２０】
ビジネスプロセス実行部２２１は、プロセス実行状態格納テーブル２５０及び変数状態格納テーブル２６０などを利用してビジネスプロセスの実行を制御する。ビジネスプロセス実行部２２１は、汎用のビジネスプロセス実行プログラムなどを利用して実現可能であるため、詳細の説明を省略する。なお、本発明の実施の形態におけるビジネスプロセス実行部２２１は、汎用のビジネスプロセス実行プログラムの機能に加え、ビジネスプロセスを活性化するタイミングで、ロード領域判定部２２２に処理を要求する機能を有する。
【００２１】
プロセス実行状態格納テーブル２５０は、ビジネスプロセスの実行状況を格納する。プロセス実行状態格納テーブル２５０の詳細については、図４にて後述する。変数状態格納テーブル２６０は、ビジネスプロセス実行時に設定される変数を格納する。変数状態格納テーブル２６０の詳細については、図５にて後述する。
【００２２】
ロード領域判定部２２２は、ビジネスプロセス実行部２２１からの要求に基づいて、プロセス分割結果格納テーブル２３０及び変数参照関係格納テーブル２４０からビジネスプロセスの実行に必要な情報を取得し、結果をビジネスプロセス実行部２２１に応答する。
【００２３】
プロセス分割結果格納テーブル２３０は、分割されたビジネスプロセスを領域ごとに格納する。プロセス分割結果格納テーブル２３０の詳細については、図６にて後述する。変数参照関係格納テーブル２４０は、分割されたビジネスプロセスの領域ごとに使用される変数を格納する。変数参照関係格納テーブル２４０の詳細については、図７にて後述する。
【００２４】
ビジネスプロセス開発用計算機３００は、ビジネスプロセス開発者８００がビジネスプロセスを定義するための計算機である。ビジネスプロセス開発用計算機３００は、ビジネスプロセス実行計算機２０１と同様に、パソコンなどの汎用の計算機である。ビジネスプロセス開発用計算機３００の構成の詳細については、図２にて後述する。
【００２５】
ビジネスプロセス開発用計算機３００は、ビジネスプロセス開発部３１０、フロー定義解析部３２０、及び変数参照関係解析部３３０を含む。本発明の実施の形態では、ビジネスプロセス開発部３１０、フロー定義解析部３２０、及び変数参照関係解析部３３０はソフトウェアとして実現されているが、専用の半導体回路などによって実現されてもよい。
【００２６】
ビジネスプロセス開発部３１０は、ビジネスプロセス開発者８００がビジネスプロセスを定義するためのアプリケーションである。ビジネスプロセス開発部３１０は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）ツールであることが多いが、これに限定されるものではない。ビジネスプロセス開発部３１０は、汎用のビジネスプロセス開発用プログラムなどによって実現可能であるため、詳細の説明は省略する。
【００２７】
ビジネスプロセス開発者８００によって定義されたビジネスプロセスは、ＢＰＥＬなどのプロセス定義記述言語によって記述される。ビジネスプロセスの定義情報は、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）などの形式で記述されるが、これに限定されるものではない。ビジネスプロセスの定義例については、図８にて後述する。
【００２８】
本発明の実施の形態では、ビジネスプロセス開発部３１０は、汎用のビジネスプロセス開発用プログラムなどに加え、ビジネスプロセス永続化ポイント提示部３１１及びビジネスプロセス永続化ポイント指定部３１２を含む。
【００２９】
ビジネスプロセス永続化ポイント提示部３１１は、後述するフロー定義解析部３２０によるビジネスプロセスの解析結果に基づいて抽出されたビジネスプロセスの永続化ポイントをビジネスプロセス開発者８００に提示する。また、ビジネスプロセス永続化ポイント指定部３１２は、ビジネスプロセス開発者８００から、ビジネスプロセスを永続化するポイントの入力を受け付ける。
【００３０】
フロー定義解析部３２０は、ビジネスプロセス開発者８００が開発したビジネスプロセスのフローを後述のアルゴリズムに従って解析し、ビジネスプロセスの永続化ポイントを抽出する。さらにフロー定義解析部３２０は、抽出された永続化ポイントに基づいてビジネスプロセスを分割し、その結果をプロセス分割結果格納テーブル２３０に格納する。
【００３１】
なお、フロー定義解析部３２０は、抽出したビジネスプロセスの永続化ポイントを、ビジネスプロセス永続化ポイント提示部３１１を用いて、ビジネスプロセス開発者８００に提示してもよい。ビジネスプロセス開発者８００は、ビジネスプロセス永続化ポイント指定部３１２を用いて、提示されたビジネスプロセスの永続化ポイントを削除したり、新たな永続化ポイントを指定するなどの編集処理を行うことができる。ビジネスプロセス開発者８００に解析結果を提示した場合には、フロー定義解析部３２０は、ビジネスプロセス開発者８００によって指定された永続化ポイントに基づいてビジネスプロセスを分割し、その結果をプロセス分割結果格納テーブル２３０に格納する。
【００３２】
変数参照関係解析部３３０は、フロー定義解析部３２０による分割結果に対して後述のアルゴリズムを適用することによって、分割された各領域から参照される変数を抽出し、結果を変数参照関係格納テーブル２４０に格納する。
【００３３】
なお、本発明の実施の形態では、ビジネスプロセス実行計算機２０１のみがプロセス分割結果格納テーブル２３０及び変数参照関係格納テーブル２４０を保持しているが、ビジネスプロセス開発用計算機３００が同等の情報を保持していてもよい。また、ビジネスプロセス実行計算機２０１がビジネスプロセス開発用計算機３００に保持されているテーブルを参照する構成としてもよい。さらに、本発明の実施の形態ではビジネスプロセス実行計算機２０１とビジネスプロセス開発用計算機３００を異なる計算機としているが、これに限定されることはなく、単一の計算機で実現することも可能である。
【００３４】
クライアント用計算機７０１は、ビジネスプロセス実行計算機２０１にビジネスプロセスの実行を要求するための計算機である。クライアント用計算機７０１は、パソコンなどの汎用の計算機である。クライアント用計算機７０１は、サービス呼び出しプログラム７１０を含む。
【００３５】
クライアント用計算機７０１は、クライアント８２０からの要求を受け付け、サービス呼び出しプログラム７１０を実行し、ビジネスプロセス実行計算機２０１のビジネスプロセス実行部２２１にサービスの実行要求を送信することによって、サービスを利用する。サービス呼び出しプログラム７１０は、各種のプログラム言語によって実現可能であり、詳細な説明は省略する。本発明の実施の形態では、サービス呼び出しプログラム７１０はソフトウェアとして実現されているが、半導体回路などの専用ハードウェアとして実装してもよい。
【００３６】
サービス実行計算機５０１及び５０２は、ビジネスプロセスによって呼び出されるサービスが実行される計算機である。サービス実行計算機５０１及び５０２は、パソコンなどの汎用の計算機である。サービス実行計算機５０１及び５０２は、サービスを実行するためのサーバプログラムであるサービス実行基盤プログラム５１０を含む。
【００３７】
サービスは、各種のコンポーネントモデルによって実装可能である。また、サービス実行基盤プログラム５１０は、実装されたコンポーネントを実行する各種プログラムによって実現可能であるため、その実現方式の詳細な説明は省略する。なお、本発明の実施の形態では、サービス及びサービス実行基盤プログラム５１０はソフトウェアとして実現されているが、半導体回路などの専用のハードウェアとして実現してもよい。
【００３８】
図２は、本発明の実施の形態のビジネスプロセス開発用計算機３００の構成の一例を示す図である。
【００３９】
ビジネスプロセス開発用計算機３００は、ＣＰＵ９００、ネットワークインタフェース９１０、グラフィックインタフェース９２０、ユーザ入力インターフェース９３０、主記憶装置９４０、及び二次記憶装置９５０を備える。ＣＰＵ９００、ネットワークインタフェース９１０、グラフィックインタフェース９２０、ユーザ入力インターフェース９３０、主記憶装置９４０、及び二次記憶装置９５０は、システムバス９６０によって接続される。
【００４０】
ＣＰＵ９００は、主記憶装置９４０に記憶されたプログラムを処理することによって、各種業務処理を実行する。ネットワークインタフェース９１０は、ＣＰＵ９００の指示に従って、ネットワーク１０００介して接続されている他の計算機などと通信する。
【００４１】
ユーザ入力インターフェース９３０は、マウス又はキーボードなどの入力装置から、利用者の入力を受け付ける。グラフィックインタフェース９２０は、ディスプレイなどの画像表示装置９２１に表示する画像の処理を行う。
【００４２】
主記憶装置９４０は、ＣＰＵ９００によって処理されるプログラム及び当該プログラムの処理に必要なデータを記憶する。主記憶装置９４０に記憶されるプログラムは、ビジネスプロセス開発部３１０、フロー定義解析部３２０、変数参照関係解析部３３０、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）９７０である。主記憶装置９４０は、揮発性記憶媒体である。
【００４３】
二次記憶装置９５０は、ＣＰＵ９００からの指示に基づいて、データを入出力する。二次記憶装置９５０は、ハードディスクなどの磁気記憶装置、又はＣＤ、ＤＶＤドライブなどの光学記憶装置などの不揮発性記憶媒体であるが、これらに限定されるものではない。
【００４４】
ビジネスプロセス実行計算機２０１、サービス実行計算機（５０１、５０２）、及びクライアント用計算機７０１のハードウェア構成は、図２に示したビジネスプロセス開発用計算機３００と同様である。ビジネスプロセス開発用計算機３００と相違する点は、主記憶装置９４０に記憶されるプログラム及びデータの内容である。
【００４５】
図３は、本発明の実施の形態のビジネスプロセス実行計算機２０１の構成の一例を示す図である。
【００４６】
ビジネスプロセス実行計算機２０１のハードウェア構成は、前述したように、ビジネスプロセス開発用計算機３００と同様である。
【００４７】
ビジネスプロセス実行計算機２０１の主記憶装置９４０には、ＯＳ９７０、ビジネスプロセス実行部２２１、ロード領域判定部２２２、プロセス分割結果格納テーブル２３０、及び変数参照関係格納テーブル２４０が記憶される。なお、プロセス分割結果格納テーブル２３０及び変数参照関係格納テーブル２４０は、ビジネスプロセス実行部２２１又はロード領域判定部２２２に包含されてもよい。また、二次記憶装置９５０に格納されていてもよい。
【００４８】
サービス実行計算機（５０１、５０２）の主記憶装置９４０には、ＯＳ９７０、サービス実行基盤プログラム５１０、及びサービス実行基盤プログラムに配備されているサービスが記憶される。また、クライアント用計算機７０１の主記憶装置９４０には、ＯＳ９７０及びサービス呼び出しプログラム７１０が記憶される。
【００４９】
図４は、本発明の実施の形態のプロセス実行状態格納テーブル２５０の構成の一例を示す図である。
【００５０】
プロセス実行状態格納テーブル２５０は、ビジネスプロセス（ＢＰ）名２５１、アクティビティ名２５２、状態２５３、開始時刻２５４、及び終了時刻２５５を含む。プロセス実行状態格納テーブル２５０は、ビジネスプロセス実行部２２１によってレコードが格納及び更新される。プロセス実行状態格納テーブル２５０の各レコードは、実行されたビジネスプロセスについてアクティビティごとに格納される。
【００５１】
ビジネスプロセス名２５１は、ビジネスプロセスの名称である。アクティビティ名２５２は、ビジネスプロセスに属するアクティビティの名称である。なお、ビジネスプロセス名２５１及びアクティビティ名２５２は、それぞれを一意に特定できる情報であればよく、名称に限定されるものではなく、識別コードなどであってもよい。
【００５２】
また、同一のビジネスプロセス定義によって複数のビジネスプロセスが実行される場合には、実行されたビジネスプロセスを識別する情報がさらに追加される。
【００５３】
状態２５３は、アクティビティの実行状態である。状態２５３には、例えば、実行が完了している場合には「完了」、実行されていない場合には「未実行」と記録される。開始時刻２５４は、ビジネスプロセスの実行時にアクティビティが開始された時刻である。終了時刻２５５は、アクティビティの実行終了時刻である。
【００５４】
図５は、本発明の実施の形態の変数状態格納テーブル２６０の構成の一例を示す図である。
【００５５】
変数状態格納テーブル２６０は、ビジネスプロセス（ＢＰ）名２６１、変数名２６２及び変数値２６３を含む。変数状態格納テーブル２６０は、ビジネスプロセス実行部２２１によって格納及び更新される。変数状態格納テーブル２６０は、実行されたビジネスプロセスについて、当該ビジネスプロセスで使用される変数ごとにレコードが格納される。
【００５６】
ビジネスプロセス名２６１は、ビジネスプロセスの名称である。変数名２６２は、ビジネスプロセスで使用される変数の名称である。変数値２６３は、変数名２６２によって特定される変数に格納される値である。なお、ビジネスプロセス名２６１及び変数名２６２はそれぞれを一意に特定できる情報であればよく、名称に限定されるものではない。
【００５７】
また、同一のビジネスプロセス定義によって複数のビジネスプロセスが実行される場合には、プロセス実行状態格納テーブル２５０と同様に、実行されたビジネスプロセスを識別する情報がさらに追加される。
【００５８】
図６は、本発明の実施の形態のプロセス分割結果格納テーブル２３０の構成の一例を示す図である。
【００５９】
プロセス分割結果格納テーブル２３０は、ビジネスプロセス（ＢＰ）名２３１、領域名２３２、及びアクティビティ名２３３を含む。プロセス分割結果格納テーブル２３０は、フロー定義解析部３２０によって格納される。プロセス分割結果格納テーブル２３０は、ビジネスプロセスを構成するアクティビティごとにレコードが格納され、フロー定義解析部３２０による解析結果に基づいて領域が設定される。
【００６０】
ビジネスプロセス名２３１は、ビジネスプロセスの名称である。領域名２３２は、ビジネスプロセスを構成する領域の名称である。アクティビティ名２３３は、ビジネスプロセスを構成するアクティビティである。なお、ビジネスプロセス名、領域名、及びアクティビティ名はそれぞれを一意に特定できる情報であればよく、名称に限定されるものではない。
【００６１】
図７は、本発明の実施の形態の変数参照関係格納テーブル２４０の構成の一例を示す図である。
【００６２】
変数参照関係格納テーブル２４０は、領域名２４１及び変数名２４２を含む。変数参照関係格納テーブル２４０は、変数参照関係解析部３３０によって格納される。変数参照関係格納テーブル２４０の各レコードは、各領域で使用される変数ごとに格納される。
【００６３】
領域名２４１は、ビジネスプロセスを構成する領域の名称である。変数名２４２は、ビジネスプロセスに属する変数の名称である。なお、領域名２４１及び変数名２４２はそれぞれを一意に特定できる情報であればよく、名称に限定されるものではない。
【００６４】
図８は、本発明の実施の形態のビジネスプロセスの定義（ＸＭＬ形式）の一例を示す図である。
【００６５】
図８に示すビジネスプロセスＢＰ−Ａ１７００は、ＸＭＬ形式のＢＰＥＬによって記述されている。図８に示すビジネスプロセスでは、＜ｖａｒｉａｂｌｅ＞タグにサービスを呼び出す際に送受信されるメッセージを格納する変数の宣言が記述され、＜ｓｅｑｕｅｎｃｅ＞タグには、サービスを呼び出すアクティビティの記述、サービスを呼び出す際に送信されるメッセージを格納する変数の指定、サービスの実行によって受信したメッセージを格納する変数の指定など、ビジネスプロセスを構成するアクティビティと、そのアクティビティで利用される変数などの関連情報が記述されている。
【００６６】
ビジネスプロセスは、図８に示すようなＸＭＬ形式で記述することも可能であるが、図１５に示すように、フローチャート形式で表現することも可能である。
【００６７】
図１５は、本発明の実施の形態のビジネスプロセスの定義（フローチャート形式）の一例を示す図である。
【００６８】
本発明の実施の形態では、ビジネスプロセス開発者８００がビジネスプロセス開発用計算機３００を利用してビジネスプロセスを定義する。
【００６９】
図１５に示すフローチャート形式のビジネスプロセスの定義は、図８に示したＸＭＬ形式のビジネスプロセスの定義に対応している。したがって、汎用のビジネスプロセス開発プログラムなどを利用して、図８に示すＸＭＬ形式のビジネスプロセスの定義と図１５に示すビジネスプロセスの定義を相互に変換することが可能である。
【００７０】
ここで、図８及び図１５に示したビジネスプロセスの振る舞いについて、図８及び図１５を参照しながら説明する。
【００７１】
ビジネスプロセスＢＰ−Ａ１７００は、まず、外部からのリクエストを受信するアクティビティ（受付アクティビティ）であるｒｅｃｅｉｖｅ−Ａ１アクティビティが定義されている。ｒｅｃｅｉｖｅ−Ａ１アクティビティでは、受信したリクエストを変数ｉｎ−Ａ１に格納する。
【００７２】
続いて、ｉｎｖｏｋｅ−Ａ１アクティビティにおいて、変数ｉｎ−Ａ１を入力として外部サービスを呼び出し、結果を変数ｖａｒ−Ａ１に格納する。ｉｎｖｏｋｅアクティビティは、外部（例えば、サービス実行計算機５０１）で提供されているサービスを呼び出すアクティビティである。
【００７３】
次に、ｄｔ−Ａ１アクティビティ（ａｓｓｉｇｎアクティビティ）において、変数ｖａｒ−Ａ１の値を変換して変数ｏｕｔ−Ａ１に設定し、ｒｅｐｌｙ−Ａ１アクティビティ（ｒｅｐｌｙアクティビティ）において変換結果を外部に出力している。
【００７４】
さらに、ビジネスプロセスＢＰ−Ａ１７００には、再び外部からのリクエストを受信し、受信した内容を変数ｉｎ−Ａ２に格納するアクティビティｒｅｃｅｉｖｅ−Ａ２が定義されている。その後、変数ｖａｒ−Ａ１及び変数ｉｎ−Ａ２に基づいて変数ｖａｒ−Ａ２を生成するｄｔ−Ａ２アクティビティが定義されている。
【００７５】
続いて、ビジネスプロセスＢＰ−Ａ１７００には、生成された変数ｖａｒ−Ａ２の値を入力として外部サービスを呼び出すｉｎｖｏｋｅ−Ａ２アクティビティが定義されている。ｉｎｖｏｋｅ−Ａ２アクティビティでは、呼び出した外部サービスからの応答を変数ｏｕｔ−Ａ２に格納し、ｒｅｐｌｙ−Ａ２アクティビティによって外部に結果を出力する。
【００７６】
以降、本発明の実施の形態のビジネスプロセスの開発及び実行手順の詳細について説明する。まず、ビジネスプロセス開発者８００によってビジネスプロセスが開発（定義）された際に、ビジネスプロセスを解析する手順について説明し、その後、解析結果に基づいてビジネスプロセスを実行する手順について説明する。なお、ビジネスプロセス開発者８００によって定義されたビジネスプロセスを図８及び図１５に示したＢＰ−Ａ１７００として各手順について説明する。
【００７７】
以下、本発明の実施の形態におけるビジネスプロセスを解析する手順について説明する。なお、図１６には、図８及び図１５に示したビジネスプロセス定義を、図９に示す手順によって解析した結果を示し、適宜参照しながらビジネスプロセスを解析する手順について説明する。
【００７８】
図９は、本発明の実施の形態におけるビジネスプロセスを解析する手順を示すフローチャートである。
【００７９】
ビジネスプロセス開発者８００は、ビジネスプロセス開発用計算機３００で実行されるビジネスプロセス開発部３１０によってビジネスプロセスを定義すると、開発されたビジネスプロセス定義情報を入力情報として、フロー定義解析部３２０を実行する。
【００８０】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、フロー定義解析部３２０によって、入力されたビジネスプロセスを解析し、ビジネスプロセスが永続化されるポイント（以下、「永続化ポイント」と呼ぶ）をすべて抽出する。そして、ビジネスプロセス永続化ポイント提示部３１１によって、抽出された永続化ポイントをビジネスプロセス開発者８００に提示する（ステップ１１０３）。なお、フロー定義解析処理（ステップ１１０３）の詳細については、図１０にて後述する。
【００８１】
ここで、永続化とは、前述したように、ビジネスプロセスが長時間待ち状態になる場合などにビジネスプロセスの実行情報をＤＢなどに格納することである。永続化ポイントとは、永続化される可能性の高いポイント（タイミング）である。
【００８２】
ビジネスプロセスが長時間待ち状態となる場合とは、例えば、ビジネスプロセスが外部からの入力を受け付ける場合、すなわち、受付アクティビティにおいて外部からの入力を待機している場合である。したがって、受付アクティビティの直前をビジネスプロセスが永続化される可能性が高い永続化ポイントと判定することができる。
【００８３】
ここで、入力されたビジネスプロセスを解析し、永続化ポイントを抽出する永続化ポイント抽出処理について説明する。なお、本発明の実施の形態では、ビジネスプロセスに含まれる受付アクティビティの直前を永続化ポイントとして判定しているが、これに限定されることはなく、その他のポイントを永続化ポイントとして判定してもよい。
【００８４】
図１０は、本発明の実施の形態のビジネスプロセスを分割する永続化ポイントを抽出する永続化ポイント抽出処理の手順を示すフローチャートである。
【００８５】
永続化ポイント抽出処理は、前述したように、フロー定義解析部３２０によって実行される。
【００８６】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、まず、ビジネスプロセス開発者８００によって定義されたビジネスプロセスの最初に定義されているアクティビティをＳに設定する（ステップ１１０３１）。アクティビティＳは、直前が永続化ポイントに設定されるか否かを判定する対象のアクティビティである。
【００８７】
次に、ビジネスプロセス開発用計算機３００のＣＰＵ９００は、アクティビティＳが受付アクティビティであるか否かを判定する（ステップ１１０３２）。アクティビティＳが受付アクティビティでない場合には（ステップ１１０３２の結果が「Ｎｏ」）、アクティビティＳは永続化ポイントの候補ではないため、永続化ポイントの判定処理を終了し、ステップ１１０３５の処理を実行する。
【００８８】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、アクティビティＳが受付アクティビティであった場合には（ステップ１１０３２の結果が「Ｙｅｓ」）、アクティビティＳが永続化ポイントの候補となりうるため、さらに、アクティビティＳがビジネスプロセスの最初のアクティビティであるか否かを判定する（ステップ１１０３３）。アクティビティＳがビジネスプロセスの最初のアクティビティである場合には（ステップ１１０３３の結果が「Ｙｅｓ」）、永続化ポイントがビジネスプロセスの最初に設定されることはないため、アクティビティＳが永続化ポイントになることはない。この場合には、永続化ポイントの判定処理を終了し、ステップ１１０３５の処理を実行する。
【００８９】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、アクティビティＳがビジネスプロセスの最初のアクティビティでない場合には（ステップ１１０３３の結果が「Ｎｏ」）、アクティビティＳの直前を永続化ポイントに設定する（ステップ１１０３４）。
【００９０】
続いて、ビジネスプロセス開発用計算機３００のＣＰＵ９００は、アクティビティＳがビジネスプロセスの最後のアクティビティであるか否かを判定する（ステップ１１０３５）。アクティビティＳが最後のアクティビティであった場合には（ステップ１１０３５の結果が「Ｙｅｓ」）、本処理を終了する。
【００９１】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、アクティビティＳが最後のアクティビティでない場合には（ステップ１１０３５の結果が「Ｎｏ」）、アクティビティＳの次に処理されるアクティビティを新たにアクティビティＳに設定し（ステップ１１０３６）、ステップ１１０３２の処理に戻る。
【００９２】
以上の手順によって、ビジネスプロセス定義に含まれる受付アクティビティのうち、ビジネスプロセスの先頭に定義されたアクティビティ以外の受付アクティビティをすべて抽出し、抽出された受付アクティビティの直前を永続化ポイントとして設定することが可能となる。図１５に示すビジネスプロセス定義例ＢＰ−Ａ１７００に図１０に示した手順を適用した場合、ＢＰ−Ａ１７００にはｒｅｃｅｉｖｅ−Ａ１及びｒｅｃｅｉｖｅ−Ａ２の二つの受付アクティビティが定義されているが、ｒｅｃｅｉｖｅ−Ａ１アクティビティはＢＰ−Ａ１７００の最初のアクティビティであるため、ｒｅｃｅｉｖｅ−Ａ２の直前にのみ永続化ポイント１７２０が１つ抽出される（図１６参照）。
【００９３】
ここで、図９のフローチャートの説明に戻る。
【００９４】
続いて、ビジネスプロセス開発用計算機３００のＣＰＵ９００は、フロー定義解析部３２０による解析結果に対する修正又は確認を受け付ける（ステップ１１０４）。具体的には、ステップ１１０３の処理で抽出された永続化ポイントの中から不要なポイントの削除、又は任意の永続化ポイントの追加を受け付ける。
【００９５】
なお、フロー定義解析部３２０による解析結果は、必ずしもビジネスプロセス開発者８００に提示される必要はなく、ステップ１１０４の処理を実行することなく、ステップ１１０５以降の処理を実行するようにしてもよい。
【００９６】
ビジネスプロセス開発者８００に対するビジネスプロセスの提示は、ビジネスプロセス永続化ポイント提示部３１１によって実行される。ビジネスプロセス永続化ポイント指定部３１２によって提示されるビジネスプロセスの形式としては、例えば、図８に示すＸＭＬ形式、又は図１５に示すフローチャート形式があるが、これに限定されるものではない。
【００９７】
また、ビジネスプロセス開発者８００に提示する永続化ポイントの形式としては、例えば、ＸＭＬ形式において特殊なタグを挿入する形式、図１６に示した永続化ポイント１７２０のようにフローチャートに特別な記号を挿入して表す形式などがあるが、これに限定されるものではない。
【００９８】
本発明の実施の形態では、ビジネスプロセス永続化ポイント指定部３１２によって、ビジネスプロセスに対する永続化ポイントの追加又は永続化ポイントの削除をビジネスプロセス開発者８００から受け付けることが可能である。図１７にて永続化ポイントを追加又は削除する画面の一例を示す。
【００９９】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、ビジネスプロセス永続化ポイント指定部３１２によって、追加又は削除された永続化ポイントの情報をビジネスプロセス定義に反映する。例えば、図８に示すＸＭＬ形式のビジネスプロセス定義情報に永続化ポイントを示すタグを挿入又は削除する。
【０１００】
図１７は、本発明の実施の形態のビジネスプロセス開発者８００に提示される永続化ポイント編集画面の一例を示す図である。
【０１０１】
図１７には、ステップ１１０３の処理でフロー定義解析部３２０によって抽出された永続化ポイント１７２０に加え、ビジネスプロセス開発者８００によって新たな永続化ポイント１７３０が追加された場合の例が示されている。
【０１０２】
永続化ポイントを追加又は削除する手順について具体的に説明すると、永続化ポイントの追加は、フローチャートを構成する２つのアクティビティを連結する線を選択し、選択された線上に永続化ポイントを追加することを指定すればよい。永続化ポイントを追加する指示は、例えば、線をダブルクリックする方法としてもよいし、メニューから指示を選択する方法としてもよく、これらに限定されない。
【０１０３】
また、永続化ポイントの削除は、フローチャート上に表示されている永続化ポイントを指定し、削除を指示すればよい。永続化ポイントを削除する指示は、例えば、永続化ポイントをダブルクリックする方法としてもよいし、メニューから指示を選択する方法としてもよく、これらに限定されるものではない。
【０１０４】
また、ビジネスプロセス永続化ポイント提示部３１１は、図１７に示すように、フロー定義解析部３２０によって抽出された永続化ポイントとビジネスプロセス開発者８００によって追加された永続化ポイントを区別して表示するようにしてもよい。また、フロー定義解析部３２０によって抽出された永続化ポイントのうち、ビジネスプロセス開発者８００によって削除された永続化ポイントについては、例えば、黒塗りの菱形などを用いて、他の永続化ポイントと区別して表示してもよい。
【０１０５】
ビジネスプロセス開発者８００によって編集されたビジネスプロセスは、再度フロー定義解析部３２０に入力される。なお、ビジネスプロセス開発者８００による永続化ポイントの指定（追加）は、フロー定義解析部３２０を実行する前に実施してもよい。
【０１０６】
ここで、図９のフローチャートの説明に戻る。本発明の実施の形態では、ビジネスプロセス開発者８００によって永続化ポイントが追加又は削除されていないものとして、以降の説明を行う。
【０１０７】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、フロー定義解析部３２０によって、ステップ１１０４の処理で編集されたビジネスプロセスをさらに解析する（ステップ１１０５）。具体的には、ビジネスプロセスを領域ごとに分割し、各領域に含まれているアクティビティを抽出する。さらに、解析結果をプロセス分割結果格納テーブル２３０に格納する。
【０１０８】
ビジネスプロセスの領域分割は、ステップ１１０３及びステップ１１０４の処理によって指定された永続化ポイント、ビジネスプロセスの先頭及び最後尾を基点として、各基点間を一つの領域として切り出すことによって行われる。
【０１０９】
以下、ステップ１１０５の処理でフロー定義解析部３２０によって実行されるビジネスプロセス領域分割処理の詳細を、図１１を参照しながら説明する。
【０１１０】
図１１は、本発明の実施の形態のフロー定義解析部３２０によるビジネスプロセス領域分割処理の手順を示すフローチャートである。
【０１１１】
ビジネスプロセス領域分割処理は、前述のように、フロー定義解析部３２０によって実行される。
【０１１２】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、まず、ビジネスプロセスの最初に定義されているアクティビティをＳ及びＬに設定する（ステップ１１０５１）。アクティビティＳは、分割する領域の先頭に対応するアクティビティである。一方、アクティビティＬは、分割する領域の最後尾に対応するアクティビティである。
【０１１３】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、次に、アクティビティＬの直後が永続化ポイントとして設定されているか否かを判定する（ステップ１１０５２）。アクティビティＬの直後が永続化ポイントとして設定されていない場合には（ステップ１１０５２の結果が「Ｎｏ」）、アクティビティＬの次のアクティビティを新たなＬとして設定し（ステップ１１０５３）、ステップ１１０５２の処理に戻る。
【０１１４】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、アクティビティＬの直後が永続化ポイントとして設定されている場合には（ステップ１１０５２の結果が「Ｙｅｓ」）、アクティビティＳからＬまでを新たな領域として抽出し、領域に一意な名称を付与する（ステップ１１０５４）。
【０１１５】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、次に、アクティビティＳからＬまでの間に含まれるすべてのアクティビティの情報を抽出し、ビジネスプロセス名、及びステップ１１０５４の処理で付与した領域名と関連付けてプロセス分割結果格納テーブル２３０に格納する（ステップ１１０５５）。
【０１１６】
図６に示したプロセス分割結果格納テーブル２３０を参照すると、例えば、「ｒｅｃｅｉｖｅ−Ａ１」アクティビティが、ビジネスプロセスＢＰ−Ａ及び領域ｒｅａｌｍ−Ａ１に関連付けられている。このことは、領域ｒｅａｌｍ−Ａ１がビジネスプロセスＢＰ−Ａに含まれており、かつ、ｒｅｃｅｉｖｅ−Ａ１アクティビティが領域ｒｅａｌｍ−Ａ１に含まれていることを示している。
【０１１７】
続いて、ビジネスプロセス開発用計算機３００のＣＰＵ９００は、アクティビティＬがビジネスプロセスの最後のアクティビティであるか否かを判定する（ステップ１１０５６）。アクティビティＬがビジネスプロセスの最後のアクティビティであった場合には（ステップ１１０５６の結果が「Ｙｅｓ」）、本処理を終了する。アクティビティＬが最後のアクティビティでない場合には（ステップ１１０５６の結果が「Ｎｏ」）、アクティビティＬの次のアクティビティを新たにＳ及びＬに設定し（ステップ１１０５７）、ステップ１１０５２の処理に戻る。
【０１１８】
以上の手順によって、ステップ１１０３及びステップ１１０４の処理で指定された永続化ポイントに基づいてビジネスプロセスを領域ごとに分割し、結果をプロセス分割結果格納テーブル２３０に格納することができる。
【０１１９】
本発明の実施の形態では、ステップ１１０５までの処理の結果として、図１６に示すように、領域ｒｅａｌｍ−Ａ１（１７１０）及び領域ｒｅａｌｍ−Ａ２（１７１１）が抽出される。領域ｒｅａｌｍ−Ａ１（１７１０）には、アクティビティｒｅｃｅｉｖｅ−Ａ１、ｉｎｖｏｋｅ−Ａ１、ｄｔ−Ａ１、及びｒｅｐｌｙ−Ａ１が含まれる。また、領域ｒｅａｌｍ−Ａ２（１７１１）には、アクティビティｒｅｃｅｉｖｅ−Ａ２、ｄｔ−Ａ２、ｉｎｖｏｋｅ−Ａ２、及びｒｅｐｌｙ−Ａ２が含まれる。
【０１２０】
また、ステップ１１０５までの処理の結果は、図６に示すように、プロセス分割結果格納テーブル２３０に格納される。図６に示したプロセス分割結果格納テーブル２３０を参照すると、前述したように、ビジネスプロセスＢＰ−Ａには領域ｒｅａｌｍ−Ａ１が含まれており、更に領域ｒｅａｌｍ−Ａ１にはｒｅｃｅｉｖｅ−Ａ１アクティビティが含まれていることが１行目のレコードに表されている。以降のレコードについても同様である。
【０１２１】
ここで、図９のフローチャートの説明に戻る。
【０１２２】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、次に、変数参照関係解析部３３０によって、ステップ１１０５の処理で抽出された各領域で参照される変数を解析し、結果を変数参照関係格納テーブル２４０に格納する（ステップ１１０６）。
【０１２３】
以下、ステップ１１０６の処理で変数参照関係解析部３３０によって実行される変数参照関係解析処理の詳細を、図１２を参照しながら説明する。
【０１２４】
図１２は、本発明の実施の形態の変数参照関係解析部３３０による変数参照関係解析処理の手順を示すフローチャートである。
【０１２５】
変数参照関係解析処理は、前述のように、変数参照関係解析部３３０によって実行される。また、変数参照関係解析処理は、分割された領域ごとに実行される。
【０１２６】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、まず、領域の最初に定義されているアクティビティをＳに設定する（ステップ１１０６１）。
【０１２７】
次に、ビジネスプロセス開発用計算機３００のＣＰＵ９００は、ビジネスプロセス定義を参照し、アクティビティＳによって参照されるすべての変数名を抽出する（ステップ１１０６２）。アクティビティによって参照される変数の抽出は、例えば、図１５に示したＢＰ−Ａにおけるｒｅｃｅｉｖｅ−Ａ１では、受信したリクエストを変数ｉｎ−Ａ１に割り当てていることから、ｒｅｃｅｉｖｅ−Ａ１は変数ｉｎ−Ａ１を参照すると判定することができる。他のアクティビティについても同様に、ビジネスプロセスの定義から各アクティビティから参照される変数を特定することが可能である。
【０１２８】
次に、ビジネスプロセス開発用計算機３００のＣＰＵ９００は、ビジネスプロセスから抽出された各変数について、ステップ１１０６４、１１０６５及び１１０６６の処理を実行する（ステップ１１０６３、１１０６７）。
【０１２９】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、まず、抽出された変数について領域名及び変数名に基づいて変数参照関係格納テーブル２４０を検索し、領域名２４１が一致し、かつ、変数名２４２が一致するレコードを抽出する（ステップ１１０６４）。領域内でアクティビティＳよりも前に定義されたアクティビティで既に処理対象の変数が参照されている場合には、同一の変数を重複して変数参照関係格納テーブル２４０に登録する必要がないため、あらかじめ登録済みの変数を検索する。
【０１３０】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、ステップ１１０６４の処理で該当するレコードが存在したか否かを判定する（ステップ１１０６５）。該当するレコードが存在する場合には（ステップ１１０６５の結果が「Ｙｅｓ」）、処理対象の変数が変数参照関係格納テーブル２４０に既に登録されているため、当該変数については登録せずに他の変数について処理を継続する。
【０１３１】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、該当するレコードが存在しない場合（ステップ１１０６５の結果が「Ｎｏ」）、すなわち、領域内で処理対象の変数を利用することが登録されていない場合には、変数参照関係格納テーブル２４０に当該変数に対応するレコードを追加する（ステップ１１０６６）。変数参照関係格納テーブル２４０にレコードを追加することによって、領域内で当該変数を利用することが登録される。図７に示した変数参照関係格納テーブル２４０を参照すると、１行目のレコードには、領域ｒｅａｌｍ−Ａ１（１７０１）で変数ｉｎ−Ａ１が参照されることが表されている。以降のレコードについても同様である。
【０１３２】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、ステップ１１０６２の処理で抽出されたすべての変数についてステップ１１０６４、１１０６５及び１１０６６の処理を実行した後、アクティビティＳが領域中の最後のアクティビティであるか否かを判定する（ステップ１１０６８）。アクティビティＳが領域の最後のアクティビティの場合には（ステップ１１０６８の結果が「Ｙｅｓ」）、本処理を終了する。アクティビティＳが最後のアクティビティでない場合には（ステップ１１０６８の結果が「Ｎｏ」）、アクティビティＳの次のアクティビティを新たなＳに設定し（ステップ１１０６９）、ステップ１１０６２の処理に戻る。
【０１３３】
以上の手順によって、各領域に含まれるアクティビティによって参照されるすべての変数を抽出し、抽出された変数の名称を領域名と関連付けた結果を変数参照関係格納テーブル２４０に格納することができる。
【０１３４】
ビジネスプロセス開発用計算機３００のＣＰＵ９００は、ステップ１１０６の処理が終了すると、ビジネスプロセスの解析処理を終了する。
【０１３５】
本発明の実施の形態では、ステップ１１０６の処理の結果として、図１６に示すように、領域ｒｅａｌｍ−Ａ１（１７１０）では変数ｉｎ−Ａ１、ｖａｒ−Ａ１及びｏｕｔ−Ａ１が参照される。また、領域ｒｅａｌｍ−Ａ２（１７１１）では変数ｉｎ−Ａ２、ｖａｒ−Ａ１、ｖａｒ−Ａ２及びｏｕｔ−Ａ２が参照される。
【０１３６】
また、図７に示すように、領域ｒｅａｌｍ−Ａ１では変数ｉｎ−Ａ１、ｖａｒ−Ａ１及びｏｕｔ−Ａ１が参照され、領域ｒｅａｌｍ−Ａ２では変数ｉｎ−Ａ２、ｖａｒ−Ａ１、ｖａｒ−Ａ２及びｏｕｔ−Ａ２が参照されることが、変数参照関係格納テーブル２４０に格納される。
【０１３７】
図１３は、本発明の実施の形態のビジネスプロセス実行時の手順を示すフローチャートである。
【０１３８】
クライアント用計算機７０１は、クライアント８２０によって送信されたサービス実行要求を受け付け、サービス呼び出しプログラム７１０によって、ビジネスプロセス実行計算機２０１にサービス（ビジネスプロセス）の実行を要求する（ステップ１２０１）。ステップ１２０１の処理は、クライアント８２０からサービス実行要求を受け付けるまで待機する処理とみなすこともできる。なお、ビジネスプロセスの実行要求は、外部システムから要求されてもよい。また、プログラムなどのソフトウェアが実行されることによって要求されてもよいし、当該機能を備えたハードウェアによって要求されてもよい。
【０１３９】
ビジネスプロセス実行計算機２０１のＣＰＵ９００は、クライアント用計算機７０１によって送信されたサービス実行要求を受け付け、ビジネスプロセス実行部２２１によって、指定されたビジネスプロセスの実行を開始する。なお、ビジネスプロセスが永続化されていた場合には、ビジネスプロセスが活性化される。
【０１４０】
なお、受付アクティビティ以外のアクティビティの前に永続化ポイントが指定された場合には、ビジネスプロセスを活性化するタイミングはリクエストの受信以外の場合も含まれるが、本発明の実施の形態では受付アクティビティの前にのみ永続化ポイントが指定されている場合について説明する。
【０１４１】
ビジネスプロセス実行計算機２０１のＣＰＵ９００は、ビジネスプロセス実行部２２１によって、クライアント８２０からビジネスプロセスの実行要求を受信すると、まず、最初に実行すべきアクティビティを特定する。そして、特定されたビジネスプロセスの名称及びアクティビティの名称をロード領域判定部２２２に通知する（ステップ１２０２）。なお、受信したビジネスプロセスの実行要求に基づいて、次に実行すべきビジネスプロセス及びアクティビティを特定する技術は、従来技術である汎用のビジネスプロセス実行プログラムなどによって実現されている機能であるため、詳細を省略する。
【０１４２】
ビジネスプロセス実行計算機２０１のＣＰＵ９００は、ロード領域判定部２２２によって、ステップ１２０２の処理で通知されたビジネスプロセス名及びアクティビティ名に基づいて、次に実行すべき領域を特定する。さらに、特定された領域に含まれるアクティビティ及び変数をビジネスプロセス実行部２２１に応答する（ステップ１２０３）。
【０１４３】
以下、ステップ１２０３の処理でロード領域判定部２２２によって実行されるロード領域特定処理の詳細を、図１４を参照しながら説明する。
【０１４４】
図１４は、本発明の実施の形態のロードされる領域に含まれるアクティビティと当該領域で使用される変数を取得する手順を示すフローチャートである。
【０１４５】
ビジネスプロセス実行計算機２０１のＣＰＵ９００は、まず、ビジネスプロセス実行部２２１から通知されたアクティビティ名が含まれる領域を特定する（ステップ１４０１）。具体的には、通知されたビジネスプロセス名及びアクティビティ名に基づいて、プロセス分割結果格納テーブル２３０を検索し、ビジネスプロセス名２３１が一致し、かつ、アクティビティ名２３３が一致するレコードを抽出する。
【０１４６】
次に、ビジネスプロセス実行計算機２０１のＣＰＵ９００は、ステップ１４０１の処理で特定された領域に含まれるアクティビティを抽出する（ステップ１４０２）。具体的には、ビジネスプロセス名及びステップ１４０１の処理で特定された領域の名称に基づいて、プロセス分割結果格納テーブル２３０を検索し、ビジネスプロセス名２３１が一致し、かつ、領域名２３２が一致するすべてのアクティビティ名を取得する。
【０１４７】
さらに、ビジネスプロセス実行計算機２０１のＣＰＵ９００は、ステップ１４０１の処理で特定された領域で使用される変数を抽出する（ステップ１４０３）。具体的には、ステップ１４０１の処理で特定された領域の名称に基づいて、変数参照関係格納テーブル２４０を検索し、領域名２４１が一致するすべての変数名を取得する。
【０１４８】
最後に、ビジネスプロセス実行計算機２０１のＣＰＵ９００は、ステップ１４０２の処理で抽出されたすべてのアクティビティ名、及びステップ１４０３の処理で抽出されたすべての変数名をビジネスプロセス実行部２２１に通知する（ステップ１４０４）。
【０１４９】
ここで、図１３のフローチャートの説明に戻る。
【０１５０】
ビジネスプロセス実行計算機２０１のＣＰＵ９００は、ビジネスプロセス実行部２２１によって、ステップ１２０３の処理で応答されたアクティビティを含むフロー定義と変数の定義情報及びその値をメモリ上にロードし、領域内に定義されたビジネスプロセス（アクティビティ）を実行する。さらに、実行結果をプロセス実行状態格納テーブル２５０及び変数状態格納テーブル２６０に格納することによってビジネスプロセスを永続化し、非活性状態とする（ステップ１２０４）。
【０１５１】
ビジネスプロセス実行計算機２０１のＣＰＵ９００は、ビジネスプロセス実行部２２１によって、ステップ１２０４の処理で実行された領域がビジネスプロセスに含まれる最後の領域であるか否かを判定する（ステップ１２０５）。最後の領域である場合には（ステップ１２０５の結果が「Ｙｅｓ」）、ビジネスプロセスの実行を終了する。最後の領域でない場合には（ステップ１２０５の結果が「Ｎｏ」）、ビジネスプロセスが活性化されるまで待機するために、ステップ１２０１の処理に戻る。
【０１５２】
以上、図１３に示した手順によって、分割されたビジネスプロセスを領域ごとに実行することができる。
【０１５３】
次に、ビジネスプロセスが制御構造を含む場合の解析手順について、図１８を参照しながら説明する。制御構造は、ビジネスプロセスにおいて、分岐処理又は並列処理などのフロー制御を行う構造である。具体的には、制御構造に対応するアクティビティがビジネスプロセスに含まれる。
【０１５４】
分岐処理は、ビジネスプロセスに定義された変数の値などに基づいて、ビジネスプロセス実行時のフローを選択（制御）するための制御構造である。また、並列処理は、複数の処理フローを並行して処理するための制御構造である。
【０１５５】
図１８は、本発明の実施の形態の制御構造を含むビジネスプロセスの一例を示す図である。
【０１５６】
図１８に示すビジネスプロセスＢＰ−Ｂ１８００の一例では、「ｉｎｖｏｋｅ−Ａ１」の後に制御構造１８５０が含まれている。
【０１５７】
まず、制御構造１８５０が分岐処理であった場合について説明する。制御構造１８５０は、所定の条件が満たされた場合にはｉｎｖｏｋｅ−Ａ２からｒｅｐｌｙ−Ａ３の４つのアクティビティが実行される。また、条件が満たされない場合にはｉｎｖｏｋｅ−Ａ４からｒｅｐｌｙ−Ａ５までの４つのアクティビティが実行される。
【０１５８】
一方、制御構造１８５０が並列処理であった場合には、ｒｅｐｌｙ−Ａ１アクティビティが実行された後、ｉｎｖｏｋｅ−Ａ２からｒｅｐｌｙ−Ａ３の４つのアクティビティとｉｎｖｏｋｅ−Ａ４からｒｅｐｌｙ−Ａ５までの４つのアクティビティが並行して実行される。そして、ｒｅｐｌｙ−Ａ３及びｒｅｐｌｙ−Ａ５の両方の処理が終了した後、ｉｎｖｏｋｅ−Ａ７以降の処理が実行される。
【０１５９】
ここで、制御構造を含むビジネスプロセスの解析処理について説明すると、ビジネスプロセスに制御構造が含まれる場合には、あらかじめビジネスプロセスを制御構造の前後で分割し、制御構造を含まないビジネスプロセスに分割する。そして、分割された各フローについて図９に示した処理手順を適用することによって、さらに領域を分割する。すなわち、図９に示したフロー定義解析部３２０によってビジネスプロセスの解析処理を実行する前に、制御構造の前後に永続化ポイントを付加する前処理を実行すればよい。
【０１６０】
図１８に示すビジネスプロセスＢＰ−Ｂ１８００は、ビジネスプロセスの開始から制御構造の開始までをフロー１８０１、制御構造に含まれる各フローをフロー１８１０及び１８１１、制御構造終了後からビジネスプロセスの終了までをフロー１８０２として分割される。
【０１６１】
さらに、ビジネスプロセスが制御構造を含む場合の別の解析手順について、図１９を参照しながら説明する。
【０１６２】
図１９は、本発明の実施の形態の制御構造を含むビジネスプロセスの一例を示す図である。ビジネスプロセスの構造自体は、図１８に示した構造と同じである。
【０１６３】
図１９に示した解析結果は、制御構造を特別に区別することなく、領域を分割した結果である。このため、制御構造開始前の領域１９０１には制御構造内のフローで抽出された最初の永続化ポイントである１９１０及び１９１１よりも前に定義されているアクティビティｉｎｖｏｋｅ−Ａ２及びｉｎｖｏｋｅ−Ａ５が含まれている。
【０１６４】
また、制御構造内のフローを含む領域１９０２及び１９０３は、制御構造終了後の最初の永続化ポイント１９１２までに定義されているアクティビティｉｎｖｏｋｅ−Ａ７を含んでいることを示している。すなわち、図１９の例は、制御構造に含まれる個々のフローについて、最初の永続化ポイントまでを制御構造の開始前の領域に含まれるものとし、また、各フローの最後の領域は、制御構造終了後の最初の永続化ポイントまでに定義されたアクティビティを含むことを示している。
【０１６５】
なお、制御構造が並列の場合には、ｉｎｖｏｋｅ−Ａ７が領域１９０２及び１９０３に重複して含まれるため、領域ごとにアクティビティを実行すると、同期せずにｉｎｖｏｋｅ−Ａ７が実行されてしまうおそれがある。したがって、制御構造が並列の場合には、制御構造を区別せずに領域を分割すると問題が生じる可能性がある。
【０１６６】
以上、図１８及び図１９に示した方法などによって、制御構造を含むビジネスプロセスを領域ごとに分割することが可能となる。
【０１６７】
次に、図９にて前述した手順によってビジネスプロセスが解析され、当該ビジネスプロセスが実行された後、当該ビジネスプロセスの稼動統計に基づいて、ビジネスプロセスの各領域を再構成する方法について説明する。なお、本発明の実施の形態では、稼動統計として平均値を用いるが、これ以外のものであってもよい。
【０１６８】
ビジネスプロセスの各領域を再構成する手順は、図９に示した手順とほぼ同様であり、フロー定義解析部３２０によって実行される。
【０１６９】
ビジネスプロセスの再構成時において追加される手順は、永続化ポイントを抽出するアルゴリズム（図１０参照）において、ビジネスプロセスの稼動状況に基づいて、永続化ポイントを設定する。
【０１７０】
具体的には、まず、図１０におけるアクティビティＳの開始時刻とアクティビティＳの前に実行されるアクティビティの終了時刻の差の平均値を算出する。そして、算出された値が基準となる値（所定の閾値）よりも大きい場合、アクティビティＳの前に実行されるアクティビティの終了からＳの実行が開始されるまでの時間が長いと判定し、アクティビティＳの前を永続化ポイントに指定する。
【０１７１】
一方、算出された値が基準となる値よりも小さい場合には、アクティビティＳの前に実行されたアクティビティの終了からアクティビティＳの実行開始までの時間が短いと判定し、アクティビティＳが受付アクティビティであっても、アクティビティＳの直前を永続化ポイントとして設定しないようにする。
【０１７２】
なお、アクティビティＳの開始時刻及びアクティビティＳの前に実行されるアクティビティの終了時刻は、プロセス実行状態格納テーブル２５０から取得することができる。具体的には、ビジネスプロセス名と、アクティビティＳ及びアクティビティＳの前に実行されるアクティビティ名に基づいて、プロセス実行状態格納テーブル２５０を検索する。そして、ビジネスプロセス名２５１が一致し、かつ、アクティビティ名２５２が一致するレコードを抽出し、開始時刻２５４又は終了時刻２５５を取得する。
【０１７３】
また、基準となる値は、固定された数値情報（例えば３０秒など）であってもよいし、ビジネスプロセス開発者８００が指定した特定の数値データであってもよい。さらに、ビジネスプロセス全体の実行時間から算出された数値であってもよいし、ビジネスプロセスによって提供されるサービスに依存する値でもよい。
【０１７４】
以上の手順によって、ビジネスプロセスの実行時に稼動統計に基づいて動的に領域を分割することが可能となり、より効率的なビジネスプロセスの実行を実現できる。なお、ビジネスプロセス実行時の再構成は、必ずしも実施される必要はなく、ビジネスプロセスを定義した場合にのみ領域を分割するようにしてもよい。
【０１７５】
最後に、図１５に示すビジネスプロセスＢＰ−Ａ１７００に対し、本発明の実施の形態によるビジネスプロセスの解析及び実行方法を適用した場合の効果について、図２０及び図２１を参照しながら説明する。
【０１７６】
前述のように、ビジネスプロセスＢＰ−Ａ１７００をフロー定義解析部３２０によって解析すると、ビジネスプロセスＢＰ−Ａ１７００は二つの領域に分割される（図１６における領域１７１０及び１７２０）。
【０１７７】
図２０及び図２１は、本発明の実施の形態のビジネスプロセスの分割及び実行による効果を説明する図である。
【０１７８】
図２０は、ビジネスプロセスＢＰ−Ａ１７００の最初のアクティビティであるｒｅｃｅｉｖｅ−Ａ１が実行されるタイミングでメモリ上に展開される情報を説明する図である。図２０の表において太枠で囲まれた各レコードが、ｒｅｃｅｉｖｅ−Ａ１アクティビティが実行されるタイミングで読み込まれる。
【０１７９】
ビジネスプロセスＢＰ−Ａ１７００は、図１６に示した領域ｒｅａｌｍ−Ａ１（１７１０）に示すように、ｒｅｃｅｉｖｅ−Ａ１アクティビティからｒｅｐｌｙ−Ａ１アクティビティまでが一つの領域として分割される。したがって、メモリ上にはｒｅｃｅｉｖｅ−Ａ１アクティビティからｒｅｐｌｙ−Ａ１アクティビティまでのフロー定義と、ｒｅｃｉｖｅ−Ａ１アクティビティからｒｅｐｌｙ−Ａ１アクティビティの実行中に参照される変数であるｉｎ−Ａ１、ｖａｒ−Ａ１及びｏｕｔ−Ａ１が展開される。
【０１８０】
従来は、領域ｒｅａｌｍ−Ａ１に含まれるアクティビティを実行するために必要のないフロー定義情報（ｒｅｃｅｉｖｅ−Ａ２アクティビティからｒｅｐｌｙ−Ａ２アクティビティまでの）及び変数（ｉｎ−Ａ２、ｖａｒ−Ａ２及びｏｕｔ−Ａ２）、すなわち、図２０の表に格納されているすべてのレコードがメモリに読み込まれていた。
【０１８１】
本発明の実施の形態では、図２０中の表において太枠で囲まれているレコードのみがメモリに読み込まれるため、従来と比較して、データの読み込み量、及びメモリ上に展開される情報量を削減することができる。
【０１８２】
図２１は、ｒｅｃｅｉｖｅ−Ａ１アクティビティの実行が完了したタイミングで各テーブルに書き込まれる情報を示している。
【０１８３】
ｒｅｃｅｉｖｅ−Ａ１アクティビティの実行が完了すると、ビジネスプロセスＢＰ−Ａ１７００が永続化され、各テーブルにビジネスプロセスの実行状態及び各変数の状態が格納される。図２１中の表において太枠で囲まれているレコードは、ｒｅｃｅｉｖｅ−Ａ１アクティビティの実行完了時に書き込まれるレコードである。
【０１８４】
従来は、ビジネスプロセスＢＰ−Ａ１７００の永続化時に、図２１中の表に格納されているすべてのレコードが書き込まれていたが、本発明の実施の形態では、太枠内の情報のみが書き込まれるため、書き込まれるデータ量を削減することができる。
【０１８５】
本発明の実施の形態によれば、ビジネスプロセスを領域ごとに分割して実行することによって、ビジネスプロセス実行時に必要なリソース量、特にメモリ使用量を削減することができる。
【０１８６】
また、本発明の実施の形態によれば、ビジネスプロセスを領域ごとに分割することによって、ビジネスプロセスの永続化時に書き込まれるデータ量、及び活性化時に読み出されるデータ量を削減することによって、ビジネスプロセスの実行性能を向上させることができる。
【図面の簡単な説明】
【０１８７】
【図１】本発明の実施の形態のＳＯＡシステムの構成の一例を示す図である。
【図２】本発明の実施の形態のビジネスプロセス開発用計算機の構成の一例を示す図である。
【図３】本発明の実施の形態のビジネスプロセス実行計算機の構成の一例を示す図である。
【図４】本発明の実施の形態のプロセス実行状態格納テーブルの構成の一例を示す図である。
【図５】本発明の実施の形態の変数状態格納テーブルの構成の一例を示す図である。
【図６】本発明の実施の形態のプロセス分割結果格納テーブルの構成の一例を示す図である。
【図７】本発明の実施の形態の変数参照関係格納テーブルの構成の一例を示す図である。
【図８】本発明の実施の形態のビジネスプロセスの定義（ＸＭＬ形式）の一例を示す図である。
【図９】本発明の実施の形態におけるビジネスプロセスを解析する手順を示すフローチャートである。
【図１０】本発明の実施の形態のビジネスプロセスを分割する永続化ポイントを抽出する永続化ポイント抽出処理の手順を示すフローチャートである。
【図１１】本発明の実施の形態のフロー定義解析部によるビジネスプロセス領域分割処理の手順を示すフローチャートである。
【図１２】本発明の実施の形態の変数参照関係解析部による変数参照関係解析処理の手順を示すフローチャートである。
【図１３】本発明の実施の形態のビジネスプロセス実行時の手順を示すフローチャートである。
【図１４】本発明の実施の形態のロードされる領域を特定し、特定された領域に含まれるアクティビティと特定された領域で使用される変数を取得する手順を示すフローチャートである。
【図１５】本発明の実施の形態のビジネスプロセスの定義（フローチャート形式）の一例を示す図である。
【図１６】本発明の実施の形態のビジネスプロセスが解析された後の状態の一例を示す図である。
【図１７】本発明の実施の形態のビジネスプロセス開発者に提示される永続化ポイント編集画面の一例を示す図である。
【図１８】本発明の実施の形態の制御構造を含むビジネスプロセスの一例を示す図である。
【図１９】本発明の実施の形態の制御構造を含むビジネスプロセスの一例を示す図である。
【図２０】本発明の実施の形態のビジネスプロセスの分割及び実行による効果を説明する図である。
【図２１】本発明の実施の形態のビジネスプロセスの分割及び実行による効果を説明する図である。
【符号の説明】
【０１８８】
２０１    ビジネスプロセス実行計算機
２２１    ビジネスプロセス実行部
２２２    ロード領域判定部
２３０    プロセス分割結果格納テーブル
２４０    変数参照関係格納テーブル
２５０    プロセス実行状態格納テーブル
２６０    変数状態格納テーブル
３００    ビジネスプロセス開発用計算機
３１０    ビジネスプロセス開発部
３１１    ビジネスプロセス永続化ポイント提示部
３１２    ビジネスプロセス永続化ポイント指定部
３２０    フロー定義解析部
３３０    変数参照関係解析部
５０１    サービス実行計算機
５１０    サービス実行基盤プログラム
７０１    クライアント用計算機
７１０    サービス呼び出しプログラム
８００    ビジネスプロセス開発者
８２０    クライアント
９００    ＣＰＵ
９１０    ネットワークインタフェース
９２０    グラフィックインタフェース
９２１    画像表示装置
９３０    ユーザ入力インターフェース
９４０    主記憶装置
９５０    二次記憶装置
９６０    システムバス
１０００    ネットワーク
【図１】
2010026695.tif 000003
【図２】
2010026695.tif 000004
【図３】
2010026695.tif 000005
【図４】
2010026695.tif 000006
【図５】
2010026695.tif 000007
【図６】
2010026695.tif 000008
【図７】
2010026695.tif 000009
【図８】
2010026695.tif 000010
【図９】
2010026695.tif 000011
【図１０】
2010026695.tif 000012
【図１１】
2010026695.tif 000013
【図１２】
2010026695.tif 000014
【図１３】
2010026695.tif 000015
【図１４】
2010026695.tif 000016
【図１５】
2010026695.tif 000017
【図１６】
2010026695.tif 000018
【図１７】
2010026695.tif 000019
【図１８】
2010026695.tif 000020
【図１９】
2010026695.tif 000021
【図２０】
2010026695.tif 000022
【図２１】
2010026695.tif 000023