JPH10214196A - Software linking processor - Google Patents

Software linking processor

Info

Publication number
JPH10214196A
JPH10214196A JP2974697A JP2974697A JPH10214196A JP H10214196 A JPH10214196 A JP H10214196A JP 2974697 A JP2974697 A JP 2974697A JP 2974697 A JP2974697 A JP 2974697A JP H10214196 A JPH10214196 A JP H10214196A
Authority
JP
Japan
Prior art keywords
event
software
message
thread
component
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
JP2974697A
Other languages
Japanese (ja)
Inventor
Osamu Nakazawa
修 中沢
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2974697A priority Critical patent/JPH10214196A/en
Publication of JPH10214196A publication Critical patent/JPH10214196A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To catch and process events asynchronously generated from connected other software components, by receiving event input informing from plural threads and executing the main processing of an application. SOLUTION: The software components 1 and 2 provided with different event drive type paradigms for turning a Java component 1 to the calling side and turning a window object component 2 to the called side are connected through a message gateway 5. Also, the side of the Java component 1 is constituted of the threads 3-1-3-3 and a queue 3-5 to be an interface to the thread 3-3. The thread 3-1 processes the processing of a GUI event, the thread 3-2 processes the processing of the event from the message gateway 5 and the thread 3-3 processes the main processing respectively parallelly. Thus, processing efficiency is improved and also the development efficiency of a program is improved.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、異なる二種類のイ
ベント駆動型プログラミングパラダイムを持つソフトウ
ェア間を結合し、協調動作を可能とさせるソフトウェア
連携処理装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a software cooperative processing device that connects software having two different types of event-driven programming paradigms to enable cooperative operation.

【0002】[0002]

【従来の技術】イベント駆動型プログラミングパラダイ
ムは、GUI(グラフィカルユーザインタフェース)と
結び付いたアプリケーションプログラムを構築するため
のフレームワークとして広く用いられている。イベント
駆動型プログラミングパラダイムの例としては、例えば
Xウインドウシステムのコールバックプログラミング、
Windows (Microsoft corporation の商標)OS(オペレ
ーションシステム)におけるウインドウプログラミン
グ、Java(Sun Miscrosystem Inc. の商標)プログ
ラミング環境等がある。特にJavaプログラミングは
現在注目されている技術であり、AWT(アブストラク
トウインドウツールキット)を利用したイベント駆動型
プログラミングをオブジェクト指向の枠組みで表現し、
柔軟性の高いパラダイムを提供している。また、他プロ
グラミング言語で開発されたソフトウェアとの結合/呼
び出し機構も提供している。
2. Description of the Related Art The event-driven programming paradigm has been widely used as a framework for constructing an application program linked to a GUI (graphical user interface). Examples of event-driven programming paradigms include, for example, callback programming of the X Window System,
Windows (trademark of Microsoft corporation) Window programming in OS (operation system), Java (trademark of Sun Miscrosystem Inc.) programming environment, and the like. In particular, Java programming is a technology that is currently attracting attention, and expresses event-driven programming using AWT (abstract window toolkit) in an object-oriented framework.
It offers a flexible paradigm. It also provides a mechanism for coupling / calling with software developed in other programming languages.

【0003】このJavaの他プログラミング言語結合
機構は、Javaのnativeメソッド機構として実装さ
れ、C言語あるいはC++言語との結合が可能である。
これにより、ウインドウからのイベントの処理を行うメ
ソッドの内部処理をnativeメソッドとして実装すれば、
他プログラミング言語で開発されたソフトウェアコンポ
ーネントと結合することができる。(参考文献:「The
Java Tutorial : Integrating Native Methods into Ja
va Programs 」)
[0003] This other programming language coupling mechanism of Java is implemented as a native method mechanism of Java, and can be coupled with C language or C ++ language.
With this, if you implement the internal processing of the method that processes the event from the window as a native method,
Can be combined with software components developed in other programming languages. (Reference: "The
Java Tutorial: Integrating Native Methods into Ja
va Programs ")

【0004】[0004]

【発明が解決しようとする課題】ところで、上記のよう
な従来の装置で、他プログラミング言語で開発されたイ
ベント駆動型のソフトウェアコンポーネントを結合する
場合には次のような解決すべき課題があった。結合した
他の異なるイベント駆動型ソフトウェアコンポーネント
に処理を依頼し、そのコンポーネントから発生される終
了通知(終了イベント)を受信するためには、そのソフ
トウェアコンポーネントを起動したメソッド(nativeメ
ソッド)内に、終了待ち同期処理を記述する必要があ
る。ところが、これでは、イベント駆動型の特性である
非同期処理のみでメソッドを記述できない。また、同期
処理中には、結合した他のソフトウェアコンポーネント
から非同期に発生されるイベント(アテンション)を捕
獲し、処理することができないという問題もある。
However, when an event-driven software component developed in another programming language is combined with the above-described conventional apparatus, there are the following problems to be solved. . In order to request processing from another combined event-driven software component and receive an end notification (end event) generated from the component, an end method must be included in the method (native method) that started the software component. It is necessary to describe wait synchronization processing. However, in this case, a method cannot be described only by asynchronous processing which is an event-driven characteristic. Further, during the synchronous processing, there is a problem that an event (attention) generated asynchronously from another coupled software component cannot be captured and processed.

【0005】[0005]

【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 〈構成1〉互いに異なったイベント駆動型パラダイムを
持つソフトウェアコンポーネントと、これらのソフトウ
ェアコンポーネントを結合するメッセージゲートウェイ
とから成り、メッセージゲートウェイは、いずれかのソ
フトウェアコンポーネントから発行されたイベントを、
相手方のイベント駆動型パラダイムに従ったイベントに
変換して、そのイベントを相手方のソフトウェアコンポ
ーメントに対して発行する変換機構を備え、一方のソフ
トウェアコンポーネントには、そのソフトウェアコンポ
ーネントのプロセス内でのイベントを処理するスレッド
と、メッセージゲートウェイからの仲介イベントを処理
するスレッドと、上記二つのスレッドからのイベント入
力通知を受け取りアプリケーションのメイン処理を実行
するスレッドとを設けたことを特徴とするソフトウェア
連携処理装置。
The present invention employs the following structure to solve the above problems. <Structure 1> Consisting of software components having different event-driven paradigms and a message gateway connecting these software components, the message gateway converts an event issued from any of the software components into
It has a conversion mechanism that converts the event into an event in accordance with the other party's event-driven paradigm and issues the event to the other party's software component.One software component stores the event in the software component's process. A software cooperation processing device comprising: a thread for processing; a thread for processing a mediation event from a message gateway; and a thread for receiving an event input notification from the two threads and executing a main process of an application.

【0006】〈構成2〉構成1において、一方のソフト
ウェアコンポーネントには、処理待ち状態のイベントを
保持するキューを設けたことを特徴とするソフトウェア
連携処理装置。
<Structure 2> A software cooperation processing apparatus according to Structure 1, wherein one of the software components is provided with a queue for holding an event in a processing waiting state.

【0007】〈構成3〉互いに異なったイベント駆動型
パラダイムを持つソフトウェアコンポーネントと、これ
らのソフトウェアコンポーネントを結合するメッセージ
ゲートウェイとから成り、メッセージゲートウェイに
は、一方のソフトウェアコンポーネントが内蔵されると
ともに、他方のソフトウェアコンポーネントから発行さ
れたイベントを、内蔵するソフトウェアコンポーネント
のイベント駆動型パラダイムに従ったイベントに変換す
る変換機構を設けたことを特徴とするソフトウェア連携
処理装置。
<Structure 3> Consisting of software components having different event-driven paradigms and a message gateway connecting these software components, one of the software components is incorporated in the message gateway and the other is installed in the message gateway. A software cooperation processing device comprising a conversion mechanism for converting an event issued from a software component into an event according to an event-driven paradigm of a built-in software component.

【0008】〈構成4〉構成3において、他方のソフト
ウェアコンポーネントには、そのソフトウェアコンポー
ネントのプロセス内でのイベントを処理するサブウイン
ドウと、メッセージゲートウェイからの仲介イベントを
処理するサブウインドウと、上記二つのスレッドからの
イベント入力通知を受け取りアプリケーションのメイン
処理を実行するサブウインドウとを設けたことを特徴と
するソフトウェア連携処理装置。
<Structure 4> In structure 3, the other software component includes a sub-window for processing an event in the process of the software component, a sub-window for processing a mediation event from the message gateway, and the above two software components. A software cooperation processing device, comprising: a sub window that receives an event input notification from a thread and executes a main process of an application.

【0009】[0009]

【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。 〈概略〉このソフトウェア連携処理装置は、一つの計算
機環境中かあるいは互いにネットワーク(TCP(Tran
smission Control Protocol )/IP(Internet Proto
col )ネットワーク等)を介して結合された複数の計算
機環境中で動作する、イベント駆動型ソフトウェアコン
ポーネント同士が結合されて協調動作する。このため
に、両コンポーネントは、メッセージゲートウェイを介
して結合される構成とする。方式の異なるイベント駆動
処理間のプロトコルの違いは、このメッセージゲートウ
ェイによるメッセージ仲介/変換により実施する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiments of the present invention will be described below using specific examples. <Summary> This software cooperation processing apparatus can be connected to a network (TCP (Tran
smission Control Protocol) / IP (Internet Proto
col) Event-driven software components operating in a plurality of computer environments connected via a network or the like) are connected and cooperatively operate. To this end, both components are configured to be connected via a message gateway. The difference in the protocol between the event-driven processes using different methods is implemented by message mediation / conversion by the message gateway.

【0010】例えば、ソフトウェアコンポーネントAを
中心にして、これにソフトウェアコンポーネントBを結
合する場合を考える。この場合には、ソフトウェアコン
ポーネントAの実現のために、メッセージゲートウェイ
からのメッセージを受信するためのスレッドを設定し、
ウインドウイベント以外の、接続されたソフトウェアコ
ンポーネントBからのイベント処理を管理する。
For example, consider a case where a software component B is connected to a software component A as a center. In this case, a thread for receiving a message from the message gateway is set for realizing the software component A,
It manages event processing other than the window event from the connected software component B.

【0011】イベント駆動型ソフトウェアコンポーネン
トAがイベント駆動型ソフトウェアコンポーネントBと
結合する場合を考える。この場合には、ソフトウェアコ
ンポーネントAとBとの間のイベント交換を行うための
メッセージゲートウェイと、ソフトウェアコンポーネン
トAプロセス内でウインドウイベントを処理するスレッ
ドと、メッセージゲートウェイからの仲介イベントを処
理するスレッドと、その二つのスレッドからのイベント
入力通知を受け取りアプリケーションのメイン処理を実
行するスレッドとを設ける。
Consider the case where an event-driven software component A is combined with an event-driven software component B. In this case, a message gateway for exchanging events between the software components A and B, a thread for processing a window event in the software component A process, a thread for processing a mediation event from the message gateway, A thread that receives an event input notification from the two threads and executes the main processing of the application is provided.

【0012】この構成により、ソフトウェアコンポーネ
ントAがソフトウェアコンポーネントBにイベントを発
行する場合、ソフトウェアコンポーネントAはメッセー
ジゲートウェイにメッセージを送信し、メッセージゲー
トウェイはソフトウェアコンポーネントBの処理するイ
ベント駆動型パラダイムに従ったイベントに変換し、そ
のイベントをソフトウェアコンポーネントBに対して発
行する。ソフトウェアコンポーネントAからメッセージ
ゲートウェイへのメッセージ送信は非同期処理であり、
ソフトウェアコンポーネントAは送信後に別の処理を実
行可能である。ソフトウェアコンポーネントBはソフト
ウェアコンポーネントAからのイベント通知を受信し、
そのイベント処理が完了した後に、メッセージゲートウ
ェイに対して終了イベントを送信する。ついで、メッセ
ージゲートウェイは、終了イベントをソフトウェアコン
ポーネントAの処理するイベント駆動型パラダイムに従
ったイベントに変換し、そのイベントをソフトウェアコ
ンポーネントAに対して発行する。なお、ソフトウェア
コンポーネントAからのイベントに対する終了イベント
だけでなく、ソフトウェアコンポーネントBにおいて独
立して発生するアテンション的なイベントをソフトウェ
アコンポーネントAに通知する場合も同様の処理シーケ
ンスとなる。
With this configuration, when the software component A issues an event to the software component B, the software component A sends a message to the message gateway, and the message gateway performs an event according to the event driven paradigm processed by the software component B. And issues the event to software component B. The message transmission from the software component A to the message gateway is an asynchronous process,
The software component A can execute another process after transmission. Software component B receives the event notification from software component A,
After the event processing is completed, an end event is transmitted to the message gateway. Next, the message gateway converts the end event into an event according to an event driven paradigm processed by the software component A, and issues the event to the software component A. The same processing sequence applies to notifying the software component A of an attention event that occurs independently in the software component B as well as the end event for the event from the software component A.

【0013】このように、ソフトウェア連携処理装置の
メッセージゲートウェイ機構とソフトウェアコンポーネ
ントのスレッド構成により、ソフトウェアコンポーネン
トの並行処理が可能となるため、コンポーネントを非同
期処理として記述することができ、異なったイベント駆
動型パラダイムを持つソフトウェアコンポーネントの非
同期の結合が可能となる。
[0013] As described above, since the message gateway mechanism of the software cooperative processing device and the thread configuration of the software component enable parallel processing of the software component, the component can be described as an asynchronous process, and a different event-driven type can be described. Asynchronous coupling of software components with a paradigm is possible.

【0014】〈具体例1〉図1は、具体例1のソフトウ
ェア連携処理装置のブロック図である。例えば、この具
体例では2つのイベント駆動型ソフトウェアコンポーネ
ントがあり、Javaで実装されるコンポーネント1
と、Windows OSのウインドウオブジェクトにより実装さ
れるコンポーネント2が示されている。Javaコンポ
ーネント1は、3つのスレッド3−1,3−2,3−3
により構成される。スレッド3−1はユーザとの対話処
理により発生するマウス入力やキーボード入力等のGU
Iイベントを処理するスレッドである。スレッド3−2
は後述するメッセージゲートウェイからのイベントを処
理するスレッドである。スレッド3−3はメイン処理を
実行するスレッドである。API(関数モジュール)4
は、Javaコンポーネント1に提供されるアプリケー
ションプログラムインタフェースである。このAPI4
がスレッド3−3から呼び出されると、TCP/IPソ
ケット6を利用して、メッセージゲートウェイ5にメッ
セージが送信される。
<First Embodiment> FIG. 1 is a block diagram of a software cooperation processing apparatus according to a first embodiment. For example, in this example, there are two event driven software components, and component 1 implemented in Java
And the component 2 implemented by the window object of the Windows OS. The Java component 1 has three threads 3-1, 3-2, 3-3.
It consists of. The thread 3-1 is a GUI for mouse input, keyboard input, and the like generated by interactive processing with the user.
A thread that processes I events. Thread 3-2
Is a thread that processes events from the message gateway described later. The thread 3-3 is a thread for executing a main process. API (Function Module) 4
Is an application program interface provided to the Java component 1. This API4
Is called from the thread 3-3, a message is transmitted to the message gateway 5 using the TCP / IP socket 6.

【0015】ウインドウオブジェクトコンポーネント2
は、Javaコンポーネント1から発行されるイベント
を処理するウインドウオブジェクトである。ここには、
メッセージ返信部2−1と、APIに対するメッセージ
受信部2−2とが設けられ、API4に対応したウイン
ドウメッセージの登録とその本体処理の定義2−3がな
されている。メッセージゲートウェイ5は、API4を
通じて送信されたTCP/IPソケットメッセージをWi
ndows の基本通信機構であるウインドウメッセージに変
換して、ウインドウオブジェクトコンポーネント2に送
信するブローカとなる。また、メッセージゲートウェイ
5は、ウインドウオブジェクトコンポーネント2に送信
したメッセージの返信メッセージ(ウインドウメッセー
ジ)を受信し、先の例とは逆にスレッド3−2の持つソ
ケット3−4にメッセージを返信する。これらの動作の
ために、メッセージゲートウェイ5にはTCP/IPソ
ケットメッセージへの変換機構5−1と、ウインドウメ
ッセージへの変換機構5−2が設けられている。
Window object component 2
Is a window object that processes events issued from the Java component 1. here,
A message reply unit 2-1 and a message receiving unit 2-2 for the API are provided, and registration of a window message corresponding to the API 4 and definition 2-3 of the main processing are performed. The message gateway 5 converts the TCP / IP socket message transmitted through the API 4
It becomes a broker that converts it into a window message, which is the basic communication mechanism of ndows, and sends it to the window object component 2. Further, the message gateway 5 receives the reply message (window message) of the message transmitted to the window object component 2, and returns the message to the socket 3-4 of the thread 3-2, contrary to the above example. For these operations, the message gateway 5 is provided with a TCP / IP socket message conversion mechanism 5-1 and a window message conversion mechanism 5-2.

【0016】本発明においては、このような構成の二つ
のイベント駆動型ソフトウェアコンポーネント1,2間
でメッセージゲートウェイ5を介して交信を行い、協調
動作するソフトウェア連携処理機構を実現する。
In the present invention, a software cooperative processing mechanism that performs communication between the two event-driven software components 1 and 2 having such a configuration via the message gateway 5 to realize cooperative operation is realized.

【0017】図2と図3に、ソフトウェア連携処理装置
の動作フローチャートを示す。ステップS1において、
Javaコンポーネント1中のスレッド3−1で、ウイ
ンドウオブジェクトコンポーネント2を呼び出す必要の
あるGUIイベントが発生し、捕獲されたものとする。
これにより、スレッド3−1は、ステップS2で、ウイ
ンドウ表示内容の変更と共に、イベント入力が発生した
内容をメッセージとしてスレッド3−3に通知する。な
お、このスレッド間の交信には、スレッド3−3が処理
するメッセージの順序を管理するために使用するFIF
O(First In First Out)型キュー3−5を用いる。こ
のキュー3−5は、スレッド3−5へイベントを供給す
るためのもので、Javaコンポーネント1内のどこに
配置してもよい。スレッド3−1はそのキュー3−5に
メッセージを挿入する。
FIGS. 2 and 3 show operation flowcharts of the software cooperation processing apparatus. In step S1,
It is assumed that a GUI event that needs to call the window object component 2 has occurred in the thread 3-1 in the Java component 1 and has been captured.
Thus, in step S2, the thread 3-1 notifies the thread 3-3 of the content of the event input as a message together with the change of the window display content. The communication between the threads includes a FIFO used to manage the order of messages processed by the thread 3-3.
An O (First In First Out) type queue 3-5 is used. This queue 3-5 is for supplying an event to the thread 3-5, and may be arranged anywhere in the Java component 1. The thread 3-1 inserts a message into the queue 3-5.

【0018】スレッド3−3はキュー3−5に対する入
力待ち状態にあり、キュー3−5へのメッセージの入力
が発生すると、ステップS3でキュー3−5からメッセ
ージを取り出し、そのメッセージに対応する処理を実行
する。つまり、このキュー機構がスレッド3−3へ送ら
れるメッセージのインタフェース(入口)となる。本例
の場合、このメッセージはウインドウオブジェクトコン
ポーネント2の提供するAPI4を呼び出すものに対応
している。従って、スレッド3−3からAPI4が呼び
出され、API4の処理として、ステップS4で、メッ
セージゲートウェイ5の保持するメッセージ受信用ソケ
ット6にメッセージが送信される。その後、スレッド3
−3は再びキュー3−5からの入力待ち状態に遷移す
る。
The thread 3-3 is in a state of waiting for an input to the queue 3-5. When a message is input to the queue 3-5, the message is taken out of the queue 3-5 in step S3, and processing corresponding to the message is performed. Execute That is, this queue mechanism becomes an interface (entrance) of the message sent to the thread 3-3. In the case of this example, this message corresponds to a message that calls the API 4 provided by the window object component 2. Therefore, the API 4 is called from the thread 3-3, and as a process of the API 4, a message is transmitted to the message receiving socket 6 held by the message gateway 5 in step S4. Then thread 3
-3 again transitions to the state of waiting for input from the queue 3-5.

【0019】次いで、ステップS5で、メッセージゲー
トウェイ5はソケット6からメッセージを抽出し、その
メッセージをWindows の基本通信機構であるウインドウ
メッセージに変換し、ウインドウオブジェクトコンポー
ネント2へそのウインドウメッセージを送信する。次に
ステップS6に進み、ウインドウオブジェクトコンポー
ネント2は、そのウインドウメッセージを受信すると、
本体処理でそのメッセージに対応する関数を実行し、実
行が終了した段階で、メッセージゲートウェイ5に対し
て終了を意味するウインドウメッセージを返信する。そ
の後、ウインドウオブジェクトコンポーネント2は再び
ウインドウメッセージ受信待ち状態に遷移する。
Next, in step S5, the message gateway 5 extracts the message from the socket 6, converts the message into a window message which is a basic communication mechanism of Windows, and transmits the window message to the window object component 2. Next, proceeding to step S6, when the window object component 2 receives the window message,
The function corresponding to the message is executed in the main processing, and a window message indicating the end is returned to the message gateway 5 when the execution is completed. Thereafter, the window object component 2 transits to the window message reception waiting state again.

【0020】ステップS7において、メッセージゲート
ウェイ5はその返信メッセージを受信すると、先の手順
とは逆に、Javaコンポーネント内のスレッド3−2
の保持するメッセージ受信用ソケット3−4に、終了し
たメッセージを送信する。ステップS8で、スレッド3
−2は終了メッセージを受信すると、その内容を先に示
したキュー3−5に挿入する。ステップS9では、スレ
ッド3−3は待ち状態から解放され、その終了メッセー
ジに対応した処理を実行し、再びキュー3−5からの入
力待ち状態に遷移する。
In step S7, when the message gateway 5 receives the reply message, the thread 3-2 in the Java component reverses the procedure described above.
Is transmitted to the message receiving socket 3-4 held by the server. In step S8, thread 3
-2, upon receiving the end message, inserts its contents into the queue 3-5 shown above. In step S9, the thread 3-3 is released from the waiting state, executes a process corresponding to the end message, and transitions to the state of waiting for input from the queue 3-5 again.

【0021】〈具体例1の効果〉以上説明した具体例1
のソフトウェア連携処理装置によれば、メッセージゲー
トウェイ機構とソフトウェアコンポーネントのスレッド
/キュー機構により、Javaコンポーネントを呼び出
し側とし、ウインドウオブジェクトコンポーネントを呼
び出され側とするような、異なったイベント駆動型パラ
ダイムを持つソフトウェアコンポーネント間の結合処理
を実現することができる。なお、この具体例では、Ja
vaコンポーネント側は3つのスレッド3−1,3−
2,3−3と、スレッド3−3へのインタフェースとな
るキュー3−5から構成され、スレッド3−1はGUI
イベントの処理を、3−2はメッセージゲートウェイか
らのイベントの処理を、3−3はメイン処理を、それぞ
れ並行に処理する。従って、処理効率の向上と共に、規
定される処理を他のスレッド処理とは独立に記述できる
ため、プログラムの開発効率が向上する。
<Effect of Specific Example 1> Specific Example 1 described above.
According to the software cooperation processing device of the above, a software having a different event-driven paradigm such that a Java component is a calling side and a window object component is a calling side by a message gateway mechanism and a thread / queue mechanism of a software component. A coupling process between components can be realized. In this specific example, Ja
The va component side has three threads 3-1 and 3-
2, 3-3 and a queue 3-5 serving as an interface to the thread 3-3.
The process of the event, 3-2 processes the event from the message gateway, and 3-3 processes the main process in parallel. Therefore, the specified processing can be described independently of other thread processing, as well as the processing efficiency, so that the program development efficiency is improved.

【0022】〈具体例2〉図4は、具体例2のソフトウ
ェア連携処理装置のブロック図である。この具体例で
は、2つのイベント駆動型ソフトウェアコンポーネント
があり、一方のコンポーネント2はWindows OSのウイン
ドウオブジェクトで実装される。コンポーネント1は、
Javaにより実装される。ウインドウオブジェクトコ
ンポーネント2は、3つのサブウインドウ2−5,2−
6,2−7により構成される。サブウインドウ2−5は
ユーザとの対話処理により発生するマウス入力やキーボ
ード入力等のGUIイベントを処理するウインドウ関数
である。サブウインドウ2−6は後述するJava実行
環境を内在するメッセージゲートウェイ5からのイベン
トを処理するウインドウ関数である。サブウインドウ2
−7はメイン処理を実行するウインドウである。これは
API(関数モジュール)4を介してメッセージゲート
ウェイ5に接続されている。
<Embodiment 2> FIG. 4 is a block diagram of a software cooperation processing apparatus according to Embodiment 2. In this example, there are two event-driven software components, one of which is implemented with a Windows OS window object. Component 1 is
Implemented by Java. The window object component 2 includes three sub-windows 2-5, 2-
6, 2-7. The subwindow 2-5 is a window function for processing a GUI event such as a mouse input or a keyboard input generated by an interactive process with the user. The subwindow 2-6 is a window function for processing an event from the message gateway 5 having a Java execution environment described later. Subwindow 2
Reference numeral -7 denotes a window for executing the main processing. It is connected to a message gateway 5 via an API (function module) 4.

【0023】Javaコンポーネント1は、ウインドウ
オブジェクトコンポーネント2から発行されるイベント
を処理するJavaアプレットを含んでおり、API4
に対応した処理の定義がなされている。ここには更に、
イベントを受け入れてアプレットを選択するイベント処
理スレッド1−1が設けられる。API4は、ウインド
ウオブジェクトコンポーネント2に提供されるアプリケ
ーションプログラムインタフェースである。このAPI
4がサブウインドウ2−7から呼び出されると、ウイン
ドウメッセージにより、メッセージゲートウェイ5にメ
ッセージが送信される。
The Java component 1 includes a Java applet that processes an event issued from the window object component 2.
Is defined. Here also
An event processing thread 1-1 for receiving an event and selecting an applet is provided. The API 4 is an application program interface provided to the window object component 2. This API
When 4 is called from the subwindow 2-7, a message is transmitted to the message gateway 5 by a window message.

【0024】メッセージゲートウェイ5は、Java実
行環境を内在し、API4を通して送信されたメッセー
ジを受信し、Javaのメソッド呼び出し形式に変換し
て、対応するJavaコンポーネント1内のJavaア
プレットを呼び出す。このために、Javaメソッド呼
び出し形式への変換機構5−4が設けられている。ま
た、メッセージゲートウェイ5は、Javaアプレット
の実行が終了すると、ウインドウオブジェクトコンポー
ネント2にその結果をウインドウメッセージとして返信
する。このために終了メッセージ返信機構5−3が設け
られている。
The message gateway 5 has a Java execution environment, receives a message transmitted through the API 4, converts the message into a method call method of Java, and calls a Java applet in the corresponding Java component 1. For this purpose, a conversion mechanism 5-4 for converting to a Java method call format is provided. When the execution of the Java applet ends, the message gateway 5 returns the result to the window object component 2 as a window message. For this purpose, an end message reply mechanism 5-3 is provided.

【0025】本発明においては、このような構成上の二
つのイベント駆動型ソフトウェアコンポーネント間で、
Java実行環境を内在するメッセージゲートウェイ5
を介して交信を行い、協調動作するソフトウェア連携処
理機構を実現する。
In the present invention, between the two event-driven software components having such a configuration,
Message gateway 5 with Java runtime environment
And implements a software cooperation processing mechanism that performs cooperative operation through communication.

【0026】図5と図6に、ソフトウェア連携処理装置
の動作フローチャートを示す。まず、ステップS1にお
いて、ウインドウオブジェクトコンポーネント2中のサ
ブウインドウ2−5で、Javaコンポーネント1を呼
び出す必要のあるGUIイベントが発生し捕獲されたも
のとする。これにより、ステップS2で、サブウインド
ウ2−5は、ウインドウ表示内容の変更と共に、イベン
ト入力が発生した内容をメッセージとしてサブウインド
ウ2−7に通知する。なお、このサブウインドウ2−5
と2−7の間の交信にはウインドウメッセージを用い、
サブウインドウ2−5は自ウインドウオブジェクトのウ
インドウメッセージキュー2−8にメッセージを挿入す
る。
FIGS. 5 and 6 show operation flowcharts of the software cooperation processing apparatus. First, in step S1, it is assumed that a GUI event that needs to call the Java component 1 has occurred in the subwindow 2-5 in the window object component 2 and has been captured. Accordingly, in step S2, the subwindow 2-5 notifies the subwindow 2-7 of the content of the event input as a message together with the change of the window display content. This subwindow 2-5
The window message is used for communication between
The subwindow 2-5 inserts a message into the window message queue 2-8 of its own window object.

【0027】サブウインドウ2−7は、ウインドウメッ
セージキュー2−8に対する入力待ち状態にあり、キュ
ー2−8へのメッセージの入力が発生すると起動され、
ステップS3でそのメッセージに対応する処理を実行す
る。本例の場合、このメッセージはJavaコンポーネ
ント1の提供するAPI4を呼び出すものに対応してい
る。従って、サブウインドウ2−7からAPI4が呼び
出され、API4の処理として、メッセージゲートウェ
イ5にメッセージが送信される。その後、サブウインド
ウ2−7は再びサブウインドウメッセージキュー2−8
からの入力待ち状態に遷移する。
The subwindow 2-7 is in a state of waiting for input to the window message queue 2-8, and is activated when a message is input to the queue 2-8.
In step S3, a process corresponding to the message is executed. In the case of this example, this message corresponds to a message that calls the API 4 provided by the Java component 1. Therefore, the API 4 is called from the subwindow 2-7, and a message is transmitted to the message gateway 5 as the processing of the API 4. Thereafter, the subwindow 2-7 is again in the subwindow message queue 2-8.
Transitions to the state of waiting for input from.

【0028】次いで、ステップS5に進み、メッセージ
ゲートウェイ5は、ウインドウメッセージキュー2−8
からメッセージを抽出し、そのメッセージに対応するJ
avaコンポーネント1内のJavaアプレットを実行
可能状態に変える。ステップS6でJavaコンポーネ
ント1は、そのJavaアプレットを実行する。ステッ
プS7でメッセージゲートウェイ5は、そのJavaア
プレットの実行が完了すると、ウインドウオブジェクト
コンポーネント2に実行完了を表すウインドウメッセー
ジを送信する。なお、その終了メッセージはステップS
8でサブウインドウ2−6により処理される。後処理を
実行後、メイン処理を実行するサブウインドウ2−7へ
のウインドウメッセージとして自ウインドウオブジェク
トのウインドウメッセージキュー2−8にメッセージを
挿入する。ステップS9では、サブウインドウ2−7が
そのメッセージに対応する処理を実行する。
Next, proceeding to step S5, the message gateway 5 sets the window message queue 2-8.
Extract the message from
Change the Java applet in the ava component 1 to an executable state. In step S6, the Java component 1 executes the Java applet. When the execution of the Java applet is completed in step S7, the message gateway 5 transmits a window message indicating the completion of the execution to the window object component 2. Note that the end message is in step S
8 is processed by the subwindow 2-6. After the post-processing, a message is inserted into the window message queue 2-8 of the own window object as a window message to the sub-window 2-7 for executing the main processing. In step S9, the sub window 2-7 executes a process corresponding to the message.

【0029】〈具体例2の効果〉以上説明した具体例2
によれば、Java実行環境を内蔵するメッセージゲー
トウェイ機構により、ウインドウオブジェクトコンポー
ネントを呼び出し側とし、Javaコンポーネントを呼
び出され側とするような、異なったイベント駆動型パラ
ダイムを持つソフトウェアコンポーネント間の結合処理
を実現することができる。また、Java実行環境をメ
ッセージゲートウェイに内蔵させることによって、Ja
vaアプレットをリモートで立ち上げることができると
いう効果がある。なお、具体例1も具体例2も、ソフト
ウェアコンポーネントをネットワークを介して協調動作
させるときは、メッセージゲートウェイを送信側あるい
は受信側のどちらに配置してもよい。
<Effect of Specific Example 2> Specific Example 2 described above
According to the document, a message gateway mechanism having a built-in Java execution environment realizes a coupling process between software components having different event-driven paradigms such that a window object component is a caller and a Java component is a caller. can do. In addition, by incorporating a Java execution environment in the message gateway, Java
There is an effect that the va applet can be started up remotely. In both the first and second embodiments, when software components are operated in cooperation via a network, the message gateway may be arranged on either the transmitting side or the receiving side.

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

【図1】具体例1のソフトウェア連携処理装置のブロッ
ク図である。
FIG. 1 is a block diagram of a software cooperation processing device of a specific example 1.

【図2】ソフトウェア連携処理装置の動作フローチャー
ト(その1)である。
FIG. 2 is an operation flowchart (part 1) of the software cooperation processing apparatus;

【図3】ソフトウェア連携処理装置の動作フローチャー
ト(その2)である。
FIG. 3 is an operation flowchart (part 2) of the software cooperation processing apparatus;

【図4】具体例2のソフトウェア連携処理装置のブロッ
ク図である。
FIG. 4 is a block diagram of a software cooperation processing device of a specific example 2;

【図5】ソフトウェア連携処理装置の動作フローチャー
ト(その1)である。
FIG. 5 is an operation flowchart (part 1) of the software cooperation processing apparatus;

【図6】ソフトウェア連携処理装置の動作フローチャー
ト(その2)である。
FIG. 6 is an operation flowchart (part 2) of the software cooperation processing apparatus;

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

1 Javaコンポーネント 2 ウインドウオブジェクトコンポーネント 3−1〜3−3 スレッド 3−4 ソケット 4 API 5 メッセージゲートウェイ 6 ソケット DESCRIPTION OF SYMBOLS 1 Java component 2 Window object component 3-1-3-3 Thread 3-4 Socket 4 API 5 Message gateway 6 Socket

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 互いに異なったイベント駆動型パラダイ
ムを持つソフトウェアコンポーネントと、 これらのソフトウェアコンポーネントを結合するメッセ
ージゲートウェイとから成り、 メッセージゲートウェイは、 いずれかのソフトウェアコンポーネントから発行された
イベントを、相手方のイベント駆動型パラダイムに従っ
たイベントに変換して、そのイベントを相手方のソフト
ウェアコンポーメントに対して発行する変換機構を備
え、 一方のソフトウェアコンポーネントには、 そのソフトウェアコンポーネントのプロセス内でのイベ
ントを処理するスレッドと、 メッセージゲートウェイからの仲介イベントを処理する
スレッドと、 前記二つのスレッドからのイベント入力通知を受け取り
アプリケーションのメイン処理を実行するスレッドとを
設けたことを特徴とするソフトウェア連携処理装置。
The present invention comprises a software component having a different event-driven paradigm and a message gateway connecting these software components. The message gateway converts an event issued by any of the software components into an event of a partner. It has a conversion mechanism that converts events into events in accordance with the driving paradigm and issues the events to the other software component. One of the software components has a thread that processes an event in the process of the software component. A thread that processes the mediation event from the message gateway; and a thread that receives the event input notification from the two threads and executes the main processing of the application. Software cooperative processing apparatus characterized by comprising a de.
【請求項2】 請求項1において、 一方のソフトウェアコンポーネントには、処理待ち状態
のイベントを保持するキューを設けたことを特徴とする
ソフトウェア連携処理装置。
2. The software cooperation processing apparatus according to claim 1, wherein one of the software components is provided with a queue for holding an event in a process waiting state.
【請求項3】 互いに異なったイベント駆動型パラダイ
ムを持つソフトウェアコンポーネントと、 これらのソフトウェアコンポーネントを結合するメッセ
ージゲートウェイとから成り、 メッセージゲートウェイには、 一方のソフトウェアコンポーネントが内蔵されるととも
に、 他方のソフトウェアコンポーネントから発行されたイベ
ントを、内蔵するソフトウェアコンポーネントのイベン
ト駆動型パラダイムに従ったイベントに変換する変換機
構を設けたことを特徴とするソフトウェア連携処理装
置。
3. A software component having a different event-driven paradigm and a message gateway connecting these software components. The message gateway includes one software component and the other software component. A software cooperation processing device, comprising: a conversion mechanism configured to convert an event issued from an application into an event according to an event-driven paradigm of a built-in software component.
【請求項4】 請求項3において、 他方のソフトウェアコンポーネントには、 そのソフトウェアコンポーネントのプロセス内でのイベ
ントを処理するサブウインドウと、 メッセージゲートウェイからの仲介イベントを処理する
サブウインドウと、 前記二つのスレッドからのイベント入力通知を受け取り
アプリケーションのメイン処理を実行するサブウインド
ウとを設けたことを特徴とするソフトウェア連携処理装
置。
4. The two threads according to claim 3, wherein the other software component includes a subwindow that processes an event in a process of the software component, a subwindow that processes an intermediary event from a message gateway, and the two threads. And a sub-window for receiving an event input notification from the client and executing a main process of the application.
JP2974697A 1997-01-29 1997-01-29 Software linking processor Pending JPH10214196A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2974697A JPH10214196A (en) 1997-01-29 1997-01-29 Software linking processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2974697A JPH10214196A (en) 1997-01-29 1997-01-29 Software linking processor

Publications (1)

Publication Number Publication Date
JPH10214196A true JPH10214196A (en) 1998-08-11

Family

ID=12284674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2974697A Pending JPH10214196A (en) 1997-01-29 1997-01-29 Software linking processor

Country Status (1)

Country Link
JP (1) JPH10214196A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454440B2 (en) 2001-11-21 2008-11-18 International Business Machines Corporation Enhancing resource adapters
JP2009505235A (en) * 2005-08-12 2009-02-05 マイクロソフト コーポレーション User interface service provision
JP2009217410A (en) * 2008-03-07 2009-09-24 Nec Corp Gateway device mounted with socket library for monitor, communication method of gateway device mounted with socket library for monitor, and communication program of gateway device mounted with socket library for monitor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454440B2 (en) 2001-11-21 2008-11-18 International Business Machines Corporation Enhancing resource adapters
JP2009505235A (en) * 2005-08-12 2009-02-05 マイクロソフト コーポレーション User interface service provision
JP2009217410A (en) * 2008-03-07 2009-09-24 Nec Corp Gateway device mounted with socket library for monitor, communication method of gateway device mounted with socket library for monitor, and communication program of gateway device mounted with socket library for monitor

Similar Documents

Publication Publication Date Title
US5596579A (en) High performance machine for switched communications in a heterogeneous data processing network gateway
US7007278B2 (en) Accessing legacy applications from the Internet
US6728788B1 (en) Method and system for converting a remote procedure call to a local procedure call when the service is on the same device as the calling client
US20030009539A1 (en) Distributed object middleware connection method
CA2107299C (en) High performance machine for switched communications in a heterogenous data processing network gateway
KR100275403B1 (en) Providing communications links in a computer network
Schmidt Applying patterns and frameworks to develop object-oriented communication software
EP1187015A2 (en) Internet-enabled embedded device
US7130898B2 (en) Mechanism for facilitating invocation of a service
CN111343239A (en) Communication request processing method, communication request processing device and transaction system
JPH10214196A (en) Software linking processor
JPH09258993A (en) Computer system
KR100494827B1 (en) Distributed object model based radio server with hardware-independent communication interface and communication control method using the same
US6408329B1 (en) Remote login
US6934953B2 (en) Deferred procedure call in interface description language
US20070214419A1 (en) Integrated service creation and execution platforms for the converged networks
US20030131054A1 (en) CORBA based transmission element management system and method
JP2003076563A (en) Distributed object middleware connection method and recording medium with program recorded thereon and program
CN113176957B (en) Remote application automation system based on RPC
CN111711620B (en) Method, device, equipment and storage medium for realizing bidirectional communication between applications
JP4342545B2 (en) Information processing method and information processing system
CN115914330B (en) Heterogeneous inter-application communication method based on NIO asynchronous thread model
Qin-cui et al. Implementation of IEC60870-5-104 protocol based on finite state machines
Edwards et al. A remote access protocol for the X Window System
Silva-Lepe et al. Container-managed messaging: an architecture for integrating java components and message-oriented applications