コンピュータアプリケーション間でワークフローを管理するための方法であって、ミドルウェアシステムのマクロワークフローの構成要素と第1のコンピュータアプリケーションのマイクロワークフロー構成要素との間のマッピングを取り出すステップであって、前記マクロワークフローは、前記第1のコンピュータアプリケーションおよび第2のコンピュータアプリケーションのマイクロワークフローを編成することが可能である、取り出すステップと、前記ミドルウェアシステムの共通構成が、前記第1のコンピュータアプリケーションまたは前記第2のコンピュータアプリケーション上で前記マクロワークフローを実行できるようにする、出力を生成するステップと、を含む、方法。前記出力を生成するステップが、前記マッピングを参照するステップと、前記ミドルウェアシステムの前記マクロワークフロー構成要素に対応する前記第1のコンピュータアプリケーションの前記マイクロワークフロー構成要素を取り出すステップと、前記出力を生成するために前記第1のコンピュータアプリケーションの前記取り出されたマイクロワークフロー構成要素を使用するステップと、を含む、請求項1に記載の方法。前記第1のコンピュータアプリケーションの前記マイクロワークフロー構成要素および前記ミドルウェアシステムの前記マクロワークフロー構成要素が、ビジネスオブジェクトおよび機能呼び出しからなるグループから選択される、前記請求項のいずれか一項に記載の方法。前記出力が、標準言語ファイル、独自所有言語ファイル、テキストファイル、およびAPI呼び出しを含むグループから選択される、請求項1に記載の方法。前記第1のコンピュータアプリケーションまたは前記第2のコンピュータアプリケーションあるいはその両方がミドルウェアシステムである、前記請求項のいずれか一項に記載の方法。前記ミドルウェアシステムと前記第1または第2のコンピュータアプリケーションとの間の既存の接続をテストするステップ、または、前記ミドルウェアシステムと前記第1または第2のコンピュータアプリケーションとの間に新規の接続を作成するステップをさらに含み、前記既存または新規の接続は、前記生成された出力を前記ミドルウェアシステムが取り出すかまたは適用できるようにする、請求項1に記載の方法。前記マクロワークフローまたは前記マイクロワークフローを前記第1または第2のコンピュータアプリケーション上で実行するステップをさらに含む、請求項1に記載の方法。前記第1または第2のコンピュータアプリケーションの前記アプリケーションソフトウェア環境の状況を取り出すステップと、オプションで、前記マクロワークフローに対応する前記マイクロワークフローの実行の前記状況を取得するステップと、をさらに含む、請求項7に記載の方法。前記マクロワークフローに対応する前記マイクロワークフローの前記実行の前記状況を取得するステップが、前記ミドルウェアシステムの共通監視フォルダから前記出力を取り出すステップと、前記ミドルウェアシステムの前記マクロワークフローに対応する前記マイクロワークフローの前記構成要素に関するランタイム情報を生成するために前記出力を解析するステップと、を含む、請求項8に記載の方法。前記生成されたランタイム情報を表示するステップをさらに含む、請求項9に記載の方法。コンピュータアプリケーション間でワークフローを管理するためのミドルウェアシステムであって、前記ミドルウェアシステムのマクロワークフローの構成要素と第1のコンピュータアプリケーションのマイクロワークフロー構成要素との間のマッピングを取り出すため、および前記マクロワークフローを実行するための、共通構成ユニットであって、前記マクロワークフローは、前記第1のコンピュータアプリケーションおよび第2のコンピュータアプリケーションのマイクロワークフローを編成することが可能である、共通構成ユニットと、前記共通構成が前記第1のコンピュータアプリケーションまたは前記第2のコンピュータアプリケーション上で前記マクロワークフローを実行できるようにする出力を生成するための、ワークフローエクスポートユニットと、を備える、システム。前記出力を生成することが、前記マッピングを参照すること、前記ミドルウェアシステムの前記マクロワークフロー構成要素に対応する前記第1のコンピュータアプリケーションの前記マイクロワークフロー構成要素を取り出すこと、および、前記出力を生成するために前記第1のコンピュータアプリケーションの前記取り出されたマイクロワークフロー構成要素を使用することによって実行される、請求項11に記載のシステム。前記第1のコンピュータアプリケーションの前記マイクロワークフロー構成要素および前記ミドルウェアシステムの前記マクロワークフロー構成要素が、ビジネスオブジェクトおよび機能呼び出しからなるグループから選択される、請求項11に記載のシステム。前記出力が、標準言語ファイル、独自所有言語ファイル、テキストファイル、およびAPI呼び出しからなるグループから選択される、請求項11に記載のシステム。前記第1のコンピュータアプリケーションまたは前記第2のコンピュータアプリケーションあるいはその両方がミドルウェアコンピュータアプリケーションである、請求項11に記載のシステム。前記共通構成ユニットが、前記ミドルウェアシステムと前記第1または第2のコンピュータアプリケーションとの間の既存の接続をテストするため、あるいは、前記ミドルウェアシステムと前記第1または第2のコンピュータアプリケーションとの間に新規の接続を作成するための、サービスマネージャ構成要素を備え、前記既存または新規の接続は、前記生成された出力を前記ミドルウェアシステムが取り出すかまたは適用できるようにするものである、請求項11に記載のシステム。前記第1または第2のコンピュータアプリケーション上で前記マクロワークフローを実行するための実行ユニットをさらに備え、前記実行ユニットは、オプションで、前記第1または第2のコンピュータアプリケーションの前記アプリケーションソフトウェア環境の前記状況を取り出すためのエンジン状況ユニットを備える、請求項11に記載のシステム。前記マクロワークフローの前記実行を監視するための監視ユニットをさらに備え、前記監視ユニットは、前記マクロワークフローの前記実行の前記状況を取得するための警報エンジンを備える、請求項17に記載のシステム。前記マクロワークフローの前記実行の前記状況を取得することが、前記警報エンジンの共通監視フォルダから前記出力を取り出すこと、および、前記ミドルウェアシステムの前記マクロワークフローに対応する前記マイクロワークフローの前記構成要素に関するランタイム情報を生成するために前記出力を解析することによって実行される、請求項18に記載のシステム。前記警報エンジンが前記生成されたランタイム情報をさらに表示する、請求項19に記載のシステム。コンピュータシステム内にロードされ、実行された場合、請求項1から10のいずれか一項に記載の方法のすべてのステップを実行するためのコンピュータプログラムコードを含む、コンピュータプログラム。したがって、分析者または開発者がマクロとマイクロの両方のワークフローの定義を作成および維持するための中央位置を提供する、単一の設計プラットフォームまたは単一のミドルウェアシステムが求められている。本発明の一態様によれば、コンピュータアプリケーション間でワークフローを管理するためのミドルウェアシステムは、共通構成ユニットおよびワークフローエクスポートユニットを含む。共通構成ユニットは、ミドルウェアシステムのマクロワークフローのワークフローの構成要素と、第1のコンピュータアプリケーションのマイクロワークフロー構成要素との間の、マッピングを取り出す。共通構成は、第1のコンピュータアプリケーションおよび第2のコンピュータアプリケーションのマイクロワークフローを編成する、マクロワークフローを実行する。ワークフローエクスポートユニットは、共通構成ユニットが、第1または第2のコンピュータアプリケーション上でマイクロワークフローを編成するマクロワークフローを実行できるようにする、出力を生成する。本発明の他の態様によれば、コンピュータアプリケーション間でワークフローを管理するコンピュータ実装方法は、ミドルウェアシステムのマクロワークフローの構成要素と第1のコンピュータアプリケーションのマイクロワークフロー構成要素との間のマッピングを取り出すことであって、マクロワークフローは、第1のコンピュータアプリケーションおよび第2のコンピュータアプリケーションのマイクロワークフローを編成することが可能である、取り出すこと、および、ミドルウェアシステムの共通構成が、第1または第2のコンピュータアプリケーション上でマイクロワークフローを編成するマクロワークフローを実行できるようにする、出力を生成すること、を含む。本発明のさらに他の態様によれば、コンピュータアプリケーション間でワークフローを管理するためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、コンピュータ読み取り可能記憶媒体上に格納されるコンピュータプログラム命令を含む。命令が実行される場合、コンピュータは方法のステップを実行することになる。第1の態様から見ると、本発明は、コンピュータアプリケーション間でワークフローを管理するためのミドルウェアシステムを提供し、このシステムは、ミドルウェアシステムのマクロワークフローの構成要素と第1のコンピュータアプリケーションのマイクロワークフロー構成要素との間のマッピングを取り出すため、およびマクロワークフローを実行するための、共通構成ユニットであって、マクロワークフローは、第1のコンピュータアプリケーションおよび第2のコンピュータアプリケーションのマイクロワークフローを編成することが可能である、共通構成ユニットと、共通構成が第1のコンピュータアプリケーションまたは第2のコンピュータアプリケーション上でマクロワークフローを実行できるようにする出力を生成するための、ワークフローエクスポートユニットと、を備える。好ましくは、本発明は、出力を生成することが、マッピングを参照すること、ミドルウェアシステムのマクロワークフロー構成要素に対応する第1のコンピュータアプリケーションのマイクロワークフロー構成要素を取り出すこと、および、出力を生成するために第1のコンピュータアプリケーションの取り出されたマイクロワークフロー構成要素を使用することによって実行される、システムを提供する。好ましくは、本発明は、第1のコンピュータアプリケーションのマイクロワークフロー構成要素およびミドルウェアシステムのマクロワークフロー構成要素が、ビジネスオブジェクトおよび機能呼び出しからなるグループから選択される、システムを提供する。好ましくは、本発明は、出力が、標準言語ファイル、独自所有proprietary言語ファイル、テキストファイル、およびAPI呼び出しからなるグループから選択される、システムを提供する。好ましくは、本発明は、第1のコンピュータアプリケーションまたは第2のコンピュータアプリケーションあるいはその両方がミドルウェアコンピュータアプリケーションである、システムを提供する。好ましくは、本発明は、共通構成ユニットが、ミドルウェアシステムと第1または第2のコンピュータアプリケーションとの間の既存の接続をテストするため、あるいは、ミドルウェアシステムと第1または第2のコンピュータアプリケーションとの間に新規の接続を作成するための、サービスマネージャ構成要素を備え、既存または新規の接続は、生成された出力をミドルウェアシステムが取り出すかまたは適用できるようにするものである、システムを提供する。好ましくは、本発明は、第1または第2のコンピュータアプリケーション上でマクロワークフローを実行するための実行ユニットをさらに備えるシステムを提供し、この実行ユニットは、オプションで、第1または第2のコンピュータアプリケーションのアプリケーションソフトウェア環境の状況を取り出すためのエンジン状況ユニットを備える。好ましくは、本発明は、マクロワークフローの実行を監視するための監視ユニットをさらに備えるシステムを提供し、この監視ユニットは、マクロワークフローの実行の状況を取得するための警報エンジンを備える。好ましくは、本発明は、マクロワークフローの実行の状況を取得することが、警報エンジンの共通監視フォルダから出力を取り出すこと、および、ミドルウェアシステムのマクロワークフローに対応するマイクロワークフローの構成要素に関するランタイム情報を生成するために出力を解析することによって実行される、システムを提供する。好ましくは、本発明は、さらに警報エンジンが生成されたランタイム情報を表示する、システムを提供する。他の態様から見ると、本発明は、コンピュータアプリケーション間でワークフローを管理する方法を提供し、この方法は、ミドルウェアシステムのマクロワークフローの構成要素と第1のコンピュータアプリケーションのマイクロワークフロー構成要素との間のマッピングを取り出すことであって、マクロワークフローは、第1のコンピュータアプリケーションおよび第2のコンピュータアプリケーションのマイクロワークフローを編成することが可能である、取り出すこと、および、ミドルウェアシステムの共通構成が、第1のコンピュータアプリケーションまたは第2のコンピュータアプリケーション上でマクロワークフローを実行できるようにする、出力を生成すること、を含む。好ましくは、本発明は、出力を生成することが、マッピングを参照すること、ミドルウェアシステムのマクロワークフロー構成要素に対応する第1のコンピュータアプリケーションのマイクロワークフロー構成要素を取り出すこと、および、出力を生成するために第1のコンピュータアプリケーションの取り出されたマイクロワークフロー構成要素を使用することを含む、方法を提供する。好ましくは、本発明は、第1のコンピュータアプリケーションのマイクロワークフロー構成要素およびミドルウェアシステムのマクロワークフロー構成要素が、ビジネスオブジェクトおよび機能呼び出しからなるグループから選択される、方法を提供する。好ましくは、本発明は、出力が、標準言語ファイル、独自所有proprietary言語ファイル、テキストファイル、およびAPI呼び出しからなるグループから選択される、方法を提供する。好ましくは、本発明は、第1のコンピュータアプリケーションまたは第2のコンピュータアプリケーションあるいはその両方がミドルウェアシステムである、方法を提供する。好ましくは、本発明は、ミドルウェアシステムと第1または第2のコンピュータアプリケーションとの間の既存の接続をテストすること、あるいは、ミドルウェアシステムと第1または第2のコンピュータアプリケーションとの間に新規の接続を作成することをさらに含む、方法を提供し、既存または新規の接続は、生成された出力をミドルウェアシステムが取り出すかまたは適用できるようにするものである。好ましくは、本発明は、第1または第2のコンピュータアプリケーション上でマクロワークフローまたはマイクロワークフローを実行することをさらに含む、方法を提供する。好ましくは、本発明は、第1または第2のコンピュータアプリケーションのアプリケーションソフトウェア環境の状況を取り出すこと、および、オプションで、マクロワークフローに対応するマイクロワークフローの実行の状況を取得することをさらに含む、方法を提供する。好ましくは、本発明は、マクロワークフローに対応するマイクロワークフローの実行の状況を取得することが、ミドルウェアシステムの共通監視フォルダから出力を取り出すこと、および、ミドルウェアシステムのマクロワークフローに対応するマイクロワークフローの構成要素に関するランタイム情報を生成するために出力を解析することを含む、方法を提供する。好ましくは、本発明は、生成されたランタイム情報を表示することをさらに含む方法を提供する。他の態様から見ると、本発明は、コンピュータアプリケーション間でワークフローを管理するためのコンピュータプログラム製品を提供し、当該コンピュータプログラム製品は、ミドルウェアシステムのマクロワークフローの構成要素と第1のコンピュータアプリケーションのマイクロワークフロー構成要素との間のマッピングを取り出すステップであって、マクロワークフローは、第1のコンピュータアプリケーションおよび第2のコンピュータアプリケーションのマイクロワークフローを編成することが可能である、取り出すステップと、ミドルウェアシステムの共通構成が、第1のコンピュータアプリケーションまたは第2のコンピュータアプリケーション上でマクロワークフローを実行できるようにする、出力を生成するステップとを実行するための、コンピュータプログラム命令を含み、当該コンピュータプログラム命令は、コンピュータ読み取り可能記憶媒体上に格納される。好ましくは、本発明は、出力を生成することが、マッピングを参照すること、ミドルウェアシステムのマクロワークフロー構成要素に対応する第1のコンピュータアプリケーションのマイクロワークフロー構成要素を取り出すこと、および、出力を生成するために第1のコンピュータアプリケーションの取り出されたワークフロー構成要素を使用することによって実行される、請求項に記載のコンピュータプログラム製品を提供する。好ましくは、本発明は、当該コンピュータプログラム命令が、ミドルウェアシステムと第1または第2のコンピュータアプリケーションとの間の既存の接続をテストするステップ、あるいは、ミドルウェアシステムと第1または第2のコンピュータアプリケーションとの間に新規の接続を作成するステップをさらに実行する、コンピュータプログラム製品を提供し、既存または新規の接続は、生成された出力をミドルウェアシステムが取り出すかまたは適用できるようにするものである。好ましくは、本発明は、当該コンピュータプログラム命令が、第1または第2のコンピュータアプリケーション上でマクロワークフローを実行するステップをさらに実行する、コンピュータプログラム製品を提供する。好ましくは、本発明は、当該コンピュータプログラム命令が、第1または第2のコンピュータアプリケーションのアプリケーションソフトウェア環境の状況を取り出すステップと、オプションで、マクロワークフローの実行の状況を取得するステップとをさらに実行する、コンピュータプログラム製品を提供する。次に、発明の好ましい実施形態について、添付の図面を参照しながら単なる例として説明する。本明細書の図面で全体として説明および例示されるような本発明の実施形態は、説明される好ましい実施形態に加えて、多種多様な異なる構成で配置構成および設計できることを容易に理解されよう。したがって、図面に表された本発明の実施形態の以下の詳細な説明は、請求された本発明の範囲を制限することは意図されておらず、本発明の選択された好ましい実施形態の単なる代表である。以下の説明は、単なる例として意図されており、本明細書で請求される本発明のある選択された好ましい実施形態を示す。本発明の一実施形態によれば、コンピュータアプリケーション間でワークフローを管理するためのミドルウェアシステムが提供される。図1を参照すると、ブロック図は、コンピュータアプリケーション200間でワークフローを管理するためのミドルウェアシステム100を示す。単一のミドルウェアシステム100は、マクロとマイクロの両方のワークフローの定義を作成および維持するためのユーザ用の中央位置を提供する。前述のように、マイクロワークフローは、コンピュータアプリケーション200によって実行されることになるステップまたは一連のステップであり、マクロワークフローは、ミドルウェアシステム100とコンピュータアプリケーション200との間の接続を実行可能にするステップまたは一連のステップである。マイクロワークフローの例は電子メールを送信することであってよく、マクロワークフローの例は報告を生成することであってよく、あるコンピュータアプリケーションを使用して電子メールを送信すること、他のコンピュータアプリケーションを使用して電子メールを取り出すこと、および、さらに異なるコンピュータアプリケーションを使用して電子メールのコンテンツを印刷することを含むことができる。ワークフローは、ビジネスオブジェクトまたは機能呼び出しなどの適切なワークフロー構成要素と共にエクスポート可能であり、したがってミドルウェアサーバが使用できるようにすることができる。コンピュータアプリケーション200は、たとえば、SAP、Siebel、Oracleなどの第三者アプリケーションであるか、または他のミドルウェアシステムとすることも可能である。ミドルウェアシステム100はワークフロー構成要素を動的に変更し、したがってマイクロワークフロー処理を編成することが可能である。これにより、マクロフローミドルウェアシステムによってどのマイクロワークフローおよびアプリケーションシステムが使用されるかを容易に修正するための、ミドルウェアシステムマクロワークフローからの機能が与えられる。例として、ファイル管理システムの場合、コンテンツ管理をFileNetとスワップすることができる。CRMシステムの場合、SiebelをSAPとスワップすることができる。適切なマイクロワークフローアプリケーションシステムを選択するための規則のインテリジェントな実行を可能にするために、規則エンジンをミドルウェアシステム100の一部として含めることができる。XMLまたは他のワークフロー言語を使用して、ポリシーの設定、マクロまたはマイクロワークフローの異なるランタイムへの変更、およびマクロワークフロー全体の動的な変更を行うために、外部規則または様々なコンピュータアプリケーション200の規則を使用することができる。ワークフローをエクスポートするためのミドルウェアシステム100の機能および様々なコンピュータアプリケーション200のターゲットである特定のアプリケーションサーバソフトウェア環境については、以下で詳細に説明する。ミドルウェアシステム100は、共通構成ユニットおよびワークフローエクスポートユニットを含む。図2を参照すると、ブロック図は、共通構成ユニット120およびワークフローエクスポートユニット130を含めるためのミドルウェアシステム100の細部を示している。システム100がワークフロー210を実行するための要求を第1のコンピュータアプリケーション201から受信した後、ワークフローエクスポートユニット130は、ワークフロー210内でワークフロー構成要素211-1、211-2、...、211-nのうちのどれが使用されるかを決定する。この決定は、データベース300に格納可能なワークフロー構成要素211を参照することによって実行可能である。加えて、ワークフロー210がどのように構成されるかに関する、ユーザまたは他の外部入力が提供可能である。共通構成ユニット120は、ミドルウェアシステム100のマクロワークフロー600構成要素161と、第1のコンピュータアプリケーション201のマイクロワークフロー210の構成要素211-1、211-2、...、211-nとの間の、マッピング301を取り出す。前述のように、ワークフロー構成要素の例は、ビジネスオブジェクトまたは機能呼び出しとすることができる。マクロワークフロー600は、第1のコンピュータアプリケーション201と、図2に示される第2のコンピュータアプリケーション202などの、ミドルウェアシステム100に接続可能な任意の他のコンピュータアプリケーションとの、マイクロワークフローを編成することが可能である。複数のコンピュータアプリケーションが接続される場合、システム100は、これらの他のコンピュータアプリケーションからのワークフローを実行するための要求も受信することができる。ビジネスオブジェクトとは、実際の組織または業務におけるある物に対応するコード構成のことである。これは、その物に関する論理、ならびにその論理が必要とするデータを封入している。ビジネスオブジェクトは、メタデータ、すなわち、その物を記述し、構成し、その物に含められ、またはその物に関連付けられた情報、あるいはそれらすべての情報も、含むことができる。ビジネスオブジェクトの例は、顧客、顧客の連絡先情報、顧客サービス担当者、または業務用電話番号とすることができる。機能呼び出しとは、特定のタスクを実行するコードまたはコードの一部への呼び出しのことである。機能呼び出しの例は、電子メールを送信するための呼び出し、またはプリンタにファイルを送信するための呼び出しとすることができる。ミドルウェアシステム100および第1のコンピュータアプリケーション201は、異なるアプリケーションタイプをサポートすることが可能であり、すなわち、各アプリケーションが、異なる言語またはフォーマットで、入力を取り出すかまたは認識すること、または出力を生成すること、あるいはその両方を実行することができる。加えて、第2のコンピュータアプリケーション202などの複数のコンピュータアプリケーションが、ミドルウェアシステムまたは第1のコンピュータアプリケーションあるいはその両方に接続されている場合、第2のコンピュータアプリケーション202は、ミドルウェアシステム100または第1のコンピュータアプリケーション201あるいはその両方とは、異なるアプリケーションタイプをサポートすることも可能である。したがって、1つのコンピュータアプリケーションまたはミドルウェアシステムのワークフローの構成要素と、他のコンピュータアプリケーションのワークフロー構成要素との間で、マッピングが実行される。このマッピングは、1:1、1:N、またはN:1のマッピングとすることができる。マッピングの例は以下の表に示されている。表1では、ミドルウェアサーバマクロワークフローのワークフロー構成要素が第1のアプリケーションのそれぞれのワークフロー構成要素にマッピングされる。ミドルウェアサーバのワークフロー構成要素であるビジネスオブジェクト、CSRが、第1のアプリケーションのワークフロー構成要素であるビジネスオブジェクト、サービス担当者にマッピングされる。ミドルウェアサーバの他のワークフロー構成要素である機能呼び出し、電子メール送信が、第1のアプリケーションまたは他のアプリケーションサーバの単一のワークフロー構成要素またはいくつかのワークフロー構成要素のいずれかであることが可能な、ステップ1~4にマッピングされる。マッピングの取り出しは、表を参照すること、あるいはソフトウェアライブラリ探索または状態マシンなどを使用することによって、実行可能である。図2では、マッピング301を、ミドルウェアシステム100に接続されたデータベース300に格納することが可能である。様々なコンピュータアプリケーションによって使用されるワークフロー210、220、ならびにワークフロー構成要素211-1、211-2、...、211-n、220-1、220-2、...、220-nを、このデータベース300に格納することも可能である。既存の技法を使用して、新規の第三者アプリケーションワークフローおよびこれらのワークフロー間のマッピングをインポートすることができる。図3を参照すると、共通構成ユニット120はサービスマネージャユニット121を含む。サービスマネージャユニット121は、ミドルウェアシステム100とコンピュータアプリケーション201、202との間の現行の接続401をテストするか、または、コンピュータアプリケーション201、202への新規の接続402を作成する。このサービスマネージャユニット121は、コンピュータアプリケーション201、202のサーバに対してコネクタユニットに関するサポートを提供する。コネクタに関連付けられた様々なハンドラが存在する。異なるコネクタが様々なバックエンドソースに関連付けられる。コネクタ対コネクタの関係は、1:Nの関係である。N個のコネクタを外部コネクタに接続することができる。ハンドラは、カスタムまたはデータハンドラとすることができる。コネクタはバックエンドソースの初期化および呼び出しを行い、ミドルウェアシステム100のワークフローエクスポートユニット130によって生成された出力500を取り出す。既存または新規の接続401、402は、ミドルウェアシステム100が、生成された出力500の取り出しまたは適用を実行できるようにする。これらの接続は、TCP/IP、HTTP、SOAPなどの、任意のメッセージプロトコルを使用することができる。ワークフローエクスポートユニット130によって生成された出力500は、ミドルウェアシステム100の共通構成120が、様々なマイクロワークフローステップ601-1、601-2、...、601-nを含むことが可能なマクロワークフロー600を実行できるようにする。これらのマイクロワークフローステップ601-1、601-2、...、601-nは、マクロワークフロー600のマッピングされた構成要素161図2からに基づいている。マッピング301が取り出された後、ワークフローエクスポートユニット130は、ミドルウェアサーバ100のマクロワークフロー構成要素161図2からと第1、第2、または第Nのコンピュータアプリケーションのうちのいずれかのワークフロー構成要素との間のマッピング301を、探索または参照する。その後、ワークフローエクスポートユニット130は、マッピング301から、第1、第2、または第Nのアプリケーションサーバ内のマイクロワークフローに対応するマイクロワークフロー構成要素を取り出す。出力500は、XMLなどの標準言語ファイル、独自所有言語ファイル、テキストファイル、またはAPI呼び出しなどとすることができる。これが第2のコンピュータアプリケーション202のアプリケーションサーバソフトウェア環境に送信されると、第2のコンピュータアプリケーション202は、複数のワークフローステップ600-1、600-2、...、600-nに対応するワークフロー600を実行することが可能となる。ワークフローエクスポートユニット130は、ミドルウェアシステム100がこれらのアプリケーション201、202のマイクロワークフローを実行できるようにする、第1および第2のアプリケーション201、202に対する出力700、800を、それぞれ生成することも可能である。図4は、ワークフローエクスポートユニット130が、どのように第1のコンピュータアプリケーション201と対話し、データベース300内に格納された情報を使用して出力500を生成するかについての例を示す。第1のコンピュータアプリケーション201のワークフロー210の構成要素であるそのワークフロー構成要素x211が、出力500の生成において望ましい場合、ワークフローエクスポートユニット130は、ワークフロー構成要素x211と対応するマクロワークフロー構成要素161との間のマッピング301を探索する。次に、ワークフローエクスポートユニット130はマッピング301からワークフロー構成要素y161を取り出し、ワークフロー構成要素y161を使用して出力500を生成する。以下は、ワークフローエクスポートユニットによって構成される出力の例である。例1および例2は、XML形式での出力の例である。例1はワークフロー構成要素のより一般的な例を示し、例2はより特定な例を示す。例3は、表1に示された電子メール送信構成要素に関する擬似コードの例である。例3に関する実際の出力は、第1のアプリケーションによって認識可能なフォーマットである。加えて、データベース300は、ワークフローの日付/タイムスタンプとワークフローの配布先であったコンピュータアプリケーションとを含む、ワークフローエクスポート状況も含むことができる。ワークフローエクスポート状況は、ミドルウェアシステム100をサポートする他のユニットによって取り出されることが可能である。図5を参照すると、ミドルウェアシステム100は、マクロワークフロー600、あるいは第1または第2のコンピュータアプリケーション201、202上の対応するワークフローを実行する、実行ユニット140を含むことができる。上記の例3を参照すると、生成された出力500が前述の擬似コードに対応するコードである場合、ミドルウェアシステム100は第1のアプリケーション表1を参照のこと上でコードを実行することになり、したがって電子メール送信ワークフローまたはワークフローの電子メール送信構成要素を実行する。ミドルウェアシステム100の実行ユニット140は、コンピュータアプリケーション201、202の実行ユニット250、260と共同し、すなわち、コンピュータアプリケーション201、202の実行ユニット250、260は、コンピュータアプリケーションの実行ユニット250、260が動作中であるかどうかをミドルウェアシステム100に通知するための機能を有し、ミドルウェアシステム100の実行ユニット140は、コンピュータアプリケーション201、202のアプリケーションサーバ環境の可用性をテストするための機能を有する。ミドルウェアシステム100の実行ユニット140は、コンピュータアプリケーション201、202に対するそれぞれの実行ユニット250、260からアプリケーションソフトウェア環境の状況情報302、303を取り出す、エンジン状況ユニット141を含むことができる。コンピュータアプリケーション201、202に対する実行ユニットの状況情報302、303は、データベース300に格納することができる。特定のコンピュータアプリケーションの実行ユニットを起動する必要がある場合、それを実行するためのコマンドをデータベース300に格納することもできる。図6を参照すると、ミドルウェアシステム100は、マクロおよびマイクロの両方のレベルで、ミドルウェアシステム100およびコンピュータアプリケーション201、202の両方によって実行可能なワークフローを監視するために、中央監視ユニット150を含むこともできる。監視ユニット150は、監視プロセスの実装および実装の進行中の保守において、時間および経費を劇的に減少させることができる。この監視ユニットに関するこうした実装手法の1つが監視watchdog手法である。監視ユニット150は、特定のワークフローステップの最新の状況に関する情報を取得する警報エンジン151を含む。警報エンジン151は、たとえば、実行されることになる特定のワークフロー構成要素またはステップを識別するため、およびワークフロー600の現在の実行状況を示すために、ミドルウェアシステム100の実行ユニット140がワークフロー600を実行する間に実行する、監視役として働く。チェックポイントおよびグリッドコンピューティングのような監視技法も、監視ユニット150によって実装可能である。共通監視フォルダ152を、警報エンジン151の一部として含めることができる。このフォルダ152を使用して、出力500を格納するかまたはこれにアクセスすることができる。マクロワークフローに対応するマイクロワークフローの実行の状況を取得することは、フォルダ152から出力500を取り出すこと、この出力を解析して、実行されているマイクロワークフロー601-1、601-2、...、601-nの構成要素に関係するランタイム情報を生成することによって、実行可能である。本発明の実施形態は、BPEL4WSおよびWSChoreography標準などのオープン標準を使用するか、または第三者アプリケーションを介したオープン標準の使用を組み込むことができる。本発明の他の実施形態によれば、コンピュータアプリケーション間でワークフローを管理するためのコンピュータ実装方法が提供される。図7を参照すると、流れ図は例示的方法2000を示している。方法2000は、ブロック2005で、ミドルウェアシステムのマクロワークフローの構成要素と、第1のコンピュータアプリケーションのマイクロワークフロー構成要素との間の、マッピングを取り出すことによって開始される。ミドルウェアシステムのマクロワークフロー構成要素と、ミドルウェアシステムまたは第1のコンピュータアプリケーションに接続可能な他のコンピュータアプリケーションのマイクロワークフロー構成要素との間のマッピングも、取り出すことができる。マクロワークフローは、ミドルウェアシステムに接続可能な第1のコンピュータアプリケーションおよび他のコンピュータアプリケーションのマイクロワークフローを編成することができる。ブロック2010で、ミドルウェアシステムの共通構成が、第1のコンピュータアプリケーションまたは第2のコンピュータアプリケーション上でマクロワークフローを実行できるようにする、出力を生成する。出力を生成するステップの詳細は、ブロック2015、2020、および2025内にサブステップとして示されている。このサブステップは、ブロック2015で、ミドルウェアシステムのマクロワークフローの構成要素と、第1、第2、または第Nあるいはそれらすべてのコンピュータアプリケーションのマイクロワークフロー構成要素との間の、マッピングを参照すること、ブロック2020で、ミドルウェアシステムのマクロワークフロー構成要素に対応する第1、第2、または第Nあるいはそれらすべてのコンピュータアプリケーションのマイクロワークフロー構成要素を取り出すこと、ならびに、ブロック2025で、出力を生成するために、取り出された第1、第2、または第Nあるいはそれらすべてのコンピュータアプリケーションのマイクロワークフロー構成要素を使用すること、を含む。ブロック2030で、方法は、ミドルウェアシステムと第1、第2、または第Nあるいはそれらすべてのコンピュータアプリケーションとの間の既存の接続をテストするステップ、あるいは、ミドルウェアサーバと第1、第2、または第Nあるいはそれらすべてのコンピュータアプリケーションとの間の新規の接続を作成するステップを、さらに含むことができる。既存または新規の接続は、ミドルウェアシステムが生成された出力の取り出しまたは適用を実行できるようにする。ブロック2035で、方法は、第1、第2、または第Nあるいはそれらすべてのコンピュータアプリケーションの対応するワークフローを実行するステップも含むことができる。ブロック2040で、1つまたは複数のコンピュータアプリケーションのアプリケーションソフトウェア環境の状況が取り出される。ブロック2045で、方法は、第1、第2、または第Nのアプリケーションのマクロワークフローに対応するマイクロワークフローの実行の状況を取得するステップを、さらに含むことができる。このステップの詳細は、ブロック2050および2055内にサブステップとして示されている。このサブステップは、ブロック2050で、ミドルウェアシステムの共通監視フォルダから出力を取り出すこと、および、ブロック2055で、ミドルウェアシステムのマクロワークフローに対応するマイクロワークフローの構成要素に関するランタイム情報を生成するための出力を解析すること、を含む。ブロック2060で、方法は、生成されたランタイム情報を表示するステップを含むこともできる。図8を参照すると、ブロック図は、コンピュータアプリケーション3280間でワークフローを管理するためのミドルウェアシステムを含むことが可能な、例示的コンピューティングシステム3000を示す。コンピューティングシステム3000はコンピュータ3010を含む。理解できるように、コンピューティングシステム3000は、デスクトップコンピュータ、ラップトップ、サーバ、ポータブルハンドヘルドデバイス、または他の電子デバイスを含むがこれらに限定されない、様々な知られたコンピューティングデバイスを含むことができる。本考察を容易にするために、本発明の本実施形態についてコンピュータ3010との関連において考察する。コンピュータ3010は、プロセッサ3020、メモリコントローラ3060に結合されたメモリ3040、ローカル入出力コントローラ3120を介して通信可能に結合された1つまたは複数の入力または出力あるいはその両方のI/Oデバイス3080、3100または周辺装置、ならびに、ディスプレイ3160に結合されたディスプレイコントローラ3140を含むように表示される。例示的実施形態では、システム3000は、ネットワーク3200に結合するためのネットワークインターフェース3180をさらに含むことができる。ネットワーク3200は、コンピュータ3010と外部システムとの間でデータを送信および受信する。例示的実施形態では、従来のキーボード3220およびマウス3240を入力/出力コントローラ3120に結合することができる。メモリ3040は、プロセッサ3020によって実行可能な命令を格納する。メモリ3040に格納される命令は、1つまたは複数の別々のプログラムを含むことが可能であり、そのそれぞれは、論理機能を実施するための実行可能命令の順序付けリストを含む。図8に示された例では、メモリ3040に格納される命令は、他のコンピュータプログラムの実行を制御し、スケジューリング、入力出力制御、ファイルおよびデータ管理、メモリ管理、ならびに通信の制御および関連サービスを提供するために好適な、オペレーティングシステムOS3260を含む。プロセッサ3020は、メモリ3040内に格納された命令を実行すること、メモリ3040へのおよびメモリ3040からのデータを通信すること、ならびに、命令に関連するコンピュータ3010の動作を全体として制御することを、実行するように構成される。プロセッサ3020は、特別注文または一般に入手可能なプロセッサ、中央処理装置CPU、コンピュータ3010に関連付けられたいくつかのプロセッサ中の補助プロセッサ、マイクロチップまたはチップセットの形の半導体ベースのマイクロプロセッサ、マクロプロセッサ、あるいは命令を実行するための一般に任意のデバイスとすることができる。プロセッサ3020は、コンピュータアプリケーション3280間でワークフローを管理するためにミドルウェアシステムの命令を実行する。様々な実施形態において、システム3280は図示されたようなメモリ3040に格納される、ポータブル記憶デバイスたとえばCD-ROM、ディスケット、フラッシュドライブなど図示せずから実行される、または、中央サーバ図示せずなどのリモート位置から実行される、あるいはそれらすべてである。本発明のさらに他の実施形態によれば、コンピュータプログラム製品は、コンピュータアプリケーション間でワークフローを管理するために提供される。コンピュータプログラム製品は、コンピュータ読み取り可能記憶媒体上に格納されたコンピュータプログラム命令を含む。命令が実行された場合、コンピュータは、コンピュータアプリケーション間でワークフローを管理するための方法のステップを実行することになり、そのステップについては前述されている。当業者であれば理解されるように、本発明の態様は、前述のようなシステムまたは方法として、あるいはコンピュータプログラム製品として、具体化可能である。したがって、本発明の実施形態は、完全にハードウェア実施形態、完全にソフトウェア実施形態ファームウェア、常駐ソフトウェア、マイクロコードなどを含む、あるいは、本明細書ではすべて全体として回路、モジュール、またはシステムと呼ばれることのあるソフトウェアとハードウェアとの態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の実施形態は、その上にコンピュータ読み取り可能プログラムコードが具体化された1つまたは複数のコンピュータ読み取り可能媒体内で具体化される、コンピュータプログラム製品の形を取ることができる。1つまたは複数のコンピュータ読み取り可能媒体の組み合わせが使用可能である。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいはそれらの好適な組み合わせとすることができるが、それらに限定されるものではない。コンピュータ読み取り可能記憶媒体のより特定の例非網羅的リストは、1本または複数本のワイヤを有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み取り専用メモリROM、消去可能プログラマブル読み取り専用メモリEPROMまたはフラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリCD-ROM、光記憶デバイス、磁気記憶デバイス、あるいはそれらの好適な組み合わせを含む。コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによって、あるいはこれらと共に使用するためのプログラムを、含むかまたは格納することが可能な、有形の媒体とすることができる。コンピュータ読み取り可能信号媒体は、内部にコンピュータ読み取り可能プログラムコードが具体化された伝搬データ信号を、たとえばベースバンド内に、または搬送波の一部として含むことができる。こうした伝搬信号は、電磁、光、またはそれらの好適な組み合わせを含むがこれらに限定されない、様々な形を取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体ではなく、命令実行システム、装置、またはデバイスによって、あるいはこれらと共に使用するためのプログラムを、通信、伝搬、または移送することが可能な、コンピュータ読み取り可能媒体とすることができる。コンピュータ読み取り可能媒体上で具体化されたプログラムコードは、無線、有線、光ファイバケーブル、RFなど、またはそれらの好適な組み合わせを含むがこれらに限定されない、適切な媒体を使用して伝送することができる。本発明の態様に関する動作を実施するためのコンピュータプログラムコードは、Java、Smalltalk、Cなどのオブジェクト指向プログラミング言語、およびCプログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つのプログラミング言語、あるいは2つまたはそれ以上のプログラミング言語で作成可能である。プログラムコードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェアパッケージとして、部分的にユーザのコンピュータ上および部分的にリモートコンピュータ上で、あるいは、完全にリモートコンピュータまたはサーバ上で、実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワークLANまたはワイドエリアネットワークWANを含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができるか、あるいは、たとえばインターネットサービスプロバイダを使用するインターネットを介して外部コンピュータへの接続を実行することができる。流れ図またはブロック図あるいはその両方の各ブロック、および、流れ図またはブロック図あるいはその両方内のブロックの組み合わせは、コンピュータプログラム命令によって実施可能であることを理解されよう。これらのコンピュータプログラム命令は、機械を製造するために、汎用コンピュータ、特定用途向けコンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供可能であるため、結果として、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行する命令が、流れ図またはブロック図あるいはその両方のブロック内に指定された機能/動作を実施するための手段を作成することになる。コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスに、特定の様式で機能するように命じることが可能なこれらのコンピュータプログラム命令を、コンピュータ読み取り可能媒体内に格納することも可能であり、結果として、コンピュータ読み取り可能媒体に格納された命令が、流れ図またはブロック図あるいはその両方のブロック内に指定された機能/動作を実施する命令を含む製品を製造することになる。コンピュータプログラム命令を、コンピュータ実装プロセスを生成するように、一連の動作ステップを、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行させるために、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードすることも可能であり、結果として、コンピュータまたは他のプログラマブル装置上で実行する命令が、流れ図またはブロック図あるいはその両方のブロック内に指定された機能/動作を実施するためのプロセスを提供することになる。