JP2007299319A - Information processor and process-to-process communication method - Google Patents
Information processor and process-to-process communication method Download PDFInfo
- Publication number
- JP2007299319A JP2007299319A JP2006128474A JP2006128474A JP2007299319A JP 2007299319 A JP2007299319 A JP 2007299319A JP 2006128474 A JP2006128474 A JP 2006128474A JP 2006128474 A JP2006128474 A JP 2006128474A JP 2007299319 A JP2007299319 A JP 2007299319A
- Authority
- JP
- Japan
- Prior art keywords
- identifier
- ipc
- communication path
- information processing
- processing apparatus
- 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
Links
Images
Abstract
Description
本発明は、情報処理装置及びプロセス間通信方法に関する。 The present invention relates to an information processing apparatus and an interprocess communication method.
計算機システムにおいて、プロセス間でメッセージを送受信するIPC(Inter Process Communication)の機能は、一般にオペレーティングシステム(Operating System)の機能の一部として提供される。詳細な実装はオペレーティングシステムにより異なるが、利用できる手段には共有メモリ(shared memory)、メッセージキュー(message queue)、セマフォ(semaphore)等がある。 In a computer system, an IPC (Inter Process Communication) function for transmitting and receiving messages between processes is generally provided as a part of an operating system (Operating System) function. Although the detailed implementation varies depending on the operating system, there are a shared memory, a message queue, a semaphore, and the like as available means.
IPCでは、プロセスと、プロセスとの間を結ぶ仮想的なデータ搬送路は、IPCオブジェクトといわれるデータオブジェクトである。通信を行う際には、通信を行おうとする双方のプロセスがお互いに使用するIPCオブジェクトの識別子の情報を共有し、双方で同一の識別子を指定することで、通信の接続が確立される。つまり、メッセージの送受信を行うプログラムが、互いに同一のIPCオブジェクトの識別子を共有することが、IPCによるメッセージ送受信を行う際の必須作業である。 In IPC, a virtual data transport path that connects processes to each other is a data object called an IPC object. When communication is performed, both processes that are to communicate communicate with each other to share information on the identifiers of the IPC objects that are used by each other, and the same identifier is specified by both of them to establish a communication connection. In other words, it is an indispensable work when sending and receiving messages by IPC that programs for sending and receiving messages share the same IPC object identifier.
IPCオブジェクトの識別子を異なるプロセスで共有するための従来の方法は、大きく分類すると2つに分けられる。 The conventional method for sharing the identifier of the IPC object between different processes can be roughly divided into two.
第1の方法は、IPCを行うそれぞれのプログラム間で、キーワード文字列を決めて共有しておく方法である。一般にIPCの機能を提供するシステムでは、キーワードをもとにIPCオブジェクトの識別子を照会する機能も提供されるため、あるプロセスが確保したIPCオブジェクトの識別子は、別のプロセスからも、キーワードによって照会することが可能である。この方法では、IPCを使用するプログラム間で、予め必要な数だけキーワードを取り決めておくことで、実行時にIPCオブジェクトの識別子を共有できるようにしている。 The first method is a method in which a keyword character string is determined and shared among programs that perform IPC. In general, in a system that provides an IPC function, a function for querying an identifier of an IPC object based on a keyword is also provided. Therefore, an identifier of an IPC object secured by one process is also queried by a keyword from another process. It is possible. In this method, an IPC object identifier can be shared at the time of execution by arranging a required number of keywords in advance between programs using the IPC.
第2の方法は、予めシステムで利用されるIPCの全ての接続を洗い出し、全てのIPCオブジェクトとその識別子を先に確保しておき、それを利用するようにプログラムを作成する方法である。 The second method is a method in which all IPC connections used in the system are identified in advance, all IPC objects and their identifiers are secured in advance, and a program is created to use them.
しかしながら、上述した第1及び第2の方法には幾つかの問題点がある。第1の方法では、一般に、キーワードからIPCオブジェクトの識別子を照合する機能において、厳密性が保証されていない。そのため、例えば、同一のキーワードでも異なるIPCオブジェクト識別子を照合結果として返すこと起こりうる。 However, the first and second methods described above have some problems. In the first method, generally, the strictness is not guaranteed in the function of collating the identifier of the IPC object from the keyword. For this reason, for example, different IPC object identifiers may be returned as matching results even with the same keyword.
このため、照合したIPCオブジェクト識別子が本当に意図した物であるかどうかを確認する機能の実装が必須となる。更なる問題点は、キーワード管理の煩雑化である。一つの通信路に対して、一つのキーワードが必要である。よって、IPCを行うプログラムモジュールの数が増えた場合や、プログラムモジュールが少なくても、IPCの接続が複数になる場合には、共有しておかなくてはならないキーワードの個数も、それに比例して多くなる。したがって、個々のプログラムモジュールがキーワード共有のために行わなくてはならない手続きが煩雑になる。これによりプログラムモジュールやシステム全体の見通しが悪くなり、メンテナンス性の悪化等の要因となる。 For this reason, it is essential to implement a function for confirming whether the collated IPC object identifier is really intended. A further problem is the complexity of keyword management. One keyword is required for one communication path. Therefore, when the number of program modules for performing IPC increases, or when there are a plurality of IPC connections even if the number of program modules is small, the number of keywords that must be shared is also proportional to this. Become more. This complicates the procedure that individual program modules must perform to share keywords. As a result, the prospects of the program module and the entire system are deteriorated, which causes deterioration of maintainability.
一方、第2の方法は、予め全てのIPCオブジェクト及びその接続が決定されているため、動作時にIPCオブジェクト識別子をプロセス間で確認し合うステップが不要であることからパフォーマンスに優れる。しかし、その反面、動作時に動的にIPCオブジェクト及び接続を確保する必要のあるシステムには適用できないという問題点がある。 On the other hand, since all the IPC objects and their connections are determined in advance, the second method is superior in performance because it does not require a step of checking IPC object identifiers between processes during operation. However, there is a problem that it cannot be applied to a system that needs to dynamically secure an IPC object and connection during operation.
また、IPCオブジェクトの確保にはメモリーリソースを消費するため、予め全てを確保してしまうという方法では、システムが必要とするメモリーリソースの量の下限値が、システム内のIPCの接続数に依存してしまう。そのため、接続が増えたら、その分、より多くのメモリーリソースが必要になってしまう。このため、少ないメモリーリソースしか搭載でいない機器等には適用しにくい。 In addition, since the memory resources are consumed to secure the IPC object, the method of securing all of the IPC objects in advance, the lower limit value of the amount of memory resources required by the system depends on the number of IPC connections in the system. End up. Therefore, as the number of connections increases, more memory resources are required. For this reason, it is difficult to apply to devices that have only a small amount of memory resources.
本発明は前記の問題点に鑑みなされたもので、プロセス間通信に関するオブジェクトの識別子の管理を容易にし、且つ、メモリーリソースの消費を低く抑えることを目的とする。 The present invention has been made in view of the above-described problems, and it is an object of the present invention to facilitate the management of object identifiers related to interprocess communication and to reduce the consumption of memory resources.
そこで、前記問題を解決するため、本発明は、複数のプロセスを動作させることが可能な情報処理装置であって、データ通信に係る各プロセスは、データ通信路に係るデータ伝達オブジェクトの識別子の通知を他のプロセスより受け取る受取手段と、前記受取手段で受け取った前記識別子で識別される前記データ伝達オブジェクトを用いて、前記他のプロセスとの接続を確立する接続確立手段と、を有することを特徴とする。 Therefore, in order to solve the above problem, the present invention is an information processing apparatus capable of operating a plurality of processes, and each process related to data communication notifies the identifier of the data transmission object related to the data communication path. Receiving means from another process, and connection establishing means for establishing a connection with the other process using the data transmission object identified by the identifier received by the receiving means. And
本発明によれば、係る構成とすることにより、プロセス間通信に関するオブジェクトの識別子の管理を容易にし、且つ、メモリーリソースの消費を低く抑えることができる。 According to the present invention, by adopting such a configuration, it is possible to easily manage object identifiers related to inter-process communication, and to suppress consumption of memory resources.
また、前記問題を解決するため、本発明は、プロセス間通信方法、プログラム及び記録媒体としてもよい。 Moreover, in order to solve the said problem, this invention is good also as an interprocess communication method, a program, and a recording medium.
本発明によれば、プロセス間通信に関するオブジェクトの識別子の管理を容易にし、且つ、メモリーリソースの消費を低く抑えることができる。 According to the present invention, management of object identifiers related to inter-process communication can be facilitated, and consumption of memory resources can be kept low.
以下、本発明の実施形態について図面に基づいて説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
IPCによるメッセージ送受信を開始する直前に、IPCを開始しようとするプロセスが、IPCを行う相手のプロセスに対して、IPCにて使用するIPCオブジェクトの識別子を通知する。通知を受けたプロセスは、通知された識別子のIPCオブジェクトを使用する。このような方法でIPCの接続を確立し、IPC終了後はIPCを開始したプロセス若しくは適切な権限のあるプロセスが使用したIPCオブジェクトを破棄する。 Immediately before starting the message transmission / reception by the IPC, the process to start the IPC notifies the IPC object identifier used in the IPC to the other party performing the IPC. The process receiving the notification uses the IPC object having the notified identifier. The IPC connection is established in this way, and after the IPC is finished, the IPC object used by the process that started the IPC or a process with appropriate authority is discarded.
図1は、以下に示す各実施形態の原理的な構成を示す図である。本実施形態に係る装置(以下、情報処理装置を例に説明を行なう)は、プログラムモジュール群11と、一つ若しくは複数のプログラムから作られた一つ若しくは複数の実行オブジェクトを動作させた際の複数のプロセス17を含むプロセス群16と、を有する。また、情報処理装置は、IPCで使用するIPCオブジェクト(以下、通信路ともいう)19を含む通信路群18も有する。
FIG. 1 is a diagram showing a basic configuration of each embodiment described below. The apparatus according to the present embodiment (which will be described below using an information processing apparatus as an example) operates when the
プログラムモジュール群11は、幾つかの手段を実現するモジュールで構成される。モジュール12は、IPCを行おうとする相手のプロセスにIPCオブジェクトの識別子(以降、通信路の識別子ともいう)を通知する際に、通知先のプロセスを特定し、選択する手段を備えたモジュールである。
The
モジュール13は、モジュール12が特定し、選択したプロセスに通信路の識別子をデータとして送信する手段を備えたモジュールである。モジュール14は、通知されてくる通信路の識別子のデータを受け取る手段を備えたモジュールである。モジュール15は、通知された通信路の識別子のデータを、これから行おうとするIPCにおいて使用するように指定する手段を備えたモジュールである。
The
図2は、以下に示す各実施形態の原理的な処理を示すフローチャートである。なお、図2では、IPCの開始から終了までの処理を各ステップで示している。IPCを行おうとして他のプロセスを呼び出す側のプロセスを、以下、第1のプロセスという。また、第1のプロセスからの要求を受けて第1のプロセスとのIPCを開始する、呼び出され側のプロセスを、以下、第2のプロセスという。 FIG. 2 is a flowchart showing the principle processing of each embodiment shown below. In FIG. 2, the process from the start to the end of the IPC is shown in each step. A process that calls another process to perform IPC is hereinafter referred to as a first process. The called process that starts the IPC with the first process in response to a request from the first process is hereinafter referred to as a second process.
第1のプロセスと、第2のプロセスとの間でIPCを行う場合、まず、第1のプロセスは、使用する通信路を確保しその識別子を取得する(ステップS21)。次に、第1のプロセスは、第2のプロセスに、ステップS11で確保した通信路の識別子を通知する(ステップS22)。 When performing IPC between the first process and the second process, first, the first process secures a communication path to be used and acquires its identifier (step S21). Next, the first process notifies the second process of the identifier of the communication path secured in step S11 (step S22).
第2のプロセスは、第1のプロセスからの通知を受信したら(ステップS23)、IPCの開始手続きを始める。このときに、第2のプロセスは、第1のプロセスから通知された識別子で指定される通信路を使用するように設定する(ステップS24)。 When the second process receives the notification from the first process (step S23), it starts the IPC start procedure. At this time, the second process sets to use the communication path specified by the identifier notified from the first process (step S24).
しかる後に、第1のプロセスと、第2のプロセスとは、IPCによるメッセージ送受信を行う(ステップS25)。メッセージ送受信が終了しIPCの通信路が不要になったら、第1のプロセスか、若しくは適切な権限をもったプロセスが、使用した通信路を破棄する(ステップS26)。 Thereafter, the first process and the second process perform message transmission / reception by IPC (step S25). When the message transmission / reception is completed and the IPC communication path is no longer required, the first process or a process having appropriate authority discards the used communication path (step S26).
<実施形態1>
図3は、情報処理装置のハードウェア構成の一例を示す図である。図3に示されるように、情報処理装置は、ハードウェア構成として、入力部110と、表示部120と、記録媒体ドライブ部130と、ROM150と、RAM160と、CPU170と、インターフェース部180と、HD190と、を含む。ここで、ROMは、Read Only Memoryの略である。また、RAMは、Random Access Memoryの略である。また、CPUは、Central Processing Unitの略である。HDは、Hard Diskの略である。
<Embodiment 1>
FIG. 3 is a diagram illustrating an example of a hardware configuration of the information processing apparatus. As shown in FIG. 3, the information processing apparatus includes, as a hardware configuration, an
入力部110は、情報処理装置の操作者(又はユーザ)が操作するキーボード及びマウス等で構成され、情報処理装置に各種操作情報等を入力するのに用いられる。表示部120は、情報処理装置の操作者が利用するディスプレイ等で構成され、各種情報(又は画面)等を表示するのに用いられる。インターフェース部180は、情報処理装置をネットワーク等に接続するインターフェースである。
The
後述する機能を提供するプログラムは、例えば、CD−ROM等の記録媒体140によって情報処理装置に提供されるか、ネットワーク等を通じてダウンロードされる。記録媒体140は、記録媒体ドライブ部130にセットされ、プログラムが記録媒体140から記録媒体ドライブ部130を介してHD190にインストールされる。
A program that provides a function to be described later is provided to the information processing apparatus by a
ROM150は、情報処理装置の電源投入時に最初に読み込まれるプログラム等を記録する。RAM160は、情報処理装置のメインメモリである。CPU170は、必要に応じて、HD190よりプログラムを読み出して、RAM160に格納し、プログラムを実行することで、後述する機能の全て又は一部を提供したり、後述するフローチャート等を実行したりする。また、HD190は、プログラム以外に、例えば後述する共有通信路情報32、メッセージ体系定義33、コンポーネント識別子定義34等を格納するようにしてもよい。
The
図4は、情報処理装置の機能構成の一例を示す図(その1)である。情報処理装置は、機能構成として、機能モジュール3511を含むプログラムモジュール351を一つ乃至は複数含むプログラムモジュール群35と、どのプロセスからもアクセス可能なIPCオブジェクト(以下、共有通信路ともいう)36と、を有する。また、情報処理装置は、機能構成として、共有通信路36の情報である共有通信路情報32と、共有通信路36を管理する共有通信路管理モジュール31と、プログラムモジュール351がIPCを行う際に使用する実行時通信路群37と、を有する。また、情報処理装置は、機能構成として、プログラムモジュール351を識別するためのコンポーネント識別子定義34と、IPC接続確立までの手続きを定義するメッセージ体系定義33と、を有する。
FIG. 4 is a first diagram illustrating an example of a functional configuration of the information processing apparatus. The information processing apparatus has, as a functional configuration, a
プログラムモジュール351は、特定のサービスを実現するためのプログラムモジュール群であり、その処理部を図4ではモジュールごとの機能実現部3512として表記している。つまり、プログラムモジュール351は、モジュールごとの機能実現部3512と、プロセス間通信に係るモジュール3511と、を有する。なお、本実施形態のプロセス間通信とは、プログラムモジュール351が実行される際に生成されるプロセス間でのメッセージ送受信のことを指す。
The
本実施形態では、プログラムモジュール351間で行うIPCの接続確立のために必要な手続きは、メッセージ体系定義33に定義されているものとする。IPCを開始したいプロセスからIPCを行いたい相手のプロセスに対して、メッセージ体系定義33に定義したメッセージを、共有通信路36を経由してやり取りした後に、IPCを開始する。また、プロセスは、IPCを行ないたい相手のプロセスの識別を、コンポーネント識別子定義34により行う。ここで、共有通信路36の生成は共有通信路管理モジュール31が行う。なお、共有通信路ではメッセージキューが使用される。
In the present embodiment, it is assumed that a procedure necessary for establishing an IPC connection between the
次に、情報処理装置の動作を、構成各部のそれぞれの詳しい動作と共に説明する。まず、メッセージ体系定義33及びコンポーネント識別子定義34について説明する。
Next, the operation of the information processing apparatus will be described together with the detailed operation of each component. First, the
メッセージ体系定義33及びコンポーネント識別子定義34は、システム起動時より前に予め定義され、HD190等に格納される。コンポーネント識別子定義34は、システム動作中にプロセスが相互に自身及び相手を識別できるように予め定義しておく表である。
The
図5は、コンポーネント識別子定義34の一例を示す図である。コンポーネント識別子定義34は、プログラムモジュール名61と、生成するプロセス62と、識別子63と、から構成される。ここで、プログラムモジュール名は、プログラムモジュールの情報である。また、生成するプロセスは、プログラムモジュールが生成しうるプロセスの個数情報である。また、識別子は、それらのプロセスに割り当てられる識別子である。
FIG. 5 is a diagram illustrating an example of the
図5において、例えばプログラムモジュール「httpサーバ」は、メインプロセスの他に子プロセスを4つ生成しうると設計されており、これらの5つのプロセスに対して、識別子「0x0010」から「0x0014」までが割り当てられている。 In FIG. 5, for example, the program module “http server” is designed to be able to generate four child processes in addition to the main process, and identifiers “0x0010” to “0x0014” are assigned to these five processes. Is assigned.
本実施形態では、コンポーネント識別子定義34は、プログラムソースの中に記述され、実行オブジェクトがコンポーネント識別子定義34に定義されている情報を持つようにする。但し、テキストファイルや共有メモリ等にコンポーネント識別子定義34を格納しておき、プログラム実行時にコンポーネント識別子定義34、又はコンポーネント識別子定義34に定義されている情報を読み込むようにしてもよい。
In this embodiment, the
次に、メッセージ体系定義33の一例を図6に示す。図6は、メッセージ体系定義33の一例を示す図である。メッセージ体系定義33は、メッセージ種別定義71と、データフォーマット定義72と、メッセージ利用規約定義73と、から構成される。
Next, an example of the
メッセージ種別定義71には、IPCを開始する処理で用いる手続き(メッセージ)の種別(メッセージの意味)と、メッセージ種別を識別する識別子と、メッセージに含まれる引数データと、が定義されている。
The
なお、図6に示されるメッセージ種別定義71には、「開始要求」(711)と、「開始要求応答」(712)との2種類が定義されている。開始要求711は、IPCを行いたいプロセスに対してその旨を通知するメッセージである。また、開始要求711は、使用する通信路の識別子を伝えるためのメッセージである。開始要求応答712は、開始要求を受信したプロセスがIPCの開始を受諾するか拒否するかを、要求を出したプロセスに返信するためのメッセージである。つまり、開始要求応答712には、受諾か拒否かの識別子が含まれる。
In the
データフォーマット定義72には、メッセージ種別定義71を表現するデータのフォーマットが定義されている。本実施形態のデータフォーマット定義72では、メッセージを伝えるために10バイトのメモリ領域を使用し、先頭から順に、送信元の識別子、送信先の識別子、メッセージ種別の識別子、引数データを格納するよう定義されている。
In the
メッセージ利用規約定義73には、メッセージの発行者や、メッセージの順序の決まりごと等、メッセージの利用方法が定義されている。
The message
認証のメインプロセスがストレージWebサービスの子プロセス1に対して通信路「0x003F」を使ってIPC開始要求を行う場合に送信されるメッセージデータの一例を図7に示す。図7は、メッセージデータの一例を示す図である。 FIG. 7 shows an example of message data transmitted when the authentication main process makes an IPC start request to the child process 1 of the storage Web service using the communication path “0x003F”. FIG. 7 is a diagram illustrating an example of message data.
図5よりユーザー認証メインプロセスは、「0x0030」であり、ストレージWebサービスの子プロセス1は、「0x0021」である。また、図6より、開始要求のメッセージ種別識別子は、「0x01」であり、開始要求のメッセージはデータに通信路識別子を格納する。よって、図7の例では、メモリの先頭から「0x0030」(81)、「0x0021」(82)、「0x01」(83)、「0x003F」(84)を格納するメッセージデータとなる。 As shown in FIG. 5, the user authentication main process is “0x0030”, and the child process 1 of the storage Web service is “0x0021”. Also, from FIG. 6, the message type identifier of the start request is “0x01”, and the communication channel identifier is stored in the data of the start request message. Therefore, in the example of FIG. 7, the message data stores “0x0030” (81), “0x0021” (82), “0x01” (83), and “0x003F” (84) from the top of the memory.
続いて、情報処理装置の起動から終了までの処理の流れを説明する。
始めに、IPC接続処理のために使用する共有通信路36の生成、削除の仕組みを説明し、その後に、IPC接続処理のより具体的な手順を説明する。
Next, the flow of processing from the start to the end of the information processing apparatus will be described.
First, a mechanism for generating and deleting the shared
図8は、共有通信路の生成・削除に関する処理の一例を示すフローチャートである。情報処理装置の起動後、まず共有通信路管理モジュール31が起動される(ステップS41)。起動した共有通信路管理モジュール31は、どのプロセスからも読み書きが可能なメッセージキューを作成する(ステップS42)。ここで作成されたメッセージキューが、この後のやり取りで各プロセスから使用される共有通信路36となる。
FIG. 8 is a flowchart illustrating an example of processing related to generation / deletion of a shared communication path. After the information processing apparatus is activated, the shared communication
更に、共有通信路管理モジュール31は、作成したメッセージキューの識別子(IPCオブジェクトの識別子の値)をどのプロセスからも読み出し可能なファイルに記述する(ステップS43)。本実施形態では、共有通信路管理モジュール31は、IPCオブジェクトの識別子の値をテキストファイルに格納し、どのプロセスからも読み出し可能にする。
Further, the shared communication
図9は、IPCオブジェクトの識別子の値が格納されたテキストファイルの一例を示す図である。図9の例では、識別子は「0x003F」で、ファイル51に識別子52が格納されている。
FIG. 9 is a diagram illustrating an example of a text file in which the identifier value of the IPC object is stored. In the example of FIG. 9, the identifier is “0x003F”, and the
なお、ステップS43の処理の本質は、共有通信路36の識別子を他のプロセスが知ることができるようにするということであり、ファイルシステムに書き出す方法や、その書き出し方は本質ではない。例えば、共有通信路管理モジュール31は、予め決められた共有メモリ(シェアードメモリー)のアドレスに、IPCオブジェクトの識別子の値を格納するようにしてもよい。
Note that the essence of the processing in step S43 is that other processes can know the identifier of the shared
続いて、例えば情報処理装置は、サービスを構成する各プログラムモジュールのプロセスを起動する。そして、各プロセスは、それぞれの動作を行う(ステップS44)。情報処理装置におけるシステムの終了時には、共有通信路管理モジュール31は、共有通信路36として使用したメッセージキューオブジェクトを削除する(ステップS45)。
Subsequently, for example, the information processing apparatus starts a process of each program module constituting the service. And each process performs each operation | movement (step S44). At the end of the system in the information processing apparatus, the shared communication
続いて、本発明のIPC接続処理の手続きを説明する。まず、先に記述した、IPC接続処理の処理を実現する機能モジュール(図4の3511)の構成と、役割とを説明し、その後に、動作を説明する。 Next, the procedure of the IPC connection process of the present invention will be described. First, the configuration and role of the functional module (3511 in FIG. 4) for realizing the IPC connection processing described above will be described, and then the operation will be described.
まず、IPC接続処理の手続きを実現するための機能モジュールの構成例を図10に示す。図10は、機能モジュールの構成の一例を示す図である。初期設定部91は、プロセスの起動時に動作し、必要な情報をプロセス内部に設定するモジュールである。外部情報参照部92は、共有通信路36の識別子等の情報を外部参照するためのモジュールである。情報記憶部93は、共有通信路36等の情報をプロセスの動作中、保持するためのモジュールである。
First, FIG. 10 shows a configuration example of functional modules for realizing the procedure of IPC connection processing. FIG. 10 is a diagram illustrating an example of a functional module configuration. The
メッセージ送信部94及びメッセージ受信部95は、それぞれIPCによるデータ送信及び受信を実現するモジュールである。接続メッセージ処理部96は、メッセージ体系定義33に基づいて、メッセージを生成・解釈する機能と、IPC接続処理の状態遷移を管理する機能とを実現するモジュールである。IPC接続処理部97は、指定された通信路識別子を用いてプロセス同士のIPCを行うモジュールである。
The
次に、IPC接続処理のための行程を説明する。本実施形態では、IPC接続処理を行うために、各プロセスは起動時に決まった初期処理を行う。図11は、各プロセスの初期処理の一例を示すフローチャートである。 Next, a process for IPC connection processing will be described. In this embodiment, in order to perform IPC connection processing, each process performs initial processing determined at the time of activation. FIG. 11 is a flowchart illustrating an example of initial processing of each process.
まず、情報記憶部93は、コンポーネント識別子定義34の中で、自プロセスに定義されている識別子の情報を記憶する(ステップS101)。次に、外部情報参照部92が共有通信路36の識別子を読み込み、情報記憶部93がこの情報を記憶する(ステップS102)。最後に、メッセージ受信部95はメッセージ待ちのポーリングを開始する(ステップS103)。プロセスは、共有通信路36に自身宛のメッセージが入れられた場合にのみ受信を行う。
First, the
図12は、IPC接続処理の一例を示す図(その1)である。まず第1のプロセスは、これから行う第2のプロセスとのIPCで使用する実行時通信路を確保する(ステップS1101)。そして、第1のプロセスは、確保した実行時通信路の識別子を記憶する(ステップS1102)。 FIG. 12 is a diagram (part 1) illustrating an example of the IPC connection process. First, the first process secures a runtime communication path to be used for IPC with the second process to be performed (step S1101). Then, the first process stores the identifier of the reserved runtime communication path (step S1102).
このステップS1101及びステップS1102の処理は、これから行う第2のプロセスとのIPCで使用するための通信路を確保することが目的であり、通信路を新規に作成するか、既存の通信路を使用するかは問題ではない。既存の通信路を使用する場合は、第1のプロセスは、その識別子の取得と記憶を行えばよい。 The purpose of the processing in step S1101 and step S1102 is to secure a communication path to be used in IPC with the second process to be performed in the future, and a new communication path is created or an existing communication path is used. It doesn't matter what you do. When an existing communication path is used, the first process may acquire and store the identifier.
次に、第1のプロセスは、コンポーネント識別子定義を参照し、第2のプロセスの識別子を取得する。また、第1のプロセスは、メッセージ体系定義33に従って開始要求メッセージを作成し、そのデータを、共有通信路36の識別子を指定して、第2のプロセス宛に送信する(ステップS1103)。第2のプロセスは、第1のプロセスが共有通信路36に入れた自身宛のメッセージを選択し、受信する(ステップS1104)。
Next, the first process refers to the component identifier definition and obtains the identifier of the second process. Further, the first process creates a start request message according to the
ステップS1103及びステップS1104の処理に係る、メッセージ送受信のプログラムコードの一例を図13に示す。図13は、メッセージ送受信のプログラムコードの一例を示す図である。なお、図13の例は、SystemVメッセージキューを使用した場合の例である。 FIG. 13 shows an example of message transmission / reception program codes related to the processing in steps S1103 and S1104. FIG. 13 is a diagram illustrating an example of a program code for message transmission / reception. Note that the example of FIG. 13 is an example in the case of using a SystemV message queue.
第1のプロセスが送信するデータには、メッセージ体系定義33のフォーマットに加えて、メッセージの選択受信を容易にするためのフラグとして第2のプロセスのコンポーネント識別子が付加されている(第1のプロセスで実行されるプログラム例1201)。
In addition to the format of the
第2のプロセスは、このフラグデータをフィルタとして自身のメッセージかどうかを判断し、受信する(第2のプロセスで実行されるプログラム例1202)。 The second process uses the flag data as a filter to determine whether or not it is its own message and receives it (program example 1202 executed in the second process).
共有通信路36における受信処理は、先に記述した、プロセスの初期動作(図11のステップS103)において開始される処理動作である。
The reception process on the shared
第1のプロセスからのIPC開始要求を受信した第2のプロセスは、受信したメッセージに含まれる、第1のプロセスが指定した通信路の識別子を抽出し、その識別子を第1のプロセスとのIPCに使用するように記憶する(ステップS1105)。続いて、第2のプロセスは、メッセージ体系定義33に従って開始要求応答メッセージを作成し、共有通信路36の識別子を指定して、そのデータを送信する(ステップS1106)。第1のプロセスは、第2のプロセスが送信した開始要求応答メッセージを受信する(S1107)。
The second process that has received the IPC start request from the first process extracts the identifier of the communication path specified by the first process, contained in the received message, and uses the identifier as the IPC with the first process. (Step S1105). Subsequently, the second process creates a start request response message in accordance with the
以上の処理で、第1のプロセスと、第2のプロセスとの間で、使用する通信路の識別子情報が共有され、IPC接続が確立され、メッセージ(又はデータ)のやり取りが行われる(S1108)。 Through the above processing, the identifier information of the communication path to be used is shared between the first process and the second process, an IPC connection is established, and a message (or data) is exchanged (S1108). .
第1のプロセスと、第2のプロセスとの間のIPCが終了したら、例えば第1のプロセスが、使用した実行時通信路を削除する(ステップS1109)。 When the IPC between the first process and the second process ends, for example, the first process deletes the runtime communication path used (step S1109).
なお、上述した説明の行程では、第1のプロセスと、第2のプロセスとの間のIPCで使用する通信路は1つだけであるが、同様の処理を行うことで、通信路を多重化できる。 In the above-described process, only one communication path is used in the IPC between the first process and the second process, but the same process is performed to multiplex the communication paths. it can.
<実施形態2>
実施形態2では、共有通信路を用いず、プロセス同士のIPCを開始する一例を説明する。なお、実施形態2では、説明の簡略化のため、プログラムモジュールではなく、プロセスの言葉を用いて説明を行なう。
<Embodiment 2>
In the second embodiment, an example of starting IPC between processes without using a shared communication path will be described. In the second embodiment, for the sake of simplicity, the description will be made using process words instead of program modules.
図14は、情報処理装置の機能構成の一例を示す図(その2)である。情報処理装置は、機能構成として、プロセス1305同士がIPCを行なう際に使用する実行時通信路群1301と、IPC接続確立までの手続きを定義するメッセージ体系定義1302と、を有する。また、情報処理装置は、機能構成として、プロセス1305を識別するためのコンポーネント識別子定義1303と、IPC接続処理のためのプログラムモジュールを含むプロセス1305を含むプロセス群1304と、を有する。
FIG. 14 is a second diagram illustrating an example of a functional configuration of the information processing apparatus. The information processing apparatus has, as functional configurations, a runtime
以上の構成は、実施形態1と同様である。
本実施形態では、プロセス1305それぞれに一つずつ受信専用通信路1306が割り当てられている。受信専用通信路1306は、各プロセス1305へのメッセージを送るための通信路として使用される。
The above configuration is the same as that of the first embodiment.
In this embodiment, one reception-only
受信専用通信路1306は、プロセスが生成されるときの初期処理で確保し、その後プロセスはその受信専用通信路1306からのメッセージを待ち受ける。ここで、各プロセスの受信専用通信路1306の識別子を他のプロセスが知る必要がある。そのため、コンポーネント識別子定義1303は、実施形態1の図5と同様のプロセスを識別するためのテーブルに加えて、図15に示す、プロセスの識別子からその受信専用通信路の識別子の情報を取得することができるテーブルを持つ。
The reception-only
図15は、プロセスの識別子と、受信専用通信路136の識別子とを関連させるテーブルの一例を示す図である。
141は、図5の63で示したプロセスの識別子であり、142はそのプロセスの受信専用通信路136の識別子である。プロセスは、受信専用通信路136を確保したときに、図15に示すテーブルに受信専用通信路136の識別子の情報を記録する。
FIG. 15 is a diagram illustrating an example of a table associating process identifiers with identifiers of the reception-only communication path 136.
141 is an identifier of the process indicated by 63 in FIG. 5, and 142 is an identifier of the reception-only communication path 136 of the process. When the process secures the reception-only communication path 136, the process records the identifier information of the reception-only communication path 136 in the table shown in FIG.
本実施形態は、各プロセスが受信専用通信路136を持つため、背景技術の第2の例で説明した、予めシステムで使用するIPCを全て定義してしまう例と似ている。しかしながら、本実施形態によれば、システム設計時にIPCオブジェクトを定義していないプロセス間のIPCであっても動作可能であるという点が異なる。 This embodiment is similar to the example in which all the IPCs used in the system are defined in advance, as described in the second example of the background art, because each process has a reception-only communication path 136. However, according to the present embodiment, the difference is that even an IPC between processes that does not define an IPC object at the time of system design can operate.
本実施形態でのIPC接続処理を、図16を用いて説明する。図16は、IPC接続処理の一例を示す図(その2)である。まず第1のプロセスは、これらか行なう第2のプロセスとのIPCで使用する実行時通信路を確保する(ステップS151)。そして、第1のプロセスは、確保した実行時通信路の識別子を記憶する(ステップS152)。 The IPC connection process in this embodiment will be described with reference to FIG. FIG. 16 is a second diagram illustrating an example of the IPC connection process. First, the first process secures a runtime communication path to be used in IPC with the second process to be performed (step S151). Then, the first process stores the identifier of the reserved runtime communication path (step S152).
次に、第1のプロセスは、コンポーネント識別子定義1303を参照し、第2のプロセスの識別子を取得し、第2のプロセスの識別子から第2のプロセスの受信専用通信路1306の識別子を取得する。また、第1のプロセスは、メッセージ体系定義1302に従って開始要求メッセージを作成し、第2のプロセスに割り当てられている受信専用通信路1306の識別子を指定して、そのデータを送信する(ステップS153)。
Next, the first process refers to the
第2のプロセスは、開始要求メッセージを受信した後、メッセージに含まれる第1のプロセスが指定した通信路の識別子を抽出し、その識別子を第1のプロセスとのIPCに使用するように記憶する(ステップS154)。ステップS153の後に、第2のプロセスは、メッセージ体系定義1302に従って開始要求応答メッセージを作成し、第1のプロセスの受信専用通信路1306の識別子を指定して、そのデータを送信する(ステップS155)。第1のプロセスは、第2のプロセスがIPC開始に応答したことを確認する。
After receiving the start request message, the second process extracts the identifier of the communication path designated by the first process included in the message, and stores the identifier for use in the IPC with the first process. (Step S154). After step S153, the second process creates a start request response message in accordance with the
以上の処理で、第1のプロセスと、第2のプロセスとの間で、使用する通信路の識別子情報が共有され、直接的なIPC接続が確立され、メッセージ(又はデータ)のやり取りが行われる(S156)。 With the above processing, the identifier information of the communication path to be used is shared between the first process and the second process, a direct IPC connection is established, and messages (or data) are exchanged. (S156).
第1のプロセスと、第2のプロセスとの間のIPCが終了したら、例えば第1のプロセスが、使用した実行時通信路を削除する(ステップS157)。 When the IPC between the first process and the second process ends, for example, the first process deletes the runtime communication path used (step S157).
なお、上述した説明の行程では、第1のプロセスと、第2のプロセスとの間のIPCで使用する通信路は1つだけであるが、同様の処理を行うことで、通信路を多重化できる。 In the above-described process, only one communication path is used in the IPC between the first process and the second process, but the same process is performed to multiplex the communication paths. it can.
以上、上述した各実施形態によれば、プロセス間通信に関するオブジェクトの識別子の管理を容易にし、且つ、メモリーリソースの消費を低く抑えることができる。 As described above, according to each of the above-described embodiments, it is possible to easily manage object identifiers related to inter-process communication, and to reduce consumption of memory resources.
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 The preferred embodiments of the present invention have been described in detail above, but the present invention is not limited to such specific embodiments, and various modifications can be made within the scope of the gist of the present invention described in the claims.・ Change is possible.
110 入力部
120 表示部
130 記録媒体ドライブ部
140 記録媒体
150 ROM
160 RAM
170 CPU
180 インターフェース部
190 HD
110
160 RAM
170 CPU
180
Claims (9)
データ通信に係る各プロセスは、
データ通信路に係るデータ伝達オブジェクトの識別子の通知を他のプロセスより受け取る受取手段と、
前記受取手段で受け取った前記識別子で識別される前記データ伝達オブジェクトを用いて、前記他のプロセスとの接続を確立する接続確立手段と、
を有することを特徴とする情報処理装置。 An information processing apparatus capable of operating a plurality of processes,
Each process related to data communication
Receiving means for receiving a notification of the identifier of the data transmission object related to the data communication path from another process;
Connection establishment means for establishing a connection with the other process using the data transmission object identified by the identifier received by the receiving means;
An information processing apparatus comprising:
データ通信に係るプロセスが、データ通信路に係るデータ伝達オブジェクトの識別子の通知を他のプロセスより受け取る受取ステップと、
前記データ通信に係るプロセスが、前記受取ステップにおいて受け取った前記識別子で識別される前記データ伝達オブジェクトを用いて、前記他のプロセスとの接続を確立する接続確立ステップと、
を有することを特徴とするプロセス間通信方法。 An inter-process communication method in an information processing apparatus capable of operating a plurality of processes,
A receiving step in which a process related to data communication receives a notification of an identifier of a data transmission object related to a data communication path from another process;
A connection establishment step in which the process related to the data communication establishes a connection with the other process using the data transmission object identified by the identifier received in the receiving step;
An interprocess communication method characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006128474A JP4667299B2 (en) | 2006-05-02 | 2006-05-02 | Interprocess communication method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006128474A JP4667299B2 (en) | 2006-05-02 | 2006-05-02 | Interprocess communication method |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2007299319A true JP2007299319A (en) | 2007-11-15 |
JP2007299319A5 JP2007299319A5 (en) | 2009-06-18 |
JP4667299B2 JP4667299B2 (en) | 2011-04-06 |
Family
ID=38768743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006128474A Expired - Fee Related JP4667299B2 (en) | 2006-05-02 | 2006-05-02 | Interprocess communication method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4667299B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455380A (en) * | 2012-06-05 | 2013-12-18 | 上海斐讯数据通信技术有限公司 | Multi-process communication system and establishment and communication method thereof |
KR20150095052A (en) * | 2014-02-12 | 2015-08-20 | 한국전자통신연구원 | Method for inter-process communication |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02144655A (en) * | 1988-11-25 | 1990-06-04 | Hitachi Ltd | Plural communication paths connection control system |
JPH0887476A (en) * | 1994-09-14 | 1996-04-02 | Nippon Telegr & Teleph Corp <Ntt> | Sequential restoration processing method for decentralized service |
JPH0887477A (en) * | 1994-09-14 | 1996-04-02 | Nippon Telegr & Teleph Corp <Ntt> | Service requesting method |
JPH10105529A (en) * | 1996-03-25 | 1998-04-24 | Sun Microsyst Inc | System and method for secure pier-to-pier communication between downloaded programs |
JP2005339225A (en) * | 2004-05-27 | 2005-12-08 | Mitsubishi Electric Corp | Communication system, client device, server device, relaying device, and information processing method |
-
2006
- 2006-05-02 JP JP2006128474A patent/JP4667299B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02144655A (en) * | 1988-11-25 | 1990-06-04 | Hitachi Ltd | Plural communication paths connection control system |
JPH0887476A (en) * | 1994-09-14 | 1996-04-02 | Nippon Telegr & Teleph Corp <Ntt> | Sequential restoration processing method for decentralized service |
JPH0887477A (en) * | 1994-09-14 | 1996-04-02 | Nippon Telegr & Teleph Corp <Ntt> | Service requesting method |
JPH10105529A (en) * | 1996-03-25 | 1998-04-24 | Sun Microsyst Inc | System and method for secure pier-to-pier communication between downloaded programs |
JP2005339225A (en) * | 2004-05-27 | 2005-12-08 | Mitsubishi Electric Corp | Communication system, client device, server device, relaying device, and information processing method |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455380A (en) * | 2012-06-05 | 2013-12-18 | 上海斐讯数据通信技术有限公司 | Multi-process communication system and establishment and communication method thereof |
KR20150095052A (en) * | 2014-02-12 | 2015-08-20 | 한국전자통신연구원 | Method for inter-process communication |
KR102019108B1 (en) * | 2014-02-12 | 2019-09-09 | 한국전자통신연구원 | Method for inter-process communication |
Also Published As
Publication number | Publication date |
---|---|
JP4667299B2 (en) | 2011-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102209276B1 (en) | Messaging protocol communication management | |
US9244817B2 (en) | Remote debugging in a cloud computing environment | |
KR101066682B1 (en) | Method of notification for shared resources | |
JP4495410B2 (en) | Computing system and method thereof | |
Neira‐Ayuso et al. | Communicating between the kernel and user‐space in Linux using Netlink sockets | |
JP4799155B2 (en) | Message exchange protocol extension negotiation | |
US8589885B2 (en) | Debugger launch and attach on compute clusters | |
EP1986369A1 (en) | End user control configuration system with dynamic user interface | |
JP2004038758A (en) | Storage controller, control method for storage controller, and program | |
JP5159071B2 (en) | COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND ITS CONTROL METHOD | |
JP2010231759A (en) | Mobile terminal device including mobile cloud platform | |
JP4410608B2 (en) | Web service providing method | |
KR102121358B1 (en) | Data transmission method and device | |
CN111858007A (en) | Task scheduling method and device based on message middleware | |
WO2019062634A1 (en) | Communication method and apparatus | |
JP5405494B2 (en) | Media mix wiring protocol for media control | |
CN108287647A (en) | A kind of application operation method and device | |
US20090319660A1 (en) | Generalized architecture to support representation of multi-transport devices | |
JP2011235580A (en) | Image forming apparatus and control program thereof | |
JP4667299B2 (en) | Interprocess communication method | |
US8051191B2 (en) | Ethernet extensibility | |
TW200803282A (en) | Technique for controlling external communication of embedded device using proxy server | |
JP2018513460A (en) | Method and system for requesting access to a restricted service instance | |
Chou et al. | WIPdroid–a two-way web services and real-time communication enabled mobile computing platform for distributed services computing | |
JP2009294863A (en) | Event service distribution system, event service distribution device, and event service distribution method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090501 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090501 |
|
A977 | Report on retrieval |
Effective date: 20101001 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101005 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101129 |
|
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: 20101228 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Effective date: 20110111 Free format text: JAPANESE INTERMEDIATE CODE: A61 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 3 Free format text: PAYMENT UNTIL: 20140121 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |