(57)【特許請求の範囲】
【請求項１】
ホストシステム中にあるデータに、トランザクションを介してアクセスすることをクライアント装置に与え、ホストシステムの表示をナビゲートする必要性をなくす方法において、
ａ）トランザクションサーバが１以上のホストトランザクションにクライアントトランザクションをマッピングし、
ｂ）クライアントトランザクションにマッピングされたホストトランザクションを、トランザクションサーバが、処理のためにホストシステムに実行依頼し、
ｃ）トランザクションサーバがホストシステムからデータを受信し、その受信されたデータは処理を完了したホストトランザクション内に記憶されているものであり、
ｄ）トランザクションサーバが前記受信されたデータに基づいて、全ての実行依頼されたホストトランザクションに対する処理をホストシステムが完了したか否かを決定し、
ｅ）トランザクションサーバが、ホストトランザクションがマッピングされるクライアントトランザクション中に前記受信されたデータの一部を記憶することを特徴とする方法。
【請求項２】
前記クライアントトランザクションは複数のクライアントトランザクションの１つである請求項１記載の方法。
【請求項３】
クライアントトランザクションにマッピングされたホストトランザクションを処理のためにホストシステムに実行依頼するのは、他のホストトランザクションを処理のためにホストシステムに実行依頼するのと同時に行なわれ、前記他のホストトランザクションは複数のクライアントトランザクションの中の他のクライアントトランザクションにマッピングされる請求項１記載の方法。
【請求項４】
前記クライアントトランザクションは１以上のクライアント出力フィールドに対応するデータを含み、各ホストトランザクションは１以上のホスト入力フィールドに対応するデータを含んでいる請求項１記載の方法。
【請求項５】
１以上のホストトランザクションにクライアントトランザクションをマッピングするステップにおいて、さらに、
ａ）各マッピングされたホストトランザクションの１以上のホスト入力フィールドのそれぞれに第１のデータソースに関連する第１の識別子を記憶し、
ｂ）１以上のクライアント出力フィールドのそれぞれに第２の識別子を記憶し、１以上のクライアント出力フィールドの少なくとも１つに対するこの第２の識別子は、少なくとも１つのマッピングされたホストトランザクションと、クライアントトランザクションを関連づける、ステップを含んでいる請求項４記載の方法。
【請求項６】
前記ホスト入力フィールドの少なくとも１つに対する第１の識別子は、クライアントトランザクションと、マッピングされたホストトランザクションを関係づける請求項５記載の方法。
【請求項７】
１以上のホストトランザクションに対するクライアントトランザクションのマッピングは、前記ホストトランザクションの１つの一部分を表している第２のフィールドに前記クライアントトランザクションの一部分を表している第１のフィールドをドラッグしてドロップするステップを含んでいる請求項５記載の方法。
【請求項８】
さらに、
ａ）第１のデータソースの内容がホストトランザクションを実行依頼する前に検索されて関係するホスト入力フィールドに記憶され、その第１のデータソースを指している第１のアドレス指定可能な参照に各第１の識別子を分解し、
ｂ）検索されたデータの一部分が記憶される第２のデータソースを指している第２のアドレス指定可能な参照に各第２の識別子を分解する、請求項４記載の方法。
【請求項９】
第１のデータソースは静的変数を含んでいる請求項８記載の方法。
【請求項１０】
ホストトランザクションはさらに１以上のホスト出力フィールドに対応するデータを含み、第１のデータソースは別のホストトランザクションのホスト出力フィールドの１つを含んでいる請求項８記載の方法。
【請求項１１】
クライアントトランザクションはさらに１以上のクライアント入力フィールドに対応するデータを含み、第１のデータソースはクライアント入力フィールドの１つを含んでいる請求項８記載の方法。
【請求項１２】
ホストトランザクションはさらに１以上のホスト出力フィールドに対応するデータを含み、第２のデータソースはマッピングされたホストトランザクションのホスト出力フィールドの１つを含んでいる請求項８記載の方法。
【請求項１３】
ホストトランザクションはさらに１以上のホスト出力フィールドに対応するデータを含み、第２のデータソースは別のホストトランザクションのホスト出力フィールドの１つを含んでいる請求項８記載の方法。
【請求項１４】
さらに、クライアントトランザクション中の受信されたデータの一部分をクライアント装置に転送する請求項１記載の方法。
【請求項１５】
ホストシステム中にあるデータに、トランザクションを介してアクセスすることをクライアント装置に提供し、ホストシステムの表示をナビゲートする必要性をなくすコンピュータ読取り可能な媒体において、
このコンピュータ読取り可能な媒体は、
ａ）１以上のホストトランザクションにクライアントトランザクションをマッピングする動作をトランザクションサーバによって行わせるように構成されている構成モジュールと、
ｂ）クライアントトランザクションによってリクエストされたデータを検索するためにクライアントトランザクションにマッピングされるホストトランザクションをホストシステムに対して実行依頼し、ホストトランザクションがマッピングされるクライアントトランザクションに検索されたデータの一部分を記憶する動作をトランザクションサーバによって行わせるように構成されているランタイムトランザクションモジュールとを備えているコンピュータ読取り可能な媒体。
【請求項１６】
前記クライアントトランザクションは複数のクライアントトランザクションの１つであり、ランタイムトランザクションモジュールは、他のホストトランザクションを処理のためにホストシステムに対して実行依頼するのと同時にクライアントトランザクションにマッピングされたホストトランザクションをホストシステムに対して実行依頼し、前記他のホストトランザクションは複数のクライアントトランザクションの中の別のクライアントトランザクションにマッピングされる請求項１５記載のコンピュータ読取り可能な媒体。
【請求項１７】
クライアントトランザクションは１以上のクライアント出力フィールドに対応するデータを含み、各ホストトランザクションは１以上のホスト入力フィールドを含んでいる請求項１５記載のコンピュータ読取り可能な媒体。
【請求項１８】
構成モジュールは、
ａ）マッピングされた各ホストトランザクションの１以上のホスト入力フィールドのそれぞれの中に第１のデータソースに関連する第１の識別子を記憶し、
ｂ）１以上のクライアント出力フィールドのそれぞれの中に第２の識別子を記憶し、１以上のクライアント出力フィールドの少なくとも１つに対するこの第２の識別子は少なくとも１つのマッピングされたホストトランザクションと、クライアントトランザクションを関連させている、ことによりクライアントトランザクションを１以上のホストトランザクションにマッピングする請求項１７記載のコンピュータ読取り可能な媒体。
【請求項１９】
さらに、前記ホストトランザクションの１つの一部分を表している第２のフィールドに前記クライアントトランザクションの一部分を表している第１のフィールドをドラッグしてドロップすることをユーザに可能にするためのグラフィックユーザインターフェースを具備し、それによって前記ホストトランザクションに前記クライアントトランザクションをマッピングする請求項１７記載のコンピュータ読取り可能な媒体。
【請求項２０】
構成モジュールはさらに、少なくとも１つのマッピングされたホストトランザクションとクライアントトランザクションとを構成データベースに記憶している請求項１５記載のコンピュータ読取り可能な媒体。
【請求項２１】
ランタイムトランザクションモジュールは、
ａ）第１のデータソースの内容がホストトランザクションを実行依頼する前に検索されて関係するホスト入力フィールドに記憶され、その第１のデータソースを指している第１のアドレス指定可能な参照に各第１の識別子を分解し、
ｂ）検索されたデータの一部分が記憶される第２のデータソースを指している第２のアドレス指定可能な参照に各第２の識別子を分解することによって、クライアントトランザクションにマッピングされたホストトランザクションを実行依頼する請求項１５記載のコンピュータ読取り可能な媒体。
【請求項２２】
第１のデータソースは静的変数を含んでいる請求項２１記載のコンピュータ読取り可能な媒体。
【請求項２３】
各ホストトランザクションはさらに１以上のホスト出力フィールドに対応するデータを含み、ホストトランザクションの第１のデータソースは別のホストトランザクションのホスト出力フィールドの１つを含んでいる請求項２１記載のコンピュータ読取り可能な媒体。
【請求項２４】
クライアントトランザクションはさらに１以上のクライアント入力フィールドに対応するデータを含み、第１のデータソースはクライアント入力フィールドの１つを含んでいる請求項２１記載のコンピュータ読取り可能な媒体。
【請求項２５】
各ホストトランザクションはさらに１以上のホスト出力フィールドに対応するデータを含み、第２のデータソースはマッピングされたホストトランザクションのホスト出力フィールドの１つを含んでいる請求項２１記載のコンピュータ読取り可能な媒体。
【請求項２６】
各ホストトランザクションはさらに１以上のホスト出力フィールドに対応するデータを含み、第２のデータソースは別のホストトランザクションのホスト出力フィールドの１つを含んでいる請求項２１記載のコンピュータ読取り可能な媒体。
【請求項２７】
さらに、クライアントトランザクション中の受信されたデータの一部分をクライアント装置に転送するためのクライアント接続モジュールを具備している請求項１５記載のコンピュータ読取り可能な媒体。
【請求項２８】
ホストシステム中にあるデータにアクセスすることをクライアント装置に提供し、ホストシステムの表示をナビゲートする必要性をなくすトランザクションサーバにおいて、
ａ）処理ユニットと、
ｂ）この処理ユニットに結合され、処理ユニット中の命令の実行を制御する命令を記憶している主メモリとを具備し、
処理ユニットは、
ｉ）トランザクションサーバによりクライアントトランザクションを１以上のホストトランザクションにマッピングし、
ii）クライアントトランザクションにマッピングされたホストトランザクションを、トランザクションサーバにより処理のためにホストシステムに対して実行依頼し、
iii)トランザクションサーバによりホストシステムからデータを受信し、受信されたデータは処理を完了したホストトランザクション内に記憶されているものであり、
iv）トランザクションサーバにより、前記受信されたデータに基づいてホストシステムが実行依頼された全てのホストトランザクションに対する処理を完了したか否かを決定し、
ｖ）トランザクションサーバにより、ホストトランザクションがマッピングされたクライアントトランザクションに前記受信されたデータの一部を記憶するトランザクションサーバ。
【請求項２９】
前記クライアントトランザクションは複数のクライアントトランザクションの１つである請求項２８記載のトランザクションサーバ。
【請求項３０】
クライアントトランザクションへマッピングされたホストトランザクションを処理のためにホストシステムに実行依頼するのは、他のホストトランザクションを処理のためにホストシステムに実行依頼するのと同時に行なわれ、前記他のホストトランザクションは複数のクライアントトランザクションの中の他のクライアントトランザクションにマッピングされる請求項２９記載のトランザクションサーバ。
【請求項３１】
クライアントトランザクションは１以上のクライアント出力フィールドに対応するデータを含み、各ホストトランザクションは１以上のホスト入力フィールドを含んでいる請求項２８記載のトランザクションサーバ。
【請求項３２】
クライアントトランザクションの１以上のホストトランザクションへのマッピングは、
ａ）マッピングされた各ホストトランザクションの１以上のホスト入力フィールドのそれぞれに第１のデータソースに関連する第１の識別子を記憶し、
ｂ）１以上のクライアント出力フィールドのそれぞれに第２の識別子を記憶し、１以上のクライアント出力フィールドの少なくとも１つに対するこの第２の識別子は少なくとも１つのマッピングされたホストトランザクションとクライアントトランザクションを関連させている、ことを含んでいる請求項３１記載のトランザクションサーバ。
【請求項３３】
１以上のホスト入力フィールドの少なくとも１つに対する第１の識別子は、クライアントトランザクションと、マッピングされたホストトランザクションを関連させている請求項３２記載のトランザクションサーバ。
【請求項３４】
１以上のホストトランザクションへのクライアントトランザクションのマッピングは、前記ホストトランザクションの１つの一部分を表している第２のフィールドに前記クライアントトランザクションの一部分を表している第１のフィールドをドラッグしてドロップする処理を含んでいる請求項３１記載のトランザクションサーバ。
【請求項３５】
さらに、クライアントトランザクション中の受信されたデータの一部をクライアント装置に転送する請求項２８記載のトランザクションサーバ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、ホストシステム中にある情報を検索する方法に関し、とくに、ホストシステム中にある情報への直接トランザクションアクセスを行うための方法に関する。
【０００２】
【従来の技術】
多くの企業は、かなりの割合の企業情報を主フレームのような大型ホストシステム中に記憶している。企業は、情報の生成および情報に対する常時連続アクセスを行うホストシステムのメインテナンスに対して相当な投資をしている。ホストシステムに影響を与える変更は、その変更が経済的であるか否かを決定するために注意深く監視される。
【０００３】
インターネットの人気の上昇により、多くの企業は、彼等のホスト記憶企業情報およびビジネスロジックをワールド・ワイド・ウェブ（ウェブ）上に存在する新しい顧客に提供することがいかに最良であるかを評価している。企業は、そのホストシステムにおける既存の投資と、新しい配信プラットフォームおよびインターネットを使用することにより彼等の法人取引を拡張したいという彼等の要求のバランスをとるという難題に直面している。
【０００４】
【発明が解決しようとする課題】
ホストシステム中にある情報をインターネットによって、とくにウェブを使用して顧客に提供する種々の方法が提唱されている。代表的な解決方法は、ウェブベースのユーザとインターフェースする新しいソフトウェアコードをホストシステム上に追加することを含んでいる。この方法の１つの欠点は、熟練したプログラミングのエキスパートが最初にソフトウェアコードを書込まなければならないことである。その後、ソフトウェアコードはホストシステムにロードされてテストされる。このプロセス中、ホストシステムはオフライン状態にされるため、法人取引の処理に利用できない。さらに、新しく生成されたソフトウェアコードのメインテナンスでも、ホストシステムをオフライン状態にする必要がある。情報に大きく依存する取引の中でホストシステムをオフライン状態にすることは、結果的に莫大な財政的な損失を生じさせる。
【０００５】
別の方法は、コンポーネントオブジェクトモジュール（ＣＯＭ）を使用することである。この方法のために、クライアントアプリケーションは、アプリケーションまたはデータ用のプレゼンテーション層を提供する。クライアントアプリケーションは、マイクロソフトトランザクションサーバ（ＭＴＳ）コンポーネントを呼出すことのできるアクティブサーバページ、ビジュアルベーシック（ＶＢ）アプリケーション、またはマイクロソフトオフィスアプリケーションであってもよい。ＭＴＳコンポーネントは、主フレームトランザクションプロセス（ＴＰ）用の機能をＣＯＭインターフェースメソッドとして提供するＣＯＭオブジェクトである。したがって、ＭＴＳコンポーネントには、そのコンポーネントを処理するトランザクション論理装置が含まれている。この方法の欠点は、ホストコードがクライアント側でアクセス可能でなければならず、そのマッピングが１対１であることである。
【０００６】
別の方法は、ホストシステムに記憶されている企業情報にアクセスするために端末エミュレータを使用する。端末エミュレータは、所望の情報を獲得するためにホスト表示をナビゲートする。この方法の欠点は、ホストシステム上の各表示によってナビゲートする速度が非常に遅いことである。別の欠点は、ホストシステム中の情報へのアクセスを所望する各ウェブベースのユーザが論理端末を有していなければならないことである。論理端末では、ホストシステムがリソース（すなわち、メモリ）をその論理端末に割当てることが要求される。この方法にはホストシステムからのリソースが必要とされるため、この方法では、ウェブベースのユーザの増加に対して限られた拡張性しか得られない。一般に、企業情報に対して一度にアクセスしているユーザは２５０人程度である。もちろん、サポートされるウェブベースユーザの人数は、ホストシステムのメモリリソースに依存する。
【０００７】
これらの方法の欠点を想定して、ホストシステムにソフトウェアプログラミングおよびテストを追加する必要がなく、ホストシステムのメモリリソースの追加を必要とせず、多数のウェブベースユーザにアクセスを提供できるほど拡張可能であるホストシステム中にある情報にアクセスする方法が必要とされている。
【０００８】
【課題を解決するための手段】
本発明によると、ホストシステム中にある情報への直接トランザクションアクセスを行うための方法、コンピュータ読出し可能な媒体およびシステムが提供される。１以上の入力フィールドおよび１以上の出力フィールドを含んでいるクライアントトランザクションが生成される。各クライアントトランザクションについて、クライアントトランザクションは１以上のホストトランザクションにマップされる。ホストトランザクションは１以上のホスト入力フィールドおよび１以上の出力フィールドを含んでいる。ホスト入力フィールドはマッピングにしたがってアドレス可能な参照に分解される。特定のクライアントトランザクションに対するホストトランザクションは、別のクライアントトランザクションに対する別のトランザクションと同時に処理するためにホストシステムに実行依頼される。特定のクライアントトランザクションに対するホストトランザクションからの全ての出力が受取られると、出力はクライアント装置に転送される。
【０００９】
あるプログラム命令により符号化されるシステムおよびコンピュータ読出し可能な媒体は、それら両者がおおむね上述のように機能するものであり、本発明の別の特徴を表している。
【発明の実施の形態】
以下の詳細な説明および添付図面を参照することよって、本発明がさらによく理解され、上記の特徴および付随する多数の利点がさらに容易に認識されるであろう。
以下の説明からさらによく認識されるように、本発明はホストシステム上に存在する情報を検索し、そのホストシステムに悪影響を及ぼすことなくその情報をクライアントコンピュータまたは他の装置に提供する。以下さらに詳細に説明するように、本発明は、ホストシステムとクライアント装置（たとえば、ウェブベースのクライアントコンピュータ）との間のトランザクションを実時間で経路設定する。トランザクションは、たとえば顧客の預金額をクライアントコンピュータにより入力した結果、顧客の預金残高がホストシステムにより更新される等の、特定のアクションまたは結果を達成するホストシステムとクライアント装置との間における情報の交換である。本発明はホスト記憶データに対する直接アクセスを行い、ホストシステムの表示装置をナビゲートする必要性をなくす。したがって、ホストシステムからの追加のメモリを必要とせず、また、追加のアプリケーションソフトウェアがホストシステム上にロードされてテストされる必要なしに、所望の情報がさらに適切な時期に獲得される。
【００１０】
図１および以下の説明は、本発明が実施されることのできる適切なコンピュータ環境10の簡単で一般的な説明を示している。コンピュータ環境10には、トランザクションサーバ12に接続されたホストシステム14が含まれている。トランザクションサーバ12はまた、相互接続されて構内ネットワーク（ＬＡＮ）18を形成している複数のコンピュータおよび電子装置(22,24および26) に接続されている。図１に示されている本発明の実施形態では、ホストシステム14は主フレームコンピュータとして示されている。当業者は、主フレームコンピュータが図１に示されているＬＡＮ18を形成する他のコンピュータ装置により使用される任意の数のプログラムおよび、またはオペレーティング環境を構成することが可能なことを認識するであろう。たとえば、主フレームコンピュータは、遠隔地のコンピュータで入力されたトランザクションがユーザ書込みアプリケーションプログラムによって同時に処理されることを可能にする顧客情報制御システム（ＣＩＣＳ）、または複雑なデータベースおよびネットワーク中のデータの記憶および検索を管理する情報管理システム（ＩＭＳ）を構成することができる。図１には１つの主フレームコンピュータしか示されていないが、本発明が実施されることのできるコンピュータ環境10には複数のホストシステム14が含まれていてもよいことが認識されるであろう。
【００１１】
上述したように、ホストシステム14はトランザクションサーバ12に対して通信リンクを介して直接的に、あるいは他のあるネットワークを介して接続されており、このトランザクションサーバ12は、種々のコンピュータおよび電子装置(22,24および26) により発生されたクライアントトランザクションを、ホストシステム14への経路設定を実時間で行う直接トランザクションマッピングプログラム38を含んでいる。図１に示されている本発明の実施形態において、ＬＡＮ18はオフィスクライアント22のような種々のクライアントコンピュータ、アプリケーションサーバ24のようなサーバ、およびコールセンター26のような他の電子装置を相互接続するバスネットワークである。当業者によって認識されるように、任意の数または任意のタイプの電子装置および、またはコンピュータシステムがＬＡＮ18に接続可能であり、したがって、必要なハードウェアを備えているならばトランザクションサーバ12に接続可能である。このような電子装置およびコンピュータシステムは、ワークステーション、パーソナルコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント、汎用記帳端末、電話機、販売時点情報管理コンピュータシステム、ウェブサーバ、電子カタログサーバ等を含むことができる。しかしながら、本発明を説明するために以下このような全ての電子装置およびコンピュータシステムを包括的に“クライアント装置20”と呼ぶ。
【００１２】
ＬＡＮ18は、ガラスまたはプラスチックの光ファイバケーブル、同軸ケーブル撚線対ケーブル、リボンケーブル等の種々の結合媒体から形成されてもよい。さらに、当業者は、結合媒体には無線周波数結合媒体または他の結合媒体もまた含まれることが可能なことを認識するであろう。現在の商用環境に予め設置された配線の有用性を考慮して、以下に説明する本発明の実施形態ではＬＡＮ18を形成するために撚線対の銅ケーブルが使用されている。
【００１３】
さらに、当業者は、ＬＡＮ18がゲートウェイまたはルータを含んでいる場合には、ＬＡＮ18がさらに別の構内または広域ネットワークと相互接続されてインターネットに接続することが可能であることを認識するであろう。当業者によく知られているように、大文字で始まる“インターネット”という用語は、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）を使用して互いに通信するネットワークおよびルータの集合体を示す。ＬＡＮ18は単一の企業または組織内においてイントラネットとして構成されることができることも認識されるであろう。イントラネットは通常、ウェブページ、ウェブブラウザ、ＦＴＰサイト、メール等のインターネットと関連したアプリケーションを使用する。しかしながら、これらのアプリケーションへのアクセスは、その企業または組織内部の者だけに制限される。最後に、当業者は、ＬＡＮ18がイントラネットとして構成された場合にはウェブテクノロジーを使用してエクストラネットとして外部参与者に拡張されることもまた可能であることを認識するであろう。エクストラネットにより、外部参与者はイントラネットへの限られたアクセスが可能になる。
【００１４】
以上本発明が実施されることのできるコンピュータ環境10を説明してきたが、以下においてトランザクションサーバ12をさらに詳細に説明する。図２はトランザクションサーバ12の重要なコンポーネントのいくつかを示している。当業者はトランザクションサーバ12が図２に示されているより多数のコンポーネントを含んでいることを認識するであろう。しかしながら、本発明を実施するために例示的な実施形態を開示するために、これら通常の一般的なコンポーネントを全て図示する必要はない。図２に示されているように、トランザクションサーバ12には、トランザクションサーバ12をクライアント装置20およびホストシステム14に接続するためのネットワークインターフェース32が含まれている。当業者は、ネットワークインターフェース32には、トランザクションサーバ12をＬＡＮ18およびホストシステム14に（直接的に、あるいは、おそらく別のネットワーク接続またはネットワーク間接続によって）接続するために必要な回路が含まれていることを認識するであろう。さらに、ネットワークインターフェース32はまたＴＣＰ／ＩＰプロトコルおよび特定のタイプの結合媒体により使用されるために構成されていることが認識されるであろう。
【００１５】
トランザクションサーバ12はまた、中央処理装置（ＣＰＵ）30、表示装置34およびマスメモリ36を含んでいる。マスメモリ36には、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、およびハードディスクドライブ、テープドライブ、光学ドライブ、フロッピーディスクドライブのような永久大容量記憶装置、あるいはその組合せが含まれる。マスメモリ36は、本発明にしたがってホスト記憶データを獲得するためにクライアントトランザクションをホストトランザクションにマッピングするために必要なプログラムコードおよびデータを記憶している。とくに、マスメモリは直接トランザクションマッピングプログラム38と、ホストシステム情報への直接トランザクションアクセスを実施するトランザクション構成データベース40とを記憶する。
【００１６】
図３は、直接トランザクションマッピングプログラム38を含んでいるモジュールを示すブロック図である。直接トランザクションマッピングプログラム38は、グラフィックユーザインターフェース（ＧＵＩ）モジュール42と、構成モジュール44と、クライアント接続モジュール46と、ランタイムトランザクションモジュール48と、ホスト接続モジュール50と、およびホストプールモジュール52とを含んでいる。これらのモジュールは、コンピュータ読出し可能な媒体上に記憶され、フロッピーまたは光学（すなわち、ＣＤ−ＲＯＭ）ドライブのようなコンピュータ読出し可能な媒体に関連したドライブ機構を使用してトランザクションサーバ12のマスメモリ36中にロードされてもよい。これらのモジュール間のトランザクションは図４を参照して最もよく説明される。
【００１７】
図４に示されている実施形態において、ＧＵＩモジュール42はトランザクションサーバ12を使用する管理者にグラフィック表示またはウインドウを提供する命令を含んでおり、そのグラフィック表示またはウインドウによって管理者は構成モジュール44により使用されるデータおよび命令を入力または選択する。構成モジュール44は管理者により入力されたデータおよび命令を使用して、所望のクライアント・ホスト間トランザクションマッピングを予め構成する。以下さらに詳細に説明するように、これらのマッピングはその後、クライアント装置20によってなされたホストシステム14中のデータに対するリクエストに応答してこのようなデータをホストシステム14から獲得するために使用される。
【００１８】
構成プロセス中に生じたクライアントトランザクションとホストトランザクションの間のマッピングは、ランタイムトランザクションモジュール48によるアクセスのためにマスメモリ36内に存在するトランザクション構成データベース40中に記憶される。ランタイムトランザクションモジュール48は、クライアント装置20からのクライアントトランザクションリクエストに応答してクライアントとホストとの間のトランザクションマッピングをトランザクション構成データベース40からロードする。その後、ランタイムトランザクションモジュール48は、リクエストされたクライアントトランザクションにマッピングされたホストトランザクションをホストシステム14に実行依頼し、その結果実行依頼されたホストトランザクションによってリクエストされたデータをホストシステム14が提供する。
【００１９】
クライアント装置20からクライアントトランザクションリクエストを受取るために、ランタイムトランザクションモジュール48は、クライアント接続モジュール46とインターフェースしなければならない。クライアント接続モジュール46は、クライアント装置20とクライアント接続モジュール46との間で送られるデータメッセージのフォーマットを記述したトランザクションメッセージプロトコル（ＴｘＭｓｇ）を使用することにより異なったタイプのクライアント装置20への標準的なインターフェースを提供する命令を含んでいる。当業者により認識されるように、メッセージのフォーマットは、クライアント接続モジュール46およびクライアント装置20の両者が同じフォーマットを使用している限り、種々の方法で構成されることができる。本発明の１実施形態では、ＴＣＰ／ＩＰのような任意の既存のプロトコル上にＴｘＭｓｇが構成されている。
【００２０】
ＴｘＭｓｇは、ヘッダおよびオプションデータ部分を含んでいる。図２１に示されているように、ＴｘＭｓｇ500 のヘッダ502 は、命令コードフィールド504 と、フラッグフィールド506 と、システムフィールド508 と、ｓｅｓｓｉｄフィールド510 と、および長さフィールド512 とを含んでいる。命令コードフィールド504 は、メッセージのタイプを特定するパラメータを記憶している。サポートされるメッセージのタイプは、クライアントトランザクションを示す管理者規定コードであってもよいし、あるいはトランザクション識別子を獲得するというリクエストを示すコードのようなシステムコードであってもよい。フラッグフィールド506 は、エラーのようなＴｘＭｓｇ500 の特徴を規定するパラメータを記憶している。システムフィールド508 は一般に、クライアントトランザクションをホストシステム14上のセッションと相関させるタグを示すパラメータを記憶している。このタグは、後続するクライアントトランザクションリクエストが同じセッションを使用できるようにホストシステム14から戻されてもよい。ｓｅｓｓｉｄフィールド510 は、ホストトランザクションリクエストのホストプール識別子またはセッション識別子を特定するパラメータを記憶している。このパラメータは、あるホストシステム呼出し時に使用される。長さフィールド512 は、オプションデータ部分514 のサイズを示すパラメータを記憶している。オプションデータ部分514 を含まないメッセージに関して、そのパラメータはゼロである。
【００２１】
新しいタイプのクライアント装置20がホストシステム14上の情報にアクセスすることを所望した場合、この新しいタイプのクライアント装置20をサポートするために新しいクライアント接続インターフェースモジュール49がクライアント接続モジュール46に追加される。クライアント接続インターフェースモジュール49の追加はクライアント接続モジュール46に対するソフトウェアコードの追加に過ぎないので、新しいタイプのクライアント装置20がサポートされたときに、別の直接トランザクションマッピングプログラムモジュールは影響を受けない。これは、新しいクライアント装置20をサポートする効率的な方法を提供する。典型的なクライアント接続インターフェースモジュール49には、コンポーネントオブジェクトモジュール（ＣＯＭ），ＪＡＶＡ，アクチブサーバページ（ＡＳＰ），およびＴＣＰ／ＩＰソケットインターフェースが含まれる。当業者により認識されるように、本発明の技術的範囲を逸脱することなくその他のクライアント接続インターフェースモジュール49が追加されることができる。クライアント接続モジュール46に対して任意の数の種々のクライアント接続インターフェースモジュール49が追加されることが可能であり、また、このようなモジュールの内容およびプログラミングは当業者によって容易に行われることができるため、本発明を実施するための例示的な実施形態を開示するためにこれらのインターフェースモジュールをさらに説明する必要はない。
【００２２】
ホストトランザクションをホストシステム14に実行を依頼し、その代わりにデータを受取るために、ランタイムトランザクションモジュール48はまた、手続き呼出しおよびプログラミング技術でよく知られている他の標準的な方法によってホスト接続モジュール50とインターフェースしている。ホスト接続モジュール50は、ランタイムトランザクションモジュール48に標準的なインターフェースを提供する１以上のホストコネクタインターフェースモジュール51を含んでいる。示されているように、典型的なホストコネクタインターフェースモジュール51は、たとえば顧客情報制御システム（ＣＩＣＳ）、情報管理システム（ＩＭＳ）、およびトランザクション処理ファシリティ（ＴＰＦ）等の種々のトランザクションショシステムに対するサポートを、一般的な端末インターフェース（３２７０，５２５０，ＡＬＣ）または直接トランザクションインターフェース（ＬＵ０，ＬＵ６．２，ＭＱシリーズ）を介して含んでいる。
【００２３】
ホスト接続モジュール50はまたホストプールモジュール52とインターフェースし、次にこのホストプールモジュール52は、トランザクション処理のためにホストシステム14中のメモリ領域を提供するホストシステム14とインターフェースする。ホストプールモジュール52は、システムネットワークアーキテクチャ（ＳＮＡ）／論理装置（ＬＵ）カップラ、アドバンスト・プログラム・ツー・プログラム・コミュニケーション（ＡＰＰＣ）、ＭＱシリーズおよびトランザクション処理ファシリティ（ＴＰＦ）／ＡＬＣカップラのような１以上のホストプールインターフェース53を含んでいる。ホストプールインターフェースモジュール53は、ホストシステム14とトランザクションサーバ12との間の通信リンクのタイプに依存したインターフェースを提供する。
【００２４】
別のタイプのホストシステム14がトランザクションサーバ12に接続することを所望した場合、新しいタイプのホストシステムとそのトランザクションサーバ12への通信リンクとをサポートする新しいホストプールインターフェースモジュール53および対応したホストコネクタモジュール51（必要ならば）がそれぞれホストプールモジュール52およびホスト接続モジュール50に追加される。ホストプールインターフェースモジュール53の追加はホストプールモジュール52に対するコードの追加に過ぎないので、別の直接トランザクションマッピングプログラムモジュールは影響を受けない。これは、新しいホストシステムをサポートする効率的な方法を提供する。ホストプールモジュール52に対して任意の数の種々のホストプールインターフェースモジュール53が追加可能であり、このようなモジュールの内容およびプログラミングは当業者によって容易に行われることができるため、本発明を実施するための例示的な実施形態を開示するためにこれらのインターフェースモジュールをさらに説明する必要はない。
【００２５】
先に述べたように、直接トランザクションマッピングプログラム38により、管理者はクライアントトランザクションを１以上のホストトランザクションに直接マッピングすることが可能になる。したがって、本発明はランタイム中にホストスクリーンによるナビゲーションを必要としない。図５は、本発明によるホストトランザクション90にマッピングしているクライアントトランザクション70を示す概略図である。以下、クライアントトランザクション70をマッピングするために使用される構成モジュール44は図６乃至１１を参照して説明されている。概略的に説明すると、クライアントトランザクション70はクライアント入力72とクライアント出力74を含んでいる。クライアント入力72は１以上のクライアント入力（ＣＩ）フィールド86を含んでおり、クライアント出力74は１以上のクライアント出力（ＣＯ）フィールド88を含んでいる。図５に示されている例では、クライアントトランザクション１には２つのクライアント入力フィールド（ＣＩ−１およびＣＩ−２）と、３つのクライアント出力フィールド（ＣＯ−１，ＣＯ−２およびＣＯ−３）が存在する。しかしながら、当業者はクライアントトランザクション70には任意の数の入力および出力フィールドが存在してもよいをことを認識するであろう。
【００２６】
他方、ホストトランザクション90はホスト入力92およびホスト出力94を含んでいる。ホスト入力92は１以上のホスト入力フィールド96を含んでおり、ホスト出力94は１以上のホスト出力フィールド98を含んでいる。示されている例では、２つのホストトランザクション：ホストトランザクションＡおよびホストトランザクションＢが認められる。ホストトランザクションＡには３つのホスト入力フィールド（ＨＡＩ−１，ＨＡＩ−２およびＨＡＩ−３）と、１つのホスト出力フィールド（ＨＡＯ−１）が存在する。第２のホストトランザクションであるホストトランザクションＢには、２つのホスト入力フィールド（ＨＢＩ−１およびＨＢＩ−２）と、２つのホスト出力フィールド（ＨＢＯ−１およびＨＢＯ−２）が存在する。ここでも、当業者はホストトランザクション90には任意の数の入力および出力フィールドが存在してもよいことを認識するであろう。
【００２７】
クライアントトランザクション70のクライアント出力フィールド88は、クライアント装置20がホストシステム14から獲得することを所望した情報を記憶する。クライアント出力フィールド88を使用することにより、トランザクションサーバ12の管理者は、所望の結果を得るためにどのホストトランザクション90がクライアントトランザクション70にマッピングされなければならないかを決定することができる。たとえば、図５に示されているように、クライアントトランザクション１のＣＯ−１で示されているクライアント出力フィールドはホストトランザクションＡから獲得可能な情報を所望する。クライアント出力フィールドＣＯ−２およびＣＯ−３はホストトランザクションＢから獲得可能な情報を所望する。それ故、ホストトランザクションＡおよびＢの両者がクライアントトランザクション１にマッピングされなければならない。以下において構成モジュール44によるクライアントトランザクションのマッピングは、図６乃至１１を参照してさらに詳細に説明されている。
【００２８】
図６は、トランザクションサーバ12の管理者がクライアント・ホスト間トランザクションマッピングを構成することを可能にする本発明の構成モジュール44により実施される論理の概要を示すフロー図である。図２０Ａ乃至２０Ｇは、構成モジュール44にしたがってクライアント・ホスト間トランザクションマッピングを構成するために管理者により使用される直接トランザクションマッピングプログラム38のＧＵＩモジュール42により生成されるウインドウを示している。当業者は、テキストベースのユーザインターフェースまたは他のインターフェースもまた本発明の技術的範囲を逸脱することなく使用可能であることを認識するであろう。
【００２９】
図６中の論理動作は、ブロック100 から始まり、管理者が図２０Ａに示されているＧＵＩ42により発生された新しいホストトランザクションウインドウ700 の中のトランザクションタブ702 を選択することによりホストトランザクション90を生成すると決めたか否かが決定される決定ブロック102 に進む。ＧＵＩ42はトランザクションサーバ12の表示装置34上に新しいホストトランザクションウインドウ700 を発生するので、管理者は必要なフィールドに容易に進むことができる。トランザクションタブ702 、ホスト入力フィールドタブ704 およびホスト出力フィールドタブ706 という３つのタブが新しいホストトランザクションウインドウ700 のナビゲーションを支援している。示されているように、トランザクションタブ702 は、データをトランザクション氏名フィールド708 中に入力するためのフィールドと、トランザクションＩＤフィールド710 と、およびホストプールフィールド712 とを提供する。入力フィールドウインドウ707 および出力フィールドウインドウ709 は、異なったグラフィック表示から入力されたデータを示す。新しいホストトランザクションウインドウ700 には、標準的なＯＫボタン714 および取消しボタン716 も設けられている。さらに、適用ボタン718 は将来のエンハンスメントのために設けられているが、この時点では使用されていない。クライアントトランザクション70がマッピングすることができるように、少なくとも１つのホストトランザクション90が存在していなければならないことが認識されるであろう。したがって、図６中の決定ブロック102 の結果がノーである場合、この決定ブロックは、管理者がホストトランザクション90を生成することを選択するまで単に繰返される。しかしながら、決定ブロック102 の結果がイエスの場合、論理動作は、、管理者により新しいホストトランザクションウインドウ700 中に入力されたトランザクション名（フィールド708 ）およびトランザクションＩＤ（フィールド710 ）を使用してホストトランザクション90が生成されるブロック104 に進む。以下において、このデータを使用することによるホストトランザクション90の生成が図７、２０Ｂおよび２０Ｃを参照してさらに詳細に説明されている。
【００３０】
ホストトランザクション90が生成されると、論理動作は、、管理者が別のホストトランザクション90を生成することを選択したか否かが決定される決定ブロック106 に進む。イエスならば、論理動作は、、管理者が所望するように別のホストトランザクション90が生成されるブロック104 に戻る。その後、ブロック104 および106 は、管理者により所望された全てのホストトランザクション90が生成されるまで繰返される。その結果、多数のホストトランザクション90が生成される可能性もあるし、あるいは管理者により所望された場合には１つしか生成されない可能性もある。当業者は、トランザクションサーバ12に接続された各ホストシステム14がある情報へのアクセスを含んでいることを認識するであろう。その情報は、どのホストトランザクション90が入手可能であるかを決定する。一般に、管理者は、クライアントトランザクション70を生成する前にトランザクションサーバ12に接続されたホストシステム14から入手可能な全てのホストトランザクション90を生成することが望ましい。このようにして処理を進めることにより、管理者は、クライアントトランザクション70を生成するときには入手可能な全てのホストトランザクション90を知っていることができる。
【００３１】
決定ブロック106 に戻り、別のホストトランザクションがこの時点では生成されないと決定された場合、論理動作は、決定ブロック108 に進む。決定ブロック108 では、生成されたばかりのホストトランザクション90がマップされるべきクライアントトランザクション70を生成することを管理者が選択したか否かが決定される。とくに、図２０Ｄに示されている実施形態では、ＧＵＩ42により発生された新しいクライアントトランザクションウインドウ800 の中のトランザクションタブ802 を管理者が選択したか否かが決定される。ＧＵＩ42はトランザクションサーバ12の表示装置34上に新しいクライアントトランザクションウインドウ800 を発生するので、管理者は必要なフィールドに容易に進むことができる。クライアントトランザクションタブ802 、クライアント入力フィールドタブ804 およびクライアント出力フィールドタブ806 という３つのタブが新しいクライアントトランザクションウインドウ800 のナビゲーションを支援している。示されているように、クライアントトランザクションタブ802 は、データをクライアントトランザクション名称フィールド808 中に入力するためのフィールドと、クライアントトランザクションＩＤフィールド810 とを提供する。クライアント入力フィールドウインドウ807 およびクライアント出力フィールドウインドウ809 は、異なったグラフィック表示から入力されたデータを示す。新しいクライアントトランザクションウインドウ800 には、標準的なＯＫボタン814 および取消しボタン816 も設けられている。さらに、将来のエンハンスメントのために適用ボタン818 が設けられているが、現時点では使用されていない。
【００３２】
管理者がクライアントトランザクション70を生成しないと決めた場合、論理動作は、管理者がそうしようと決めるまで決定ブロック108 の処理を繰返す。他方、管理者がクライアントトランザクション70を生成することを選んだ場合には、論理動作は、管理者により新しいクライアントトランザクションウインドウ800 中に入力されたトランザクション名称（フィールド808 ）およびトランザクションＩＤ（フィールド810 ）を使用してクライアントトランザクション70が生成されるブロック110 に進む。以下において、この情報を使用することによる実際のクライアントトランザクション70の生成が図８、２０Ｅおよび２０Ｆを参照してさらに詳細に説明されている。
【００３３】
クライアントトランザクション70を生成した後、論理動作は、管理者がＧＵＩにより発生された図２０Ｇに示されているＴｘＭａｐｐｅｒウインドウ900 によってクライアントトランザクション70を１以上のホストトランザクション90にマップすることを可能にされるブロック112 に進む。以下において、クライアントトランザクション70をマップするプロセスが図９および２０Ｇを参照してさらに詳細に説明されている。その後、論理動作は、管理者が別のクライアントトランザクション70を生成すると決めたか否かが決定される決定ブロック114 に進む。イエスならば、論理動作は、ブロック110 に戻って、管理者が所望する数のクライアントトランザクション70を生成してマップするまで、ブロック110 乃至114 が繰返される。
【００３４】
しかしながら、この時点で別のクライアントトランザクション70が生成されない場合でも、論理動作は決定ブロック114 から、クライアントトランザクションマップがトランザクション構成データベース40に保存されるブロック116 に進む。クライアントトランザクションマップにはクライアント入力フィールドが含まれ、これらのクライアント入力フィールドは、それらがマップされているホストトランザクション入力フィールドを参照する。この参照は、ホスト名およびトランザクション名を示すテキストストリングまたは任意の他のインジケータによって表されてもよい。同様に、クライアント出力フィールドは、それらがマップされているホストトランザクション出力フィールドを参照する。クライアントトランザクションマップが保存されると、構成モジュールはブロック117 で終了する。当業者は、図６が構成モジュール44の概要を示しており、また、ブロック中の処理が本発明の技術的範囲を逸脱することなく任意の順序で行われてもよいことを認識するであろう。
【００３５】
図７は、図６のブロック104 において要求されるホストトランザクション90を生成するために使用される論理手順を示すフロー図である。論理動作はブロック118 から始まり、ホストトランザクションマップがすでに存在しているか否かが決定される決定ブロック120 に進む。ホストトランザクションマップは、特定のホストトランザクションに対する入力および出力表示データを規定するファイルである。たとえば、いくつかのホストシステムはアプリケーションプログラムと、入力および出力表示データが種々の端末により使用される制御文字に無関係にフォーマットされることを可能にするホストアプリケーションとの間のインターフェースをサポートする。一例はインターナショナル・ビジネス・マシンズ（ＩＢＭ）社により生成されたベイシック・マッピング・サポート（ＢＭＳ）マップである。ホストトランザクションマップが存在している場合、論理動作はブロック126 に進み、このブロック126 では、予め存在しているホストトランザクションマップがホストシステム14からインポートされ、ホストトランザクション90に対する新しい入力および出力フィールドを生成するのではなく、むしろそのマップが使用される。
【００３６】
決定ブロック120 に戻り、ホストトランザクションマップが存在しない場合、論理動作は、ホストトランザクション90の入力フィールド92が管理者により生成されるブロック122 に進む。とくに、図２０Ｂに示されている本発明の１実施形態において、管理者がホストトランザクション90のトランザクション名（ＤＰＬ ＬＵ）およびトランザクションＩＤを入力し、図２０Ａに示されている新しいホストトランザクションウインドウ700 中のホスト入力フィールドタブ704 を選択した後に、編集ホストトランザクションウインドウ701 が発生される。それによって、管理者は、生成されている特定のホスト入力に対する特有の名称をホスト入力名フィールド720 中に入力することによってホスト入力92を生成することができる。
【００３７】
その後、管理者は、ホスト入力名フィールド720 において特定される入力フィールドに対するデータの内容を記述する別のフィールド中に追加情報を入力してもよい。たとえば、ホスト入力サイズフィールド722 は、特定のホスト入力フィールドのサイズをバイトまたはその他の単位で示す。ホスト入力フィールドタイプフィールド724 は、ホスト入力フィールド中に記憶されるデータのタイプを指定するために使用される。代表的なタイプには、ストリング、整数またはバイト流が含まれる。ホスト入力フォーマットフィールド726 は、ホスト入力フィールドタイプフィールド724 で指定されたホスト入力フィールドタイプに対するフォーマットのタイプを示す。ストリングフィールドタイプに対する代表的なフォーマット入力にはＡＳＣＩＩ，ＥＢＣＤＩＣ，パック１０進数および２進化１０進法（ＢＣＤ）が含まれ、整数およびバイトの両者について、フィールドタイプにはバイトの数が含まれる。
【００３８】
ホスト入力タイプフィールド728 もまた設けられており、このフィールド728 は、入力フィールドが要求される（データのソースへの参照を必要とする）か、あるいはデフォルト（静的データ）であるかを示す値を記憶する。ホスト入力値フィールド730 は、入力タイプがデフォルトである場合には入力フィールドに記憶される値を指定する。ホスト入力値フィールド730 は、入力フィールドに記憶される値が別のソースから獲得されなければならない場合には使用できない。ホスト入力フィールドタイプフィールド724 、ホスト入力フォーマットフィールド726 およびホスト入力タイプフィールド728 はそれぞれ、管理者が選択を行うことのできるプルダウンメニューとして構成されていることが認識されるであろう。適切なフィールドが全て管理者によって完成される（完成がＯＫボタン734 の選択によって通知される）と、完成したホスト入力フィールド92がホスト入力ウインドウ732 中に示される。たとえば、名称“ＴＸ”を有するホスト入力フィールド92は、デフォルトを指定した入力タイプと、Ｌ００２の値と、ストリングのフィールドタイプと、ＥＢＣＤＩＤのフォーマットと、および４のサイズとを有するものとして示されている。
【００３９】
図７に戻ると、ホストトランザクション90のホスト入力フィールド96が生成された後、論理手順は、ホストトランザクション90の出力フィールド98が管理者によって生成されるブロック124 に進む。とくに、図２０Ｃに示されている１実施形態において、管理者が図２０Ａに示されている新しいホストトランザクションウインドウ700 中の出力フィールドタブ706 を選択した後に、編集ホストトランザクションウインドウ703 が発生される。それによって、管理者は、図２０Ｂに示されている入力フィールドに類似したフィールド中に情報を入力することによってホスト出力94を生成することができる。そのフィールドの符号はプライム“´”を付けて示されており、それによって説明は同じであるが、入力フィールドではなく出力フィールドに関するものであることを表している。したがって、上述した図２０Ｂに対する説明は図２０Ｃにも該当する。認識されるように、入力および出力フィールドを生成する別の方法が本発明の技術的範囲を逸脱することなく使用されることができる。
【００４０】
図７に戻ると、ブロック122 および124 で入力フィールド96および出力フィールド98がそれぞれ生成された後、あるいはホストトランザクションマップがホストシステム14からインポートされた後、論理手順は、ホストトランザクション90をホストシステム14に実行依頼するためにホストプール、すなわち、ホスト記憶領域が利用可能か否かが決定されるブロック128 に進む。ホストプールは各ホストトランザクション90をホストシステム14上の特定の文脈と関連付けて処理を可能にする。当業者は、ある文脈が、ポインタによってシステムオブジェクトへのアクセスを可能にするシステムオブジェクトであることを認識するであろう。利用可能なホストプールが全くない場合、論理動作は、ホストシステム14の適切な領域に対するホストプール接続が生成されるブロック130 に進む。論理動作は、セッション、すなわち、トランザクションサーバ12とホストシステム14との間の通信の期間がホストプールに割当てられるブロック132 に進む。その後、論理動作は、ブロック133 で終了する。
【００４１】
ホストシステム14は、ＬＵ０およびＬＵ２領域のようなすでに規定された領域を有している。これらの領域は、処理が行われることを可能にし、特有のジョブまたはシステムタスクに割当てられる動的領域の可変サイズの細分化されたものである。本発明は、各ホストトランザクションを適切な領域に割当てる。たとえば、図４に示されているように、ＬＵ０インターフェースに対する“ＣＩＣＳ”ホストコネクタインターフェースモジュール51はホストシステム14のＬＵ０領域に割当てられる。各領域は動作している複数の作業スレッドを有しており、ホストトランザクション90に割当てられてもよい。特定の領域に割当てられたホストトランザクション90は、非同期的な方法で作業スレッドを共有してもよい。作業スレッドの割当てはそのトランザクションの実行の持続期間中行われているが、しかしながらそのトランザクションはある事象を待ちながらそのスレッドを放棄してもよい。これによって、本発明はホストシステム14の性能に影響を与えずに付加的なクライアント装置20を追加することが可能になる。図７の決定ブロック128 に戻ると、ホストプールがホストトランザクション90に対して利用可能である場合、ホストプールを生成してセッションを割当てるために追加の処理は必要ない。したがって、論理動作は、ブロック133 で直ちに終了する。
【００４２】
図６を参照して上述したように、所望のホストトランザクション90が生成されると（ブロック102 乃至106 ）、ホストトランザクション90にマップすべき少なくとも１つのクライアントトランザクション70が生成されなければならない。これら関して、図８は、図６のブロック110 で要求されるクライアントトランザクション70を生成するために使用される論理動作を示している。この論理動作はブロック138 から始まり、クライアントトランザクション70に対する入力フィールド86が管理者によって生成されるブロック140 に進む。図２０Ｅにさらに詳細に示されているように、管理者が新しいクライアントトランザクションウインドウ800 中の入力フィールドタブ804 を選択した後に、ＧＵＩ42は編集クライアントトランザクションウインドウ801 を発生する。それから、管理者は、生成されている特定のクライアント入力に対する特有の名称をクライアント入力名フィールド820 中に入力することによってクライアント入力フィールドを生成することができる。
【００４３】
その後、管理者は、クライアント入力名称フィールド820 において特定される入力フィールドに対するデータの内容を記述する別のフィールド中に追加情報を入力してもよい。クライアント入力サイズフィールド822 は、特定のクライアント入力フィールドのサイズをバイトまたはその他の単位で示す。クライアント入力フィールドタイプフィールド824 は、クライアント入力フィールド中に記憶されるデータのタイプを指定するために使用される。代表的なタイプには、ストリング、整数またはバイト流が含まれる。クライアント入力フォーマットフィールド826 は、クライアント入力フィールドタイプフィールド824 で指定されたクライアント入力フィールドタイプに対するフォーマットのタイプを示す。ストリングフィールドタイプに対する代表的なフォーマット入力にはＡＳＣＩＩ，ＥＢＣＤＩＣ，パック１０進数および２進化１０進法（ＢＣＤ）が含まれ、整数およびバイト流の両者について、フィールドタイプにはバイトの数を表す数が含まれる。クライアント入力タイプフィールド828 は、入力フィールドが要求される（データのソースへの参照を必要とする）か、あるいはデフォルト（静的データ）であるかを示す値を記憶する。クライアント入力値フィールド830 は、入力タイプがデフォルトである場合には入力フィールドに記憶される値を指定する。クライアント入力値フィールド830 は、入力フィールドに記憶される値が別のソースから獲得されなければならない場合には使用できない。フィールドタイプフィールド824 、フォーマットフィールド826 および入力タイプフィールド828 はそれぞれプルダウンメニューとして構成されていることが認識されるであろう。適切なフィールドが全て管理者によって完成されると、完成したクライアント入力フィールド86がクライアント入力ウインドウ832 中に示される。たとえば、名称“ＡｃｃｏｕｎｔＮｕｍｂｅｒ”を有するクライアント入力フィールド86は、要求を指定した入力タイプと、ストリングのフィールドタイプと、そのストリングに対してＥＢＣＤＩＤのフォーマットと、１４バイトのサイズとを有するものとして示されている。
【００４４】
図８に戻ると、クライアント入力フィールド86が生成された後、論理動作はクライアントトランザクション70の出力フィールド88が管理者によって生成されるブロック142 に進む。図２０Ｆに詳細に示されているように、管理者が新しいクライアントトランザクションウインドウ800 から出力フィールドタブ806 を選択した後、ＧＵＩ42が編集クライアントトランザクションウインドウ803 を発生する。それによって、管理者は、図２０Ｅに示されているクライアント入力フィールドに類似したフィールド中に情報を入力することによってクライアント入力フィールド86を生成することができる。そのフィールドに付けられている符号はプライム“´”を付けて示されており、それによって説明は同じであるが、入力フィールドではなく出力フィールドに関するものであることを表している。したがって、上述した図２０Ｅに対する説明は図２０Ｆにも該当する。クライアントトランザクション70の出力フィールド88および入力フィールド86が生成された後、図８の論理動作はブロック143 で終了する。
【００４５】
図６を参照して上述したように、所望のクライアントトランザクション70が生成される（ブロック110 ）と、管理者はクライアントトランザクション70を前に生成されたホストトランザクションにマップすることが可能になる（ブロック112 ）。図９は、図６のブロック112 で要求されるように１以上のホストトランザクションにクライアントトランザクション70をマップすることを可能にするために構成モジュール44によって使用される論理手順を示すフロー図である。一般に、マッピングプロセスは、ホストシステム14からデータを獲得することを要求されたホストトランザクション90にクライアントトランザクション70を関連付ける。関連付けられたホストトランザクション90は“依存ホストトランザクション”と呼ばれる。これは、クライアントトランザクション70がそれらに依存しているからである。
【００４６】
図９の論理動作はブロック148 から始まり、依存ホストトランザクション90が所定のクライアントトランザクション70に対して存在するか否かが決定されるブロック150 に進む。イエスならば、論理動作は、第１の依存ホストトランザクションが獲得されるブロック153 に進む。１つの依存ホストトランザクションも存在しない場合は、論理動作は、、図７に示されている上述のプロセスにしたがってホストトランザクションが生成されるブロック152 に進む。
【００４７】
少なくとも１つの依存ホストトランザクション90が存在すると、論理動作は、所定のクライアントトランザクション70のクライアント入力フィールド86が依存ホストトランザクション90の適切なホスト入力フィールド96にマップされるブロック154 に進む。図２０Ｇにさらに詳細に示されているように、管理者がマップトランザクションタブ902 を選択したときに、ＧＵＩ42がＴｘＭａｐｐｅｒウインドウ900 を発生する。ＴｘＭａｐｐｅｒウインドウ900 を使用することによって、管理者は入力および出力フィールドをドラッグして互いの上にドロップするためにドラッグおよびドロップ特徴を使用して、クライアントとホストとの間のトランザクションマッピングを容易に生成することができる。以下において、このプロセスは図１０および図２０Ｇを参照してさらに詳細に説明されている。
【００４８】
図９に戻ると、クライアント入力フィールド86がホスト入力フィールド96にマップされると、論理手順は、以下図１１および図２０Ｇを参照してさらに詳細に説明するように、管理者がＴｘＭａｐｐｅｒウインドウ900 によって現在の依存ホストトランザクション90のホスト出力フィールド98を所定のクライアントトランザクション70のクライアント出力フィールド88にマップすることを可能にされるブロック156 に進む。次に、決定ブロック158 において、現在の依存ホストトランザクション90がクライアントトランザクション70を適当にマップするために必要とされる最後の依存ホストトランザクションであるか否かが論理により決定される。ノーならば、論理動作は、次の依存ホストトランザクション90が検索されるブロック160 に進む。その後論理動作は、ブロック154 に戻り、所定のクライアントトランザクション70に関連付けられた全ての依存ホストトランザクション90がそのクライアントトランザクション70にマップされるまで、ブロック154 乃至160 が繰返される。したがって、現在の依存ホストトランザクション90が最後の依存ホストトランザクションである場合には、クライアントトランザクション70のマッピングは完了し、論理動作は、ブロック159 で終了する。
【００４９】
図１０は、図９のブロック154 において要求されるように所定のクライアントトランザクション70のクライアント入力フィールド86を依存ホストトランザクション90のホスト入力フィールド96にマップするために構成モジュール44により使用される論理手順を示すフロー図である。論理動作はブロック161 から始まり、第１のホスト入力フィールド96（現在のホスト入力フィールド）（図５中のＨＡＩ−１を参照）がホストトランザクション90から検索されるブロック162 に進む。その後、論理動作は、管理者が依存ホストトランザクション90の現在のホスト入力フィールド96に対するデータのソースを指定するブロック164 に進む。図７および図２０Ｂを参照して上述したように、管理者がホスト入力タイプフィールド728 において“デフォルト”を選択した場合、その管理者はまたホスト入力値フィールド730 において値を指定する。しかしながら、管理者がホスト入力タイプフィールド728 において“要求”を選択した場合には、ホスト入力をシステム設定、異なったトランザクションからのホスト入力またはクライアント入力にマップしなければならない。このマッピングは以下において図２０Ｇを参照して説明される。データのソースは、ホスト出力データ（すなわち、別のホストトランザクション90のホスト出力フィールドに記憶されたデータ）、静的データ（たとえば、デフォルト値またはシステム設定のような）、またはクライアント入力データ（すなわち、マップされているクライアントトランザクション70のクライアント入力フィールドに記憶されたデータ）であってもよい。その後、論理動作は、管理者がドラッグ・ドロップ操作を使用してデータのソースを現在のホスト入力フィールド96にマップするブロック166 に進む。
【００５０】
とくに図２０Ｇに示されているように、クライアントトランザクションプルダウンメニュー914 により、管理者はマップされるべきクライアントトランザクション70（Ｃ ＤＰＬ ＬＵ０）を選択することが可能になる。クライアントトランザクションが選択されると、クライアント入力フィールド96（第１，第２）がクライアントトランザクション入力フィールドウインドウ918 内に現れ、クライアント出力フィールド98（結果）がクライアントトランザクション出力フィールドウインドウ920 内に現れる。その後、管理者はホストトランザクションのドロップダウンメニュー916 を使用して第１の依存ホストトランザクション（ＡＭＡＩ）を選択する。再び、第１の依存ホストトランザクションが選択されると、ホスト入力フィールドウインドウ922 が選択されたホストトランザクションに対して要求されるホスト入力フィールド96を表示し、ホスト出力フィールドウインドウ924 がホストトランザクションを処理した後でホストシステム14から得られたホスト出力フィールド98を表示する。たとえば、管理者はクライアント入力フィールド“第１”をホスト入力フィールド“ＡＭＲＴ０２９”上にドラッグし、所望のホスト入力フィールド“ＡＭＲＴ０２９”と関連付けられたマップフィールド923 中にこの“第１”をドロップすることができる。当業者は、ホスト入力フィールド“ ＴＸＣＯＤＥ”が、マップされたデータが静的であるデフォルトにマップされていることを認識するであろう。
【００５１】
第１のホスト入力フィールド96がマップされた後、論理動作は、依存ホストトランザクション90中の最後のホスト入力フィールド96が処理されたか否かを決定する決定ブロック168 に進む。ノーならば、論理動作は、次のホスト入力フィールド96が検索されて現在のホスト入力フィールドになるブロック170 に進む。その後、論理動作はブロック164 に戻り、依存ホストトランザクション90の全てのホスト入力フィールド96がマップされるまで、ブロック164 乃至170 が繰返される。したがって、決定ブロック168 において、依存ホストトランザクションの現在のホスト入力フィールドが最後のホスト入力フィールドである場合、ホスト入力フィールドに対するクライアント入力フィールドのマッピングは完了し、論理動作はブロック169 で終了する。
【００５２】
図１１は、図９のブロック154 において要求されるようにホスト出力フィールド98をクライアント出力フィールド88にマップするために構成モジュール44により使用される論理手順を示すフロー図である。論理手順は、ブロック171 から始まり、第１のクライアント出力フィールド88（現在のクライアント出力フィールド）（図５のＣＯ−１参照）がマップされているクライアントトランザクション70から検索されるブロック172 に進む。その後、論理動作は、管理者が現在のクライアント出力フィールド88に対するデータ（すなわち、上述したように、データ出力、静的またはクライアント入力）のソースを指定するブロック174 に進む。これもまた、管理者がクライアント入力タイプフィールド828 において“デフォルト”または“要求”をどのようにして選択することができるかを示している図２０Ｅを参照して上述された。その後、論理動作は、管理者がドラッグ・ドロップ操作を使用してデータのソースを現在のクライアント出力フィールド88（図５におけるＣＯ−１に記憶された“ＨＡＯ−１”参照）にマップするブロック176 に進む。
【００５３】
とくに図２０Ｇに示されているように、クライアントトランザクションのプルダウンメニュー914 およびホストトランザクションのプルダウンメニュー916 が上述のようにクライアントトランザクション70およびマップされるべきホストトランザクション90を選択するために管理者により使用される。しかしながら、この場合、管理者はホストトランザクション出力フィールド96（ＡＭＲＴ２１５）を選択し、それをクライアントトランザクション出力フィールドウインドウ920 上にドラッグして、所望のクライアント出力88と関連付けられたクライアントマップフィールド921 中にドロップしている。
【００５４】
クライアント出力フィールド88がマップされた後、論理動作は、現在のクライアント出力フィールド88が所定のクライアントトランザクション70の中の最後のクライアント出力フィールドであるか否かが決定される決定ブロック178 に進む。ノーである場合、論理動作は、クライアントトランザクション70の次のクライアント出力フィールド88が検索されて現在のクライアント出力フィールドになるブロック180 に進む。その後、論理動作はブロック174 に戻り、所定のクライアントトランザクション70の全てのクライアント出力フィールド88がマップされるまで、ブロック174 乃至180 が繰返される。したがって、決定ブロック178 において、クライアントトランザクション70の現在のクライアント出力フィールド88が最後のクライアント出力フィールドである場合、クライアント出力フィールド88のマッピングは完了し、論理動作は、ブロック179 で終了する。
【００５５】
再び図２０Ｇを参照すると、ＴｘＭａｐｐｅｒウインドウ900 にはシステムフィールドウインドウ926 およびステージフィールドウインドウ928 も含まれている。システムフィールドウインドウ926 は、現在の日付、時刻およびサーバ名のようなシステム情報927 のための参照を含んでいる。システム情報927 は同様に、上述したようにドラッグされて、ホスト入力フィールドウインドウ922 またはクライアント出力フィールドウインドウ920 のいずれにドロップされてもよいことが認識されるであろう。他方、ステージフィールドウインドウ928 は、別のホストトランザクション90ではホストトランザクションの入力フィールド96用のデータソース（図５におけるＨＡＩ−３に記憶される“ＨＢＯ−１”参照）として使用されるホスト出力フィールド98のための一時記憶域として管理者によって使用されることができる。管理者は最初にホストトランザクションのプルダウンメニュー916 を使用してホストトランザクションを選択し、所望のホスト出力フィールド98を選択して、それをステージフィールドウインドウ928 中にドロップする。その後、管理者は別のホストトランザクション選択し、ステージフィールドウインドウ928 中の出力を別のホストトランザクションのホスト入力フィールドウインドウ922 にドラッグすることができる。上述したように、この実施形態により、ユーザはグラフィック手順を使用して、基礎をなすコードを全く書込まずにクライアントトランザクションを生成しマップすることが可能になる。
【００５６】
図６を参照して上述したように、管理者が所望のクライアントトランザクション70を全て生成してマップすると、クライアントトランザクションマップは、ランタイムトランザクションモジュール48によるアクセスのためにトランザクションデータベース40中に記憶される。このようにしてデータが記憶されると、ランタイムトランザクションモジュール48をスタートさせて、ホストシステム14上に存在するデータに対する直接トランザクションアクセスを行うために十分な情報が利用できる。
【００５７】
図１２は、直接トランザクションマッピングプログラム36のランタイムトランザクションモジュール48により使用される論理の概要を示すフロー図である。論理動作手順はブロック181 からスタートし、ブロック182 に進み、このブロック182 においてランタイムトランザクションモジュール48が初期化される。この初期化プロセス48は以下において図１３を参照してさらに詳細に説明される。簡単に述べると、初期化プロセスはトランザクションデータベース40を開いて、そこに記憶されている各クライアントとホストとの間のトランザクションマッピングのテンプレートを構成する。その後、これらのテンプレートは、適切なホスト情報を獲得するためにクライアント装置20によりホストシステム14に対してなされたクライアントトランザクションリクエストの経路を設定するために使用される。ランタイムトランザクションモジュール48を初期化した後、論理動作は、クライアント通信のサーバ側がソケットを開いてリソースをチェックし、クライアントトランザクションが処理できるように割当てられたワーカースレッドをスタートさせること等により初期化されるブロック184 に進む。次にブロック186 において、トランザクションサーバ12とホストシステム14との間のセッションが始まるように、ホストプールモジュール52が初期化される。ホストシステム14との通信を設定するために必要な初期化は当業者により容易に認識されるので、ここではさらに説明しない。
その後、論理動作はブロック188 に進み、ここで論理動作はクライアントトランザクションリクエストをクライアント装置20から受信するために待っている。クライアントトランザクションリクエストが受信されると、論理動作は、リクエストされたトランザクションに対応したテンプレートが存在することを確実にするためにクライアントトランザクションリクエストがランタイムトランザクションモジュール48によりその妥当性を検査されるブロック190 に進む。この妥当性検査プロセスは、以下において図１５を参照してさらに詳細に説明される。
【００５８】
その後、論理手順はブロック192 に進み、このブロック192 においてクライアントトランザクションリクエストの経路が設定され、リクエストされたクライアントトランザクション70にマップされるホストトランザクション90が適切なデータを得るためにホストシステム14に実行依頼される。以下、クライアントトランザクションリクエストの処理は図１７を参照してさらに詳細に説明されている。その後、論理動作は、管理者がランタイム動作の停止をリクエストしたか否かが決定される決定ブロック194 に進む。答えがノーならば、論理動作は、そのプロセスが別のクライアントトランザクションリクエストを待っているブロック188 に戻り、したがってブロック188 乃至194 が繰返される。ランタイム動作が停止された場合、論理動作はブロック195 で終了する。ランタイム動作が停止されると、トランザクションサーバ12はもはやトランザクションの経路設定をせず、リソースの割当てを解除することのできるプロセスを行う。
【００５９】
図１３は、図１２のブロック182 において要求されるようにランタイムトランザクションモジュールを初期化するためにそのランタイムトランザクションモジュール48によって使用される論理手順を示すフロー図である。一般に、初期化プロセスは、トランザクションデータベース40に記憶されているクライアント出力フィールドおよびホスト入力フィールド中の参照（代表的に、本分の参照）をランタイム動作中に実行されるアドレス可能な参照（ポインタ）に分解することによって、トランザクションデータベース40に記憶されている各クライアントとホストとの間のトランザクションマッピングのテンプレートを生成する。この時点で参照をアドレス可能な参照に分解することによって、トランザクションの処理がさらに速くなる。
【００６０】
図１３中の論理手順はブロック199 から始まり、構成モジュール44によって生成されたトランザクションデータベース40が開かれるブロック200 に進む。次にブロック202 において、トランザクションデータベース40に記憶された第１のクライアントトランザクション70が検索される。当業者は、トランザクションデータベース40全体の内容がトランザクションサーバ12のマスメモリ36中に一時にロードされるか、あるいは必要とされたときにその内容全体より少ない量の部分がロードされることが可能であることを認識するであろう。その後、論理動作は、検索されたクライアントトランザクション70の第１のクライアント出力フィールド88（現在のクライアント出力フィールド）の内容が読出されるブロック204 に進む。決定ブロック206 において、現在のクライアント出力フィールド88（図５中のＣＯ−１参照）がホスト出力フィールド98にマップされているか否かが決定される。ノーならば、クライアント出力フィールド88はローカルデータソース（たとえば、システム時間、システム日付）にマップされなければならず、論理動作は、ブロック208 に進み、このブロック208 においてローカルデータソースからのデータがクライアント出力フィールド中にコピーされる。
【００６１】
現在のクライアント出力フィールド88がホスト出力フィールド98にマップされている（たとえば、図５中のＨＡＯ−１にマップされたＣＯ−１参照）場合、論理動作は、ブロック210 に進み、このブロック210 において、ホスト出力フィールド（図５中のＨＡＯ−１参照）に対する内容、すなわち同じホストトランザクション90のホスト入力フィールド96を発生するホスト入力フィールド（図５中のＨＡＩ−１，ＨＡＩ−２，ＨＡＩ−３参照）は、ポインタのようなアドレス可能な参照に分解される。ホスト入力フィールド96を分解するプロセスは、図１４を参照して以下さらに詳細に説明する。ホスト入力フィールド96を分解した後、論理手順はブロック212 に進み、このブロック212 において、現在のクライアント出力フィールド88が検索されたクライアントトランザクション70の最後のクライアント出力フィールドであるか否かが決定される。ノーならば、論理動作は、次のクライアント出力フィールド88が検索されたクライアントトランザクション70から検索されて、現在のクライアント出力フィールドになるブロック214 に進む。その後、論理動作はブロック206 に戻り、ブロック206 乃至214 が各クライアント出力フィールド88に対して繰返される。ブロック206 ，208 ，210 ，212 および214 において行われた処理によって、妥当性検査中に使用され、図１５において説明されるクライアントトランザクションに対するテンプレートが生成されることが認識されるであろう。
【００６２】
現在のクライアント出力フィールド88（図５中のＣＯ−３参照）が検索されたクライアントトランザクション70の中の最後のクライアント出力フィールドである場合、論理動作は決定ブロック216 に進み、現在のクライアントトランザクション70がトランザクションデータベース40中の最後のクライアントトランザクションであるか否かが決定される。ノーならば、ブロック218 において次のクライアントトランザクション70が検索され、トランザクションデータベース40に記憶されている各クライアントトランザクション70に対してブロック204 乃至218 が繰返される。決定ブロック216 において、現在のクライアントトランザクション70が最後のクライアントトランザクションである場合、ランタイムトランザクションモジュール48を初期化するプロセスは完了し、ブロック219 において論理処理が終了する。
【００６３】
図１４は、図１３のブロック210 で要求されるようにホスト入力フィールドを分解するために使用される論理手順を示すフロー図である。論理手順はブロック220 からはじまり、前にマップされたホストトランザクション90がトランザクションデータベース40からロードされるブロック221 に進む。ホストトランザクション90は、上述したように構成モジュール44により現在のクライアントトランザクション70にマップされたことが認識されるであろう。その後、論理動作は、第１のマップされたホスト入力フィールド96（現在のマップされたホスト入力フィールド）（図５中のＨＡＩ−１参照）がホストトランザクション90から獲得されるブロック222 に進む。その後、論理動作は、現在のホスト入力フィールド96が別のホストトランザクション90からのホスト出力フィールド98にマップされるか否かを決定する決定ブロック224 に進む。ノーならば、論理動作は、ブロック226 に進み、このブロック226 において、ローカルデータソースからのデータまたはクライアント入力データへのアドレス可能な参照が現在のホスト入力フィールド（図５におけるＨＡＩ−１およびＨＡＩ−２参照）中に記憶される。
【００６４】
決定ブロック224 に戻って、現在のホスト入力フィールド96が別のホストトランザクション90からのホスト出力フィールド98にマップされている（たとえば、図５中のＨＡＩ−３参照）場合、論理動作はブロック228 に進み、このブロック228 において、現在のホストトランザクションがマップされている別のホストトランザクションのホスト入力フィールド96が最初に分解される。したがって、図１４に示されている同じ論理動作に対して再帰呼出しが行われ、ロードされて分解されたホストトランザクション90は、ホスト入力フィールドにマップされたホスト出力フィールドを有するホストトランザクションである。
【００６５】
このような処理の一例は、ホストトランザクションＡの入力フィールドＨＡＩ−３がホストトランザクションＢの出力フィールドＨＢＯ−１にマップされている図５に示されている。したがって、ホストトランザクションＡの入力フィールドＨＡＩ−３が分解されることができる前に、ホストトランザクションＢのホスト入力フィールド（ＨＢＩ−１およびＨＢＩ−２）が分解されていなければならない。したがって、ホストトランザクションが別のホストトランザクションを参照するホスト入力フィールド96を有しなくなるまでホストトランザクション90を分解するためにプロセスが続行する。この再帰プロセスが完了すると、論理動作は図１４において、現在のホスト入力フィールド96がロードされたホストトランザクション90の中の最後のマップされたホスト入力フィールドであるか否かが決定される決定ブロック230 に進む。ノーならば、論理動作はブロック232 に進み、このブロックにおいて次のマップされたホスト入力フィールド96が検索されて現在のマップされたホスト入力フィールドになる。その後、論理動作は、決定ブロック224 に戻り、ブロック224 乃至232 がロードされたホストトランザクション90中の各マップされたホスト入力フィールド96に対して繰返される。決定ブロック230 において、現在のホスト入力フィールド96が最後のマップされたホスト入力フィールドである（例えば、図５中のＨＢＩ−２参照）場合、ホスト入力フィールドの分解は完了し、ブロック233 において論理動作が終了する。
【００６６】
図１５は、図１２のブロック190 において要求されるようにクライアント装置20により実行依頼されたクライアントトランザクションリクエストの妥当性を検査するために使用される論理手順を示すフロー図である。クライアントトランザクションリクエストのクライアント出力フィールド88の妥当性検査は、ホスト入力フィールド96を分解するために図１４に示されたものに類似した論理処理を使用する。この論理処理はブロック239 から始まり、ブロック240 に進み、このブロックにおいて、クライアントトランザクションがリクエストされたときにクライアントトランザクション70およびホストトランザクション90のクライアントおよびホスト入力および出力フィールドが再度分解されなくてもよいように、ランタイムトランザクションモジュール48を初期化しながら生成されたクライアントトランザクションテンプレートがコピーされる。そのテンプレートを使用することによって、本発明は、処理前の適時にクライアントトランザクションリクエストの妥当性を検査することができる。別の実施形態において、テンプレートを使用する代りに、妥当性検査プロセスが、クライアントトランザクションリクエストが受信されたときに各クライアントトランザクションリクエストに対する入力および出力を分解する。しかしながら、テンプレートを使用する実施形態では、クライアントトランザクションテンプレートをコピーした後、論理動作は決定ブロック242 に進み、このブロックにおいて、リクエストされたテンプレートが存在するか否かが決定される。テンプレートが存在しない場合、論理動作は、エラーメッセージがクライアント装置20に送られるブロック244 に進む。その後、ブロック245 で論理処理が終了する。
【００６７】
決定ブロック242 に戻って、リクエストされたテンプレートが存在する場合、論理処理は、ブロック246 に進み、このブロック246 で、リクエストされたクライアントトランザクションテンプレートの第１のクライアント出力フィールド88（現在のクライアント出力フィールド）が検索される。その後、論理処理は、現在のクライアント出力フィールド88がホスト出力フィールド98にマップされたか否かが決定される決定ブロック248 に進む。ノーならば、論理処理はブロック250 に進み、このブロックにおいてローカルデータソースからのデータが現在のクライアント出力フィールド88に記憶される。ローカルデータソースには、静的データまたはシステム呼出しからのデータが含まれていてもよい。決定ブロック248 を再び参照すると、一般的には、現在のクライアント出力フィールド88はホスト出力フィールド98にマップされるので、論理処理はブロック252 に進み、このブロックで、ホスト出力フィールド98を発生するホスト入力フィールド96が処理される。ホスト入力フィールドの処理は、以下において図１６を参照してさらに詳細に説明する。その後、論理処理は決定ブロック254 に進み、このブロックにおいて、現在のクライアント出力フィールド88がテンプレート中の最後のクライアント出力フィールドであるか否かが決定される。ノーならば、論理処理は、次のクライアント出力フィールドが検索されて現在のクライアント出力フィールドになるブロック256 に進む。その後、論理処理は決定ブロック248 に戻り、クライアント出力フィールド88の全てが処理されるまでブロック248 乃至256 が繰返される。
【００６８】
決定ブロック254 に戻ると、現在のクライアント出力フィールド88が最後のクライアント出力フィールドである場合、クライアントトランザクションリクエストの妥当性検査が完了し、ブロック257 において論理処理が終了する。妥当性検査プロセスは、クライアント・ホストマッピングが正しく、クライアント出力フィールド88が実在するホスト出力フィールド98に適切に分解されることを確実にするために付加的なチェックを行うことが認識されるであろう。マッピングが誤って分解された（すなわち、実在しないアドレスに分解された）場合、ランタイムトランザクションモジュール48に障害が生じる。
【００６９】
図１６は、図１５のブロック252 において要求されるようにホスト入力フィールドを処理するために使用される論理手順を示すフロー図である。概して、クライアントトランザクションリクエストの妥当性検査には、ホストシステム14から所望のデータを得るために必要とされる参照が存在し、クライアント出力フィールド88に適切にマップされていることの妥当性の検査が含まれる。上述したように、参照はホスト名、トランザクション名および入力名を示すテキストストリングであってもよいし、あるいは任意の他のタイプのインジケータであってもよい。クライアントトランザクション出力フィールド88は適切にマップされなければならず、また、そのクライアントトランザクション出力フィールド88に対するデータを発生する任意のホストトランザクション90もまたその入力フィールド96が適切にマップされなければならない。図１６は、ホスト入力フィールド96が適切にマップされることを確実にすることを説明している。
【００７０】
論理処理は、ブロック258 から始まり、ブロック260 に進み、このブロックにおいて第１のマップされたホスト入力フィールド98（現在のマップされたホスト入力フィールド）がクライアントトランザクション70にマップされたホストトランザクション90から検索される。その後、論理処理は、現在のホスト入力フィールド88がホスト出力フィールド98にマップされているか否かが決定される決定ブロック262 に進む。ノーならば、論理動作は、ブロック264 に進み、ローカルデータソースからのデータを現在のホスト入力フィールド（たとえば、図５におけるＨＡＩ−２参照）にコピーする。他方において、ホスト入力フィールド96が別のホストトランザクション90のホスト出力フィールド98にマップされた（たとえば、図５におけるＨＡＩ−３参照）場合、図１６に示されている同じ論理処理に対して再帰呼出しが行われ、マップされたホスト入力フィールド96は、ホスト入力フィールドにマップされたホスト出力フィールドを有するホストトランザクション（図５のトランザクションＢ参照）である。上述したように、図５のホストトランザクションＡに対するホスト入力フィールドＨＡＩ−３はホストトランザクションＢのホスト出力フィールドＨＢＯ−１にマップされる。したがって、ホストトランザクションＡの妥当性が検査されることができる前に、ホストトランザクションＢのホスト入力フィールド96が処理されていなければならない。図１７に示されているようにホストシステム14上で処理するために、ホストトランザクション90が依頼されることができるか否かを決定する場合に、類似した論理処理が使用される。
【００７１】
その後、論理動作は、ブロック268 に進み、このブロックにおいて、現在のマップされたホスト入力フィールド98が所定のホストトランザクション中の最後のマップされたホスト入力フィールドであるか否かが決定される。ノーならば、論理処理はブロック270 に進み、次のマップされたホスト入力フィールド98を獲得する。その後、論理処理は決定ブロック262 に戻り、ブロック262 乃至270 が各ホスト入力フィールドに対して繰返される。決定ブロック268 に戻って、現在のマップされたホスト入力フィールドが最後のマップされたホスト入力フィールドである場合、ホスト入力フィールドの処理は完了し、ブロック271 において論理処理が終了する。
【００７２】
図１７は、上述した妥当性検査プロセスが完了した後で、図１２のブロック192 において要求されるようにクライアントトランザクションリクエストを処理するためにランタイムトランザクションモジュール48により使用される論理手順を示すフロー図である。示されているように、クライアントトランザクション70の処理は反復プロセスである。本発明は、多数のクライアントトランザクション70が種々の完了段階にあるように、クライアントトランザクション70を同時に処理する。各クライアントトランザクション70が多数のホストトランザクション90にマップできるようにすることにより、ホストトランザクション90は、クライアント装置20のウェブベースのユーザがトランザクションの調整を認識することなく異なった情報へのアクセスにより異なったホストシステム4 において実行することができる。クライアント装置20は、所望の結果を得るためにただ１つのトランザクションをリクエストすればよい。図１７に示されている処理の各反復によって、各依存ホストトランザクション90がホストシステム14によって完了されたか否かを決定するためにクライアントトランザクション70が再検討される。特定のクライアントトランザクション70に対する全ての依存ホストトランザクション90が完了すると、クライアントトランザクション出力フィールドはクライアント装置20に戻される。
【００７３】
再び図５を参照すると、図１７中の処理ループの１回の反復で、ホストトランザクションＢはホストシステム14に実行依頼される。それ以降の反復中に、ホストトランザクションＢが完了し、ホストトランザクションＡが実行依頼されなければならないことが論理により決定される。各クライアントトランザクション70に対する処理は、以下において図１７を参照してさらに詳細に説明される。認識されるように、各クライアントトランザクション70は、そのクライアントトランザクションを処理する作業スレッドに割当てられている。クライアントトランザクションの処理は非同期的に行われ、事象駆動型である。クライアントトランザクションは、別のクライアントトランザクションが同じ作業スレッドを使用することができるように、事象を待っているときに、その作業スレッドを放棄してもよい。したがって、図１７に示されている処理は、別のクライアントトランザクションと同時に発生している可能性がある。
【００７４】
論理処理は、ブロック272 から始まってブロック273 に進み、このブロックにおいて、所定のクライアントトランザクションに対する第１のマップされたホストトランザクション90が検索される。その後、論理処理は、第１のマップされたホストトランザクション90が完了したか否か、すなわち、それが所望のデータを含んでいるホストシステム14によって戻されたか否かが決定される決定ブロック274 に進む。ノーならば、論理処理は決定ブロック276 に進み、このブロックにおいて、ホストトランザクション90が完了のためにホストシステム14に実行依頼されることができるか否かが決定される。全てのホスト入力フィールドが利用できる場合、ならびに作業スレッドが利用可能である場合に、ホストトランザクション90が実行依頼されることができる。答えがイエスならば、論理処理はブロック278 に進み、このブロックで、ホストトランザクション90はホスト接続モジュール50を介してホストシステム14に実行依頼される。ホストトランザクションの実行依頼は以下において図１８を参照してさらに詳細に説明されている。ランタイムトランザクションモジュール48がホストトランザクションをホスト接続モジュール50に実行依頼した後、論理動作は、以下に説明する決定ブロック286 に進む。
【００７５】
決定ブロック276 に戻って、ホストトランザクション90が実行依頼されることができない（すなわち、それが別のホストトランザクションに依存している）場合、論理処理は再び決定ブロック286 に進む。ここで決定ブロック274 に戻ると、ホストトランザクション90が完了した場合、論理処理は決定ブロック280 に進み、このブロックで、そのトランザクションが失敗したか否かが決定される。イエスならば、論理動作は、決定ブロック284 に進み、このブロックにおいて、エラーメッセージがクライアント装置20に送られて、クライアントトランザクションをリクエストする。その後、論理動作は、ブロック285 で終了する。
【００７６】
決定ブロック286 において、現在のホストトランザクション90がこのクライアントトランザクションに対する最後のホストトランザクションであるか否かが決定される。ノーならば、論理処理は、現在のクライアントトランザクションにマップされた次のホストトランザクション90が検索されるブロック288 に進む。その後、論理処理は決定ブロック274 に戻り、ブロック274 −288 は現在のクライアントトランザクションにマップされた各ホストトランザクションに対して繰返される。
【００７７】
決定ブロック286 に戻ると、ホストトランザクション90が特定のクライアントトランザクションリクエストに対する最後のホストトランザクションである場合には、論理処理はこの特定のクライアントトランザクションリクエストに対するホストトランザクション90が全て完了したか否か、すなわち、ホストトランザクションの全てが、適切なデータを完備したホストシステム14によって実行依頼され、戻されたか否かが決定される決定ブロック290 に進む。イエスならば、論理処理はブロック292 に進み、このブロックで、クライアントトランザクションにより所望された完了したホスト出力フィールド98からのデータ（すなわち、クライアント出力フィールド88にマップされたデータ）がクライアントトランザクションリクエストを行ったクライアント装置20に戻される。その後、論理処理はブロック293 で終了する。
【００７８】
決定ブロック290 に戻って、完了される必要のある、すなわちホストシステム14によって実行依頼されて戻される必要のあるホストトランザクションがまだ存在している場合、論理処理は決定ブロック294 に進む。決定ブロック294 において、論理処理は、現在のクライアントトランザクション12にマップされる少なくとも１つのホストトランザクション90がホストシステム14に実行依頼されたか否かを決定する。ノーならば、論理処理はブロック296 に進み、このブロックにおいてエラーメッセージがクライアント装置20に送られ、ブロック297 で論理処理が終了する。
【００７９】
決定ブロック294 に戻ると、少なくとも１つの依存ホストトランザクション90がホストシステム14に実行依頼された場合、論理処理は、前に実行依頼されたホストトランザクション90がホストシステム14によって戻されるまで、処理は休眠状態になる（すなわち、その作業スレッドを放棄する）ブロック298 に進む。ホストトランザクション90が戻されると、論理処理はブロック272 に戻り、完了した依存ホストトランザクション90により現在のクライアントトランザクション70を再処理するためにブロック272 乃至298 が繰返される。現在のクライアントトランザクションにマップされた各ホストトランザクション90がホストシステムによって実行依頼され、完了され、戻されるまで（あるいは、あるエラー状態が発生するまで）、図１７の論理処理が繰返されることが認識されるであろう。さらに、各クライアントトランザクションリクエストは、別のクライアントトランザクションリクエストと同時に上記の論理処理を使用していることが認識されるであろう。
【００８０】
図１８は、図１７のブロック278 において要求されるようにホストトランザクション90をホストシステム14に実行依頼するためにホスト接続モジュール50により使用される論理手順を示すフロー図である。論理処理はブロック301 から始まり、ブロック302 に進み、このブロックにおいて、ホストトランザクション90のホスト入力フィールド96は、管理者によって構成プロセス中に新しいホストトランザクションウインドウ700 の中で指定されたホストシステム14に対する要求にしたがってフォーマットされる。その後、論理処理はブロック304 に進み、このブロックにおいて、フォーマットされたホスト入力フィールド98は、ホストプールモジュール52によりそれに割当てられたセッション中にホストシステム14への実行依頼のためにホストプール待ち行列中に挿入される。ホストプール待ち行列の処理は、以下において図１９を参照してさらに詳細に説明する。
【００８１】
フォーマットされたホスト入力フィールド98がホストシステム14への実行依頼のためにホストプール待ち行列中に挿入された後、論理処理はブロック306 に進み、エラーまたは完了したホストトランザクションをホストシステム14からホストプールモジュール52を介して受取るまで、このプロセスは休眠状態になる。したがって決定ブロック308 で、ホスト入力フィールド96をホストシステムに実行依頼した時にシステムエラーが存在したか否かが決定される。システムエラーは、ホストシステム14への接続が作動状態ではないことを示す。イエスならば、失敗したトランザクションがブロック310 でランタイムトランザクションモジュール48に戻されて、ブロック311 で論理処理が終了する。その後、ランタイムトランザクションモジュールは何等かのクリーンアップ動作を行って、クライアント装置20に知らせる（図１７中のブロック280 乃至284 参照）。
【００８２】
決定ブロック308 に戻って、システムエラーが存在しなかった場合、論理処理は決定ブロック312 に進み、このブロックにおいてプレリミナリ(preliminary) アプリケーションエラーが発生したか否かが決定される。プレリミナリアプリケーションエラーは、ホストシステムがホストトランザクションリクエストを拒否したときに発生する。このエラーが発生した場合、失敗したトランザクションがランタイムトランザクションモジュール48に戻され（図１７中のブロック280 乃至284 参照）、その後、ホストトランザクション90を実行依頼する論理処理がブロック315 で終了する。そのエラーがプレリミナリアプリケーションエラーではない場合、論理動作はブロック316 に進み、このブロックにおいて、完了したホストトランザクション90がランタイムトランザクションモジュール48に戻される。ホストトランザクションをランタイムトランザクションモジュール48に送った後、ホストトランザクションを実行依頼する論理処理がブロック317 で終了する。
【００８３】
図１９は、図１８のブロック304 において要求されるようにホストプールモジュール中の処理に対して使用される論理手順を示すフロー図である。簡単に述べると、ホストプールモジュール52は、完了のためにホストシステム14に送られる必要のあるホストトランザクション90を管理する。ホストプールモジュール52は、ホストトランザクション90に関連したセッションを決定する。１実施形態において、ホストプールモジュール52はセッションに関する統計を集めて、ホストトランザクション90を実行依頼するために使用すべき最良のセッションを決定する。決定ブロック322 において、新しいホストトランザクション90がホストプールモジュール52の待ち行列において受取られたか否かが決定される。図１８のブロック304 に示されているようにフォーマットされたホスト入力フィールドがホストプール待ち行列中に挿入された後、新しいホストトランザクション90が待ち行列において受取られる。論理処理は、指定されたホストプールセッションが利用可能か否かが決定される決定ブロック324 に進む。ホストプールセッションは管理者によって構成中に特定される。そのホストプールセッションが利用できない場合、論理処理は、エラーメッセージが直接トランザクションマッピングプログラム38のホスト接続モジュール50に送られるブロック326 に進む。その後、論理処理はブロック306 において図１８へ戻る。
【００８４】
決定ブロック324 に戻って、ホストプールセッションが利用可能である場合、論理処理はブロック328 に進み、このブロックにおいて最良のホストプールセッションが識別される。最良のホストプールセッションは、セッションに関する統計を評価し、各セッションにおいて生じる故障をカウントすることによって決定される。最小量のエラーおよび障害を有するセッションが最良のセッションとみなされる。その後、論理処理はブロック330 に進み、フォーマットされたホスト入力フィールド96が最良のホストプールセッションでホストシステム14に送られる。その後、ホストプール待ち行列は、ブロック332 に示されているように、完了したホストトランザクションすなわちホスト出力の全てがホストシステムから受取られるまで休眠状態になる。ホストトランザクション90を完了するためにホストシステム14上で行われた処理は技術的によく知られているので、ここでは詳しくは説明しない。完了したホストトランザクション90をホストシステム14から受取ると、論理処理は、エラーがあるか否かが決定される決定ブロック334 に進む。イエスならば、論理処理は、上述したようにエラーメッセージが50に送られる決定ブロック326 に進む。エラーがなかった場合には、論理処理はブロック336 に進んで、完了したホストトランザクションをホスト接続モジュールに戻す。
【００８５】
本発明の好ましい実施形態が例示および説明されているが、本発明の技術的範囲を逸脱することなく種々の変更が可能であることが認識されるであろう。
【図面の簡単な説明】
【図１】  本発明が実施されることのできるホストシステム／クライアントコンピュータ環境の概略図。
【図２】  本発明にしたがってホストシステム上に存在する情報への直接トランザクションアクセスをクライアントコンポーネントに行わせる直接トランザクションマッピングプログラムを実施するために使用される図１に示されているトランザクションのいくつかのコンポーネントのブロック図。
【図３】  トランザクションサーバにより実施される図２に示されている直接トランザクションマッピングプログラムを含んでいる複数のモジュールのブロック図。
【図４】  図３に示されている直接トランザクションマッピングプログラムの動作ブロック図。
【図５】  サンプルクライアントとホスト間のトランザクションマッピングの一例を示すブロック図。
【図６】  トランザクションサーバ12の管理者が図５に示されているようなクライアントとホスト間のトランザクションマッピングを構成することを可能にするために直接トランザクションマッピングプログラムの構成モジュールにより使用される論理の概要を示すフロー図。
【図７】  クライアントトランザクションがマッピングされることのできるホストトランザクションを生成するために構成モジュールにより使用される論理手順を示すフロー図。
【図８】  １以上のホストトランザクションがマッピングされることのできるクライアントトランザクションを生成するために構成モジュールにより使用される論理手順を示すフロー図。
【図９】  前に生成されたホストトランザクションにクライアントトランザクションをマッピングするために構成モジュールにより使用される論理手順を示すフロー図。
【図１０】  クライアントトランザクションに含まれているクライアント入力フィールドを前に生成されたホストトランザクションに含まれているホスト入力フィールドにマッピングするために構成モジュールにより使用される論理手順を示すフロー図。
【図１１】  クライアントトランザクションに含まれているクライアント出力フィールドを前に生成されたホストトランザクションに含まれているホスト入力フィールドにマッピングするために構成モジュールにより使用される論理手順を示すフロー図。
【図１２】  クライアント装置により行われたクライアントトランザクションリクエストに応答してホスト記憶データを獲得するために直接トランザクションマッピングプログラムのランタイムトランザクションモジュールにより使用される論理の概要を示すフロー図。
【図１３】  ランタイムトランザクションモジュール自身を初期化するためにそのランタイムトランザクションモジュールにより使用される論理手順を示すフロー図。
【図１４】  マッピングされたホスト入力フィールドを分解するためにランタイムトランザクションモジュールにより使用される論理手順を示すフロー図。
【図１５】  クライアントトランザクションリクエストの妥当性を検査するためにランタイムトランザクションモジュールにより使用される論理手順を示すフロー図。
【図１６】  クライアントトランザクションリクエストに応答してホスト入力フィールドを処理するためにランタイムトランザクションモジュールにより使用される論理手順を示すフロー図。
【図１７】  クライアントトランザクションリクエストに応答してクライアント入力フィールドを処理するためにランタイムトランザクションモジュールにより使用される論理手順を示すフロー図。
【図１８】  ホストプールモジュールを介してホストトランザクションをホストシステムに実行依頼するためにホスト接続モジュールにより使用される論理手順を示すフロー図。
【図１９】  ホストトランザクションをホストシステムに実行依頼するためにホストプールモジュールにより使用される論理手順を示すフロー図。
【図２０Ａ】  クライアントとホストの間のトランザクションをマッピングするために使用されるグラフィックユーザインターフェースモジュールにより生成されるウインドウ図。
【図２０Ｂ】  クライアントとホストの間のトランザクションをマッピングするために使用されるグラフィックユーザインターフェースモジュールにより生成されるウインドウ図。
【図２０Ｃ】  クライアントとホストの間のトランザクションをマッピングするために使用されるグラフィックユーザインターフェースモジュールにより生成されるウインドウ図。
【図２０Ｄ】  クライアントとホストの間のトランザクションをマッピングするために使用されるグラフィックユーザインターフェースモジュールにより生成されるウインドウ図。
【図２０Ｅ】  クライアントとホストの間のトランザクションをマッピングするために使用されるグラフィックユーザインターフェースモジュールにより生成されるウインドウ図。
【図２０Ｆ】  クライアントとホストの間のトランザクションをマッピングするために使用されるグラフィックユーザインターフェースモジュールにより生成されるウインドウ図。
【図２０Ｇ】  クライアントとホストの間のトランザクションをマッピングするために使用されるグラフィックユーザインターフェースモジュールにより生成されるウインドウ図。
【図２１】  トランザクションメッセージフォーマットを示す概略図。
【図１】
0004672870.tif 000002
【図２】
0004672870.tif 000003
【図３】
0004672870.tif 000004
【図４】
0004672870.tif 000005
【図５】
0004672870.tif 000006
【図６】
0004672870.tif 000007
【図７】
0004672870.tif 000008
【図８】
0004672870.tif 000009
【図９】
0004672870.tif 000010
【図１０】
0004672870.tif 000011
【図１１】
0004672870.tif 000012
【図１２】
0004672870.tif 000013
【図１３】
0004672870.tif 000014
【図１４】
0004672870.tif 000015
【図１５】
0004672870.tif 000016
【図１６】
0004672870.tif 000017
【図１７】
0004672870.tif 000018
【図１８】
0004672870.tif 000019
【図１９】
0004672870.tif 000020
【図２０Ａ】
0004672870.tif 000021
【図２０Ｂ】
0004672870.tif 000022
【図２０Ｃ】
0004672870.tif 000023
【図２０Ｄ】
0004672870.tif 000024
【図２０Ｅ】
0004672870.tif 000025
【図２０Ｆ】
0004672870.tif 000026
【図２０Ｇ】
0004672870.tif 000027
【図２１】
0004672870.tif 000028