(57)【要約】【課題】サービス提供者が必要最小限のサービスのみを含むプロセス定義を用意しておくだけで、利用者に必要なサービスを追加させてカスタマイズしたプロセスを利用させる。【解決手段】サービス提供サーバが、プロセス定義１１４と追加可能なサービス１０２とを用意し、利用者に提示できるようにする。利用者クライアント３００は、利用者の指示に従いプロセス定義へのサービスの追加可否を判定する等の支援を行う。サービス提供サーバは、利用者から要求されたサービスの実行可否を判定し、動的にプロセス定義に追加して実行する。【選択図】      図１
2005309672.tif 000002
【特許請求の範囲】
【請求項１】
１または複数のサービスプロセス提供サーバと、複数の利用者クライアントとしてのサービス表示・入力装置とがネットワークを介して接続され、複数のサービスの実行順序を記述したプロセス定義を外部に提供し、前記クライアントからのメッセージ受信によりプロセスを実行するサービスプロセス提供システムであって、
前記サービスプロセス提供サーバは、
必要最小限のサービスのみを含むプロセス定義を記憶するプロセス定義記憶装置と、
前記プロセス定義に利用者が追加して利用できるサービスの情報を記憶する追加可能サービス記憶装置と、
前記プロセス定義及び追加可能サービスの情報を利用者クライアントに対して出力するサービス出力部と、
プロセスインスタンス毎に利用者が要求した追加サービスの情報を記憶する要求サービス記憶装置と、
プロセスインスタンス実行中に次に実行すべきサービスを決定する要求解析部とを備えることを特徴とするサービスプロセス提供システム。
【請求項２】
前記追加可能サービス記憶装置は、前記サービスを追加可能なプロセス定義の識別子、当該サービス自身の識別子及び名称、当該サービスを実行する場合に追加で必要となる入力データ、当該サービスを実行する前に完了しておくべき前提サービス条件、当該サービスをの追加可否を判定するためのデータ条件、当該サービスの実行可否を判定するタイミング情報、及び、当該サービスを実行した結果を反映して更新されるべきデータの更新方法を記憶することを特徴とする請求項１記載のサービスプロセス提供システム。
【請求項３】
前記要求サービス記憶装置は、前記プロセスインスタンスの識別子と、前記プロセス定義の識別子及び利用者が要求した前記追加サービスを記憶することを特徴とする請求項１記載のサービスプロセス提供システム。
【請求項４】
前記サービス出力部は、前記プロセス定義及び当該プロセス定義に追加可能なサービスの情報と、連携先プロセスがあればその識別子とを利用者クライアントに通知することを特徴とする請求項１記載のサービスプロセス提供システム。
【請求項５】
前記利用者クライアントは、前記プロセス定義と当該プロセス定義に追加可能なサービスの情報とを連携先プロセスの分まで含めて取得し、取得した情報を利用者に表示して指示を待ち、サービス追加の指示があれば前記前提サービス条件及び前記データ条件を評価して追加可否を判定し、全ての条件を満たすまでサービス指定または入力データ指定のやり直しを促し、全ての条件を満たせばアプリケーションデータ及び追加サービス情報を記載したメッセージを生成してサービスプロセス提供サーバに送信することを特徴とする請求項１記載のサービスプロセス提供システム。
【請求項６】
前記要求解析部は、エンジンからプロセスインスタンスの生成が通知されると、受信メッセージから取得したデータを前記要求サービス記憶装置及び前記アプリケーションデータ記憶装置に記憶し、プロセスインスタンスの状態変化が通知されると、受信メッセージから取得したデータで当該要求サービス記憶装置及び当該アプリケーションデータ記憶装置を更新し、
当該プロセスインスタンスに対する１つ以上の追加サービスの要求があるがいずれのサービスもその前提サービスが完了していないか、または、当該プロセスインスタンスに対する追加サービスの要求がなければ、前記プロセス定義に従い次に実行すべきサービスを決定し、エンジンに実行を指示することを特徴とする請求項１記載のサービスプロセス提供システム。
【請求項７】
前記要求解析部は、エンジンからプロセスインスタンスの生成が通知されると、受信メッセージから取得したデータを前記要求サービス記憶装置及び前記アプリケーションデータ記憶装置に記憶し、プロセスインスタンスの状態変化が通知されると、受信メッセージから取得したデータで当該要求サービス記憶装置及び当該アプリケーションデータ記憶装置を更新し、
当該プロセスインスタンスに対する１つ以上の追加サービスの要求があり、いずれかのサービスの前記前提サービスが完了していれば、当該追加サービスを次に実行するサービスとして仮決定し、
当該サービスが前記データ条件を満たせば、次に実行すべきサービスとして正式決定し、当該サービスの情報を当該要求サービス記憶装置から削除し、エンジンに実行を指示することを特徴とする請求項１記載のサービスプロセス提供システム。
【請求項８】
前記要求解析部は、エンジンからプロセスインスタンスの生成が通知されると、受信メッセージから取得したデータを前期要求サービス記憶装置及び前記アプリケーションデータ記憶装置に記憶し、プロセスインスタンスの状態変化が通知されると、受信メッセージから取得したデータで当該要求サービス記憶装置及び当該アプリケーションデータ記憶装置を更新し、
当該プロセスインスタンスに対する１つ以上の追加サービスの要求があり、いずれかのサービスの前記前提サービスが完了していれば、当該追加サービスを次に実行するサービスとして仮決定し、
当該サービスが前記データ条件を満たさなければ、当該サービスの情報を当該要求サービス記憶装置から削除し、再度、次に実行すべきサービスを決定するための処理を実施することを特徴とする請求項１記載のサービスプロセス提供システム。
【請求項９】
１または複数のサービスプロセス提供サーバと、複数の利用者クライアントとしてのサービス表示・入力装置とがネットワークを介して接続され、複数のサービスの実行順序を記述したプロセス定義を外部に提供し、前記クライアントからのメッセージ受信によりプロセスを実行するサービスプロセス提供システムにおけるサービスプロセス提供方法であって、
前記サービスプロセス提供サーバは、必要最小限のサービスのみを含むプロセス定義を記憶するプロセス定義記憶装置と、前記プロセス定義に利用者が追加して利用できるサービスの情報を記憶する追加可能サービス記憶装置と、前記プロセス定義及び追加可能サービスの情報を利用者クライアントに対して出力するサービス出力部と、プロセスインスタンス毎に利用者が要求した追加サービスの情報を記憶する要求サービス記憶装置と、プロセスインスタンス実行中に次に実行すべきサービスを決定する要求解析部とを備え、
前記要求解析部は、エンジンからプロセスインスタンスの生成が通知されると、受信メッセージから取得したデータを前記要求サービス記憶装置及び前記アプリケーションデータ記憶装置に記憶し、プロセスインスタンスの状態変化が通知されると、受信メッセージから取得したデータで当該要求サービス記憶装置及び当該アプリケーションデータ記憶装置を更新し、
当該プロセスインスタンスに対する１つ以上の追加サービスの要求があるがいずれのサービスもその前提サービスが完了していないか、または、当該プロセスインスタンスに対する追加サービスの要求がなければ、前記プロセス定義に従い次に実行すべきサービスを決定し、エンジンに実行を指示することを特徴とするサービスプロセス提供方法。
ることを特徴とするサービスプロセス提供システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービスプロセス提供システム及び方法に係り、特に、複数のサービスの実行順序を記述したプロセス定義を外部に提供し、外部からのメッセージ受信によりプロセスを実行するサービスプロセス提供システム及び方法に関する。
【背景技術】
【０００２】
近年、ＳＯＡＰ(Simple Object Access Protocol）を用いて、インターネット経由でサービスを利用するＷｅｂサービスの技術が開発されてきている。また、近年では、複数のＷｅｂサービスを連続して実行する場合のプロセスを記述するプロセス記述言語の開発が進められている。プロセス記述言語の主な仕様に、非特許文献１等で紹介されているＭｉｃｒｏｓｏｆｔ、ＩＢＭ、ＢＥＡが提唱するＢＰＥＬ４ＷＳ（Business Process Execution Language for Web Services）と呼ばれる仕様が知られている。
【０００３】
プロセス記述言語の用途として、プロセスを予め決定できる一連のサービスを一括して実行するワンストップサービスへの適用がある。ワンストップサービスの仕組みは、予めサービス提供者がサービスプロセス（サービス利用者から見れば、一連のサービスを含むプロセスは、それ自体が１つのサービスである。その意味から、以下、定義されたプロセスをサービスプロセスという）を一般公開し、利用者からのメッセージの受信をトリガとして、プロセス制御エンジンがサービスプロセスの実行を開始するというものである。利用者は、サービスプロセス内の各サービスとその都度メッセージの交換を行う必要はなく、サービスプロセス実行に必要とされる情報を最初に一括して送信しておくだけで済み、最小限の手間で要求した目的を達成することができる。
【非特許文献１】http://www-106.ibm.com/developerworks/library/ws-bpel
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来技術で説明したサービスプロセスは、その提供、運用に当り、次に説明するような問題が生じてしまうものである。
【０００５】
すなわち、従来技術によるサービスプロセスは、同一の目的を達成するためのサービスプロセスであっても、利用者によって細部で異なる場合があるという問題を生じる。例えば、利用者Ａ及び利用者Ｂが同様のパッケージツアーを手配する旅行代理店のサービスプロセスを例とすると、このサービスプロセスは、フライト、ホテル及びレンタカーを順次予約する等のプロセスは概ね一意に決まるが、利用者Ａにとってはレンタカーは不要かもしれなし、一方、利用者Ｂにとってはフライト、ホテル、レンタカーに追加して、オプショナルツアーへの参加も申し込みたいかもしれないというように利用者によって異なる要求に対しての対応が困難な場合を生じさせる。
【０００６】
このような場合、サービス利用者にとって、自分の利用しようとするサービスプロセスに過剰なサービスが含まれているため手配に余計な料金や時間がかかったり、逆に、自分の希望するサービスが含まれていないため別途手配しなければならないことになる。その結果、サービスに対して不満が残ったり、サービスの利用を諦めなければならないこともある。
【０００７】
従来技術によるサービスプロセスは、前述したような問題を生じさせるため、サービス提供者にとっては、顧客喪失につながりなねない問題となる。解決案として、利用者毎にサービスプロセスを定義する案と、条件分岐を多用し利用者の希望に応じて個々のサービスの選択、非選択を決定する１つのサービスプロセスを定義する案とが考えられる。しかし、前者の解決案は、利用者の数だけサービスプロセス定義が存在することになり、旅行代理店のような不特定多数が利用するサービスでは現実的ではないという問題を生じると共に、同様のサービスプロセス定義が多数存在することにより、サービスプロセス定義及びプロセスインスタンスの管理に多くのコストが必要になるという問題を生じる。一方、後者の解決案は、選択あるいは非選択とすることができるサービスの数が増加するにつれて、サービスプロセス定義が含む条件分岐の数も増加し、定義が非常に煩雑になるという問題を生じる。
【０００８】
本発明の目的は、前述したような従来技術によるサービスプロセスの問題を解決し、サービス提供者が必要最小限のサービスのみを含むプロセス定義を用意しておけば、利用者が必要なサービスを追加してカスタマイズしたプロセスを利用することができるようにしたサービスプロセス提供システム及び方法を提供することにある。
【課題を解決するための手段】
【０００９】
前記の課題を解決するために本発明は、１または複数のサービスプロセス提供サーバと、複数の利用者クライアントとしてのサービス表示・入力装置とがネットワークを介して接続され、複数のサービスの実行順序を記述したプロセス定義を外部に提供し、前記クライアントからのメッセージ受信によりプロセスを実行するサービスプロセス提供システムであって、前記サービスプロセス提供サーバが、必要最小限のサービスのみを含むプロセス定義を記憶するプロセス定義記憶装置と、前記プロセス定義に利用者が追加して利用できるサービスの情報を記憶する追加可能サービス記憶装置と、前記プロセス定義及び追加可能サービスの情報を利用者クライアントに対して出力するサービス出力部と、プロセスインスタンス毎に利用者が要求した追加サービスの情報を記憶する要求サービス記憶装置と、プロセスインスタンス実行中に次に実行すべきサービスを決定する要求解析部とを備えることを特徴とする。
【００１０】
本発明によるサービスプロセスを提供するサービス提供サーバは、プロセス定義と追加可能なサービスを用意する。利用者に提示できるようにし、利用者クライアントは、利用者の指示に従いプロセス定義へのサービスの追加可否を判定するなどの支援を行う。サービス提供サーバは、利用者から要求された追加サービスの実行可否を判定し、動的にプロセス定義に追加して実行する。
【発明の効果】
【００１１】
本発明によれば、サービス提供者が必要最小限のサービスのみを含むプロセス定義を用意しておけば、利用者は必要なサービスを追加してカスタマイズしたプロセスを利用することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明によるサービスプロセス提供システムの実施形態を図面により詳細に説明する。なお、以下に説明する本発明の実施形態は、本発明を旅行代理店のような不特定多数が利用する旅行スケジュールの組立て、予約等のサービスのために適用した例である。
【００１３】
図１は本発明の一実施形態によるサービスプロセス提供システムの構成を示すブロック図である。
【００１４】
本発明の実施形態によるサービスプロセス提供システムは、２つのそれぞれ異なるサービスプロセスを提供する連携元となるサービスプロセス提供サーバ１００、連携先となるサービスプロセス提供サーバ２００と、サービス利用者がサービスプロセス定義をカスタマイズするためのサービス表示・入力装置３００とがネットワーク４００を介して接続されて構成されている。
【００１５】
サービスプロセス提供サーバ１００は、エンドユーザである利用者が直接利用するサービスプロセスを提供しており、このサービスプロセスは、利用者から見てあたかも１つのサービスに見える。サービスプロセス提供サーバ１００及び２００は、サービスプロセス提供サーバ１００が提供する１つ以上のサービスプロセスの中のアクティビティが、サービスプロセス提供サーバ２００が提供する１つ以上のサービスプロセスをサービスとして実行するプロセス連携の関係にある。しかし、利用者はもとより、サービスプロセス提供サーバ１００も、連携先プロセスの詳細を知る必要はない。利用者にとって、サービスプロセス提供サーバ１００のサービスプロセスが１つのサービスであるのと同様に、サービスプロセス提供サーバ２００のサービスプロセスも、サービスプロセス提供サーバ１００にとって１つのサービスである。
【００１６】
サービスプロセス提供サーバ１００及び２００は、どちらも同一の構成を有し、以下に説明する各機能要素を備えて構成される。
【００１７】
プロセス定義記憶装置１１４及び２１４は、それぞれ、サービスプロセス定義を記憶する記憶装置であり、１つ以上のサービスプロセスを記憶している。プロセス定義記憶装置１１４に記憶される１つ以上のサービスプロセスと、プロセス定義記憶装置２１４に記憶される１つ以上のサービスプロセスとは、前述したように、プロセス連携の関係にある。そして、プロセス定義記憶装置１１４及び２１４は、サービスプロセス定義の名称や、アクティビティ等の情報を識別子と対応付けて記憶する。
【００１８】
追加可能サービス記憶装置１０２及び２０２は、それぞれ、利用者がサービスプロセス定義に追加して利用することができるサービスの情報を記憶する記憶装置である。追加可能サービスの情報は、サービスプロセス提供サーバ１００及び２００が、予め作成して公開しておく。追加可能サービスの情報は、ＸＭＬ（eXtensible Markup Language）のような構造化文書ファイルとして記憶されていてもよいし、ＲＤＢ（リレーショナルデータベース）に表形式で記憶されていてもよい。
【００１９】
業務データ記憶装置１０６及び２０６は、それぞれ、プロセスインスタンスやアクティビティインスタンスの状態を記憶する記憶装置である。
【００２０】
要求サービス記憶装置１１２及び２１２は、プロセスインスタンス毎に利用者が要求した追加サービスの情報を記憶する記憶装置である。要求サービスの情報は、サービスプロセス提供サーバ１００及び２００が、プロセス実行時に動的に生成、更新する。要求サービスの情報は、ＸＭＬのような構造化ファイル文書として記憶してもよいし、ＲＤＢに表形式で記憶してもよい。
【００２１】
アプリケーションデータ記憶装置１１８及び２１８は、プロセスインスタンス毎にアプリケーションデータを記憶する記憶装置である。アプリケーションデータ記憶装置１１８及び２１８は、データの属性名と値とを対応付けて記憶する。
【００２２】
プロセス制御エンジン１０４及び２０４は、業務データの状態を変更させるエンジンである。
【００２３】
要求解析部１１０及び２１０は、次に実行すべきサービスを決定するものである。
【００２４】
サービス出力部１０８及び２０８は、プロセス定義及び追加可能サービスの情報を利用者に対して出力するものである。
【００２５】
図２は追加可能サービス記憶装置１０２に格納されているサービス情報の例を示す図、図３は追加可能サービス記憶装置２０２に格納されているサービス情報の例を示す図である。
【００２６】
図２、図３に示すように、追加可能サービス記憶装置１０２及び２０２に記憶されているサービス情報は、サービスを追加可能なプロセス定義の識別子（ＰＤＩＤ）１１０１０、サービス自身の識別子（サービスＩＤ）１１０２０、サービスの名称（サービス名）１１０３０、サービスを実行する場合に追加で必要となる入力データ（必要データ）１１０４０、サービスを実行する前に完了しておくべきサービス条件（前提サービス）１１０５０、サービスの追加可否を判定するためのデータ条件（データ条件）１１０６０、サービスの追加可否を判定するタイミング（判定タイミング）１１０７０、サービスを実行した結果を反映して更新されるべきデータの更新方法（データ更新）１１０８０により構成される。
【００２７】
次に、図３に示す例を参照して各項目について詳細に説明する。図３に示す例は、旅行代理店の例で、ホテルの予約を行うサービスに追加可能なサービスを示している。この例では、プロセス定義（ＰＤＩＤ）１１０１０“ＰＤ２”に対して、２つのサービス（サービスＩＤ）１１０２０“２Ｃ”及び“２Ｄ”が追加可能であることが示されている。これらの前提サービス１１０５０は、ともにサービス“２Ａ”である。サービス１１０２０“２Ｃ”の必要データ１１０４０は「希望日４」であり、このデータを含むデータ条件１１０６０を有する。判定タイミング１１０７０に“実行時”とあるのは、プロセス実行中に値が変化し得る動的データをデータ条件１１０６０に含むため、当該サービスの追加可否が実行直前になるまで判定できないことを示す。旅行代理店での例の場合、「出発日」、「帰着日」及び「希望日４」の値はプロセス実行中に変化することはないが、「復路フライト時刻」は予め決まらず、プロセス実行中のフライト予約の結果により異なる。サービス１１０２０“２Ｃ”は、この「復路フライト時刻」をデータ条件１１０６０に含むため、判定タイミング１１０７０を“実行時”としている。一方、サービス１１０２０“２Ｄ”の要求データ１１０４０は「希望日５」である。データ条件１１０６０は「出発日」、「希望日５」、「帰着日」を含むが、それらの値はプロセス実行中に変化することはないため、その判定タイミング１１０７０は、サービス１１０２０の追加可否をプロセス開始以前のプロセス生成段階で判定できることを示す“生成時”であるとする。次に、更新データ１１０８０は、当該サービス１１０２０の実行に伴う、関連するデータの値を更新するルールを定めている。ここで「料金２」は、ホテル予約サービスにおいて、室料、サービス料等を含む合計料金を示すデータである。更新データ１１０８０は、サービス１１０２０“２Ｃ”または“２Ｄ”を追加した場合、合計料金をそれぞれ１，０００円または２，０００円加算することを示している。前述では図３を例として説明したが、図２に示す例の場合も同様である。
【００２８】
図２に示す例は、ツアー手配全体のプロセスであり、追加可能なサービス１１０２０が全てプロセス生成段階で実行可否を判定することができることを示す。更新データ１１０８０の「料金１」は、フライト、ホテル等のツアー手配全体の合計料金を示すデータである。追加するサービスに応じて、料金の加算を行う。
【００２９】
図４は要求サービス記憶装置１１２に格納されている要求サービスの情報の例を示す図、図５は要求サービス記憶装置２１２に格納されている要求サービスの情報の例を示す図である。図４、図５に示すように、要求サービス記憶装置１１２及び２１２は、プロセスインスタンスの識別子（ＰＩＩＤ）１３０１０、プロセス定義の識別子（ＰＤＩＤ）１３０２０、利用者が要求した追加サービス（要求サービス）１３０３０を記憶する。
【００３０】
次に、本発明の実施形態での処理手順について説明するが、まず、その手順を説明する前提となるプロセス定義について説明する。
【００３１】
図６は基本プロセスの例を示す図、図７はカスタムプロセスの例を示す図である。
【００３２】
図６に示す例は、必要最小限のサービスのみを含むサービスプロセス定義（以下、基本プロセスという）の例であり、プロセス連携を含む基本プロセスである。図６において、プロセス定義ＩＤ“ＰＤ１”は、ツアー予約を行うサービスプロセス、プロセス定義ＩＤ“ＰＤ２”は、ホテル予約を行うサービスプロセスであり、各サービスプロセスは、それぞれサービスプロセス提供サーバ１００及び２００により実行される。プロセス定義ＩＤ“ＰＤ１”及び“ＰＤ２”は、ＵＲＩ（Uniform Resource Identifiers）等を利用することにより、ネットワーク上で一意に識別可能とされる。現実の世界においては、フライト予約を行うサービス“１Ｂ”も、ホテル予約を行うサービス“１Ｃ”と同様に、サービスプロセスの形態をとるが、ここでは簡単のため省略する。一方、図７に示す例は、利用者が図６に示した基本プロセスにサービスを追加して生成するプロセス（以下、カスタムプロセスという）の例である。前述で説明した図２及び図３に示した追加可能サービスの例は、それぞれ、プロセス定義ＩＤ“ＰＤ１”及び“ＰＤ２”への追加可能サービスの例を示している。図７に示すカスタムプロセスは、プロセス定義ＩＤ“ＰＤ１”に「ディナー付き観光」サービス“１Ｇ”と「ディナードリンク」サービス“１Ｈ”を、プロセス定義ＩＤ“ＰＤ２”に「朝食」サービス“２Ｃ”を追加して作成したものである。
【００３３】
図８〜図１０はサービス表示・入力装置３００の処理手順を説明するフローチャート、図１１はサービス出力部１０８及び２０８の処理手順を説明するフローチャート、図１２〜図１４は要求解析部１１０及び２１０の処理手順を説明するフローチャートであり、次に、これらのフローチャートを参照して本発明の実施形態での処理手順について説明する。ここでの説明は、図６及び図７に示すプロセス定義に従った処理を実行するものとし手行う。また、図８〜図１４に示すフローは、処理の途中で相互に連携して動作するものであるため、これらを一連のものとして、サービスプロセス利用者がカスタムプロセスを生成する場合の図１に示す各コンポーネントの処理動作と、カスタムプロセスの実行を制御する場合の図１に示す各コンポーネントの処理動作とを分けて、これらについて説明する。まず、サービスプロセス利用者がカスタムプロセスを生成する場合の処理動作説明する。
【００３４】
（１）サービスプロセス利用者がカスタムプロセスを生成するために、サービス表示・入力装置３００からプロセス定義を指定（ここでは、プロセス定義“ＰＤ１”するものとする）すると（ステップ４０１０）、サービス表示・入力装置３００は、指定されたプロセス定義の識別子をそのプロセス定義を提供するサービスプロセス提供サーバ（ここでは、サービスプロセス提供サーバ１００）に通知（ステップ４０２０）、サービスプロセス提供サーバ１００からの通知待ちとなる（ステップ４３０）。
【００３５】
（２）ステップ４０２０での通知を受けたサービスプロセス提供サーバ１００のサービス出力部１０８は、サービス表示・入力装置３００からの通知を受け取り（ステップ７０１０）、通知された識別子をキーとして、追加可能サービス記憶装置１０２を検索し、通知されたプロセス定義に追加可能なサービス（ここでは、図２に示した４つのサービス）を取得する（ステップ７０２０）。
【００３６】
（３）サービス出力部１０８は、取得したサービスをサービス表示・入力装置３００に通知する（ステップ７０３０）と共に、ステップ４０１０の処理で利用者により指定されたプロセス定義に連携先プロセスが存在するか否かを判定し（ステップ７０４０）、連携先プロセスが存在する場合、連携先プロセス定義の識別子（ここでは、プロセス定義“ＰＤ１”に連携先プロセス定義“ＰＤ２”が存在するためその識別子）をサービス表示・入力装置３００に通知し（ステップ７０５０）、処理を終了し、存在しなければ、そのまま処理を終了する。
【００３７】
この時点で、サービス表示・入力装置３００は、プロセス定義“ＰＤ１”の追加可能サービス情報と、連携先プロセス定義が“ＰＤ２”であるという情報を取得していることになる。
【００３８】
（４）サービス出力部１０８からの通知待ち状態にあったサービス表示・入力装置３００は、サービス出力部１０８から通知を受け取ると（ステップ４０３０）、連携先プロセス定義の識別子が通知されているか否かを判定し（ステップ４０４０）、連携先プロセス定義の識別子が通知されていれば、ステップ４０２０で指定したプロセス定義の識別子を連携先プロセス定義の識別子で置き換え、ステップ４０２０〜４０４０の処理を、連携先プロセスを取得しなくなるまで（ステップ４０４０：ＮＯ）繰り返し実施する。ここでは、連携先プロセス定義“ＰＤ２”が存在するため（ステップ４０４０：ＹＥＳ）、そのプロセス定義を提供するサービスプロセス提供サーバ２００に通知する（ステップ４０２０）。
【００３９】
（５）サービスプロセス提供サーバ２００のサービス出力部２０８は、ステップ４０２０の処理でのサービス表示・入力装置３００から通知を受け取ると（ステップ７０１０）、図３に示した２つのサービスを取得し（ステップ７０２０）、サービス表示・入力装置３００に通知する（ステップ７０３０）。サービス出力部２０８は、プロセス定義“ＰＤ２”に連携先プロセスがあるか否かを判定し（ステップ７０４０）、この場合、連携先プロセスが存在しないため（ステップ７０４０：ＮＯ）、ここでの処理を終了する。
【００４０】
この時点で、サービス表示・入力装置３００は、プロセス定義“ＰＤ１”と“ＰＤ２”とが連携関係にあるという情報と、各プロセス定義の追加可能サービス情報とを取得していることになる。
【００４１】
（６）サービス出力部２０８からの通知待ち状態にあったサービス表示・入力装置３００は、サービス出力部２０８から通知を受け取ると（ステップ４０３０）、連携先プロセスが存在するか否かを判定し（ステップ４０４０）、これ以上連携先プロセスが存在しないため（ステップ４０４０：ＮＯ）、ステップ５０１０の処理に進む。
【００４２】
前述までの処理により、利用者は、指定したプロセス定義を連携先プロセス定義まで含めて取得し、それぞれに追加可能なサービスの情報を取得することができる。
【００４３】
（７）次に、サービス表示・入力装置３００は、プロセス定義と、取得した追加可能サービスの情報を表示する（ステップ５０１０）。ここでは、図６に示すプロセス定義（基本プロセス）と、プロセス定義“ＰＤ１”への追加可能サービスとして図２に示す４つのサービスと、プロセス定義“ＰＤ２”への追加可能サービスとして図３に示す２つのサービスを表示する。
【００４４】
（８）サービス表示・入力装置３００は、利用者による追加サービス１１０２０の指定の有無を待ち（ステップ５０２０）、追加サービス１１０２０の指定があるか否かを判定し（ステップ５０３０）、追加サービス１１０２０の指定があると（ステップ５０３０：ＹＥＳ）、指定された全てのサービス１１０２０の追加の可否を判定する（ステップ５０４０、５０５０）。追加可否は、生成しようとするカスタムプロセスに、当該サービス１１０２０の前提サービス１１０５０が存在するか否かにより判定する。例えば、プロセス定義“ＰＤ１”にサービス１１０２０“１Ｆ”及び“１Ｈ”を追加したいとする。サービス１１０２０“１Ｆ”の前提サービス１１０５０“１Ｃ”は、すでに基本プロセスに存在するため、“１Ｆ”の追加が可能と判定する。しかし、サービス１１０２０“１Ｈ”の前提サービス１１０５０“１Ｇ”は、カスタムプロセスに存在しないため、“１Ｈ”のみの追加は不可能と判定する。このような場合（ステップ５０５０：ＮＯ）、サービス表示・入力装置３００は、サービス１１０２０“１Ｈ”の追加を諦めるか“１Ｇ”も追加するように、指定のやり直しを利用者に促す（ステップ５０６０）。
【００４５】
（９）利用者が再度追加サービス１１０２０を指定すると（ステップ５０２０）、指定サービス１１０２０が全て追加可能になるまで（ステップ５０５０：ＹＥＳ）ステップ５０２０〜５０５０の処理を繰り返し実施する。ここでは、指定をやり直して、プロセス定義“ＰＤ１”にサービス１１０２０“１Ｇ”と“１Ｈ”とを、プロセス定義“ＰＤ２”にサービス１１０２０“２Ｃ”の追加を指定するものとする。この結果、指定したサービス１１０２０が全て追加可能となったので（ステップ５０５０：ＹＥＳ）、ステップ６０１０の処理に進む。
【００４６】
（10）サービス表示・追加装置３００は、追加サービス１１０２０が前提サービス１１０５０の後に位置するように配置したカスタムプロセスを表示し、追加サービス１１０２０の必要データ１１０４０を含めたアプリケーションデータの入力を利用者に促す（ステップ６０１０）。ここでは、図７に示すカスタムプロセスを表示し、「出発日」、「帰着日」といった基本プロセスの実行に必要なデータと、サービス１１０２０“１Ｇ”及び“１Ｈ”の必要データ１１０４０「希望日３」と、“２Ｃ”の必要データ１１０４０「希望日４」の入力を促す（ステップ６０１０）。
【００４７】
（11）サービス表示・追加装置３００は、利用者がデータを入力すると、ステップ５０２０で指定した全ての追加サービス１１０２０の追加可否を、指定したサービス１１０２０のデータ条件１１０６０の真偽を評価することにより判定する（ステップ６０２０）。但し、ここでの判定は、判定タイミングが１１０７０“生成時”であるサービス１１０２０のみでよい。判定タイミング１１０７０が“実行時”であるサービス１１０２０は、実行直前に判定を行うため、ステップ６０２０では判定を行わずに無条件に“真”とする。ここでは、指定したサービス１１０２０のうち“１Ｇ”と“１Ｈ”とについては判定するが、“２Ｃ”については判定を行わずに“真”とする。
【００４８】
（12）サービス表示・入力装置３００は、判定したデータ条件１１０６０の結果の全てが“真”であった場合（ステップ６０２０：ＹＥＳ）、ステップ５０２０で指定した全ての追加サービス１１０２０の識別子と、ステップ６０１０で入力したデータとを記載したメッセージを作成し（ステップ６０６０）、プロセス定義を提供するサービスプロセス提供サーバに送信する（ステップ６０７０）。
【００４９】
（13）一方、判定したデータ条件１１０６０の結果が１つでも“偽”であった場合（ステップ６０２０：ＮＯ）、その原因となるデータを再入力するか、“偽”となったデータ条件１１０６０に対応するサービス１１０２０の追加を諦めるように、指定のやり直しを利用者に促して指示を待つ（ステップ６０３０）。
【００５０】
（14）サービス表示・入力装置３００は、利用者が入力する指示内容がデータの再入力かサービス利用の中止かを判定し（ステップ６０４０）、利用者が、“偽”となるデータ条件１１０６０に対応するサービス１１０２０の追加を中止すると（ステップ６０４０：サービス利用中止）、ステップ５０２０で指定した追加サービス１１０２０から、当該中止サービス１１０２０と、当該中止サービス１１０２０を前提サービス１１０５０とする他の追加サービス１１０２０があれば削除し（ステップ６０５０）、残りの追加サービス１１０２０の識別子と、ステップ６０１０で入力したデータとを記載したメッセージを作成し（ステップ６０６０）、プロセス定義を提供するサービスプロセス提供サーバに送信する（ステップ６０７０）。
【００５１】
（15）一方、サービス表示・入力装置３００は、利用者による指示内容が、“偽”の原因となるデータの再入力であった（ステップ６０４０：データ再入力）場合、データの入力を待って（ステップ６０１０）、追加サービス１１０２０の追加可否を再度判定する（ステップ６０２０）。以下、データ条件１１０６０が全て“真”になるか（ステップ６０２０：ＹＥＳ）、“偽”となるデータ条件１１０６０に対応するサービス１１０２０の追加が中止になるまで（ステップ６０４０：サービス利用中止）、ステップ６０１０〜６０４０の処理を繰り返し実施する。
【００５２】
（16）一方、ステップ５０３０の判定で、利用者から追加サービス１１０２０の指定がなかった（ステップ５０３０：ＮＯ）場合、カスタムプロセスは、基本プロセスそのものであるので、追加サービス１１０２０のための必要データは不要である。このため、サービス表示・入力装置３００は、基本プロセスの実行に必要なアプリケーションデータのみの入力を利用者に促し（ステップ５０７０）、入力データを記載したメッセージを作成して（ステップ５０８０）、そのメッセージをプロセス定義を提供するサービスプロセス提供サーバに送信する（ステップ５０９０）。
【００５３】
前述した図９及び図１０に示すフローの処理を実行することにより、利用者は、追加したいサービスがあればその識別子と、そのサービスの実行に必要なデータを含めたアプリケーションデータを記載したメッセージとを作成してサービスプロセス提供サーバに送信することができる。
【００５４】
ここでは、利用者が図７に示すカスタムプロセスを生成したものとして説明を進める。このカスタムプロセスを生成するために、利用者は、プロセス定義“ＰＤ１”にサービス１１０２０“１Ｇ”と“１Ｈ”とを、プロセス定義“ＰＤ２”に“２Ｃ”を追加している。また、それらの実行のための必要データ１１０４０「希望日３」及び「希望日４」のデータ入力を行う。これらのデータと、基本プロセス実行に必要になる「出発日」、「帰着日」等のデータを記載したメッセージが、サービスプロセス提供サーバ１００に送信される。
【００５５】
前述までで、サービスプロセス利用者がカスタムプロセスを生成する場合の図１に示す各コンポーネントの処理動作を説明した。次に、カスタムプロセスの実行を制御する場合の図１に示す各コンポーネントの処理動作を説明する。
【００５６】
（１）サービスプロセス提供サーバ１００は、外部からのメッセージを受信すると、エンジン１０４に通知する。エンジン１０４は、受信メッセージに対応するプロセスインスタンスが存在しなければ新規にプロセスを開始するので、新規プロセスインスタンスを生成し、それを業務データ記憶装置１０６に記憶する。受信メッセージに対応する既存プロセスインスタンスが存在すれば、当該プロセスインスタンス中の実行中アクティビティの状態がメッセージ受信により変化するため、業務データ記憶装置１０６に記憶されている状態データを更新する。
【００５７】
（２）サービスプロセス提供サーバ１００の要求解析部１１０は、エンジン１０４からの通知を待って通知を受け取り（ステップ８０１０）、通知内容がインスタンスの新規生成か状態変化かを判定し（ステップ８０２０）、通知内容がインスタンスの新規生成であった場合（ステップ８０２０：インスタンス生成）、受信メッセージから追加サービス情報を取得し、生成したインスタンスの識別子と共に取得した追加サービスを要求サービス記憶装置１１２に記憶する（ステップ８０４０）。この時点での要求サービス記憶装置１１２の記憶内容の例を図４（ａ）に示ている。また、要求解析部１１０は、受信メッセージからアプリケーションデータを取得し、これをアプリケーションデータ記憶装置１１８に記憶する（ステップ８０４０）。ここでは、「希望日３」、「希望日４」、「出発日」、「帰着日」などのデータを記憶する。要求解析部１１０は、要求サービス記憶装置１１２及びアプリケーションデータ記憶装置１１８への前述した記憶の処理を行った後、ステップ９０１０り処理に進む。
【００５８】
（３）要求解析部１１０は、ステップ８０１０で通知されたインスタンスの識別子“１００”をキーに、当該インスタンス１３０１０に対する追加サービス１３０３０の要求が存在するか否かを要求サービス記憶装置１１２を検索して判定する（ステップ９０１０）。
【００５９】
（４）ステップ９０１０の判定で、要求される追加サービス１３０３０が存在しなかった場合（ステップ９０１０：ＮＯ）、要求解析部１１０は、基本プロセスの実行と変わりはないので、プロセス定義に従い次に実行するサービスを決定し（ステップ９０７０）、アプリケーションデータ記憶装置１１８に記憶されたアプリケーションデータをエンジン１０４に通知し、サービス実行を指示し（ステップ１００４０）、エンジン１０４０からの通知待ちの状態になる（ステップ８０１０）。
【００６０】
（３）一方、ステップ９０１０の判定で、要求される追加サービス１３０３０が存在していた場合（ステップ９０１０：ＹＥＳ）、その前提サービス１１０５０を追加可能サービス記憶装置１０２から検索し（ステップ９０２０〜９０３０）、当該前提サービス１１０５０を実行するアクティビティの状態を業務データ記憶装置１０６から検索し、全ての当該アクティビティが完了しているか否かを判定し（ステップ９０４０）、全ての当該アクティビティが完了していた場合（ステップ９０４０：ＹＥＳ）、当該追加サービス１３０３０を次に実行するサービスとして仮決定し、ステップ１００１０の処理に進む。
【００６１】
（４）ステップ９０４０の判定で、前提サービス１１０５０を実行するアクティビティが完了していなかった場合（ステップ９０４０：ＮＯ）、ステップ９０１０で取得した他の追加サービス１３０３０について、ステップ９０４０：ＹＥＳを満たす追加サービス１３０３０を取得するまで、ステップ９０３０〜９０６０の処理を繰り返し実施する。ステップ９０４０：ＹＥＳを満たす追加サービス１３０３０が取得できたか否かを判定し（ステップ９０５０）、追加サービス１３０３０が取得できなかった場合（ステップ９０５０：ＹＥＳ）、この時点では追加サービス１３０３０のいずれも実行できる段階にないので、プロセス定義に従い次に実行するサービスを決定し（ステップ９０７０）、アプリケーションデータ記憶装置１１８に記憶されたアプリケーションデータと要求サービス記憶装置１１２に記憶された追加サービス情報とをエンジン１０４に通知し、サービス実行を指示し（ステップ１００４０）、エンジン１０４からの通知待ちの状態になる（ステップ８０１０）。その間、エンジン１０４は、要求解析部１１０から通知されたアプリケーションデータと追加サービス情報とを記載したメッセージを送信して、指定されたサービスを実行する。
【００６２】
前述した処理について具体的に説明すると、図４（ａ）に示すように、ステップ８０１０で通知されたインスタンス１３０１０“１００”には、プロセス定義１３０２０“ＰＤ１”に対して要求される２つの追加サービス１３０３０“１Ｇ”、“１Ｈ”が存在する（ステップ９０１０：ＹＥＳ）。ステップ９０４０：ＹＥＳを満たすまで、“１Ｇ”と“１Ｈ”についてステップ９０２０〜９０６０の処理を実施する。この時点では、当該インスタンス１３０１０“１００”は生成されたばかりであり、“１Ｇ”、“１Ｈ”共に前提サービス１１０５０が完了していないため（ステップ９０５０：ＹＥＳ）、プロセス定義“ＰＤ１”に従いサービス“１Ａ”を次に実行するサービスとして決定し（ステップ９０７０）、アプリケーションデータ記憶装置１１８に記憶されたアプリケーションデータと要求サービス記憶装置１１２に記憶された追加サービス情報とをエンジン１０４に通知し、サービス実行を指示し（ステップ１００４０）、エンジン１０４からの通知待ちの状態になる（ステップ８０１０）。その間、エンジン１０４は、要求解析部１１０から通知されたアプリケーションデータと追加サービス情報を記載したメッセージを送信して、サービス“１Ａ”を実行する。
【００６３】
（５）要求解析部１１０は、エンジン１０４からの通知待ちで通知を受け取ると（ステップ８０１０）、通知の内容を判定し（ステップ８０２０）、通知がサービス“１Ａ”を実行するアクティビティが完了したことの通知であった場合（ステップ８０２０：状態変化）、サービス“１Ａ”の実行結果を示す受信メッセージから追加サービス情報を取得し、要求サービス記憶装置１１２の情報を更新する（ステップ８０３０）。但し、ここでは、追加サービス情報に変化はないので、要求サービス記憶装置１１２を更新しても変化は生じない。また、要求解析部１１０は、受信メッセージからアプリケーションデータを取得し、アプリケーションデータ記憶装置１１８の情報を更新する（ステップ８０３０）。要求解析部１１０は、ステップ９０１０以降の処理を実施するが、この時点でもプロセス定義“ＰＤ１”への追加サービス１３０３０“１Ｇ”、“１Ｈ”の前提サービス１１０５０が完了してないため（ステップ９０５０：ＹＥＳ）、プロセス定義“ＰＤ１”に従いサービス“１Ｂ”を次に実行するサービスとして決定し（ステップ９０７０）、前記サービス“１Ａ”の場合と同様の手順でステップ１００４０を実施し、エンジン１０４からの通知待ちの状態になる（ステップ８０１０）。
【００６４】
（６）ステップ８０２０の通知内容の判定で、エンジン１０４からサービス“１Ｂ”を実行するアクティビティが完了したことが通知されると（ステップ８０２０：状態変化）、要求解析部１１０は、前記サービス“１Ａ”の場合と同様の手順でステップ８０３０を実施し、ステップ９０１０以降の処理を実施するが、この時点でもプロセス定義“ＰＤ１”への追加サービス１３０３０“１Ｇ”、“１Ｈ”の前提サービス１１０５０が完了してないため（ステップ９０５０：ＹＥＳ）、プロセス定義“ＰＤ１”に従いサービス“１Ｃ”を次に実行するサービスとして決定し（ステップ９０７０）、前記サービス“１Ａ”及び“１Ｂ”の場合と同様の手順でステップ１００４０を実施し、エンジン１０４からの通知待ちの状態になる（ステップ８０１０）。
【００６５】
前述した処理において、サービス“１Ｃ”は“１Ａ”及び“１Ｂ”とは異なり、複数のサービスから構成されるサービスプロセスであり、そのプロセス定義“ＰＤ２”は、サービスプロセス提供サーバ２００が提供する。
【００６６】
そして、サービスプロセス提供サーバ２００は、サービスプロセス提供サーバ１００からのメッセージを受信すると、エンジン２０４に通知する。エンジン２０４は、新規プロセスインスタンスを生成し、業務データ記憶装置２０６に記憶する。
【００６７】
（７）サービスプロセス提供サーバ２００の要求解析部２１０は、エンジン２０４からの通知を待ち、通知を受け取ると（ステップ８０１０）、通知の内容を判定する（ステップ８０２０）。この判定で、通知内容がインスタンスの新規生成であった場合（ステップ８０２０：インスタンス生成）、受信メッセージから追加サービス情報を取得し、生成したインスタンスの識別子と共に、追加サービス情報を要求サービス記憶装置２１２に記憶する（ステップ８０４０）。この時点で、要求サービス記憶装置２１２に格納されている情報の例を図５（ａ）に示している。また、要求解析部２１０は、受信メッセージからアプリケーションデータを取得し、アプリケーションデータ記憶装置２１８に記憶する（ステップ８０４０）。
【００６８】
（７）その後、要求解析部２１０は、ステップ９０１０の処理に進み、ステップ８０１０で通知されたインスタンスの識別子“１５０”をキーに、当該インスタンス１３０１０に対する追加サービス１３０３０の要求が存在するか否かを、要求サービス記憶装置２１２を検索して判定する（ステップ９０１０）。当該インスタンス１３０１０“１５０”には、プロセス定義１３０２０“ＰＤ２”に要求される１つの追加サービス１３０３０“２Ｃ”が存在する（ステップ９０１０：ＹＥＳ）。しかし、この時点では、当該インスタンス１３０１０“１５０”は生成されたばかりであり、“２Ｃ”の前提サービス１１０５０が完了していないため（ステップ９０５０：ＹＥＳ）、プロセス定義“ＰＤ２”に従いサービス“２Ａ”を次に実行するサービスとして決定し（ステップ９０７０）、アプリケーションデータ記憶装置２１８に記憶されたアプリケーションデータと要求サービス記憶装置２１２に記憶された追加サービス情報とをエンジン２０４に通知し、サービス実行を指示して（ステップ１００４０）、エンジン２０４からの通知待ちの状態になる（ステップ８０１０）。その間、エンジ２０４は、要求解析部２１０から通知されたアプリケーションデータと追加サービス情報を記載したメッセージを送信して、サービス“２Ａ”を実行する。
【００６９】
（８）要求解析部２１０は、ステップ８０２０の判定で、通知内容がインスタンスのエンジン２０４からサービス“２Ａ”を実行するアクティビティが完了したことの通知であった場合（ステップ８０２０：状態変化）、サービス“２Ａ”の実行結果を示す受信メッセージから追加サービス情報を取得し、要求サービス記憶装置２１２の情報を更新する（ステップ８０３０）。但し、ここでは追加サービス情報に変化はないので、要求サービス記憶装置２１２を更新しても変化は生じない。また、要求解析部２１０は、受信メッセージからアプリケーションデータを取得し、アプリケーションデータ記憶装置２１８の情報を更新する（ステップ８０３０）。
【００７０】
（９）その後、要求解析部２１０は、ステップ９０１０の処理に進み、ステップ８０１０で取得されたインスタンスの識別子“１５０”をキーに、当該インスタンス１３０１０に対する追加サービス１３０３０の要求が存在する否かを要求サービス記憶装置２１２を検索して判定する（ステップ９０１０）。当該インスタンス１３０１０“１５０”には、プロセス定義１３０２０“ＰＤ２”に要求される１つの追加サービス１３０３０“２Ｃ”が存在する（ステップ９０１０：ＹＥＳ）ので、追加サービス１３０３０“２Ｃ”の前提サービス１１０５０を追加可能サービス記憶装置２０２から検索し（ステップ９０２０〜９０３０）、前提サービス１１０５０“２Ａ”を取得する。前提サービス１１０５０“２Ａ”は、この時点ですでに完了しているので（ステップ９０４０：ＹＥＳ）、追加サービス１３０３０“２Ｃ”を次に実行するサービスとして仮決定し、ステップ１００１０の処理に進む。
【００７１】
（10）要求解析部２１０は、仮決定したサービス１３０３０の判定タイミング１１０７０を判定し（ステップ１００１０）、判定タイミング１１０７０が“生成時”であった場合（ステップ１００１０：生成時）、当該サービス１３０３０が実行可能であることがすでにカスタムプロセス生成時に決定しているので、このサービスを次に実行するサービスとして決定し（ステップ１００２０）、当該サービス１３０３０を要求サービス記憶装置２１２から削除し（ステップ１００３０）、アプリケーションデータ記憶装置２１８に記憶されたアプリケーションデータと要求サービス記憶装置２１２に記憶された追加サービス情報とをエンジン２０４に通知し、サービス実行を指示し（ステップ１００４０）、エンジン２０４からの通知待ちの状態になる（ステップ８０１０）。
【００７２】
（11）一方、ステップ１００１０の判定で、仮決定したサービス１３０３０の判定タイミング１１０７０が“実行時”であった場合（ステップ１００１０：実行時）、要求解析部２１０は、当該サービス１３０３０が持つ全てのデータ条件１１０６０を評価し（ステップ１００５０）、全てが“真”であるか否かを判定する。この判定で全てが“真”であった場合（ステップ１００６０：ＹＥＳ）、当該サービス１３０３０が実行可能であるので、ステップ１００２０〜１００４０及び８０１０の処理を実施し、１つでも“偽”であった場合（ステップ１００６０：ＮＯ）、当該サービス１３０３０を実行することができないので、当該サービス１３０３０と、当該サービス１３０３０を前提サービス１１０５０とする他の追加サービス１３０３０があれば要求サービス記憶装置２１２から削除し（ステップ１００７０）、他に追加サービス１３０３０の要求が存在するか否かを検索する（ステップ９０１０）。
【００７３】
前述の処理を具体的に説明する。ステップ１００１０までに仮決定したサービス１３０３０“２Ｃ”の判定タイミング１１０７０が“実行時”であるので（ステップ１００１０：実行時）、データ条件１１０６０を評価する（ステップ１００５０）。“２Ｃ”のデータ条件１１０６０は“（出発日＜希望日４＜＝帰着日）ＡＮＤ（ＩＦ  希望日４＝帰着日  ＴＨＥＮ  復路フライト時刻＞９：００）”とあり、サービス“１Ｂ”の実行結果である「復路フライト時刻」の値を含む。データ条件１１０６０から、復路フライト時刻が９：００以降であれば帰着日でもサービス１３０３０“２Ｃ”を利用することができるが、復路フライト時刻が９：００以前であれば利用できない。ここでは、フライト時刻が９：００以降であるものとして説明を進める。
【００７４】
（12）要求解析部２１０は、サービス１３０３０“２Ｃ”のデータ条件１１０６０の評価結果が“真”であるので（ステップ１００６０：ＹＥＳ）、“２Ｃ”を次に実行するサービスとして決定し（ステップ１００２０）、当該サービス１３０３０を要求サービス記憶装置２１２から削除する（ステップ１００３０）。この時点での要求サービス記憶装置２１２に格納されている情報の例を図５（ｂ）に示している。要求解析部２１０は、アプリケーションデータ記憶装置２１８に記憶されたアプリケーションデータと要求サービス記憶装置２１２に記憶された要求サービス情報とをエンジン２０４に通知し、サービス実行を指示し（ステップ１００４０）、エンジン２０４からの通知待ちの状態になる（ステップ８０１０）。
【００７５】
（13）要求解析部２１０は、エンジン２０４からの通知待ちで通知を受け取ると（ステップ８０１０）、通知の内容を判定し（ステップ８０２０）、受け取った通知の内容がサービス“２Ｃ”を実行するアクティビティが完了したことの通知であった場合（ステップ８０２０：状態変化）、サービス“２Ｃ”の実行結果を示す受信メッセージから追加サービス情報を取得し、要求サービス記憶装置２１２の情報を更新する（ステップ８０３０）。但し、ここでは追加サービス情報に変化はないので、要求サービス記憶装置２１２を更新しても変化は生じない。また、要求解析部２１０は、受信メッセージからアプリケーションデータを取得し、アプリケーションデータ記憶装置２１８を更新する（ステップ８０３０）。さらに、基本プロセスには存在しない追加サービス“２Ｃ”を実行したので、その実行に伴い値を更新しなければならないアプリケーションデータが存在する場合がある。そこで、追加可能サービス記憶装置２０２から、サービス１１０２０“２Ｃ”の更新データ１１０８０“料金２＝料金２＋１，０００”を取得する。ここでは、ステップ８０３０でアプリケーションデータを更新するとともに、ルールに従ってデータ「料金２」を更新する。
【００７６】
（14）次に、要求解析部２１０は、ステップ９０１０の処理に進み、要求サービスがあるか否かを判定する（ステップ９０１０）が、これ以上プロセス定義“ＰＤ２”に要求される追加サービス１３０３０が存在しない（ステップ９０１０：ＮＯ）ので、プロセス定義“ＰＤ２”に従ってサービス“２Ｂ”を次に実行するサービスとして決定し（ステップ９０７０）、アプリケーションデータ記憶装置２１８に記憶されたアプリケーションデータと要求サービス記憶装置２１２に記憶された追加サービス情報とをエンジン２０４に通知し、サービスの実行を指示して（ステップ１００４０）、エンジン２０４からの通知待ち状態になる（ステップ８０１０）。その間、エンジン２０４は、要求解析部２１０から通知されたアプリケーションデータと追加サービス情報を記載したメッセージとを送信して、サービス“２Ｂ”を実行する。
【００７７】
（15）要求解析部２１０は、エンジン２０４からの通知の内容を判定し（ステップ８０２０）、通知がサービス“２Ｂ”を実行するアクティビティが完了したことの通知であった場合（ステップ８０２０：状態変化）、サービス“２Ｂ”の実行結果を示す受信メッセージから追加サービス情報を取得し、要求サービス記憶装置２１２の情報を更新する（ステップ８０３０）。但し、ここでは追加サービス情報に変化はないので、要求サービス記憶装置２１２を更新しても変化は生じない。また、要求解析部２１０は、受信メッセージからアプリケーションデータを取得し、アプリケーションデータ記憶装置２１８の情報を更新する（ステップ８０３０）。
【００７８】
（16）要求解析部２１０は、ステップ９０１０の処理に進み、要求サービスがあるか否かを判定する（ステップ９０１０）が、これ以上プロセス定義“ＰＤ２”に要求される追加サービス１３０３０が存在しない（ステップ９０１０：ＮＯ）ので、プロセス定義“ＰＤ２”に従って次に実行するサービスを決定するが、基本プロセスのサービスも全て完了しているので、プロセスインスタンスの完了を決定し（ステップ９０７０）、アプリケーションデータ記憶装置２１８に記憶されたアプリケーションデータと追加サービス記憶装置２１２に記憶された追加サービス情報とをエンジン２０４に通知し、インスタンスの完了を指示し（ステップ１００４０）、エンジン２０４からの通知待ちの状態になる（ステップ８０１０）。
【００７９】
（17）エンジン２０４は、プロセス定義“ＰＤ２”のインスタンス“１５０”を完了させ、要求解析部２１０から通知されたアプリケーションデータと追加サービス情報を記載したメッセージを、サービスプロセス提供サーバ１００に送信する。そして、サービスプロセス提供サーバ１００は、サービスプロセス提供サーバ２００からのメッセージを受信すると、その旨をエンジン１０４に通知する。エンジン１０４は、受信メッセージに対応する既存インスタンス“１００”が存在するため、当該プロセスインスタンス中の実行中アクティビティ“１Ｃ”を完了させる。
【００８０】
（18）エンジン１０４からの通知待ち状態（ステップ８０１０）にあった要求解析部１１０は、エンジン１０４からの通知の内容を判定し（ステップ８０２０）、通知がエンジン１０４からサービス“１Ｃ”が完了したことの通知であった場合（ステップ８０２０：状態変化）、サービス“１Ｃ”の実行結果を示す受信メッセージから追加サービス情報を取得し、要求サービス記憶装置１１２の情報を更新する（ステップ８０３０）。この時点での要求サービス記憶装置１１２に格納されている情報の例を図４（ｂ）に示している。また、要求解析部１１０は、受信メッセージからアプリケーションデータを取得し、アプリケーションデータ記憶装置１１８を更新する（ステップ８０３０）。
【００８１】
（19）要求解析部１１０は、ステップ９０１０の処理に進み、ステップ８０１０で通知されたインスタンスの識別子“１００”をキーに、当該インスタンス１３０１０に対する追加サービス１３０３０の要求が存在するか否かを、要求サービス記憶装置１１２を検索して判定する（ステップ９０１０）。この場合、当該インスタンス１３０１０“１００”には、プロセス定義１３０２０“ＰＤ１”に要求される２つの追加サービス１３０３０“１Ｇ”及び“１Ｈ”が存在する（ステップ９０１０：ＹＥＳ）。このため、要求解析部１１０は、１つ目の“１Ｇ”について（ステップ９０２０）、その前提サービス１１０５０を追加可能サービス記憶装置１０２から検索し、前提サービス１１０５０“１Ｃ”を取得し（ステップ９０３０）、このサービスの処理が完了しているか否かを判定するが（ステップ９０４０）、“１Ｃ”は、この時点ですでに完了しているので（ステップ９０４０：ＹＥＳ）、“１Ｇ”を次に実行するサービスとして仮決定し、ステップ１００１０の処理に進む。
【００８２】
（20）要求解析部１１０は、判定タイミングの判定を行い（ステップ１００１０）、仮決定したサービス１３０３０“１Ｇ”の判定タイミング１１０７０が“生成時”であるので（ステップ１００１０：生成時）、これを次に実行するサービスとして決定し（ステップ１００２０）、当該サービス１３０３０を要求サービス記憶装置１１２から削除する（ステップ１００３０）。この時点での要求サービス記憶装置１１２に格納されている情報の例を図４（ｃ）に示している。要求解析部１１０は、アプリケーションデータ記憶装置１１８に記憶されたアプリケーションデータと要求サービス記憶装置１１２に記憶された追加サービス情報とをエンジン２０４に通知し、サービス実行を指示し（ステップ１００４０）、エンジン１０４からの通知待ちの状態になる（ステップ８０１０）。
【００８３】
（21）要求解析部１１０は、エンジン１０４からの通知待ちで通知を受け取ると（ステップ８０１０）、エンジン１０４からの通知の内容を判定し（ステップ８０２０）、通知がエンジン１０４からサービス“１Ｇ”を実行するアクティビティが完了したことの通知であった場合（ステップ８０２０：状態変化）、サービス“１Ｇ”の実行結果を示す受信メッセージから追加サービス情報を取得し、要求サービス記憶装置１１２の情報を更新する（ステップ８０３０）。但し、ここでは追加サービス情報に変化はないので、要求サービス記憶装置１１２を更新しても変化は生じない。また、要求解析部１１０は、受信メッセージからアプリケーションデータを取得し、アプリケーションデータ記憶装置１１８を更新する（ステップ８０３０）。さらに、基本プロセスには存在しない追加サービス“１Ｇ”を実行したので、その実行に伴い値を更新しなければならないアプリケーションデータが存在する場合がある。そこで、要求解析部１１０は、追加可能サービス記憶装置１０２から、サービス１１０２０“１Ｇ”の更新データ１１０８０“料金１＝料金１＋８，０００”を取得する。ここでは、ステップ８０３０でアプリケーションデータを更新するとともに、ルールに従いデータ「料金１」を更新する。
【００８４】
（22）その後、要求解析部１１０は、ステップ９０１０の処理に進み、ステップ８０１０で通知されたインスタンスの識別子“１００”をキーに、当該インスタンス１３０１０に対する追加サービス１３０３０の要求が存在するか否かを、要求サービス記憶装置１１２を検索することにより判定する（ステップ９０１０）。当該インスタンス１３０１０“１００”には、プロセス定義１３０２０“ＰＤ１”に要求される１つの追加サービス１３０３０“１Ｈ”が存在する（ステップ９０１０：ＹＥＳ）するので、“１Ｈ”の前提サービス１１０５０を追加可能サービス記憶装置１０２から検索し（ステップ９０２０〜９０３０）、前提サービス１１０５０“１Ｇ”を取得する。“１Ｇ”は、この時点ですでに処理を完了しているので（ステップ９０４０：ＹＥＳ）、“１Ｈ”を次に実行するサービスとして仮決定し、ステップ１００１０の処理に進む。
【００８５】
（23）要求解析部１１０は、仮決定したサービス１３０３０“１Ｈ”の判定タイミングを判定し、判定タイミングが“生成時”であるので（ステップ１００１０：生成時）、この“１Ｈ”を次に実行するサービスとして決定し（ステップ１００２０）、当該サービス１３０３０を要求サービス記憶装置１１２から削除する（ステップ１００３０）。この時点で、要求サービス記憶装置１１２には、当該インスタンス１３０１０“１００”への追加サービス情報はこれ以上存在しない。要求解析部１１０は、アプリケーションデータ記憶装置１１８に記憶されたアプリケーションデータをエンジン１０４に通知し、サービス実行を指示し（ステップ１００４０）、エンジン１０４からの通知待ちの状態になる（ステップ８０１０）。
【００８６】
（24）要求解析部１１０は、エンジン１０４からの通知待ちで受け取った通知の内容を判定し（ステップ８０２０）、受け取った通知がサービス“１Ｈ”を実行するアクティビティが完了したことの通知であった場合（ステップ８０２０：状態変化）、サービス“１Ｈ”の実行結果を示す受信メッセージからアプリケーションデータを取得し、アプリケーションデータ記憶装置１１８を更新する（ステップ８０３０）。さらに、基本プロセスには存在しない追加サービス“１Ｈ”を実行したので、その実行に伴い値を更新しなければならないアプリケーションデータが存在する場合がある。このため、要求解析部１１０は、追加可能サービス記憶装置１０２から、サービス１１０２０“１Ｈ”の更新データ１１０８０“料金１＝料金１＋１，５００”を取得する。ここでは、ステップ８０３０でアプリケーションデータを更新すると共に、ルールに従いデータ「料金１」を更新する。一方、受信メッセージに追加サービス情報が存在せず、要求サービス記憶装置１１２にも当該インスタンス“１００”への追加サービス情報が存在しないため、要求サービス記憶装置１１２の変化は生じない。
【００８７】
（25）次に、要求解析部１１０は、ステップ９０１０の処理に進み、要求サービスがあるか否かを判定するが、これ以上プロセス定義“ＰＤ１”に要求される追加サービス１３０３０が存在しないので（ステップ９０１０：ＮＯ）、プロセス定義“ＰＤ１”に従い次に実行するサービスを決定する。しかし、基本プロセスのサービスも全て完了しているので、要求解析部１１０は、プロセスインスタンスの完了を決定し（ステップ９０７０）、アプリケーションデータ記憶装置１１８に記憶されたアプリケーションデータと追加サービス記憶装置１１２に記憶された追加サービス情報とをエンジン１０４に通知し、インスタンスの完了を指示し（ステップ１００４０）、エンジン１０４からの通知待ちの状態になる（ステップ８０１０）。
【００８８】
（26）エンジン１０４は、プロセス定義“ＰＤ１”のインスタンス“１００”を完了させ、要求解析部１１０から通知されたアプリケーションデータを記載したメッセージを、利用者のサービス表示・入力装置３００に送信する。
【００８９】
前述した本発明の実施形態における各処理は、処理プログラムとして構成することができ、この処理プログラムは、ＨＤ、ＤＡＴ、ＦＤ、ＭＯ、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することができる。
【００９０】
前述までで、サービスプロセス利用者がカスタムプロセスを生成する場合の図１に示す各コンポーネントの処理動作を説明した。本発明の実施形態は、前述した処理を実行することにより、複数のサービスプロセス提供装置がプロセス連携の関係にある場合でも、利用者が要求するサービスを基本プロセスに追加したカスタムプロセスを実行することができる。
【００９１】
前述した本発明の実施形態によれば、利用者は、追加したいサービスがあればその識別子と、その実行に必要なデータを含めたアプリケーションデータを記載したメッセージを作成し、サービスプロセス提供サーバに送信することができる。そして、利用者は、基本プロセスにサービスを追加したカスタムプロセスを生成するが、カスタムプロセス全体の情報を送信するのではなく、追加サービスの情報のみを送信するだけでよく、送信データ量が小さくて済む。また、サービスプロセス提供サーバは、カスタムプロセス全体の情報ではなく、追加部分のみの情報を管理すればよい。
【００９２】
また、前述した本発明の実施形態によれば、複数のサービスプロセス提供サーバがプロセス連携の関係にある場合でも、利用者は、カスタムプロセスを生成、実行することができる。連携元プロセス定義は、連携先プロセス定義の詳細を知る必要はなく、その識別子を知っているだけでよい。
【００９３】
前述した本発明の実施形態は、２つのサービスプロセス提供サーバがプロセス連携の関係にあるものとして説明したが、本発明は、さらに多数のサービスプロセス提供サーバを連携させるように構成することもでき、また、１つのサービスプロセス提供サーバだけを備えて構成することもできる。
【図面の簡単な説明】
【００９４】
【図１】本発明の一実施形態によるサービスプロセス提供システムの構成を示すブロック図である。
【図２】追加可能サービス記憶装置１０２に格納されているサービス情報の例を示す図である。
【図３】追加可能サービス記憶装置２０２に格納されているサービス情報の例を示す図である。
【図４】要求サービス記憶装置１１２に格納されている要求サービスの情報の例を示す図である。
【図５】要求サービス記憶装置２１２に格納されている要求サービスの情報の例を示す図である。
【図６】基本プロセスの例を示す図である。
【図７】カスタムプロセスの例を示す図である。
【図８】サービス表示・入力装置の処理手順を説明するフローチャート（その１）である。
【図９】サービス表示・入力装置の処理手順を説明するフローチャート（その２）である。
【図１０】サービス表示・入力装置の処理手順を説明するフローチャート（その３）である。
【図１１】サービス出力部の処理手順を説明するフローチャートである。
【図１２】要求解析部の処理手順を説明するフローチャート（その１）である。
【図１３】要求解析部の処理手順を説明するフローチャート（その２）である。
【図１４】要求解析部の処理手順を説明するフローチャート（その３）である。
【符号の説明】
【００９５】
１００、２００  サービスプロセス提供サーバ
１０２、２０２  追加可能サービス記憶装置
１０４、２０４  エンジン
１０６、２０６  業務データ記憶装置
１０８、２０８  サービス出力部
１１０、２１０  要求解析部
１１２、２１２  要求サービス記憶装置
１１４、２１４  プロセス定義記憶装置
１１８、２１８  アプリケーションデータ記憶装置
３００  サービス表示・入力装置
４００  ネットワーク
【図１】
2005309672.tif 000003
【図２】
2005309672.tif 000004
【図３】
2005309672.tif 000005
【図４】
2005309672.tif 000006
【図５】
2005309672.tif 000007
【図６】
2005309672.tif 000008
【図７】
2005309672.tif 000009
【図８】
2005309672.tif 000010
【図９】
2005309672.tif 000011
【図１０】
2005309672.tif 000012
【図１１】
2005309672.tif 000013
【図１２】
2005309672.tif 000014
【図１３】
2005309672.tif 000015
【図１４】
2005309672.tif 000016