JP6413817B2 - 会話管理システム、会話管理方法及び会話管理プログラム - Google Patents

会話管理システム、会話管理方法及び会話管理プログラム Download PDF

Info

Publication number
JP6413817B2
JP6413817B2 JP2015023653A JP2015023653A JP6413817B2 JP 6413817 B2 JP6413817 B2 JP 6413817B2 JP 2015023653 A JP2015023653 A JP 2015023653A JP 2015023653 A JP2015023653 A JP 2015023653A JP 6413817 B2 JP6413817 B2 JP 6413817B2
Authority
JP
Japan
Prior art keywords
computer
conversation
communication
management
communication process
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.)
Active
Application number
JP2015023653A
Other languages
English (en)
Other versions
JP2016146139A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015023653A priority Critical patent/JP6413817B2/ja
Publication of JP2016146139A publication Critical patent/JP2016146139A/ja
Application granted granted Critical
Publication of JP6413817B2 publication Critical patent/JP6413817B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephonic Communication Services (AREA)
  • Multi Processors (AREA)

Description

本発明は、会話管理システム、会話管理方法及び会話管理プログラムに関する。
従来、共有メモリを用いた同期型アプリ間通信では、アプリが会話ID単位に送信プロセスと受信プロセスを事前に生成し、共有メモリにデータを書き込み後に送信プロセスが受信プロセスにデータの書き込みを通知することによりアプリ間通信が実現されていた。ここで、アプリとはコンピュータで実行されるアプリケーションであり、同期型とは送信側と受信側で同期をとることである。また、会話IDとは、会話を識別する識別子である。
図16は、共有メモリを用いた同期型アプリ間通信を説明するための図である。図16に示すように、共有メモリ2を用いたアプリ間通信を行う場合、まず、データを送信する送信アプリが送信プロセス8を生成し、データを受信する受信アプリが受信プロセス9を生成する(1)。図16では、アプリA及びアプリBがデータを送信するアプリであり、アプリC及びアプリDがデータを受信するアプリである。
アプリAはシステムAで実行され、アプリBはシステムBで実行され、アプリC及びアプリDはシステムCで実行される。ここで、システムA、システムB及びシステムCは、CPU(Central Processing Unit)及びメモリを有するコンピュータシステムである。図16では、会話ID#1及び会話ID#2それぞれに対して送信プロセス8と受信プロセス9が生成される。
そして、受信プロセス9は、会話データの通知をタイムリーに受けるために、WAITにより事象待ちを行う(2)。図16では、アプリC及びアプリDの受信プロセス9がWAITにより事象待ちを行う。そして、送信プロセス8は、共有メモリ2に会話データ2dを書き込んだ(WRITE)後、受信プロセス9にPOSTにより会話データ2dの送信を通知する(3)。図16では、アプリA及びアプリBの送信プロセス8がそれぞれ共有メモリ2に会話データ2dを書き込んだ後アプリC及びアプリDの受信プロセス9にPOSTにより会話データ2dの送信を通知する。
そして、送信プロセス8のPOSTによりWAIT解除された受信プロセス9は、共有メモリ2より会話データ2dを読み込む(READ)(4)。図16では、アプリC及びアプリDの受信プロセス9が、それぞれWAITを解除され会話データ2dを共有メモリ2から読み込む。
なお、送信側プロセスの転送手段がデータを共有メモリ上の受け渡し手段に渡し、転送通知手段が送信キューに転送通知をキューインし、受信側プロセスの転送通知受理手段にキューインしたことを通知することでプロセス間通信を実現する技術がある。
また、CPU間通信において、通信用メモリに空き領域がなく、受信側CPUの状態がデータ読み出し処理の実行状態でない場合、送信側CPUがデータ読み出し処理の実行を開始させるための要求を受信側CPUに送信することで、遅延時間を短縮する技術がある。
特開平11−24945号公報 特開2012−3673号公報
しかしながら、図16に示した従来技術には、通信多重度の数だけ受信プロセスを事前に生成する必要があり、通信多重度が変化する場合には、常に最大個数の受信プロセスが生成されるため、システム資源が有効に活用されないという問題がある。
本発明は、1つの側面では、通信多重度に応じた受信プロセスを生成することでシステム資源を有効活用することを目的とする。
本願の開示する会話管理システムは、1つの態様において、第1のコンピュータと第2のコンピュータとの間の会話を実現する。前記第1のコンピュータ、前記第2のコンピュータ又は第3のコンピュータは該第1のコンピュータで動作するアプリから会話の開始要求を受けると該会話に係る通信プロセスと通信資源の生成を該第1のコンピュータで動作する第1の管理サブプロセスに指示する。前記第3のコンピュータは、前記第1のコンピュータ及び前記第2のコンピュータに接続する。また、前記第1のコンピュータ、又は前記第2のコンピュータ、又は前記第3のコンピュータは、前記第2のコンピュータで動作する第2の管理サブプロセスに同様の指示を行う。前記第1のコンピュータ、又は前記第2のコンピュータ、又は前記第3のコンピュータは、処理を前記会話を管理する管理メインプロセス上で実行する。前記第1のコンピュータは、第1の通信プロセスを生成し、前記会話のための通信資源を生成する処理を前記第1の管理サブプロセス上で実行する。前記第2のコンピュータは、第2の通信プロセスを生成し、前記通信資源を生成する処理を前記第2の管理サブプロセス上で実行する。前記第1のコンピュータは、前記第1のコンピュータ及び前記第2コンピュータからアクセスできる記憶部へのデータの書き込みの通知を前記通信資源を用いて前記第2の通信プロセスへ送信する処理を前記第1の通信プロセス上で実行する。前記第2のコンピュータは、前記記憶部へのデータの書き込みの通知を前記通信資源を用いて前記第1の通信プロセスから受信する処理を前記第2の通信プロセス上で実行する。
1実施態様によれば、システム資源を有効活用することができる。
図1は、実施例に係る会話管理システムを説明するための図である。 図2は、実施例に係る会話管理システムの構成を示す図である。 図3は、アプリ管理テーブルの一例を示す図である。 図4は、第1ID管理テーブルの一例を示す図である。 図5は、第2ID管理テーブルの一例を示す図である。 図6は、会話管理システムの処理のフローを示す図である。 図7は、管理用メインプロセスによる登録処理のフローを示すフローチャートである。 図8は、管理用メインプロセスによる抹消処理のフローを示すフローチャートである。 図9は、管理用メインプロセスによる会話開始処理のフローを示すフローチャートである。 図10は、管理用メインプロセスによる会話終了処理のフローを示すフローチャートである。 図11は、管理用サブプロセスによる生成処理のフローを示すフローチャートである。 図12は、管理用サブプロセスによる削除処理のフローを示すフローチャートである。 図13は、送信アプリによる送信処理のフローを示すフローチャートである。 図14は、受信アプリによる受信処理のフローを示すフローチャートである。 図15は、システムのハードウェア構成例を示す図である。 図16は、共有メモリを用いた同期型アプリ間通信を説明するための図である。
以下に、本願の開示する会話管理システム、会話管理方法及び会話管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る会話管理システムについて説明する。図1は、実施例に係る会話管理システムを説明するための図である。図1に示すように、実施例に係る会話管理システムでは、共有メモリ2を用いて通信を行う各アプリ30がシステム1間でユニークにアプリを識別するアプリIDを登録するように管理用メインプロセス10に依頼する(1)。
管理用メインプロセス10は、会話を管理するプロセスであり、会話毎に会話IDを管理する。図1では、会話データ2dを送信するアプリA及びアプリBと、会話データ2dを受信するアプリCがアプリIDの登録を管理用メインプロセス10に依頼する。なお、アプリAはシステムAで実行され、アプリBはシステムBで実行され、アプリC及びアプリDはシステムCで実行される。システムA、システムB及びシステムCで表されるシステム1は、CPU及びメモリを有するコンピュータシステムである。
そして、会話データ2dを送信するアプリ30が会話開始を管理用メインプロセス10に要求する。図1では、アプリA及びアプリBがアプリCに対する会話開始を管理メインプロセス10に要求する(2)。そして、管理用メインプロセス10が会話IDを採番して、会話IDが採番された送信アプリ30及び受信アプリ30に対する通信プロセス31を動的に生成し、同時に通信資源を開設する(3)。ここで、通信資源は、具体的にはソケットである。
図1では、アプリAとアプリCの会話について会話ID#1が採番され、アプリBとアプリCの会話について会話ID#2が採番される。また、アプリAに送信用の通信プロセスAが生成され、アプリBに送信用の通信プロセスBが生成され、アプリCに受信用の通信プロセスC及び通信プロセスDが生成される。
そして、送信側の通信プロセス31が、共有メモリ2上に会話データ2dを書き込んだ後、通信資源を利用して受信側の通信プロセス31に会話データ2dの書き込みを通知する(4)。図1では、送信側の通信プロセスA及び通信プロセスBがそれぞれ共有メモリ2上に会話データ2dを書き込んだ後、通信資源を利用して受信側の通信プロセスC及び通信プロセスDに通知する。
そして、受信側の通信プロセス31が、通信資源により送信側の通信プロセス31からの通知を受けて共有メモリ2から会話データ2dを読み込む(5)。図1では、通信プロセスC及び通信プロセスDがそれぞれ通信プロセスA及び通信プロセスBから通知を受けて共有メモリ2から会話データ2dを読み込む。
そして、送信側の通信プロセス31から会話終了通知により会話IDが返却されると、管理用メインプロセス10は、該当の通信プロセス31を削除して通信資源を閉塞する(6)。図1では、通信プロセスA、通信プロセスB、通信プロセスC及び通信プロセスDが削除され、会話ID#1用の通信資源及び会話ID#2用の通信資源が閉塞される。
このように、管理用メインプロセス10は、通信開始時に送信側アプリ30及び受信側アプリ30に通信プロセス31を生成し、通信終了時に通信プロセス31を削除する。また、管理用メインプロセス10は、会話毎に通信開始時に通信資源を開設し、通信終了時に通信資源を閉塞する。
したがって、実施例に係る会話管理システムは、予め固定数の受信プロセスを生成する必要がなく、システム資源を有効に利用することができる。また、アプリ30は、通信プロセス31の生成及び削除、通信資源の開設及び閉塞を行う必要がなく、簡単に共有メモリ2を用いたプロセス間通信を実行することができる。
次に、実施例に係る会話管理システムの構成について説明する。図2は、実施例に係る会話管理システムの構成を示す図である。図2に示すように、会話管理システムは、共有メモリ2と、2つのアプリ30と、管理用メインプロセス10と、2つの管理用サブプロセス20とを有する。
共有メモリ2は、異なるCPUで動作するアプリ30間で送受信される会話データ2dを記憶する記憶装置である。2つのアプリ30は、共有メモリ2を用いて通信を行う送信側と受信側のアプリケーションである。図1では、2つのアプリ30は、送信側がアプリaで表され、受信側がアプリbで表される。アプリaはシステムaで実行され、アプリbはシステムbで実行される。システムa及びシステムbは、CPU及びメモリを有するコンピュータシステムである。
管理用メインプロセス10は、共有メモリ2を用いたアプリ30間の会話を管理するプロセスである。管理用メインプロセス10は、システムaで動作してもよく、システムbで動作してもよい。あるいは、管理用メインプロセス10は、システムa及びシステムbを含む情報処理システムの他のシステム1で動作してもよい。
管理用メインプロセス10は、登録処理11、会話開始処理12、会話終了処理13及び抹消処理14を行う。また、共有メモリ2は、アプリ管理テーブル2a、第1ID管理テーブル2b及び第2ID管理テーブル2cを記憶する。
登録処理11は、アプリ30からの依頼によりアプリ30をアプリ管理テーブル2aに登録する。アプリ管理テーブル2aは、アプリ30が登録されるテーブルである。図3は、アプリ管理テーブル2aの一例を示す図である。図3に示すように、アプリ管理テーブル2aには、アプリ名と所在システム名がアプリ毎に登録される。アプリ名は、アプリ30を識別する名前である。所在システム名は、アプリ30が実行されるシステム1を識別する名前である。例えば、アプリaは、システムaで実行される。
会話開始処理12は、送信アプリ30から会話開始依頼を受けると、第1ID管理テーブル2bを用いて会話IDを貸し出すと同時に、通信プロセス31の生成及びソケット40の開設を送信側及び受信側の管理用サブプロセス20に指示する。第1ID管理テーブル2bは、会話IDの管理に用いられるテーブルである。
図4は、第1ID管理テーブル2bの一例を示す図である。図4に示すように、第1ID管理テーブル2bには、会話IDと、送信アプリ名と、受信アプリ名とが会話毎に登録される。会話IDは、会話を識別する識別子である。送信アプリ名は、送信アプリ30を識別する名前である。受信アプリ名は、受信アプリ30を識別する名前である。例えば、会話ID#1で識別される会話は、アプリaからアプリbへ会話データ2dが送られる。
会話終了処理13は、送信アプリ30から会話終了依頼を受けると、第1ID管理テーブル2bから該当するエントリを削除すると同時に、通信プロセス31の削除及びソケット40の閉塞を送信側及び受信側の管理用サブプロセス20に指示する。
抹消処理14は、アプリ30からの依頼によりアプリ30をアプリ管理テーブル2aから抹消する。
2つの管理用サブプロセス20は、管理用メインプロセス10の指示に基づいてそれぞれ送信側及び受信側で会話に必要な処理を行うプロセスである。管理用サブプロセス20は、会話を行う2つのアプリ30と同じシステム1で動作する。図2では、システムaで送信側の管理用サブプロセス20が動作し、システムbで受信側の管理用サブプロセス20が動作する。
管理用サブプロセス20は、生成処理21及び削除処理22を行う。生成処理21は、管理用メインプロセス10の指示に基づいて、アプリ30内に通信プロセス31を生成し、アプリ30が使用するソケット40を開設する。また、登録処理21は、生成した通信プロセス31及び開設したソケット40に関する情報を第2ID管理テーブル2cに登録する。
第2ID管理テーブル2cは、管理用サブプロセス20が会話の管理に用いるテーブルである。図5は、第2ID管理テーブル2cの一例を示す図である。図5に示すように、第2ID管理テーブル2cには、会話IDと、送信側のプロセスIDと、受信側のプロセスIDと、送信側のソケットIDと、受信側のソケットIDとが登録される。
会話IDは、会話を識別する識別子である。送信側のプロセスIDは、送信アプリ30内に生成された通信プロセス31を識別する識別子である。受信側のプロセスIDは、受信アプリ30内に生成された通信プロセス31を識別する識別子である。送信側のソケットIDは、送信側に開設されたソケット40を識別する識別子である。受信側のソケットIDは、受信側に開設されたソケット40を識別する識別子である。
削除処理22は、管理用メインプロセス10の指示に基づいて、第2ID管理テーブル2cから該当するエントリを削除すると同時に、通信プロセス31の削除及びソケット40の閉塞を行う。
次に、会話管理システムの処理のフローについて説明する。図6は、会話管理システムの処理のフローを示す図である。図6に示すように、送信側のアプリa及び受信側のアプリbは、アプリ名とシステム名を指定して登録依頼を管理用メインプロセス10に行う(ステップS1)。すると、管理用メインプロセス10は、アプリ名とシステム名をアプリ管理テーブル2aに登録する(ステップS2)。
その後、送信側のアプリaが送信アプリ名と受信アプリ名とを指定して会話開始依頼を管理用メインプロセス10に行う(ステップS3)。すると、管理用メインプロセス10は、第1ID管理テーブル2bを用いて会話IDを貸し出すと同時に、通信プロセス31の生成及びソケット40の開設を送信側及び受信側の管理用サブプロセス20に指示する(ステップS4)。
すると、送信側及び受信側の管理用サブプロセス20は、それぞれ通信プロセス31を生成し、ソケット40を開設する(ステップS5)。そして、送信側の通信プロセス31が、会話データ2dを共有メモリ2に書き込み、ソケット40を利用して会話データ2dの送信を受信側の通信プロセス31に通知する(ステップS6)。
すると、受信側の通信プロセス31が、ソケット40を利用して通知を受信し、会話データ2dを共有メモリ2から読み込む(ステップS7)。そして、送信側の通信プロセス31が会話終了依頼を管理用メインプロセス10に行う(ステップS8)。
すると、管理用メインプロセス10は、終了する会話に対応するエントリを第1ID管理テーブル2bから削除し、通信プロセス31の削除とソケット40の閉塞を送信側と受信側の管理用サブプロセス20に指示する(ステップS9)。すると、送信側と受信側の管理用サブプロセス20が通信プロセス31の削除とソケット40の閉塞を行う(ステップS10)。
このように、管理用メインプロセス10が通信プロセス31の生成及び削除とソケット40の開設及び閉塞を行うことによって、会話管理システムは、システム1の資源を有効に利用することができる。
次に、管理用メインプロセス10による処理のフローを図7〜図10を用いて説明する。まず、管理用メインプロセス10による登録処理11のフローについて説明する。図7は、管理用メインプロセス10による登録処理11のフローを示すフローチャートである。なお、登録処理11では、管理用メインプロセス10は、アプリ名と所在システム名を受け取って処理を行う。
図7に示すように、管理用メインプロセス10は、アプリ名と所在システム名からアプリ管理テーブル2aを検索する(ステップS11)。そして、管理用メインプロセス10は、アプリ管理テーブル2aにアプリ名と所在システム名の登録があるか否かを判定し(ステップS12)、登録がある場合には、処理を終了する。一方、登録がない場合には、管理用メインプロセス10は、アプリ管理テーブル2aにアプリ名と所在システム名を登録する(ステップS13)。
このように、管理用メインプロセス10は、アプリ名と所在システム名をアプリ管理テーブル2aに登録することによって、会話を行うアプリ30を管理することができる。
次に、管理用メインプロセス10による抹消処理14のフローについて説明する。図8は、管理用メインプロセス10による抹消処理14のフローを示すフローチャートである。なお、抹消処理14では、管理用メインプロセス10は、アプリ名と所在システム名を受け取って処理を行う。
図8に示すように、管理用メインプロセス10は、アプリ名と所在システム名からアプリ管理テーブル2aを検索する(ステップS21)。そして、管理用メインプロセス10は、アプリ管理テーブル2aにアプリ名と所在システム名の登録があるか否かを判定し(ステップS22)、登録がない場合には、処理を終了する。一方、登録がある場合には、管理用メインプロセス10は、アプリ管理テーブル2aからアプリ名と所在システム名を抹消する(ステップS23)。
このように、管理用メインプロセス10は、アプリ名と所在システム名をアプリ管理テーブル2aから抹消することによって、管理が不要になったアプリ30に関する情報をアプリ管理テーブル2aから削除することができる。
次に、管理用メインプロセス10による会話開始処理12のフローについて説明する。図9は、管理用メインプロセス10による会話開始処理12のフローを示すフローチャートである。なお、会話開始処理12では、管理用メインプロセス10は、送信アプリ名及び受信アプリ名を受け取って処理を行う。
図9に示すように、管理用メインプロセス10は、送信アプリ30及び受信アプリ30はアプリ管理テーブル2aに登録済かをチェックする(ステップS31)。そして、管理用メインプロセス10は、登録済か否かを判定し(ステップS32)、登録済でない場合には、管理用メインプロセス10は、処理を終了する。
一方、登録済の場合には、管理用メインプロセス10は、第1ID管理テーブル2bから空き会話IDを取得し(ステップS33)、取得した会話IDに対応付けて第1ID管理テーブル2bに送信アプリ名及び受信アプリ名を設定する(ステップS34)。
そして、管理用メインプロセス10は、送信側及び受信側の管理用サブプロセス20に会話IDを通知した上で、通信プロセス31の生成及びソケット40の開設を要求する(ステップS35)。
このように、管理用メインプロセス10は、会話開始時に管理用サブプロセス20に通信プロセス31の生成及びソケット40の開設を要求することで、会話で必要になった時にシステム資源を確保することができる。
次に、管理用メインプロセス10による会話終了処理13のフローについて説明する。図10は、管理用メインプロセス10による会話終了処理13のフローを示すフローチャートである。なお、会話終了処理13では、管理用メインプロセス10は、会話IDを受け取って処理を行う。
図10に示すように、管理用メインプロセス10は、第1ID管理テーブル2bを参照して会話中の会話IDかをチェックする(ステップS41)。そして、管理用メインプロセス10は、会話中か否かを判定し(ステップS42)、会話中でない場合には、処理を終了する。
一方、会話中である場合には、管理用メインプロセス10は、第1ID管理テーブル2bの該当会話IDを空き状態に設定する(ステップS43)。すなわち、管理用メインプロセス10は、第1ID管理テーブル2bで該当会話IDに対応付けられた送信アプリ名及び受信アプリ名を「空き」に設定する。
そして、管理用メインプロセス10は、送信アプリ30及び受信アプリ30内の通信プロセス31の削除及びソケット40の閉塞を送信側及び受信側の管理用サブプロセス20に要求する(ステップS44)。
このように、会話が終了すると、管理用メインプロセス10は、管理用サブプロセス20に通信プロセス31の削除及びソケット40の閉塞を要求することで、不必要になったシステム資源を解放することができる。
次に、管理用サブプロセス20による処理のフローを図11及び図12を用いて説明する。まず、管理用サブプロセス20による生成処理21のフローについて説明する。図11は、管理用サブプロセス20による生成処理21のフローを示すフローチャートである。なお、生成処理21では、管理用サブプロセス20は、自アプリ名、相手アプリ名及び会話IDを受け取って処理を行う。
図11に示すように、管理用サブプロセス20は、自アプリ30内に通信プロセス31を生成する(ステップS51)。そして、管理用サブプロセス20は、通信プロセス31の生成はOKか否かを判定し(ステップS52)、OKでない場合には、処理を終了し、通信プロセス31の生成の失敗を管理用メインプロセス10に通知する。
一方、通信プロセス31の生成がOKである場合には、管理用サブプロセス20は、通信プロセス31の生成で取得したプロセスIDを第2ID管理テーブル2cに格納する(ステップS53)。そして、管理用サブプロセス20は、相手アプリ30に対するソケット40の開設を通信プロセス31に指示する(ステップS54)。
そして、管理用サブプロセス20は、ソケットIDを第2ID管理テーブル2cに設定する(ステップS55)。ここで、ソケットIDは、通信プロセス31からの復帰値である。
このように、管理用サブプロセス20が、管理用メインプロセス10の指示に基づいて通信プロセス31の生成とソケット40の開設を行うことで、会話管理システムは、システム資源を必要なときにだけ取得することができる。
次に、管理用サブプロセス20による削除処理22のフローについて説明する。図12は、管理用サブプロセス20による削除処理22のフローを示すフローチャートである。なお、削除処理22では、管理用サブプロセス20は、自アプリ名及び会話IDを受け取って処理を行う。
図12に示すように、管理用サブプロセス20は、会話IDから特定した通信プロセス31に対してソケット40の閉塞を指示する(ステップS61)。そして、管理用サブプロセス20は、第2ID管理テーブル2c内のソケットIDをクリアする(ステップS62)。
そして、管理用サブプロセス20は、通信プロセス31を削除し(ステップS63)、第2ID管理テーブル2c内のプロセスIDをクリアする(ステップS64)。
このように、管理用サブプロセス20が、管理用メインプロセス10の指示に基づいて通信プロセス31の削除とソケット40の閉塞を行うことで、会話管理システムは、不要になったシステム資源を解放することができる。
次に、アプリ30による処理のフローを図13及び図14を用いて説明する。まず、送信アプリ30による送信処理のフローについて説明する。図13は、送信アプリ30による送信処理のフローを示すフローチャートである。なお、送信処理では、送信アプリ30は、管理用サブプロセス20から会話ID及びソケットIDを受け取って処理を行う。
図13に示すように、送信アプリ30は、共有メモリ2上の領域を獲得する(ステップS71)。このとき、送信アプリ30は、獲得した領域を識別するセグメントIDを取得する。そして、送信アプリ30は、共有メモリ2上に獲得した領域に会話データ2dを格納する(ステップS72)。
そして、送信アプリ30は、管理用サブプロセス20からIDを通知されたソケット40を利用して受信アプリ30に共有メモリ2上のセグメントIDと会話データ2dのサイズを通知する(ステップS73)。
このように、送信アプリ30がソケット40を利用して受信アプリ30に共有メモリ2上のセグメントIDと会話データ2dのサイズを通知することで、受信アプリ30は共有メモリ2から会話データ2dを読み出すことができる。
次に、受信アプリ30による受信処理のフローについて説明する。図14は、受信アプリ30による受信処理のフローを示すフローチャートである。なお、受信処理では、受信アプリ30は、管理用サブプロセス20から会話ID及びソケットIDを受け取り、送信アプリ30からセグメントID及び会話データ2dのサイズを受け取って処理を行う。
図14に示すように、受信アプリ30は、共有メモリ2上の領域を、通知されたセグメントIDによりアタッチする(ステップS81)。そして、受信アプリ30は、共有メモリ2上の領域から、通知されたデータサイズ分のデータを取り出す(ステップS82)。
このように、受信アプリ30は、セグメントID及び会話データ2dのサイズを送信アプリ30から受け取ることで、共有メモリ2から会話データ2dを読み出すことができる。
次に、システム1のハードウェア構成について説明する。図15は、システム1のハードウェア構成例を示す図である。図15に示すように、システム1は、RAM51と、CPU52と、HDD53と、LANインタフェース54と、入出力インタフェース55と、DVDドライブ56とを有する。
RAM51は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、CPU52は、RAM51からプログラムを読み出して実行する中央処理装置である。HDD53は、プログラムやデータを格納するディスク装置であり、LANインタフェース54は、システム1をLAN経由で他のシステム1に接続するためのインタフェースである。入出力インタフェース55は、マウスやキーボードなどの入力装置及び表示装置を接続するためのインタフェースであり、DVDドライブ56は、DVDの読み書きを行う装置である。
そして、システム1において実行される会話管理プログラムは、DVDに記憶され、DVDドライブ56によってDVDから読み出されてシステム1にインストールされる。ここで、会話管理プログラムとは、図2に示した管理用メインプロセス10及び管理用サブプロセス20として実行されるプログラムである。
あるいは、会話管理プログラムは、LANインタフェース54を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてシステム1にインストールされる。そして、インストールされた会話管理プログラムは、HDD53に記憶され、RAM51に読み出されてCPU52によって実行される。
上述してきたように、実施例では、管理用メインプロセス10が送信側及び受信側の管理用サブプロセス20に対して通信プロセス31の生成及びソケット40の開設を指示し、管理用サブプロセス20が通信プロセス31の生成及びソケット40の開設を行う。そして、送信側の通信プロセス31がソケット40を用いて共有メモリ2への会話データ2dの書き込みを通知し、受信側の通信プロセス31がソケット40を用いて通知を受信する。したがって、会話管理システムは、システム資源を必要なときに獲得するので、システム資源を有効に活用することができる。
また、実施例では、送信側及び受信側の管理用サブプロセス20は、生成した通信プロセス31のID及び開設されたソケット40のIDを会話IDに対応付けて共有メモリ2に書き込む。したがって、送信側及び受信側のプロセスは、通信プロセス31のID及びソケット40のIDを共有することができる。
また、実施例では、会話が終了すると、管理用メインプロセス10が送信側及び受信側の管理用サブプロセス20に対して通信プロセス31の削除及びソケット40の閉塞を指示し、管理用サブプロセス20が通信プロセス31の削除及びソケット40の閉塞を行う。したがって、会話管理システムは、不要になったシステム資源を解放するので、システム資源を有効に活用することができる。
また、実施例では、アプリ30は、通信プロセス31の生成及び削除、ソケットの開設及び閉塞を行う必要がなく、簡単に共有メモリ2を用いたプロセス間通信を実行することができる。
なお、実施例では、管理用サブプロセス20が通信プロセス31を生成する場合について説明したが、本発明はこれに限定されるものではなく、通信プロセス31の代わりに例えば通信スレッドを生成する場合にも同様に適用することができる。
1 システム
2 共有メモリ
2a アプリ管理テーブル
2b 第1ID管理テーブル
2c 第2ID管理テーブル
2d 会話データ
8 送信プロセス
9 受信プロセス
10 管理用メインプロセス
11 登録処理
12 会話開始処理
13 会話終了処理
14 抹消処理
20 管理用サブプロセス
21 生成処理
22 削除処理
30 アプリ
31 通信プロセス
40 ソケット
51 RAM
52 CPU
53 HDD
54 LANインタフェース
55 入出力インタフェース
56 DVDドライブ

Claims (5)

  1. 第1のコンピュータと第2のコンピュータとの間の会話を実現する会話管理システムにおいて、
    前記第1のコンピュータ、又は前記第2のコンピュータ、又は該第1のコンピュータ及び該第2のコンピュータに接続する第3のコンピュータは、前記第1のコンピュータで動作するアプリから会話の開始要求を受けると、該会話に係る通信プロセスと通信資源の生成を前記第1のコンピュータで動作する第1の管理サブプロセス及び前記第2のコンピュータで動作する第2の管理サブプロセスに指示する処理を、前記会話を管理する管理メインプロセス上で実行し、
    前記第1のコンピュータは、第1の通信プロセスを生成し、前記会話のための通信資源を生成する処理を、前記第1の管理サブプロセス上で実行し、
    前記第2のコンピュータは、第2の通信プロセスを生成し、前記通信資源を生成する処理を、前記第2の管理サブプロセス上で実行し、
    前記第1のコンピュータは、前記第1のコンピュータ及び前記第2コンピュータからアクセスできる記憶部へのデータの書き込みの通知を前記通信資源を用いて前記第2の通信プロセスへ送信する処理を、前記第1の通信プロセス上で実行し、
    前記第2のコンピュータは、前記記憶部へのデータの書き込みの通知を前記通信資源を用いて前記第1の通信プロセスから受信する処理を、前記第2の通信プロセス上で実行する
    ことを特徴とする会話管理システム。
  2. 前記記憶部は、前記第1の通信プロセスを識別する第1の識別子、前記第2の通信プロセスを識別する第2の識別子、前記第1の通信プロセスが前記通信資源を識別する第3の識別子及び前記第2の通信プロセスが前記通信資源を識別する第4の識別子を、会話を識別する会話識別子に対応付けて会話毎に記憶し、
    前記第1のコンピュータは、生成した前記第1の通信プロセスの識別子及び生成した前記通信資源の識別子を前記記憶部に前記第1の識別子及び前記第3の識別子として格納する処理を、前記第の管理サブプロセス上で実行し、
    前記第2のコンピュータは、生成した前記第2の通信プロセスの識別子及び生成した前記通信資源の識別子を前記記憶部に前記第2の識別子及び前記第4の識別子として格納する処理を、前記第2の管理サブプロセス上で実行する、
    ことを特徴とする請求項1に記載の会話管理システム。
  3. 前記第1のコンピュータ、又は前記第2のコンピュータ、又は前記第3のコンピュータは、前記第1のコンピュータで動作するアプリから会話の終了通知を受けると、前記第1の通信プロセス及び前記通信資源の削除を前記第1の管理サブプロセスに指示し、前記第2の通信プロセス及び前記通信資源の削除を前記第2の管理サブプロセスに指示する処理を前記管理メインプロセス上で実行し、
    前記第1のコンピュータは、前記第1の通信プロセスを削除して前記第1の識別子をクリアし、前記通信資源を削除して前記第3の識別子をクリアする処理を前記第1の管理サブプロセス上で実行し、
    前記第2のコンピュータは、前記第2の通信プロセスを削除して前記第2の識別子をクリアし、前記通信資源を削除して前記第4の識別子をクリアする処理を前記第2の管理サブプロセス上で実行する
    ことを特徴とする請求項2に記載の会話管理システム。
  4. 第1のコンピュータと第2のコンピュータとの間の会話を実現する会話管理システムの会話管理方法において、
    前記第1のコンピュータ、又は前記第2のコンピュータ、又は該第1のコンピュータ及び該第2のコンピュータに接続する第3のコンピュータが、
    前記第1のコンピュータで動作するアプリから会話の開始要求を受けると、該会話に係る通信プロセスと通信資源の生成を前記第1のコンピュータで動作する第1の管理サブプロセス及び前記第2のコンピュータで動作する第2の管理サブプロセスに指示する処理を前記会話を管理する管理メインプロセス上で実行し、
    前記第1のコンピュータが、第1の通信プロセスを生成し、前記会話のための通信資源を生成する処理を前記第1の管理サブプロセス上で実行し、
    前記第2のコンピュータが、第2の通信プロセスを生成し、前記通信資源を生成する処理を前記第2の管理サブプロセス上で実行し、
    前記第1のコンピュータが、前記第1のコンピュータ及び前記第2コンピュータからアクセスできる記憶部へのデータの書き込みの通知を前記通信資源を用いて前記第2の通信プロセスへ送信する処理を前記第1の通信プロセス上で実行し、
    前記第2のコンピュータが、前記記憶部へのデータの書き込みの通知を前記通信資源を用いて前記第1の通信プロセスから受信する処理を前記第2の通信プロセス上で実行する
    ことを特徴とする会話管理方法。
  5. 第1のコンピュータと第2のコンピュータとの間の会話を実現する会話管理プログラムにおいて、
    前記会話管理プログラムに含まれ、前記会話を管理する管理メインプログラムは、
    前記第1のコンピュータで動作するアプリから会話の開始要求を受けると、該会話に係る通信プロセスと通信資源の生成を、前記会話管理プログラムに含まれ、前記第1のコンピュータで動作する第1の管理サブプログラム、及び、前記会話管理プログラムに含まれ、前記第2のコンピュータで動作する第2の管理サブプログラムに指示する処理を前記第1のコンピュータ、又は前記第2のコンピュータ、又は該第1のコンピュータ及び該第2のコンピュータに接続する第3のコンピュータで実行させ、
    前記第1の管理サブプログラムは、第1の通信プロセスを生成し、前記会話のための通信資源を生成する処理を前記第1のコンピュータで実行し、
    前記第2の管理サブプログラムは、第2の通信プロセスを生成し、前記通信資源を生成する処理を前記第2のコンピュータで実行し、
    前記第1の通信プロセスは、前記第1のコンピュータ及び前記第2コンピュータからアクセスできる記憶部へのデータの書き込みの通知を前記通信資源を用いて前記第2の通信プロセスへ送信する処理を前記第1のコンピュータで実行し、
    前記第2の通信プロセスは、前記記憶部へのデータの書き込みの通知を前記通信資源を用いて前記第1の通信プロセスから受信する処理を前記第2のコンピュータで実行する
    ことを特徴とする会話管理プログラム。
JP2015023653A 2015-02-09 2015-02-09 会話管理システム、会話管理方法及び会話管理プログラム Active JP6413817B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015023653A JP6413817B2 (ja) 2015-02-09 2015-02-09 会話管理システム、会話管理方法及び会話管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015023653A JP6413817B2 (ja) 2015-02-09 2015-02-09 会話管理システム、会話管理方法及び会話管理プログラム

Publications (2)

Publication Number Publication Date
JP2016146139A JP2016146139A (ja) 2016-08-12
JP6413817B2 true JP6413817B2 (ja) 2018-10-31

Family

ID=56686367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015023653A Active JP6413817B2 (ja) 2015-02-09 2015-02-09 会話管理システム、会話管理方法及び会話管理プログラム

Country Status (1)

Country Link
JP (1) JP6413817B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7318383B2 (ja) 2019-07-22 2023-08-01 富士通株式会社 情報処理プログラム、情報処理方法、及び情報処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124945A (ja) * 1997-06-30 1999-01-29 Nec Corp 複数プロセス間におけるデータ転送方法及び方式
KR100560752B1 (ko) * 2004-07-21 2006-03-13 삼성전자주식회사 소켓 연결 관리 시스템 및 그 소켓 연결 상태 체크 방법
JP2010165022A (ja) * 2009-01-13 2010-07-29 Ricoh Co Ltd プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体

Also Published As

Publication number Publication date
JP2016146139A (ja) 2016-08-12

Similar Documents

Publication Publication Date Title
CN106161537B (zh) 远程过程调用的处理方法、装置、系统及电子设备
CN112668386A (zh) 使用机器人过程自动化用于文档处理的长时间运行工作流
US8356305B2 (en) Thread boundaries comprising functionalities for an event by a single thread and tasks associated with the thread boundaries configured in a defined relationship
US8533334B2 (en) Message binding processing technique
JP4536817B2 (ja) エンドユーザによるワークフローの動的な再配置
US8898191B2 (en) Method for providing connections for application processes to a database server
US9535756B2 (en) Latency-hiding context management for concurrent distributed tasks in a distributed system
US20220114145A1 (en) Resource Lock Management Method And Apparatus
WO2016082549A1 (zh) 一种建立设备映射的方法及装置
JP4410608B2 (ja) Webサービス提供方法
US9537940B2 (en) Exchange of information between processing servers
JP5962493B2 (ja) プログラム、情報処理装置およびオブジェクト送信方法
US11032398B1 (en) Kernel multiplexing system of communications
JP4725955B2 (ja) 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
US8977752B2 (en) Event-based dynamic resource provisioning
JP6413817B2 (ja) 会話管理システム、会話管理方法及び会話管理プログラム
JP7305898B2 (ja) 操作応答方法、操作応答装置、電子機器及び記憶媒体
JP5884566B2 (ja) バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム
CN113076189B (zh) 具有多数据通路的数据处理系统及用多数据通路构建虚拟电子设备
CN113076180B (zh) 上行数据通路的构建方法及数据处理系统
WO2014203728A1 (ja) メッセージ制御システム、メッセージ制御装置、メッセージ制御方法及びプログラム
JP5884595B2 (ja) メッセージ通信方法,メッセージ通信プログラムおよびコンピュータ
JP5551687B2 (ja) データフローネットワーク
JP2007299319A (ja) 情報処理装置及びプロセス間通信方法
JP2017111712A (ja) 権限管理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180827

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180917

R150 Certificate of patent or registration of utility model

Ref document number: 6413817

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150