(57)【要約】【課題】本発明は、全般的に、分散コンピュータ・ネットワークでのクライアント−サーバ通信、クライアント−ホスト通信、またはサーバ−サーバ通信に関し、具体的には、そのような通信を容易にするように適合されたリソース・アダプタの機能強化に関する。【解決手段】本発明は、画面を処理するリソース・アダプタの機能強化を対象とする。本発明の諸態様は、既存のリソース・アダプタに組み込むか、これと通信することができ、本発明の諸態様によって、画面イメージに関するデータを操作するための標準画面レコードがもたらされる。この標準画面レコードによって、画面フォーマットまたは画面レイアウトの前の知識が既知である場合、および画面フォーマットの知識がない場合のサポートが提供される。さらに、標準画面レコードによって、フィールドのすべての属性および画面イメージ自体の属性を記述する詳細なデータが提供される。さらに、本発明によって、フィールド属性データへの簡単なアクセスも提供される。いくつかの実施形態で、本発明の諸態様に、本発明の他の態様の機能性を使用するアプリケーションを開発するのに使用することができるツールを開発できるようにするインターフェースを含めることができる。このインターフェースによって、そのインターフェースを実装するリソース・アダプタをツールがサポートできるようにする共通の方法を提供することができる。
2005510795.tif 000002
【特許請求の範囲】
【請求項１】
画面イメージを記述したデータを第１アプリケーションに供給する方法であって、
第２アプリケーションから受け取られる、フィールドを記述するデータについて、データ構造に前記フィールドを記述する前記データを移植することを含み、
前記データ構造が、前記フィールドを記述する前記データにアクセスする機能を含む、
方法。
【請求項２】
前記受け取られるデータが、前記フィールドに関連する属性を記述する属性データをさらに含み、前記方法が、前記データ構造内の属性データにアクセスする機能をさらに含む前記データ構造に前記属性データを移植することをさらに含む、請求項１に記載の方法。
【請求項３】
前記データ構造内の前記属性データが、前記フィールドを記述する前記データが修正されたかどうかを識別する、請求項２に記載の方法。
【請求項４】
前記データ構造が、オブジェクト指向環境内のオブジェクトである、請求項１ないし３のいずれかに記載の方法。
【請求項５】
前記フィールドを記述する前記データを修正するのに、前記フィールドを記述する前記データにアクセスする前記機能を使用すること
をさらに含む、請求項２に記載の方法。
【請求項６】
前記フィールドを記述する前記データが修正されたことを示すのに、前記データ構造内の属性データにアクセスする前記機能を使用すること
をさらに含む、請求項５に記載の方法。
【請求項７】
前記修正されたデータが保管される前記データ構造からのデータ・ストリームを前記第２アプリケーションに送ること
をさらに含む、請求項５に記載の方法。
【請求項８】
前記第１アプリケーションが、クライアント・アプリケーションを含み、前記第２アプリケーションが、レガシ・アプリケーションを含む、請求項７に記載の方法。
【請求項９】
画面イメージを記述するデータをアプリケーションに供給するデータ構造であって、
前記画面イメージのフィールドを記述するデータのストレージと、
前記データにアクセスする機能と
を含む、データ構造。
【請求項１０】
前記フィールドの属性を記述するデータをさらに含む、請求項９に記載のデータ構造。
【請求項１１】
前記機能が、前記データを読み取る機能と、前記フィールドを記述するデータを前記ストレージに書き込む機能とを含む、請求項１０に記載のデータ構造。
【請求項１２】
前記データ構造が、オブジェクト指向環境内のオブジェクトであり、前記読み取る機能および前記書き込む機能が、前記オブジェクトのメソッドを含む、請求項１１に記載のデータ構造。
【請求項１３】
前記オブジェクトが、リソース・アダプタとインターフェースする、請求項１２に記載のデータ構造。
【請求項１４】
前記リソース・アダプタが、Java 2、Enterprise Editionコネクタを含む、請求項１３に記載のデータ構造。
【請求項１５】
データおよび命令を含むコンピュータ可読媒体であって、前記データおよび命令は、実行されるときに、コンピュータ・システムを、
第２アプリケーションから受け取られる、フィールドを記述するデータについて、データ構造に前記フィールドを記述する前記データを移植するように適合させ、
前記データ構造が、前記フィールドを記述する前記データにアクセスする機能を含む、
コンピュータ可読媒体。
【請求項１６】
前記受け取られるデータが、前記フィールドに関連する属性を記述する属性データをさらに含み、実行されたときに、前記コンピュータ・システムを、
前記データ構造内の属性データにアクセスする機能をさらに含む前記データ構造に前記属性データを移植するようにさらに適合させるデータおよび命令を含む、
請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記データ構造内の前記属性データが、前記フィールドを記述する前記データが修正されたかどうかを識別する、請求項１６に記載のコンピュータ可読媒体方法。
【請求項１８】
前記データ構造が、オブジェクト指向環境内のオブジェクトである、請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
実行される時に、前記コンピュータ・システムを、
前記フィールドを記述する前記データを修正するのに、前記フィールドを記述する前記データにアクセスする前記機能を使用するようにさらに適合させるデータおよび命令をさらに含む、請求項１６に記載のコンピュータ可読媒体。
【請求項２０】
実行される時に、前記コンピュータ・システムを、
前記フィールドを記述する前記データが修正されたことを示すのに、前記データ構造内の属性データにアクセスする前記機能を使用するようにさらに適合させるデータおよび命令をさらに含む、請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
実行される時に、前記コンピュータ・システムを、
前記修正されたデータが保管される前記データ構造からのデータ・ストリームを前記第２アプリケーションに送るようにさらに適合させるデータおよび命令をさらに含む、請求項１９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的には、分散コンピュータ・ネットワークでのクライアント−サーバ通信、クライアント−ホスト通信、またはサーバ−サーバ通信に関し、具体的には、そのような通信を容易にするように適合されたリソース・アダプタの機能強化に関する。
【背景技術】
【０００２】
全世界の組織に貴重な情報処理サーバを提供し、提供し続ける多数のレガシ・サーバ・アプリケーションがある。これらのレガシ・サーバ・アプリケーションの多くは、長年の開発の結果であるが、数年（時には数十年）に渡るデータが含まれ、保管され、アクセスされる。これらのレガシ・アプリケーションは、現在、分散アプリケーション（すなわち、多数のサーバおよびクライアントのサービスおよび機能を使用するアプリケーション）の一部になることを強いられている。たとえば、クライアント・システム（たとえば、パーソナル・コンピュータ、携帯情報端末など）で実行される通常の電子トランザクションで、個人が、知らないうちにトランザクションを開始することがあり、そのトランザクションに、アプリケーション・サーバおよびデータベースまたはレガシ・アプリケーションなどの他のバック・エンド・システムが含まれ、そのアプリケーション・サーバは、通常は、最新情報を送達するのに必要なデータまたはビジネス・ロジック処理を提供し、さらに、通常は、ユーザに関するまたはユーザとデータベースおよびレガシ・アプリケーションの間のアプリケーション・サーバ・サイトを提供し、ブラウザベース・アプリケーションが情報の複数のソースにリンクできるようにするミドルウェア・グルーを提供し、Javaベース・アプリケーション・サーバについて、処理が、Javaサーブレット、JavaServer Page、および Enterprise JavaBeans によって実行される。
【０００３】
多くのレガシ・システムが、クライアントにテキストベース画面を送達し、この画面によって、クライアント／ユーザに情報が供給され、ユーザが、データを入力し、データを修正し、または処理のためにトランザクションをサブミットできるようになる。たとえば、レガシ・アプリケーションによって、元々はＩＢＭ  ３２７０端末によって表示されるように設計されたデータが送達される。３２７０アプリケーションの例では、画面にフィールドが含まれ、このフィールドで、データをユーザに提示したり、ユーザがフィールドにデータを入力することができる。たとえば、画面に２つのフィールドを含めることができ、一方のフィールドに、テキスト「Ｎａｍｅ：」を有するプロンプトを出し、第２のフィールドに、人の名前を含めるか、ユーザが人の名前を入力できるようにすることができる。このほかに、テキストを含む各フィールドは、属性を有し、これによって、テキストの色、背景色（テキストの色、テキストの背景色など、多数の色関連の属性に関連付けることができる）、フィールドが保護されるかどうか、テキストが修正されたかどうかなどが示される。
【０００４】
クライアント・システムと通信する２つの例示的なレガシ・アプリケーションが、顧客情報管理システム（ＣＩＣＳ）３２７０アプリケーション（ＣＩＣＳは、他の特徴の中でも、端末経路指定、パスワード・セキュリティ、エラー回復のトランザクション・ログ記録、および性能分析のアクティビティ・ジャーナルを提供する）およびホスト３２７０アプリケーションである。
【０００５】
現在のクライアント・システムでは、しばしば、３２７０端末エミュレーション製品（およびプロトコル）を使用して、レガシ・アプリケーションによって送られるデータがレンダリングされる。端末エミュレーション製品を用いると、ユーザが、３２７０端末を使用するのではなく、パーソナル・コンピュータで３２７０画面を見られるようになる。
【０００６】
代替案では、この２つの例示的なレガシ・アプリケーションについて、Java（商標）2、Enterprise Edition（Ｊ２ＥＥ）コネクタ・アーキテクチャ・リソース・アダプタ（時々、コネクタとも称する）を、アプリケーション・サーバによってホスティングすることができる。ＩＢＭ社のホスト・オン・デマンド（ＨＯＤ）製品およびＣＩＣＳ Transaction Gateway 製品によって、そのようなリソース・アダプタが提供される。これらのリソース・アダプタは、レガシ３２７０アプリケーションからデータ・ストリームを受け取り、これらのリソース・アダプタのそれぞれが、製品固有のプログラミング・インターフェースを提供し、これによって、アプリケーションが画面のフィールドを処理できるようになる。現在のより強力なグラフィカル・ユーザ・インターフェースを用いて、アプリケーションが、複数の画面の内容を単一のウェブ・ブラウザ・ページに組み合わせるなど、より意味のある形でデータを表示できるようになる。
【０００７】
３２７０データ・ストリームは、画面イメージを記述する、非常に最適化されたストリームである。リソース・アダプタは、所望のあらゆるフォーマットで画面情報を自由に送達することができる。現在のリソース・アダプタ（たとえば、ＣＩＣＳおよびＨＯＤ）では、Ｘ×Ｙ画面のすべてのバイトを表すストリームを送り、フィールドを構成するバイトに関する余分な情報（すなわち、前景色、背景色）を用いて不可視の画面バイトを修正する。この機構は、画面イメージに関するすべての情報を提供するときに、３２７０データ・ストリームと比較して非常に非効率的である。というのは、すべての可能な属性情報を得るために、不可視バイトに対する変更と共に、複数のＸ×Ｙストリームを送る必要があるからである。
【０００８】
これらのリソース・アダプタは、他の大きい短所を有する。たとえば、これらのリソース・アダプタは、現在、修正されるフィールドのデータを送るだけに最適化できる場合であっても、画面全体のデータが送られることを必要とする。さらに、リソース・アダプタによって提供されるデータ・ストリームと相互作用するアプリケーションを開発するときに、フィールドおよびフィールドの画面上の位置を使用できるようにするために、前の画面イメージの知識が必要である。残念ながら、前の画面イメージの知識を有することは、常に可能ではない。
【０００９】
さらに、コネクタまたはリソース・アダプタによって提供される機能を使用するアプリケーションを開発するためには、特定のツールを作成しなければならない。したがって、上の例に対して、上で説明したＪ２ＥＥリソース・アダプタのそれぞれについて、異なるツールを作成しなければならない。これは、非効率的である。
【００１０】
したがって、上で説明した短所の一部またはすべてを少なくとも部分的に克服するためにリソース・アダプタによって実施できるインターフェースを提供することが、望ましい。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、全般的に、分散コンピュータ・ネットワークでのクライアント−サーバ通信、クライアント−ホスト通信、またはサーバ−サーバ通信に関し、具体的には、そのような通信を容易にするように適合されたリソース・アダプタの機能強化に関する。本発明は、画面を処理するリソース・アダプタの機能強化を対象とする。
【課題を解決するための手段】
【００１２】
本発明の諸態様は、既存のリソース・アダプタに組み込むか、これと通信することができ、本発明の諸態様によって、画面イメージに関するデータを操作するための標準画面レコードがもたらされる。この標準画面レコードによって、画面フォーマットまたは画面レイアウトの前の知識が既知である場合、および画面フォーマットの知識がない場合のサポートが提供される。さらに、標準画面レコードによって、フィールドのすべての属性および画面イメージ自体の属性を記述する詳細なデータが提供される。さらに、本発明によって、フィールド属性データへの簡単なアクセスも提供される。
【００１３】
いくつかの実施形態で、本発明の諸態様に、本発明の他の態様の機能性を使用するアプリケーションを開発するのに使用することができるツールを開発できるようにするインターフェースを含めることができる。このインターフェースによって、そのインターフェースを実装するリソース・アダプタをツールがサポートできるようにする共通の方法を提供することができる。
【００１４】
本発明の一実施形態では、オブジェクト指向環境での使用に関して、画面が、オブジェクトの集合すなわちフィールド・オブジェクトを含むスクリーン・オブジェクトによって表される。さらに、スクリーナブル・インターフェースによって、画面イメージを提示する非常に効率的な方法が記述され、画面レコードが、クライアント・アプリケーションに画面イメージを提示するのに使用される。
【００１５】
本発明の一態様によれば、画面イメージを記述したデータを第１アプリケーションに供給する方法であって、第２アプリケーションから受け取られる、フィールドを記述するデータについて、データ構造に前記フィールドを記述する前記データを移植することを含み、前記データ構造が、前記フィールドを記述する前記データにアクセスする機能を含む方法が提供される。
【００１６】
本発明のもう１つの態様によれば、画面イメージを記述するデータをアプリケーションに供給するデータ構造であって、前記画面イメージのフィールドを記述するデータのストレージと、前記データにアクセスする機能とを含むデータ構造が提供される。
【００１７】
本発明のもう１つの態様によれば、データおよび命令を含むコンピュータ可読媒体であって、前記データおよび命令は、実行されるときに、コンピュータ・システムを、第２アプリケーションから受け取られる、フィールドを記述するデータについて、データ構造に前記フィールドを記述する前記データを移植するように適合させ、前記データ構造が、前記フィールドを記述する前記データにアクセスする機能を含むコンピュータ可読媒体が提供される。
【００１８】
本発明の他の態様および特徴は、添付図面と共に本発明の特定の実施形態の以下の説明を再検討する際に、当業者に明白になる。
【発明を実施するための最良の形態】
【００１９】
本発明の実施形態であるコンピュータ・システム１００を、図１に示す。汎用のネットワーク化されたコンピューティング装置１０２を含むものとして例示のために示されたコンピュータ・ネットワーク１００は、ネットワーク１０８を介してホスト１１０などの他のネットワーク化されたコンピューティング装置と通信する。当業者が諒解するように、ネットワーク１０８は、通常のネットワーク技術を使用して実施することができ、ネットワーク１０８に、ローカル・エリア・ネットワーク、広域ネットワーク、イントラネット、公衆インターネット、および類似物の１つまたは複数を含めることができる。さらに、ネットワーク１０８は、物理的に、電気、光学、無線、またはさまざまなハイブリッドの組合せのどれであれ、任意のタイプのネットワークで実施することができる。さらに、コンピューティング装置１０２は、通常のデスクトップ・コンピュータとして図示されているが、他のネットワーク化されたコンピューティング装置を、追加してまたはその代わりに使用することができる。そのようなネットワーク化されたコンピューティング装置に、タブレット・ポータブル・コンピュータ、ノートブック・コンピュータ、携帯情報端末、または類似物を含めることができる。さらに、以下では、コンピューティング装置１０２を、クライアント１０２と呼称する。
【００２０】
例示的な実施形態で、クライアント１０２およびホスト１１０のそれぞれに、さまざまな入力装置１０４、出力装置１０６、およびネットワーク１０８と通信する処理システム１０２が含まれる。そのうちの２つが図示されている入力装置１０４には、たとえば、キーボード、マウス、スキャナ、イメージング・システム（たとえば、カメラなど）または類似物を含めることができる。同様に、出力装置１０６（１つだけが図示されている）に、ディスプレイ、情報表示装置プリンタ、および類似物を含めることができる。さらに、組合せ入出力（Ｉ／Ｏ）装置も、処理システム１０２と通信することができる。通常の入出力装置の例には、取外し可能および固定式の記録可能媒体（たとえば、フロッピ（Ｒ）・ディスク・ドライブ、テープ・ドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＷドライブなど）、タッチ・スクリーン装置、および類似物が含まれる。
【００２１】
クライアント１０２およびホスト１１０の例を、図２に詳細に示す。図からわかるように、クライアント１０２またはホスト１１０のそれぞれに、複数の構成要素すなわち、中央処理装置（ＣＰＵ）２０２、メモリ２０４、ネットワーク・インターフェース（Ｉ／Ｆ）２０８、および入出力インターフェース２１０が含まれる。各構成要素は、必要に応じて、適切な通信バス２０６を介して他の構成要素と通信する。
【００２２】
ＣＰＵ２０２は、Intel Pentium（商標）、IBM PowerPC（商標）、Sun Microsystems UltraSparc（商標）プロセッサ、または類似物など、本明細書に記載の動作に適する処理ユニットである。当業者が諒解するように、処理システム１０２の他の実施形態で、代替ＣＰＵを使用することができ、１つまたは複数のＣＰＵが使用される実施形態を含めることができる。ＣＰＵ２０２は、それぞれに、それ自体とクライアント１０２またはホスト１１０の他の構成要素との間の通信を使用可能にするさまざまなサポート回路を含めることができる。
【００２３】
メモリ２０４には、ＣＰＵ２０２による実行のための動作命令、データ・レジスタ、アプリケーション・ストレージ、および類似物の保管のための、揮発性および持続性の両方のメモリが含まれる。メモリ２０４に、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、および、ハード・ディスク・ドライブによって提供されるものなどの持続性メモリの組合せが含まれることが好ましい。
【００２４】
ネットワーク・インターフェース２０８によって、クライアント１０２（またはホスト１１０）と他のネットワーク・コンピューティング装置（図示せず）との間のネットワーク１０８を介する通信が可能になる。ネットワーク・インターフェース２０８は、１つまたは複数の通常の通信装置によって実施することができる。通常の通信装置の例に、イーサネット（Ｒ）・カード、トークン・リング・カード、モデム、または類似物が含まれる。ネットワーク・インターフェース２０８によって、リモート・ストレージ媒体またはリモート装置との間の、ネットワーク１０８を介するＣＰＵ２０２によって実行される命令の検索または伝送も可能にすることができる。
【００２５】
入出力インターフェース２１０によって、処理システム１０２とさまざまな入出力装置１０４および１０６の間の通信が可能になる。入出力インターフェース２１０には、たとえば、出力装置１０６などの外部ディスプレイとインターフェースするビデオ・カードを含めることができる。さらに、入出力インターフェース２１０によって、処理システム１０２と取外し可能媒体２１２の間の通信を可能にすることができる。取外し可能媒体２１２は、通常のディスケットとして図示されているが、Ｚｉｐ（商標）ドライブ、フラッシュ・カード、ＣＤ−ＲＯＭ、スタティック・メモリ・デバイス、および類似物などの他の取外し可能メモリ・デバイスも、使用することができる。取外し可能媒体２１２を使用して、ＣＰＵ２０２によって実行される命令を供給することができ、取外し可能媒体２１２を、取外し可能データ・ストレージ装置として使用することができる。
【００２６】
メモリ２０４に保管され、ＣＰＵ２０２によって実行される（したがって、本明細書に記載のようにコンピュータ・システム１００の動作を適合させる）コンピュータ命令／アプリケーションを、機能ブロックの形で図３に示す。当業者が諒解するように、図３に機能ブロックとして示されたアプリケーションの諸態様の間の図は、本明細書に記載の特定のアプリケーションに帰するさまざまな動作を、代替実施形態で別のアプリケーションに包含することができるので、多少恣意的である。
【００２７】
クライアント１０２およびホスト１１０のメモリ２０４に含まれるが、図示されていないのが、オペレーティング・システム（ＯＳ）および通信スイートである。
【００２８】
ＯＳは、選択されたＣＰＵ２０２での動作に適し、本明細書に記載の動作に適する。たとえばＩＢＭ  ＡＩＸ（商標）、Microsoft Windows（Ｒ）NT（商標）、Ｌｉｎｕｘ、または類似物など、マルチタスク式マルチスレッドＯＳが、多くの実施形態で好ましいと思われる。
【００２９】
通信スイートによって、ＯＳおよびネットワーク・インターフェース２０８（図２）との相互作用を介して、ネットワーク１０８（図１）を介する他のネットワーク化されたコンピューティング装置との通信を可能にする適切な通信プロトコルが提供される。通信スイートに、ＴＣＰ／ＩＰ、イーサネット（Ｒ）、トークン・リング、および類似物などのプロトコルの１つまたは複数を含めることができる。
【００３０】
図３に示された例示的実施形態では、クライアント１０２が、ネットワーク接続１０８を介してホスト１１０と通信する。クライアント１０２すなわちコンピューティング装置によって、クライアント・アプリケーション３０２、クライアント側リソース・アダプタ３０４、および画面レコード３０６がホスティングされる。ホスト１１０によって、ネットワーク１０８を介してクライアント１０２と通信するレガシ・アプリケーション３１０がホスティングされる。
【００３１】
レガシ・アプリケーション３１０は、クライアント１０２のアプリケーション３０２と通信するために、修正または適合を必要としない。むしろ、リソース・アダプタ３０４によって、必要な通信サポートが提供されて、レガシ・アプリケーション３１０とクライアント・アプリケーション３０２の間の通信が可能になる。画面レコード３０６によって、アプリケーションが画面を扱う、豊富な機能を有する共通の形が提供される。
【００３２】
例示的実施形態では、リソース・アダプタ３０４が、スクリーナブル・インターフェースと通信し、これを使用し、クラス３０６を実施する Java（商標）2、Enterprise Edition（Ｊ２ＥＥ）コネクタで実施される。Ｊ２ＥＥコネクタによって、Java（Ｒ）プログラム（クライアント・アプリケーション３０２など）とレガシ・アプリケーション３１０などのレガシ・アプリケーションの間のインターフェースとして働くプログラミング・インターフェース（ＡＰＩ）が提供される。したがって、レガシ・アプリケーションへのアクセスを、Enterprise JavaBean（ＥＪＢ）内で簡単に提供することができる。リソース・アダプタ３０４は、例示的実施形態では、Ｊ２ＥＥコネクタであるが、代替リソース・アダプタ（たとえば、ＩＢＭ Corp. 社の Common Connector Framework または他のフレームワークに準拠するコネクタ）を、同等に使用することができる。
【００３３】
上で暗示したように、クライアント・アプリケーション３０２は、例示的実施形態で、Java（Ｒ）で記述されたアプリケーションである。しかし、他のプログラミング言語を、代替実施形態で同等に使用することができる。
【００３４】
画面レコード３０６を用いて、リソース・アダプタ３０４によって、ホスト・システム１１０によってホスティングされるレガシ・アプリケーション３１０から（ネットワーク３１２を介して）受け取られるデータ・ストリームを、クライアント・アプリケーション３０２によって使用され、理解されるフォーマットに変換することができる。同様に、クライアント・アプリケーション３０２によって生成されるデータを、画面レコード３０６を介してリソース・アダプタに渡すことができる。リソース・アダプタ３０４は、画面レコード３０６から受け取られたデータを処理し、ホスト１１０上のレガシ・アプリケーション３１０に転送することができる。
【００３５】
図４からわかるように、画面レコード３０６によって、２つのインターフェースすなわち、画面レコード・インターフェース（画面レコード３０６とクライアント・アプリケーション３０２の間の通信用）およびスクリーナブル・インターフェース（リソース・アダプタ３０４と画面レコード３０６の間の通信用）が提供される。さらに、図４に、ブロック機能形式で、画面レコード３０６の機能が示されている。図からわかるように、例示的実施形態によって、おおまかにフォーマット・ハンドラ４０４および画面レコード・ハンドラ４０２に分離された機能が提供される。
【００３６】
フォーマット・ハンドラ４０４によって、画面レコード３０６に関するフォーマット・サービスおよび変換サービスが提供される。すなわち、リソース・アダプタ３０４から受け取られるデータは、フォーマット・ハンドラ４０４によって処理される。同様に、リソース・アダプタ３０４宛のデータは、それぞれに、宛先すなわちクライアント・アプリケーション３０２またはリソース・アダプタ３０４にデータが送られる前に、まずフォーマット・ハンドラ４０４によって処理される。
【００３７】
下の表に、インターフェースと短い説明を列挙する。
【００３８】
【表１】
2005510795.tif 000003
【００３９】
（＊）代替実施形態で、画面レコード３０６によって、これらのインターフェースの実装を提供することもできる。この代替実施形態は、画面レコード３０６で事前に構築されたフィールドが使用され、フィールドに情報のさまざまなビットが移植される場合に好ましくなる可能性がある。その代わりに、画面レコード３０６によって、フィールドの作成と異なる機能を介して情報を供給することができる。
【００４０】
IScreenableインターフェース
IScreenableインターフェースは、画面レコード３０６によって実装され、リソース・アダプタ３０４によって検出でき、リソース・アダプタ３０４によって使用される。IScreenableインターフェースによって、リソース・アダプタ３０４に、情報をアプリケーション３０２に渡す能力が与えられる。下の擬似コードでは、IScreenableインターフェースの例示的実施形態に、複数のメソッド（下で詳細に説明する）が含まれる。
【００４１】
一般に、画面レコード３０６によって実施されるIScreenableインターフェースによって、リソース・アダプタが、フィールドを正確に記述する画面レコード（例示的実施形態ではクラスScreenRecordのオブジェクトであるが、一般に、任意のタイプのデータ構造で実装でき、オブジェクト指向環境のオブジェクトである必要はない）、フィールド属性、画面の残りの非フィールド部分、フィールド、およびそれに含まれるデータ（たとえば、情報テキスト、画面の色、テキストのタイプ、色、サイズなど）を作成できるようになる。各画面レコードは、一意の識別子（ＩＤ）と関連付けられ、その結果、画面レコードが関連付けられる画面を、正しく識別できるようになる。IScreenableインターフェースによって提供されるメソッド（または、Java（Ｒ）を使用するインターフェースを実装しないときには、関数）を介して、画面識別子をセットまたは検索することができる。
【００４２】
さらに、IScreenableインターフェースによって、呼び出されたときに、リソース・アダプタ３０４がフィールドから画面イメージを定義するデータを検索できるようにするメソッドが提供される。例示的実施形態では、フィールドに関するデータを、すべてのフィールドについて、または修正されたフィールドだけについて検索することができる。さらに、例示的実施形態でIScreenableインターフェースによって提供されるメソッドによって、リソース・アダプタ３０４が、画面イメージに含まれるすべてのフィールドまたは修正されたフィールドだけのいずれかをステップ・スルー（すなわち、繰り返して移動）できるようになる。
【００４３】
上で示したように、リソース・アダプタ３０４例示的実施形態は、Ｊ２ＥＥコネクタ・アーキテクチャに準拠する。その結果、画面レコード３０６の画面レコード・ハンドラ４０２の一部を形成する下の擬似コードは、Java（Ｒ）言語で実施される。本発明の代替実施形態で、代替言語を同等に使用することができる。
/**
* リソース・アダプタによって使用される画面インターフェース
*/
public interface IScreenable {
/**
* フィールド構築処理の開始を示し、画面自体に関する
* 情報を提供する。ブール値fullRefreshは、リソース・
* アダプタが画面に関するすべての情報を提供し、
* したがって、完全にリフレッシュされる際に適当な
* 情報のすべてをレコードによってクリアしなければ
* ならないことを示す。
*/
void beginBuild(IScreenInfo ScrInf, boolean fullRefresh);
/**
* 画面レコードにフィールドを追加する。
*/
void buildField(IFieldData fieldData,IFieldAttrInfo
fieldAttrs,ITextAttrInfo textAttrs) throwsScreenException;
/**
* フィールド構築プロセスの終りを示す。
*/
void endBuild();
/**
* 画面レコードＩＤを返す。
*/
String getScreenId();
/**
* 画面ＩＤをセットする。
*/
public void setScreenId(String ScreenId);
/**
* 画面レコードに含まれるフィールドのイテレータを返す。
*/
java.util.Iterator getFields();
/**
* 画面レコードの修正されたフィールドのイテレータを返す。
*/
java.util.Iterator getModifiedFields();
}
【００４４】
この擬似コードからわかるように、IScreenableインターフェースには、複数のメソッドすなわち、beginBuild、buildField、endBuild、setScreenId、getFields、および getModifiedFields が含まれる。これらのメソッドを、下で個別に説明する。さらに、IScreenableインターフェースによって提供されるメソッドは、IScreenInfoクラス、IFieldDataクラス、IFieldAttrInfoクラス、および ITextAttrInfoクラスによって定義されるオブジェクトを使用して呼び出される。これらのクラスも、下で詳細に説明する。
【００４５】
beginBuild
このメソッドによって、フィールド情報の渡しが開始されようとしていることが画面レコード３０６に示される。リソース・アダプタ３０４によって、画面レコード３０６に IScreenInfoオブジェクトが渡され、このIScreenInfoオブジェクトによって、画面全体に関する情報（下の ScreenInfoインターフェースの節で詳細に説明する）が供給される。beginBuildメソッドは、フラグ（ブール値 fullRefresh）を有し、このフラグによって、リソース・アダプタ３０４が画面の完全なリフレッシュと変更されたフィールドのサブセットだけのどちらを供給しようとしているかが、画面レコード３０６に示される。このフラグの設定およびどの情報（画面全体またはそのサブセット）を画面レコード３０６に供給するかは、リソース・アダプタ３０４によって決定される。そのような決定は、画面レコード（リソース・アダプタ３０４と画面レコード３０６の間で渡されるデータの単位。例示的実施形態では、画面レコードは、型ScreenRecord のオブジェクトである。ScreenRecordオブジェクト・クラスを実装する擬似コードについては、付録Ｂを参照されたい）に、画面によって定義されるデータ・フィールドのすべてが含まれる（したがって、レコード・データのサブセットの転送のサポートが可能にされる）かどうかに基づいて行われる。画面イメージに存在するすべてのデータ・フィールドを含むレコードが作成された場合には、そのレコードは、更新だけをサポートするのに十分に定義されている。リソース・アダプタは、レコードに既に存在するフィールドについて buildField を呼び出すだけであり、新しいフィールドは追加されない。すなわち、既存の ScreenRecord がないときには、リソース・アダプタによって、ScreenRecord を作成し、必要なすべてのフィールドを構築（追加）することができる。FullRefresh が選択されていない場合には、ScreenRecord が既に移植されていなければならない。存在するフィールドを変更することだけができ、新しいフィールドをリソース・アダプタによって追加してはならない。ツールによって ScreenRecord が事前に構築され、アクセッサおよび意味のある名前によってカスタマイズされる場合に、リソース・アダプタは、これらのフィールドを上書きしてはならない。これは、生成された ScreenRecord によって、beginBuildメソッドおよび buildFieldメソッドの挙動をオーバーライドすることによって行うことができる。
【００４６】
buildField
buildFieldメソッドは、フィールドを作成するか、画面レコードの既存のフィールドを移植するのに使用される。フィールドが作成されるときには、フィールドにインデックス番号が割り当てられる。例示的実施形態のインデックス番号は、１から始まり、buildField の呼出しごとに増分される。例示的実施形態のリソース・アダプタ３０４によって、シーケンシャル順すなわち左から右、上から下の順で、画面イメージ内のフィールドが送達される（他の順序またはフォームを、その代わりに使用することができる）。上の擬似コードに示されているように、buildFieldによって、ScreenExceptionを送出することができ、buildFieldに、３つまでのパラメータすなわち、IFieldData、IFieldAttrInfo、および ITextAttrInfo を渡すことができる。この３つの可能なパラメータのそれぞれを、下で説明する。さらに、この３つの可能なパラメータのそれぞれについてインスタンス化されるクラスの擬似コードを、付録Ａに示す。
【００４７】
endBuild
このメソッドによって、構築処理が終了したことが示される。このメソッドによって、フィールドがこれ以上作成されず、移植されないことが示される。endBuildメソッドには、パラメータは渡されない。
【００４８】
getScreenId および setScreenId
setScreenIdメソッドおよび getScreenIdメソッドによって、一意の識別子を用いてアクセス（すなわち、書込または読取）する能力またはその一意の識別子を検索する能力がそれぞれに与えられる。ScreenIdタグ付けによって、リソース・アダプタ３０４が、出力を受け取るために供給される ScreenRecord にタグを付けられるようになる。そのScreenRecord が入力に使用される場合には、リソース・アダプタ３０４は、タグ（ScreenId）を調べて、それが出力に使用された最後の１つであるかどうかを判定することができる。そうである場合には、性能最適化として、リソース・アダプタ３０４は、入力レコードの検証をスキップすることができ、そうでなければ入力レコードが画面によって提示されるデータと一致したことを確認する。
【００４９】
getFields
このメソッドによって、画面レコード内に保管されたフィールドへのアクセス（この場合には読み取る能力）が可能になるが、このメソッドによって、レコード内のすべてのフィールドのイテレータが返される。getFieldsメソッドは、画面レコードに頼り、画面レコードは、この例示的実施形態では ScreenRecordクラスのインスタンスによって実施され、これは FieldInfoインターフェースに頼る。
【００５０】
getModifiedFields
このメソッドは、呼び出されたときに、画面レコード内に保管されたフィールドへのアクセスを可能にし、画面レコード・ハンドラ４０２によって修正済みとしてフラグを立てられたすべてのフィールドのイテレータを返す。フィールドが修正済みとしてフラグを立てられるのは、修正済み属性の値が真であるときである。これは、FieldRecord.setText（String）メソッドが呼び出されるときに行われる。
【００５１】
上で注記したように、IScreenableインターフェース、具体的には beginBuildメソッドによって、IFieldData、IFieldAttrInfo、および ItextAttrInfoのクラスに準拠する３つのパラメータが使用される。この３つのクラスを、下で説明する。
【００５２】
IFieldData
例示的実施形態では、IFieldDataクラスからインスタンス化されたオブジェクトが必要である。IFieldDataクラスによって、フィールドおよびその内容に関する基本的情報が提供される。このクラスの実装を記述した擬似コードを、付録Ａに示す。たとえば、例示的実施形態では、IFieldDataクラスによって、メソッドgetPosが提供され、このgetPos によって、絶対位置が返され、その結果、画面イメージ内のフィールドの行位置および列位置を計算できるようになる。
【００５３】
IFieldAttrInfo
このクラス（例示的実施形態では任意選択である）によって、特定のフィールドの属性に関する情報が供給される。たとえば、このクラスの例示的実装の１つを記述した、付録Ａの擬似コードによって、背景色、前景色、文字セット、強調表示属性、および類似物などの情報が与えられる。
【００５４】
buildFieldメソッド（上で説明した）に null値が渡される場合に、画面レコード３０６では、そのフィールドが属性を有しないと仮定される。その結果、画面レコード３０６によって、フィールド属性プロパティを公開しなければならない場合に必要なデフォルト値を与えることができる。
【００５５】
ITextAttrInfo
例示的実施形態では、このクラスの使用は任意選択である。ITextAttrInfoクラスによって、テキストの個々の文字の属性に関する情報が与えられる。付録Ａにある例示的な ITextAttrInfoクラスの擬似コードから、例示的実施形態によって、テキストの色および他の拡張属性に関する情報が提供されることが示される。諒解されるように、他のテキスト属性（たとえば、フォント・サイズ、フォント特性すなわち、イタリック、太字、下線付きなど）を、代替実施形態で提供することができる。
【００５６】
IScreenableインターフェースの buildFieldメソッドに null が渡される場合に、画面レコード３０６によって、個々の属性が使用不能であると仮定される。その結果、画面レコード３０６によって、テキスト属性プロパティを公開しなければならない場合に必要な任意のデフォルト値を与えることができる。
【００５７】
IScreenInfoインターフェース
このインターフェースによって、画面イメージに関する情報が表される。ScreenInfoインターフェースが、リソース・アダプタ３０４によって実装されて、画面レコード３０６に情報が渡される。ScreenInfoインターフェースの例示的実施形態の擬似コードは、付録Ａに含まれる。
【００５８】
例示的実施形態では、画面イメージに関する一般的なデータが、ScreenInfoインターフェースによって記述される。この一般的なデータには、たとえば、デフォルト色、文字セット、および類似物などの一般的な視覚的特性が含まれる。さらに、ScreenInfoインターフェースによって、行数（getDepthメソッドを呼び出すことによって返される）、列数（getWidthメソッドを呼び出すことによって返される）、および画面イメージ内のフィールド数（getFieldCount を呼び出すことによって返される）を記述するデータが供給される。
【００５９】
当業者が諒解するように、ScreenInfoインターフェース（本発明の諸態様の中でも）によって、レガシ・アプリケーション３１０（図３）によって提供される画面イメージの詳細な知識なしで、アプリケーションを開発できるようになる。ScreenInfoインターフェースを使用することによって、画面イメージに関する重大なまたは重要な詳細を、実行中にクライアント・アプリケーション３０２によって判定することができる。たとえば、クライアント・アプリケーション３０２によって、実行中に、ScreenInfoインターフェースを使用して、画面イメージのサイズ（行数×列数）およびそれに含まれるフィールドの数を判定できるようになる。上で説明した getFieldsメソッドと結合されるときに、各フィールドに関する追加の詳細を確認することができる。これらの特徴によって、アプリケーション開発者に多数の利益を与える非常に強力な組合せがもたらされる。
【００６０】
ＩFieldInfo
上で示したように、FieldInfoインターフェースは、上で説明した IScreenableインターフェースの一部を形成する getFieldsメソッドによって頼られる。FieldInfoインターフェースは、画面イメージの内部表現で更新されるフィールドを決定するためにリソース・アダプタ３０４によって使用できる情報を表す。IScreenableインターフェースで定義される getFieldsメソッドまたは getModifiedFieldsメソッドによって返されるオブジェクトは、このインターフェースを実装するレコードによって実装される。
【００６１】
ＩFieldInfoインターフェースの実装の例を示す擬似コードは、付録Ａにある。例示的実施形態では、ＩFieldInfo によってメソッドが提供され、これらのメソッドは、呼び出されるときに、フィールドの名前、フィールドの先頭の行および列、そのフィールドに含まれるテキスト（たとえば、「ADDRESS」という名前のフィールドに関する、人の住所）を記述するデータを供給する。
【００６２】
IExtendedAttributes
IExtendedAttributesインターフェースには、色、強調表示、透過性などの拡張属性値を定義する定数の集合が含まれる。フィールド・レコードによって、このインターフェースを実装して、そのインターフェースまたはクラスに定数を追加することができる。
【００６３】
IFieldRecord
FieldRecordインターフェースには、フィールド特性および画面特性にアクセスするのに使用されるメソッドが含まれ、このインターフェースは、類似する名前のクラスによって実装される。FieldRecordクラスは、付録Ｃの擬似コードで示されている。
【００６４】
ScreenRecord
このクラスによって、ExtendedAttributesインターフェース、Screenableインターフェース、および ScreenRecordインターフェースが実装される。画面レコード（ScreenRecordクラスからインスタンス化されたオブジェクトによって実装され、付録Ｂの擬似コードに示す）によって、クライアント・アプリケーション３０２（図３）およびフォーマット・ハンドラ４０４（図４）の間で渡される基本レコードが提供される。
【００６５】
リソース・アダプタ・インターフェースのほかに、ツールを開発できるようにするいくつかのインターフェースが、例示的実施形態で実装されている。下の表に、ツールによって使用されるインターフェースと短い説明を列挙する。
【００６６】
【表２】
2005510795.tif 000004
【００６７】
【表３】
2005510795.tif 000005
【００６８】
ＩScreenRecordインターフェース
ＩScreenRecordインターフェースには、フィールドおよび画面特性にアクセスするのに使用されるメソッドが含まれるが、これを下に示す。
public interface IScreenRecord {
IFieldRecordgetField(int index) throws ScreenException;
IFieldRecordgetField(String name) throws ScreenException;
int getFieldCount();
java.util.IteratorgetFields();
int getScreenDepth();
int getScreenWidth();
}
【００６９】
上で説明した画面レコードおよびそれに関連するインターフェースの結果として、クライアント・アプリケーション３０２を、レガシ・アプリケーション３１０によって生成され伝送される画面イメージの前の知識なしで開発することができる。この前の知識なしの開発は、アプリケーションが画面イメージに含まれるフィールド（および関連する属性）の画面レコードを照会できるようにする画面レコード３０６によって可能にされる。有利なことに、クライアント・アプリケーションによって、どのフィールドが修正されたかを判定でき、したがって、クライアント・アプリケーション３０２の応答性が改善される。
【００７０】
動作中に、画面イメージを記述する、レガシ・アプリケーション３１０（図３）からの通常のデータが、リソース・アダプタ３０４によってネットワークを介して送られる。上で説明したインターフェース、具体的にはスクリーナブル・インターフェースを使用して、リソース・アダプタ３０４が、画面レコード３０６（例示的実施形態では ScreenRecordクラスのインスタンス）を作成させる（そのような画面レコードがまだ作成されていないと仮定して）。画面レコード３０６のデータ構造に、レガシ・アプリケーション３１０からリソース・アダプタ３０４によって受け取られるデータが移植される。画面レコードが前にリソース・アダプタ３０４によって作成された（例示的実施形態ではクラスScreenRecord のオブジェクトをインスタンス化することによって）場合には、新しい画面レコード３０６は、作成されない。そうではなく、既存の画面レコード３０６のさまざまなデータ構造（たとえば、フィールド、フィールド属性またはテキスト属性など）が、必要に応じて修正される。しかし、ツールによって画面レコード３０６が事前に構築され、アクセッサおよび意味のある名前によってカスタマイズされている場合には、リソース・アダプタ３０４は、これらのフィールドを上書きしない。
【００７１】
次に、クライアント・アプリケーション３０２が、作成され移植された画面レコード３０６を渡されるかこれにアクセスして、必要に応じてその中のデータにアクセスするか修正する。修正された画面レコード３０６が、リソース・アダプタ３０４に渡される。リソース・アダプタ３０４は、画面レコード３０６に含まれるデータから、データ・ストリーム（ネットワーク３１２を介して送られる）を生成するのに必要なデータにアクセスする。この生成されるデータ・ストリームは、レガシ・アプリケーション３１０によって理解されるフォーマットであり、ネットワーク３１２を介してレガシ・アプリケーション３１０に送られる。
【００７２】
当業者が諒解するように、上で説明した実施形態に対する修正を、本発明の本質から逸脱せずに行うことができる。たとえば、多数のテキスト属性の１つにそれぞれが個別に関連する多数の変数の代わりに、代替実施形態で、各ビットが特定の属性を表すビット・フィールドを使用することができる。たとえば、第１ビットが「オン」（すなわち「１」がセットされる）であるときに、これによってフィールドが強調表示されることを示すことができる。このビットが「オフ」にセットまたは変更される（すなわち「０」がセットされる）ときに、これによって、同一のフィールドが強調表示されないことを示すことができる。
【００７３】
もう１つの代替案では、IScreenableインターフェースのフィールドにアクセスする手順を修正することができる。例示的実施形態では、getFieldsメソッドによって、さまざまなフィールドを介する反復が可能にされる。その代わりに、他の手順を使用することができる。たとえば、フィールドに、インデックスによってアクセスすることができる。その代わりに、フィールドに、フィールドの名前によってアクセスすることができる。もう１つの代替案では、getFieldsで、特定のオブジェクト（各フィールドが１つのオブジェクトによって表される）への参照によってフィールドにアクセスできるようにする。もう１つの代替案では、フィールドに、列挙によってアクセスすることができる。他の可能なアクセス手順を、同等にまたは代替的に使用することができる。
【００７４】
もう１つの代替案では、リソース・アダプタ３０４とクライアント・アプリケーション３０２の間の単一のインターフェース（本発明の実施形態によって定義される単一のインターフェース）を、IScreenableインターフェースおよび画面レコード・インターフェースの置換として使用することができる。この実施形態では、インターフェースによって、クライアント・アプリケーションに、フィールド情報（画面および関連データを記述する）が開始されようとしていることの信号が与えられる。その後、画面内のさまざまなフィールドを記述するデータが、送達される。データが単一のインターフェースに送達されるときに、リソース・アダプタは、受け取られるフィールドのすべてまたは一部を照会することができ、さらに、特定のフィールドについて処理が必要であるかどうか（たとえば、フィールドが修正された場合に処理が必要になる可能性がある）を確認することができる。
【００７５】
当業者が諒解するように、本発明の例示的実施形態で記述されるさまざまなクラスおよびインターフェースを、本発明の範囲内で修正することができる。たとえば、あるインターフェース／クラスを一緒に組み合わせるかことが望ましい場合があり、あるいはその代わりに、１つまたは複数のインターフェース／クラスの異なるメソッドおよび変数を、上で説明したものと異なる動作の範囲を有する複数のインターフェース／クラスに分割することが望ましい場合がある。たとえば、代替実施形態で、IFieldAttrInfoインターフェースおよび IExtendedAttributesインターフェースを組み合わせられることが企図されている。同様に、ＩFieldInfoインターフェースおよび IFieldDataインターフェースを、同一のまたは異なる実施形態で組み合わせることができる。代替実施形態では、他のインターフェースを、同様に組み合わせるか、その代わりに複数のインターフェースに分割することができる。
【００７６】
本発明の１つ（または複数）の実施形態を、添付図面に示し、上で説明したが、本発明の本質から逸脱せずに、変更および修正を行えることが、当業者には明白である。そのような修正形態または変形形態のすべてが、請求項によって定義される本発明の範囲内にあると思われる。他の修正形態は、当業者に明白であり、したがって、本発明は、請求項で定義される。
付録Ａ
IScreenInfo
/**
* <p>
* このインターフェースは、画面情報インターフェースを定義する。
* これによって、ユーザは、画面の特性を照会できる。
*/
public interface IScreenInfo extendsCloneable, java.io.Serializable {
/**
* 画面のデフォルト背景色を返す。
*/
public int getDefaultBackgroundColor();
/**
* 画面のデフォルト文字セットを返す。
*/
public int getDefaultCharSet();
/**
* 画面のデフォルト前景色を返す。
*/
public int getDefaultForegroundColor();
/**
* 画面の深さまたは行数を返す。
*/
public int getDepth();
/**
* 画面のフィールド数を返す。
*/
public int getFieldCount();
/**
* 画面の幅または列数を返す。
*/
public int getWidth();
/**
* 画面が拡張強調表示をサポートするかどうかを返す。
*/
public boolean supportsHighlighting();
}
IFieldData
/**
* <p>
* このインターフェースは、リソース・アダプタによって使用される
* フィールド・データ・インターフェースを定義する。リソース・アダプ
* タがフィールドを構築するときに、フィールドの名前、サイズ、位置、お
* よびテキストを供給するためにこのインターフェースが使用される。
*/
public interface IFieldData extendsCloneable, java.io.Serializable {
/**
* 属性バイトを含むフィールドの最大長を返す。
*/
public int getMaxLength();
/**
* 名前が存在する場合にフィールド名、ない場合に null または "" を返す。
*/
public String getName();
/**
* 画面上のフィールドの位置を返す。
*/
public int getPos();
/**
* フィールドのテキストを返す。null にならない。
*/
public String getText();
}
IFieldAttrInfo
/**
* <p>
* このインターフェースは、フィールド属性インターフェースを定義
* する。これによって、ユーザが、フィールドの属性および拡張属性を照
* 会できる。
*/
public interface IFieldAttrInfo extendsCloneable, java.io.Serializable {
/**
* このオブジェクトと同一クラスの新しいオブジェクトを作成する。次に、
* 新しいオブジェクトのフィールドのそれぞれを、このオブジェクトの対
* 応するフィールドと同一の値を割り当てることによって初期化する。
* コンストラクタは呼び出されない。
* @return  このオブジェクトと同一の状態に初期化された新しいオブジ
* ェクト。
*/
public Object clone() throwsCloneNotSupportedException;
/**
* このメソッドは、２つの FieldAttrInfo型が同等であるかどうかを判定
* する。この FieldAttrInfo型が obj引数と同一である場合に TRUE を返す。
* そうでない場合にFALSEを返す。
* @param obj  比較される参照オブジェクト。
*/
public boolean equals(Object other);
/**
* 拡張背景属性プロパティを返す。
*/
public int getBackGroundColor();
/**
* 文字セット拡張属性を返す。
*/
public int getCharacterSet();
/**
* 拡張前景属性プロパティを返す。
*/
public int getForeGroundColor();
/**
* 拡張強調表示属性プロパティを返す。
*/
public int getHighLight();
/**
* 拡張透過性属性プロパティを返す。
*/
public int getTransparency();
/**
* 基礎表示属性プロパティを返す。
*/
public boolean isDisplay();
/**
* 基礎輝度属性プロパティを返す。
*/
public boolean isHighIntensity();
/**
* フィールド・アウトライン拡張属性に必要な左縦線。
*/
public boolean isLeftline();
/**
* フィールド検証拡張属性からの必須入力。
*/
public boolean isMandatoryEntry();
/**
* フィールド検証拡張属性からの必須充てん。
*/
public boolean isMandatoryFill();
/**
* 基礎修正済み属性プロパティを返す。
*/
public boolean isModified();
/**
* 基礎数値属性プロパティを返す。
*/
public boolean isNumeric();
/**
* フィールド・アウトライン拡張属性に必要なオーバーライン。
*/
public boolean isOverline();
/**
* penDetectableプロパティを返す。
*/
public boolean isPenDetectable();
/**
* 基礎保護属性プロパティを返す。
*/
public boolean isProtected();
/**
* フィールド・アウトライン拡張属性に必要な右縦線。
*/
public boolean isRightline();
/**
* フィールド検証拡張属性からの必須充てん。
*/
public boolean isTrigger();
ITextAttrInfo
/**
* <p>
* このインターフェースは、テキスト属性フィールド・インターフェースを
* 定義する。これによって、ユーザが、フィールドのテキストの各文字の色
* 属性および拡張属性を照会できる。
*/
public interface ITextAttrInfo extendsCloneable, java.io.Serializable {
/**
* このオブジェクトと同一クラスの新しいオブジェクトを作成する。次に、
* 新しいオブジェクトのフィールドのそれぞれを、このオブジェクトの対
* 応するフィールドと同一の値を割り当てることによって初期化する。
* コンストラクタは呼び出されない。
* @return  このオブジェクトと同一の状態に初期化された新しいオブジ
* ェクト。
*/
public Object clone() throwsCloneNotSupportedException;
/**
* このメソッドは、２つの TextAttrInfo型が同等であるかどうかを判定
* する。このTextAttrInfo型が obj引数と同一である場合に TRUE を返す。
* そうでない場合にFALSEを返す。
* オブジェクト・パラメータは、比較される参照オブジェクトである。
*/
public boolean equals(Object other);
/**
* テキスト色の文字配列を返す。
*/
public char[] getTextColors();
/**
* 拡張属性の文字配列を返す。
*/
public char[] getTextExtAttrs();
}
IFieldRecord
public interface IFieldRecord extendsIFieldInfo {
/**
* フィールドおよび画面特性のアクセスに使用されるメソッド。
*
*/
void appendText(String text) throwsScreenException;
/**
* 背景色データを返す。
*
*/
int getBackGroundColor();
/**
* 前景色データを返す。
*
*/
int getForeGroundColor();
/**
* 強調表示データを返す。
*
*/
int getHighlight();
/**
* フィールド・データの最大長を返す。
*
*/
public int getMaxLength();
/**
* 透過性データを返す。
*
*/
int getTransparency();
/**
* フィールドが表示されるかどうかを示すデータを返す。
*
*/
boolean isDisplay();
/**
* フィールドが高輝度であるかどうかを示すブール値を返す。
*
*/
boolean isHighIntensity();
/**
* フィールドが修正済みであるかどうかを示すブール値を返す。
*
*/
boolean isModified();
/**
* フィールドが数値であるかどうかを示すブール値を返す。
*
*/
boolean isNumeric();
/**
* フィールドがペンであるかどうかを示すブール値を返す。
*
*/
boolean isPenDetectable();
/**
* フィールドが保護されるかどうかを示すブール値を返す。
*
*/
boolean isProtected();
void setText(String text) throwsScreenException;
}
IFieldRecord
/**
* <p>
* このインターフェースは、フィールドの名前、開始列、開始行、
* 開始位置、またはテキストを入手するためにアプリケーションによって
* 使用されるフィールド情報インターフェースを定義する。
*/
public interface IFieldInfo {
/**
* フィールドの名前を返す。
*/
String getName();
/**
* フィールドの開始列を返す。
*/
int getStartCol();
/**
* フィールドの開始位置を返す。
*/
int getStartPos();
/**
* フィールドを含む開始行を返す。
*/
int getStartRow();
/**
* フィールドのテキストを返す。
*/
String getText();
}
付録Ｂ
ScreenRecord
/**
* ScreenRecordは、画面レコードを操作する、ユーザおよびリソース・
* アダプタのインターフェースをサポートする。
*/
public class ScreenRecord implementsIExtendedAttributes, IScreenable,
IScreenRecord, java.io.Serializable,javax.resource.cci.Record {
/**
* 画面レコードのフィールドを介してステップする反復関数。
*/
protected final class FieldIterator implements Iterator {
}
/**
* 基礎データ構造。
*/
public ScreenRecord() {
super();
fields_ = new java.util.HashMap();
nameMap_ = new java.util.HashMap();
fieldIndex_ = 0;
name_ = new String();
description_ = new String();
depth_ = [Screen depth in rows];
width_ = [Screen width in columns];
screenId_ = "";
}
/**
* 画面レコードにフィールドを追加する。
*/
void addField(FieldRecord fld, intfldIndex) {
}
/**
* 画面レコードからすべてのフィールドを除去する。
*/
public void beginBuild(IScreenInfo scrInf,boolean clearRecord) {
}
/**
* 画面レコード内の画面イメージ次元をセットする。
*/
protected void setScreenDimensions(intdepth, int width) {
}
/**
* このメソッドは、画面レコード内の新しいフィールドを
* 作成するか、既存のフィールドを移植する。既存フィール
* ドへの参照は、"name"属性である。リソース・アダプタは、フ
* ィールドに名前がないことを示すために、この属性として null
* を渡すことができる。フィールドが作成されるときに、イン
* デックス番号が割り当てられる。インデックス番号は、１から
* 始まり、createField の呼出しごとに増分される。リソース・ア
* ダプタは左から右、上から下の順でフィールドを送達する。
*/
public void buildField(IFieldData fldInfo,IFieldAttrInfo fieldAttributes,
ITextAttrInfo textAttributes) {
}
/**
* このオブジェクトと同一クラスの新しいオブジェクトを作成する。次に、
* 新しいオブジェクトのフィールドのそれぞれを、このオブジェクトの対
* 応するフィールドと同一の値を割り当てることによって初期化する。
* コンストラクタは呼び出されない。
* このオブジェクトと同一の状態に初期化された新しいオブジェクト。
*/
public Object clone() throwsCloneNotSupportedException {
}
/**
* このメソッドは、FieldRecord が同等であるかどうかを判定
* する。このFieldRecordが obj引数と同一である場合に TRUE を返す。
* そうでない場合にFALSEを返す。
* @param obj  比較される参照オブジェクト。
*/
public boolean equals(Object obj) {
}
/**
* インデックスによって指定されるフィールドを返す。
*/
public IFieldRecord getField(int index)throws ScreenException {
}
/**
* 名前によって指定されるフィールドを返す。
*/
public IFieldRecord getField(String name)throws ScreenException {
}
/**
* 画面内のフィールドの数を返す。
*/
public int getFieldCount() {
}
/**
* getFieldsメソッドはリターンする。
*/
public java.util.Iterator getFields() {
}
/**
* getModifiedFieldsメソッドは、修正済みフィールドだけを返す。
* 修正済みフィールドは、ブール変数によって判定される。このメ
* ソッドは、修正済みであり保護されないフィールドだけを返すよ
* うに修正することができる（保護されたフィールドの修正は許可
* されない）。
*/
public java.util.IteratorgetModifiedFields() {
}
/**
* getRecordNameメソッドは、画面レコード名を返す。
*/
public String getRecordName() {
}
/**
* getRecordShortDescriptionは、画面レコードの説明を返す。
*/
public String getRecordShortDescription() {
}
/**
* 画面の行数（深さ）を返す。
*/
public int getScreenDepth() {
}
/**
* getScreenIdメソッドは、画面レコードの一意識別子（ＩＤ）を返す。
*/
public String getScreenId() {
}
/**
* 画面の列数（幅）を返す。
*/
public int getScreenWidth() {
}
/**
* setRecordNameメソッドは、画面レコードの名前をセットする。
* レコード名へのアクセスを可能にするもう１つのメソッド（この場合に
* アクセスは、値を書き込むかセットする）。
*/
public void setRecordName(String name) {
}
/**
* setRecordShortDescriptionメソッドは、画面レコードの説明をセットする。
*/
public voidsetRecordShortDescription(String description) {
}
/**
* setScreenIdメソッドは、画面レコードの一意識別子（ＩＤ）をセットする。
*/
public void setScreenId(String screenId) {
}
}
付録Ｃ
FieldRecord
public class FieldRecord implementsIFieldRecord, java.io.Serializable {
/**
*
*/
protected FieldRecord() {
super();
}
/**
* FieldRecordは、フィールドの特徴および特性を記述する
* メソッドおよび変数を提供する。
*/
public FieldRecord(
String name,
int position,
int row,
int col,
String text,
int maximumLength,
IFieldAttrInfo fieldAttributes,
ITextAttrInfo textAttributes) {
}
/**
* フィールドのデータにテキストを付加する。フィールドが
* 保護される（すなわち、修正できない）場合には、
* appendTextメソッドは例外を送出する。
*/
public void appendText(String text) throwsScreenException {
}
/**
* このオブジェクトと同一クラスの新しいオブジェクトを作成する。次に、
* cloneメソッドは、 新しいオブジェクトのフィールドのそれぞれを、渡
* されたオブジェクトの対応するフィールドと同一の値を割り当てること
* によって初期化する。コンストラクタは呼び出されない。
* このオブジェクトと同一の状態に初期化された新しいオブジェクト。
*/
public Object clone() throwsCloneNotSupportedException {
}
/**
* equalsメソッドは、FieldRecord が同等であるかどうかを判定
* する。このFieldRecordが obj引数と同一である場合に TRUE を返す。
* そうでない場合に FALSE を返す。
* 渡されるパラメータobjは、比較される参照オブジェクトである。
*/
public boolean equals(Object obj) {
}
/**
* 背景色を示す値を返す。
*/
public int getBackGroundColor() {
}
/**
* 前景色を示す値を返す。
*/
public int getForeGroundColor() {
}
/**
* 強調表示を示す値を返す。
*/
public int getHighlight() {
}
/**
* フィールドの最大長を示す値を返す。
*/
public int getMaxLength() {
}
/**
* フィールドの名前を示す値を返す。
*/
public String getName() {
}
/**
* フィールドが始まる列を示す値を返す。
*/
public int getStartCol() {
}
/**
* フィールドが始まる位置を示す値を返す。
*/
public int getStartPos() {
}
/**
* フィールドが始まる行を示す値を返す。
*/
public int getStartRow() {
}
/**
* フィールドに関連するテキストを示す値を返す。
*/
public String getText() {
}
/**
* フィールドのテキストの色属性を示す値を返す。
*/
public char[] getTextColors() {
}
/**
* 拡張テキスト属性を返す。
*/
public char[] getTextExtAttrs() {
}
/**
* フィールドの透過性属性を示す値を返す。
*/
public int getTransparency() {
}
/**
* フィールドが表示されるかどうかを示す値を返す。
*/
public boolean isDisplay() {
}
/**
* フィールドの輝度（表示特性）を示す値を返す。
*/
public boolean isHighIntensity() {
}
/**
* フィールドが修正されたかどうかを示すブール値を返す。
*/
public boolean isModified() {
}
/**
* フィールドに含まれるデータの型を示す値を返す。
*/
public boolean isNumeric() {
}
/**
* フィールドに関連するデータが保護される（すなわち
* 修正不能）かどうかを示す値を返す。
*/
public boolean isProtected() {
}
}
【図面の簡単な説明】
【００７７】
【図１】本発明の諸態様を実施するコンピュータ・システムを示す概略図である。
【図２】図１のコンピュータ・システムの一部を詳細に示す概略図である。
【図３】図１の一部を機能ブロックの形で示す図である。
【図４】図３の諸部分を詳細に機能ブロックの形で示す図である。
【図１】
2005510795.tif 000006
【図２】
2005510795.tif 000007
【図３】
2005510795.tif 000008
【図４】
2005510795.tif 000009
【国際調査報告】
2005510795.tif 000010
2005510795.tif 000011
2005510795.tif 000012