JP2007172255A - Inter-component communication equipment - Google Patents

Inter-component communication equipment Download PDF

Info

Publication number
JP2007172255A
JP2007172255A JP2005368393A JP2005368393A JP2007172255A JP 2007172255 A JP2007172255 A JP 2007172255A JP 2005368393 A JP2005368393 A JP 2005368393A JP 2005368393 A JP2005368393 A JP 2005368393A JP 2007172255 A JP2007172255 A JP 2007172255A
Authority
JP
Japan
Prior art keywords
data
component
request
communication
fixed
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
JP2005368393A
Other languages
Japanese (ja)
Inventor
Masahiko Kobayashi
雅彦 小林
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2005368393A priority Critical patent/JP2007172255A/en
Publication of JP2007172255A publication Critical patent/JP2007172255A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce the overheads of inter-component communication when software components are present as distributed objects over processes or CPUs. <P>SOLUTION: Whether response data from a communicating party attended by inter-CPU communication are fixed data or variable data is judged, they are paired with a request parameter and stored when they are the fixed data, and the stored response data are returned without performing the inter-CPU communication at the time of request to the fixed data thereafter. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、コンポーネント間通信方法であって、特にソフトウエアコンポーネントが、プロセスやCPUをまたがるような分散オブジェクトとして存在する場合の、コンポーネント間通信装置に関する。   The present invention relates to an inter-component communication method, and more particularly to an inter-component communication apparatus when a software component exists as a distributed object that spans processes and CPUs.

多様な製品や機器構成に対応するためには、ソフトウエアでハードやOSの違いを隠蔽できるようにし、さらに、ソフトウエア部品をコンポーネント化して、機器に応じたコンポーネントを選択的に利用できるようにする。このように、ソフトウエア資産の再利用性を高め、さらに、複雑な機器構成に対応するために、コンポーネントが複数のCPUに分散して配置され、それぞれが互いに通信して協調動作するような仕組みの必要性が非常に高くなってきている。   In order to support various products and device configurations, software can conceal differences between hardware and OS, and software components can be made into components so that components can be selectively used according to the device. To do. In this way, in order to increase the reusability of software assets and to cope with complex equipment configurations, a mechanism in which components are distributed and arranged on multiple CPUs, each of which communicates with each other and operates cooperatively The need for is getting very high.

これらのことを解決するために、Java(登録商標)のRMIやCORBAといった分散オブジェクト技術が用いられている。
RMIにより、分散アプリケーションのフレームワークにおいて、オブジェクトを別のマシンに自由に移動することができる。
In order to solve these problems, distributed object technologies such as Java (registered trademark) RMI and CORBA are used.
RMI allows objects to be moved freely from one machine to another in a distributed application framework.

また、そのためにコードを変更する必要はほとんどなくなった。Java(登録商標)のRMIがJava(登録商標)言語に依存しているのに対して、CORBAはサポート言語を限定しておらず、分散オブジェクトがネットワークを介して通信する方法を定めたものである。   Also, there is almost no need to change the code. Whereas Java® RMI relies on Java® language, CORBA does not limit the supported language and defines how distributed objects communicate over a network. is there.

CORBAにおけるORB(Object Request Broker)は、以下の機能を有する。即ち、リモートマシン上のオブジェクトの検索と、それにアクセスするためのスタブオブジェクトの作成、ダウンロードしたスタブを用いたリモートメソッドの静的呼び出し、パラメータの変換、セキュリティの保障などを行う。ORBは、オブジェクトが通信するための通信媒体として働く構成要素である。   An ORB (Object Request Broker) in CORBA has the following functions. In other words, it searches for an object on the remote machine, creates a stub object for accessing it, statically calls a remote method using the downloaded stub, converts parameters, and ensures security. The ORB is a component that acts as a communication medium for objects to communicate.

Java(登録商標)のRMIやCORBAの仕組みを利用すれば、ソフトウエアコンポーネントが分散された場合でも、特に意識することなくコンポーネントの設計が可能となった。しかしながら、RMIやCORBAが汎用的なネットワーク、及びアプリケーション間通信のためのフレームワークであるため、組み込み機器内でそのフレームワークを使用しようとすると以下のような問題を持っている。   Using the Java (registered trademark) RMI and CORBA mechanisms, even when software components are distributed, it is possible to design components without any particular consideration. However, since RMI and CORBA are general-purpose networks and frameworks for inter-application communication, there are the following problems when trying to use the frameworks in embedded devices.

例えば、第1のCPU側にデータソースとなるコンポーネントが存在し、第2のCPU側にそのデータソースの同一な情報を取得したいコンポーネントが複数存在した場合に問題が生じる。このとき、現在の仕組みでは第2のCPUの要求側コンポーネントの数分だけ、第1CPUと第2CPU間とで通信が発生してしまう。   For example, a problem occurs when a component that is a data source exists on the first CPU side and a plurality of components that want to acquire the same information of the data source exist on the second CPU side. At this time, in the current mechanism, communication occurs between the first CPU and the second CPU by the number of requesting components of the second CPU.

通常CPU間の通信は同一CPU内における通信に比べ通信速度が著しく低下するので、システムのパフォーマンスの低下を引き起こす。
特に、システムの起動時は、各コンポーネントが初期化に必要なデータを短い期間内に集中的に発生する。この時CPU間通信が多く発生すれば、それだけシステムの起動時間が遅くなってしまう。
In general, communication between CPUs significantly reduces the communication speed compared to communication within the same CPU, causing a decrease in system performance.
In particular, at the time of starting the system, each component generates data necessary for initialization in a short period of time. At this time, if more inter-CPU communication occurs, the startup time of the system will be delayed accordingly.

ここで、コンポーネント同士のネゴシエーションでこれらの通信オーバーヘッドを減らそうとすると、コンポーネント自体が専用部品となり、コンポーネントのポータビリティを失ってしまう。   Here, when trying to reduce these communication overheads by negotiation between components, the component itself becomes a dedicated part, and the portability of the component is lost.

このような、組み込み機器のような通信されるオブジェクトの内容をある程度想像できる場合の通信オーバーヘッドの低減を、コンポーネントの独立性を保ったまま実現することが望まれる。   It is desired to reduce the communication overhead when the contents of an object to be communicated such as an embedded device can be imagined to some extent while maintaining the independence of components.

本発明は、上記の課題に鑑みてなされたものであり、通信上に搭載されるソフトウエアコンポーネントは、自身がどこに配置されるかを意識する必要はなく、すなわちコンポーネントのポータビリティを維持したうえで、ソフトウエアコンポーネントと通信手段の間で、CPU間で繰り返し行われる固定データ通信をそれぞれ1度だけにすることで、コンポーネント間通信のオーバーヘッドを軽減させシステムのパフォーマンスを向上させることを可能とするコンポーネント間通信装置を提供することを目的とする。   The present invention has been made in view of the above problems, and software components mounted on communication do not need to be aware of where they are placed, that is, while maintaining the portability of the components. A component that reduces the overhead of inter-component communication and improves system performance by making each fixed data communication repeated between CPUs only once between the software component and the communication means. An object is to provide an intercommunication device.

本発明のコンポーネント間通信装置は、ソフトウエアコンポーネントが、プロセス及びCPUをまたがる分散オブジェクトとして存在する場合におけるコンポーネント間の通信装置であって、データの要求先が同一CPUのコンポーネントか、別CPUのコンポーネントかを判断する通信相手判断手段と、前記通信相手判断手段により通信相手が前記別CPUであると判断された場合に、通信相手への要求パラメータを一時記憶する記憶手段と、前記通信相手からの応答データが固定データか可変データかを判定する固定データ判定手段と、前記固定データ判定手段により前記固定データと判定されたデータを、前記要求パラメータと関連付けて記憶する固定データ記憶手段と、前記通信相手判断手段により前記要求先が前記別CPUと判定された場合、実際に要求を出す前に、前記固定データ記憶手段に受信済みデータが存在した場合には要求を行わないで、前記固定データ記憶手段に記憶されているデータを返却する手段とを具備する。   The inter-component communication apparatus of the present invention is an inter-component communication apparatus when a software component exists as a distributed object that spans processes and CPUs, and a data request destination is a component of the same CPU or a component of another CPU A communication partner determination means for determining whether or not the communication partner determination means determines that the communication partner is the other CPU, and a storage means for temporarily storing a request parameter for the communication partner; Fixed data determination means for determining whether the response data is fixed data or variable data, fixed data storage means for storing the data determined as the fixed data by the fixed data determination means in association with the request parameter, and the communication If it is determined by the partner determination means that the request destination is the different CPU, it is actually necessary. Before issuing, if the received data is present in the fixed data storage means without performing the request, and means for returning the data stored in the fixed data storage means.

本発明によれば、通信上に搭載されるソフトウエアコンポーネントは、自身がどこに配置されるかを意識する必要はなく、すなわちコンポーネントのポータビリティを維持したうえで、ソフトウエアコンポーネントと通信手段の間で、CPU間で繰り返し行われる固定データ通信をそれぞれ1度だけにすることで、コンポーネント間通信のオーバーヘッドを軽減させシステムのパフォーマンスを向上させることが可能となる。   According to the present invention, the software component mounted on the communication does not need to be aware of where the software component is placed, that is, between the software component and the communication means while maintaining the portability of the component. By making each fixed data communication repeatedly performed between CPUs only once, it is possible to reduce the overhead of communication between components and improve the performance of the system.

図2は従来の方法を示すダイアグラム図である。図2において、システムはCPU1とCPU2の2つのCPUから構成され、CPU1側にComponent1とComponent2の2つのソフトウエアコンポーネントが、CPU2側にComponent3とComponent4の2つのソフトウエアコンポーネントが存在する。   FIG. 2 is a diagram showing a conventional method. In FIG. 2, the system is composed of two CPUs, CPU1 and CPU2. There are two software components, Component1 and Component2, on the CPU1 side, and two software components, Component3 and Component4, on the CPU2 side.

Component1はデータベースを持ち、Component2,3,4はComponent1のデータベースを参照するために、それぞれComponent1と通信する必要がある。
Component1とComponent2は同じCPU上で動作しているので、外部通信をしなくても高速な内部通信でデータの送受信が可能である。
Component1 has a database, and components 2, 3, and 4 need to communicate with Component1 in order to refer to the component1 database.
Since Component1 and Component2 operate on the same CPU, data can be transmitted and received by high-speed internal communication without external communication.

Component3、Component4からComponent1へのリクエストはCPU2からCPU1へのCPU間転送を必要とする。CPU間転送は一般的にCPU内部転送よりもはるかに時間がかかる。
例えば、図2の例ではComponent3とComponent4がそれぞれComponent1に対してCPU間転送を使用して通信を行っている。
Requests from Component3 and Component4 to Component1 require inter-CPU transfer from CPU2 to CPU1. CPU transfer generally takes much longer than CPU internal transfer.
For example, in the example of FIG. 2, Component 3 and Component 4 communicate with Component 1 using inter-CPU transfer.

ところで、Component3とComponent4がまったく同じデータをComponent1にリクエストしたとし、そのデータが不変な固定データだったら、スピードの遅いCPU間転送を繰り返すのは処理速度のネックになる。   By the way, if Component3 and Component4 request exactly the same data from Component1, and the data is invariant fixed data, repeating slow CPU transfers is a bottleneck in processing speed.

そこで本発明では、図3に示すようなSTUBを通信手段とソフトウエアコンポーネント間にいれ、固定データの場合の通信処理の効率化を実現する。図3のSTUBを詳細に示したのが図1である。   Therefore, in the present invention, an STUB as shown in FIG. 3 is inserted between the communication means and the software component, thereby realizing an efficient communication process in the case of fixed data. FIG. 1 shows the STUB in FIG. 3 in detail.

図1において、クライアント側通信ポートはソフトウエアコンポーネントのクライアントサイドに接続されている(1-2)。
図3ではクライアントサイドはComponent2, Component3, Componet4となる。サーバー側通信ポートはデータソース側のソフトウエアコンポーネントに接続される。
In FIG. 1, the client side communication port is connected to the client side of the software component (1-2).
In FIG. 3, the client side is Component2, Component3, Componet4. The server side communication port is connected to a software component on the data source side.

図3ではComponent1になる。それぞれのコンポーネントはいずれか片方にしかなれないのではなく、サーバーとクライアントの両方の機能を持つことも可能である。
サーバー側の通信ポートに接続される側では、STUBは通信手段とのデータ通信をスルーして何もしない(1-3)。
In FIG. 3, it becomes Component1. Each component can only be one of them, and can have both server and client functions.
On the side connected to the communication port on the server side, STUB does nothing through data communication with the communication means (1-3).

一方で、クライアント側に接続される側では、STUBはデータの要求先が同一CPUのコンポーネントか、別CPUのコンポーネントかを判断する通信相手判断手段(1-4)を有する。また、通信相手判断手段により通信相手が別CPUだった場合に、通信相手への要求パラメータを一時記憶する記憶手段(1-6)を有する。また、通信相手からの応答データが固定データか可変データかを判定する固定データ判定手段(1-7)を有する。また、固定データ判定手段で固定データと判定されたデータを、要求パラメータと関連付けて記憶する固定データ記憶手段(1-8)を有する。また、通信相手判断手段で、要求先が別CPUと判定された場合、実際に要求を出す前に、固定データ記憶手段に受信済みデータが存在した場合は要求(通信)を行わないで、固定データ記憶手段に記憶されているデータを返却する固定データ管理手段(1-5)を有する。   On the other hand, on the side connected to the client side, STUB has communication partner determination means (1-4) for determining whether the data request destination is a component of the same CPU or a component of another CPU. In addition, when the communication partner is a different CPU by the communication partner determination unit, a storage unit (1-6) is provided for temporarily storing a request parameter for the communication partner. Also, fixed data determination means (1-7) for determining whether the response data from the communication partner is fixed data or variable data. Further, it has fixed data storage means (1-8) for storing data determined as fixed data by the fixed data determination means in association with the request parameter. Also, if the communication partner determination means determines that the request destination is a different CPU, the request (communication) will not be made if there is already received data in the fixed data storage means before the request is actually issued. There is a fixed data management means (1-5) for returning data stored in the data storage means.

図6は図1のダイアグラム図のクライアント側の処理を示すフローチャートである。
S6-1でクライアントからのリクエストを受け付ける。S6-2で通信相手が自身と同じCPUか別のCPUかの判断をし、同じCPUと判断した場合はS6-11へ進み、別のCPUと判断した場合はS6-4へ進む(S6-3)。
FIG. 6 is a flowchart showing processing on the client side in the diagram of FIG.
Accept the request from the client in S6-1. In S6-2, it is determined whether the communication partner is the same CPU or another CPU, and if it is determined that it is the same CPU, the process proceeds to S6-11, and if it is determined that it is a different CPU, the process proceeds to S6-4 (S6- 3).

S6-11では同一CPUなので通常の通信処理を行い、応答があったらS6-10で要求元に応答データを返却する。
S6-4では要求パラメータと、固定データ記憶手段(1-8)に記憶されているデータの要求パラメータとを比較し、同じリクエストに対する応答データが格納されていたらS6-12へ進む。
Since the same CPU is used in S6-11, normal communication processing is performed, and if there is a response, response data is returned to the request source in S6-10.
In S6-4, the request parameter is compared with the request parameter of the data stored in the fixed data storage means (1-8). If response data for the same request is stored, the process proceeds to S6-12.

S6-12では記憶済みのデータから応答データを取り出し、S6-10でデータを返却して処理を終える。S6-4で応答データが記憶されていなかった場合はS6-5へ進み、要求パラメータを一時的に記憶し、S6-6へすすむ。   In S6-12, response data is extracted from the stored data, and in S6-10, the data is returned to finish the process. If the response data is not stored in S6-4, the process proceeds to S6-5, the request parameters are temporarily stored, and the process proceeds to S6-6.

S6-6では通信手段1-9に依頼して通信を行い、応答を待ち、応答が帰ってきたらS6-7へ進む。
S6-7では応答で帰ってきたデータが固定データか可変データかを判断し、固定データであればS6-8へ、可変データであればS6-9へ進む。
S6-8では応答データをS6-5で一時的に記憶しておいた要求パラメータとセットにして、固定データ記憶手段1-8に記憶する。
In S6-6, the communication means 1-9 is requested to perform communication, wait for a response, and if the response returns, proceed to S6-7.
In S6-7, it is determined whether the data returned in the response is fixed data or variable data. If it is fixed data, the process proceeds to S6-8. If it is variable data, the process proceeds to S6-9.
In S6-8, the response data is stored in the fixed data storage means 1-8 as a set with the request parameter temporarily stored in S6-5.

次にS6-9でS6-5で一時記憶した要求パラメータを破棄し、S6-10でリクエスト元にデータを返却して処理を終える。   Next, in S6-9, the request parameter temporarily stored in S6-5 is discarded, and in S6-10, data is returned to the request source and the process is terminated.

図4は通信手段1-9を使用した、サーバーとクライアントが通信経路を確立するためのフローチャートである。
まず4-1でサーバー側がユニークな"Port Name"で通信手段1-9へサーバーポートを登録する。次に4-2でクライアントがサーバーの"Port Name"を使用して、サーバーとなるコンポーネントの識別子(Component ID)を取得する。
FIG. 4 is a flowchart for establishing a communication path between the server and the client using the communication means 1-9.
First, in 4-1, the server side registers the server port in communication means 1-9 with a unique "Port Name" on the server side. Next, in 4-2, the client uses the server's “Port Name” to obtain the identifier of the server component (Component ID).

4-1の前に4-2が実行された場合は、通信手段1-9は4-2のリクエストを保留し、サーバーポートが登録された後に4-2の処理を再開させるものとする。
"Component ID"が得られると、以降はクライアントはその"Component ID"を使用してサーバーへの接続(要求)が可能となる(4-3)。
When 4-2 is executed before 4-1, the communication means 1-9 holds the request of 4-2, and resumes the process of 4-2 after the server port is registered.
Once the “Component ID” is obtained, the client can connect (request) to the server using the “Component ID” (4-3).

通信手段1-9は、図5に示すような内部データを保持して、"Component ID"と"Port Name"とを対にして管理するものである。
"Component ID"は、そのコンポーネントがどのCPUに属するかを示すフィールド(5-1)と、システムでユニークになるような値(5-2)とからなる。"Component ID"は、さらにサーバーから登録され、クライアントからサーバーポートを探索するために使用される"Port Name"を関連付けて記憶している。
The communication means 1-9 holds internal data as shown in FIG. 5 and manages “Component ID” and “Port Name” as a pair.
“Component ID” includes a field (5-1) indicating to which CPU the component belongs, and a value (5-2) that is unique in the system. The “Component ID” is further registered from the server and stored in association with “Port Name” used for searching the server port from the client.

図10はクライアントからサーバーへの要求パラメータの一例である。
まずリクエストのあて先を示す"Component ID"、次に内容を示す"Request ID"が格納され、続いて応答先(自分)を示す"Reply Port"が格納される。
続いて付加的な引数があればそのサイズ(size)と引数データ実体(arg)を格納する。
FIG. 10 shows an example of request parameters from the client to the server.
First, “Component ID” indicating the destination of the request, “Request ID” indicating the contents, and “Reply Port” indicating the response destination (self) are stored.
Next, if there are additional arguments, the size (size) and argument data entity (arg) are stored.

図11はサーバーからクライアントに対する応答データの一例である。
まずどのリクエストに対する応答なのかを示すために、クライアントから要求されたものと同じ"Component ID"と"Request ID"を格納する。続いてその要求に対する応答ステータス(status)が格納され、さらに付加的な情報があれば、そのサイズ(size)、情報のタイプを示すフラグ(flags)、そして付加情報の実体(arg)が格納される。
情報のタイプを示すフラグに固定データか、可変データかを示すフラグも格納される。
FIG. 11 shows an example of response data from the server to the client.
First, in order to indicate which request the response is for, the same “Component ID” and “Request ID” as those requested by the client are stored. Next, the response status (status) for the request is stored, and if there is additional information, the size (size), flags indicating the type of information (flags), and the entity (arg) of the additional information are stored. The
A flag indicating whether the data is fixed data or variable data is also stored in the flag indicating the type of information.

図7はインクジェットプリンタにおけるコンポーネント間通信されるデータの一例である。
"出荷情報"には工場出荷時に設定されるパラメータが保持される。
この情報は工場から出荷されて以降は不変である。"ユーザー情報"はユーザーがカスタマイズ可能な情報で、ユーザーの操作によって変化しうる情報である。
FIG. 7 is an example of data communicated between components in the inkjet printer.
The “shipment information” holds parameters set at the time of factory shipment.
This information is unchanged after it is shipped from the factory. “User information” is information that can be customized by the user, and can be changed by the user's operation.

"インク情報"はインク残量などを保持し、印刷やクリーニング、インク交換などによって内容が変化する。"電源情報"はAC駆動か、DC駆動か、DC駆動の場合の電池残量などを保持し、常に内容が変わり得る。
"エラー情報"は機器の状態に応じて警告やエラーの情報が逐一更新される。
The “ink information” holds the remaining amount of ink, and the content changes depending on printing, cleaning, ink replacement, and the like. “Power information” holds the remaining battery level in the case of AC drive, DC drive, or DC drive, and the contents can always change.
In “error information”, warning and error information is updated one by one according to the state of the device.

次にインクジェットプリンタのコンポーネント構成を図8に示す。
CPU1側はシングルファンクションプリンタの機能を担当し、CPU2側はPCレスでのカメラダイレクトプリントや、機器のメンテナンスを行うための機能コンポーネントを搭載し、CPU1側のシングルファンクションプリンタの機能を拡張するハードウエアである。
Next, the component configuration of the ink jet printer is shown in FIG.
The CPU1 side is responsible for the functions of the single function printer, and the CPU2 side is equipped with functional components for camera direct printing without PC and maintenance of equipment, and hardware that expands the functions of the single function printer on the CPU1 side. It is.

図8のCPU1側には機器の各種ステータスを管理するステータスマネージャ(STM)というコンポーネントがあり、図7で示したような各種情報を集中管理している。
またプリンターとしての機能(PCPrint)を搭載し、PC等のホストからの印字データを印刷するコンポーネントも搭載している。
The CPU 1 side in FIG. 8 has a component called a status manager (STM) that manages various statuses of the device, and centrally manages various types of information as shown in FIG.
It also has a printer function (PCPrint) and a component that prints print data from a host such as a PC.

図8のCPU2側には、デジタルカメラを接続して、カメラ内の画像を印刷するコンポーネント(DirectPrint)と、PCがなくても単体で機器のメンテナンスや設定を行うためのコンポーネント(Mainte)を搭載している。   The CPU2 side in Fig. 8 is equipped with a component (DirectPrint) that connects the digital camera and prints the images inside the camera, and a component (Mainte) that allows the maintenance and setting of the device without a PC. is doing.

図9はSTMで管理する各情報を、その情報を参照するコンポーネントの名前を付して記してある。
()で囲まれているのはその機能が具体的に実行された場合(例えば"PCPrint"ならPCから印刷データが送信されてきて印刷を開始する)に必要な情報で、それ以外の()で囲まれていない情報はコンポーネントの初期化時に必要となる情報である。
FIG. 9 shows each piece of information managed by the STM with the name of the component that references the information.
The information enclosed in parentheses is information necessary when the function is executed specifically (for example, if "PCPrint", print data is sent from the PC and printing is started). Information that is not enclosed in brackets is information that is required when the component is initialized.

各コンポーネントから"STM"に対するリクエストは、情報のブロック単位に行われる。
例えば"出荷情報"の中の"言語"の情報だけほしい場合でも、"出荷情報"を取得して、その中の"言語"の情報を参照するものとする。
Requests for “STM” from each component are made in units of information blocks.
For example, even when only “language” information in “shipping information” is desired, “shipping information” is acquired and information on “language” in the information is referred to.

次に具体的な処理の流れを説明する。前提として、固定データ記憶手段1-8にはまだ、何もデータが記憶されていないものとする。
まず"PCPrint"から"STM"に対して"出荷情報"をリクエストした場合の処理を示す。
S6-1でリクエストが渡される。次にS6-2に進み、要求先が同一CPUか別のCPUかを、接続に使用される"Component ID"の"CPU ID"(5-1)から判断する。
Next, a specific processing flow will be described. As a premise, it is assumed that no data is stored in the fixed data storage means 1-8 yet.
First, the process when “shipment information” is requested from “PCPrint” to “STM” is shown.
A request is passed in S6-1. Next, in S6-2, it is determined from “CPU ID” (5-1) of “Component ID” used for connection whether the request destination is the same CPU or another CPU.

"PCPrint"と"STM"とは同一CPUに属しているので、S6-11へ進み通信手段1-9に対してリクエストを転送する。
そして返ってきたデータをクライアントに返却して処理を終了する。
Since “PCPrint” and “STM” belong to the same CPU, the process proceeds to S6-11, and the request is transferred to the communication means 1-9.
Then, the returned data is returned to the client and the process is terminated.

次に"DirectPrint"から"STM"に対して"出荷情報"をリクエストした場合の処理を示す。
S6-1でリクエストが渡される。
次にS6-2で、要求先が同一CPUか別のCPUかを判断する。
"Component ID"の"CPU ID"が自身の"CPU ID"と異なっているのでS6-4へ進む。
S6-4ではまだ、固定データ記憶手段1-8に"出荷情報"に関するデータがないので、S6-5へ進み要求パラメータを一時記憶する。
Next, a process when “shipment information” is requested from “DirectPrint” to “STM” is shown.
A request is passed in S6-1.
Next, in S6-2, it is determined whether the request destination is the same CPU or another CPU.
Since “CPU ID” of “Component ID” is different from its own “CPU ID”, the process proceeds to S6-4.
In S6-4, since there is still no data relating to “shipment information” in the fixed data storage means 1-8, the process proceeds to S6-5 to temporarily store the request parameter.

ここでは図10に示す要求パラメータ全体を記憶するものとする。
次にS6-6で通信手段1-8にリクエストを転送し、応答を待つ。
応答が来たら応答データに付加情報があるかどうかを確認し、付加情報があった場合はそこに格納されている情報タイプを示すフラグの中から、固定データか可変データかを示すフラグを参照して固定データかどうかを判断する(S6-7)。
Here, the entire request parameter shown in FIG. 10 is stored.
Next, in S6-6, the request is transferred to the communication means 1-8, and a response is waited for.
When there is a response, check whether there is additional information in the response data. If there is additional information, refer to the flag indicating whether it is fixed data or variable data from the flags indicating the information type stored there. It is then determined whether it is fixed data (S6-7).

固定データだった場合は、S6-5で記憶した要求パラメータと応答データ(図11)とを対にして固定データ記憶手段(1-8)に記憶する(S6-8)。
そしてS6-5で記憶しておいた要求パラメータを破棄して、クライアントコンポーネントにデータを返却して処理を終了する。
If it is fixed data, the request parameter and response data (FIG. 11) stored in S6-5 are paired and stored in the fixed data storage means (1-8) (S6-8).
Then, the request parameter stored in S6-5 is discarded, data is returned to the client component, and the process is terminated.

次に"DirectPrint"から"STM"に対する"出荷情報"の応答があった状態で、"Mainte"から"STM"に対して"出荷情報"のリクエストをした場合の処理を示す。
S6-3までは先に示した処理と同様なので省略する。S6-4では、すでに今回の要求パラメータと同じ要求パラメータと関連付けられた応答データが固定データ記憶手段(1-8)に記憶されているので、S6-12に進む。S6-12において、固定データ記憶手段から要求パラメータに関連付けられた応答データを取り出して、クライアントコンポーネントに返却して処理を終了する。
Next, a process when a “shipment information” request is made from “Mainte” to “STM” in a state where a response of “shipment information” from “DirectPrint” to “STM” is received.
The processing up to S6-3 is the same as the processing described above, and is omitted. In S6-4, since response data associated with the same request parameter as the current request parameter is already stored in the fixed data storage means (1-8), the process proceeds to S6-12. In S6-12, the response data associated with the request parameter is retrieved from the fixed data storage means, returned to the client component, and the process is terminated.

以上説明してきたように、本発明はモジュール間の通信において、同じデータに対するリクエストが繰り返し発生する場合に、より効果的である。
例えば機器の起動時は、多くのモジュールがコンフィギュレーションパラメータによって、それぞれの動作モードなどを初期化する必要がある。
As described above, the present invention is more effective when requests for the same data are repeatedly generated in communication between modules.
For example, when a device is started, many modules need to initialize their respective operation modes according to configuration parameters.

先の図7、図9における"ユーザー情報"はユーザーの設定により、内容が変化する。
しかし、システム起動中などでユーザーによる操作ができない場合は一時的に固定データとして扱うことが可能である。
The contents of the “user information” in FIGS. 7 and 9 change depending on the user setting.
However, if the user cannot perform operations such as during system startup, the data can be temporarily handled as fixed data.

したがって、システム起動中に限り固定データとして扱うことができるデータをさらに固定データ記憶手段で記憶すれば、さらにモジュール間通信のオーバーヘッドを抑えることが可能となる。   Therefore, if data that can be handled as fixed data only during system startup is further stored in the fixed data storage means, it is possible to further reduce the overhead of inter-module communication.

本発明の一実施形態を示す図である。It is a figure which shows one Embodiment of this invention. 従来の通信形態を示す図である。It is a figure which shows the conventional communication form. 本発明適用後の通信形態を示す図である。It is a figure which shows the communication form after application of this invention. 通信経路確立のフローを示す図である。It is a figure which shows the flow of communication path establishment. 通信ポートの管理方法を示す図である。It is a figure which shows the management method of a communication port. 本発明の実施例を示すフローチャートである。It is a flowchart which shows the Example of this invention. 通信されるデータの例を示す図である。It is a figure which shows the example of the data communicated. プリンターにおけるソフトウエアコンポーネントの例を示す図である。It is a figure which shows the example of the software component in a printer. ソフトウエアコンポーネントがどのデータを使用するかの例を示す図である。It is a figure which shows the example of which data a software component uses. 要求パラメータの例を示す図である。It is a figure which shows the example of a request parameter. 応答データの例を示す図である。It is a figure which shows the example of response data.

符号の説明Explanation of symbols

1-4通信相手判断手段
1-5固定データ管理手段
1-6 記憶手段
1-7 固定データ判定手段
1-8 固定データ記憶手段
1-4 Communication partner judgment method
1-5 Fixed data management means
1-6 Storage means
1-7 Fixed data judgment method
1-8 Fixed data storage means

Claims (4)

ソフトウエアコンポーネントが、プロセス及びCPUをまたがる分散オブジェクトとして存在する場合におけるコンポーネント間の通信装置であって、
データの要求先が同一CPUのコンポーネントか、別CPUのコンポーネントかを判断する通信相手判断手段と、
前記通信相手判断手段により通信相手が前記別CPUであると判断された場合に、通信相手への要求パラメータを一時記憶する記憶手段と、
前記通信相手からの応答データが固定データか可変データかを判定する固定データ判定手段と、
前記固定データ判定手段により前記固定データと判定されたデータを、前記要求パラメータと関連付けて記憶する固定データ記憶手段と、
前記通信相手判断手段により前記要求先が前記別CPUと判定された場合、実際に要求を出す前に、前記固定データ記憶手段に受信済みデータが存在した場合には要求を行わないで、前記固定データ記憶手段に記憶されているデータを返却する手段と
を具備することを特徴とするコンポーネント間通信装置。
A communication device between components when a software component exists as a distributed object across processes and CPUs,
A communication partner determination means for determining whether the data request destination is a component of the same CPU or a component of another CPU;
Storage means for temporarily storing a request parameter to the communication partner when the communication partner determination unit determines that the communication partner is the another CPU;
Fixed data determination means for determining whether the response data from the communication partner is fixed data or variable data;
Fixed data storage means for storing the data determined as the fixed data by the fixed data determination means in association with the request parameter;
If the communication partner determining means determines that the request destination is the other CPU, the request is not made if the received data exists in the fixed data storage means before the request is actually issued, and the fixed destination is not fixed. An inter-component communication apparatus comprising: means for returning data stored in the data storage means.
データを要求されたサーバー側コンポーネントで、管理するデータが前記固定データか前記可変データであるとあらかじめ記憶しておき、要求側への応答データに前記固定データか前記可変データかの情報を付加して応答することを特徴とする請求項1に記載のコンポーネント間通信装置。   The server side component that requested the data stores in advance that the data to be managed is the fixed data or the variable data, and adds information on whether the data is the fixed data or the variable data to the response data to the request side. The inter-component communication apparatus according to claim 1, wherein the inter-component communication apparatus responds. 特定フェーズの期間で固定データとなるデータを判定する手段と、
前記特定フェーズの期間だけ当該データを前記固定データとして保持することを特徴とする請求項1又は2に記載のコンポーネント間通信装置。
Means for determining data to be fixed data in a specific phase period;
The inter-component communication apparatus according to claim 1, wherein the data is held as the fixed data only during the specific phase.
前記特定フェーズが、システム起動時であることを特徴とする請求項3に記載のコンポーネント間通信装置。   The inter-component communication apparatus according to claim 3, wherein the specific phase is a system startup time.
JP2005368393A 2005-12-21 2005-12-21 Inter-component communication equipment Pending JP2007172255A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005368393A JP2007172255A (en) 2005-12-21 2005-12-21 Inter-component communication equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005368393A JP2007172255A (en) 2005-12-21 2005-12-21 Inter-component communication equipment

Publications (1)

Publication Number Publication Date
JP2007172255A true JP2007172255A (en) 2007-07-05

Family

ID=38298743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005368393A Pending JP2007172255A (en) 2005-12-21 2005-12-21 Inter-component communication equipment

Country Status (1)

Country Link
JP (1) JP2007172255A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013529811A (en) * 2010-06-23 2013-07-22 マイクロソフト コーポレーション Application with many experience modules

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000228672A (en) * 1999-02-05 2000-08-15 Hitachi Ltd Communication proxy device
JP2001005794A (en) * 1999-06-18 2001-01-12 Nec Corp Distributed system
JP2004328663A (en) * 2003-04-28 2004-11-18 Mitsubishi Electric Corp Limiting system for traffic between different kinds of networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000228672A (en) * 1999-02-05 2000-08-15 Hitachi Ltd Communication proxy device
JP2001005794A (en) * 1999-06-18 2001-01-12 Nec Corp Distributed system
JP2004328663A (en) * 2003-04-28 2004-11-18 Mitsubishi Electric Corp Limiting system for traffic between different kinds of networks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013529811A (en) * 2010-06-23 2013-07-22 マイクロソフト コーポレーション Application with many experience modules
US9672022B2 (en) 2010-06-23 2017-06-06 Microsoft Technology Licensing, Llc Applications including multiple experience modules

Similar Documents

Publication Publication Date Title
US7231638B2 (en) Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data
US9872205B2 (en) Method and system for sideband communication architecture for supporting manageability over wireless LAN (WLAN)
KR102050648B1 (en) Pairing Devices on Your Local Network
JP4638676B2 (en) Notification methods for shared resources
US7917629B2 (en) Interface for external system management
US20110276625A1 (en) Method and system for host independent keyboard, video, and mouse (kvm) redirection
JP2005276175A (en) Scalable print spooler
US8737262B2 (en) Zero copy transmission with raw packets
JP2002232423A (en) Method for managing directory permission device
JP5438688B2 (en) Content separation by processing in the application
JP2009500702A (en) Method and system for managing virtual instances of physical ports attached to a network
CN108886473A (en) A kind of management method and device
US10397103B2 (en) Data processing system with routing tables
CN113726581A (en) Method and device for restoring factory configuration of network equipment and network equipment
JP2002505491A (en) Apparatus and method for dynamic information certification in a distributed system
JP2007172255A (en) Inter-component communication equipment
WO2024040846A1 (en) Data processing method and apparatus, electronic device, and storage medium
US8244860B2 (en) System, method, and computer-readable medium for managing communications among service modules
EP3823213A1 (en) Network management method and apparatus
WO2023082389A1 (en) Task processing method, device, storage medium, and program product
JP3494545B2 (en) Distributed computer system, computer and distributed processing method
CN1728701A (en) Method for treating protocol stack of route through one process
JP2006268794A (en) Image processor, image processing method, information processing system and information processor
JP2006079477A (en) Printing network system
JP5791564B2 (en) Image forming apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100921

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101119

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101214