(57)【特許請求の範囲】
【請求項１】
トランザクションミドルウェアマシン環境においてデータペイロードの収集をサポートするための方法であって、前記トランザクションミドルウェアマシン環境のミドルウェアマシンは、分散トランザクション処理環境のノードであり、前記方法は、
前記分散トランザクション処理環境の前記ミドルウェアマシンにおいて、前記ミドルウェアマシン上で実行されるトランザクションプロセスを監視するためのデータ収集エンジンを含む監視フレームワークを提供するステップと、
前記監視フレームワークのプラグインを用いて、前記トランザクションプロセスによって処理されたトランザクションプロシージャデータを取得するステップと、
前記プラグインを用いて、前記トランザクションプロシージャデータを自己記述フォーマットで前記ミドルウェアマシンのバッファに書き込むステップとを含み、
前記自己記述フォーマットは、フィルタ情報を保持し、
前記自己記述フォーマットは、ヘッダと、データプールと、名前プールとを含み、
前記名前プールは、整数値を保持するnamelenブロックと、文字列値をそれぞれ保持する１つ以上の名前ブロックとを含み、前記namelenブロックに保持された前記整数値は、前記１つ以上の名前ブロック内の前記文字列値のサイズを表し、
前記データプールは、項目ブロック内のユーザペイロードデータを含み、
前記方法は、前記分散トランザクション処理環境の前記ミドルウェアマシンを用いて、前記自己記述フォーマットに保持された前記フィルタ情報に基づいて、アプリケーションで使用される前記ユーザペイロードデータをフィルタ処理するステップをさらに含み、前記アプリケーションは、前記フィルタ処理されたユーザペイロードデータのみを必要とするアプリケーションである、方法。
【請求項２】
前記ミドルウェアマシンは、Tuxedoノードであり、
前記トランザクションプロセスは、Tuxedoプロセスであり、
前記プラグインは、Tuxedoシステムおよびアプリケーションモニタ（TSAM）Plusプラグインであり、
前記バッファは、リングバッファである、請求項１に記載の方法。
【請求項３】
各項目ブロックは、整数識別子を含む項目識別子ブロックと、項目種類に依存する整数を含む項目サイズブロックと、項目値とを含む、請求項１または２に記載の方法。
【請求項４】
前記ヘッダは、前記ユーザペイロードデータが破損しているか否かを判定するために使用される固定値を保持するためのブロックと、Tuxedoデータ種類を識別するためのブロックと、Tuxedoサブデータ種類を識別するためのブロックとを含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記ユーザペイロードデータが破損しているか否かを判定するために使用される前記固定値は、１６進値0x2BEAである、請求項４に記載の方法。
【請求項６】
前記１つ以上の項目ブロックの各々は、
項目種類ブロックと項目索引ブロックとを有する識別ブロックと、
整数として表される項目サイズブロックと、
項目値ブロックとを含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記フィルタ情報は、ユーザによって提供される、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
トランザクションミドルウェアマシン環境においてデータペイロードの収集をサポートするためのシステムであって、
１つ以上のマイクロプロセッサと、
ミドルウェアマシン環境のミドルウェアマシンとを備え、前記ミドルウェアマシンは、前記１つ以上のマイクロプロセッサ上で動作し、前記ミドルウェアマシンは、分散トランザクション処理環境のノードであり、前記ミドルウェアマシンは、
前記分散トランザクション処理環境の前記ミドルウェアマシンにおいて、前記ミドルウェアマシン上で実行されるトランザクションプロセスを監視するためのデータ収集エンジンを含む監視フレームワークを実行するステップと、
前記監視フレームワークのプラグインを用いて、前記トランザクションプロセスによって処理されたトランザクションプロシージャデータを取得するステップと、
前記プラグインを用いて、前記トランザクションプロシージャデータを自己記述フォーマットで前記ミドルウェアマシンのバッファに書き込むステップとを実行するように動作し、
前記自己記述フォーマットは、フィルタ情報を保持し、
前記自己記述フォーマットは、ヘッダと、データプールと、名前プールとを含み、
前記名前プールは、整数値を保持するnamelenブロックと、文字列値をそれぞれ保持する１つ以上の名前ブロックとを含み、前記namelenブロックに保持された前記整数値は、前記１つ以上の名前ブロック内の前記文字列値のサイズを表し、
前記データプールは、項目ブロック内のユーザペイロードデータを含み、
前記ミドルウェアマシンは、前記分散トランザクション処理環境の前記ミドルウェアマシンを用いて、前記自己記述フォーマットに保持された前記フィルタ情報に基づいて、アプリケーションで使用される前記ユーザペイロードデータをフィルタ処理するステップを実行するようにさらに動作し、前記アプリケーションは、前記フィルタ処理されたユーザペイロードデータのみを必要とするアプリケーションである、システム。
【請求項９】
請求項１〜７のいずれか１項に記載の方法を１つ以上のマイクロプロセッサに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部は、著作権保護の対象となるものを含んでいる。著作権者は、特許商標庁の特許ファイルまたは記録に掲載された特許文書または特許開示の複製に対しては異議を唱えないが、その他の場合、全ての著作権を留保する。
【０００２】
発明の分野
本開示は、一般にコンピュータシステムに関し、特にトランザクション処理環境に関する。
【背景技術】
【０００３】
背景
Tuxedoアプリケーションと共に動作する従来のメカニズムは、サービスデータおよびコールパスデータを含むアプリケーション情報を取得することができる。しかしながら、ユーザのペイロードデータを取得するメカニズムおよび所望のユーザペイロードデータを保持することができる自己記述型データフォーマットが望まれている。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
Tuxedoペイロードデータなどのペイロードデータおよびフィルタ情報を保持することができる自己記述型データフォーマットを提供する。このデータフォーマットによって、STRING、CARRAY、MBSTRING、VIEW、VIEW32、FMLおよびFML32などのTuxedo型バッファの一部または全てを表現することが可能である。このデータフォーマットは、ネスティングおよびエラー検査をサポートすることができる。ユーザペイロードデータの収集によって、クライアントは、ペイロードデータと共に追加情報を伝送する必要なく、ビジネスインテリジェンス（ＢＩ）アプリケーションなどのアプリケーションに使用されるユーザデータを抽出（siphon off）することができる。
【図面の簡単な説明】
【０００５】
【図１】トランザクションミドルウェア環境内のTSAM Plusを例示する図である。
【図２】一実施形態に従って、ペイロードデータの収集を例示する図である。
【図３】一実施形態に従って、ペイロードデータの収集を例示する図である。
【図４】本発明の一実施形態に従って、統合データフォーマットを例示する図である。
【図５】トランザクション処理環境におけるペイロードデータの収集をサポートするための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【０００６】
詳細な説明
本発明は、限定ではなく例示として添付の図面に示される。添付図面の図において、同様の参照符号が類似する要素を示す。なお、本開示において、一実施形態、１つの実施形態またはいくつかの実施形態の言及は、必ずしも同一の実施形態に限定されず、少なくとも１つの実施形態を意味する。特定の実現例を説明する場合、これらの特定の実現例は、例示のみの目的で提供されていることを理解すべきである。当業者なら、本発明の範囲および精神から逸脱することなく、他の要素および構成を使用できることを理解するであろう。
【０００７】
以下の本発明の説明は、トランザクションミドルウェアマシン環境の例として、Tuxedo環境を使用する。制限することなく、他の種類のトランザクションミドルウェアマシン環境を使用できることは、当業者にとって明らかであろう。
【０００８】
場合によって、本発明の完全な説明を提供するように、多くの具体的な詳細を記載する。しかしながら、これらの具体的な詳細がなくても、本発明を実施できることは、当業者にとって明らかであろう。また、場合によって、本発明を不明瞭にしないように、周知の特徴は、詳細に記載されない。例えば、詳細な説明において、例示として、ＸＡ分散トランザクション環境を使用する。本発明は、制限することなく、他の種類の分散トランザクション環境に適用できることは、当業者にとって明らかであろう。
【０００９】
図面および詳細な説明において、共通の参照番号を使用して同様の要素を示す。したがって、他の箇所で図示された要素を説明する場合、図面に使用されている参照番号は、必ずしもこの図面に対応する詳細な説明に記載する必要がない。
【００１０】
本開示は、トランザクション処理環境におけるペイロードデータの収集を監視および解析するためのシステムおよび方法を記載する。
【００１１】
トランザクションミドルウェア環境
トランザクションミドルウェアシステムは、迅速に用意することができ且つオンデマンドで拡張することができる大規模並列処理インメモリグリッドを含む完全なＪａｖａ（登録商標）ＥＥアプリケーションサーバ複合体を提供するために、６４ビットプロセッサ技術などの高性能ハードウェア、高性能大容量のメモリ、冗長インフィニバンド（登録商標）およびイーサネット（登録商標）ネットワーク、並びにWebLogic（登録商標）スイートなどのアプリケーションサーバまたはミドルウェア環境の組み合わせを含む。本発明のシステムは、アプリケーションサーバグリッド、ストレージエリアネットワーク、およびインフィニバンド（ＩＢ）ネットワークを形成するフルラック、ハーフラックまたはクォーターラックもしくは他の構成として展開されることができる。ミドルウェアマシンソフトウェアは、アプリケーションサーバ、ミドルウェアおよび他の機能、例えば、WebLogic Server、JRockitまたはHotspot JVM、Oracle（登録商標）Linux（登録商標）またはSolaris、およびOracle（登録商標）VMを提供することができる。本発明のシステムは、ＩＢネットワークを介して互いに通信する複数の計算ノード、ＩＢスイッチゲートウェイ、およびストレージノードまたはストレージユニットを含むことができる。ラック構成として実装される場合、ラックの未使用部分は、空のままにしてもよく、詰め物で充填されてもよい。
【００１２】
例えば、「Sun Oracle Exalogic」または「Exalogic」などのシステムにおいて、本発明のシステムは、Oracle（登録商標）ミドルウェアＳＷスイートまたはWebLogicなどのミドルウェアまたはアプリケーションサーバソフトウェアをホストするために、展開容易な解決案である。本開示に説明するように、トランザクションミドルウェアシステムは、ミドルウェアアプリケーションをホストするために必要とされる１つ以上のサーバ、ストレージユニット、ストレージネットワーク用のＩＢファブリック、および全ての他の要素を含む「グリッドボックス」（grid in a box）である。例えば、共有キャッシュアーキテクチャを備えるクラスタデータベースであり且つクラウドアーキテクチャの構成要素であり得るOracleリアルアプリケーションクラスタ（ＲＡＣ）エンタープライズデータベースおよびExalogicオープンストレージを使用する大規模並列グリッドアーキテクチャを活用することによって、全ての種類のミドルウェアアプリケーションに高性能を提供することができる。このシステムは、線形Ｉ／Ｏ拡張性によって改善した性能を提供し、使用および管理が簡単であり、ミッションクリティカルな可用性および信頼性を提供する。
【００１３】
本発明の一実施形態によれば、Tuxedoシステムのようなトランザクションミドルウェアシステムは、複数のプロセッサを備える高速マシン、例えばExalogicミドルウェアマシン、および高性能ネットワーク接続、例えばインフィニバンド（ＩＢ）ネットワークを利用することができる。
【００１４】
Oracle（登録商標）Tuxedoシステムは、高性能分散型ビジネスアプリケーションの構築、実行および管理を可能にするソフトウェアモジュールのセットであり、トランザクションミドルウェアとして多くの複層アプリケーション開発ツールに使用されている。Tuxedoは、分散トランザクション処理を管理するために、分散コンピューティング環境に使用することができるミドルウェアプラットフォームである。Tuxedoは、無制限の拡張性および標準ベースの相互運用性を提供しながら、エンタープライズレガシーアプリケーションのロックを解除し、エンタープライズレガシーアプリケーションをサービス指向型アーキテクチャに拡張するための有効なプラットフォームである。
【００１５】
また、Tuxedoは、リクエスト、イベント、システムプロセス間のアプリケーションキュー、およびアプリケーションサービスを効率的にルーティングする、配布するおよび管理するためのサービス指向型インフラストラクチャを提供する。Tuxedoは、事実上無制限に拡張できるため、ピークトランザクションボリュームを効率的に管理することによって、ビジネスの機敏性を向上させ、ＩＴ組織がビジネスの需要および処理量の変化に迅速に対応できるようにする。Oracle（登録商標）Tuxedoは、アクセスプロトコルに関係なく、複数のデータベース間のトランザクションを最適化し、全ての加入リソースの間のデータ整合性を保証する。このシステムは、トランザクション加入者を追跡し、拡張コミットプロトコルを監督することによって、全てのトランザクションコミットおよびロールバックを適切に処理することを保証する。
【００１６】
さらに、Oracle（登録商標）Tuxedoシステムは、２フェイスコミット（２ＰＣ）処理をサポートするためのＸＡ標準、X/Open（登録商標）ATMI API、X/Open（登録商標）「分散トランザクション処理：ＴＸ（トランザクション境界設定）仕様」、および言語国際化を行うためのX/Open（登録商標）移植性ガイド（ＸＰＧ）標準を含むオープングループのX/Open（登録商標）標準に準拠することができる。トランザクションアプリケーションサーバは、ＸＡ標準を使用する場合、ＸＡサーバとして呼ばれてもよい。例えば、Tuxedoグループに属する各Tuxedoアプリケーションサーバは、OPENINFO属性を使用する構成することができる。Tuxedoグループ内の全てのＸＡサーバは、OPENINFO属性を使用して、リソースマネージャ（ＲＭ）との接続を形成することができる。
【００１７】
TSAM Plus
Oracle Tuxedoは、ミッションクリティカル（mission-critical）アプリケーションを開発および使用する企業に広く使用されている。Tuxedoは、分散コンピューティング環境内のインフラストラクチャレイヤとして機能することができる。Oracle Tuxedoとその上で実行するアプリケーションの複雑性によって、性能の測定が非常に複雑である。
【００１８】
Oracle Tuxedoシステムおよびアプリケーションモニタプラス（TSAM Plus：Tuxedo System and Applications Monitor Plus）は、Oracle Tuxedoシステムおよびアプリケーションを包括的に監視および報告することができる。Oracle TSAM Plusは、３つの構成要素、すなわち、Oracle TSAM Plusエージェント、Oracle TSAM Plusマネージャ、およびOracle Tuxedoエンタープライズマネージャを含む。
【００１９】
Oracle TSAM Plusエージェントは、（コールパス、トランザクション、サービスおよびシステムサーバを含む）様々なアプリケーションの性能メトリクスを収集することができる。Oracle TSAM Plusマネージャは、１つ以上のTuxedoドメインから収集された性能メトリクスを相関させ、集計するためのユーザグラフィカルインターフェイスを提供することができる。TSAM Plusは、この情報をリアルタイムで対話的に表示することができる。Oracle Tuxedoエンタープライズマネージャは、Oracle Tuxedoエンタープライズマネージャを用いてTuxedoの管理および監視を統合することによって、他のOracle製品と同様のコンソールから、Tuxedoインフラストラクチャおよびアプリケーションを監視および管理することができる。
【００２０】
例えば、TSAM Plusは、広く配置されたTuxedoフレームワークに関する様々な情報を提供することができる。これらの情報は、ＡＴＭＩ（Application-to-Transaction Monitor Interface）リクエストの端末間の実行時間、ハングコール（hung calls）、特定の期間中に失敗したサービスの数、特定の期間中にドメインのゲートウェイを通過したリクエストの数、ＸＡトランザクション内の全ての参加者の現在状況を含むがこれらに限定されない。
【００２１】
TSAM Plusにより提供されたこれらの情報によって、ユーザは、障害を容易に特定し、問題の解決を促進することができる。Oracle TSAM Plusは、性能の調整および能力の計画に支援することもできる。
【００２２】
図１は、トランザクションミドルウェア環境１００内のTSAM Plusを例示する図である。
【００２３】
トランザクションミドルウェア環境１００において、TSAM Plusマネージャ１２０は、Webコンテナ１２２を含み、Webコンテナ１２２は、TSAM Plusコンソール１２４およびTSAM Plusデータサーバ１２６を含むことができる。また、TSAM Plusマネージャは、データベース１２８を含むことができる。TSAM Plusコンソールは、ブラウザ／クライアント１１０と情報を交換することができる。
【００２４】
同様に、トランザクションミドルウェア環境内に、１つ以上のTuxedoノード１３０および１４０を設けることができる。Tuxedoノード１３０および１４０は、ローカル監視サービス（ＬＭＳ：Local Monitor Service）１３２および１４２と、Tuxedoプロセス１３４および１４４とを各々含むことができる。Tuxedoプロセス１３４および１４４は、フレームワーク１３６および１４６（例えば、TSAM Plusフレームワーク）を各々含むことができる。フレームワーク１３６および１４６は、プラグイン１３８および１４８を各々含むことができる。
【００２５】
一実施形態によれば、フレームワーク１３６および１４６の各々は、データ収集エンジンを含む。このフレームワークは、Tuxedoインフラストラクチャと他のTSAM Plusコンポーネントとの間で動作する独立レイヤであってもよい。フレームワークモジュールは、実行時メトリクスの収集、アラートの評価、およびポリシー実施の監視を行うことができる。
【００２６】
一実施形態によれば、プラグイン１３８および１４８の各々は、TSAM Plusプラグインを含むことができ、このTSAM Plusプラグインは、Oracle TSAM Plusフレームワークによって呼び出される拡張可能なメカニズムであってもよい。Oracle TSAM Plusエージェントは、データをＬＭＳ（Local Monitor Server）に送信した後、Oracle TSAM Plusマネージャに送信するためのデフォルトプラグインを提供することができる。このプラグインによって、カスタムプラグインがフックされ、メトリクスをインターセプトすることができる。デフォルトプラグインは、共有メモリを使用してＬＭＳと通信する。アプリケーションは、メトリクス収集ポイントではブロックされない。ユーザ／クライアントは、追加のデータ処理を行うために、カスタムプラグインを開発することができる。カスタムプラグインは、既存のプラグインチェーンに接続することができ、デフォルトプラグインを置き換えることもできる。
【００２７】
一実施形態によれば、ローカル監視サービス１３２および１４２の各々は、Oracle Tuxedoシステムサーバを含むことができる。Oracle TSAM Plusのデフォルトプラグインは、データをＬＭＳに送信する。ＬＭＳは、ＨＴＴＰプロトコルで、このデータをOracle TSAM Plusマネージャに伝送することができる。ノードを監視する必要がある場合に、各TuxedoマシンにＬＭＳを設けることができる。
【００２８】
上述したように、Oracle TSAM Plusは、３つの構成要素、すなわち、Oracle TSAM Plusエージェント、Oracle TSAM Plusマネージャ、およびOracle Tuxedoエンタープライズマネージャを含む。Oracle TSAM Plusエージェントは、Tuxedo側でデータ収集を行うことができる。Oracle TSAM Plusマネージャは、データの格納、集約、計算および表現を行うことができる。Oracle Tuxedoエンタープライズマネージャは、Tuxedoの監視および管理を行うプラグインである。
【００２９】
一実施形態によれば、TSAM Plusエージェントは、Tuxedo側のバックエンドロジックを処理する。TSAM Plusエージェントは、Oracle TSAM Plusマネージャと連携して動作することができ、TSAM Plusフレームワーク、TSAM Plusプラグイン、ＬＭＳおよびＪＭＸエージェントを含むことができる。
【００３０】
一実施形態によれば、TSAM Plusフレームワークは、性能メトリクスの収集動作を定義し且つ制御するOracle Tuxedo側の設備であってもよい。TSAM Plusフレームワークは、従来のTuxedoインターフェイスを使用することができ、既存のTuxedo管理スイートに簡単に統合することができる。
【００３１】
一実施形態によれば、TSAM Plusプラグインは、TSAM Plusフレームワークによって呼び出される拡張可能なメカニズムであってもよい。Oracle TSAM Plusエージェントは、データをローカル監視サーバ（ＬＭＳ）に送信した後、Oracle TSAM Plusマネージャに送信するためのデフォルトプラグインを提供することができる。デフォルトプラグインは、イベントトリガーを追加的に確認することができ、呼び出されたときにイベントを生成することができる。
【００３２】
例えば、ユーザは、追加のデータ処理を行うために、プラグインを開発／カスタマイズすることができる。カスタマイズされたプラグインは、既存のプラグインチェーンに接続することができ、デフォルトプラグインを置き換えることもできる。
【００３３】
一実施形態によれば、ローカル監視サーバ（ＬＭＳ）は、Oracle Tuxedoシステムサーバであってもよい。Oracle TSAM Plusのデフォルトプラグインは、ＬＭＳにデータを送信することができる。その後、ＬＭＳは、このデータをメッセージ形式でOracle TSAM Plusマネージャに伝送することができる。
【００３４】
一実施形態によれば、ＪＭＸエージェントは、Oracle Tuxedoエンタープライズマネージャと連携して動作することができ、ＪＭＸインターフェイスを介して、さらにOracle Tuxedoエンタープライズマネージャクラウドコントロール１２ｃを介して、Oracle Tuxedoアプリケーションを監視および管理することができる。
【００３５】
一実施形態によれば、TSAM Plusマネージャは、Oracle TSAM Plusのデータ操作および表現要素であってもよく、Ｊ２ＥＥアプリケーションであってもよい。TSAM Plusマネージャは、性能メトリクス、設定情報およびその他のユーティリティメッセージを取得するために、Oracle TSAM Plusエージェントと通信することができる。さらに、TSAM Plusマネージャは、Oracle TSAM Plusの運営、監視データの表示およびアラートの管理を行うためのWebコンソールを提供することができる。
【００３６】
独立型TSAM Plusによるユーザペイロードの収集
上述したように、TSAM Plusは、サービス監視およびコールパス監視の一部として、ドメイン内のトランザクション（サービス）データを取得するために必要なインフラストラクチャの多くを既に備えている。しかしながら、ユーザペイロードの収集を追加することによって、理想的にアプリケーションを変更する必要なく、ビジネスインテリジェンスアプリケーションなどのアプリケーションに使用されるユーザデータを抽出することができる。ＢＩの一部として実施されるいくつかの種類の解析は、（新規顧客の獲得、例えば人口統計による債権の未払い日数、顧客サポートの保留時間などのビジネス目標に対する企業の能力を監視／解析するための）エンタープライズ性能マネジメント（ＥＰＭ）、（多次元解析クエリ、統合、ドリルダウン、２次元以上の情報のスライシングおよびダイシングを行うための）オンライン解析処理（ＯＬＡＰ）、（一般的に大規模なデータソースからパターンを探し出すための）データマイニングを含む。
【００３７】
Tuxedoアプリケーションにおいて、ユーザデータのフォーマットは、Tuxedo型バッファと呼ばれる。Tuxedo型バッファは、STRING、CARRAY、MBSTRING、VIEW、VIEW32、FMLおよびFML32を含むいくつかの種類を有する。データ変換を行わない（すなわち、データを元のフォーマットで格納する）場合に、多くの制限がある。これらの制限を回避する方法の１つは、ファストデータ（FAST DATA）などのデータフォーマットを利用することである。ファストデータは、Tuxedoペイロードデータおよびフィルタ情報の両方を保持することができる。ファストデータは、単純または複雑なTuxedo型バッファ（STRING、CARRAY、MBSTRING、VIEW、VIEW32、FMLおよびFML32）を全て表現することができる。ファストデータは、ネスティングおよびエラー検査をサポートすることができ、多くの制限を回避することができる。
【００３８】
ファストデータは、Tuxedoペイロードデータだけでなく、フィルタ情報を保持することもできる。ファストデータは、非常に強力であり、単純または複雑なTuxedo型バッファを全て表現でき、ネスティングおよびエラー検査をサポートすることもできる。
【００３９】
このデータフォーマットの場合、顧客は、記述ファイルを作成または維持する必要がない。ユーザデータを抽出する手順が非常に簡単になる。
【００４０】
図２を参照して、図２は、一実施形態に従って、ペイロードデータの収集を例示する図である。
【００４１】
図２に示すように、例示的な実施形態は、トランザクション処理環境２００、具体的にはTSAM Plusエージェント２０５に含まれているTSAM Plusプラグイン２１５と通信するTuxedoアプリケーション２１０を含むことができる。TSAM Plusエージェント２０５は、リングバッファ（ring buffer）２２０およびローカル監視サービス（ＬＭＳ）２２５をさらに含むことができる。トランザクション処理環境２００は、TSAM Plusマネージャ２３０、Hadoop２３５などのアプリケーション、およびネイティブファイル（Native File）２４０をさらに含むことができる。
【００４２】
一実施形態によれば、アプリケーションが実行されている時に、TSAM Plusプラグイン２１５は、Tuxedoアプリケーション２１０などのアプリケーションに関連するデータを取得することができる。その後、TSAM Plusプラグイン２１５は、データをリングバッファ２２０のようなバッファに書き込むことができる。リングバッファ２２０は、共有メモリであってもよい。リングバッファ２２０は、Tuxedoアプリケーション２１０から取得されたデータ、例えば、サービスデータ、コールパスデータおよびペイロードデータを記録することができる。
【００４３】
一実施形態によれば、ＬＭＳ２２５は、リングバッファから、サービスデータ、コールパスデータおよびペイロードデータを含むデータを読み取ることができる。その後、ＬＭＳは、このデータをTSAM Plusマネージャ２３０およびHadoop２３５などのアプリケーションを含む１つ以上の様々な端末に伝送することができ、またはこのデータをネイティブファイル２４０として格納することができる。
【００４４】
一実施形態によれば、Tuxedoアプリケーションから取得された全てのデータは、Tuxedoデータフォーマットに依存しない同型のフォーマットで格納されることができる。同型のデータフォーマットではない場合、顧客、例えばユーザデータ／ペイロードデータを受け取る顧客は、アプリケーション、例えばビジネスインテリジェンス（ＢＩ）アプリケーションに使用されるユーザデータ／ペイロードデータを読み取るために、ライブラリまたは拡張フィールドなどの追加情報を格納する必要がある。
【００４５】
独立型TSAM Plusによるユーザペイロードのフィルタ処理および収集
図３を参照して、図３は、一実施形態に従って、ペイロードデータの収集を例示する図である。より具体的には、図３は、ペイロードデータをフィルタ処理および取得することができる本開示の例示的な実施形態のフローチャートを示している。
【００４６】
一実施形態によれば、図３に示すように、例示的な実施形態は、トランザクション処理環境２００、具体的にはTSAM Plusエージェント２０５に含まれているTSAM Plusプラグイン２１５と通信するTuxedoアプリケーション２１０を含むことができる。TSAM Plusエージェント２０５は、リングバッファ２２０、ローカル監視サービス（ＬＭＳ）２２５、および共有メモリ３１０をさらに含むことができる。トランザクション処理環境２００は、TSAM Plusマネージャ２３０、Hadoop２３５などのアプリケーション、およびネイティブファイル（Native File）２４０をさらに含むことができる。さらに、TSAM Plusマネージャ２３０は、例えば、ユーザまたはプログラムによって定義されたフィルタ処理ポリシーなどの定義されたポリシー３０５を受信することができる。
【００４７】
一実施形態によれば、図３に示された実施形態は、ＬＭＳによってデータを伝送する前に、定義されたフィルタ処理ポリシー３０５を利用して、データをフィルタ処理することができる。ステップ１において、（例えば、クライアント／顧客によって）定義された（例えば、ユーザペイロード結果フィルタを含むことができる）ポリシーは、TSAM Plusマネージャ２３０のコンソールＧＵＩに伝送される。ステップ２において、TSAM Plusマネージャは、（ユーザペイロード結果フィルタを含む）ポリシーをＬＭＳサーバに送信することができる。このポリシーは、ＸＭＬフォーマットであってもよい。ステップ３において、ＬＭＳサーバは、（ユーザペイロード結果フィルタを含む）ポリシーを解析し、共有メモリ３１０に書き込むことができる。ステップ４において、Tuxedoサーバまたはクライアントは、共有メモリから（ユーザペイロード結果フィルタを含む）ポリシーを読み出し、ローカルメモリに格納する。ステップ５において、ユーザデータを受信すると、Tuxedoサーバまたはクライアントは、TSAM Plusプラグインを用いてユーザデータを取得し、定義したユーザペイロード結果フィルタを用いてデータをフィルタ処理することができる。フィルタ処理されたペイロードデータは、リングバッファに格納されることができる。その後、ステップ６において、ＬＭＳは、リングバッファからフィルタ処理されたペイロードデータを取得することができる。ステップ７おいて、ＬＭＳは、フィルタ処理されたペイロードデータをTSAM Plusマネージャのデータベース、Hadoopまたはネイティブファイルに伝送することができる。
【００４８】
一実施形態によれば、ペイロードポリシーにペイロード結果フィルタを指定することによって、記録する前に、ペイロードサイズを減らすことができ、またはセキュリティに関する部分を取り除くことができる。以下の表は、ユーザペイロードの結果フィルタのいくつかの例を示す。
【００４９】
【表１】
0006789243.tif 000002
【００５０】
一実施形態によれば、顧客は、ＴＳＡＭマネージャのＧＵＩコンソール上でフィルタ処理ポリシーを定義することができる。その後、ＴＳＡＭマネージャは、このポリシーをＴＳＡＭエージェントに送信することができる。換言すれば、ＬＭＳプロセスは、xmlフォーマットのポリシーを受け取る。以下は、定義されたフィルタ処理ポリシーの一例を示す。
【００５１】
【数１】
0006789243.tif 000003
【００５２】
<CARRAY>[1,2]aliasName1,[7,8]aliasName2</CARRAY>
これは、CARRAYフィルタの定義である。aliasName1は、［１，２］のエイリアス名であり、aliasName2は、［７，８］のエイリアス名である。aliasName1およびaliasName2は、ファストデータの名前プールに記録される。実際に、［１，２］および［７，８］は、フィルタである。例えば、ペイロードは、０１２３４５６７８である場合、フィルタ処理の後、１２および７８になる。さらに、この種類のファストデータのＩＤは、FLD_CARRAY<13|索引である。索引は、０から始まり、例えば０、１、２、３、４．．．．．．である。以下の例は、CARRAYによって変換され、上述したポリシーによってフィルタ処理されたファストデータの例である。
【００５３】
【数２】
0006789243.tif 000004
【００５４】
<STRING>[1,2]aliasName1, [7,8]aliasName2</STRING>
これは、STRINGフィルタの定義である。aliasName1は、［１，２］のエイリアス名であり、aliasName2は、［７，８］のエイリアス名である。aliasName1およびaliasName2は、ファストデータの名前プールに記録される。実際に、［１，２］および［７，８］は、フィルタである。例えば、ペイロードは、０１２３４５６７８である場合、フィルタ処理の後、１２および７８になる。また、この種類のファストデータのＩＤは、FLD_STRING<13|索引である。索引は、０から始まり、例えば、０、１、２、３、４．．．．．．である。以下の例は、STRINGによって変換され、上述したポリシーによってフィルタ処理されたファストデータの例である。
【００５５】
【数３】
0006789243.tif 000005
【００５６】
<MBSTRING>[1,2]aliasName1,[7,8]aliasName2</MBSTRING>
これは、MBSTRINGフィルタの定義である。aliasName1は、［１，２］のエイリアス名であり、aliasName2は、［７，８］のエイリアス名である。aliasName1およびaliasName2は、ファストデータの名前プールに記録される。実際に、［１，２］および［７，８］は、フィルタである。例えば、ペイロードが０１２３４５６７８である場合、フィルタ処理の後、１２および７８になる。さらに、この種類のファストデータのＩＤは、FLD_MBSTRING<13|索引である。索引は、０から始まり、例えば、０、１、２、３、４．．．．．．である。以下の例は、STRINGによって変換され、上述したポリシーによってフィルタ処理されたファストデータの例である。
【００５７】
【数４】
0006789243.tif 000006
【００５８】
【数５】
0006789243.tif 000007
【００５９】
これは、FMLフィルタの定義である。FIELD2およびFIELD3は、FMLフィールド名であり、ファストデータの名前プールに記録される。２４６８１および２４６８２は、FMLフィールドのＩＤである。このFMLフィールドのＩＤは、ファストデータのＩＤに変換され、ファストデータのデータプールに記録される。
【００６０】
例えば、ペイロードは、次の通りである場合、
24681  hello
24682  world
24683  how
24684  are
フィルタ処理の後、次の値を有する。
24681  hello
24682  world
２４６８１および２４６８２は、FMLフィールドのＩＤである。内部関数を用いて、このＩＤから種類名および索引を知ることができる。例えば、種類名がFLD_STRINGであって、索引が３８および３９である場合、ファストデータのＩＤに変換すると、FLD_STRING<13| 38およびFLD_STRING<13| 39になる。次のようにファストデータに変換される。
【００６１】
【数６】
0006789243.tif 000008
【００６２】
【数７】
0006789243.tif 000009
【００６３】
これは、FML32フィルタの定義である。FLD2およびFLD3は、FML32のフィールド名であり、ファストデータの名前プールに記録される。１００６６３４０６および１００６６３４０７は、FML32フィールドのＩＤであり、ファストデータのＩＤとして直接に使用されることができ、ファストデータのデータプールに記録されることができる。
【００６４】
例えば、ペイロードは、次の通りである場合、
100663406  hello
100663407  world
100663408  how
100663409  are
フィルタ処理の後、次の値を有し、
100663406  hello
100663407  world
次のようにファストデータに変換される。
【００６５】
【数８】
0006789243.tif 000010
【００６６】
【数９】
0006789243.tif 000011
【００６７】
これは、VIEWフィルタの定義である。このポリシー定義から、１つの種類のVIEWしか記録しないことが分かる。myview3は、構造体の名前であり、ファストデータのヘッダのサブ種類として記録される。field1およびfield2は、VIEWのフィールド名であり、ファストデータの名前プールに記録される。
【００６８】
例えば、１つのビューマッピングファイルのみが必要になり、その内容が次の通りである。
【００６９】
【数１０】
0006789243.tif 000012
【００７０】
このVIEWデータの値は、以下の通りであり、
１０．１
１０．２
１０．３
フィルタ処理の後、次の値を有する。
１０．１
１０．２
【００７１】
【数１１】
0006789243.tif 000013
【００７２】
これは、VIEW32フィルタの定義である。このポリシー定義から、２種類のVIEW32しか記録されないことが分かる。１つの種類は、myview3であり、もう１つの種類は、myview4である。myview3およびmyview4は、構造体名であり、ファストデータのヘッダのサブ種類として記録される。bool1、short1およびint_inner1は、VIEWのフィールド名であり、ファストデータの名前プールに記録される。
【００７３】
例えば、２つのビューマッピングファイルがあり、その内容が次の通りである。
【００７４】
【数１２】
0006789243.tif 000014
【００７５】
【数１３】
0006789243.tif 000015
【００７６】
このmyview3のVIEW32データの値は、次の通りであり、
０
１０
１０
フィルタ処理の後、次の値を有する。
０
１０
このmyview4のVIEW32データの値は、次の通りであり、
１０
フィルタ処理の後、次の値を有する。
１０
この種類のファストデータのＩＤは、FLD_***<13|索引である。索引は、０から始まり、例えば、０、１、２、３、４．．．．．．である。例えば、ペイロードは、myview3である場合、次のようにファストデータに変換される。
【００７７】
【数１４】
0006789243.tif 000016
【００７８】
ファストデータ
Tuxedoアプリケーションにおいて、ユーザデータのフォーマットは、Tuxedo型バッファと呼ばれる。Tuxedo型バッファは、STRING、CARRAY、MBSTRING、VIEW、VIEW32、FMLおよびFML32などのいくつかの種類を有する。データ変換を行い且つユーザデータの元のフォーマットを格納する場合、制限が存在する可能性がある。制限の一例として、全てのTuxedo型バッファの種類を明確にする必要があることである。換言すれば、全てのユーザデータを識別するために、種類名を格納することができる。同様に、一部のTuxedo型バッファ、例えばVIEWおよびVIEW32が自己記述型ではないため、バッファは、ビューマッピングを記述するために、ビューファイルと呼ばれる追加のビュー記述ファイルを必要とする。
【００７９】
技術的には、ビューファイルだけでは不十分である場合もある。特定のファイル種類、例えば*.hおよび*.Vファイルを変換するビューユーティリティ（viewc／viewc32コマンド）が必要とされる。
【００８０】
一実施形態によれば、*.Vファイルは、バイナリファイルであり、全てのVIEW／VIEW32フィールドの値は、このファイルに格納される。ユーザデータをVIEW／VIEW32フォーマットで格納する場合、ユーザは、ビューファイルまたは対応する*.hと*.Vファイルをもっていなければならないという制限がある。顧客は、異なるVIEW／VIEW32データフォーマットを定義することができるが、異なるビューファイル、または*.hおよび*.Vファイルが必要である。ファイルは、全てデータの外部にあり、ファイルの数も非常に大きくなる可能性がある。顧客は、手動でファイルを管理する必要があるため、データを抽出する際には便利ではない。
【００８１】
一実施形態によれば、ペイロードの取得によって生成されたデータの量が非常に大きい場合、ユーザは、記録する前にペイロードをフィルタ処理するまたは減縮することができる。例えば、STRINGデータ「Hello world」の場合、イリアス名「stringFilter」を有する［0, 4］である選択フィルタを用いてフィルタ処理した後、データは、「Hello」になる（「H」は、索引０に対応し、「o」は、索引４に対応する）。ユーザデータを元のフォーマットで保存する場合、フィルタ情報が失われる可能性がある。
【００８２】
一実施形態によれば、ファストデータとして呼ばれることができるデータフォーマットは、提供される。ファストデータは、自己記述型統合データフォーマットを提供し、全てのTuxedo型バッファを表現することができる。この統合データフォーマットにフィルタ情報を保持することによって、データのソースを追跡することができる。
【００８３】
従って、この自己記述型データフォーマットは、トランザクション手続中のTuxedoペイロードデータを保持することができ、情報をフィルタ処理することもできる。この実施形態は、単純または複雑なTuxedo型バッファ（例えば、STRING、CARRAY、MBSTRING、VIEW、VIEW32、FMLおよびFML32）を全て表現することができる。自己記述型データフォーマットは、ネスティングおよびエラー検査をサポートすることもできる。このデータフォーマットを持てば、ペイロードデータを扱うクライアントは、データを確認するために追加の記述ファイルを必要とせず、このユーザデータを抽出する手順が重要である。
【００８４】
図４は、本発明の一実施形態に従って、統合データフォーマットを例示する図である。
図４に示すように、データフォーマット４００は、ヘッダ４０１と、データプール４０２と、名前プール４０３とを含むことができる。ヘッダ４０１は、マジック４０４と、種類４０５と、サブ種類４０６とを含むことができる。データプール４０２は、データサイズ（整数）４０７と、項目４０８および４０９とを含む。名前プール４０３は、名前長４１０と、名前（文字列）４１１および４１２とを含むことができる。
【００８５】
一実施形態によれば、項目４０８は、ＩＤ４１３と、項目サイズ４１４と、項目値４１５とを含むことができる。ＩＤ４１３は、項目種類（上位７ビット）４１６と、項目索引（下位２５ビット）４１７とを含むことができる。
【００８６】
一実施形態によれば、マジック４０４は、0x2BEAという固定値を有する。マジックは、データフォーマットに関連付けられたペイロードデータが破損しているか否かの判断を支援することができる。種類４０５は、元のペイロードのTuxedoバッファの種類を特定することができ、サブ種類４０６は、元のペイロードデータのTuxedoバッファのサブ種類を特定することができる。
【００８７】
一実施形態によれば、データプール４０２は、取得できる所望のペイロードデータを含むことができる。データサイズ４０７は、データプールに含まれた全てのデータのサイズ（項目１＋項目２＋項目３．．．）であってもよい。項目４０８は、項目種類（上位７ビット）および項目索引（下位２５ビット）からなる３２ビットの識別番号であり得るＩＤ４１３を含むことができる。上位７ビットは、項目種類である。項目種類の例として、FLD_SHORT、FLD_INT、FLD_LONG、FLD_CHAR、FLD_FLOAT、FLD_DOUBLE、FLD_BOOL、FLD_UCHAR、FLD_SCHAR、FLD_UINT、FLD_ULONG、FLD_LLONG、FLD_ULLONG、FLD_LDOUBLE、FLD_DECIMAL、FLD_WCHAR、FLD_PTR、FLD_FML32、FLD_VIEW32、FLD_STRING、FLD_MBSTRING、またはFLD_CARRAYが挙げられる。下位２５ビットは、項目索引である。索引が０から始まる場合、０、１、２、３、４、５...となる。
【００８８】
一実施形態によれば、FLD_**は、マクロであり、その定義が以下の通りである。
#define FLD_SHORT  0
#define FLD_LONG  1
#define FLD_CHAR  2
#define FLD_FLOAT  3
#define FLD_DOUBLE  4
#define FLD_STRING  5
#define FLD_CARRAY  6
#define FLD_INT  7
#define FLD_DECIMAL  8
#define FLD_PTR  9
#define FLD_FML32  10
#define FLD_VIEW32  11
#define FLD_MBSTRING  12
#define FLD_FML  13
#define FLD_BOOL  14
#define FLD_UCHAR  15
#define FLD_SCHAR  16
#define FLD_WCHAR  17
#define FLD_UINT  18
#define FLD_ULONG  19
#define FLD_LLONG  20
#define FLD_ULLONG  21
#define FLD_LDOUBLE  22
#define FLD_USHORT  23
一実施形態によれば、項目サイズ４１４は、項目種類４１６に依存することができる。項目種類がFLD_SHORT、FLD_INT、FLD_LONG、FLD_CHAR、FLD_FLOAT、FLD_DOUBLE、FLD_BOOL、FLD_UCHAR、FLD_SCHAR、FLD_UINT、FLD_ULONG、FLD_LLONG、FLD_ULLONG、FLD_LDOUBLE、FLD_DECIMAL、またはFLD_WCHARである場合、項目値が固定長であるため、項目サイズが存在しない。項目＝ＩＤ＋項目値。それ以外の場合、項目値が可変長であるため、項目サイズが存在する。項目＝ＩＤ＋項目サイズ＋項目値。
【００８９】
一実施形態によれば、項目値４１５は、ネスティングをサポートしており、サブファストデータであってもよい。項目種類は、FLD_PTRである場合、FML32をサポートする。まず、Tuxedo型バッファに指向するポインタをシリアル化し、その後、対応するファストデータ形式の値に変換して、項目値に格納する。項目種類がFLD_FML32またはFLD_VIEW32の場合、項目値は、ネスティング化されたファストデータである。
【００９０】
名前長４１０は、全ての名前のサイズを示す。名前がｎｕｌｌである場合、名前長は、０である。FML32／FMLの場合、名前４１１は、フィールド名である。SRTING／MBSTRING／CARRAYの場合、名前４１１は、エイリアス名である。VIEW32／VIEWの場合、名前４１１は、メンバー名である。
【００９１】
以下に、ファストデータフォーマットの３つの例を示す。
【００９２】
【数１５】
0006789243.tif 000017
【００９３】
一実施形態によれば、開示されたデータ構造は、Tuxedoペイロードデータだけでなく、フィルタ情報を保持することもできる。ファストデータは、非常に強力であり、単純または複雑なTuxedo型バッファを全て表現でき、ネスティングおよびエラー検査をサポートすることもできる。このデータフォーマットを持てば、顧客は、記述ファイルを維持する必要がない。
【００９４】
ファストデータによって、ユーザまたはシステムは、Tuxedo型バッファから、ビジネスインテリジェンスなどの他のアプリケーションおよびシステムに使用されるトランザクションデータを抽出することができる。
【００９５】
図５は、トランザクション処理環境におけるペイロードデータの収集をサポートするための例示的な方法をフローチャートである。例示的な方法５００は、ステップ５０１において、プラグインを用いて、ペイロードデータを含むアプリケーション情報を取得することができる。本方法は、ステップ５０２において、アプリケーション情報をバッファに書き込むことができる。本方法は、ステップ５０３において、サーバを用いて、バッファから、アプリケーション情報を読み取ることができる。本方法は、ステップ５０４において、サーバを用いて、アプリケーション情報を解析場所に伝送することができる。
【００９６】
本発明の多くの特徴は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせに実行する、またはそれらを使用して実行する、またはそれらの援助で実行することができる。したがって、（例えば、１つ以上のプロセッサを含む）処理システムを用いて、本発明の特徴を実施することができる。
【００９７】
本発明の多くの特徴は、コンピュータプログラム製品に実装され、またはこのコンピュータプログラム製品を使用して実装され、またはこのコンピュータプログラム製品の支援によって実装されることができる。このコンピュータプログラム製品は、本明細書に記載の特徴のいずれかを実行するように処理システムをプログラムするために使用できる命令を格納する記憶媒体またはコンピュータ可読媒体である。この記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム（分子メモリＩＣを含む）、または、命令および／もしくはデータを格納するのに適した任意の種類の媒体もしくは装置を含むことができるが、これらに限定されない。
【００９８】
本発明の特徴は、機械可読媒体のいずれかに格納された場合、処理システムのハードウェアを制御し、本発明の結果を利用して処理システムと他の機構との相互作用を可能にするソフトウェアおよび／またはファームウェアに組み込むことができる。そのようなソフトウェアまたはファームウェアは、アプリケーションコード、装置ドライバ、オペレーティングシステムおよび実行環境／コンテナを含むことができるが、これらに限定されない。
【００９９】
本発明の特徴は、例えば、特定用途向け集積回路（ＡＳＩＣ）などのハードウェア要素を使用して、ハードウェアで実施することもできる。本開示に記載の機能を実行するためのハードウェアステートマシンの実装は、当業者には明らかであろう。
【０１００】
さらに、本発明は、本開示の教示に従ってプログラムされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ可読記憶媒体を含む１つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティング装置、機械、またはマイクロプロセッサを使用して都合よく実施することができる。ソフトウェア分野の当業者には明らかであるように、熟練したプログラマは、本開示の教示に基づいて、適切なソフトウェアのコーディングを容易に準備することができる。
【０１０１】
上記で本発明のさまざまな実施形態を説明したが、これらの実施形態は、限定ではなく例示として提示されることを理解すべきである。本発明の精神および範囲から逸脱することなく、形態および詳細のさまざまな変更を行うことができることは、当業者にとって明らかであろう。
【０１０２】
本発明は、特定の機能の実行およびそれらの関係を示す機能性構成ブロックを用いて説明された。これらの機能性構成ブロックの境界は、通常、説明の便宜上、本開示に任意に定義される。代替的には、別々の要素によって実行されるように示された機能は、１つの要素によって実行されてもよい。特定の機能およびそれらの関係が適切に実行される限り、代替的な境界を定義してもよい。したがって、これらの代替的な境界のいずれも、本発明の範囲および精神内に含まれる。
【０１０３】
本発明の上記記載は、例示および説明を目的として提供される。本発明を網羅的なものまたは開示された形態そのものに限定することを意図していない。本発明の広さおよび範囲は、上記の例示的な実施形態のいずれかによって限定されるべきではない。数多くの変更および変形は、当業者にとって明らかであろう。修正例および変形例は、開示された特徴の任意可能な組み合わせを含む。実施形態は、本発明の原理およびその実際の応用を最も良く説明することによって、他の当業者がさまざまな実施形態および考えられる特定の用途に適したさまざまな変形に応じて本発明を理解できるように、選択され説明される。本発明の範囲は、添付の特許請求の範囲およびそれらの同等物によって規定されると意図する。
【図１】
0006789243.tif 000018
【図２】
0006789243.tif 000019
【図３】
0006789243.tif 000020
【図４】
0006789243.tif 000021
【図５】
0006789243.tif 000022