JP5610773B2 - メッセージ処理装置およびメッセージ処理方法 - Google Patents

メッセージ処理装置およびメッセージ処理方法 Download PDF

Info

Publication number
JP5610773B2
JP5610773B2 JP2010001562A JP2010001562A JP5610773B2 JP 5610773 B2 JP5610773 B2 JP 5610773B2 JP 2010001562 A JP2010001562 A JP 2010001562A JP 2010001562 A JP2010001562 A JP 2010001562A JP 5610773 B2 JP5610773 B2 JP 5610773B2
Authority
JP
Japan
Prior art keywords
message
unit
holding
component
received
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.)
Expired - Fee Related
Application number
JP2010001562A
Other languages
English (en)
Other versions
JP2011141695A (ja
Inventor
達彦 冨田
達彦 冨田
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 JP2010001562A priority Critical patent/JP5610773B2/ja
Priority to US12/975,939 priority patent/US8863149B2/en
Publication of JP2011141695A publication Critical patent/JP2011141695A/ja
Application granted granted Critical
Publication of JP5610773B2 publication Critical patent/JP5610773B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、ソフトウェアをコンポーネントという単位で扱い、複数のコンポーネント間でメッセージ交換を行って処理を進める分散システムのメッセージ処理方法に関する。
分散オブジェクト技術は、複数のプロセスやネットワーク上に分散されているソフトウェアコンポーネント(以下、コンポーネントと呼ぶ)間において、お互いに相手の物理的な配置を気にせずに電子情報のやりとりを利用可能とする技術である。本明細書ではこのような電子情報をメッセージと呼ぶ。分散オブジェクト技術では、同一コンピュータ上の異なるプロセス上で動作するコンポーネントや、ネットワークを介して異なるコンピュータ上で動作するコンポーネントに対して相互にメッセージ通信が行われる。このような分散オブジェクトシステムの代表的なものとして以下のようなシステムが存在する。
(1) RPC (Remote Procedure Call) (非特許文献1参照)
(2) CORBA (Common Object Request Broker Architecture(登録商標))(非特許文献2参照)
(3) JavaRMI (Java Remote Method Invocation(Javaは登録商標))(非特許文献3参照)
これら分散オブジェクト技術は、トランザクション処理システムやデータ収集システム、Webサービスといった比較的大規模なシステムでの実績が多い。しかし、近年では組込み領域においても、複数CPUやマルチプロセッサOSを搭載する製品が増え、RPCやCORBAと同等の機能を有する通信ミドルウェアを採用する機会が増えてきている。
通信ミドルウェアは、煩雑なスレッド/プロセス間通信やネットワーク処理の実装を隠蔽する。コンポーネント間でメッセージやデータやイベント(以下、まとめてメッセージと呼ぶ)のやり取りを行う際、通信ミドルウェアの決められたAPIを用いて行うことで、コンポーネントの移植性が向上する。
分散オブジェクト技術を実現するための代表的な実装形態の一つがサーバ/クライアントモデルである。サーバ/クライアントモデルでは、サービスを提供する側のサーバ・コンポーネント(以下、サーバと呼ぶ)に対して、クライアント・コンポーネント(以下、クライアントと呼ぶ)がサービス利用の依頼を行う。サーバは依頼に応じてサービスを実行したり、要求されたメッセージをクライアントに送信したりといったことを行う。サーバ/クライアントモデルで構成されるシステムにおいては、クライアントとサーバが1対1とは限らない。すなわち、1つのサーバに対して複数のクライアントが処理を依頼する構成をとることが多い。その為サーバ側はキューを備え、複数のクライアントからの処理依頼メッセージを一旦キューに登録し、前の処理が完了した後にキューから次のメッセージを取り出して処理するように構成される。ここで、サーバはサービス要求を行うクライアントが誰であるかを想定せず、クライアントからの要求に対して返信を行う構成にすることで、通信相手のことを考えずにサーバを実装することが可能となり、移植性の高いサーバ・コンポーネントを実現できる。このように、コンポーネントの移植性を向上させるためには、通信しあうコンポーネント間で、一方のコンポーネントが他方のコンポーネントを指定せずに通信を行うことが肝心である。
また、近年成長を続けているメッセージ通信技術としてPublish/Subscribeモデル(以下、Pub/Subモデルと呼ぶ)がある。Pub/Subモデルもサーバ/クライアントモデルと同様に、多対多通信を実現するためメッセージキューイングを行う。Pub/Subモデルでは、受信者(以下、Subscriberと呼ぶ)は受信したいメッセージ属性(以下、トピックと呼ぶ)に興味があるとあらかじめ宣言しておく(以下、購読予約と呼ぶ)。また、送信者(以下、Publisherと呼ぶ)はあるトピックに対してメッセージを発行する。このようにして発行されたメッセージは、通信ミドルウェアによって、購読予約をしている全てのSubscriberに対して配信される。この方式の特徴は、PublisherとSubscriberが互いに相手の情報を知る必要が無い点にある。
このように、Pub/Subモデルはトピックに関して通信さえできれば、Publisher、Subscriber両者はシステムのネットワーク構成も知る必要がない。また、相手の状態がどうであろうと個々のシステムは正常に稼動し続ける。まとめると、Pub/Subモデルは疎結合なシステムであり、サーバを指定してクライアントがメッセージを送信するようなサーバ/クライアントモデルのシステムに比べて、コンポーネントの移植性が高いという特徴がある。
ところで、組み込みシステムにおいて上述したような1対多もしくは多対多のメッセージ配信システムを実現する際、過去に配信されたメッセージを後になって受信したいというユースケースは少なくない。例えば、マルチCPU上で複数のコンポーネントが協調して動作するような複写機を、高速で起動させることを考える。一般に、複写機を構成するコンポーネントは他のコンポーネントとメッセージ通信を行い、自身の状態を正常に更新しながらシステムの起動を行う。しかしながら、CPUやメモリ等のリソース制限により全てのコンポーネントを同時に起動することはできないため、いくつかのコンポーネントはシーケンシャルに起動させることになる。また、システムを高速で起動させるためには、システムが最低限動作するために必要なコンポーネントを優先的に起動する必要がある。それらの際でも先に起動したコンポーネントが配信したメッセージを、遅れて起動したコンポーネントが受け取り、あたかも始めから起動していたかのように状態を正常に更新したいというユースケースがある。
別のユースケースとしては、Pub/Subモデルを実現するシステムにおいて、通信経路の障害などによって一時的にSubscriberの購読予約が受理されない場合でも、期待するメッセージを受信したいというものがある。しかしながら、サーバやPublisherといった送信コンポーネントに後からくるコンポーネントを意識してメッセージを保持させておく実装をするのは、前述したように移植性を低下させる要因となり望ましくない。
上記問題を解決する為に、メッセージを配信後すぐに削除してしまわないように、通信ミドルウェアが一定期間メッセージを保持する方式が考えられている(特許文献1参照)。また、Publisherの発行したメッセージのメッセージ発行時刻がSubscriberの購読予約時刻以降である場合に、当該メッセージをそのSubscriberに配信する方式が知られている(特許文献2参照)。
特許第03732671号公報 特開2008−124977号公報
「RPC: Remote ProcedureCallProtocol Specification Version 2」,Sun Microsystems 「Common Object Request Broker Architecture: Core Specification」,Object Management Group, Inc. 「Java分散コンピューティング(Javaは登録商標)」、Jim Farley 著、小俣 裕一監訳、株式会社オライリー・ジャパン
特許文献1に開示された技術によれば、送信コンポーネントが発行したメッセージを一定期間保持しておくことで、遅れて起動した受信コンポーネントへメッセージを送信することが可能である。ここで、前述した起動時間短縮のユースケースを実現するために受信コンポーネントの起動を後回しにする場合を考える。このとき、受信コンポーネントの起動タイミングによってはメッセージの保持期間を過ぎてしまうことがあり、期待するメッセージを受信できない可能性がある。また、それに備えてメッセージの保持期間を長めに設定すると、送信コンポーネントのメッセージ発行間隔が短いとすぐにデータ保持領域を逼迫してしまう。通常受信コンポーネントが起動してメッセージ受信を開始するタイミングは起動モードや製品の使用状況に左右される。また、受信コンポーネントがシステムの使用状況に合わせて動的に生成されるケースも多くある。これらより、メッセージの保持期間を正確に予測することは困難であり、遅れて起動するコンポーネントが期待するメッセージを確実に受信するためには、メッセージ保持期間のみでメッセージの削除タイミングを判断するのは不十分である。
また、特許文献2に開示された技術によれば、Subscriberが購読予約時刻を付与して購読予約を行う。こうすることで、仮にネットワーク障害などで購読予約が一時的に受理されなくても、購読予約時刻以降にPublisherが発行したメッセージを受信することができる。しかしながら、機器組込みのソフトウェアにおいては、複写機の高速起動のユースケースに代表されるように、動作するコンポーネント数を限定しなければならない状況が多く存在する。そのため、Publisherが動作する前にあらかじめSubscriberを動作させ購読予約を行うことが困難になるケースが多い。
本発明は上記の課題に鑑みてなされたものであり、メモリを逼迫させずに、より確実に受信コンポーネントにメッセージを受信させることが可能なメッセージ処理装置及び方法を提供することを目的とする。
上記の目的を達成するための本発明の一態様によるメッセージ処理装置は以下の構成を備える。すなわち、
複数のソフトウェアコンポーネントと通信し、ソフトウェアコンポーネントから受け取ったメッセージを他のソフトウェアコンポーネントへ渡すメッセージ処理装置であって、
フトウェアコンポーネントからメッセージを受信し、受信したメッセージに送信数を設定して当該受信したメッセージを保持する保持手段と、
前記受信したメッセージと、前記送信数および保持期間を対応させて管理する管理手段と、
他のソフトウェアコンポーネントからの配信要求に応じて、前記保持手段に保持されている前記受信したメッセージを、前記他のソフトウェアコンポーネントへ送信する送信手段と、
前記受信したメッセージが、前記送信手段により前記管理手段により管理されている前記送信数だけ送信された後、前記保持期間にわたって新たな配信要求がない場合に、前記受信したメッセージを、前記保持手段から削除する削除手段とを備える。
本発明によれば、メモリを逼迫させずに、より確実に受信コンポーネントにメッセージを受信させることが可能となる。
実施形態に係るシステムのソフトウェア構成を示したブロック図。 実施形態に係るシステムのハードウェア構成を示したブロック図。 実施形態の通信ミドルウェアが管理するテーブルの一例を示す図。 実施形態によるメッセージ購読予約処理の流れの例を示す図。 実施形態によるメッセージ送信処理の流れの例を示す図。 実施形態によるメッセージ削除処理の流れの例を示す図。 実施形態によるメッセージ配信処理の流れの例を示す図。 実施形態によるメッセージ要求処理の流れの例を示す図。 実施形態によるメッセージ返信処理の流れの例を示す図。 実施形態によるデータの関連を示す図。 実施形態による、メッセージに着目した処理の流れの例を示す図。 実施形態によるメッセージに着目した処理の流れの例を示す図。
以下、添付の図面に従って本発明の実施形態を説明する。ただし、以下の実施形態は本発明の一例に過ぎず、本発明の範囲を限定するものではない。
<第1実施形態>
図2は実施形態による情報処理装置(コンピュータ・システム)の全体構成例を示すブロック図である。CPU1は、以下に説明する3からから11の装置をバス2を介してアクセスし、各種制御を行う。ROM3は、バス2を介してCPU1からアクセス可能な読み出し専用メモリであり、複数のソフトウェアコンポーネント3aを含む処理プログラム及びソフトウェアコンポーネント3aにより使用されるパラメータ3bを格納する。RAM4は読み書き可能なメモリであり、ソフトウェアコンポーネント3aにより作成/変更がなされる、メッセージ格納領域4aやテーブル管理領域4b等を保持する。入力インターフェース5は、スイッチ、キー、ボタン、タッチパネル等の入力装置6を介してなされる入力を受け取る。出力インターフェース7は、CRT,LCD等の表示媒体8に対し、データの表示/出力を行う。また、外部記憶装置インターフェース9は、HDD、不揮発性メモリ等の外部記憶装置10に対するデータの入出力を行う。
なお、本実施形態では、ソフトウェアコンポーネント3aやパラメータ3bがROM3上に、また、処理対象となる各データの格納領域(4a、4b)がRAM4上にあるものとして説明を行うが、これに限られるものではない。たとえば、これらのデータをすべて外部記憶装置10に配置することも可能である。この場合、これらのデータは必要に応じて、外部記憶装置10からRAM4にロードされ、CPU1により使用される。また、CPU1のキャッシュメモリ上に配置することも同様に可能である。また、メッセージ格納領域4aは、ソフトウェアコンポーネントが送受信するメッセージを格納する場所であり、テーブル管理領域4bは、メッセージを管理するための情報を格納する場所である。また、ネットワークインターフェース11は、ローカルエリアネットワーク(LAN)、無線LAN、シリアルバス等の他ノード(CPU)との通信を行う装置である。他のノードとの接続形態のバリエーションとして、ハードウェアのバスやDual PortのRAMを介してCPUとCPUが接続される形態が挙げられる。この場合は、バス間通信を行うドライバを経由し、ネットワークインターフェースと同様にデータの交換が可能である。本実施形態に関するシステムでは、これらの物理的な通信方式を隠蔽するミドルウェアを介して異なるCPU上のアプリケーション・プログラム同士がメッセージの交換(メッセージ処理)を行う事ができるように構成されている。
図1は、本システムにおけるソフトウェアの構成を詳細化した一例である。図1は、協調して動作する複数のソフトウェアコンポーネント3aの構成要件と、それらの構成要件が格納領域4aに格納される管理データとどのような関係にあるかを示している。図2で示したコンピュータ・システム上では、オペレーティング・システム(不図示)が動作しているものとする。また、オペレーティング・システム上では複数のソフトウェアコンポーネント3aが動作しているとする。送信コンポーネント101はメッセージを送信するソフトウェアコンポーネントであり、本実施形態ではデバイスから周期的にもしくは任意のタイミングで情報を取得するリアルタイムデバイスコンポーネントを想定している。受信コンポーネント102、103は、メッセージを受信するソフトウェアコンポーネントであり、コンピュータ・システム上または他のコンピュータ・システム上で動作するものである。本実施形態では、リアルタイムデバイスから得た情報に応じて、各種デバイスを制御するデバイス制御コンポーネントA、Bを想定している。また、本実施形態においては、Pub/Subモデルの実現をサポートする通信ミドルウェア105を想定し、送信コンポーネント101をPublisher、受信コンポーネント102、103をSubscriberと考える。なお、本構成例ではシステムを構成するコンピュータの数を明記していないが、1つ以上のコンピュータから構成されるシステムにおいて、本実施形態を適用することが可能である。また、送信および受信コンポーネントの分類はある2つのソフトウェアコンポーネント間の関係のみを示している。つまり、あるソフトウェアコンポーネントは、送信コンポーネントにも、受信コンポーネントにも成り得る。
メッセージ書き込み部1011は、送信コンポーネント101が発行するメッセージを受信する。メッセージ書き込み部1011は、Pub/Subモデルにおいてはトピックごとに存在する。メッセージ格納部1012は、送信コンポーネントが発行するメッセージを保持する。メッセージ格納部1012に格納されている各メッセージはメッセージ管理部1013によって、送信先コンポーネント数を管理されている。また、メッセージ保持期間管理部1014は、トピックに応じてメッセージを保持しておく期間を管理している。メッセージ削除部1015はメッセージ管理部1013に管理されている送信先コンポーネント数が0になったメッセージを削除する。このとき、メッセージ削除部1015は、メッセージ保持期間管理部1014に管理されている保持期間だけ保持したあと、メッセージ格納部1012およびメッセージ管理部1013から該当するメッセージを削除する。送信先情報管理部1016は、トピックの購読予約をしている送信先コンポーネントの情報を管理する。要求応答部1017は、トピックの購読予約や、保持しているメッセージを配信する要求を受け付ける。要求応答部1017は、トピックの購読予約を受け付けた場合には、送信先情報管理部1016に購読予約を行った送信先コンポーネントの情報を格納する。メッセージ読出し部1021、1031は、メッセージを受信して受信コンポーネント102、103へそのメッセージを受け渡す。要求監視部1022、1032は、受信コンポーネント102,103からのトピックへの購読の予約要求や、過去のメッセージの配信要求を監視し、それらの要求が来た場合は、要求応答部1017に対して通知を行う。通信制御部104は、メッセージ書き込み部1011、メッセージ読み出し部1021、1031間でメッセージのやりとりを制御する。、通信制御部104は、1つ以上のコンピュータ間での通信を可能としている。
図10は、第1実施形態で用いられるデータの関連を示す図である。1101はコンポーネント間で送受信されるメッセージであり、メッセージ格納部1012にて保持される。各メッセージ1101にはメッセージを識別するためのメッセージID1102、送信先コンポーネント数1103(メッセージに対して規定された送信数)のデータが、メッセージ管理部1013により付与される。また、メッセージ1101の送信先である送信先コンポーネント情報1104、およびメッセージ1101の保持期間1105とも関連づけられる。図中、「1」は対応関係において対応するデータ数が1であることを表わし、「*」は対応するデータ数が不特定多数であることを表わしている。
図11を用いて、通信ミドルウェア105がメッセージ1101を送信コンポーネント101から受け取って削除するまでの処理を説明する。送信コンポーネント101からメッセージ1101の送信指示を受け取ると、メッセージ書き込み部1011は、メッセージ1101にメッセージID1102、送信先コンポーネント数1103を対応させてメッセージ格納部1012に保持する(S1201)。続いて、メッセージ書き込み部1011は、送信先情報管理部1016により管理されているメッセージ1101に対応する送信先コンポーネント情報1104を参照し、未送信のコンポーネントが存在するか判断する(S1202)。未送信のコンポーネントが存在する場合、メッセージ書き込み部1011は、該当するコンポーネントにメッセージ1101を送信する(S1202でYes、S1203)。そして、メッセージ管理部1013は、メッセージ1101の送信先コンポーネント数1103を1つデクリメントする(S1204)。メッセージ書き込み部1011は、S1203からS1204の処理を、送信先情報管理部1016で管理されている未送信のコンポーネントが存在しなくなるまで繰り返す。
未送信のコンポーネントが存在しなくなり(S1202でNo)、さらにメッセージ1101の送信先コンポーネント数1103が0より大きい場合(S1205でYes)、要求応答部1017は、メッセージ1101の配信指示を待つ(S1206)。要求応答部1017は、メッセージ配信指示を受け取ると(S1207でYes)、指示されたコンポーネントにメッセージ1101を送信する(S1208)。そして、メッセージ管理部1013は送信先コンポーネント数1103を1つデクリメントする(S1209)。S1206からS1209の処理は、送信先コンポーネント数1103が0以下になるまで繰り返される。送信先コンポーネント数1103が0以下になったら(S1205でNo)、メッセージ削除部1015は、メッセージ削除処理のために、タイマをスタートする(S1210)。メッセージ保持期間管理部1014により管理されているメッセージ保持期間1105が過ぎる前に(S1212でNo)メッセージ配信指示を受け取ったら(S1211でYes)、一旦メッセージ削除処理を終えS1208のメッセージ送信処理に移る。その後、再度S1210へ処理が進んだ場合は、メッセージ削除部1015は、メッセージ削除処理のためのタイマをリセットしてからスタートさせる。メッセージ配信指示を受け取らないままメッセージ保持期間1105が過ぎたら(S1212でYes)、メッセージ1101を削除する。
図3は、第1実施形態で用いられるデータ構造例を示す図である。図3の(a)は送信先情報管理部1016で管理するデータ構造の一例であり、送信先コンポーネント情報1104を要素に持つ。図3の(b)はメッセージ管理部1013で管理するデータ構造の一例であり、メッセージID1102、送信先コンポーネント数1103を要素に持つ。さらに本実施形態ではメッセージが送信された順序を管理するための送信順序カウンタ301を要素に持つ。図3の(c)はメッセージ保持期間管理部1014で管理するデータ構造の一例であり、メッセージ保持期間1105を要素に持つ。
図4は、第1実施形態における、あるトピックに対するSubscriber登録処理の流れを示す図である。以下、図4における受信コンポーネント102は、SubscriberAとして説明をする。トピック毎に存在する要求応答部1017は、Subscriber登録要求に備えるため、通信制御部104に対して要求受信待ちを指示する(S401)。SubscriberAが通信ミドルウェア105に対してトピックの購読予約を行うと(S402)、要求監視部1022がその指示を受け取り、通信制御部104を通じてトピックに対して購読予約を行う(S403)。要求応答部1017は、受け取ったSubscriberAの情報を送信先情報管理部1016に登録する(S403)。
図5は、第1実施形態における、Publisherのメッセージ送信処理の流れを示す図である。以下、図5における送信コンポーネント101は、PublisherAとして説明をする。PublisherAは通信ミドルウェア105に対してあるトピックのメッセージを送信する旨を指示する。該当するトピックに対応するメッセージ書き込み部1011がその指示を受け取ると(S500)、メッセージ格納部1012とメッセージ管理部1013に対してそのメッセージを登録する(S501、S502)。メッセージ管理部1013は、何番目に送信するメッセージかを示す送信順序カウンタ301と、該当するトピックに指定されている送信先コンポーネント数1103とを対応させて保持しておく(S503)。本実施形態ではトピックごとに送信先コンポーネント数1103を通信ミドルウェアに対してあらかじめ設定しておくことを想定しているが、トピック登録時にPublisherから指定するようにしてもよい。また、送信順序カウンタ301は、メッセージに付与する直前に値が1つインクリメントされ、当該メッセージに付与されるようにすればよい。また、送信先コンポーネント数1103は、対応するメッセージの送信に応じてその数値が減算される「残り参照カウンタ」として機能するものである。以上のS501〜S503は図11のS1201に対応する。
次に、メッセージ書き込み部1011は、送信先情報管理部1016より、該当するトピックの送信先Subscriber情報(送信先コンポーネント情報)を取得する(S504)。そして、メッセージ書き込み部1011は、送信先Subscriberが存在したら(S505でYes)、通信制御部104を介してメッセージを送信する(S506)。その後、メッセージ管理部1013に対して、送信したメッセージの送信先コンポーネント数1103を1つデクリメントするよう指示をする(S507)。以上のS505〜S507の処理が、S504において取得された全ての送信先Subscriberについて実行される。これらの処理は図11のS1202〜S1204に対応する。登録されている全ての送信先Subscriberにメッセージの送信を終えると、当該メッセージの送信先コンポーネント数1103をチェックする(S508)。メッセージの送信先コンポーネント数1103が0以下の場合(S508でNo)、メッセージ書き込み部1011は、メッセージ削除部1015にメッセージ削除処理を依頼する(S509)。S508〜SS510の処理はS1205、S1210S1212に対応する。メッセージ削除処理については、図6で詳細に説明する(S510)。
図6は、第1実施形態における、メッセージ削除処理の流れを示す図である。メッセージ削除部1015は、まずメッセージ削除依頼の通知待ちを行う(S601)。メッセージ削除部1015は、メッセージ書き込み部1011よりメッセージ削除依頼を受け取ると(S509)、メッセージ保持期間管理部1014からメッセージ保持期間1105を獲得する(S602)。続いて、タイマをクリアしてから起動する(S603)。メッセージ削除処理中にメッセージ配信処理を受け取ると、当該メッセージ削除処理を終了する(S604でYes)。図には記述していないが、メッセージ削除部1015はメッセージ削除処理を終了すると、S601に戻りメッセージ削除依頼の通知待ち処理を繰り返す。メッセージ配信処理を受け取らない場合(S604でNo)、メッセージ保持期間1105とタイマの値を比較する(S605)。タイマの値がメッセージ保持期間を超えていたら(S605でYes)、メッセージ格納部1012、メッセージ管理部1013にメッセージ解放の指示を行う(S606、S607)。なお、タイマはトピックごとに用意されるものとし、同時期に異なるトピックのメッセージ削除処理が発生したとしても、それぞれのメッセージ削除処理は独立したタイマで管理される。
図7は、第1実施形態における、新規参入したSubscriberに対して保持しておいたメッセージを配信する処理の流れを示す図である。以下、図7における受信コンポーネント103は、SubscriberBとして説明をする。本実施形態では、起動時間短縮要求により、SubscriberBは、システム起動からある程度時間が経ってから起動するケースを想定している。
まず、要求応答部1017は他コンポーネントからのメッセージ配信の要求を受け付けるため、通信制御部104に要求受信待ちを指示する(S700)。要求監視部1032はSubscriber Bからの配信指示を受け取ると(S701)、通信制御部104を通じてトピックへのメッセージ配信指示を行う(S702)。要求応答部1017はその指示を受け取ると、配信要求のあったメッセージが削除処理中であるか判断し、削除中であったら(S703でYes)、メッセージ削除部1015に対してメッセージ配信受付を通知する(S704)。これは現在進行中のメッセージ削除処理をストップさせるためであり、メッセージ配信受付通知を受け取った後のメッセージ削除停止処理(S705)のフローについては図6で述べたとおりである。その後、要求応答部1017はメッセージ書き込み部1011に対してメッセージ配信の指示をする(S706)。メッセージ書き込み部1011は、メッセージ管理部1013に管理されているメッセージを獲得する(S707)。本実施形態では、メッセージに対応づけられた送信順序カウンタを参照し、送信順序にしたがって獲得することを想定している。もしメッセージ管理部1013に管理されているメッセージが存在しないか、配信要求のあったメッセージを全て送信し終えていたら、処理を終了する(S708でYes)。一方、送信するべきメッセージが存在したら(S708でNo)、通信制御部104を通じて配信要求のあったSubscriberBに対してメッセージを送信する(S709)。メッセージを送信したら送信したメッセージの送信先コンポーネント数1103を1つデクリメントする(S710)。このとき送信先コンポーネント数1103が0以下になったら(S711でNo)メッセージ削除部1015に対してメッセージ削除依頼を指示する(S712)。メッセージ削除依頼を受け取ったメッセージ削除部1015によるメッセージ削除処理については図6で述べたとおりである。その後メッセージ書き込み部1011は、S706以下の処理を送信順序カウンタの順番に沿って繰り返し、処理するメッセージが存在しなくなったら(S708でYes)、メッセージ配信処理を終える。なお、本実施形態では新規参入したSubscriberBが自身への配信指示を行う例を用いて説明したが、通信ミドルウェア105がSubscriberBから購読予約をされた段階で保持しておいたメッセージを送信するよう実装してもよい。なお、図示していないが、通常、メッセージ配信処理終了後、要求応答部1017は通信制御部104に再度要求受信待ち指示を行い(S700)、図7のメッセージ配信処理を繰り返す。
以上説明したとおり、第1実施形態によれば、送信済みのメッセージであっても送信先コンポーネント数とメッセージ保持期間に従ってメッセージを保持しておき、新規参入したSubscriberに対して保持しておいたメッセージを送信する。Subscriberはメッセージ発行後時間が経ってから起動しても、メッセージを受信することができる。
すなわち、第1実施形態によれば、メッセージが送信される回数をあらかじめ決めておくことにより、送信コンポーネントが送信したメッセージを、時間を置いて後から起動した受信コンポーネントに確実に送信することが可能となる。これにより、例えば、起動時間短縮モードなどで起動優先度の低いコンポーネントも後から必要なメッセージが得られ、あたかも最初から起動していたかのように振舞うことができる。また、所定数のコンポーネントに送信済みのメッセージであっても、一定期間保持しておきメッセージ送信要求の度に保持期間をリセットすることによって、想定していない受信コンポーネントからのメッセージ送信要求に応えることができる。例えば、受信コンポーネントが一定期間置きに不特定数生成されるような場合、想定していたメッセージの送信回数を超えても、新規受信コンポーネントのメッセージ送信要求に応えることが可能となる。これらメッセージ送信回数とメッセージ保持期間を組み合わせることにより、必要以上にメッセージ保持期間を長く設定する必要がなくなり、データ保持領域の逼迫を低減することができる。
<第2実施形態>
次に、第2実施形態を説明する。第2実施形態のソフトウェア構成の詳細は第1実施形態で用いた図1と同様であるが、本実施形態では、サーバ/クライアントモデルの実現をサポートする通信ミドルウェア105を想定する。そのため、送信コンポーネント101をサーバ・コンポーネント(以下、サーバ101という)、受信コンポーネント102、103をクライアント・コンポーネント(以下、クライアント102,103という)と考える。
第2実施形態で用いられるデータの構造について図3を用いて説明する。図3の(a)は送信先情報管理部1016で管理するデータ構造の一例であり、送信先コンポーネント情報1104としてメッセージ送信のリクエストがあった返信先コンポーネントの情報を示している。図3の(b)はメッセージ管理部1013で管理するデータ構造の一例、図3の(c)はメッセージ保持期間管理部1014で管理するデータ構造の一例を示している。
図8は、第2実施形態における、クライアント102からサーバ101へのメッセージ要求処理の流れを示す図である。サーバ101からメッセージ要求の受信待ち指示を受け取ると(S901)、メッセージ書き込み部1011は要求応答部1017に対して要求受信待ち指示を行う(S902)。要求応答部1017は、メッセージ要求に備えるため、通信制御部104に対して要求受信待ちを指示する(S903)。クライアント102が通信ミドルウェア105に対してメッセージ要求を行うと(S904)、要求監視部1022はその指示を受け取り、通信制御部104を通じてサーバ101に対してメッセージ要求を行う(S905)。要求応答部1017は受け取ったクライアント102の情報を送信先情報管理部1016に登録する(S906)。その後、メッセージ要求を受け取ったサーバ101は、メッセージ書き込み部1011に対して返信メッセージを登録する(S907)。この後のメッセージ返信処理の流れについては、図9で説明する。
図9は、第2実施形態における、サーバのメッセージ返信処理の流れを示す図である。サーバ101がメッセージ書き込み部1011に対して返信メッセージを登録すると(S1000)、メッセージ書き込み部1011は、メッセージ格納部1012とメッセージ管理部1013に対してそのメッセージを登録する(S1001、S1002)。メッセージ管理部1013は、図3の(b)に示すように、サーバ101が送信するメッセージか何番目かを示す送信順序カウンタと、あらかじめ指定された送信先コンポーネント数1103とを対応させて、保持しておく(S1003)。続いて、送信先情報管理部1016より、メッセージの返信先コンポーネント情報を取得し(S1004)、通信制御部104を介してメッセージを送信する(S1005)。その後、メッセージ管理部1013は送信したメッセージの送信先コンポーネント数1103(残り参照カウンタ)を1つデクリメントする(S1006)。このとき、メッセージの送信先コンポーネント数1103が0以下になったら(S1007でNo)、メッセージ削除部1015にメッセージ削除処理を依頼する(S1008)。メッセージ削除処理S1009については、第1実施形態で述べた図6の処理と同等である。メッセージを返信し終えたら、メッセージ返信処理を終了する。なお、図示していないが、通常、メッセージ返信処理終了後、図8のメッセージ要求処理が繰り返される(S901)。
次に、新規参入したクライアントに対して保持しておいたメッセージを配信する処理の流れを、第1実施形態の説明で用いた図7を用いて説明する。以下、図7における受信コンポーネント103はクライアント103として説明をする。第2実施形態でも、起動時間短縮要求により、クライアント103は、システム起動からある程度時間が経ってから起動するケースを想定している。
まず、要求応答部1017は他コンポーネントからのメッセージ配信の要求を受け付けるため、通信制御部104に要求受信待ちを指示する(S700)。要求監視部1032はクライアント103からの配信指示を受け取ると(S701)、通信制御部104を通じてサーバ101へのメッセージ配信指示を行う(S702)。要求応答部1017はその指示を受け取ると、配信要求のあったメッセージが削除処理中であるか判断し、削除中であったら(S703でYes)、メッセージ削除部1015に対してメッセージ配信受付を通知する(S704)。これは現在進行中のメッセージ削除処理をストップさせるためであり、メッセージ配信受付通知を受け取った後のメッセージ削除停止処理(S705)のフローについては第1実施形態で述べた図6の処理と同等である。その後要求応答部1017はメッセージ書き込み部1011に対してメッセージ配信の指示をする(S706)。
メッセージ書き込み部1011は、メッセージ管理部1013に管理されているメッセージを獲得する(S707)。本実施形態では、メッセージに対応づけられた送信順序カウンタを参照し、送信順序にしたがって獲得することを想定している。もしメッセージ管理部1013に管理されているメッセージが存在しないか、配信要求のあったメッセージを送信し終えたら、処理を終了する(S708でYes)。管理されている未送信のメッセージが存在したら(S708でNo)、通信制御部104を通じて配信要求のあったクライアント103に対してメッセージを送信する(S709)。メッセージを送信したら送信したメッセージの送信先コンポーネント数1103を1デクリメントする(S710)。このとき送信先コンポーネント数1103が0以下になったらメッセージ削除部1015に対してメッセージ削除依頼を指示する(S712)。メッセージ削除依頼を受け取ったメッセージ削除処理S713のフローについては第1実施形態で述べた図6の処理と同等である。その後メッセージ書き込み部1011は、S706以下の処理を送信順序カウンタの順番に沿って繰り返し、処理するメッセージが存在しなくなったら(S708でYes)、メッセージ配信処理を終える。なお、本実施形態では新規参入したクライアント103が自身への配信指示を行う例を用いて説明したが、通信ミドルウェア105がクライアント103からメッセージ要求をされた段階で保持しておいたメッセージを送信するよう実装してもよい。もしくは、クライアントの参入を監視する監視コンポーネントを別途用意し、監視コンポーネントが通信ミドルウェアに対して新規参入したクライアントへの配信指示を行ってもよい。なお、図示していないが、通常、メッセージ配信処理終了後、要求応答部1017は通信制御部104に再度要求受信待ち指示を行い(S700)、図7のメッセージ配信処理を繰り返す。
<第3実施形態>
次に、第3実施形態を説明する。第3実施形態のソフトウェア構成は、第1実施形態(図1)とほぼ同じである。但し、図1において、要求応答部1017からメッセージ管理部1013との間の通信が追加される。
次に、図12を用いて、第3実施形態における通信ミドルウェア105がメッセージ1101を送信コンポーネント101から受け取って削除するまでの処理を説明する。送信コンポーネント101からメッセージ1101の送信指示を受け取ると、メッセージ管理部1013は、メッセージ1101にメッセージID1102、送信先コンポーネント数1103を対応させて保持する(S1401)。続いて、メッセージ書き込み部1011は、メッセージ1101に対応する送信先コンポーネント情報1104を参照する(S1402)。そして、未送信のコンポーネントが存在したら(S1402でYes)、メッセージ書き込み部1011は該当する送信先コンポーネントにメッセージ1101を送信する(S1403)。その後、メッセージ1101の送信先コンポーネント数1103を1つデクリメントする(S1404)。S1403からS1404の処理を未送信のコンポーネントが存在しなくなるまで繰り返す。
未送信のコンポーネントが存在しなくなり(S1402でNo)、メッセージ1101の送信先コンポーネント数1103が0より大きい場合(S1405でYes)、メッセージ書き込み部1011は、受信コンポーネントからの指示を待つ(S1406)。メッセージ書き込み部1011は、メッセージ配信指示を受け取ったら(S1407でYes)、指示された送信先コンポーネントにメッセージ1101を送信し(S1408)、送信先コンポーネント数1103を1つデクリメントする(S1409)。その後、S1405の処理に戻る。また、メッセージ管理部1013は、要求応答部1017から送信先コンポーネント数1103を増加する指示を受け取ったら(S1413でYes)、送信先コンポーネント数1103を1つインクリメントして(S1414)、S1405の処理に戻る。ここで、第3実施形態では送信先コンポーネント数1103増加の指示は、受信コンポーネント102、103からされるものと想定している。このように、受信コンポーネントに応じて送信先コンポーネント数1103変更の指示を行うことにより、あらかじめ参入を想定されていなかった受信コンポーネントへのメッセージ配信を可能としている。
送信先コンポーネント数1103が0以下になったら(S1405でNo)、メッセージ削除処理のために、タイマをスタートする(S1410)。このとき、メッセージ保持期間1105が過ぎる前に(S1412でNo)メッセージ配信指示を受け取ったら(S1411でYes)、メッセージ削除処理を終えS1408のメッセージ送信処理に移る。他方、メッセージ配信指示を受け取らずメッセージ保持期間1105が過ぎたら(S1412でYes)、メッセージ1101を削除する。
なお、メッセージ保持期間1105の変更の指示を受信コンポーネント102、103から受け付け、メッセージ保持期間1105を変更するようにしてもよい。例えば、受信コンポーネント102,103からの保持期間変更要求を要求監視部1022,1023が受信して要求応答部1017に通知する。保持期間変更要求を通知された要求応答部1017は、メッセージ管理部1013によって管理されているメッセージ保持期間1105を変更する。なお、更新の単位は、たとえば+10msとすることが挙げられる。
また、メッセージ格納部1012に保持され、メッセージ管理部1013により管理されているメッセージのうち特定のメッセージをソフトウェアコンポーネントから削除できるようにしてもよい。この場合、例えば、受信コンポーネント102,103からのメッセージIDを含む削除要求を要求監視部1022,1023が受信して要求応答部1017に通知する。削除要求を通知された要求応答部1017は、メッセージ格納部1012に保持され、メッセージ管理部1013により管理されているメッセージのうち、削除要求で指定されているメッセージIDを持つメッセージを削除する。
また、メッセージ保持期間管理部1014は、システムの起動モード毎に異なるソフトウェアコンポーネントのシステム起動時からの起床時間(遅延時間)を管理し、起動モードに応じてメッセージ保持期間を変更するようにしてもよい。なお、起動モードはユーザにより指定されるものとする。
<第4実施形態>
なお、本発明は、上記第1乃至第3の実施形態と同等の処理を、コンピュータプログラムでも実現できる。この場合、図1をはじめとする構成要素の各々は関数、もしくはCPUが実行するサブルーチンで機能させれば良い。また、通常、コンピュータプログラムは、CD−ROM等のコンピュータ可読記憶媒体に格納されており、それを、コンピュータが有する読取り装置(CD−ROMドライブ等)にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータ読み取り可能な記憶媒体も本発明の範疇にあることは明らかである。

Claims (9)

  1. 複数のソフトウェアコンポーネントと通信し、ソフトウェアコンポーネントから受け取ったメッセージを他のソフトウェアコンポーネントへ渡すメッセージ処理装置であって、
    フトウェアコンポーネントからメッセージを受信し、受信したメッセージに送信数を設定して当該受信したメッセージを保持する保持手段と、
    前記受信したメッセージと、前記送信数および保持期間を対応させて管理する管理手段と、
    他のソフトウェアコンポーネントからの配信要求に応じて、前記保持手段に保持されている前記受信したメッセージを、前記他のソフトウェアコンポーネントへ送信する送信手段と、
    前記受信したメッセージが、前記送信手段により前記管理手段により管理されている前記送信数だけ送信された後、前記保持期間にわたって新たな配信要求がない場合に、前記受信したメッセージを、前記保持手段から削除する削除手段とを備えることを特徴とするメッセージ処理装置。
  2. ソフトウェアコンポーネントから予約要求を受け付け、予約を行ったソフトウェアコンポーネントを登録する送信先情報管理手段を更に備え、
    前記送信手段は、更に、前記受信したメッセージの受信のタイミングで、前記送信先情報管理手段によって登録されているコンポーネントに前記受信したメッセージを送信し、
    前記削除手段は、前記受信したメッセージが、前記送信先情報管理手段に登録されている全てのコンポーネントに送信され、かつ、前記管理手段により管理されている前記送信数またはそれ以上の数の送信が行われた後、前記保持期間にわたって新たな配信要求がない場合に、前記受信したメッセージを前記保持手段と前記管理手段から削除することを特徴とする請求項1に記載のメッセージ処理装置。
  3. 前記管理手段は、前記複数のソフトウェアコンポーネントのいずれかから前記保持期間の変更の指示に応じて、前記保持期間を変更することを特徴とする請求項1または2に記載のメッセージ処理装置。
  4. 前記管理手段は、前記複数のソフトウェアコンポーネントのいずれかから前記送信数の変更の指示を受け付け、前記送信数を変更することを特徴とする請求項1乃至3のいずれか1項に記載のメッセージ処理装置。
  5. 前記複数のソフトウェアコンポーネントのいずれかより特定のメッセージを削除する指示を受け付けると、前記保持手段と前記管理手段が前記特定のメッセージに関わる情報を削除することを特徴とする請求項1乃至4のいずれか1項に記載のメッセージ処理装置。
  6. 前記管理手段は、
    起動モード毎に、前記複数のソフトウェアコンポーネントの各々に関してシステム起動時からの遅延時間を管理し、
    起動モードに応じてメッセージ保持期間を変更することを特徴とする請求項1乃至5のいずれか1項に記載のメッセージ処理装置。
  7. 複数のソフトウェアコンポーネントと通信し、ソフトウェアコンポーネントから受け取ったメッセージを他のソフトウェアコンポーネントへ渡すメッセージ処理装置によるメッセージ処理方法であって、
    保持手段が、ソフトウェアコンポーネントからメッセージを受信し、受信したメッセージに送信数を設定して該受信したメッセージを保持する保持工程と、
    管理手段が、前記受信したメッセージと、前記送信数および保持期間を対応させて管理する管理工程と、
    送信手段が、他のソフトウェアコンポーネントからの配信要求に応じて、前記保持手段に保持されている前記受信したメッセージを、前記他のソフトウェアコンポーネントへ送信する送信工程と、
    削除手段が、前記受信したメッセージが、前記送信手段により前記管理手段により管理されている前記送信数だけ送信された後、前記保持期間にわたって新たな配信要求がない場合に、前記受信したメッセージを、前記保持手段から削除する削除工程とを有することを特徴とするメッセージ処理方法。
  8. 請求項7に記載されたメッセージ処理方法の各工程をコンピュータに実行させるためのコンピュータプログラム。
  9. 請求項7に記載されたメッセージ処理方法の各工程をコンピュータに実行させるためのコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体。
JP2010001562A 2010-01-06 2010-01-06 メッセージ処理装置およびメッセージ処理方法 Expired - Fee Related JP5610773B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010001562A JP5610773B2 (ja) 2010-01-06 2010-01-06 メッセージ処理装置およびメッセージ処理方法
US12/975,939 US8863149B2 (en) 2010-01-06 2010-12-22 Message processing apparatus and message processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010001562A JP5610773B2 (ja) 2010-01-06 2010-01-06 メッセージ処理装置およびメッセージ処理方法

Publications (2)

Publication Number Publication Date
JP2011141695A JP2011141695A (ja) 2011-07-21
JP5610773B2 true JP5610773B2 (ja) 2014-10-22

Family

ID=44225474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010001562A Expired - Fee Related JP5610773B2 (ja) 2010-01-06 2010-01-06 メッセージ処理装置およびメッセージ処理方法

Country Status (2)

Country Link
US (1) US8863149B2 (ja)
JP (1) JP5610773B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5667097B2 (ja) * 2012-01-24 2015-02-12 日本電信電話株式会社 通信装置、通信方法、及び通信プログラム
RU2670794C9 (ru) * 2013-05-20 2018-11-26 ПЭКСАЙЗ ЭлЭлСи Способ и система формирования гибкого узла на локальных или распределенных вычислительных системах
JP7335502B2 (ja) 2019-10-07 2023-08-30 富士通株式会社 情報処理システム、情報処理方法および情報処理プログラム
CN112882987A (zh) * 2021-03-12 2021-06-01 北京小米移动软件有限公司 多核通信方法、装置、电子设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870605A (en) * 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
US6704785B1 (en) * 1997-03-17 2004-03-09 Vitria Technology, Inc. Event driven communication system
JPH11232126A (ja) * 1998-02-16 1999-08-27 Nippon Telegr & Teleph Corp <Ntt> イベント通知方法及びノティフィケーションネットワーク
JP3732671B2 (ja) 1999-03-04 2006-01-05 株式会社東芝 送信装置、送信方法、及び送信用ソフトウェアを記録した記録媒体
US6970945B1 (en) * 1999-11-01 2005-11-29 Seebeyond Technology Corporation Systems and methods of message queuing
US7188142B2 (en) * 2000-11-30 2007-03-06 Applied Materials, Inc. Dynamic subject information generation in message services of distributed object systems in a semiconductor assembly line facility
WO2005053222A2 (en) * 2003-11-25 2005-06-09 International Business Machines Corporation Mobile hub and managing events in a mobile hub
US7801857B2 (en) * 2003-12-19 2010-09-21 Solace Systems, Inc. Implicit routing in content based networks
US7519669B2 (en) * 2004-04-30 2009-04-14 Sap Aktiengesellschaft Prioritizing producers and consumers of an enterprise messaging system
GB0425355D0 (en) * 2004-11-18 2004-12-22 Ibm Publishing documents in a publish subscribe data processing system
US7865684B2 (en) * 2005-06-27 2011-01-04 Ab Initio Technology Llc Managing message queues
JP2008124977A (ja) 2006-11-15 2008-05-29 Hitachi Ltd メッセージ配送方法、装置及びプログラム
GB0623917D0 (en) * 2006-11-30 2007-01-10 Ibm Method, apparatus and computer program for controlling retention of publications
CN101222449A (zh) * 2007-01-10 2008-07-16 国际商业机器公司 发布/订阅系统和方法
US8135594B2 (en) * 2008-01-16 2012-03-13 International Business Machines Corporation Limiting proxy subscription propagation in a publish/subscribe message broker network
US8291025B2 (en) * 2009-10-23 2012-10-16 International Business Machines Corporation Controlling retention of publication

Also Published As

Publication number Publication date
JP2011141695A (ja) 2011-07-21
US8863149B2 (en) 2014-10-14
US20110167429A1 (en) 2011-07-07

Similar Documents

Publication Publication Date Title
US10389674B2 (en) Systems and methods for storing and transferring message data
KR102004160B1 (ko) 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법
US10341196B2 (en) Reliably updating a messaging system
Souto et al. A message-oriented middleware for sensor networks
US10904303B2 (en) Control message from streaming source to facilitate scaling
US20180091612A1 (en) Systems and methods for providing messages to multiple subscribers
US20070294626A1 (en) Controlling application sharing
JP2018531465A (ja) メッセージデータを格納するためのシステム及び方法
JP2018532201A (ja) メッセージデータを転送するためのシステム及び方法
CN108390950A (zh) 一种消息推送方法、装置及设备
JP2011170572A (ja) メッセージ配信システム及びメッセージ配信方法
JP5610773B2 (ja) メッセージ処理装置およびメッセージ処理方法
CN115865874A (zh) 一种会议消息推送方法、会议服务端及电子设备
JP3462064B2 (ja) 分散シミュレーションシステム
JP7031198B2 (ja) 情報処理システム及びプログラム
JP2011182115A (ja) 通信方法、通信システム及びサーバ
US20100250684A1 (en) High availability method and apparatus for shared resources
CN108337285B (zh) 一种通信系统及通信方法
JP2019532399A (ja) スケーラブルメッセージングシステムにおけるデータ複製
WO2014203728A1 (ja) メッセージ制御システム、メッセージ制御装置、メッセージ制御方法及びプログラム
JP7052269B2 (ja) 情報処理システム及びプログラム
JP4647511B2 (ja) 非同期メッセージ処理システム及び非同期メッセージ処理プログラム
CN114172945B (zh) 一种模拟实现全双工即时通信方法与设备
WO2023238284A1 (ja) 管理システム、管理方法、及び、管理プログラム
WO2023187985A1 (ja) データ取得管理装置、データ取得管理システム、データ取得管理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140710

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: 20140804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140902

R151 Written notification of patent or utility model registration

Ref document number: 5610773

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees