JPH0721038A - プログラム間通信方法 - Google Patents

プログラム間通信方法

Info

Publication number
JPH0721038A
JPH0721038A JP5160692A JP16069293A JPH0721038A JP H0721038 A JPH0721038 A JP H0721038A JP 5160692 A JP5160692 A JP 5160692A JP 16069293 A JP16069293 A JP 16069293A JP H0721038 A JPH0721038 A JP H0721038A
Authority
JP
Japan
Prior art keywords
program
programs
transmission
data
client
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
JP5160692A
Other languages
English (en)
Inventor
Koji Umezaki
浩司 梅▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5160692A priority Critical patent/JPH0721038A/ja
Publication of JPH0721038A publication Critical patent/JPH0721038A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 複数の送信側プログラムに対する応答性能を
向上させ、さらには異常発生時にその旨を各プログラム
に通知し、信頼性を向上させること。 【構成】 複数の送信側プログラムからデータを送信す
るに際し、いずれか1つの送信側プログラムに送信権を
付与する排他処理を行い、この排他処理によって送信権
を確保した送信側プログラム番号を各プログラムに共通
の領域に登録した後、送信権を確保した送信側プログラ
ムからデータを送信させ、受信側プログラムでは該送信
データを割込み処理によって受信させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、クライアント/サーバ
型システム等におけるプログラム間通信方法に関するも
のである。
【0002】
【従来の技術】従来、プログラム間でデータの送受信を
行うシステムとして、例えばクライアント/サーバ型シ
ステムがある。
【0003】このようなシステムにおいて、クライアン
ト側のプログラムはサーバ側のプログラムの状態に関係
なく、任意の時点でデータを送信し、サーバ側のプログ
ラムは受信可能な状態であれば、この送信データを受信
する。しかし、サーバ側のプログラムは特定のイベント
に対する処理を行っている場合は、送信側の送信意志を
事前に認識するようになっていないため、送信側からの
データを受信できない。
【0004】この場合、受信側のプログラムがシステム
に対し予め受信要求を発行しておいた場合は、受信側プ
ログラムは受信処理以外の処理に移行せず、受信態勢に
あるので、送信側プログラムから任意の時点でデータが
送られて来ても、このデータを能動的に受信することが
できる。
【0005】
【発明が解決しようとする課題】ところで、クライアン
ト/サーバ型システムにおいては、クライアント側装置
が複数台で構成される場合が多い。
【0006】このようなマルチクライアント構成のシス
テムでは、複数のクライアントの要求が同時に発生する
ので、サーバ側のプログラムが常に受信態勢になってい
るとは限らず、特定のイベントに対する処理を行ってい
る場合が多くなる。このため、各クライアントに対する
応答性能が低下し、システムとしての性能が低下すると
いう問題があった。
【0007】また、UNIX(システムラボラトリ社)
等のシステムでは、異常時に各プログラムに対して異常
通知を行うために必要な情報が得られず、信頼性を低下
させるといった問題があった。
【0008】本発明の目的は、複数の送信側プログラム
に対する応答性能を向上させ、さらには異常発生時にそ
の旨を各プログラムに通知し、信頼性を向上させること
ができるプログラム間通信方法を提供することにある。
【0009】
【課題を解決するための手段】上記の目的は、複数の送
信側プログラムからデータを送信するに際し、いずれか
1つの送信側プログラムに送信権を付与する排他処理を
行い、この排他処理によって送信権を確保した送信側プ
ログラム番号を各プログラムに共通の領域に登録した
後、送信権を確保した送信側プログラムからデータを送
信させ、受信側プログラムでは該送信データを割込み処
理によって受信させることによって達成される。
【0010】また、信頼性の向上は、共通の領域に登録
した送信側プログラム番号の滞在時間を監視し、所定時
間経過後も滞在している時は、異常発生通知を他の送信
側プログラムに対して行うことにより達成される。
【0011】
【作用】上記手段によれば、送信側プログラムから送信
されたデータは、受信側プログラムの割込み処理によっ
て受信されるため、受信側プログラムの主たる処理に影
響を与えることなく受信される。これによって、送信側
プログラムからのサービス要求発生に呼応してデータを
随時受信する非同期受信を実現することができる。
【0012】この場合、排他処理によって1つの送信側
プログラムに対してのみ送信権を付与しているので、割
込み処理中に再度割込み処理が行われることはない。
【0013】また、共通の領域に登録した送信側プログ
ラム番号が所定時間経過後も滞在している時は、異常発
生通知を他の送信側プログラムに対して行うので、信頼
性を向上させることができる。
【0014】
【実施例】以下、本発明を実施例に基づいて詳細に説明
する。
【0015】図1は、UNIXシステム上に構成された
クライアント/サーバシステムに本発明によるプログラ
ム間通信方式を適用した実施例を示すシステム構成図で
ある。
【0016】図1において、1はUNIXシステムを構
成する計算機であり、この計算機1の内部にはサーバプ
ログラム11〜13と、クライアントプログラム21〜
23と、これらのプログラム11〜13および21〜2
3を管理するマネージャープログラム31が格納されて
いる。
【0017】さらに、上記各プログラム11〜13およ
び21〜23から参照可能な共通領域(共有メモリ)4
1が設けられている。
【0018】ここで、サーバプログラム11〜13は、
クライアントプログラム21〜23からのデータを割込
み処理によって受け取るようになっている。
【0019】また、共通領域41には、通信管理用テー
ブル42と、各サーバプログラム11〜13に対して送
信権獲得待ちのプログラム番号を記憶するデータ格納領
域43と、各サーバプログラム11〜13のデータ受信
エリア44が設けられている。
【0020】また、サーバプログラム11〜13とクラ
イアントプログラム21〜23との間には、各クライア
ントプログラム21〜23が送信権を排他処理によって
奪い合うための排他処理部51が設けられている。この
排他処理部51は、UNIXシステムではセマフォ機能
を用いることで実現される。
【0021】この排他処理部51は、図2に示すよう
に、各サーバプログラム11〜13ごとに一意に設定さ
れた送信権番号52〜54の送信権を各クライアントプ
ログラム21〜23が排他処理によって奪い合うように
なっており、図2の例では、クライアントプログラム2
1がサーバプログラム11に対する送信権を得ている状
態を示し、またクライアントプログラム22がサーバプ
ログラム12に対する送信権を得ようとしている状態を
示している。
【0022】このような構成において、クライアントプ
ログラム21〜23からサーバプログラム11に対して
データを送信する場合の動作を図3のフローチャートに
従って説明する。
【0023】まず、各クライアントプログラム21〜2
3は、データ送信を行うために通信管理用テーブル42
を各サーバプログラム11〜13に対応するサーバ番号
により検索し、各サーバプログラム11〜13に設定さ
れている送信権番号を抽出する(ステップ61)。
【0024】次に、自クライアントプログラムのプログ
ラム番号をデータ格納領域43に一時的に登録し(ステ
ップ62)、この後に、排他処理部51での排他処理に
よって送信権番号52,53,54で指定される送信権
を奪い合い(ステップ63)、送信権を獲得したなら
ば、通信管理用テーブル42上の送信権獲得プログラム
番号欄に自分のプログラム番号を登録し(ステップ6
4)、データ格納領域43に一時的に登録しておいた自
分のプログラム番号をクリアする(ステップ65)。
【0025】例えば、クライアントプログラム21が送
信権を獲得したとすると、クライアントプログラム21
のプログラム番号201が通信管理用テーブル42上の
送信権獲得プログラム番号欄に登録された後、データ格
納領域43に一時的に登録しておいたプログラム番号2
01はクリアされる。
【0026】この場合、送信権を獲得できなかった他の
クライアントプログラム22,23は、送信権が解放さ
れるまで待ち状態となる。この待ち状態のクライアント
プログラム22,23は、そのプログラム番号がデータ
格納領域43に登録される。
【0027】次に、送信権を獲得したクライアントプロ
グラム21は、送信すべきデータを共通領域41上のデ
ータ受信領域44に書き込み(ステップ66)、次に、
送信権獲得プログラム番号欄に登録されている自分のプ
ログラム番号をクリアする(ステップ67)。
【0028】最後に、サーバプログラム11に対してデ
ータ送信完了通知の信号を送り、終了する(ステップ6
8)。
【0029】これに対し、データ送信完了通知の信号を
受け取ったサーバプログラム11は、仕掛り中のステー
トメントを中断し、ステップ80〜82で示される非同
期受信処理ルーチンに飛び、まず、データ受信エリア4
4のデータをサーバプログラム11内部の領域にコピー
する(ステップ80)。この後、送信権の解放を行い、
仕掛り中であった処理にリターンし(ステップ81,8
2)、ステップ72のイベント処理を行う。
【0030】この間、送信権を獲得できなかったクライ
アントプログラム22,23は、送信権が解放されるま
で待ち状態となるが、クライアントプログラム21の送
信権が解放された時点で、待ち状態の1つのクライアン
トプログラムに対し新たに送信権が付与される。
【0031】このように割込み処理によってクライアン
トプログラム21からのデータを受信することによっ
て、サーバプログラム11はイベントに対する処理の仕
掛り中であっても確実にデータを受信することが可能に
なる。これによって、クライアント21からのサービス
要求発生に呼応してデータを随時受信する非同期受信を
実現することができ、各クライアントプログラムに対す
るサービスの低下を防止し、システムの性能低下を防止
できる。
【0032】一方、マネージャプログラム31は、図4
のフローチャートに示すように、通信管理用テーブル4
2に登録されているサーバプログラム数分のタイマ関数
を登録し(ステップ91)、そのタイマ関数を用いたタ
イマにより一定時間毎に通信管理用テーブル42を監視
し、送信権獲得クライアントプログラムの生存を調べ
る。すなわち、ロック中のクライアントプログラムが動
作中かどうかを調べる。
【0033】もし、送信権を解放しないうち終了したク
ライアントプログラムがあった場合、タイマ時間経過後
も送信権が残っているので、当該クライアントプログラ
ムが異常終了していると見做し、データ格納領域43に
登録されている各待ち状態のクライアントプログラムに
対して異常が発生していることを通知する。
【0034】
【発明の効果】以上のように本発明によれば、受信処理
が割込み処理として実行されるため、受信側プログラム
は意識して受信要求を発行することなく、主たる処理を
継続しつつ送信側プログラムからのデータを受信するこ
とができ、複数の送信側プログラムに対するサービスの
低下を防止し、システムの性能低下を防止できる。
【0035】また、異常時には共通領域の情報により、
各送信側プログラムに対して異常通知を行うので、シス
テムの信頼性を向上させることができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示すシステム構成図であ
る。
【図2】実施例の排他処理部の概要説明図である。
【図3】実施例のデータ送受信動作を示すフローチャー
トである。
【図4】マネージャプログラムのタイマ監視動作を示す
フローチャートである。
【符号の説明】
1…計算機、11〜13…サーバプログラム、21〜2
3…クライアントプログラム、31…マネージャープロ
グラム、41…共通領域、42…通信管理用テーブル、
43…データ格納領域、44…データ受信エリア、51
…排他処理部、52〜54…送信権番号。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数の送信側プログラムと、これら送信
    側プログラムから同時にサービス要求を受ける受信側プ
    ログラムとの間のデータ通信方法であって、前記複数の
    送信側プログラムからデータを送信するに際し、いずれ
    か1つの送信側プログラムに送信権を付与する排他処理
    を行い、この排他処理によって送信権を確保した送信側
    プログラム番号を各プログラムに共通の領域に登録した
    後、送信権を確保した送信側プログラムからデータを送
    信させ、受信側プログラムでは該送信データを割込み処
    理によって受信させることを特徴とするプログラム間通
    信方法。
  2. 【請求項2】 前記共通の領域に登録した送信側プログ
    ラム番号の滞在時間を監視し、所定時間経過後も滞在し
    ている時は、異常発生通知を他の送信側プログラムに対
    して行うことを特徴とする請求項1記載のプログラム間
    通信方法。
JP5160692A 1993-06-30 1993-06-30 プログラム間通信方法 Pending JPH0721038A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5160692A JPH0721038A (ja) 1993-06-30 1993-06-30 プログラム間通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5160692A JPH0721038A (ja) 1993-06-30 1993-06-30 プログラム間通信方法

Publications (1)

Publication Number Publication Date
JPH0721038A true JPH0721038A (ja) 1995-01-24

Family

ID=15720408

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5160692A Pending JPH0721038A (ja) 1993-06-30 1993-06-30 プログラム間通信方法

Country Status (1)

Country Link
JP (1) JPH0721038A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140069126A (ko) * 2011-09-30 2014-06-09 오라클 인터내셔날 코포레이션 미들웨어 머신 환경에서 다중노드 어플리케이션들을 위한 메시지 큐들을 제공 및 관리하는 시스템 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140069126A (ko) * 2011-09-30 2014-06-09 오라클 인터내셔날 코포레이션 미들웨어 머신 환경에서 다중노드 어플리케이션들을 위한 메시지 큐들을 제공 및 관리하는 시스템 및 방법
JP2014531687A (ja) * 2011-09-30 2014-11-27 オラクル・インターナショナル・コーポレイション ミドルウェアマシン環境においてマルチノードアプリケーションのためのメッセージキューを提供および管理するためのシステムおよび方法
US9558048B2 (en) 2011-09-30 2017-01-31 Oracle International Corporation System and method for managing message queues for multinode applications in a transactional middleware machine environment
US9996403B2 (en) 2011-09-30 2018-06-12 Oracle International Corporation System and method for providing message queues for multinode applications in a middleware machine environment

Similar Documents

Publication Publication Date Title
US4635187A (en) Control for a multiprocessing system program process
US8812501B2 (en) Method or apparatus for selecting a cluster in a group of nodes
US4684885A (en) Arrangement for on-line diagnostic testing of an off-line standby processor in a duplicated processor configuration
CN110289965B (zh) 一种应用程序服务的管理方法及装置
US5343480A (en) System for detecting loss of message
JPH0721038A (ja) プログラム間通信方法
US5475816A (en) Reply monitor for a network of microprocessor-based systems
KR100444092B1 (ko) 데이터 처리 시스템 내의 채널들의 복구를 위한 체크포인팅 방법, 장치 및 기록 매체
JP3008646B2 (ja) 障害情報処理方式
JPH07120288B2 (ja) データ処理装置の冗送メッセージ検出処理方式
JPH0927989A (ja) ポーリング方式
JP2001177542A (ja) 制御ノード間通信装置
CN114328709A (zh) 一种故障转移方法、装置、电子设备及存储介质
KR960009913B1 (ko) 통신시스템에 있어서 공통의 버스 자원을 공유한 다수 프로세서의 통신 데이타 송·수신 방법
CN112597536A (zh) 数据库表文件被非法删除的实时检测方法及装备
JP3740198B2 (ja) 分散システムでの運用コマンドの処理機構の実現方法
JP2923992B2 (ja) デマンドアサイン通信システムにおけるアクセスチャネル制御方式
JP2000224184A (ja) ネットワーク管理システム
JP3486061B2 (ja) 通信回線リセット装置
JP2855768B2 (ja) メッセージ転送試験方法
CN115454376A (zh) 数据处理方法、装置、存储介质及计算机设备
JP2910176B2 (ja) 要求受付処理装置
JPH06301658A (ja) 疎結合電子計算機システムのリカバリ方式
JP2000031988A (ja) ノード状態管理システム
JP2000089980A (ja) エラーログ収集システム