特許第5793574号(P5793574)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 騰訊科技(深▲セン▼)有限公司の特許一覧

特許5793574クロスプロセス通信のための方法および装置、ならびにコンピュータ記憶媒体
<>
  • 特許5793574-クロスプロセス通信のための方法および装置、ならびにコンピュータ記憶媒体 図000002
  • 特許5793574-クロスプロセス通信のための方法および装置、ならびにコンピュータ記憶媒体 図000003
  • 特許5793574-クロスプロセス通信のための方法および装置、ならびにコンピュータ記憶媒体 図000004
  • 特許5793574-クロスプロセス通信のための方法および装置、ならびにコンピュータ記憶媒体 図000005
  • 特許5793574-クロスプロセス通信のための方法および装置、ならびにコンピュータ記憶媒体 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5793574
(24)【登録日】2015年8月14日
(45)【発行日】2015年10月14日
(54)【発明の名称】クロスプロセス通信のための方法および装置、ならびにコンピュータ記憶媒体
(51)【国際特許分類】
   G06F 9/54 20060101AFI20150928BHJP
【FI】
   G06F9/46 480Z
【請求項の数】15
【全頁数】12
(21)【出願番号】特願2013-536988(P2013-536988)
(86)(22)【出願日】2011年10月18日
(65)【公表番号】特表2014-503867(P2014-503867A)
(43)【公表日】2014年2月13日
(86)【国際出願番号】CN2011080904
(87)【国際公開番号】WO2012059005
(87)【国際公開日】20120510
【審査請求日】2013年7月3日
(31)【優先権主張番号】201010536671.1
(32)【優先日】2010年11月5日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】513109614
【氏名又は名称】騰訊科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY(SHENZHEN)COMPANY LIMITED
(74)【代理人】
【識別番号】110000176
【氏名又は名称】一色国際特許業務法人
(72)【発明者】
【氏名】鄭,立波
(72)【発明者】
【氏名】チェン,ユィ
【審査官】 田中 幸雄
(56)【参考文献】
【文献】 国際公開第2006/061921(WO,A1)
【文献】 特開2005−292981(JP,A)
【文献】 特開2010−020650(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/54
(57)【特許請求の範囲】
【請求項1】
クロスプロセス通信のための方法であって、
コンピュータが、
複数のサービスモジュールをロード可能なプリセットコンテナプロセスをセットアップするステップと、
第1のプロセスによって送信されたクロスプロセス通信要求を受信するステップと、
前記クロスプロセス通信要求に対応したサービスモジュールを前記プリセットコンテナプロセスにロードするステップと、
前記クロスプロセス通信要求に従い前記第1のプロセスと前記プリセットコンテナプロセスとの間の通信チャネルをセットアップするステップと、
前記プリセットコンテナプロセスと前記第1のプロセスとの間で前記通信チャネルを通じてクロスプロセス通信を行うステップと
を実行し、
前記クロスプロセス通信要求に従い前記第1のプロセスで前記通信チャネルをセットアップするステップの前に、
前記第1のプロセスとの前記通信チャネルが存在するか否かを検知することと、
前記第1のプロセスとの前記通信チャネルが存在する場合に前記通信チャネルを多重化することと、
前記第1のプロセスとの前記通信チャネルが存在しない場合には前記クロスプロセス通信要求に従い前記第1のプロセスとの通信チャネルをセットアップすることと
を含むことを特徴とするクロスプロセス通信のための方法。
【請求項2】
請求項1に記載の方法であって、前記サービスモジュールがロードされた前記プリセットコンテナプロセスと前記第1のプロセスとの間で前記通信チャネルを通じて前記クロスプロセス通信を行うステップは、
前記クロスプロセス通信要求に対応した前記サービスモジュールがロードされているか否かを判断するために前記サービスモジュールのロード状態を確認することと、
ロードされていない場合には前記サービスモジュールをリロードし、前記プリセットコンテナプロセスで対話IDを生成して、前記第1のプロセスへ応答を送信すること
をさらに含む方法。
【請求項3】
請求項1に記載の方法であって、前記クロスプロセス通信要求に従い前記第1のプロセスとの通信チャネルをセットアップするステップは、
前記クロスプロセス通信に指定されたモデルを前記クロスプロセス通信要求から取得することと、
前記プリセットコンテナプロセスにて前記指定されたモデルを呼び出すことと、
前記第1のプロセスと前記プリセットコンテナプロセスとの間に前記通信チャネルをセットアップすることと
をさらに含む方法。
【請求項4】
請求項に記載の方法であって、前記クロスプロセス通信に指定されたモデルを前記クロスプロセス通信要求から取得することと、前記プリセットコンテナプロセスにて前記指定されたモデルを呼び出すステップの前に、
前記プリセットコンテナプロセスのステータスが「開放」となっているかを判断することと、
前記プリセットコンテナプロセスのステータスが開放の場合は、前記プリセットコンテナプロセスにて前記指定されたモデルを呼び出して、前記第1のプロセスと前記プリセットコンテナプロセスとの間で前記通信チャネルをセットアップするステップを実行することと、
前記プリセットコンテナプロセスが開放されていない場合は、前記プリセットコンテナプロセスを開放することと
を含む方法。
【請求項5】
請求項1に記載の方法であって、前記クロスプロセス通信は共有メモリ通信またはソケット通信である方法。
【請求項6】
第1のプロセスによって送信されたクロスプロセス通信要求を受信するように構成された受信モジュールと、
前記クロスプロセス通信要求に従い前記第1のプロセスと複数のサービスモジュールをロード可能なプリセットコンテナプロセスとの間の通信チャネルをセットアップするように構成されたチャネルセットアップモジュールと、
前記クロスプロセス通信要求に対応したサービスモジュールを前記プリセットコンテナプロセスにロードするように構成されたロードモジュールと
を備えたクロスプロセス通信のための装置であって、
前記サービスモジュールがロードされた前記プリセットコンテナプロセスが前記第1のプロセスと前記通信チャネルを通じてクロスプロセス通信を行い、
前記第1のプロセスとの前記通信チャネルが存在するか否かを検知し、
前記通信チャネルが存在する場合に前記通信チャネルを多重化して、
前記チャネルセットアップモジュールを始動して前記通信チャネルが存在しない場合には前記クロスプロセス通信要求に従い前記第1のプロセスとの通信チャネルをセットアップする、
ように構成された検知モジュールをさらに備えた、クロスプロセス通信のための装置。
【請求項7】
請求項に記載の装置であって、前記ロードモジュールはさらに、前記クロスプロセス通信要求に対応した前記サービスモジュールがロードされているか否かを判断するために前記サービスモジュールのロード状態を確認して、ロードされていない場合には前記サービスモジュールをリロードし、前記プリセットコンテナプロセスで対話IDを生成して、前記第1のプロセスに応答を送信するように構成された装置。
【請求項8】
請求項に記載の装置であって、前記チャネルセットアップモジュールがさらに
前記クロスプロセス通信に指定されたモデルを前記クロスプロセス通信要求から取得するように構成されたピックアップユニットと、
前記プリセットコンテナプロセスにて前記指定されたモデルを呼び出して、前記第1のプロセスと前記プリセットコンテナプロセスとの間に前記通信チャネルをセットアップするように構成された開放ユニットと
を備える装置。
【請求項9】
請求項に記載の装置であって、前記開放ユニットは
前記プリセットコンテナプロセスのステータスが「開放」となっているか否かを判断し、
前記プリセットコンテナプロセスのステータスが開放の場合は、前記プリセットコンテナプロセスで指定されたモデルを呼び出して、前記第1のプロセスと前記プリセットコンテナプロセスとの間で前記通信チャネルをセットアップするステップを実行して、
前記プリセットコンテナプロセスが開放されていない場合は、前記プリセットコンテナプロセスを開放する
ように構成されている装置。
【請求項10】
請求項に記載の装置であって、前記クロスプロセス通信は共有メモリ通信またはソケット通信である装置。
【請求項11】
コンピュータ実行可能な命令を記録するコンピュータ記録媒体であって、前記コンピュータ実行可能な命令はコンピュータに、
複数のサービスモジュールをロード可能なプリセットコンテナプロセスをセットアップするステップと、
第1のプロセスによって送信されたクロスプロセス通信要求を受信するステップと、
前記クロスプロセス通信要求に対応したサービスモジュールを前記プリセットコンテナプロセスにロードするステップと、
前記クロスプロセス通信要求に従い前記第1のプロセスと前記プリセットコンテナプロセスとの間の通信チャネルをセットアップするステップと、
前記プリセットコンテナプロセスと前記第1のプロセスとの間で前記通信チャネルを通じてクロスプロセス通信を行うステップと
を実行させるための命令であり、
前記クロスプロセス通信要求に従い前記第1のプロセスとの前記通信チャネルをセットアップするステップの前に、
前記第1のプロセスとの前記通信チャネルが存在するか否かを検知することと、
前記第1のプロセスとの前記通信チャネルが存在する場合に前記通信チャネルを多重化することと、
前記第1のプロセスとの前記通信チャネルが存在しない場合には前記クロスプロセス通信要求に従い前記第1のプロセスとの通信チャネルをセットアップすることと
を含む、コンピュータ記憶媒体。
【請求項12】
請求項11に記載のコンピュータ記憶媒体であって、前記サービスモジュールがロードされた前記プリセットコンテナプロセスと前記第1のプロセスとの間で前記通信チャネルを通じて前記クロスプロセス通信を行うステップは、
前記クロスプロセス通信要求に対応した前記サービスモジュールがロードされているか否かを判断するために、前記サービスモジュールのロード状態を確認することと、
ロードされていない場合に前記サービスモジュールをリロードし、前記プリセットコンテナプロセスで対話IDを生成して、前記第1のプロセスへ応答を送信すること
をさらに含む、コンピュータ記憶媒体。
【請求項13】
請求項11に記載のコンピュータ記憶媒体であって、前記クロスプロセス通信要求により前記第1のプロセスとの通信チャネルをセットアップするステップは、
前記クロスプロセス通信に指定されたモデルを前記クロスプロセス通信要求から取得することと、
前記プリセットコンテナプロセスにて前記指定されたモデルを呼び出すことと、
前記第1のプロセスと前記プリセットコンテナプロセスとの間に前記通信チャネルをセットアップすることと
をさらに含む、コンピュータ記憶媒体。
【請求項14】
請求項13に記載のコンピュータ記憶媒体であって、前記クロスプロセス通信に指定されたモデルを前記クロスプロセス通信要求から取得することと、前記プリセットコンテナプロセスで前記指定されたモデルを呼び出すステップの前に、
前記プリセットコンテナプロセスのステータスが「開放」となっているかを判断することと、
前記プリセットコンテナプロセスのステータスが開放の場合は、前記プリセットコンテナプロセスにて前記指定されたモデルを呼び出して、前記第1のプロセスと前記プリセットコンテナプロセスとの間で前記通信チャネルをセットアップするステップを実行することと、
前記プリセットコンテナプロセスが開放されていない場合は、前記プリセットコンテナプロセスを開放することと
を含む、コンピュータ記憶媒体。
【請求項15】
請求項11に記載のコンピュータ記憶媒体であって、前記クロスプロセス通信は共有メモリ通信またはソケット通信であるコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に通信技術分野に関する。特に、本発明は、クロスプロセス通信のための方法および装置、ならびにコンピュータ記憶媒体に関する。
【背景技術】
【0002】
クロスプロセス通信とは、異なるプロセスの間で行われる情報の移行または交換を意味する。QQ(テンセント(Tencent)に開発されたインスタント・メッセンジャー・ソフトウェア)等のプログラムでは、FlashやIE(Internet Explorer)サービスを利用することができる。このため、QQ主要プロセスとFlashプロセスやIEプロセスとの間でのクロスプロセス通信を実施する必要がある。従来のクロスプロセス通信の設定では、QQ主要プロセスとFlashプロセスの間に共有メモリを設置して、この共有メモリを読むことを通して通信している。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来の設定を分析したところ、本開示の発明者らは少なくとも以下の欠点が存在することに気が付いた。
【0004】
従来の設定では、クロスプロセス通信が起動されたときは必ず、メインプロセスと宛先プロセスとの間の通信チャネルとしての共有メモリが設置され、各宛先プロセスに個別のサービスモジュールがロードされていたため記憶容量の無駄を生じていた。
【課題を解決するための手段】
【0005】
本開示に記載の実施例により、クロスプロセス通信のための方法および装置が提供される。本開示の技術は以下の通りである。
【0006】
第1のプロセスによって送信されたクロスプロセス通信要求を受信することと、
前記クロスプロセス通信要求に従い前記第1のプロセスとの通信チャネルをセットアップすることと、
前記クロスプロセス通信要求に対応したサービスモジュールをロードすることと、
前記サービスモジュールがロードされたプリセットコンテナプロセスと前記第1のプロセスとの間で前記通信チャネルを通じてクロスプロセス通信を行うことと
を含むクロスプロセス通信のための方法。
【0007】
第1のプロセスによって送信されたクロスプロセス通信要求を受信するように構成された受信モジュールと、
前記クロスプロセス通信要求に従い前記第1のプロセスとの通信チャネルをセットアップするように構成されたチャネルセットアップモジュールと、
前記クロスプロセス通信要求に対応したサービスモジュールをロードするように構成されたロードモジュールと
を備えたクロスプロセス通信のための装置であって、
前記サービスモジュールがロードされたプリセットコンテナプロセスが前記第1のプロセスと前記通信チャネルを通じてクロスプロセス通信を行う、クロスプロセス通信のための装置。
【0008】
第1のプロセスによって送信されたクロスプロセス通信要求を受信することと、
前記クロスプロセス通信要求に従い前記第1のプロセスとの通信チャネルをセットアップすることと、
前記クロスプロセス通信要求に対応したサービスモジュールをロードすることと、
前記サービスモジュールクロスプロセスがロードされたプリセットコンテナプロセスと前記第1のプロセスとの間で前記通信チャネルを通じてクロスプロセス通信を行うことと
を含んだ方法を行って連絡の更新を通知するべく、コンピュータを制御するように構成されたコンピュータ実行可能な命令を記憶するためのコンピュータ記憶媒体。
【0009】
従って、本開示の実施例に提供される技術の利点は、以下の通りである。
【0010】
多数のサービスモジュールをロードできるプリセットコンテナプロセスは、入口としてセットアップされ、このためクロスプロセス通信チャネルをセットアップする際には、通信プロセスとプリセットコンテナプロセスとの間に通信チャネルをセットアップするだけでよい。対応するサービスモジュールはプリセットコンテナプロセスにロードされるためクロスプロセス通信プロセスのセットアップ手順を簡素化し、コードを削減して、通信効率を向上させる。
【0011】
本開示の実施例または背景技術をより明確に説明するために、各実施例の図面または背景技術を以下に簡単に紹介する。下記の図面は、本開示の例示的な実施例を示し、当業者は、創意工夫なしにこれらの図面に基づいて他の図面を用いることができる。
【図面の簡単な説明】
【0012】
図1図1は、本開示の実施例によるクロスプロセス通信の方法を示すフローチャートである。
図2図2は、本開示の実施例によるクロスプロセス通信の方法を示すフローチャートである。
図3図3は、本開示の実施例によるクロスプロセス通信のための装置を示す概略図である。
図4図4は、本開示の実施例によるクロスプロセス通信のための装置を示す概略図である。
図5図5は、本開示の実施例によるクロスプロセス通信のための装置を示す概略図である。
【発明を実施するための形態】
【0013】
本開示の目的、技術体系および利点をより明確にするために、図面を参照して以下に本開示のより詳細な説明を記載する。
【0014】
実施例1
本開示の実施例は、コードを節約するためのクロスプロセス通信の方法を提供する。図1を参照し、本方法は下記を含んでいる。
【0015】
101:第1のプロセスによって開始されるクロスプロセス通信の要求を受信すること。
【0016】
102:クロスプロセス通信の要求に応じて第1のプロセスとの通信チャネルをセットアップすること。
【0017】
103:クロスプロセス通信の要求に対応したサービスモジュールをロードすること。このため、サービスモジュールと共にロードされたプリセットコンテナプロセスは、第1のプロセスでクロスプロセス通信を実施することができる。
【0018】
ここで、先のクロスプロセス通信の要求による第1のプロセスとの通信チャネルをセットアップする前に、
第1のプロセスとの通信チャネルが存在するか否かを検出して、第1のプロセスとの通信チャネルが存在する場合には通信チャネルを多重化し、または第1のチャネルで通信チャネルが存在しない場合にはクロスプロセス通信の要求によって第1のプロセスとの通信チャネルをセットアップすることを、含んでいる。
【0019】
ここで、クロスプロセス通信要求による第1のプロセスとの通信チャネルをセットアップするステップは、具体的に、
クロスプロセス通信によって指定されたモデルをクロスプロセス通信要求から取得することと、
プリセットコンテナプロセスで指定されたモデルを呼び出して、第1のプロセスとプリセットコンテナプロセスとの間で通信チャネルをセットアップすることを、含んでいる。
【0020】
ここで、プリセットコンテナプロセスは、システムモデル、プロセスモデル、セッションモデルおよび共有モデルを含んでいる。
【0021】
多数のサービスモジュールをロードできるプリセットコンテナプロセスは入口としてセットアップされているため、クロスプロセス通信チャネルをセットアップする際には、通信プロセスとプリセットコンテナプロセスとの間に通信チャネルをセットアップするだけでよく、これにより対応サービスモジュールがプリセットコンテナプロセスにロードされて、クロスプロセス通信プロセスのセットアップ手順を簡略化し、コードを削減し、通信効率を向上させる。
【0022】
実施例2
本開示の実施例により、経済的なコードを実施するためのクロスプロセス通信の方法を提供する。第1のプロセスとしてクロスプロセス通信を開始するプロセスを実施する実施例であり、図2を参照し、本方法は以下を含んでいる。
【0023】
201:第1のプロセスはプリセットコンテナプロセスに対してクロスプロセス通信要求を開始し、このクロスプロセス通信要求は第1のプロセスによって動的に生成される二つのGUID(Globally Unique Identifier)を持っている。これら二つのGUIDは、第1のプロセス識別子と第2のプロセス識別子を含んでいる。第1のプロセス識別子は、クロスプロセス通信要求を開始するプロセスの識別に使用され、第2のプロセス識別子はクロスプロセス通信の宛先プロセス、つまりプリセットコンテナプロセスの識別に使用される。
【0024】
具体的には、これら二つのGUIDは、各プロセスを識別することと、クロスプロセス通信の二つの終端での共有メモリを新設する機能を有する。第1のプロセスからプリセットコンテナプロセスへの通信用メモリは第2のプロセス識別子GUIDによって命名され、第1のプロセスと共有される。このようなメモリはプリセットコンテナプロセスの開始によってセットアップされ、プリセットコンテナプロセスが終了することによって解放される。一方、プリセットコンテナプロセスから第1のプロセスへの通信用メモリは第1のプロセスの専用メモリとして割り当てられている。競合を回避するために、第1のプロセスは、第2のプロセス識別子GUIDを、第1のプロセスからプリセットコンテナプロセスまでの一方向チャネルを通じてプリセットコンテナプロセスへ送信する。
【0025】
本開示の実施例によれば、第1のプロセスは、例えば、QQ,IM等の種々のメインプロセスであってもよく、また第2のプロセスはプリセットコンテナプロセスであってもよい。プリセットコンテナプロセスとは、本開示の実施例によるクロスプロセス通信に使用するコンテナの一種であることを述べておく。プリセットコンテナプロセスは、クロスプロセス通信セットアップ要求を受信すると、この通信を開始するプロセスからコンテナプロセスまでの通信チャネルを設定するためにと、その要求の種類に応じた対応サービスモジュールをロードするために使用される。
【0026】
202:プリセットコンテナプロセスはクロスプロセス通信要求を受信して、クロスプロセス通信に指定されたモデルを取得する。
【0027】
プリセットコンテナプロセスはシステムモデル、プロセスモデル、セッションモデルおよび共有モデルを含み、上記モデルはこれら4つのモデルの中の1つ以上のモデルであることを述べておく。
【0028】
203:プリセットコンテナのステータスが「開放」となっているかどうかを判断し、プリセットコンテナのステータスが開放の場合はステップ205へ進み、開放でない場合はステップ204へ進む。
【0029】
この判断方法は種々あり、サービスハンドラまたはサービスプロセスを検知することによって判断できるが、本開示の実施例はこれに限定されない。
【0030】
204:プリセットコンテナの開放
具体的には、プリセットコンテナが開設されると、その後第1のプロセスからプリセットコンテナへのチャネルが開始するように実行され、その後に続くチャネルのセットアッププロセスを容易にする。
【0031】
205:プリセットコンテナプロセス内で指定されたモデルを呼び出して、第1のプロセスとプリセットコンテナプロセスとの間に通信チャネルをセットアップする。
【0032】
当業者であれば、プリセットコンテナプロセスは、異なる要求に応えるために多様なモデルを含むことを理解するであろう。しかしながら、プリセットコンテナはパッケージ化されたコードである一様な入口と出口を有する。プリセットコンテナは、進入の日付を受信して進入のデータ、プロセスデータまたは操作に基づく対応事前プロセスを固有のデータ出口から出力できる限り、システムに特有の入口を備えている。
【0033】
ステップ205の前に以下を含むことができる。クロスプロセス通信を開始するプロセスとプリセットコンテナとの間に通信チャネルが存在するか否かを検知すること、通信チャネルが存在する場合には通信チャネルを多重化すること、または要求の種類に応じて主要プロセスとプリセットコンテナとの間に通信チャネルをセットアップすること。通信チャネルが存在する場合、このステップは、既存の通信チャネルを通じた通信を可能にでき、サービスモジュールをロードする際は、既存のモジュールをアンロードした後に既存のモジュール、または、対応サービスモジュールに基づいてロードしてもよい。このステップは、チャネルのセットアッププロセスを不要とすることができ、またコードを削減できる。
【0034】
206:クロスプロセス通信要求に応じて、クロスプロセス通信要求に対応したサービスモジュールをロードすること。
【0035】
サービスモジュールにとってコンテナモデルは透過であり、実行されるコンテナモジュールの種類には関係がない。好ましくは、プリセットコンテナは具体的にはAppコンテナでもよく、これは異なるサービスモジュール用プロセスをロードでき、アプリケーションプログラムのメインプロセスと通信できることを意味する。各コンテナ体は一つ以上のサービスモジュールをロードでき、所望によりサービスモジュールを動的にロードできる。サービスモジュールとは特定の機能を実行できるDLLを意味し、DLLは各規制に応じた進入機能を送出する。
【0036】
さらに、サービスモジュールがロードされたプリセットコンテナプロセスは、上記のステップ201から206を通して、通信チャネルを通じて第1のプロセスとのクロスプロセス通信を行えるようにした後には、コンテナのロード状態を確認する必要があり、これは、サービスモジュールのロード状態を確認してクロスプロセス通信要求に対応したサービスモジュールがロードされているか否かを判断することを意味する。ロードされていない場合には、サービスモジュールをリロードして、コンテナは対話ID等の識別子を生成して第1のプロセスに応答する。結果としてサービスモジュールのエクスポート関数OnSessionCreateが実行されて、新たな対話がセットアップされたことを知らせる。
【0037】
サービスモジュールが実行されている間に第1のプロセスがサービス待機ハンドラを呼び出してもよいことを述べておく。サービスプロセスが終了すると、第1のプロセスは対話を終了させて、対話の異常中断の知らせを出す。上位のアプリケーションは、必要に応じて対話を立て直すか否かを判断することもできる。サービスモジュールに大きなバグが存在する場合、個々の崩壊は結果として連続した崩壊、そしてサービスモジュールの再始動をもたらし、さらには、CPU占有率を100%まで到達させて、ユーザに悪い影響を及ぼす。このため、再始動回数の最大値を設定でき、好ましくは、この回数は3回であってもよい。またさらに、サービスモジュールは、個別のデータ受信スレッドを有し、データが受信されて業務が行われる場所であるメインスレッドへ一斉送信される。メインスレッドが中断している場合には、データ検知スレッドが検知してもよい。検知結果が主要スレッドが中断していることを示すと、第1のプロセスに知らせるためにセマフォを使用してもよく、これにより第1のプロセスは対話を終了させて、対話の異常中断の知らせを出すことができる。そして第1のプロセスは必要に応じて対話を再開するかどうかを判断できる。
【0038】
上記の実施例においてクロスプロセス通信は、具体的に、共有メモリ通信またはソケット通信であってもよい。ソケット通信が使用中の場合は、対話のストリーミングデータ通信とTCPを介した1対多接続管理の説明をしたほうがより自然であろう。ここで、共有メモリ通信とは、セマフォと共有メモリに基づく巡回キューによって実行されるデータ通信の一種であり、詳細な内容は現在の技術において周知であるため、ここでは記載しない。
【0039】
本開示が提供する方法によれば、多数のサービスモジュールをロードできるプリセットコンテナは入口にセットアップされているため、クロスプロセス通信をセットアップする場合には通信プロセスとプリセットコンテナプロセスとの間に通信チャネルをセットアップするだけで、対応するサービスモジュールがプリセットコンテナプロセスにロードされて、クロスプロセス通信のセットアップ手順を簡略化され、コードを削減して通信効率を向上させる。
【0040】
実施例3
本開示の実施例によれば、コード削減のためにクロスプロセス通信用の装置が提供される。図3を参照し、本装置は以下を含んでいる。
【0041】
第1のプロセスから送信されたクロスプロセス通信要求を受信するように構成された受信モジュール301。
【0042】
クロスプロセス通信の要求により、第1のプロセスとの通信チャネルをセットアップするように構成されたチャネルセットアップモジュール302。
【0043】
クロスプロセス通信要求に応じたサービスモジュールをロードするように構成されたロードモジュール303。サービスモジュールがロードされたプリセットコンテナプロセスは通信チャネルを通じて第1のプロセスとのクロスプロセス通信を行う。
【0044】
一つの実施例によれば、ロードモジュール303はさらにサービスモジュールのロード状態を確認するために使用してもよく、これによりクロスプロセス通信要求に対応したサービスモジュールがロードされているか否かを判断する。ロードされていない場合にはサービスモジュールはリロードされ、コンテナは対話IDを生成して第1のプロセスに応答する。
【0045】
図4を参照し、本装置はさらに以下を含んでいる。
【0046】
第1のプロセスとの通信チャネルが存在するか否かを検知するように構成された検知モジュール304は、通信チャネルが存在する場合には通信チャネルを多重化し、または、通信チャネルが存在しない場合にはクロスプロセス通信要求に応じた第1のプロセスとの通信チャネルをセットアップするようにチャネルセットアップモジュールを開始させる。
【0047】
図5を参照し、チャネルセットアップモジュール302は以下を含んでいる。
【0048】
クロスプロセス通信により指定されたモデルをクロスプロセス通信要求から取得するために使用するピックアップユニット302a。
【0049】
プリセットコンテナプロセスにおいて指定されたモデルを呼び出して、第1のプロセスとプリセットコンテナプロセスとの間に通信チャネルをセットアップするために使用する開放ユニット302b。
【0050】
一つの実施例によれば、開放モジュール302bは、さらにプリセットコンテナのステータスが「開放」となっているかどうかを判断するために使用できる。プリセットコンテナのステータスが開放の場合には、プリセットコンテナプロセスで指定されたモデルを呼び出して、第1のプロセスとプリセットコンテナプロセスとの間に通信チャネルをセットアップし、プリセットコンテナプロセスのステータスが開放でないときにはプリセットコンテナを開放させる。
【0051】
プリセットコンテナプロセスは、システムモデル、プロセスモデル、セッションモデルおよび共有モデルを含んでいる。
【0052】
一つの実施例によれば、クロスプロセス通信は共有メモリ通信またはソケット通信であってもよい。
【0053】
本開示の実施例による装置は、方法に関する実施例と同じ概念に基づいており、詳細な内容は方法の実施例の記述にあるため、ここでは記載しない。
【0054】
本開示の実施例による技術の全部または一部はプログラムに命令された対応ハードウェアで実施でき、このようなプログラムは、ROM,RAM、磁気ディスクまたは光ディスク等のプログラムコードを記憶できる種々の媒体を含んだ読取可能な記憶媒体内に記憶できる。
【0055】
本開示はさらに、コンピュータが連絡の更新を通知するために上述の方法を行うための各命令を実行している間に、コンピュータに実行可能な命令を記憶したコンピュータ記憶媒体を提供する。
【0056】
上述の例示的な実施例の記載は、本発明を限定することを意図していない。本発明の精神と原理内のあらゆるの変更、置換及び改良も請求項に含む。
図1
図2
図3
図4
図5