JPH1153273A - Infinite length data communication method of request responding type - Google Patents

Infinite length data communication method of request responding type

Info

Publication number
JPH1153273A
JPH1153273A JP9208942A JP20894297A JPH1153273A JP H1153273 A JPH1153273 A JP H1153273A JP 9208942 A JP9208942 A JP 9208942A JP 20894297 A JP20894297 A JP 20894297A JP H1153273 A JPH1153273 A JP H1153273A
Authority
JP
Japan
Prior art keywords
data
length data
application
server
type
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.)
Granted
Application number
JP9208942A
Other languages
Japanese (ja)
Other versions
JP3569114B2 (en
Inventor
Yoshimoto Toyoda
義元 豊田
Takanari Hoshiai
隆成 星合
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP20894297A priority Critical patent/JP3569114B2/en
Publication of JPH1153273A publication Critical patent/JPH1153273A/en
Application granted granted Critical
Publication of JP3569114B2 publication Critical patent/JP3569114B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To execute the communication of finite length data and the communication of infinite length data by the same communication manner by designating the type of data to be a stream type and allowing distributed processing information to repeat the transmitting/receiving of finite length data according to this designation, so as to communicate infinite length data between applications. SOLUTION: An application on a client side 1 executes operation calling to a server object 5 to the distributed processing environment 6 of its own node and enters a block state. Then without waiting for return from the object 5, the application 1 is released from the block state. At the time of being released from the block state, a stream-type variable is generated on the client side. The application on the client side 1 obtains the attribute of this variable (buffer information within the variable). Next, infinite length data is read by accessing to the stream-type variable and when the reading of all the pieces of data is not finished by once access, access is repeated to the variable.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、分散システムにお
けるアプリケーション間の無限長データの通信方法に関
する。
The present invention relates to a method for communicating infinite length data between applications in a distributed system.

【0002】近年、クライアント/サーバシステム等、
多くの分散システム技術が開発されている。三喜、土
屋、リー「3層クライアント/サーバ・システム構築技
法」(ソフトリサーチセンター, 1996年)によれば、分
散されたアプリケーション間の通信方法には、二つに大
別して、要求応答型及びピアツーピア型がある。要求応
答型は、一方のアプリケーションが要求を起こし、他方
がそれに対して応答する。一方、ピアツーピア型は、双
方のアプリケーションが相互の等しい権利と条件のもと
に単純に情報を交換する。
In recent years, client / server systems, etc.
Many distributed system technologies have been developed. According to Miki, Tsuchiya, and Lee, "Three-tier client / server system construction technique" (Soft Research Center, 1996), communication methods between distributed applications are roughly classified into two types: request response type and peer-to-peer. There is a type. In the request-response type, one application makes a request and the other responds to it. In the peer-to-peer type, on the other hand, both applications simply exchange information under mutually equal rights and conditions.

【0003】要求応答型を実装した代表的なものに遠隔
手続き呼出し(RPC)技術及び共通オブジェクト要求
ブローカアーキテクチャ(CORBA)等による分散オ
ブジェクト技術がある。RPCでは、例えば、サーバア
プリケーションが手続きを定義し、クライアントがサー
バアプリケーションに対して手続きを呼出す時及びサー
バがクライアントに対して応答する時に、パラメータを
介してクライアントとサーバとの間でデータの授受を行
う。同様に、CORBAでも、サーバとしてのオブジェ
クトがオペレーションの集合であるインタフェースを定
義し、クライアントがオブジェクトに対してオペレーシ
ョンを呼出す時及びオブジェクトからクライアントに応
答する時に、パラメータを介してクライアントとサーバ
との間でデータの授受を行う。
Typical implementations of the request-response type include a remote procedure call (RPC) technique and a distributed object technique using a common object request broker architecture (CORBA). In RPC, for example, when a server application defines a procedure, and when the client calls the procedure to the server application and when the server responds to the client, data is exchanged between the client and the server via parameters. Do. Similarly, in CORBA, an object as a server defines an interface that is a set of operations, and when a client invokes an operation on an object and responds to the client from the object, the interface between the client and the server via a parameter is defined. To send and receive data.

【0004】これらの技術の特長の一つとして、プログ
ラミングを行う時にネットワークを意識する必要がな
く、クライアントがサーバの手続き又はオペレーション
を呼出す方法でデータの通信を行うことができる点が挙
げられる。
[0004] One of the features of these technologies is that it is not necessary to be aware of the network when programming, and the client can communicate data by a method that calls a procedure or operation of a server.

【0005】しかし、RPC及びCORBAを含め、従
来の要求応答型のアプリケーション間の通信は、授受を
行うデータとして有限長のデータのみを対象としてお
り、無限長のデータの授受はできない。即ち、無限長デ
ータをクライアントとサーバとの間で授受を行うために
は、従来はピアツーピア型の通信しか存在していない。
例えば、UNIX環境では、クライアント及びサーバ双
方でそれぞれソケットを生成し、両者がそれぞれ自己の
ソケットにアクセスすることにより、無限長データの授
受を行うことが一般的である。
However, communication between conventional request-response type applications including RPC and CORBA targets only finite-length data as data to be exchanged, and cannot exchange infinite-length data. That is, conventionally, only peer-to-peer communication exists for exchanging infinite length data between the client and the server.
For example, in a UNIX environment, it is common for both a client and a server to generate sockets, and both to access their own sockets to exchange infinite length data.

【0006】ここで「有限長データ」とは、データの通
信を開始する時にデータの全体の長さを特定できるデー
タをいう。一方、「無限長データ」とは、データの通信
を開始する時にデータの大きさを特定できないデータを
いう。無限長データの例としては、テレビ会議システム
の画像音声データがある。このシステムのサービス終了
時期は一般には不定であることから、画像音声データの
通信開始時点にはデータの全体の長さを指定できない。
無限長データの別の例としては、ビデオオンデマンドサ
ービスがある。映画の長さは予め分かっているので有限
長データとして扱うことも可能であるが、アプリケーシ
ョンの実装如何によっては、無限長データと捉えて開発
することも可能である。
Here, "finite length data" refers to data that can specify the entire length of data when data communication is started. On the other hand, "infinite length data" refers to data whose data size cannot be specified when data communication is started. An example of the infinite length data is video and audio data of a video conference system. Since the service end time of this system is generally indefinite, it is not possible to specify the entire length of the data at the time of starting the communication of the video and audio data.
Another example of infinite length data is a video on demand service. Since the length of the movie is known in advance, it can be treated as finite-length data, but depending on the implementation of the application, it can be developed as infinite-length data.

【0007】アプリケーション間における無限長データ
の通信に要求応答型を用いずピアツーピア型を用いるこ
とには、以下に挙げるような欠点がある。第一の欠点
は、有限長データと無限長データの通信作法が異なるの
で、一貫したシステム開発が困難なことである。例え
ば、CORBA等の分散オブジェクト環境では、有限長
データの通信に関しては要求応答型なので、コード実装
の時点で有限長データを提供し又は処理する主体をオブ
ジェクトとして表すことができる。よって、システムの
分析、設計及び実装をオブジェクト指向という一貫した
手法で開発することが可能である。一方、無限長データ
の通信に関しては要求応答型ではないので、実装の時点
で無限長データを提供し又は処理する主体をオブジェク
トとして表すことができない。よって、システム開発を
一貫した手法で行うことができない。このため、一貫性
を保つことかできず、システム開発手法の利点が失われ
ることになり、システム開発の効率及び品質が低下する
ことにつながる。
[0007] Using the peer-to-peer type instead of the request-response type for infinite-length data communication between applications has the following disadvantages. The first drawback is that it is difficult to develop a consistent system because the communication manners of finite-length data and infinite-length data are different. For example, in a distributed object environment such as CORBA, the communication of finite-length data is a request-response type, so that the entity that provides or processes finite-length data at the time of code implementation can be represented as an object. Therefore, it is possible to develop the analysis, design and implementation of the system in a consistent manner called object-oriented. On the other hand, since communication of infinite-length data is not a request-response type, the entity that provides or processes infinite-length data at the time of implementation cannot be represented as an object. Therefore, system development cannot be performed in a consistent manner. For this reason, consistency cannot be maintained, the advantage of the system development method is lost, and the efficiency and quality of system development are reduced.

【0008】第二の欠点は、クライアントとサーバの双
方が、コードを実装する時に前述のソケットのようなネ
ットワークインタフェースを意識しなければならないこ
とである。即ち、RPC及びCORBA等の技術を利用
できるにも拘らず、無限長データを通信することになる
と、ネットワークインタフェースを意識したプログラミ
ングを行わざるを得なくなる。これは、アプリケーショ
ン開発の負担を増すことになる。特に、動画又は音声の
ような無限長データに分類できるデータを主に扱うマル
チメディアシステムの開発においては、この負担は極め
て大きくなる。
[0008] A second disadvantage is that both the client and the server must be aware of the network interface, such as the aforementioned socket, when implementing the code. In other words, in spite of the fact that technologies such as RPC and CORBA can be used, if infinite-length data is to be communicated, programming must be performed in consideration of the network interface. This adds to the burden of application development. In particular, this burden becomes extremely large in the development of a multimedia system that mainly handles data that can be classified into infinite length data such as moving images or audio.

【0009】[0009]

【発明が解決しようとする課題】本発明の目的は、アプ
リケーション間における無限長データの通信に関して、
上記の欠点を解決し、有限長データ及び無限長データ双
方に関して同一の通信作法を提供し、一貫したシステム
開発手法の適用を可能にし、各アプリケーションのコー
ドを実装する時にネットワークのインタフェースを意識
することなく、無限長データの通信を可能にすることに
ある。
SUMMARY OF THE INVENTION It is an object of the present invention to provide communication of infinite length data between applications.
Resolve the above drawbacks, provide the same communication method for both finite-length data and infinite-length data, enable consistent application of system development methods, and be aware of network interfaces when implementing code for each application. Instead, to enable communication of infinite length data.

【0010】[0010]

【課題を解決するための手段】本発明の要求応答型無限
長データ通信方法は、上記の目的を達成するため、アプ
リケーション間で、一方のアプリケーションが要求を起
こし、他方のアプリケーションがそれに応じ、データの
型をストリーム型に指定し、分散処理環境がこの指定に
従い、有限長データの授受を繰り返し行うことにより、
アプリケーション間で無限長データを通信することを特
徴とする。
In order to achieve the above object, a request response type infinite length data communication method according to the present invention provides a method in which one application makes a request between applications and the other application responds to the request. Is specified as a stream type, and the distributed processing environment repeatedly sends and receives finite-length data according to this specification.
It is characterized by communicating infinite length data between applications.

【0011】このような本発明の要求応答型無限長デー
タ通信方法によれば、分散処理環境は、クライアントア
プリケーション及びサーバオブジェクト共に、無限長デ
ータを通信するためにネットワーク管理インタフェース
を使用する必要がなく、また、意識する必要もない。ま
た、無限長データへのアクセス手段をオペレーションの
パラメータとして提供しており、無限長データへのアク
セスを可能にするための通信開始或いは通信停止等のオ
ペレーションの定義を必要としない。
According to the request-response-type infinite-length data communication method of the present invention, the distributed processing environment does not require the use of the network management interface for communicating the infinite-length data with both the client application and the server object. Also, there is no need to be conscious. In addition, access means for infinite length data is provided as an operation parameter, and there is no need to define operations such as starting or stopping communication to enable access to infinite length data.

【0012】[0012]

【発明の実施の形態】次に図面を用いて本発明の実施例
を詳細に説明する。図1は分散処理環境とアプリケーシ
ョンとの全体構成を機能分類したものである。1はクラ
イアントアプリケーションである。これは、無限長デー
タに関するサービスを受けるために、サーバとしてのオ
ブジェクトのオペレーションを呼出す。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 is a functional classification of the overall configuration of a distributed processing environment and an application. 1 is a client application. It invokes the operation of the object as a server to receive services on infinite data.

【0013】2はクライアント側データ処理部である。
これは、クライアントアプリケーション1からのオペレ
ーションの呼出し要求を受けて、サーバオブジェクト5
のオブジェクトリファレンス、オペレーション呼出し要
求及びオペレーションのパラメータとしてのデータをデ
ータ通信部3に渡す。また、これは、データ通信部3か
ら受取ったオペレーション呼出し応答及びパラメータと
してのデータをクライアントアプリケーション1に渡
す。
Reference numeral 2 denotes a client-side data processing unit.
In response to a request to invoke an operation from the client application 1, the server object 5
The object reference, the operation call request, and the data as the parameters of the operation are passed to the data communication unit 3. This also passes the operation call response and data as parameters received from the data communication unit 3 to the client application 1.

【0014】3はデータ通信部である。これは、クライ
アント側データ処理部2から受取ったオブジェクトリフ
ァレンスからサーバオブジェクト5の位置を割り出し、
そのサーバオブジェクト5のサーバ側データ処理部4
に、オブジェクトリファレンス、オペレーション呼出し
要求及びパラメータとしてのデータを渡す。また、これ
は、サーバ側データ処理部4から受取ったオペレーショ
ン呼出し応答及びそのオペレーションのパラメータとし
てのデータをクライアント側データ処理部2に渡す。
Reference numeral 3 denotes a data communication unit. This determines the position of the server object 5 from the object reference received from the client-side data processing unit 2,
The server-side data processing unit 4 of the server object 5
, An object reference, an operation invocation request, and data as parameters. In addition, it passes the operation call response received from the server-side data processing unit 4 and data as parameters of the operation to the client-side data processing unit 2.

【0015】4はサーバ側データ処理部である。これ
は、データ通信部3からオブジェクトリファレンス、オ
ペレーション呼出し要求及びパラメータとしてのデータ
を受取ると、サーバオブジェクト5に、呼出し要求及び
パラメータとしてのデータを渡す。また、これは、サー
バオブジェクト5からオペレーション呼出し応答及びそ
のパラメータとしてのデータを受取ると、それらをデー
タ通信部3に渡す。
Reference numeral 4 denotes a server-side data processing unit. When receiving the object reference, the operation call request, and the data as the parameter from the data communication unit 3, it passes the call request and the data as the parameter to the server object 5. When receiving an operation call response and data as its parameters from the server object 5, it passes them to the data communication unit 3.

【0016】5はサーバオブジェクトである。これは、
無限長データに関するサービスを提供する。また、これ
は、呼出し要求を受けたオペレーションを実行する。以
上のうち、クライアント側データ処理部2、データ通信
部3及びサーバ側データ処理部4が、分散処理環境6と
して、アプリケーション開発者に対して提供される。
Reference numeral 5 denotes a server object. this is,
Provides services related to infinite length data. It also performs the operation for which the call request was received. Among the above, the client-side data processing unit 2, the data communication unit 3, and the server-side data processing unit 4 are provided as a distributed processing environment 6 to an application developer.

【0017】クライアントアプリケーション1及びサー
バオブジェクト5から見た簡単なシナリオは以下のとお
りである。(1) クライアントアプリケーション1は、ネ
ームサービス又はトレーダサービス等を利用して、呼出
したいサーバオブジェクト5のオブジェクトリファレン
スを得る。(2) クライアントアプリケーション1は、オ
ブジェクトリファレンスを用いて、サーバオブジェクト
5のオペレーションを呼出す。(3) サーバオブジェクト
5は、呼出されたオペレーションを実行する。(4) サー
バオブジェクト5は、クライアントアプリケーション1
に呼出されたオペレーションの応答を返す。この(2) 及
び(4) のいずれか又は両者の段階で、クライアントアプ
リケーション1とサーバオブジェクト5との間で無限長
データの授受が行われる。
A simple scenario viewed from the client application 1 and the server object 5 is as follows. (1) The client application 1 obtains an object reference of the server object 5 to be called by using a name service or a trader service. (2) The client application 1 calls an operation of the server object 5 using the object reference. (3) The server object 5 executes the called operation. (4) The server object 5 is the client application 1
Returns the response of the called operation. In either or both of the steps (2) and (4), infinite data is exchanged between the client application 1 and the server object 5.

【0018】図2は分散処理環境の全体構成を示す図で
ある。各コンピュータ10a,10b に分散するアプリケーシ
ョンは、各コンピュータ上の分散処理環境6を通して、
分散を意識しないアプリケーション間通信を可能にして
いる。この実施例においては、分散処理環境6が無限長
データのためのデータ型を定義し、アプリケーションが
その型を利用する。
FIG. 2 is a diagram showing the entire configuration of the distributed processing environment. The application distributed to each computer 10a, 10b passes through the distributed processing environment 6 on each computer,
Enables inter-application communication without being aware of distribution. In this embodiment, the distributed processing environment 6 defines a data type for infinite length data, and the application uses that type.

【0019】以下の説明では、無限長データ型をストリ
ーム型と呼ぶこととする。このストリーム型は、アプリ
ケーションが無限長データを直接処理する場合を想定し
た抽象データ型である。ストリーム型は、分散処理環境
により定義され、アプリケーションに提供される。アプ
リケーションは、オペレーションの中で無限長データを
オペレーション呼出しのパラメータとして扱い、そのパ
ラメータにアクセスすることにより無限長データを処理
する。
In the following description, the infinite-length data type is called a stream type. This stream type is an abstract data type assuming that an application directly processes infinite length data. The stream type is defined by the distributed processing environment and provided to the application. The application handles the infinite length data as a parameter of the operation call in the operation, and processes the infinite length data by accessing the parameter.

【0020】分散処理環境は、ストリーム型として、イ
ンタフェース定義言語(IDL)上のデータ型及びプロ
グラミング言語(例えばC++)上のデータ型を提供す
る。また、ストリーム変数のIDL記述からプログラミ
ング言語へのマッピングも行う(そのマッピングはID
Lコンパイラによって行われる)。
The distributed processing environment provides a data type in an interface definition language (IDL) and a data type in a programming language (for example, C ++) as a stream type. In addition, mapping is performed from the IDL description of the stream variable to the programming language (the mapping is performed by ID
L Compiler).

【0021】オペレーション呼出しのパラメータのデー
タ型としてストリーム型が提供されるので、クライアン
ト側アプリケーション1及びサーバオブジェクト5によ
るストリーム型の変数の生成は、CORBAの従来のデ
ータ型と同じ方法で行われる。即ち、両者のいずれかが
ストリーム型の変数の生成の契機を与える。両者から見
えるオペレーションの呼出しのパラメータとしての、ス
トリーム型の変数の実体は、あたかも一つであるように
見えるが、実際には変数の実体はクライアント及びサー
バ双方に存在することになる。
Since the stream type is provided as the data type of the parameter of the operation call, the generation of the stream type variable by the client-side application 1 and the server object 5 is performed in the same manner as the conventional data type of CORBA. That is, either of them gives an opportunity to generate a stream type variable. Although the stream-type variable as an operation call parameter visible from both parties appears to be a single entity, the variable entity actually exists in both the client and the server.

【0022】なお、ストリーム型を流れる個々のデータ
は、整数型及び浮動小数点型等とは異なり、単なるビッ
ト列である。従って、それらの型のデータと異なり、通
信の前後でマーシャリング及びアンマーシャリングは行
わない。
The individual data flowing through the stream type is a simple bit string, unlike the integer type and the floating point type. Therefore, unlike those types of data, marshalling and unmarshalling are not performed before and after communication.

【0023】次に、ストリーム型における実装方法につ
いて説明する。ストリーム型の変数(インスタンス)
は、各変数毎に以下の情報を持つ。大きく二分してユー
ザデータ部と管理部とに分かれる。ユーザデータ部の構
成要素としてバッファがある。これは、アプリケーショ
ンからのデータの書込みを一旦受けてから、ネットワー
クインタフェースに書出すまで、及び、ネットワークイ
ンタフェースからデータを読込んでから、アプリケーシ
ョンに読込まれるまでのデータの一時格納である。アプ
リケーションは、ストリーム型の変数に1回アクセスす
る度に1バッファ分の有限長データを読み書きし、それ
を繰り返すことによって無限長データを処理する。
Next, a mounting method in the stream type will be described. Stream type variable (instance)
Has the following information for each variable. It is roughly divided into a user data section and a management section. A buffer is a component of the user data section. This is temporary storage of data from once receiving writing of data from the application to writing to the network interface, and from reading data from the network interface to reading to the application. Each time the application accesses the stream type variable once, it reads and writes one buffer of finite length data, and processes the infinite length data by repeating the reading and writing.

【0024】以下の説明では、バッファをサイクリック
に実装してあることを前提としているが、本発明におい
ては必ずしもサイクリックでなくてもよい。また、管理
部の構成要素として、バッファ情報(バッファのサイク
ル数、1サイクル当たりのデータサイズ、先頭アドレ
ス)、及び、ネットワーク情報(ネットワークプロトコ
ルスタック、サービス品質、自己及び相手のネットワー
クロケーション情報)がある。バッファ情報は前述のバ
ッファに関する情報、ネットワーク情報はクライアント
とサーバとの間の無限長データ用の通信チャネルに関す
る情報である。
In the following description, it is assumed that the buffer is mounted cyclically, but in the present invention, the buffer is not necessarily cyclic. Further, as components of the management unit, there are buffer information (number of buffer cycles, data size per cycle, head address), and network information (network protocol stack, service quality, self and partner network location information). . The buffer information is information on the aforementioned buffer, and the network information is information on a communication channel for infinite-length data between the client and the server.

【0025】なお、アプリケーションとネットワークイ
ンタフェースとの間でデータのコピーを防ぐために、ス
トリーム型の中にバッファを設けない構成とすることも
可能である。
In order to prevent data copying between the application and the network interface, it is also possible to adopt a configuration in which no buffer is provided in the stream type.

【0026】以下に、クライアントアプリケーション1
がサーバオブジェクト5のオペレーションを呼出し、サ
ーバオブジェクト5からクライアントアプリケーション
1に無限長データが流れる場合の動作シーケンスを、図
3乃至6を用いて説明する。ここでは、UNIX等のオ
ペレーティングシステムが提供するネットワークインタ
フェースの一つであるソケットを分散処理環境6が使用
する場合を想定している。図3は動作シーケンスの例を
示す図、図4はクラス「ストリーム」を定義するコード
記述例、図5はクライアントコードの記述例、図6はサ
ーバの実装コードの記述例である。
Hereinafter, the client application 1
Will be described with reference to FIGS. 3 to 6 when an operation of the server object 5 is called and infinite length data flows from the server object 5 to the client application 1. FIG. Here, it is assumed that the distributed processing environment 6 uses a socket which is one of the network interfaces provided by an operating system such as UNIX. FIG. 3 is a diagram showing an example of an operation sequence, FIG. 4 is a code description example for defining a class “stream”, FIG. 5 is a description example of a client code, and FIG. 6 is a description example of an implementation code of a server.

【0027】先ず、クライアント側アプリケーション1
の動作について説明する。クライアント側アプリケーシ
ョン1は、従来のCORBAの要領でサーバオブジェク
ト5のリファレンスを得る(図5の(102) )。このリフ
ァレンスには、サーバ側のネットワークロケーション情
報(IPアドレス及びポート番号)等が含まれている
(これはCORBAが規定するIOR(Inter-Operable
Object Reference) に準ずるものである)。この段階で
は、クライアント側アプリケーション1ではストリーム
型の変数はまだ生成されていない。
First, the client-side application 1
Will be described. The client-side application 1 obtains a reference to the server object 5 in the manner of the conventional CORBA ((102) in FIG. 5). This reference includes server-side network location information (IP address and port number) (this is an IOR (Inter-Operable) defined by CORBA.
Object Reference). At this stage, the stream-type variable has not yet been generated in the client-side application 1.

【0028】次に、クライアント側アプリケーション1
は、自ノードの分散処理環境6に対してサーバオブジェ
クト5へのオペレーション呼出しを行い、ブロック状態
に入る(図3の(1) 、図5の(104) )。クライアント側
アプリケーション1は、サーバオブジェクト5からのリ
ターン(オペレーション呼出しに伴う処理の終了通知)
を待たずに、ブロック状態から解放される(図3の(7)
)。ブロック状態から解放されたときに、ストリーム
型の変数がクライアント側でも生成されている。クライ
アント側アプリケーション1は、この変数の属性(変数
内のバッファ情報)を得る( 図5の(106),(107) )。
Next, the client-side application 1
Performs an operation call to the server object 5 with respect to the distributed processing environment 6 of the own node, and enters a block state ((1) in FIG. 3, (104) in FIG. 5). The client-side application 1 returns from the server object 5 (end notification of processing accompanying the operation invocation)
Is released from the block state without waiting for ((7) in FIG. 3)
). When released from the blocking state, a stream type variable is also created on the client side. The client-side application 1 obtains the attribute of this variable (buffer information in the variable) ((106), (107) in FIG. 5).

【0029】クライアント側アプリケーション1は、ス
トリーム型の変数にアクセスして無限長データを読込
む。1回のアクセスで全データの読込みが終了しない場
合は繰り返し変数にアクセスする(図3の(10)、図5の
(109) 〜(116))。読込みの終了は、クライアント側ア
プリケーション1がデータの内容を判断して自主的に終
了してもよいし(図5の(113),(115))、割込みを受け
て中断してもよい。
The client-side application 1 accesses a stream type variable and reads infinite data. If reading of all data is not completed by one access, the variable is repeatedly accessed ((10) in FIG. 3, FIG. 5).
(109) to (116)). The end of reading may be voluntarily terminated by the client-side application 1 judging the content of the data ((113), (115) in FIG. 5), or may be interrupted by interruption.

【0030】次に、サーバオブジェクト5の動作につい
て説明する。サーバオブジェクト5は、オペレーション
の呼出しを受けると(図3の(3) )、ストリーム型の変
数を生成する(図3の(4),(8) 、図4の(6) )。変数を
生成するときのパラメータにはバッファ情報(サイクル
数、1サイクル当たりのデータサイズ)及びサービス品
質情報(QoS )が含まれる。
Next, the operation of the server object 5 will be described. Upon receiving the operation call ((3) in FIG. 3), the server object 5 generates stream-type variables ((4) and (8) in FIG. 3 and (6) in FIG. 4). The parameters at the time of generating the variables include buffer information (number of cycles, data size per cycle) and quality of service information (QoS).

【0031】変数生成の後、サーバオブジェクト5はス
トリーム型の変数にアクセスして無限長データを書込
む。1回のアクセスで全データの書込みが終了しない場
合は繰り返し変数にアクセスする(図3の(9) 、図6の
(208) 〜(216))。書込みの終了は、サーバオブジェク
ト5が書込むべきデータの内容を判断して自主的に終了
してもよいし(図6の(212),(214))、割込みを受けて
中断してもよい。
After the generation of the variables, the server object 5 accesses the stream type variables and writes the infinite length data. If writing of all data is not completed by one access, the variable is repeatedly accessed ((9) in FIG. 3 and FIG. 6).
(208)-(216)). The end of the writing may be voluntarily terminated by judging the content of the data to be written by the server object 5 ((212), (214) in FIG. 6) or may be interrupted and interrupted. .

【0032】最後にクライアント側及びサーバ側の分散
処理環境6a及び6bの動作を説明する。クライアント側の
分散処理環境6aは、クライアント側アプリケーション1
からオペレーション呼出しを受けると(図3の(1) )、
サーバ側の分散処理環境6bにオペレーション呼出しのメ
ッセージを送る(図3の(2) )。その内容は、サーバオ
ブジェクト5のリファレンス、クライアント側のネット
ワークロケーション情報(IPアドレス及びポート番
号)、オペレーションの種類、パラメータの処理及び値
を含む。次いで、サーバ側の分散処理環境6bは、サーバ
を起動して該当するオブジェクトに対してオペレーショ
ンを呼出す(図3の(3) )。ここまでのシーケンスは従
来のCORBAのオペレーション呼出しと同一である。
Finally, the operation of the client and server distributed processing environments 6a and 6b will be described. The client-side distributed processing environment 6a is the client-side application 1
(1 in Fig. 3)
An operation call message is sent to the distributed processing environment 6b on the server side ((2) in FIG. 3). The content includes a reference to the server object 5, network location information (IP address and port number) on the client side, an operation type, parameter processing and a value. Next, the server-side distributed processing environment 6b starts the server and calls an operation on the corresponding object ((3) in FIG. 3). The sequence up to this point is the same as the conventional CORBA operation call.

【0033】次に、サーバオブジェクト5がストリーム
型の変数インスタンスを生成すると(図3の(3) )、サ
ーバ側の分散処理環境6bは、無限長データの通信用に新
たな通信チャネルを生成する。そのため、新しいソケッ
トを生成し、空いているポート番号を取得して新しいソ
ケットに設定する。続いて、サーバ側の分散処理環境6b
は、クライアント側の分散処理環境6aに対して新たなチ
ャネルへの接続要求のメッセージを送る(図3の(5)
)。その内容にはサーバ側が新たに生成したソケット
の情報(ネットワークアドレス、ポート番号)が含まれ
る。
Next, when the server object 5 generates a stream type variable instance ((3) in FIG. 3), the server side distributed processing environment 6b generates a new communication channel for communication of infinite length data. . Therefore, a new socket is created, an available port number is obtained, and the new socket is set. Next, the server side distributed processing environment 6b
Sends a message requesting connection to a new channel to the client-side distributed processing environment 6a ((5) in FIG. 3).
). The contents include socket information (network address, port number) newly generated by the server.

【0034】クライアント側の分散処理環境6aは、サー
バ側に新しいソケットを生成する。次に、空いているポ
ート番号をソケットに設定する。そしてサーバ側に完了
通知のメッセージを送る(図3の(6) )。更に、クライ
アントアプリケーション1のブロックを解除する(図3
の(7) )。このとき、クライアント側のストリーム型の
変数インスタンスも生成されている。サーバ側の分散処
理環境6bは、クライアント側から接続完了の通知を受け
ると、変数の生成に関わる処理を終了する(図3の(8)
)。
The client side distributed processing environment 6a generates a new socket on the server side. Next, a free port number is set in the socket. Then, a completion notification message is sent to the server side ((6) in FIG. 3). Further, the client application 1 is unblocked (FIG. 3
(7)). At this time, a stream-type variable instance on the client side is also generated. Upon receiving the notification of the connection completion from the client side, the distributed processing environment 6b on the server side ends the processing related to the generation of the variable ((8) in FIG. 3).
).

【0035】サーバ側の分散処理環境6bは、サーバオブ
ジェクト5からストリーム型の変数(内のバッファ)へ
の書込みを受けると(図3の(9) )、変数内のバッファ
のデータを無限長データの通信用のソケットに対して書
込む。一方、クライアント側の分散処理環境6aは、クラ
イアントアプリケーション1からストリーム型の変数か
らの読込み要求を受けると(図3の(10))、無限長デー
タの通信用のソケットからデータを読込み、そのデータ
をクライアントアプリケーション1に渡す。
When the server-side distributed processing environment 6b receives the writing from the server object 5 to the stream-type variable (the buffer therein) ((9) in FIG. 3), the data in the buffer in the variable is converted into the infinite-length data. Write to the socket for communication. On the other hand, when the client-side distributed processing environment 6a receives a read request from a stream-type variable from the client application 1 ((10) in FIG. 3), the client-side distributed processing environment 6a reads data from a communication socket for infinite-length data, and reads the data. Is passed to the client application 1.

【0036】なお、この実施例においては、無限長デー
タ用の通信チャネルのインタフェースとしてソケットを
用いたが、勿論他のものでもよい。必要なことは、サー
バ側及びクライアント側双方の分散処理環境が互いにネ
ットワークロケーション情報の授受及び接続要求等を行
うことである。また、分散処理環境間のやりとり及び処
理は、サーバオブジェクト及びクライアントアプリケー
ションには見えないものであり、サーバはストリーム型
の変数を生成する(プログラミング上では、変数宣言す
る)のみであることに注意すべきである。
In this embodiment, a socket is used as an interface of a communication channel for infinite-length data, but of course, another type may be used. What is necessary is that the distributed processing environment on both the server side and the client side mutually transmit and receive network location information and make a connection request. Also, note that the exchange and processing between the distributed processing environments are invisible to the server object and the client application, and the server only generates stream-type variables (programmatically declares variables). Should.

【0037】次に、アプリケーション開発者のコード記
述例を説明する。IDL記述は、図4のAに示すとお
り、シグネチャ「stream」がストリーム型を意味する。
アプリケーション開発者は、このシグネチャを用いてス
トリーム型のパラメータを宣言する。「out 」とあるの
は、従来のデータ型と同じように、サーバ側からクライ
アント側に無限長データが流れることを示している。
Next, an example of code description by an application developer will be described. In the IDL description, as shown in FIG. 4A, the signature “stream” means a stream type.
The application developer declares a stream type parameter using this signature. “Out” indicates that infinite length data flows from the server side to the client side as in the conventional data type.

【0038】C++をプログラミング言語としたコード
記述例は、図4のB、図5及び図6に示すとおりであ
る。図4のBはストリーム型のクラス宣言である。これ
は、IDLコンパイラが、上述のIDL記述を入力と
し、ヘッダファイルとしてストリーム型のクラス宣言を
出力するものである。(3) 〜(8) は、ストリーム型に対
するオペレーションである。そのうち(3),(4) はストリ
ーム型の変数の初期化に用いられる。特に(4) ではバッ
ファサイズ等の情報を同時に設定する。(5),(6) はバッ
ファサイズ等の情報を得るためのオペレーションであ
る。(7) はバッファサイクルのインデックスを指定して
そのインデックスのバッファにあるデータを読込むオペ
レーションである。(8) は(7) とは逆にデータを書込む
オペレーションである。
Code descriptions using C ++ as a programming language are as shown in FIGS. 4B, 5 and 6. B in FIG. 4 is a stream type class declaration. In this method, the IDL compiler receives the above IDL description and outputs a stream type class declaration as a header file. (3) to (8) are operations for the stream type. Of these, (3) and (4) are used to initialize stream type variables. In particular, in (4), information such as the buffer size is set at the same time. (5) and (6) are operations for obtaining information such as the buffer size. (7) is an operation of designating the index of the buffer cycle and reading the data in the buffer of that index. (8) is an operation to write data in the reverse of (7).

【0039】図5は、クライアント側アプリケーション
の実装コード、図6はサーバのオペレーションの実装コ
ードである。これらのコードについては、上述の動作シ
ーケンスの説明の中で述べたとおりである。なお、図5
の(104),(112) は、ストリーム型の変数から読込んだデ
ータの処理に関するものである。また、図6の(204),(2
10) は、ストリーム型の変数に書込むべきデータの処理
に関するものである。
FIG. 5 shows the implementation code of the client-side application, and FIG. 6 shows the implementation code of the server operation. These codes are as described in the above description of the operation sequence. FIG.
(104) and (112) relate to processing of data read from a stream type variable. Also, (204), (2) in FIG.
Item 10) concerns the processing of data to be written to stream type variables.

【0040】上述の実施例の説明においては、無限長デ
ータの流れがサーバオブジェクトからクライアントアプ
リケーションに向かう例について説明したが、逆に、ク
ライアントアプリケーションからサーバオブジェクトに
向かう場合も同様にして実現できることは勿論である。
In the above description of the embodiment, an example in which the flow of infinite data flows from the server object to the client application has been described. On the contrary, it is needless to say that the same applies to the case where the flow is from the client application to the server object. It is.

【0041】以上の実施例の説明から、分散処理環境
は、クライアントアプリケーション及びサーバオブジェ
クト共に、無限長データを通信するためにネットワーク
管理インタフェースを使用する必要がなく、また、意識
する必要もないことが分かる。従って、アプリケーショ
ン開発者にとって無限長データの扱いが簡素化され、ア
プリケーション開発負担を軽減できる利点を持つ。
From the above description of the embodiment, it is clear that the distributed processing environment does not require the use of the network management interface to communicate infinite-length data for both the client application and the server object, and does not need to be aware of it. I understand. Therefore, there is an advantage that the handling of infinite length data is simplified for the application developer, and the application development burden can be reduced.

【0042】また、実施例の説明から、無限長データへ
のアクセス手段をオペレーションのパラメータとして提
供しており、無限長データへのアクセスを可能にするた
めの通信開始或いは通信停止等のオペレーションの定義
を必要としないことが分かる。従って、この実施例によ
れば、アプリケーション開発の柔軟性を損なわないとい
う利点を持つ。
Also, from the description of the embodiment, means for accessing infinite-length data is provided as an operation parameter, and the definition of operations such as starting or stopping communication for enabling access to infinite-length data. Is not required. Therefore, according to this embodiment, there is an advantage that flexibility of application development is not impaired.

【0043】[0043]

【発明の効果】以上説明したとおり、本発明は以下のよ
うな効果を奏する。即ち、第1に、有限長データの通信
と無限長データの通信とを、要求応答型という同一の通
信作法で行うことができるようになった。実現の形態の
例としては、RPC又は分散処理環境において、サーバ
の手続き又はサーバオブジェクトのオペレーションを呼
出すという作法で、有限長データの通信及び無限長デー
タの通信双方を実現できる。これは、両種類のデータを
扱うシステムでも、一貫したシステム開発が可能になる
ことを示している。特に、CORBA等の分散オブジェ
クト環境では、有限長データに限らず無限長データに関
するサービスを提供する主体をもオブジェクトと表すこ
とができるので、システムの分析、設計、実装といった
一連の開発サイクルを、オブジェクト指向という一貫し
た手法で行うことができる。また、トレーダ及びネーム
サービス等の汎用のオブジェクトサービスを、無限長デ
ータのサービスを提供するオブジェクトに関してそのま
ま利用できる利点もある。第2には、ネットワーク管理
インタフェースを意識せずに無限長データの通信を開発
でき、無限長データの扱いを簡素化してアプリケーショ
ン開発の負担を軽減することができる利点がある。
As described above, the present invention has the following effects. That is, first, communication of finite-length data and communication of infinite-length data can be performed by the same communication manner of request-response type. As an example of the mode of implementation, in the RPC or distributed processing environment, both the communication of the finite-length data and the communication of the infinite-length data can be realized by calling the procedure of the server or the operation of the server object. This indicates that consistent system development is possible even for systems that handle both types of data. In particular, in a distributed object environment such as CORBA, a subject that provides a service for infinite length data as well as finite length data can be represented as an object. It can be done in a consistent manner called orientation. Further, there is an advantage that general-purpose object services such as a trader and a name service can be used as they are for an object providing an infinite-length data service. Secondly, there is an advantage that communication of infinite length data can be developed without being conscious of the network management interface, and the handling of infinite length data can be simplified to reduce the burden of application development.

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

【図1】分散処理環境とアプリケーションとの全体構成
の機能分類を示す図である。
FIG. 1 is a diagram showing functional classifications of the overall configuration of a distributed processing environment and an application.

【図2】分散処理環境の全体構成を示す図である。FIG. 2 is a diagram illustrating an entire configuration of a distributed processing environment.

【図3】動作シーケンスの例を示す図である。FIG. 3 is a diagram showing an example of an operation sequence.

【図4】クラス「ストリーム」を定義するコード記述例
を示す図である。
FIG. 4 is a diagram illustrating a code description example that defines a class “stream”.

【図5】クライアントコードの記述例を示す図である。FIG. 5 is a diagram illustrating a description example of a client code.

【図6】サーバの実装コードの記述例を示す図である。FIG. 6 is a diagram illustrating a description example of a server implementation code.

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

1 クライアントアプリケーション 2 クライアント側データ処理部 3 データ通信部 4 サーバ側データ処理部 5 サーバオブジェクト 6 分散処理環境 6a クライアント側分散処理環境 6b サーバ側分散処理環境 10 コンピュータ REFERENCE SIGNS LIST 1 client application 2 client-side data processing unit 3 data communication unit 4 server-side data processing unit 5 server object 6 distributed processing environment 6a client-side distributed processing environment 6b server-side distributed processing environment 10 computer

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】 アプリケーション間で、一方のアプリケ
ーションが要求を起こし、他方のアプリケーションがそ
れに応じ、データの型をストリーム型に指定し、分散処
理環境がこの指定に従い、有限長データの授受を繰り返
し行うことにより、アプリケーション間で無限長データ
を通信することを特徴とする要求応答型無限長データ通
信方法。
An application issues a request between applications, and the other application specifies a data type as a stream type in response to the request, and the distributed processing environment repeatedly sends and receives finite-length data according to the specification. A request-response-type infinite-length data communication method characterized by communicating infinite-length data between applications.
JP20894297A 1997-08-04 1997-08-04 Request response type infinite data communication method Expired - Lifetime JP3569114B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20894297A JP3569114B2 (en) 1997-08-04 1997-08-04 Request response type infinite data communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20894297A JP3569114B2 (en) 1997-08-04 1997-08-04 Request response type infinite data communication method

Publications (2)

Publication Number Publication Date
JPH1153273A true JPH1153273A (en) 1999-02-26
JP3569114B2 JP3569114B2 (en) 2004-09-22

Family

ID=16564696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20894297A Expired - Lifetime JP3569114B2 (en) 1997-08-04 1997-08-04 Request response type infinite data communication method

Country Status (1)

Country Link
JP (1) JP3569114B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001249873A (en) * 2000-03-07 2001-09-14 Nippon Telegr & Teleph Corp <Ntt> Contents information distribution network, processing method and storage medium
JP2002094561A (en) * 2000-09-19 2002-03-29 Nippon Telegr & Teleph Corp <Ntt> Network, switch, router and gateway for semantic information, and method and device for event routing
US7702744B2 (en) 2000-03-07 2010-04-20 Nippon Telegraph And Telephone Corporation Semantic information network (SION)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001249873A (en) * 2000-03-07 2001-09-14 Nippon Telegr & Teleph Corp <Ntt> Contents information distribution network, processing method and storage medium
US7702744B2 (en) 2000-03-07 2010-04-20 Nippon Telegraph And Telephone Corporation Semantic information network (SION)
US7747697B2 (en) 2000-03-07 2010-06-29 Nippon Telegraph And Telephone Corporation Semantic information network (SION)
JP2002094561A (en) * 2000-09-19 2002-03-29 Nippon Telegr & Teleph Corp <Ntt> Network, switch, router and gateway for semantic information, and method and device for event routing

Also Published As

Publication number Publication date
JP3569114B2 (en) 2004-09-22

Similar Documents

Publication Publication Date Title
US7814211B2 (en) Varying of message encoding
Foster et al. Managing multiple communication methods in high-performance networked computing systems
US6807667B1 (en) Method and system of an application program interface for abstracting network traffic control components to application programs
US7200676B2 (en) Transmitting and receiving messages through a customizable communication channel and programming model
US6694368B1 (en) Communication apparatus and method between distributed objects
US6951021B1 (en) System and method for server-side communication support in a distributed computing environment
US7665096B2 (en) DDS-assisted CORBA discovery
US20030233477A1 (en) Extensible infrastructure for manipulating messages communicated over a distributed network
JP2002505466A (en) Remote method invocation method and apparatus
US10303529B2 (en) Protocol for communication of data structures
US20020046304A1 (en) Dynamic class loading
Lohse et al. An open middleware architecture for network-integrated multimedia
CN109547243B (en) DDS-based cross-network-segment communication method
US20070233876A1 (en) Interprocess communication management using a socket layer
US11711411B2 (en) Method for transparent zero-copy distribution of data to DDS applications
JPH08115288A (en) Communication management method
WO2023169267A1 (en) Network device-based data processing method and network device
US20050034099A1 (en) Method of developing software programs for resource constrained mobile computing devices
JP3569114B2 (en) Request response type infinite data communication method
US6823521B1 (en) Apparatus and method for communicating between computer systems using active datastreams
Fauth et al. Remote procedure call: Technology, standardization and OSF’s distributed computing environment
Gokhale et al. Operating system support for high-performance, real-time CORBA
JP2000151739A (en) Information processor, distributed processor and network system
CN114594935A (en) SOA service application development framework and method based on IDL compiler and DDS-RPC framework
Coulson et al. Experiences in implementing a distributed object platform for multimedia applications

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040520

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040615

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040617

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

Free format text: PAYMENT UNTIL: 20090625

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090625

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100625

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100625

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110625

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120625

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130625

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20140625

Year of fee payment: 10

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term