JP6418004B2 - イベント通知プログラム、イベント通知方法及びイベント通知装置 - Google Patents

イベント通知プログラム、イベント通知方法及びイベント通知装置 Download PDF

Info

Publication number
JP6418004B2
JP6418004B2 JP2015036899A JP2015036899A JP6418004B2 JP 6418004 B2 JP6418004 B2 JP 6418004B2 JP 2015036899 A JP2015036899 A JP 2015036899A JP 2015036899 A JP2015036899 A JP 2015036899A JP 6418004 B2 JP6418004 B2 JP 6418004B2
Authority
JP
Japan
Prior art keywords
event notification
event
priority
information
condition
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
JP2015036899A
Other languages
English (en)
Other versions
JP2016161952A (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 JP2015036899A priority Critical patent/JP6418004B2/ja
Priority to US15/017,131 priority patent/US10412033B2/en
Publication of JP2016161952A publication Critical patent/JP2016161952A/ja
Application granted granted Critical
Publication of JP6418004B2 publication Critical patent/JP6418004B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/226Delivery according to priorities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、イベント通知プログラム、イベント通知方法及びイベント通知装置に関する。
Open Ajax HUBのように、Publish/Subscribe形式の通信モデルのメッセージを非同期で通信するシステムが開発されている(例えば、特許文献1参照)。これによれば、イベント通知の依頼側(Subscribe側:イベントの受信側)とこれに対するイベント通知側(Publish側:イベントの発行側)とを分離させ、各動作主体の動作を、独立してアプリケーションに規定することができる。
他方、昨今Open Socialに代表される共通の仕様に則り開発されたガジェット(ウィジェット)を利用したポータルへの移行が進んできている。このようなポータルでは利用者が自由にガジェットを組み合わせてコンテンツを作成することが可能である。ガジェット間の通信には、例えば、Open Ajax HUBのようなPublish/Subscribeモデルのイベント通知機構が利用される。
特開2007−213372号公報
しかしながら、Publish/Subscribeモデルのように、イベントの発行とイベントの受信との2フェーズを有するモデルでは、イベント通知の依頼時(Subscribe)とこれに対するイベント通知の発行時(Publish)とが必ずしも時間的に近接しているとは限らない。このため、イベント通知の優先順位が、イベント通知を依頼する段階と実際に依頼元にイベントを通知する段階とで異なる場合が生じる。よって、イベント通知の依頼時の優先順位に従い、イベント発行後にイベントを依頼元に通知すると、イベント通知の依頼時には適切な優先順位であっても、イベント発行時には不適切な順番でイベントを通知してしまうことがある。
そこで、一側面では、本発明は、適切な順番でイベント通知を行うことを目的とする。
一つの案では、イベント通知条件情報および優先情報を含むイベント通知依頼を受け付け、前記イベント通知条件情報に基づき前記イベント通知依頼に応じたイベントが発生し、かつ、該イベントのメッセージの同期配信を実行するか否かによってイベント通知の条件が成立するかを判定し、前記イベント通知依頼に応じたイベント通知が発生し、かつ、メッセージの同期配信を実行する場合、前記イベント通知の条件が成立したと判定、前記優先情報の動的な条件に基づき特定された優先順位で前記イベントを通知する、処理をコンピュータに実行させるイベント通知プログラムが提供される。
一側面によれば、適切な順番でイベント通知を行うことができる。
ガジェットの画面表示の一例を示す図。 Publish/Subscribe形式の通信モデルの一例を示す図。 ガジェット間のデータ連携を説明するための図。 ガジェット間のPublish/Subscribe形式の通信の課題の一例を示す図。 ガジェット間のPublish/Subscribe形式の通信の課題の他の例を示す図。 一実施形態に係るイベント通知装置の機能構成の一例を示す図。 一実施形態に係るガジェット間のPublish/Subscribe形式の通信の一例を示す図。 一実施形態に係る依頼情報テーブルの一例を示す図。 一実施形態に係るイベント通知依頼処理の一例を示したフローチャート。 一実施形態に係るイベント通知処理の一例を示したフローチャート。 一実施形態に係るイベント通知装置のハードウェア構成の一例を示す図。
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
[ガジェット]
昨今Open Socialに代表される共通の仕様に則り開発されたガジェット(ウィジェット)を利用したポータルへの移行が進んできている。ガジェットとは、アプリケーション(以下、「アプリ」ともいう。)やデスクトップ上で動作するソフトウェアである。例えば、図1には、ウェブブラウザ上に配置したガジェットの一例が示されている。この例では、イベント通知装置10の一例であるパーソナルコンピュータの画面10a上に、ニュースや天気等のコンテンツ情報を提供するガジェット11a〜11dが示されている。
このようなポータルでは利用者が自由にガジェットを組み合わせてコンテンツを作成することが可能である。また、ガジェット間の通信には、例えば、Open Ajax HUBのようなPublish/Subscribeモデルのイベント通知機構が利用される。
図2に、Publish/Subscribe形式の通信モデルの一例を示す。イベント通知の依頼元30(イベントの受信側)のガジェットと、これに対するイベント通知の発行元40(イベントの発行側)のガジェットとは分離され、各動作主体の動作が、独立してアプリケーション(図2では、アプリA、B)に規定されている。イベント通知の依頼元30およびイベント通知の発行元40は、相手を直接意識せず、トピック(後述されるデータ連携部50)という上位概念で結びつき、トピックを介してデータの連携を行う。このようにして、Publish/Subscribeの通信モデルでは、イベント通知の依頼元30のガジェットおよびイベント通知の発行元40のガジェットの変更に対して、独立してアプリケーションが記述できるというのが利点である。
つまり、イベント通知の依頼元30のガジェット(以下、「Subscribe側」ともいう。)は、どのようなアプリケーションでイベントが発生したのか、他にどのようなSubscribe処理があるかを意識する必要はない。Subscribe側は、単にイベント発生が関心対象にどのように作用するのかだけを、ハンドラに記述し、(1)のイベント通知依頼をトピックに行えばよい。
また、イベント通知の発行元40のガジェット(以下、「Publish側」ともいう。)は、そのイベントが、どのアプリケーションが読み込むものか?どのように処理されるのか?を意識する必要はない。Publish側は、単にイベントが発生したことを示す(2)のイベントの通知をトピックに行えばよい。
図2に示すPublish/Subscribe形式の通信モデルでは、メッセージは非同期で通信される((3)メッセージ配信)。
たとえば、図3を参照しながら、Open Ajax HUBのように、Publish/Subscribe形式の通信モデルにおけるガジェット間のデータ連携について具体的に説明する。図3の例では、ガジェット11e、11fが表示されている。この説明では、ガジェット11eがSubscribe側、ガジェット11fがPublish側として機能する場合を例に挙げるが、ガジェット11eがPublish側、ガジェット11fがSubscribe側として機能することもできる。なお、画面初期化時に、Subscribe側とPublish側とのデータの連携を行うManaged HUB(以下、「データ連携部50」ともいう。)が生成される。
(1)イベント通知依頼
データを受信するガジェット11eは、ガジェット初期化後の任意のタイミングでデータ連携部50に対してイベント通知依頼(以下、「Subscribe」ともいう。)を行う((1)イベント通知依頼)。イベント通知依頼時、「トピック名」、「データ受信時に起動するコールバック関数」を引数としてSubscribeメソッドを呼び出す。ガジェット11eは、データ連携対象のメッセージ送信側のガジェット11fにてイベントの発行(以下、「Publish」ともいう。)が行われる前に、Subscribeを行う必要がある。これにより、登録したトピック(ここでは株価)のイベントに変化があった場合に、そのトピックのデータ連携部50を介して、変化したイベントの情報がイベントの発行元(ここでは、ガジェット11f)からイベント通知の依頼元(ここでは、ガジェット11e)に配信されるようになる。
(2)イベントの発行(通知)
イベントの発行の際のデータを送信するガジェット11fは「トピック名」、「送信するデータ(メッセージ)」を引数としてPublishメソッドを呼び出す((2)イベント通知)。ガジェット11fにおけるPublishのタイミングとしては、例えば入力項目に記載し終わった後にENTERキーを押下した時などが挙げられる。
(3)メッセージ配信
トピック名で指定されたデータ連携部50は、Publishされたデータの送信元のガジェット11fの確認を行う(セキュリティチェック)。データ連携部50は、管理下にあるガジェットであると確認した場合、同じトピック(ここでは、株価のトピック)をSubscribeしているガジェット11eにデータを送信する((3)メッセージ配信)。データを受信したガジェット11eは、登録されたコールバック関数によって、データを処理する。
なお、セキュアにガジェット間連携を実現するための技術としては、次の技術がある。OpenAjax HUB 2.0(http://www.openajax.org/member/wiki/OpenAjax_Hub_2.0_Specification)
Publish/Subscribe形式の通信モデルでは、メッセージは非同期で通信されるため、ガジェット間通信ではメッセージの到着順番が不定になるという問題がある。アプリケーションの独立性が高い場合、又は処理順番に依存しないアプリケーションの処理の場合であれば不具合は生じない。しかし、処理順番に依存するアプリケーションの処理の場合、不具合が生じる。
たとえば、メッセージを処理するアプリが複数あり、それぞれの処理順番に意味がある場合には、同期通信を使う事は必須である。しかし、処理順番に意味がない場合にも同期通信を行うと、不要な待機時間が発生し、非効率になる。
(処理順番に依存するアプリケーション例1)
例えば、図4では、複数のガジェットで発生した事象(メソッド呼び出し等)について時系列にログ(トレース)を記録したい場合のPublish/Subscribeモデルの通信の一例を示す。ここでは、複数のガジェットで発生する大量のイベントをログするデバッグログが想定される。
(1)まず、イベント通知の依頼元30のガジェットが、「トピック:ログ」のデータ連携部50に対してイベント通知の依頼(Subscribe)を行う。イベント通知の依頼元30のガジェットでは、ログ取得アプリが動作する。
(2)次に、イベント通知の発行元40、41のガジェットが、「トピック:ログ」のデータ連携部50に対してイベントを通知する。ここでは、先に(2−1)の取得対象イベントアプリ1の動作により発生したログ1がPublishされ、後に(2−2)の取得対象イベントアプリ2の動作により発生したログ2がPublishされる。
(3)次に、「トピック:ログ」のデータ連携部50は、イベント通知の依頼元30にメッセージを配信する。ここでは、先に(3−1)のログ2が配信され、後に(3−2)のログ1が配信される。
このように、非同期通信では、配信したメッセージの順番が保障されず、イベント通知(Publish)の順番とイベント通知の依頼元(Subscribe側)へメッセージが配信される順番とは異なる。このようにPublish側からのメッセージ通知順番は不定となる。一方、イベント通知の依頼元30のガジェットでは、通知された複数のログイベントの発行の前後関係はわからない。つまり、ログ情報の取得の順番によってはログ情報の発生の順番がわからない。そのため、ログ1及びログ2のどちらの事象が先に発生したかがわからず、ログ情報を時系列に記憶することが保障できない。時系列にログ情報を記憶できないと、ログ情報の利用価値は著しく低下する。
これに対して、ログ取得対象のイベント発生時刻のタイムスタンプをログ情報に埋め込む方法が考えられる。しかしながら、この場合、コンピュータの性能による最小解析時間があり、その時間以下の間隔で発生したログ取得対象のイベントについては対応できない。
また、Publishする前にマスターとなるコンポーネントでシーケンシャルなログ番号を取得してログ情報に埋め込む方法が考えられる。しかしながら、この場合、シーケンスの中で、「順序番号取得のための通信」と「Publishのための通信」との2種類の通信が必要となり、通信方法が煩雑になる。
(処理順番に依存するアプリケーション例2)
また、図5に示すように、複数のイベント通知の依頼元30、31のガジェットで発生した事象(メソッド呼び出し等)についてイベントを受信する際にも不具合が生じる場合がある。
(1−1)まず、イベント通知の依頼元30のガジェットが、「トピック:誕生日」に対してイベント通知依頼(Subscribe)を行う。イベント通知の発行元40は、定められた年齢に応じて、誕生日の特別ポイントを加算する。
(1−2)次に、イベント通知の依頼元31のガジェットが、「トピック:誕生日」に対してイベント通知依頼(Subscribe)を行う。イベント通知の発行元40は、誕生日時に一定のポイントがあればプレゼトイベントをpublishする。
(2)次に、イベント通知の発行元40のガジェットが、「トピック:誕生日」に対してイベント通知を行う。ここでは、誕生日イベントアプリの動作により発生した誕生日イベントのデータがPublishされる。
(3)次に、「トピック:誕生日」のデータ連携部50は、ログインユーザの属性と当日日付を比較し、比較結果に応じてイベント通知の依頼元30、31のガジェットに誕生日イベントのメッセージを配信(Publish)する。ここでは、先に(3−1)の誕生日のメッセージがイベント通知の依頼元31に配信され、後に(3−2)の誕生日のメッセージがイベント通知の依頼元30に配信される。
配信されるメッセージに、Subscribeした順番(イベント通知の依頼元30→イベント通知の依頼元31)に対する依存性がある場合、上記のようにSubscribeした順番と異なる順番でメッセージが配信されると、誕生日のメッセージの内容が変わり、不具合が生じる場合がある。
例えば、イベント通知の依頼元30に先に誕生日のイベント通知が配信される場合、イベント通知の依頼元30への誕生日のイベント通知時には、すでにポイントが加算されている。このため、正しいタイミングでプレゼントイベントが発生する。
一方、上記の例のように、イベント通知の依頼元31に先に誕生日のイベント通知が配信される場合、その時点では、先にイベント通知の依頼元30に誕生日のイベント通知が配信されたときには加算されたはずのポイントが加算されていない。この結果、正しいタイミングでプレゼントイベントが発生しない可能性がある。このようにSubscribeした順番に対する依存性がある場合、Subscribeした順番にメッセージが配信されることが保障されないと不具合が生じる。
これに対して、イベント通知後に一定時間待機することで、イベント通知の依頼元30へのメッセージの配信が完了するまでイベント通知の依頼元31へのメッセージの配信を待つことが考えられる。しかしながら、その場合、複数のメッセージを並行して配信できないため、通信効率が悪くなって処理が遅延することが懸念される。また、待機時間を一意に決めることができない。
(処理順番に依存するアプリケーション例3)
更に、イベント通知を依頼したガジェットが、publish時には閉じられていた等のアプリケーションの事情により、実際にはpublish時には通知の必要がなくなったイベントが通知されることがある。
たとえば、「トピック:株価」において、株価が変化した場合、Publish側から株価の現在値がイベントで通知される。ところが、イベント通知依頼(Subscribe)時とイベント通知(Publish)時とが必ずしも時間的に近接しているとは限らない。そこで、Subscribe時には必要であったイベント通知であっても、イベント通知時(Publish)には通知が不要となっている場合が生じ得る。例えば、Publish前に株価を知らせるガジェットの非表示が選択された場合やユーザが一時的に株価の表示が必要ないことを通知した場合が挙げられる。それらの場合には、Publishされた株価の現在値がイベントで通知されたとしても、イベント通知の依頼元の画面上で反映するガジェットが閉じられているため、株価の現在値を表示できず、Subscribeへのメッセージの配信が無駄になってしまう。
上記で説明した課題を考慮して、以下では、適切な順番でイベント通知を行うことが可能なイベント通知装置10について説明する。
[イベント通知装置の機能構成]
一実施形態に係るイベント通知装置10の構成について、図6〜図8を参照しながら説明する。図6は、一実施形態に係るイベント通知装置10の機能構成の一例を示す。図7は、一実施形態に係るガジェット間のPublish/Subscribe形式の通信の一例を示す。図8は、一実施形態に係る依頼情報テーブルの一例を示す。
本実施形態に係るイベント通知装置10は、データ連携部50を有する。データ連携部50は、Publish/Subscribe形式の通信におけるガジェット間において、画面初期化時に生成される。
データ連携部50は、受付部51、記憶部52、優先度算出部53及び通知部54を有する。受付部51は、イベント通知条件情報及び優先情報を含むイベント通知依頼を受け付ける。例えば、図7に示すように、データを受信するあるガジェットが、ガジェット初期化後の任意のタイミングでデータ連携部50に対してイベント通知依頼(Subscribe)を行う。イベント通知の依頼元30のガジェットは、イベント通知依頼時、「トピック名」、「コールバック関数」、「優先度」を引数としてSubscribeメソッドを呼び出す。これにより、登録したトピックのイベントに変化があった場合に、変化したイベントの情報がイベント通知の依頼元30のガジェットに配信されるようになる。「トピック名」及び「コールバック関数」のパラメータは、イベント通知条件情報の一例である。また、「優先度」のパラメータは、優先情報の一例である。
記憶部52は、イベント通知条件情報及び優先情報を依頼情報テーブル55に記憶する。依頼情報テーブル55は、図8の(a)に示すように、トピック名55a、コールバック関数55b、優先度(値)55c及び優先度(メソッド)55dの項目を有する。
記憶部52は、イベント通知の依頼元30のガジェットがSubscribe時に指定した「トピック名」、「コールバック関数」、「優先度」を依頼情報テーブル55に登録する。優先度には値(数値)とメソッドとの何れかが設定されているので、「優先度」のパラメータは、依頼情報テーブル55の優先度(値)55c及び優先度(メソッド)55dのいずれかに登録される。
優先度算出部53は、優先度がメソッドで設定されている場合、イベントの通知を発行する際に優先度で指定されたメソッドを数値化して、その通知の優先順位を算出する。このように、本実施形態では、優先度をメソッドで指定可能とすることで、優先度算出部53は、イベントの通知を発行する際に評価される優先情報の動的な条件に基づき優先順位を特定することができる。
判定部55は、イベント通知条件情報に基づきイベント通知依頼に対する同期配信によるイベント通知の条件が成立するか否かを判定する。例えば、判定部55は、イベント通知依頼に含まれる「トピック名」(すなわち、イベント通知の依頼元30のガジェットがSubscribe時に指定する「トピック名」)によりメッセージの同期配信又は非同期配信のいずれが実行されるかを判定する。「トピック名_sync」というように「トピック名」に「_sync」というサフィックスが付いている場合、判定部55は、メッセージの同期配信を実行すると判定する。一方、「トピック名」に「_sync」というサフィックスが付いていない場合、判定部55は、メッセージの非同期配信を実行すると判定する。
判定部55は、イベント通知依頼に含まれる「トピック名」に応じたイベント通知が発生し、かつ、メッセージの同期配信を実行すると判定した場合、イベント通知条件情報に基づきイベント通知依頼に対する同期配信によるイベント通知の条件が成立すると判定する。
通知部54は、優先順位に従いイベントの通知を行う。通知部54は、イベント通知条件情報に基づき、イベント通知依頼に対するイベント通知の条件が成立した場合、前記成立した際に評価される前記優先情報の動的な条件に基づき特定された優先順位で前記イベントを通知する。その際、通知部54は、判定部55の判定結果に応じて、同期配信又は非同期配信のいずれかにより通信を行う。
このようにして、本実施形態では、「トピック名」の命名規則により同期配信及び非同期配信のロジックを切り替えることができる。これにより、本実施形態によれば、実行順番を保障してほしいアプリケーションは同期通信のトピック名を指定することで配信ロジックを同期通信に切り替えることができる。この結果、本実施形態では、ガジェット間通信を同期配信及び非同期配信のいずれにも適用できるようにする。
例えば、Subscribe時のトピック名に、「_sync」というサフィックスが付いた場合、通知部54は、全て同期通信とし、復帰情報を待ってから次の処理を実行する。その場合、通知部54は、複数回発行(Publish)されたイベント通知に対する配信キューからのメッセージ配信を、かならずPublishの到着順で行う。
また、図7に示すように、本実施形態では、Subscribe時に「優先度」のパラメータが指定される。これにより、イベント通知の優先順位が定数、またはメソッドで指定可能となる。例えば、「優先度」が数値で指定されている場合、その値がそのままイベント通知の優先順位となる。一方、「優先度」がメソッドで指定されている場合、イベント通知(Publish)の直前に当該メソッドを呼び出し、その復帰値がイベント通知の優先順位となる。
本実施形態によれば、このようにしてイベント通知の依頼元のガジェットで優先度にシーケンシャル番号を付加することで、メッセージの配信順番をイベントの発生順番と一致させることができる。例えば、通知部54は、Publish時のイベント通知の受信の順番と同じ順番でデータ連携部50の配信キューからメッセージの配信を実施する。この結果、上記に説明した処理順番に依存するアプリケーションの場合にも不具合なくガジェット間におけるデータの連携が可能になる。
「優先度」にメソッドが指定された場合、優先度算出部53は、イベントが発生した後であってメッセージが配信される前のいずれかのタイミングに、指定されたメソッドを呼び出し、メッセージを配信する優先順位を算出する。この結果、以下の(1)及び(2)のケースにおいて、メッセージの配信順番をイベント通知依頼の順番又はイベント発生の順番と一致させることができ、メッセージの通知順番が保障される。
(1)同一トピックに対してSubscribe側に複数のアプリケーションがある場合(図5)
(2)同一トピックに対してPublish側から複数のメッセージが発行される場合(図4)
例えば、図5に示す同一トピックに対してSubscribe側に複数のアプリケーションがある場合、トピック名を「トピック:誕生日_sync」に変更する。加えて、イベント通知の依頼元30、31のガジェットの(1−2)のイベント通知依頼時に指定する優先度を、(1−1)のイベント通知依頼時に指定する優先度よりも低く設定する。これにより、「トピック:誕生日」のイベントが発生した場合には、イベント通知の依頼元30→イベント通知の依頼元31の順番でメッセージが配信されることが保障される。この結果、(1−2)のアプリ2で表示されるメッセージの内容は、(1−1)のアプリ1が加算したポイントを反映したものとなる。
また、「優先度」にメソッドが指定される場合、イベントが発生した後であってメッセージが配信される前のいずれかのタイミングに、優先度算出部53が、メソッドを呼び出して優先順位を計算することで以下のメリット(3)及び(4)を奏することができる。
(3)Publish時の状況に応じたメッセージの配信順番が選択できる。
(4)不要なメッセージ配信を省略できる。
特に、(4)のメリットについては、前述のとおりイベントが変更されたことの通知が配信されても、画面上のガジェットが閉じられている等の場合にはイベントの変更を反映できず、メッセージの配信が無駄になる。このような通信の無駄を省くために、優先度算出部53は、Publish時等のイベントが発生した後であってメッセージが配信される前のいずれかのタイミングに、指定された優先度のメソッドを呼び出して、Subscribe時に設定されたイベント通知条件情報に基づきイベント通知依頼に対するイベント通知の条件が成立するかを判定する。優先度算出部53は、Publish時におけるイベント通知の条件が成立しないと判定した場合、優先度に負の値を設定する。これにより、本実施形態では、通知部54は、優先度が負の値の場合、更新メソッドは呼ばなくてよいという条件を設定することでメッセージを配信しないようにすることができる。
なお、本実施形態では、優先度に負の値を設定した場合、更新メソッドは呼ばなくてよいという条件を設定したが、これに限らない。つまり、通知部54は、優先度が一定数以下の値や予め定められた値や範囲に包含されていれば、更新メソッドを呼ぶ処理を行わずにメッセージを配信しないようにしてもよい。
例えば、イベント通知の依頼元30のガジェットが、図5の(1−1)においてSubscribe(トピック:株価_sync、株価欄を更新するメソッド、株価欄がなければ負の値を返却するメソッド)を設定することで、上記の(3)や(4)の効果を得ることができる。
[イベント通知依頼処理]
次に、本実施形態に係るイベント通知依頼処理について図9を参照して説明する。図9は、本実施形態に係るイベント通知依頼処理の一例を示したフローチャートである。本処理は、イベント通知の依頼元(Subscribe側)のガジェットのアプリケーションから依頼される。
本処理が開始されると、受付部51は、イベント通知依頼(Subscribe)を受け付ける(ステップS10)。図7に示すように、イベント通知依頼には、「トピック名」、「コールバック関数」及び「優先度」のパラメータが指定されている。記憶部52は、イベント通知の依頼元のガジェットがSubscribe時に指定した「トピック名」、「コールバック関数」、「優先度」を依頼情報テーブル55に登録し(ステップS12)、本処理を終了する。
これにより、図8の(a)に示すように、イベント通知依頼を受け付ける度に依頼情報テーブル55にトピック名等が保存される。
[イベント通知処理]
次に、本実施形態に係るイベント通知処理について図10を参照して説明する。図10は、本実施形態に係るイベント通知処理の一例を示したフローチャートである。本処理は、イベント通知の発行元(Publish側)のガジェットのアプリケーションから通知される。
本処理が開始されると、受付部51は、イベントの通知(Publish)を受け付ける(ステップA20)。図7に示すように、イベントの通知には、「トピック名」、「データ」のパラメータが指定されている。
判定部55は、「トピック名」に「_sync」というサフィックスが付いているかを判定する(ステップS21)。判定部55が「トピック名」に「_sync」というサフィックスが付いていないと判定した場合、判定部55はメッセージの非同期配信を実行すると判定する。この場合、通知部54は、イベント通知のコールバック関数を呼び出し、メッセージを配信し(ステップS36)、本処理を終了する。
一方、ステップS21において、判定部55が「トピック名」に「_sync」というサフィックスが付いていると判定した場合、判定部55はメッセージの同期配信を実行すると判定し、ステップS22に進む。
優先度算出部53は、依頼情報テーブル55から、前記イベントの通知のパラメータで与えられたトピック名に対応する情報を選択する(ステップS22)。例えば、イベントの通知において、「トピック名」に「Topic A」が指定されていた場合、図8の(b)に示すように、依頼情報テーブル55から「Topic A」に対応する情報が選択される。
次に、優先度算出部53は、優先度にメソッドが設定されているかを判定する(ステップS24)。優先度算出部53は、優先度にメソッドが設定されていると判定した場合、設定されているメソッドを呼び出し、メソッドに基づき優先度の値を算出する(ステップS26)。図8の(b)の2行目には、優先度(メソッド)55dに「メソッド9」が設定されている。この場合、優先度算出部53は、メソッド9に基づき優先度の値を算出する。この結果、図8の(b)の2行目の優先度(値)55cに「8」が設定される。なお、優先度算出部53は、優先度にメソッドが設定されていないと判定した場合、ステップS28に進む。
次に、通知部54は、優先度が高い順にソートする(ステップS28)。図8の(b)の情報が、優先度が高い順にソートされた結果を図8の(c)に示す。
次に、通知部54は、負の値の優先度があるかを判定する(ステップS30)。通知部54は、負の値の優先度があると判定した場合、優先度に負の値を持つイベント通知を破棄する(ステップS32)。
通知部54は、破棄されたイベント通知以外のイベント通知について、優先度が高い順に各イベント通知のコールバック関数を呼び出し、優先度が高い順にメッセージを配信し(ステップS34)、本処理を終了する。これにより、図8の(c)に示すように、優先度(値)55cが高い順に「メソッド4」、「メソッド5」、「メソッド1」のコールバック関数が呼び出され、各メソッドで指定されるイベント通知の依頼元のガジェットへ優先度が高い順番にメッセージが配信される。
以上に説明したように、本実施形態かかるイベント通知装置10によれば、非同期通信によるアプリケーションと、同期通信によりメッセージ到着順番を保障する必要があるアプリケーションとを両立させたガジェット間の通信を提供することができる。
また、同期通信によるPublish/Subscribeの通信の場合、Subscribe時にイベント通知依頼に「優先度」を設定することで、イベント通知のメッセージ配信の順番を確定することができる。これに加えて、「優先度」に負の値を設定することで、Publish時には必要としない不要なメッセージ配信を抑止することができる。
例えば、あるデータ(トピックA)の更新に伴い、図1の画面10aのガジェット11b、11c、11dの更新を行う際、画面10aの左から右、上から下の順番でデータを更新したい場合について説明する。この場合、「キーワードランキング」のガジェット11b、「乗り換えのご案内」のガジェット11c、「お天気情報」のガジェット11dの順にデータの更新を契機に再描画されるようにしたい。このとき、本実施形態によれば、
(1)受付部51は、イベント通信の依頼元からイベント通信の依頼を受け付けるとき、イベント発生時のメソッドともに優先度のメソッドを受け付ける。
(2)このとき、指定されたメソッドによる優先度は、イベント通信の依頼時には一意に決まらないので、自己のガジェットが表示されている位置から計算するメソッドが指定される。
(3)優先度算出部53は、指定されたトピックのイベント通信の発行時、優先度のメソッドを呼び出し、依頼元のガジェットの表示位置から優先度を計算する。
(4)通知部54は、優先度が高い順番にイベントを通知する。
これにより、優先度が高い順に、「キーワードランキング」のガジェット11b、「乗り換えのご案内」のガジェット11c、「お天気情報」のガジェット11dの順でデータが更新される。
(ハードウェア構成例)
最後に、本実施形態に係るイベント通知装置10のハードウェア構成例について、図11を参照して説明する。イベント通知装置10は、入力装置101、表示装置102、外部I/F103、RAM(Random Access Memory)104、ROM(Read Only Memory)105、CPU(Central Processing Unit)106、通信I/F107、及びHDD(Hard Disk Drive)108を備える。各部はバスBで相互に接続されている。
入力装置101は、キーボードやマウスなどを含み、イベント通知装置10に各操作信号を入力するのに用いられる。表示装置102は、ディスプレイ10aを含み、各種のガジェットの更新データを表示する。
通信I/F107は、イベント通知装置10をネットワークに接続するインタフェースである。これにより、イベント通知装置10は、通信I/F107を介して、他の機器とデータ通信を行うことができる。
HDD108は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、装置全体を制御する基本ソフトウェア及びアプリケーションソフトウェアがある。例えば、HDD108には、各種のDB情報やプログラム等が格納されている。
外部I/F103は、外部装置とのインタフェースである。外部装置には、記録媒体103aなどがある。これにより、イベント通知装置10は、外部I/F103を介して記録媒体103aの読み取り及び/又は書き込みを行うことができる。記録媒体103aには、CD(Compact Disk)、及びDVD(Digital Versatile Disk)、ならびに、SDメモリカード(SD Memory card)やUSBメモリ(Universal Serial Bus memory)などがある。
ROM105は、電源を切っても内部データを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM105には、ネットワーク設定などのプログラムやデータが格納されている。RAM104は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。CPU106は、上記記憶装置(例えば「HDD108」や「ROM105」など)から、プログラムやデータをRAM104上に読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する演算装置である。
上記ハードウェア構成により、本実施形態に係るイベント通知装置10は、イベント通知依頼処理及びイベント通知処理を行うことができる。例えば、CPU106が、ROM105やHDD108内に格納されたデータ及びプログラムを用いてイベント通知依頼処理及びイベント通知処理を実行する。この結果、本実施形態では、イベント通知のPublish及びSubscribeを行うことができる。なお、依頼情報テーブル55は、RAM104、HDD108、又はネットワークを介してイベント通知装置10に接続されるクラウド上のサーバー等に格納され得る。
以上、イベント通知プログラム、イベント通知方法及びイベント通知装置を上記実施形態により説明した。しかしながら、本発明にかかるイベント通知プログラム、イベント通知方法及びイベント通知装置は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記複数の実施形態に記載された事項は、矛盾しない範囲で組み合わせることができる。また、イベント通知装置の各機能は、ハードウェアにより構成されてもよく、ソフトウェアにより構成されてもよく、ハードウェアとソフトウェアとを組み合わせて構成されてもよい。
例えば、上記実施形態に係るイベント通知装置の構成は一例であり、本発明の範囲を限定するものではなく、用途や目的に応じて様々なシステム構成例があることは言うまでもない。
以上の説明に関し、更に以下の項を開示する。
(付記1)
イベント通知条件情報及び優先情報を含むイベント通知依頼を受け付け、
前記イベント通知条件情報に基づき前記イベント通知依頼に対する同期配信によるイベント通知の条件が成立するかを判定し、
前記イベント通知依頼に対する同期配信によるイベント通知の条件が成立したと判定された場合、前記優先情報の動的な条件に基づき特定された優先順位で前記イベントを通知する、
処理をコンピュータに実行させるイベント通知プログラム。
(付記2)
前記イベント通知の条件が成立した際の前記優先情報に基づき算出される優先順位の値に基づき、前記イベントの通知を破棄する、
付記1に記載のイベント通知プログラム。
(付記3)
イベント通知条件情報および優先情報を含むイベント通知依頼を受け付け、
前記イベント通知条件情報に基づき前記イベント通知依頼に対する同期配信によるイベント通知の条件が成立するかを判定し、
前記イベント通知依頼に対する同期配信によるイベント通知の条件が成立したと判定された場合、前記優先情報の動的な条件に基づき特定された優先順位で前記イベントを通知する、
処理をコンピュータが実行するイベント通知方法。
(付記4)
前記イベント通知の条件が成立した際の前記優先情報に基づき算出される優先順位の値に基づき、前記イベントの通知を破棄する、
付記3に記載のイベント通知方法。
(付記5)
イベント通知条件情報および優先情報を含むイベント通知依頼を受け付ける受付部と、
前記イベント通知条件情報に基づき前記イベント通知依頼に対する同期配信によるイベント通知の条件が成立するかを判定する判定部と、
前記イベント通知依頼に対する同期配信によるイベント通知の条件が成立したと判定された場合、前記優先情報の動的な条件に基づき特定された優先順位で前記イベントを通知する通知部と、
を有するイベント通知装置。
(付記6)
前記通知部は、
前記イベント通知の条件が成立した際の前記優先情報に基づき算出される優先順位の値に基づき、前記イベントの通知を破棄する、
付記5に記載のイベント通知装置。
10:イベント通知装置
11a〜11f:ガジェット
30、31:イベント通知の依頼元
40、41:イベント通知の発行元
50:データ連携部
51:受付部
52:記憶部
53:優先度算出部
54:通知部
55:依頼情報テーブル
55a:トピック名
55b:コールバック関数
55c:優先度(値)
55d:優先度(メソッド)

Claims (4)

  1. イベント通知条件情報および優先情報を含むイベント通知依頼を受け付け、
    前記イベント通知条件情報に基づき前記イベント通知依頼に応じたイベントが発生し、かつ、該イベントのメッセージの同期配信を実行するか否かによってイベント通知の条件が成立するかを判定し、
    前記イベント通知依頼に応じたイベント通知が発生し、かつ、メッセージの同期配信を実行する場合、前記イベント通知の条件が成立したと判定、前記優先情報の動的な条件に基づき特定された優先順位で前記イベントを通知する、
    処理をコンピュータに実行させるイベント通知プログラム。
  2. 前記イベント通知の条件が成立した際の前記優先情報に基づき算出される優先順位の値に基づき、前記イベントの通知を破棄する、
    請求項1に記載のイベント通知プログラム。
  3. イベント通知条件情報および優先情報を含むイベント通知依頼を受け付け、
    前記イベント通知条件情報に基づき前記イベント通知依頼に応じたイベントが発生し、かつ、該イベントのメッセージの同期配信を実行するか否かによってイベント通知の条件が成立するかを判定し、
    前記イベント通知依頼に応じたイベント通知が発生し、かつ、メッセージの同期配信を実行する場合、前記イベント通知の条件が成立したと判定、前記優先情報の動的な条件に基づき特定された優先順位で前記イベントを通知する、
    処理をコンピュータが実行するイベント通知方法。
  4. イベント通知条件情報および優先情報を含むイベント通知依頼を受け付ける受付部と、
    前記イベント通知条件情報に基づき前記イベント通知依頼に応じたイベントが発生し、かつ、該イベントのメッセージの同期配信を実行するか否かによってイベント通知の条件が成立するかを判定する判定部と、
    前記イベント通知依頼に応じたイベント通知が発生し、かつ、メッセージの同期配信を実行する場合、前記イベント通知の条件が成立したと判定、前記優先情報の動的な条件に基づき特定された優先順位で前記イベントを通知する通知部と、
    を有するイベント通知装置。
JP2015036899A 2015-02-26 2015-02-26 イベント通知プログラム、イベント通知方法及びイベント通知装置 Expired - Fee Related JP6418004B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015036899A JP6418004B2 (ja) 2015-02-26 2015-02-26 イベント通知プログラム、イベント通知方法及びイベント通知装置
US15/017,131 US10412033B2 (en) 2015-02-26 2016-02-05 Event notification method, event notification device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015036899A JP6418004B2 (ja) 2015-02-26 2015-02-26 イベント通知プログラム、イベント通知方法及びイベント通知装置

Publications (2)

Publication Number Publication Date
JP2016161952A JP2016161952A (ja) 2016-09-05
JP6418004B2 true JP6418004B2 (ja) 2018-11-07

Family

ID=56799707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015036899A Expired - Fee Related JP6418004B2 (ja) 2015-02-26 2015-02-26 イベント通知プログラム、イベント通知方法及びイベント通知装置

Country Status (2)

Country Link
US (1) US10412033B2 (ja)
JP (1) JP6418004B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10630534B1 (en) 2016-12-02 2020-04-21 Worldpay, Llc Systems and methods for subscribing topics and registering computer server event notifications
CN107967595B (zh) * 2017-10-30 2021-06-29 北京大数元科技发展有限公司 一种支持异步、同步计算的消息提醒方法及系统
CN109376054B (zh) * 2018-09-25 2023-02-28 广州虎牙信息科技有限公司 一种数据分发的方法、装置、终端设备及存储介质
JP6871956B2 (ja) * 2019-01-18 2021-05-19 キヤノン株式会社 情報処理装置およびクライアントアプリケーションのテスト方法、プログラム
EP4193501A1 (en) * 2020-08-06 2023-06-14 Nokia Technologies Oy Method, apparatus and computer program
CN113946333B (zh) * 2021-09-30 2022-06-14 广州市玄武无线科技股份有限公司 一种移动端逻辑脚本执行方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08129536A (ja) * 1994-10-28 1996-05-21 Oki Electric Ind Co Ltd イベント処理システム
US20040128622A1 (en) * 2002-12-26 2004-07-01 Mountain Highland Mary Method and server for communicating information between publishers and subscribers of web services
JP4427957B2 (ja) * 2003-03-05 2010-03-10 日本電気株式会社 プレゼンスシステム及びそれに用いるプレゼンス通知先制御方法並びにそのプログラム
US9374266B1 (en) * 2003-12-30 2016-06-21 Aol Inc. Tailoring notifications through resource specific notification controls
US7941448B2 (en) * 2005-08-26 2011-05-10 At&T Intellectual Property Ii, Lp System and method for event driven publish-subscribe communications
JP4647511B2 (ja) 2006-02-10 2011-03-09 株式会社エヌ・ティ・ティ・データ 非同期メッセージ処理システム及び非同期メッセージ処理プログラム
WO2010090027A1 (ja) 2009-02-05 2010-08-12 日本電気株式会社 分散型イベント配信システムにおけるブローカノードおよびイベントトピック制御方法
WO2012099617A1 (en) * 2011-01-20 2012-07-26 Box.Net, Inc. Real time notification of activities that occur in a web-based collaboration environment
US9479387B2 (en) * 2012-06-22 2016-10-25 Salesforce.Com, Inc. Methods and systems for priority-based notifications for mobile devices
JP5458147B2 (ja) * 2012-06-22 2014-04-02 日本電信電話株式会社 イベント通知方法、プログラム、および装置

Also Published As

Publication number Publication date
US10412033B2 (en) 2019-09-10
JP2016161952A (ja) 2016-09-05
US20160255165A1 (en) 2016-09-01

Similar Documents

Publication Publication Date Title
JP6418004B2 (ja) イベント通知プログラム、イベント通知方法及びイベント通知装置
US8407319B1 (en) Event-driven module loading
EP2724251B1 (en) Methods for making ajax web applications bookmarkable and crawlable and devices thereof
US8812658B1 (en) Pre-fetching of network page content
US10284671B2 (en) Dynamic bundling of web components for asynchronous delivery
US9274913B2 (en) Event pages for web applications and extensions
CN107038041B (zh) 数据处理方法、错误码动态兼容方法、装置和系统
US8516041B1 (en) Pre-fetching asynchronously requested content
CN103500210A (zh) 一种进行网页加载的方法、装置和浏览器
US20210240914A1 (en) System and method for dynamic webpage rendering with no flicker or flash of original content
US11930096B2 (en) Systems and methods for rendering interactive web pages
CN103559097A (zh) 一种浏览器中进程间通信的方法、装置和浏览器
CN106970872B (zh) 信息埋点方法及装置
US9253279B2 (en) Preemptive caching of data
US20180059887A1 (en) Direct navigation to modal dialogs
US20140297736A1 (en) Data interchange system
US9696887B2 (en) Integrated user interface using linked data
US10616317B2 (en) Method and system for affinity load balancing
US11301538B1 (en) Data management in multi-application web pages
CN113779122B (zh) 导出数据的方法和装置
CN110168521B (zh) 数据处理装置及数据处理方法
CN103544068A (zh) 一种浏览器中进程间通信的方法、装置和浏览器
US20180341717A1 (en) Providing instant preview of cloud based file
EP2630581B1 (en) Store client side data
NZ625325B2 (en) Data interchange system

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180903

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180924

R150 Certificate of patent or registration of utility model

Ref document number: 6418004

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees