(57)【特許請求の範囲】
【請求項１】
コンピュータに、複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフローに基づいて、前記業務内容の一部を実施するための処理手順を示すサービスフロー定義を生成させる部分フロー定義生成プログラムにおいて、
前記コンピュータを、
個々の処理に対応する前記ノードに対して、前記ノード間の遷移関係と前記ノードで示される処理の実行主体とが設定された業務プロセスフローを記憶する業務プロセスフロー記憶手段、
前記業務プロセスフローの中から前記サービスフロー定義の構成対象とする前記ノードを特定するための判断基準として、前記実行主体がシステムであることが定義された特定条件を記憶する特定条件記憶手段、
前記業務プロセスフローから、前記特定条件記憶手段に記憶された前記特定条件を満たす前記ノードを抽出する対象部分抽出手段、
前記業務プロセスフローに定義された処理手順を参照し、前記対象部分抽出手段で抽出された被抽出ノードのうち、実行主体がシステム以外のノードから遷移する前記被抽出ノードに対応して、始端の処理ノードを定義し、実行主体がシステムの他のノードへ遷移する前記被抽出ノードに対応して、他のノードへの遷移を伴う処理ノードを定義し、実行主体がシステム以外の他のノードへ遷移する前記被抽出ノードに対応して、終端の処理ノードを定義することで、前記サービスフロー定義を生成する部分フロー定義生成手段、
として機能させることを特徴とする部分フロー定義生成プログラム。
【請求項２】
前記部分フロー定義生成手段は、前記被抽出ノードの実行主体とは異なる他のシステムを実行主体とする他のノードへ遷移する前記被抽出ノードに対しては、２システム間の遷移を定義することを特徴とする請求項１記載の部分フロー定義生成プログラム。
【請求項３】
コンピュータに、複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフローに基づいて、前記業務内容の一部を実施するための処理手順を示すワークフロー定義を生成させる部分フロー定義生成プログラムにおいて、
前記コンピュータを、
個々の処理に対応する前記ノードに対して、前記ノード間の遷移関係と前記ノードで示される処理の実行主体とが設定された業務プロセスフローを記憶する業務プロセスフロー記憶手段、
前記業務プロセスフローの中から前記ワークフロー定義の構成対象とする前記ノードを特定するための判断基準として、前記実行主体が人またはシステムであることが定義された特定条件を記憶する特定条件記憶手段、
前記業務プロセスフローから、前記特定条件記憶手段に記憶された前記特定条件を満たす前記ノードを抽出する対象部分抽出手段、
前記業務プロセスフローに定義された処理手順を参照し、前記対象部分抽出手段で抽出された被抽出ノードのうち、実行主体が人である前記被抽出ノードに対応して、人に作業を促す処理ノードおよび作業終了報告を促す処理ノードを生成し、実行主体がシステムである前記被抽出ノードに対しては、実行主体がシステムである連続のノードをまとめて１つのシステム呼び出しを実行する処理ノードを生成することで、前記ワークフロー定義を生成する部分フロー定義生成手段、
として機能させることを特徴とする部分フロー定義生成プログラム。
【請求項４】
前記特定条件記憶手段には、前記判定基準として、実行主体が、システムの支援を受けた人であることが定義された前記特定条件が記憶されており、
前記部分フロー定義生成手段は、前記実行主体がシステムの支援を受けた人である前記被抽出ノードに対応して、処理を実施するためのＧＵＩを実行する処理ノードを生成することを特徴とする請求項３記載の部分フロー定義生成プログラム。
【請求項５】
前記特定条件記憶手段は、複数の前記特定条件を記憶しており、
前記対象部分抽出手段は、前記特定条件記憶手段に記憶された複数の前記特定条件から、任意に指定された前記特定条件を満たす前記ノードを、前記業務プロセスフローから抽出することを特徴とする請求項１または３記載の部分フロー定義生成プログラム。
【請求項６】
複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフローに基づいて、前記業務内容の一部を実施するための処理手順を示すサービスフロー定義を、コンピュータにより生成するための部分フロー定義生成方法において、
個々の処理に対応する前記ノードに対して、前記ノード間の遷移関係と前記ノードで示される処理の実行主体とが設定された業務プロセスフローを記憶する業務プロセスフロー記憶手段が予め設けられており、
特定条件記憶手段が、前記業務プロセスフローの中から前記サービスフロー定義の構成対象とするノードを特定するための判断基準として、前記実行主体がシステムであることが定義された特定条件を記憶し、
対象部分抽出手段が、前記業務プロセスフローから、前記特定条件記憶手段に記憶された前記特定条件を満たす前記ノードを抽出し、
部分フロー定義生成手段が、前記業務プロセスフローに定義された処理を参照し、前記対象部分抽出手段で抽出された被抽出ノードのうち、実行主体がシステム以外のノードから遷移する前記被抽出ノードに対応して、始端の処理ノードを定義し、実行主体がシステムの他のノードへ遷移する前記被抽出ノードに対応して、他のノードへの遷移を伴う処理ノードを定義し、実行主体がシステム以外の他のノードへ遷移する前記被抽出ノードに対応して、終端の処理ノードを定義することで、前記サービスフロー定義を生成する、
ことを特徴とする部分フロー定義生成方法。
【請求項７】
複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフローに基づいて、前記業務内容の一部を実施するための処理手順を示すワークフロー定義を、コンピュータにより生成するための部分フロー定義生成方法において、
個々の処理に対応する前記ノードに対して、前記ノード間の遷移関係と前記ノードで示される処理の実行主体とが設定された業務プロセスフローを記憶する業務プロセスフロー記憶手段が予め設けられており、
特定条件記憶手段が、前記業務プロセスフローの中から前記ワークフロー定義の構成対象とする前記ノードを特定するための判断基準として、前記実行主体が人またはシステムであることが定義された特定条件を記憶し、
対象部分抽出手段が、前記業務プロセスフローから、前記特定条件記憶手段に記憶された前記特定条件を満たす前記ノードを抽出し、
部分フロー定義生成手段が、前記業務プロセスフローに定義された処理手順を参照し、前記対象部分抽出手段で抽出された被抽出ノードのうち、実行主体が人である前記被抽出ノードに対応して、人に作業を促す処理ノードおよび作業終了報告を促す処理ノードを生成し、実行主体がシステムである前記被抽出ノードに対しては、実行主体がシステムである連続のノードをまとめて１つのシステム呼び出しを実行する処理ノードを生成することで、前記ワークフロー定義を生成する、
ことを特徴とする部分フロー定義生成方法。
【請求項８】
複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフローに基づいて、前記業務内容の一部を実施するための処理手順を示すサービスフロー定義を生成する部分フロー定義生成装置において、
個々の処理に対応する前記ノードに対して、前記ノード間の遷移関係と前記ノードで示される処理の実行主体とが設定された業務プロセスフローを記憶する業務プロセスフロー記憶手段と、
前記業務プロセスフローの中から前記サービスフロー定義の構成対象とする前記ノードを特定するための判断基準として、前記実行主体がシステムであることが定義された特定条件を記憶する特定条件記憶手段と、
前記業務プロセスフローから、前記特定条件記憶手段に記憶された前記特定条件を満たす前記ノードを抽出する対象部分抽出手段と、
前記業務プロセスフローに定義された処理手順を参照し、前記対象部分抽出手段で抽出された被抽出ノードのうち、実行主体がシステム以外のノードから遷移する前記被抽出ノードに対応して、始端の処理ノードを定義し、実行主体がシステムの他のノードへ遷移する前記被抽出ノードに対応して、他のノードへの遷移を伴う処理ノードを定義し、実行主体がシステム以外の他のノードへ遷移する前記被抽出ノードに対応して、終端の処理ノードを定義することで、前記サービスフロー定義を生成する部分フロー定義生成手段と、
を有することを特徴とする部分フロー定義生成装置。
【請求項９】
複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフローに基づいて、前記業務内容の一部を実施するための処理手順を示すワークフロー定義を生成する部分フロー定義生成装置において、
個々の処理に対応する前記ノードに対して、前記ノード間の遷移関係と前記ノードで示される処理の実行主体とが設定された業務プロセスフローを記憶する業務プロセスフロー記憶手段と、
前記業務プロセスフローの中から前記ワークフロー定義の構成対象とする前記ノードを特定するための判断基準として、前記実行主体が人またはシステムであることが定義された特定条件を記憶する特定条件記憶手段と、
前記業務プロセスフローから、前記特定条件記憶手段に記憶された前記特定条件を満たす前記ノードを抽出する対象部分抽出手段と、
前記業務プロセスフローに定義された処理手順を参照し、前記対象部分抽出手段で抽出された被抽出ノードのうち、実行主体が人である前記被抽出ノードに対応して、人に作業を促す処理ノードおよび作業終了報告を促す処理ノードを生成し、実行主体がシステムである前記被抽出ノードに対しては、実行主体がシステムである連続のノードをまとめて１つのシステム呼び出しを実行する処理ノードを生成することで、前記ワークフロー定義を生成する部分フロー定義生成手段と、
を有することを特徴とする部分フロー定義生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は業務内容の一部を実施するための処理手順を示す部分フロー定義を生成するための部分フロー定義生成プログラム、部分フロー定義生成方法、および部分フロー定義生成装置に関し、特に複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフローに基づいて部分フロー定義を生成するための部分フロー定義生成プログラム、部分フロー定義生成方法、および部分フロー定義生成装置に関する。
【背景技術】
【０００２】
業務システムの開発にあたり、依頼主の注文を正確に業務システムに反映させるには、より業務側の視点でのシステム開発を行う必要がある。この開発において問題となるのは、次の２者間のシステムに関する考え方のギャップの存在である。
【０００３】
・経営層や業務部門を中心とするグループ（対象業務およびビジネスシステムの支援対象の業務機能を把握）。以下、「業務側」と呼ぶ。
・システムベンダを中心とするグループ（業務システムを実装する技法やノウハウを持つ）。以下、「ベンダ側」と呼ぶ。
【０００４】
この２者間には、相互理解のギャップ（それぞれが業務よりの言葉、システムよりの言葉で機能を説明しがちで、システムが実現する機能（ユースケース）が業務側からベンダ側に伝わりにくい。さらに、システムの変更が生じた場合に、変更内容を実際のシステムに反映するのに時間を要する（業務内容の変化に合わせたシステム変更が実現するまでに時間がかかるという、時間上のギャップ）という２つのギャップがある。
【０００５】
これを解決する指針を提示した基本概念に「サービス指向開発」（業務システムを実現する機能を、業務側が扱いやすい単位でまとめ「サービス」と呼び、「サービス」を組み合わせて業務システムを実現する）がある。この基本概念に基づいてシステム開発を行うために、経営層・業務部門側が理解できる表現でシステム化対象の業務内容を表現する手段が必要である。この１形態に業務プロセスフローがある。
【０００６】
業務プロセスフローを起点にした業務システム開発では、業務プロセスフローによる業務定義を起点に、システムに必要な機能を列挙し、実行順序（機能の呼び出し処理フロー）を策定する。すでに各社が、プロセスフロー定義から呼び出し処理のフローを作成するツールを発表している（例えば、特許文献１参照）。
【０００７】
なお、業務の流れを表現したモデルの質の向上を図る技術も考えられている。例えば、機能単位で行う一連の操作に対して、その操作が扱うエンティティオブジェクトと、複数のエンティティオブジェクトにまたがる操作を持つ制御オブジェクトとを予め区別することで、操作の呼び出し関係を発生順に表現したイベントトレース図の質の向上を図る技術がある（例えば、特許文献２参照）。
【特許文献１】特開２００１−９２６４７号公報
【特許文献２】特開平９−２９２９８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、従来の手法・ツールでは、人手で実施する処理とシステムが実行する処理とが混在した業務プロセスフローから、システムに実装するフローのみを自動生成することはできない。経営層・業務部門側が理解でき、システムベンダ側に対して内容を合意・承認できる業務プロセスフローは、通常、業務システムによって機械的に実行する部分と、業務システム導入後も人手で実行する部分とが混在する。これに対して、従来の処理法は、次の「二度手間」を行っていた。
【０００９】
１．業務側との合意のために、人手で実施する処理を含むフローを記述する。
２．機械的に呼び出す部分のみのフローを改めて記述し、こちらから実行可能定義を生成する。もしくは、人手で実行する部分に焦点をあてたフローを改めて記述し、そこから人的な作業を機械的に管理するワークフロー定義を生成する。
【００１０】
この結果、業務内容の変更に合わせたシステム変更が実現するまで時間がかかる。また、機械的に呼び出す部分のみのフローを改めて記述する段階で誤解や転記ミスから、誤った設計でシステム開発を進めてしまう虞がある。
【００１１】
加えて、経営層・業務部門側の合意・承認を得るための業務プロセスフローの記述ルールには、バリエーションがあり、呼び出し処理フロー定義やワークフロー定義の記述形式も実行基盤ごとにバリエーションがある。
【００１２】
本発明はこのような点に鑑みてなされたものであり、システム構築に関する業務側との合意内容を反映させた業務プロセスフローに基づいて、機械的に自動実行可能なサービスフロー定義や人的な操作入力を伴う作業に関するワークフロー定義を自動生成できる部分フロー定義生成プログラム、部分フロー定義生成方法、および部分フロー定義生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明では上記課題を解決するために、図１に示すような部分フロー定義生成プログラムが提供される。本発明に係る部分フロー定義生成プログラムは、コンピュータに複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフローに基づいて、業務内容の一部を実施するための処理手順を示す部分フロー定義を生成させるために、図１に示す機能をコンピュータに実行させることができる。
【００１４】
業務プロセスフロー記憶手段１は、個々の処理に対応するノードに対して、ノードで示される処理の実行主体が設定された業務プロセスフロー１ａを記憶する。特定条件記憶手段４ａ，５ａは、業務プロセスフロー１ａの中から部分フロー定義の構成対象とするノードを特定するための判断基準として、実行主体に基づく判断基準を含む特定条件を記憶する。対象部分抽出手段４ｂ，５ｂは、業務プロセスフロー１ａから、特定条件記憶手段４ａ，５ａに記憶された特定条件を満たすノードを抽出する。部分フロー定義生成手段４ｃ，５ｃは、業務プロセスフロー１ａに定義された処理手順に沿って、対象部分抽出手段４ｂ，５ｂで抽出されたノード間の処理の遷移関係を示す遷移情報を定義することで、部分フロー定義を生成する。
【００１５】
このような部分フロー生成プログラムをコンピュータに実行させることにより、対象部分抽出手段４ｂ，５ｂにより、業務プロセスフロー１ａから、特定条件記憶手段４ａ，５ａに記憶された特定条件を満たすノードが抽出される。そして、部分フロー定義生成手段４ｃ，５ｃにより、業務プロセスフロー１ａに定義された処理手順に沿って、対象部分抽出手段４ｂ，５ｂで抽出されたノード間の処理の遷移関係を示す遷移情報が定義され、部分フロー定義が生成される。
【００１６】
また、上記課題を解決するために、複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフローに基づいて、前記業務内容の一部を実施するための処理手順を示す部分フロー定義を、コンピュータにより生成するための部分フロー定義生成方法において、個々の処理に対応する前記ノードに対して、前記ノードで示される処理の実行主体が設定された業務プロセスフローを記憶する業務プロセスフロー記憶手段が予め設けられており、特定条件記憶手段が、前記業務プロセスフローの中から前記部分フロー定義の構成対象とするノードを特定するための判断基準として、前記実行主体に基づく判断基準を含む特定条件を記憶し、対象部分抽出手段が、前記業務プロセスフローから、前記特定条件記憶手段に記憶された前記特定条件を満たす前記ノードを抽出し、部分フロー定義生成手段が、前記業務プロセスフローに定義された処理手順に沿って、前記対象部分抽出手段で抽出された前記ノード間の処理の遷移関係を示す遷移情報を定義することで、前記部分フロー定義を生成する、ことを特徴とする部分フロー定義生成方法が提供される。
【００１７】
このような部分フロー定義生成方法によれば、対象部分抽出手段により、業務プロセスフローから、特定条件記憶手段に記憶された特定条件を満たすノードが抽出される。そして、部分フロー定義生成手段により、業務プロセスフローに定義された処理手順に沿って、対象部分抽出手段で抽出されたノード間の処理の遷移関係を示す遷移情報が定義され、部分フロー定義が生成される。
【００１８】
また、上記課題を解決するために、複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフローに基づいて、前記業務内容の一部を実施するための処理手順を示す部分フロー定義を生成する部分フロー定義生成装置において、個々の処理に対応する前記ノードに対して、前記ノードで示される処理の実行主体が設定された業務プロセスフローを記憶する業務プロセスフロー記憶手段と、前記業務プロセスフローの中から前記部分フロー定義の構成対象とするノードを特定するための判断基準として、前記実行主体に基づく判断基準を含む特定条件を記憶する特定条件記憶手段と、前記業務プロセスフローから、前記特定条件記憶手段に記憶された前記特定条件を満たす前記ノードを抽出する対象部分抽出手段と、前記業務プロセスフローに定義された処理手順に沿って、前記対象部分抽出手段で抽出された前記ノード間の処理の遷移関係を示す遷移情報を定義することで、前記部分フロー定義を生成する部分フロー定義生成手段と、を有することを特徴とする部分フロー定義生成装置が提供される。
【００１９】
このような部分フロー定義生成装置によれば、対象部分抽出手段により、業務プロセスフローから、特定条件記憶手段に記憶された特定条件を満たすノードが抽出される。そして、部分フロー定義生成手段により、業務プロセスフローに定義された処理手順に沿って、対象部分抽出手段で抽出されたノード間の処理の遷移関係を示す遷移情報が定義され、部分フロー定義が生成される。
【発明の効果】
【００２０】
本発明では、業務プロセスフローに設定されている実行主体に関する情報に基づいて、部分フローを生成するようにしたため、例えば、機械的に自動実行可能なサービスフロー定義や人的な操作入力を伴う作業に関するワークフロー定義等の部分フロー定義を自動的に作成できる。その結果、業務プロセスフローの内容変更があっても、変更内容を即座に部分フロー定義に反映させることができ、部分フロー定義に基づいたシステム実装の作業の遅延を防止することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本実施の形態の概略を示す図である。図１には、複数のノードにより業務内容に応じた処理手順を記述した業務プロセスフロー１ａに基づいて、業務内容の一部を実施するための処理手順を示す部分フロー定義として、サービスフロー定義と、ワークフロー定義を生成するための機能が示されている。サービスフロー定義は、コンピュータシステムで実行する一連処理を定義したものである。ワークフロー定義は、人の作業が介在した処理の手順を定義したものである。
【００２２】
業務プロセスフロー記憶手段１は、個々の処理に対応するノードに対して、ノードで示される処理の実行主体が設定された業務プロセスフロー１ａを記憶する。業務プロセスフロー１ａは、業務プロセスフロー編集手段２を用いて作成することができる。また、業務プロセスフロー１ａには、実装情報付加手段３により、コンピュータシステムに実装する際に必要となる実装情報を付加することができる。
【００２３】
サービスフロー切出手段４は、業務プロセスフロー１ａに基づいて、コンピュータシステムで自動実行させる処理手順を示すサービスフロー定義を生成する。そのために、サービスフロー切出手段４は、特定条件記憶手段４ａ、対象部分抽出手段４ｂ、および部分フロー定義生成手段４ｃを有している。
【００２４】
特定条件記憶手段４ａは、業務プロセスフロー１ａの中からサービスフロー定義の構成対象とするノードを特定するための判断基準として、実行主体に基づく判断基準を含む特定条件を記憶する。対象部分抽出手段４ｂは、業務プロセスフロー１ａから、特定条件記憶手段４ａに記憶された特定条件を満たすノードを抽出する。部分フロー定義生成手段４ｃは、業務プロセスフロー１ａに定義された処理手順に沿って、対象部分抽出手段４ｂで抽出されたノード間の処理の遷移関係を示す遷移情報を定義することで、サービスフロー定義を生成する。
【００２５】
ワークフロー切出手段５は、業務プロセスフロー１ａに基づいて、人手で行われる処理の手順を示すワークフロー定義を生成する。そのために、ワークフロー切出手段５は、特定条件記憶手段５ａ、対象部分抽出手段５ｂ、および部分フロー定義生成手段５ｃを有している。
【００２６】
特定条件記憶手段５ａは、業務プロセスフロー１ａの中からワークフロー定義の構成対象とするノードを特定するための判断基準として、実行主体に基づく判断基準を含む特定条件を記憶する。対象部分抽出手段５ｂは、業務プロセスフロー１ａから、特定条件記憶手段５ａに記憶された特定条件を満たすノードを抽出する。部分フロー定義生成手段５ｃは、業務プロセスフロー１ａに定義された処理手順に沿って、対象部分抽出手段５ｂで抽出されたノード間の処理の遷移関係を示す遷移情報を定義することで、ワークフロー定義を生成する。
【００２７】
サービスフロー定義記憶手段６は、生成されたサービスフロー定義を格納する。ワークフロー定義記憶手段７は、生成されたワークフロー定義を格納する。
このような機能によって、業務プロセスフロー１ａから、サービスフロー定義やワークフロー定義が作成される。
【００２８】
図２は、サービスフロー定義の生成方法を示す概念図である。図２の例では、業務プロセスフロー１ｂに、出荷部門、出荷管理システム、および在庫管理サービスで行われる処理が、それぞれパーティションに分けて設定されている。この例では、出荷部門の処理は、全て実行主体として人が介在する旨が設定されているものする。また、出荷管理システムと在庫管理サービスとの処理は、全て実行主体がコンピュータシステムである旨が設定されているものとする。
【００２９】
また、この業務プロセスフロー１ｂには、実装情報１ｂａ，１ｂｂ，１ｂｃが付加されている。実装情報１ｂａは、出荷管理システムの処理に関しては、「サービス実装不適」であることを示している。実装情報１ｂｂは、在庫管理サービス中の処理を示すノードに対するサービスインタフェース情報（どのようなプログラムモジュールを使用してサービスを実装すべきか）を示している。実装情報１ｂｃは、入出力されるデータのデータ構造定義を示している。
【００３０】
このような業務プロセスフロー１ｂがサービスフロー切出手段４に入力されると、コンピュータシステムを実行主体とする処理を示すノードが抽出される。ただし、実装情報において、サービス実装不適とされているノードは除外される。その結果、在庫管理サービスに設定されるノードから２つのフロー化対象部分８ａ，８ｂが抽出される。このフロー化対象部分８ａ，８ｂを、ＢＰＥＬ（Business Process Execution Language）等の記述形式に変換することで、サービスフロー定義６ａ，６ｂが生成される。
【００３１】
図３は、ワークフロー定義の生成方法を示す概念図である。業務プロセスフロー１ｂは、図２に示したものと同じである。
このような業務プロセスフロー１ｂがワークフロー切出手段５に入力されると、人が介在する処理を示すノードが抽出される。その結果、出荷部門に設定されるノードからフロー化対象部分９が抽出される。このフロー化対象部分９を、所定の記述形式に変換することで、ワークフロー定義７ａが生成される。
【００３２】
このように業務プロセスフローからサービスフロー定義やワークフロー定義を自動的に作成できることで、業務プロセスフローの内容変更があっても、変更内容を即座に部分フロー定義に反映させることができる。その結果、部分フロー定義に基づいたシステム実装の作業の遅延を防止することができる。
【００３３】
なお、生成されたサービスフロー定義を用いれば、該当するサービスの実行機能をサーバに対して自動的に実装（デプロイ）することができる。例えば、サービスフロー定義をＢＰＥＬで作成した場合、サーバにＢＰＥＬを解釈する機能と、各処理内容に応じた実行モジュールとが用意されていれば、サーバは、サービスフロー定義に従ったサービスを提供することができる。そこで、以下に、サービスフロー定義に応じたサービスをサーバで提供するためのシステム構成を用いて、本実施の形態の詳細を説明する。
【００３４】
図４は、本実施の形態のシステム構成例を示す図である。システム管理サーバ１００は、ネットワーク１０を介して、クライアント２１，２２，・・・やサーバ３１，３２，３３に接続されている。
【００３５】
クライアント２１，２２，・・・は、サーバ３１，３２，３３で提供されるサービスの利用者が使用するコンピュータである。サーバ３１，３２，３３は、一連の業務プロセスを実現するためのサービスを実行するコンピュータである。サーバ３１，３２，３３は、互いに連携してサービスを実行することで、１つの業務を完遂することができる。
【００３６】
システム管理サーバ１００は、サーバ３１，３２，３３に対してサービスフロー定義を実装するためのコンピュータである。システム管理サーバ１００は、システム管理者からの操作入力によって業務プロセスフローが作成されると、その業務プロセスフローをサーバ３１，３２，３３で実現する処理を定義したサービスフロー定義を生成する。そして、システム管理サーバ１００が、各サーバ３１，３２，３３に対してサービスフロー定義を設定することで、各サーバ３１，３２，３３は、設定されたサービスフロー定義に従ったサービスを実行可能となる。
【００３７】
図５は、本実施の形態に用いるシステム管理サーバのハードウェア構成例を示す図である。システム管理サーバ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００３８】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００３９】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００４０】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００４１】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図５には、システム管理サーバ１００のハードウェア構成例を示したが、クライアント２１，２２，・・・やサーバ３１，３２，３３も同様のハードウェア構成で実現することができる。
【００４２】
図６は、システム管理サーバの機能を示すブロック図である。システム管理サーバ１００は、業務プロセスフロー編集部１１０、業務プロセスフロー記憶部１２０、実装情報付加部１３０、サービスフロー切出部１４０、ワークフロー切出部１５０、サービスフロー定義記憶部１６０、およびワークフロー定義記憶部１７０を有している。
【００４３】
業務プロセスフロー編集部１１０は、ユーザからの操作入力応じて、業務プロセスフローを生成する。生成される業務プロセスフローは、処理種別毎にパーティションが設けられ、実施すべき処理に対応するノードをパーティションに配置すると共に、処理手順を示す線でノードを結ぶことで、業務の処理手順が表現される。ノードは、業務遂行途中で発生する動作（アクション）を表している。
【００４４】
さらに、業務プロセスフロー編集部１１０は、生成した業務プロセスフローに対するユーザの操作入力に応じて、業務の処理内容を示すノードの生成等の編集を行う。その際、業務プロセスフロー編集部１１０は、例えば、業務プロセスフローを構成するノードに対して、処理の実行主体を示す情報を付加する。処理の実行主体を示す情報には、「システム」、「システム支援」、および「人の作業」がある。
【００４５】
「システム」は、該当するノードの処理が、入力された情報に基づいてコンピュータが処理を実行し、間に人手を介さずに完了できる処理であることを示している。「システム支援」は、該当するノードの処理が、コンピュータがユーザとの間で対話型の処理を行う処理であることを示している。「人の作業」は、該当するノードの処理が、人手によって行われる処理であることを示している。
【００４６】
そして、業務プロセスフロー編集部１１０は、生成した業務プロセスフローを業務プロセスフロー記憶部１２０に格納する。
業務プロセスフロー記憶部１２０は、業務プロセスフローを記憶する記憶装置である。例えば、ＲＡＭ１０２の記憶領域の一部が、業務プロセスフロー記憶部１２０として使用される。
【００４７】
実装情報付加部１３０は、ユーザからの操作入力に応じて、業務プロセスフロー記憶部１２０に格納されている業務プロセスフローに対して、実装情報を付加する。例えば、実装情報付加部１３０は、業務プロセスフローに対して、パーティションで示される処理を全てサービス実装から除外することを示す「サービス実装不適」の実装情報を付加することができる。さらに、実装情報付加部１３０は、ノードに対してＸＭＬ（eXtensible Markup Language）スキーマ情報を付加することができる。
【００４８】
サービスフロー切出部１４０は、業務プロセスフロー記憶部１２０に記憶された業務プロセスフローに基づいて、コンピュータシステムに実行させる処理手順を表すサービスフロー定義を作成する。そのために、サービスフロー切出部１４０は、特定条件記憶部１４１、対象部分抽出部１４２、およびフロー定義生成部１４３を有している。
【００４９】
特定条件記憶部１４１には、業務プロセスフローに設定されている要素の中から、サービスフロー定義の作成に使用する要素を抽出するための特定条件が予め格納されている。そして、特定条件記憶部１４１は、複数の特定条件が格納されていた場合、ユーザからの操作入力に応じて、予め格納されている特定条件の中から、業務プロセスフロー記憶部１２０に格納された業務プロセスフローに基づくサービスフローの作成に適用する特定条件を選択する。特定条件記憶部１４１は、選択した特定条件を対象部分抽出部１４２に対して提供する。
【００５０】
特定条件としては、例えば、次のような判断基準で構成される。
１．業務側と「システムによる自動実行」と合意された処理（実行主体として「システム」が設定されているノードが対象となる）を抽出対象とする。
【００５１】
２．業務側と「システムによる自動実行」と合意された処理間の遷移・分岐・合流に該当する処理を抽出対象とする。
３．ただし、上記２つの条件に拘わらず、「サービス実装不適」の実装情報が付加された処理を、抽出対象から除外する。
【００５２】
なお、対象部分抽出部１４２は、判断基準を適用するか不適用とするかは、ユーザの操作入力に基づいて決定する。
対象部分抽出部１４２は、業務プロセスフローの中から、特定条件を満たすノード（対象部分）を特定する。そして、対象部分抽出部１４２は、対象部分と、その対象部分に設定された実装情報とをフロー定義生成部１４３に渡す。
【００５３】
フロー定義生成部１４３は、対象部分抽出部１４２から渡された対象部分と実装情報とに基づいて、サービスフロー定義を生成する。
ワークフロー切出部１５０は、業務プロセスフロー記憶部１２０に記憶された業務プロセスフローに基づいて、人手による作業、およびコンピュータシステムの支援を受けて人が実施する処理の手順を表すワークフロー定義を作成する。そのために、ワークフロー切出部１５０は、特定条件記憶部１５１、対象部分抽出部１５２、およびフロー定義生成部１５３を有している。
【００５４】
特定条件記憶部１５１には、業務プロセスフローに設定されている要素の中から、ワークフロー定義の作成に使用する要素を抽出するための特定条件が予め格納されている。そして、特定条件記憶部１５１は、複数の特定条件が格納されている場合、ユーザからの操作入力に応じて、予め格納されている特定条件の中から、業務プロセスフロー記憶部１２０に格納された業務プロセスフローに基づくワークフローの作成に適用する特定条件を選択する。特定条件記憶部１５１は、選択した特定条件を対象部分抽出部１５２に対して提供する。
【００５５】
特定条件としては、例えば、次のような判断基準で構成される。
１．人手で実施する処理、およびシステムの支援を受けて人が実施する処理（実行主体として「人の作業」または「システム支援」が設定されているノードが対象となる）を抽出対象とする。
【００５６】
２．人手で実施する処理、およびシステムの支援を受けて人が実施する処理間の遷移・分岐・合流に該当する処理を抽出対象とする。
３．システムによる一連の自動実行処理（１つの処理に集約）を抽出対象とする。
【００５７】
なお、対象部分抽出部１５２は、各判断基準を適用するか不適用とするかは、ユーザの操作入力に基づいて決定する。
対象部分抽出部１５２は、業務プロセスフローの中から、特定条件を満たすノード（対象部分）を特定する。そして、対象部分抽出部１５２は、対象部分と、その対象部分に設定された実装情報とをフロー定義生成部１５３に渡す。
【００５８】
フロー定義生成部１５３は、対象部分抽出部１５２から渡された対象部分と実装情報とに基づいて、ワークフロー定義を生成する。
サービスフロー定義記憶部１６０は、サービスフロー切出部１４０で生成されたサービスフロー定義を記憶する記憶装置である。例えば、ＲＡＭ１０２の記憶領域の一部が、サービスフロー定義記憶部１６０として使用される。
【００５９】
ワークフロー定義記憶部１７０は、ワークフロー切出部１５０で生成されたワークフロー定義を記憶する記憶装置である。例えば、ＲＡＭ１０２の記憶領域の一部が、ワークフロー定義記憶部１７０として使用される。
【００６０】
このような機能を有するシステム管理サーバ１００において、以下のような部分フロー生成処理が行われる。
図７は、部分フロー生成処理の手順を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。
【００６１】
［ステップＳ１１］業務プロセスフロー編集部１１０は、システムベンダ側の担当者による操作入力に基づいて業務プロセスフローを生成し、業務プロセスフロー記憶部１２０に格納する。
【００６２】
システムベンダ側は、生成された業務プロセスフローの内容を、業務側のステークホルダ（利害関係者）に閲覧させ合意を求める。業務側の合意が得られると、以降の処理が進められる。
【００６３】
［ステップＳ１２］実装情報付加部１３０は、システムベンダ側の担当者による操作入力に基づいて、業務プロセスフロー記憶部１２０に格納されている業務プロセスフローに対して実装情報を付加する。
【００６４】
［ステップＳ１３］サービスフロー切出部１４０は、業務プロセスフロー記憶部１２０に格納されている業務プロセスフローに基づいて、サービスフロー定義を生成し、サービスフロー定義記憶部１６０に格納する。この処理の詳細は後述する。
【００６５】
［ステップＳ１４］ワークフロー切出部１５０は、業務プロセスフロー記憶部１２０に格納されている業務プロセスフローに基づいて、ワークフロー定義を生成し、ワークフロー定義記憶部１７０に格納する。この処理の詳細は後述する。
【００６６】
図８は、業務プロセスフローの例を示す図である。図８に示すように、業務プロセスフロー２００には、処理内容毎のパーティション２１０，２２０，２３０が設けられている。
【００６７】
パーティション２１０は、出荷部門で行われる処理を示している。パーティション２１０には、７つのノード２１１〜２１７が設定されている。なお、図８において、ノードの遷移関係は実線の矢印で示されており、データの受け渡しは破線の矢印で示されている。
【００６８】
ノード２１１は、開始ノードであり、処理の開始位置であることを示している。
ノード２１２は、受注情報確認処理を示しており、実行主体は「システム支援」と設定されている。ノード２１２は、開始ノード２１１から遷移する。
【００６９】
ノード２１３は、ピッキング対象提示処理を示しており、実行主体は「システム支援」と設定されている。ノード２１３は、パーティション２２０内のノード２２１から遷移する。また、ノード２１３には、パーティション２３０のノード２３１から「出荷伝票」のデータ４２が渡される。
【００７０】
ノード２１４は、ピッキング作業を示しており、実行主体は「人の作業」と設定されている。ノード２１４は、ノード２１３から遷移する。また、ノード２１４には、パーティション２３０のノード２３１から「出荷伝票」のデータ４２が渡される。
【００７１】
ノード２１５は、出荷確認入力処理を示しており、実行主体は「システム支援」と設定されている。ノード２１５は、ノード２１４から遷移する。また、ノード２１５には、パーティション２３０のノード２３１から「出荷伝票」のデータ４２が渡される。さらに、ノード２１５には、出荷情報入力画面４６に対する操作内容が入力される。
【００７２】
ノード２１６は、貨物状況確認処理を示しており、実行主体は「システム支援」と設定されている。ノード２１６は、パーティション２２０のノード２２２から遷移する。また、ノード２１６には、パーティション２３０のノード２３８から「貨物追跡コード」のデータ４５が渡される。
【００７３】
ノード２１７は、終了ノードであり、処理の終了位置であることを示している。
パーティション２２０は、出荷管理システム（コンピュータシステムで提供される情報処理サービス）で行われる処理を示している。パーティション２２０には、２つのノード２２１，２２２が設定されている。
【００７４】
ノード２２１は、ピッキングリスト出力処理を示しており、実行主体は「システム」と設定されている。ノード２２１は、パーティション２３０のノード２３１から遷移する。また、ノード２２１には、ノード２３１から「出荷伝票」のデータ４２が渡される。
【００７５】
ノード２２２は、貨物状況登録処理を示しており、実行主体は「システム」と設定されている。ノード２２２は、パーティション２３０のノード２３８から遷移する。また、ノード２２２には、ノード２３８から「貨物追跡コード」のデータ４５が渡される。
【００７６】
パーティション２３０は、在庫管理サービス（コンピュータシステムで提供される情報処理サービス）で行われる処理を示している。パーティション２３０には、８つのノード２３１〜２３８が設定されている。
【００７７】
ノード２３１は、出荷伝票発行処理を示しており、実行主体は「システム」と設定されている。ノード２３１は、パーティション２１０のノード２１２から遷移する。また、ノード２３１には、ノード２１２から「受注情報」のデータ４１が渡される。
【００７８】
ノード２３２は、出荷受付処理を示しており、実行主体は「システム」と設定されている。ノード２３２は、パーティション２１０のノード２１５から遷移する。また、ノード２３２には、ノード２３１から「出荷伝票」のデータ４２が渡される。
【００７９】
ノード２３３は、出荷の種別が「緊急」か「通常出荷」かによる分岐判断処理を示している。ノード２３３は、ノード２３２から遷移する。
ノード２３４は、臨時便依頼処理を示しており、実行主体は「システム」と設定されている。ノード２３４は、ノード２３３において「緊急」と判断されたときに、ノード２３３から遷移する。また、ノード２３４には、ノード２３２から「出荷伝票（受付済）」のデータ４３が渡される。
【００８０】
ノード２３５は、センタ毎取りまとめ処理を示しており、実行主体は「システム」と設定されている。ノード２３５は、ノード２３３において「通常出荷」と判断されたときに、ノード２３２から遷移する。また、ノード２３５には、ノード２３２から「出荷伝票（受付済）」のデータ４３が渡され、処理結果によりデータ４３を更新する。
【００８１】
ノード２３６は、センタ出荷処理を示しており、実行主体は「システム」と設定されている。ノード２３６は、ノード２３５から遷移する。また、ノード２３６には、ノード２３５から「出荷伝票（受付済）」のデータ４３が渡される。
【００８２】
ノード２３７は、ノード２３４とノード２３６とからの遷移の合流を示している。
ノード２３８は、貨物追跡コード登録処理を示しており、実行主体は「システム」と設定されている。ノード２３８は、ノード２３７から遷移する。また、ノード２３８には、ノード２３４またはノード２３６から「納品書」のデータ４４が渡される。
【００８３】
このような業務プロセスフロー２００が生成され、内容について業務側のステークホルダと合意したものとする。なお、パーティション２２０に示される出荷管理システムについては、今回のシステム構築の対象外とされたものとする。
【００８４】
すると、システムベンダ側の担当者は、システムの実装に必要となる実装情報を業務プロセスフロー２００に設定する。以下、在庫管理サービスの実装（デプロイ）に必要な実装情報をＢＰＥＬで設定した例を、図９〜図１１を参照して説明する。
【００８５】
図９は、在庫管理サービスに関する実装情報を示す第１の図である。出荷部門のパーティション２１０には、在庫管理サービスの呼び出し・復帰に関わる実装情報５１〜５５が設定されている。
【００８６】
図１０は、在庫管理サービスに関する実装情報を示す第２の図である。在庫管理サービスのパーティション２３０の前半の処理には、実装情報６１〜６５が設定されている。
図１１は、在庫管理サービスに関する実装情報を示す第３の図である。在庫管理サービスのパーティション２３０の後半の処理には、実装情報７１〜７７が設定されている。
【００８７】
なお、図９〜図１１には、パーティション２１０とパーティション２３０に設定された実装情報が示されているが、図示していないパーティション２２０については「サービス実装不適」の実装情報が設定されている。「サービス実装不適」とされたパーティション２２０内の各要素に対しては、実装情報を設定する必要はない。
【００８８】
図９〜図１１において、ノードに接続された実装情報は、接続されたノードに対応する処理を実装するために必要な情報が設定されている。例えば、図１０に示されている実装情報６２は、出荷伝票発行処理をサーバに実装するために必要な情報が設定されている。実装情報６２内の上の２行の記載が、出荷伝票発行処理をサーバに実行させる際に起動すべきプログラムモジュールを示している。実装情報６２の３行目の記載が、プログラムモジュール内の適用するインタフェースを示している。
【００８９】
また、図９〜図１１において、ノード間を接続する実線に接続された実装情報は、ノード間のデータ入出力に適用する通信インタフェースを定義している。さらに、図９〜図１１において、データに接続された実装情報は、データの構造を定義している。例えば、ＸＭＬスキーマによりＸＭＬ文書の構造が定義される。
【００９０】
ここで、図１０に示す実装情報６１は、パーティション２３０全体に対する実装情報である。
このように実装情報が付加された業務プロセスフロー２００に基づいて、サービスフロー定義およびワークフロー定義が生成される。
【００９１】
まず、サービスフロー定義の生成処理について詳細に説明する。
図１２は、サービスフロー定義の生成処理手順を示す第１のフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
【００９２】
［ステップＳ２１］サービスフロー切出部１４０の対象部分抽出部１４２は、業務プロセスフロー２００の開始ノード２１１に注目する。
［ステップＳ２２］対象部分抽出部１４２は、注目中のノードが＜＜システム＞＞のアクションであり、かつアクションが属するパーティションに「サービス実装不適」の実装情報が設定されていないという条件がみたされるか否かを判断する。当該条件が満たされていれば、処理がステップＳ２３に進められる。当該条件が満たされていなければ、処理がステップＳ２４に進められる。
【００９３】
［ステップＳ２３］フロー定義生成部１４３は、サービスフロー定義内に、＜＜システム＞＞アクションに対応する要素を生成する。例えば、ＢＰＥＬの場合invokeのノードを生成する。
【００９４】
［ステップＳ２４］対象部分抽出部１４２は、他のアクションに向かう遷移それぞれに関して、遷移（具体的には、遷移の識別子や遷移先のノードの識別子等を含む情報）と現在注目中のノード（具体的には、注目中のノードの識別子）とのペアで構成される遷移情報を「未達遷移リスト」に加える。ただし、「既達遷移リスト」に含まれる遷移情報を除く。
【００９５】
［ステップＳ２５］対象部分抽出部１４２は、「未達遷移リスト」内に遷移情報があるか否かを判断する。遷移情報がある場合、処理がステップＳ２６に進められる。遷移情報がない場合、処理が終了する。
【００９６】
［ステップＳ２６］対象部分抽出部１４２は、「未達遷移リスト」から遷移情報を１つ取り出し、遷移情報で示されるノードに注目する。取り出された遷移情報は、「未達遷移リスト」から削除される。
【００９７】
［ステップＳ２７］対象部分抽出部１４２は、取り出した遷移情報を、「既達遷移リスト」に加える。そして、処理が図１３に示すステップＳ２８に進められる。
図１３は、サービスフロー定義の生成処理手順を示す第２のフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【００９８】
［ステップＳ２８］対象部分抽出部１４２は、取り出し遷移情報による遷移後のノードが、条件分岐（条件を満たすか否かにより遷移先が異なる）、並列分岐（複数の遷移先に処理が進められる）、条件合流（遷移元が条件を満たす場合に処理が進められる）、並列合流（複数の遷移元から処理が進められる）のいずれかであるという条件を満たすか否かを判断する。当該条件が満たされていれば、処理がステップＳ２９に進められる。当該条件が満たされていなければ、処理が図１４のステップＳ３４に進められる。
【００９９】
［ステップＳ２９］対象部分抽出部１４２は、注目中のノードから遷移後のノードが条件分岐または並列分岐のいずれかに該当するか否かを判断する。条件分岐または並列分岐であれば、処理がステップＳ３１に進められる。条件分岐および並列分岐のいずれでも無い場合、処理がステップＳ３０に進められる。
【０１００】
［ステップＳ３０］フロー定義生成部１４３は、サービスフロー定義に対して、合流に関する処理を設定する。なお、ＢＰＥＬの場合、合流に関する処理の設定は行われない。その後、処理がステップＳ３３に進められる。
【０１０１】
［ステップＳ３１］対象部分抽出部１４２は、注目中のノードが＜＜システム＞＞のアクションであり、かつそのノードが属するパーティションに「サービス実装不適」の実装情報が付加されていないという条件を満たすか否かが判断される。当該条件を満たしていれば、処理がステップＳ３２に進められる。当該条件を満たしていなければ、処理がステップＳ３３に進められる。
【０１０２】
［ステップＳ３２］フロー定義生成部１４３は、サービスフロー定義に対して、注目中のノードの分岐に関する処理を追加する。例えば、ＢＰＥＬであれば、条件分岐の場合にのみ、直前に生成したsourceノードにTransitionCondition属性（分岐先へ遷移する条件を示す情報）を追加する。その後、ステップＳ３３に進められる。
【０１０３】
［ステップＳ３３］対象部分抽出部１４２は、遷移後のノード（分岐または合流）から他のアクションへ向かう遷移について、遷移と注目中のノードとのペアで構成される遷移情報を、「未達遷移リスト」に加える。ただし、「既達遷移リスト」に含まれる遷移は除外する。その後、処理が図１４のステップＳ３４に進められる。
【０１０４】
図１４は、サービスフロー定義の生成処理手順を示す第３のフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
［ステップＳ３４］対象部分抽出部１４２は、注目中のノードが＜＜システム＞＞のアクションであり、かつ「サービス実装不適」の実装情報が付加されていないという条件を満たすか否かを判断する。当該条件を満たしていれば、処理がステップＳ３７に進められる。当該条件を満たしていなければ、処理がステップＳ３５に進められる。
【０１０５】
［ステップＳ３５］そのステップには、注目中のノードが＜＜人の作業＞＞または＜＜システム支援＞＞のアクションであるか、注目中のノードが属するパーティションに「サービス実装不適」の実装情報が設定されている場合に、処理が進められる。その場合、対象部分抽出部１４２は、遷移後のノードが＜＜システム＞＞のアクションであり、かつ遷移後のノードが属するパーティションに「サービス実装不適」の実装情報が設定されていないという条件を満たすか否かを判断する。当該条件を満たしていれば、処理がステップＳ３６に進められる。当該条件を満たしていなければ、処理がステップＳ４２に進められる。
【０１０６】
［ステップＳ３６］フロー定義生成部１４３は、サービスフロー定義に対し、始端の遷移に対する処理を行う。例えば、ＢＰＥＬの場合、receiveノードが生成される。その後、処理がステップＳ４２に進められる。
【０１０７】
［ステップＳ３７］対象部分抽出部１４２は、注目中のノードから遷移後のノードが＜＜システム＞＞のアクションであり、かつ「サービス実装不適」の実装情報が付加されていないという条件を満たすか否かを判断する。当該条件を満たしていれば、処理がステップＳ３９に進められる。当該条件を満たしていなければ、処理がステップＳ３８に進められる。
【０１０８】
［ステップＳ３８］フロー定義生成部１４３は、サービスフロー定義の終端の遷移に対する処理を行う。例えば、ＢＰＥＬの場合、sourceノード、targetノード、replyノードが生成される。その後、処理がステップＳ４２に進められる。
【０１０９】
［ステップＳ３９］対象部分抽出部１４２は、注目中のノードと遷移後のアクションを示すノードとが同一パーティションに属しているか否かを判断する。同一パーティションに属していれば、処理がステップＳ４０に進められる。パーティションが異なっていれば、処理がステップＳ４１に進められる。
【０１１０】
［ステップＳ４０］フロー定義生成部１４３は、サービスフロー定義に対して、同一パーティション内の＜＜システム＞＞−＜＜システム＞＞遷移に対する処理を追加する。例えば、ＢＰＥＬの場合、sourceノード、targetノードが生成される。その後、処理がステップＳ４２に進められる。
【０１１１】
［ステップＳ４１］フロー定義生成部１４３は、サービスフロー定義に対して、２パーティション間の＜＜システム＞＞−＜＜システム＞＞遷移に対する処理を追加する。例えば、ＢＰＥＬであれば、注目中のノードに対応するアクションとして、sourceノード、targetノード、invokeノードを追加し、遷移後のノードに対応するアクションとして、receiveノードを追加する。その後、処理がステップＳ４２に進められる。
【０１１２】
［ステップＳ４２］対象部分抽出部１４２は、遷移後のノードを注目中のノードとする。その後、処理が図１２のステップＳ２２に進められる。
このようにして、図８に示す業務プロセスフロー２００において、実行主体が「システム」と設定されているノード２３１〜２３８に基づくサービスフロー定義が作成される（出荷管理システムのパーティション２２０には「システム不適」の実装情報が付加され、サービスフロー定義の作成対象外となっている）。
【０１１３】
図１５は、サービスフロー定義の例を示す図である。図１５に示すように、複数のノード８１〜９２によってサービスフロー定義８０が構成されている。このサービスフロー定義８０は、在庫管理サービスをサーバに実行させるために必要な情報が定義されている。
【０１１４】
例えば、出荷伝票発行のノード（図８参照）に対応する処理が、receiveのノード８１、invokeのノード８２、replyのノード８３によって定義されている。receiveのノード８１のノードが、データ入力に起因する出荷伝票発行処理の開始を示している。invokeのノード８２が、入力されたデータに基づく出荷伝票発行処理を示している。replyのノード８３が、処置結果の出力による出荷伝票発行処理の終了を示している。
【０１１５】
また、図８に示すシステム出荷受付のノード２３２から貨物追跡コード登録のノード２３８までの処理が、サービスフロー定義８０のノード８４〜９２で示されている。なお、ノード８６は分岐処理を示しており、ノード９０は合流処理を示している。
【０１１６】
このようなサービスフロー定義８０をＢＰＥＬで作成した場合、以下のようになる。
図１６は、サービスフロー定義の例を示す第１の図である。この図１６には、ＢＰＥＬで作成されたサービスフロー定義８０ａの前半部分が示されている。
【０１１７】
図１７は、サービスフロー定義の例を示す第２の図である。この図１７には、ＢＰＥＬで作成されたサービスフロー定義８０ａの後半部分が示されている。
図１５に示す各ノード８１〜９２と図１６、図１７に示すＢＰＥＬの記述との間には、以下のような対応関係がある。
【０１１８】
まず、図１６を参照して対応関係を説明する。ノード８１は、receiveタグに囲まれた記述８１ａに対応する。ノード８２は、invokeタグに囲まれた記述８２ａに対応する。ノード８３は、replyタグに囲まれた記述８３ａに対応する。
【０１１９】
つぎに、図１７を参照して対応関係を説明する。ノード８４は、receiveタグに囲まれた記述８４ａに対応する。ノード８５は、invokeタグに囲まれた記述８５ａに対応する。ノード８７は、invokeタグに囲まれた記述８７ａに対応する。ノード８８は、invokeタグに囲まれた記述８８ａに対応する。ノード８９は、invokeタグに囲まれた記述８９ａに対応する。ノード９１は、invokeタグに囲まれた記述９１ａに対応する。ノード９２は、replyタグに囲まれた記述９２ａに対応する。
【０１２０】
図１５に示される各ノード８１〜９２間の遷移関係は、図１６、図１７のサービスフロー定義８０ａでは、sourceタグとtargetタグとの組によって定義されている。同じlinkNameが設定されているsourceタグとtargetタグが１つの遷移情報を形成している。そして、sourceタグを含むノードからtargetタグを含むノードへ遷移することが示されている。
【０１２１】
図１５の分岐のノード８６は、１つのノード内に複数の遷移先を設定することで、図１６、図１７に示すＢＰＥＬによるサービスフロー定義８０ａ内に設定される。例えば、invokeタグに囲まれた記述８５ａ内には、２つのsourceタグ（linkName="出荷受付-センタ毎取りまとめ"と、linkName="出荷受付-臨時便依頼"）が設定されている。これにより、２つの遷移先に分岐することが定義される。また、条件分岐の場合には、sourceタグ内に、分岐するための条件を定義するtransitionConditionが設定される。
【０１２２】
なお、図１５の合流のノード９０に対応する処理は、図１６、図１７のサービスフロー定義８０ａでは、合流前の複数のノードからの遷移先として、合流後のノードを設定することで定義される。例えば、invokeタグに囲まれた記述８８ａのsourceタグは、linkName="センタ出荷処理-貨物追跡コード登録"と設定されている。また、invokeタグに囲まれた記述８９ａのsourceタグは、linkName="臨時便依頼-貨物追跡コード登録"と設定されている。invokeタグに囲まれた記述９１ａには、記述８８ａ，８９ａそれぞれのsourceタグに対応するlinkNameのtargetタグが設定されている。これにより、記述８８ａ，８９ａに対応するノード８８，８９から合流のノード９０を経由して、記述９１ａに対応するノード９１に遷移することが定義されている。
【０１２３】
次に、ワークフロー切出部１５０によるワークフロー定義の生成処理について詳細に説明する。
図１８は、ワークフロー定義生成処理の手順を示すフローチャートの前半である。以下、図１８に示す処理をステップ番号に沿って説明する。
【０１２４】
［ステップＳ５１］ワークフロー切出部１５０の対象部分抽出部１５２は、業務プロセスフローの開始ノードに注目する。
［ステップＳ５２］対象部分抽出部１５２は、注目中のノードが＜＜人の作業＞＞のアクションか否かを判断する。＜＜人の作業＞＞のアクションであれば、処理がステップＳ５３に進められる。＜＜人の作業＞＞のアクション以外であれば、処理がステップＳ５５に進められる。
【０１２５】
［ステップＳ５３］フロー定義生成部１５３は、ワークフロー定義に対して、アクションの内容の開始を業務遂行者に促すための処理ノードを生成する。
［ステップＳ５４］フロー定義生成部１５３は、ワークフロー定義に対して、アクションの内容の作業終了報告を業務遂行者に促すための処理ノードを生成する。その後、処理が図１９のステップＳ６４に進められる。
【０１２６】
［ステップＳ５５］対象部分抽出部１５２は、注目中のノードが＜＜システム支援＞＞のアクションか否かを判断する。＜＜システム支援＞＞のアクションであれば、処理がステップＳ５６に進められる。＜＜システム支援＞＞のアクション以外であれば、処理がステップＳ５７に進められる。
【０１２７】
［ステップＳ５６］フロー定義生成部１５３は、アクションの内容を実施するためのＧＵＩを実行する処理ノードを生成する。その後、処理が図１９のステップＳ６４に進められる。
【０１２８】
［ステップＳ５７］対象部分抽出部１５２は、注目中のノードが＜＜システム＞＞のアクションか否かを判断する。＜＜システム＞＞のアクションであれば、処理がステップＳ５８に進められる。＜＜システム支援＞＞のアクション以外であれば、処理がステップＳ６０に進められる。
【０１２９】
［ステップＳ５８］フロー定義生成部１５３は、ワークフロー定義に対して、システム呼び出しを実行する処理ノードを生成する。
［ステップＳ５９］対象部分抽出部１５２は、分岐なしで連続して遷移する＜＜システム＞＞アクション列があれば、その最後の＜＜システム＞＞アクションのノードに注目する。その後、処理が図１９のステップＳ６４に進められる。
【０１３０】
［ステップＳ６０］対象部分抽出部１５２は、注目中のノードが条件分岐または並列分岐のいずれかに該当するか否かを判断する。条件分岐または並列分岐のいずれかの場合、処理がステップＳ６１に進められる。条件分岐および並列分岐のいずれでも無い場合、処理がステップＳ６２に進められる。
【０１３１】
［ステップＳ６１］フロー定義生成部１５３は、ワークフロー定義に対して、注目中のノードに応じた条件分岐または並列分岐のノードを生成する。その後、処理が図１９のステップＳ６４に進められる。
【０１３２】
［ステップＳ６２］対象部分抽出部１５２は、注目中のノードが条件合流または並列合流のいずれかに該当するか否かを判断する。条件合流または並列合流であれば、処理がステップＳ６３に進められる。条件合流および並列合流のいずれでも無い場合、処理が図１９のステップＳ６４に進められる。
【０１３３】
［ステップＳ６３］フロー定義生成部１５３は、ワークフロー定義に対して、条件合流または並列合流のノードを生成する。その後、処理が図１９のステップＳ６４に進められる。
【０１３４】
図１９は、ワークフロー定義生成処理の手順を示すフローチャートの後半である。以下、図１９に示す処理をステップ番号に沿って説明する。
［ステップＳ６４］対象部分抽出部１５２は、他のアクションに向かう遷移情報を全ての「未達遷移リスト」に加える。ただし、「既達遷移リスト」に含まれる遷移情報は除外される。
【０１３５】
［ステップＳ６５］対象部分抽出部１５２は、「未達遷移リスト」内に遷移情報があるか否かを判断する。遷移情報が有る場合、処理がステップＳ６６に進められる。遷移情報が無い場合、処理が終了する。
【０１３６】
［ステップＳ６６］対象部分抽出部１５２は、「未達遷移リスト」から遷移情報を１つ取り出す。取り出された遷移情報は、「未達遷移リスト」から削除される。
［ステップＳ６７］対象部分抽出部１５２は、取り出した遷移情報を「既達遷移リスト」に加える。
【０１３７】
［ステップＳ６８］対象部分抽出部１５２は、取り出した遷移情報による遷移後のノードに注目する。その後、処理が図１８のステップＳ５２に進められる。
このようにして、ワークフロー定義が生成される。例えば、図８に示す業務プロセスフロー２００に基づいてワークフロー定義を生成した場合、実行主体が＜＜システム支援＞＞または＜＜人の作業＞＞のノード２１２〜２１６に基づいて、ワークフロー定義が生成される。
【０１３８】
図２０は、ワークフロー定義の例を示す図である。図２０に示すように、複数のノード３０１〜３０８によってワークフロー定義３００が構成されている。図中、開始のノード３０１と終了のノード３０８とは、六角形で表されている。また、システムにより自動的に実行される処理を示すノード３０３，３０６が、四角形で表されている。さらに、人の作業およびユーザからの操作入力を伴うＧＵＩを用いた処理（システム呼出処理）を示すノード３０２，３０４，３０５，３０７は、作業を行う人物の図形で表されている。
【０１３９】
ノード３０２は、図８に示すノード２１２に対応する受注情報確認処理である。ノード３０３は、在庫管理サービスの出荷伝票発行処理を呼び出して、その応答を受け取り、ピッキング対象を提示するまでの処理に対応する。ノード３０４は、図８に示すノード２１４に対応するピッキング処理である。ノード３０５は、図８のノード２１５に対応する出荷確認入力処理である。ノード３０６は、出荷確認入力に基づく出荷伝票を在庫管理サービスに送信し、その応答として貨物追跡コードを受け取るまでの処理である。ノード３０７は、図８のノード２１６に対応する貨物状況確認処理である。
【０１４０】
ところで、人手を介さずに機械的に実行できるフローの一部を特定するための特定条件を任意に指定することで、サービスフロー定義やワークフロー定義作成用に切り出すノードを変更することができる。また、サービスフロー定義やワークフロー定義を生成する際の記述形式も、任意に変更することができる。
【０１４１】
図２１は、特定条件とフロー記述形式とに関する参照状況を示す図である。図２１に示すように、サービスフロー切出部１４０の制御機能から対象部分抽出部１４２が呼び出され、対象部分抽出部１４２が特定条件１４１ａを参照して、抽出すべき要素の特定を行う。また、対象部分抽出部１４２からフロー定義生成部１４３が呼び出されると、フロー定義生成部１４３がフロー記述形式１４３ａを参照して、フロー記述形式１４３ａで示される記述形式のサービスフロー定義を生成する。
【０１４２】
このような関係により、特定条件１４１ａの内容を変更することで、業務プロセスフローからの抽出対象とする要素を変更できる。また、フロー記述形式１４３ａの内容を変更することで、生成されるサービスフロー定義の記述形式を変更できる。
【０１４３】
ところで、特定条件１４１ａに設定可能な条件全てに関する処理機能を対象部分抽出部１４２に持たせるのは、プログラム等の肥大化を招く虞がある。そこで、特定条件の変更と共に、その特定条件に応じた対象部分特定機能を変更できるようにすることもできる。同様に、フロー記述形式の変更と共に、フロー定義生成部によるサービスフロー生成機能を変更できるようにすることができる。
【０１４４】
図２２は、対象部分特定機能とフロー定義生成機能の切り替えが可能な構成を示す図である。この例では、対象部分抽出部１４２の機能が、インタフェース１４２ａと第１の対象部分抽出実行部１４２ｂとに別れている。インタフェース１４２ａは、サービスフロー切出部１４０からの呼出を受け付け、現在設定されている第１の対象部分抽出実行部１４２ｂに処理を実行させる。第１の対象部分抽出実行部１４２ｂは、特定条件記憶部１４１に記憶された第１の特定条件１４１ｂを満たす要素を、業務プロセスフローから抽出する。
【０１４５】
同様に、フロー定義生成部１４３の機能が、インタフェース１４３ｂと第１のフロー定義生成部１４３ｃとに分かれている。インタフェース１４３ｂは、第１の対象部分抽出実行部１４２ｂからの呼出を受け付け、現在設定されている第１のフロー定義生成部１４３ｃに処理を実行させる。第１のフロー定義生成部１４３ｃは、第１のフロー記述形式１４３ｄで示された記述形式のサービスフローを生成する。
【０１４６】
そして、切り替え対象として、第２の対象部分抽出実行部１４２ｃ、第２の特定条件１４１ｃ、第２のフロー定義生成部１４３ｅ、および第２のフロー記述形式１４３ｆを、予め用意しておく。そして、特定条件やフロー記述形式を切り替える際には、第１の対象部分抽出実行部１４２ｂ、第１の特定条件１４１ｂ、第１のフロー定義生成部１４３ｃ、および第１のフロー記述形式１４３ｄを、それぞれ切り替え対象として用意された要素に置き換える。
【０１４７】
これにより、特定条件やフロー記述形式の変更を容易にすることができる。
以上のようにして、業務プロセスフローに基づいて、サービスフロー定義とワークフロー定義とを個別に自動生成することができる。その結果、業務プロセスフローに対する設計変更が発生しても、ベンダ側は、業務側との合意内容に沿った業務プロセスフローを作成すればよく、さらに、サービスフロー定義やワークフロー定義を手作業で作成するという２度手間の必要が無くなる。その結果、サービスフロー定義とワークフロー定義との生成に要する手間を省くことができると共に、サービスフロー定義とワークフロー定義とを作り直すことによるシステム構築作業の遅延を防止することができる。
【０１４８】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、システム管理サーバ１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１４９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５０】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１５１】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の趣旨を逸脱しない範囲内において種々の変更を加えることができる。
【図面の簡単な説明】
【０１５２】
【図１】本実施の形態の概略を示す図である。
【図２】サービスフロー定義の生成方法を示す概念図である。
【図３】ワークフロー定義の生成方法を示す概念図である。
【図４】本実施の形態のシステム構成例を示す図である。
【図５】本実施の形態に用いるシステム管理サーバのハードウェア構成例を示す図である。
【図６】システム管理サーバの機能を示すブロック図である。
【図７】部分フロー生成処理の手順を示すフローチャートである。
【図８】業務プロセスフローの例を示す図である。
【図９】在庫管理サービスに関する実装情報を示す第１の図である。
【図１０】在庫管理サービスに関する実装情報を示す第２の図である。
【図１１】在庫管理サービスに関する実装情報を示す第３の図である。
【図１２】サービスフロー定義の生成処理手順を示す第１のフローチャートである。
【図１３】サービスフロー定義の生成処理手順を示す第２のフローチャートである。
【図１４】サービスフロー定義の生成処理手順を示す第３のフローチャートである。
【図１５】サービスフロー定義の例を示す図である。
【図１６】サービスフロー定義の例を示す第１の図である。
【図１７】サービスフロー定義の例を示す第２の図である。
【図１８】ワークフロー定義生成処理の手順を示すフローチャートの前半である。
【図１９】ワークフロー定義生成処理の手順を示すフローチャートの後半である。
【図２０】ワークフロー定義の例を示す図である。
【図２１】特定条件とフロー記述形式とに関する参照状況を示す図である。
【図２２】対象部分特定機能とフロー定義生成機能の切り替えが可能な構成を示す図である。
【符号の説明】
【０１５３】
１  業務プロセスフロー記憶手段
１ａ  業務プロセスフロー
２  業務プロセスフロー編集手段
３  実装情報付加手段
４  サービスフロー切出手段
５  ワークフロー切出手段
４ａ，５ａ  特定条件記憶手段
４ｂ，５ｂ  対象部分抽出手段
４ｃ，５ｃ  部分フロー定義生成手段
６  サービスフロー定義記憶手段
７  ワークフロー定義記憶手段
【図１】
0004425205.tif 000002
【図２】
0004425205.tif 000003
【図３】
0004425205.tif 000004
【図４】
0004425205.tif 000005
【図５】
0004425205.tif 000006
【図６】
0004425205.tif 000007
【図７】
0004425205.tif 000008
【図８】
0004425205.tif 000009
【図９】
0004425205.tif 000010
【図１０】
0004425205.tif 000011
【図１１】
0004425205.tif 000012
【図１２】
0004425205.tif 000013
【図１３】
0004425205.tif 000014
【図１４】
0004425205.tif 000015
【図１５】
0004425205.tif 000016
【図１６】
0004425205.tif 000017
【図１７】
0004425205.tif 000018
【図１８】
0004425205.tif 000019
【図１９】
0004425205.tif 000020
【図２０】
0004425205.tif 000021
【図２１】
0004425205.tif 000022
【図２２】
0004425205.tif 000023