(57)【特許請求の範囲】
【請求項１】
ヘテロジニアスコンピューティング環境におけるトランザクションシステムをサポートするためのシステムであって、
１つ以上のマイクロプロセッサと、
前記トランザクションシステムにおける１つ以上のレコードバッファとを備え、前記１つ以上のレコードバッファは、前記ヘテロジニアスコンピューティング環境におけるメインフレームコンピューティング環境における１つ以上のデータ構造を表現するように動作し、前記システムはさらに、
前記１つ以上のマイクロプロセッサ上で動作するトランザクションアダプタを備え、前記トランザクションアダプタは、前記メインフレームコンピューティング環境における前記１つ以上のデータ構造と、前記トランザクションシステムにおける前記１つ以上のレコードバッファとの間で、１つ以上のデータ要素を変換するように動作し、
前記トランザクションシステムは、１つ以上のトランザクションデータタイプに基づく１つ以上のトランザクションバッファを用いるとともに、前記１つ以上のレコードバッファと前記１つ以上のトランザクションバッファとの間で前記１つ以上のデータ要素を変換するように動作し、
前記トランザクションアダプタは、
ツリー構造を用いて前記メインフレームコンピューティング環境における前記１つ以上のデータ構造を表現するように動作し、
シリアライズされたツリーを用いてオブジェクトファイルまたはメモリ内に前記ツリー構造を維持するように動作し、
前記ツリー構造に含まれる複数のノードを事前に順序付けするように動作する、システム。
【請求項２】
前記１つ以上のデータ構造は、前記メインフレームコンピューティング環境におけるコピーブック内に定義されている、請求項１に記載のシステム。
【請求項３】
前記トランザクションアダプタは、深さ優先方式に基づいて、前記複数のノードを事前に順序付けするように動作する、請求項１または２に記載のシステム。
【請求項４】
前記１つ以上のレコードバッファ内に記憶された前記１つ以上のデータ要素を維持するように動作するレコードキャッシュをさらに備える、請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
前記トランザクションシステムは、１つ以上のレコード機能を用いて、前記１つ以上のレコードバッファ内に記憶された前記１つ以上のデータ要素を処理するように動作する、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記トランザクションアダプタは、前記メインフレームコンピューティング環境における前記１つ以上のデータ構造に基づいて記述ファイルを作成するように動作する、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
前記トランザクションアダプタは、バイナリフォーマットのオブジェクトファイルを前記記述ファイルから生成するように動作する、請求項６に記載のシステム。
【請求項８】
ヘテロジニアスコンピューティング環境におけるトランザクションシステムをサポートするための方法であって、
前記トランザクションシステムにおいて１つ以上のレコードバッファを提供するステップと、
前記ヘテロジニアスコンピューティング環境において、前記１つ以上のレコードバッファを用いて１つ以上のデータ構造を表現するステップと、
トランザクションアダプタを介して、メインフレームコンピューティング環境における前記１つ以上のデータ構造と、前記トランザクションシステムにおける前記１つ以上のレコードバッファとの間で、１つ以上のデータ要素を変換するステップとを備え、
前記トランザクションシステムは、１つ以上のトランザクションデータタイプに基づく１つ以上のトランザクションバッファを用いるとともに、前記１つ以上のレコードバッファと前記１つ以上のトランザクションバッファとの間で前記１つ以上のデータ要素を変換し、
前記トランザクションアダプタは、
ツリー構造を用いて前記メインフレームコンピューティング環境における前記１つ以上のデータ構造を表現し、
前記トランザクションアダプタは、シリアライズされたツリーを用いてオブジェクトファイルまたはメモリ内に前記ツリー構造を維持し、
前記ツリー構造に含まれる複数のノードを事前に順序付ける、方法。
【請求項９】
実行されると、以下のステップをシステムに行なわせる命令を含むコンピュータプログラムであって、前記以下のステップは、
トランザクションシステムにおいて１つ以上のレコードバッファを提供するステップと、
ヘテロジニアスコンピューティング環境において、前記１つ以上のレコードバッファを用いて１つ以上のデータ構造を表現するステップと、
トランザクションアダプタを介して、メインフレームコンピューティング環境における前記１つ以上のデータ構造と、前記トランザクションシステムにおける前記１つ以上のレコードバッファとの間で、１つ以上のデータ要素を変換するステップとを備え、
前記トランザクションシステムは、１つ以上のトランザクションデータタイプに基づく１つ以上のトランザクションバッファを用いるとともに、前記１つ以上のレコードバッファと前記１つ以上のトランザクションバッファとの間で前記１つ以上のデータ要素を変換し、
前記トランザクションアダプタは、
ツリー構造を用いて前記メインフレームコンピューティング環境における前記１つ以上のデータ構造を表現し、
前記トランザクションアダプタは、シリアライズされたツリーを用いてオブジェクトファイルまたはメモリ内に前記ツリー構造を維持し、
前記ツリー構造に含まれる複数のノードを事前に順序付けする、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示：
この特許文献の開示の一部は、著作権保護の対象となる題材を含んでいる。著作権の所有者は、特許商標庁の包袋または記録に掲載されるように特許文献または特許情報開示を誰でも複製できることに対して異議はないが、その他の点ではすべての如何なる著作権をも保有する。
【０００２】
発明の分野：
本発明は概してコンピュータシステムおよびソフトウェアに関し、特にヘテロジニアスコンピューティング環境（heterogeneous computing environment）におけるトランザクションシステムをサポートすることに関する。
【背景技術】
【０００３】
背景：
トランザクションシステムは、組織内のさまざまなトランザクションを処理し得るエンタープライズアプリケーションサーバを含む。高性能ネットワークおよびマルチプロセッサコンピュータなどの新しい技術の開発に伴って、トランザクションシステムの性能をさらに向上させる必要がある。これらは、概して、本発明の実施形態が取り組むことを意図している分野である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要：
ヘテロジニアスコンピューティング環境におけるトランザクションシステムをサポートし得るシステムおよび方法がここに記載される。トランザクションシステムは１つ以上のバッファを提供し得る。上記１つ以上のバッファは、ヘテロジニアスコンピューティング環境におけるメインフレームコンピューティング環境における１つ以上のデータ構造を表現するように動作する。また、トランザクションシステムはトランザクションアダプタを提供し得る。このトランザクションアダプタは、メインフレームコンピューティング環境における上記１つ以上のデータ構造と、トランザクションシステムにおける上記１つ以上のバッファとの間で、１つ以上のデータ要素を変換するように動作する。
【０００５】
図面の簡単な説明：
【図面の簡単な説明】
【０００６】
【図１】本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるさまざまなアプリケーション間の遣り取りをサポートすることの説明図である。
【図２】本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるデータタイプ変換をサポートすることの説明図である。
【図３】本発明の一実施形態に係る、コピーブックレコードオブジェクト記述の説明図である。
【図４】本発明の一実施形態に係る、レコードオブジェクト構造をサポートするためのシリアライズされたツリーの使用の説明図である。
【図５】本発明の一実施形態に係る、レコードキャッシュをサポートすることの説明図である。
【図６】本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるさまざまなトランザクションプロセスをサポートすることの説明図である。
【図７】本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるデータタイプ変換をサポートするための例示的フローチャートである。
【発明を実施するための形態】
【０００７】
詳細な説明：
本発明は、添付の図面において、限定ではなく例示のために示されており、図中同様の参照符号は同様の要素を指している。この開示において「或る」、「１つの」または「いくつかの」実施形態と言及する場合、これは必ずしも同じ実施形態である必要はなく、このように言及する場合、少なくとも１つを意味していることに留意すべきである。
【０００８】
以下の本発明の説明において、トランザクションシステムの一例としてＯｒａｃｌｅ  Ｔｕｘｅｄｏシステム（以下、単に「Ｔｕｘｅｄｏシステム」または「Ｔｕｘｅｄｏ」と称する）が用いられている。他のタイプのトランザクションシステムが限定されることなく用いられ得ることは、当業者には明らかであろう。
【０００９】
ヘテロジニアスコンピューティング環境におけるトランザクションシステムをサポートし得るシステムおよび方法がここに記載される。
【００１０】
ヘテロジニアスコンピューティング環境におけるデータタイプ変換
ヘテロジニアスコンピューティング環境におけるさまざまなアプリケーションは、ネットワークを通じてさまざまなプロトコルを用いて互いに通信し得る。
【００１１】
たとえば、メインフレームコンピューティング環境において主に用いられるプログラミング言語であるＣＯＢＯＬは、コピーブックを用いてデータ構造を定義する。ＣＯＢＯＬでは、コピーブックファイルを用いて、メインフレームプログラムによって参照され得るデータ要素を定義し得る。ＣＯＢＯＬレコードの記述フォーマットはフレキシブルであり、グループ、可変サイズテーブル、ＲＥＤＥＦＩＮＥＳの関係などのさまざまな機能性をサポートする。
【００１２】
コピーブックは、１つ以上のコピーブックレコード基本項目と、１つ以上のコピーブックレコードグループ項目とを含み得る。コピーブックレコード基本項目は、従属データ項目を有さないレコードのデータ項目である（すなわち、基本項目はさらに細分されない）。コピーブックレコードグループ項目は１つ以上の従属データ項目を含む。データ項目の１つの階層内では、基本項目は２つ以上のグループ項目には従属し得ない。また、グループは１つ以上のサブグループを含み得る。
【００１３】
さらに、ヘテロジニアスコンピューティング環境は、さまざまな特徴をサポートするためのさまざまなバッファを用い得るトランザクションシステム（たとえばＯｒａｃｌｅ  Ｔｕｘｅｄｏシステムなど）を含み得る。たとえば、Ｏｒａｃｌｅ  Ｔｕｘｅｄｏ  ＡＴＭＩ（Application to Transaction Manager Interface）クライアントは、さまざまなカテゴリ（またはタイプ）のメモリ領域である型付きバッファを用いて、ＡＴＭＩサーバにメッセージを送信する。Ｔｕｘｅｄｏシステムにおいて、型付きバッファは１つ以上のサブカテゴリ（またはサブタイプ）に任意に関連付けられてもよい。
【００１４】
図１は、本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるトランザクションアプリケーション間の遣り取りをサポートすることの説明図である。図１に示すように、ヘテロジニアスコンピューティング環境１００におけるトランザクションシステム１０１は、メインフレームコンピューティング環境１０２において展開されたさまざまなソフトウェアプログラム１０４と遣り取りし得る。
【００１５】
たとえば、メインフレームソフトウェアプログラム１０４は、コピーブック１０６を用いて、メインフレームソフトウェアプログラム１０４によって用いられる１つ以上のデータ構造１１６を定義し得る。
【００１６】
本発明の一実施形態によれば、トランザクションシステム１０１は、レコードバッファ１０５を用いてメインフレームコンピューティング環境におけるさまざまなデータ構造１１６（たとえばコピーブック１０６におけるレコードなど）を表現し得る。
【００１７】
図１に示すように、レコードバッファ１０５は、（メモリ内の）ツリー構造を用いてＣＯＢＯＬレコード定義をコピーブック１０６内にマップし得る。また、レコードバッファ１０５とコピーブック１０６との間でデータを転送し得る。
【００１８】
本発明の一実施形態によれば、ソースデータ（source data）をデスティネーションデータ（destination data）のタイプに自動的に変換し得る。たとえば、トランザクションシステム１０１は、Ｔｕｘｅｄｏメインフレームアダプタ（ＴＭＡ：Tuxedo mainframe adapter）などのアダプタ１０３を用いて、メインフレームコンピューティング環境１０２とトランザクションシステム１０１との間で１つ以上のデータ要素１１０を自動的に変換し得る。
【００１９】
加えて、トランザクションアプリケーション１０７は、レコードバッファ１０５におけるデータに直接アクセスし、そのデータを処理し得る。
【００２０】
図２は、本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるデータタイプ変換をサポートすることの説明図である。図２に示すように、ヘテロジニアスコンピューティング環境２００は、メインフレームコンピューティング環境におけるコピーブック２０６と、トランザクションシステムにおけるレコードバッファ２０１との間のデータタイプ変換をサポートし得る。
【００２１】
本発明の一実施形態によれば、トランザクションシステムは、ツール２０５を用いてＣＯＢＯＬコピーブック２０６をレコードオブジェクトファイル２０３に変換し得る。このレコードオブジェクトファイル２０３は、実行時にトランザクションアプリケーションによって用いられ得る。
【００２２】
図２に示すように、変換ツール２０５は、（データ構造２１６のための）ＣＯＢＯＬコピーブック２０６からレコード記述ファイル２０４を生成し得る。さらに、変換ツール２０５は、レコード記述ファイル２０４に基づいてレコードオブジェクトファイル２０３を生成し得る。実行時に、レコード記述ファイル２０４が用いられて、レコードバッファ２０１構造にアクセスしてこれらの構造を処理し得る。これによって、ＣＯＢＯＬコピーブック定義が表現通りにレコードオブジェクトファイル２０３内にマップされる。
【００２３】
たとえば、Ｔｕｘｅｄｏは、ｃｐｙ２ｒｅｃｏｒｄツールを用いてソースレコード記述ファイル２０４をコンパイルし、バイナリフォーマットのレコードオブジェクトファイル２０３を作成し得る。実行時に、Ｔｕｘｅｄｏは、ＲＥＣＯＲＤＦＩＬＥＳおよびＲＥＣＯＲＤＤＩＲの環境変数における構成に基づいてレコードオブジェクトファイル２０３を用い得る。ＲＥＣＯＲＤＦＩＬＥＳ変数は、アプリケーションのための、オブジェクトレコードファイルのカンマ区切りリストを含む。ＲＥＣＯＲＤＤＩＲ変数は、関連するファイル名を有するＲＥＣＯＲＤオブジェクトファイルを見つけるために用いられ得る、ディレクトリのコロン区切りリストを指定し得る。このため、Ｃプログラミング言語を用いるＴｕｘｅｄｏアプリケーションは、コピーブック２０６のレコード記述ファイル２０４をＣＯＢＯＬプログラミング言語で利用することができる。
【００２４】
本発明の一実施形態によれば、変換ツール２０５は、さまざまな構文解析ルールに基づいてコピーブックレコードタイプを構文解析し、複数のノードを有する構文ツリーとすることができる。
【００２５】
たとえば、構文ツリー中のノードは、さまざまなＴｕｘｅｄｏ  ＶＩＥＷおよびＲＥＣＯＲＤの情報を含み得る。また、Ｔｕｘｅｄｏは、ＤｉｇｉｔＰａｒｓｅＲｕｌｅを用いてＣＯＢＯＬにおける外部１０進形式（たとえばＳ９９９９）を処理し得る。この外部１０進形式は、Ｔｕｘｅｄｏ  ＶＩＥＷ整数およびＲＥＣＯＲＤ  ＲＴＹＰＥ＿ＤＩＧＩＴ形式に変換され得る。加えて、Ｔｕｘｅｄｏは、Ｃｏｍｐ３ＰａｒｓｅＲｕｌｅを用いてＣＯＢＯＬにおける内部１０進形式（すなわちＰＡＣＫＥＤ−ＤＥＣＩＭＡＬ、たとえばＳ９９９９ＣＯＭＰ−３）を処理し得る。この内部１０進形式は、Ｔｕｘｅｄｏ  ｄｅｃ＿ｔ形式に変換され得る。さらに、ＴｕｘｅｄｏはＲｅｃｏｒｄｆｉｌｅＧｅｎｅｒａｔｏｒを用いてさまざまなレコード項目を作成し得る。ＲｅｃｏｒｄｆｉｌｅＧｅｎｅｒａｔｏｒは、さまざまなレコード項目の構造（たとえばオフセット／タイプなど）が正しく計算および構成されることを確実にすることができる。
【００２６】
図２に示すように、システムは、メモリ２１０におけるレコードバッファ２０１を直接定義し、当該レコードバッファ２０１にアクセスし、かつこれを処理するために１組のレコード機能２０２を提供し得る。たとえば、Ｔｕｘｅｄｏレコード機能２０２は、割当てられたＲＥＣＯＲＤバッファを初期化するための機能（たとえばＲｉｎｉｔ（）機能）を含み得る。また、レコード機能２０２は、ＲＥＣＯＲＤバッファから項目またはレコード全体を検索するための機能（たとえばＲｇｅｔ（）機能）を含み得る。Ｒｇｅｔ（）機能を用いると、ＲＥＣＯＲＤにおけるソースデータが自動的にデスティネーションデータのタイプに変換される。加えて、レコード機能２０２は、項目またはレコード全体をＲＥＣＯＲＤバッファに設定するための機能（たとえばＲｓｅｔ（）機能）を含み得る。
【００２７】
本発明の一実施形態によれば、レコード機能２０２は、１つ以上のエラー値を戻すことによって、エラー処理をサポートし得る。たとえば、エラーでなければあり得ない値（たとえば値−１）を戻すことによってエラー条件を表わし得る。Ｔｕｘｅｄｏにおいて、Ｆｅｒｒｏｒで定義されたエラー番号とともにエラーメッセージが表示され得る。加えて、Ｔｕｘｅｄｏは、標準エラー出力時にメッセージを作成することができるＦ＿ｅｒｒｏｒ（）機能を提供し得る。また、Ｔｕｘｅｄｏは、メッセージカタログからエラーメッセージのテキストを検索することができるＦｓｔｒｅｒｒｏｒ（）機能を提供し得る。
【００２８】
図３は、本発明の一実施形態に係るコピーブックレコードオブジェクト記述の説明図である。図３に示すように、ツリー３００はノードＡ〜Ｊを含んでおり、このツリー３００を用いて、以下のリスト１に示されるコピーブックのためのレコードオブジェクト記述を表現することができる。
【００２９】
【表１】
0006754696.tif 000002
【００３０】
図３に示すように、ツリー３００の階層構造は、上記リスト１のコピーブックにおける関係を表現する。さらに、ツリー３００におけるノードＡ〜Ｊの各々は、コピーブックにおけるフィールドを表現する。たとえば、ツリー３００におけるノードＥ、Ｆ、およびＫはノードＢの下にあり、このことは、コピーブックにおいてフィールドＥ、Ｆ、およびＫがグループＢの下にあることを表わしている。
【００３１】
さらに、ツリー３００は、ノードＤがノードＥに従属することを示すリンク３１０を含む。リンク３１０を用いて可変長テーブルを表現することができ、この可変長テーブルは、フィールドＤのｏｄｏリンクフィールドにおいてＯＣＣＵＲＳ  ＤＥＰＥＮＤＩＮＧ  ＯＮ（ＯＤＯ）節（Ｄ  ＯＣＣＵＲＳ  １０  ＴＩＭＥＳ  ＤＥＰＥＮＤＩＮＧ  ＯＮ  Ｅ）を用いて定義される。
【００３２】
加えて、ツリー構造３００はリンク３２０を含んでおり、このリンク３２０は、フィールドＫを指し示すフィールドＬのｒｅｄｅｆｉｎｅｌｉｎｋフィールドを用いて定義される。リンク３２０用いて、上記リスト１におけるＲＥＤＥＦＩＮＥＳ節である「Ｌ  ＲＥＤＥＦＩＮＥＳ  Ｋ」をサポートすることができ、このことは、異なるデータ記述（すなわちフィールドＬおよびＫ）が同じコンピュータ記憶領域を記述し得ることを表わす。
【００３３】
図４は、本発明の一実施形態に係る、レコードオブジェクト構造をサポートするためのシリアライズされたツリー（serialized tree）の使用の説明図である。図４に示すように、シリアライズされたツリー４１０は（図３に示された）ツリー３００に対応しており、複数のノード（たとえばノードＡ〜Ｊ）を含み得る。
【００３４】
本発明の一実施形態によれば、レコードオブジェクト構造４００は、レコードオブジェクトファイル内および／またはメモリ内のシリアライズされたツリー４１０を用いて実現され、レコードオブジェクト構造４００を用いてコピーブックレコードを表現することができる。
【００３５】
加えて、ノードＡ〜Ｊはレコードオブジェクト構造４１０において事前に順序付けされ（pre-ordered）得る。図４に示すように、ノードＡ〜Ｊは深さ優先方式に基づくことができる。
【００３６】
Ｔｕｘｅｄｏは、ツリーデータ構造を用いてメモリ内のＲＥＣＯＲＤオブジェクト記述を表現し得る。シリアライズされたツリー４１０を用いると、ＴｕｘｅｄｏにおけるＲＥＣＯＲＤのメモリレイアウトを連続的にすることができ、これによってコピーブックレイアウトをミラーリングし得る。このため、Ｔｕｘｅｄｏアプリケーションは、提供されたＲＥＣＯＲＤ記述に基づいて、容易にＲＥＣＯＲＤバッファを処理することができる。
【００３７】
本発明の一実施形態によれば、シリアライズされたツリー４１０におけるノードＡ〜Ｊの各々はレコード項目を表現する。たとえば、Ｔｕｘｅｄｏ  ＲＥＣＯＲＤ構造は複数のＲＥＣＯＲＤＩＴＥＭ要素に関連付けることができ、ＲＥＣＯＲＤＩＴＥＭ要素の各々は、以下のリスト２に示されるＣ構造を用いて定義することができる。
【００３８】
【表２】
0006754696.tif 000003
【００３９】
加えて、さまざまなレコード項目Ａ〜Ｊは、さまざまなコピーブックデータタイプに対応するさまざまなタイプに関連付られ得る。以下のリスト３はさまざまなタイプのＴｕｘｅｄｏ  ＲＥＣＯＲＤＩＴＥＭ要素を示す。
【００４０】
【表３】
0006754696.tif 000004
【００４１】
図５は、本発明の一実施形態に係るレコードキャッシュの説明図である。図５に示すように、トランザクションシステム５００は、レコードキャッシュ５１０を用いてさまざまなレコード５０１〜５０５を維持し得る。Ｔｕｘｅｄｏでは、実行時に、レコードキャッシュ５１０が作成され、さまざまなＲＥＣＯＲＤのためのサマリー情報と各ＲＥＣＯＲＤにアクセスするためのポインタとを記憶し得る。
【００４２】
本発明の一実施形態によれば、レコードキャッシュ５１０はダブルリンクリストフォーマットを用いて実現可能である。たとえば、Ｔｕｘｅｄｏ  ＲＥＣＯＲＤキャッシュのサイズは、設定変数であるＦＲＥＣＯＲＤＣＡＣＨＥＳＩＺＥによって制御され得る（デフォルトサイズは１２８）。
【００４３】
以下のリスト４はＴｕｘｅｄｏ  ＲＥＣＯＲＤキャッシュの構造を定義する。
【００４４】
【表４】
0006754696.tif 000005
【００４５】
加えて、レコードキャッシュ５１０がフルであるとき、レコードキャッシュ５１０は、ＬＲＵ（least recent used：最後に使われてから最も長い時間が経過した）アルゴリズムを用いて、どのレコードを廃棄し得るかを決定し得る。
【００４６】
図６は、本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるさまざまなトランザクションプロセスをサポートすることの説明図である。図６に示すように、ヘテロジニアスコンピューティング環境６００は、１つ以上のメインフレームアプリケーション６０７と遣り取りし得るさまざまなトランザクションプロセス（またはプロセッサ）、たとえばＴｕｘｅｄｏクライアント６０１およびＴｕｘｅｄｏサーバ６０２などを含み得る。
【００４７】
たとえば、メインフレームアプリケーション６０７は、顧客情報制御システム／拡張システムアーキテクチャ（ＣＩＣＳ  ＴＳ：customer information control system/extended system architecture）および情報管理システム（ＩＭＳ：information management system）インターフェイス、または他のアプリケーションプログラム間通信（ＡＰＰＣ：application program-to-program communication）もしくはＣＩＣＳ  ＴＳインターフェイスに基づくことができる。
【００４８】
図６に示すように、Ｏｒａｃｌｅ  Ｔｕｘｅｄｏメインフレームアダプタ（ＴＭＡ：Oracle Tuxedo Mainframe Adapter）６０５などのアダプタを用いて、メインフレームアプリケーション６０７とＴｕｘｅｄｏプロセス（またはプロセッサ）６０１および６０２との間の通信をサポートし得る。ＴＭＡ６０５は、通信リソースマネージャ（ＣＲＭ：communications resource manager）を用いて通信リソースを管理し得る。ＣＲＭは、ＡＴＭＩプラットフォーム上で動作しているアプリケーションとメインフレーム上で動作しているアプリケーションとの間のデータフローを調整し得る。
【００４９】
本発明の一実施形態によれば、ヘテロジニアスコンピューティング環境６００は、メインフレームアプリケーション６０７によって用いられるコピーブック６０６と、トランザクションプロセス（またはプロセッサ）６０１〜６０２によって用いられるレコードバッファ６０３（たとえばＲＥＣＯＲＤ型付きバッファ）との間のデータタイプ変換をサポートし得る。
【００５０】
図６に示すように、ドメインベースのＴＭＡ６０５によって、レコードバッファ６０３とコピーブック６０６との間でデータを自動的に変換することが可能となる。このため、ＴＭＡ６０５は、さまざまなＴｕｘｅｄｏプロセス６０１〜６０２とメインフレームアプリケーション６０７との間に双方向接続を提供し得る。
【００５１】
たとえば、Ｔｕｘｅｄｏはレコードバッファ６０３を用いてコピーブックレコード６０６を表現し得る。レコードバッファ６０３タイプは、個々のレコード構造を表現するサブタイプを有し得る。このため、Ｔｕｘｅｄｏは、レコードバッファ６０３に変換された後のＣＯＢＯＬコピーブック６０６を利用することができる。なぜなら、レコードバッファ６０３がＣＯＢＯＬコピーブック６０６へのアクセスを提供するからである。また、Ｔｕｘｅｄｏクライアント６０１およびＴｕｘｅｄｏサーバ６０２は、ＲＥＣＯＲＤ記述ファイルに基づいてレコードバッファ６０３内に記述されたデータ構造を用い得る。
【００５２】
さらに、Ｔｕｘｅｄｏによって、レコードバッファ６０３構造と他のバッファ構造（たとえば、Ｃ言語構造に基づくＴｕｘｅｄｏ  ＦＭＬ／ＶＩＥＷバッファ６０４など）との間のデータ転送が可能になる。たとえば、Ｔｕｘｅｄｏは、レコードバッファ６０３をＦＭＬ／ＶＩＥＷバッファ６０４に変換するためのＦｖｒｔｏｓ（）機能を用い得る。また、Ｔｕｘｅｄｏは、ＦＭＬ／ＶＩＥＷバッファ６０４をレコードバッファ６０３に変換するためのＦｖｓｔｏｒ（）機能を用い得る。
【００５３】
本発明の一実施形態によれば、ソースデータとデスティネーションデータとの間の変換は自動的に実行可能である。たとえば、レコードバッファ６０３内のデータは、ＣＯＢＯＬ内部表現を維持するフォーマットを用いる。Ｒｇｅｔ（）機能が呼出されると、データがＣ言語構造のデータタイプに自動的に変換される。Ｒｓｅｔ（）機能が呼出されると、データがＣ言語構造からＣＯＢＯＬ内部表現に自動的に変換される。
【００５４】
代替的には、ＴＭＡ６０５は、コピーブック６０６を、Ｔｕｘｅｄｏ  ＶＩＥＷ／ＶＩＥＷ３２バッファ６０４などの他のバッファ構造に直接変換し得る。ＶＩＥＷ／ＶＩＥＷ３２は、コピーブックのすべての情報を正しく表現できるわけではない可能性がある。また、ユーザはこれらのバッファ構造を直接処理することができない可能性がある。加えて、コピーブック６０６における各グループがＶＩＥＷに翻訳された場合、システムに多数のＶＩＥＷが生じる可能性がある。
【００５５】
加えて、Ｔｕｘｅｄｏは、ＣＡＲＲＡＹ／ＦＭＬ／ＦＭＬ３２／ＳＴＲＩＮＧ／ＶＩＥＷ／ＶＩＥＷ３２バッファなど、さまざまなタイプのバッファを利用することができる。各バッファは、特定のタイプとして指定可能である。加えて、バッファのタイプが異なっていると、メッセージの初期化、送信、および受信を行うのにさまざまなルーチンが必要となる可能性がある。また、バッファのタイプが異なっていると、データをエンコードおよびデコードするのにさまざまなルーチンが必要となる可能性がある。Ｔｕｘｅｄｏは、プログラミング介入無しで、特定タイプのための適切なルーチンを自動的に呼出し得る。
【００５６】
図７は、本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるデータタイプ変換をサポートするための例示的フローチャートである。図７に示すように、ステップ７０１において、システムは、ヘテロジニアスコンピューティング環境におけるトランザクションシステムにおいて１つ以上のレコードバッファを提供し得る。さらに、ステップ７０２において、システムは、ヘテロジニアスコンピューティング環境において、上記１つ以上のレコードバッファを用いて１つ以上のデータ構造を表現し得る。次いで、ステップ７０３において、トランザクションアダプタは、メインフレームコンピューティング環境における上記１つ以上のデータ構造と、トランザクションシステムにおける上記１つ以上のレコードバッファとの間で、１つ以上のデータ要素を変換し得る。
【００５７】
本発明は、本開示の教示内容に従ってプログラムされた１つ以上のプロセッサ、メモリ、および／またはコンピュータ読取可能記憶媒体を含む１つ以上の従来の汎用もしくは専用デジタルコンピュータ、演算装置、マシン、またはマイクロプロセッサを用いて好都合に実現され得る。本開示の教示内容に基づいて、熟練したプログラマによって適切なソフトウェアコーディングが容易に作成され得ることは、ソフトウェア技術の当業者には明らかであろう。
【００５８】
本発明の一実施形態によれば、ヘテロジニアスコンピューティング環境におけるトランザクションシステムが提供される。本実施形態のトランザクションシステムは、たとえばトランザクションシステム１０１、５００など、前述の実施形態で説明した如何なるトランザクションシステムであってもよい。さらに、トランザクションシステムおよびその構成要素は、前述の実施形態で説明した本発明の原理に基づく如何なる適切な動作をも実行し得る。
【００５９】
本実施形態の例では、トランザクションシステムは、１つ以上のレコードバッファとトランザクションアダプタとを備え得る。１つ以上のレコードバッファは、ヘテロジニアスコンピューティング環境におけるメインフレームコンピューティング環境における１つ以上のデータ構造を表現するように動作し得る。トランザクションアダプタは、メインフレームコンピューティング環境における１つ以上のデータ構造と、１つ以上のレコードバッファとの間で、１つ以上のデータ要素を変換するように動作し得る。
【００６０】
本実施形態の例では、１つ以上のデータ構造は、メインフレームコンピューティング環境におけるコピーブック内に定義され得る。
【００６１】
本実施形態の例では、トランザクションアダプタは、ツリー構造を用いてメインフレームコンピューティング環境における１つ以上のデータ構造を表現するように動作し得る。
【００６２】
本実施形態の例では、トランザクションアダプタは、シリアライズされたツリーを用いてオブジェクトファイルまたはメモリ内にツリー構造を維持するように動作し得る。
【００６３】
本実施形態の例では、トランザクションシステムは、１つ以上のレコードバッファ内に記憶された１つ以上のデータ要素を維持するように動作するレコードキャッシュをさらに備え得る。
【００６４】
本実施形態の例では、トランザクションシステムは、１つ以上のレコード機能を用いて、１つ以上のレコードバッファ内に記憶された１つ以上のデータ要素を処理するように動作し得る。
【００６５】
本実施形態の例では、トランザクションアダプタは、メインフレームコンピューティング環境における１つ以上のデータ構造に基づいて記述ファイルを作成するように動作し得る。
【００６６】
本実施形態の例では、トランザクションアダプタは、バイナリフォーマットのオブジェクトファイルを記述ファイルから生成するように動作し得る。
【００６７】
本実施形態の例では、トランザクションシステムは、１つ以上のトランザクションデータタイプに基づく１つ以上のトランザクションバッファを用いるように動作し得る。
【００６８】
本実施形態の例では、トランザクションシステムは、１つ以上のレコードバッファと１つ以上のトランザクションバッファとの間で１つ以上のデータ要素を変換するように動作し得る。
【００６９】
いくつかの実施形態において、本発明は、本発明の如何なるプロセスも実行するようにコンピュータをプログラムするために用いることができる命令を格納した記憶媒体またはコンピュータ読取可能媒体であるコンピュータプログラム製品を含む。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリ装置、磁気カードまたは光カード、ナノシステム（分子メモリＩＣを含む）、または、命令および／もしくはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るものの、これらに限定されない。
【００７０】
本発明の上述の記載は例示および説明のために提供されたものである。それは、網羅的なものとして意図されたものではなく、または、開示された厳密な形態に本発明を限定するよう意図されたものではない。多くの変更例および変形例が当業者に明らかになるだろう。変更例および変形例は、開示された特徴の如何なる関連する組合せをも含む。実施形態は、本発明の原理およびその実用的応用を最良に説明するために選択され説明されたものであり、それにより、考えられる特定の使用に適したさまざまな実施形態についての、およびさまざまな修正を有する本発明を、当業者が理解できるようにする。本発明の範囲は、以下の請求項およびそれらの均等物によって定義されるよう意図されている。
【図１】
0006754696.tif 000006
【図２】
0006754696.tif 000007
【図３】
0006754696.tif 000008
【図４】
0006754696.tif 000009
【図５】
0006754696.tif 000010
【図６】
0006754696.tif 000011
【図７】
0006754696.tif 000012