(57)【特許請求の範囲】
【請求項１】
データ処理システム上で実行される少なくとも１つの業務アプリケーション（BA）へのオブジェクト指向（OO）アクセスを生成する方法であって、前記BAが、オブジェクト指向の規範に対応しないことを特徴とし、
前記BAによってサポートされる対象となる業務に関する独自の実体または概念として意味を有する少なくとも１つの業務オブジェクト（BO）・クラスを定義するステップと、
前記BAの入力パラメータおよび出力パラメータを含む前記BOクラスのBO属性（BOA）を定義するステップと、
前記BAをカプセル化するために、少なくとも１つのトランザクション・オブジェクト（TO）・クラスを定義するステップとを含み、
前記TOクラスが、前記BAの特異性に従って前記BAの実行を制御するために設けられ、
前記BA実行が入力パラメータを受け取るか出力パラメータを送る複数の相互作用を必要とする場合に、前記TOクラスが、前記BAの状態を追跡するために設けられ、
前記TOクラスが、前記BOAから前記BA呼出しのための入力パラメータを抽出するために設けられ、
前記TOクラスが、前記BOクラスの少なくとも１つのBOインスタンスがまだインスタンス化されていない場合に、前記BOクラスの前記BOインスタンスを作成するステップと、前記BAによって返される前記出力パラメータを抽出し、対応する前記BOAに格納するステップとを含む、具体化処理を実行するために設けられ、
さらに、少なくとも１つのトランザクション・レコード（TR）・クラスを定義するステップを含み、
前記TRクラスが、前記BAとの１つの相互作用で送受される入力パラメータまたは出力パラメータを含む、BAメッセージと称する入力データ・ブロックまたは出力データ・ブロックのそれぞれをモデル化するために設けられ、
前記TRクラスが、前記BAメッセージを組み立てる個々のデータ要素に関する、前記BAメッセージ内のタイプ、長さおよび位置に関する記述情報を格納するために設けられ、
前記TRクラスが、前記BAメッセージの独自のデータ要素を前記BOクラスの前記BOAのうちの独自の１つに関連付け、その逆を行うためのマッピング情報を格納するために設けられ、
さらに、前記BAメッセージを前記BAと交換する能力を実施する前記TOクラスに前記TRクラスを関連付けるステップを含む、
方法。
【請求項２】
さらに、前記BOクラスの前記BOAの組を２つのサブセットに分割するステップを含み、前記BOAのサブセットのうちの１つが、BOキー属性（BOKA）と呼ばれ、BOKA値の各組合せが、前記BOAの残りのすべてから構成されるBO一般属性（BOGA）と呼ばれるBOAの第２のサブセットのBOA値から独立に、前記BOクラス内の１つのBOインスタンスを一意に正確に識別する特性を有する、請求項１の方法。
【請求項３】
さらに、BOインスタンス空間（BOIS）を確立するステップを含み、
前記BOISが、作成後にすべての前記BOインスタンスを格納するために設けられ、
前記BOISが、BOクラスの情報およびあるBOインスタンスのBOKA値に基づいて、前記BOインスタンスを取り出せるようにするために設けられる
請求項１および２のいずれか一項に記載方法。
【請求項４】
さらに、複数のタイプの前記BOISを定義するステップを含み、複数のタイプの前記BOISが、
少なくとも１つの特定のBOクラスの前記BOインスタンスの格納と取出のための少なくとも１つのいわゆる明示BOISと、
前記明示BOISのいずれもが特定のBOクラスのBOインスタンスの格納および取出のために定義されていない場合に使用される、いわゆる暗黙のBOISと
を含む、請求項３の方法。
【請求項５】
さらに、前記BOIS内に格納された前記BOインスタンスのうちのいずれかがシステム内の他のオブジェクトによって参照されているかどうかを監視するための制御手段によって前記BOISを機能強化するステップを含み、前記BOインスタンスのうちの１つへの最後の参照が除去されたならば、前記制御するOBISが、前記BOインスタンスを透過的に削除することを特徴とする、請求項３または４のいずれか一項に記載方法。
【請求項６】
前記BAが遠隔データ処理システム上で実行される場合に、使用可能な通信プロトコルのうちのいずれかを使用して通信接続を設定し、前記TOクラスに割り当てられた前記BAの実行を開始するために設けられる、OOメソッドSTARTと、
前記BAの実行を完了させ、停止させ、前記BAが遠隔データ処理システム上で実行される場合に、前記遠隔システムへの通信接続を閉じるために設けられる、OOメソッドSTOPと、
要求側が通信の詳細を知り、理解する必要をなくすために処理のために前記BAに第1BAメッセージを転送するため、また、前記第1BAメッセージの処理結果として前記BAから返される第2BAメッセージを待つために設けられる、OOメソッドTRANSMITと
を含む、前記BAと相互作用するために抽象プロトコルを実装するOOメソッドの組によって前記TOクラスを拡張するステップ
をさらに含む、請求項１ないし５のいずれか一項に記載の方法。
【請求項７】
OOメソッドINXACTIONによって前記TRクラスのそれぞれを拡張するステップをさらに含み、
前記INXACTIONが、BOインスタンスに関連するTOインスタンスからアクセス可能なBOKA値を使用するBAメッセージ作成に使用されるBOインスタンス識別を判定するために設けられ、
前記INXACTIONが、前記BOKA値によって前記BOIS内の前記BOインスタンスをアクセスするために設けられ、
前記INXACTIONが、BAメッセージを作成し、前記BAメッセージのデータ要素として前記BAメッセージの関連位置に前記BOA値を格納するために、前記TRのマッピング情報の制御下でBA値を抽出するために設けられ、
前記INXACTIONが、前記関連するTOインスタンスのOOメソッドTRANSMITを呼び出すことによって、次の処理のため前記BAに作成された前記BAメッセージを送るために設けられ、
前記INXACTIONが、受け取ったBA出力メッセージを処理する責任を負うTRインスタンスのOOメソッドOUTXACTIONにBA出力として現在受け取っているBAメッセージを渡すために設けられ、
さらに、段階的なBOの部分的な具体化または単に具体化と称する処理で、前記BAメッセージに格納されたBOA値をBOインスタンスに与えることによって、前記現在受け取っているBAメッセージを処理するためのOOメソッドOUTXACTIONによって前記TRクラスのそれぞれを拡張するステップを含み、
前記OUTXACTIONが、現在受け取っている前記BAメッセージから変更されるBOインスタンスのBOKA値を取り出すこと、または、あるコンテキストでの制御の下で具体化される全BOインスタンスの全BOKA値を格納する関連する前記TOインスタンスから前記BOKA値を取り出すことのいずれかによって、現在受け取っている前記BAメッセージ・データ要素によって変更されるBOインスタンスのすべてを、前記TRのマッピング情報の制御の下で判定するために設けられ、
前記のOUTXACTIONが、前記BOKA値に基づいて、まずBOIS内で変更されるBOインスタンスのそれぞれを探索し、変更される前記BOインスタンスが前記BOIS内で突き止められる場合には、これが具体化処理中に使用され、変更される前記BOインスタンスが前記BOIS内で突き止められない場合には、新しいBOインスタンスが前記BOIS内で作成され、
前記OUTXACTIONが、前記TRのマッピング情報の制御下で、現在受け取っている前記BAメッセージ・データ要素のそれぞれを、変更される前記BOインスタンスの対応するBOAにコピーし、したがって、前記BOインスタンスのBOAを増分的に具体化し、
前記OUTXACTIONが、OUTXACTIONの現在の実行中に具体化され、変更されるBOインスタンスのすべてのオブジェクト参照を呼出し側に返すことを特徴とする
請求項１ないし６のいずれか一項に記載の方法。
【請求項８】
トランザクション・ステップ（TST）と称する少なくとも１つのサブユニットに、前記BA実行の相互作用の完全なシーケンスを開始から完了まで組み立てるステップをさらに含み、前記TSTが、少なくとも第1BAメッセージを自律的に生成し、前記BAと交換し、前記TSTの最終BAメッセージとして定義されたBAメッセージが前記BAによって返された後に実行を完了するために設けられ、前記最終BAメッセージが、任意指定として次のTSTの先頭を定義し、
前記TOクラスのトランザクション・オブジェクト・メソッド（TOM）と称する独自のOOメソッドとして前記TSTをカプセル化するステップをさらに含む
請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
BAによって提供される機能部分をカプセル化する、業務オブジェクト・メソッド（BOM）と称する少なくとも１つのOOメソッドによって前記BOクラスを拡張するステップをさらに含み、
前記BOMが、まだインスタンス化されていないTOインスタンスに対して前記TOMが実行されようとする場合には少なくとも１つの新しいTOインスタンスをまず作成し、そうでない場合にはすでに使用可能な少なくとも１つのTOインスタンスを使用するために設けられ、
前記BOMが、前記TOインスタンスによって提供される少なくとも１つの前記TOMを呼び出すために設けられることを特徴とする、請求項８の方法。
【請求項１０】
少なくとも１つのTRインスタンスを突き止めるため、また、少なくとも１つのBAメッセージを作成し、前記BAと交換することのできる前記TOインスタンスに関連する前記TRインスタンスのINXACTION  OOメソッドを呼び出すために設けられた前記TOクラスを拡張するステップと、
前記TOMの実行中に具体化されるBOインスタンスのオブジェクト参照を前記TOMの要求側に返すために設けられる前記TOクラスの前記TOMを拡張するステップと、
前記BOMの実行中に具体化されるBOインスタンスのオブジェクト参照を前記BOMの要求側に返すために設けられる前記BOクラスの前記BOMを拡張するステップと
をさらに含む、請求項７および９のいずれか一項に記載方法。
【請求項１１】
前記TOクラスの抽象プロトコルと同等の意味を有するOOメソッドSTART、STOPおよびTRANSMITを含む抽象プロトコルを提供する少なくとも１つの通信オブジェクト（CO）・クラスを生成するステップと、
前記COクラス内の通信関連態様をカプセル化し、前記BAが遠隔データ処理システム上で実行される場合に、コンピュータ・ネットワーク内で前記データ処理システムを接続するのに使用される具体的なプロトコルに前記抽象プロトコルをマッピングするステップと、
前記COクラスを前記TOクラスに関連付けるステップと、
前記関連付けられたCOクラスのインスタンスの対応するSTART  OOメソッドを呼び出すため、前記関連付けられたCOインスタンスを作成するように、前記TOインスタンスの前記START  OOメソッドを拡張するステップと、
前記COインスタンスが基づく前記具体的なプロトコルの実行のため、関連付けられた前記COインスタンスの対応するメソッドを呼び出すように、前記TOインスタンスのSTOPおよびTRANSMIT  OOメソッドを拡張するステップと
をさらに含む、請求項１および10のいずれか一項に記載方法。
【発明の詳細な説明】
１  発明の背景
1.1  発明の分野
本発明は、データ処理システム上で実行される業務アプリケーション（BA）のオブジェクト指向技術（OOT）に基づく近代的環境への統合および移行を可能にし、案内する方法に関する。具体的に言うと、本発明は、データ処理システム上で実行されるBAが、オブジェクト指向（OO）の規範に対応せず、従来の非OO原則に従うと仮定される場合に、前記BAへのOOアクセスを生成する方法に関する。
1.2  従来技術の説明と欠点
情報技術の利用側ならびに情報技術自体が、業務をサポートし制御するソフトウェアの新しい次元の柔軟性および適応性という課題に直面している。もちろん、ソフトウェア開発技術も、これらの要件に直面している。一方では、業務上の進取の気質がこれらの需要を産み出し、他方では、情報技術自体がそれを駆り立てている。
会社は、新しい変化する市場要求に対処している。顧客サービスの改良と時宜を得た販売が、差別化の鍵である。市場の国際化、集中排除などの組織的変化、新しい協業に、新しい業務の構造と概念が必要である。これらの課題への回答として、会社は、基礎となる業務処理を重大な範囲までリエンジニアリングしようとしている。オンライン・トランザクション処理アプリケーション（OLTP）、データ・ベース・アプリケーションなど膨大な範囲の異なるアプリケーション・タイプを含む業務アプリケーション・ソフトウェアは、追従しなければならない世界での重要な支援的可能化要素を有する。クライアント−サーバ技術、マルチメディア技術およびオブジェクト指向（OO）技術などの新技術を提供することによって情報技術自体が劇的な変化を被る際には、状況はさらに悪化する。
これらの変化全般、具体的にはOOTへの既存のBAの統合化、移行または適合の試みは、OOTがますます重要になり、他のタイプの新技術をアクセスするための統一的なアプローチであると考えられるので、さまざまなアプローチが既知である。
所与のアプリケーションの起源が数年前にさかのぼり、時によっては10年以上前にさかのぼる場合、技術が劇的な発展の対象となっているならば、最初の衝動でこの種のレガシー（legacy）・アプリケーションを放棄しようと思うかもしれない。というのは、これらのアプリケーションは、クライアント−サーバ概念などの新技術に関する適応の準備がなされておらず、望みがないようにみえるからである。むろん、この種のアプローチが、いくつかの状況で合理的である場合もある。しかし、レガシー・アプリケーションを「放棄」するという決定は、性急な応答であることがしばしばである。レガシー・アプリケーションを「再利用」できるようにする代替案を探す価値がある。とうのは、レガシー・アプリケーションには、それがサポートする業務に関する貴重な知識が含まれるからである。レガシー・アプリケーションの再実装のために、膨大な人および年月を費やす必要が生じるはずである。また、多くの会社は、明らかな意味でその業務サポート・アプリケーションに頼っているので、このような不連続性は許容不能になる可能性があり、より漸進的なアプローチが望ましい可能性がある。
再構成によるレガシー・アプリケーションの近代化を、これに代わる態度とすることができる。その結果、この概念では、近代技術の「目にみえる」効果が、全体的な労力に比較して非常にささやかであるのに、古いアプリケーション自体への膨大な投資が必要となることがしばしばである。時には、アプリケーションの再構成が、実際に完全に新しい実装につながる場合がある。その一方で、この「隠れた」再実装を回避しなければならない場合には、通常は、新しいアプリケーション構造の特性設計の自由度に関して制限が課せられる。
特に、あるアプリケーションをオブジェクト指向環境から使用可能にしなければならない場合には、「ラッピング」と称する技法を使用することができる。既存アプリケーションのラッピングとは、アプリケーションの活動をオブジェクト・メソッドとして提供する１つまたは一連のオブジェクトにそのアプリケーションをカプセル化することを意味する。この種のアプローチは、主に所与のアプリケーション実装に基づくので、主にモデル化された業務に関するオブジェクトを用いて整列されていないので、欺瞞的なオブジェクト構造につながる。時には、アプリケーション全体が、単一の完全に統制されたオブジェクトにラップされる。
1.3  発明の目的
本発明は、OOTの原理に基づいて作成されていないBAのアクセスのため協調するオブジェクト構造を生成し実行するという目的に基づく。同一の方法は、BAが遠隔データ処理システム上で実行される場合、すなわち、新オブジェクト構造と同一のシステム上にない場合にも適用できる。
２  発明の概要と利点
本発明の目的は、請求項１によって解決される。本発明によれば、提案される方法は、BAによってサポートされる基礎となる業務に関する実体または概念として一意の意味を有する真の業務オブジェクト（BO）・クラスの定義を対象とする。BOは、そのBO属性（BOA）を定義することによって指定される。BAが、業務関連データの処理に使用されるので、個々のBOクラスのBOAを表すのは、BAの入出力パラメータの群である。OO環境内では、BAは、BAをカプセル化したトランザクション・オブジェクト（TO）・クラスとして実現される。TOクラスによって、BAの実行が制御される。BAの実行には、通常はBA完了まで入出力パラメータを送受する複数の相互作用が必要となるので、TOはBA状態の追跡も行う。BA実行のため、TOクラスは、BOからBOA値を透過的に抽出して、処理のためBAに送られたBAの入力パラメータを組み立てる責任を負う。BA実行のほかに、TOクラスは、BO具体化処理も実行する。BO具体化とは、第１ステップでBAによって返された出力パラメータを処理して、まだインスタンス化されていないBOのデータが出力パラメータに格納されるかどうかを検査することを意味する。必要があれば、具体化処理によってこれらの新しいBOインスタンスを作成する。第２ステップでは、具体化によって、BAによって返される出力パラメータを処理して、BOインスタンスの対応するBOAを更新する。
BO定義処理は、BAの挙動によって制限されないので、どのようなBOクラスでも実現でき、したがって、オブジェクト構造の形式での業務世界の真のモデルのための自由度がもたらされる。したがって、欺瞞的なオブジェクト実体を回避することができる。BOは、BA構造を隠蔽し、したがって、追加のアプリケーションおよび新タイプのグラフィカル・ユーザ・インターフェースを有する統合化プラットフォームとして理想的な基礎である。また、BAは、遠隔データ処理システム上で処理できるので、元々のBAがクライアント−サーバ用に開発されていない場合でも、クライアント−サーバ構造を実現できる。BO構造は、BAを利用して透過的にアクセス可能または修正可能なデータの持続性記憶という概念を提供する。TOでのBAのカプセル化と、BAの入出力パラメータとのBAの関連付けの実現によって、BOは、非常に広い範囲にわたってBAの構造および特異性から独立になる。本発明のもう１つの長所は、具体化処理によって提供される。具体化の結果として、BOインスタンスが作成される時に、その時点での特定のBAによって提供されるBOA値の一部が格納され、これはBOの全BOAのごく一部になる可能性がある。したがって、部分的具体化の挙動によって、BOインスタンスを操作し、利用側に実際に必要なBOA値の部分だけを格納することができる。これは、業務領域に関連するオブジェクトが非常に大きくなる可能性があるので、これらのオブジェクトにとって特に重要である。したがって、記憶域の極度に経済的な使用が、具体化アプローチの主要な長所であり、結果である。その一方で、BOインスタンスの寿命の間、そのインスタンスの属性は、追加のBOA値をもたらす次のBA実行のそれぞれによって、１つずつ追加される。BOA属性の段階的追加につながる追加の具体化処理によって、必要なデータが得られることが必ず保証される。
本発明の追加の長所は、請求項１によって達成される。本発明のもう１つの実施態様によれば、BAメッセージと称する、BAとの１回の相互作用で送受される入出力パラメータを含む個々の入出力データ・ブロックは、トランザクション・レコード（TR）・クラスと称する別々のオブジェクト・クラスにカプセル化される。各BAメッセージのタイプは、個々のTRクラス内にカプセル化される。入出力パラメータ自体のほかに、TRクラスには、カプセル化されたBAメッセージを組み立てる個々のデータ要素に関する記述情報が格納される。たとえば、BAメッセージ・データ要素は、そのデータ・タイプ（文字列、数値など）、その長さ、BAメッセージ全体の中での位置などによって記述できる。BAメッセージの一部であるパラメータの大半は、さまざまなBOのBOAを表すことが期待できるので、TRクラスには、さらに、各BAメッセージ・データ要素をあるBOクラスの独自のBOAに関連付け、その逆の関連付けを行うためのマッピング情報が、BAメッセージ・データ要素ごとに格納される。TOクラスは、BAをカプセル化し、個々のBAメッセージの作成と交換のためにTRインスタンスを利用する。カプセル化されたBAを用いるデータ交換に重要なこれらのTRクラスを、カプセル化するTOクラスに関連付けることによって、TOは、TRによって提供される機能性を利用できるようになる。
TRは、BAと交換される、TRによらなければ構造化されないバイトのストリームの詳細な構造を導入するという長所を提供する。このカプセル化は、モジュール的なオブジェクト指向の形で行われる。TRクラス内に格納されるマッピング情報に起因して、TRは、BO具体化処理への貢献において中心となる重要さを有する。
本発明の追加の長所は、請求項２によって達成される。本発明のもう１つの実施態様によれば、本発明の方法によって、BOAの範囲が２つのサブセットに分離される。BOAの第１のサブセットは、BOキー属性（BOKA）と称し、BOKA値の組合せのそれぞれが、前記BOAの残りのすべてから構成される、BO一般属性（BOGA）と称するBOAの第２のサブセットのBOA値とは独立に、前記BOクラス内の１つのBOインスタンスを一意に正確に識別する特性を有する。
このアプローチの長所は、１つのオブジェクトに対する別々のアクセス方法を確立する可能性である。従来のオブジェクト参照を介するオブジェクトのアクセスのほかに、上の概念を用いると、オブジェクトのBOKA値を指定することによってそのオブジェクトをアクセスできるようになる。というのは、BOKA値が、その性質によって１つのBOを一意に指定するからである。この別のアクセス方法によって、具体化されるBOのオブジェクト参照なしにBOの具体化を実行するオブジェクト構造が可能になるので、この別アクセス方法は、具体化処理の基礎となる。
本発明の追加の長所は、請求項３によって達成される。本発明のもう１つの実施態様によれば、いわゆるBOインスタンス空間（BOIS）が、作成後のすべてのBOインスタンス用の共通の記憶媒体として確立される。BOISは、BOクラスの情報およびあるBOインスタンスのBOKA値に基づく前記BOインスタンスの取出もサポートし、したがって、BOISは、BOKA概念を利用する。
この特徴は、部分的な、段階的具体化処理を可能にするのに重要である。BOの反復的な具体化のために、協調するオブジェクト構造は、具体化されるBOを共通の場所で探索することができ、そのBOインスタンスにさらにBOデータを与えることができなければならない。
本発明の追加の長所は、請求項４によって達成される。本発明のもう１つの実施態様によれば、複数のタイプのBOISを区別することができる。１つまたは複数のいわゆる明示BOISは、あるBOクラスのBOインスタンスの格納と検索のために利用することができる。すなわち、特定のBOクラスごとに、そのクラスのBOインスタンスが明示BOISのどれに格納されるかを定義することができる。さらに、いわゆる暗黙のBOISが使用可能であり、これは、あるBOクラスのBOインスタンスの格納と検索のために前記明示BOISが１つも定義されていない場合に、そのBOクラスのBOインスタンスを格納するのに使用される。
この多重BOIS概念によって、柔軟性が高まる。さらに、多重BOISは、プライバシやセキュリティのために使用することができる。もう１つの長所として、多重BOISを用いると、適度なサイズのBOIS、すなわち、適度な数のBOインスタンスを格納するBOISを提供することができ、したがって、BOインスタンスの局所化の効率に影響を及ぼすことができる。
本発明の追加の長所は、請求項５によって達成される。本発明のもう１つの実施態様によれば、あるBOISに格納されたBOインスタンスのどれかが、システム内の他のオブジェクトによってまだ参照されているかどうかを監視するための制御処理によって、BOIS概念を機能強化することができる。格納されたBOインスタンスのいずれかに対する最後の参照が除去された、すなわち、システム内の他のオブジェクトが、今後はそのBOインスタンスを参照しないことをBOISが検出すると、BOISの前記制御処理が、前記BOインスタンスを透過的に削除する。
このようなBOIS挙動によって、BOインスタンスの処理が劇的に単純化される。現在の利用側がもはやBOインスタンスに関心を持たない場合、そのBOインスタンスを明示的に削除する必要はもはや存在しない。利用側は、オブジェクト参照を放棄するだけで十分であり、BOISが、参照されていないBOインスタンスを検出し、そのBOインスタンスを透過的に削除する。互いに情報を交換しない同一のBOインスタンスの独立の利用側は、そのBOインスタンスへの関心、すなわち、BOを除去できるか、別の利用側がまだそのBOインスタンスを必要としているかどうかを同期化させる必要がない。
本発明の追加の長所は、請求項６によって達成される。本発明のもう１つの実施態様によれば、BAと相互作用するための抽象プロトコルを実施するOOメソッドの組によって、TOクラスが機能強化される。このプロトコルは、OOメソッドSTART（開始）を含み、BAが遠隔データ処理システム上で実行される場合には使用可能な通信プロトコルのいずれかを使用して通信接続をセットアップし、TOクラスに割り当てられた前記BAの実行を開始する。さらに、このプロトコルは、OOメソッドSTOP（停止）を提供して、前記BAの完了と停止を行い、前記BAが遠隔データ処理システム上で実行される場合には、前記遠隔システムへの通信接続を閉じる。最後に、OOメソッドTRANSMIT（送信）が、このプロトコルの一部であって、あるBAメッセージを処理のためBAに伝送して、前記要求側が通信の詳細を知り、理解する必要をなくし、第１のBAメッセージの処理結果としてBAから返される応答BAメッセージを待つ。
このように、TOとBAの間のデータ交換に使用される具体的な技術から独立に、BAとの相互作用の範囲を共通の核すなわち共通の挙動だけに減らすことによって、劇的な単純化がもたらされる。というのは、通常は、圧倒的な数の異なる具体的な技法が使用可能であり、特に、BAが遠隔データ処理システム上で実行される場合には、非常に洗練された複雑なネットワーク・プロトコルをアクセスしなければならないが、これらを共通の形で処理できるようになるからである。本発明のアプローチを用いると、抽象プロトコルをさまざまな具体的プロトコルにマッピングできるようになる。このマッピングは、１回だけ実施され、その後は、実際に使用可能な技術に応じて反復利用が可能になる。
TOインスタンスがそれに関連するTRクラスおよびTRインスタンスを判定する能力を用いると、個々のTRの能力を透過的に利用することができ、したがって、TOがBAメッセージの詳細を知る必要がなくなる。逆に、TRインスタンスがそれに関連するTOインスタンスを判定する能力を用いると、TRインスタンスが、TOインスタンス内に格納された情報を透過的にアクセスできるようになり、TRの処理のためにTRがその情報を利用できるようになる。これらの概念に基づいて、TOインスタンスは、BAメッセージへの情報の書込を含むBAメッセージの作成を、TRインスタンスに委任することができる。一般に、このアプローチによれば、OOメソッド・インターフェースが単純化される。というのは、オブジェクトが、そうでなければOOメソッド・インターフェースを介して受け取らなければならない大量の追加情報を、それ自体の処理のために取り出すことができる関連オブジェクトを判定する能力を備えるからである。
本発明の追加の長所は、請求項７によって達成される。本発明のもう１つの実施態様によれば、TRクラスは、OOメソッドINXACTIONを拡張される。INXACTIONは、関連するTOインスタンスからアクセス可能なBOKA値を使用して、BAメッセージ作成に使用されるBOインスタンス識別を判定する。INXACTIONは、BOKA値の助けを借りてBOIS内のBOインスタンスをアクセスする。TRのマッピング情報の制御下で、INXACTIONは、要求されたBOA値をBOインスタンスから抽出してBAメッセージを作成し、前記BAメッセージ・データ要素としてBAメッセージの関連位置に前記BOA値を格納する。その後、INXACTIONは、関連するTOインスタンスのOOメソッドTRANSMITを呼び出すことによって、作成されたBAメッセージを次の処理のためにBAに送る。BAの応答を受け取った時に、INXACTIONは、現在受け取っているBAメッセージをBA出力として、受け取ったBA出力メッセージの処理に関する責任を負うTRインスタンスのOOメソッドOUTXACTIONに送る。さらに、TRクラスのそれぞれは、前記現在受け取っているBAメッセージを処理するために、OOメソッドOUTXACTIONを拡張される。この処理ステップでは、BOインスタンスは、段階的に行われるBOの部分的具体化または単に具体化と称する処理で、現在受け取っているBAメッセージに格納されたBOA値を与えられる。具体化とは、第１に、OUTXACTIONが、TRのマッピング情報の制御下で、現在受け取っているBAメッセージ・データ要素によって変更されるBOインスタンスのすべてを判定することを意味する。変更されるBOインスタンスのBOKA値は、現在受け取っているBAメッセージのBOKA値から取り出されるか、あるコンテキストでその制御の下で具体化された全BOインスタンスのBOKA値のすべてを格納する関連TOインスタンスから取り出される。具体化とは、第２に、OUTXACTIONが、前記BOKA値に基づいて、BOIS内の変更されるBOインスタンスのそれぞれを探索することを意味する。前記変更されるBOインスタンスをBOIS内で突き止めることができる場合には、このBOインスタンスが具体化処理中に使用されるが、変更されるBOインスタンスをBOIS内で突き止めることができない場合には、BOIS内で新しいBOインスタンスが作成される。具体化とは、第３に、OUTXACTIONが、前記TRのマッピング情報の制御下で、現在受け取っているBAメッセージ・データ要素のそれぞれを、変更されるBOインスタンスの対応するBOAにコピーし、したがって、変更されるBOインスタンスのBOAを増分的に具体化することを意味する。最後に、OUTXACTIONは、OUTXACTIONの現在の実行中に具体化された、変更されたBOインスタンスのすべてのオブジェクト参照を、その呼出し側に返す。
TRインスタンスの、上記活動シーケンスを実行するOOメソッドINXACTIONおよびOUTXACTIONの拡張は、TOインスタンスが、
・  BAに送られるBAメッセージの作成自体と
・  具体化処理の実行自体と
から解放されるという長所につながる。その代わりに、TOインスタンスは、その部分の処理についてTRインスタンスを利用する。TOインスタンスの活動は、BAメッセージを交換するBA実行の制御に制限される。TO活動の範囲は、より見通しのよいものになる。その一方で、TRインスタンスは、BAメッセージ・データ要素とBOAの間のマッピング情報を入手できるので、TRインスタンスは、BAメッセージ作成とBO具体化処理のための理想的な場所であり、モジュール化された全体構造がもたらされる。具体化の処理に関して、BOKA値を使用してBOインスタンスをアクセスすることが有利なので、このアプローチはBOIS概念から利益を得ている。
本発明の追加の長所は、請求項８によって達成される。本発明のもう１つの実施態様によれば、前記BA実行の開始から完了までの相互作用の完全なシーケンスが、トランザクション・ステップ（TST）と称する１つまたは複数のサブユニットで組み立てられる。各TSTは、１つまたは複数のBAメッセージを自律的に生成し、BAと交換する。TST実行は、前記TSTの最終BAメッセージとして定義されたBAメッセージがBAによって返された時に完了する。その最終BAメッセージは、任意選択として、次TSTの先頭を定義する。TSTのそれぞれは、TOクラスのトランザクション・オブジェクト・メソッド（TOM）と称する独自のOOメソッドとしてカプセル化される。
これらのTOMを導入することによって、TOM呼出しによってBAの一部を実行することが可能になる。TOMは、その呼出し側をBAメッセージの作成、送出および受取から解放する。また、受け取ったBAメッセージの解釈は、具体化ステップで呼出し側に透過的に処理される。
本発明の追加の長所は、請求項９によって達成される。本発明のもう１つの実施態様によれば、BOクラスは、BAによって提供される機能部分をカプセル化する、業務オブジェクト・メソッド（BOM）と称するOOメソッドによって拡張される。BOMの呼出しは、最終的に、１つまたは複数のTOインスタンスの１つまたは複数のTOMの呼出しをもたらす。BOMが呼び出されたならば、その実行によって、まだインスタンス化されていないTOインスタンスからTOMが実行される場合には、まず、新しいTOインスタンスの作成がもたらされる場合がある。
これらのBOMを導入すると、複数のBAの一部を透過的に実行できるようになる。したがって、BOインスタンスの利用側は、TO構造およびTR構造から完全に遮蔽される。BOインスタンスの利用側は、これらの構造が実際に存在することさえ知らない可能性がある。
本発明の追加の長所は、請求項10によって達成される。本発明のもう１つの実施態様によれば、BOMとTOMのOOメソッドは、その実行期間中に具体化されるBOインスタンスへのオブジェクト参照のすべてを、要求側に返すように機能強化される。これによって、要求側が、具体化されたBOを検査することによって、BA実行結果を利用できるようになる。
本発明の追加の長所は、請求項11によって達成される。本発明のもう１つの実施態様によれば、１つまたは複数の通信オブジェクト（CO）クラスが導入され、OOメソッドSTART、STOPおよびTRANSMITからなり、TOクラスの抽象プロトコルと同等の意味を有する抽象プロトコルが提供される。COクラスは、BAとの通信の詳細に関連する諸態様をカプセル化するために導入される。特にBAが遠隔データ処理システムで実行される場合に、この抽象プロトコルは、コンピュータ・ネットワーク内でデータ処理システムを接続するのに使用される具体的な通信プロトコルにマッピングされる。COクラスをTOクラスに関連付け、前記TOインスタンスのSTART  OOメソッドを、前記関連するCOクラスのインスタンスの対応するSTART  OOメソッドを呼び出すために前記関連するCOクラスのインスタンスを作成するように拡張することによって、TOインスタンスは、BAとの通信にCOインスタンスを利用することができるようになる。同じ形で、前記TOインスタンスのSTOPおよびTRANSMIT  OOメソッドは、COインスタンスが基づく具体的なプロトコルの実行のために、前記関連するCOインスタンスの対応するメソッドを呼び出すように拡張される。
抽象プロトコルを使用可能な具体的な通信プロトコルのいずれかにマッピングする１つまたは複数の別々のCOクラスを生成すると、機能構成要素のモジュール化が改善される。それと同時に、TOは、関係のあるCOクラスをTOクラスに関連付けるだけで、使用可能な具体的なプロトコルのいずれかによって抽象プロトコルを処理することが簡単にできるようになるので、柔軟性が向上する。
すでに本実行方法の多くの長所を述べた。したがって、詳細については、上の節を参照する。
【図面の簡単な説明】
第１図は、BAの入出力パラメータとのBOAの関連を反映した図である。
第２図は、TRと、BOおよびBOAに対するTRの関係を示す図である。
第３図は、COクラスとその抽象プロトコルを視覚化した図である。
第４図は、抽象プロトコルの具体的な代替実施例を示す図である。
第５図は、TOクラス階層と、問題固有のTOクラスを示す図である。
第６図は、問題固有TOクラスのアーキテクチャ的特徴を示す図である。
第７図は、問題固有BOクラスのサブクラス化処理を示す図である。
第８図は、主要なアーキテクチャ的要素の概念上の相互作用の概要を示す図である。
４  好ましい実施の形態の説明
本発明の説明となる実施例は、トランザクション管理システム、現在の例では周知のIBM  corporation社のIMS（情報管理システム）の制御下で走行するBAに基づく。本発明に関するBAは、この環境における実際のトランザクションとして表現される。前の文章ですでに示したように、本発明は、トランザクション・モニタの意味でのトランザクションだけではなく、すべてのタイプのBAに関する。本発明は、Smalltalkベースの環境内で成功裡に実施され、検証された。
この実施例の特徴的な要素および原理は、次のとおりである。
・  実質上の目的は、真の業務オブジェクト（BO）すなわち、基礎となる業務に関する独自の実体または概念として実際の意味を有するオブジェクトの定義とサポートである。BOの識別は、もちろん、業務領域と連合するレガシー・アプリケーションの人間による分析の結果である。したがって、このアプローチでは、BOの実体が、先行するオブジェクト指向分析の結果として使用可能であり、このオブジェクト指向分析が、レガシー・アプリケーションの知識があれば経験に従って簡単であることが仮定される。したがって、ラッピング技法が遭遇する非現実的な実体を有する「大きい」オブジェクトによる問題は、回避される。
・  移行アーキテクチャおよび環境でのこれらの識別されたBOのサポートは、下記を意味する。
・  BOの定義と実現（実施）が可能でなければならない。
・  BOメソッドは、最終的に、基礎となる移行されるIMSトランザクションの実行をもたらすことができる。
・  BOメソッドの入出力パラメータは、BO属性またはBOメソッド自体の独立パラメータのいずれかに関係する。
・  基礎となるレガシー・アプリケーション（この場合ではIMSトランザクション）の修正は、最小限に制限されなければならず、したがって、従来のアプリケーション開発努力の最大限の再利用が可能にならなければならない。IMSアプリケーションの移行の場合、レガシー・アプリケーションの修正が全く必要ないことを下で指摘する。
・  したがって、この移行アーキテクチャおよび環境は、レガシー・コードとBOの間の媒介とみなすことができる。その一方で、BOは、
・  新しいタイプのグラフィカル・ユーザ・インターフェース（GUI）用
・  −  追加BOメソッド
−  BOがその一部であるより大きいワークプレースの構成要素
のいずれかとして、追加アプリケーションを有する統合プラットフォームとして
理想的な基礎である。
・  IMSは、コンピュータ・システム境界をまたぐプログラム間の通信目的の具体的なプロトコルである、IBM社の拡張プログラム間通信機能（APPC）プロトコル・スイートを提供する。さらに、APPCは、IMS内でいわゆる「暗黙のAPPC」サポートとして使用可能であり、特に、元々は3270型端末だけのために開発されたIMSトランザクションが、APPCを介して遠隔側からのトランザクションに対して透過的に実行のためスケジューリングされることを可能にし、APPCプロトコル・スイートに基づく3270型端末の対話をシミュレートしてデータを交換できるようにする。本発明の実施例は、その暗黙のAPPCサポートの利用に基づく。
・  移行アーキテクチャの意味でのBOは、ユーザの必要に従って再インスタンス化された接続データの担体である。BOメソッドを介するBOとの相互作用によって、遠隔トランザクションの既存インターフェースに基づくBOデータの取出または修正が透過的に行われる。
・  既存のトランザクション・アプリケーションの分析から、通常は
・  トランザクションの入出力データは、単一のBOだけに関係するのではない。したがって、トランザクションの実行は、多数のBOの透過的な参照またはインスタンス化をもたらす可能性がある。
・  単一のトランザクションは、BO属性のみの真のサブセットに関係する。これは、BOのインスタンス化が部分的にのみ発生する、すなわち、BO属性のサブセットに関してのみ発生するという興味深い効果につながる。BOは、実際に必要な範囲に限って使用可能にされる。所望に応じて、使用可能なBO属性の数は、動的に増加し、非常に効果的で経済的な記憶資源の処理がもたらされる。
ということが明らかになる。
・  移行アーキテクチャ自体は、OO技法を用いて実装される。
きわめて簡潔に言うと、移行アーキテクチャおよび環境は、既存のトランザクション・アプリケーションに対するOOアクセスをサポートするが、このアクセスの粒度は、BOによって定義される。
本発明によって提案され、下の実施例で実施される方法は、後続の説明でアーキテクチャと名付けられる。この方法全体の個々の部分は、アーキテクチャ的要素として説明される。
4.1  全体アーキテクチャ
既存のオンライン・トランザクション処理アプリケーション（OLTP）の組を具体的な業務モデルの基礎すなわち業務オブジェクトから使用可能にすることと、これらのトランザクションのメソッドすなわちメッセージへのカプセル化（ラッピング）という全体的な問題に対する現在のアプローチによれば、BOは、相互作用する基本オブジェクト・タイプすなわちオブジェクト・クラスの組にまとめられる。これらの制限されたオブジェクト・クラスの組が、このアプローチのアーキテクチャを構成する。
もちろん、全体アーキテクチャ自体は、注意深く適合された機能性を有するクラスのフレームワークを提供するオブジェクト指向プログラミング言語（この場合ではSmalltalk）の意味でのクラスの組を用いて実現される。本明細書で提案されるアーキテクチャへの既存OLTPアプリケーションの移行は、基礎的なアーキテクチャ基本クラスからサブクラス化する処理によってアプリケーション固有クラスの組を実施することを意味する。その場合、これらアプリケーション固有オブジェクト・クラスの実行時インスタンスは、OLTPパラメータとしてBO属性を使用することによって、既存OLTPトランザクションの透過的な実行をサポートする。アプリケーション固有クラスでは、全体機能性のうちで、アーキテクチャ的基本クラス内で包括的に使用可能になっていない部分を実装する。このOO型アプローチによって、アプリケーション固有の開発労力が大幅に削減されると同時に、実装の柔軟性が高まる。したがって、クライアント・システムは、１組の持続BOを提供する。BOとの相互作用によって、OLTPトランザクションの実行が透過的にもたらされ、これによって、基礎となるトランザクション・システム、トランザクションの特定の構造、トランザクションによって操作されるデータ・ベースと、もちろん、クライアントおよびOLTPアプリケーションを走行させるサーバ・コンピュータ・システムの通信の詳細が完全に隠蔽される。
本明細書で提案されるアーキテクチャによって、過去には機能的アプローチに基づいていたトランザクションの外見が逆になる。従来、トランザクションは、BOの明瞭に定義された属性の組を組み合わせる処理とみなされるはずである。本発明のアーキテクチャでは、基本的実体が、メッセージを送ることによって操作できる持続BOであり、このメッセージの一部が従来のトランザクションの実行をもたらすので、前記の外見が逆になる。
個別に述べる主要なアーキテクチャ的要素は次のとおりである。
1.  業務オブジェクト（BO）
2.  BOインスタンス空間（BOIS）
3.  トランザクション・レコード（TR）
4.  通信オブジェクト（CO）
5.  トランザクション・オブジェクト（TO）
4.2  アーキテクチャ的要素：業務オブジェクト（BO）（その１）
BOは、
・  他のすべてのアーキテクチャ的要素が、BOとの相互作用のみによる間接的な形でアクセス可能であり、
・  BOクラスとBOインスタンスの組が、移行されるOLTPアプリケーションの残りとレガシー・アプリケーション自体からBO利用側を遮蔽する層を形成するので、全体アーキテクチャの鍵となる要素である。すでに名前から示されているように、BOは、単純な意味でその業務領域が処理する実体となるオブジェクトである。性質と細分性に関して、BOは、企業領域のモデルを表している。明白なBOの例が、顧客、契約、発注、会計などである。この時点でBOの挙動態様を排除すると、BOの定義処理には、下記の２ステップが含まれる。
1.  BO実体の発見
2.  BO属性の発見
BO実体に関して、下記のアプローチのうちの１つまたはそれらの組合せを適用することができる。
・  経験によれば、非常にしばしば、特定の業務が操作する実体を質問することによって、業務領域からBO実体が非常に明白にもたらされる。
・  ある支店固有のデータに関して、特定の会社から独立のモデルが開発されている。たとえば、金融業務と保険業務は、あるデータ・モデル（金融アプリケーション・アーキテクチャ（FAA）と保険アプリケーション・アーキテクチャ（IAA））によって、非常に正確にモデル化されてきた。使用可能であれば、これらのデータ・モデルを直接に使用して、BO実体を推論することができる。
・  もちろん、より手強い場合には、関連するBOを識別するために使用可能な方法論のうちの１つを使用する、オブジェクト指向分析（OOA）が必要になる可能性がある。
BOは、既存のトランザクションの使用を介して取り出され、操作される持続データを担うので、BOのデータは、BO属性の組として定義されなければならない。顕著な特性として、BO属性の発見と定義という本発明のアプローチには、既存トランザクション・アプリケーションの入出力データ範囲に基づく特異性の特徴がある。言い換えると、このアプローチは、既存トランザクションのユーザ・インターフェース（UI）仕様に基づく。この方法論の背景と長所を理解するためには、下記を十分に理解する必要がある。
・  UI仕様は、業務関連データすなわち、トランザクション・アプリケーションの業務ユーザが扱うデータ要素を直接に反映する。この業務の観点に基づく種類のアプローチに関する経験によれば、簡単かつ非常に効率的に、業務領域の本質にかかわるデータ要素を決定でき、BO属性として異なるタイプのBOに対応させることができる。
・  既存のトランザクションは、後のステップで、BOデータの取出と操作に使用される。したがって、UI仕様の一部であるデータは、BO属性として使用可能なデータ範囲の正確な区切りになる。
・  これによって、歴史的に進化過程で成長した複雑なデータ・ベース構造を分析する必要がなくなる。さらに、あるタイプのマッピングが、データ・ベースとユーザ・インターフェースを反映するデータとの間で発生することがしばしばであるから、データ・ベース自体には、業務関連データが直接には含まれない。
本発明のアーキテクチャに移行される特定のアプリケーションのトランザクションの数が増加するにつれて、BO属性範囲を広げる必要が生じる。したがって、BO属性を定義する処理は、繰り返される処理である。トランザクションを介してアクセスできるデータは、通常はデータ・ベース（時には多数のデータ・ベース）に常駐する。したがって、BOクラスでは、さまざまなタイプの持続的なBOがモデル化される。単一のクラスの１つのBOのさまざまなインスタンスを一意に識別できるためには、BO属性の組によって、下記が区別されなければならない。
・  BOキー属性
通常、これらは、基礎となるデータ・ベースに関して、あるBOインスタンスおよびBOクラスを一意に識別するBO属性の（非常に小さい）サブセットによって表される。もちろん、BOキー属性は、対応するデータ・ベースのキー属性から直接にもたらされる。
・  BO一般属性
BO属性の残りのすべては、データ・ベース内のさまざまなBOインスタンスの一意な識別を可能にするものではなく、一般属性と呼ばれる。
BO属性を多数の既存トランザクションのUI仕様と対応させる時には、下記の基本的な観察が重要である。
・  既存トランザクションのUI仕様の入出力データ要素は、BO属性のサブセットを参照する可能性がある。すなわち、あるBOクラスに関して、その属性範囲の一部だけを単一のトランザクションの入出力要素と対応させることしかできない。逆にいえば、あるトランザクションの入出力データ要素に現れない、別のBO属性が存在する。
・  既存トランザクションのUI仕様の入出力データ要素は、異なるBOの属性のサブセットを参照する可能性がある。
・  あるBOの異なる属性が、異なるトランザクションの入出力データ要素を参照する可能性がある。
上記の観察と共に既存トランザクションの入出力データ要素をBO属性に対応させる処理を、第１図に示す。第１図には、２つの異なるBA,BA110と呼び出されるBA120が示されている。さらに、２つの異なるBOクラス、BOクラス130およびBOクラス140が、それぞれの属性131および属性141と共に示されている。いくつかの入力パラメータおよび出力パラメータが、BA110を案内するために重要である。これらのパラメータは、3270コンピュータ端末画面上の２つのパネル、パネル111およびパネル112の一部である。第１図の例では、BA120の入力パラメータと出力パラメータが、パネル121内にある。第１図の接続線は、たとえば下記を反映したものである。
−  BA110の入出力パラメータ113は、BOクラス130のBOA132に対応し、逆も同様である
−  BA120の入出力パラメータ122は、BOクラス130のBOA132に対応し、逆も同様である
−  BA110の入出力パラメータ114は、BOクラス140のBOA142に対応する
−  その他
4.3  アーキテクチャ的要素:BOインスタンス空間（BOIS）
インスタンス化されたBOのそれぞれは、他のBOと共に、BOインスタンス空間（BOIS）と称する特定の集合内に格納される。すべてのBOが、BOのクラスとBOキー属性の特定の値とによって一意に識別されるので、この情報の組は、BOIS内でBOインスタンスを一意に識別するのにも十分である。
BOISという概念を導入する必要は、「アーキテクチャ的要素：業務オブジェクト（BO）（その１）」で述べた観察の直接の結果である。単一のトランザクションが、通常はBOインスタンスの複数の属性値の一部だけを実行結果として戻し、したがって、BO属性値のすべてを段階的に戻すために複数トランザクションの実行が必要である場合には、下記が可能でなければならない。
・  独自の位置にある、あるBOインスタンスの可能な存在に関する探索と、
・  あるBOインスタンスの属性値の段階的な戻しまたは更新と、
・  それらと同時に、更新されたBOインスタンスをBOのすべての利用側から使用可能にすること。
BO属性の段階的戻しの処理によって拡張されたこの部分的なBOインスタンス化を、完全なインスタンス化と区別するために、以下では具体化と称する。この具体化の概念によって、下記の非常に魅力的な長所が提供される。
・  これによって不完全なデータを用いる動作が可能になる
・  他の永続的に記憶されるモデルとは違って、非常に経済的な記憶域の使用が提供される。BOインスタンスは、その属性値のすべてに関してインスタンス化されるのではない。業務レベルでは関連オブジェクトが非常に大きくなる可能性があるので、これは非常に重要である。BOインスタンスは、利用側が実際に必要とする限度に限って具体化される。
・  あるBOインスタンスの寿命の間に、その属性値のすべてを段階的に具体化することができる。
BOISに直接に相関するのが、あるBOインスタンスの寿命という問題である。一般的な例ではBO具体化のために多数のトランザクション実行が必要になる可能性があるので、BOインスタンスは、基礎となるトランザクションの段階的具体化の期間より長い寿命を有する必要がある。本発明の解決では、BOインスタンスは、利用側によって明示的に削除されない場合には、最後の利用側がそのBOインスタンスを参照している限り「生きている」。
本発明のBOIS実施例では、アーキテクチャの利用側が選択できる２つのBOIS代替案が提供される。個々のBOについて、利用側は、そのBOインスタンスが下記のいずれに常駐するかを決定できる。
・  暗黙のBOIS
暗黙のBOISは、利用側の標準選択となる。とうのは、この処理が利用側の別の処置を必要としないからである。暗黙のBOISの場合、この特定のBOインスタンスの利用者が存在しないとBOISが判定した場合には、BOISが透過的、自動的にそのBOを除去する。本発明の暗黙のBOIS実施例は、Smalltalkのガーベジ・コレクタに基づく。
・  明示BOIS
明示BOISは、その使用がおそらくは例外となる一種の私用BOISとみなすことができる。明示BOISの場合、利用側は、あるBOをBOISから削除するようにBOISに知らせるためにBOISと相互作用しなければならない。したがって、BO削除は、もはや透過的には実行されない。
4.4  アーキテクチャ的要素：トランザクション・オブジェクト（TO）（その１）
あるトランザクションを呼び出す時、そのトランザクションは、一般的な場合に、入力データ・ブロックとしてある量のデータを期待する。実行の結果として、出力ブロック・データが返される。IMSに関して、これらのデータ・ブロックを、IOAREA（入出力区域）と称する。本来備わった意味から、入出力データ・ブロックは、トランザクションの呼出しとリターンのために交換される、トランザクションに既知のメッセージとみなすことができる。
さまざまなタイプのメッセージは、トランザクション・レコード（TR）と称する特定のオブジェクト・クラスとしてモデル化される。TRに関して重要な点は、TRが、構造化されていないストリーム以外のバイトのストリームを表すことである。TRは、下記の記述情報を備える。
・  メッセージの一部であるパラメータごとに、正確な位置、その長さ、そのタイプなどを定義する記述情報
・  パラメータごとに、それが表す
・  特定のBOクラス
・  特定のBO属性
を定義する記述情報
・  あるBOクラスには関係しないが、それでもそのトランザクションの入出力データを表すパラメータを定義する記述情報
したがって、TRは、BOクラスおよび対応するBO属性と、トランザクションの個々の入出力パラメータとの間の中心のリンクをアーキテクチャ化する。したがって、TRは、入出力メッセージ内のデータ要素からのマッピング情報をBOクラス及びBO属性内のデータ要素に格納し、その逆を行う。BOのアーキテクチャ的要素と共にすでに述べたように、メッセージの異なるパラメータ、すなわち、TRの異なるパラメータは、異なるBOクラスのBO属性に対応する可能性がある。このマッピング情報は、下記にとって本質的に重要である。
・  BO具体化のサポート
マッピング情報を使用すると、トランザクションの出力メッセージの各パラメータを正しいBO属性に格納することが可能になり、したがって、具体化処理を案内できるようになる。
・  トランザクション実行のトリガとなる入力メッセージ作成のサポート
マッピング情報に基づいて、あるトランザクションによって処理できる入力メッセージを作成し、これに下記を書き込むことが可能になる。
・  明瞭に定義されたBO属性から生じるデータ
・  あるBOクラスに関係しない追加入力パラメータからのデータ
TR内の個々のデータ要素と、対応するBO属性との間の関係を、第２図に示す。第２図には、入出力データ・ブロック（IOAREA）すなわちBAメッセージ、そのブロック内の個々の入出力パラメータ、および、TRクラスによって配置される個々のBOクラスのBOAの間のマッピングが示されている。符号200は、個々の入出力パラメータ202ないし207から組み立てられる、入出力データ・ブロック201をカプセル化するTRクラスである。さらに、BOクラス220がそのBOA221と共に示され、BO230がそのBOA231と共に示され、BO240がそのBOA241と共に示されている。TRによって管理されるマッピングは、BAメッセージの個々の入出力パラメータと、あるBOクラスの個々のBOAとの間に描かれた接続によって表される。たとえば、
−  入出力パラメータ202は、BO220のBOA  Parm1  222と関連する
−  最後の関連まで上記と同様である。ここで
−  入出力パラメータ207は、BO240のBOA242と関連する
4.5  アーキテクチャ的要素：通信オブジェクト（CO）
通信は、基本的に情報交換からなる。本発明のアプローチにおける基本的なアーキテクチャ的情報単位は、下記の２つの部分から構成されるメッセージである。
・  メッセージ・テキスト
メッセージ・テキストとは、トランザクションの原子的入出力データを構成するバイトの実際のストリームである。したがって、メッセージ・テキストは、サブ要素をBO属性にマッピングし、その逆のマッピングを行うためにTRが操作するデータのブロックである（たとえば、「アーキテクチャ的要素：トランザクション・レコード（TR）（その１）を参照されたい）。
・  トランザクション接尾辞（TS）
TSの性質を理解するためには、トランザクションから出力メッセージ・テキストを受け取る時に、一般にタイプを識別する表示が得られず、したがって、具体的なメッセージのレイアウトを識別する表示が得られないことを想起されたい。この挙動は、下記の複数の原因の結果である。
・  実行される特定のトランザクションと処理される入力メッセージ・テキストを知っても、期待される出力メッセージ・テキストのタイプを前もって推論することはできない。入力メッセージ・テキストのデータに応じて、また、トランザクションが実行されるデータ・ベース環境に格納された追加データに応じて、異なる出力メッセージ・テキストがトランザクションによって生成される可能性がある。
・  入力メッセージ・テキストとデータ・ベース内の追加情報とに応じて、実行中のトランザクションが、出力メッセージ・テキストを生成する異なるトランザクションを呼び出すことを決定する可能性がある。したがって、応答するトランザクションのIDさえもが、一般には事前に未知である。
上の問題に対するアーキテクチャ的解決として、本発明のアプローチでは、すべてのメッセージ・テキストにトランザクション接尾辞（TS）と称する追加情報要素を用いてタグをつけることを提案する。TS自体はもちろんオブジェクトによって表されるが、これには下記の２つの情報が格納される。
a.そのメッセージが対応する特定のトランザクションの名前
b.特定のメッセージのタイプすなわちそのレイアウト。
TSは、メッセージに対する一種の接尾辞として付加される。TSを生成し、出力メッセージに付加するのに理想的な場所は、実際のトランザクションがその処理を完了した後にトランザクション環境内で実行されるポストプロセッサである。
IMSトランザクション・モニタの場合、これらの情報要素は下記の２つである。
a.  TRANCODE
トランザクションを識別する８バイト・コード。
b.  MODNAME
メッセージが対応する特定のパネル・マスクを識別する８バイト・コード。
IMSの場合の、既存のIMSトランザクションとメッセージを通信するのにPCプロトコル・スイートを使用する暗黙のAPPCサポートと同様に、簡単なAPPC出口をポストプロセッサとしてIMSシステムに導入して、特定のTSを生成することができる。
トランザクションと通信しメッセージを交換する方法論（上で述べた意味での）は、常に単一のタイプのプロトコルに従うので、これは、通信オブジェクト（CO）と称する特定のオブジェクト・クラス内で実現された。このプロトコルには、クラスBplCommunicationのCOのインスタンス・メソッドとしてそれ相応に実装される下記のステップが必ず含まれる。
・  start:aConnectionSpecification
・  start:（開始。：は引数付きのメソッドであることを表す）メソッドは、通信接続の設定に必要なすべてのデータを含むオブジェクトをパラメータとして必要とする。たとえば、
−  （遠隔）コンピュータ・システムのアドレス
−  開始する特定のトランザクション
−  ユーザIDやパスワードなどの許可関連データ
−  その他
・  オブジェクトaConnectionSpecification内の接続仕様に基づいて通信接続が設定され（まだアクティブでない場合）、トランザクションが開始され、最初に処理されるメッセージを受け取る準備が整う。
・  transmit:aMessage
・  transmit:（送信）メソッドは、処理のためトランザクションに送られる入力メッセージを表すオブジェクトaMessageを入力として必要とする。
・  その後、transmit:メソッドは、トランザクションによって生成される出力メッセージを待つ。この出力メッセージは、その後、transmit:メソッドの呼出し側に配布される。すなわち、リターン時に、transmit:は、メッセージ・テキストとTSからなる出力メッセージを配布する。
・  transmit:メソッドの実行は、複数回要求することができる。
・  stop
・  stop（停止）メソッドは、トランザクションの実行を停止し、通信接続を放棄することを意味する。
第３図は、トランザクションとのメッセージ交換用のプロトコルを表す、上で述べたメソッドを有するクラスBplCommunicationのCOインスタンスを反映した図である。上のプロトコルは、抽象プロトコルにすぎず、実際には下記のような具体的なプロトコルによって処理されなければならない。
・  たとえばAPPCによって実現される、会話モデル
・  たとえばMQI（メッセージ待ち行列インターフェース）によって実現される、一般的なメッセージに基づくモデル
・  たとえばTCP/IP（Transmission Control Protocol/Internet Protocol、伝送制御プロトコル／インターネット・プロトコル）のRPC（Remote Procedure Call、リモート・プロシージャ・コール）によって実現される、リモート・プロシージャ・コール・モデル
・  たとえばEHLLAPI（エミュレータ高水準言語適用業務プログラミング・インターフェース）によって実現される、3270エミュレーション・モデル
・  その他
移行時には、IMSトランザクションを用いて動作する本発明の実施例に使用されたBplAPPCなど、少なくとも１つの具体的なプロトコル実装を選択しなければならない。サブクラスを導入して、上で述べた抽象プロトコルを具体的なプロトコル実装にマッピングすることによって、抽象プロトコルを実装することができる。このサブクラス化処理を、第４図に示す。COクラス401が、抽象プロトコルの全般的な特徴を実現する。この抽象プロトコルは、COサブクラス402ないし405内のさまざまな具体的なプロトコルにマッピングされる。
4.6  アーキテクチャ的要素：トランザクション・オブジェクト（TO）（その１）
トランザクション・オブジェクト（TO）は、少なくとも１つのトランザクションのモデルを表すためのクラスである。あるトランザクションの組が、必ず所定のシーケンスでグループとしてのみ実行される場合、このようなトランザクションのグループを単一のTOとしてモデル化することが合理的であろう。
一般性の制限なしに、これ以降の説明について、単一の既存のトランザクションが、TOによってカプセル化されると仮定する。
4.6.1  アーキテクチャ的クラス変数localConnectionSpecification
TOインスタンスがおそらくは遠隔のトランザクションに対する通信接続を設定できるようにするために、
・  遠隔コンピュータ・システムのアドレス
・  開始すべき特定のトランザクション
・  ユーザIDやパスワードなどの許可関連データ
・  通信に使用される具体的なCOクラス（「アーキテクチャ的要素：通信オブジェクト（CO）」のCOの詳細を参照されたい）
・  その他
などの定義情報が、TOクラス変数localConnectionSpecificationによって参照されるオブジェクトに格納される。
4.6.2  アーキテクチャ的インスタンス変数localTransactionRecords
メッセージの処理は、TO自体とそれに一意に対応するTRインスタンスによって実行される協調タスクである。TOがインスタンス化されようとしている時点で、対応するTRも並列にインスタンス化され、したがって、TOインスタンスとTRインスタンスの組合せが、トランザクションとのメッセージ交換のすべてを処理できるようにされる。TOインスタンス変数localTransactionRecordsには、この特定のTOのメッセージ・フロー処理に必要なTRインスタンスのすべてがディレクトリの形で格納される。すなわち、TOは、その特定のトランザクションと通信する時に重要なメッセージのすべてを知っている。
4.6.3  アーキテクチャ的インスタンス変数currentMessage
TOインスタンスは、トランザクションに送るかトランザクションから受け取るかのいずれかの、処理すべき現メッセージを、インスタンス変数currentMessageに格納する。この共通記憶位置を用いると、TOインスタンスとそれに対応するTRインスタンスの協働が非常に容易になる。
4.6.4  アーキテクチャ的インスタンス・メソッドstart
TOインスタンスが確立された時点で、すでに、アーキテクチャ的TOのインスタンス・メソッドstartが実行されて、COインスタンスの対応するstart:メソッドおよびlocalConnectionSpecificationの情報の助けを得て、
・  COインスタンスの作成
・  通信接続の確立
・  遠隔トランザクションの開始
が行われる。
4.6.5  アーキテクチャ的インスタンス・メソッドstop
インスタンス・メソッドstartは、トランザクションの停止と通信接続の放棄を行うための対になるメソッドstopを有する。
4.6.6  並列TO実行
インスタンス化されたTOのそれぞれには、それ自体の通信接続が含まれるので、同一クラスのインスタンスを含む任意の個数のTOインスタンスが、並列に動作できる。
4.6.7  トランザクション・ステップと問題固有のTOメソッド（TOM）（その１）
ごくまれな状況においては、トランザクションの実行が、要求側メッセージと回答メッセージの単一のメッセージ交換の結果であり、その後にトランザクションが完了する。しかし、ほとんどの場合に、メッセージ交換のおそらくは長いシーケンス、すなわちパネル画面の交換が、トランザクションの開始から完了まで発生する。一般に、この種のトランザクションを、明白な理由から会話トランザクションと称する。通常、単一のトランザクションを表すメッセージ交換のシーケンスは、トランザクション・ステップのシーケンスに分解することができる。各トランザクション・ステップは、ユーザによって指定される情報を含むメッセージから始まり、自動的に処理できる後続メッセージの送受が続き、ユーザによる情報を再び要求する、トランザクションに送られるメッセージで終わる（このメッセージはトランザクション・ステップに含まれる）。したがって、トランザクション・ステップは、会話トランザクション実行を、人間の介入なしに自動的に実行できるメッセージ・シーケンスの単位に分解したものである。これらのトランザクション・ステップのそれぞれは、トランザクション・オブジェクト・メソッド（TOM）と称するTOの個々のインスタンス・メソッドとしてモデル化しなければならない。
呼び出された時には、TOMは、（遠隔）トランザクションへのメッセージ送出のトリガをかける。TOMは、あるトランザクション・ステップを実行するので、準備されトランザクションに送られなければならないメッセージすなわちTR（詳細については「アーキテクチャ的要素：トランザクション・レコード（TR）（その１）」を参照されたい）の識別を知っている。TOMは、特定のメッセージを設定する責任を負うTRインスタンスのアーキテクチャ化されたインスタンス・メソッドinXactionを呼び出すことによってこの処理を発行する。
4.6.8  アーキテクチャ化されたインスタンス・メソッドtransmit
アーキテクチャ化されたtransmitメソッドは、現在インスタンス変数currentMessageに格納されているメッセージをトランザクションに送る。現TOインスタンスのtransmitは、実際には、COインスタンス（TOインスタンス化の間に確立される）に属する同じ名前のメソッドを使用してそのメッセージを送り、それと同時に、トランザクションの応答メッセージを待つ。その応答は、呼出し側に渡される。transmitメソッドは、対応するTRインスタンスのうちの１つによって、そのinXactionメソッド（下を参照されたい）から呼び出される。
4.7  アーキテクチャ的要素：トランザクション・レコード（TR）（その２）
「アーキテクチャ的要素：トランザクション・レコード（TR）（その１）」に示した、より静的で記述的な諸態様のほかに、TRには、アーキテクチャ化されたメソッド内で実現されるいくつかの動的特性も含まれる。これらの活動は、そのTRインスタンスに対応する特定のTOインスタンスと協同して実行される。TOのアーキテクチャ的要素の記述（「アーキテクチャ的要素：トランザクション・オブジェクト（TO）（その１）」を参照されたい）を支持して、下記を強調しなければならない。
・  各TRは、それに対応するTOインスタンスと共にインスタンス化され、後者との１対１対応を設定する
・  各TRインスタンスは、それに対応するTOインスタンスを知っている
これらの動的特性は、重ね合せになっており、下記の２つのアーキテクチャ的メソッド内で実現される。
4.7.1  アーキテクチャ化されたインスタンス・メソッドinXaction
TRインスタンス・メソッドinXactionは、下記の責任を負う。
・  トランザクションに送られる正しいメッセージ・テンプレートを作成する
どのメッセージ・オブジェクトを作成しなければならないかは、各TRが特定のメッセージを処理する責任を負うので、現TOインスタンスの性質からもたらされる。
・  必要なすべての情報をTRすなわちメッセージにコピーする
「アーキテクチャ的要素：トランザクション・オブジェクト（TO）（その１）」でのTRの説明で輪郭を示したように、TRは、TRの個々のデータ要素の記述情報を格納する。BO属性を表すこれらのTR要素には、TOM呼出しの一部であるBOキー属性を使用して書き込むことができる。BOキー属性を用いると、メッセージinXactionで、BOIS内のBOインスタンスを突き止め、必要なBO属性値を取り出すことができるようになる。
BO属性に関係しないTR要素は、TOM呼出しの一部として指定されたパラメータであると期待され、したがって、inXactionメソッドでこのデータを集めることも可能になる。
・  対応するTOインスタンスのアーキテクチャ化されたインスタンス・メソッドtransmitを呼び出すことによって遠隔トランザクションにメッセージを送る
これは発生する前に、送られる現メッセージを、対応するTOインスタンスのインスタンス変数currentMessageで入手できるようにしなければならない。というのは、transmitがcurrentMessageの代わりに動作するからである（上を参照されたい）。
・  次の処理のために責任を有するTRインスタンスのアーキテクチャ的インスタンス・メソッドoutXactionにそのトランザクションの出力メッセージの処理を渡す
責任を有するTRインスタンスは、送出実行から返されるTS（「アーキテクチャ的要素：通信オブジェクト（CO）」を参照されたい）を、インスタンス変数localTransactionRecords内に符号化された情報と共に分析することによって決定できる。
4.7.2  アーキテクチャ化されたインスタンス・メソッドoutXaction
outXactionは、下記によって、対応するTOインスタンスのインスタンス変数currentMessage内で入手できる出力メッセージを分析し、処理する責任を負う。
・  TR内容によって影響を受けるすべてのBOの具体化
「アーキテクチャ的要素：トランザクション・オブジェクト（TO）（その１）」でのTRに関する議論で輪郭を示したように、TRは、TRの個々のデータ要素の記述情報を格納する。したがって、outXactionは、下記を行うことができる。
・  BO属性を表すTR要素を判定する
・  BOインスタンス空間BOISで影響を受けるBOを突き止め、それがまだ存在しない場合にはBOインスタンスを作成する
・  TRからBO自体へBO属性をコピーする
・  具体化されたBOのリストを呼出し側に返す
4.7.3  アーキテクチャ化されたインスタンス・メソッドinXaction（その２）
・  inXactionは、outXactionからリターンした時に受け取る具体化されたBOのリストを呼出し側に返す。
4.8  アーキテクチャ的要素：トランザクション・オブジェクト（TO）（その２）
4.8.1  トランザクション・ステップと問題固有のTOメソッド（TOM）（その２）
inXactionの呼出しからリターンした時に、TOMは、具体化されたBOのリストを受け取る。TOMは、出力メッセージに基づいて、すなわち、トランザクションから受け取ったTRに基づいて、進行方法を決定しなければならない。トランザクション・ステップが完了した場合には、単純に具体化されたBOのリストを呼出し側に渡す。TOMは、次メッセーを処理する責任を負うTRインスタンスに関してもう一度inXactionを発行し、活動シーケンスinXaction−transmit−outXactionをもう１回繰り返すことによって、遠隔トランザクションへの次メッセージ送出のトリガをかける。
4.8.2  アーキテクチャ的TOの特徴とクラス階層
既存トランザクションをモデル化するTOクラスのそれぞれを実装する労力の量を減らすために、包括的な、すなわちアーキテクチャ的なTOの特徴のすべてが、TOのスーパークラスBplTransactionObject内で実現される。あるトランザクションを実行するトランザクション・モニタのタイプに応じて、TOと遠隔トランザクションの間のメッセージ・フローの処理がわずかに異なる可能性があるので、IMS、CICSなどのサポートされる個々のトランザクション・モニタのためにサブクラスを導入することができる。サブクラスBplIMSTransactionObject、BplCICSTransactionObjectなどは、トランザクション・モニタ関連の変更を実装する（ただし、プロトタイプはIMSのみに集中している）。このような変更が存在しない場合、これらの中間クラスを削除することができる。このクラス構造は、TOのサブクラスである問題固有のTOクラスに、下記のようなアーキテクチャ的TOの特徴の範囲を与える。
・  通信処理
・  トランザクション呼出しとメッセージ交換
・  BO具体化
移行されるトランザクションを表す問題固有TOクラス内の残りの実装労力は、下記に限定される。
・  具体的な通信モデルの選択と、通信仕様の定義
・  TOクラスが応答するTRとTSのモデル化
・  対応するトランザクション・ステップを実装する具体的なTOMの実現
遠隔トランザクションが、TOMに先行するものから独立のTOM実行を許容しない場合、TOM実装は、TOM実行のシーケンスを検査するTOインスタンスに１つの状態を関連付けるようにすることができる。
上で述べたTOクラス階層と、問題固有のTOクラスのいくつかの例を、第５図に示す。TOの一般的な特徴のすべてを実装するクラスが、符号501である。共通の挙動特性を示すBAのグループ、たとえば、特定の種類の処理を必要とする環境で実行されるBAのグループをカプセル化する場合、これらの共通性を、符号502、503などのTOサブクラスに組み込むことができる。その場合、最終的に問題固有TOの呼出しは、符号504、505および506など、これのサブクラスになる。第６図に、TOの最も重要な（アーキテクチャ的）特徴をまとめる。符号601、602および603は、抽象通信プロトコルを構成するOOメソッドを視覚化したものである。さらに２つの問題固有TOM604および605が反映されている。
4.9  アーキテクチャ的要素：業務オブジェクト（BO）（その２）
トランザクション（またはその一部）の実行をもたらすBOのメソッドを、業務オブジェクト・メソッド（BOM）と称する。問題固有のBOMは、基礎となるアーキテクチャの知識なしに全体アーキテクチャが遠隔トランザクションを透過的に実行するための、利用側に対する唯一のインターフェースである。
BOMの実装者は、BOM内で下記の挙動を実現しなければならない。
・  BOMがステップのシーケンスの最初のトランザクション・ステップを実行するかどうかに応じて、対応するトランザクションを実行できるTOインスタンスをインスタンス化しなければならない
・  インスタンス化されたTOの１つまたは複数のTOMを、対応するトランザクション実行のために呼び出さなければならない。
・  BOMがステップのシーケンスの最終トランザクション
・  ステップを実行し、全トランザクション実行を完了したかどうかに応じて、TOインスタンスをもう一度除去しなければならない。間接的には、TOインスタンスの除去によって、関連する通信接続も放棄される。
・  最後に、BOMは、実行されたTOMから受け取る具体化されたBOのリストを呼出し側に返す。
4.10  アーキテクチャ化されたBOの特徴とクラス階層
各BOクラスの実装労力の量を減らすために、包括的なすなわちアーキテクチャ化された特徴のすべてが、BOのスーパークラスBplBusinessObject内で実現される。１例として、このクラスは、BO属性のリストから、すべてのBO属性のための取得メソッドと設定メソッドを自動的に設定する機能性を配布する。
問題固有BOクラスは、クラスBplBusinessObjectのサブクラスとして実現される。問題固有BOクラス内での残りの実装労力は、下記に限定される。
・  BOキー属性およびBO一般属性の定義
・  BOMの実装
BOサブクラス化の処理を、第７図に示す。この図には、問題固有BOクラス702ないし706を派生させるのに使用されるBOスーパークラス701が示されている。
4.11  アーキテクチャ的要素の相互作用
第８図は、抽象的な例に基づくアーキテクチャ的要素の一部の相互作用を視覚化した図である。（）内の数字は、下記の処理ステップのそれぞれを指す。
1.
a.現アーキテクチャに移行されるトランザクション・アプリケーション（たとえば、オブジェクト指向グラフィカル・ユーザ・インターフェース）を利用するある種のアプリケーション801が、あるBOインスタンスBO_1  803のBOMであるBOM_1  802を呼び出し、追加のBOMパラメータBOMParmsを渡す。
2.
a.  BOM_1が、TO_a804をインスタンス化し、したがって、遠隔トランザクション・システムへの通信接続を透過的に設定し、現TOとしてモデル化される遠隔トランザクションを開始する。
b.  BOM_1は、さらに、あるTOM  TOM_1  805を呼び出して、BOキー属性BOKeyとTOMメソッド・パラメータTOMParmsを渡す。
3.
a.問題固有TOMであるTOM_1  805は、トランザクションにどのメッセージを送るかを知っている。その後、TOM_1  805は、その特定のメッセージを処理する責任を負うTRインスタンスであるTR_1  807のアーキテクチャ的メソッドinXaction806を開始する。
4.
a.責任を負うTRインスタンスTR_1  807のinXaction806が、TRの記述情報を使用して、TOM_1  805の関連TOインスタンスであるTO_a804のTOM_1  805に渡されたBOKeyおよびTOMメソッド・パラメータTOMParmsを介してアクセス可能なBO属性に基づいて、すべてのパラメータを書き込む。
b.メッセージを作成したならば、実行のため遠隔トランザクションに送る（808）。
5.
a.遠隔トランザクションが、TOインスタンスに応答メッセージを送る（808）。
6.
a.  inXaction806が、受け取ったメッセージのTSを分析して、具体的なメッセージすなわち、このメッセージを処理する責任を負うTRインスタンスを判定する。
7.
a.  TR要素の性質の記述情報と、それに関連するTOインスタンスTO_a804のTOMパラメータBOKeyおよびTOMParmsを共に用いることによって、TRインスタンスTR_1  807のoutXaction809が具体化を実行できるようになる。この例では、具体化によって、BOであるBO_1  803の更新と、２つの新しいBOすなわちBO_2  810およびBO_3  811のインスタンス化がもたらされる。
8.
a.制御が、outXaction809から、inXaction806、TOM_1  805、BOM_1  802に返され、最後に、呼び出し側アプリケーションに返され、その後の利用のために、制御と共に具体化されたBO（この例ではBO_1  803、BO_2  810、BO_3  811）のリストが渡される。
4.12  全体アーキテクチャの重要な特徴
・  提案された移行アーキテクチャを用いると、既存のレガシー・トランザクション・アプリケーションを再実装する必要なしに、これを「再利用」できるようになる。
・  修正の必要なしに既存のトランザクション・アプリケーションを統合化することが可能であるから、アプリケーションは、従来の環境ならびに新しいアーキテクチャ内で並列に使用することができる。
・  クライアント−サーバ構造が、元々分散モードの動作のために準備されていない既存アプリケーションのために暗黙のうちに実現される。
・  クライアント側では、単に業務オブジェクトからなるOOビューが生成され、これによって、BOユーザがすべてのトランザクションの詳細から透過的に遮蔽される。結果のBO構造は、他のタイプのアプリケーションおよびクライアント・システム上のアプリケーション拡張とのシームレスな統合のために理想的なプラットフォームである。
・  BOプラットフォームに基づいて、新しくより生産的なソフトウェア開発の概念およびツールを、OO規範に基づいて利用することができる。
・  具体化という概念を用いると、BO属性範囲の動的で段階的なインスタンス化が可能になる。これによって、BOが実際に必要な範囲に限ってインスタンス化されるので、BOインスタンス化に必要な処理時間とメモリ消費が大幅に削減される。
・  提案されたアーキテクチャによって、タスク処理の有利な分散が導入される。
・  サーバ・システムは、トランザクション能力を配布する。
・  サーバ・システムは、データの記憶と配布のための単純なデータ・サーバとして使用されるのではなく、トランザクションの処理能力に関しても利用されるので、ある量の並列性が導入された。
・サーバ・システムは、データ・サーバではなく真の処理サーバとして使用されるので、ネットワークを介して伝送されるデータの量は、遠隔トランザクションをデータ・プリプロセッサとみなすことができるので減少する。さらに、遠隔システムから出なければならないデータの量が減るので、セキュリティ露出も少なくなる。
・  提案されたアーキテクチャを用いると、クライアント部に影響を及ぼすことなく、たとえば基礎となるデータ・ベース構造に関して、トランザクション・アプリケーションの進化的再構成も可能になる。
・  また、最も重要な事に、同一の全体アーキテクチャを、再エンジニアリング目的以外にも使用可能である。上の説明に変更を加えることなく、提案されたアーキテクチャを利用して、新しいタイプの（遠隔）トランザクション、特に、別の端末型ユーザ・インターフェースを提供しない現在の方式の中で利用されるように開発されたトランザクションをサポートすることができる。
アーキテクチャ的提案を要約すると、これを用いると、既存トランザクション・アプリケーションの分散オブジェクト構造への経済的で高度に効率的な移行が可能になり、それと同時に、新しいアプリケーション構成要素のフォワード・エンジニアリングのための理想的なプラットフォームが提供される。
５  頭字語一覧
BA  業務アプリケーション（Business Application）
BOA  業務オブジェクト属性（Business Object Attribute）
BOGA  業務オブジェクト一般属性（Business Object General Attributes）
BOIS  業務オブジェクト・インスタンス空間（Business Object Instance Space）
BOKA  業務オブジェクト・キー属性（Business Object Key Attribute）
BOM  業務オブジェクト・メソッド（Business Object Method）
CO  通信オブジェクト（Communication Object）
IMS  情報管理システム（Information Management System）
OLTP  オンライン・トランザクション処理（Online Transaction Processing）
OO  オブジェクト指向（Object Orientation）
OOT  オブジェクト指向技術（Object Oriented Technology）
TO  トランザクション・オブジェクト（Transactional Object）
TOM  トランザクション・オブジェクト・メソッド（Transactional Object Method）
TR  トランザクション・レコード（Transaction Record）
TRO  トランザクション・レコード・オブジェクト（Transaction Record Object）
TS  トランザクション接尾辞（Transaction Suffix）
TST  トランザクション・ステップ（Transactional step）
【図７】
0003652376.tif 000002
【図１】
0003652376.tif 000003
【図４】
0003652376.tif 000004
【図２】
0003652376.tif 000005
【図３】
0003652376.tif 000006
【図５】
0003652376.tif 000007
【図６】
0003652376.tif 000008
【図８】
0003652376.tif 000009