(57)【要約】【課題】  オペレーションの電文構造の変更を含むビジネスプロセスの動的な定義変更を行うと、ビジネスプロセスから非同期呼び出ししたサービスがビジネスプロセスをコールバックすることができなくなり、ビジネスプロセスの実行が停止する。【解決手段】  電文構造定義の差分情報から、サービスが送信する電文をビジネスプロセスのオペレーションが要求する電文の構造に変換する手順を生成する。電文受信時は、前述の電文変換手順により電文の構造を変換してから処理する。【選択図】  図１
2010134574.tif 000002
【特許請求の範囲】
【請求項１】
オペレーションの電文構造の変更を含むビジネスプロセスの動的な定義変更を行う計算機システムにおけるビジネスプロセス定義変更方法において、
前記計算機システムは、オペレーションの電文構造の変更を含むビジネスプロセスの定義変更を要求するビジネスプロセス配備リクエストから新しいビジネスプロセス定義を取得して記憶装置へ格納し、
前記計算機システムは、変更前のビジネスプロセス定義に含まれている電文構造と前記格納した新しいビジネスプロセス定義に含まれている電文構造の差から電文の変換手順書を作成して記憶装置へ格納し、
前記計算機システムは、ビジネスプロセス実行部に対し、ビジネスプロセスインスタンスの実行を一旦停止するように指示し、前記計算機システムは、前記格納した新しいビジネスプロセス定義を実行に用いるビジネスプロセス定義と入れ替えた後、前記ビジネスプロセス実行部に対し、ビジネスプロセスの実行再開を指示することを特徴とするビジネスプロセス定義変更方法。
【請求項２】
前記計算機システムは、ビジネスプロセスの実行の際に、前記電文の変換手順書を用いて変更前のビジネスプロセス定義の電文構造を変更後のビジネスプロセス定義の電文構造に変換して記憶装置へ格納し、その変換した電文をビジネスプロセスの処理に用いることを特徴とする請求項１に記載されたビジネスプロセス定義変更方法。
【請求項３】
前記計算機システムは、ビジネスプロセスの実行の際に用いられている電文の構造が前記変更前のビジネスプロセス定義の電文構造に合致する場合に前記電文構造の変換を行うことを特徴とする請求項２に記載されたビジネスプロセス定義変更方法。
【請求項４】
オペレーションの電文構造の変更を含むビジネスプロセスの動的な定義変更を行う計算機システムにおいて、
オペレーションの電文構造の変更を含むビジネスプロセスの定義変更を要求するビジネスプロセス配備リクエストをビジネスプロセス実行基盤側装置へ送信するビジネスプロセス開発基盤側装置と、
前記ビジネスプロセス開発基盤側装置から送信されたビジネスプロセス配備リクエストから新しいビジネスプロセス定義を取得して記憶装置へ格納し、変更前のビジネスプロセス定義に含まれている電文構造と前記格納した新しいビジネスプロセス定義に含まれている電文構造の差から電文の変換手順書を作成して記憶装置へ格納し、ビジネスプロセス実行部に対してビジネスプロセスインスタンスの実行を一旦停止するように指示し、前記格納した新しいビジネスプロセス定義を実行に用いるビジネスプロセス定義と入れ替えた後、前記ビジネスプロセス実行部に対し、ビジネスプロセスの実行再開を指示するビジネスプロセス実行基盤側装置とを備えることを特徴とする計算機システム。
【請求項５】
オペレーションの電文構造の変更を含むビジネスプロセスの動的な定義変更を行う計算機システムにおけるビジネスプロセス定義変更方法をコンピュータに実行させるためのプログラムにおいて、
前記計算機システムは、オペレーションの電文構造の変更を含むビジネスプロセスの定義変更を要求するビジネスプロセス配備リクエストから新しいビジネスプロセス定義を取得して記憶装置へ格納し、
前記計算機システムは、変更前のビジネスプロセス定義に含まれている電文構造と前記格納した新しいビジネスプロセス定義に含まれている電文構造の差から電文の変換手順書を作成して記憶装置へ格納し、
前記計算機システムは、ビジネスプロセス実行部に対し、ビジネスプロセスインスタンスの実行を一旦停止するように指示し、前記計算機システムは、前記格納した新しいビジネスプロセス定義を実行に用いるビジネスプロセス定義と入れ替えた後、前記ビジネスプロセス実行部に対し、ビジネスプロセスの実行再開を指示することを特徴とするビジネスプロセス定義変更方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビジネスプロセスの動的な定義変更を行う技術に関する。
【背景技術】
【０００２】
電子化された申請書等を予め決められた作業手順に従って集配信し、決裁等の業務処理を遂行するワークフローシステムがある。これまで、ワークフローシステムは作業手順に従って人と人のワークフローを管理する、ヒューマン型ワークフローが主流であった。しかし、近年、インターネットやイントラネットの技術向上に伴って業務の情報システム化が進み、情報システムを連携させて業務処理を遂行するシステム型ワークフローに注目が集まっている。
【０００３】
情報システム連携の技術として、ＷＳ−ＢＰＥＬ（例えば非特許文献１参照）等のビジネスプロセス技術仕様が提案されている。ビジネスプロセス技術仕様では、どの情報システム（ＷＳ−ＢＰＥＬではサービスと呼ぶ）をどのような順序で連携するか（ビジネスプロセス）を定義する。
【０００４】
ワークフローシステムの利用にあたっては、ビジネス環境等の変化に柔軟に対応できることが求められる。例えば、企業の合併・統合や法律改正等によって業務手順の一部が変わると、ワークフローシステムの修正が必要になるためである。
【０００５】
ワークフローシステムの業務手順を変更するには、２つの方法がある。
１つは、実行中のワークフロー案件を停止した後、業務手順を変更した新しいワークフロー定義をワークフローシステムに配備し直し、再度、ワークフロー案件を投入する方法である。この方法は、ワークフロー案件を１からやり直す必要があるため、業務手順の入れ替えコストが大きい。また、利用者の多いワークフローシステムでは、実行中のワークフロー案件を停止する間に次のワークフロー案件が投入される可能性があり、業務手順を入れ替える機会の確保が難しい。
【０００６】
このような問題を解決するために、ワークフローシステムを多重構成にし、系切り替え装置（又はそれに相当する機能を持った装置）を用いてシステムを一部づつ更新する方法（例えば、非特許文献２参照）がある。しかし、既に実行中のワークフロー案件は古い業務手順のまま処理されるため、環境の変化に柔軟に対応できないという課題が残る。
【０００７】
もう１つは、ワークフロー案件の実行中に業務手順を動的に変更する方法である。例えば、非特許文献３では、ヒューマン型ワークフローシステムにおいて、システムが提供する専用機能を使って実行中のワークフロー案件の業務手順を動的に変更する方法が示されている。この方法は実行中のワークフロー案件を中断する必要がなく、また、ワークフロー案件が実行中であっても最新の業務手順で処理を継続するため、環境の変化に柔軟に対応することができる。
【０００８】
【非特許文献１】Diane Jordan, John Evdemon、OASIS Web Services Business Process Execution Language Version 2.0、[online]、2007年4月11日、OASIS Web Services Business Process Execution Language(WSBPEL)TC、［2008年10月28日検索］、インターネット＜URL:http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html＞
【非特許文献２】樫山友一、連載：サーバサイドJava初心者のためのWebシステム入門 最終回 J2EEサーバの運用で手を抜かないために、[online]、2002年12月3日、アイティメディア株式会社、［2008年10月28日検索］、インターネット＜URL:http://www.atmarkit.co.jp/fjava/rensai2/websys11/websys11.html＞
【非特許文献３】(株)日立システムアンドサービス、Baristaビジネスコンポーネント/Workflowの特徴、[online]、2002年12月3日、(株)日立システムアンドサービス、［2008年10月28日検索］、インターネット＜http://www.hitachi-system.co.jp/barista/sp/component/g-tokucho.html, http://www.hitachi-system.co.jp/barista/sp/component/wf/13.html＞
【非特許文献４】Business Process Modeling Notation, V1.1、[online]、2008年1月、Object Management Group, Inc.、［2008年10月28日検索］、インターネット＜URL:http://www.bpmn.org/Documents/BPMN%201-1%20Specification.pdf＞
【非特許文献５】Nilo Mitra, Yves Lafon、SOAP Version 1.2 Part 0: Primer (Second Edition)、[online]、2007年4月27日、W3C(MIT, ERCIM, Keio)、［2008年10月28日検索］、インターネット＜URL:http://www.w3.org/TR/soap12-part0/＞
【非特許文献６】David C. Fallside, Priscilla Walmsley、XML Schema Part 0: Primer Second Edition、[online]、2004年10月28日、W3C(MIT, ERCIM, Keio)、［2008年10月28日検索］、インターネット＜URL:http://www.w3.org/TR/xmlschema-0/＞
【非特許文献７】James Clark, Steve DeRose、XML Path Language(XPath) Version 1.0、[online]、1999年11月16日、W3C(MIT, INRIA, Keio)、［2008年10月28日検索］、インターネット＜URL:http://www.w3.org/TR/xpath＞
【非特許文献８】James Clark、XSL Transformations(XSLT) Version 1.0、[online]、1999年11月16日、W3C(MIT, INRIA, Keio)、［2008年10月28日検索］、インターネット＜URL:http://www.w3.org/TR/xslt.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００９】
前記のように非特許文献３のような手法を使うことでシステム型ワークフローにおいても動的に業務手順を変更することができる。しかし、システム型ワークフローでは、ワークフローシステムと情報システムの間で電子的に情報（ＷＳ−ＢＰＥＬでは電文と呼ぶ）を交換するため、変更によってビジネスプロセスのインタフェースが変わらないように保証しなければならない制約がある。
【００１０】
具体例を示す。図１６は業務手順を変更する前のビジネスプロセスである。ビジネスプロセス８１は、ビジネスプロセスの業務手順をＢＰＭＮ（Ｂｕｓｉｎｅｓｓ  Ｐｒｏｃｅｓｓ  Ｍｏｄｅｌｉｎｇ  Ｎｏｔａｔｉｏｎ）（非特許文献４参照）で表記したものである。
【００１１】
ビジネスプロセス８１は、開始アクティビティ８１１〜８１７と業務手順に沿ってアクティビティを連結したコネクション８１８から構成される。各アクティビティの種別はアクティビティ一覧８４の通りである。アクティビティ一覧８４は、番号列８４１とアクティビティ種別列８４２１から構成される。番号列８４１は、各アクティビティに振られた番号を表し、アクティビティ種別列８４２１はそのアクティビティの種類を表す。
【００１２】
アクティビティ８１１は開始アクティビティで、ビジネスプロセスの開始を表す。アクティビティ８１２は受付アクティビティで、ビジネスプロセスを利用するリクエスタからの要求を受信する。アクティビティ８１３はサービス呼び出しアクティビティで、業務処理を行うためにサービス８３が提供する機能（ＷＳ−ＢＰＥＬではサービスのオペレーションと呼ぶ）を呼び出す。サービスの呼び出しは、サービスアダプタ８２を介して行う。例えば、サービス８３がＷｅｂサービスの場合、サービスアダプタ８２はビジネスプロセス８１が送信する電文をＳＯＡＰメッセージ（非特許文献５参照）に変換し、サービス８３に送信する。図１６では、アクティビティ８１３は非同期通信でサービス８３を呼び出すようになっており、サービス８３の処理結果は、サービス８３からビジネスプロセス８１のオペレーションを呼び戻す（コールバックする）ことでビジネスプロセス８１に返却する。アクティビティ８１４は、サービス８３の処理中に並行実行する任意のアクティビティである。サービスの処理に時間がかかる場合、このようにサービスを非同期で呼び出し、その間にビジネスプロセスで並行して業務手順を進める方法がしばしば採用される。アクティビティ８１５はサービス８３からのコールバックを受け取る受付アクティビティである。アクティビティ８１６は応答アクティビティで、ビジネスプロセスの処理結果をリクエスタに応答する。アクティビティ８１７は終了アクティビティで、ビジネスプロセスの終了を意味する。
【００１３】
アクティビティ８１５（受付アクティビティ）のオペレーションの電文構造を図１７に示す。電文構造定義８１５１は、オペレーションが要求する電文の構造を定義したファイルである。一般的には、ＸＭＬスキーマ定義（非特許文献６参照）等が用いられる。電文構造定義８１５１は、電文の構造とその型を定義した要素８１５１１〜８１５１４で構成される。要素８１５１１は、電文のルート要素を表す。要素８１５１２は、ルート要素の直下にｃｈｉｌｄ１という名称でＳｔｒｉｎｇ型（文字列型）の子要素があることを表している。要素８１５１３は、ルート要素の直下にｃｈｉｌｄ２という名称でＳｔｒｉｎｇ型の子要素があることを表している。要素８１５１４は、ルート要素の直下にｃｈｉｌｄ３という名称でｎｕｍｅｒｉｃ型（数値型）の子要素があることを表している。
【００１４】
図１８は業務手順を変更した後のビジネスプロセスである。ビジネスプロセス８５は、アクティビティ８５１〜８５８と業務手順に沿ってアクティビティを連結したコネクション８５９から構成される。各アクティビティの種別はアクティビティ一覧８８の通りである。ビジネスプロセス８５は、ビジネスプロセス８１に対し変更範囲８５０で示した部分に変更を行ったものである。すなわち、アクティビティ８５１〜８５４、８５６〜８５７はそれぞれアクティビティ８１１〜８１４、８１６〜８１７と同一であり、また、サービスアダプタ８６とサービスアダプタ８２、サービス８７とサービス８３も同一である。アクティビティ８５５はサービス８７からのコールバックを受け取る受付アクティビティである。ビジネスプロセス８５では、後続の業務手順を変更した影響で、図１９に示すように電文構造の変更が行われている。アクティビティ８５８は、ビジネス環境の変更に合わせて追加された任意のアクティビティである。
【００１５】
アクティビティ８５５（受付アクティビティ）のオペレーションの電文構造を図１９に示す。電文構造定義８５５１は、オペレーションが要求する電文の構造を定義したファイルである。電文構造定義８５５１は、電文の構造とその型を定義した要素８５５１１〜８５５１４で構成される。電文構造定義８５５１は、電文構造定義８１５１に対し変更範囲８５５１０で示した部分に変更を行ったものである。すなわち、要素８５５１１、８５５１２、８５５１４はそれぞれ要素８１５１１、８１５１２、８１５１４と同一である。ルート要素８５５１１直下の要素８５５１３は、Ｓｔｒｉｎｇ型の要素からｎｕｍｅｒｉｃ型の要素に変更が行われている。
【００１６】
このようなビジネスプロセス定義の動的な変更を行った場合、サービスからのコールバックを受け取るアクティビティ８５５で通信エラーが発生する。サービス８７は電文構造定義８１５１に定義された形式でアクティビティ８５５のオペレーションを呼び出すのに対し、アクティビティ８５５は電文構造定義８５５１に定義された形式でなければ電文を受け取ることができないためである。この結果、ビジネスプロセス８５はアクティビティ８５５よりも先を実行することができず、業務処理が停止することになる。
【課題を解決するための手段】
【００１７】
本発明では、電文構造定義の差分情報から、サービスが送信する電文をビジネスプロセスのオペレーションが要求する電文の構造に変換する手順を生成する。電文受信時は、前述の電文変換手順により電文の構造を変換してから処理する。
【００１８】
すなわち本発明の計算機システムでは、オペレーションの電文構造の変更を含むビジネスプロセスの定義変更を要求するビジネスプロセス配備リクエストを受信すると、そのビジネスプロセス配備リクエストから新しいビジネスプロセス定義を取得し、変更前のビジネスプロセス定義に含まれている電文構造と前記取得した新しいビジネスプロセス定義に含まれている電文構造の差から電文の変換手順書を作成して記憶装置へ格納しておく。
【００１９】
そして本発明の計算機システムは、ビジネスプロセス実行部に対し、ビジネスプロセスインスタンスの実行を一旦停止するように指示し、前記取得した新しいビジネスプロセス定義を、実行に用いるビジネスプロセス定義と入れ替えた後、前記ビジネスプロセス実行部に対し、ビジネスプロセスの実行再開を指示する。
【００２０】
次に本発明の計算機システムでは、ビジネスプロセスの実行の際に、前記電文の変換手順書を用いて変更前のビジネスプロセス定義の電文構造を変更後のビジネスプロセス定義の電文構造に変換して記憶装置へ格納し、その変換した電文を以後のビジネスプロセスの処理に用いるようにする。
【発明の効果】
【００２１】
本発明により、オペレーションの電文構造の変更を含むビジネスプロセスの動的な定義変更が可能になる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を適用する実施形態を添付図面に基づいて説明する。
図１は、本発明の実施形態を適用する計算機システムを示す構成図である。
本システムは、リクエスタ１、ビジネスプロセス開発基盤２、ビジネスプロセス実行基盤３、同期通信を行うサービス（同期通信）４１、非同期通信を行うサービス（非同期通信）４２から構成され、それぞれネットワークで接続されている。本実施形態の実施に際して、リクエスタやサービスの個数は任意である。以降、ビジネスプロセス技術仕様としてＷＳ−ＢＰＥＬ及びその関連技術仕様を使用するが、本発明はこれに限定されるものではない。
【００２３】
また本実施形態において、コンピュータを図１の各処理部として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００２４】
リクエスタ１は、ＣＰＵ１１、メモリ１２、通信インタフェース１３、通信プログラム１４から構成される。
リクエスタ１の通信プログラム１４は、ビジネスプロセス実行リクエストをビジネスプロセス実行基盤３に送信する。ビジネスプロセス実行リクエストには、実行を要求するビジネスプロセスやそのオペレーションの名前、オペレーションに渡す電文等が含まれる。リクエストは通信インタフェース１３を介してネットワーク上を流れ、通信インタフェース３３を介して要求受付部３５に到着する。
【００２５】
ビジネスプロセス開発基盤２は、ＣＰＵ２１、メモリ２２、通信インタフェース２３、ビジネスプロセス編集部２４、データベース２５から構成される。
データベース２５は、ビジネスプロセス定義情報２５１から構成される。
ビジネスプロセス開発基盤２では、ビジネスプロセス編集部２４においてビジネスプロセス定義を作成する。作成したビジネスプロセス定義は、ビジネスプロセス定義情報２５１に格納される。ビジネスプロセス定義の作成が終わると、ビジネスプロセス編集部２４はビジネスプロセス定義情報２５１からビジネスプロセス定義を取り出し、ビジネスプロセス実行基盤３にビジネスプロセス配備リクエストを送信する。ビジネスプロセス配備リクエストには、ビジネスプロセス定義情報等が含まれる。当該リクエストは通信インタフェース２３を介してネットワーク上を流れ、通信インタフェース３３を介して配備受付部３４に到着する。
【００２６】
ビジネスプロセス実行基盤３は、ＣＰＵ３１、メモリ３２、通信インタフェース３３、配備受付部３４、要求受付部３５、ビジネスプロセス定義情報ＧＣ部３６、ビジネスプロセス実行部３７、アダプタ実行部３８、データベース３９から構成される。
【００２７】
配備受付部３４は、ビジネスプロセス開発基盤２から送信されたビジネスプロセス配備リクエストを受信する。ビジネスプロセス配備リクエストを受信すると、配備受付部３４は図１１に示す処理を行う。
【００２８】
まず、ビジネスプロセス定義情報３９１にビジネスプロセス配備リクエストから取得した新しいビジネスプロセス定義を登録する。このとき、ビジネスプロセス管理ＩＤには、ビジネスプロセス実行基盤３の内部でユニークなＩＤを割り振る。なお、後続のステップ２１０でビジネスプロセス配備処理が中断になる可能性があるため、この時点では受付ステータス列３９１４は受付停止にする（ステップ２０１）。
【００２９】
次に、ビジネスプロセスインスタンス情報３９６から、既に同じ名前のビジネスプロセスのインスタンスが実行中でないかを確認する（ステップ２０２、２０３）。同じ名前のビジネスプロセスインスタンスが実行中の場合、それらのビジネスプロセス定義の動的な変更が必要になる可能性があるため、以下に示すステップ２０４〜２１９の処理を行う。
【００３０】
はじめに、同じビジネスプロセス名を持った既存のビジネスプロセス定義について、インスタンスを生成しない受付アクティビティ（オペレーション）を取得し、これらの全てについて以下の処理を行う（ステップ２０４、２０５）。ステップ２０４の処理は、図７のオペレーション情報３９４から行っても良いし、ビジネスプロセス定義情報３９１に登録されたＢＰＥＬファイルを解析しても良い。
【００３１】
まず、受付アクティビティの電文の構造が変化していないかを調べる（ステップ２０６）。変化している場合には、サービスから電文構造の変更を隠蔽する必要がある。そこで、次の処理を行う（ステップ２０７）。
【００３２】
まず、新しいビジネスプロセス定義の相関セット値の計算に、新しく電文構造に追加された要素が使われていないかを調べる。追加した要素が相関セット値の計算に使用されている場合、電文構造を動的に変換しても相関セット値を正しく求めることができず、システムが正常に動作しないためである。この場合、ビジネスプロセス定義情報３９１からステップ２０１で登録したビジネスプロセス定義を削除し、また、ビジネスプロセス開発基盤２にエラーを応答し、以降の処理を中断する（ステップ２０８、２０９、２１０）。このケースでは、システムの管理者は動的なビジネスプロセス定義の変更ではなく、静的なビジネスプロセス定義の変更を使用する。
【００３３】
次に、受付アクティビティの古い電文の構造と新しい電文の構造の差から、電文の変換手順書を作成し、電文変換情報３９８にオペレーション名、旧電文構造、新電文構造を登録する（ステップ２１１、２１２）。電文の変換手順書としては、例えば、ＸＭＬデータの変換を行うＸＳＬ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ（非特許文献８参照）を使用することが考えられる。また、ビジネスプロセス実行基盤３が解釈可能な独自のＸＭＬ操作スクリプトとして実現することもできる。
【００３４】
以上の処理が終わると、次は、ステップ２０２で確認した全てのビジネスプロセスインスタンスについて、次の処理を行う（ステップ２１３）。
【００３５】
まず、ビジネスプロセス定義の変更が可能か検証を行う（ステップ２１４、２１５）。検証の内容はビジネスプロセス実行基盤３の実現方法に依存するが、例えば、ビジネスプロセスのロールバック処理等を考慮して、既に実行されたアクティビティに対する定義変更がないかを確認すること等が考えられる。もし、ステップ２１４の検証の結果、ビジネスプロセスの動的な定義変更が不可能と判断された場合には、当該ビジネスプロセスインスタンスを生成したリクエスタにエラーを応答し、ビジネスプロセス案件を再投入するように促すこと等が考えられる（ステップ２１９）。また別の処理方法として、起案中のビジネスプロセスを完了させることを優先し、古いビジネスプロセス定義のまま動作を継続することも考えられる。
【００３６】
ステップ２１４の検証で問題が見つからなかった場合には、ビジネスプロセス実行部３７に対し、当該ビジネスプロセスインスタンスの実行を一旦停止するように指示し（ステップ２１６）、ビジネスプロセス定義を入れ替えた後、ビジネスプロセスの実行を再開する（ステップ２１７、２１８）。
【００３７】
以上の処理により、ビジネスプロセス定義の動的な変更が完了した。そこで、ステップ２０１で登録したビジネスプロセス定義の受付ステータスを受付開始に変更し（ステップ２２０）。最後に、ビジネスプロセス定義の受付アクティビティ情報からオペレーション名、インスタンス生成フラグ、使用相関セット等のオペレーション情報を取得し、オペレーション情報３９４に登録する（ステップ２２１）。
【００３８】
要求受付部３５は、リクエスタ１からのビジネスプロセス実行リクエストを受信する。リクエストを受信すると、要求受付部３５は図２に示す処理を行う。
【００３９】
まず、ビジネスプロセス実行リクエストを解析し、実行を要求されたビジネスプロセスとオペレーションの名前、オペレーションに渡す電文を取得する（ステップ１０１）。
【００４０】
次に、オペレーション情報３９４に、当該ビジネスプロセスとオペレーションが登録されているかを調べる（ステップ１０２、１０３）。オペレーション情報３９４を調べるにはビジネスプロセス管理ＩＤが必要になるが、これは、ビジネスプロセス定義情報３９１から取得可能である。このようなデータの結合（ＪＯＩＮ）操作は一般的なデータベース処理であるため、以降、説明を省略する。
【００４１】
オペレーション情報３９４にビジネスプロセス及びオペレーションがない場合には不正なリクエストであるため、リクエスタ１にエラーを応答し、処理を終了する（ステップ１２３）。
【００４２】
オペレーション情報３９４にビジネスプロセス定義及びオペレーションがある場合には、まず、ビジネスプロセス定義情報３９１から当該ビジネスプロセスの受付ステータス列３９１４が受付開始になっているかを調べる（ステップ１０４）。受付ステータス列３９１４が受付停止の場合にはビジネスプロセスを呼び出すことができない状態のため、呼び出し元のリクエスタ１にエラーを応答する（ステップ１０５、１０６）。
【００４３】
次に、電文変換情報３９８に電文変換手順が登録されていないかを確認する（ステップ１０７）。これは、オペレーション名と電文の構造がそれぞれオペレーション名列３９８２と旧電文構造列３９８３に合致しないかを確認することで行う。電文変換手順が登録されている場合には、電文に対して電文変換手順列３９８５を実行し、以降は変換後の電文を使用する（ステップ１０８、１０９）。
【００４４】
次に、オペレーション情報３９４からビジネスプロセス実行リクエストに含まれていた電文の構造が妥当であるかを調べる。（ステップ１１０、１１１）。
【００４５】
電文の構造が妥当でない場合には不正なリクエストであるため、リクエスタ１にエラーを応答し、処理を終了する（ステップ１２２）。
【００４６】
電文の構造が妥当な場合には、オペレーション情報３９４から当該オペレーションを呼び出す際にビジネスプロセスインスタンスを生成する必要があるかを調べる（ステップ１１２、１１３）。
【００４７】
ビジネスプロセスインスタンスを生成する場合、ビジネスプロセス定義情報３９１から更新日時が最も新しい当該ビジネスプロセス定義を取得する（ステップ１１４）。そして、ビジネスプロセス実行部３７に、取得したビジネスプロセス定義のビジネスプロセスインスタンスを生成するように指示する（ステップ１１５）。ビジネスプロセスインスタンスの生成が終わると、ビジネスプロセス実行部３７は生成したビジネスプロセスインスタンスのインスタンスＩＤを要求受付部３５に返す。そして、要求受付部３５はこのインスタンスＩＤを使って生成したビジネスプロセスインスタンスの当該オペレーションを呼び出す（ステップ１１６）。図７の例では、行３９４０１や行３９４０４のオペレーションがこの場合に当たる。
【００４８】
ビジネスプロセスインスタンスを生成しない場合には、既存のビジネスプロセスインスタンスのオペレーションを呼び出す必要がある。そこで、要求受付部３５は、オペレーション情報３９４のインスタンス判別相関セット名列３９４４と、相関セット情報３９５の相関セット算出式列３９５３を元に、ビジネスプロセス実行リクエストに含まれる電文から相関セット値を計算する（ステップ１１７）。次に、相関セット・プロセス対応情報３９３の当該ビジネスプロセスの相関セット値列３９３３から、計算した相関セット値と同じ相関セット値を持つビジネスプロセスインスタンスがないかを調査する（ステップ１１８、１１９）。
【００４９】
ビジネスプロセスインスタンスの特定に成功した場合、要求受付部３５は相関セット・プロセス対応情報３９３からビジネスプロセスのインスタンスＩＤを取得し、このビジネスプロセスインスタンスの当該オペレーションを呼び出す（ステップ１２０）。図７の例では、行３９４０２、３９４０３、３９４０５のオペレーションがこの場合に当たる。
【００５０】
データベース３９の相関セット・プロセス対応情報３９３に同じ相関セット値を持つビジネスプロセスインスタンスがない場合には、不正なビジネスプロセス実行リクエストであるため、リクエスタ１にエラーを応答する（ステップ１２１）。
【００５１】
ビジネスプロセス実行部３７は、複数のビジネスプロセスインスタンス３７１から構成される。各ビジネスプロセスインスタンスはそれぞれ異なるビジネスプロセス定義を参照する場合もあれば、複数のプロセスインスタンスが同じビジネスプロセス定義を参照する場合もある。このあと説明するように、図１〜図９はビジネスプロセスインスタンス３つのうち、２つが同じビジネスプロセス定義（図５のビジネスプロセス１）から生成され、残りの１つは別のビジネスプロセス定義（図５のビジネスプロセス２）から生成された場合のものである。複数のプロセスインスタンスが同じビジネスプロセス定義を参照する場合には、前述の相関セット値によって１つのビジネスプロセスインスタンスが特定される。
【００５２】
図３は、ビジネスプロセスインスタンス３７１の詳細な構成図である。ビジネスプロセスインスタンス３７１は、ビジネスプロセス定義３７１１とビジネスプロセス実行プログラム３７１２、インスタンスＩＤ３７１３から構成される。ビジネスプロセス実行プログラムは、例えば、ＷＳ−ＢＰＥＬのインタプリタである。
【００５３】
ビジネスプロセス実行部３７は、要求受付部３５からの指示によりビジネスプロセスインスタンスを生成・実行する役割を持つ（図２のステップ１１５参照）。
【００５４】
図４は、要求受付部３５がビジネスプロセス実行部３７にビジネスプロセスインスタンス生成を要求したときのビジネスプロセス実行部３７の処理を示したものである。
【００５５】
まず、ビジネスプロセス定義情報３９１からビジネスプロセス定義３７１１を取得する（ステップ４０１）。次に、ビジネスプロセス定義３７１１を処理するビジネスプロセス実行プログラム３７１２を起動する（ステップ４０２）。最後に、ビジネスプロセス実行基盤３の内部においてユニークなインスタンスＩＤ３７１３を設定する（ステップ４０３）。
【００５６】
ビジネスプロセス実行部３７は、ビジネスプロセスインスタンスの破棄も行う。これは、ビジネスプロセス定義３７１１の実行を終えたものがないが、ビジネスプロセスインスタンス３７１の実行状態を定期的に監視することで実現する。
【００５７】
アダプタ実行部３８は、複数のサービスアダプタから構成される。図１は、サービス（同期通信）４１用のサービスアダプタ３８１とサービス（非同期通信）４２用のサービスアダプタ３８２の２つが配備された状態である。
【００５８】
アダプタ実行部３８は、ビジネスプロセスインスタンス３７１からネットワーク上に配備されたサービスを呼び出す際に使用する。ビジネスプロセスインスタンス３７１からサービスを呼び出す場合、まず、対応するサービスアダプタにサービス呼び出しリクエストを送信する。サービス呼び出しリクエストには、呼び出すオペレーションの名前やオペレーションに渡す電文等が含まれる。次に、サービスアダプタは受信したサービス呼び出しリクエストをサービスが処理可能なリクエストに変換する。そして、変換後のリクエストを通信インタフェース３３経由でネットワーク上のサービスに転送する。ビジネスプロセスインスタンスとサービスが同期通信を行う場合、サービスアダプタはサービスからの応答をリクエスト送信元のビジネスプロセスインスタンスに転送する必要がある。そのため、同期通信を行う場合にはビジネスプロセスとサービスの対にセッションＩＤを割り振り、セッション・プロセス対応情報３９７に格納する。サービスから応答メッセージが返ってくると、サービスアダプタは応答メッセージからセッションＩＤと応答電文を取得する。そして、電文をビジネスプロセスが処理可能な電文に変換し、セッション・プロセス対応情報３９７を元に、リクエスト送信元のビジネスプロセスに変換後の電文を転送する。
【００５９】
ビジネスプロセス定義情報ＧＣ部３６は、ビジネスプロセス定義情報３９１から使用されなくなったビジネスプロセス定義を取り除く。使用されなくなったビジネスプロセス定義とは、そのビジネスプロセス定義から生成されたビジネスプロセスインスタンスが０個の状態で、かつ、ビジネスプロセス名が同じでより更新日時の新しいビジネスプロセス定義がある場合である。条件の前者を満たさない場合には、ビジネスプロセスインスタンスでエラーが発生した場合のロールバック処理や、ビジネスプロセス実行基盤３を再起動した場合のビジネスプロセスインスタンス復元処理等にビジネスプロセス定義を使用する可能性があるため、ビジネスプロセス定義を取り除かない。また、条件の後者を満たさない場合には、単に、ビジネスプロセス実行リクエストがまだ到着していないだけの可能性があるため、ビジネスプロセス定義を取り除かない。使用されなくなったビジネスプロセス定義の検出は、例えば、定期的にビジネスプロセス定義情報３９１とビジネスプロセスインスタンス情報３９６を調査し、上記条件に該当するビジネスプロセス定義が存在しないかを確認することで行う。
【００６０】
データベース３９は、ビジネスプロセス定義情報３９１、ビジネスプロセス実行情報３９２、相関セット・プロセス対応情報３９３、オペレーション情報３９４、相関セット情報３９５、ビジネスプロセスインスタンス情報３９６、セッション・プロセス対応情報３９７、電文変換情報３９８から構成される。
【００６１】
ビジネスプロセス定義情報３９１は、ビジネスプロセス定義を格納する。ビジネスプロセス定義情報３９１を図５に示す。ビジネスプロセス定義情報３９１は、ビジネスプロセス管理列ＩＤ３９１１、ビジネスプロセス名列３９１２、ビジネスプロセス定義列３９１３、受付ステータス列３９１４、登録日時列３９１５から構成される。
【００６２】
ビジネスプロセス管理列ＩＤ３９１１は、各ビジネスプロセス定義に付けられたユニークな識別番号で、ビジネスプロセス実行基盤に配備されたビジネスプロセス定義を特定するために使用する。ビジネスプロセス名列３９１２は、ビジネスプロセス定義に付けられた名前である。ビジネスプロセス名列３９１２は、要求受付部３５がビジネスプロセスインスタンスを生成する場合等に参照される。ビジネスプロセス定義列３９１３は、ビジネスプロセス開発基盤２から配備したビジネスプロセス定義（例えば、ＷＳ−ＢＰＥＬファイル等）である。受付ステータス列３９１４は、ビジネスプロセス定義に対する要求を受け付けるか否かを決定するステータスフラグである。受付ステータス列３９１４が受付開始の場合にはビジネスプロセスを呼び出すリクエストを受け付け、受付停止の場合には呼び出し元にエラーを応答する。登録日時列３９１５は、ビジネスプロセス定義をビジネスプロセス実行基盤３に配備した日時である。
【００６３】
ビジネスプロセス実行情報３９２は、ビジネスプロセスインスタンス３７１が実行時情報を保存するために使用するデータ領域である。実行時情報としてビジネスプロセスで使用する変数等があるが、本発明の実施には関係しない部分であるため、詳細な説明は行わない。
【００６４】
相関セット・プロセス対応情報３９３は、同じビジネスプロセス定義から生成された複数のビジネスプロセスインスタンスがあるときに、１つのビジネスプロセスインスタンスを特定するために使用するデータ領域である。相関セット・プロセス対応情報３９３を図６に示す。
【００６５】
インスタンスＩＤ列３９３１は、ビジネスプロセス実行部３７で動作しているビジネスプロセスインスタンスのインスタンスＩＤの一覧である。相関セット名列３９３２は、各ビジネスプロセスインスタンスが使用する相関セットの一覧である。例えば、インスタンスＩＤが「１」のビジネスプロセスインスタンスは、名前が相関セットＡと相関セットＢの２つの相関セットを使用することを表している（行３９３０１〜３９３０２）。
【００６６】
また、図６では、インスタンスＩＤが「１」と「２」のビジネスプロセスは、それぞれ同じビジネスプロセス定義から生成されているため、同じ相関セット名の組み合わせを持つ（行３９３０１〜３９３０２と行３９３０３〜３９３０４）。相関セット名の値は、相関セット情報３９５の相関セット名と同じものである。相関セット値列３９３３は、各プロセスインスタンスの相関セット値を表す。例えば、図６では、インスタンスＩＤが「１」のビジネスプロセスは相関セットＡの値が「１２」（行３９３０１）、インスタンスＩＤが「２」のビジネスプロセスは相関セットＡの値が「１５」（行３９３０３）であることを表している。
【００６７】
オペレーション情報３９４は、各ビジネスプロセスが提供するオペレーションの一覧をまとめたデータ領域である。オペレーション情報３９４を図７に示す。
【００６８】
ビジネスプロセス管理ＩＤ列３９４１は、ビジネスプロセス実行基盤３に配備されているビジネスプロセスの管理番号で、ビジネスプロセス定義情報３９１と同一のものである。オペレーション名列３９４２は、各ビジネスプロセスが提供するオペレーションの一覧である。
【００６９】
図７では、ビジネスプロセス管理ＩＤが「１」のビジネスプロセスが、オペレーションＸ、オペレーションＹ、オペレーションＺを提供すること（行３９４０１〜３９４０３）、及び、ビジネスプロセス管理ＩＤが「２」のビジネスプロセスがオペレーションＰ、オペレーションＱを提供すること（行３９４０４〜３９４０５）を表している。インスタンス生成フラグ列３９４３は、オペレーションを呼び出すときに新しくビジネスプロセスインスタンスを生成するか否かを表している。
【００７０】
図７では、オペレーションＸを呼び出したときにビジネスプロセス管理ＩＤが「１」のビジネスプロセスのビジネスプロセスインスタンスが生成され（行３９４０１）、オペレーションＰを呼び出したときにビジネスプロセス管理ＩＤが「２」のビジネスプロセスのビジネスプロセスインスタンスが生成されること（行３９４０４）を表している。インスタンス生成フラグ列３９４３の値が「しない」の場合には、実行中のビジネスプロセスインスタンスのオペレーションを呼び出す。
【００７１】
インスタンス判別相関セット名列３９４４は、非同期通信を使用する場合等、実行中のビジネスプロセスインスタンスのオペレーションを呼び出す際に、どの相関セットを使ってビジネスプロセスインスタンスを特定するかを示す。例えば、図７の行３９４０３は、オペレーションＺを呼び出すときは相関セットＢの値でビジネスプロセスインスタンスを特定することを表す。
【００７２】
初期化相関セット名列３９４５は、オペレーションが呼び出されたときに、そのとき渡された電文から相関セット値を更新するか否かを表す。例えば、図７の行３９４０１は、オペレーションＸが呼ばれたときに電文から相関セットＡの値を計算し、それをビジネスプロセスインスタンスの相関セットＡの新しい相関セット値として使用することを表す。
【００７３】
相関セット情報３９５は、各ビジネスプロセス定義で使用する相関セット値の計算方法をまとめたデータ領域である。相関セット情報３９５を図９に示す。
【００７４】
ビジネスプロセス管理ＩＤ列３９５１は、ビジネスプロセス実行基盤３に配備されているビジネスプロセスの管理番号で、ビジネスプロセス定義情報３９１と同一のものである。相関セット名列３９５２は、各ビジネスプロセス定義が使用する相関セット名の一覧である。
【００７５】
図９では、ビジネスプロセス管理ＩＤが「１」のビジネスプロセスが、相関セットＡと相関セットＢを使用すること（行３９５０１〜３９５０２）、及び、ビジネスプロセス管理ＩＤが「２」のビジネスプロセスが、相関セットＣを使用すること（行３９５０３）を示している。相関セット算出式列３９５３は、各相関セットの計算方法を示している。
【００７６】
図９では、ＸＭＬ形式の電文から相関セットを計算する方法がＸＭＬ  Ｐａｔｈ言語（非特許文献７参照）を使用して示されている。例えば、図９の行３９５０１はＸＰａｔｈが／ｘ／ｙ／ｚ１で示される電文中の要素とＸＰａｔｈが／ｘ／ｙ／ｚ２で示される電文中の要素を連結したものが相関セットＡの相関セット値になることを示している。通常、要素の連結は要素の値を文字列化してから行う。
【００７７】
ビジネスプロセスインスタンス情報３９６は、ビジネスプロセスインスタンスの一覧をまとめたデータ領域である。ビジネスプロセスインスタンス情報３９６を図８に示す。
【００７８】
インスタンスＩＤ列３９６１は、ビジネスプロセス実行部３７で動作しているビジネスプロセスインスタンスのインスタンスＩＤの一覧である。ビジネスプロセス管理ＩＤ３９６２は、ビジネスプロセス実行基盤３に配備されているビジネスプロセスの管理番号で、ビジネスプロセス定義情報３９１と同一のものである。
【００７９】
例えば、図８の行３９６０１〜３９６０２は、インスタンスＩＤが「１」と「２」のビジネスプロセスインスタンスは両方ともビジネスプロセス管理ＩＤが「１」で示されるビジネスプロセスのインスタンスであることを示す。
【００８０】
セッション・プロセス対応情報３９７は、あるビジネスプロセスインスタンスとそのビジネスプロセスインスタンスが同期通信を行っているサービスを関連づけるためのデータ領域である。セッション・プロセス対応情報３９７は、例えば、セッションＩＤとインスタンスＩＤの対からなる表として実現することができるが、本発明の実施には関係しない部分であるため、詳細な説明は行わない。
【００８１】
電文変換情報３９８は、ビジネスプロセスの動的な定義変更によって、サービスが送信する電文とビジネスプロセスが要求する電文の構造が異なった場合に、ビジネスプロセスが電文を解釈できるように要求受付部３５で電文の構造を変換する方法をまとめたデータ領域である。電文変換情報３９８を図１０に示す。
【００８２】
ビジネスプロセス管理ＩＤ列３９８１は、ビジネスプロセス実行基盤３に配備されているビジネスプロセスの管理番号で、ビジネスプロセス定義情報３９１と同一のものである。オペレーション名列３９８２は、各ビジネスプロセスが提供するオペレーションの一覧である。旧電文情報列３９８３は、動的な定義変更前にオペレーションが要求していた電文の構造である。新電文構造列３９８４は、動的な定義変更後にオペレーションが要求する電文の構造である。電文変換手順列３９８５は、旧電文構造の形式の電文を新電文構造の形式の電文に変換する方法をまとめた手順書を含む。図１０は、プロセス管理ＩＤが「１」のビジネスプロセスについて、オペレーションＸとオペレーションＹが要求する電文の構造が変更されたときの状態を表している。
【００８３】
電文構造の変更には、図１３〜図１５の変更範囲７１３、７２３、７２４、７３３、７３４のような５つのケースが考えられる。変更範囲７１３は要素の要素名、位置は同じであるが、型が変わっている場合である。変更範囲７２３は要素の要素名と型が同じであるが、その位置が変わっている場合である。変更範囲７２４は要素の要素名は同じであるが、その位置と型が変わっている場合である。変更範囲７３３は要素が削除されている場合である。変更範囲７３４は要素が追加されている場合である。
【００８４】
このような電文構造の変更に対して電文の変換手順書を作成する方法を図１２に示す。
はじめに、古い電文構造の全ての要素に対して次の処理を行う（ステップ３０１）。
まず、新しい電文構造の中に要素名、位置、型のいずれかが一致する要素があるかを調査する（ステップ３０２）。そして、上記３つの一致状況に応じて、以下の処理を行う（ステップ３０３〜３１０）。
【００８５】
要素名、位置、型の全てが一致する場合には確実に同一要素であることが見込めるため、そのままデータの対応付けを行う（ステップ３０６）。要素名と位置のみ一致する場合には要素の型が変更されているため、古い電文の要素の型を変換して新しい要素に対応付けを行う（ステップ３０７）。型の変換方法は任意であるが、Ｓｔｒｉｎｇ型からｎｕｍｅｒｉｃ型に変換する場合には、例えば、文字列「“０１２３”」を数値「１２３」にすること等が考えられる。要素名と型のみ一致する場合には要素が移動されているため、古い電文の要素を新しい移動先に対応付ける（ステップ３０９）。要素名のみ一致する場合には要素が移動され、型も変更されているため、古い電文の要素の型を変換してから新しい移動先に対応づける（ステップ３１０）。
【００８６】
図１３の対応付け７１４はステップ３０６の処理を、対応付け７１５はステップ３０７の処理を表している。また、図１４の対応付け７２５はステップ３０９の処理を、対応付け７２５はステップ３１０の処理を表している。
【００８７】
次に、新しい電文構造の全ての要素に対して次の処理を行う（ステップ３１１）。
まず、新しい電文構造において対応付けが行われていない要素があるかを調査する（ステップ３１２）。対応付けが行われていない要素がある場合、要素の型に応じてデフォルト値を代入するようにする（ステップ３１４）。デフォルト値は任意であるが、例えば、ｎｕｍｅｒｉｃ型の場合には数値「１」、Ｓｔｒｉｎｇ型の場合には文字列「“ｓｔｒｉｎｇ”」を使うこと等が考えられる。図１５の対応付け７３５はステップ３１４の処理を表している。
【００８８】
なお、変更範囲７３３のように要素が削除された場合には要素の対応付けは必要ない。
それでは、ビジネスプロセス定義の動的な変更の具体的例を示す。動的な変更する前のビジネスプロセス実行基盤３の状態として、ここでは、図１〜図９のように２つのビジネスプロセス定義が配備され、３つのビジネスプロセスインスタンスが起動しているものとする。このとき、ビジネスプロセス定義の動的な変更はまだ未実施であるため、電文変換情報３９８は初期状態（何も登録されていない状態）とする。
【００８９】
２つのビジネスプロセス定義の詳細を図２０〜図２６に示す。
図２０のビジネスプロセス９１１は、ビジネスプロセス定義情報３９１にビジネスプロセス１として登録されているビジネスプロセス定義である。このビジネスプロセスは、アクティビティ９１１０〜９１１９と業務手順に沿ってアクティビティを連結したコネクション９１２０から構成される。各アクティビティの種別はアクティビティ一覧９１３に示す通りである。また、各受付アクティビティのオペレーション名はオペレーション一覧９１４に示す通りである。このビジネスプロセスは、サービスアダプタ（サービス４２用）３８２とサービス（非同期通信）４２と協調動作して業務処理を遂行する。
【００９０】
ビジネスプロセス９１１の各オペレーションが要求する電文の構造を図２１〜図２３に示す。図２１はオペレーションＸが要求する電文の構造、図２２はオペレーションＹが要求する電文の構造、図２３はオペレーションＺが要求する電文の構造である。
【００９１】
図２４のビジネスプロセス９２１は、ビジネスプロセス定義情報３９１にビジネスプロセス２として登録されているビジネスプロセス定義である。このビジネスプロセスは、アクティビティ９２１１〜９２１７と業務手順に沿ってアクティビティを連結したコネクション９２１８から構成される。各アクティビティの種別はアクティビティ一覧９２３に示す通りである。また、各受付アクティビティのオペレーション名はオペレーション一覧９２４に示す通りである。このビジネスプロセスは、サービスアダプタ（サービス４２用）３８２とサービス（非同期通信）４２と協調動作して業務処理を遂行する。
【００９２】
ビジネスプロセス９２１の各オペレーションが要求する電文の構造を図２５〜図２６に示す。図２５はオペレーションＰが要求する電文の構造、図２６はオペレーションＱが要求する電文の構造である。
【００９３】
ここで、ビジネスプロセス１の定義を動的に変更することを考える。
まず、ビジネスプロセス編集部２４を使い、ビジネスプロセス１の定義を変更する。図２７は定義情報を変更した後のビジネスプロセスを表している。図２７では、変更範囲９３５０において、オペレーションＹが要求する電文の構造を変更している。変更後の電文の構造は図２８の通りで、変更範囲９３１５１０で示した要素の型がＳｔｒｉｎｇ型からｎｕｍｅｒｉｃ型に変わっている。なお、ここでは上記以外の変更を一切行っていないものとする。すなわち、アクティビティ９３１０〜９３１４、９３１６〜９３１９は、それぞれアクティビティ９１１０〜９１１４、９１１６〜９１１９と対応する。
【００９４】
ビジネスプロセス定義の変更が終わると、ビジネスプロセス編集部２４から配備受付部３４にビジネスプロセス配備リクエストを送信する。配備受付部３４はビジネスプロセス配備リクエストを受信すると、図１１に示した手順に基づいて処理を行う。
【００９５】
まず、ビジネスプロセス定義情報３９１に新しいビジネスプロセス定義を登録する（ステップ２０１）。このときのビジネスプロセス定義情報３９１の状態を図２９に示す。行６００１が新しく登録したビジネスプロセス定義である。
【００９６】
次に、古いビジネスプロセス定義のビジネスプロセスインスタンスがあるかを調べる（ステップ２０２）。この場合、図８のビジネスプロセスインスタンス情報３９６から、インスタンスＩＤが「１」と「２」の２つのビジネスプロセスインスタンスが該当することが分かるため、ステップ２０４以降を実行する。
【００９７】
ステップ２０４では、既存のビジネスプロセス１において、インスタンスを生成しない受付アクティビティ（オペレーション）があるかを調べる。この場合、図７のオペレーション情報３９４から、図２０の受付アクティビティ９１１５（オペレーションＹ）と受付アクティビティ９１１８（オペレーションＺ）が見つかる。これらの受付アクティビティに対し、以下の処理を行う（ステップ２０５）。
【００９８】
まず、受付アクティビティ９１１５（オペレーションＹ）について、電文の構造が変わっているかを調べる（ステップ２０６）。受付アクティビティ９１１５（オペレーションＹ）の場合には電文の構造が変わっているため（ステップ２０７）、さらに、新しいビジネスプロセス定義の相関セット値の計算に、電文に新しく追加された要素が使われているかを調べる（ステップ２０８）。図２８に示した通り、この例では上記に該当しないため、ステップ２１０をスキップする。次に、古い電文構造の差と新しい電文構造の差から電文の変換手順書を作成する（ステップ２１１）。図１２〜図１５で示した方法により、ここでは図３０に示す変換手順書を作成し、電文変換情報３９８に登録する。このときの電文変換情報３９８の状態を図３１に示す。行６０２１が新しく登録した電文変換手順である。続いて受付アクティビティ９１１８（オペレーションＺ）についても同様の処理を行うが、受付アクティビティ９１１８（オペレーションＺ）は電文の構造が変化していないため、ステップ２０７〜２１２をスキップする。
【００９９】
次に、インスタンスＩＤが「１」と「２」の２つのビジネスプロセスインスタンスについて（ステップ２１３）、ビジネスプロセス定義の変更が可能であるか検証する（ステップ２１４）。ここでは２つのビジネスプロセスインスタンスとも特に問題が見つからなかったものとし、ステップ２１６に進む。ステップ２１６では、ビジネスプロセスインスタンスの実行を一旦停止する。そして、その間にビジネスプロセスインスタンス中のビジネスプロセス定義を変更後のビジネスプロセス定義に入れ替え（ステップ２１７）、ビジネスプロセスインスタンスの実行を再開する（ステップ２１８）。
【０１００】
次に、ビジネスプロセス定義情報３９１において、新しく登録したビジネスプロセス定義の受付ステータスを受付開始に変更する（ステップ２２０）。このときのビジネスプロセス定義情報３９１の状態を図３２に示す。行６０３１が、受付ステータスを変更したビジネスプロセス定義である。
【０１０１】
最後に、新しいビジネスプロセス定義のオペレーションをオペレーション情報３９４に登録する（ステップ２２１）。このときのオペレーション情報３９４の状態を図３３に示す。行６０４１〜６０４３が、新しく登録された情報である。
以上で、ビジネスプロセス配備リクエストの受信処理を終了する。
【０１０２】
次に、電文の構造が変わった受付アクティビティのオペレーションがサービスから呼ばれる場合の処理を説明する。ここでは、サービス（非同期通信４２）が、プロセスＩＤが「１」のビジネスプロセスインスタンスのオペレーションＹをコールバックするときを取り上げる。
【０１０３】
はじめに、サービス（非同期通信４２）から、要求受付部３５にビジネスプロセス１のオペレーションＹを実行するように、ビジネスプロセス実行リクエストが送信される。要求受付部３５はビジネスプロセス実行リクエストを受信すると、図２に基づいて次の処理を実行する。
【０１０４】
まず、ビジネスプロセス実行リクエストから、実行の対象になるビジネスプロセス名とオペレーション名、オペレーションに渡す電文を取得する（ステップ１０１）。
【０１０５】
次に、オペレーション情報３９４に、指定されたビジネスプロセスとオペレーションがあるかを確認する（ステップ１０２、１０３）。この場合、図３３の行６０４２に対応する情報があるため、ステップ１０４に進む。なお、図３２のビジネスプロセス定義情報３９１において、行６０３２のビジネスプロセス１は行６０３１のビジネスプロセス１よりも登録日時が古いため、図３３のオペレーション情報３９４を検索するときは、行６０４４〜６０４６は無効な情報として扱われることに注意が必要である。
【０１０６】
ステップ１０４では、ビジネスプロセス定義情報３９１からビジネスプロセスの受付ステータスを確認する。ここでは、図３２の行６０３１から受付ステータスが受付開始になっていることを確認できるため（上記と同様に行６０３２は既に無効な情報である）、ステップ１０７に進む。
【０１０７】
ステップ１０７では、電文変換情報３９８に電文変換手順が登録されていないかを確認する。この例の場合、図３１の行６２０１に該当する情報があるため、電文変換手順書を実行し、以降、変換後の電文を使用するようにする（ステップ１０９）。図３４は、電文変換情報３９８に登録された図３０の電文変換手順書に従い、実際に電文を変換したときの例である。
【０１０８】
次に、オペレーション情報３９４から電文の構造が、オペレーションＹが要求する電文の構造にあっているかを確認する（ステップ１１０、１１１）。ここでは、ステップ１０９で電文を変換しているため、オペレーションＹが要求する電文の構造に妥当である。
【０１０９】
次に、オペレーション情報３９４から新たにインスタンス生成を行う必要があるかを確認する（ステップ１１２）。オペレーションＹはインスタンス生成を行わないオペレーションであるため、ステップ１１７に進む（ステップ１１３）。
【０１１０】
ステップ１１７では、相関セット情報３９５から相関セット値を計算する。オペレーション情報３９４より、オペレーションＹで使用する相関セットは相関セットＡであるため、Ｘｐａｔｈが／ｘ／ｙ／ｚ１と／ｘ／ｙ／ｚ２で示される２つの要素の値を連結する。図３４より、２つの要素を連結した相関セット値は「１２」になる。
【０１１１】
次に、相関セット・プロセス対応情報３９３から、ビジネスプロセスインスタンスを特定する。上述の相関セット値１２から、対象のビジネスプロセスインスタンスはインスタンスＩＤが１のものと特定できるため（ステップ１１８、１１９）、インスタンスＩＤが「１」のビジネスプロセスのオペレーションＹを呼び出す（ステップ１２０）。以上が、動的な定義変更を行ったビジネスプロセスの呼び出しの流れである。
【０１１２】
インスタンスＩＤが「１」と「２」のビジネスプロセスが両方とも終了した場合、ビジネスプロセス管理ＩＤが「１」のビジネスプロセス情報は使用されなくなる。そこで、ビジネスプロセス定義情報ＧＣが動作し、データベース３９に残ったビジネスプロセス管理ＩＤが「１」の不要な情報が削除される。
【図面の簡単な説明】
【０１１３】
【図１】本発明の実施形態を適用する計算機システムの構造図である。
【図２】ビジネスプロセス実行リクエストの受信処理の流れを示すＰＡＤ図である。
【図３】ビジネスプロセスインスタンス３７１の構造図である。
【図４】ビジネスプロセスインスタンス生成処理の流れを示すＰＡＤ図である。
【図５】ビジネスプロセス定義情報３９１の一例を示す構造図である。
【図６】相関セット・プロセス対応情報３９３の一例を示す構造図である。
【図７】オペレーション情報３９４の一例を示す構造図である。
【図８】ビジネスプロセスインスタンス情報３９６の一例を示す構造図である。
【図９】相関セット情報３９５の一例を示す構造図である。
【図１０】電文変換情報３９８の一例を示す構造図である。
【図１１】ビジネスプロセス配備リクエストの受信処理の流れを示すＰＡＤ図である。
【図１２】電文変換手順書の生成処理の流れを示すＰＡＤ図である。
【図１３】電文構造の変換方法として、電文の要素が変更されていない場合と、型が変わった場合の２種類について示した図である。
【図１４】電文構造の変換方法として、電文の要素の位置が変わった場合と、位置と型の両方が変わった場合の２種類について示した図である。
【図１５】電文構造の変換方法として、電文の要素が新しく追加された場合と、電文の要素が削除された場合の２種類について示した図である。
【図１６】本発明の実施形態を適用しない場合における、業務手順変更前のビジネスプロセスの概要を示す図である。
【図１７】本発明の実施形態を適用しない場合における、業務手順変更前のオペレーションの電文構造を示す図である。
【図１８】本発明の実施形態を適用しない場合における、業務手順変更後のビジネスプロセスの概要を示す図である。
【図１９】本発明の実施形態を適用しない場合における、業務手順変更後のオペレーションの電文構造を示す図である。
【図２０】本発明の実施形態における、業務手順変更前のビジネスプロセス１の概要を示す図である。
【図２１】本発明の実施形態における、業務手順変更前のオペレーションＸの電文構造を示す図である。
【図２２】本発明の実施形態における、業務手順変更前のオペレーションＹの電文構造を示す図である。
【図２３】本発明の実施形態における、業務手順変更前のオペレーションＺの電文構造を示す図である。
【図２４】本発明の実施形態における、業務手順変更前のビジネスプロセス２の概要を示す図である。
【図２５】本発明の実施形態における、業務手順変更前のオペレーションＰの電文構造を示す図である。
【図２６】本発明の実施形態における、業務手順変更前のオペレーションＱの電文構造を示す図である。
【図２７】本発明の実施形態における、業務手順変更後のビジネスプロセス１の概要を示す図である。
【図２８】本発明の実施形態における、業務手順変更後のオペレーションＹの電文構造を示す図である。
【図２９】本発明の実施形態において、業務手順変更後のビジネスプロセス定義を配備した際、図１１のステップ２０１まで終えたときのビジネスプロセス定義情報３９１の構造図である。
【図３０】本発明の実施形態において、配備受付部３４が作成したオペレーションＹの電文構造の変換手順書を示す図である。
【図３１】本発明の実施形態において、業務手順変更後のビジネスプロセス定義を配備した際、図１１のステップ２１２まで終えたときの電文変換情報３９８の構造図である。
【図３２】本発明の実施形態において、業務手順変更後のビジネスプロセス定義を配備した際、図１１のステップ２２０まで終えたときのビジネスプロセス定義情報３９１の構造図である。
【図３３】本発明の実施形態において、業務手順変更後のビジネスプロセス定義を配備した際、図１１のステップ２２１まで終えたときのオペレーション情報３９４の構造図である。
【図３４】本発明の実施形態における、電文の変換結果を示す図である。
【符号の説明】
【０１１４】
１…リクエスタ、１１…ＣＰＵ、１２…メモリ、１３…通信インタフェース、１４…通信プログラム、２…ビジネスプロセス開発基盤、２１…ＣＰＵ、２２…メモリ、２３…通信インタフェース、２４…ビジネスプロセス編集部、２５…データベース、２５１…ビジネスプロセス定義情報、３…ビジネスプロセス実行基盤、３１…ＣＰＵ、３２…メモリ、３３…通信インタフェース、３４…配備受付部、３５…要求受付部、３６…ビジネスプロセス定義情報ＧＣ部、３７…ビジネスプロセス実行部、３７１…ビジネスプロセスインスタンス、３７１１…ビジネスプロセス定義、３７１２…ビジネスプロセス実行プログラム、３７１３…インスタンスＩＤ、３８…アダプタ実行部、３８１…サービスアダプタ（サービス４１用）、３８２…サービスアダプタ（サービス４２用）、３９…データベース、３９１…ビジネスプロセス定義情報３９１…ビジネスプロセス管理ＩＤ列、３９１２…ビジネスプロセス名列、３９１３…ビジネスプロセス定義列、３９１４…受付ステータス列、３９１５…登録日時列、３９１０１…行１、３９１０２…行２、３９２…ビジネスプロセス実行情報、３９３…相関セット・プロセス対応情報、３９３１…インスタンスＩＤ列、３９３２…相関セット名列、３９３３…相関セット値列、３９３０１…行１、３９３０２…行２、３９３０３…行３、３９３０４…行４、３９３０５…行５、３９４…オペレーション情報、３９４１…ビジネスプロセス管理ＩＤ列、３９４２…オペレーション名列、３９４３…インスタンス生成フラグ列、３９４４…インスタンス判別相関セット名列、３９４５…初期化相関セット名列、３９４６…電文構造列、３９４０１…行１、３９４０２…行２、３９４０３…行３、３９４０４…行４、３９４０５…行５、３９５…相関セット情報、３９５１…ビジネスプロセス管理ＩＤ列、３９５２…相関セット名列、３９５３…相関セット算出式列、３９５０１…行１、３９５０２…行２、３９５０３…行３、３９６…ビジネスプロセスインスタンス情報、３９６１…インスタンスＩＤ列、３９６２…ビジネスプロセス管理ＩＤ列、３９６０１…行１、３９６０２…行２、３９６０３…行３、３９７…セッション・プロセス対応情報、３９８…電文変換情報、３９８１…ビジネスプロセス管理ＩＤ列、３９８２…オペレーション名列、３９８３…旧電文構造列、３９８４…新電文構造列、３９８５…電文変換手順列、３９８０１…行１、３９８０２…行２、４１…サービス（同期通信）、４１１…ＣＰＵ、４１２…メモリ、４１３…通信インタフェース、４１４…通信プログラム、４２…サービス（非同期通信）、４２１…ＣＰＵ、４２２…メモリ、４２３…通信インタフェース、４２４…通信プログラム、６００１…行３、６０１１…古い電文構造、６０１２…新しい電文構造、６０２１…行１、６０３１…行３、６０３２…行１、６０４１…行６、６０４２…行７、６０４３…行８、６０４４…行１、６０４５…行２、６０４６…行３、６０５１…古い電文、６０５２…新しい電文、７１１…古い電文構造、７１２…新しい電文構造、７１３…変更範囲、７１４…対応付け、７１５…対応付け、７２１…古い電文構造、７２２…新しい電文構造、７２３…変更範囲、７２４…変更範囲、７２５…対応付け、７２６…対応付け、７３１…古い電文構造、７３２…新しい電文構造、７３３…変更範囲、７３４…変更範囲、７３５…対応付け、８１…ビジネスプロセス、８１１…開始アクティビティ、８１２…受付アクティビティ、８１３…サービス呼び出しアクティビティ、８１４…任意のアクティビティ、８１５…受付アクティビティ、８１５１…電文構造定義、８１５１１…ルート要素、８１５１２…ｃｈｉｌｄ１要素、８１５１３…ｃｈｉｌｄ２要素、８１５１４…ｃｈｉｌｄ３要素、８１６…応答アクティビティ、８１７…終了アクティビティ、８１８…コネクション、８２…サービスアダプタ、８３…サービス、８４…アクティビティ一覧、８４１…番号列、８４２…アクティビティ種別列、８５…ビジネスプロセス、８５０…変更範囲、８５１…開始アクティビティ、８５２…受付アクティビティ、８５３…サービス呼び出しアクティビティ、８５４…任意のアクティビティ、８５５…受付アクティビティ、８５５１…電文構造定義、８５５１０…変更範囲、８５５１１…ルート要素、８５５１２…ｃｈｉｌｄ１要素、８５５１３…ｃｈｉｌｄ２要素、８５５１４…ｃｈｉｌｄ３要素、８５６…応答アクティビティ、８５７…終了アクティビティ、８５８…任意のアクティビティ、８５９…コネクション、８６…サービスアダプタ、８７…サービス、８８…アクティビティ一覧、８８１…番号列、８８２…アクティビティ種別列、９１１…ビジネスプロセス、９１１０…終了アクティビティ、９１１１…開始アクティビティ、９１１２…受付アクティビティ、９１１２１…電文構造定義、９１１２１１…ルート要素、９１１２１２…ｘ要素、９１１２１３…ｙ要素、９１１２１４…ｚ１要素、９１１２１５…ｚ２要素、９１１３…サービス呼び出しアクティビティ、９１１４…任意のアクティビティ、９１１５…受付アクティビティ、９１１５１…電文構造定義、９１１５１１…ルート要素、９１１５１２…ｘ要素、９１１５１３…ｙ要素、９１１５１４…ｚ１要素、９１１５１５…ｚ２要素、９１１５１６…ｚ３要素、９１１５１７…ｗ要素、９１１６…サービス呼び出しアクティビティ、９１１７…任意のアクティビティ、９１１７１…電文構造定義、９１１７１１…ルート要素、９１１７１２…ｘ要素、９１１７１３…ｙ要素、９１１７１４…ｚ３要素、９１１８…受付アクティビティ、９１１９…応答アクティビティ、９１２０…コネクション、９１３…アクティビティ一覧、９１３１…番号列、９１３２…アクティビティ種別列、９１４…オペレーション一覧、９１４１…番号列、９１４２…オペレーション名列、９２１…ビジネスプロセス、９２１１…開始アクティビティ、９２１２…受付アクティビティ、９２１２１…電文構造定義、９２１２１１…ルート要素、９２１２１２…ｏ要素、９２１２１３…ｐ要素、９２１２１４…ｑ要素、９２１２１５…ｒ要素、９２１２１６…ｓ要素、９２１３…サービス呼び出しアクティビティ、９２１４…任意のアクティビティ、９２１５…受付アクティビティ、９２１５１…電文構造定義、９２１５１１…ルート要素、９２１５１２…ｏ要素、９２１５１３…ｐ要素、９２１５１４…ｑ要素、９２１５１５…ｒ要素、９２１５１６…ｓ要素、９２１６…応答アクティビティ、９２１７…終了アクティビティ、９２１８…コネクション、９２３…アクティビティ一覧、９２３１…番号列、９２３２…アクティビティ種別列、９２４…オペレーション一覧、９２４１…番号列、９２４２…オペレーション名列、９３１…ビジネスプロセス、９３１０…終了アクティビティ、９３１１…開始アクティビティ、９３１２…受付アクティビティ、９３１３…サービス呼び出しアクティビティ、９３１４…任意のアクティビティ、９３１５…受付アクティビティ、９３１５１…電文構造定義、９３１５１０…変更範囲、９３１６…サービス呼び出しアクティビティ、９３１７…任意のアクティビティ、９３１８…受付アクティビティ、９３１９…応答アクティビティ、９３２０…コネクション、９３３…アクティビティ一覧、９３３１…番号列、９３３２…アクティビティ種別、９３４…オペレーション一覧、９３４１…番号列、９３４２…オペレーション名列、９３５０…変更範囲
【図１】
2010134574.tif 000003
【図２】
2010134574.tif 000004
【図３】
2010134574.tif 000005
【図４】
2010134574.tif 000006
【図５】
2010134574.tif 000007
【図６】
2010134574.tif 000008
【図７】
2010134574.tif 000009
【図８】
2010134574.tif 000010
【図９】
2010134574.tif 000011
【図１０】
2010134574.tif 000012
【図１１】
2010134574.tif 000013
【図１２】
2010134574.tif 000014
【図１３】
2010134574.tif 000015
【図１４】
2010134574.tif 000016
【図１５】
2010134574.tif 000017
【図１６】
2010134574.tif 000018
【図１７】
2010134574.tif 000019
【図１８】
2010134574.tif 000020
【図１９】
2010134574.tif 000021
【図２０】
2010134574.tif 000022
【図２１】
2010134574.tif 000023
【図２２】
2010134574.tif 000024
【図２３】
2010134574.tif 000025
【図２４】
2010134574.tif 000026
【図２５】
2010134574.tif 000027
【図２６】
2010134574.tif 000028
【図２７】
2010134574.tif 000029
【図２８】
2010134574.tif 000030
【図２９】
2010134574.tif 000031
【図３０】
2010134574.tif 000032
【図３１】
2010134574.tif 000033
【図３２】
2010134574.tif 000034
【図３３】
2010134574.tif 000035
【図３４】
2010134574.tif 000036