(57)【要約】【課題】  コンピュータ・アプリケーション間でワークフローを管理するためのミドルウェア・システム、方法、およびプログラム製品を提供する。【解決手段】  ミドルウェア・システムは、共通構成ユニットおよびワークフロー・エクスポート・ユニットを含む。共通構成ユニットは、（ｉ）ミドルウェア・システムのマクロ・ワークフローの構成要素と第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間のマッピングを取り出し、（ｉｉ）第１のコンピュータ・アプリケーションおよび第２のコンピュータ・アプリケーションのマイクロ・ワークフローを編成するマクロ・ワークフローを実行する。ワークフロー・エクスポート・ユニットは、第２のコンピュータ・アプリケーションが第１のコンピュータ・アプリケーションのワークフローに対応するワークフローを実行できるようにする、出力を生成する。【選択図】  図２
2013536498.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・アプリケーション間でワークフローを管理するための方法であって、
ミドルウェア・システムのマクロ・ワークフローの構成要素と第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間のマッピングを取り出すステップであって、前記マクロ・ワークフローは、前記第１のコンピュータ・アプリケーションおよび第２のコンピュータ・アプリケーションのマイクロ・ワークフローを編成することが可能である、取り出すステップと、
前記ミドルウェア・システムの共通構成が、前記第１のコンピュータ・アプリケーションまたは前記第２のコンピュータ・アプリケーション上で前記マクロ・ワークフローを実行できるようにする、出力を生成するステップと、
を含む、方法。
【請求項２】
前記出力を生成するステップが、
前記マッピングを参照するステップと、
前記ミドルウェア・システムの前記マクロ・ワークフロー構成要素に対応する前記第１のコンピュータ・アプリケーションの前記マイクロ・ワークフロー構成要素を取り出すステップと、
前記出力を生成するために前記第１のコンピュータ・アプリケーションの前記取り出されたマイクロ・ワークフロー構成要素を使用するステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記第１のコンピュータ・アプリケーションの前記マイクロ・ワークフロー構成要素および前記ミドルウェア・システムの前記マクロ・ワークフロー構成要素が、ビジネス・オブジェクトおよび機能呼び出しからなるグループから選択される、前記請求項のいずれか一項に記載の方法。
【請求項４】
前記出力が、標準言語ファイル、独自所有言語ファイル、テキスト・ファイル、およびＡＰＩ呼び出しを含むグループから選択される、請求項１に記載の方法。
【請求項５】
前記第１のコンピュータ・アプリケーションまたは前記第２のコンピュータ・アプリケーションあるいはその両方がミドルウェア・システムである、前記請求項のいずれか一項に記載の方法。
【請求項６】
前記ミドルウェア・システムと前記第１または第２のコンピュータ・アプリケーションとの間の既存の接続をテストするステップ、または、前記ミドルウェア・システムと前記第１または第２のコンピュータ・アプリケーションとの間に新規の接続を作成するステップをさらに含み、前記既存または新規の接続は、前記生成された出力を前記ミドルウェア・システムが取り出すかまたは適用できるようにする、請求項１に記載の方法。
【請求項７】
前記マクロ・ワークフローまたは前記マイクロ・ワークフローを前記第１または第２のコンピュータ・アプリケーション上で実行するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記第１または第２のコンピュータ・アプリケーションの前記アプリケーション・ソフトウェア環境の状況を取り出すステップと、オプションで、
前記マクロ・ワークフローに対応する前記マイクロ・ワークフローの実行の前記状況を取得するステップと、
をさらに含む、請求項７に記載の方法。
【請求項９】
前記マクロ・ワークフローに対応する前記マイクロ・ワークフローの前記実行の前記状況を取得するステップが、
前記ミドルウェア・システムの共通監視フォルダから前記出力を取り出すステップと、
前記ミドルウェア・システムの前記マクロ・ワークフローに対応する前記マイクロ・ワークフローの前記構成要素に関するランタイム情報を生成するために前記出力を解析するステップと、
を含む、請求項８に記載の方法。
【請求項１０】
前記生成されたランタイム情報を表示するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
コンピュータ・アプリケーション間でワークフローを管理するためのミドルウェア・システムであって、
前記ミドルウェア・システムのマクロ・ワークフローの構成要素と第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間のマッピングを取り出すため、および前記マクロ・ワークフローを実行するための、共通構成ユニットであって、前記マクロ・ワークフローは、前記第１のコンピュータ・アプリケーションおよび第２のコンピュータ・アプリケーションのマイクロ・ワークフローを編成することが可能である、共通構成ユニットと、
前記共通構成が前記第１のコンピュータ・アプリケーションまたは前記第２のコンピュータ・アプリケーション上で前記マクロ・ワークフローを実行できるようにする出力を生成するための、ワークフロー・エクスポート・ユニットと、
を備える、システム。
【請求項１２】
前記出力を生成することが、前記マッピングを参照すること、前記ミドルウェア・システムの前記マクロ・ワークフロー構成要素に対応する前記第１のコンピュータ・アプリケーションの前記マイクロ・ワークフロー構成要素を取り出すこと、および、前記出力を生成するために前記第１のコンピュータ・アプリケーションの前記取り出されたマイクロ・ワークフロー構成要素を使用することによって実行される、請求項１１に記載のシステム。
【請求項１３】
前記第１のコンピュータ・アプリケーションの前記マイクロ・ワークフロー構成要素および前記ミドルウェア・システムの前記マクロ・ワークフロー構成要素が、ビジネス・オブジェクトおよび機能呼び出しからなるグループから選択される、請求項１１に記載のシステム。
【請求項１４】
前記出力が、標準言語ファイル、独自所有言語ファイル、テキスト・ファイル、およびＡＰＩ呼び出しからなるグループから選択される、請求項１１に記載のシステム。
【請求項１５】
前記第１のコンピュータ・アプリケーションまたは前記第２のコンピュータ・アプリケーションあるいはその両方がミドルウェア・コンピュータ・アプリケーションである、請求項１１に記載のシステム。
【請求項１６】
前記共通構成ユニットが、前記ミドルウェア・システムと前記第１または第２のコンピュータ・アプリケーションとの間の既存の接続をテストするため、あるいは、前記ミドルウェア・システムと前記第１または第２のコンピュータ・アプリケーションとの間に新規の接続を作成するための、サービス・マネージャ構成要素を備え、前記既存または新規の接続は、前記生成された出力を前記ミドルウェア・システムが取り出すかまたは適用できるようにするものである、請求項１１に記載のシステム。
【請求項１７】
前記第１または第２のコンピュータ・アプリケーション上で前記マクロ・ワークフローを実行するための実行ユニットをさらに備え、前記実行ユニットは、オプションで、前記第１または第２のコンピュータ・アプリケーションの前記アプリケーション・ソフトウェア環境の前記状況を取り出すためのエンジン状況ユニットを備える、請求項１１に記載のシステム。
【請求項１８】
前記マクロ・ワークフローの前記実行を監視するための監視ユニットをさらに備え、前記監視ユニットは、前記マクロ・ワークフローの前記実行の前記状況を取得するための警報エンジンを備える、請求項１７に記載のシステム。
【請求項１９】
前記マクロ・ワークフローの前記実行の前記状況を取得することが、前記警報エンジンの共通監視フォルダから前記出力を取り出すこと、および、前記ミドルウェア・システムの前記マクロ・ワークフローに対応する前記マイクロ・ワークフローの前記構成要素に関するランタイム情報を生成するために前記出力を解析することによって実行される、請求項１８に記載のシステム。
【請求項２０】
前記警報エンジンが前記生成されたランタイム情報をさらに表示する、請求項１９に記載のシステム。
【請求項２１】
コンピュータ・システム内にロードされ、実行された場合、請求項１から１０のいずれか一項に記載の方法のすべてのステップを実行するためのコンピュータ・プログラム・コードを含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションの開発および統合プラットフォームに関する。より具体的には、本発明は、ミドルウェアおよびコンピュータ・アプリケーション間でワークフローを管理するための方法およびシステムに関する。
【背景技術】
【０００２】
ビジネスまたは組織のプロセスは、規定の様式で実施され、組織の目標につながる、ステップまたはワークフローの集合である。組織プロセスのステップは、アプリケーション・サーバ・システムによって、またはユーザによって実行可能である。組織プロセスをサポートするために、１）定義−組織分析者または開発者が組織プロセス・ワークフローまたはステップの定義または修正を実行できるようにする、２）実行−開発者またはシステム分析者がワークフローまたは組織プロセス・ステップのアプリケーション・プロセス・エンジンまたはシステムの実行の着手または開始を実行できるようにする、３）監視−どのプロセスおよびステップが実行されたか、ならびにそれらの性能のビューを提供する、という、３つのタイプの構成要素が存在する。
【０００３】
アプリケーション開発のサービス指向アーキテクチャ（ＳＯＡ）のパラダイムが与えられた場合、ほとんどのアプリケーション・システム（Ｒｈａｐｓｏｄｙ、ＦｉｌｅＮｅｔ、Ｓｉｅｂｅｌ、Ｃｕｒａｍなど）は、こうしたアプリケーション・システム内で作成されたワークフローを定義、実行、および場合によっては監視するための機能を提供する。特定のアプリケーション・システムまたはアプリケーション・システムの構成要素に特有のワークフローは、マイクロ・ワークフローと呼ばれる。加えて、ＩＢＭ  ＷｅｂＳｐｈｅｒｅ  Ｐｒｏｃｅｓｓ  ＳｅｒｖｅｒまたはＯｒａｃｌｅ  Ｂｕｓｉｎｅｓｓ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔなどのビジネス・プロセス管理（ＢＰＭ）ソフトウェアは、ウェブ・サービスを介した様々なアプリケーション・システムへのステップまたはワークフローの編成を実行可能にする。この編成により、様々なアプリケーション・システム間での処理およびデータの統合が可能になる。複数のアプリケーション・システムに及ぶワークフローは、マクロ・ワークフローと呼ばれる。
【０００４】
典型的なＳＯＡアプリケーションは、特定の機能または目標を達成するために、マクロおよびマイクロの両方のワークフローを実行する。通常、これらのＳＯＡ環境をサポートするためのワークフローの定義、実行、および監視が存在し、様々なアプリケーション・サーバ・システムならびにミドルウェア・ソフトウェアを使用して実行される。
【０００５】
現在、マクロおよびマイクロの両方のレベルでワークフローを定義および演出（choreograph）し、これらのワークフローを第三者のアプリケーション・サーバ・プロセス・エンジンにエクスポートするために使用可能な、単一のミドルウェア・プラットフォームはない。たとえば既存のアプリケーション・システムは、その特定のベンダによって提供された複数のツール上に、定義を定義付けする必要がある。同様に、様々なアプリケーション・サーバ全体にわたってワークフローのステップを監視する、ランタイム・ツールもない。
【０００６】
様々なアプリケーション・システム全体にわたるワークフローの定義、実行、および監視を単一のプラットフォームに実行させられないことによって、制限が生じる。開発者は、複数のワークフロー・ツールを習得し、これらのワークフロー定義を様々なツールにおいて作成および維持しなければならない。実行のためには、複数のワークフロー・エンジンを使用可能にして、それらのアプリケーション・サーバ環境に対するステップを実行する必要がある。現行のシステムを監視するために、分析者または開発者は、様々なアプリケーション・サーバ・ツールを使用して、ワークフローおよびワークフロー内の個々のステップの性能を駆動、デバッグ、および監視する必要がある。
【０００７】
米国特許公開第２００６００８５２４号は、チームおよびタスクを管理するための方法を開示している。チームおよびタスクの管理に加え、チーム・スペースを使用して、パートナおよび独立したソフトウェア・ベンダが共同に対応する業界特有のソリューションを構築できるようにする。この点において、チーム共同ツールは、会社の社員達が互いに対話できるような、企業内ソリューションならびに企業間ソリューションを提供することができる。
【０００８】
米国特許公開第２００７０１４３７３６号は、共通のワークフロー・タスクを設計時にワークフロー図内に視覚的に表される独立した構成要素内に封入する、グラフィカル・ワークフロー編集システムを開示している。これは、各ツールがすべての他のツールから独立できるようにするシステム提供ＡＰＩを介して達成される。プラットフォームは、共通のコード・ベースを壊すことなく、第三者または消費者あるいはその両方が提供する構成要素を容易に受け入れる。これによって消費者は、動作に必要な様々なタイプの情報の取り込み／受け入れ、それらのビジネス・プロセスの定義、およびそれらの最適な受信側宛先への情報の送達を、１つのプラットフォームに実行させることができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許公開第２００６００８５２４号
【特許文献２】米国特許公開第２００７０１４３７３６号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
したがって、分析者または開発者がマクロとマイクロの両方のワークフローの定義を作成および維持するための中央位置を提供する、単一の設計プラットフォームまたは単一のミドルウェア・システムが求められている。
【課題を解決するための手段】
【００１１】
本発明の一態様によれば、コンピュータ・アプリケーション間でワークフローを管理するためのミドルウェア・システムは、共通構成ユニットおよびワークフロー・エクスポート・ユニットを含む。
【００１２】
共通構成ユニットは、ミドルウェア・システムのマクロ・ワークフローのワークフローの構成要素と、第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間の、マッピングを取り出す。共通構成は、第１のコンピュータ・アプリケーションおよび第２のコンピュータ・アプリケーションのマイクロ・ワークフローを編成する、マクロ・ワークフローを実行する。ワークフロー・エクスポート・ユニットは、共通構成ユニットが、第１または第２のコンピュータ・アプリケーション上でマイクロ・ワークフローを編成するマクロ・ワークフローを実行できるようにする、出力を生成する。
【００１３】
本発明の他の態様によれば、コンピュータ・アプリケーション間でワークフローを管理するコンピュータ実装方法は、ミドルウェア・システムのマクロ・ワークフローの構成要素と第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間のマッピングを取り出すことであって、マクロ・ワークフローは、第１のコンピュータ・アプリケーションおよび第２のコンピュータ・アプリケーションのマイクロ・ワークフローを編成することが可能である、取り出すこと、および、ミドルウェア・システムの共通構成が、第１または第２のコンピュータ・アプリケーション上でマイクロ・ワークフローを編成するマクロ・ワークフローを実行できるようにする、出力を生成すること、を含む。
【００１４】
本発明のさらに他の態様によれば、コンピュータ・アプリケーション間でワークフローを管理するためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、コンピュータ読み取り可能記憶媒体上に格納されるコンピュータ・プログラム命令を含む。命令が実行される場合、コンピュータは方法のステップを実行することになる。
【００１５】
第１の態様から見ると、本発明は、コンピュータ・アプリケーション間でワークフローを管理するためのミドルウェア・システムを提供し、このシステムは、ミドルウェア・システムのマクロ・ワークフローの構成要素と第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間のマッピングを取り出すため、およびマクロ・ワークフローを実行するための、共通構成ユニットであって、マクロ・ワークフローは、第１のコンピュータ・アプリケーションおよび第２のコンピュータ・アプリケーションのマイクロ・ワークフローを編成することが可能である、共通構成ユニットと、共通構成が第１のコンピュータ・アプリケーションまたは第２のコンピュータ・アプリケーション上でマクロ・ワークフローを実行できるようにする出力を生成するための、ワークフロー・エクスポート・ユニットと、を備える。
【００１６】
好ましくは、本発明は、出力を生成することが、マッピングを参照すること、ミドルウェア・システムのマクロ・ワークフロー構成要素に対応する第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素を取り出すこと、および、出力を生成するために第１のコンピュータ・アプリケーションの取り出されたマイクロ・ワークフロー構成要素を使用することによって実行される、システムを提供する。
【００１７】
好ましくは、本発明は、第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素およびミドルウェア・システムのマクロ・ワークフロー構成要素が、ビジネス・オブジェクトおよび機能呼び出しからなるグループから選択される、システムを提供する。
【００１８】
好ましくは、本発明は、出力が、標準言語ファイル、独自所有（proprietary）言語ファイル、テキスト・ファイル、およびＡＰＩ呼び出しからなるグループから選択される、システムを提供する。
【００１９】
好ましくは、本発明は、第１のコンピュータ・アプリケーションまたは第２のコンピュータ・アプリケーションあるいはその両方がミドルウェア・コンピュータ・アプリケーションである、システムを提供する。
【００２０】
好ましくは、本発明は、共通構成ユニットが、ミドルウェア・システムと第１または第２のコンピュータ・アプリケーションとの間の既存の接続をテストするため、あるいは、ミドルウェア・システムと第１または第２のコンピュータ・アプリケーションとの間に新規の接続を作成するための、サービス・マネージャ構成要素を備え、既存または新規の接続は、生成された出力をミドルウェア・システムが取り出すかまたは適用できるようにするものである、システムを提供する。
【００２１】
好ましくは、本発明は、第１または第２のコンピュータ・アプリケーション上でマクロ・ワークフローを実行するための実行ユニットをさらに備えるシステムを提供し、この実行ユニットは、オプションで、第１または第２のコンピュータ・アプリケーションのアプリケーション・ソフトウェア環境の状況を取り出すためのエンジン状況ユニットを備える。
【００２２】
好ましくは、本発明は、マクロ・ワークフローの実行を監視するための監視ユニットをさらに備えるシステムを提供し、この監視ユニットは、マクロ・ワークフローの実行の状況を取得するための警報エンジンを備える。
【００２３】
好ましくは、本発明は、マクロ・ワークフローの実行の状況を取得することが、警報エンジンの共通監視フォルダから出力を取り出すこと、および、ミドルウェア・システムのマクロ・ワークフローに対応するマイクロ・ワークフローの構成要素に関するランタイム情報を生成するために出力を解析することによって実行される、システムを提供する。
【００２４】
好ましくは、本発明は、さらに警報エンジンが生成されたランタイム情報を表示する、システムを提供する。
【００２５】
他の態様から見ると、本発明は、コンピュータ・アプリケーション間でワークフローを管理する方法を提供し、この方法は、ミドルウェア・システムのマクロ・ワークフローの構成要素と第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間のマッピングを取り出すことであって、マクロ・ワークフローは、第１のコンピュータ・アプリケーションおよび第２のコンピュータ・アプリケーションのマイクロ・ワークフローを編成することが可能である、取り出すこと、および、ミドルウェア・システムの共通構成が、第１のコンピュータ・アプリケーションまたは第２のコンピュータ・アプリケーション上でマクロ・ワークフローを実行できるようにする、出力を生成すること、を含む。
【００２６】
好ましくは、本発明は、出力を生成することが、マッピングを参照すること、ミドルウェア・システムのマクロ・ワークフロー構成要素に対応する第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素を取り出すこと、および、出力を生成するために第１のコンピュータ・アプリケーションの取り出されたマイクロ・ワークフロー構成要素を使用することを含む、方法を提供する。
【００２７】
好ましくは、本発明は、第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素およびミドルウェア・システムのマクロ・ワークフロー構成要素が、ビジネス・オブジェクトおよび機能呼び出しからなるグループから選択される、方法を提供する。
【００２８】
好ましくは、本発明は、出力が、標準言語ファイル、独自所有（proprietary）言語ファイル、テキスト・ファイル、およびＡＰＩ呼び出しからなるグループから選択される、方法を提供する。
【００２９】
好ましくは、本発明は、第１のコンピュータ・アプリケーションまたは第２のコンピュータ・アプリケーションあるいはその両方がミドルウェア・システムである、方法を提供する。
【００３０】
好ましくは、本発明は、ミドルウェア・システムと第１または第２のコンピュータ・アプリケーションとの間の既存の接続をテストすること、あるいは、ミドルウェア・システムと第１または第２のコンピュータ・アプリケーションとの間に新規の接続を作成することをさらに含む、方法を提供し、既存または新規の接続は、生成された出力をミドルウェア・システムが取り出すかまたは適用できるようにするものである。
【００３１】
好ましくは、本発明は、第１または第２のコンピュータ・アプリケーション上でマクロ・ワークフローまたはマイクロ・ワークフローを実行することをさらに含む、方法を提供する。
【００３２】
好ましくは、本発明は、第１または第２のコンピュータ・アプリケーションのアプリケーション・ソフトウェア環境の状況を取り出すこと、および、オプションで、マクロ・ワークフローに対応するマイクロ・ワークフローの実行の状況を取得することをさらに含む、方法を提供する。
【００３３】
好ましくは、本発明は、マクロ・ワークフローに対応するマイクロ・ワークフローの実行の状況を取得することが、ミドルウェア・システムの共通監視フォルダから出力を取り出すこと、および、ミドルウェア・システムのマクロ・ワークフローに対応するマイクロ・ワークフローの構成要素に関するランタイム情報を生成するために出力を解析することを含む、方法を提供する。
【００３４】
好ましくは、本発明は、生成されたランタイム情報を表示することをさらに含む方法を提供する。
【００３５】
他の態様から見ると、本発明は、コンピュータ・アプリケーション間でワークフローを管理するためのコンピュータ・プログラム製品を提供し、当該コンピュータ・プログラム製品は、ミドルウェア・システムのマクロ・ワークフローの構成要素と第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間のマッピングを取り出すステップであって、マクロ・ワークフローは、第１のコンピュータ・アプリケーションおよび第２のコンピュータ・アプリケーションのマイクロ・ワークフローを編成することが可能である、取り出すステップと、ミドルウェア・システムの共通構成が、第１のコンピュータ・アプリケーションまたは第２のコンピュータ・アプリケーション上でマクロ・ワークフローを実行できるようにする、出力を生成するステップとを実行するための、コンピュータ・プログラム命令を含み、当該コンピュータ・プログラム命令は、コンピュータ読み取り可能記憶媒体上に格納される。
【００３６】
好ましくは、本発明は、出力を生成することが、マッピングを参照すること、ミドルウェア・システムのマクロ・ワークフロー構成要素に対応する第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素を取り出すこと、および、出力を生成するために第１のコンピュータ・アプリケーションの取り出されたワークフロー構成要素を使用することによって実行される、請求項に記載のコンピュータ・プログラム製品を提供する。
【００３７】
好ましくは、本発明は、当該コンピュータ・プログラム命令が、ミドルウェア・システムと第１または第２のコンピュータ・アプリケーションとの間の既存の接続をテストするステップ、あるいは、ミドルウェア・システムと第１または第２のコンピュータ・アプリケーションとの間に新規の接続を作成するステップをさらに実行する、コンピュータ・プログラム製品を提供し、既存または新規の接続は、生成された出力をミドルウェア・システムが取り出すかまたは適用できるようにするものである。
【００３８】
好ましくは、本発明は、当該コンピュータ・プログラム命令が、第１または第２のコンピュータ・アプリケーション上でマクロ・ワークフローを実行するステップをさらに実行する、コンピュータ・プログラム製品を提供する。
【００３９】
好ましくは、本発明は、当該コンピュータ・プログラム命令が、第１または第２のコンピュータ・アプリケーションのアプリケーション・ソフトウェア環境の状況を取り出すステップと、オプションで、マクロ・ワークフローの実行の状況を取得するステップとをさらに実行する、コンピュータ・プログラム製品を提供する。
【００４０】
次に、発明の好ましい実施形態について、添付の図面を参照しながら単なる例として説明する。
【図面の簡単な説明】
【００４１】
【図１】本発明の好ましい実施形態に従った、コンピュータ・アプリケーション間でワークフローを管理するためのミドルウェア・システムを示すブロック図である。
【図２】本発明の好ましい実施形態に従った、ミドルウェア・システムの細部を示すブロック図である。
【図３】本発明の好ましい実施形態に従った、ミドルウェア・システムの共通構成ユニットを示すブロック図である。
【図４】本発明の好ましい実施形態に従った、ミドルウェア・システムのワークフロー・エクスポート・ユニットがどのようにコンピュータ・アプリケーションと対話し、出力を生成するためにデータベース内に格納された情報を使用するかの例を示す、ブロック図である。
【図５】本発明の好ましい実施形態に従った、ミドルウェア・システムの実行ユニットを示すブロック図である。
【図６】本発明の好ましい実施形態に従った、ミドルウェア・システムの監視ユニットを示すブロック図である。
【図７】本発明の好ましい実施形態に従った、コンピュータ・アプリケーション間でワークフローを管理するためのコンピュータ実装方法を示す流れ図である。
【図８】本発明の好ましい実施形態が内部で実装可能な、例示的コンピューティング・システムを示すブロック図である。
【発明を実施するための形態】
【００４２】
本明細書の図面で全体として説明および例示されるような本発明の実施形態は、説明される好ましい実施形態に加えて、多種多様な異なる構成で配置構成および設計できることを容易に理解されよう。したがって、図面に表された本発明の実施形態の以下の詳細な説明は、請求された本発明の範囲を制限することは意図されておらず、本発明の選択された好ましい実施形態の単なる代表である。以下の説明は、単なる例として意図されており、本明細書で請求される本発明のある選択された好ましい実施形態を示す。
【００４３】
本発明の一実施形態によれば、コンピュータ・アプリケーション間でワークフローを管理するためのミドルウェア・システムが提供される。図１を参照すると、ブロック図は、コンピュータ・アプリケーション２００間でワークフローを管理するためのミドルウェア・システム１００を示す。
【００４４】
単一のミドルウェア・システム１００は、マクロとマイクロの両方のワークフローの定義を作成および維持するためのユーザ用の中央位置を提供する。前述のように、マイクロ・ワークフローは、コンピュータ・アプリケーション２００によって実行されることになるステップまたは一連のステップであり、マクロ・ワークフローは、ミドルウェア・システム１００とコンピュータ・アプリケーション２００との間の接続を実行可能にするステップまたは一連のステップである。マイクロ・ワークフローの例は電子メールを送信することであってよく、マクロ・ワークフローの例は報告を生成することであってよく、あるコンピュータ・アプリケーションを使用して電子メールを送信すること、他のコンピュータ・アプリケーションを使用して電子メールを取り出すこと、および、さらに異なるコンピュータ・アプリケーションを使用して電子メールのコンテンツを印刷することを含むことができる。
【００４５】
ワークフローは、ビジネス・オブジェクトまたは機能呼び出しなどの適切なワークフロー構成要素と共にエクスポート可能であり、したがってミドルウェア・サーバが使用できるようにすることができる。コンピュータ・アプリケーション２００は、たとえば、ＳＡＰ、Ｓｉｅｂｅｌ、Ｏｒａｃｌｅなどの第三者アプリケーションであるか、または他のミドルウェア・システムとすることも可能である。
【００４６】
ミドルウェア・システム１００はワークフロー構成要素を動的に変更し、したがってマイクロ・ワークフロー処理を編成することが可能である。これにより、マクロ・フロー・ミドルウェア・システムによってどのマイクロ・ワークフローおよびアプリケーション・システムが使用されるかを容易に修正するための、ミドルウェア・システム・マクロ・ワークフローからの機能が与えられる。例として、ファイル管理システムの場合、コンテンツ管理をＦｉｌｅＮｅｔとスワップすることができる。ＣＲＭシステムの場合、ＳｉｅｂｅｌをＳＡＰとスワップすることができる。適切なマイクロ・ワークフロー・アプリケーション・システムを選択するための規則のインテリジェントな実行を可能にするために、規則エンジンをミドルウェア・システム１００の一部として含めることができる。ＸＭＬまたは他のワークフロー言語を使用して、ポリシーの設定、マクロまたはマイクロ・ワークフローの異なるランタイムへの変更、およびマクロ・ワークフロー全体の動的な変更を行うために、外部規則または様々なコンピュータ・アプリケーション２００の規則を使用することができる。ワークフローをエクスポートするためのミドルウェア・システム１００の機能および様々なコンピュータ・アプリケーション２００のターゲットである特定のアプリケーション・サーバ・ソフトウェア環境については、以下で詳細に説明する。
【００４７】
ミドルウェア・システム１００は、共通構成ユニットおよびワークフロー・エクスポート・ユニットを含む。図２を参照すると、ブロック図は、共通構成ユニット１２０およびワークフロー・エクスポート・ユニット１３０を含めるためのミドルウェア・システム１００の細部を示している。
【００４８】
システム１００がワークフロー２１０を実行するための要求を第１のコンピュータ・アプリケーション２０１から受信した後、ワークフロー・エクスポート・ユニット１３０は、ワークフロー２１０内でワークフロー構成要素２１１−１、２１１−２、．．．、２１１−ｎのうちのどれが使用されるかを決定する。この決定は、データベース３００に格納可能なワークフロー構成要素２１１を参照することによって実行可能である。加えて、ワークフロー２１０がどのように構成されるかに関する、ユーザまたは他の外部入力が提供可能である。共通構成ユニット１２０は、ミドルウェア・システム１００のマクロ・ワークフロー６００構成要素１６１と、第１のコンピュータ・アプリケーション２０１のマイクロ・ワークフロー２１０の構成要素２１１−１、２１１−２、．．．、２１１−ｎとの間の、マッピング３０１を取り出す。前述のように、ワークフロー構成要素の例は、ビジネス・オブジェクトまたは機能呼び出しとすることができる。マクロ・ワークフロー６００は、第１のコンピュータ・アプリケーション２０１と、図２に示される第２のコンピュータ・アプリケーション２０２などの、ミドルウェア・システム１００に接続可能な任意の他のコンピュータ・アプリケーションとの、マイクロ・ワークフローを編成することが可能である。複数のコンピュータ・アプリケーションが接続される場合、システム１００は、これらの他のコンピュータ・アプリケーションからのワークフローを実行するための要求も受信することができる。
【００４９】
ビジネス・オブジェクトとは、実際の組織または業務におけるある物に対応するコード構成のことである。これは、その物に関する論理、ならびにその論理が必要とするデータを封入している。ビジネス・オブジェクトは、メタデータ、すなわち、その物を記述し、構成し、その物に含められ、またはその物に関連付けられた情報、あるいはそれらすべての情報も、含むことができる。ビジネス・オブジェクトの例は、顧客、顧客の連絡先情報、顧客サービス担当者、または業務用電話番号とすることができる。機能呼び出しとは、特定のタスクを実行するコードまたはコードの一部への呼び出しのことである。機能呼び出しの例は、電子メールを送信するための呼び出し、またはプリンタにファイルを送信するための呼び出しとすることができる。
【００５０】
ミドルウェア・システム１００および第１のコンピュータ・アプリケーション２０１は、異なるアプリケーション・タイプをサポートすることが可能であり、すなわち、各アプリケーションが、異なる言語またはフォーマットで、入力を取り出すかまたは認識すること、または出力を生成すること、あるいはその両方を実行することができる。加えて、第２のコンピュータ・アプリケーション２０２などの複数のコンピュータ・アプリケーションが、ミドルウェア・システムまたは第１のコンピュータ・アプリケーションあるいはその両方に接続されている場合、第２のコンピュータ・アプリケーション２０２は、ミドルウェア・システム１００または第１のコンピュータ・アプリケーション２０１あるいはその両方とは、異なるアプリケーション・タイプをサポートすることも可能である。したがって、１つのコンピュータ・アプリケーションまたはミドルウェア・システムのワークフローの構成要素と、他のコンピュータ・アプリケーションのワークフロー構成要素との間で、マッピングが実行される。このマッピングは、１：１、１：Ｎ、またはＮ：１のマッピングとすることができる。マッピングの例は以下の表に示されている。
【表１】
2013536498.tif 000003
【００５１】
表１では、ミドルウェア・サーバ・マクロ・ワークフローのワークフロー構成要素が第１のアプリケーションのそれぞれのワークフロー構成要素にマッピングされる。ミドルウェア・サーバのワークフロー構成要素であるビジネス・オブジェクト、ＣＳＲが、第１のアプリケーションのワークフロー構成要素であるビジネス・オブジェクト、サービス担当者にマッピングされる。ミドルウェア・サーバの他のワークフロー構成要素である機能呼び出し、電子メール送信が、第１のアプリケーションまたは他のアプリケーション・サーバの単一のワークフロー構成要素またはいくつかのワークフロー構成要素のいずれかであることが可能な、ステップ１〜４にマッピングされる。
【００５２】
マッピングの取り出しは、表を参照すること、あるいはソフトウェア・ライブラリ探索または状態マシンなどを使用することによって、実行可能である。図２では、マッピング３０１を、ミドルウェア・システム１００に接続されたデータベース３００に格納することが可能である。様々なコンピュータ・アプリケーションによって使用されるワークフロー２１０、２２０、ならびにワークフロー構成要素２１１−１、２１１−２、．．．、２１１−ｎ、２２０−１、２２０−２、．．．、２２０−ｎを、このデータベース３００に格納することも可能である。既存の技法を使用して、新規の第三者アプリケーション・ワークフローおよびこれらのワークフロー間のマッピングをインポートすることができる。
【００５３】
図３を参照すると、共通構成ユニット１２０はサービス・マネージャ・ユニット１２１を含む。サービス・マネージャ・ユニット１２１は、ミドルウェア・システム１００とコンピュータ・アプリケーション２０１、２０２との間の現行の接続４０１をテストするか、または、コンピュータ・アプリケーション２０１、２０２への新規の接続４０２を作成する。このサービス・マネージャ・ユニット１２１は、コンピュータ・アプリケーション２０１、２０２のサーバに対してコネクタ・ユニットに関するサポートを提供する。コネクタに関連付けられた様々なハンドラが存在する。異なるコネクタが様々なバック・エンド・ソースに関連付けられる。コネクタ対コネクタの関係は、１：Ｎの関係である。Ｎ個のコネクタを外部コネクタに接続することができる。ハンドラは、カスタムまたはデータ・ハンドラとすることができる。コネクタはバック・エンド・ソースの初期化および呼び出しを行い、ミドルウェア・システム１００のワークフロー・エクスポート・ユニット１３０によって生成された出力５００を取り出す。既存または新規の接続４０１、４０２は、ミドルウェア・システム１００が、生成された出力５００の取り出しまたは適用を実行できるようにする。これらの接続は、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＳＯＡＰなどの、任意のメッセージ・プロトコルを使用することができる。
【００５４】
ワークフロー・エクスポート・ユニット１３０によって生成された出力５００は、ミドルウェア・システム１００の共通構成１２０が、様々なマイクロ・ワークフロー・ステップ６０１−１、６０１−２、．．．、６０１−ｎを含むことが可能なマクロ・ワークフロー６００を実行できるようにする。これらのマイクロ・ワークフロー・ステップ６０１−１、６０１−２、．．．、６０１−ｎは、マクロ・ワークフロー６００のマッピングされた構成要素１６１（図２から）に基づいている。マッピング３０１が取り出された後、ワークフロー・エクスポート・ユニット１３０は、ミドルウェア・サーバ１００のマクロ・ワークフロー構成要素１６１（図２から）と第１、第２、または第Ｎのコンピュータ・アプリケーションのうちのいずれかのワークフロー構成要素との間のマッピング３０１を、探索または参照する。その後、ワークフロー・エクスポート・ユニット１３０は、マッピング３０１から、第１、第２、または第Ｎのアプリケーション・サーバ内のマイクロ・ワークフローに対応するマイクロ・ワークフロー構成要素を取り出す。出力５００は、ＸＭＬなどの標準言語ファイル、独自所有言語ファイル、テキスト・ファイル、またはＡＰＩ呼び出しなどとすることができる。これが第２のコンピュータ・アプリケーション２０２のアプリケーション・サーバ・ソフトウェア環境に送信されると、第２のコンピュータ・アプリケーション２０２は、複数のワークフロー・ステップ６００−１、６００−２、．．．、６００−ｎに対応するワークフロー６００を実行することが可能となる。ワークフロー・エクスポート・ユニット１３０は、ミドルウェア・システム１００がこれらのアプリケーション２０１、２０２のマイクロ・ワークフローを実行できるようにする、第１および第２のアプリケーション２０１、２０２に対する出力７００、８００を、それぞれ生成することも可能である。
【００５５】
図４は、ワークフロー・エクスポート・ユニット１３０が、どのように第１のコンピュータ・アプリケーション２０１と対話し、データベース３００内に格納された情報を使用して出力５００を生成するかについての例を示す。第１のコンピュータ・アプリケーション２０１のワークフロー２１０の構成要素であるそのワークフロー構成要素ｘ２１１が、出力５００の生成において望ましい場合、ワークフロー・エクスポート・ユニット１３０は、ワークフロー構成要素ｘ２１１と対応するマクロ・ワークフロー構成要素１６１との間のマッピング３０１を探索する。次に、ワークフロー・エクスポート・ユニット１３０はマッピング３０１からワークフロー構成要素ｙ１６１を取り出し、ワークフロー構成要素ｙ１６１を使用して出力５００を生成する。
【００５６】
以下は、ワークフロー・エクスポート・ユニットによって構成される出力の例である。
【数１】
2013536498.tif 000004
【００５７】
例１および例２は、ＸＭＬ形式での出力の例である。例１はワークフロー構成要素のより一般的な例を示し、例２はより特定な例を示す。例３は、表１に示された電子メール送信構成要素に関する擬似コードの例である。例３に関する実際の出力は、第１のアプリケーションによって認識可能なフォーマットである。
【００５８】
加えて、データベース３００は、ワークフローの日付／タイムスタンプとワークフローの配布先であったコンピュータ・アプリケーションとを含む、ワークフロー・エクスポート状況も含むことができる。ワークフロー・エクスポート状況は、ミドルウェア・システム１００をサポートする他のユニットによって取り出されることが可能である。
【００５９】
図５を参照すると、ミドルウェア・システム１００は、マクロ・ワークフロー６００、あるいは第１または第２のコンピュータ・アプリケーション２０１、２０２上の対応するワークフローを実行する、実行ユニット１４０を含むことができる。上記の例３を参照すると、生成された出力５００が前述の擬似コードに対応するコードである場合、ミドルウェア・システム１００は第１のアプリケーション（表１を参照のこと）上でコードを実行することになり、したがって電子メール送信ワークフロー（またはワークフローの電子メール送信構成要素）を実行する。
【００６０】
ミドルウェア・システム１００の実行ユニット１４０は、コンピュータ・アプリケーション２０１、２０２の実行ユニット２５０、２６０と共同し、すなわち、コンピュータ・アプリケーション２０１、２０２の実行ユニット２５０、２６０は、コンピュータ・アプリケーションの実行ユニット２５０、２６０が動作中であるかどうかをミドルウェア・システム１００に通知するための機能を有し、ミドルウェア・システム１００の実行ユニット１４０は、コンピュータ・アプリケーション２０１、２０２のアプリケーション・サーバ環境の可用性をテストするための機能を有する。
【００６１】
ミドルウェア・システム１００の実行ユニット１４０は、コンピュータ・アプリケーション２０１、２０２に対するそれぞれの実行ユニット２５０、２６０からアプリケーション・ソフトウェア環境の状況情報３０２、３０３を取り出す、エンジン状況ユニット１４１を含むことができる。コンピュータ・アプリケーション２０１、２０２に対する実行ユニットの状況情報３０２、３０３は、データベース３００に格納することができる。特定のコンピュータ・アプリケーションの実行ユニットを起動する必要がある場合、それを実行するためのコマンドをデータベース３００に格納することもできる。
【００６２】
図６を参照すると、ミドルウェア・システム１００は、マクロおよびマイクロの両方のレベルで、ミドルウェア・システム１００およびコンピュータ・アプリケーション２０１、２０２の両方によって実行可能なワークフローを監視するために、中央監視ユニット１５０を含むこともできる。監視ユニット１５０は、監視プロセスの実装および実装の進行中の保守において、時間および経費を劇的に減少させることができる。
【００６３】
この監視ユニットに関するこうした実装手法の１つが「監視（watchdog）」手法である。監視ユニット１５０は、特定のワークフロー・ステップの最新の状況に関する情報を取得する警報エンジン１５１を含む。警報エンジン１５１は、たとえば、実行されることになる特定のワークフロー構成要素またはステップを識別するため、およびワークフロー６００の現在の実行状況を示すために、ミドルウェア・システム１００の実行ユニット１４０がワークフロー６００を実行する間に実行する、「監視役」として働く。チェックポイントおよびグリッド・コンピューティングのような監視技法も、監視ユニット１５０によって実装可能である。共通監視フォルダ１５２を、警報エンジン１５１の一部として含めることができる。このフォルダ１５２を使用して、出力５００を格納するかまたはこれにアクセスすることができる。マクロ・ワークフローに対応するマイクロ・ワークフローの実行の状況を取得することは、フォルダ１５２から出力５００を取り出すこと、この出力を解析して、実行されているマイクロ・ワークフロー６０１−１、６０１−２、．．．、６０１−ｎの構成要素に関係するランタイム情報を生成することによって、実行可能である。
【００６４】
本発明の実施形態は、ＢＰＥＬ４ＷＳおよびＷＳ  Ｃｈｏｒｅｏｇｒａｐｈｙ標準などのオープン標準を使用するか、または第三者アプリケーションを介したオープン標準の使用を組み込むことができる。
【００６５】
本発明の他の実施形態によれば、コンピュータ・アプリケーション間でワークフローを管理するためのコンピュータ実装方法が提供される。図７を参照すると、流れ図は例示的方法２０００を示している。
【００６６】
方法２０００は、ブロック２００５で、ミドルウェア・システムのマクロ・ワークフローの構成要素と、第１のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間の、マッピングを取り出すことによって開始される。ミドルウェア・システムのマクロ・ワークフロー構成要素と、ミドルウェア・システムまたは第１のコンピュータ・アプリケーションに接続可能な他のコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間のマッピングも、取り出すことができる。マクロ・ワークフローは、ミドルウェア・システムに接続可能な第１のコンピュータ・アプリケーションおよび他のコンピュータ・アプリケーションのマイクロ・ワークフローを編成することができる。ブロック２０１０で、ミドルウェア・システムの共通構成が、第１のコンピュータ・アプリケーションまたは第２のコンピュータ・アプリケーション上でマクロ・ワークフローを実行できるようにする、出力を生成する。
【００６７】
出力を生成するステップの詳細は、ブロック２０１５、２０２０、および２０２５内にサブステップとして示されている。このサブステップは、ブロック２０１５で、ミドルウェア・システムのマクロ・ワークフローの構成要素と、第１、第２、または第Ｎあるいはそれらすべてのコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素との間の、マッピングを参照すること、ブロック２０２０で、ミドルウェア・システムのマクロ・ワークフロー構成要素に対応する第１、第２、または第Ｎあるいはそれらすべてのコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素を取り出すこと、ならびに、ブロック２０２５で、出力を生成するために、取り出された第１、第２、または第Ｎあるいはそれらすべてのコンピュータ・アプリケーションのマイクロ・ワークフロー構成要素を使用すること、を含む。
【００６８】
ブロック２０３０で、方法は、ミドルウェア・システムと第１、第２、または第Ｎあるいはそれらすべてのコンピュータ・アプリケーションとの間の既存の接続をテストするステップ、あるいは、ミドルウェア・サーバと第１、第２、または第Ｎあるいはそれらすべてのコンピュータ・アプリケーションとの間の新規の接続を作成するステップを、さらに含むことができる。既存または新規の接続は、ミドルウェア・システムが生成された出力の取り出しまたは適用を実行できるようにする。
【００６９】
ブロック２０３５で、方法は、第１、第２、または第Ｎあるいはそれらすべてのコンピュータ・アプリケーションの対応するワークフローを実行するステップも含むことができる。
【００７０】
ブロック２０４０で、１つまたは複数のコンピュータ・アプリケーションのアプリケーション・ソフトウェア環境の状況が取り出される。
【００７１】
ブロック２０４５で、方法は、第１、第２、または第Ｎのアプリケーションのマクロ・ワークフローに対応するマイクロ・ワークフローの実行の状況を取得するステップを、さらに含むことができる。このステップの詳細は、ブロック２０５０および２０５５内にサブステップとして示されている。このサブステップは、ブロック２０５０で、ミドルウェア・システムの共通監視フォルダから出力を取り出すこと、および、ブロック２０５５で、ミドルウェア・システムのマクロ・ワークフローに対応するマイクロ・ワークフローの構成要素に関するランタイム情報を生成するための出力を解析すること、を含む。ブロック２０６０で、方法は、生成されたランタイム情報を表示するステップを含むこともできる。
【００７２】
図８を参照すると、ブロック図は、コンピュータ・アプリケーション３２８０間でワークフローを管理するためのミドルウェア・システムを含むことが可能な、例示的コンピューティング・システム３０００を示す。コンピューティング・システム３０００はコンピュータ３０１０を含む。理解できるように、コンピューティング・システム３０００は、デスクトップ・コンピュータ、ラップトップ、サーバ、ポータブル・ハンドヘルド・デバイス、または他の電子デバイスを含むがこれらに限定されない、様々な知られたコンピューティング・デバイスを含むことができる。本考察を容易にするために、本発明の本実施形態についてコンピュータ３０１０との関連において考察する。
【００７３】
コンピュータ３０１０は、プロセッサ３０２０、メモリ・コントローラ３０６０に結合されたメモリ３０４０、ローカル入出力コントローラ３１２０を介して通信可能に結合された１つまたは複数の入力または出力あるいはその両方の（Ｉ／Ｏ）デバイス３０８０、３１００（または周辺装置）、ならびに、ディスプレイ３１６０に結合されたディスプレイ・コントローラ３１４０を含むように表示される。例示的実施形態では、システム３０００は、ネットワーク３２００に結合するためのネットワーク・インターフェース３１８０をさらに含むことができる。ネットワーク３２００は、コンピュータ３０１０と外部システムとの間でデータを送信および受信する。例示的実施形態では、従来のキーボード３２２０およびマウス３２４０を入力／出力コントローラ３１２０に結合することができる。
【００７４】
メモリ３０４０は、プロセッサ３０２０によって実行可能な命令を格納する。メモリ３０４０に格納される命令は、１つまたは複数の別々のプログラムを含むことが可能であり、そのそれぞれは、論理機能を実施するための実行可能命令の順序付けリストを含む。図８に示された例では、メモリ３０４０に格納される命令は、他のコンピュータ・プログラムの実行を制御し、スケジューリング、入力出力制御、ファイルおよびデータ管理、メモリ管理、ならびに通信の制御および関連サービスを提供するために好適な、オペレーティング・システム（ＯＳ）３２６０を含む。
【００７５】
プロセッサ３０２０は、メモリ３０４０内に格納された命令を実行すること、メモリ３０４０へのおよびメモリ３０４０からのデータを通信すること、ならびに、命令に関連するコンピュータ３０１０の動作を全体として制御することを、実行するように構成される。プロセッサ３０２０は、特別注文または一般に入手可能なプロセッサ、中央処理装置（ＣＰＵ）、コンピュータ３０１０に関連付けられたいくつかのプロセッサ中の補助プロセッサ、（マイクロチップまたはチップ・セットの形の）半導体ベースのマイクロプロセッサ、マクロプロセッサ、あるいは命令を実行するための一般に任意のデバイスとすることができる。
【００７６】
プロセッサ３０２０は、コンピュータ・アプリケーション３２８０間でワークフローを管理するためにミドルウェア・システムの命令を実行する。様々な実施形態において、システム３２８０は（図示されたような）メモリ３０４０に格納される、ポータブル記憶デバイス（たとえばＣＤ−ＲＯＭ、ディスケット、フラッシュ・ドライブなど）（図示せず）から実行される、または、中央サーバ（図示せず）などのリモート位置から実行される、あるいはそれらすべてである。
【００７７】
本発明のさらに他の実施形態によれば、コンピュータ・プログラム製品は、コンピュータ・アプリケーション間でワークフローを管理するために提供される。コンピュータ・プログラム製品は、コンピュータ読み取り可能記憶媒体上に格納されたコンピュータ・プログラム命令を含む。命令が実行された場合、コンピュータは、コンピュータ・アプリケーション間でワークフローを管理するための方法のステップを実行することになり、そのステップについては前述されている。
【００７８】
当業者であれば理解されるように、本発明の態様は、（前述のような）システムまたは方法として、あるいはコンピュータ・プログラム製品として、具体化可能である。したがって、本発明の実施形態は、完全にハードウェア実施形態、完全にソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、本明細書ではすべて全体として「回路」、「モジュール」、または「システム」と呼ばれることのあるソフトウェアとハードウェアとの態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の実施形態は、その上にコンピュータ読み取り可能プログラム・コードが具体化された１つまたは複数のコンピュータ読み取り可能媒体内で具体化される、コンピュータ・プログラム製品の形を取ることができる。
【００７９】
１つまたは複数のコンピュータ読み取り可能媒体の組み合わせが使用可能である。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいはそれらの好適な組み合わせとすることができるが、それらに限定されるものではない。コンピュータ読み取り可能記憶媒体のより特定の例（非網羅的リスト）は、１本または複数本のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光記憶デバイス、磁気記憶デバイス、あるいはそれらの好適な組み合わせを含む。コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによって、あるいはこれらと共に使用するためのプログラムを、含むかまたは格納することが可能な、有形の媒体とすることができる。
【００８０】
コンピュータ読み取り可能信号媒体は、内部にコンピュータ読み取り可能プログラム・コードが具体化された伝搬データ信号を、たとえばベースバンド内に、または搬送波の一部として含むことができる。こうした伝搬信号は、電磁、光、またはそれらの好適な組み合わせを含むがこれらに限定されない、様々な形を取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体ではなく、命令実行システム、装置、またはデバイスによって、あるいはこれらと共に使用するためのプログラムを、通信、伝搬、または移送することが可能な、コンピュータ読み取り可能媒体とすることができる。
【００８１】
コンピュータ読み取り可能媒体上で具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、またはそれらの好適な組み合わせを含むがこれらに限定されない、適切な媒体を使用して伝送することができる。
【００８２】
本発明の態様に関する動作を実施するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つのプログラミング言語、あるいは２つまたはそれ以上のプログラミング言語で作成可能である。プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは、完全にリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができるか、あるいは、（たとえばインターネット・サービス・プロバイダを使用するインターネットを介して）外部コンピュータへの接続を実行することができる。
【００８３】
流れ図またはブロック図あるいはその両方の各ブロック、および、流れ図またはブロック図あるいはその両方内のブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることを理解されよう。これらのコンピュータ・プログラム命令は、機械を製造するために、汎用コンピュータ、特定用途向けコンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供可能であるため、結果として、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、流れ図またはブロック図あるいはその両方のブロック内に指定された機能／動作を実施するための手段を作成することになる。
【００８４】
コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに、特定の様式で機能するように命じることが可能なこれらのコンピュータ・プログラム命令を、コンピュータ読み取り可能媒体内に格納することも可能であり、結果として、コンピュータ読み取り可能媒体に格納された命令が、流れ図またはブロック図あるいはその両方のブロック内に指定された機能／動作を実施する命令を含む製品を製造することになる。
【００８５】
コンピュータ・プログラム命令を、コンピュータ実装プロセスを生成するように、一連の動作ステップを、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行させるために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードすることも可能であり、結果として、コンピュータまたは他のプログラマブル装置上で実行する命令が、流れ図またはブロック図あるいはその両方のブロック内に指定された機能／動作を実施するためのプロセスを提供することになる。
【図１】
2013536498.tif 000005
【図２】
2013536498.tif 000006
【図３】
2013536498.tif 000007
【図４】
2013536498.tif 000008
【図５】
2013536498.tif 000009
【図６】
2013536498.tif 000010
【図７】
2013536498.tif 000011
【図８】
2013536498.tif 000012
2013536498.tif 000013
2013536498.tif 000014
2013536498.tif 000015
2013536498.tif 000016
2013536498.tif 000017
2013536498.tif 000018
2013536498.tif 000019
【国際調査報告】
2013536498.tif 000020
2013536498.tif 000021
2013536498.tif 000022