JP6456984B2 - 装置間相互通知 - Google Patents

装置間相互通知 Download PDF

Info

Publication number
JP6456984B2
JP6456984B2 JP2016575096A JP2016575096A JP6456984B2 JP 6456984 B2 JP6456984 B2 JP 6456984B2 JP 2016575096 A JP2016575096 A JP 2016575096A JP 2016575096 A JP2016575096 A JP 2016575096A JP 6456984 B2 JP6456984 B2 JP 6456984B2
Authority
JP
Japan
Prior art keywords
event
indication
user account
user
image
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
JP2016575096A
Other languages
English (en)
Other versions
JP2017522664A (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2017522664A publication Critical patent/JP2017522664A/ja
Application granted granted Critical
Publication of JP6456984B2 publication Critical patent/JP6456984B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/50Secure pairing of devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本開示は概してモバイル装置およびデスクトップ装置等のコンピューティング装置に関し、特に、そうした装置上の通知の表示に関する。
多数のコンピューティング装置を手に入れて使用するユーザが増えている。例えば、或るユーザはスマートフォン、タブレットおよびラップトップコンピュータを使用することがある。
本開示の発明は、装置間相互通知に関する。
いくつかの革新的実装例では、本開示の主題は方法で実施できる。その方法は、ユーザアカウントに関連付けられた第1の装置で検出されたイベントを示す第1の標示を受信し、前記イベントの前記第1の標示に基づき前記イベントの一つまたは複数の特性を判定し、その判定した特性が少なくとも1つの選択基準に合致するかどうかを検出し、前記ユーザアカウントに関連付けられた一つまたは複数の装置から第2の装置を自動的に識別し、前記判定した特性が前記少なくとも1つの選択基準に合致した場合には、前記イベントの前記第1の標示を前記ユーザアカウントに関連付けられた前記第2の装置に提供することを備え、前記第1の装置での前記イベントを前記第2の装置から管理できるように、その提供された前記イベントの前記第1の標示が前記第2の装置に表示される。
いくつかの革新的実装例では、本開示の主題は機械読み取り可能媒体で実施できる。その機械読み取り可能媒体は、プロセッサによって実行されると当該プロセッサに動作を行わせる命令を含み、その動作が、ユーザアカウントに関連付けられた第1の装置でイベントを検出し、前記イベントの第1の標示をサーバに提供し、検出された前記イベントの特性が少なくとも1つの基準に合致した場合に前記サーバが前記イベントの前記第1の標示を前記ユーザアカウントに関連付けられた第2の装置に提供し、前記第1の装置で検出された前記イベントに対して実行されるべき行動を含む第2の標示であって、前記第2の装置に表示された前記イベントの前記第1の標示との対話があると生成される前記第2の標示を受信し、前記イベントを前記第1の装置で前記行動に基づき管理することを含む。
いくつかの革新的実装例では、本開示の主題はシステムで実施できる。そのシステムは、命令を備えるメモリと、プロセッサであって、ユーザアカウントに関連付けられた第1の装置で検出されたイベントを示す第1の標示を受信し、前記イベントの前記第1の標示に基づき前記イベントの一つまたは複数の特性を判定し、その判定した特性が少なくとも1つの選択基準に合致するかどうかを検出し、前記ユーザアカウントに関連付けられた一つまたは複数の装置を自動的に識別し、前記判定した特性が前記少なくとも1つの選択基準に合致した場合には、前記イベントの前記第1の標示を前記ユーザアカウントに関連付けられた前記一つまたは複数の装置にブロードキャストするように前記命令を実行するように構成される前記プロセッサとを備え、前記第1の装置での前記イベントを前記一つまたは複数の第2の装置のいずれからでも管理できるように、提供された前記イベントの前記第1の標示は前記一つまたは複数の装置に同時にリアルタイムで表示される。
当業者であれば、本発明の技術の様々な構成が例示として示され説明される以下の詳細な説明から本発明の技術の他の構成例が容易に明らかなものとなるであろう。本発明の技術は、他の異なる構成が可能であり、そのいくつかの詳細は、本発明の範囲から逸脱することなく、様々な他の点で変更することができると理解されるであろう。したがって、図面および詳細な説明は、単なる例示であり限定的ではないとみなされるべきである。
本発明の新規な特徴は添付の特許請求の範囲に記載されるが、説明の目的で、本発明のいくつかの構成例を以下に要約する添付図面に示す。
本発明の技術のいくつかの実装例を実施するのに適した装置とネットワーク環境の一例の図である。 表示されたイベント標示が含まれる、クライアントコンピューティング装置でのユーザインターフェースの例を示す図。 別のコンピューティング装置に起こったイベントに基づく通知が或るコンピューティング装置に表示される例示的状況を示す図。 別のコンピューティング装置に起こったイベントに基づく通知が或るコンピューティング装置に表示される例示的状況を示す図。 別のコンピューティング装置に起こったイベントに基づく通知が或るコンピューティング装置に表示される例示的状況を示す図。 別のコンピューティング装置に起こったイベントに基づく通知が或るコンピューティング装置に表示される例示的状況を示す図。 別のコンピューティング装置に起こったイベントに基づく通知が或るコンピューティング装置に表示される例示的状況を示す図。 別のコンピューティング装置に起こったイベントに基づく通知が或るコンピューティング装置に表示される例示的状況を示す図。 表示された通知の例を示す図。 通知インターフェースの異なる例を示す図。 通知インターフェースの異なる例を示す図。 図1に示されたいくつかの構成要素間でのメッセージングフローの例を示す図。
以下の詳細な説明は、本発明の技術の様々な構成の説明として意図されており、本発明の技術を実施できる唯一の構成を代表するものを意図していない。添付図面は、本明細書に組み込まれ、詳細な説明の一部を構成する。本発明の技術は、明細書に記載された特定の詳細に限定されず、これらの特定の詳細構成なしで実施されてもよい。
ユーザ達はしばしば多数のコンピューティング装置を使用することがあり、これらの装置には、スマートフォン、タブレットコンピュータ、デスクトップコンピュータ、スマートウォッチ等が含まれる。あるコンピューティング装置(例えばスマートフォン)からユーザが離れているときに、そのコンピューティング装置にイベントが生じることがある。すると、そのユーザはそのイベントを見逃し、ユーザがそのコンピューティング装置の近くにいるときに生じたそのイベントを後になってから気付くことがある。例えば、ユーザが仕事場にいてデスクトップコンピュータで作業しているときに、自宅のユーザのスマートフォンに電話がかかることがある。この状況では、そのユーザは、自分のスマートフォンが鳴っていることや電話がかかってきていることに気付けない。その結果、そのユーザは、例えばそのユーザの至急の対処が必要なタイムセンシティブな電話呼び出しを逃すことがある。更に、そのスマートフォンが鳴り続けたり振動し続けることがあり、スマートフォンの近くにいる人を煩わせる。別の例では、スマートフォンがユーザのハンドバッグやポケットの中にあるときにそのユーザが別の装置で作業していたり別の装置に注意を向けていることがある。ハンドバッグやポケットの中のスマートフォンに通知(例えば電話呼び出しまたはメッセージ)があると、ユーザはその別の装置から注意を外し、スマートフォンを取出して、メッセージすなわち通知を見る必要がある。したがって、実行中の作業に対するユーザの注意が中断される。別の状況例では、ユーザがスマートフォンから離れている間にメッセージングサービスメッセージ(例えばショートメッセージ)をユーザのスマートフォンで受信することがある。この状況では、ユーザはメッセージを受信したことに気付かず、ユーザが物理的にスマートフォンの近くはいてそのスマートフォンを使えるまでメッセージに対して返信できないであろう。更に別の状況例では、ユーザが頻繁に様々な場所に移動することがあり、そのユーザがそれらの場所でユーザに使用できる任意の装置を使用していることがある。この場合にも、ユーザは、様々な装置の内の特定の装置に送信されたメッセージを見逃すことがある。というのは、ユーザがその特定の装置の近くにおらずその特定の装置を使用できず、その代わりに別の装置を使用しているからである。これらの状況例で、ユーザエクスペリエンスは損なわれる。
いくつかの実装例では、ユーザアカウントに関連付けられた第1の装置で検出されたイベントの第1の標示がサーバで受信され得る。一例では、第1の装置は、ユーザがユーザ名およびパスワードを含み得るユーザ信用証明をもってその装置にサインインまたはログインすると、ユーザアカウントに関連付けられ得る。別の例では、第1の装置は、ユーザが当該第1の装置にインスタンス化されたアプリケーションにサインインまたはログインすると、ユーザアカウントに関連付けられ得る。更なる別の例では、第1の装置は、ユーザアカウントに事前登録または関連付けられてもよい。第1の装置で検出されるイベントは、第1の装置での音声呼(voice call)リクエストの受信、第1の装置でのメッセージングサービスメッセージの受信、または、第1の装置でのバッテリーレベルの所定レベルに対する変化、のうちの一つ以上を含むことができるが、それらに限定されない。
イベントの第1の標示に基づくイベントの一つまたは複数の特性が判定され得る。当該イベントの特性は、そのイベントを受信した時刻、そのイベントのカテゴリ、イベントの優先度、または、イベントの開始に関連付けられたユーザアカウントを含み得るが、それらに限定されない。いくつかの実装例では、判定されたイベントの一つまたは複数の特性は、通知を受信したクライアントコンピューティング装置の位置、型番または装置のタイプ(例えば、タブレット、携帯電話、スマートフォン等)を含むことができる。イベントの特性は、イベントのカテゴリまたはタイプ(例えば、ショートメッセージ、電話呼び出し、ビデオ呼び出し等)も含むことができる。判定された特性が少なくとも1つの選択基準に合致するかどうかが検出されてもよい。例えば、判定された特性がユーザに関連付けられたユーザ連絡先からのメッセージングサービスメッセージの第1の装置での受信を含む場合に、選択基準が合致したとされ得る。別の例では、判定された特性がユーザに関連付けられたユーザ連絡先からの、第1の装置での不在着信を含む場合に、選択基準が合致したとされ得る。更なる別の例では、判定された特性が第1の装置での低バッテリー警告を含む場合に、選択基準が合致したとされ得る。いくつかの実装例では、判定された特性が少なくとも1つの選択基準に合致しなければ、イベントの第1の標示は、ユーザアカウントに関連付けられた第2の装置に、表示のためにブロードキャストされなくてよい。この手段によって、イベントの通知を選択的に行うことができる。
ユーザアカウントに関連付けられた一つまたは複数の装置から第2の装置(および任意の追加装置)を自動的に識別できる。第2の装置は、例えば、ユーザが第1の装置にログインするのに使用するユーザ名およびパスワードを含み得るユーザ信用証明をもってサインインまたはログインする装置であり得る。判定された特性に基づくイベントの第1の標示は、ユーザアカウントに関連付けられる第2の装置に提供される。第1の装置でのイベントに第2の装置から対処できるように、その提供されたイベントの第1の標示が第2の装置に(および任意の追加装置に)リアルタイムでまたはほぼリアルタイムで表示され得る。非限定的な例では、そのイベントの標示は、第2の装置にブラウザまたは他のウェブコンテンツ閲覧システムに通知として表示され得る。ユーザがその第2の装置の物理的近傍にいれば、ユーザは、その通知と対話して、第1の装置でのイベント(例えば、電話に出る、電話に出ない、文字返信、装置のオフ等)に機を逸せずに対処し得る。
このようにして、ユーザは、ユーザから離れている第1の装置でイベントが発生するとすぐに、そのユーザの近くにあり得る第2の装置でそのイベントの標示を視認できる。更に、そのユーザは第2の装置に表示された通知と対話することで、第1の装置に生じているイベントに対処することができる。これにより、ユーザエクスペリエンスが向上する。開示した実装例は、ユーザがそのユーザの装置から物理的に遠くにいる状況に限定されないと理解される。開示した実装例は、イベントの生じた装置とは異なるコンピュータ等の任意の装置にユーザの主要な注意が払われている場合にも有用である。たとえば、ユーザの電話機にイベントが生じたときに、その電話機がユーザのポケット内にあるかまたはその電話機の呼び出し音が無効化されていることがある。この状況で、ユーザがコンピュータ画面(例えばラップトップまたはデスクトップの画面)の前に着席していれば、そのユーザは、電話機に生じたイベントの通知をそのコンピュータ画面上で見ることができる。これにより、ユーザは、(電話機をポケットやハンドバッグから取り出すこと等によって)電話機へ注意を向ける代わりに、ユーザの電話機でのイベントによる中断にどのように取り組むかをより速やかに判断できる。この例は、例示であり、開示した実装例に対する限定を意図していない。
本発明の技術の居つくかの側面は、ユーザアカウントに関する情報をサーバに記憶させることを含む。サーバは、そのような情報の記憶を防止する選択肢を有する。ユーザ情報(例えば、ユーザのアカウント情報に関する情報、ユーザの好みに関する情報等)をプログラムまたは機能が収集または共有するかどうかを制御する機会がユーザに提供されてもよい。したがって、ユーザは、ユーザに関する情報がサーバによってどのように収集され使用されるかについて制御できる。
図1は、本発明の技術のいくつかの実装例に従う装置間相互(cross-device)通知のための例示的アーキテクチャの図である。サーバ180はプロセッサ112、メモリ120、記憶装置126、バス124、入力/出力モジュール128、入力装置116、出力装置114、および、通信モジュール118を含む。メモリ120は、イベント判定部132およびクライアント装置識別部134を含む。サーバ180は、出力装置(例えば、タッチスクリーンディスプレイ、非タッチスクリーンディスプレイ)、ユーザ入力を受信するための入力装置(例えば、キーボード、タッチスクリーン、またはマウス)を追加で含むことができる。いくつかの実装例では、サーバ180は、クライアントコンピューティング装置190上で実行するブラウザまたは専用アプリケーションを介したユーザ対話を容易にするための、または、図1の構成要素を含むとともに他の構成要素に格納されたデータを処理するための、一つまたは複数のモジュールを含む。サーバ180は、単一のプロセッサを輸する単一のマシンとして実施されてもよく、マルチプロセッサマシンでもよく、または、複数のプロセッサを有する複数のマシンを含むサーバーファームとして実装されてよい。通信モジュール118は、サーバ180がネットワーク150を介してクラウドメッセージングサーバ110、キャッシュサーバ196、およびクライアントコンピューティング装置190、192に対してデータを送受信できるようにする。図1には2つのクライアントコンピューティング装置が示されているが、本システムはこれらのクライアントコンピューティング装置に限定されず、例えば並列にリアルタイムに任意の数のコンピューティング装置を用いて動作および通信してもよい。
いくつかの実装例では、サーバ180は、クラウドメッセージングサーバ110と関連付けられることができ、ネットワーク150を介してクラウドメッセージングサービス110に対してデータを送受信できる。クラウドメッセージングサービス110は、サーバ180から受信したデータをクライアントコンピューティング装置190、192に送信し得る。クライアントコンピューティング装置190、192は、クラウドメッセージングサービス110を介してサーバ180に対してデータを送受信してよく、サーバ180に対してデータを直接送受信してよい。この例は例示であり、開示の実装例を限定するものではない。いくつかの実装例では、クラウドメッセージングサーバ110によって提供される機能がサーバ180に含められてよく、専用のクラウドメッセージングサーバ110を必要としなくてよい。いくつかの実装例に従うクラウドメッセージングサーバ110の動作を以下にさらに説明する。
いくつかの実装例では、キャッシュサーバ196は、限定ではないが、ビデオ、オーディオ、テキスト、画像、またはそれらの任意の組み合わせを含むがデータを格納またはキャッシュし得る。キャッシュサーバ196に格納されたデータは、ウェブページに、通知欄に、または他のウェブコンテンツ領域に表示するために提供されてよい。いくつかの実装例では、キャッシュサーバ196に格納された一部のデータは、所定の存続時間または有効期限を有することができ、その時間の経過後に、そのデータはキャッシュサーバ196から削除またはクリアされ得る。
いくつかの実装例では、サーバ180は、ソーシャルデータを含むソーシャルデータサーバ194に関連付けられることができ、サーバ180は、ネットワーク150を介してソーシャルデータサーバ194に対してデータを送受信することができる。いくつかの実装例では、ソーシャルデータサーバ194は、ソーシャルネットワーキングサービスに関連するコンテンツ(例えば投稿されたコンテンツアイテム)を格納し得る。ソーシャルデータサーバ194は、ユーザアカウントに関連するデータおよびユーザアカウントに関連するコンテンツアイテムを格納してもよい。例えば、ソーシャルデータサーバ194は、あるユーザに関連付けられたあるユーザアカウントによって閲覧されたか、共有されたか、コメントされたか、お気に入りとされたか、または、好きじゃないとされたコンテンツアイテムを示すデータを含むことができる。ソーシャルデータサーバ194は、ソーシャルネットワーキングサービスに関連付けられたユーザアカウント間のソーシャルコネクションを示すソーシャルコネクションデータ構造を格納することができる。ソーシャルデータサーバ194はまた、そのユーザによって消費されてマルチメディアサーバ196に格納されたマルチメディアコンテンツに対して作成されたユーザコメント(または注釈)も格納してよい。
いくつかの実装では、クラウドメッセージングサーバ110、キャッシュサーバ196、ソーシャルデータサーバ194、およびサーバ180は、ネットワーク150を介して、互いに、およびクライアントコンピューティング装置190、192と通信し得る。ネットワーク150は、インターネット、イントラネット、ローカルエリアネットワーク、ワイドエリアネットワーク、有線ネットワーク、無線ネットワーク、または仮想プライベートネットワーク(VPN)を含むことができる。クラウドメッセージングサーバ110、キャッシュサーバ196、ソーシャルデータサーバ194、およびサーバ180は1つだけ示されているが、本発明の技術は、任意の数のクラウドメッセージングサーバ110、キャッシュサーバ196、ソーシャルデータサーバ194、およびサーバ180と、任意の数のクライアントコンピューティング装置とで実施し得る。いくつかの非限定的な実装例では、単一のコンピューティング装置がクラウドメッセージングサーバ110、キャッシュサーバ196、ソーシャルデータサーバ194、およびサーバ180の機能を実施してもよい。
クライアントコンピューティング装置190または192は、ラップトップコンピュータ、デスクトップコンピュータ、携帯電話、パーソナルデジタルアシスタント(PDA)、タブレットコンピュータ、ネットブック、一つまたは複数のプロセッサが埋め込まれたテレビ、物理マシン、または仮想マシンであり得る。クライアントコンピューティング装置190または192はいずれもキーボード、マウス、ディスプレイ、またはタッチスクリーンのうちの一または複数を含むことができる。クライアントコンピューティング装置190または192は、ウェブページとともにコンピューティング装置でイベントが生じていることの通知および標示を表示するように構成されたブラウザをインスタンス化し得る。実装例に従って提供される通知および他のコンテンツはブラウザの外に表示されてよいと理解されたい。
いくつかの実装例では、クライアントコンピューティング装置190、192は、ハードウェアメモリに実装されて一つまたは複数のプロセッサを使用して実行可能なソフトウェアを含むことができる。このソフトウェアは、クライアント装置がサーバ180と通信できるようにする。例えば、このソフトウェアは、サーバ180からのデータ(例えばメッセージおよび通知)の受信、およびサーバ180および図1に示す他の構成要素へのデータの送信を可能にし得る。このソフトウェアは、クライアント装置190、192に予めインストールされてもよいし、ユーザによってインストールされてもよい。このソフトウェアは、クライアントコンピューティング装置190、192がソフトウェア更新を実行するときに、クライアントコンピューティング装置190、192に自動的にインストールされてもよい。このソフトウェアは、クライアントコンピューティング装置190、192を送信機(または送り側(source))としてまたは受信機(または受け側(sink))としていつでも自動的に構成および再構成してもよい。このソフトウェアは、クライアントコンピューティング装置190、192が自動的にイベント(例えば、電話着信、受信メッセージ、低バッテリー等)を検出し、検出したイベントの標示をサーバ180に提供するように構成することができる。このソフトウェアは、モバイルアプリケーションマーケットまたはモバイルアプリケーションストアを介してダウンロードできるようになっていてもよい。いくつかの実装例では、ユーザアカウント識別子(例えば電子メールアドレス)または任意の他の識別子は、コンピューティング装置190または192をサーバ180に登録することを可能にするソフトウェアを介してユーザから受信され得る。
いくつかの実装例では、有効なユーザアカウント識別子およびパスワードがコンピューティング装置190または192に受信される(すなわちユーザが認証される)と、そのコンピューティング装置はそのユーザアカウントに関連付けられ得る。例えば、あるユーザがクライアントコンピューティング装置190、192の両方を所有しているかまたは両方にアクセスしている場合、そのユーザは、ユーザアカウント識別子およびパスワードをコンピューティング装置190、192のいずれか1つにインストールされたソフトウェアに提供して両方のコンピューティング装置をユーザアカウントに関連付け得る。サーバ180に登録したことの標示はそのソフトウェアを介して受信してもよい。このようにして、コンピューティング装置180はサーバ180と通信するために登録され得る。
いくつかの実装例では、クライアントコンピューティング装置のサーバ180への登録プロセスに非同期的障害ポイントがあることがある。言い換えれば、それらクライアントコンピューティング装置は、クライアントコンピューティング装置190、192またはサーバ180の接続状態に基づいて、サーバ180への接続および登録のために自動的に再試行(または再試行を回避)してもよい。このようにして、クライアントコンピューティング装置190、192とサーバ180が接続状態に維持されるようにする。いくつかの実装例では、ユーザが接続状態およびサービス(またはサービスの健全性)に関連する他のパラメータをチェックできるように、ユーザコンピューティング装置190、192にユーザインターフェースが設けられ得る。いくつかの実装例では、コンピューティング装置190、192はサーバ180と通信するように事前登録または事前構成されてもよく、コンピューティング装置190、192の追加の登録または構成が必要とされなくてもよいことを理解されたい。
上述したように、サーバ180のメモリ120は、イベント判定部132およびクライアント装置識別部134を含み得る。
いくつかの実装例では、イベント判定部132は、ユーザアカウントに関連付けられた第1の装置(以下、クライアント装置190)で検出されたイベントの第1の標示を受信し、そのイベントの第1の標示に基づいて、そのイベントの一つまたは複数の特性を判定する。いくつかの実装例では、イベント判定部132は、特定のタイプのイベントについて通知を生成してもよい。例えば、イベントの第1の標示がイベント判定部132で受信されたとき、イベント判定部132は、そのイベントが特定のタイプのイベント(例えば、電話呼び出し、不在着信、ある連絡先からのテキストメッセージ)であるかどうかをチェックし得る。特定のタイプのイベントは、優先のまたはタイムセンシティブなイベントであってよい。イベントが特定のタイプのイベントであると判定された場合、イベント判定部132は、第2の装置(以下、クライアント装置192)に表示するイベントの通知を識別して送信するようクライアント装置識別部134に示し得る。そうでなければ、いくつかの実装例では、イベントが特定のタイプのイベントではないと判定された場合、イベント判定部132は、イベントの通知を識別して第2の装置(以後、クライアント装置192)に表示することを、クライアント装置識別部134に示さなくてよい。このようにして、イベント判定部132は、イベントの特性に基づいて、クライアントコンピューティング装置に通知するための特定のイベントを選択することができる。したがって、意図された通知の視聴者は、その視聴者にとって有用であろう通知によってのみ中断されることとなろう。いくつかの実装例では、開示された実装例は、唯一であるか、唯一のソースであるか、または第1のコンピューティング装置(例えばクライアントコンピューティング装置190)において際立っている通知を選択的に送信し得る。このようにして、ユーザは、第2のコンピューティング装置(例えばクライアントコンピューティング装置192)に中継される重複通知を受信する必要はなく、その重複通知によって潜在的に煩わされることもない。いくつかの実装例では、特定のタイプのイベントを含むイベントのカテゴリはデータベース192に格納され得る。
上述したように、いくつかの実装例では、イベントの特性は、そのイベントが受信された時刻、そのイベントのカテゴリ、そのイベントの優先度、またはそのイベントの開始に関連付けられたユーザアカウントを含むことができるが、これらに限定されない。いくつかの実装例では、判定されたイベントの一つまたは複数の特性は、通知を受信したクライアントコンピューティング装置の位置、型番または装置のタイプ(例えば、タブレット、携帯電話、スマートフォン等)を含むことができる。イベントの特性は、そのイベントのカテゴリまたはタイプ(例えば、ショートメッセージ、電話呼び出し、ビデオ呼び出し等)を含んでもよい。いくつかの実装では、イベント判定部132は、判定された特性が少なくとも1つの選択基準と合致するかどうかを検出してよい。例えば、判定された特性がユーザアカウントに関連付けられたユーザ連絡先からのメッセージングサービスメッセージの第1の装置での受信を含む場合に、選択基準が合致したとされ得る。別の例では、判定された特性がユーザアカウントに関連付けられたユーザ連絡先からの、第1の装置での不在着信を含む場合に、選択基準が合致したとされ得る。更なる別の例では、判定された特性が第1の装置での低バッテリー警告を含む場合に、選択基準が合致したとされ得る。
クライアント装置識別部134は、ユーザアカウントに関連付けられた一つまたは複数の装置から第2の装置を自動的に識別し、そのイベントの第1の標示を、判定された特性に基づいて、ユーザアカウントに関連付けられたクライアント装置192に提供する。例えば、クライアント装置識別部134はネットワーク150に接続されたデータベース192を点検して、そのユーザアカウントにどの装置が関連付けられているかを判定し得る。このような装置とユーザアカウントとの関連付けは、例えばサーバ180への登録中にユーザアカウント情報がそのサーバによって受信されたときに、サーバ180によって実行されてよい。クライアント装置192では、クライアント装置190での当該イベントの管理をクライアント装置192からできるように、提供されたイベントの第1の標示がクライアント装置192に表示される。いくつかの実装例では、判定された特性が少なくとも1つの選択基準に合致しなければ、そのイベントの第1の標示は、クライアント装置識別部134によってユーザアカウントに関連付けられた第2の装置に、表示のためにブロードキャストされなくてよい。このようにして、開示された実装例はイベントの通知に際して選択的なものとなる。
図2は、クライアントコンピューティング装置192(例えばデスクトップまたはラップトップ)における例示的なユーザインターフェース200を示すが、このユーザインターフェース200には、この例ではスマートフォンであり得るコンピューティング装置190で検出された複数のイベントの標示(例えば通知)が表示されている。標示されたイベントの表示すなわち通知202は、コンピューティング装置190のバッテリーレベルが「低」であり、完全バッテリーレベルの「10%」であることを示す。通知204は、ユーザAからのテキストメッセージを受信したことを示す。そのテキストメッセージのコンテンツも表示される(例えば、「ねぇ、ランチに行かない?」)。通知206は、ユーザAからの不在着信があったことを示す。上述したように、いくつかの実装例では、通知202〜206は、クライアントコンピューティング装置192と、ユーザアカウントに関連付けられた他の任意のクライアントコンピューティング装置とで、クライアントコンピューティング装置190で生じたイベントに対してリアルタイムでまたはほぼリアルタイムで同時に表示され得る。したがって、これらの通知は、ユーザアカウントに関連付けられた、クライアントコンピューティング装置192以外の装置で同時に表示され得ることを理解されたい。これにより、ユーザは、ユーザアカウントに関連する可能性のあるクライアントコンピューティング装置のどれであっても通知を便利に見ることができ、そのユーザが通知を見たり対話するのに特定の装置の近くに束縛される必要はなくなる。
このようにして、開示された実装例は、統一された通知、メッセージングおよびコンテンツストリームを提供し得る。さらに、通知は、オーディオ、ビデオ、またはそれらの任意の組み合わせを含んでもよい。通知との対話は、音声、タッチ、スタイラスまたは他の任意のメカニズムを介して実行されてよい。
図2に戻ると、後に受信されたイベントの標示が、先に受信されたイベントの標示よりも上に表示され得る。例えば、通知204は、通知206に関連するイベントの後に発生したイベントを示すことができる。この例は例示的なものであり、開示された実装例の限定することを意図しない。通知202〜206は、通知に関連付けられたユーザアカウント、通知のカテゴリ、または通知の任意の他の特性を視覚的に表示するような、画像または他のコンテンツと関連付けられてよい。例えば、通知206に関連する画像208は、ユーザAのユーザアカウントに関連付けられた画像である。
いくつかの実装例では、クライアントコンピューティング装置190、192に関連付けられたユーザアカウントとは異なる別のユーザアカウントからイベントが開始されたときに画像(例えば画像208)を表示するために、そのイベントが発生したクライアントコンピューティング装置(例えばクライアントコンピューティング装置190)は、他のユーザアカウントに関連付けられた画像がそのクライアントコンピューティング装置190で利用可能であるかどうかを判定することができる。その画像がクライアントコンピューティング装置190で利用可能である場合、クライアントコンピューティング装置190は、その画像に対する参照を生成する。その参照は、ハッシュ値またはメッセージダイジェストであってよい。非限定的で例示的な例として、ハッシュ値は暗号ハッシュまたはセキュアハッシュアルゴリズム(SHA)(例えばSHA−256)を使用して生成されてよい。生成された参照に基づいて、クライアントコンピューティング装置190は、その画像がリモートキャッシュサーバ196でも利用可能であるかどうかを判定し得る。その画像がキャッシュサーバ196で利用可能ではないと判定された場合、クライアントコンピューティング装置190は、その画像をキャッシュサーバ196にアップロードしてよい。
その画像がキャッシュサーバ196で利用可能であると判定された場合、クライアントコンピューティング装置190は、生成した参照をサーバ180に提供されたイベントの第1の標示に含めることができる。クライアントコンピューティング装置192は、サーバ180からの通知中のその参照を受信し、その参照先の画像がクライアントコンピューティング装置192でまだ利用可能ではない場合には、その参照に基づきキャッシュサーバ196から画像を取得し得る。いくつかの実装例では、クライアントコンピューティング装置190は、アプリケーションプログラミングインターフェース(API)を使用して、その画像をキャッシュサーバ196にアップロードしてよい。その画像は、任意の画像フォーマットまたは符号化されたものであり得る(例えば、JPG、PNG等)。いくつかの実装例では、画像がキャッシュサーバ196にアップロードされると、キャッシュサーバ196は参照値(reference value)を生成し、その参照値をクライアントコンピューティング装置190に返す。この参照は、クライアントコンピューティング装置192を含む任意のクライアントコンピューティング装置によって、その画像を取得して表示するために使用される。
いくつかの実装例では、クライアントコンピューティング装置190、192は、「画像確認」機能を使用して画像がキャッシュサーバ196で利用可能であるかどうかを判断することができる。いくつかの実装例では、クライアントコンピューティング装置190、192は、画像取得機能を使用して、その画像のハッシュ値を提供し、それと引き換えにキャッシュサーバ196から画像を取得する。このようにして、クライアントコンピューティング装置190にイベントが発生するたびにそのクライアントコンピューティング装置190からサーバ180に(およびクライアントコンピューティング装置192に)に画像を送信する必要がなくなる。代わりに、画像をキャッシュサーバ196にアドレス指定する参照が、クライアントコンピューティング装置190、192およびサーバ180によって提供されてよい。その画像はその参照に基づいてキャッシュサーバ196から取得され得る。したがって、画像を送信するために必要とされたかもしれない追加のネットワーク帯域幅の使用を節約できる。
いくつかの実装例では、キャッシュサーバ196内の画像(および他のコンテンツ)へのアクセスを制御するために、クライアントコンピューティング装置190、192は、画像に対して固有的に生成されたキーを用いて各画像を暗号化することができる。いくつかの実装例では、その生成されたキーはクライアントコンピューティング装置190、192(またはサーバ180)によってセキュアメッセージングシステムを介して、画像を含む標示(例えばメッセージまたは通知)を対応するユーザに表示するであろう一つまたは複数の他の装置に送信され得る。いくつかの実装例では、サーバ180が画像の配送後に暗号キーを保持しないことがあるので、キャッシュサーバ196内の画像は暗号化されたままで安置されることができ、有効な暗号キーを所有していない権限のないユーザやシステムオペレータによって読み取られることはない。いくつかの実装例では、固有的画像暗号キーは、画像それ自体のハッシュから生成さえ得る。これは、所与の画像(例えばユーザのプロフィール画像)が、キャッシュサーバ196に一旦格納されるとその所与の画像を参照する他のすべての通知でその所与の画像を共有できるようになる。しかしながら、その画像暗号キーを有するであろうクライアントコンピューティング装置190、192は、ユーザへの表示用にその画像を復号できる。
暗号学においてキー付きハッシュメッセージ認証コード(HMAC)は、秘密暗号キーと組み合わせて暗号ハッシュ関数を含むメッセージ認証コード(MAC)を演算するための構築物(construct)となり得る。ソルト(salt)値は、パスワードまたはパスフレーズをハッシュする関数への追加入力として使用されるランダムなデータであり得る。
Image_index=HMAC(index_salt,image) …(1)
lmage_key=HMAC(key_salt,image) …(2)
Cached_image=Encode(image_key,image) …(3)
上記例示の関数(1)を参照すると、image_indexは、HMAC(key_salt,image)として演算され、ここで、「image」は、画像データであり、index_saltはソルト値である。関数(2)を参照すると、image_keyはHMAC(key_salt,image)として演算され、ここで「image」は画像データであり、key_saltはソルト値である。image_indexとimage_keyは、サーバ180から認証済みのクライアント装置(例えばクライアントコンピューティング装置190、192)への各標示(例えば通知メッセージ)において送信されることができ、それら認証済みのクライアント装置が、対応するキャッシュされた画像を取得して復号できるようになる。キャッシュされた画像は、image_indexをアクセスキーとして用いてキャッシュサーバ196に格納しキャッシュサーバ196から取得され得る。
いくつかの実装例では、各キャッシュされた画像は、イベントの第1の標示とともに第2の装置(例えばクライアントコンピューティング装置192)に送信される前に、第1の装置(例えばクライアントコンピューティング装置190)で生成された固有キーで暗号化され得る。いくつかの実装例では、各キャッシュされた画像は、クライアントコンピューティング装置190で生成されてクライアントコンピューティング装置192に送信されるコンテンツベースキー(content-based key)に関連付けられる。コンテンツベースキー(例えば画像のハッシュ)の利点は、各(暗号化)画像がキャッシュサーバ196に一度だけ格納されるだけでよいことである。というのは、その画像を復号するのに固有キーは必要とされないであろうからである。いくつかの実装例では、イベントの標示を有するTTL(time-to-live)値が含められることがあり、このTTL値は第1の標示の(または任意の他の標示または通知メッセージの)有効期限を示すものである。いくつかの実装例では、TTL値は、イベントの標示に添付または埋め込まれたカウンタまたはタイムスタンプとして実装され得る。所定のイベントカウントまたはタイムスパンが徒過すると、そのイベントの標示は破棄されてよい。このようにして、TTL値の使用により、有効期限前に送達されないかもしれない順番待ちのイベントの標示を除去することによって、開示した実装例は最適化され得る。
図3Aは、クライアントコンピューティング装置190がスマートフォンで、クライアントコンピューティング装置192がラップトップコンピュータである場合の例を示す。図3Aにおいて、クライアントコンピューティング装置190に関連付けられた通知はまだ表示されていない。図3Bは、クライアントコンピューティング装置190にユーザBからの電話呼び出しがかかっている状況を示す。この電話呼び出しがかかると、クライアントコンピューティング装置192に通知310が表示される。この通知は発呼側すなわちユーザBの画像を含むことができる。一例では、通知がクライアントコンピューティング装置190に生じた電話着信イベントの電話着信通知であり、その通知は、クライアントコンピューティング装置190の呼び出し音が鳴っているかバイブレーションしているかあるいはサイレントモードであるかに関わらず、その電話着信とリアルタイムにクライアントコンピューティング装置192に表示され得る。この通知は、その電話呼び出しの発信元の番号に関連付けられた発呼側識別情報(または名称)および通知の説明(例えば「あなたの電話機が鳴っています」)を表示してよい。
図3Cおよび図3Dは、クライアントコンピューティング装置190が電話着信状態のままであり、クライアントコンピューティング装置192でのユーザは、その電話の受信中または着信中にいつその電話に出るかを選ぶであろう。加えて、コンピューティング装置192でユーザがその電話を却下したりその電話に出られるように、電話に出ないボタンおよび電話に出るボタンも表示され得る。
このように、デスクトップまたはラップトップコンピュータを使用しているユーザが、電話着信の通知をリアルタイムで視認し対話することができる。この通知は、クライアントコンピューティング装置192で実行されているブラウザに表示されてよい。ユーザがクライアントコンピューティング装置192でその電話に出ると、クライアントコンピューティング装置190は呼び出し音やバイブレーションを止め、ユーザは(クライアントコンピューティング装置192に関連付けられたマイクロフォンおよびスピーカを用いて)発呼者と会話することとなろう。開示された実装例は地理的距離によって制限されない。たとえば、ユーザがニューヨークにあるユーザの机にいるときに、北京にあるユーザ電話機が電話呼び出しを受信することがある。このユーザはニューヨークにいるけれども、北京にある電話機にかかってきた電話呼び出しにリアルタイムに応じることができる。この例は例示であり、開示された実装例を限定することを意図していない。
いくつかの実装例では、ユーザが電話に出ると、メッセージングサービスを介して表示され得るユーザ状態識別子は、そのユーザが例えばユーザBと音声電話中であることを示すように変更されてよい。そのユーザは、前記通知に表示され得る「ハングアップ」要素または電話終了ユーザ要素を選択してその電話を終了し得る。ユーザがその電話に出ないことを選択した場合には、図3Eに示すように、その電話呼び出しが止まり未応答のままになった後に、「あなたの電話機が鳴っています」という通知は自動的に「電話に出ませんでした」に変化する。どのような通知の変化および却下であっても、ユーザのアカウントに関連付けられたすべての装置に瞬時に伝搬される。このようにして、ユーザのアカウントに関連付けられたすべてのクライアントコンピューティング装置が同期状態に維持され得る。
いくつかの実装例では、電話呼び出しに関連する音声データがクライアントコンピューティング装置190からサーバ180を介してクライアントコンピューティング装置192に中継されてよい。他の実装例では、その音声データは、クライアントコンピューティング装置190をバイパスしてよく、発呼側装置から直接サーバ180を介してクライアントコンピューティング装置192に中継されてよい。他の任意の形式のデータ中継または送信を使用してよい。ユーザがクライアントコンピューティング装置190または192を使用しているかどうかを発呼者が知る必要も心配する必要もない。このように、本開示の実施形態は、発呼者と被呼者の両方の視点で、シームレスでリアルタイムのエクスペリエンスを提供する。ユーザが電話に出ないかまたはその電話を却下した場合には、不在着信通知(例えば通知206)がクライアントコンピューティング装置192に表示されてよい。さらに、通知202〜206は、クライアントコンピューティング装置190,192にも関連づけられているユーザアカウントに関連づけられている他の装置に、クライアントコンピューティング装置190、192と共に、同時にリアルタイムに(またはほぼリアルタイムに)表示されてよい。
通知がクライアントコンピューティング装置190で受信されたメッセージングサービスメッセージ(例えばショートメッセージングサービスメッセージすなわちSMS)の通知である一例では、その通知は、そのメッセージを受信すると即座にクライアントコンピューティング装置192に表示され得る。そのクライアントコンピューティング装置190は着信音可能でも、バイブレーションまたは静音モードであってもよい。この通知は、そのメッセージの発信側の、番号またはアカウントに関連する発呼者識別子(または名前)を表示してもよい(例えば画像208)。このようにして、そのメッセージの通知(例えば通知204)を、デスクトップまたはラップトップコンピュータを使用しているユーザがリアルタイムまたはほぼリアルタイムで視認し得る。この通知は、クライアントコンピューティング装置192で実行中のブラウザに表示され得る。図4Aに示すように、通知402は、ブラウザの外部で、かつ、クライアントコンピューティング装置192のデスクトップ領域に表示されてよい。図3Fには、クライアントコンピューティング装置192のデスクトップ領域に通知が表示される別の状況を示す。このデスクトップ領域は、クライアントコンピューティング装置192で実行中の他の表示されるアプリケーションとは独立した領域であり得る。
図4Bは、通知414および406を含む通知インターフェース420を示す。通知406は、現在の気象状態を示す通知である。この気象状態は、クライアント装置190またはクライアント装置192の地理的位置に関連付けられてよい。この地理的位置は様々であり得る(例えば、ある家の異なる部屋、異なる都市、国または大陸等)。ユーザは、クライアントコンピューティング装置192で通知と対話して、ユーザAのメッセージングサービスメッセージ(たとえば、「ねぇ、ランチに行かない?」)に対し、返信要素410または「私は忙しい」要素412によって応じてよい。非限定的な例として、要素412を選択することは、ユーザが現在忙しくて応答できないといった事前設定済みの返事を、メッセージの送信者に提供してよい。ユーザは、個々の通知に関連付けられた要素414を閉じることまたは却下することを選択することによって、任意の通知を却下することができる。いくつかの実装例では、ユーザがある通知を却下すると、そのユーザのアカウントに関連付けられた他のコンピューティング装置に表示されているであろう当該通知の他のインスタンスも同時に却下される。ユーザが返信要素412を選択すると、インターフェース416がクライアントコンピューティング装置192でインスタンス化される。いくつかの実装例では、ユーザインターフェース416は、直近のメッセージに加えてそのメッセージの送信者から受信した一つまたは複数の過去のメッセージを表示してよい。これにより、クライアントコンピューティング装置192のユーザに、最新のメッセージに適切に応答するのに当該ユーザによって使用されるかもしれない前後関係が提供される。
いくつかの実装例では、クライアントコンピューティング装置192のユーザはインターフェース416を使用して任意の数のメッセージの送信および視認してよく、そのインターフェース416をいつでも閉じるか終了することができる。インターフェース418は、インターフェース416と似た別のインターフェースであり、ユーザがクライアントコンピューティング装置192でメッセージを送信および受信できるようにする。図4Cは他の通知インターフェース424を示す。図4Cを参照すると、通知はクライアントコンピューティング装置190(例えばスマートフォン)の位置を示す通知も含み得る。
開示された実装例はショートメッセージングサービスメッセージに限定されず、任意の他の形式のメッセージングシステム、方法またはフレームワークを使用できると理解される。いくつかの実装例では、クライアントコンピューティング装置192でクライアントコンピューティング装置190から受信した通知は、有効期限またはTTL値(余命値)と関連されてよく、例えば、そのTTL値が1時間であると、そのメッセージがクライアントコンピューティング装置192で受信および標示されてから1時間後に、そのメッセージは画面表示から見えなくされるか削除されてよい。この例は例示であり、開示の実装例の限定を意図していない。
いくつかの実装例では、インターフェース416(または418)は、メッセージがクライアントコンピューティング装置190で受信されると、クライアントコンピューティング装置192に自動的にインスタンス化されて表示される。別の実装例では、クライアントコンピューティング装置192でのユーザ対話(またはメッセージを送信したことの標示)があると、インターフェース416(または418)は、クライアントコンピューティング装置192に自動的にインスタンス化されて表示される。いくつかの実装例では、クライアントコンピューティング装置192は多数のメッセージングインターフェースを自動的に管理し、所定の時間期間にわたって活動状態にないメッセージングインターフェースがクライアントコンピューティング装置192によって自動的に最小化されてよい。このようにして、多数のメッセージングインターフェースの混み合った状況にユーザが煩わされなくなる。いくつかの実装例では、アイコン類を含むインターフェース416や418の視覚的スタイルは、コンピューティング装置192の視覚的インターフェースまたはスタイルテーマに基づき自動的に決定されてよく、サーバ180によって決定されてよく、あるいは、コンピューティング装置192のユーザによって設定されてもよい。
いくつかの実装例では、いくつかの状況ではインターフェース416を介して提供されるメッセージがサードパーティのメッセージング料金の課金対象となり得るという標示が、インターフェース416を介してユーザに表示されてよい。いくつかの実装例では、インターフェース416は、クライアントコンピューティング装置192で実行されているサービスのクライアントソフトウェアを介してアクセス可能なクラウドベースの通信サービスに関連付けられてよい。このクラウドベースの通信サービスは、多数のユーザ間でのビデオ会議、音声会議、音声会議およびテキスト会議を含む、2以上のユーザ間でのビデオ、オーディオ、および、テキスト通信を可能にする。いくつかの実装例では、クラウドメッセージングサービスのインターフェースを介してクライアントコンピューティング装置で送信または受信される通信は、インターフェース416または418とは異なる表示ビジュアルスタイルを有してよい。
通知がクライアントコンピューティング装置190のバッテリーレベルに関連付けられている例では、その通知は、リアルタイムでまたはほぼリアルタイムでクライアントコンピューティング装置192に表示される。例えば、クライアントコンピューティング装置190の(またはクライアントコンピューティング装置192のものと同じユーザアカウントに関連付けられた任意の他の装置の)バッテリーレベルが所定の閾値(例えば完全バッテリーレベルの10%)より下に低下すると、クライアントコンピューティング装置190がこのイベントを検出してこのイベントの標示をサーバ180に送信する。するとサーバ180はその標示を、クライアントコンピューティング装置192での表示のために送信する。するとそのクライアントコンピューティング装置192でのユーザは、その通知と対話してそのイベントを管理するための行動をとることができる。例えば、ユーザは、その表示された通知を介して入力を提供することによって、クライアントコンピューティング装置190を電源オフまたは出力低下させることを示すことができる。その行動がサーバ180を介してクライアントコンピューティング装置190で受信すると、このクライアントコンピューティング装置は、自動的に電源オフになるか出力低下する。いくつかの実装例では、ユーザは、クライアントコンピューティング装置190に表示された一つまたは複数の通知をクリアまたは却下することを示してもよい。
図5は、クライアントコンピューティング装置190〜194、サーバ180および位度メッセージングサーバー110間でのメッセージングフローの例を示す。クライアントコンピューティング装置190〜194は、同じユーザアカウントに関連付けられ得る。クライアントコンピューティング装置190はスマートフォン、タブレットまたは任意の携帯機貴であってよく、クライアントコンピューティング装置192および194はデスクトップコンピュータかラップトップであってよい。
ステージ502において、イベントがクライアントコンピューティング装置190で起こり検出される。ステージ504では、そのクライアントコンピューティング装置190がそのイベントの標示(または通知)をサーバ180に送る。すると、サーバ180は、同じユーザアカウントに関連付けられている他のコンピューティング装置を判定する。特に、サーバ180は、クライアントコンピューティング装置190に加えてクライアントコンピューティング装置192、194が同じユーザアカウントに関連付けられていることを判定する。クライアントコンピューティング装置192、194が、イベント通知の受信機または受け側(sinks)でありかつ送り側(source)または送信機であるクライアントコンピューティング装置190から分離したものであると判定されてよい。
ステージ506では、サーバ180はその通知をクライアントコンピューティング装置192、194のソフトウェアクライアント(例えばブラウザ)にブロードキャストするかまたは同時に供給し得る。ステージ508では、サーバ180からブロードキャストされた通知はクラウドメッセージングサーバ110によってクライアントコンピューティング装置192、194のソフトウェアクライアントに中継され得る。ステージ510では、その通知はクライアントコンピューティング装置192、194に同時にリアルタイムに表示され得る。ステージ512では、クライアントコンピューティング装置192において、行動を含む対話が表示された通知を介して受信され得る。ステージ514では、その行動を含む標示がサーバ180に供給され得る。ステージ516では、サーバ180は、クラウドメッセージングサーバ110を介して全てのクライアントコンピューティング装置190、192、194に行動をブロードキャストし得る。ステージ518では、クラウドメッセージングサーバ110はその行動を、受信側であるクライアントコンピューティング装置192、194にも、初期決定された送り側であるクライアントコンピューティング装置190にも提供または送信し得る。
いくつかの実装例では、一つまたは複数のサービスメッセージが図1に示した一つまたは複数の構成要素間でやり取りされ得る。いくつかの実装例では、登録メッセージがクライアントコンピューティング装置190または192によってサーバ180に提供される。この登録メッセージは、ユーザがクライアントコンピューティング装置190または192の認証インターフェースを介してユーザ名または電子メールアドレスとパスワードを提供してサーバ180によって提供される通知およびメッセージングサービスに登録する意思を確認すると、提供されるものであり得る。いくつかの実装例では、ユーザがクライアントコンピューティング装置190または192でユーザインターフェースを介して当該ユーザがサーバからのサービスの中止を望むことを示す場合に、クライアントコンピューティング装置190または192によって登録解除(un-register)メッセージが提供され得る。
いくつかの実装例では、クライアントコンピューティング装置190または192は、サーバ180との接続をテストするために、PINGメッセージがサーバ180から要求元のクライアントコンピューティング装置190または192に戻されるように要求することができる。いくつかの実装例では、クライアントコンピューティング装置190または192からの要求に応答して、サーバ180は、特定のユーザアカウントに関連付けられたクライアントコンピューティング装置のリストを送信することができる。このリストは、当該リストに掲載されているあるクライアントが送り側なのか受け側なのかも示し得る。上述したように、通知は、あるクライアントで生成されてよく、その後、特定のユーザアカウントに関連付けられている受信機または受け側である他のクライアントコンピューティング装置に向けてサーバ180によってブロードキャストされることができる。ユーザが通知と対話してコンピューティング装置のいずれか一つからイベントを管理するためにとるべき行動を示すと、行動メッセージ(action message)が、クライアントコンピューティング装置190または192からサーバ180に送信され得る。
いくつかの実装例では、行動メッセージは行動の識別子を含み得る。いくつかの実装例では行動メッセージが、捌くべきイベントが生じているクライアントコンピューティング装置に向けてサーバ180によって送信されると、そのクライアントコンピューティング装置は、自動的に、行動識別子に基づき取るべき行動を判定し、その行動を進める。例えば、電話呼び出しが当該クライアントコンピューティング装置で却下され得る。いくつかの実装例では、サーバ180および他の構成要素は、メッセージプロパティとは独立してメッセージを処理し得る。言い換えると、そして例えば、サーバ180がメッセージプロパティを不透明(opaque)なものとして処理し得る。このようにしいて、クライアントコンピューティング装置190、192にインストールされたものであり得るクライアントソフトウェアをアップデートすることによって、追加の特徴(例えば通知と行動)を配備することができ、サーバ180での変更は不要となり得る。ある実装例では、上述したサービスメッセージおよび任意の他のメッセージおよび通知(またはイベントの標示)は、トランスミッションコントロールプロトコルすなわちTCPを利用して送信されてよい。TCPは、インターネットプロトコル(IP)スイートに関連付けられたプロトコルである。TCPは、概してそして例えば、ウェブブラウザとウェブサーバを含むエンドシステム間で動作し得るが、それらに限定されない。TCPは、あるコンピュータから別のコンピュータにソフトウェアプログラムからのバイトストリーム(a stream of bytes)の配送を可能にする。TCPは例示であり開示の実装例を限定することを意図していない。HTTPとしても知られるハイパーテキストトランスファープロトコルや高安全性HTTPを含む任意の他のプロトコルと使用してよい。
いくつかの実装例では、上述したサービスメッセージ任意の他のメッセージおよび通知は、例えば、Java(登録商標)Script Object Notation(JSON)フォーマットを使用して、図1に示した構成要素間で送信され得る。JSON等のフォーマットの使用は、人間が読めるJSONフォーマットの結果としてのデバッグの容易さだけでなく、それら構成要素でのメッセージの効率的な符号化および構文解析を可能にする。更に、サードパーティのサービスが図1に示した構成要素と相互作用する場合には、それらも適切な形式にされた通知、サービスメッセージおよびコンテンツを提供すべくJSONを使用してよく、JSONフォーマットで受信した行動および応答を構文解析可能であってよい。JSONフォーマットの使用は単に例示であり開示の実装例の限定を意図していないと理解される。図1の構成要素によっておよびそれら構成要素に関連付けられる任意の他のサービスおよびシステムによって他のフォーマットが使用されてよい。
開示された発明は、装置間相互通知に関する。いくつかの実装例は、ユーザアカウントに関連付けられた第1の装置で検出されたイベントを示す第1の標示を受信し、前記イベントの前記第1の標示に基づき前記イベントの一つまたは複数の特性を判定し、その判定した特性が少なくとも1つの選択基準に合致するかどうかを検出し、前記ユーザアカウントに関連付けられた一つまたは複数の装置から第2の装置を自動的に識別し、前記判定した特性が前記少なくとも1つの選択基準に合致した場合には、前記イベントの前記第1の標示を前記ユーザアカウントに関連付けられた前記第2の装置に提供する。ここで、前記第1の装置での前記イベントを前記第2の装置から管理できるように、その提供された前記イベントの前記第1の標示が前記第2の装置に表示される。いくつかの実装例は、前記第1の装置で検出された前記イベントに対して実行されるべき行動を含む第2の標示であって、前記第2の装置に表示された前記イベントの前記第1の標示との対話があると生成される前記第2の標示を受信し、前記行動を前記第1の装置に送信する。ここで、前記イベントは前記第1の装置で前記行動に基づき管理される。
いくつかの実装例は、イベントの前記第1の標示に関連付けられた第1のコンテンツを受信し、その受信した第1のコンテンツを、前記イベントの前記第1の標示とともに表示させるために、前記ユーザアカウントに関連付けられた前記第2の装置に提供する。いくつかの実装例は、前記コンテンツがリモートキャッシュ内の画像への参照を含む場合、その参照を前記第2の装置に提供し、ここで、第2の装置は、前記画像が当該第2の装置で利用可能でなければ、前記参照に基づき前記キャッシュから前記画像を表示のために取得する。いくつかの実装例は、前記第2の装置に表示された前記イベントの前記第1の標示に応答して第2のコンテンツを受信し、受信した第2のコンテンツを前記第1の装置に表示のために供給する。いくつかの実装例は、前記イベントの前記第1の標示は前記第2の装置のウェブブラウザに表示され、前記第1の装置はモバイルコンピューティング装置であり、前記第2の装置はデスクトップコンピューティング装置である。いくつかの実装例では、前記イベントは、第1の装置での音声呼リクエストの受信、第1の装置でのメッセージングサービスメッセージの受信、または、第1の装置でのバッテリーレベルの所定レベルに対する変化、のうちの一つ以上を含むことができる。いくつかの実装例では、前記イベントの一つまたは複数の特性は、そのイベントを受信できた時刻、そのイベントのタイプ、そのイベントの優先度、または、そのイベントの開始に関連付けられたユーザアカウントを含む。いくつかの実装例では、前記第1の装置は第1の地理的位置にあり、前記第2の装置は第2の地理的位置にある。
いくつかの実装例では、判定された特性が前記少なくとも1つの選択基準に合致しなければ、前記イベントの前記第1の標示は、判定された前記特性に基づき、前記ユーザアカウントに関連付けられた第2の装置に、表示のためにブロードキャストされなくてよい。いくつかの実装例では、判定された前記特性が前記第1の装置での低バッテリー警告を含む場合に前記選択基準が合致したとされ得る。いくつかの実装例では、判定された前記特性が前記ユーザアカウントに関連付けられたユーザ連絡先からのメッセージングサービスメッセージの受領を含むときに前記選択基準に合致したとされ得る。いくつかの実装例では、判定された前記特性が、前記ユーザアカウントに関連付けられたユーザ連絡先からの不在着信を含むときに前記選択基準に合致したとされ得る。いくつかの実装例では、判定された前記特性が前記ユーザアカウントに関連付けられたユーザ連絡先からのメッセージングサービスメッセージの受領を含むときに前記選択基準に合致したとされ得る。
いくつかの実装例は、ユーザアカウントに関連付けられた第1の装置でイベントを検出し、前記イベントの第1の標示をサーバに提供し、検出された前記イベントの特性が少なくとも1つの基準に合致した場合に前記サーバが前記イベントの前記第1の標示を前記ユーザアカウントに関連付けられた第2の装置に提供し、前記第1の装置で検出された前記イベントに対して実行されるべき行動を含む第2の標示であって、前記第2の装置に表示された前記イベントの前記第1の標示との対話があると生成される前記第2の標示を受信し、前記イベントを前記第1の装置で前記行動に基づき管理することを備える。いくつかの実装例は、イベントの第1の標示に関連付けられた第1のコンテンツを受信し、その受信した第1のコンテンツをサーバに提供することを含み、ここで、サーバは、そのコンテンツを、前記イベントの前記第1の標示とともに表示させるために、前記ユーザアカウントに関連付けられた前記第2の装置に提供する。
いくつかの実装例は、前記イベントが別のユーザアカウントから開始された場合には、その別のユーザアカウントに関連付けられた画像が前記第1の装置で利用可能であるかどうかを判定し、前記画像が前記第1の装置で利用可能であれば、前記画像への参照を生成し、その生成した参照に基づき、前記画像がリモートキャッシュで利用可能であるかどうかを判定し、前記画像が前記リモートキャッシュで利用可能でなければ、前記画像を前記リモートキャッシュにアップロードし、前記画像が前記リモートキャッシュで利用可能であると判定された場合には、前記サーバに提供した前記イベントの前記第1の標示に、生成した前記参照を含めることを含む。ここで、前記第2の装置は当該参照に基づき前記リモートキャッシュから前記画像を取得する。
いくつかの実装例では、各キャッシュされた画像は、前記イベントの前記第1の標示とともに前記第2の装置に送信される前に、前記第1の装置で生成された固有キーで暗号化され得る。いくつかの実装例では、各キャッシュされた画像は、コンテンツベースキーで暗号化される。このコンテンツベースキーは、前記第1の装置で生成されて前記第2の装置に送信され得る。いくつかの実装例では、TTL値(余命値)が前記イベントの前記第1の標示で示される。ここで、このTTL値は第1の標示の有効期限を示すものである。
いくつかの実装例では、前記画像が前記第2の装置で利用可能ではないかもしれない場合には、前記第2の装置は前記参照に基づき前記リモートキャッシュから前記画像を取得する。その参照は、前記画像に基づくハッシュ値であり得る。いくつかの実装例は、前記第2の装置に表示された前記イベントの前記第1の標示に応答して第2のコンテンツを受信し、受信した第2のコンテンツを前記第1の装置に表示する。前記イベントは、前記第1の装置での音声呼リクエストの受信、前記第1の装置でのメッセージングサービスメッセージの受信、または、前記第1の装置でのバッテリーレベルの所定レベルに対する変化、のうちの一つ以上を含んでよい。前記イベントの特性は、そのイベントを受信した時刻、そのイベントのタイプ、そのイベントの優先度、または、そのイベントの開始に関連付けられたユーザアカウントを含む。前記第1の装置は第1の地理的位置に存在することができ、前記第2の装置は第2の地理的位置に存在することができる。いくつかの実装例では、前記判定された特性が前記ユーザアカウントに関連付けられたユーザ連絡先からのメッセージングサービスメッセージの受領を含むときに前記選択基準に合致したとされ得る。前記判定された特性が、前記ユーザアカウントに関連付けられたユーザ連絡先からの不在着信を含むときに前記選択基準に合致したとされ得る。判定された特性が前記ユーザアカウントに関連付けられたユーザ連絡先からのメッセージングサービスメッセージの受領を含むときに前記選択基準に合致したとされ得る。これらの例は開示した実装例を限定することを意図していない。いくつかの実装例では、判定された前記特性が前記少なくとも1つの選択基準に合致しなければ、前記イベントの前記第1の標示は、判定された前記特性に基づき、前記ユーザアカウントに関連付けられた前記第2の装置に、表示のためにブロードキャストされなくてよい。
いくつかの実装例は、ユーザアカウントに関連付けられた第1の装置で検出されたイベントを示す第1の標示を受信し、前記イベントの前記第1の標示に基づき前記イベントの一つまたは複数の特性を判定し、その判定した特性が少なくとも1つの選択基準に合致するかどうかを検出し、前記ユーザアカウントに関連付けられた一つまたは複数の装置を自動的に識別し、前記判定した特性が前記少なくとも1つの選択基準に合致した場合には、前記イベントの前記第1の標示を前記ユーザアカウントに関連付けられた前記一つまたは複数の装置にブロードキャストする。提供された前記イベントの前記第1の標示は前記一つまたは複数の装置に同時にリアルタイムで表示されて、前記第1の装置での前記イベントが前記一つまたは複数の第2の装置のいずれからでも管理できるようになる。いくつかの実装例は、前記第1の装置で受信された前記イベントに対して実行されるべき行動を含む第2の標示であって、前記一つまたは複数の装置のうちのいずれかに表示された前記イベントの前記第1の標示との対話があると生成される前記第2の標示を受信し、前記行動を前記第1の装置に送信することができ、前記イベントは前記第1の装置で前記行動に基づき管理され得る。
いくつかの実装例は、前記行動が前記第1の装置で受信した前記イベントに対する通知を却下した場合、前記行動を前記第1の装置と、前記ユーザアカウントに関連付けられた一つまたは複数の他の装置とにブロードキャストしてよく、ここで、前記通知は、前記第1の装置および前記一つまたは複数の他の装置で却下される。前記第1の装置は第1の地理的位置に存在することができ、前記第2の装置は第2の地理的位置に存在することができる。いくつかの実装例では、前記判定された特性が前記ユーザアカウントに関連付けられたユーザ連絡先からのメッセージングサービスメッセージの受領を含むときに前記選択基準に合致したとされ得る。前記判定された特性が、前記ユーザアカウントに関連付けられたユーザ連絡先からの不在着信を含むときに前記選択基準に合致したとされ得る。
いくつかの実装例では、判定された特性が前記少なくとも1つの選択基準に合致しなければ、前記イベントの前記第1の標示は、判定された前記特性に基づき、前記ユーザアカウントに関連付けられた第2の装置に、表示のためにブロードキャストされなくてよい。いくつかの実装例は、前記ユーザアカウントに関連付けられた前記第1の装置で検出された前記イベントの前記第1の標示が、以前に受信した一つまたは複数の標示と重複したものであるかを判定し得る。前記イベントの前記第1の標示が以前に受信した一つまたは複数の標示と重複したものではないと判定された場合には、前記イベントの前記第1の標示を、前記第2の装置と、前記ユーザアカウントに関連付けられた一つまたは複数の他の装置とにブロードキャストし、前記イベントの前記第1の標示が以前に受信した一つまたは複数の標示と重複したものであると判定された場合には、いくつかの実装例は、前記第2の装置および前記ユーザアカウントに関連付けられた前記一つまたは複数の他の装置への前記イベントの前記第1の標示のブロードキャストを禁止してよい。
図1に戻ると、特定の態様では、サーバ180は、ハードウェアを用いてまたはソフトウェアとハードウェアの組み合わせを用いて、専用のサーバとして、あるいは他の実体物に組み込まれたものとして、あるいは複数の実体物にまたがって分散されたものとして実施してよい。
サーバ180は、バス124または情報通信用の他の通信機構を含み、プロセッサ112は情報処理するためにバス124に結合される。プロセッサ112は、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラム可能論理回路(PLD)、コントローラ、ステートマシン、ゲートロジック、複数のディスクリートハードウェアコンポーネント、または情報の計算または他の操作を実行可能な任意の他の適切な実体物であってよい。
サーバ180は、ハードウェアに加えて、当該コンピュータプログラムの実行環境を作成するコードを含むことができ、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはメモリ120に格納されたそれらの1つまたは複数の組み合わせ、を構成するコードを含むことができる。メモリ120は、情報およびプロセッサ112によって実行される命令を記憶するためにバス124に結合された、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読み出し専用メモリ(ROM)、プログラマブル読み出し専用メモリ(PROM)、消去可能PROM(EPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、DVD、または任意の他の適切な記憶装置を含んでよい。プロセッサ112およびメモリ120は、専用論理回路によって補われることができ、専用論理回路に組み込まれることができる。
前記命令は、メモリ120に格納されてよく、また、当業者にとって知られている任意の方法に従って、例えば、サーバ180によって実行されるためのまたはサーバ180の動作を制御するためのコンピュータ読み取り可能媒体に符号化された複数のコンピュータプログラム命令からなる一つまたは複数のモジュールといった、一つまたは複数のコンピュータプログラム製品に実装されてもよい。なお、当業者にとって知られている任意の方法は、限定ではないが、データ指向言語(例えば、SQL,dBase)、スステム言語(例えばObjective−C、C ++、アセンブリ)、アーキテクチャ言語(例えばJava(登録商標)、.NET)、アプリケーション言語(例えば、PHP、Ruby、Perl、Python)等のコンピュータ言語を含む。命令は、配列言語、アスペクト指向言語、アセンブリ言語、オーサリング言語、コマンドラインインタフェース言語、コンパイル言語、並行言語、中括弧言語(curly bracket)、データフロー言語、データ構造化言語、宣言言語、難解(esoteric)言語、拡張言語、第4世代言語、機能的言語、インタラクティブモード言語、インタプリタ型言語、反復(iterative)言語、リストベース言語、小言語、ロジックベース言語、機械語、マクロ言語、メタプログラミング言語、マルチパラダイム言語、数値解析の非英語ベース言語、オブジェクト指向のクラスベース言語、オブジェクト指向のプロトタイプベース言語、オフサイドルール言語、手続き言語、反射言語、ルールベース言語、スクリプト言語、スタックベース言語、同期言語、構文処理言語、ビジュアル言語、ヴィルト言語、埋め込み可能言語、およびXMLベース言語等のコンピュータ言語として実装されてもよい。メモリ120は、プロセッサ112によって実行されるべき命令の実行中に、一時的情報、変数情報、または他の中間情報を格納するために使用されてもよい。
本明細書で述べたようなコンピュータプログラムは必ずしもファイルシステムにおけるファイルに対応するものではない。プログラムは、他のブログラムやデータ(例えば、マークアップ言語書類に格納された一つまたは複数のスクリプト等)を所持する位置ファイルの一部に格納されてよく、当該プログラムに対して割り当てられた単一ファイルに格納されてよく、組織化された複数のファイル(例えば、複数のファイルが一つまたは複数の、モジュール、サブプログラム、またはコード部分に格納)に格納されてよい。コンピュータプログラムは、一つのコンピュータ上で実行されるべく展開されてよく、あるいは、通信ネットワークによって相互接続された複数のコンピュータであって、一箇所に配置されるかまたは複数の場所にまたがって分散される複数のコンピュータ上で実行されるべく展開されてよい。本明細書で説明したプロセスと論理フローは、入力データを操作して出力組成性することによって機能を実行すべく一つまたは複数のコンピュータプログラムを実行する一つまたは複数のプログラム可能プロセッサによって実行されることができる。
サーバ180は、情報および命令を記憶するためにバス124に結合された、磁気ディスクまたは光学ディスク等のデータ記憶装置126をさらに含む。サーバ180は、入力/出力モジュール128を介して様々な装置に接続されてよい。入力/出力モジュール128は、どのような入力/出力モジュールであってよい。例示の入力/出力モジュール128はUSBポートなどの複数のデータポートを含む。入力/出力モジュール128は、通信モジュール118と接続するように構成される。例示の通信モジュール118(例えば、通信モジュール118、238)は、イーサネットカードおよびモデム等のネットワークインターフェースカードを含む。ある態様では、入力/出力モジュール128は、入力装置116および/または出力装置114等の複数の装置に接続されるように構成される。例示の入力装置114は、キーボードと、マウスまたはトラックボール等のポインティングデバイスとを含み、それによって、ユーザはサーバ180に入力を提供することができる。ユーザとの対話のために他の種類の入力装置114も使用できる。例えば、触覚入力装置、視覚的入力装置、音響的入力装置、または脳−コンピュータインターフェース装置等。例えば、ユーザに対するフィードバックは、視覚的フィードバック、音響的フィードバック、または触覚的フィードバック等の任意の形態の感覚的フィードバックであってよく、ユーザからの入力は、例えば、音響入力、会話入力、または脳波入力を含む任意の形態であってよい。例示の出力装置116は、ユーザに情報を表示するための、LED(発光ダイオード)スクリーン、CRT(陰極線管)スクリーン、LCD(液晶ディスプレイ)スクリーン等のディスプレイ装置を含む。
本開示の一態様によれば、サーバ180は、メモリ120に包含された一つまたは複数の命令の一以上のシーケンスを実行するプロセッサ112に応答するサーバ180を用いて実施することができる。そのような命令は、データ記憶装置126等の他の機械読み取り可能媒体からメモリ120に読み込まれてよい。主メモリ120に包含された命令のシーケンスの実行は本明細書で説明したプロセスブロックをプロセッサ112に実行させる。マルチプロセッシング装置において一つのまたは複数のプロセッサがメモリ120に包含された命令のシーケンスを実行するように採用されてよい。別の態様では、有線式の回路がソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて本開示の様々な態様を実施すべく使用されてよい。したがって、本開示の態様は、ハードウェア回路とソフトウェアとの任意の特定の組み合わせに限定されない。
本明細書に記述した発明の様々な態様は、例えば、データサーバとしてのバックエンド構成要素を含むコンピューティングシステムで、または、アプリケーションサーバ等のミドルウェア構成要素を含むコンピューティングシステムで、または、それを介してユーザが本明細書に記述した発明の実装例と対話できるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ等のフロントエンド構成要素を含むコンピューティングシステムで、または、それらバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組み合わせで実施し得る。当該システムの構成要素は、任意の形態でまたは通信ネットワーク等のデジタルデータ通信の媒体によって相互接続され得る。通信ネットワーク(例えばネットワーク150)は、例えば、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、キャンパスエリアネットワーク(CAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、ブロードバンドネットワーク(BBN)、インターネット等のうちの任意の一つまたは複数を含み得る。また、この通信ネットワークは、限定ではないが、任意の一つまたは複数のネットワークトポロジを含むことができ、それらは、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スターバスネットワーク、ツリーまたは階層ネットワーク等を含む。通信モジュールは、例えば、モデムまたはイーサネットカードであり得る。
サーバ180は、限定ではないが、例えば、デスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータであり得る。サーバ180は、限定ではないが、携帯電話、パーソナルデジタルアシスタント(PDA)、携帯音楽プレーヤー、グローバルポジショニングシステム(GPS)受信機、テレビゲーム機、および/またはテレビセットトップボックス等の別の装置に埋め込まれてよい。
本明細書で使用される「機械可読記憶媒体」または「コンピュータ可読媒体」という用語は、命令またはデータをプロセッサ112に実行のために提供することに関与する任意の一つまたは複数の媒体を指す。このような媒体は、限定ではないが、不揮発性媒体および揮発性媒体を含む多くの形態をとり得る。不揮発性媒体は、データ記憶装置126等の、例えば、光ディスク、磁気ディスク、またはフラッシュメモリを含む。揮発性媒体は、メモリ120等の動的メモリを含む。機械可読媒体の一般的な形態は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD−ROM、DVD、任意の他の光学媒体、パンチカード、紙テープ、複数の孔からなるパターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、FLASH EPROM、任意の他のメモリチップまたはカートリッジ、またはコンピュータが読み取ることができる他の任意の媒体を含む。機械可読記憶媒体は、機械可読記憶装置、機械可読記憶基板、メモリ装置、またはそれらの1つ以上の組み合わせであり得る。
本明細書で使用される場合、「および」や「または」という用語で項目を分離している一連の項目に先行する「少なくとも1つ」という用語は、列記された各構成員(すなわち各項目)を修飾するのではなく、列記全体を修飾する。「少なくとも1つ」という用語は、少なくとも1つの項目の選択を必要とせず、むしろ、それら項目のいずれか1つを含むという意味、および/またはそれら項目の任意の組合せの少なくとも1つという意味、および/またはそれら項目のそれぞれの少なくとも1つを含むという意味に割り当てられる。例として、「A、B、およびCの少なくとも1つ」または「A、B、またはCの少なくとも1つ」という用語はいずれも、Aのみ、Bのみ、Cのみ、A、B、およびCの任意の組み合わせ、および/またはA、B、およびCのそれぞれの少なくとも1つを指す。
更に、「含む」「有する」等の語句が発明の詳細な説明又は特許請求の範囲で使用される場合、それらの語句は、請求項の移行句として採用される場合の「備える」と同様に、「備える」という語句と類似の包含的なものと意図される。
ある要素を単数形で言及した場合、特に明記しない限り、「一つだけ」の意味を意図しておらず、「一つまたは複数」を意味する。当業者に現在知られているか又は後に知られるようになる、本開示を通して説明した様々な構成例の要素に対する全ての構造的かつ機能的等価物は、参照により本明細書に明確に組み込まれ、本発明の技術に包含されることを意図される。さらに、上記の説明に明示的に記載されているかどうかにかかわらず、ここに開示されたもので公衆に捧げられることを意図したものはない。
明細書には多くの詳細が含まれているが、これらは請求されるであろう範囲に対する限定としてではなく、むしろ本発明の特定の実装例の説明として解釈されるべきである。別個の態様の文脈において明細書に記載した複数の特定の特徴は、単一の態様に組み合わせて実施することもできる。逆に、単一の態様の文脈で記載されている様々な特徴を、複数の態様で別々にまたは任意の適切なサブコンビネーションで実施することもできる。さらに、複数の特徴が特定の組み合わせで作用するものとして上述し、そのようなものとして当初は請求されたものであったとしても、ある場合には、ある請求したコンビネーションからの一つまたは複数の特徴をそのコンビネーションから切り出すことができ、また、請求したコンビネーションは、サブコンビネーションまたはサブコンビネーションの変更に向けられてもよい。
同様に、図面には動作が特定の順序で示されているが、そうした動作が、所望の結果を達成するために、示された特定の順序で実施されるのが必要である、または、図示された全ての動作が実行されるのが必要であると理解すべきではない。ある実装例では、マルチタスク処理及び並列処理が有利なことがある。他の変更も特許請求の範囲の範囲内にある。さらに、上述した複数の態様における様々なシステム構成要素の分離は、すべての態様においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に集積されたり、複数のソフトウェア製品にパッケージ化されてよい。
この明細書の発明を特定の態様の鑑定で説明したが、他の態様も実施可能であり、特許請求の範囲の範囲内にある。例えば、請求の範囲に記載した動作は、異なる順序で実施されることができなお所望の結果を達成する。一例として、図示したプロセスは、所望の結果を達成するために必ずしも図示した特定の順序や連続的な順序を必要とするものではない。ある実装例では、マルチタスク処理及び並列処理が有利なことがある。他の変更も特許請求の範囲の範囲内にある。
これらの及び他の実装例も特許請求の範囲の範囲内にある。

Claims (22)

  1. 方法であって、
    ユーザアカウントに関連付けられた第1の装置で検出されたイベントを示す第1の標示であって、前記第1の装置で発生しており前記第1の装置によって検出されている前記イベントに応答して、前記ユーザアカウントに関連付けられた前記第1の装置から送信されるものである、前記イベントを示す前記第1の標示サーバが受信し、
    前記イベントの前記第1の標示に基づき前記イベントの一つまたは複数の特性を判定し、
    その判定した一つまたは複数の特性が少なくとも1つの選択基準に合致するかどうかを検出し、
    前記ユーザアカウントに関連付けられた一つまたは複数の装置から第2の装置を自動的に識別し、
    前記判定した一つまたは複数の特性が前記少なくとも1つの選択基準に合致した場合には、前記イベントの前記第1の標示を前記ユーザアカウントに関連付けられた前記第2の装置に提供することを備え、前記第1の装置での前記イベントを前記第2の装置から管理できるように、その提供された前記イベントの前記第1の標示が前記第2の装置に表示される、方法。
  2. 前記第1の装置で検出された前記イベントに対して実行されるべき行動を含む第2の標示であって、前記第2の装置に表示された前記イベントの前記第1の標示との対話があると生成される前記第2の標示を受信し、
    前記行動を前記第1の装置に送信することを更に備え、前記イベントは前記第1の装置で前記行動に基づき管理される、請求項1の方法。
  3. 前記行動が前記第1の装置で受信した前記イベントに対する通知を却下した場合、前記行動を前記第1の装置と、前記ユーザアカウントに関連付けられた一つまたは複数の他の装置とにブロードキャストすることを更に備え、前記通知は、前記第1の装置および前記一つまたは複数の他の装置で却下される、請求項2の方法。
  4. 前記イベントの前記第1の標示に関連付けられた第1のコンテンツを受信し、
    その受信した第1のコンテンツを、前記イベントの前記第1の標示とともに表示させるために、前記ユーザアカウントに関連付けられた前記第2の装置に提供することを更に備える請求項1の方法。
  5. 前記第1のコンテンツがリモートキャッシュ内の画像への参照を含む場合、その参照を前記第2の装置に提供することを更に備え、前記第2の装置は、前記画像が当該第2の装置で利用可能でなければ、前記参照に基づき前記キャッシュから前記画像を表示のために取得する、請求項4の方法。
  6. 前記第2の装置に表示された前記イベントの前記第1の標示に応答して第2のコンテンツを受信し、
    受信した第2のコンテンツを前記第1の装置に表示のために供給すること
    を更に備える請求項1の方法。
  7. 前記イベントの前記第1の標示は前記第2の装置のウェブブラウザに表示され、前記第1の装置はモバイルコンピューティング装置であり、前記第2の装置はデスクトップコンピューティング装置である、請求項1の方法。
  8. プロセッサによって実行されると当該プロセッサに動作を行わせる命令を格納した機械読み取り可能媒体であって、前記動作が、
    ユーザアカウントに関連付けられた第1の装置で発生しているイベントを検出し、
    前記イベントの第1の標示をサーバに送信し、検出された前記イベントの特性が少なくとも1つの基準に合致した場合に前記サーバは前記イベントの前記第1の標示を前記ユーザアカウントに関連付けられた第2の装置に提供し、
    前記第1の装置で検出された前記イベントに対して実行されるべき行動を含む第2の標示であって、前記第2の装置に表示された前記イベントの前記第1の標示との対話があると生成される前記第2の標示を受信し、
    前記イベントを前記第1の装置で前記行動に基づき管理すること
    を備える、機械読み取り可能媒体。
  9. 前記プロセッサによって実行されると当該プロセッサに動作を行わせる命令を更に格納している前記機械読み取り可能媒体であって、前記動作が
    前記イベントの前記第1の標示に関連付けられたコンテンツを受信し、
    その受信した第1のコンテンツを前記サーバに提供することを更に備え、前記サーバは、前記第1のコンテンツを、前記イベントの前記第1の標示とともに表示させるために、前記ユーザアカウントに関連付けられた前記第2の装置に提供する、請求項8の機械読み取り可能媒体。
  10. 前記プロセッサによって実行されると当該プロセッサに動作を行わせる命令を更に格納している前記機械読み取り可能媒体であって、前記動作が
    前記イベントが別のユーザアカウントから開始された場合には、その別のユーザアカウントに関連付けられた画像が前記第1の装置で利用可能であるかどうかを判定し、
    前記画像が前記第1の装置で利用可能であれば、前記画像への参照を生成し、
    その生成した参照に基づき、前記画像がリモートキャッシュで利用可能であるかどうかを判定し、
    前記画像が前記リモートキャッシュで利用可能でなければ、前記画像を前記リモートキャッシュにアップロードし、
    前記画像が前記リモートキャッシュで利用可能であると判定された場合には、前記サーバに提供した前記イベントの前記第1の標示に、生成した前記参照を含めることを更に備え、前記第2の装置は当該参照に基づき前記リモートキャッシュから前記画像を取得する、請求項8の機械読み取り可能媒体。
  11. 前記画像が前記第2の装置で利用可能ではない場合には、前記第2の装置は前記参照に基づき前記リモートキャッシュから前記画像を取得する、請求項10の機械読み取り可能媒体。
  12. 前記プロセッサによって実行されると当該プロセッサに動作を行わせる命令を更に格納している前記機械読み取り可能媒体であって、前記動作が
    キャッシュされた各画像を、前記イベントの前記第1の標示とともに前記第2の装置に送信する前に、前記第1の装置上に生成された固有キーで暗号化することを備える、請求項10の機械読み取り可能媒体。
  13. 前記プロセッサによって実行されると当該プロセッサに動作を行わせる命令を更に格納している前記機械読み取り可能媒体であって、前記動作が
    キャッシュされた各画像を、前記第1の装置上に生成されて前記第2の装置に送信されるコンテンツベースキーで暗号化することを備える、請求項10の機械読み取り可能媒体。
  14. 前記プロセッサによって実行されると当該プロセッサに動作を行わせる命令を更に格納している前記機械読み取り可能媒体であって、前記動作が
    前記第1の標示の有効期間の満了時間を示すTTL(time−to−live)値を前記イベントの前記第1の標示とともに含めることを備える、請求項8の機械読み取り可能媒体。
  15. 命令を備えるメモリと、
    プロセッサであって、
    ユーザアカウントに関連付けられた第1の装置で検出されたイベントを示す第1の標示であって、前記第1の装置で発生しており前記第1の装置によって検出されている前記イベントに応答して、前記ユーザアカウントに関連付けられた前記第1の装置から送信されるものである、前記イベントを示す前記第1の標示サーバが受信し、
    前記イベントの前記第1の標示に基づき前記イベントの一つまたは複数の特性を判定し、
    その判定した特性が少なくとも1つの選択基準に合致するかどうかを検出し、
    前記ユーザアカウントに関連付けられた一つまたは複数の装置を自動的に識別し、
    前記判定した特性が前記少なくとも1つの選択基準に合致した場合には、前記イベントの前記第1の標示を前記ユーザアカウントに関連付けられた前記一つまたは複数の装置にブロードキャストするように前記命令を実行するように構成される前記プロセッサとを備え、前記第1の装置での前記イベントを前記一つまたは複数の第2の装置のいずれからでも管理できるように、提供された前記イベントの前記第1の標示は前記一つまたは複数の装置に同時にリアルタイムで表示される、システム。
  16. 前記プロセッサは前記命令を実行して、
    前記第1の装置で検出された前記イベントに対して実行されるべき行動を含む第2の標示であって、前記一つまたは複数の装置のうちのいずれかに表示された前記イベントの前記第1の標示との対話があると生成される前記第2の標示を受信し、
    前記行動を前記第1の装置に送信するように更に構成され、前記イベントは前記第1の装置で前記行動に基づき管理される、請求項15のシステム。
  17. 前記プロセッサは前記命令を実行して、
    前記行動が前記第1の装置で受信した前記イベントに対する通知を却下した場合、前記行動を前記第1の装置と、前記ユーザアカウントに関連付けられた一つまたは複数の他の装置とにブロードキャストするように更に構成され、前記通知は、前記第1の装置および前記一つまたは複数の他の装置で却下される、請求項16のシステム。
  18. 前記第1の装置は第1の地理的位置にあり、前記第2の装置は第2の地理的位置にある、請求項15のシステム。
  19. 判定された前記特性が、前記ユーザアカウントに関連付けられたユーザ連絡先からのメッセージングサービスメッセージの受領を含むときに、前記選択基準に合致する請求項15のシステム。
  20. 判定された前記特性が、前記ユーザアカウントに関連付けられたユーザ連絡先からの不在着信を含むときに、前記選択基準に合致する請求項15のシステム。
  21. 判定された前記特性が前記少なくとも1つの選択基準に合致しなければ、前記イベントの前記第1の標示は、判定された前記特性に基づき、前記ユーザアカウントに関連付けられた前記第2の装置に、表示のためにブロードキャストされない請求項15のシステム。
  22. 前記プロセッサは前記命令を実行して、
    前記ユーザアカウントに関連付けられた前記第1の装置で検出された前記イベントの前記第1の標示が、以前に受信した一つまたは複数の標示と重複したものであるかを判定し、
    前記イベントの前記第1の標示が以前に受信した一つまたは複数の標示と重複したものではないと判定された場合には、前記イベントの前記第1の標示を、前記第2の装置と、前記ユーザアカウントに関連付けられた一つまたは複数の他の装置とにブロードキャストし、
    前記イベントの前記第1の標示が以前に受信した一つまたは複数の標示と重複したものであると判定された場合には、前記第2の装置および前記ユーザアカウントに関連付けられた前記一つまたは複数の他の装置への前記イベントの前記第1の標示のブロードキャストを禁止する
    ように更に構成される、請求項15のシステム。
JP2016575096A 2014-06-24 2015-06-16 装置間相互通知 Active JP6456984B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462016594P 2014-06-24 2014-06-24
US62/016,594 2014-06-24
US14/658,005 2015-03-13
US14/658,005 US10097619B2 (en) 2014-06-24 2015-03-13 Cross-device notifications
PCT/US2015/036042 WO2015200051A1 (en) 2014-06-24 2015-06-16 Cross-device notifications

Publications (2)

Publication Number Publication Date
JP2017522664A JP2017522664A (ja) 2017-08-10
JP6456984B2 true JP6456984B2 (ja) 2019-01-23

Family

ID=54870753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016575096A Active JP6456984B2 (ja) 2014-06-24 2015-06-16 装置間相互通知

Country Status (7)

Country Link
US (1) US10097619B2 (ja)
EP (1) EP3162005B1 (ja)
JP (1) JP6456984B2 (ja)
CN (1) CN106464573B (ja)
AU (1) AU2015280414B2 (ja)
BR (1) BR112016028193B1 (ja)
WO (1) WO2015200051A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014139054A1 (en) * 2013-03-15 2014-09-18 Yahoo! Inc. Method and system for cross device notification
US10440757B2 (en) * 2015-02-17 2019-10-08 Google Llc Second-screen control automatic pairing using push notifications
CN107888755B (zh) * 2016-09-30 2021-02-12 中兴通讯股份有限公司 一种信息管理的方法和装置
US10567442B2 (en) 2017-05-10 2020-02-18 Microsoft Technology Licensing, Llc Automatic forwarding of incoming calls based on user interaction with devices
US10841896B2 (en) * 2017-09-08 2020-11-17 International Business Machines Corporation Selectively sending notifications to mobile devices using device filtering process
CN118200349A (zh) * 2018-03-14 2024-06-14 谷歌有限责任公司 生成基于IoT的通知并提供命令的方法和系统
CN112561537A (zh) * 2018-06-03 2021-03-26 苹果公司 用于转账账户的用户界面
US11012853B2 (en) * 2018-11-20 2021-05-18 Parallel Wireless, Inc. Secure software update in a wireless mesh radio network using peer-to-peer file sharing
US11163737B2 (en) * 2018-11-21 2021-11-02 Google Llc Storage and structured search of historical security data
AU2020280017B2 (en) 2019-05-21 2023-05-25 Hid Global Corp. Physical access control systems and methods
CN113141292B (zh) * 2020-01-17 2023-03-03 百度在线网络技术(北京)有限公司 一种消息处理方法、装置及电子设备
US20220318250A1 (en) * 2020-08-18 2022-10-06 Google Llc Systems and methods for identifying events that share a characteristic
US11736429B2 (en) * 2020-10-30 2023-08-22 Citrix Systems, Inc. Contextual turning of dialog from any app into actionable workspace notification
US20220408268A1 (en) * 2021-06-18 2022-12-22 Google Llc Resource connectivity for multiple devices
US11887213B2 (en) * 2022-04-29 2024-01-30 Content Square SAS Image cache for session replays of mobile applications
WO2024151522A2 (en) * 2023-01-09 2024-07-18 Xailient Systems and methods for image encryption
US20240257232A1 (en) * 2023-02-01 2024-08-01 Coupa Software Incorporated Delegated document scan and storage

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003283693A (ja) 2002-03-26 2003-10-03 Nec Commun Syst Ltd 携帯通信端末のリモート制御方法及びシステム
JP4200692B2 (ja) 2002-05-31 2008-12-24 セイコーエプソン株式会社 デバイス状態監視システム、デバイス管理端末
EP1568202A4 (en) * 2002-11-25 2012-10-03 Telesector Resources Group Inc METHOD AND DEVICE FOR ADAPTIVE MESSAGE NOTIFICATION
WO2006058275A2 (en) 2004-11-29 2006-06-01 Roamware Inc. Missed call alerts
JP4983005B2 (ja) 2005-04-12 2012-07-25 富士通株式会社 電子機器、優先接続装置、優先接続方法及び優先接続プログラム
GB2427100B (en) 2005-06-09 2008-07-09 Motorola Inc A notification apparatus and method for a cellular communication system
US8145718B1 (en) 2005-10-21 2012-03-27 Voltage Security, Inc. Secure messaging system with personalization information
KR20070060177A (ko) 2005-12-08 2007-06-13 주식회사 팬택 이동통신단말기에서의 부재중 호 착신 메일 통보 방법
US8239458B2 (en) 2006-03-31 2012-08-07 Microsoft Corporation Determining failed delivery of email messages using email notifications
US20090191849A1 (en) * 2008-01-28 2009-07-30 International Business Machines Corporation Enhanced messaging collaboration
US20100048182A1 (en) 2008-08-25 2010-02-25 Shay Ben-David Reaching a Communications Service Subscriber Who is Not Answering an Incoming Communications Request
JP5801991B2 (ja) 2008-12-25 2015-10-28 株式会社Nttドコモ 着信制御サーバ、及び、着信制御方法
FR2953613B1 (fr) 2009-12-07 2012-01-13 Alcatel Lucent Systeme bureautique comprenant une application de telephonie
US8676171B2 (en) * 2010-10-21 2014-03-18 Resonate Mobile, Inc. Short URL metadata merge application
KR20130121524A (ko) * 2012-04-27 2013-11-06 삼성전자주식회사 통신 서비스 관리 시스템 및 이의 운용 방법
CA2879571A1 (en) 2012-07-20 2014-01-23 Iwatchlife Inc. System and method for managing video analytics results
US20140074927A1 (en) * 2012-09-13 2014-03-13 International Business Machines Corporation Caching content based on social network relations
WO2014059608A1 (en) 2012-10-16 2014-04-24 Nokia Corporation Method and apparatus for providing mechanism to control unattended notifications at a device
US9350693B2 (en) * 2012-12-17 2016-05-24 Lookout, Inc. Method and apparatus for cross device notifications
KR20140121141A (ko) * 2013-04-05 2014-10-15 삼성전자주식회사 배터리 용량에 따라 착신 호를 전환하는 전자 장치 및 방법
US9288164B2 (en) * 2013-06-07 2016-03-15 Apple Inc. Managing notifications across multiple devices
US9679075B1 (en) * 2014-04-30 2017-06-13 Instart Logic, Inc. Efficient delivery of animated image files
US20150350146A1 (en) * 2014-05-29 2015-12-03 Apple Inc. Coordination of message alert presentations across devices based on device modes

Also Published As

Publication number Publication date
AU2015280414A1 (en) 2016-12-01
EP3162005A4 (en) 2018-03-28
BR112016028193B1 (pt) 2023-09-26
CN106464573A (zh) 2017-02-22
BR112016028193A2 (pt) 2018-05-15
WO2015200051A1 (en) 2015-12-30
EP3162005A1 (en) 2017-05-03
EP3162005B1 (en) 2019-06-12
CN106464573B (zh) 2019-11-15
US20150373089A1 (en) 2015-12-24
AU2015280414B2 (en) 2017-12-14
US10097619B2 (en) 2018-10-09
JP2017522664A (ja) 2017-08-10

Similar Documents

Publication Publication Date Title
JP6456984B2 (ja) 装置間相互通知
KR102480096B1 (ko) 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들
US10582042B2 (en) Social caller ID with reverse look-up
US11855941B2 (en) System and method for self-destructing messages
US9544409B2 (en) Automated caller identifier from contact lists of a user's contacts
AU2014235374B2 (en) Wireless data privacy maintained through a social network
AU2020292195A1 (en) Notification tagging for a workspace or application
US10474319B2 (en) Methods and instant messaging client devices for performing IM using menu option
AU2014235568A1 (en) Social filtering of user interface
US11616742B2 (en) Methods and systems for end-to-end encrypted message history exchange
KR101270434B1 (ko) 스마트 단말의 발신자 정보 제공 시스템
US9787615B2 (en) Apparatus, systems, and methods for network interactions
KR101403783B1 (ko) 어플리케이션 실행의 개별단계를 위한 가상 공간 제공 시스템
JP2017528799A (ja) メッセージングサービスのエクスポート
US11176021B2 (en) Messaging systems with improved reliability
TW202402076A (zh) 具有藍牙廣播的離線網狀傳訊網路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181105

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181219

R150 Certificate of patent or registration of utility model

Ref document number: 6456984

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250