メッセージフローのプログラムによる修正の方法であって、メッセージブローカ内のメッセージフローを識別するステップであって、前記メッセージフローは複数のノードおよび接続路を含み、前記複数のノードはノードおよび反射ノードを含み、前記ノードは事前定義ノードおよびユーザ定義ノードの少なくとも一つであり、前記メッセージブローカは、メッセージを第一正式メッセージングプロトコルから第二正式メッセージングプロトコルに変換ができる媒介コンピュータプログラムコードであり、前記媒介コンピュータプログラムコードはコンピュータ可読媒体に格納される、前記識別するステップと、前記メッセージフロー内の前記反射ノードを選択するステップであって、前記反射ノードは外部リソースに関連付けられ、前記外部リソースは実行コードである、前記選択するステップと、前記外部リソースを実行するステップであって、前記実行が前記メッセージフローの構造の前記修正をもたらし、前記修正はノードの追加、変更、および削除であり、前記修正はランタイム中に行われる、前記実行するステップと、を含む前記方法。前記メッセージフローに関連付けられた評価指標を分析するステップであって、前記評価指標は、前記実行するステップに関連付けられたパラメータである、前記分析するステップ、をさらに含む、請求項1に記載の方法。前記修正を最適化メッセージフローとしてデータストアに格納するステップであって、前記最適化メッセージフローは前記メッセージフローとは異なる、前記格納するステップと、ランタイム中に、前記メッセージブローカ内の前記メッセージフローを前記最適化メッセージフローに置き換えるステップであって、前記最適化メッセージフローが展開され、前記メッセージフローは展開を止める、前記置き換えるステップと、前記最適化メッセージフローを実行するステップと、をさらに含む、請求項1に記載の方法。前記最適化メッセージフローがユーザインタフェース内に提示される、請求項3に記載の方法。前記外部リソースはJAVA実行コードである、請求項1に記載の方法。前記外部リソースはIBMIBM社の登録商標WEBSPHERESERVICEREGISTRYANDREPOSITORYWSRRソフトウエアに関連付けられる、請求項1に記載の方法。前記追加は、前記メッセージフロー内へのトレースノードの挿入である、請求項1に記載の方法。前記反射ノードはタイムアウトノードに関連付けられ、前記タイムアウトノードは前記反射ノードの機能の前記実行をトリガする、請求項1に記載の方法。前記メッセージブローカはIBMIBM社の登録商標WEBSPHEREMESSAGEBROKERである、請求項1に記載の方法。メッセージフローのプログラムによる修正のためのシステムであって、ノード、接続路、および反射ノードの少なくとも一つを含むメッセージフローを実行できるフローエンジンであって、前記フローエンジンはメッセージブローカに関連付けられ、前記反射ノードは外部リソースに関連付けられ、前記外部リソースは、前記メッセージフローを構造的に修正できる実行コードである、前記フローエンジンと、メッセージを保持するよう構成されたメッセージキューであって、前記メッセージはアプリケーションに関連付けられ、前記アプリケーションはコンピュータ可読媒体内に格納されたコンピュータプログラムコードであり、前記アプリケーションはアプリケーションサーバと関連付けられる、前記メッセージキューと、前記反射ノードを前記外部リソースおよびパラメータの少なくとも一つとリンクすることができる構成設定であって、前記パラメータは実行設定値である、前記構成設定と、を含む前記システム。前記メッセージフローの分析を遂行するよう構成された分析エンジンであって、前記分析は評価指標の収集であり、前記分析エンジンは前記評価指標を前記フローエンジンに伝送する、前記分析エンジンと、ランタイム中に前記外部リソースを実行できるフローマニピュレータであって、前記外部リソースは、ノード変更および接続路調整の少なくとも一つを遂行することができ、前記ノード変更は、ノード挿入、ノード修正、およびノード削除の少なくとも一つであり、前記接続路調整は、接続路挿入、接続路修正、および接続路削除の少なくとも一つである、前記フローマニピュレータと、メッセージフローの変更およびエラーの少なくとも一つを保持できる監査マネージャであって、前記メッセージフローの変更は、差分および改訂の少なくとも一つとして保持される、前記監査マネージャと、をさらに含む、請求項10に記載のシステム。リアルタイムで前記評価指標が収集される、請求項11に記載のシステム。前記外部リソースはノードライブラリに関連付けられ、前記ノードライブラリは事前定義ノードおよびユーザ定義ノードの少なくとも一つを含む、請求項10に記載のシステム。前記反射ノードはタイムアウトノードに接続され、前記タイムアウトノードは前記反射ノードを定期的に実行するよう構成される、請求項10に記載のシステム。前記反射ノードは、IBMIBM社の登録商標WEBSPHEREMESSAGEBROKERに関連付けられた、動的フロー更新ノードである、請求項10に記載のシステム。前記外部リソースは、メッセージフローの構造的な修正を遂行するよう構成された、アプリケーションプログラミングインタフェースAPIである、請求項10に記載のシステム。コンピュータプログラムであって、前記プログラムがコンピュータに、メッセージブローカ内のメッセージフローを識別するよう動作可能であり、前記メッセージフローは複数のノードおよび接続路を含み、前記複数のノードはノードおよび反射ノードを含み、前記ノードは事前定義ノードおよびユーザ定義ノードの少なくとも一つであり、前記メッセージブローカは、メッセージを第一正式メッセージングプロトコルから第二正式メッセージングプロトコルに変換する機能と、前記メッセージフロー内の前記反射ノードを選択するよう動作可能であり、前記反射ノードを外部リソースに関連付ける機能と、前記外部リソースを実行するよう作動し、前記実行が前記メッセージフローの構造の修正をもたらし、前記修正はノードの追加、変更、および削除であり、前記修正をランタイム中に行う機能と、を実行させる、コンピュータプログラム。前記コンピュータプログラムはIBMIBM社の登録商標WEBSPHEREMESSAGEBROKERのコンポーネントである、請求項17に記載のコンピュータプログラム。前記反射ノードは、IBMIBM社の登録商標WEBSPHEREMESSAGEBROKEREXPLORERに関連付けられた、動的フロー更新ノードである、請求項17に記載のコンピュータプログラム。前記反射ノードはタイムアウトノードに接続され、前記タイムアウトノードは事前定義ノードである、請求項19に記載のコンピュータプログラム。メッセージフローの処理の改善のための現在のソリューションには、手動によるメッセージフロー修正が含まれる。例えば、メッセージフローの設計は、ボトルネックを表示可能なパフォーマンス評価指標に応じて、ミドルウェアアナリストが修正することができる。手動で修正されたメッセージフローは、人手を介して、再展開し、継続的に最適化しなければならない。このアプローチは、手間がかかり、間違いが発生しやすい可能性があり、インフラストラクチャのコストに大きく影響することがある。本発明の一つの態様には、ランタイム中のメッセージフローのプログラムによる修正のための方法、コンピュータプログラム、システム、および装置を含めることができる。メッセージブローカ内のメッセージフローを識別することができる。メッセージフローにはノードおよび接続路を含めることができる。ノードには、反射ノード、事前定義ノード、およびユーザ定義ノードを含めることができる。このメッセージブローカは、メッセージを第一正式メッセージングプロトコルから第二正式メッセージングプロトコルに変換できる媒介コンピュータプログラムコードとすることができる。このコードは、コンピュータ可読媒体内に格納することができる。メッセージフロー内の反射ノードを選択することができる。反射ノードは、外部リソースと関連付けることができ、このリソースを実行コードとすることができる。外部リソースを実行し、メッセージフローの構造の修正を行うことができる。修正はランタイム中に行うことが可能である。この修正には、ノードもしくは接続路またはその両方の追加、変更、および削除を含めることができる。本発明の別の態様には、ランタイム中にメッセージフローをプログラムで修正するためのシステムを含めることができる。この態様では、フローエンジンが、ノード、接続路、および反射ノードを含むメッセージフローを実行することができる。フローエンジンはメッセージブローカと関連付けることができる。反射ノードを外部リソースと関連付けることが可能である。外部リソースは、メッセージフローを構造的に修正できる実行コードとすることができる。メッセージキューは、アプリケーションとの関連付けが可能なメッセージを保持するように構成することができる。アプリケーションは、コンピュータ可読媒体内に格納されたコンピュータプログラムコードとすることができる。アプリケーションは、アプリケーションサーバと関連付けることができる。構成設定によって、反射ノードを外部リソースもしくはパラメータまたはその両方にリンクすることができる。このパラメータは実行設定値とすることができる。本開示は、ランタイム中のメッセージフローのプログラムによる修正のためのソリューションである。本ソリューションにおいて、メッセージフローは、一つ以上の作動インプットに応じてランタイム中に構造的に修正することができる。作動インプットには、以下に限らないが、評価指標、状態、コンテキスト、刺激などを含めることができる。構造的な修正には、以下に限らないが、ノード操作例、追加、変更、削除、接続路操作例、挿入、修正、削除、屈曲点操作などを含めることができる。一つの実施形態において、メッセージフロー内の反射ノードは、ランタイムにおいてメッセージフローを修正できる、構造的アプリケーションプログラミングインターフェースAPI:applicationprogramminginterface機能の実行を可能にすることができる。この実施形態において、反射ノードは、反射ノードの機能に定期的なトリガを加えることが可能なタイムアウトノードにリンクすることができる。当業者ならよく理解できるであろうように、本発明の態様は、システム、方法、またはコンピュータプログラムとして具現することができる。従って、本発明の態様は、全体がハードウエアの実施形態、全体がソフトウエアの実施形態ファームウエア、常駐ソフトウエア、マイクロコードなどを含む、あるいは、一般に本明細書では全て回路、モジュール、またはシステムといわれる、ソフトウエアおよびハードウエア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の態様は、内部に具体化されたコンピュータ可読プログラムコードを有する一つ以上のコンピュータ可読媒体群中に具現されたコンピュータプログラムの形を取ることもできる。一つ以上のコンピュータ可読媒体群の任意の組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的な、または半導体の、システム、装置、もしくはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のさらに具体的な例非包括的リストには、一つ以上の配線を有する電気接続、携帯型コンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM:randomaccessmemory、読み取り専用メモリROM:read-onlymemory、消去可能プログラム可能読み取り専用メモリEPROMerasableprogrammableread-onlymemoryまたはフラッシュメモリ、光ファイバ、携帯型コンパクトディスク読み取り専用メモリCD-ROM:compactdiscread-onlymemory、光記憶デバイス、磁気記憶デバイス、またはこれらの任意の適切な組み合わせが含まれよう。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによってまたはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体とすることができる。コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部として具現されたコンピュータ可読のプログラムコードを有する、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の組み合わせを含め、さまざまな形態の任意の形を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではないが、命令実行システム、装置、またはデバイスによってまたはこれらに関連させて使うためのプログラムを通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であり得る。コンピュータ可読媒体中に具現されたプログラムコードは、以下に限らないが、無線、有線、光ファイバケーブル、RFなど、またはこれらの任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。本発明の態様のオペレーションを実行するためのコンピュータプログラムコードは、JavaR、SmalltalkR、Cなどのオブジェクト指向プログラミング言語、および、Cプログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。このプログラムコードは、全体をユーザのコンピュータで、一部をユーザのコンピュータで、スタンドアロンソフトウエアパッケージとして実行することができ、一部をユーザのコンピュータで他の部分を遠隔コンピュータで、または全体を遠隔のコンピュータまたはサーバで実行することができる。後者のシナリオでは、ローカルエリアネットワークLAN:localareanetworkまたは広域ネットワークWAN:wideareanetworkを含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することができ、あるいは例えばインターネットサービスプロバイダを使いインターネットを介し外部のコンピュータへの接続を行うことができる。本発明の実施形態による方法、装置システムおよびコンピュータプログラムのフローチャート説明図もしくはブロック図またはその両方を参照しながら本発明の態様を以下に説明する。フローチャート説明図もしくはブロック図またはその両方の各ブロック、および、フローチャート説明図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータプログラム命令によって実装可能であることが理解されよう。これらのコンピュータプログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに供給し、コンピュータ又は他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/処理群を実施するための手段を生成するようにすることができる。また、これらのコンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令できるコンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能/処理を実施する命令群を包含する製品を形成するようにすることができる。同様に、コンピュータプログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、これらコンピュータ、他のプログラム可能装置、または他のデバイス上で一連のオペレーションステップを実施させてコンピュータ実装のプロセスを生成し、これらコンピュータまたは他のプログラム可能装置で実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群/処理群を実施するためのプロセスを提供するようにすることもできる。図1は、本明細書で開示する本発明アレンジメントの実施形態による、ランタイム中のメッセージフローのプログラムによる修正の方法100を示すフローチャートである。方法100において、メッセージブローカ内で実行されているメッセージフローは、ランタイム中に動的に修正することができる。このメッセージフローには、作動インプットに応じ、メッセージフローに構造的調整を実施することが可能な反射ノードを含めることができる。一つの実施形態において、方法100は、リアルタイムまたはほぼリアルタイムで実施することができる。本明細書での使用において、メッセージフローは、メッセージに対し一連の処置を行う能力のある2つ以上のノードを含むソフトウエア構造体とすることができる。メッセージフローのノードは接続路を介して接続することができる。接続路は、それを通してメッセージの伝送が可能な、メッセージフローのノードの間のリンケージとすることができる。ノードは、メッセージの一部を処理可能な実行可能ソフトウエアエンティティとすることができる。ノードは、ノードの連結を可能にできるターミナルに関連付けることができる。ターミナルは、入力端、出力端などとすることができる。ノードには、以下に限らないが、事前定義ノード例、内蔵ノード、ユーザ定義ノード、サブフローなどを含めることができる。ノードの機能には、以下に限らないが、メッセージの処理、メッセージの変換、メッセージの経路設定、集合、フィルタリングなどを含めることができる。本明細書での使用において、メッセージは、あるアプリケーションから別のアプリケーションに伝えられるアプリケーションメッセージとすることができる。このメッセージは、一つ以上の従来フォーマットもしくは独自フォーマットまたはその両方のフォーマットに適合する、自動生成されたデジタルアーチファクトとすることができる。一例において、メッセージは、拡張マークアップ言語XML:ExtensibleMarkupLanguageのメッセージとすることができる。アプリケーションは、アプリケーションメッセージングインフラストラクチャ内のソフトウエアプログラムとすることができる。アプリケーションメッセージングインフラストラクチャは、メッセージパッシングバスに亘るアプリケーションの弱連結を可能にする、ハードウエア/ソフトウエアプラットフォームとすることができる。一例において、アプリケーションメッセージングインフラストラクチャには、サービス指向アーキテクチャSOAを含めることができる。方法100内のメッセージフローは、分散コンピューティング環境、ネットワークコンピューティング環境、クラウドコンピューティング環境などに設置可能であることをよく理解すべきである。ステップ105において、メッセージブローカ内のメッセージフローを選択することができる。選択は、以下に限らないが、パフォーマンス評価指標、メッセージフローの複雑性、オーナーなどを含む一つ以上の基準に基づいて行うことができる。ステップ110で、選択されたメッセージフローを実行することができる。実行は、動的コンピューティング環境内においてリアルタイムで行うことができる。ステップ115において、メッセージ内の反射ノードを選択することができる。反射ノードは、実行順序、定期的ノード選択などに基づいて選択することができる。反射ノードは、事前定義ノード、ユーザ定義、サブフローなどにすることができる。ステップ120で、選択された反射ノードを実行することができ、実行には、外部リソースに関連するプログラム処置を遂行するステップを含めることができる。実行可能リソースは、以下に限らないが、実行コード、アプリケーションプログラミングインタフェースAPIなどを含めた、実行可能エンティティとすることが可能な外部リソースとすることができる。実行コードには、以下に限らないが、JAVA、C、実用データ取得レポート作成言語PERL:PracticalExtractionandReportingLanguageなどを含めることができる。ステップ125において、反射ノードは、メッセージフローの構造、実行、もしくはパフォーマンスまたはこれらの組み合わせを評価することができる。構造の評価には、以下に限らないが、構造の改善もしくは最適化またはその両方を判定するための従来式もしくは独自式またはその両方式の分析を含めることができる。メッセージフローの評価には、以下に限らないが、実行接続の検査、ノードの作動状況などを含めることができる。メッセージフローのパフォーマンスの評価には、以下に限らないが、評価指標の収集、実行評価指標の分析などを含めることができる。ステップ130において、メッセージフローの評価が、フローが最適化されていないことを示した場合、方法はステップ135に進み、示さない場合はステップ105に戻る。ステップ135で、パフォーマンスを改善するため、ランタイム中にメッセージフローを構造的に修正することができる。一つの実施形態において、メッセージフローを自動的に修正し再展開することができる。ステップ140で、随意的に構造的な修正を記録することができる。メッセージフローの修正は、元のメッセージフロー構造、差分などとして記録することができる。修正について、監査し変更歴を追跡することなどが可能なようにできる。ステップ145において、構造的な修正から最適化フローを生成することができる。動作可能性を確実にするため、この最適化フローに、一貫性テスト、構文テストなどを課すことができる。一例において、最適化フローの生成に応じて、自動的にテストを実施することができる。別の例では、テストは、メッセージフローソフトウエアツールを使って手動で実施することができる。ステップ147において、ランタイム中に、識別されたメッセージフローを最適化フローに置き換えることができる。一例において、選択されたメッセージフロー構造を、リアルタイムで動的に修正し使用することができる。この例において、メッセージフローは、自動的に変更し再展開することができる。この例の一つの構成において、メッセージフローのランタイム状態を維持しながらメッセージ処理状態を存続させることができる。ステップ150において、さらなる処理対象のメッセージフローがある場合、方法はステップ105に戻り、ない場合はステップ155に進む。ステップ155でこの方法を終了することができる。本明細書に提示する図面は、例示目的のためだけのものであって、いかなる点においても、本発明を限定すると解釈すべきではない。複数のメッセージフローに対して同時に方法100を実施することができる。すなわち、メッセージフローの最適化は、並行して実施することができ、改善の迅速な達成を可能にする。一つの実施形態において、方法100は反復的に実行することができ、メッセージフローが、環境要件もしくは変化またはその両方に応じて継続的に最適化されることを可能にする。図2は、本明細書で開示する本発明アレンジメントの実施形態による、ランタイム中のメッセージフローのプログラムによる修正の一組のシナリオ210、260を示す概略図である。シナリオ210、260は、方法100との関連において設定することができる。シナリオ210において、メッセージキューもしくはメッセージブローカ例えば、フローエンジン250またはその両方の中のメッセージフロー209をプログラムによって修正することができる。メッセージフロー209の構造は、一つ以上のイベントに応じ、ランタイム中に変更することができる。イベントには、自動トリガ、および手動によるトリガ処置を含めることができる。シナリオ210において、フロー209の構造の修正には、ノード230、231および接続路224、225の付加を含めることができる。シナリオ210において、メッセージフロー209は、有向グラフ209として視覚的に表現できることを理解すべきである。メッセージフロー209は、メッセージフローエディタのインタフェース例、インタフェース344内に視覚的に提示することができる。このシナリオにおいて、ノード211~216、230、231は、図形アイコンとして表現することができる。メッセージフロー接続路例、経路は有向線220~226で表すことができる。破線224~226は、ノード216の実行から得られた、動的に挿入された接続路を表すことができる。点線222は、ノード216の実行から生じた、ノード212~214間の削除された接続路を表すことができる。シナリオ210において、メッセージフロー209には、接続路220~223を介してリンクされたノード211~216を含めることができる。フロー209内にノード215、216を設定することができ、これらを接続路223によって結合することができる。ノード215、216は、ノード216に関連付けられた実行コードを介して、フロー209の定期的評価をトリガすることができる。フロー209は、必要なとき例、パフォーマンス問題時ランタイム中に構造的に修正することができる。このシナリオにおいて、フロー209は、ノード230~231および接続路224~226の付加を介して修正することができる。接続路222を除去して、ノード230および接続路224、225を介してノード212から214をリンクする新規のメッセージフロー接続路を生成することができる。すなわち、新規経路例、接続路224および225を生成することができる。接続路226を介して、ノード230、231をリンクすることができ、これによりノード230は複数の接続に対応することができる。ノード230の選択は、ターミナル構成例、入力端もしくは出力端またはその両方に基づいて行うことができる。ノード選択の基準には、以下に限らないが、インプット/アウトプット量、処理能力などを含めることができる。一つの実施形態において、ノード連結は、自動的に検証され、メッセージフローの動作可能性を確実にすることができる。一例において、別途の連結を実施し、フロー209に対するロバストな改善を可能にすることができる。この例において、ノードの別のアウトプットを識別することができ、このノードから別の適切なノードへのリンクを確立することができる。一例において、ノード215は、定期的にノード216の実行を駆動する、タイムアウトノードとすることができる。この例において、ノード215のタイムアウト値は、自動で、もしくは手動で、またはその両方によって設定された値とすることができる。一例において、ノード216は、アプリケーションプログラミングインタフェースAPIに関連付けられた動的フロー更新ノードとすることができる。この例において、ノード216は、JAVARのAPI機能を実行でき、メッセージフロー209の構造的な修正を可能にする。一つの実施形態において、ノード挿入には、フロー209内へのJAVARCOMPUTEノードの付加を含めることができる。シナリオ260において、フローエンジン250は、メッセージフロー240の反復的改善の実現を可能にすることができる。フローエンジン250は、メッセージングアーキテクチャに関連付けられたメッセージブローカのコンポーネントとすることができる。メッセージフロー240は、リアルタイムの評価指標244を用いて継続的に改善することができる。シナリオ260において、収集された評価指標244は、メッセージフロー240の最適化を駆動するためのインプットパラメータとして用いることができる。評価指標244には、以下に限らないが、スループット、個別ノードのパフォーマンス、経路パフォーマンス、諸評価指標、フローレスポンス時間などを含めることができる。評価指標244は、エンジン250、記録リソース、外部プログラムなどから収集することができる。フローエンジン250は、インプットとしてメッセージフロー240を受信することができる。エンジン250は、評価指標を用いて適切な構造変更を決めることができる。例えば、メッセージフロー経路が閾値を下回る実施状況のとき、エンジン250は、プログラムによって再構築を実行することができる。メッセージフロー240の変更を、エンジン250からのアウトプットとして保持し、これを最適化フロー242とすることができる。最適化フロー242は、メッセージフロー240とは構造的に異なるメッセージフローとすることができる。フロー242は、評価指標244に応じてリアルタイムで生成することができる。一例において、フロー242は、展開の前にテストし、パフォーマンスの変化特性を判定することができる。この例において、フロー242のパフォーマンスがメッセージフロー240を上回れば、メッセージフロー242を展開することができる。本明細書に提示する図面は、例示目的のためだけのものであって、いかなる点においても、本発明を限定すると解釈すべきではない。一例において、シナリオ210は、異なるメッセージフローの修正を可能にすることができる。この例において、メッセージフロー209は、反射ノードを異なるメッセージフロー中に挿入し、その異なるメッセージフローが自己修正を遂行するのを可能にすることができる。図3は、本明細書で開示する本発明アレンジメントの実施形態による、ランタイム中のメッセージフローのプログラムによる修正のためのシステム300を示す概略図である。システム300は、方法100およびシナリオ210、260との関連において設定することができる。システム300において、フローエンジン320は、反射ノード336の実行を可能にし、メッセージフロー332がランタイム中に構造的に修正されるようにすることができる。エンジン320は、サーバ310のコンポーネントとすることができ、該サーバはネットワーク380を介して通信可能にアプリケーションサーバ350に連結することができる。アプリケーション352は、メッセージ362を処理のためメッセージキュー330に伝送することができる。メッセージフロー332は、メッセージ362を処理例、プロトコルの変換してメッセージ360を生成することができる。ブローカサーバ310は、メッセージ362、360の送受信が可能なハードウエア/ソフトウエアコンポーネントとすることができる。サーバ310には、以下に限らないが、フローエンジン320、メッセージキュー330、メッセージフロー332、ノードライブラリ370、データストア340、インタフェース344などを含めることができる。サーバ310の機能には、以下に限らないが、メッセージ変換、メッセージ妥当性確認、メッセージ転換、メッセージ経路設定などを含めることができる。一例において、サーバ310は、IBMIBM社の登録商標WEBSPHEREMESSAGEBROKERのコンポーネントとすることができる。すなわち、サーバ310は、エンタープライズサービスバスのコンポーネントとすることができる。フローエンジン320は、ランタイム中にメッセージフロー332を変更するためのハードウエア/ソフトウエアコンポーネントとすることができる。フローエンジン320には、以下に限らないが、分析エンジン322、フローマニピュレータ324、監査マネージャ326、構成設定328などを含めることができる。フローエンジン320の機能には、以下に限らないが、フロー操作、フロー分析、フロー妥当性確認、エラー処理、フロー/メッセージのセキュリティなどを含めることができる。一例において、フローエンジン320は、分散コンピューティング環境内のネットワークエレメントとすることができる。分析エンジン322は、メッセージフロー332のパフォーマンスの査定が可能なハードウエア/ソフトウエアエンティティとすることができる。エンジン322の機能には、以下に限らないが、評価指標収集、フロー332の分析などを含めることができる。エンジン322は、フロー332もしくは最適化フローまたはその両方に対するフロー分析を行うことができる。一例において、エンジン322は、ネットワークコンピューティング環境に関連付けられた外部コンポーネントとすることができる。フローマニピュレータ324は、ランタイム中に、一つ以上の条件に対応してフロー332を調整することが可能なハードウエア/ソフトウエアコンポーネントとすることができる。マニピュレータの機能には、以下に限らないが、ノード操作、接続路調整などを含めることができる。ノード操作には、以下に限らないが、ノードの挿入、変更、および削除を含めることができる。接続路調整には、以下に限らないが、接続路の追加、調整および除去を含めることができる。一例において、マニピュレータ324は、ノードの挿入が必要なとき、ノードライブラリ370からノード372を選択することができる。この例において、事前設定されたノード372をメッセージフロー332中に挿入することができる。監査マネージャ326は、メッセージフロー332の変更の追跡が可能なハードウエア/ソフトウエアエンティティとすることができる。マネージャ326の機能には、以下に限らないが、記録、監査報告作成、変更履歴などを含めることができる。マネージャ326の追跡には、ノードレベル追跡、フロー改訂追跡などを含めることができる。一例において、マネージャ326は、メッセージフロー332の変更の取り消しをさせることができる。構成設定328は、エンジン320の動作を制御するための設定の収集とすることができる。構成設定328には、以下に限らないが、ノード識別値、メッセージフロー識別、実行コード識別子、パラメータ、評価指標設定、セキュリティ設定、ビジネスルールなどを含めることができる。一つの実施形態において、構成設定328は、反射ノード336を実行コードにリンク可能にすることができる。例えば、設定329は、反射ノード例、Ref_Aを、実行コード例、Exe_Aとパラメータのセット例、Param_Aとに関連付け可能にすることができる。メッセージキュー330は、メッセージ362もしくはメッセージ360またはその両方を一時的に保持することが可能なプログラムキューとすることができる。キュー330は、メッセージ362を受信し、メッセージフロー332による処理のため格納しておくことができる。キュー330は、メッセージブローカに関連付けられたキュー330とすることができる。キュー330には、以下に限らないが、スタック、キュー、ヒープなどを含めることができる。キュー330の処理順序には、以下に限らないが、後入れ先出しLIFO:LastInFirstOut、先入れ先出しFIFO:FirstInFirstOutなどを含めることができる。メッセージフロー332は、メッセージ360、362を処理可能なソフトウエア構造体とすることができる。メッセージフロー332には、以下に限らないが、ノード334、反射ノード336などを含めることができる。メッセージフロー332のロジックには、以下に限らないが、拡張構造化クエリー言語ESQL:ExtendedStructuredQueryLanguage、JAVA、変換用拡張スタイルシート言語XSLT:ExtensibleStylesheetLanguageforTransformationsなどを含めることができる。ノードライブラリ370は、ノード372を格納するためのソフトウエアアーチファクトとすることができ、ランタイム中にメッセージフロー332を動的に修正するためこのノードを用いることができる。ノード372には、以下に限らないが、事前定義ノード例、フィルタノードユーザ定義ノードなどを含めることができる。ライブラリ370は、自動で、もしくは手動で、またはその両方で投入することができる。一例において、ライブラリは、データストア340もしくは外部のリポジトリまたはその両方に格納することができる。データストア340は、実行コード342を保持する能力のあるハードウエア/ソフトウエアエンティティとすることができる。データストア340には、以下に限らないが、ストレージエリアネットワークSAN:StorageAreaNetwork、ネットワーク接続ストレージNASNetworkAttachedStrageなどを含めることができる。データストア340には、以下に限らないが、リレーショナルデータベース管理システムRDMS:RelationalDatabaseManagementSystem、オブジェクト指向データベース管理システムOODBMS:ObjectOrientedDatabaseManagementSystemなどを含めることができる。実行コード342は、メッセージフロー332を動的に修正することが可能なプログラムリソースとすることができる。コード342は、プログラム命令、バイナリコードなどとして格納することができる。コード342は、諸許可、アクセス制御リストACL:accesscontrollist、諸設定などに関連付けることができる。一例において、コード342は、データストア340内に格納することができる。この例において、コード342は、データベース構造例、テーブル内に格納することが可能である。インタフェース344は、システム300内のリソースを設定するためのユーザインタフェースとすることができる。インタフェース344は、構成設定328、メッセージ360、362、メッセージフロー332、反射ノード336の提示もしくは修正またはその両方を可能にすることができる。一例において、インタフェース344は、IBMIBM社の登録商標WEBSPHEREBROKERメッセージフローエディタに関連付けることができる。この例において、インタフェース344は、IBMIBM社の登録商標WEBSPHEREMESSAGEBROKERSEXPLORERソフトウエアとすることができる。インタフェースは、グラフィカルユーザインタフェース、音声ユーザインタフェース、テキストベースユーザインタフェース、混合モードインタフェースなどにすることができる。アプリケーションサーバ350は、アプリケーション352を実行するためのハードウエア/ソフトウエアプラットフォームとすることができる。サーバ350には、以下に限らないが、アプリケーション352、メッセージキュー図示せず、構成設定などを含めることができる。サーバ350は、従来方式もしくは独自方式またはその両方の実行環境とすることができる。一例において、サーバ350は、IBMIBM社の登録商標WEBSPHEREAPPLICATIONSERVERにすることができる。ネットワーク380は、リアルタイムまたはほぼリアルタイムで、システム300のコンポーネント群を通信可能にリンクするためのハードウエア/ソフトウエアエンティティとすることができる。ネットワーク380には、以下に限らないが、有線技術、無線技術などを含めることができる。ネットワーク300は、以下に限らないが、ローカルエリアネットワークLAN:LocalAreaNetwork、広域ネットワークWAN:WideAreaNetwork、都市規模ネットワークMAN:MetropolitanAreaNetworkなどとすることができる。本明細書に提示する図面は、例示目的のためだけのものであって、いかなる点においても、本発明を限定すると解釈すべきではない。サーバ310は、分散コンピューティング環境、ネットワークコンピューティング環境、クラウドコンピューティング環境などのコンポーネントとすることができる。システム300のアーキテクチャには、出版/購読モデル、分散方式出版/購読モデルを含めることができる。一例において、サーバ310の機能をウェブで使用可能なサービスの一部にすることができる。システム300は、以下に限らないが、シンプルオブジェクトアクセスプロトコルSOAP:SimpleObjectAccessProtocol、伝送制御プロトコルTCP:TransportControlProtocol、インターネットプロトコルIP:InternetProtocol、ハイパーテキスト転送プロトコル、拡張マークアップ言語遠隔手続き呼び出しXML-RPC:ExtensibleMarkupLanguageRemoteProcedureCallなどを含む一つ以上のプロトコルへの関連付けが可能なことをよく理解すべきである。図1~3中のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータプログラムの可能な実装のアーキテクチャ、機能、およびオペレーションを例示している。この点について、フローチャートまたはブロック図中の各ブロックは、特定の論理機能群を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図に記載された順序を外れて行われることがあり得ることにも留意すべきである。例えば、連続して示された2つのブロックが、実際にはほぼ同時に実行されることがあり、関与する機能によっては、時にこれらブロックが逆の順序で実行されることもあり得る。また、ブロック図もしくはフローチャート説明図またはその両方の各ブロック、およびブロック図もしくはフローチャート説明図またはその両方中のブロックの組み合わせは、特定の機能または処置を実施する特殊用途のハードウエアベースのシステム、または特殊用途のハードウエアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。