【文献】
GRANPOWER5000シリーズ,FM−Server,FMVシリーズ BEA TUXEDO メインフレーム接続 V06 使用手引書 B1FN-4001-01-00,日本,富士通株式会社,1998年 5月31日,第1版,pp.1-13,74-78
(58)【調査した分野】(Int.Cl.,DB名)
前記トランザクションシステムは、1つ以上のレコード機能を用いて、前記1つ以上のレコードバッファ内に記憶された前記1つ以上のデータ要素を処理するように動作する、請求項1〜4のいずれか1項に記載のシステム。
前記トランザクションアダプタは、前記メインフレームコンピューティング環境における前記1つ以上のデータ構造に基づいて記述ファイルを作成するように動作する、請求項1〜5のいずれか1項に記載のシステム。
【発明を実施するための形態】
【0007】
詳細な説明:
本発明は、添付の図面において、限定ではなく例示のために示されており、図中同様の参照符号は同様の要素を指している。この開示において「或る」、「1つの」または「いくつかの」実施形態と言及する場合、これは必ずしも同じ実施形態である必要はなく、このように言及する場合、少なくとも1つを意味していることに留意すべきである。
【0008】
以下の本発明の説明において、トランザクションシステムの一例としてOracle Tuxedoシステム(以下、単に「Tuxedoシステム」または「Tuxedo」と称する)が用いられている。他のタイプのトランザクションシステムが限定されることなく用いられ得ることは、当業者には明らかであろう。
【0009】
ヘテロジニアスコンピューティング環境におけるトランザクションシステムをサポートし得るシステムおよび方法がここに記載される。
【0010】
ヘテロジニアスコンピューティング環境におけるデータタイプ変換
ヘテロジニアスコンピューティング環境におけるさまざまなアプリケーションは、ネットワークを通じてさまざまなプロトコルを用いて互いに通信し得る。
【0011】
たとえば、メインフレームコンピューティング環境において主に用いられるプログラミング言語であるCOBOLは、コピーブックを用いてデータ構造を定義する。COBOLでは、コピーブックファイルを用いて、メインフレームプログラムによって参照され得るデータ要素を定義し得る。COBOLレコードの記述フォーマットはフレキシブルであり、グループ、可変サイズテーブル、REDEFINESの関係などのさまざまな機能性をサポートする。
【0012】
コピーブックは、1つ以上のコピーブックレコード基本項目と、1つ以上のコピーブックレコードグループ項目とを含み得る。コピーブックレコード基本項目は、従属データ項目を有さないレコードのデータ項目である(すなわち、基本項目はさらに細分されない)。コピーブックレコードグループ項目は1つ以上の従属データ項目を含む。データ項目の1つの階層内では、基本項目は2つ以上のグループ項目には従属し得ない。また、グループは1つ以上のサブグループを含み得る。
【0013】
さらに、ヘテロジニアスコンピューティング環境は、さまざまな特徴をサポートするためのさまざまなバッファを用い得るトランザクションシステム(たとえばOracle Tuxedoシステムなど)を含み得る。たとえば、Oracle Tuxedo ATMI(Application to Transaction Manager Interface)クライアントは、さまざまなカテゴリ(またはタイプ)のメモリ領域である型付きバッファを用いて、ATMIサーバにメッセージを送信する。Tuxedoシステムにおいて、型付きバッファは1つ以上のサブカテゴリ(またはサブタイプ)に任意に関連付けられてもよい。
【0014】
図1は、本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるトランザクションアプリケーション間の遣り取りをサポートすることの説明図である。
図1に示すように、ヘテロジニアスコンピューティング環境100におけるトランザクションシステム101は、メインフレームコンピューティング環境102において展開されたさまざまなソフトウェアプログラム104と遣り取りし得る。
【0015】
たとえば、メインフレームソフトウェアプログラム104は、コピーブック106を用いて、メインフレームソフトウェアプログラム104によって用いられる1つ以上のデータ構造116を定義し得る。
【0016】
本発明の一実施形態によれば、トランザクションシステム101は、レコードバッファ105を用いてメインフレームコンピューティング環境におけるさまざまなデータ構造116(たとえばコピーブック106におけるレコードなど)を表現し得る。
【0017】
図1に示すように、レコードバッファ105は、(メモリ内の)ツリー構造を用いてCOBOLレコード定義をコピーブック106内にマップし得る。また、レコードバッファ105とコピーブック106との間でデータを転送し得る。
【0018】
本発明の一実施形態によれば、ソースデータ(source data)をデスティネーションデータ(destination data)のタイプに自動的に変換し得る。たとえば、トランザクションシステム101は、Tuxedoメインフレームアダプタ(TMA:Tuxedo mainframe adapter)などのアダプタ103を用いて、メインフレームコンピューティング環境102とトランザクションシステム101との間で1つ以上のデータ要素110を自動的に変換し得る。
【0019】
加えて、トランザクションアプリケーション107は、レコードバッファ105におけるデータに直接アクセスし、そのデータを処理し得る。
【0020】
図2は、本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるデータタイプ変換をサポートすることの説明図である。
図2に示すように、ヘテロジニアスコンピューティング環境200は、メインフレームコンピューティング環境におけるコピーブック206と、トランザクションシステムにおけるレコードバッファ201との間のデータタイプ変換をサポートし得る。
【0021】
本発明の一実施形態によれば、トランザクションシステムは、ツール205を用いてCOBOLコピーブック206をレコードオブジェクトファイル203に変換し得る。このレコードオブジェクトファイル203は、実行時にトランザクションアプリケーションによって用いられ得る。
【0022】
図2に示すように、変換ツール205は、(データ構造216のための)COBOLコピーブック206からレコード記述ファイル204を生成し得る。さらに、変換ツール205は、レコード記述ファイル204に基づいてレコードオブジェクトファイル203を生成し得る。実行時に、レコード記述ファイル204が用いられて、レコードバッファ201構造にアクセスしてこれらの構造を処理し得る。これによって、COBOLコピーブック定義が表現通りにレコードオブジェクトファイル203内にマップされる。
【0023】
たとえば、Tuxedoは、cpy2recordツールを用いてソースレコード記述ファイル204をコンパイルし、バイナリフォーマットのレコードオブジェクトファイル203を作成し得る。実行時に、Tuxedoは、RECORDFILESおよびRECORDDIRの環境変数における構成に基づいてレコードオブジェクトファイル203を用い得る。RECORDFILES変数は、アプリケーションのための、オブジェクトレコードファイルのカンマ区切りリストを含む。RECORDDIR変数は、関連するファイル名を有するRECORDオブジェクトファイルを見つけるために用いられ得る、ディレクトリのコロン区切りリストを指定し得る。このため、Cプログラミング言語を用いるTuxedoアプリケーションは、コピーブック206のレコード記述ファイル204をCOBOLプログラミング言語で利用することができる。
【0024】
本発明の一実施形態によれば、変換ツール205は、さまざまな構文解析ルールに基づいてコピーブックレコードタイプを構文解析し、複数のノードを有する構文ツリーとすることができる。
【0025】
たとえば、構文ツリー中のノードは、さまざまなTuxedo VIEWおよびRECORDの情報を含み得る。また、Tuxedoは、DigitParseRuleを用いてCOBOLにおける外部10進形式(たとえばS9999)を処理し得る。この外部10進形式は、Tuxedo VIEW整数およびRECORD RTYPE_DIGIT形式に変換され得る。加えて、Tuxedoは、Comp3ParseRuleを用いてCOBOLにおける内部10進形式(すなわちPACKED−DECIMAL、たとえばS9999COMP−3)を処理し得る。この内部10進形式は、Tuxedo dec_t形式に変換され得る。さらに、TuxedoはRecordfileGeneratorを用いてさまざまなレコード項目を作成し得る。RecordfileGeneratorは、さまざまなレコード項目の構造(たとえばオフセット/タイプなど)が正しく計算および構成されることを確実にすることができる。
【0026】
図2に示すように、システムは、メモリ210におけるレコードバッファ201を直接定義し、当該レコードバッファ201にアクセスし、かつこれを処理するために1組のレコード機能202を提供し得る。たとえば、Tuxedoレコード機能202は、割当てられたRECORDバッファを初期化するための機能(たとえばRinit()機能)を含み得る。また、レコード機能202は、RECORDバッファから項目またはレコード全体を検索するための機能(たとえばRget()機能)を含み得る。Rget()機能を用いると、RECORDにおけるソースデータが自動的にデスティネーションデータのタイプに変換される。加えて、レコード機能202は、項目またはレコード全体をRECORDバッファに設定するための機能(たとえばRset()機能)を含み得る。
【0027】
本発明の一実施形態によれば、レコード機能202は、1つ以上のエラー値を戻すことによって、エラー処理をサポートし得る。たとえば、エラーでなければあり得ない値(たとえば値−1)を戻すことによってエラー条件を表わし得る。Tuxedoにおいて、Ferrorで定義されたエラー番号とともにエラーメッセージが表示され得る。加えて、Tuxedoは、標準エラー出力時にメッセージを作成することができるF_error()機能を提供し得る。また、Tuxedoは、メッセージカタログからエラーメッセージのテキストを検索することができるFstrerror()機能を提供し得る。
【0028】
図3は、本発明の一実施形態に係るコピーブックレコードオブジェクト記述の説明図である。
図3に示すように、ツリー300はノードA〜Jを含んでおり、このツリー300を用いて、以下のリスト1に示されるコピーブックのためのレコードオブジェクト記述を表現することができる。
【0030】
図3に示すように、ツリー300の階層構造は、上記リスト1のコピーブックにおける関係を表現する。さらに、ツリー300におけるノードA〜Jの各々は、コピーブックにおけるフィールドを表現する。たとえば、ツリー300におけるノードE、F、およびKはノードBの下にあり、このことは、コピーブックにおいてフィールドE、F、およびKがグループBの下にあることを表わしている。
【0031】
さらに、ツリー300は、ノードDがノードEに従属することを示すリンク310を含む。リンク310を用いて可変長テーブルを表現することができ、この可変長テーブルは、フィールドDのodoリンクフィールドにおいてOCCURS DEPENDING ON(ODO)節(D OCCURS 10 TIMES DEPENDING ON E)を用いて定義される。
【0032】
加えて、ツリー構造300はリンク320を含んでおり、このリンク320は、フィールドKを指し示すフィールドLのredefinelinkフィールドを用いて定義される。リンク320用いて、上記リスト1におけるREDEFINES節である「L REDEFINES K」をサポートすることができ、このことは、異なるデータ記述(すなわちフィールドLおよびK)が同じコンピュータ記憶領域を記述し得ることを表わす。
【0033】
図4は、本発明の一実施形態に係る、レコードオブジェクト構造をサポートするためのシリアライズされたツリー(serialized tree)の使用の説明図である。
図4に示すように、シリアライズされたツリー410は(
図3に示された)ツリー300に対応しており、複数のノード(たとえばノードA〜J)を含み得る。
【0034】
本発明の一実施形態によれば、レコードオブジェクト構造400は、レコードオブジェクトファイル内および/またはメモリ内のシリアライズされたツリー410を用いて実現され、レコードオブジェクト構造400を用いてコピーブックレコードを表現することができる。
【0035】
加えて、ノードA〜Jはレコードオブジェクト構造410において事前に順序付けされ(pre-ordered)得る。
図4に示すように、ノードA〜Jは深さ優先方式に基づくことができる。
【0036】
Tuxedoは、ツリーデータ構造を用いてメモリ内のRECORDオブジェクト記述を表現し得る。シリアライズされたツリー410を用いると、TuxedoにおけるRECORDのメモリレイアウトを連続的にすることができ、これによってコピーブックレイアウトをミラーリングし得る。このため、Tuxedoアプリケーションは、提供されたRECORD記述に基づいて、容易にRECORDバッファを処理することができる。
【0037】
本発明の一実施形態によれば、シリアライズされたツリー410におけるノードA〜Jの各々はレコード項目を表現する。たとえば、Tuxedo RECORD構造は複数のRECORDITEM要素に関連付けることができ、RECORDITEM要素の各々は、以下のリスト2に示されるC構造を用いて定義することができる。
【0039】
加えて、さまざまなレコード項目A〜Jは、さまざまなコピーブックデータタイプに対応するさまざまなタイプに関連付られ得る。以下のリスト3はさまざまなタイプのTuxedo RECORDITEM要素を示す。
【0041】
図5は、本発明の一実施形態に係るレコードキャッシュの説明図である。
図5に示すように、トランザクションシステム500は、レコードキャッシュ510を用いてさまざまなレコード501〜505を維持し得る。Tuxedoでは、実行時に、レコードキャッシュ510が作成され、さまざまなRECORDのためのサマリー情報と各RECORDにアクセスするためのポインタとを記憶し得る。
【0042】
本発明の一実施形態によれば、レコードキャッシュ510はダブルリンクリストフォーマットを用いて実現可能である。たとえば、Tuxedo RECORDキャッシュのサイズは、設定変数であるFRECORDCACHESIZEによって制御され得る(デフォルトサイズは128)。
【0043】
以下のリスト4はTuxedo RECORDキャッシュの構造を定義する。
【0045】
加えて、レコードキャッシュ510がフルであるとき、レコードキャッシュ510は、LRU(least recent used:最後に使われてから最も長い時間が経過した)アルゴリズムを用いて、どのレコードを廃棄し得るかを決定し得る。
【0046】
図6は、本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるさまざまなトランザクションプロセスをサポートすることの説明図である。
図6に示すように、ヘテロジニアスコンピューティング環境600は、1つ以上のメインフレームアプリケーション607と遣り取りし得るさまざまなトランザクションプロセス(またはプロセッサ)、たとえばTuxedoクライアント601およびTuxedoサーバ602などを含み得る。
【0047】
たとえば、メインフレームアプリケーション607は、顧客情報制御システム/拡張システムアーキテクチャ(CICS TS:customer information control system/extended system architecture)および情報管理システム(IMS:information management system)インターフェイス、または他のアプリケーションプログラム間通信(APPC:application program-to-program communication)もしくはCICS TSインターフェイスに基づくことができる。
【0048】
図6に示すように、Oracle Tuxedoメインフレームアダプタ(TMA:Oracle Tuxedo Mainframe Adapter)605などのアダプタを用いて、メインフレームアプリケーション607とTuxedoプロセス(またはプロセッサ)601および602との間の通信をサポートし得る。TMA605は、通信リソースマネージャ(CRM:communications resource manager)を用いて通信リソースを管理し得る。CRMは、ATMIプラットフォーム上で動作しているアプリケーションとメインフレーム上で動作しているアプリケーションとの間のデータフローを調整し得る。
【0049】
本発明の一実施形態によれば、ヘテロジニアスコンピューティング環境600は、メインフレームアプリケーション607によって用いられるコピーブック606と、トランザクションプロセス(またはプロセッサ)601〜602によって用いられるレコードバッファ603(たとえばRECORD型付きバッファ)との間のデータタイプ変換をサポートし得る。
【0050】
図6に示すように、ドメインベースのTMA605によって、レコードバッファ603とコピーブック606との間でデータを自動的に変換することが可能となる。このため、TMA605は、さまざまなTuxedoプロセス601〜602とメインフレームアプリケーション607との間に双方向接続を提供し得る。
【0051】
たとえば、Tuxedoはレコードバッファ603を用いてコピーブックレコード606を表現し得る。レコードバッファ603タイプは、個々のレコード構造を表現するサブタイプを有し得る。このため、Tuxedoは、レコードバッファ603に変換された後のCOBOLコピーブック606を利用することができる。なぜなら、レコードバッファ603がCOBOLコピーブック606へのアクセスを提供するからである。また、Tuxedoクライアント601およびTuxedoサーバ602は、RECORD記述ファイルに基づいてレコードバッファ603内に記述されたデータ構造を用い得る。
【0052】
さらに、Tuxedoによって、レコードバッファ603構造と他のバッファ構造(たとえば、C言語構造に基づくTuxedo FML/VIEWバッファ604など)との間のデータ転送が可能になる。たとえば、Tuxedoは、レコードバッファ603をFML/VIEWバッファ604に変換するためのFvrtos()機能を用い得る。また、Tuxedoは、FML/VIEWバッファ604をレコードバッファ603に変換するためのFvstor()機能を用い得る。
【0053】
本発明の一実施形態によれば、ソースデータとデスティネーションデータとの間の変換は自動的に実行可能である。たとえば、レコードバッファ603内のデータは、COBOL内部表現を維持するフォーマットを用いる。Rget()機能が呼出されると、データがC言語構造のデータタイプに自動的に変換される。Rset()機能が呼出されると、データがC言語構造からCOBOL内部表現に自動的に変換される。
【0054】
代替的には、TMA605は、コピーブック606を、Tuxedo VIEW/VIEW32バッファ604などの他のバッファ構造に直接変換し得る。VIEW/VIEW32は、コピーブックのすべての情報を正しく表現できるわけではない可能性がある。また、ユーザはこれらのバッファ構造を直接処理することができない可能性がある。加えて、コピーブック606における各グループがVIEWに翻訳された場合、システムに多数のVIEWが生じる可能性がある。
【0055】
加えて、Tuxedoは、CARRAY/FML/FML32/STRING/VIEW/VIEW32バッファなど、さまざまなタイプのバッファを利用することができる。各バッファは、特定のタイプとして指定可能である。加えて、バッファのタイプが異なっていると、メッセージの初期化、送信、および受信を行うのにさまざまなルーチンが必要となる可能性がある。また、バッファのタイプが異なっていると、データをエンコードおよびデコードするのにさまざまなルーチンが必要となる可能性がある。Tuxedoは、プログラミング介入無しで、特定タイプのための適切なルーチンを自動的に呼出し得る。
【0056】
図7は、本発明の一実施形態に係る、ヘテロジニアスコンピューティング環境におけるデータタイプ変換をサポートするための例示的フローチャートである。
図7に示すように、ステップ701において、システムは、ヘテロジニアスコンピューティング環境におけるトランザクションシステムにおいて1つ以上のレコードバッファを提供し得る。さらに、ステップ702において、システムは、ヘテロジニアスコンピューティング環境において、上記1つ以上のレコードバッファを用いて1つ以上のデータ構造を表現し得る。次いで、ステップ703において、トランザクションアダプタは、メインフレームコンピューティング環境における上記1つ以上のデータ構造と、トランザクションシステムにおける上記1つ以上のレコードバッファとの間で、1つ以上のデータ要素を変換し得る。
【0057】
本発明は、本開示の教示内容に従ってプログラムされた1つ以上のプロセッサ、メモリ、および/またはコンピュータ読取可能記憶媒体を含む1つ以上の従来の汎用もしくは専用デジタルコンピュータ、演算装置、マシン、またはマイクロプロセッサを用いて好都合に実現され得る。本開示の教示内容に基づいて、熟練したプログラマによって適切なソフトウェアコーディングが容易に作成され得ることは、ソフトウェア技術の当業者には明らかであろう。
【0058】
本発明の一実施形態によれば、ヘテロジニアスコンピューティング環境におけるトランザクションシステムが提供される。本実施形態のトランザクションシステムは、たとえばトランザクションシステム101、500など、前述の実施形態で説明した如何なるトランザクションシステムであってもよい。さらに、トランザクションシステムおよびその構成要素は、前述の実施形態で説明した本発明の原理に基づく如何なる適切な動作をも実行し得る。
【0059】
本実施形態の例では、トランザクションシステムは、1つ以上のレコードバッファとトランザクションアダプタとを備え得る。1つ以上のレコードバッファは、ヘテロジニアスコンピューティング環境におけるメインフレームコンピューティング環境における1つ以上のデータ構造を表現するように動作し得る。トランザクションアダプタは、メインフレームコンピューティング環境における1つ以上のデータ構造と、1つ以上のレコードバッファとの間で、1つ以上のデータ要素を変換するように動作し得る。
【0060】
本実施形態の例では、1つ以上のデータ構造は、メインフレームコンピューティング環境におけるコピーブック内に定義され得る。
【0061】
本実施形態の例では、トランザクションアダプタは、ツリー構造を用いてメインフレームコンピューティング環境における1つ以上のデータ構造を表現するように動作し得る。
【0062】
本実施形態の例では、トランザクションアダプタは、シリアライズされたツリーを用いてオブジェクトファイルまたはメモリ内にツリー構造を維持するように動作し得る。
【0063】
本実施形態の例では、トランザクションシステムは、1つ以上のレコードバッファ内に記憶された1つ以上のデータ要素を維持するように動作するレコードキャッシュをさらに備え得る。
【0064】
本実施形態の例では、トランザクションシステムは、1つ以上のレコード機能を用いて、1つ以上のレコードバッファ内に記憶された1つ以上のデータ要素を処理するように動作し得る。
【0065】
本実施形態の例では、トランザクションアダプタは、メインフレームコンピューティング環境における1つ以上のデータ構造に基づいて記述ファイルを作成するように動作し得る。
【0066】
本実施形態の例では、トランザクションアダプタは、バイナリフォーマットのオブジェクトファイルを記述ファイルから生成するように動作し得る。
【0067】
本実施形態の例では、トランザクションシステムは、1つ以上のトランザクションデータタイプに基づく1つ以上のトランザクションバッファを用いるように動作し得る。
【0068】
本実施形態の例では、トランザクションシステムは、1つ以上のレコードバッファと1つ以上のトランザクションバッファとの間で1つ以上のデータ要素を変換するように動作し得る。
【0069】
いくつかの実施形態において、本発明は、本発明の如何なるプロセスも実行するようにコンピュータをプログラムするために用いることができる命令を格納した記憶媒体またはコンピュータ読取可能媒体であるコンピュータプログラム製品を含む。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリ装置、磁気カードまたは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るものの、これらに限定されない。
【0070】
本発明の上述の記載は例示および説明のために提供されたものである。それは、網羅的なものとして意図されたものではなく、または、開示された厳密な形態に本発明を限定するよう意図されたものではない。多くの変更例および変形例が当業者に明らかになるだろう。変更例および変形例は、開示された特徴の如何なる関連する組合せをも含む。実施形態は、本発明の原理およびその実用的応用を最良に説明するために選択され説明されたものであり、それにより、考えられる特定の使用に適したさまざまな実施形態についての、およびさまざまな修正を有する本発明を、当業者が理解できるようにする。本発明の範囲は、以下の請求項およびそれらの均等物によって定義されるよう意図されている。