JP3238788B2 - Object communication method - Google Patents

Object communication method

Info

Publication number
JP3238788B2
JP3238788B2 JP07156793A JP7156793A JP3238788B2 JP 3238788 B2 JP3238788 B2 JP 3238788B2 JP 07156793 A JP07156793 A JP 07156793A JP 7156793 A JP7156793 A JP 7156793A JP 3238788 B2 JP3238788 B2 JP 3238788B2
Authority
JP
Japan
Prior art keywords
communication
class
data
objects
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP07156793A
Other languages
Japanese (ja)
Other versions
JPH06295245A (en
Inventor
修 四國
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Corp
Original Assignee
NTT Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP07156793A priority Critical patent/JP3238788B2/en
Publication of JPH06295245A publication Critical patent/JPH06295245A/en
Application granted granted Critical
Publication of JP3238788B2 publication Critical patent/JP3238788B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、オブジェクトを単位と
して動作するコンピュータシステムにおけるオブジェク
トの通信方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a communication system for objects in a computer system operating on an object basis.

【0002】[0002]

【従来の技術】オブジェクトを単位として動作するコン
ピュータシステムは、システムにおいて扱われるデータ
や手続きをカプセル化することを可能とし、その結果、
システムの安全性を飛躍的に高めることができる。ま
た、アプリケーション開発の過程において、オブジェク
トが有する継承機能及び多態性により、極めて効率的な
システム開発を可能とする。
2. Description of the Related Art A computer system operating on an object basis can encapsulate data and procedures handled in the system.
The safety of the system can be dramatically improved. Also, in the process of application development, extremely efficient system development is enabled by the inheritance function and polymorphism of the object.

【0003】そして、このようなコンピュータシステム
においては、図14に示されるように、例えばシステム
が、1台のCPU上で実行されるのか、或いは、ローカ
ルエリアネットワーク(LAN)などによって接続され
た異なるCPU(ノード)上で実行されるのか、などと
いうことを規定するコンピュータレイアでの機能、及び
これらのCPU上でどのようにプロセス(又はタスク)
が実行されるのかということを規定するプロセスレイア
での機能などは、全てオブジェクトレイアにおけるオブ
ジェクトの構成とオブジェクト間でのメッセージの授受
という抽象的な機能によって隠蔽される。従って、ユー
ザは、オブジェクトの構成とオブジェクト間で授受され
るメッセージを規定するだけで、必要なアプリケーショ
ンを構築することができる。
In such a computer system, as shown in FIG. 14, for example, the system is executed on a single CPU, or different systems connected by a local area network (LAN) or the like. Functions in the computer layer that define, for example, whether they are executed on CPUs (nodes), and how processes (or tasks) on these CPUs
All the functions in the process layer that define whether or not are executed are concealed by the abstract function of the configuration of objects in the object layer and the exchange of messages between objects. Therefore, the user can construct a required application only by defining the configuration of the objects and the messages exchanged between the objects.

【0004】ここで、例えば多数のユーザが分散してア
プリケーションを開発するような場合、それぞれのユー
ザに対応して分散されたタスクの間でデータを通信する
必要性がしばしば生ずる。例えば、データベースシステ
ムの開発用アプリケーションにおいて、個々のデータベ
ースの定義はクライアント端末において実行されるクラ
イアントタスクにおいて行われ、それらの定義に基づく
データベースの構築はサーバ端末において実行されるサ
ーバタスクにおいて行われることがある。このような場
合には、クライアントタスクとサーバタスクとの間で、
種々のデータの通信が必要となる。
[0004] Here, for example, when a large number of users develop applications in a distributed manner, it is often necessary to communicate data between tasks distributed for each user. For example, in a database system development application, the definition of an individual database may be performed in a client task executed on a client terminal, and the construction of a database based on those definitions may be performed in a server task executed on a server terminal. is there. In such a case, between the client task and the server task,
Communication of various data is required.

【0005】そして、オブジェクトを単位として動作す
るコンピュータシステムでは、異なる分散されたタスク
の間でデータの通信が行われる場合には、当然、オブジ
ェクトを単位として通信する必要性が生ずる。
[0005] In a computer system that operates in units of objects, when data is communicated between different distributed tasks, it is naturally necessary to communicate in units of objects.

【0006】図15に、オブジェクト通信方式の従来技
術を示す。1つのタスクが通信を行いたい場合、そのタ
スクは、通信処理を行う専用の通信処理プログラムに対
して、送信依頼を発行する。
FIG. 15 shows a conventional technique of the object communication system. When one task wants to perform communication, the task issues a transmission request to a dedicated communication processing program that performs communication processing.

【0007】この結果、通信処理プログラムは、タスク
が送信を行いたい送信オブジェクトの構造を解析した上
で、それをデータパケットに組み立てる。そして、通信
処理プログラムは、データパケットの送信に必要な量の
送信バッファを確保し、送信バッファへデータパケット
をコピーする。
As a result, the communication processing program analyzes the structure of the transmission object that the task wants to transmit, and then assembles it into a data packet. Then, the communication processing program secures a transmission buffer of an amount necessary for transmitting the data packet, and copies the data packet to the transmission buffer.

【0008】その後、通信処理プログラムは、下位レイ
アの通信処理プログラムへ、送信バッファの送信依頼を
発行する。一方、受信側のタスクにおいては、特には図
示しないが、やはり通信処理プログラムが、送信バッフ
ァを受け取った後、それに記憶されているデータで表さ
れるオブジェクトの構造を生成し、所定の順序に従って
共有メモリに記憶されているデータを、生成したオブジ
ェクトに格納する。
After that, the communication processing program issues a transmission buffer transmission request to the lower layer communication processing program. On the other hand, in the task on the receiving side, although not particularly shown, the communication processing program also generates a structure of an object represented by data stored in the transmission buffer after receiving the transmission buffer, and shares the object in a predetermined order. The data stored in the memory is stored in the generated object.

【0009】[0009]

【発明が解決しようとする課題】しかし、上述の従来例
では、通信処理プログラムが通信対象のオブジェクトの
構造を認識できなければならない。従って、複雑な構造
を有するオブジェクト又はオブジェクトのグループが通
信される場合、通信処理プログラムが複雑なものとなっ
てしまう。逆に、通信処理プログラムを汎用的なものに
するためには、通信対象のオブジェクトの構造が一定の
構造のものに限定されてしまい、通信できるオブジェク
トの種類が極めて限られてしまうという問題点を有して
いる。
However, in the above-mentioned conventional example, the communication processing program must be able to recognize the structure of the object to be communicated. Therefore, when an object or a group of objects having a complicated structure is communicated, the communication processing program becomes complicated. Conversely, in order to make the communication processing program versatile, the structure of objects to be communicated is limited to a certain structure, and the types of objects that can be communicated are extremely limited. Have.

【0010】また、上述の従来例においては、通信処理
プログラムと通信対象のオブジェクトとの不整合による
通信バッファアクセスエラー等の通信エラーが発生しや
すい、即ち、通信処理プログラムの規約に適合しないオ
ブジェクトが通信されてしまう可能性を完全に排除でき
ないため、通信処理プログラムがオブジェクトを適切に
送信できず(例えば通信バッファに展開できず)、又は
通信処理プログラムが受信内容(例えば通信バッファの
内容)を適切にオブジェクトに戻すことができないとい
う状態が発生しやすく、通信時の信頼性を高くできない
という問題点も有している。
Further, in the above-mentioned conventional example, a communication error such as a communication buffer access error due to inconsistency between the communication processing program and the object to be communicated is likely to occur. Since the possibility of being communicated cannot be completely excluded, the communication processing program cannot properly transmit the object (for example, cannot be developed in the communication buffer), or the communication processing program appropriately receives the content (for example, the content of the communication buffer). There is also a problem that a state in which the object cannot be returned to the object is likely to occur, and the reliability during communication cannot be increased.

【0011】本発明は、信頼性が高く、かつ、多様な種
類をサポート可能なオブジェクト通信を実現することを
目的とする。
An object of the present invention is to realize object communication which is highly reliable and can support various types.

【0012】[0012]

【課題を解決するための手段】本発明は、オブジェクト
を異なるタスク間で通信するオブジェクト通信方式を前
提とする。
SUMMARY OF THE INVENTION The present invention is based on an object communication system for communicating objects between different tasks.

【0013】そして、まず、自オブジェクトに対応する
通信データの送信機能及び受信機能を有する通信オブジ
ェクトを有する。この通信オブジェクトは、例えば、ク
ライアント・サプライヤ関係を有するグループを形成し
ている各オブジェクトであり、その各オブジェクトがそ
れぞれ、その各オブジェクトに対応する通信データの送
信機能及び受信機能を有する。或いは、この通信オブジ
ェクトは、基底クラスから派生したクラスのオブジェク
トであり、その通信オブジェクトに関連するクラスのそ
れぞれに対応するその通信オブジェクトのメンバの送受
信機能を、例えばそれぞれのクラスで定義されたメンバ
関数として有する。
[0013] First, there is a communication object having a transmission function and a reception function of communication data corresponding to the own object. The communication objects are, for example, objects forming a group having a client-supplier relationship, and each of the objects has a function of transmitting and receiving communication data corresponding to each object. Alternatively, the communication object is an object of a class derived from the base class, and has a function of transmitting and receiving members of the communication object corresponding to each of the classes related to the communication object, for example, a member function defined in each class. As

【0014】次に、受信側のタスク内に、受信された通
信データに対応する通信オブジェクトを生成する通信オ
ブジェクト生成用オブジェクト(Receiverオブジェクト
に対応する)を有する。この通信オブジェクト生成用オ
ブジェクトは、例えば、受信された通信データに設定さ
れている識別子によって、その通信データに対応する通
信オブジェクトを生成する。また、この通信オブジェク
ト生成用オブジェクトは、リストオブジェクトを所有
し、そのリストオブジェクトは、通信データを判別する
ことによって所定のグループの通信オブジェクトを生成
する通信オブジェクト生成ルーチンオブジェクトを、複
数のグループに対応して複数所有するように構成でき
る。この場合、通信オブジェクト生成用オブジェクト
は、リストオブジェクトを介して各通信オブジェクト生
成ルーチンオブジェクトに受信された通信データを例え
ばそれに付加されている識別子によって判別させること
により、その通信データに対応する何れかの通信オブジ
ェクト生成ルーチンオブジェクトにその通信データに対
応する通信オブジェクトを生成させる。或いは、この通
信オブジェクト生成用オブジェクトは、複数の通信オブ
ジェクトのインスタンスをデータベースとして所有する
データベース管理オブジェクトを所有するように構成で
きる。この場合、通信オブジェクト生成用オブジェクト
は、データベース管理オブジェクトを介して通信オブジ
ェクトのインスタンスに受信された通信データを例えば
それに付加されている識別子判別させることによって、
その通信データに対応する何れかの通信オブジェクトの
インスタンスにそのインスタンス自身をコピーさせるこ
とにより、その通信データに対応する通信オブジェクト
を生成させる。
Next, the task on the receiving side has a communication object generation object (corresponding to a Receiver object) for generating a communication object corresponding to the received communication data. The communication object generation object generates a communication object corresponding to the communication data based on, for example, an identifier set in the received communication data. The communication object generation object owns a list object. The list object corresponds to a communication object generation routine object that generates communication objects of a predetermined group by determining communication data and corresponds to a plurality of groups. Can be configured to own multiple items. In this case, the communication object generation object determines any of the communication data received by each communication object generation routine object via the list object by, for example, an identifier added to the communication data. The communication object generation routine causes the communication object to generate a communication object corresponding to the communication data. Alternatively, the communication object generation object can be configured to own a database management object that owns a plurality of instances of the communication object as a database. In this case, the communication object generation object makes the instance of the communication object via the database management object determine the communication data received, for example, by the identifier attached thereto,
By causing the instance of any communication object corresponding to the communication data to copy the instance itself, a communication object corresponding to the communication data is generated.

【0015】以上の構成のもとで、送信側のタスク内の
通信オブジェクトが有する送信機能は、その通信オブジ
ェクトを、例えば共有メモリに格納する。一方、受信側
のタスク内の通信オブジェクト生成用オブジェクトは、
受信された通信データに対応する通信オブジェクトを生
成する。
With the above configuration, the transmission function of the communication object in the task on the transmitting side stores the communication object in, for example, a shared memory. On the other hand, the object for generating a communication object in the task on the receiving side is
Generate a communication object corresponding to the received communication data.

【0016】そして、その生成された通信オブジェクト
が有する受信機能は、例えば共有メモリとして受信され
た通信データを、その通信オブジェクト自身として受信
する。
Then, the receiving function of the generated communication object receives, for example, communication data received as a shared memory as the communication object itself.

【0017】上述した発明の構成において、送信側のタ
スク内の通信オブジェクトによる送信動作時及び受信側
のタスク内の通信オブジェクトによる受信動作時の通信
プロトコルの制御を行う通信プロトコル制御手段(Send
erオブジェクト及びReceiverオブジェクトに対応する)
を更に有するように構成できる。なお、これらの制御
は、通信オブジェクト自身が行うように構成されてもよ
い。
In the configuration of the invention described above, a communication protocol control means (Send) for controlling a communication protocol during a transmission operation by a communication object in a task on the transmission side and a reception operation by a communication object in a task on the reception side.
er object and Receiver object)
Can be further provided. Note that these controls may be performed by the communication object itself.

【0018】[0018]

【作用】本発明では、通信対象がオブジェクトであると
いう点を生かして、各通信オブジェクトが、自オブジェ
クトに対応する通信データの送信機能及び受信機能を有
する。この結果、通信オブジェクト自身が、その送信と
受信、例えば、通信バッファである共有メモリへの書込
み(アンパッケージング)と共有メモリからの読出し
(パッケージング)を行うため、通信処理の通信するデ
ータ形式の汎用性を考慮する必要がなくなり、その結
果、通信対象のオブジェクトに対する制限を除くことが
でき、多様なオブジェクトを通信することが可能とな
る。
In the present invention, taking advantage of the fact that the communication target is an object, each communication object has a transmission function and a reception function of communication data corresponding to its own object. As a result, the communication object itself performs its transmission and reception, for example, writing (unpackaging) to a shared memory, which is a communication buffer, and reading (packaging) from the shared memory. It is no longer necessary to consider the versatility of the object, and as a result, it is possible to remove restrictions on objects to be communicated and to communicate with various objects.

【0019】また、オブジェクト自身がそのオブジェク
トの送受信を行う結果、通信バッファアクセスエラー等
の通信エラーが発生する可能性は激減し、通信時の信頼
性を飛躍的に向上させることができる。
Further, as a result of the object itself transmitting and receiving the object, the possibility of occurrence of a communication error such as a communication buffer access error is drastically reduced, and the reliability during communication can be greatly improved.

【0020】更に、通信オブジェクト自身にそのオブジ
ェクトの通信機能を持たせる場合、予め基底クラスにそ
のメッセージの通信機能を持たせておき、通信オブジェ
クトを、基底クラスから派生したクラスであって基底ク
ラスにおけるオブジェクトの通信機能を継承した派生ク
ラスのオブジェクトとして生成させることにより、アプ
リケーションのオブジェクトに簡単にそのオブジェクト
の通信機能を持たせることができる。
Further, when the communication object itself has the communication function of the object, the communication function of the message is previously provided to the base class, and the communication object is defined as a class derived from the base class and included in the base class. By generating an object of a derived class that inherits the communication function of the object, the object of the application can easily have the communication function of the object.

【0021】ここで、受信側のタスクでは、通信オブジ
ェクト生成用オブジェクトが、受信された通信データに
対応する通信オブジェクトを生成する。この場合、受信
された通信データに設定されている識別子によってその
通信データに対応する通信オブジェクトを生成すること
により、簡単な制御処理で対応する通信オブジェクトを
生成できる。また、通信オブジェクト生成用オブジェク
トが、所定のグループの通信オブジェクトを生成する通
信オブジェクト生成ルーチンオブジェクトを複数のグル
ープに対応して複数所有するリストオブジェクトを所有
することによって、受信されるオブジェクトのグループ
の種類が変更されても、そのような変更に対して、通信
オブジェクト生成用オブジェクトを修正することなく、
リストオブジェクトに対して通信オブジェクト生成ルー
チンオブジェクトを追加、削除、又は変更させるだけ
で、柔軟に対応することができる。或いは、通信オブジ
ェクト生成用オブジェクトが、複数の通信オブジェクト
のインスタンスをデータベースとして所有するデータベ
ース管理オブジェクトを所有することによって、受信さ
れるオブジェクトが変更されても、そのような変更に対
して、通信オブジェクト生成用オブジェクトを修正する
ことなく、データベース管理オブジェクトに対して通信
オブジェクトのインスタンスを追加、削除、又は変更さ
せるだけで、柔軟に対応することができる。
In the task on the receiving side, the object for generating a communication object generates a communication object corresponding to the received communication data. In this case, by generating a communication object corresponding to the communication data based on the identifier set in the received communication data, the corresponding communication object can be generated by a simple control process. In addition, the communication object generation object owns a list object that owns a plurality of communication object generation routine objects that generate a predetermined group of communication objects corresponding to the plurality of groups, and thereby the type of the group of the received object is obtained. Is changed without modifying the communication object generation object for such a change.
It is possible to respond flexibly only by adding, deleting, or changing the communication object generation routine object to the list object. Alternatively, the communication object generation object owns a database management object that owns a plurality of instances of the communication object as a database, so that even if the received object is changed, the communication object generation is performed in response to such a change. It is possible to respond flexibly by simply adding, deleting, or changing the instance of the communication object with respect to the database management object without modifying the object for use.

【0022】一方、オブジェクト自身により送受信され
るそのオブジェクトが所定の通信プロトコルに従って通
信される場合に、この通信プロトコルに基づく制御を行
う機能を通信プロトコル制御手段として設けることによ
り、通信プロトコルに基づく制御機能を通信プロトコル
制御手段に担当させることができ、通信を行うアプリケ
ーションは、通信プロトコル制御手段にメッセージを送
るだけで、所定の通信プロトコルに沿った通信を実現で
き、アプリケーションにおけるオブジェクトの通信に対
する負荷及びエラー発生の可能性を軽減させることがで
きる。
On the other hand, when the object transmitted / received by the object itself is communicated according to a predetermined communication protocol, a function for performing control based on the communication protocol is provided as communication protocol control means, so that a control function based on the communication protocol is provided. Can be assigned to the communication protocol control means, and the application performing communication can realize communication in accordance with a predetermined communication protocol only by sending a message to the communication protocol control means. The possibility of occurrence can be reduced.

【0023】[0023]

【実施例】以下、図面を参照しながら本発明の実施例に
つき詳細に説明する。 <実施例の構成>図1は、本発明の実施例の構成図であ
る。
Embodiments of the present invention will be described below in detail with reference to the drawings. <Structure of Embodiment> FIG. 1 is a diagram showing the structure of an embodiment of the present invention.

【0024】本実施例は、パーソナルコンピュータ用の
ウインドウシステムであるWindowsシステム上で実行さ
れるクライアント・サーバ型のWindows アプリケーショ
ンシステムとして実現されている。また、本実施例にお
けるオブジェクトは、コンピュータシステムがC++プ
ログラミング言語に基づいて作成されたプログラムを実
行することにより、実現される。
The present embodiment is realized as a client-server type Windows application system executed on a Windows system which is a window system for a personal computer. Further, the object in the present embodiment is realized by a computer system executing a program created based on the C ++ programming language.

【0025】相互に通信を行うクライアントタスクとサ
ーバタスクは、それぞれ、1台のコンピュータシステム
上で実行され、或いは、ネットワークによって接続され
た異なるコンピュータシステム(ノード)(図14参
照)上で実行され、更に、各ノード内には複数のプロセ
ス(タスク)が存在する。しかし、これらの関係は、オ
ブジェクトによって隠蔽されているため、アプリケーシ
ョン側では、オブジェクト通信の対象であるタスクがど
のようなコンピュータシステム上で実行されているかを
意識する必要はなく、オブジェクト間のインタフェース
のみを意識すればよい。
The client task and the server task that communicate with each other are executed on one computer system or on different computer systems (nodes) (see FIG. 14) connected by a network. Further, a plurality of processes (tasks) exist in each node. However, since these relationships are hidden by the object, the application does not need to be aware of the computer system on which the task that is the object of the object communication is being executed. You only need to be aware of

【0026】クライアントタスクのアプリケーションオ
ブジェクトは、まず、送信されるべき送信オブジェクト
部101を生成した後、Senderオブジェクト102に対
して送信依頼メッセージを送信する。
The application object of the client task first generates a transmission object section 101 to be transmitted, and then transmits a transmission request message to the Sender object 102.

【0027】Senderオブジェクト部102は、後述する
ように、送信オブジェクト部101の送信受信バッファ
への書き込みを直接制御するものではなく、送信処理に
おける全体的なメッセージの授受のみを制御する。
As will be described later, the Sender object unit 102 does not directly control writing to the transmission / reception buffer of the transmission object unit 101, but only controls overall transmission and reception of messages in the transmission process.

【0028】Senderオブジェクト部102は、送信依頼
メッセージを受信すると、送信オブジェクト部101に
対しバッファ書き込み依頼メッセージ107を送信す
る。送信オブジェクト部101は、このメッセージを受
信すると、自立的に、自オブジェクト内のメンバの、送
受信バッファオブジェクト部103への書込み(アンパ
ッケージング)を実行する。なお、後述するostrstream
オブジェクト及び共有メモリの部分が、送受信バッファ
オブジェクト部103に対応している。
Upon receiving the transmission request message, the Sender object unit 102 transmits a buffer write request message 107 to the transmission object unit 101. Upon receiving this message, the transmission object unit 101 autonomously writes (unpackages) the members in the object into the transmission / reception buffer object unit 103. In addition, ostrstream described later
The object and the shared memory correspond to the transmission / reception buffer object unit 103.

【0029】その後、Senderオブジェクト102は、通
信プロトコル制御部104に対し、送受信バッファオブ
ジェクト部103のサーバタスクへの送信を依頼する。
この結果、通信プロトコル制御部104は、予め設定さ
れたパスに沿って、上述の送受信バッファオブジェクト
部103をサーバタスクへ転送する。なお、後述するWi
ndows システムが、通信プロトコル制御部104に対応
している。
Thereafter, the Sender object 102 requests the communication protocol control unit 104 to transmit the transmission / reception buffer object unit 103 to the server task.
As a result, the communication protocol control unit 104 transfers the above-mentioned transmission / reception buffer object unit 103 to the server task along a preset path. In addition, Wi described later
The ndows system corresponds to the communication protocol control unit 104.

【0030】サーバタスクのReceiverオブジェクト10
5は、通信プロトコル制御部104から送受信バッファ
オブジェクト部103の受信通知を受け取ると、送受信
バッファオブジェクト部103内の識別子を判別するこ
とにより、受信すべきオブジェクトである受信オブジェ
クト部106を生成し、それに対して、バッファ読み込
み依頼メッセージ108を送信する。
Receiver object 10 of server task
5 receives the reception notification of the transmission / reception buffer object unit 103 from the communication protocol control unit 104, determines the identifier in the transmission / reception buffer object unit 103, and generates the reception object unit 106 which is the object to be received. In response, a buffer read request message 108 is transmitted.

【0031】受信オブジェクト部106は、このメッセ
ージを受信すると、自立的に、送受信バッファオブジェ
クト部103内のデータの自オブジェクト内のメンバへ
の読み込み(パッケージング)を実行する。なお、後述
するistrstreamオブジェクトは、送受信バッファオブジ
ェクト部103の一部である。
Upon receiving this message, the receiving object unit 106 autonomously reads (packages) the data in the transmission / reception buffer object unit 103 into the members in the own object. The istrstream object described later is a part of the transmission / reception buffer object unit 103.

【0032】以上の基本構成に基づく、本実施例の詳細
な動作について以下に説明する。 <オブジェクトの基本構成>アプリケーションの起動時
には、まず、図2及び図3に示されるように、クライア
ントタスクとしてアプリケーションオブジェクトNdbApp
が、また、サーバタスクとしてサーバオブジェクトServ
erが、それぞれ起動する。これらのオブジェクトは、ア
プリケーション又はサーバのインタフェースに関する機
能以外の機能を規定するオブジェクトである。
The detailed operation of this embodiment based on the above basic configuration will be described below. <Basic Configuration of Object> When starting an application, first, as shown in FIGS. 2 and 3, an application object NdbApp is used as a client task.
But also server object Serv as a server task
er are activated respectively. These objects are objects that define functions other than the functions related to the application or server interface.

【0033】次に、図2及び図3に示されるように、ア
プリケーションオブジェクトNdbApp及びサーバオブジェ
クトServerによって、それぞれ、アプリケーション用メ
インユーザウインドウオブジェクトMainUserWindow(以
下、アプリケーション用MainUserWindowオブジェクトと
いう)及びサーバ用メインユーザウインドウオブジェク
トMainUserWindow(以下、サーバ用MainUserWindowオブ
ジェクトという)が1個ずつ生成され、それぞれがアプ
リケーションオブジェクトNdbApp及びサーバオブジェク
トServerにより所有される。これらのオブジェクトは、
アプリケーションオブジェクトNdbApp及びサーバオブジ
ェクトServerのインタフェースに関する機能、例えば表
示装置に表示されるクライアントタスク及びサーバタス
クに関連するウインドウ上でのデータの表示機能、これ
らのウインドウ上でのコマンドの入力機能とその応答の
表示機能、及び本発明に関連するオブジェクト通信を実
現するためのDDE(Dynamic Data Exchange) 機能など
を規定するオブジェクトである。なお、アプリケーショ
ンオブジェクトNdbAppとサーバオブジェクトServerは、
それぞれのデータメンバMainWindowに格納されているポ
インタによって、生成されたアプリケーション用MainUs
erWindowオブジェクト及びサーバ用MainUserWindowオブ
ジェクトへアクセスする。
Next, as shown in FIGS. 2 and 3, an application main user window object MainUserWindow (hereinafter, referred to as an application MainUserWindow object) and a server main user window are respectively set by an application object NdbApp and a server object Server. An object MainUserWindow (hereinafter referred to as a server MainUserWindow object) is generated one by one, and each is owned by the application object NdbApp and the server object Server. These objects are
Functions related to the interface between the application object NdbApp and the server object Server, for example, a function for displaying data on windows related to client tasks and server tasks displayed on the display device, a function for inputting commands on these windows, and a function for responding to the commands. An object that defines a display function and a DDE (Dynamic Data Exchange) function for realizing object communication related to the present invention. The application object NdbApp and server object Server
MainUs for application generated by pointer stored in each data member MainWindow
Access the erWindow object and the MainUserWindow object for the server.

【0034】また、アプリケーション用MainUserWindow
オブジェクト及びサーバ用MainUserWindowオブジェクト
が生成されるときに、それぞれの生成時に自動的に実行
されるそれらのメンバ関数であるコンストラクタによ
り、センダオブジェクトSender(以下、Senderオブジェ
クトという)とレシーバオブジェクトReceiver(以下、
Receiverオブジェクトという)が生成されて、それらが
アプリケーション用MainUserWindowオブジェクト及びサ
ーバ用MainUserWindowオブジェクトにより所有される。
なお、アプリケーション用MainUserWindowオブジェクト
は、そのデータメンバaReceiver 及びaSender にそれぞ
れ格納されているポインタによって、生成されたReceiv
erオブジェクト及びSenderオブジェクトへアクセスす
る。
Also, MainUserWindow for application
When the object and the MainUserWindow object for the server are generated, the sender object Sender (hereinafter, referred to as Sender object) and the receiver object Receiver (hereinafter, referred to as Sender object)
Receiver objects) are generated and owned by the MainUserWindow object for the application and the MainUserWindow object for the server.
Note that the MainUserWindow object for the application uses the pointers stored in its data members aReceiver and aSender to generate the Receive
Access er object and Sender object.

【0035】図6は、アプリケーション用MainUserWind
owオブジェクトとサーバ用MainUserWindowオブジェクト
のクラス構造を示した図である。アプリケーション用Ma
inUserWindowオブジェクトのクラスであるアプリケーシ
ョン用メインユーザウインドウクラスと、サーバ用Main
UserWindowオブジェクトのクラスであるサーバ用メイン
ユーザウインドウクラスは、それぞれ、DDE処理を規
定する共通のDDE処理クラスから派生したクラスであ
る。また、DDE処理クラスは、ウインドウ処理の基本
的なインタフェースを規定する基底クラスである共通の
ウインドウ処理クラスから派生したクラスである。
FIG. 6 shows MainUserWind for an application.
FIG. 3 is a diagram showing a class structure of an ow object and a MainUserWindow object for a server. Ma for application
Main user window class for application, which is the class of the inUserWindow object, and Main for server
The server main user window class, which is a class of the UserWindow object, is a class derived from a common DDE processing class that defines the DDE processing. The DDE processing class is a class derived from a common window processing class that is a base class that defines a basic interface of window processing.

【0036】従って、クラスが有する継承(インヘリタ
ンス)機能によって、アプリケーション用メインユーザ
ウインドウクラス及びサーバ用メインユーザウインドウ
クラスは、DDE処理クラスが有する機能とウインドウ
処理クラスが有する機能を継承している。そして、アプ
リケーション用MainUserWindowオブジェクト及びサーバ
用MainUserWindowオブジェクトの生成時にアプリケーシ
ョン用メインユーザウインドウクラス及びサーバ用メイ
ンユーザウインドウクラスのコンストラクタが実行され
る場合、DDE処理クラスのコンストラクタが呼び出さ
れ、このDDE処理クラスのコンストラクタによって、
図6に示されるように、SenderオブジェクトとReceiver
オブジェクトが生成される。
Therefore, the main user window class for the application and the main user window class for the server inherit the function of the DDE processing class and the function of the window processing class by the inheritance (inheritance) function of the class. When the constructor of the application main user window class and the server main user window class is executed when the application MainUserWindow object and the server MainUserWindow object are generated, the constructor of the DDE processing class is called, and the constructor of the DDE processing class is called. By
As shown in Figure 6, Sender object and Receiver
An object is created.

【0037】これらのサーバオブジェクトServerとRece
iverオブジェクトの制御下で、アプリケーションオブジ
ェクトNdbApp又はサーバオブジェクトServerによって生
成された通信対象オブジェクトが、自立的に、自分自身
に対して共有メモリへのアンパッケージング又は共有メ
モリからのパッケージングを実行することにより、クラ
イアントタスクとサーバタスクの間のオブジェクト通信
が実現される。 <クライアントタスクとサーバタスクとの間のパスの設
定動作>次に、クライアントタスクとサーバタスクとの
間のオブジェクト通信動作に先立って、クライアントタ
スクとサーバタスクとの間でDDEプロトコルに従って
パスが設定される。この動作について、図2と図3を使
って説明する。
These server objects Server and Receive
Under the control of the iver object, the communication target object generated by the application object NdbApp or the server object Server independently performs self-packaging to the shared memory or packaging from the shared memory for itself. Thereby, object communication between the client task and the server task is realized. <Path setting operation between client task and server task> Next, prior to the object communication operation between the client task and the server task, a path is set between the client task and the server task according to the DDE protocol. You. This operation will be described with reference to FIGS.

【0038】まず、ユーザは、クライアントタスクのウ
インドウ画面上でパス設定コマンドを選択する。この結
果、アプリケーションオブジェクトNdbAppのパス設定用
メンバ関数は、Senderオブジェクトに対して、パス設定
を依頼するメッセージSetTarget を送信する(図2のS
1)。このメッセージには、オブジェクト通信を行いた
い宛て先のアプリケーション名などが含まれる。例え
ば、クライアントタスクからサーバタスクへのパスが設
定される場合には、アプリケーション名はサーバタスク
の名称である。
First, the user selects a path setting command on the window screen of the client task. As a result, the path setting member function of the application object NdbApp transmits a message SetTarget requesting the path setting to the Sender object (S in FIG. 2).
1). This message contains the name of the application to which the object communication is to be performed. For example, when a path from a client task to a server task is set, the application name is the name of the server task.

【0039】Senderオブジェクトは、このメッセージに
対応するメンバ関数SetTarget を実行する。メンバ関数
SetTarget は、Windows システムの関数(以下、Window
s 関数という)であって、上記アプリケーション名を含
むパス設定依頼関数InitiateDDE をコールする(図2の
S2)。
The Sender object executes a member function SetTarget corresponding to this message. Member functions
SetTarget is a Windows system function (hereafter, Window
s function), and calls a path setting request function InitiateDDE including the application name (S2 in FIG. 2).

【0040】Windows 関数InitiateDDE は、サーバタス
クのサーバ用MainUserWindowオブジェクトに対し、その
オブジェクトで定義されているメンバ関数であるコール
バック関数WMDDEInitiate をコールすることにより、Se
nderオブジェクトのメンバ関数SetTarget によって指定
されたトピック名が、サーバ用MainUserWindowオブジェ
クトが所有するReceiverオブジェクトにおいて、サポー
トされているか否かを問い合せる(図3のS3)。この
場合、Windows システムは、各アプリケーションのMain
UserWindowオブジェクトの識別子であるハンドルを管理
しており、このハンドルによってサーバ用MainUserWind
owオブジェクトを識別する。
The Windows function InitiateDDE calls the callback function WMDDEInitiate, which is a member function defined for the main user window object for the server of the server task, for the server.
It is inquired whether or not the topic name specified by the member function SetTarget of the nder object is supported by the Receiver object owned by the server MainUserWindow object (S3 in FIG. 3). In this case, the Windows system will use the Main
Maintains a handle that is the identifier of the UserWindow object, and this handle allows the server to use MainUserWind
Identify the ow object.

【0041】コールバック関数WMDDEInitiate は、ま
ず、サーバ用MainUserWindowオブジェクトが所有するSe
nderオブジェクトに対して、リターンパスのハンドルで
あるアプリケーション用MainUserWindowオブジェクトの
ハンドルを設定するためのメッセージSetReturnTarget
を送信する(図3のS4)。Senderオブジェクトは、こ
のメッセージに対応するメンバ関数SetReturnTarget を
実行することにより、自オブジェクト内のデータメンバ
に、アプリケーション用MainUserWindowオブジェクトの
ハンドルを設定する。
First, the callback function WMDDEInitiate is executed by the server's MainUserWindow object.
Message SetReturnTarget for setting the handle of the MainUserWindow object for the application, which is the handle of the return path, to the nder object
Is transmitted (S4 in FIG. 3). By executing the member function SetReturnTarget corresponding to this message, the Sender object sets the handle of the application MainUserWindow object in the data member of the Sender object.

【0042】次に、コールバック関数WMDDEInitiate
は、上記問合せに対して、Receiverオブジェクトに予め
設定されているトピック名を検索することにより、Rece
iverオブジェクトにおいて問い合せられたトピック名が
サポートされていると判別すると、Windows 関数SendMe
ssage をコールすることにより、パス設定の依頼をした
クライアントタスクのアプリケーション用MainUserWind
owオブジェクトに対し、サーバ用MainUserWindowオブジ
ェクトのハンドルを通知する(図3のS5)。
Next, the callback function WMDDEInitiate
Responds to the above query by searching for a topic name preset in the Receiver object.
If the iver object determines that the queried topic name is supported, the Windows function SendMe
MainUserWind for application of client task that requested path setting by calling ssage
The handle of the server MainUserWindow object is notified to the ow object (S5 in FIG. 3).

【0043】Windows 関数SendMessage は、クライアン
トタスクのアプリケーション用MainUserWindowオブジェ
クトに対し、そのオブジェクトで定義されているメンバ
関数であるコールバック関数WMDDEAckをコールすること
によって、サーバ用MainUserWindowオブジェクトのハン
ドルを通知する(図2のS6)。
The Windows function SendMessage notifies the handle of the server MainUserWindow object to the client task application MainUserWindow object by calling a callback function WMDDDEAck which is a member function defined in the client task application MainUserWindow object. 2 S6).

【0044】これに対応して、コールバック関数WMDDEA
ckは、アプリケーション用MainUserWindowオブジェクト
が所有するSenderオブジェクトに対して、送信パスのハ
ンドルであるサーバ用MainUserWindowオブジェクトのハ
ンドルを設定するためのメッセージSetTargetWindowHan
dle を送信する(図3のS7)。Senderオブジェクト
は、このメッセージに対応するメンバ関数SetTargetWin
dowHandle を実行することにより、自オブジェクト内の
データメンバに、サーバ用MainUserWindowオブジェクト
のハンドルを設定する。
In response, the callback function WMDDEA
ck is a message SetTargetWindowHan for setting the handle of the server MainUserWindow object, which is the handle of the transmission path, to the Sender object owned by the application MainUserWindow object.
dle is transmitted (S7 in FIG. 3). The Sender object uses the member function SetTargetWin corresponding to this message
By executing dowHandle, the handle of the MainUserWindow object for the server is set to the data member in the self object.

【0045】以上で、パスの設定動作が完了する。 <クライアントタスクとサーバタスクとの間のオブジェ
クト通信の全体動作>上述の動作によりクライアントタ
スクとサーバタスクとの間に設定されたパスを使用する
ことにより、クライアントタスクとサーバタスクとの間
で実際のオブジェクトの通信が行われる。この動作につ
き、図4と図5を使って説明する。
Thus, the path setting operation is completed. <Overall operation of object communication between client task and server task> By using the path set between the client task and the server task by the above-described operation, an actual communication between the client task and the server task is performed. Object communication takes place. This operation will be described with reference to FIGS.

【0046】ここでは、まず、説明の簡単のため文字列
のオブジェクトを通信する場合の動作について説明する
が、勿論、オブジェクトの種類は何でもよい。まず、ア
プリケーションオブジェクトNdbAppは、送信対象となる
オブジェクトExStringを生成し、それへのポインタaExS
tring を保持する(図4のS1)。
Here, for the sake of simplicity, the operation in the case of communicating a character string object will be described. Of course, any type of object may be used. First, the application object NdbApp creates an object ExString to be sent and a pointer aExS
Tring is held (S1 in FIG. 4).

【0047】次に、アプリケーションオブジェクトNdbA
ppのオブジェクト送信用メンバ関数は、Senderオブジェ
クトに対し、送信対象オブジェクトExStringをSenderオ
ブジェクトにリンクさせるためのメッセージSetExData
を送信する(図4のS2)。このメッセージには、送信
対象オブジェクトExStringへのポインタaExString が付
加されている。
Next, the application object NdbA
The pp object transmission member function is a message SetExData for linking the transmission target object ExString to the Sender object for the Sender object.
Is transmitted (S2 in FIG. 4). A pointer aExString to the transmission target object ExString is added to this message.

【0048】Senderオブジェクトは、このメッセージに
対応するメンバ関数SetExData を実行する。この結果、
送信対象オブジェクトExStringは、Senderオブジェクト
によって所有される(図4のS3)。
The Sender object executes a member function SetExData corresponding to this message. As a result,
The transmission target object ExString is owned by the Sender object (S3 in FIG. 4).

【0049】続いて、アプリケーションオブジェクトNd
bAppのオブジェクト送信用メンバ関数は、Senderオブジ
ェクトに対して、送信開始メッセージExSendを送信する
(図4のS4)。
Subsequently, the application object Nd
The bApp object transmission member function transmits a transmission start message ExSend to the Sender object (S4 in FIG. 4).

【0050】Senderオブジェクトは、このメッセージに
対応するメンバ関数ExSendを実行する。この結果とし
て、メモリ上のストリングの出力用のストリームオブジ
ェクトostrstream(以下、ostrstreamオブジェクトとい
う)が生成され、それへのポインタogs がSenderオブジ
ェクトによって保持される(図4のS5)。更に、メン
バ関数ExSendによって、Senderオブジェクトが所有して
いる送信対象オブジェクトExStringに対して、ポインタ
ogs によって指示されるostrstreamオブジェクトへの出
力メッセージprintOn が送信される(図4のS6)。
The Sender object executes the member function ExSend corresponding to this message. As a result, a stream object ostrstream (hereinafter, referred to as an ostrstream object) for outputting a string on the memory is generated, and a pointer ogs to the stream object is held by the Sender object (S5 in FIG. 4). Furthermore, the pointer to the transmission target object ExString owned by the Sender object by the member function ExSend
An output message printOn to the ostrstream object specified by ogs is transmitted (S6 in FIG. 4).

【0051】これを受けて、送信対象オブジェクトExSt
ringは、このメッセージに対応するメンバ関数printOn
を実行する。この結果、送信対象オブジェクトExString
の内容が、自立的にostrstreamオブジェクトへ出力され
る(図4のS7)。このように、Senderオブジェクトが
送信対象オブジェクトExStringをostrstreamオブジェク
トへ出力するのではなく、送信対象オブジェクトExStri
ngに定義されたメンバ関数printOn によって自立的にそ
のオブジェクトの出力が行われて送信が実行される点
が、本発明に最も関連する大きな特徴の1つである。
In response to this, the transmission target object ExSt
ring is the member function printOn corresponding to this message
Execute As a result, the transmission target object ExString
Is autonomously output to the ostrstream object (S7 in FIG. 4). Thus, instead of the Sender object outputting the transmission target object ExString to the ostrstream object, the transmission target object ExStri
One of the most important features of the present invention is that the object is autonomously output by the member function printOn defined in ng and the transmission is executed.

【0052】次に、Senderオブジェクトのメンバ関数Ex
Sendは、ostrstreamオブジェクトに対し、そこに格納さ
れている文字列の長さを問い合せるメッセージpcountを
送信する。ostrstreamオブジェクトは、このメッセージ
に対応するメンバ関数pcountを実行する。この結果、os
trstreamオブジェクトに格納されている文字列の長さが
Senderオブジェクトに通知される(図4のS8)。
Next, the member function Ex of the Sender object
Send sends a message pcount to the ostrstream object to query the length of the character string stored therein. The ostrstream object executes the member function pcount corresponding to this message. As a result, os
The length of the string stored in the trstream object is
The Sender object is notified (S8 in FIG. 4).

【0053】更に、Senderオブジェクトのメンバ関数Ex
Sendは、ostrstreamオブジェクトから通知された文字列
の長さを格納できるサイズを有する共有メモリを確保し
た後に、ostrstreamオブジェクトに格納されている文字
列を共有メモリにコピーする(図4のS9)。
Further, the member function Ex of the Sender object
Send secures a shared memory having a size that can store the length of the character string notified from the ostrstream object, and then copies the character string stored in the ostrstream object to the shared memory (S9 in FIG. 4).

【0054】なお、共有メモリが共有メモリオブジェク
トとして実現され、送信対象オブジェクトExStringの内
容がostrstreamオブジェクトを介さずにメンバ関数prin
tOnによって直接共有メモリオブジェクトへ出力されて
もよい。
Note that the shared memory is implemented as a shared memory object, and the contents of the transmission target object ExString are not passed through the ostrstream object, and the member function prin is used.
It may be output directly to the shared memory object by tOn.

【0055】Senderオブジェクトのメンバ関数ExSend
は、共有メモリへのコピーを行った後に、Windows 関数
PostMessage をコールすることにより、Windows システ
ムに、DDEプロトコルに基づく共有メモリの送信依頼
を行う(図4のS10)。この結果、共有メモリが、Wi
ndows システムのメインシステムキューにポストされ、
以下、前述した設定動作によって予めクライアントタス
クとサーバタスクの間で設定されたパスに沿って、Wind
ows システムの制御の下で共有メモリの送信が行われ
る。
Member function ExSend of Sender object
Does a Windows function after copying to shared memory
By calling PostMessage, the Windows system is requested to transmit a shared memory based on the DDE protocol (S10 in FIG. 4). As a result, the shared memory becomes
posted to the main system queue of the ndows system,
Hereinafter, along the path previously set between the client task and the server task by the above-described setting operation,
Transmission of shared memory is performed under control of the ows system.

【0056】Windows 関数PostMessage は、サーバタス
クのサーバ用MainUserWindowオブジェクトに対し、その
オブジェクトで定義されているメンバ関数であるコール
バック関数WMDDEData をコールすることにより、共有メ
モリへのポインタが付加されたDDEメッセージをサー
バ用MainUserWindowオブジェクトに送信する(図5のS
11)。
The Windows function PostMessage calls the callback function WMDDEData, which is a member function defined for the MainUserWindow object for the server of the server task, on the server's MainUserWindow object, so that the DDE message with the pointer to the shared memory added. To the server MainUserWindow object (S in FIG. 5).
11).

【0057】コールバック関数WMDDEData は、まず、サ
ーバ用MainUserWindowオブジェクトが所有するReceiver
オブジェクトに対して、共有メモリからオブジェクトへ
のパッケージングを依頼するためのメッセージTakeoutO
bject を送信する(図5のS12)。
First, the callback function WMDDEData is executed by the Receiver owned by the MainUserWindow object for the server.
Message TakeoutO for requesting packaging of object from shared memory to object
bject is transmitted (S12 in FIG. 5).

【0058】サーバ用MainUserWindowオブジェクトが所
有するReceiverオブジェクトは、上述のメッセージに対
応するメンバ関数TakeoutObject を実行する。このメン
バ関数TakeoutObject は、メモリへのストリングの入力
用のストリームオブジェクトistrstream(以下、istrst
reamオブジェクトという)を生成し、そのオブジェクト
へのポインタstを保持する(図5のS13)。またメン
バ関数TakeoutObjectは、istrstreamオブジェクトのオ
ペレータ“<<”にメッセージを送り、そのオペレータ
に共有メモリのデータをistrstreamオブジェクトへ読み
込ませる(図5のS14)。
The Receiver object owned by the server MainUserWindow object executes the member function TakeoutObject corresponding to the above message. This member function TakeoutObject is a stream object istrstream (hereinafter, istrst) for inputting a string to memory.
A ream object is generated, and a pointer st to the object is held (S13 in FIG. 5). The member function TakeoutObject sends a message to the operator "<<" of the istrstream object, and causes the operator to read the data in the shared memory into the istrstream object (S14 in FIG. 5).

【0059】次に、Receiverオブジェクトは、istrstre
amオブジェクトに読み込まれたデータに設定されている
識別子を判別することにより、受信されるべきオブジェ
クトがExStringオブジェクトであることを判別する。そ
して、Receiverオブジェクトは、ExStringオブジェクト
を生成し、それへのポインタaExString を保持する。こ
こで、ExStringオブジェクトが生成されるときに、その
生成時に自動的に実行されるそのメンバ関数であるコン
ストラクタにより、istrstreamオブジェクトに格納され
ているデータが、自立的にExStringオブジェクトに読み
込まれる(図5のS15)。このように、Receiverオブ
ジェクトがistrstreamオブジェクトの内容をExStringオ
ブジェクトに読み込むのではなく、ExStringのコンスト
ラクタによって自立的にそのオブジェクトへのデータの
読込みが行われて受信が実行される点が、本発明に最も
関連する大きな特徴の1つである。
Next, the Receiver object is
By determining the identifier set in the data read in the am object, it is determined that the object to be received is an ExString object. Then, the Receiver object creates an ExString object and holds a pointer aExString to the ExString object. Here, when the ExString object is generated, the data stored in the istrstream object is read into the ExString object autonomously by the constructor, which is a member function that is automatically executed at the time of generation. S15). The most important feature of the present invention is that the Receiver object does not read the contents of the istrstream object into the ExString object, but the ExString constructor independently reads data into the object and performs reception. This is one of the related major features.

【0060】また、前述したように、共有メモリが共有
メモリオブジェクトとして実現される場合には、共有メ
モリの内容がistrstreamオブジェクトを介さずにExStri
ngオブジェクトのコンストラクタによって直接ExString
オブジェクトに格納されてもよい。次に、サーバ用Main
UserWindowオブジェクトが所有するReceiverオブジェク
トは、それが予め所有している受信キューであるQueue
オブジェクトに対し、キュー接続メッセージput を送信
する。Queue オブジェクトは、このメッセージに対応す
るメンバ関数put を実行することにより、ExStringオブ
ジェクトへのポインタaExString を自オブジェクト内の
受信キューへ接続する(図5のS16)。
Further, as described above, when the shared memory is realized as a shared memory object, the contents of the shared memory are stored in ExStri
ExString directly by constructor of ng object
It may be stored in the object. Next, Main for server
The Receiver object owned by the UserWindow object is Queue, which is the receive queue owned by it in advance.
Sends a queue connection message put to the object. By executing the member function put corresponding to this message, the Queue object connects the pointer aExString to the ExString object to the reception queue in the object itself (S16 in FIG. 5).

【0061】その後、適当なタイミングで、サーバオブ
ジェクトServerのオブジェクト取出し用メンバ関数が、
サーバ用MainUserWindowオブジェクトが所有するReceiv
erオブジェクトに対して、受信されたExStringオブジェ
クトを受信キューから取り出すためのメッセージReceiv
eData を送信する(図5のS17)。
Then, at an appropriate timing, the object fetching member function of the server object Server
Receiv owned by MainUserWindow object for server
For the er object, a message Receiv to retrieve the received ExString object from the receive queue
The eData is transmitted (S17 in FIG. 5).

【0062】Receiverオブジェクトは、このメッセージ
に対応するメンバ関数ReceiveDataを実行する。このメ
ンバ関数ReceiveData は、Receiverオブジェクトが所有
するQueue オブジェクトに対して、キュー取出しメッセ
ージget を送信する。Queueオブジェクトは、このメッ
セージに対応するメンバ関数get を実行することによ
り、ExStringオブジェクトへのポインタaExString をサ
ーバオブジェクトServerに接続する(図5のS18)。
The Receiver object executes a member function ReceiveData corresponding to this message. This member function ReceiveData sends a queue fetch message get to the Queue object owned by the Receiver object. The Queue object connects the pointer aExString to the ExString object to the server object Server by executing the member function get corresponding to this message (S18 in FIG. 5).

【0063】以上のようにして、図4に示されるアプリ
ケーションオブジェクトNdbAppが送信したExStringオブ
ジェクトが、図5に示されるサーバオブジェクトServer
に受信される。 <共有メモリに対するオブジェクトの入出力処理の詳細
>上述したクライアントタスクとサーバタスクとの間の
オブジェクト通信の全体動作では、ExStringオブジェク
トという単純な文字列のオブジェクトが通信される場合
について説明した。
As described above, the ExString object transmitted by the application object NdbApp shown in FIG. 4 is replaced with the server object Server shown in FIG.
Is received. <Details of Input / Output Processing of Object to / from Shared Memory> In the overall operation of object communication between the client task and the server task described above, the case where a simple character string object called an ExString object is communicated has been described.

【0064】ここで、実際には、第1の場合として、オ
ブジェクトは、他のオブジェクトへのポインタによっ
て、他のオブジェクトとの間で相互にクライアント・サ
プライヤ関係を有するグループを形成している場合が多
い。このような場合は、グループ内の各オブジェクト
が、各オブジェクト間の関係を維持したまま、それらに
含まれるメンバが一括して通信される必要がある。
Here, actually, as a first case, an object may form a group having a mutual client-supplier relationship with another object by a pointer to the other object. Many. In such a case, while the objects in the group maintain the relationship between the objects, the members included therein need to be communicated collectively.

【0065】また、第2の場合として、オブジェクト
は、他の親クラスから派生したクラスのオブジェクトで
ある場合が多い。このような場合には、1つのオブジェ
クトには、そのオブジェクトを直接生成した派生クラス
で定義されるメンバのほかに、その派生クラスの親のク
ラスで定義されるメンバも含まれる。従って、1つのオ
ブジェクトが通信される場合でも、そのオブジェクトに
関連するクラス間の継承関係を維持したまま、そのオブ
ジェクトに含まれる各クラスに対応するメンバが通信さ
れる必要がある。
In the second case, the object is often an object of a class derived from another parent class. In such a case, one object includes, in addition to members defined in a derived class that directly generates the object, members defined in a parent class of the derived class. Therefore, even when one object is communicated, members corresponding to each class included in the object need to be communicated while maintaining the inheritance relationship between the classes related to the object.

【0066】更に、第3の場合として、第1の場合のよ
うにクライアント・サプライヤ関係を有するグループを
形成するそれぞれのオブジェクトが、第2の場合のよう
に他の親クラスから派生したクラスのオブジェクトであ
る場合も多い。このような場合には、グループ内の各オ
ブジェクトが、各オブジェクト間の関係を維持したま
ま、かつ、各オブジェクトに関連するクラス間の継承関
係を維持したまま、一括して通信される必要がある。
Further, as a third case, each object forming a group having a client-supplier relationship as in the first case is an object of a class derived from another parent class as in the second case. In many cases. In such a case, it is necessary for the objects in the group to be communicated collectively while maintaining the relationship between the objects and maintaining the inheritance relationship between the classes related to the objects. .

【0067】以上の第1〜第3の場合のそれぞれの場合
におけるostrstreamオブジェクト又はistrstreamオブジ
ェクトを介した共有メモリに対するオブジェクトの入出
力処理の詳細について説明する。第1の場合の共有メモリに対するオブジェクトの入出力
処理 まず、第1の場合として、クライアント・サプライヤ関
係を有するグループを形成している各オブジェクトに含
まれるメンバの、ostrstreamオブジェクト又はistrstre
amオブジェクトを介した共有メモリに対する入出力処理
について、図7及び図8を使用して説明する。
The details of the input / output processing of the object to the shared memory via the ostrstream object or the istrstream object in each of the first to third cases will be described. Object I / O to / from shared memory in first case
Processing First, as a first case, an ostrstream object or istrstre of a member included in each object forming a group having a client-supplier relationship.
Input / output processing to / from the shared memory via the am object will be described with reference to FIGS.

【0068】図7の例では、4つのデータメンバ(変
数)を有するShSchemaと呼ばれるオブジェクトが、それ
ぞれ3つ及び1つのデータメンバを有するShArray と呼
ばれる2つのオブジェクトを所有し、更に、3つのデー
タメンバを有するShArray オブジェクトが、それぞれ3
つのデータメンバを有するShRecordと呼ばれる2つのオ
ブジェクトを所有しているという、クライアント・サプ
ライヤ関係が示されている。
In the example of FIG. 7, an object called ShSchema having four data members (variables) owns two objects called ShArray having three and one data members, respectively, and further has three data members. ShArray objects with
A client-supplier relationship is shown that owns two objects called ShRecord with one data member.

【0069】まず、クライアントタスク側では、上述の
オブジェクトのグループが、前述した図4S7〜S9に
対応する以下に示される処理により、各グループに含ま
れるメンバを、自立的にostrstreamオブジェクトを介し
て共有メモリに出力する。
First, on the client task side, the above-mentioned group of objects automatically shares members included in each group via the ostrstream object by the following processing corresponding to FIGS. 4S7 to S9 described above. Output to memory.

【0070】始めに、前述した図4のS1に対応する処
理として、アプリケーションオブジェクトNdbAppは、送
信対象となるオブジェクトのグループとして、図7に示
されるShSchemaオブジェクト、ShArray オブジェクト、
及びShRecordオブジェクトからなるグループを生成す
る。
First, as a process corresponding to S1 of FIG. 4 described above, the application object NdbApp is a group of objects to be transmitted as a group of ShSchema objects, ShArray objects, and
And a group of ShRecord objects.

【0071】次に、前述した図4のS3に対応する処理
として、ShSchemaオブジェクトへのポインタがSenderオ
ブジェクトにより所有される。続いて、前述の図4S6
に対応する処理として、アプリケーション用MainUserWi
ndowオブジェクトが所有するSenderオブジェクトのメン
バ関数ExSend(Sender.ExSend )は、Senderオブジェク
トが所有する送信対象オブジェクトShSchemaに対して、
メッセージprintOn を送信する。
Next, as a process corresponding to S3 in FIG. 4 described above, a pointer to the ShSchema object is owned by the Sender object. Subsequently, FIG.
As a process corresponding to, MainUserWi for application
The member function ExSend (Sender.ExSend) of the Sender object owned by the ndow object is for the transmission target object ShSchema owned by the Sender object.
Send the message printOn.

【0072】これを受けて、ShSchemaオブジェクトは、
このメッセージに対応するメンバ関数printOn (ShSche
ma.printOn)を実行する(図7及び図8のS1)。メン
バ関数ShSchema.printOnは、まず、ostrstreamオブジェ
クトを介して、図8に示される共有メモリのアドレスA
0に、識別子“ShSchema”を書き込んだ後、共有メモリ
のアドレスA1とA2に、ShSchemaオブジェクトの1番
目及び2番目の非集合変数(図7)を書き込む。続い
て、メンバ関数ShSchema.printOnは、ShSchemaオブジェ
クトの3番目のデータメンバが集合変数であるオブジェ
クトポインタであることを認識することにより、そのポ
インタで指示される#1のShArray オブジェクトに対し、
メッセージprintOn を送信する。
In response to this, the ShSchema object becomes
The member function printOn (ShSche
ma.printOn) (S1 in FIGS. 7 and 8). The member function ShSchema.printOn firstly receives the address A of the shared memory shown in FIG. 8 through the ostrstream object.
After writing the identifier “ShSchema” to 0, the first and second non-set variables of the ShSchema object (FIG. 7) are written to the addresses A1 and A2 of the shared memory. Subsequently, the member function ShSchema.printOn recognizes that the third data member of the ShSchema object is an object pointer which is a set variable, and then, for the # 1 ShArray object indicated by the pointer,
Send the message printOn.

【0073】これを受けて、#1のShArray オブジェクト
は、このメッセージに対応するメンバ関数printOn (Sh
Array.printOn )を実行する(図7及び図8のS2)。
メンバ関数ShArray.printOn は、ostrstreamオブジェク
トを介して、図8に示される共有メモリのアドレスA3
に、識別子“ShArray ”を書き込んだ後、共有メモリの
アドレスA4に、#1のShArray オブジェクトの1番目の
非集合変数として配列個数(=2)(図7)を書込む。
続いて、メンバ関数ShArray.printOn は、#1のShArray
オブジェクトの2番目のデータメンバが集合変数である
オブジェクトポインタであることを認識することによっ
て、そのポインタで指示される#1のShRecordオブジェク
トに対して、メッセージprintOn を送信する。
In response to this, the ShArray object # 1 sets the member function printOn (Sh
Array.printOn) is executed (S2 in FIGS. 7 and 8).
The member function ShArray.printOn is transmitted via the ostrstream object to the address A3 of the shared memory shown in FIG.
After the identifier “ShArray” is written into the array, the number of arrays (= 2) (FIG. 7) is written into the address A4 of the shared memory as the first non-set variable of the ShArray object # 1.
Next, the member function ShArray.printOn
By recognizing that the second data member of the object is an object pointer which is a set variable, a message printOn is transmitted to the # 1 ShRecord object indicated by the pointer.

【0074】これを受けて、#1のShRecordオブジェクト
は、このメッセージに対応するメンバ関数printOn (Sh
Record.printOn)を実行する(図7及び図8のS3)。
メンバ関数ShRecord.printOnは、ostrstreamオブジェク
トを介して、図8に示される共有メモリのアドレスA5
に、識別子“ShRecord”を書き込んだ後、共有メモリの
アドレスA6〜A8に、#1のShRecordオブジェクトの3
つのデータメンバ(図7)を書き込んで、処理を終了す
る。この結果、#1のShRecordオブジェクトにメッセージ
を送信した#1のShArray オブジェクトのメンバ関数prin
tOn に、制御がリターンする。
In response to this, the ShRecord object # 1 sets the member function printOn (Sh
Record.printOn) (S3 in FIGS. 7 and 8).
The member function ShRecord.printOn is transmitted via the ostrstream object to the address A5 of the shared memory shown in FIG.
After writing the identifier “ShRecord” into the shared memory, the address of the ShRecord object # 1
One data member (FIG. 7) is written, and the process ends. As a result, member function prin of # 1 ShArray object that sent the message to # 1 ShRecord object
At tOn, control returns.

【0075】#1のShArray オブジェクトのメンバ関数pr
intOn は、#1のShArray オブジェクトにおいて、#1のSh
Recordオブジェクトにメッセージを送信したときのデー
タメンバの次の3番目のデータメンバが集合変数である
オブジェクトポインタであることを認識することによ
り、そのポインタで指示される#2のShRecordオブジェク
トに対し、メッセージprintOn を送信する。
Member function pr of # 1 ShArray object
intOn is the # 1 ShArray object in the # 1 ShArray object.
By recognizing that the third data member next to the data member when sending the message to the Record object is an object pointer which is a set variable, the message is sent to the # 2 ShRecord object indicated by the pointer. Send printOn.

【0076】これを受け、#2のShRecordオブジェクト
は、このメッセージに対応するメンバ関数printOn (Sh
Record.printOn)を実行する(図7及び図8のS4)。
メンバ関数ShRecord.printOnは、ostrstreamオブジェク
トを介して、図8に示される共有メモリのアドレスA9
に識別子“ShRecord”を書き込んだ後、共有メモリのア
ドレスA10〜A12に、#2のShRecordオブジェクトの
3つのデータメンバ(図7)を書き込んで、処理を終了
する。この結果、#2のShRecordオブジェクトにメッセー
ジを送信した#1のShArray オブジェクトのメンバ関数pr
intOn に、制御がリターンする。
In response to this, the ShRecord object of # 2 sets the member function printOn (Sh
Record.printOn) (S4 in FIGS. 7 and 8).
The member function ShRecord.printOn is transmitted via the ostrstream object to the address A9 of the shared memory shown in FIG.
After writing the identifier “ShRecord” into the shared memory, the three data members (FIG. 7) of the # 2 ShRecord object are written to the addresses A10 to A12 of the shared memory, and the process ends. As a result, the member function pr of the ShArray object # 1 that sent the message to the ShRecord object # 2
Control returns to intOn.

【0077】#1のShArray オブジェクトのメンバ関数pr
intOn は、#1のShArray オブジェクトにおいて、#2のSh
Recordオブジェクトにメッセージを送信したときのデー
タメンバの次に処理すべきデータメンバがないことを認
識することにより、そのまま処理を終了する。この結
果、#1のShArray オブジェクトにメッセージを送信した
ShSchemaオブジェクトのメンバ関数printOn に、制御が
リターンする。
The member function pr of the ShArray object # 1
intOn is the ShArray object of # 2 in the ShArray object of # 1.
By recognizing that there is no data member to be processed next to the data member at the time when the message was transmitted to the Record object, the processing ends as it is. As a result, a message was sent to the ShArray object # 1
Control returns to the ShSchema object member function printOn.

【0078】ShSchemaオブジェクトのメンバ関数printO
n は、ShSchemaオブジェクトにおいて、#1のShArray オ
ブジェクトにメッセージを送信したときのデータメンバ
の次の4番目のデータメンバが集合変数であるオブジェ
クトポインタであることを認識することによって、その
ポインタで指示される#2のShArray オブジェクトに対
し、メッセージprintOn を送信する。
The member function printO of the ShSchema object
n is indicated by the pointer in the ShSchema object by recognizing that the fourth data member following the data member when the message is transmitted to the ShArray object # 1 is an object pointer that is a set variable. Send message printOn to # 2 ShArray object.

【0079】これを受け、#2のShArray オブジェクト
は、このメッセージに対応するメンバ関数printOn (Sh
Array.printOn )を実行する(図7及び図8のS5)。
メンバ関数ShArray.printOn は、ostrstreamオブジェク
トを介して、図8に示される共有メモリのアドレスA1
3に識別子“ShArray ”を書き込んだ後、共有メモリの
アドレスA14に、#2のShArray オブジェクトの1番目
の非集合変数として配列個数(=0)(図7)を書込
む。続いて、メンバ関数ShArray.printOn は、#2のShAr
ray オブジェクトにこれ以上データメンバがないことを
認識することによって、処理を終了する。この結果、#2
のShArray オブジェクトにメッセージを送信したShSche
maオブジェクトのメンバ関数printOn に、制御がリター
ンする。
In response to this, the ShArray object of # 2 sets the member function printOn (Sh
Array.printOn) is executed (S5 in FIGS. 7 and 8).
The member function ShArray.printOn is transmitted via the ostrstream object to the address A1 of the shared memory shown in FIG.
After writing the identifier "ShArray" in No. 3, the array number (= 0) (FIG. 7) is written as the first non-set variable of the ShArray object # 2 at address A14 of the shared memory. Next, the member function ShArray.printOn
The process ends by recognizing that the ray object has no more data members. As a result, # 2
ShSche that sent a message to the ShArray object of
Control returns to the member function printOn of the ma object.

【0080】ShSchemaオブジェクトのメンバ関数printO
n は、ShSchemaオブジェクトにおいて、#2のShArray オ
ブジェクトにメッセージを送信したときのデータメンバ
の次に処理すべきデータメンバがないことを認識するこ
とにより、そのまま処理を終了する。この結果、ShSche
maオブジェクトにメッセージを送信したSenderオブジェ
クトのメンバ関数ExSendに、制御がリターンする。
The member function printO of the ShSchema object
n recognizes that there is no data member to be processed next to the data member when the message is transmitted to the ShArray object of # 2 in the ShSchema object, and ends the processing as it is. As a result, ShSche
Control returns to the member function ExSend of the Sender object that sent the message to the ma object.

【0081】以上のようにして、クライアントタスクに
おいて、ShSchemaオブジェクト、2つのShArray オブジ
ェクト、及び2つのShRecordオブジェクトからなるオブ
ジェクトのグループのostrstreamオブジェクトを介した
共有メモリへの自立的な出力が終了する。
As described above, in the client task, the autonomous output to the shared memory via the ostrstream object of the group of objects including the ShSchema object, the two ShArray objects, and the two ShRecord objects is completed.

【0082】次に、サーバタスク側では、上述の共有メ
モリの内容が、前述した図5のS14に対応する処理に
よってistrstreamオブジェクトに読み込まれた後、前述
した図5のS15に対応する以下に示される処理によっ
て、istrstreamオブジェクトの内容を格納すべきオブジ
ェクトが自動的に生成され、それらのオブジェクトのコ
ンストラクタによって、istrstreamオブジェクトに格納
されているデータが、自立的にそれらのオブジェクトに
読み込まれる まず、前述した図5のS15に対応する処理として、サ
ーバ用MainUserWindowオブジェクトが所有するReceiver
オブジェクトは、istrstreamオブジェクトに読み込まれ
たデータの先頭に設定されている識別子が“ShSchema”
であることを判別することにより、始めに受信されるべ
きオブジェクトがShSchemaオブジェクトであることを判
別する。この結果、Receiverオブジェクトは、図7に示
されるShSchemaオブジェクトを生成する。
Next, on the server task side, after the contents of the above-mentioned shared memory are read into the istrstream object by the processing corresponding to the above-described S14 of FIG. 5, the following contents corresponding to the above-described S15 of FIG. Objects that should store the contents of the istrstream object are automatically generated, and the data stored in the istrstream object is automatically read into those objects by the constructor of those objects. As processing corresponding to S15 in FIG. 5, a Receiver owned by the server MainUserWindow object
The object has the identifier “ShSchema” set at the beginning of the data read into the istrstream object.
, It is determined that the object to be received first is a ShSchema object. As a result, the Receiver object generates a ShSchema object shown in FIG.

【0083】そして、このShSchemaオブジェクトが生成
されるときに、その生成時に自動的に実行されるそのメ
ンバ関数であるコンストラクタが、istrstreamオブジェ
クトのアドレスA1とA2に格納されている非集合変数
を、生成されたShSchemaオブジェクトに、その1番目と
2番目のデータメンバとして格納する(図7参照)。こ
の処理は、図8のS1の処理とデータの方向が逆の処理
である。続いて、このコンストラクタは、istrstreamオ
ブジェクトのアドレスA3に識別子“ShArray”が格納
されていることを認識することにより、図7に示される
#1のShArray オブジェクトを生成する。
When the ShSchema object is generated, the constructor, which is a member function automatically executed at the time of generation, generates the non-set variables stored at the addresses A1 and A2 of the istrstream object. The first and second data members are stored in the created ShSchema object (see FIG. 7). This process is a process in which the direction of data is opposite to the process of S1 in FIG. Subsequently, the constructor recognizes that the identifier “ShArray” is stored at the address A3 of the istrstream object, and thereby, as shown in FIG.
Create ShArray object of # 1.

【0084】そして、この#1のShArray オブジェクトが
生成されるときに、そのコンストラクタは、まず、ShSc
hemaオブジェクトの3番目のデータメンバとして、生成
された#1のShArray オブジェクトへのオブジェクトポイ
ンタを格納する(図7参照)。次に、このコンストラク
タは、istrstreamオブジェクトのアドレスA4に格納さ
れている非集合変数である配列個数(=2)を、生成さ
れた#1のShArray オブジェクトに、その1番目のデータ
メンバとして格納する(図7参照)。この処理は、図8
のS2の処理とデータの方向が逆の処理である。続い
て、上述のコンストラクタは、istrstreamオブジェクト
のアドレスA5に識別子“ShRecord”が格納されている
ことを認識することによって、図7に示される#1のShRe
cordオブジェクトを生成する。
When the # 1 ShArray object is generated, the constructor first executes the ShSc
The object pointer to the generated # 1 ShArray object is stored as the third data member of the hema object (see FIG. 7). Next, this constructor stores the number of arrays (= 2) which is a non-set variable stored at the address A4 of the istrstream object as the first data member in the generated # 1 ShArray object ( (See FIG. 7). This processing is shown in FIG.
Is a process in which the direction of data is opposite to the process of S2. Subsequently, the above-described constructor recognizes that the identifier “ShRecord” is stored at the address A5 of the istrstream object, and thereby executes the ShRe of # 1 shown in FIG.
Create a cord object.

【0085】そして、この#1のShRecordオブジェクトが
生成されるときに、そのコンストラクタは、まず、#1の
ShArray オブジェクトの2番目のデータメンバとして、
生成された#1のShRecordオブジェクトへのオブジェクト
ポインタを格納する(図7参照)。次に、このコンスト
ラクタは、istrstreamオブジェクトのアドレスA6〜A
8に格納されているデータメンバを、生成された#1のSh
Recordオブジェクトに、その1番目〜3番目のデータメ
ンバとして格納する(図7参照)。この処理は、図8の
S3の処理とデータの方向が逆の処理である。そして、
上記コンストラクタは、istrstreamオブジェクトのアド
レスA9に自オブジェクトのクラスと同じクラスのオブ
ジェクトを示す識別子“ShRecord”が格納されているこ
とを認識することにより、処理を終了する。この結果、
#1のShRecordオブジェクトを生成させた#1のShArray オ
ブジェクトのコンストラクタに、制御がリターンする。
When the # 1 ShRecord object is generated, the constructor first
As the second data member of the ShArray object,
The object pointer to the generated # 1 ShRecord object is stored (see FIG. 7). Next, this constructor calculates the addresses A6 to A of the istrstream object.
8 is replaced with the generated # 1 Sh
The first to third data members are stored in the Record object (see FIG. 7). This process is a process in which the direction of data is opposite to the process of S3 in FIG. And
The constructor ends the process by recognizing that the identifier "ShRecord" indicating the object of the same class as the class of the self object is stored in the address A9 of the istrstream object. As a result,
Control returns to the constructor of the # 1 ShArray object that generated the # 1 ShRecord object.

【0086】#1のShArray オブジェクトのコンストラク
タは、istrstreamオブジェクトのアドレスA9に識別子
“ShRecord”が格納されていることを認識することによ
り、図7に示される#2のShRecordオブジェクトを生成す
る。
The # 1 ShArray object constructor generates the # 2 ShRecord object shown in FIG. 7 by recognizing that the identifier "ShRecord" is stored at the address A9 of the istrstream object.

【0087】そして、この#2のShRecordオブジェクトが
生成されるときに、そのコンストラクタは、まず、#1の
ShArray オブジェクトの3番目のデータメンバとして、
生成された#2のShRecordオブジェクトへのオブジェクト
ポインタを格納する(図7参照)。次に、このコンスト
ラクタは、istrstreamオブジェクトのアドレスA10〜
A12に格納されているデータメンバを、生成された#2
のShRecordオブジェクトに、その1番目〜3番目のデー
タメンバとして格納する(図7参照)。この処理は、図
8のS4の処理とデータの方向が逆の処理である。そし
て、上記コンストラクタは、istrstreamオブジェクトの
アドレスA13に自オブジェクトのクラスより上の階層
のクラスのオブジェクトを示す識別子“ShArray ”が格
納されていることを認識することにより、処理を終了す
る。この結果、#2のShRecordオブジェクトを生成させた
#1のShArray オブジェクトのコンストラクタに、制御が
リターンする。
When the # 2 ShRecord object is generated, the constructor first
As the third data member of the ShArray object,
The object pointer to the generated # 2 ShRecord object is stored (see FIG. 7). Next, this constructor generates the address A10 of the istrstream object.
The data member stored in A12 is changed to the generated # 2
Is stored as the first to third data members in the ShRecord object (see FIG. 7). This process is a process in which the direction of data is opposite to the process of S4 in FIG. Then, the constructor recognizes that the address "A13" of the istrstream object stores the identifier "ShArray" indicating the object of the class above the class of the own object, and ends the process. As a result, the # 2 ShRecord object was created
Control returns to the constructor of the # 1 ShArray object.

【0088】#1のShArray オブジェクトコンストラクタ
は、istrstreamオブジェクトのアドレスA13に自オブ
ジェクトのクラスと同じクラスのオブジェクトを示す識
別子“ShArray ”が格納されていることを認識すること
により、そのまま処理を終了する。この結果、#1のShAr
ray オブジェクトを生成させたShSchemaオブジェクトの
コンストラクタに、制御がリターンする。
The # 1 ShArray object constructor recognizes that the address "A13" of the istrstream object stores an identifier "ShArray" indicating an object of the same class as the own object, and terminates the processing as it is. As a result, # 1 ShAr
Control returns to the constructor of the ShSchema object that created the ray object.

【0089】ShSchemaオブジェクトのコンストラクタ
は、istrstreamオブジェクトのアドレスA13に識別子
“ShArray ”が格納されていることを認識することによ
って、図7に示される#2のShArray オブジェクトを生成
する。
The constructor of the ShSchema object recognizes that the identifier "ShArray" is stored at the address A13 of the istrstream object, and generates the # 2 ShArray object shown in FIG.

【0090】そして、この#2のShArray オブジェクトが
生成されるときに、そのコンストラクタは、まず、ShSc
hemaオブジェクトの4番目のデータメンバとして、生成
された#2のShArray オブジェクトへのオブジェクトポイ
ンタを格納する(図7参照)。次に、このコンストラク
タは、istrstreamオブジェクトのアドレスA14に格納
されている非集合変数である配列個数(=0)を、生成
された#2のShArray オブジェクトに、その1番目のデー
タメンバとして格納する(図7参照)。この処理は、図
8のS5の処理とデータの方向が逆の処理である。そし
て、上記コンストラクタは、istrstreamオブジェクトの
アドレスA14以降にデータがないことを認識すること
により、処理を終了する。この結果、#2のShArray オブ
ジェクトを生成させたShSchemaオブジェクトのコンスト
ラクタに制御がリターンする。
When the # 2 ShArray object is generated, the constructor first executes the ShSc
The object pointer to the generated # 2 ShArray object is stored as the fourth data member of the hema object (see FIG. 7). Next, this constructor stores the number of arrays (= 0) which is a non-set variable stored at the address A14 of the istrstream object as the first data member in the generated # 2 ShArray object ( (See FIG. 7). This process is a process in which the direction of the data is opposite to the process of S5 in FIG. Then, the constructor recognizes that there is no data after the address A14 of the istrstream object, and ends the processing. As a result, control returns to the constructor of the ShSchema object that generated the ShArray object # 2.

【0091】ShSchemaオブジェクトのコンストラクタ
は、istrstreamオブジェクトのアドレスA14以降にデ
ータがないことを認識することにより、そのまま処理を
終了する。この結果、ShSchemaオブジェクトを生成させ
たReceiverオブジェクトに、制御がリターンする。
The constructor of the ShSchema object recognizes that there is no data after the address A14 of the istrstream object, and ends the processing as it is. As a result, control returns to the Receiver object that generated the ShSchema object.

【0092】上述のようにして、サーバタスクにおい
て、ShSchemaオブジェクト、2つのShArray オブジェク
ト、及び2つのShRecordオブジェクトからなるオブジェ
クトのグループの受信が終了する。第2の場合の共有メモリに対するオブジェクトの入出力
処理 次に、第2の場合として、他の親クラスから派生したク
ラスのオブジェクトに含まれる各クラスに対応するメン
バのostrstreamオブジェクト又はistrstreamオブジェク
トを介した共有メモリに対する入出力処理について、図
9〜図11を使用して説明する。
As described above, in the server task, the reception of the group of objects including the ShSchema object, the two ShArray objects, and the two ShRecord objects ends. Object I / O to / from shared memory in second case
Processing Next, as a second case, the input / output processing to / from the shared memory via the ostrstream object or the istrstream object of the member corresponding to each class included in the object of the class derived from another parent class will be described with reference to FIGS. 11 will be described.

【0093】図9の例では、ShSchemaと呼ばれるオブジ
ェクトを生成するためのShSchemaクラスはShObjectと呼
ばれる親のクラスから派生し、ShObjectクラスはTObjec
t と呼ばれる親のクラスから派生している。即ち、ShSc
hemaクラスとShObjectクラスは派生クラスであり、TObj
ect クラスは基底クラスである。このとき、ShSchemaク
ラス、ShObjectクラス、及びTObject クラスの各メンバ
関数printOn は、オーバーロードされており、それぞれ
のクラスに適した機能が定義されている。
In the example of FIG. 9, the ShSchema class for generating an object called ShSchema is derived from a parent class called ShObject, and the ShObject class is TObjec
It derives from a parent class called t. That is, ShSc
The hema and ShObject classes are derived classes, and TObj
The ect class is a base class. At this time, the member functions printOn of the ShSchema class, ShObject class, and TObject class are overloaded, and a function suitable for each class is defined.

【0094】図9に示されるクラス階層構造の下で、Sh
SchemaクラスのオブジェクトであるShSchemaオブジェク
トが生成される場合、ShSchemaオブジェクトには、図1
0に示されるように、TObject クラスで定義されている
メンバと、ShObjectクラスで定義されているメンバと、
ShSchemaクラスで定義されているメンバとが含まれる。
Under the class hierarchy shown in FIG.
When a ShSchema object, which is an object of the Schema class, is generated, the ShSchema object includes, as shown in FIG.
0, members defined in the TObject class, members defined in the ShObject class,
Includes members defined in ShSchema class.

【0095】図10に示されるデータ構造を有するShSc
hemaオブジェクトの通信が行われる場合の動作につい
て、以下に、図11を使用して説明する。まず、クライ
アントタスク側では、ShSchemaオブジェクトが、前述し
た図4のS7〜S9に対応する以下に示される処理によ
って、TObject クラス、ShObjectクラス、及びShSchema
クラスのそれぞれのクラスに対応するShSchemaオブジェ
クト内のメンバを、自立的にostrstreamオブジェクトを
介して共有メモリに出力する。
ShSc having the data structure shown in FIG.
The operation when hema object communication is performed will be described below with reference to FIG. First, on the client task side, the ShSchema object is converted into a TObject class, a ShObject class, and a ShSchema object by the following processing corresponding to S7 to S9 in FIG.
The members in the ShSchema object corresponding to each class of the class are independently output to the shared memory via the ostrstream object.

【0096】始めに、前述した図4S1に対応する処理
として、アプリケーションオブジェクトNdbAppは、送信
対象となるオブジェクトとして、図10に示されるShSc
hemaオブジェクトを生成する。
First, as a process corresponding to FIG. 4S1 described above, the application object NdbApp is used as an object to be transmitted, as shown in FIG.
Create a hema object.

【0097】次に、前述した図4のS3に対応する処理
として、ShSchemaオブジェクトへのポインタがSenderオ
ブジェクトにより所有される。続いて、前述の図4S6
に対応する処理として、アプリケーション用MainUserWi
ndowオブジェクトが所有するSenderオブジェクトのメン
バ関数ExSend(Sender.ExSend )は、Senderオブジェク
トが所有する送信対象オブジェクトShSchemaに対して、
メッセージprintOn を送信する。
Next, as a process corresponding to S3 in FIG. 4, the pointer to the ShSchema object is owned by the Sender object. Subsequently, FIG.
As a process corresponding to, MainUserWi for application
The member function ExSend (Sender.ExSend) of the Sender object owned by the ndow object is for the transmission target object ShSchema owned by the Sender object.
Send the message printOn.

【0098】これを受け、ShSchemaオブジェクトは、こ
のメッセージに対応するメンバ関数printOn (ShSchem
a.printOn)を実行する(図9及び図11のS1)。メ
ンバ関数ShSchema.printOnは、図11のS1に示される
ように、まず、ostrstreamオブジェクトを介して、共有
メモリのアドレスA0に、識別子“ShSchema”を書き込
んだ後に、ShSchemaオブジェクトを生成させたShSchema
クラスがShObjectクラスから派生していることを認識す
ることによって、ShObjectクラスで定義されているメン
バ関数printOn (ShObject.printOn)をコールする(図
9及び図11のS2)。
In response, the ShSchema object sets the member function printOn (ShSchem
a.printOn) (S1 in FIGS. 9 and 11). As shown in S1 of FIG. 11, the member function ShSchema.printOn first writes the identifier “ShSchema” at the address A0 of the shared memory via the ostrstream object, and then generates the ShSchema object.
By recognizing that the class is derived from the ShObject class, it calls the member function printOn (ShObject.printOn) defined in the ShObject class (S2 in FIGS. 9 and 11).

【0099】メンバ関数ShObject.printOnは、図11S
2に示されるように、まず、ostrstreamオブジェクトを
介して、共有メモリのアドレスA1に、識別子“ShObje
ct”を書き込んだ後に、ShObjectクラスがTObject クラ
スから派生していることを認識することで、TObject ク
ラスで定義されているメンバ関数printOn (TObject.pr
intOn )をコールする(図9及び図11のS3)。
The member function ShObject.printOn is shown in FIG.
As shown in FIG. 2, first, the identifier “ShObje” is added to the address A1 of the shared memory via the ostrstream object.
After writing “ct”, it recognizes that the ShObject class is derived from the TObject class, so the member function printOn (TObject.pr
intOn) (S3 in FIGS. 9 and 11).

【0100】メンバ関数TObject.printOn は、図11S
3に示されるように、まず、ostrstreamオブジェクトを
介して、共有メモリのアドレスA2に、識別子“TObjec
t ”を書き込んだ後、アドレスA3以降に、TObject ク
ラスに対応するShSchemaオブジェクト内のメンバを書き
込む。その後、メンバ関数TObject.printOn の処理が終
了して、このメンバ関数をコールしたメンバ関数ShObje
ct.printOnに制御がリターンする(図9及び図11のS
4)。
The member function TObject.printOn is shown in FIG. 11S
As shown in FIG. 3, first, the identifier “TObjec” is added to the address A2 of the shared memory via the ostrstream object.
After writing "t", the member in the ShSchema object corresponding to the TObject class is written after address A3. After that, the processing of the member function TObject.printOn is completed, and the member function ShObje which called this member function is called.
Control returns to ct.printOn (S in FIGS. 9 and 11).
4).

【0101】メンバ関数ShObject.printOnは、図11の
S4に示されるように、ostrstreamオブジェクトを介し
て、共有メモリのアドレスAi 以降に、ShObjectクラス
に対応するShSchemaオブジェクト内のメンバを書き込
む。その後、メンバ関数ShObject.printOnの処理が終了
して、このメンバ関数をコールしたメンバ関数ShSchem
a.printOnに制御がリターンする(図9及び図11のS
5)。
The member function ShObject.printOn writes the member in the ShSchema object corresponding to the ShObject class after the address Ai of the shared memory via the ostrstream object, as shown in S4 of FIG. After that, the processing of the member function ShObject.printOn ends, and the member function ShSchem that called this member function
The control returns to a.printOn (S in FIGS. 9 and 11).
5).

【0102】メンバ関数ShSchema.printOnは、図11S
5に示されるように、ostrstreamオブジェクトを介し
て、共有メモリのアドレスAj 以降に、ShSchemaクラス
に対応するShSchemaオブジェクト内のメンバを書き込
む。その後、メンバ関数ShSchema.printOnの処理が終了
し、ShSchemaオブジェクトにメッセージを送信したSend
erオブジェクトのメンバ関数ExSendに制御がリターンす
る。
The member function ShSchema.printOn is shown in FIG.
As shown in FIG. 5, a member in the ShSchema object corresponding to the ShSchema class is written via the ostrstream object after the address Aj of the shared memory. After that, the processing of the member function ShSchema.printOn ends, and Send that sends the message to the ShSchema object
Control returns to the member function ExSend of the er object.

【0103】以上のようにして、クライアントタスクに
おいて、派生クラスShSchemaから生成されたShSchemaオ
ブジェクトのostrstreamオブジェクトを介した共有メモ
リへの自立的な出力が終了する。
As described above, in the client task, the independent output of the ShSchema object generated from the derived class ShSchema to the shared memory via the ostrstream object ends.

【0104】次に、サーバタスク側では、上述の共有メ
モリの内容が、前述した図5のS14に対応する処理に
よってistrstreamオブジェクトに読み込まれた後、前述
した図5のS15に対応する以下に示される処理によっ
て、istrstreamオブジェクトの内容を格納すべきShSche
maオブジェクトが自動的に生成され、そのオブジェクト
に含まれるTObject クラス、ShObjectクラス、及びShSc
hemaクラスの各コンストラクタによって、istrstreamオ
ブジェクトに格納されているデータが、自立的にShSche
maオブジェクトに読み込まれる まず、前述した図5S15に対応する処理として、サー
バ用MainUserWindowオブジェクトが所有するReceiverオ
ブジェクトは、istrstreamオブジェクトに読み込まれた
データの先頭に設定されている識別子が“ShSchema”で
あることを判別することにより、受信されるべきオブジ
ェクトがShSchemaオブジェクトであることを判別する。
この結果、Receiverオブジェクトは、図10に示される
ShSchemaオブジェクトを生成する。
Next, on the server task side, after the contents of the above-mentioned shared memory are read into the istrstream object by the processing corresponding to S14 of FIG. 5, the following processing corresponding to S15 of FIG. ShSche to store the contents of the istrstream object
The ma object is automatically created and the TObject class, ShObject class, and ShSc contained in the object
The data stored in the istrstream object is autonomously converted by ShSche by each constructor of the hema class.
First, as a process corresponding to FIG. 5S15 described above, the receiver object owned by the server MainUserWindow object has the identifier “ShSchema” set at the head of the data read into the istrstream object. Is determined, the object to be received is a ShSchema object.
As a result, the Receiver object is shown in FIG.
Create ShSchema object.

【0105】そして、このShSchemaオブジェクトが生成
されるときに、その生成時に自動的に実行されるそのメ
ンバ関数であるコンストラクタが起動される。このコン
ストラクタは、istrstreamオブジェクトのアドレスA1
に格納されているデータがShSchemaクラスを派生させた
ShObjectクラスを示す識別子“ShObject”であることを
認識することにより、ShObjectクラスで定義されている
コンストラクタをコールする。
When the ShSchema object is generated, a constructor which is a member function automatically executed at the time of the generation is started. This constructor uses the address A1 of the istrstream object.
Data stored in derive ShSchema class
By recognizing that the identifier is "ShObject" indicating the ShObject class, the constructor defined by the ShObject class is called.

【0106】ShObjectクラスで定義されているコンスト
ラクタは、istrstreamオブジェクトのアドレスA2に格
納されているデータがShObjectクラスを派生させたTObj
ectクラスを示す識別子“TObject ”であることを認識
することにより、そのまま、TObject クラスで定義され
ているコンストラクタをコールする。
The constructor defined in the ShObject class is that the data stored in the address A2 of the istrstream object is the TObj derived from the ShObject class.
By recognizing the identifier "TObject" indicating the ect class, the constructor defined in the TObject class is called as it is.

【0107】TObject クラスで定義されているコンスト
ラクタは、istrstreamオブジェクトのアドレスA3以降
に格納されているTObject クラスに対応するメンバを、
生成されたShSchemaオブジェクトに格納する(図10参
照)。この処理は、図11のS3の処理とデータの方向
が逆の処理である。その後、TObject クラスで定義され
ているコンストラクタの処理が終了して、そのコンスト
ラクタをコールしたShObjectクラスで定義されているコ
ンストラクタに制御がリターンする。
The constructor defined by the TObject class includes a member corresponding to the TObject class stored after the address A3 of the istrstream object.
It is stored in the generated ShSchema object (see FIG. 10). This process is a process in which the direction of the data is opposite to the process of S3 in FIG. After that, the processing of the constructor defined in the TObject class ends, and control returns to the constructor defined in the ShObject class that called the constructor.

【0108】ShObjectクラスで定義されているコンスト
ラクタは、istrstreamオブジェクトのアドレスAi 以降
に格納されているShObjectクラスに対応するメンバを、
生成されたShSchemaオブジェクトに格納する(図10参
照)。この処理は、図11のS4の処理とデータの方向
が逆の処理である。その後、ShObjectクラスで定義され
ているコンストラクタの処理が終了して、そのコンスト
ラクタをコールしたShSchemaクラスで定義されているコ
ンストラクタに制御がリターンする。
The constructor defined by the ShObject class includes a member corresponding to the ShObject class stored after the address Ai of the istrstream object,
It is stored in the generated ShSchema object (see FIG. 10). This process is a process in which the direction of data is opposite to the process of S4 in FIG. Thereafter, the processing of the constructor defined in the ShObject class ends, and control returns to the constructor defined in the ShSchema class that called the constructor.

【0109】ShSchemaクラスで定義されているコンスト
ラクタは、istrstreamオブジェクトのアドレスAj 以降
に格納されているShSchemaクラスに対応するメンバを、
生成されたShSchemaオブジェクトに格納する(図10参
照)。この処理は、図11のS5の処理とデータの方向
が逆の処理である。その後、ShSchemaクラスで定義され
ているコンストラクタの処理が終了して、ShSchemaオブ
ジェクトを生成させたReceiverオブジェクトに、制御が
リターンする。
The constructor defined in the ShSchema class includes a member corresponding to the ShSchema class stored after the address Aj of the istrstream object.
It is stored in the generated ShSchema object (see FIG. 10). This process is a process in which the data direction is opposite to the process of S5 in FIG. After that, the processing of the constructor defined in the ShSchema class ends, and control returns to the Receiver object that generated the ShSchema object.

【0110】上述のようにして、サーバタスクにおい
て、ShSchemaオブジェクトに含まれるTObject クラス、
ShObjectクラス、及びShSchemaクラスのそれぞれに対応
するメンバの受信が終了する。
As described above, in the server task, the TObject class included in the ShSchema object,
The reception of the members corresponding to each of the ShObject class and the ShSchema class ends.

【0111】以上説明した例では、図9に示されるよう
に、ShSchemaクラス及びShObjectクラスは、それぞれ1
つの親クラスから派生されているが、これらのクラスは
2つ以上の親クラスから派生されてもよい。この場合に
は、各親クラスのメンバ関数printOn 及びコンストラク
タが順次実行されることにより、それらの親クラスで定
義されているメンバが共有メモリに対して入出力され
る。第3の場合の共有メモリに対するオブジェクトの入出力
処理 最後に、第3の場合として、他の親クラスから派生した
クラスのオブジェクトを含み、クライアント・サプライ
ヤ関係を有するグループを形成している各オブジェクト
に含まれるメンバの、ostrstreamオブジェクト又はistr
streamオブジェクトを介した共有メモリに対する入出力
処理について説明する。
In the example described above, as shown in FIG. 9, the ShSchema class and the ShObject class are each one.
Although derived from one parent class, these classes may be derived from more than one parent class. In this case, the member function printOn and constructor of each parent class are sequentially executed, so that members defined in those parent classes are input / output to / from the shared memory. Object I / O to / from shared memory in third case
Processing Finally, as in the third, the members included in each object includes object classes derived from another parent class form a group having a client supplier relationship, ostrstream object or istr
The input / output processing for the shared memory via the stream object will be described.

【0112】例えば、図7に示されるクライアント・サ
プライヤ関係を有するオブジェクトのグループにおい
て、ShSchemaオブジェクトが、図9に示される派生クラ
スShSchemaクラスから生成されている場合について説明
する。
For example, a case where a ShSchema object is generated from a derived class ShSchema class shown in FIG. 9 in a group of objects having a client-supplier relationship shown in FIG. 7 will be described.

【0113】まず、クライアントタスク側では、上述の
オブジェクトのグループが、前述した図4S7〜S9に
対応する以下に示される処理により、各グループに含ま
れるメンバを、自立的にostrstreamオブジェクトを介し
て共有メモリに出力する。
First, on the client task side, the above-mentioned group of objects automatically shares members included in each group via the ostrstream object by the following processing corresponding to the above-described FIGS. 4S7 to S9. Output to memory.

【0114】この場合に、前述した第1の場合における
図8のS1に対応する処理としてShSchemaオブジェクト
のメンバ関数printOn が実行されるときに、図11を使
って説明したようにShObjectクラスで定義されているメ
ンバ関数printOn とTObjectクラスで定義されているメ
ンバ関数printOn が順次呼び出される。その結果、ostr
streamオブジェクトを介して図8の共有メモリのアドレ
スA0とA1の間に相当する記憶領域に、図11のアド
レスA1〜(Aj −1)の記憶内容に相当するデータが
記憶され、その記憶領域以降の記憶領域に図8の共有メ
モリのアドレスA1以降の記憶内容に相当するデータが
記憶されることになる。
In this case, when the member function printOn of the ShSchema object is executed as a process corresponding to S1 in FIG. 8 in the first case described above, it is defined by the ShObject class as described with reference to FIG. Member function printOn and the member function printOn defined in the TObject class are called sequentially. As a result, ostr
The data corresponding to the storage contents of the addresses A1 to (Aj-1) in FIG. 11 is stored in the storage area corresponding to the addresses A0 and A1 in the shared memory in FIG. The data corresponding to the storage contents after the address A1 of the shared memory in FIG.

【0115】次に、サーバタスク側では、上述の共有メ
モリの内容が、前述した図5のS14に対応する処理に
よってistrstreamオブジェクトに読み込まれた後、前述
した図5のS15に対応する以下に示される処理によっ
て、istrstreamオブジェクトの内容を格納すべきオブジ
ェクトが自動的に生成され、それらのオブジェクトのコ
ンストラクタによって、istrstreamオブジェクトに格納
されているデータが、自立的にそれらのオブジェクトに
読み込まれる この場合に、前述した第1の場合における図8のS1に
対応する処理としてShSchemaオブジェクトのコンストラ
クタが実行されるときに、図11を使って説明したよう
にShObjectクラスで定義されているコンストラクタとTO
bject クラスで定義されているコンストラクタが順次呼
び出される。その結果、図8の共有メモリのアドレスA
0とA1の間に相当する記憶領域に記憶されている図1
1のアドレスA1〜(Aj −1)の記憶内容に相当する
データが、ShSchemaオブジェクトに順次格納され、続い
て、その記憶領域以降の記憶領域に記憶されている図8
の共有メモリのアドレスA1以降の記憶内容に相当する
データが、前述した第1の場合について説明したよう
に、ShSchemaオブジェクト、#1のShArray オブジェク
ト、#1及び#2のShRecordオブジェクト、及び#2のShArra
y オブジェクトに格納されることになる。 <Receiverオブジェクトによるオブジェクトの組立て処
理の詳細>図5のS15の説明で前述したように、Rece
iverオブジェクトは、istrstreamオブジェクトに読み込
まれたデータに設定されている識別子を判別することに
より、受信されるべきオブジェクトを判別し、予めServ
erクラスオブジェクトにおいて定義されているクラスの
うち判別されたオブジェクトに対応するクラスを使っ
て、受信オブジェクトを生成する。従って、Receiverオ
ブジェクトは、予めどのようなオブジェクトが受信され
るかを認識している必要がある。ここで、受信されるオ
ブジェクトの種類が途中で変更されたような場合に、Re
ceiverオブジェクトのメンバ関数をいちいち修正するの
は煩雑であり、汎用性に欠ける。
Next, on the server task side, the contents of the above-mentioned shared memory are read into the istrstream object by the processing corresponding to S14 of FIG. 5 described above, and are shown below corresponding to S15 of FIG. Objects that should store the contents of the istrstream object are automatically generated by the processing that is performed, and the data stored in the istrstream object is automatically read into those objects by the constructor of those objects. In this case, When the constructor of the ShSchema object is executed as a process corresponding to S1 in FIG. 8 in the first case described above, the constructor defined in the ShObject class and TO
Constructors defined in bject class are called sequentially. As a result, the address A of the shared memory in FIG.
FIG. 1 stored in a storage area corresponding to between 0 and A1
FIG. 8 shows that data corresponding to the storage contents of the addresses A1 to (Aj -1) of FIG.
As described in the first case, the data corresponding to the storage content after the address A1 of the shared memory is a ShSchema object, a ShArray object of # 1, a ShRecord object of # 1 and # 2, and a ShRecord object of # 2. ShArra
will be stored in the y object. <Details of Object Assembling Process by Receiver Object> As described above in S15 of FIG.
The iver object determines the object to be received by determining the identifier set in the data read into the istrstream object,
A receiving object is generated using a class corresponding to the determined object among the classes defined in the er class object. Thus, Receiver object needs to know whether advance what objects are received. Here, when the type of the received object is changed in the middle,
Modifying the member function of the ceiver object is cumbersome and lacks versatility.

【0116】そこで、受信されるオブジェクト種類の変
更に対し柔軟に対応可能なReceiverオブジェクトによる
オブジェクトの組立て処理の2つの方式について、以下
に説明する。
The following describes two methods of assembling an object by a Receiver object that can flexibly respond to a change in the type of the received object.

【0117】まず、図12は、Receiverオブジェクトに
よるオブジェクトの組立て処理の第1の方式の詳細を示
した図である。図12では、特定のオブジェクトのグル
ープを組立てるための処理がExitルーチンオブジェクト
としてまとめられ、それらがListオブジェクトによって
所有されて管理され、そのListオブジェクトがReceiver
オブジェクトによって所有される。
First, FIG. 12 is a diagram showing details of the first method of assembling an object by a Receiver object. In FIG. 12, the processing for assembling a specific group of objects is summarized as an Exit routine object, which is owned and managed by a List object, and the List object is
Owned by the object.

【0118】そして、Receiverオブジェクトは、前述し
た図5のS15に対応する処理において、istrstreamオ
ブジェクトに読み込まれたデータに設定されている識別
子を読み込み、その識別子を含む依頼メッセージをList
オブジェクトに送信する。
Then, the Receiver object reads the identifier set in the data read in the istrstream object in the process corresponding to S15 of FIG. 5 described above, and sends a request message including the identifier to the List object.
Send to object.

【0119】Listオブジェクトは、そのリストに登録さ
れている各Exitルーチンオブジェクトに、上記識別子を
含むメッセージを送信し、各Exitルーチンオブジェクト
がその識別子を判別することにより、その識別子に対応
するExitルーチンオブジェクトが、その識別子に対応す
るオブジェクトを組み立てる。例えば識別子が“F”で
あった場合、ExitルーチンオブジェクトBの条件文“ca
se F”において条件が成立し、その条件文に対応する処
理としてFオブジェクトが組み立てられる。
The List object transmits a message including the above identifier to each Exit routine object registered in the list, and each Exit routine object determines the identifier, and the Exit routine object corresponding to the identifier is transmitted. Constructs an object corresponding to the identifier. For example, if the identifier is “F”, the conditional statement “ca
A condition is satisfied in "se F", and an F object is assembled as a process corresponding to the conditional statement.

【0120】図12に示される構成により、受信される
オブジェクトのグループが追加される場合には、追加さ
れるオブジェクトのグループを組み立てるためのExitル
ーチンオブジェクトを用意し、それをListオブジェクト
が管理するリストに追加すればよい。また、受信される
オブジェクトのグループが削除される場合には、削除さ
れるオブジェクトのグループを組み立てるためのExitル
ーチンを削除し、それをListオブジェクトが管理するリ
ストから削除すればよい。
When a group of objects to be received is added by the configuration shown in FIG. 12, an Exit routine object for assembling the group of objects to be added is prepared, and the Exit routine object is prepared by the List object. Should be added. When a group of received objects is deleted, the Exit routine for assembling the group of objects to be deleted may be deleted, and may be deleted from the list managed by the List object.

【0121】従って、受信されるオブジェクトのグルー
プが変更されても、そのような変更に対して、Receiver
オブジェクトのメンバ関数を修正することなく、柔軟に
対応することができる。なお、Listオブジェクトは、周
知のリスト処理を行うオブジェクトであり、リストの追
加、削除、又は変更を簡単に行えるようなインタフェー
スを有している。
Therefore, even if the group of objects to be received is changed, the receiver cannot receive such a change.
It is possible to respond flexibly without modifying the member function of the object. Note that the List object is an object that performs well-known list processing, and has an interface that can easily add, delete, or change a list.

【0122】次に、図13は、Receiverオブジェクトに
よるオブジェクトの組立て処理の第2の方式の詳細を示
した図である。図13では、受信されるべきオブジェク
トのインスタンス(雛型)が、オブジェクトA〜オブジ
ェクトFというように予めデータベースとして登録さ
れ、それらが、それらオブジェクトのインスタンスの一
覧をデータベースとして管理しそれらに対する問合せ機
能を有するList/Dictionary オブジェクトによって所有
され、そのList/Dictionary オブジェクトがReceiverオ
ブジェクトによって所有される。
Next, FIG. 13 is a diagram showing details of a second method of assembling an object by a Receiver object. In FIG. 13, instances (models) of objects to be received are registered in advance as databases such as objects A to F, and they manage a list of instances of those objects as a database and perform a query function for them. The List / Dictionary object has the List / Dictionary object, and the List / Dictionary object is owned by the Receiver object.

【0123】そして、Receiverオブジェクトは、前述し
た図5のS15に対応する処理において、istrstreamオ
ブジェクトに読み込まれたデータに設定されている識別
子を読み込み、その識別子を含む依頼メッセージをList
/Dictionary オブジェクトに送信する。
Then, the Receiver object reads the identifier set in the data read into the istrstream object in the process corresponding to S15 of FIG. 5 described above, and sends a request message including the identifier to the List object.
Send to / Dictionary object.

【0124】List/Dictionary オブジェクトは、それが
有するリストにデータベースとして登録されている各オ
ブジェクトに、上記識別子を含むメッセージを順次送信
し、各オブジェクトがその識別子に対応するか否かを問
い合せる。その結果、その識別子に対応するオブジェク
トが、自オブジェクトをコピーすることにより、そのク
ローンとなるオブジェクトを受信オブジェクトとして生
成する。例えば、識別子が“C”であった場合、オブジ
ェクトCがその識別子“C”に対応する。そこで、オブ
ジェクトCが、新たなオブジェクトCを生成し、それを
受信オブジェクトとしてReceiverオブジェクトに渡す。
The List / Dictionary object sequentially transmits a message including the above identifier to each object registered as a database in a list of the List / Dictionary object, and inquires whether each object corresponds to the identifier. As a result, the object corresponding to the identifier copies its own object, thereby generating a cloned object as a received object. For example, if the identifier is “C”, the object C corresponds to the identifier “C”. Then, the object C generates a new object C and passes it to the Receiver object as a reception object.

【0125】ここで、図7及び図8を使用して前述した
ように、オブジェクトのグループが受信される場合に
は、ある時点で受信されたオブジェクトのコンストラク
タが、Receiverオブジェクトを介して又は介さずに直
接、List/Dictionary オブジェクトに問合せメッセージ
を送信することにより、データベース内でそのメッセー
ジに対応するオブジェクトに対し、そのクローンオブジ
ェクトを新たに生成させ、それをグループ内の新たな受
信オブジェクトとすればよい。
Here, as described above with reference to FIGS. 7 and 8, when a group of objects is received, the constructor of the object received at a certain point in time may or may not be passed through the Receiver object. By directly sending a query message to the List / Dictionary object, a new clone object is created for the object corresponding to the message in the database, and this is set as a new received object in the group. .

【0126】以上、図13に示される構成により、受信
されるオブジェクトのグループが追加さる場合には、そ
の追加されるオブジェクトのインスタンスをデータベー
スに追加すればよい。また、受信されるオブジェクトの
グループが削除される場合には、削除されるオブジェク
トのインスタンスをデータベースから削除すればよい。
As described above, when a group of objects to be received is added by the configuration shown in FIG. 13, an instance of the added object may be added to the database. When a group of received objects is deleted, an instance of the deleted object may be deleted from the database.

【0127】従って、受信されるオブジェクトのグルー
プが変更されても、そのような変更に対して、Receiver
オブジェクトのメンバ関数を修正することなく、柔軟に
対応することができる。なお、List/Dictionary オブジ
ェクトは、周知のデータベースアクセス処理を行うオブ
ジェクトであり、データベースの構成要素である各オブ
ジェクトのインスタンスの追加、削除、又は変更を簡単
に行えるようなインタフェースを有している。 <他の実施例>以上説明した実施例では、クライアント
タスクからサーバタスクへオブジェクトが送信される場
合の動作について説明したが、勿論、サーバタスクから
クライアントタスクへオブジェクトが送信される場合も
同様である。この場合には、サーバタスクでSenderオブ
ジェクトが生成され、クライアントタスクでReceiverオ
ブジェクトが生成されることになる。
Therefore, even if the group of the received objects is changed, the receiver is not affected by such a change.
It is possible to respond flexibly without modifying the member function of the object. Note that the List / Dictionary object is an object that performs a well-known database access process, and has an interface that can easily add, delete, or change an instance of each object that is a component of the database. <Other Embodiments> In the above-described embodiments, the operation in the case where an object is transmitted from a client task to a server task has been described. However, the same applies to the case where an object is transmitted from a server task to a client task. . In this case, a Sender object is generated by the server task, and a Receiver object is generated by the client task.

【0128】また、以上説明した実施例は、ウインドウ
システムのもとで動作するアプリケーションについての
ものであるが、オブジェクト指向で動作するシステムで
あれば、本発明は様々な形態のシステムに適用できる。
Although the embodiment described above is for an application operating under a window system, the present invention can be applied to various types of systems as long as the system operates in an object-oriented manner.

【0129】更に、以上説明した実施例におけるオブジ
ェクトは、コンピュータシステムがC++プログラミン
グ言語に基づいて作成されたプログラムを実行すること
により実現されているが、オブジェクト処理を行うため
のシステムであればどのようなシステムの上で実現され
てもよい。
Further, the objects in the embodiments described above are realized by a computer system executing a program created based on the C ++ programming language, but any object processing system can be used. May be realized on a simple system.

【0130】加えて、上述した実施例におけるSenderオ
ブジェクトの機能は、通信されるオブジェクトにカプセ
ル化されてもよい。
[0130] In addition, the function of the Sender object in the above-described embodiment may be encapsulated in a communicated object.

【0131】[0131]

【発明の効果】本発明によれば、通信オブジェクト自身
が、そのメンバの送信と受信を行うため、通信データの
汎用性を考慮する必要がなくなり、その結果、通信対象
のオブジェクトに対する制限を除くことができ、多様な
オブジェクトを通信することが可能となる。
According to the present invention, since the communication object itself transmits and receives its members, it is not necessary to consider the versatility of the communication data, and as a result, the restriction on the communication target object is eliminated. And various objects can be communicated.

【0132】また、オブジェクト自身がそのメンバの送
受信を行う結果、通信バッファアクティブエラー等の通
信エラーが発生する可能性は激減し、通信時の信頼性の
飛躍的な向上が可能となる。
Further, as a result of the object itself transmitting and receiving its members, the possibility of occurrence of a communication error such as a communication buffer active error is drastically reduced, and the reliability at the time of communication can be greatly improved.

【0133】更に、通信オブジェクト自身にそのメンバ
の通信機能を持たせる場合に、予め基底クラスにそのメ
ッセージの通信機能を持たせておき、通信オブジェクト
を、基底クラスから派生したクラスであって基底クラス
におけるメンバの通信機能を継承した派生クラスのオブ
ジェクトとして生成させることによって、アプリケーシ
ョンのオブジェクトに簡単にそのメンバの通信機能を持
たせることが可能となる。
Further, when the communication object itself has the communication function of its members, the base class is provided with the communication function of the message in advance, and the communication object is defined as a class derived from the base class. By generating as a derived class object that inherits the communication function of the member in the above, the object of the application can easily have the communication function of the member.

【0134】一方、受信側のタスクにおいて、通信オブ
ジェクト生成用オブジェクトが、受信された通信データ
に対応する通信オブジェクトを生成する場合、受信され
た通信データに設定されている識別子によってその通信
データに対応する通信オブジェクトを生成することによ
り、簡単な制御処理で対応する通信オブジェクトを生成
することが可能となる。
On the other hand, when the communication object generation object generates a communication object corresponding to the received communication data in the task on the reception side, the communication object corresponding to the communication data is identified by the identifier set in the received communication data. By generating a communication object to execute, a corresponding communication object can be generated by a simple control process.

【0135】また、通信オブジェクト生成用オブジェク
トが、所定のグループの通信オブジェクトを生成する通
信オブジェクト生成ルーチンオブジェクトを複数のグル
ープに対応して複数所有するリストオブジェクトを所有
することによって、受信されるオブジェクトのグループ
の種類が変更されても、そのような変更に対して、通信
オブジェクト生成用オブジェクトを修正することなく、
リストオブジェクトに対して通信オブジェクト生成ルー
チンオブジェクトを追加、削除、又は変更させるだけ
で、柔軟に対応することが可能となる。
The communication object generation object owns a plurality of list objects corresponding to a plurality of communication object generation routine objects for generating a predetermined group of communication objects. Even if the type of the group is changed, the communication object generation object is not modified for such a change,
Only by adding, deleting, or changing the communication object generation routine object to the list object, it is possible to flexibly cope with the list object.

【0136】或いは、通信オブジェクト生成用オブジェ
クトが、複数の通信オブジェクトのインスタンスをデー
タベースとして所有するデータベース管理オブジェクト
を所有することによって、受信されるオブジェクトが変
更されても、そのような変更に対して、通信オブジェク
ト生成用オブジェクトを修正することなく、データベー
ス管理オブジェクトに対して通信オブジェクトのインス
タンスを追加、削除、又は変更させるだけで、柔軟に対
応することが可能となる。
Alternatively, even if the received object is changed by the communication object generation object owning a database management object which owns a plurality of instances of the communication object as a database, such an object is not affected. It is possible to respond flexibly by simply adding, deleting, or changing the instance of the communication object to the database management object without modifying the communication object generation object.

【0137】一方、オブジェクト自身により送受信され
るメンバが所定の通信プロトコルに従って通信される場
合に、この通信プロトコルに基づく制御を行う機能を通
信プロトコル制御オブジェクトとしてオブジェクト化す
ることにより、通信プロトコルに基づく制御機能を通信
プロトコル制御オブジェクトにカプセル化することがで
き、通信を行うアプリケーションは、通信プロトコル制
御オブジェクトにメッセージを送るだけで、所定の通信
プロトコルに沿った通信を実現でき、アプリケーション
におけるオブジェクトの通信に対する負荷及びエラー発
生の可能性を軽減させることが可能となる。
On the other hand, when members transmitted and received by the object itself are communicated according to a predetermined communication protocol, the function of performing control based on this communication protocol is made into an object as a communication protocol control object, so that control based on the communication protocol is performed. The function can be encapsulated in the communication protocol control object, and the communication application can realize communication according to the predetermined communication protocol only by sending a message to the communication protocol control object, and the load on the communication of the object in the application can be realized. Further, the possibility of occurrence of an error can be reduced.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の実施例の構成図である。FIG. 1 is a configuration diagram of an embodiment of the present invention.

【図2】パスの設定動作の説明図(クライアントタスク
側)である。
FIG. 2 is an explanatory diagram (a client task side) of a path setting operation.

【図3】パスの設定動作の説明図(サーバタスク側)で
ある。
FIG. 3 is an explanatory diagram (a server task side) of a path setting operation.

【図4】オブジェクト通信動作の説明図(クライアント
タスク側)である。
FIG. 4 is an explanatory diagram (a client task side) of an object communication operation.

【図5】オブジェクト通信動作の説明図(サーバタスク
側)である。
FIG. 5 is an explanatory diagram (a server task side) of an object communication operation.

【図6】メインユーザウインドウオブジェクトのクラス
構造を示した図である。
FIG. 6 is a diagram showing a class structure of a main user window object.

【図7】オブジェクトのグループの例を示した図であ
る。
FIG. 7 is a diagram illustrating an example of a group of objects.

【図8】オブジェクトのグループの共有メモリでの記憶
形態を示した図である。
FIG. 8 is a diagram showing a storage form of a group of objects in a shared memory.

【図9】派生クラスの継承関係の例を示した図である。FIG. 9 is a diagram illustrating an example of an inheritance relationship of a derived class.

【図10】派生クラスのオブジェクトの例を示した図で
ある。
FIG. 10 is a diagram showing an example of an object of a derived class.

【図11】派生クラスのオブジェクトの共有メモリでの
記憶形態を示した図である。
FIG. 11 is a diagram showing a storage form of an object of a derived class in a shared memory.

【図12】Receiverオブジェクトによるオブジェクトの
組立て処理の詳細(その1)を示した図である。
FIG. 12 is a diagram showing details (No. 1) of an object assembling process by a Receiver object.

【図13】Receiverオブジェクトによるオブジェクトの
組立て処理の詳細(その2)を示した図である。
FIG. 13 is a diagram showing details (No. 2) of an object assembling process by a Receiver object.

【図14】オブジェクトを基本要素とするコンピュータ
システムの構成図である。
FIG. 14 is a configuration diagram of a computer system having an object as a basic element.

【図15】従来のオブジェクト通信の構成図である。FIG. 15 is a configuration diagram of conventional object communication.

【符号の説明】[Explanation of symbols]

101 送信オブジェクト部 102 Senderオブジェクト 103 送受信バッファオブジェクト部 104 通信プロトコル制御部 105 Receiverオブジェクト 106 受信オブジェクト部 107 バッファ書き込み依頼メッセージ 108 バッファ読み込み依頼メッセージ DESCRIPTION OF SYMBOLS 101 Transmission object part 102 Sender object 103 Transmission / reception buffer object part 104 Communication protocol control part 105 Receiver object 106 Reception object part 107 Buffer write request message 108 Buffer read request message

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−20090(JP,A) 特開 平5−225012(JP,A) 特開 平6−149600(JP,A) インターフェース1991年9月号(Vo l.17、No.9)、CQ出版社、p p.219〜233(特許庁CSDB文献番 号:CSNW199800205006) (58)調査した分野(Int.Cl.7,DB名) G06F 9/44 G06F 9/46 G06F 13/00 G06F 15/16 JICSTファイル(JOIS) CSDB(日本国特許庁)────────────────────────────────────────────────── ─── Continuation of the front page (56) References JP-A-5-20090 (JP, A) JP-A-5-225012 (JP, A) JP-A-6-149600 (JP, A) Interface September 1991 No. (Vol. 17, No. 9), CQ Publishing Co., pp. 219-233 (Patent Office CSDB literature number: CSNW199800205006) (58) Fields investigated (Int. Cl. 7 , DB name) G06F 9/44 G06F 9/46 G06F 13/00 G06F 15/16 JICST file (JOIS) CSDB (Japan Patent Office)

Claims (6)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 異なるタスク間のオブジェクト通信方式
において、前記タスク間で通信されるオブジェクトである通信オブ
ジェクトに、 自オブジェクトの内容に対応する通信デー
タの送信機能及び受信機能と、 信側の前記タスク内に、受信された前記通信データに
対応する前記通信オブジェクトを生成する通信オブジェ
クト生成用オブジェクトと、 を有し、 送信側の前記タスク内の前記通信オブジェクトが有する
前記送信機能は、該自オブジェクトの内容に対応する通
信データを送受信バッファオブジェクトに書き込み、 前記送受信バッファオブジェクトに書き込まれた前記通
信データは、受信側タスクに送信され、 前記受信側のタスク内の前記通信オブジェクト生成用オ
ブジェクトは、受信した前記通信データに対応する前記
通信オブジェクトを生成し、 該生成された通信オブジェクトが有する前記受信機能
は、自オブジェクトが生成される際に、前記送受信バッ
ファオブジェクトの前記通信データを自オブジェクトに
読み込む、 ことを特徴とするオブジェクト通信方式。
In an object communication system between different tasks , a communication object which is an object communicated between the tasks.
The project, and transmit and receive functions of the communication data corresponding to the contents of its own object to the receiving side of said tasks, and objects communication objects generated to generate the communication object corresponding to the received the communication data have the transmission function with the communication objects in said task sender writes the communication data corresponding to the content of the free-object in the sending and receiving buffer object, the communication written in the reception buffer object
The communication data is transmitted to a receiving task, the communication object generating object in the receiving task generates the communication object corresponding to the received communication data, and the generated communication object has The receiving function reads the communication data of the transmission / reception buffer object into the own object when the own object is generated.
【請求項2】 前記送信側のタスク内の前記通信オブジ
ェクトによる送信動作時及び前記受信がわのタスク内の
前記通信オブジェクトによる受信動作時の通信プロトコ
ルの制御を行う通信プロトコル制御手段を更に有する、 ことを特徴とする請求項1に記載のオブジェクト通信方
式。
2. A communication protocol control means for controlling a communication protocol during a transmission operation by the communication object in the task on the transmission side and a reception operation by the communication object in the reception task. 2. The object communication method according to claim 1, wherein:
【請求項3】 前記通信オブジェクトは、クライアント
・サプライヤ関係を有するグループを形成している各オ
ブジェクトであり、該各オブジェクトがそれぞれ、該各
オブジェクトに対応する通信データの送信機能及び受信
機能を有する、 ことを特徴とする請求項1又は2の何れか1項に記載の
オブジェクト通信方式。
3. The communication object is an object forming a group having a client-supplier relationship, and each of the objects has a function of transmitting and receiving communication data corresponding to each object. The object communication method according to claim 1, wherein the object communication method includes:
【請求項4】 前記通信オブジェクトは、基底クラス
から派生したクラスのオブジェクトであり、該通信オブ
ジェクトに関連するクラスのそれぞれに対応する該通信
オブジェクトのメンバの送受信機能を有する、 ことを特徴とする請求項1乃至3の何れか1項に記載の
オブジェクト通信方式。
4. The communication object according to claim 1, wherein the communication object is an object of a class derived from a base class, and has a function of transmitting and receiving members of the communication object corresponding to each of the classes related to the communication object. Item 4. The object communication method according to any one of Items 1 to 3.
【請求項5】 前記通信オブジェクト生成用オブジェク
トは、前記受信された通信データに設定されている識別
子によって、該通信データに対応する前記通信オブジェ
クトを生成する、 ことを特徴とする請求項1乃至4の何れか1項に記載の
オブジェクト通信方式。
5. The communication object generating object generates the communication object corresponding to the communication data according to an identifier set in the received communication data. The object communication method according to any one of claims 1 to 4.
【請求項6】 前記通信オブジェクト生成用オブジェク
トは、リストオブジェクトを所有し、 該リストオブジェクトは、所定のグループの通信オブジ
ェクトを生成する通信オブジェクト生成ルーチンオブジ
ェクトを、複数のグループに対応して複数所有し、前記リストオブジェクトは、前記通信オブジェクト生成
ルーチンオブジェクトに前記通信データを送信し、 前記通信オブジェクト生成ルーチンオブジェクトは、
受信した前記通信データに含まれる識別子に基づき、組
み立てる通信オブジェクトを判別し、該通信データに対
応する前記通信オブジェクトを生成させる、 ことを特徴とする請求項1乃至5何れか1項に記載のオ
ブジェクト通信方式。
Wherein said communication object generation object owns a list object, the list object, a communication object generation routine object that generates a communication object of Jo Tokoro group own multiple corresponding to the plurality of groups The list object generates the communication object.
Transmitting the communication data to a routine object, wherein each of the communication object generation routine objects includes:
Based on the identifier included in the received communication data,
The object communication method according to any one of claims 1 to 5 , wherein a communication object to be set up is determined, and the communication object corresponding to the communication data is generated.
JP07156793A 1993-03-30 1993-03-30 Object communication method Expired - Lifetime JP3238788B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP07156793A JP3238788B2 (en) 1993-03-30 1993-03-30 Object communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07156793A JP3238788B2 (en) 1993-03-30 1993-03-30 Object communication method

Publications (2)

Publication Number Publication Date
JPH06295245A JPH06295245A (en) 1994-10-21
JP3238788B2 true JP3238788B2 (en) 2001-12-17

Family

ID=13464420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07156793A Expired - Lifetime JP3238788B2 (en) 1993-03-30 1993-03-30 Object communication method

Country Status (1)

Country Link
JP (1) JP3238788B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3817823B2 (en) * 1997-04-10 2006-09-06 ソニー株式会社 Data communication method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520090A (en) * 1991-07-09 1993-01-29 Fuji Facom Corp Computer system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
インターフェース1991年9月号(Vol.17、No.9)、CQ出版社、pp.219〜233(特許庁CSDB文献番号:CSNW199800205006)

Also Published As

Publication number Publication date
JPH06295245A (en) 1994-10-21

Similar Documents

Publication Publication Date Title
US6757868B1 (en) Programmatic switching of arbitrary HTML forms
US4694396A (en) Method of inter-process communication in a distributed data processing system
US8635540B2 (en) Method and apparatus for managing internet transactions
US4754395A (en) Network interface module with minimized data paths
US7475107B2 (en) System and method for managing distributed computer processes
US7103627B2 (en) Web-based system and method
US5327559A (en) Remote and batch processing in an object oriented programming system
US6415288B1 (en) Computer implemented system for communicating between a user terminal and a database system
US10248473B2 (en) Discovering object definition information in an integrated application environment
CN111708537A (en) Page rendering method and device based on component template and readable storage medium
US20020129016A1 (en) Accessing data stored at an intermediary from a service
US20030085924A1 (en) Method and system for displaying categorized information on a user interface
US6351746B1 (en) Cool ice icons
US20020046283A1 (en) Apparatus and method for saving session variables on the server side of an on-line data base management system
JP3238788B2 (en) Object communication method
US20100057689A1 (en) Synchronization of records of a table using bookmarks
CN109951376B (en) Instant messaging software information acquisition method, device, system and storage medium
US6292824B1 (en) Framework and method for facilitating client-server programming and interactions
US6374247B1 (en) Cool ice service templates
US6233622B1 (en) Adapter and handler framework for web server extensions
US7315868B1 (en) XML element to source mapping tree
US6662343B1 (en) Cool ice automatic footer text on HTML pages
US6411995B1 (en) Cool ice workstation directory/file browser
JP2767767B2 (en) Data processing apparatus and method for accessing relational database
JPH05158699A (en) Method and apparatus for controlling class information

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010821

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071005

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081005

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091005

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101005

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111005

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121005

Year of fee payment: 11