JP2003114805A - Information processing unit and method - Google Patents

Information processing unit and method

Info

Publication number
JP2003114805A
JP2003114805A JP2001310861A JP2001310861A JP2003114805A JP 2003114805 A JP2003114805 A JP 2003114805A JP 2001310861 A JP2001310861 A JP 2001310861A JP 2001310861 A JP2001310861 A JP 2001310861A JP 2003114805 A JP2003114805 A JP 2003114805A
Authority
JP
Japan
Prior art keywords
rpc
client
information processing
function
task
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.)
Pending
Application number
JP2001310861A
Other languages
Japanese (ja)
Inventor
Yukinori Asada
幸則 浅田
Hideki Kuwamoto
英樹 桑本
Katsuya Miyata
克也 宮田
Tokihiro Sakayama
祝広 坂山
Naoki Mori
直樹 森
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001310861A priority Critical patent/JP2003114805A/en
Publication of JP2003114805A publication Critical patent/JP2003114805A/en
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

PROBLEM TO BE SOLVED: To implement a remote procedure call (RPC) mechanism capable of operating in a constrained memory size in response to procedure methods of blocking call and non-blocking call. SOLUTION: Each RPC client stub corresponding to a function call procedure of each of blocking call or non-blocking call is provided. An RPC client task commonly used for a plurality of RPCs is provided at a client side of the RPC, and a RPC server task commonly used for a plurality of RPCs in the same manner as above is proved at a server side of the RPC. In non-blocking call, the RPC client task calls for call back function based on the result of RPC's performance. In blocking call, it returns the performance result to the RPC client stub.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】複数のCPU(処理ユニット)
から構成され、第一のCPUで実行される処理が第二のCPU
で実行される処理を呼び出す機能を備えた情報報処理装
置及び方法に関する。
TECHNICAL FIELD The present invention relates to a plurality of CPUs (processing units).
The process executed by the first CPU is composed of
The present invention relates to an information report processing device and method having a function of calling a process executed in 1.

【0002】[0002]

【従来の技術】ある機能を実現する処理を複数のCPU
(処理ユニット)で実行する例は以前から多くある。こ
れらは主に分散処理(DCE:Distributed Computing Env
ironment)の分野で用いられ、その目的は、処理負荷を
複数のCPUに分散したり、特定の処理を専門的に高速に
行うCPUを、ネットワークを介して接続した他のCPUから
利用する場合である。この分散処理を実現するための中
心的な手段がRPC(RemoteProcedure Call)であり、異
なるCPU間で他のCPU(Remote)で実行する関数を呼び出す
機構である。標準化されたRPCの処理はIETF(Internet E
ngineering Task Force)が発行する文書RFC1831(RPC:
Remote Procedure Call Protocol Specification Versi
on 2. R.)に既定されている。なお、CPUにより命令セ
ットが異なる場合でもCPU間にまたがって関数の呼び出
しが行えるように、CPU間で伝送するRPCに関わるデータ
はXDRと呼ばれる共通のフォーマットが既定されてい
る。XDRはRFC1832(XDR: External Data Representation
Standard)に既定されている。
2. Description of the Related Art Processing for realizing a certain function is performed by multiple CPUs.
There are many examples of execution in (processing unit). These are mainly distributed processing (DCE: Distributed Computing Env.
It is used in the field of ironment) and its purpose is to distribute the processing load to multiple CPUs, or to use a CPU that specially performs high-speed specific processing from other CPUs connected via a network. is there. RPC (Remote Procedure Call) is a central means for realizing this distributed processing, and is a mechanism for calling a function executed by another CPU (Remote) between different CPUs. IETF (Internet E
ngineering Task Force) document RFC 1831 (RPC:
Remote Procedure Call Protocol Specification Versi
on 2. R.). The data related to RPC transmitted between CPUs has a common format called XDR so that functions can be called across CPUs even when the instruction set differs depending on the CPUs. XDR is RFC1832 (XDR: External Data Representation
Default).

【0003】[0003]

【発明が解決しようとする課題】従来のRPCは同一種類
のOSが動作するCPU間で用いられていた。よって、関数
の呼び出し手続き方法は、CPU間で同一であった。しか
し、OSの種類が異なる場合は、関数の利用方法も異なる
場合があり、異なるOS間でのRPCの適用は困難であっ
た。特に、関数の呼び出し手続き方法には、後に実施例
中で説明するブロッキングコールとノンブロッキングコ
ールの種類がある。また、従来は分散処理の主な適用先
はワークステーションやサーバであり、メモリ等の資源
を豊富に使用できる環境であった。一方、携帯電話を初
めとする小型情報処理機器に搭載されている組込みOSで
は、使用できるメモリ容量が限られている。従来のRPC
では、一つの関数手続きに対して一つのサーバタスクを
逐次生成して処理したが、組み込み機器では、このよう
に必要に応じてメモリを動的に確保してプロセスを生成
させることは一般的に避けたい。
The conventional RPC has been used between CPUs operating the same type of OS. Therefore, the procedure for calling a function was the same between CPUs. However, when the type of OS is different, the usage of the function may be different, and it is difficult to apply RPC between different OSs. In particular, there are types of blocking call and non-blocking call, which will be described later in the embodiments, as the method for calling a function. In the past, the main application destinations of distributed processing were workstations and servers, and an environment in which resources such as memory could be abundantly used. On the other hand, the memory capacity that can be used is limited in the embedded OS installed in small information processing devices such as mobile phones. Traditional RPC
Then, one server task was sequentially generated and processed for one function procedure. However, in embedded devices, it is generally common to dynamically allocate memory as needed to generate a process. I want to avoid it.

【0004】このように、従来のRPCの機構は、ブロッ
キングコールとノンブロッキングコールの差異を取り扱
えず、また制限されたメモリ容量での動作が困難であ
り、本発明の目的はこれらを解決することにある。
As described above, the conventional RPC mechanism cannot handle the difference between the blocking call and the non-blocking call, and it is difficult to operate with a limited memory capacity. The object of the present invention is to solve these problems. is there.

【0005】[0005]

【課題を解決するための手段】上述の課題は以下の手段
を設けることにより解決することができる。ブロッキン
グコールとノンブロッキングコールの各々の関数呼び出
し手続き方法に対応した各々のRPCクライアントスタブ
を設ける。RPCの要求元タスクは、RPCで処理しようとす
る関数のRPCクライアントスタブを呼び出す。RPCのクラ
イアント側に複数のRPCに共通に使用されるRPCクライア
ントタスクを一つ設ける。該RPCクライアントタスクはR
PCクライアントスタブからの要求メッセージ(引数パラ
メータ)をキューイングして、順次処理する。該RPCク
ライアントタスクは、他のCPU上で動作するRPCサーバタ
スクに要求メッセージ(引数パラメータ)を伝送する。
該RPCサーバタスクは該要求メッセージを基に関数を該C
PU上で実行し、その実行結果をRPCクライアントタスク
に返信する。RPCクライアントタスクは、ノンブロッキ
ングコールの場合は、該実行結果に基づきコールバック
関数を呼び出す。ブロッキングコールの場合はRPCクラ
イアントスタブに該実行結果を返信する。
The above-mentioned problems can be solved by providing the following means. Provide each RPC client stub corresponding to each function calling procedure method of blocking call and non-blocking call. The RPC requesting task calls the RPC client stub of the function to be processed by RPC. One RPC client task that is commonly used for multiple RPCs is provided on the client side of RPC. The RPC client task is R
The request message (argument parameter) from the PC client stub is queued and processed sequentially. The RPC client task transmits a request message (argument parameter) to the RPC server task operating on another CPU.
The RPC server task executes a function based on the request message to the C
Execute on PU and return the execution result to RPC client task. In the case of a non-blocking call, the RPC client task calls a callback function based on the execution result. In the case of a blocking call, the execution result is returned to the RPC client stub.

【0006】[0006]

【発明の実施の形態】本発明を携帯電話に適用した実施
例に関して以下に説明する。 (システム構成)図1は、二つのCPUを具備する携帯電話
を説明する図である。図1において、1は携帯電話、10a
は電話のプロトコル制御を中心に行うCPU-A、10bはアプ
リケーションの処理を中心に行うCPU-B、11は電話の送
受信などの処理を行う電話回線部、12はアンテナ、13
a、13bは表示部、14は入力部、15a、15bはデータを記憶
する記憶部、16a、16bはスピーカ、17はマイク、18a、1
8bは二つのCPU間の通信プロトコルを処理するRPC(Remo
te Procedure Call)部、19は二つのCPUを物理的に接続
するCPU間I/F部である。
BEST MODE FOR CARRYING OUT THE INVENTION An embodiment in which the present invention is applied to a mobile phone will be described below. (System Configuration) FIG. 1 is a diagram for explaining a mobile phone having two CPUs. In FIG. 1, 1 is a mobile phone, 10a
Is CPU-A that mainly controls the protocol of the telephone, 10b is CPU-B that mainly performs the processing of applications, 11 is the telephone line section that performs processing such as sending and receiving telephone calls, 12 is an antenna, 13
a and 13b are display units, 14 is an input unit, 15a and 15b are storage units for storing data, 16a and 16b are speakers, 17 is a microphone, and 18a and 1a.
8b is an RPC (Remo
te Procedure Call) section, 19 is an I / F section between CPUs that physically connects two CPUs.

【0007】CPU-A(10a)は、携帯電話1における主に無
線通信に関連する処理を行い。CPU-B(10b)は、主に携帯
電話のアプリケーションに関連する処理(Webブラウ
ザ、メーラー、チャットクライアント、静止画、動画の
撮像または再生)を行う。CPU-A(10a)側の表示部13a
は、携帯電話の背面に設けられた小型の液晶表示装置で
あり、時刻や着信時の送信元の電話番号、メールアドレ
スの表示等を行う。CPU-B(10b)側の表示部13bは、大型
のカラー液晶表示装置であり、Webブラウザのページ画
面、動画、静止画の再生画面等の表示を行う。さらに、
携帯電話1の待受け時は、消費電力の低減のため、CPU-B
(10b)の動作を停止させ、着信時や携帯電話の操作時にC
PU-B(19b)を起動し、必要な処理を行う。CPU-A(10a)とC
PU-B(10b)では、CPUの種類が異なり、命令セットにも互
換性が無い。なお、参考として、従来の1つのCPU(20)
で構成した携帯電話機のシステム構成を図2に示す。21
は電話の送受信などの処理を行う電話回線部、22はアン
テナ、23は表示部、24は入力部、25はデータを記憶する
記憶部、26はスピーカ、27はマイクである。
The CPU-A (10a) mainly performs processing relating to wireless communication in the mobile phone 1. The CPU-B (10b) mainly performs processing related to mobile phone applications (Web browser, mailer, chat client, still image, moving image pickup or reproduction). Display 13a on the CPU-A (10a) side
Is a small liquid crystal display device provided on the back surface of the mobile phone, and displays the time, the telephone number of the sender of the incoming call, the mail address, and the like. The display unit 13b on the CPU-B (10b) side is a large-sized color liquid crystal display device and displays a page screen of a Web browser, a moving image, a reproduction screen of a still image, and the like. further,
When the mobile phone 1 is on standby, CPU-B is used to reduce power consumption.
Stop the operation of (10b) and press C when receiving a call or operating a mobile phone.
Start up PU-B (19b) and perform necessary processing. CPU-A (10a) and C
PU-B (10b) is different in CPU type and instruction set is not compatible. For reference, one conventional CPU (20)
FIG. 2 shows the system configuration of the mobile phone configured as described above. twenty one
Is a telephone line section for performing processing such as transmission / reception of a telephone, 22 is an antenna, 23 is a display section, 24 is an input section, 25 is a storage section for storing data, 26 is a speaker, and 27 is a microphone.

【0008】(RPCの適用)本実施例における携帯電話1
は、二つのCPU18a、18bを具備し、CPU間で通信を行うた
めに、CPU間I/F部19とRPC部18a、18bを具備しているこ
とが特徴である。CPU間I/F部19は、例えばメモリなどの
記憶装置である。RPC部18a、18bは、異なるCPU間で、手
続き型の関数コールを可能にするための部位である。CP
U間で、他のCPUで実行する関数を互いに呼び出し合うこ
とを可能にすることにより、CPU間でのデータの転送、
イベントの通知、処理の依頼等を行うことができる。
(Application of RPC) Mobile phone 1 in this embodiment
Is characterized by including two CPUs 18a and 18b, and an inter-CPU I / F unit 19 and RPC units 18a and 18b in order to perform communication between the CPUs. The inter-CPU I / F unit 19 is a storage device such as a memory. The RPC parts 18a and 18b are parts for enabling procedural function calls between different CPUs. CP
Transferring data between CPUs by allowing U to call functions that execute on other CPUs,
Event notification, processing request, etc. can be performed.

【0009】(ブロッキング型関数とノンブロッキング
型関数についての一般的な説明)一般的に関数は、ブロ
ッキング型関数とノンブロッキング型関数の二つに分類
することができる。ブロッキング関数を使用すると、関
数が実行結果を返すまでその関数を呼び出したプロセス
が停止して、ブロックする。一方ノンブロッキング関数
は、その関数の呼び出し結果は直ちに戻り、関数の実行
結果自体は、後で呼び出し元のプロセスに通知される。
よって、呼び出し元のプロセスは、呼び出し時と実行結
果通知時の間に処理を続行することが可能であり、関数
の処理とプロセスの実行を非同期に行うことができる。
ノンブロッキング型関数の場合、関数の処理結果はコー
ルバック関数を使用して返すことが一般的である。コー
ルバック関数とは、関数呼び出しの際に、第2の関数の
アドレスをパラメータとして渡すことで、呼び出した関
数の処理完了時に、呼び出し元のプロセスが提供する第
2の関数を呼び出すことができる。この際の呼び出した
関数から実行される関数をコールバック関数と呼ぶ。
(General Description of Blocking Type Function and Non-blocking Type Function) Generally, functions can be classified into two types: blocking type functions and non-blocking type functions. When you use a blocking function, the process that called the function stops and blocks until the function returns an execution result. On the other hand, the non-blocking function returns the call result of the function immediately, and the execution result itself of the function is later notified to the calling process.
Therefore, the calling process can continue the processing between the calling time and the execution result notification time, and the function processing and the process execution can be performed asynchronously.
In the case of a non-blocking type function, the processing result of the function is generally returned using a callback function. A callback function is a function provided by the calling process when the processing of the called function is completed by passing the address of the second function as a parameter when the function is called.
You can call two functions. A function executed from the called function at this time is called a callback function.

【0010】(RPC処理方法)以下、RPC部18a、18bにつ
いて、異なるCPU間でのブロッキング型関数とノンブロ
ッキング型関数それぞれの呼出し方法を説明する。
(RPC Processing Method) Hereinafter, with respect to the RPC units 18a and 18b, a method of calling a blocking type function and a non-blocking type function between different CPUs will be described.

【0011】(ノンブロッキング型関数の処理)ノンブ
ロッキング型関数の呼び出し方法について、図3〜図6を
用いて説明する。
(Processing of Non-blocking Function) A method of calling a non-blocking function will be described with reference to FIGS.

【0012】(ノンブロッキング型関数の処理構成)図
3は、CPU-A 10a上で動作するアプリケーション104が、C
PU-B 10bで動作するノンブロッキング関数105をCPU間に
またがって呼び出す方法を説明するブロック図である。
図3において、図1と同じ番号を付加してある各ブロック
についての説明は省略する。101、103はそれぞれクライ
アント・スタブ、サーバ・スタブと呼ばれるCPU間通信
を行うためのモジュール、102はコールバックを行うコ
ールバック関数、104はノンブロッキング型関数work_nb
( )(105)を呼び出すアプリケーションプログラム(関
数)、105はノンブロッキング型の関数work_nb( )であ
る。また、CPU間通信は双方向とし、RPC部18a、18bは、
要求を出す側がクライアント(関数を呼び出す側)、要
求を受ける側をサーバ(関数を処理する側)とする。こ
れを実現するために、RPC部18a、18bは、RPCクライアン
ト181a、181bとRPCサーバ182a、182bで構成する。1811
a、1811bは、RPCクライアント181a、181bが具備してい
る送信監視部でエラー制御などを行う。1821a、1821b
は、RPCサーバが具備しているDispatcher(ディスパッチ
ャ)で、RPCクライアント182a、182bからの要求を解析
し、目的のサーバ・スタブ103を呼び出す。1011は異な
るCPU間でデータの互換性を持たせるために共通フォー
マット(XDR:External Data Representation)へ変換
するデータ変換部、1021は前期データ変換部1011で変換
されたデータを復元するデータ復元部である。
(Processing configuration of non-blocking type function)
3 is the application 104 running on the CPU-A 10a, C
It is a block diagram explaining the method of calling the non-blocking function 105 which operates in PU-B 10b across CPUs.
In FIG. 3, description of each block to which the same numbers as in FIG. 1 are added will be omitted. 101 and 103 are modules for performing inter-CPU communication called client stub and server stub, 102 is a callback function for making a callback, and 104 is a non-blocking type function work_nb
() An application program (function) that calls (105), and 105 is a non-blocking type function work_nb (). Also, the communication between the CPUs is bidirectional, and the RPC units 18a and 18b are
The side that issues the request is the client (the side that calls the function), and the side that receives the request is the server (the side that processes the function). In order to realize this, the RPC units 18a and 18b are composed of RPC clients 181a and 181b and RPC servers 182a and 182b. 1811
Reference characters a and 1811b are transmission monitoring units included in the RPC clients 181a and 181b and perform error control and the like. 1821a, 1821b
Is a Dispatcher included in the RPC server, analyzes requests from the RPC clients 182a and 182b, and calls the target server stub 103. 1011 is a data conversion unit that converts data to a common format (XDR: External Data Representation) to make data compatible between different CPUs, and 1021 is a data recovery unit that restores the data converted by the previous data conversion unit 1011. is there.

【0013】なお、各モジュール104、105、181、182は
リアルタイムマルチタスクOS上で動作するタスクであ
る。各タスク間の通信は該リアルタイムOSがサポートす
るタスク間メッセージ通信である。さらに、CPU-A(10a)
とCPU-B(10b)では、リアルタイムOSの種類が異なる。メ
ッセージクライアントスタブ101はアプリケーション104
のタスクから呼び出される関数処理、コールバック102
はRPCクライアント181から呼び出される関数処理、サー
バスタブ103はRPCサーバ182から呼び出される関数処理
である。
The modules 104, 105, 181, and 182 are tasks that operate on the real-time multitasking OS. Communication between each task is message communication between tasks supported by the real-time OS. Furthermore, CPU-A (10a)
And CPU-B (10b), the type of real-time OS is different. Message client stub 101 is application 104
Function that is called from the task of, callback 102
Is a function process called from the RPC client 181, and the server stub 103 is a function process called from the RPC server 182.

【0014】(ノンブロッキング型関数の処理シーケン
ス)図4は、CPU-A 10a上で動作するアプリケーション10
4が、CPU-B 10bで動作するノンブロッキング関数work_n
b( )を遠隔で呼び出す方法を説明するシーケンス図であ
る。アプリケーション104は、他のCPU-B(10b)側にある
ノンブロッキング型関数work_nb( )を、同じCPU-A(10a)
側にある関数と同じ通常の手続きで呼び出す(図4のS10
1)。クライアント・スタブ101は、アプリケーション104
がwork_nb( )に設定した引数をXDRのフォーマットにデ
ータ変換し(図4のS102)、RPCクライアント181aが提供す
るAPI関数rpcMsgSendNB( )を用いてRPCクライアント181
aに送信する(図4のS103)。前記API関数rpcMsgSendNB( )
の処理は、RPCクライアント181aにS102で変換した引数
データを送信した後、クライアント・スタブ101にretur
n(図4のS104)し、続いてアプリケーション104にreturn
する(図4のS105)。RPCクライアント181aは、引数データ
を受信すると、その引数データに後に説明する図5に示
すヘッダを付加し、CPU-B(10)に送信するためのメッセ
ージを作成する。
(Non-blocking Function Processing Sequence) FIG. 4 shows an application 10 operating on the CPU-A 10a.
4 is a non-blocking function work_n that runs on CPU-B 10b
It is a sequence diagram explaining the method of calling b () remotely. Application 104 uses the non-blocking function work_nb () on the other CPU-B (10b) side for the same CPU-A (10a)
Call with the same normal procedure as the function on the side (S10 in Fig. 4
1). The client stub 101 is the application 104
Converts the argument set in work_nb () into the XDR format (S102 in FIG. 4) and uses the API function rpcMsgSendNB () provided by the RPC client 181a to execute the RPC client 181.
to a (S103 in FIG. 4). The API function rpcMsgSendNB ()
The process is to send the argument data converted in S102 to the RPC client 181a, and then retur to the client stub 101.
n (S104 in FIG. 4), and then return to the application 104.
(S105 in FIG. 4). Upon receiving the argument data, the RPC client 181a adds a header shown in FIG. 5 described later to the argument data and creates a message to be sent to the CPU-B (10).

【0015】本実施例では、説明を簡単にするためアプ
リケーションは104一つのみだが、通常は複数のアプリ
ケーションが存在する。もし、S103において複数のアプ
リケーションからCPU-B(10b)にある関数の処理要求メッ
セージ(関数の引数)をRPCクライアント181aに送信さ
れた場合は、RPCクライアント181aが提供するキューに
処理要求メッセージ(関数の引数)がキューイングされ
る。RPCクライアント181aは、キューイングされた要求
を順次処理する。なお、もし優先指定されたメッセージ
を受信した場合は、優先指定されたメッセージを優先し
て処理する。また、該優先指定には、時間的に先に依頼
した処理要求メッセージを後回しにする指定と、破棄す
る指定が可能であり、そのメッセージ中に記述される。
これは携帯電話におけるエラー処理など、時間的に先に
依頼された処理要求メッセージを後回しまたは破棄して
緊急に処理すべき要求がある場合に用いられる。
In this embodiment, there are only 104 applications for the sake of simplicity, but there are usually a plurality of applications. If the processing request message (function argument) of the function in the CPU-B (10b) is sent to the RPC client 181a from multiple applications in S103, the processing request message (function) is sent to the queue provided by the RPC client 181a. ) Is queued. The RPC client 181a sequentially processes the queued requests. If a message with priority designation is received, the message with priority designation is given priority and processed. Further, in the priority designation, it is possible to postpone the processing request message requested earlier in time, and to discard it, which is described in the message.
This is used when there is a request for urgent processing such as error processing in a mobile phone, which is to postpone or discard the processing request message requested earlier in time.

【0016】RPCクライアント181aは、メッセージ(要求
RPCヘッダ+引数データ)300をCPU間I/F部19に送信する
(図4のS106)。RPCクライアント181aは、メッセージを送
信した後、送信監視を行い(図4のS107)、送信失敗時の
エラー処理やreturn値が戻ってこないなどのタイムアウ
ト処理を行う。このときのエラー通知は、アプリケーシ
ョン104が提供しているコールバック関数callback( )を
用いる(図4のS122a)。コールバック関数callback( )
は、work_nb( )を呼び出したアプリケーション104に対
して、エラー通知を戻り値として返す(図4のS123a)。
The RPC client 181a sends a message (request
Send RPC header + argument data) 300 to CPU I / F section 19
(S106 in FIG. 4). After transmitting the message, the RPC client 181a performs transmission monitoring (S107 in FIG. 4) and performs error processing at the time of transmission failure and timeout processing such as return value not returning. The error notification at this time uses the callback function callback () provided by the application 104 (S122a in FIG. 4). Callback function callback ().
Returns an error notification as a return value to the application 104 that called work_nb () (S123a in FIG. 4).

【0017】CPU間I/F部19は、メッセージ(要求RPCヘッ
ダ+引数データ)300を受信した後、メッセージ(要求RPC
ヘッダ+引数データ)を受信したことをRPCサーバ182bに
通知する(図4のS108)。前記通知を受けたRPCサーバ182b
は、所定の領域に保存されているメッセージ(要求RPCヘ
ッダ+引数データ)を取得する(図4のS109)。RPCサーバ1
82bは、取得したメッセージ(要求RPCヘッダ+引数デー
タ)から、要求RPCヘッダを参照し、その要求RPCヘッダ
のプロシージャコードから実行しようとする関数に対応
したサーバ・スタブ103を特定し(図4のS110)、サーバ・
スタブ103に引数データを送信する(図4のS111)。サーバ
・スタブ103は、その引数データを受け取ると、XDR形式
のデータをCPU-B(19b)で実行可能な形式に復元し(図4の
S112)関数work_nb( )105の引数を作成する(図4のS11
3)。サーバ・スタブ103は、その作成した引数を関数wor
k_nb( )105の引数として設定し、関数work_nb( )105呼
び出す(図4のS114)。関数work_nb( )105は、所定の処理
を実行した(図4のS115)後、その実行結果をサーバ・ス
タブ103にreturnする(図4のS116)。サーバ・スタブ103
は、受け取った実行結果をXDRのデータ形式にデータ変
換し(図4のS117)、RPCサーバ182bに送信する(図4のS11
8)。
The inter-CPU I / F unit 19 receives the message (request RPC header + argument data) 300, and then the message (request RPC header
The RPC server 182b is notified that the header + argument data) has been received (S108 in FIG. 4). The RPC server 182b that received the notification
Acquires a message (request RPC header + argument data) stored in a predetermined area (S109 in FIG. 4). RPC server 1
The 82b refers to the request RPC header from the acquired message (request RPC header + argument data) and identifies the server stub 103 corresponding to the function to be executed from the procedure code of the request RPC header (see FIG. 4). S110), server
The argument data is transmitted to the stub 103 (S111 in FIG. 4). Upon receiving the argument data, the server stub 103 restores the XDR format data into a format executable by the CPU-B (19b) (see FIG. 4).
S112) Create an argument for the function work_nb () 105 (S11 in FIG. 4
3). The server stub 103 uses the created argument as the function wor.
It is set as an argument of k_nb () 105, and the function work_nb () 105 is called (S114 in FIG. 4). The function work_nb () 105 executes a predetermined process (S115 in FIG. 4), and then returns the execution result to the server stub 103 (S116 in FIG. 4). Server stub 103
Converts the received execution result into the XDR data format (S117 in FIG. 4) and sends it to the RPC server 182b (S11 in FIG. 4).
8).

【0018】RPCサーバ182bは、実行結果データを受信
すると後に図6で説明するように実行結果データにヘッ
ダを付加しCPU-A 10aに送信するためのメッセージを作
成する。そして、RPCサーバ182bは、メッセージ(応答RP
Cヘッダ+実行結果データ)320をCPU間I/F部19に送信す
る(図4のS119)。CPU間I/F部19は、メッセージ(応答RPC
ヘッダ+実行結果データ)320を受信した後、メッセージ
(応答RPCヘッダ+実行結果データ)320を受信したことを
RPCクライアント181aに通知する(図4のS120)。前記通知
を受けたRPCクライアント181aは、所定の領域に保存さ
れているメッセージ(応答RPCヘッダ+実行結果データ)
を取得する(図4のS121)。そして、RPCクライアント181a
はそのメッセージ(応答RPCヘッダ+実行結果データ)か
ら、応答RPCヘッダを刈り取る。ここで、所定のエラー
チェック処理を行った後、アプリケーション104が提供
しているコールバック関数callback( )を呼び出す(図4
のS122b)。コールバック関数callback( )は、XDR形式の
実行結果データをCPU-A(10a)で実行可能な形式にデータ
復元し(図4のS124)、関数work_nb( )を呼び出したアプ
リケーション104に対して、復元した実行結果を戻り値
として返す(図4のS123b)。なお、上記の説明ではCPU-A
(10a)からCPU-B(10b)に関数の実行要求を出す説明をし
たが、逆も同じ手順で実行することができる。
Upon receiving the execution result data, the RPC server 182b adds a header to the execution result data and creates a message to be sent to the CPU-A 10a, as described later with reference to FIG. Then, the RPC server 182b sends the message (response RP
(C header + execution result data) 320 is transmitted to the inter-CPU I / F unit 19 (S119 in FIG. 4). The I / F unit 19 between the CPUs displays the message (response RPC
After receiving (header + execution result data) 320, message
Receiving (response RPC header + execution result data) 320
Notify the RPC client 181a (S120 in FIG. 4). Upon receiving the notification, the RPC client 181a receives the message (response RPC header + execution result data) stored in a predetermined area.
Is acquired (S121 in FIG. 4). And the RPC client 181a
Cuts the response RPC header from the message (response RPC header + execution result data). Here, after performing a predetermined error check process, the callback function callback () provided by the application 104 is called (see FIG. 4).
S122b). The callback function callback () restores the execution result data in XDR format to a format that can be executed by the CPU-A (10a) (S124 in FIG. 4), and for the application 104 that called the function work_nb (), The restored execution result is returned as a return value (S123b in FIG. 4). In the above explanation, CPU-A
Although it has been described that the function execution request is issued from (10a) to the CPU-B (10b), the same procedure can be performed in the opposite way.

【0019】(RPCメッセージのデータ構造)上述のCPU
間I/F部19で送受信する要求メッセージ300と応答メッセ
ージ320のデータ構造について説明する。図5は、異なる
CPU間でRPCがやりとりする要求メッセージ(要求RPCヘッ
ダ+引数データ)300を説明する図である。図5におい
て、30は制御情報で構成される要求RPCヘッダ、31はS10
3で受信したデータ(主に実行しようとする関数への引
数)を格納するパラメータセルである。本実施例では、
要求RPCヘッダ30を五つの制御情報で構成する。301はXI
Dと呼ばれるメッセージを識別するためのIDで、該要求
メッセージ300と後に説明する応答メッセージ320を特定
するために用いる、302はメッセージが要求か応答かを
表す制御コード、303は遠隔呼出しされる関数毎に与え
られる任意の番号であるプロシージャコードであり、実
行する関数を特定する。304は引数のデータを格納した
パラメータセルのバイト長、305は予備である。
(Data structure of RPC message) CPU described above
The data structure of the request message 300 and the response message 320 transmitted / received by the inter-interface unit 19 will be described. 5 different
It is a figure explaining the request message (request RPC header + argument data) 300 which RPC exchanges between CPUs. In FIG. 5, 30 is a request RPC header composed of control information, and 31 is S10.
This is a parameter cell that stores the data received in 3 (mainly the argument to the function to be executed). In this embodiment,
The request RPC header 30 is composed of five pieces of control information. 301 is XI
An ID for identifying a message called D, which is used to specify the request message 300 and a response message 320 described later, 302 is a control code indicating whether the message is a request or a response, and 303 is a remotely called function. It is a procedure code that is an arbitrary number given to each and identifies the function to be executed. 304 is the byte length of the parameter cell storing the argument data, and 305 is a spare.

【0020】図6は、異なるCPU間でRPCがやりとりする
応答メッセージ(応答RPCヘッダ+引数データ)320を説明
する図である。図6において、32は制御情報で構成され
る応答RPCヘッダ、33は図4のS118にてRPCサーバ182bが
受信したデータ(主に実行した関数の実行結果)を格納
するリターンセルである。本実施例では、応答RPCヘッ
ダ32を五つの制御情報で構成する。321はXIDと呼ばれる
メッセージを識別するためのIDであり、該応答メッセー
ジ320に対応する要求メッセージ300を特定するために用
いる。322はメッセージが要求か応答かを表す制御コー
ド、323は遠隔呼出しされる関数毎に与えられる任意の
番号であるプロシージャコード、324は関数の実行結果
を格納したリターンセルのバイト長、325はRPCの実行に
関わるエラー情報を格納するRPCエラーコードである。
FIG. 6 is a diagram for explaining a response message (response RPC header + argument data) 320 exchanged by RPCs between different CPUs. In FIG. 6, 32 is a response RPC header composed of control information, and 33 is a return cell for storing the data received by the RPC server 182b in S118 of FIG. 4 (mainly the execution result of the executed function). In this embodiment, the response RPC header 32 is composed of five pieces of control information. 321 is an ID for identifying a message called XID, which is used to specify the request message 300 corresponding to the response message 320. 322 is a control code indicating whether the message is a request or a response, 323 is a procedure code which is an arbitrary number given to each remotely called function, 324 is the byte length of the return cell storing the execution result of the function, and 325 is RPC This is an RPC error code that stores error information related to execution of.

【0021】(ブロッキング型関数の処理)ブロッキン
グ型関数の呼出し方法について、図7、図8を用いて説明
する。
(Processing of Blocking Function) A method of calling a blocking function will be described with reference to FIGS. 7 and 8.

【0022】(ブロッキング型関数の処理構成)図7
は、CPU-A 10a上で動作するアプリケーションが、CPU-B
10bで動作するブロッキング関数を遠隔で呼び出す方法
を説明するブロック図である。図7において、図3と同じ
番号を付加してあるブロックについての説明は省略す
る。106はブロッキング型関数work_b( )を呼び出すアプ
リケーションプログラム(関数)、107はブロッキング型
の関数work_b( )である。
(Processing Configuration of Blocking Function) FIG. 7
Is an application running on CPU-A 10a
FIG. 9 is a block diagram illustrating a method of remotely calling a blocking function that operates in 10b. In FIG. 7, description of the blocks to which the same numbers as in FIG. 3 are added will be omitted. 106 is an application program (function) that calls the blocking type function work_b (), and 107 is a blocking type function work_b ().

【0023】(ブロッキング型関数の処理シーケンス)
図4は、CPU-A 10a上で動作するアプリケーション106
が、CPU-B 10bで動作するブロッキング関数work_b( )を
遠隔で呼び出す方法を説明するシーケンス図である。ア
プリケーション106は、ブロッキング型関数work_b( )を
通常の手続きで呼び出す(図8のS201)。クライアント・
スタブ101は、work_b( )に設定された引数をXDRのデー
タ形式にデータ変換し(図8のS202)、RPCクライアント18
1aが提供するAPI関数rpcMsgSend ( )を用いてRPCクライ
アント181aへ送信する(図8のS203)。前記API関数rpcMsg
Send( )においてRPCクライアント181aにS202で変換した
引数データを送信した後、CPU-B(10b)で動作するwork_b
( )からの実行結果が戻ってくるまで、クライアント・
スタブ101の処理はブロッキングされる。つまり、アプ
リケーション106の処理は停止する。RPCクライアント18
1aは、引数データを受信すると図5に示すように引数デ
ータにヘッダを付加しCPU-B 10bに送信するためのメッ
セージを作成する。図5については、先に説明したとお
りである。
(Processing Sequence of Blocking Function)
Figure 4 shows the application 106 running on the CPU-A 10a.
6 is a sequence diagram illustrating a method of remotely calling a blocking function work_b () that operates on the CPU-B 10b. FIG. The application 106 calls the blocking type function work_b () with a normal procedure (S201 in FIG. 8). client·
The stub 101 converts the argument set in work_b () into the XDR data format (S202 in FIG. 8), and the RPC client 18
The API function rpcMsgSend () provided by 1a is used to send to the RPC client 181a (S203 in FIG. 8). The API function rpcMsg
After sending the argument data converted in S202 to the RPC client 181a in Send (), work_b running on CPU-B (10b)
Until the execution result from () is returned,
The processing of the stub 101 is blocked. That is, the processing of the application 106 is stopped. RPC client 18
When 1a receives the argument data, it adds a header to the argument data as shown in FIG. 5 and creates a message to be sent to the CPU-B 10b. FIG. 5 is as described above.

【0024】本実施例では、説明を簡単にするためアプ
リケーションは104一つのみだが、通常は複数のアプリ
ケーションが存在する。もし、S203において複数のアプ
リケーションからCPU-B(10b)にある関数の処理要求メッ
セージ(関数の引数)をRPCクライアント181aに送信さ
れた場合は、RPCクライアント181aが提供するキューに
処理要求メッセージ(関数の引数)がキューイングされ
る。RPCクライアント181aは、キューイングされた要求
を順次処理する。また、もし優先指定されたメッセージ
を受信した場合は、優先指定されたメッセージを優先し
て処理する。RPCクライアント181aは、メッセージ(要求
RPCヘッダ+引数データ)300をCPU間I/F部19に送信する
(図8のS204)。RPCクライアント181aは、メッセージを送
信した後、送信監視を行い(図8のS205)、送信失敗時の
エラー処理やreturn値が戻ってこないなどのタイムアウ
ト処理を行う。このときのエラー通知は、work_b( )の
戻り値としてクライアント・スタブ101に送信し(図8のS
220a)、クライアント・スタブ101は、アプリケーション
106に送信する(図8のS221a)。
In this embodiment, there are only 104 applications for simplification of description, but there are usually a plurality of applications. If the processing request message (function argument) of the function in the CPU-B (10b) is sent to the RPC client 181a from multiple applications in S203, the processing request message (function) is sent to the queue provided by the RPC client 181a. ) Is queued. The RPC client 181a sequentially processes the queued requests. Also, if a priority-specified message is received, the priority-specified message is processed with priority. The RPC client 181a sends a message (request
Send RPC header + argument data) 300 to CPU I / F section 19
(S204 in FIG. 8). After transmitting the message, the RPC client 181a performs transmission monitoring (S205 in FIG. 8) and performs error processing at the time of transmission failure and timeout processing such as return value not returning. The error notification at this time is sent to the client stub 101 as the return value of work_b ().
220a), the client stub 101 is an application
It is transmitted to 106 (S221a in FIG. 8).

【0025】CPU間I/F部19は、メッセージ(要求RPCヘッ
ダ+引数データ)300を受信した後、メッセージ(要求RPC
ヘッダ+引数データ)を受信したことをRPCサーバ182bに
通知する(図8のS206)。前記通知を受けたRPCサーバ182b
は、所定の領域に保存されているメッセージ(要求RPCヘ
ッダ+引数データ)300を取得する(図8のS207)。RPCサー
バ182bは、取得したメッセージ(要求RPCヘッダ+引数デ
ータ)300から、要求RPCヘッダを参照し、その要求RPCヘ
ッダのプロシージャコードからサーバ・スタブ103を特
定し(図8のS208)、サーバ・スタブ103に引数データを送
信する(図8のS209)。サーバ・スタブ103は、その引数デ
ータを受け取ると、XDR形式のデータをCPU-B(19b)で実
行可能な形式に復元し(図8のS210)、関数work_b( )107
の引数を特定する(図8のS211)。サーバ・スタブ103は、
前記で確定した引数を関数work_b()107に設定し、関数w
ork_b( )107を呼び出す(図8のS212)。関数work_b( )107
は、所定の処理を実行した(図8のS213)後、その実行結
果をサーバ・スタブ103にreturnする(図8のS214)。サー
バ・スタブ103は、受け取った実行結果をXDRのデータ形
式にデータ変換し(図8のS215)、RPCサーバ182bに送信す
る(図8のS216)。
The inter-CPU I / F unit 19 receives the message (request RPC header + argument data) 300, and then the message (request RPC header
The RPC server 182b is notified that the header + argument data) has been received (S206 in FIG. 8). The RPC server 182b that received the notification
Acquires the message (request RPC header + argument data) 300 stored in a predetermined area (S207 in FIG. 8). The RPC server 182b refers to the request RPC header from the acquired message (request RPC header + argument data) 300, identifies the server stub 103 from the procedure code of the request RPC header (S208 in FIG. 8), The argument data is transmitted to the stub 103 (S209 in FIG. 8). When the server stub 103 receives the argument data, the server stub 103 restores the XDR format data into a format executable by the CPU-B (19b) (S210 in FIG. 8), and the function work_b () 107
The argument of is specified (S211 in FIG. 8). The server stub 103 is
Set the argument confirmed above to the function work_b () 107 and
Call ork_b () 107 (S212 in FIG. 8). Function work_b () 107
After executing the predetermined process (S213 in FIG. 8), returns the execution result to the server stub 103 (S214 in FIG. 8). The server stub 103 converts the received execution result into the XDR data format (S215 in FIG. 8) and sends it to the RPC server 182b (S216 in FIG. 8).

【0026】RPCサーバ182bは、実行結果データを受信
すると図6に示すように実行結果データにヘッダを付加
しCPU-A 10aに送信するためのメッセージ320を作成す
る。図6についての説明は、先に述べたとおりである。
そして、RPCサーバ182bは、メッセージ(応答RPCヘッダ
+実行結果データ)320をCPU間I/F部19に送信する(図8の
S217)。
Upon receiving the execution result data, the RPC server 182b adds a header to the execution result data and creates a message 320 for transmission to the CPU-A 10a, as shown in FIG. The description of FIG. 6 is as described above.
Then, the RPC server 182b transmits a message (response RPC header + execution result data) 320 to the inter-CPU I / F unit 19 (see FIG. 8).
S217).

【0027】CPU間I/F部19は、メッセージ(応答RPCヘッ
ダ+実行結果データ)320を受信した後、メッセージ(応
答RPCヘッダ+実行結果データ)を受信したことをRPCク
ライアント181aに通知する(図8のS218)。前記通知を受
けたRPCクライアント181aは、所定の領域に保存されて
いるメッセージ(応答RPCヘッダ+実行結果データ)を取
得しにいく(図8のS219)。RPCクライアント181aは、取得
したメッセージ(応答RPCヘッダ+実行結果データ)320か
ら、応答RPCヘッダを刈り取る。ここで、所定のエラー
チェック処理を行った後、実行結果データをクライアン
ト・スタブ101に送信する(図8のS220b)。クライアント
・スタブ101は、実行結果データをCPU-A(10b)で実行可
能な形式にデータ復元し(図8のS222)、関数work_b( )を
呼び出したアプリケーション106に対して、復元した実
行結果を戻り値としてreturnする(図8のS221b)。
After receiving the message (response RPC header + execution result data) 320, the inter-CPU I / F unit 19 notifies the RPC client 181a that the message (response RPC header + execution result data) has been received ( (S218 in FIG. 8). Upon receiving the notification, the RPC client 181a goes to obtain the message (response RPC header + execution result data) stored in a predetermined area (S219 in FIG. 8). The RPC client 181a trims the response RPC header from the acquired message (response RPC header + execution result data) 320. Here, after performing a predetermined error check process, the execution result data is transmitted to the client stub 101 (S220b in FIG. 8). The client stub 101 restores the execution result data to a format that can be executed by the CPU-A (10b) (S222 in FIG. 8), and returns the restored execution result to the application 106 that called the function work_b (). Return as a return value (S221b in FIG. 8).

【0028】(優先処理RPCタスクの実施例)上述の実
施例では、エラー処理など、時間的に先に依頼された処
理要求メッセージを後回しまたは破棄して緊急に処理す
る方法として、処理要求メッセージを優先的に処理した
が、優先処理ためのRPCの機構(RPCクライアントタスク
181、RPCサーバタスク182)を別個に設ける実施
例も考えられる。さらに、複数の優先度を設ける場合
は、マルチタスクリアルタイムOS上で異なるタスク実行
優先順位を持ったRPCクライアントタスク181、RPCサ
ーバタスク182を各優先度別に複数設ける実施例も考
えられる。
(Embodiment of priority processing RPC task) In the above-mentioned embodiment, a processing request message is used as a method for urgently processing by delaying or discarding a processing request message requested earlier in time such as error processing. Although priority processing is performed, an embodiment in which an RPC mechanism (RPC client task 181 and RPC server task 182) for priority processing is separately provided is also conceivable. Further, when providing a plurality of priorities, an embodiment in which a plurality of RPC client tasks 181 and RPC server tasks 182 having different task execution priorities on the multitask real-time OS are provided for each priority is also conceivable.

【0029】(同一CPU上の複数OSの実施例)上述の実
施例では、CPU-A(10a)、CPU-B(10b)の二つのCPU間
におけるRPCについて示したが、これらのRPCは同一のCP
U上で動作する複数のOS間であってもよい。
(Embodiment of plural OSs on the same CPU) In the above-mentioned embodiment, the RPC between the two CPUs CPU-A (10a) and CPU-B (10b) is shown, but these RPCs are the same. CP
It may be between multiple OSs running on U.

【0030】[0030]

【発明の効果】本発明では、ブロッキングコールとノン
ブロッキングコールの各々の関数呼び出し手続き方法に
対応した各々のRPCクライアントスタブを設け、RPCのク
ライアント側に複数のRPCに共通に使用されるRPCクライ
アントタスクを、RPCのサーバ側に同様に複数のRPCに共
通に使用されるRPCサーバタスクを各々設け、ブロッキ
ングコールの場合はスタブにRPCの実行結果を返信し、
ノンブロッキングコールの場合は、該実行結果に基づき
コールバック関数を呼び出すことにより、ブロッキング
コールとノンブロッキングコールの両方を取り扱え、ま
た制限されたメモリ容量での動作を容易とした。
According to the present invention, each RPC client stub corresponding to each function calling procedure method of blocking call and non-blocking call is provided, and the RPC client task commonly used for a plurality of RPCs is provided on the RPC client side. , RPC server tasks that are also commonly used for multiple RPCs are provided on the RPC server side, and in the case of a blocking call, the execution result of the RPC is returned to the stub,
In the case of the non-blocking call, by calling the callback function based on the execution result, both the blocking call and the non-blocking call can be handled, and the operation with the limited memory capacity is facilitated.

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

【図1】本発明を使用した携帯電話を説明するブロック
図である。
FIG. 1 is a block diagram illustrating a mobile phone using the present invention.

【図2】従来の携帯電話を説明するブロック図である。FIG. 2 is a block diagram illustrating a conventional mobile phone.

【図3】本発明を使用してノンブロッキング型関数を呼
び出す方法を説明するブロック図である。
FIG. 3 is a block diagram illustrating a method of calling a non-blocking function using the present invention.

【図4】本発明を使用してノンブロッキング型関数を呼
び出す方法を説明するシーケンス図である。
FIG. 4 is a sequence diagram illustrating a method of calling a non-blocking function using the present invention.

【図5】本発明における要求RPCメッセージの例を説明
する図である。
FIG. 5 is a diagram illustrating an example of a request RPC message according to the present invention.

【図6】本発明における応答RPCメッセージの例を説
明する図である。
FIG. 6 is a diagram illustrating an example of a response RPC message according to the present invention.

【図7】本発明を使用してブロッキング型関数を呼び出
す方法を説明するブロック図である。
FIG. 7 is a block diagram illustrating a method of calling a blocking function using the present invention.

【図8】本発明を使用してブロッキング型関数を呼び出
す方法を説明するシーケンス図である。
FIG. 8 is a sequence diagram illustrating a method of calling a blocking function using the present invention.

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

1:本発明における携帯電話、2:従来の携帯電話、10
a:CPU-A、10b:CPU-B、11:電話回線部、12:アンテ
ナ、13a、13b:表示部、14:入力部、15a、15b:記憶
部、16a、16b:スピーカ、17:マイク18a、18b:RPC(R
emote Procedure Call)部、19:CPU間I/F部、21:電話
回線部、22:アンテナ、23:表示部、24:入力部、25:
記憶部、26:スピーカ、27:マイク、30:要求RPCヘッ
ダ、31:パラメータセル、32:応答RPCヘッダ、33:リ
ターンセル、101:クライアント・スタブ、102:コール
バック関数、103:サーバ・スタブ、104:ノンブロッキ
ング型関数work_nb( )を呼び出すアプリケーションプロ
グラム(関数)、105:ノンブロッキング型の関数work_nb
( )、106:ブロッキング型関数work_b( )を呼び出すア
プリケーションプログラム(関数)、107:ブロッキング
型の関数work_b( )、181a、181b:RPCクライアント、18
2a、182b:RPCサーバ、300:要求メッセージ、301:XI
D、302:メッセージが要求か応答かを表す制御コード、
303:プロシージャコード、304:パラメータセルのバイ
ト長、305:予備、320:応答メッセージ、321:XID、32
2:メッセージが要求か応答かを表す制御コード、323:
プロシージャコード、324:リターンセルのバイト長、3
25:RPCエラーコード、1011:データ変換部、1021:デ
ータ復元部、1811a、1811b:送信監視部、1821a、1821
b:Dispatcher(ディスパッチャ)、1011:データ変換
部、S101〜S124:ノンブロッキング関数を呼び出すシー
ケンス、S201〜S222:ブロッキング関数を呼び出すシー
ケンス。
1: Mobile phone according to the present invention, 2: Conventional mobile phone, 10
a: CPU-A, 10b: CPU-B, 11: Telephone line section, 12: Antenna, 13a, 13b: Display section, 14: Input section, 15a, 15b: Storage section, 16a, 16b: Speaker, 17: Microphone 18a, 18b: RPC (R
emote Procedure Call) section, 19: I / F section between CPUs, 21: Telephone line section, 22: Antenna, 23: Display section, 24: Input section, 25:
Storage unit, 26: speaker, 27: microphone, 30: request RPC header, 31: parameter cell, 32: response RPC header, 33: return cell, 101: client stub, 102: callback function, 103: server stub , 104: Application program (function) that calls the non-blocking function work_nb (), 105: Non-blocking function work_nb
(), 106: Application program (function) that calls blocking type function work_b (), 107: Blocking type function work_b (), 181a, 181b: RPC client, 18
2a, 182b: RPC server, 300: Request message, 301: XI
D, 302: Control code indicating whether the message is a request or a response,
303: Procedure code, 304: Parameter cell byte length, 305: Reserved, 320: Response message, 321: XID, 32
2: Control code indicating whether the message is a request or response, 323:
Procedure code, 324: Return cell byte length, 3
25: RPC error code, 1011: data conversion unit, 1021: data restoration unit, 1811a, 1811b: transmission monitoring unit, 1821a, 1821
b: Dispatcher, 1011: data conversion unit, S101 to S124: sequence of calling non-blocking function, S201 to S222: sequence of calling blocking function.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 桑本 英樹 神奈川県横浜市戸塚区吉田町292番地 株 式会社日立製作所デジタルメディア開発本 部内 (72)発明者 宮田 克也 神奈川県横浜市戸塚区吉田町292番地 株 式会社日立製作所デジタルメディア開発本 部内 (72)発明者 坂山 祝広 神奈川県横浜市戸塚区戸塚町180番地 日 立通信システム株式会社内 (72)発明者 森 直樹 茨城県ひたちなか市稲田1410番地 株式会 社日立製作所デジタルメディア製品事業部 内 Fターム(参考) 5B089 GA25 GB09 JA11 JB10 KA06 KE02 KE03 5B098 AA10 GA02 GA04 GC16    ─────────────────────────────────────────────────── ─── Continued front page    (72) Inventor Hideki Kuwamoto             292 Yoshida-cho, Totsuka-ku, Yokohama-shi, Kanagawa             Ceremony Hitachi Digital Media Development Book             Department (72) Inventor Katsuya Miyata             292 Yoshida-cho, Totsuka-ku, Yokohama-shi, Kanagawa             Ceremony Hitachi Digital Media Development Book             Department (72) Inventor Norihiro Sakayama             180 Totsuka-cho, Totsuka-ku, Yokohama-shi, Kanagawa             Standing Communication System Co., Ltd. (72) Inventor Naoki Mori             1410 Inada Stock Company, Hitachinaka City, Ibaraki Prefecture             Hitachi, Ltd. Digital Media Products Division             Within F term (reference) 5B089 GA25 GB09 JA11 JB10 KA06                       KE02 KE03                 5B098 AA10 GA02 GA04 GC16

Claims (16)

【特許請求の範囲】[Claims] 【請求項1】複数のOS(Operating System)が動作する
情報処理装置、または他の情報処理装置上で動作するOS
と通信可能なOSが動作する情報処理装置において、ノン
ブロッキングコールの関数呼び出し手続きを有するRPC
(Remote ProcedureCall)のクライアントスタブと、ブ
ロッキングコールの関数呼び出し手続きを有するRPCの
クライアントスタブとを設け、該クライアントスタブか
ら該関数の引数を含んだメッセージを受信して、該引数
を含むメッセージをRPCサーバタスクへ伝送し、かつ、R
PCサーバタスクから該関数の実行結果を含むメッセージ
を受信して、ノンブロッキングコールの場合は該実行結
果に基づきコールバック関数を呼び出し、ブロッキング
コールの場合はクライアントスタブに該実行結果を含む
メッセージを返信するRPCクライアントタスクを設けた
ことを特徴とする情報処理装置。
1. An information processing device in which a plurality of OSs (Operating Systems) run, or an OS running in another information processing device
RPC with a non-blocking call function call procedure in an information processing device running an OS that can communicate with
A (Remote Procedure Call) client stub and an RPC client stub having a function call procedure for a blocking call are provided, a message including an argument of the function is received from the client stub, and a message including the argument is sent to the RPC server. Transmit to task and R
Receives a message containing the execution result of the function from the PC server task, calls a callback function based on the execution result in the case of a non-blocking call, and returns a message containing the execution result in the client stub in the case of a blocking call. An information processing device characterized by having an RPC client task.
【請求項2】請求項1において、RPCクライアントタスク
は、複数のクライアントスタブからのメッセージをRPC
サーバタスクへ伝送することを特徴とする情報処理装
置。
2. The RPC client task according to claim 1, wherein messages from a plurality of client stubs are RPC'ed.
An information processing device characterized by transmitting to a server task.
【請求項3】請求項1において、RPCクライアントタスク
は、複数のクライアントスタブからのメッセージを同一
のRPCサーバタスクへ伝送することを特徴とする情報処
理装置。
3. The information processing apparatus according to claim 1, wherein the RPC client task transmits messages from a plurality of client stubs to the same RPC server task.
【請求項4】請求項1において、RPCクライアントタスク
は、クライアントスタブからのメッセージをキューイン
グして順次処理することを特徴とする情報処理装置。
4. The information processing apparatus according to claim 1, wherein the RPC client task queues messages from the client stub and sequentially processes the messages.
【請求項5】請求項1において、メッセージは処理の優
先度を示すデータを含み、RPCクライアントタスクは、
クライアントスタブからのメッセージをキューイングし
て該優先度が高い順に順次処理することを特徴とする情
報処理装置。
5. The message according to claim 1, wherein the message includes data indicating a processing priority, and the RPC client task is
An information processing apparatus, characterized in that a message from a client stub is queued and sequentially processed in order from the highest priority.
【請求項6】請求項1において、RPCクライアントタスク
は、RPCサーバタスクへのメッセージの伝送が成功した
か否かを検査することを特徴とする情報処理装置。
6. The information processing apparatus according to claim 1, wherein the RPC client task checks whether or not the transmission of the message to the RPC server task is successful.
【請求項7】請求項1において、関数の処理の優先度毎
にRPCクライアントタスクを設けたことを特徴とする情
報処理装置。
7. The information processing apparatus according to claim 1, wherein an RPC client task is provided for each priority of processing a function.
【請求項8】複数のOS(Operating System)が動作する
情報処理装置、または他の情報処理装置上で動作するOS
と通信可能なOSが動作する情報処理装置において、ノン
ブロッキングコールの関数呼び出し手続きと、ブロッキ
ングコールの関数呼び出し手続きの両方を持つRPCのク
ライアントスタブとを設けたことを特徴とする情報処理
装置。
8. An information processing device running a plurality of OSs (Operating Systems) or an OS running on another information processing device
And an RPC client stub having both a non-blocking call function calling procedure and a blocking call function calling procedure.
【請求項9】複数のOS(Operating System)が動作する
情報処理装置、または他の情報処理装置上で動作するOS
と通信可能なOSが動作する情報処理装置の情報処理法法
において、ノンブロッキングコールの関数呼び出し手続
きを有するRPC(Remote ProcedureCall)のクライアン
トスタブと、ブロッキングコールの関数呼び出し手続き
を有するRPCのクライアントスタブとを設け、該クライ
アントスタブから該関数の引数を含んだメッセージを受
信して、該引数を含むメッセージをRPCサーバタスクへ
伝送し、かつ、RPCサーバタスクから該関数の実行結果
を含むメッセージを受信して、ノンブロッキングコール
の場合は該実行結果に基づきコールバック関数を呼び出
し、ブロッキングコールの場合はクライアントスタブに
該実行結果を含むメッセージを返信するRPCクライアン
トタスクを設けたことを特徴とする情報処理方法。
9. An information processing device running a plurality of OSs (Operating Systems), or an OS running on another information processing device
In an information processing method of an information processing device in which an OS capable of communicating with an OS operates, an RPC (Remote Procedure Call) client stub having a non-blocking call function calling procedure and an RPC client stub having a blocking call function calling procedure are provided. A message including the argument of the function is received from the client stub, the message including the argument is transmitted to the RPC server task, and the message including the execution result of the function is received from the RPC server task. An information processing method comprising: providing a RPC client task for calling a callback function based on the execution result in the case of a non-blocking call, and returning a message including the execution result in a client stub in the case of a blocking call.
【請求項10】請求項9において、RPCクライアントタ
スクは、複数のクライアントスタブからのメッセージを
RPCサーバタスクへ伝送することを特徴とする情報処理
方法。
10. The RPC client task according to claim 9, wherein messages from a plurality of client stubs are received.
An information processing method characterized by transmitting to an RPC server task.
【請求項11】請求項9において、RPCクライアントタ
スクは、複数のクライアントスタブからのメッセージを
同一のRPCサーバタスクへ伝送することを特徴とする情
報処理方法。
11. The information processing method according to claim 9, wherein the RPC client task transmits messages from a plurality of client stubs to the same RPC server task.
【請求項12】請求項9において、RPCクライアントタ
スクは、クライアントスタブからのメッセージをキュー
イングして順次処理することを特徴とする情報処理方
法。
12. The information processing method according to claim 9, wherein the RPC client task queues messages from the client stub and sequentially processes them.
【請求項13】請求項9において、メッセージは処理の
優先度を示すデータを含み、RPCクライアントタスク
は、クライアントスタブからのメッセージをキューイン
グして該優先度が高い順に順次処理することを特徴とす
る情報処理方法。
13. The message according to claim 9, wherein the message includes data indicating a processing priority, and the RPC client task queues the message from the client stub and sequentially processes the messages in descending order of priority. Information processing method.
【請求項14】請求項9において、RPCクライアントタ
スクは、RPCサーバタスクへのメッセージの伝送が成功
したか否かを検査することを特徴とする情報処理方法。
14. The information processing method according to claim 9, wherein the RPC client task checks whether or not the transmission of the message to the RPC server task is successful.
【請求項15】請求項9において、関数の処理の優先度
毎にRPCクライアントタスクを設けたことを特徴とする
情報処理方法。
15. The information processing method according to claim 9, wherein an RPC client task is provided for each priority of the function processing.
【請求項16】複数のOS(Operating System)が動作す
る情報処理装置、または他の情報処理装置上で動作する
OSと通信可能なOSが動作する情報処理装置において、ノ
ンブロッキングコールの関数呼び出し手続きと、ブロッ
キングコールの関数呼び出し手続きの両方を持つRPCの
クライアントスタブとを設けたことを特徴とする情報処
理方法。
16. An information processing device running a plurality of OSs (Operating Systems) or running on another information processing device
An information processing method, wherein an information processing device running an OS capable of communicating with an OS is provided with an RPC client stub having both a non-blocking call function calling procedure and a blocking call function calling procedure.
JP2001310861A 2001-10-09 2001-10-09 Information processing unit and method Pending JP2003114805A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001310861A JP2003114805A (en) 2001-10-09 2001-10-09 Information processing unit and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001310861A JP2003114805A (en) 2001-10-09 2001-10-09 Information processing unit and method

Publications (1)

Publication Number Publication Date
JP2003114805A true JP2003114805A (en) 2003-04-18

Family

ID=19129783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001310861A Pending JP2003114805A (en) 2001-10-09 2001-10-09 Information processing unit and method

Country Status (1)

Country Link
JP (1) JP2003114805A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097176A (en) * 2006-10-10 2008-04-24 Seiko Epson Corp Apparatus to be connected to device, method of controlling communication with device, and computer program for communication control
US7734766B2 (en) 2004-04-23 2010-06-08 Oki Data Corporation Communication device utilizing email for remote procedure calls
JP2011118867A (en) * 2009-12-03 2011-06-16 Korea Electronics Telecommun Remote plug-in device, engine device and system for executing robot plug-in
JP2014526740A (en) * 2011-09-09 2014-10-06 オラクル・インターナショナル・コーポレイション System and method for providing dynamic invocation and service interfaces for use in middleware or other environments

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734766B2 (en) 2004-04-23 2010-06-08 Oki Data Corporation Communication device utilizing email for remote procedure calls
JP2008097176A (en) * 2006-10-10 2008-04-24 Seiko Epson Corp Apparatus to be connected to device, method of controlling communication with device, and computer program for communication control
JP2011118867A (en) * 2009-12-03 2011-06-16 Korea Electronics Telecommun Remote plug-in device, engine device and system for executing robot plug-in
JP2014526740A (en) * 2011-09-09 2014-10-06 オラクル・インターナショナル・コーポレイション System and method for providing dynamic invocation and service interfaces for use in middleware or other environments
JP2017130239A (en) * 2011-09-09 2017-07-27 オラクル・インターナショナル・コーポレイション System and method for providing dynamic invocation and service interface for use in middleware or other environment

Similar Documents

Publication Publication Date Title
CN106161537B (en) Method, device and system for processing remote procedure call and electronic equipment
US8001176B2 (en) Web service with multiple listening endpoints
JP4144897B2 (en) Optimal server in common work queue environment
CN100363870C (en) Method and apparatus for providing multi-client support in a SIP-enabled terminal
US20160253213A1 (en) Method and system for dedicating processors for desired tasks
US20220086262A1 (en) Network packet processing method and apparatus and network server
JP5023082B2 (en) Pushing asynchronous messages to web browsers
US7051118B2 (en) Method and apparatus for anonymous subject-based addressing
JP2008146634A (en) Network robot system and method of communication in network robot system
US7107345B2 (en) Method for managing socket in mobile communication system
JP2003114805A (en) Information processing unit and method
EP1432206A2 (en) Mechanisms for supporting a virtual on-line mobile environment
CA2635172A1 (en) Device for communicating in multiple modes using multi-mode applications
CN110032455A (en) Efficient communication overlapping is carried out by runing time cooperation
JPH05265954A (en) Computer system
KR100194575B1 (en) Operation method of multi-agent based e-mail system
US20050076106A1 (en) Asynchronous information retrieval
US20030065701A1 (en) Multi-process web server architecture and method, apparatus and system capable of simultaneously handling both an unlimited number of connections and more than one request at a time
CN113037816B (en) Communication method, storage medium and related equipment
JP5018231B2 (en) Telephone system and telephone terminal
CN115220832B (en) Cloud platform-based security collaboration method and system
KR20010058725A (en) Method for message processing in a CTI system
JP2001331386A (en) System and method for system configuration preparation support service
KR100420268B1 (en) Kernel scheduling method using stacks
JPH0830529A (en) Communication server