JP2020512724A - エフェメラルコンテンツメッセージを処理するための方法およびシステム - Google Patents

エフェメラルコンテンツメッセージを処理するための方法およびシステム Download PDF

Info

Publication number
JP2020512724A
JP2020512724A JP2019544696A JP2019544696A JP2020512724A JP 2020512724 A JP2020512724 A JP 2020512724A JP 2019544696 A JP2019544696 A JP 2019544696A JP 2019544696 A JP2019544696 A JP 2019544696A JP 2020512724 A JP2020512724 A JP 2020512724A
Authority
JP
Japan
Prior art keywords
message
user
client
sending
content
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.)
Pending
Application number
JP2019544696A
Other languages
English (en)
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.)
WhatsApp LLC
Original Assignee
WhatsApp 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 WhatsApp LLC filed Critical WhatsApp LLC
Publication of JP2020512724A publication Critical patent/JP2020512724A/ja
Priority to JP2022119463A priority Critical patent/JP2022169529A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • 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/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • 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/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • 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/212Monitoring or handling of messages using filtering or selective blocking
    • 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
    • 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/42Mailbox-related aspects, e.g. synchronisation of mailboxes
    • 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/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72436User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for text messaging, e.g. short messaging services [SMS] or e-mails
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72439User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for image or video messaging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/043Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
    • H04W12/0431Key distribution or pre-distribution; Key agreement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • H04W4/14Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/088Access security using filters or firewalls

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

例示的な実施形態は、エフェメラルコンテンツメッセージを伝送するための技術に関する。送信クライアントは、初期セッションセットアップ中に第1の複合キーを使用して、メッセージの潜在的な受信者とのエンドツーエンド暗号化セッションを確立することができる。クライアントは、暗号化されたコンテンツおよび第2のキーを含むエフェメラルコンテンツメッセージを、サーバを介して受信者に送信することができる。サーバは、第2のキーの欠如に起因して、暗号化されたコンテンツを取得することができなくてもよい。サーバは、対象とする受信者のリストをフィルタリングすることができ、また、フィルタリングされたリスト上の受信者にエフェメラルコンテンツメッセージを転送することができる。受信者は、メッセージから第2のキーを取得し、暗号化されたコンテンツを復号するために第1および第2のキーを使用することができる。送信クライアントは、受信者リストが送信クライアントの観点から変化する度に第2のキーを変更することができ、これは、エフェメラルコンテンツメッセージが伝送される時点で決定される。【選択図】図1A

Description

関連出願
本出願は、2017年2月17日に出願された「Methods and Systems for Processing an Ephemeral Content Message」と題する米国仮出願第62/460,136号の優先権を主張する、2017年9月15日に出願された「Methods and Systems for Processing an Ephemeral Content Message」と題する米国特許出願第15/705,999号の優先権を主張する。前述の出願の内容は、参照により本明細書に組み込まれる。
通信サービス、メッセージングサービス、およびソーシャルネットワーキングサービスなどのいくつかのサービスは、ユーザが他のユーザとメッセージを交換することを可能にする。アップデートメッセージなどのいくつかのメッセージは、送信ユーザ(例えば、送信ユーザの連絡先、または一般大衆)からの通信を閲覧することができるサービスのユーザにブロードキャストされ得る。
例示的な実施形態は、エフェメラルコンテンツメッセージを介してエフェメラルコンテンツを生成、処理、および表示するための技術に関する。エフェメラルコンテンツメッセージは、例えば、エフェメラルコンテンツが含まれているメッセージであってもよい。エフェメラルコンテンツは、限られた期間または限られた条件下でのみアクセス可能であるように設定されるコンテンツを含む。エフェメラルコンテンツが期限切れになると、コンテンツは、削除され得るか、またはアクセス不可能になり得る。
エフェメラルコンテンツに関連して説明されるが、説明されるフィルタリングおよびランク付け技術などの、本明細書に説明されるいくつかの技術は、エフェメラルまたは非エフェメラルコンテンツに関連して採用されてもよい。
エフェメラルコンテンツメッセージの文脈においては、いくつかの問題が、現在のメッセージング技術に存在する。例えば、従来のメッセージ内への包含のためにコンテンツが選択または生成される様式は、非常に複雑であり得、コンテンツのタイプに応じて、およびコンテンツが生成される様式に応じて、ユーザは、異なるやり方でコンテンツを通信サービスの別のユーザに入力送信することができる。1つの例において、ユーザは、ピクチャベースのメッセージとは異なる様式でテキストベースのメッセージを生成することができる。カテゴリ内でさえ、エントリポイントは異なり得る。別の例において、ユーザは、ピクチャベースのメッセージを、1つのやり方においては以前に取り込んだ写真を選択するときに、および別のやり方においてはユーザがメッセージ用に新しい写真を取り込むことを望むときに、生成することができる。
一部の通信システムはまた、ユーザがコンテンツを含むメッセージに対して返信することを可能にし得る。返信が実施され得る1つのやり方は、複数のユーザ間の既存の会話に対する返信を添付すること、または、エフェメラルコンテンツに応答して指定のユーザグループを有する新規の会話を開始することである。しかしながら、返信ユーザは、元のメッセージが送信された受信者のリスト全体についてよく知っているわけではない場合があるため、そのような技術は、初期のメッセージ伝送を受信しなかった追加のユーザに対して返信が送信されてしまう可能性がある。そのような挙動は、元のコンテンツベースのメッセージを送信する人の観点からは、その人が、特定の人をメッセージから除外すること、またはメッセージを明確に定められたグループに限定することを望む場合があるため、望ましくない場合がある。
さらには、コンテンツベースのメッセージがユーザにブロードキャストされる様式に起因して、プライバシを維持するのが困難な場合がある。例えば、コンテンツベースのメッセージがブロードキャストされるとき、コンテンツベースのメッセージは、典型的には、ブロードキャストを取り扱うための中間サーバに伝送される。好ましくは(プライバシの見地から)、コンテンツベースのメッセージの送信者および受信者のみが、メッセージのコンテンツを吟味することができることになる。しかしながら、ブロードキャストメッセージが、受信クライアントへの伝送のためにサーバに送信されるとき、送信ユーザが傍受に対して安全を保つことを望む情報を開示することなく、ブロードキャストサーバがメッセージを送信することを可能にするのに十分な情報をブロードキャストサーバに提供することは困難であり得る。
さらには、通信システムは、スパムまたは望まないメッセージを減少させるための異なる手法を取り得る。例えば、ソーシャルネットワークにおいて、エフェメラルコンテンツは、送信ユーザと規定の関係を有するユーザ(送信ユーザの友達など)に送信されることがある。しかしながら、すべてのメッセージングサービスまたはソーシャルネットワーキングサービスが、関係または友達関係の概念を組み込むわけではない。例えば、SMS(Simple Message Service)ベースのシステム、または別のタイプの連絡先ベースのメッセージングサービスは、ユーザが受信者の電話番号に基づいて任意の他の受信者にメッセージを送信することを可能にし得る。これらの例においては、ユーザ間に規定の関係は存在しない場合がある。
規定の関係を伴うシステムにおいて、システムは、ユーザ同士が関係を有する場合にのみユーザが互いと通信すること(または好ましい形態で互いと通信すること)を可能にすることによってスパム通信を回避することができる。例えば、ある人は、自分の友達のコンテンツベースのメッセージだけを見ることができる。これは、友達関係の規定の概念に依存しない通信システムにおいては不可能であり得る。
エフェメラルコンテンツ機能を提供する通信システムにあるさらに別の問題は、そのようなシステムのインターフェースが、煩雑になり得ること、およびエフェメラルコンテンツメッセージを他のタイプのメッセージと区別することが困難な場合があるということである。例えば、ユーザが投稿をあげることを可能にする通信システムにおいて、エフェメラルコンテンツは、投稿の間に表示され得る。同様に、メッセージングベースのシステムにおいて、エフェメラルコンテンツは、メッセージの間に表示され得る。しかしながら、エフェメラルコンテンツは、典型的には、投稿またはメッセージと比較して異なる種類の情報を伝達するために使用されるため、自分の連絡先のエフェメラルコンテンツをチェックすることを望むユーザは、自分の連絡先のエフェメラルコンテンツを見るために、大量の投稿またはメッセージを選り分けることを望まない場合がある。
同様に、エフェメラルコンテンツがメッセージと混合されるとき、エフェメラルコンテンツを表示するための1つの単純な技術は、エフェメラルコンテンツをメッセージの間に、それぞれのメッセージ/エフェメラルコンテンツのユニットが受信された順序で配置することである。時間順の系列は、メッセージについては意味をなし得るが、ユーザは、多くの場合、特定のエフェメラルコンテンツ(例えば、一般的な知り合いよりも、自分の家族または近しい友達からの)に対して他のものよりも興味を持っている。したがって、エフェメラルコンテンツの純粋に時間順の系列は、エフェメラルコンテンツの特に有用な表示をもたらさない場合がある。
さらに、エフェメラルコンテンツメッセージがメディア(例えば、ピクチャ、ビデオなど)を含むとき、エンドツーエンド暗号化を保護しながら受信ユーザがメディアにアクセスすることができることを確実にするのは困難な場合がある。さらには、エフェメラルコンテンツメッセージは、比較的大量の人にブロードキャストされ得る。いくつかのエフェメラル性モデルにおいて、エフェメラルコンテンツは、異なる受信者では異なる時間に期限切れになる場合がある。エフェメラルコンテンツがまだ期限切れになっていない一部のユーザに対してエフェメラルコンテンツを利用可能にする一方で、エフェメラルコンテンツが期限切れになった他のユーザに対してはそのコンテンツを利用不可能にすることは困難な場合がある。
エフェメラルコンテンツを提供する通信システムにおいて生じ得る別の問題は、以前に伝送されたエフェメラルコンテンツに対してプライバシを維持するという問題である。一部のシステムにおいて、ユーザは、他のユーザに関するアップデートを受信するために動作を実施する。例えば、ソーシャルネットワーキングサービスにおいて、あるユーザは、別のユーザと友達になり得るか、または、そのユーザのステータスを見るためにユーザをフォローし得る。そのような設定は、フォローモデルと称される。
フォローモデルでは、送信ユーザが新規ユーザによってフォローされる前に投稿するエフェメラルコンテンツは、新規ユーザが送信ユーザをフォローするときに新規ユーザにも見えるようになり得る。言い換えると、2人のユーザがつながる前に送信されたエフェメラルコンテンツは、つながりができた後に見えるようになる。この挙動は、自分の以前のエフェメラルコンテンツを新規フォロワーに対してはプライベートとして維持することを望み得る一部のユーザにとっては望ましくない場合がある。
フォローモデルはまた、エフェメラルコンテンツメッセージのエンドツーエンド暗号化を保護することにおいて問題を引き起こし得る。エフェメラルコンテンツメッセージを暗号化するために使用されるパラメータ(例えば、メッセージキー)の多くは、メッセージが送信される時に決定されるため、エフェメラルコンテンツメッセージが後から新規フォロワーに対して利用可能になる場合に強力な暗号化を維持することは不可能な場合がある。暗号化が維持されることになる場合、新規の暗号化セッションが、通信システムのオーバーヘッドに加えて、事後に生成されることが必要な場合がある。
これらの問題および他の問題に対処するために、例示的な実施形態は、通信またはメッセージングサービスのためのエフェメラルコンテンツメッセージを送信するための新たな技術を提供する。
合理化されたエントリポイントが、コンテンツ(エフェメラルコンテンツなど)を含むメッセージを最初に生成するため、および以前に送信されたエフェメラルコンテンツメッセージに対して返信するために提供される。初期のエントリポイントは、コンテンツのタイプ、またはコンテンツが元々どのように生成されたかに関係なく、限られた数の明確に規定されたユースケースに焦点を置く。
エフェメラルコンテンツメッセージ機能への初期のエントリは、メディアが最初どのように取り込まれるかに関係なく、2つの明確かつ合理化されたユースケースによって提供され得る。システムは、メディアをエフェメラルコンテンツメッセージ内で共有するため、またはメディアを会話またはチャット内などの非エフェメラルコンテンツメッセージ内で共有するためのオプションをユーザに提示することができる。したがって、生成されたメディアのタイプに基づいて適切なエントリポイントを識別するという問題が軽減される。写真およびGIFなどの画像、ビデオ、天気予報、ニュース、テキスト、タグ、PTT、またはボイスメッセージなどを含む、多くの異なるタイプのメディアが、エフェメラルコンテンツとして使用されてもよい。
エフェメラルコンテンツは、エンドツーエンド暗号化を保護するために、メッセージとして送信されてもよい。本明細書に説明される様々な態様は、メッセージとしてのエフェメラルコンテンツのカプセル化を促進し、効率的であるが送信ユーザのプライバシを依然として保護する様式で、メッセージと関連してメディアを共有するための技術をさらに提供する。
ユーザがエフェメラルコンテンツに対して返信するとき、この返信は、発信元ユーザと返信ユーザとの間に1対1のチャットをトリガすることができる。したがって、元々の送信ユーザのプライバシは保護される。代替的に、エフェメラルコンテンツは、最初に、グループ(ユーザの全連絡先リストの代わりに)に送信され得、返信は、そのグループに対して送信されてもよい。そのような実施形態は、送信ユーザがエフェメラルコンテンツメッセージを共有することを選択した元のグループメンバのみが会話に含まれるため、送信ユーザのプライバシを保護し続ける。グループ通信を促進するために、サーバは、グループのメンバシップを調査し、暗号化されたセッションがグループの各メンバ間に存在することを検証することができる。
上に説明される実施形態と併せて使用され得るさらなる実施形態は、通信ネットワークを介してエフェメラルコンテンツメッセージを伝送するための手順に関する。
最初に、送信クライアントは、エフェメラルコンテンツの潜在的な受信者(例えば、ユーザの連絡先リストまたは選択されたグループ)とのエンドツーエンド暗号化セッションを確立することができ、初期セットアップ中に第1のキーを提供することができる。クライアントは、暗号化されたセッションを使用して、サーバを介してメッセージを受信者に送信する。メッセージは、メディアアイテムのサムネイルおよびメディアアイテムへのリンクまたはポインタであり得る暗号化されたコンテンツ、ならびにメディアアイテムを復号するための第2のキーを含む。
受信者は、第1のキーを使用してコンテンツを復号し、メッセージから第2のキーを取得し、暗号化されたコンテンツを復号するために第2のキーを使用する。サーバ(または外部ユーザ)は、暗号化されたセッションの初期セットアップ中に送信される第1のキーを保有しない(したがって、サーバまたは外部ユーザは、コンテンツを復号する第2のキーを取得することができない)ことから、サーバ(または外部ユーザ)は、メッセージの暗号化された部分を取得することができない。
サーバは、送信ユーザから対象とする受信者のリストを受信することができ、スパムまたは望まないメッセージを減少させるためにこのリストをフィルタリングする。例えば、サーバは、送信者に対して対称関係のないユーザ、または送信者がブロックする、もしくは送信者によってブロックされるいかなるユーザもフィルタアウトする。サーバが、予想される受信者を対称性に基づいてフィルタリングするため、望まないメッセージを減少させるために、ユーザ間の友達関係または規定の関係の概念は必要とされない。
送信クライアントは、クライアントの観点から受信者リストが変わる度に第2のキーを循環させることができる。この決定は、エフェメラルコンテンツが伝送される時に行われ、いくつかの実施形態において、エフェメラルコンテンツは、新規の対称関係が作成されるとき(例えば、送信者の連絡先リスト内のユーザが、エフェメラルコンテンツの伝送後に、送信者を自分の連絡先リストに追加するとき)は再伝送されない。
エフェメラルコンテンツは、送信者により、予想される受信者に対して向けられることから、また新規の連絡先が以前のエフェメラルコンテンツを取得しない、またはそれにアクセスしないことから、例示的な実施形態は、上に説明されるフォローモデルではなく、エフェメラルコンテンツを共有するという有向性のモデルを実装し得る。したがって、送信ユーザは、エフェメラルコンテンツを誰が見るのか、およびいつ見るのかについて、より多くの制御を有する。
上に説明される実施形態と併せて使用され得るさらなる実施形態は、エフェメラルコンテンツを表示する、およびそれと対話するための技術に関する。
エフェメラルコンテンツはメッセージとして伝送されるが(暗号化を保護するために)、メッセージは、それをエフェメラルコンテンツとして指定するフラグでタグ付けされてもよい。受信者クライアントは、フラグが存在するときには、メッセージのコンテンツを通常のメッセージではなくエフェメラルコンテンツとして示すということが分かる。
コンテンツのエフェメラル性は、エフェメラルコンテンツメッセージを、メディアアイテムのサムネイル、およびサーバに記憶されたメディアアイテムのリンクまたはポインタと共にパッケージングすることによって実装され得る。エフェメラルコンテンツが期限切れになると(例えば、24時間で、1回または2回の閲覧後など)、サムネイルは、メッセージング履歴内に留まるが、リンクは、非アクティブになり得る。リンクがアクティブである間、ユーザは、エフェメラルコンテンツの全画面提示の状態になるようにリンクを選択することができる。
異なるメディアタイプが、異なるタイプの全画面提示と関連付けられ得る。例えば、ロケーションアップデートは、タグ付けされたロケーションを示す地図データを有する画像を提示することができる。
エフェメラルコンテンツが期限切れになると、リンクは非アクティブになり得る。非アクティブなリンクにアクセスしようとするユーザは、メディアアイテムにアクセスすることができなくてもよい。それにもかかわらず、メディアアイテムは、サーバ上に存在し続け、リンクがアクティブのままであるユーザには利用可能なままであり得る。したがって、リンクは、異なる時間において異なるユーザに対して非アクティブになり得る。
エフェメラルコンテンツは、非エフェメラルコンテンツと比較して別個のタブ上のUI内に提供され得る。異なるユーザからの表示されたエフェメラルコンテンツは、関心スコアに基づいてランク付けされ、ランク順で表示され得る。関心スコアは、例えば、(1)誰のエフェメラルコンテンツが以前に閲覧されているか、(2)閲覧されている特定のユーザからのエフェメラルコンテンツのパーセンテージ、(3)誰のエフェメラルコンテンツが定期的に閲覧されているか(例えば、毎日/毎週/毎月)、(4)どのエフェメラルコンテンツが最近であるかなどに基づいて、計算され得る。エフェメラルコンテンツは、ランク順で別個のタブ内に表示され得る。したがって、エフェメラルコンテンツは、メッセージまたは投稿と混合される必要がなく、混み入ったまたは煩雑な表示の問題は対処され得る。さらに、ランク付けは、ユーザがあまり関心を持たない可能性のあるエフェメラルコンテンツを選り分ける必要性なしに、ユーザが、興味のあるまたは優先度の高いエフェメラルコンテンツを素早く見つけることを可能にし得る。
この簡単な概要は、以下により詳細に論じられる概念に対する非限定的な導入として機能することが意図される。しかしながら、さらなる例示的な実施形態について論じる前に、データプライバシに関する簡単な記述が、まず提供される。プライバシ設定および認証のより詳細な説明は、以下の図に関連して取り上げられるものとする。
メッセージングアプリケーションのための例示的なインターフェースを描写する図である。 エフェメラルコンテンツを共有するための例示的なインターフェースを描写する図である。 共有されるべきエフェメラルコンテンツを取り込むための例示的なインターフェースを描写する図である。 エフェメラルコンテンツを共有した後の図1Bのインターフェースを描写する図である。 エフェメラルコンテンツの受信者を選択するための例示的なインターフェースを描写する図である。 どのユーザが共有されたエフェメラルコンテンツを受信するかを決定するためのプライバシ設定を変更するための例示的なインターフェースを描写する図である。 メッセージングサービスにおいて会話内のエフェメラルコンテンツを閲覧するための例示的なインターフェースを描写する図である。 画像またはビデオを含むエフェメラルコンテンツの拡大版を表示する例示的なインターフェースを描写する図である。 画像またはビデオを含むエフェメラルコンテンツに対して返信するための例示的なインターフェースを描写する図である。 エフェメラルコンテンツに対する返信を含む会話を表示するための例示的なインターフェースを描写する図である。 会話内からエフェメラルコンテンツを共有するための例示的なインターフェースを描写する図である。 会話内から共有されるべきコンテンツを選択するための例示的なコンテンツを描写する図である。 オーディオ記録を含むエフェメラルコンテンツの拡大版を表示する例示的なインターフェースを描写する図である。 ロケーションを含むエフェメラルコンテンツの拡大版を表示する例示的なインターフェースを描写する図である。 天気予報を含むエフェメラルコンテンツの拡大版を表示する例示的なインターフェースを描写する図である。 ニュース記事を含むエフェメラルコンテンツの拡大版を表示する例示的なインターフェースを描写する図である。 エフェメラルコンテンツメッセージにエンドツーエンド暗号化を適用するのに好適である例示的なシステムを描写する図である。 クライアントデータベースを表す例示的なデータ構造を描写する図である。 セッションセットアップ情報を含むメッセージを表す例示的なデータ構造を描写する図である。 セッションセットアップが発生した後のメッセージを表す例示的なデータ構造を描写する図である。 エンドツーエンド暗号化通信システム内でメディアファイルを交換するためにネットワーク内で伝送される例示的なメッセージを描写する図である。 例示的なエフェメラルコンテンツメッセージを描写する図である。 対称および非対称関係を有する例示的な連絡先リストを描写する図である。 例示的な実施形態による情報交換を示す例示的なデータフロー図である。 エフェメラルコンテンツメッセージを生成するための例示的な送信クライアント側ロジックを描写するフローチャートである。 コンテンツ共有インターフェース内へ入るための要求を処理するための例示的な送信クライアント側ロジックを描写するフローチャートである。 エフェメラルコンテンツメッセージの伝送を処理するための例示的なサーバ側ロジックを描写するフローチャートである。 連絡先のリストをフィルタリングするための例示的なサーバ側ロジックを描写するフローチャートである。 エフェメラルコンテンツメッセージを表示するための例示的な受信クライアント側ロジックを描写するフローチャートである。 エフェメラルコンテンツをランク付けするための例示的な受信クライアント側ロジックを描写するフローチャートである。 例示的な中央集中通信サービスを含むシステムの概観を提供するブロック図である。 例示的な分散通信サービスを含むシステムの概観を提供するブロック図である。 図8A〜図8Bのソーシャルネットワーキンググラフをより詳細に描写する図である。 メッセージングサービスのためのシステムの例を描写するブロック図である。 例示的な実施形態と共に使用するのに好適である例示的なコンピューティングデバイスを例証するブロック図である。 例示的な通信アーキテクチャを描写する図である。 例示的なマルチキャリア通信デバイスを描写するブロック図である。
データプライバシに関する記述
本明細書に説明されるいくつかの実施形態は、1人または複数のユーザによって自発的に提供される情報を含み得る訓練データまたは指標を利用する。そのような実施形態において、データプライバシは、いくつかのやり方で守られ得る。
例えば、ユーザは、ユーザデータが収集または使用される前に任意のデータ収集にオプトインすることを要求され得る。ユーザはまた、任意のデータ収集からオプトアウトする機会を提供され得る。データ収集にオプトインする前に、ユーザは、データが使用されるやり方、どのぐらいの間データが保持されるか、およびデータを開示から守るために適所にある安全措置についての説明を提供され得る。
データを収集されたユーザを識別するいかなる情報も、データから消去される、または切り離され得る。任意の識別情報が保持される必要がある場合(例えば、規制要件を満たすため)、ユーザは、その識別情報の収集、その識別情報が使用される用途、およびその識別情報が保持されることになる時間量を通知され得る。ユーザを具体的に識別する情報は、除去され得、また、例えば、総称の識別番号または他の非特異的な形態の識別と置き換えられ得る。
データは、一旦収集されると、データへの不正アクセスを防ぐために安全措置を含む安全なデータストレージ位置に記憶され得る。データは、暗号化された形式で記憶され得る。識別情報および/または非識別情報は、既定の時間期間後にデータストレージから消去され得る。
特定のプライバシ保護技術が例証の目的のために本明細書に説明されるが、当業者は、プライバシが他の様式でも同様に守られることを認識するものとする。データプライバシに関するさらなる詳細は、以下で、ネットワーク実施形態を説明するセクションにおいて論じられる。
ユーザのプライバシ条件が満たされると仮定して、例示的な実施形態は、数ある可能性の中でも、ソーシャルネットワーク内またはモバイルデバイス上でのメッセージング(例えば、メッセージングクライアントアプリケーションを通して、またはショートメッセージサービスを介して)を含む、多種多様なメッセージングシステムにおいて採用され得る。次に、メッセージングシステムにおける同時性ビデオ会話に参加するための例示的なロジックおよびプロセスの外観が提供される。
理解を助けるものとして、まず、一連の例が、根本の実装形態の詳細な説明が説明される前に、提示される。これらの例は、単に例証であることが意図されること、および本発明は示される実施形態に限定されないことに留意されたい。
例示的なインターフェース
これより、図面を参照するが、ここでは同様の参照番号は、全体を通して同様の要素を指すために使用される。以下の説明において、説明の目的のため、多数の具体的な詳細事項が、それらの徹底的な理解を提供するために明記される。しかしながら、新規の実施形態は、これらの具体的な詳細事項なしに実践されてもよい。他の事例において、周知の構造およびデバイスは、それらの説明を容易にするためにブロック図の形態で示される。特許請求される主題と一致するすべての修正形態、均等物、および代替物を網羅することが意図される。
図および付随する説明において、指示表示「a」および「b」および「c」(ならびに同様の指示子)は、任意の正の整数を表す変数であることが意図される。したがって、例えば、実装形態が、a=5の値を設定する場合、コンポーネント122−1から122−aとして例証されるコンポーネント122の完全なセットは、コンポーネント122−1、122−2、122−3、122−4、および122−5を含み得る。実施形態は、この文脈に限定されない。
図1Aは、通信アプリケーションのための例示的なインターフェース100を描写する。通信アプリケーションは、ユーザが、メッセージおよびエフェメラルコンテンツなどのコミュニケーションを、通信サービスの他のユーザと交換することを可能にし得る。インターフェースは、会話/チャットにまとめられたメッセージを表示することができる。
会話またはチャットは、会話またはチャットを識別する会話識別子と関連付けられ得る。会話識別子は、会話に参加する参加者のグループとさらに関連付けられ得る。
ユーザは、インターフェース100を使用してメッセージを送信することによって会話/チャットに寄与することができる。例えば、インターフェース100は、新規メッセージを書くための作文インジケータを含み得る。新規メッセージを書くとき、ユーザが、新規メッセージを既存の会話に向けること、および/または受信者のセットを指定することを可能にするインターフェースが提示され得る。受信者の指定のセットが、会話が既に存在する受信者のセットに相当する場合、メッセージは、既存の会話に向けられ得る。そうでない場合、新規の会話が、指定の受信者間に作成され得る。メッセージは、識別された会話の会話IDでタグ付けされ得る。
インターフェース100は、最近の会話およびその会話に関する情報(例えば、参加者、一番最近のメッセージの断片、一番最近のメッセージの時間および送信者など)を表示することができる。
インターフェース100は、コミュニケーションの機能にアクセスすることを可能にするメニューまたは対話可能要素を含み得る。例えば、例示的なインターフェース100は、写真またはビデオを取り込むためにカメラインターフェースにアクセスすることを可能にするカメラアイコン102を含む。インターフェース100は、エフェメラルコンテンツを生成および/または閲覧することを可能にするエフェメラルコンテンツアイコン104をさらに含む。これらの要素は、例示であり、他の実施形態においては、他のタイプの要素が存在してもよい。例えば、カメラアイコン102に加えて、またはそれに代わって、1つまたは複数のメディアアイコンが、異なるタイプのメディアを生成すること、それにアクセスすること、またはそれを選択するために提供されてもよい。
図1Bは、エフェメラルコンテンツアイコン104の選択を受信する際に表示される例示的なエフェメラルコンテンツインターフェース106を描写する。エフェメラルコンテンツインターフェース106は、通信サービスのユーザによって共有されるエフェメラルコンテンツと対話するための場所を提供することができ、これは、他のタイプのコンテンツ(例えば、非エフェメラルメッセージ、投稿など)を閲覧するためのインターフェースとは全く異なる。
エフェメラルコンテンツインターフェースは、新規エフェメラルコンテンツを生成または選択することを可能にする対話可能要素108を含み得る。対話可能要素108を選択すると、アプリケーションは、コンテンツを生成または選択するためのインターフェースを表示することができる。例えば、対話可能要素108を選択することにより、新規の写真またはビデオコンテンツを生成するために、図1Cに示されるように、カメラインターフェースを表示させてもよい。代替的に、または加えて、対話可能要素108を選択することにより、新規のエフェメラルコンテンツを生成するため、またはエフェメラルコンテンツメッセージ内で共有されるべき既存のコンテンツを選択するために、図1Lに示されるメニューと同様のメニューを表示させてもよい。
エフェメラルコンテンツインターフェース106は、現在のユーザによって共有された最近のエフェメラルコンテンツを表示するためのインターフェース部分110を含み得る。現在のユーザが最近(例えば、既定の時間期間内に)いかなるエフェメラルコンテンツも共有していない場合、またはそのユーザによって共有されたすべてのエフェメラルコンテンツが、そのコンテンツが共有された各受信者について期限切れであった場合、対話可能要素108は、そのユーザが、能動的に共有されたいかなるエフェメラルコンテンツも有さないことを示すために、インターフェース部110内に表示され得る。
インターフェース106の別の部分は、現在のユーザに利用可能なエフェメラルコンテンツアイテム112−i(例えば、他のユーザによって現在のユーザと共有されたエフェメラルコンテンツ)を表示することができる。エフェメラルコンテンツアイテム112−iは、エフェメラルコンテンツアイテム112−iを生成したユーザについての識別子を含み得、またエフェメラルコンテンツアイテム112−iのサムネイル114−iの表示を含み得る。サムネイル114−iは、コンテンツの縮小サイズ版、コンテンツの一部分、コンテンツの低品質版などのエフェメラルコンテンツの表現を含み得る。サムネイル114−iは、コンテンツへのリンクまたはポインタと関連付けられ得る。リンクまたはポインタがアクティブである間にサムネイルを選択することにより、コンテンツの全画面または拡大表示が示されるようにすることができる。
エフェメラル性を実装するために、リンクは、特定の条件下では非アクティブにされ得る。例えば、リンクは、特定数の閲覧(例えば、1回または2回の閲覧)の間はアクティブであり得るか、または特定の時間期間の間(例えば、コンテンツが最初に送信されるときから、24時間など既定の時間期間、または、コンテンツが、最初に受信ユーザによって全画面または拡大サイズでアクセスされるときから、24時間など既定の時間期間)はアクティブであり得る。リンクがアクティブのままである、または非アクティブになる条件は、任意選択的に、送信ユーザによって設定され得る。
サムネイル114−iは、リンクがアクティブであるか、または非アクティブであるかを示すインジケータ116−iを含み得る。例えば、インジケータ116−iは、リンクステータスに応じて色が変化する(例えば、アクティブの場合は緑または青、非アクティブの場合は黒または赤)、またはリンクが非アクティブになると別途変化する、もしくは消えるサムネイル114−iの周りの輪であってもよい。インジケータ116−iは、コンテンツのステータスを別途図示により区別してもよい(例えば、アクティブリンクの場合はチェックマークを加える、アクティブリンクの周りに点灯効果を生成するなど)。
いくつかの実施形態において、インジケータ116−iはまた、利用可能なエフェメラルコンテンツに関する他の情報を示すことができる。図1Bに描写される例において、各インジケータ116−iの輪は、セグメントの数nへと分けられる。インジケータ116−iのセグメントの数は、サムネイル114−iと併せて識別されるユーザから利用可能である、またはそれに関連付けられたコンテンツアイテムの数を表し得る。例えば、インジケータ116−1は、現在6つのエフェメラルコンテンツアイテムがユーザJaneから利用可能であることを示す。同時に、インジケータ116−2は、現在2つのエフェメラルコンテンツアイテムがユーザJoeから利用可能であることを示す。表示されたサムネイル114−iは、識別されたユーザから利用可能な一番最近のコンテンツアイテムに対応し得る。
図1Bに描写される例においては、インターフェース106の単一の部分のみが他のユーザのエフェメラルコンテンツ用に設けられているが、いくつかの実施形態においては、エフェメラルコンテンツは、複数の異なるタブまたは部分に表示されてもよい。例えば、第1の部分は、重要なエフェメラルコンテンツ、または通信サービスがユーザにとって関心のあるものである可能性があると決定するエフェメラルコンテンツ用に設けられてもよい。そのような部分は、以下により詳細に説明されるような関心スコアに従ってランク付けされ得る、既定の数の高ランクのエフェメラルコンテンツアイテムを含んでもよい。第2の部分は、エフェメラルコンテンツアイテムがどのようにランク付けされるかに関係なく、既定の数の最近受信したエフェメラルコンテンツアイテムなど、最近のエフェメラルコンテンツアイテム用に設けられてもよい。
上に記されるように、対話可能要素108を選択すると、エフェメラルコンテンツを生成するためのインターフェースが表示され得る。そのようなインターフェース118の一例は、図1Cに描写される。
例示的なインターフェース118は、ユーザが写真またはビデオを取り込むことを可能にする(例示的な実施形態は、写真またはビデオを取り込むことに限定されず、以前に取り込まれた写真またはビデオを共有すること、または他のタイプのメディアを生成もしくは選択することにも関する)。インターフェース118はまた、ユーザが任意のインターフェース内でカメラアイコン102を選択するときに表示されてもよい。
エフェメラルコンテンツインターフェース106を介してインターフェース118へ入るとき、インジケータ120は、そのコンテンツがエフェメラルメディアとして取り込まれていることを指定するために表示され得る。インジケータ120と対話することにより、新規コンテンツを取り込むことなくインターフェースがエフェメラルコンテンツインターフェース106へ戻るようにしてもよい。一方、カメラアイコン102を介してインターフェース118に入るとき、取り込まれたコンテンツは、非エフェメラルであり得(および/または、後にエフェメラルにされ得る)、したがって、インジケータ120は、この場合は表示されなくてもよい。
インターフェース118は、取込ボタン124(例えば、カメラからのライブプレビュー)と対話する際に取り込まれるメディアを表示するプレビュー部分122を含み得る。取込ボタン124の選択を受信すると、プレビューウィンドウ122内に表示されるメディアが取り込まれ得る。いくつかの実施形態において、取込ボタン124は、多機能取込ボタンであってもよい。そのような実施形態において、1つのやり方(例えば、タップ)で取込ボタン124と対話することにより、写真などのあるタイプのメディアが取り込まれるようにすることができる一方、別のやり方(例えば、長押し)で取込ボタン124と対話することにより、ビデオなどの別のタイプのメディアが取り込まれるようにすることができる。インターフェース118は、さらに、または代替的に、取込タイプを選択するための(例えば、写真対オーディオ対ビデオ)様々なアイコンを含み得る。
インターフェース118は、メディアに文字キャプションを追加するためのキャプションバー126、およびメディアを操作するための制御部128を含み得る。例えば、取り込まれているメディアが写真であるとき、写真編集ツールが、写真に画像、テキスト、または絵を追加するためのツールと同様に、提供され得る。
一旦メディアが取り込まれる、操作される、および/またはキャプション付けされると、ユーザは、メディアをエフェメラルコンテンツとして仕上げて、エフェメラルコンテンツメッセージを介してエフェメラルコンテンツを共有するために、仕上げ要素130と対話することができる。いくつかの実施形態において、仕上げ要素と対話することにより、メディアが、エフェメラルコンテンツとして、送信ユーザのプライバシ設定によって規定されるような受信者のセットに送信されるようにする(図1Fを参照のこと)。
一旦コンテンツが共有されると、アプリケーションは、図1Dに示されるように、エフェメラルコンテンツインターフェース106へと戻ることができる。この場合、インターフェースの第1の部分は、ユーザが最近エフェメラルコンテンツを共有したことを示すように更新され得る。例えば、最近共有されたコンテンツのサムネイル114−3が、第1の部分内で対話可能要素108に取って代わり得る。代替的に、コンテンツが以前に共有されていた場合、サムネイル114−3は、一番最近共有されたコンテンツを示すように更新され得る。
いくつかの実施形態において、メディアを取り込むことまたは選択することにより(例えば、図1Cにおいて行われたように)、図1Eに示されるように、共有インターフェース132を表示させることができる。共有インターフェース132は、送信ユーザが、メディアを送信者の連絡先リスト内のユーザの選択されたグループにエフェメラルコンテンツとして伝送することを可能にする第1の部分134を含み得る。ユーザのグループは、以下に論じられるように、ユーザのプライバシ設定を通じて設定され得る。
共有インターフェース132は、ユーザが、頻繁に連絡を取る当事者とメディアを共有することを可能にする第2の部分136を提示することができる。当事者は、ユーザが、既定の時間期間(例えば、先週、先月など)にわたってどの個人またはグループと最も頻繁にコミュニケーションを取ったかに基づいて選択され得る個々のユーザまたはユーザのグループを含み得る。第3の部分138は、同様に、ユーザが、最近コミュニケーションを取った個人またはグループとメディアを共有することを可能にし得る(例えば、ユーザが参加したことのあるn個の一番最近のコミュニケーションスレッド)。
選択要素140−iは、メディアが共有され得る各々の潜在的なエンティティに関連して提供され得る。選択要素140−iを選択すると、選択要素は、そのエンティティが包含のために選択されたことを示すように更新され得る。ユーザは、コンテンツを受信するための複数の異なるエンティティを選択してもよい。
メディアが第2の部分136または第3の部分138内のエンティティと共有されるとき、メディアは、非エフェメラルコンテンツとして共有されてもよく、また選択に対応する会話に追加されてもよい。代替的に、送信ユーザの設定に応じて、コンテンツは、選択された会話内へエフェメラルコンテンツとして共有されてもよい。
いくつかの実施形態において、メディアが第2の部分136または第3の部分138内のエンティティと共有されるとき、指定された受信者への対応するエフェメラルコンテンツメッセージは、グループメッセージと見なされ得、エフェメラルコンテンツメッセージに対する返信は、必要に応じて、それぞれの受信者とのグループ会話に追加され得る。そのようなメッセージは、グループメッセージとして、フラグが付けられ得るか、指定され得る。その一方で、メディアがインターフェースの第1の部分134を使用してエンティティと共有されるとき、対応するエフェメラルコンテンツメッセージは、ブロードキャストと見なされ得、エフェメラルコンテンツメッセージに対する返信は、送信者と返信者との間の1対1の会話に追加され得る。このメッセージは、ブロードキャストとして、フラグが付けられ得るか、指定され得る。
メディアがインターフェース132の第1の部分134内の選択可能要素140−1を使用して共有されるとき(エフェメラルコンテンツ共有オプションに対応する)、メディアは、エフェメラルコンテンツとして、予め定められたユーザのセットに伝送され得る。予め定められたユーザのセットは、ユーザのプライバシ設定を通じて設定または調整され得る。例えば、第1の部分134内の「...」インジケータを選択すると、ユーザは、図1Fに示されるように、プライバシインターフェース142を提示され得る。
プライバシインターフェース142内で、ユーザは、メディアをエフェメラルコンテンツとして共有するための異なる共有オプション間で選択することができる。例えば、ユーザは、ユーザの連絡先リストまたはアドレス帳内の連絡先の各々にエフェメラルコンテンツをブロードキャストするために、「自分の連絡先」オプションを選択することができる。ユーザはまた、除外されたユーザの選択されたサブセットを除く、連絡先リスト内の連絡先の各々とコンテンツを共有するためのオプションを提示され得る。このオプションを選択すること、またはそれと対話することにより、送信ユーザが伝送から除外する連絡先を選択することを可能にするインターフェースを表示させることができる。さらに別のオプションにおいて、ユーザは、コンテンツを共有されるべき連絡先リストからの連絡先のサブセットを選択することが許可され得る。このオプションを選択すること、またはそれと対話することにより、送信ユーザが伝送に含める連絡先を選択することを可能にするインターフェースを表示させることができる。
メディアが、図1Eに示されるような第1の部分134のエフェメラルコンテンツ共有オプションを使用して、エフェメラルコンテンツとして伝送されるとき、メディアは、受信ユーザのエフェメラルコンテンツインターフェース106(図1Bおよび図1D)内に現れ得る。メディアが、グループまたは個人に共有されるとき、メディアは、図1Gの会話インターフェース144に示されるように、送信ユーザとグループまたは個人との間の会話内にメッセージとして現れ得る。
この例では、メッセージ146は、エフェメラルコンテンツと共に会話に追加される。メッセージ146は、コンテンツがエフェメラルであることを示し得る(この例では、メッセージは、「Johnのステータス」と記載する見出しの包含により典型的なメッセージと区別される)。メッセージは、コンテンツのサムネイル114−4を表示することができ、また、コンテンツのエフェメラル性ステータス(例えば、コンテンツが利用可能な場合は青い輪、またはコンテンツが利用可能でない場合は黒い輪)を示すインジケータ116−4を表示することができる。
会話インターフェース144を閲覧する受信者は、コンテンツが利用可能なままである場合には、サムネイル114−4と対話することができる。サムネイル114−4と対話することにより、図1Hに示されるように、可視化インターフェース148内にコンテンツの全画面(または拡大サイズ)版を表示させることができる。
可視化インターフェース148は、画像またはビデオの最大解像度または高解像度版(例えば、サムネイル版と比較して)を表示することができる。インターフェース148は、全画面提示から退出するための選択可能なオプションを含んでもよく(例えば、「戻る」ボタン)、これによりユーザを前のインターフェースへ戻すことができる。いくつかの実施形態において、全画面提示に入ること、またはそこから退出することにより、コンテンツのエフェメラル性に関連した行為(閲覧カウンタをインクリメントすること、またはタイマを開始することなど)をトリガすることができる。例えば、コンテンツが限られた数の閲覧だけ利用可能であることが意図される場合、全画面提示を開くことにより、閲覧カウンタをインクリメントし得、この閲覧カウンタは、コンテンツが利用可能なままであるかどうか(例えば、現在の閲覧数が、閲覧の既定のしきい値数未満であるかどうか)を決定するために、全画面提示にアクセスする前に毎回チェックされ得る。コンテンツが、最初に閲覧されてから限られた時間量(例えば、24時間)だけ利用可能であることが意図される場合、全画面提示を開くことにより、エフェメラル性タイマを開始し得、このエフェメラル性タイマは、コンテンツが利用可能なままであるかどうか(例えば、タイマがまだ期限切れになっていないとき)を決定するために、全画面提示にアクセスする前に毎回チェックされ得る。いくつかの実施形態において、全画面提示を退出することにより、デバイス上に記憶されたメディアのいかなるローカルコピーも消去されるようにすることができる。
エフェメラルコンテンツの任意の全画面提示は、任意選択的に、同じユーザからの他の利用可能なエフェメラルコンテンツの指示150を含んでもよい。この場合、いくつかのステータスバー150−1、150−2が表示され、ここでは数は、現在の(受信)ユーザが送信ユーザからアクセスすることができる利用可能な(例えば、期限切れでない)エフェメラルコンテンツアイテムの数に対応する。ステータスバー150の数は、サムネイル114に関連して表示される境界線116内の線の数に対応し得る(例えば、図1Bを参照のこと)。
任意選択的に、インターフェース148内に表示されるエフェメラルコンテンツは、既定の時間期間にわたって表示されてもよい。タイマは、全画面ビューに入るときに開始されてもよく、タイマの満了時に、システムは、表示されたエフェメラルコンテンツを次の利用可能なエフェメラルコンテンツへと前に進めることができる。現在のエフェメラルコンテンツアイテムに対応するステータスバー150−1は、残っている時間量をタイマに反映するために外観が変化し得る。この例では、経過時間のパーセンテージに対応するステータスバー150−1の一部分は、異なる色で表され得る。この部分は、既定のしきい値時間においてこの部分がステータスバー150−1の実質的にすべてを占有するまで、タイマが進むにつれてサイズが大きくなり得る。表示されたエフェメラルコンテンツがその後、前に進むとき、ステータスバー150のうちの1つは除去され得、表示が更新され得る(例えば、残っているステータスバー150をサイズ変更するおよび/または再度中心に置くため)。
さらに任意選択的に、インターフェース148との対話は、表示されるエフェメラルコンテンツを手動で前に進めることができる(例えば、次の利用可能なエフェメラルコンテンツアイテムへと移動する)。例えば、インターフェース148は、タップまたはスワイプなどの対話を登録し得、コンテンツが前に進むようにする。
システムは、最初に、所与の送信ユーザについて一番最近のエフェメラルコンテンツアイテムをインターフェース148内に表示することができる。自動的にまたは手動で前に進めるとき、表示される次のエフェメラルコンテンツアイテムは、同じ送信ユーザから利用可能な次に一番最近のエフェメラルコンテンツアイテムに対応し得る。所与の送信ユーザについての最後の利用可能なエフェメラルコンテンツアイテムが表示されるとき、システムは、次の送信ユーザ(例えば、本明細書に説明されるランク付けロジックによって決定されるような、次に高ランクのユーザ、または次に高ランクのエフェメラルコンテンツアイテムを送信したユーザ)についての一番最近のエフェメラルコンテンツアイテムを表示することができる。
全画面提示はまた、エフェメラルコンテンツに対して返信するためのオプション152を提供することができる。この例では、オプション152と対話することにより、図1Iに示されるように、返信インターフェースを表示させることができる。
返信インターフェースにおいて、(例えば)キーボードまたは他の入力デバイスにより入力されるような返信のプレビューを示す、プレビューバー154が表示され得る。任意選択的に、メディア要素156は、メディア(例えば、ピクチャ、ビデオ、オーディオ、ロケーションなど)を用いてエフェメラルコンテンツに対して返信するために提示され得る。返信が仕上げられると、ユーザは、返信を伝送するために仕上げ要素158と対話することができる。
エフェメラルコンテンツに対して返信する他の手段(例えば、会話インターフェース144内で、またはエフェメラルコンテンツインターフェース106内でエフェメラルコンテンツに対して返信するためのオプションを選択することによって)もまた、返信が生成されることを可能にし得る。
いくつかの実施形態によると、ブロードキャストエフェメラルコンテンツメッセージに対する返信は、エフェメラルコンテンツメッセージの元の送信者と返信を生成する受信者との間の1対1の会話として追加されてもよい(エフェメラルコンテンツが、元々は、選択されたグループに、またはブロードキャストとして、伝送されていたとしても)。現在これらのユーザ間に会話が存在しない場合、新規の会話が生成され得る。会話は、エフェメラルコンテンツメッセージが送信者から受信者に伝送されたときに確立される暗号化セッションに依存し得る。
例えば、図1Jは、現在のユーザが、受信したエフェメラルコンテンツメッセージ146に対して返信した後の図1Gの会話インターフェース144を描写する。返信160は、エフェメラルコンテンツメッセージ146に追加され得る。いくつかの実施形態において、エフェメラルコンテンツメッセージ146が元々は受信者のグループと共有されたときにさえ(図1Gの例のように)、コンテンツの元の送信者および返信者のみが、返信160を見ることができる。
代替的に、返信160は、グループ会話内に別個のメッセージとして現れてもよく、グループのすべてのメンバが見ることができてもよい。
エフェメラルコンテンツの元の送信者およびエフェメラルコンテンツに対して返信したユーザは、代替的に、または加えて、元のメッセージ146および返信160を、グループ会話とは全く異なる別個の会話インターフェース144内の別個の1対1の会話内で見ることができる。
カメラインターフェース内で、またはエフェメラルコンテンツインターフェースを介してエフェメラルコンテンツを共有することの代替として、またはそれに加えて、エフェメラルコンテンツは、図1Kに示されるように、会話インターフェース144内から共有されてもよい。この例では、選択可能要素162は、インターフェース144のコンテンツ生成部分に提供され得る。選択可能要素162を選択することにより、図1Lに示されるように、メニュー164を表示させることができる。メニューは、異なるタイプのメディアを選択または生成することを可能にするメニューオプション166−iのセットを含み得る。
例えば、この例では、第1のメニューオプション166−1は、カメラインターフェースを表示させることができる。第2のメニューオプション166−2は、エフェメラルメディアとして共有するために前から存在するコンテンツが選択されることを可能にするためにユーザの写真アルバムおよび/またはビデオライブラリを開くことができる。第3のオプション166−3は、ユーザが共有のためにローカルまたはリモートストレージから文書を選択することを可能にするプレビューウィンドウを開くことができる。第4のオプション166−4は、ユーザが自分のロケーション(または、選択されたロケーションのロケーションタグ)を共有することを可能にし得る。第5のオプション166−5は、ユーザが自分の連絡先リストから連絡先を共有することを可能にし得る。
他のオプションが、さらに、または代替的に、提供され得る。例えば、他の可能性の中でも特に、天気オプションは、天気予報がコンテンツアイテムとして生成または選択されることを可能にし得、テキストオプションは、テキストを生成または選択するために提供され得、オーディオコンテンツオプションは、オーディオコンテンツを生成または選択するために提供され得、ニュースコンテンツオプションは、ニュース記事を生成または選択するために提供され得、ハイパーリンクオプションは、ハイパーリンクを生成または選択するために提供され得る。
メニュー164内のオプション166−iのうちの1つを選択することにより、適切な取込および選択ツールに変更するためにディスプレイを変更することができる。例えば、ユーザがオーディオコンテンツオプションを選択する場合、ディスプレイは、ユーザが記憶されたオーディオ記録の中から選択することを可能にするように変化し得る、および/またはオーディオ記録インターフェースへ変化し得る。ユーザがハイパーリンクコンテンツオプションを選択する場合、ディスプレイは、ユーザの記憶されたお気に入りウェブサイトのリスト(例えば、ウェブブラウザアプリケーションから取得される)を表示するように、および/またはURL(ユニフォームリソースロケータ)を入力するためのテキスト入力バーを提供するように変更され得る。同様に、ユーザがロケーションコンテンツオプションを選択する場合、ディスプレイは、記憶されたお気に入りのロケーション(例えば、マッピングアプリケーションから取得される)のリストおよび/または新規のロケーションを入力するための検索バーを表示するように変更され得る。
いくつかの実施形態において、オプション166−iは、デフォルトのコンテンツまたは行為と関連付けられてもよい。例えば、天気オプションを選択することにより、現在のロケーションにおける天気予報がコンテンツアイテムとして選択されるようにすることができる。ロケーションオプションを選択することにより、ロケーションタグ内へロードされるべきユーザの現在のロケーションが、コンテンツアイテムとして使用されるようにすることができる。テキストオプションを選択することにより、デバイスのクリップボード内に現在記憶される任意のテキストがコンテンツアイテムとして選択されるようにすることができる。
任意選択的に、エフェメラルコンテンツを選択または生成する際、コンテンツにキャプションを追加するためにインターフェースが表示され得る。コンテンツおよび/またはキャプションの準備が整った後、エフェメラルコンテンツメッセージが、以下により詳細に論じられるように、生成および送信され得る。
上記のインターフェースのうちのいくつかは、写真またはビデオを共有することに焦点を置く。しかしながら、他のタイプのメディアも共有され得、異なるタイプの各々のメディアが、異なるタイプの全画面提示と関連付けられ得る。コンテンツの全画面または拡大表示の追加の例は、異なるメディアタイプについて図1M〜図1Pに示される。
図1Mは、オーディオ記録を含むエフェメラルコンテンツの拡大版を表示する例示的なインターフェース168を描写する。インターフェース168は、オーディオ記録を再生または停止するための制御部170、記録内の再生の位置を制御するための位置制御部172、およびオーディオ記録の再生音量を制御するための音量制御部174を含み得る。
図1Nは、ロケーションを含むエフェメラルコンテンツの拡大版を表示する例示的なインターフェース176を描写する。エフェメラルコンテンツは、ロケーションを説明するロケーションタグを含み得、全画面提示は、タグからのロケーションを含む、またはそれを中心とするマップを表示することができる。インターフェース176は、マップ上のタグ付けされたロケーションの正確な位置を示すマップピン178を含み得る。
図1Oは、天気予報を含むエフェメラルコンテンツの拡大版を表示する例示的なインターフェース180を描写する。インターフェースは、エフェメラルコンテンツメッセージが生成された時点での示された場所における現在の天気の拡大表現182、および追加の詳細事項(例えば、時間ごと、日ごと、週ごとの天気予報)の小さい表現184を含み得る。
図1Pは、ニュース記事を含むエフェメラルコンテンツの拡大版を表示する例示的なインターフェース186を描写する。インターフェースは、見出し188、ニュース記事に関連付けられた画像190、およびニュース内容192を表示することができる。
図1Hおよび図1M〜図1Pの全画面提示は、例証であることが意図される。他の設定が、描写されるメディアアイテムのタイプに対して使用されてもよく、また、他のタイプのメディアアイテムが、全画面提示と関連付けられてもよい。
次に、エフェメラルコンテンツメッセージを配信するための例示的なシステムが、図2を参照して説明される。
例示的なエンドツーエンド暗号化システム
図2に示されるように、例示的な実施形態は、中間サーバ204によって促進される、送信クライアント202と受信クライアント212−iとの間のエンドツーエンド暗号化を提供することができる。本明細書に説明されるいくつかの実施形態は、グループメッセージおよびブロードキャストを伝送するためにサーバ側ファンアウトを利用する。図2に例証されるように、サーバ側ファンアウト手順において、送信クライアント202は、メッセージの単一コピーをサーバ204に伝送し、次いでサーバ204が、メッセージのコピーを適切な受信者クライアント212−iに伝送する。
クライアント202、212とサーバ204との間のすべての通信は、別個の暗号化チャネル内で層化され得る。エンドツーエンド可能なクライアントは、例えば、長期にわたるインタラクティブ接続のためにNoise Protocol Frameworkから、Noise Pipes with Curve25519、Advanced Encryption Standard Galois/Counter Mode(AES_GCM)、およびSecure Hash Algorithm 256(SHA256)を使用することができる。暗号化チャネルを設定するためのパラメータは、サーバ204におけるクライアントデータベース206に記憶され得る。
そのような設定は、高速の軽量接続およびレジューム;メタデータを未承認のネットワークオブサーバから隠すためのメタデータの暗号化;接続ユーザのアイデンティティについての情報が明らかにされないこと;ならびにクライアント認証秘密がサーバ204に記憶されないこと、を含む、いくつかの望ましいプロパティをもたらす。クライアントは、Curve25519キーペアを使用して自らを認証することができるため、サーバは、クライアントの公開認証キーを記憶するだけである。仮にサーバのユーザデータベース206が不正アクセスされる場合、プライベート認証証明書は明らかにされることはない。
メディアおよび/またはアタッチメントを暗号化された様式で伝送するために、通信システムはまた、blobストア210をホストするblobサーバ208を含み得る。コンテンツを伝送するためにblobストア210を使用すること(特に、エフェメラルコンテンツメッセージを送信することと併せて)が、以下により詳細に説明される。
例示的な暗号化プロトコルおよびデータ構造
このセクションは、エンドツーエンド暗号化における使用に好適である例示的な暗号化プロトコルおよびデータ構造について説明する。実施形態は、特定の例に関して本明細書内で例証的に説明されるが、本発明は、説明される例に限定されない。本明細書で説明されるいくつかの態様は、任意のタイプの通信システムまたは暗号化プロトコルと共に使用され得るが、他のものが、好ましくは、エンドツーエンド暗号化通信システムと併せて採用されてもよい。
例示的な実施形態との使用に好適な暗号化プロトコルの例は、カリフォルニア州サンフランシスコのOpen Whisper Systemsによって設計されたSignal Protocolである。例示的な実施形態はまた、匿名鍵共有プロトコルElliptic Curve Diffie−Hellman(ECDH)を利用し得る。それにもかかわらず、他の暗号化プロトコルおよび鍵共有プロトコルもまた、例示的な実施形態との使用に好適であり得る。
有利には、エンドツーエンド暗号化プロトコルは、サードパーティ(および通信サービス自体さえ)が、サービスによって伝送されるメッセージへの平文アクセスを有することを防ぎ得る。ユーザのデバイスからの暗号化キーが物理的に不正アクセスされる場合にさえ、過去に戻って以前に伝送されたメッセージを復号するためにそれらを使用することはできない。
エンドツーエンド暗号化を使用するために、ユーザは、最初に、通信サービスに登録することができる。ユーザの登録情報は、図3Aに示されるように、クライアントデータベース206に記憶され得る。各ユーザは、ユーザアカウントに割り当てられた識別子でインデックスされるエントリ302−iと関連付けられ得る。
登録時に、登録ユーザに関連付けられた通信サービスのアプリケーションは、公開アイデンティティキー304、公開署名付きプレキー306をその署名と共に、および公開ワンタイムプレキー310−iのバッチを中間サーバ204に伝送し得る。
1つの実施形態において、アイデンティティキー304は、アプリケーションがクライアントデバイス上にインストールされる時に生成される、長期Curve25519キーペアであってもよい。署名付きプレキー306は、インストール時に生成され、アイデンティティキーによって署名される、中期Curve25519キーペアであってもよい。署名付きプレキー306は、定期的に回転され得る。ワンタイムプレキー310−iは、インストール時に生成され、必要に応じて補充される、1回限りの使用のためのCurve25519キーペアのキュー308であってもよい。
サーバ204は、ユーザの識別子302−iに関連付けられたこれらの公開キー304、306、310−iを記憶することができる。例示的な実施形態によると、サーバ204が、クライアントの秘密キーのいずれかへのアクセスを有することは決してない。
公開キー304、306、310−iに加えて、サーバ204は、ユーザアカウントの連絡先に関連付けられた1つまたは複数の連絡先ユーザ識別子314−iを含む、連絡先リスト312を記憶することができる。連絡先リスト312内の連絡先は、ユーザのモバイルデバイス上の連絡先リストであり得るか、またはそこから派生され得る。連絡先リスト312内のいくつかのエントリは、1つまたは複数のフラグと関連付けられてもよい。そのようなフラグの一例は、それぞれの連絡先ユーザ識別子314−iに関連付けられたユーザが、エントリ302−iに関連付けられたユーザアカウントによってブロックされることを示す、ブロック対象ユーザフラグである。ユーザアカウントがブロックされるとき、ブロック対象ユーザからのメッセージは、ブロックをしているユーザには伝達されない。
いくつかの実施形態において、中間サーバ204は、連絡先リスト312を記憶しない場合があるが、代わりに、以下に説明されるフィルタリング機能を提供するために、予想される受信者クライアントに対してそれら独自の連絡先リストについてクエリを行うことができる場合がある。
クライアントデータベース206からの情報は、エンドツーエンド暗号化セッションを開始するために使用され得、セッション情報を使用して、エンドツーエンド暗号化メッセージは、セッションが終了するか、または期限切れになるまで交換され得る。一旦セッションが確立されると、クライアントは、既存のセッション状態が失われるまで(例えば、アプリ再インストールまたはデバイス変更などの外的事象により)、互いとの新規セッションを再構築する必要がない。図3Bは、エンドツーエンド暗号化セッションを確立するのに好適である例示的なメッセージ316を描写する。
セッションを確立するために、セッションを開始するクライアント(「イニシエータ」)は、公開アイデンティティキー304、公開署名付きプレキー306、および受信者用の単一の公開ワンタイムプレキー310−iを要求することができる。
それに応じて、サーバ204は、要求された公開キー値を返すことができる。ワンタイムプレキー310−iは、1回しか使用されないため、これは、要求された後にサーバストレージから除去される。イニシエータは、受信者のアイデンティティキー304をIrecipientとして、署名付きプレキー306をSrecipientとして、およびワンタイムプレキー310−iをOrecipientとして保存することができる。
次いで、イニシエータは、エフェメラルCurve25519キーペアをEinitiator318として生成することができる。イニシエータは、独自のアイデンティティキー304をIinitiator320としてロードすることができる。イニシエータは、マスターシークレットを以下のように計算することができる。
等式1:master_secret=ECDH(Iinitiator,Srecipient)||ECDH(Einitiator,Irecipient)||
ECDH(Einitiator,Srecipient)||ECDH(Einitiator,Orecipient
ワンタイムプレキー310−iがない場合(例えば、キュー308内のキーは、イニシエータがそのようなキーを要求したときには既に使い果たされており、受信者によって補充されていなかった)、最後のECDHは省略され得る。
イニシエータは、以下により詳細に説明されるように、マスターシークレットからルートキーおよびチェーンキーを作成するためにハッシュメッセージ認証コード(HMAC:Hashed Message Authentication Code)ベースの鍵導出関数(HKDF)を使用することができる。ルートキーは、チェーンキーを生成するために使用される32バイト値であってもよい。チェーンキーは、メッセージキーを作成するために使用される32バイト値であってもよい。メッセージキーは、メッセージコンテンツを暗号化するために使用される80バイト値であってもよい。メッセージキーにおいて、32バイトは、高度暗号化標準−256(AES−256)キーのために使用され得、32バイトは、HMACセキュアハッシュアルゴリズム−256(HMAC−SHA256)キーのために使用され得、16バイトは、初期化ベクトル(IV:Initialization Vector)のために使用され得る。
長期にわたる暗号化セッションを構築した後、イニシエータは、たとえ受信者がオフラインであっても、直ちに受信者にメッセージ316を送信し始めることができる。受信者が応答するまで、イニシエータは、受信者が対応するセッションを構築するために必要とする情報を(送信されるすべてのメッセージのヘッダ内に)含むことができる。これは、イニシエータのEinitiator318およびIinitiator320を含む。任意選択的に、メッセージはまた、図3Cに関連して説明されるように、公開キー322および暗号化されたコンテンツ324を含むことができる。
受信者が、セッションセットアップ情報を含むメッセージ316を受信すると、受信者は、独自の秘密キーおよび入ってくるメッセージのヘッダ内で知らされた公開キーを使用して、対応するマスターシークレットを計算することができる。受信者は、イニシエータによって使用されるワンタイムプレキー310−iを削除する。イニシエータは、マスターシークレットから対応するルートキーおよびチェーンキーを導出するためにHKDFを使用することができる。
一旦セッションが確立されると、クライアントは、暗号化のために暗号ブロック連鎖(CBC:Cipher Block Chaining)モードでAES256を使用するメッセージキー、および認証のためにHMAC−SHA256により保護されるメッセージを交換することができる。
メッセージキーは、伝送されるメッセージごとに変化し得、メッセージを暗号化するために使用されるメッセージキーを、メッセージが伝送または受信された後にセッション状態から再構築することができないように、エフェメラルである。
メッセージキーは、メッセージが送信される度に前方にラチェットする送信者のチェーンキーから導出され得る。加えて、新規チェーンキーを作成するために、メッセージ巡回の度に新たなECDH共有が実施される。これは、即時ハッシュラチェットおよび巡回ディフィーヘルマン(DH)ラチェットの両方の組み合わせにより、前方秘匿性をもたらす。
新規メッセージキーが送信者によって必要とされる度に、メッセージキーは、以下のように計算され得る。
等式2:Message Key=HMAC−SHA256(Chain Key,0x01)
次いで、チェーンキーは、以下のように更新され得る。
等式3:Chain Key=HMAC−SHA256(Chain Key,0x02)
これにより、チェーンキーを前方にラチェットさせ、またこれは、チェーンキーの現在または過去の値を導出するために、記憶されたメッセージキーを使用することができないことを意味する。
図3Cに示されるように、メッセージ326が伝送される度に、公開キー322(例えば、エフェメラルCurve25519公開キー)は、暗号化されたメッセージコンテンツ324と一緒に知らされ得る。一旦応答が受信されると、新規チェーンキーおよびルートキーは、以下のように計算され得る。
等式4:ephemeral_secret=ECDH(Ephemeralsender,Ephemeralrecipient
等式5:Chain Key,Root Key=HKDF(Root Key,ephemeral_secret)
例示的な実施形態によると、チェーンは、1人のユーザからメッセージを送信するためだけに使用されるため、メッセージキーは再使用されない。メッセージキーおよびチェーンキーが計算されるやり方が理由で、メッセージは、順不同で遅れて到着する場合があるか、または、問題を引き起こすことなく完全に失われる場合がある。
エンドツーエンド暗号化はまた、図3Dに示されるように、メディアおよび他のアタッチメントを伝送するために使用され得る。メッセージ328を送信する送信クライアント202は、エフェメラル32バイトAES256キー336、およびエフェメラル32バイトHMAC−SHA256キー338を生成することができる。送信者は、ランダムIVを用いてCBCモードのAES256キーでアタッチメント330を暗号化し、次いでHMAC−SHA256を使用する暗号文のメッセージ認証コード(MAC)332を加えることができる。送信クライアント202は、次いで、暗号化されたアタッチメント330をblobとしてblobストア210へアップロードすることができる。
送信クライアント202は、次いで、通常の暗号化されたメッセージ334を受信クライアント212に伝送することができる。メッセージ334は、上に論じられるように、公開キー322を使用して守られ得る。メッセージ334のコンテンツ324は、暗号化キー336、HMACキー338、暗号化されたblob340のSHA256ハッシュ、およびblobストア内のblobへのポインタ342を含み得る。
受信クライアント212は、コンテンツ324を復号し、ポインタ342の場所に記憶されたblobの要求344を伝送することができる。暗号化されたblob346を受信した後、受信クライアントは、blobのSHA256ハッシュを計算して、このハッシュがメッセージ334のハッシュ340に一致することを検証することができ、MAC332を検証することができ、また平文を復号することができる。
メディアを交換するための上記の手順はまた、図3Eに示されるように、エフェメラルコンテンツメッセージと関連したコンテンツを交換するために使用されてもよい。エフェメラルコンテンツ生成プロセスの一部として、ユーザは、エフェメラルコンテンツメッセージと関連して共有されるべきメディアを選択し、そのメディアをblobストア210にアップロードするために上記プロセスを使用することができる。送信クライアント202は、次いで、エフェメラルコンテンツメッセージ348を、受信クライアント212−iへの伝送のために、中間サーバ204に伝送することができる。
エフェメラルコンテンツメッセージ348は、上に説明される他のタイプのメッセージと関連して説明されるように、公開キー322によって守られた暗号化されたコンテンツ324を含み得る。任意選択的に、メッセージ348は、受信者のリスト350をさらに含み得る。受信者のリストは、送信クライアント202において選択された受信者のリストであってもよい。例えば、ブロードキャストシナリオでは、送信クライアント202は、自動的に、その連絡先リスト全体を受信者のリストに追加することができる。いくつかの実施形態において、サーバ204が送信クライアントの連絡先リストを記憶する場合、受信者のリスト350は、送信ユーザがメッセージをブロードキャストとして送信することを望むときには、ブロードキャストフラグによって置き換えられ得る。サーバ204は、ブロードキャストフラグを、サーバによって記憶される連絡先リスト(以下に論じられるように、フィルタリングの対象となる)の連絡先の各々にエフェメラルコンテンツメッセージを伝送するための命令と解釈し得る。送信ユーザがエフェメラルコンテンツメッセージを受信するための受信者のグループを選択する場合、受信者のリスト350は、グループの選択されたメンバを含み得る。
サーバ側ファンアウトを採用する例示的な実施形態において、サーバは、図3Eに描写されるようにエフェメラルコンテンツメッセージ348を受信することができ、メッセージがファンアウトされ得る候補者を決定するために受信者のリスト350を使用することができる。次いで、サーバは、メッセージから受信者のリスト350を除去することができるため、受信者は、エフェメラルコンテンツメッセージが送信された他のユーザのリストを受信しない。
暗号化されたコンテンツ324は、メッセージ348のコンテンツ324を、共有エフェメラルコンテンツを表すと指定するエフェメラルコンテンツフラグ352を含み得る。エフェメラルコンテンツは、エンドツーエンド暗号化を保護するためにメッセージの形態で伝送され得るが、エフェメラルコンテンツフラグ352の存在が、メッセージ348は、会話内の通常のメッセージではなく、エフェメラルコンテンツメッセージとして処理および表示されるべきであることを受信クライアント212に示すことができる。
コンテンツ324は、サムネイル354をさらに含み得る。サムネイル354は、より低解像度の、あまり詳細ではないアップロードされたコンテンツのバージョンを表し得、コンテンツの限られた部分などを示す。代替的に、または加えて、サムネイル354は、コンテンツのアイコン表現であってもよい。アイコン表現は、異なるタイプのコンテンツでは異なり得、例えば、オーディオ記録を含むコンテンツは、再生ボタンの音符を表示するアイコンによって表され得る一方、ロケーションタグは、マップピンまたは地球を表示するアイコンによって表され得る。アイコン表現の代わりに、サムネイル354は、メディアタイプのフラグまたは説明を含んでもよいため、メディアタイプに対応する、受信クライアント上にローカルに記憶されたアイコン表現が、選択および使用されてもよい。
コンテンツ324は、サムネイル354に対応するコンテンツアイテムがblobストア210から取得されることを可能にするメディアメッセージコンテンツ356をさらに含み得る。例えば、メディアメッセージコンテンツ356は、図3Dのメディアメッセージ334に関連して上に説明されるアイテム、特に、暗号化キー336およびblobストア210内のコンテンツへのポインタ342またはリンクを含み得る。
上に記されるように、暗号化キー336は、blobストア210に記憶されたメディアを暗号化するために使用される。エフェメラルコンテンツメッセージを送信するとき、送信クライアント202は、暗号化キー336を用いてメディアを暗号化し、次いで、エフェメラルコンテンツメッセージ348の一部として暗号化キー336を伝送することができる。エフェメラルコンテンツメッセージ348が複数の受信者へファンアウトされるとき、各々は、同じ暗号化キー336のコピーを有することになり、したがって、blobストア内の同じ暗号化されたblob346にアクセスすることができる。したがって、アタッチメントの複数のコピー(例えば、各受信ユーザにつき1つ)は、個々に暗号化されてblobストアにアップロードされる必要がない。さらに、送信クライアント202から伝送される必要があるネットワークメッセージはより少なくなり、送信クライアント202は、個々の受信クライアント212に割り当てられた各暗号化キー336につき1つ、別個のメッセージを伝送する必要がない。
エフェメラルコンテンツの受信者が送信クライアントの観点から変わる場合、新規暗号化キー336が、新規受信者リストのために生成され得る(たとえ共有されたコンテンツアイテムが、以前に伝送されたものと同じメディアであるとしても)。言い換えると、暗号化キー336は、新規受信者をエフェメラルコンテンツメッセージに追加するため、または異なる受信者リストを有する新規エフェメラルコンテンツメッセージのために、再使用されない。このプライバシモデルは、暗号化強度を保護するのに役立ち、あるユーザがどうにかしてエフェメラルコンテンツメッセージからメディアオブジェクトの場所を特定することができる場合に、そのユーザが暗号化キー336を配信した元の伝送内に含まれない限りは、ユーザはメディアオブジェクトにアクセスすることができないということを確実にする。したがって、メディアオブジェクトへのアクセスは、より効果的に守られ得る。
サーバは、特定の受信者クライアントにのみ見える様式でメッセージ348内で暗号化される暗号化キー336へのアクセスを有さないため、サーバは、blobストア210にアップロードされたメディアを復号することができない。
上に論じられるように、エフェメラルコンテンツメッセージ(および他のタイプのメッセージ)は、ブロードキャストまたはグループメッセージのためにサーバ204からファンアウトされ得る。言い換えると、ユーザのグループにメッセージを送信することを望むクライアントは、単一のメッセージをサーバ204に伝送し得、次いでこのメッセージは、サーバ204によって、nの異なるグループメンバ(またはnの異なるブロードキャスト受信者)にn回配信される。
いくつかの実施形態は、代替的に、クライアント側ファンアウト手順と関連して使用され得、この場合、クライアントは、単一のメッセージをnの異なるグループメンバまたはブロードキャスト受信者にn回にわたって個々に伝送する。クライアント側ファンアウトと比較してサーバ側ファンアウトを好む1つの理由は、効率性である。サーバ側ファンアウト手順では、クライアントファンアウト手順で伝送されなければならないn個のメッセージに対して、クライアントは、単一のメッセージをサーバに伝送する必要があるだけである。さらに、サーバ側ファンアウトは、サーバ204が、本明細書に説明されるフィルタリング手順など、ネットワーク効率を改善するためおよびメッセージングスパムを減少させるための手順を実装することを可能にする。ペアでの暗号化されたセッションを展開するための上に説明される手順は、グループまたはブロードキャスト受信者に送信される大半のメッセージのための効率的なサーバ側ファンアウトを達成する。
効率的なグループメッセージングは、信号メッセージングプロトコルの送信者キーコンポーネントを使用して達成され得る。より具体的には、初めてグループメンバがメッセージをグループに送信するとき、送信者は、ランダム32バイトチェーンキーおよびランダムCurve25519署名キーのキーペアを生成することができる。送信者は、32バイトチェーンキーおよび署名キーからの公開キーを送信者キーメッセージにまとめることができる。送信者は、上に説明されるペアごとのメッセージングプロトコルを使用して、グループの各メンバに対する送信者キーを個々に暗号化することができる。
グループに対するすべての後続メッセージのために、送信者は、チェーンキーからメッセージキーを導出し、チェーンキーを更新することができる。送信者は、CBCモードでAES256を使用してメッセージを暗号化することができ、また署名キーを使用して暗号文に署名することができる。送信者は、単一の暗号文メッセージをサーバに伝送することでき、サーバは、すべてのグループ受信者に対してサーバ側ファンアウトを実施する。メッセージ送信者のチェーンキーのハッシュラチェットは、前方秘匿性をもたらす。グループメンバが去るときはいつも、すべてのグループ参加者が、自分の送信者キーをクリアにし、最初からやり直す。
サーバ側ファンアウトの1つの利点は、サーバ204が、スパムを減少させるために、受信したエフェメラルコンテンツメッセージに対してフィルタリングを実施することができるということである。例えば、サーバ204は、送信クライアント202からブロードキャストエフェメラルコンテンツメッセージを受信することができ、そのエフェメラルコンテンツメッセージを、送信クライアント202と関連付けられたユーザアカウントと対称関係を有するユーザアカウントだけに転送することができる。関係対称性の例は、図3Fに示される。
図3Fは、様々なユーザの連絡先リスト312−iを描写する。各連絡先リスト312−iは、1つまたは複数の連絡先314−iを含む。この例では、第1のユーザの連絡先リスト312−1は、第2のユーザおよび第3のユーザのユーザ識別子314−2、314−3を含む。第4のユーザの識別子314−4は、第1のユーザの連絡先リスト312−1内には存在しない。
第2のユーザの連絡先リスト312−2は、第1のユーザの識別子314−1を含む。第1のユーザの連絡先リスト312−1が第2のユーザのID314−2を含むため、および第2のユーザの連絡先リスト312−2が第1のユーザのID314−1を含むため、第1のユーザおよび第2のユーザは、対称関係を有すると言われる。そのような関係は、例えば、第1のユーザおよび第2のユーザの両方が、自分のモバイルデバイスの連絡先リスト内に互いをリストしていた場合に発生し得る。
第3のユーザの連絡先リスト312−3は、第2のユーザのID314−2および第4のユーザのID314−4を含むが、第1のユーザのID314−1を含まない。第1のユーザの連絡先リスト312−1が第3のユーザのID314−3を含むが、第3のユーザの連絡先リスト312−3が第1のユーザのID314−1を含まないため、第1のユーザと第3のユーザとの関係は、非対称であると言われる。送信ユーザの連絡先リストが予想される受信者を含むが、受信者の連絡先リストがその送信ユーザを含まないという、そのような条件は、ここでは順方向非対称性と称される。
第4のユーザの連絡先リスト312−4は、第1のユーザのID314−1、第2のユーザのID314−2、および第3のユーザID314−3を含む。第4のユーザの連絡先リスト312−4は第1のユーザのID314−1を含むが、第1のユーザの連絡先リスト312−1が第4のユーザのID314−4を含まないため、第1のユーザと第4のユーザとの関係も非対称である。送信ユーザの連絡先リストが予想される受信者を含まないが、受信者の連絡先リストがその送信ユーザを含むという、そのような条件は、ここでは逆方向非対称性と称される。
例示的な実施形態によると、サーバ204が、送信クライアント202によりブロードキャストされるべき(またはグループに伝送されるべき)エフェメラルコンテンツメッセージ(または任意のタイプのメッセージ)を受信すると、サーバ204は、送信ユーザの連絡先リストを取得することができ、このリストを、ブロードキャストの予想される受信者の初期候補者リストとして使用することができる。候補者リスト内の各ユーザIDについて、これらのユーザの連絡先リストが、取得されて、送信ユーザが受信者の連絡先リスト内に存在するかどうかを決定するためにレビューされ得る。送信者と予想される受信者との関係が対称である場合、受信者は、候補者リスト内に留まり得る。関係が非対称である(例えば、予想される受信者の連絡先リストが送信ユーザを含まない)場合、予想される受信者は、候補者リストからフィルタアウトされ得る。そのような手順は、スパムを減少させることに役立ち得、例えば、このフィルタリングは、スパマーが未承認の受信者をそれら独自の連絡先リストに追加し、次いでメッセージをそれらの受信者にブロードキャストすることを防ぐ。
誰がエフェメラルコンテンツメッセージを受信するかに関する決定は、エフェメラルコンテンツメッセージが伝送される時に行われ得る。したがって、エフェメラルコンテンツメッセージが伝送された後に関係が対称になる場合、元々フィルタアウトされた受信者は、エフェメラルコンテンツメッセージを受信することはない。例えば、図3Fに描写される例において、第1のユーザがエフェメラルコンテンツメッセージを送信した後に、第3のユーザが、第1のユーザのID314−1を自分の連絡先リスト312−3に追加する(それにより、第1のユーザと第3のユーザとの関係を対称にする)場合、エフェメラルコンテンツメッセージは、関係が対称になった後に第3のユーザに送信されない。同様に、第1のユーザがエフェメラルコンテンツメッセージを送信した後に、第1のユーザが第4のユーザのID314−4を第1のユーザの連絡先リスト312−1に追加する場合、エフェメラルコンテンツメッセージは、関係が対称になった後に第4のユーザに送信されない。両方の場合において、第1のユーザによって伝送される今後のエフェメラルコンテンツメッセージは、関係の今の対称性に起因して、第3のユーザおよび第4のユーザに見えるようになる。
しかしながら、いくつかの実施形態において、順方向非対称性に起因して元々候補者リストからフィルタアウトされていた受信者は、関係が後に対称になる場合、以前のエフェメラルコンテンツメッセージを受信することができる。逆方向非対称関係を対称関係に変更することは、そのような新規の伝送を結果としてもたらすことができない。そのような実施形態は、送信ユーザのプライバシを守るのに役立つ。順方向非対称性の場合、送信ユーザは、どのユーザがエフェメラルコンテンツメッセージブロードキャストを受信するかを考慮する機会を有していた。非対称性が順方向であったため、第1のユーザは、非対称の受信者が、エフェメラルコンテンツメッセージを受信する可能性があったことに少なくとも気付いていた(受信者が第1のユーザの連絡先リスト312−1内にあることに依って)。
一方、逆方向非対称性の場合、第1のユーザは、第1のユーザの連絡先リスト312−1内に予想される受信者を含んでいなかったため、エフェメラルコンテンツメッセージブロードキャストがその受信者に送信される可能性があるということを考慮しなかった。したがって、非対称関係が後に対称になる場合、新規の受信者は、前のエフェメラルコンテンツメッセージを自動的に受信するべきではない。第1のユーザが、以前のエフェメラルコンテンツメッセージを新規の受信者が受信することを望む場合は、ユーザは、すべて、いくつか、または個々のエフェメラルコンテンツメッセージを受信者に転送するオプションを提示され得る。
なおさらなる実施形態において、別のユーザと対称性を確立することにより、元の非対称性が順方向であったか、または逆方向であったかにかかわらず、以前のエフェメラルコンテンツメッセージを他のユーザに見えるようにすることができる。
次に、例示的な実施形態のこの態様および他の態様が、図4に描写されるデータフロー図に関連して説明される。
例示的な情報交換
図4は、例示的な実施形態による、送信クライアント、中間サーバ、blobサーバ、受信クライアント、および第3のクライアントの間の情報交換を示す例示的なデータフロー図である。
送信クライアントは、通信サービスを用いてアカウントを最初に作成するときに、1つまたは複数のアカウント作成メッセージ402を送信することができる。アカウント作成メッセージ402は、サービスに参加し、初めてサービスのアプリケーションをインストールした結果として送信され得る。追加の同様のメッセージが、ユーザが新規デバイスへまずログインし、自分のハードウェアまたはソフトウェアなどを更新するときに、伝送され得る。アカウント作成メッセージ402は、自動生成された情報および/または送信クライアントのユーザの情報を含み得る。アカウント作成メッセージ402は、サーバのクライアントデータベース206に入力するために使用され得る。
同様に、受信クライアントは、通信サービスを用いてアカウントを作成することができ、それに応じて中間サーバにアカウント作成メッセージ404を伝送することができる。
送信クライアントが受信クライアントと通信することを望むとき、送信クライアントは、上に説明されるように、受信クライアントの公開キーを要求するためにセッション作成要求406を中間サーバに送信する。サーバは、セッションデータ408(例えば、受信者の公開アイデンティティキー、署名付きプレキー、およびワンタイムプレキーを含む)で応答する。
この手順(サーバを用いてセッション作成メッセージ406およびセッションデータメッセージ408を交換すること)は、各送信者−受信者ペアについて実施され得る。これは、送信者が最初に受信者に連絡をする(または、セッションが前に期限切れになった後初めて受信者に連絡する)ときに実施され得る。これはまた、送信者が対称関係を有する、および、暗号化されたセッションが以前に確立されていない、送信者のアドレス帳内の各受信者に対して、送信者が、ブロードキャストエフェメラルコンテンツメッセージなど、ブロードキャストメッセージを送信するときに実施され得る。
送信クライアントが、メディア410などのコンテンツを含むエフェメラルコンテンツメッセージを送信することを望むとき、送信クライアントは、図3Dに関連して上に説明されるように、メディア410をblobサーバにアップロードすることができる。次いで、送信クライアントは、エフェメラルコンテンツメッセージ412をサーバに送信することができる。サーバは、本明細書に説明されるようにフィルタリングを実施し、送信ユーザの連絡先リスト内のどの受信者がエフェメラルコンテンツメッセージ412を受信することになるかを決定することができる。次いで、サーバは、それぞれのエフェメラルコンテンツメッセージ414を、フィルタリングされたリスト内の各受信者に送信することができる。
上に記されるように、エフェメラルコンテンツメッセージは、サムネイル、およびblobストア内のメディアへのリンクを含み得る。リンクをアクティブ化すると(例えば、サムネイルの表示をクリックする、またはそれと対話することによって)、受信クライアントは、blobストアからメディアを要求するためにメディア要求416を生成することができる。blobストアは、図3Dに関連して上に説明されるように、メディア応答420によりメディア要求に応答することができる。このようにして、メディアは、受信クライアントにダウンロードされ得る。
いくつかの実施形態において、リンクは、エフェメラルであってもよい。例えば、リンクは、既定の時間期間(例えば、24時間)にわたって、または既定の閲覧数(例えば、1回、2回など)だけ有効であってもよい。そのようなものとして、受信クライアントは、blobサーバからメディアを取得するが、全画面表示を提示した後にメディアを削除するように設定され得る。いくつかの実施形態において、リンクが既定の時間期間後に期限切れになるときなど、受信クライアントは、既定の時間期間後にローカルストレージからメディアを削除し、リンクを使用してメディアを再度取得することができないように、同時にリンクを非アクティブにマークするように設定され得る。他の実施形態において、リンクが既定の閲覧数の後に期限切れになるときなど、受信クライアントは、全画面ビューが既定の回数提示された後にローカルストレージからメディアを削除し、リンクを使用してメディアを再度取得することができないように、同時にリンクを非アクティブにマークするように設定され得る。なおさらなる実施形態において、受信クライアントは、取得したメディアを一時ストレージに記憶し、全画面ビューが提示された後に毎回メディアを削除するように設定され得る。そのような実施形態において、リンクは、ある特定の期間の間(例えば、既定の閲覧数または既定の時間量)はアクティブなままであり得、この期間にわたってメディアを取得するために使用され得る。リンクは、この期限が満了した後に非アクティブにされ得、その後は、このリンクを、blobストアからメディアを取得するために使用することはできない。
メディアをblobストアにおいて遠隔で記憶し、特定の条件下で非アクティブにされ得るメディアへのリンクを提供することによって、メディアは、リンクの一部またはすべてが期限切れになり始めた後にさえもストレージ内に留まり得る。例えば、リンクが1回の閲覧後に期限切れになるように設定される場合、異なる受信ユーザが、異なる時間に全画面提示を閲覧することができる。メディアは、blobサーバ上に残り得(例えば、すべてのリンクが期限切れになるまで)、非アクティブなリンクを有するユーザは、単純に、メディアに到達することができなくてもよい。その一方で、アクティブなリンクを有するユーザは、それらのリンクが期限切れになるまでblobストアを介して引き続きメディアにアクセスすることができてもよい。
上に記されるように、ユーザは、エフェメラルコンテンツメッセージに対して返信することができる。例えば、受信クライアントは、中間サーバに返信422を送ることができる。中間サーバは、その返信を適切な会話またはスレッド(会話は、その参加者によって固有に規定され得る)に割り当てることができる。この目的のため、中間サーバは、返信を、(例えば)スレッドまたは会話識別子と関連付けることができる。返信を会話に割り当てることにより、サーバは、返信424を(少なくとも)送信ユーザに伝送することができる。
例示的な実施形態によると、受信ユーザによる、送信ユーザのエフェメラルコンテンツメッセージに対する返信は、元のエフェメラルコンテンツメッセージがブロードキャストとして伝送されたときには、送信ユーザと受信ユーザとの間の1対1の会話に割り当てられ得る。エフェメラルコンテンツメッセージがグループに伝送された場合、返信は、1対1ベースで送信され得るか、またはグループに関連付けられた会話に割り当てられ得る。返信をグループ会話に割り当てるとき、サーバは、ペアごとの暗号化されたセッションが、各ペアまたはグループのメンバ間に存在することを検証することができる。そのようなセッションが存在しない場合、返信は、受信ユーザと送信者との間の1対1の会話に送信され得る。
エフェメラルコンテンツメッセージ412を伝送した後、送信ユーザは、送信ユーザの連絡先リストに新規連絡先(この場合、第3のユーザ)を追加することができる。それに応じて、送信ユーザは、新規連絡先メッセージ426をサーバに伝送することができる。図4の例に示されるように、第3のユーザが第3のユーザの連絡先リスト内に送信ユーザを以前に含んでいた(逆方向非対称性)としても、送信ユーザの連絡先リストに新規ユーザを追加することにより、対応するエフェメラルコンテンツメッセージが、第3のユーザクライアントに送信されるようにするわけではない。エフェメラルコンテンツメッセージは、第3のユーザクライアントには利用不可能なままである。
同様に、第3のユーザは、第3のユーザの連絡先リストに新規連絡先(この場合、送信クライアント)を追加することができる。それに応じて、新規連絡先メッセージ428がサーバに伝送され得る。ここでも、送信ユーザが送信ユーザの連絡先リスト内に第3のユーザを以前に含んでいた(順方向非対称性)としても、新規ユーザを第3のユーザの連絡先リストに追加することにより、対応するエフェメラルコンテンツメッセージが、第3のユーザに送信されるようにするわけではない。
任意選択的に、エフェメラルコンテンツメッセージ412がブロードキャストされた時に、送信ユーザが送信ユーザの連絡先リスト内に第3のユーザを含んでいた場合、対称関係を後に確立すること(新規連絡先メッセージ428に起因して)により、エフェメラルコンテンツメッセージ412が第3のユーザクライアントに送信されるようにする、または別のやり方で第3のユーザクライアントに利用可能にすることができる。
例示的なロジック
次に、上記の実施形態を実装するための例示的なロジックが、図5A〜図7Cと関連して説明される。例示的なロジックは、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせ(例えば、ハードウェア内に少なくとも部分的に実装される)内に実装され得る。
図5Aは、通信サービス内でエフェメラルコンテンツメッセージを生成するための、送信クライアントなどのシステムによって実施される例示的なロジック500を描写するフローチャートである。
ブロック502において、システムは、初期アカウントセットアップを実施することができる。初期アカウントセットアップは、通信サービスの中間サーバのクライアントデータベースに、図3Aに関連して説明される情報など、暗号化されたセッションを確立するために使用される情報を入力することができる。
ブロック502のステップは、ユーザが最初に通信サービスに登録するとき、および/または、ユーザが、新規デバイスにサインインする、新規デバイス上に通信サービスのソフトウェアをインストールする、既存のソフトウェアまたはハードウェアを更新するときなどに、実施され得る。
ブロック504において、システムは、任意選択的に、1人または複数の他のユーザとの暗号化された通信セッションを開始することができる。システムは、メッセージを伝送し、図3Bに関連して説明されるものと同様の動作を実施することができる。ブロック504のステップは、ユーザが、暗号化されたセッションが現在存在しないユーザと通信しようとするとき、ユーザが、自らの通信ソフトウェアを更新するとき、ユーザがときに実施され得る。
ブロック506において、システムは、通信サービスのエフェメラルコンテンツメッセージ機能に入ることができる。エフェメラルコンテンツメッセージエントリの例は、図5Bに関連してより詳細に説明される。エフェメラルコンテンツメッセージエントリの一部として、コンテンツは、エフェメラルコンテンツメッセージのために選択され得、エフェメラルコンテンツメッセージが生成され得る。
ブロック508において、システムは、任意選択的に、エフェメラルコンテンツメッセージのための受信者のグループの選択を受信することができる。ユーザが送信クライアント上の連絡先リストの中から受信者を選択することを可能にするインターフェースが提示され得る。選択された受信者のリストは、ブロック514において生成されるエフェメラルコンテンツメッセージ内へロードされてもよい。特定の受信者が選択されない場合、エフェメラルコンテンツメッセージは、送信クライアント上の連絡先リストの各メンバへの伝送についてフラグが付けられ得る。連絡先リストは、ブロック514において生成されるエフェメラルコンテンツメッセージ内へロードされてもよい。
ブロック510において、システムは、任意選択的に、ブロック504においてセッションが以前に開始されなかった、ブロック508において識別される任意の予想される受信者との暗号化されたコミュニケーションセッションを開始することができる。
ブロック512において、システムは、ブロック506において選択されるコンテンツを暗号化し、暗号化されたコンテンツをメディアサーバにアップロードすることができる。この目的のため、システムは、メッセージを生成し、図3Dに関連して説明されるものと同様の動作を実施することができる。
ブロック514において、システムは、エフェメラルコンテンツを含むメッセージを生成することができる。コンテンツは、メッセージがエフェメラルコンテンツメッセージであることを示すエフェメラルコンテンツフラグを含み得る。コンテンツは、以前に説明されるように暗号化され、メッセージを復号するための公開キーおよびブロック508において生成される受信者のリストと共にパッケージされ得る。
ブロック516において、システムは、ブロック514において生成されたメッセージを中間サーバに伝送することができる。サーバは、メッセージを受信し、受信者リストを除去し、リスト内の受信者へメッセージをファンアウトすることができる。
ブロック518において、システムは、サーバからエフェメラルコンテンツメッセージに対する返信を受信することができる。返信は、会話IDおよび1人または複数の参加者と関連付けられ得る。ブロック520において、システムは、会話IDに関連付けられた前から存在する会話を識別することができるか、または、会話IDを有し、かつ1人または複数の参加者を含む新規の会話を生成することができるかのいずれかである。元のエフェメラルコンテンツメッセージは、会話内のメッセージとして含まれ得、ブロック518において受信される返信は、会話に追加され得る。次いで、処理は終了し得る。
図5Bは、コンテンツ共有インターフェースに入るための要求を処理するための、送信クライアントなどのシステムによって実施される例示的なロジック550を描写するフローチャートである。
ブロック552において、システムは、図1Aに描写されるインターフェースなどの、通信アプリケーションへのインターフェースを提示することができる。インターフェースは、エフェメラルコンテンツインターフェースを表示するためのエフェメラルコンテンツアイコンを含み得る。ブロック554において、システムは、エフェメラルコンテンツアイコンとの対話を登録することによってなど、エフェメラルコンテンツインターフェースにアクセスするための命令を受信することができる。
ブロック554において命令を受信することに応答して、ブロック556において、システムは、図1Bに描写されるインターフェースなどのエフェメラルコンテンツインターフェースを表示することができ、インターフェース内のエフェメラルコンテンツ対話可能要素の選択を受信することができる。
ブロック558において、システムは、コンテンツ共有選択を受信することに応答して、コンテンツ選択/生成インターフェースを提示することができる。コンテンツ選択/生成インターフェースは、共有されるべき前から存在するコンテンツを選択するため、または新規コンテンツを生成するための1つまたは複数のオプションを提示することができる。そのようなインターフェースの例は、図1Cおよび図1Lに描写される。
ブロック560において、システムは、コンテンツインターフェースを通じて共有するためのコンテンツを受信することができる。コンテンツは、インターフェース内で選択され得るか、またはインターフェースを通じて生成され得る。次いで、処理は終了し得る。
図6Aは、エフェメラルコンテンツメッセージの伝送を処理するための、中間サーバなどのシステムによって実施される例示的なロジック600を描写するフローチャートである。
ブロック602において、システムは、クライアントからアカウントセットアップ要求を受信することができ、ブロック604においてアカウントセットアップを実施することができる。システムは、ブロック606において暗号化セッションを開始するための要求を受信することができ、ブロック608において暗号化セッションを開始することができる。これらのブロックは、全体的に、図5Aのブロック502〜504に関連して説明されるクライアント側のステップに対応し、さらなる説明は、簡潔にするためにここでは省略される。
ブロック610において、システムは、送信クライアントからエフェメラルコンテンツメッセージを受信することができる。エフェメラルコンテンツメッセージは、メッセージとして受信され得、いくつかの実施形態においては、送信クライアントから受信される他のメッセージ(非エフェメラルコンテンツ)と区別できない場合がある。他の実施形態において、メッセージは、サーバがアクセス可能であるメッセージの一部分にエフェメラルコンテンツを含むものとしてフラグが付けられ得、サーバは、このメッセージをエフェメラルコンテンツメッセージとして識別し、指定されたエフェメラルコンテンツ固有処理を実施することができる。
ブロック612において、システムは、メッセージから受信者リストを取得することができる。受信者リストが存在しない(例えば、メッセージ内の受信者リストに指定された既定の場所が空である)場合、システムは、メッセージが、送信ユーザから送信ユーザの連絡先リスト内の連絡先の各々へのブロードキャストであることが意図されると仮定することができる。
ブロック614において、システムは、望ましくないメッセージを減少させるために、連絡先リストをフィルタリングすることができる。ブロック614は、図6Bに関連してより詳細に説明される。
ブロック616において、システムは、元のメッセージをフィルタリングされたリスト内の受信者へファンアウトすることができる。伝送されたメッセージは、ブロック612において識別された受信者リストを省略し得るが、別途、元のメッセージに含まれるコンテンツおよび復号キーを含み得る。
ブロック618において、システムは、ブロック616においてメッセージが伝送された受信者のうちの1人または複数から、エフェメラルコンテンツメッセージに対する返信を受信することができる。元のメッセージがグループメッセージとして伝送されたのか、またはブロードキャストとして伝送されたのかによって、システムは、異なるタイプの会話に対する返信を割り当てることができる。したがって、ブロック620において、システムは、元のエフェメラルコンテンツメッセージがブロードキャストであったか、またはグループメッセージであったかを決定することができる。元のメッセージが、受信者を指定しなかった場合、または送信ユーザの連絡先リスト内のすべての受信者を指定した場合、または別途ブロードキャストメッセージとしてフラグを立てられた場合、システムは、元のエフェメラルコンテンツメッセージがブロードキャストの一部として伝送されたと決定することができる。その一方、元のメッセージが、送信者の全連絡先リストよりも少ない限られた数の受信者を指定した場合、または受信者を識別するためにグループ会話の会話IDを指定した場合、または別途グループメッセージとしてフラグを立てられた場合、システムは、元のエフェメラルコンテンツメッセージがグループメッセージの一部として伝送されたと決定することができる。
エフェメラルコンテンツメッセージがブロードキャストとして伝送されていた場合、ブロック622において、システムは、元の送信者と返信する受信者との間の1対1の会話に対する返信を割り当てることができる。システムは、各ユーザが関与するアクティブな会話のリストを維持することができ、1対1の会話がこれら2人のユーザ間に既に存在するかどうかを決定するためにリストを調査することができる。存在する場合、既存の会話の会話IDが取得され得、返信は、会話IDと関連付けられ得る(元のエフェメラルコンテンツメッセージもまた、会話IDと関連付けられ得る)。存在しない場合、新規の会話IDが生成され、2人のユーザと関連付けられ得る。返信および元のメッセージは、新規の会話IDと関連付けられ得る。
元のエフェメラルコンテンツメッセージがグループメッセージとして伝送されていた場合、ブロック624において、システムは、グループ内のユーザの各ペアが暗号化されたセッションと関連付けられていることを検証することができる。このブロックは、グループメッセージの安全性を確実にするために使用され得る。ペアごとの暗号化されたセッションがエフェメラルコンテンツの元の送信者とエフェメラルコンテンツの受信者の各々との間に存在する可能性が高いが(図5Aのブロック504および/または510において実施される)、受信者が互いとのペアごとの暗号化されたセッションを有すると必ずしも仮定することはできない。必要な場合、システムは、ペアごとの暗号化されたセッションを有さない受信者の任意のペア間の暗号化されたセッションを開始することができる。
次いで、処理はブロック626へと進むことができ、ここでシステムは、返信をグループ会話に割り当てる。システムは、これらの送信者と受信者との間に既にグループ会話が存在するかどうかを決定するために、上記の会話リストを調査することができる。存在する場合、既存の会話の会話IDが取得され得、返信は、会話IDと関連付けられ得る(元のエフェメラルコンテンツメッセージもまた、会話IDと関連付けられ得る)。存在しない場合、新規の会話IDが生成され、参加者と関連付けられ得る。返信および元のメッセージは、新規の会話IDと関連付けられ得る。
ブロック628において、システムは、ブロック622またはブロック626において識別された会話の一部として返信を伝送することができる。次いで、処理は終了し得る。
図6Bは、エフェメラルコンテンツメッセージの受信時に連絡先のリストをフィルタリングするための、中間サーバなどのシステムによって実施される例示的なロジック650を描写するフローチャートである。エフェメラルコンテンツメッセージは、ブロードキャストとして、または指定の受信者のグループに伝送され得る。
ブロック652において、システムは、エフェメラルコンテンツメッセージの対象とする受信者のリストにアクセスすることができる。ブロードキャストの場合、対象とする受信者の初期のリストは、送信ユーザの連絡先リストであってもよい。指定の受信者のグループ(例えば、会話内の参加者、選択されたグループなど)の場合、送信クライアントは、リストを提供することによって、会話もしくはスレッドID(会話内の参加者が導出され得る)を提供することによって、またはいくつかの他の手段によって、受信者を指定することができる。いくつかの実施形態において、送信クライアントはまた、ブロードキャストの場合に受信者のグループを指定することができる。いずれの場合にしても、送信クライアントは、エフェメラルコンテンツメッセージに対象とする受信者のリストを加えることができる。
ブロック654において、システムは、任意のさらなる予想される受信者がまだ処理されないままになっているかどうかを決定することができる。そうでない場合、処理はブロック565へと進むことができ、システムは、メッセージの受信者の最終的なリストとして、フィルタリングされた受信者リストを返すことができる。
システムが、ブロック654において、それ以上の予想される受信者がまだ処理されないままになっていることを決定する場合、処理はブロック658へと進むことができ、送信ユーザの連絡先リスト内の次の予想される受信者が、レビューのために選択され得る。
ブロック660において、システムは、選択された対象とする受信者が送信者によってブロックされているかどうかを決定することができる。例えば、システムは、送信ユーザの連絡先リストにアクセスし、選択された対象とする受信者に関連付けられたエントリが、ブロックフラグと関連付けられているかどうかを決定することができる。そうである(すなわち、選択された対象とする受信者が送信者によってブロックされる)場合、処理はブロック662へと進むことができ、選択された対象とする受信者は、メッセージが送信されることになる受信者のリストから除去され得る。次いで処理はブロック654へと戻ることができ、システムは、追加の予想される受信者がまだ評価されないままになっているかどうかを決定することができる。
そうでない(すなわち、選択された対象とする受信者が送信者によってブロックされていない)場合、処理はブロック664へと進むことができる。
ブロック664において、システムは、選択された対象とする受信者の連絡先リストにアクセスすることができる。例えば、システムは、クライアントデータベース206にアクセスし、選択された対象とする受信者のユーザIDに基づいてルックアップを実施することができる。システムは、選択された対象とする受信者に関連付けられた連絡先リスト312にアクセスし、送信ユーザについて、この連絡先リスト内の連絡先UID314−iを検索することができる。
ブロック666において、システムは、送信者が、選択された対象とする受信者に関連付けられた連絡先リスト内にあるかどうかを決定することができる。そうでない場合、処理はブロック662へと進むことができ、選択された対象とする受信者は、受信者のリストからフィルタアウトされ得る(逆方向非対称性に起因して)。
そうである(すなわち、送信ユーザが、選択された対象とする受信者の連絡先リスト内で見つかった)場合、処理はブロック668へと進むことができる。ブロック668において、システムは、送信者が対象とする受信者によってブロックされているかどうかを決定することができる。例えば、システムは、対象とする受信者の連絡先リスト内の送信ユーザに関連付けられた連絡先エントリ(ブロック666において取得されるような)がブロックフラグと関連付けられているかどうかを決定することができる。そうである場合、処理はブロック662へと進むことができ、選択された対象とする受信者は、受信者のリストからフィルタアウトされ得る。
そうでない場合、処理はブロック670へと進むことができ、選択された対象とする受信者は、エフェメラルコンテンツメッセージの受信者のリストに含まれ得る。次いで処理はブロック654へと戻ることができ、システムは、追加の予想される受信者がまだ評価されないままになっているかどうかを決定することができる。
図7Aは、エフェメラルコンテンツメッセージを表示するための、受信クライアントなどのシステムによって実施される例示的なロジック700を描写するフローチャートである。
ブロック702において、システムは、通信サービスによる初期セットアップを実施し得、ブロック704において暗号化セッションを開始することができる。これらのブロックは、全体的に、図5Aのブロック502〜504に関連して説明されるクライアント側のステップに対応し、さらなる説明は、簡潔にするためにここでは省略される。
ブロック706において、システムは、ブロック704において開始されたセッション内で、暗号化されたメッセージを受信することができる。ブロック708において、システムは、公開キーを取得するためにメッセージを解析することができ、ブロック710において独自の秘密キーを計算することができる。ブロック712において、システムは、公開キーおよび秘密キーを使用してメッセージを復号することができる。メッセージを復号するための一般的な手順は、図3A〜図3Eに関連して上に説明されている。
ブロック714において、システムは、エフェメラルコンテンツフラグが、復号されたメッセージ内に存在するか、またはそれと関連付けられているかどうかを決定することができる。そうでない場合、処理はブロック716へと進むことができ、復号されたコンテンツは、会話内に通常のメッセージとして表示され得る。そうである場合、処理はブロック718へと進むことができる。
ブロック718において、システムは、メッセージをエフェメラルコンテンツメッセージとして処理することができる。システムは、メディアのサムネイル(または、使用されるべきローカルに記憶されたサムネイルを指定するインジケータ)、およびblobストアに記憶されたメディアへのリンクを取得するために、メッセージのコンテンツを解析することができる。
システムは、エフェメラルコンテンツメッセージがランク順に表示され得るように、ブロック720においてエフェメラルコンテンツメッセージのランクを決定することができる。ブロック720は、図7Bに関連してより詳細に説明される。
ブロック722において、システムは、1つまたは複数のエフェメラルコンテンツタブまたはエフェメラルコンテンツメッセージ用に設けられたインターフェースの部分内にサムネイルを表示することができる。そのようなインターフェースの例は、図1Bおよび図1Dに関連して説明される。ブロック720において実施される処理の一部として、システムは、エフェメラルコンテンツメッセージに関連付けられた関心スコアを計算することができる。最近のエフェメラルコンテンツメッセージ(例えば、既定の時間期間内)および/または既定数のエフェメラルコンテンツメッセージは、関心スコアに基づいてランク順に表示され得る。
ブロック724において、システムは、サムネイルの選択を受信することができる。選択は、エフェメラルコンテンツメッセージ用に設けられたインターフェースの一部分、会話内のメッセージなどにおいて受信され得る。
ブロック726において、システムは、リンクが現在アクティブであるかどうかを決定することができる。例えば、リンクは、既定の時間量の後、またはコンテンツが既定の回数閲覧された後、非アクティブに設定され得る。リンクが非アクティブになる条件は、リンクの一部として、または別途エフェメラルコンテンツメッセージ内で、指定され得る。条件が指定されない場合、システムは、デフォルト条件を適用することができるか、またはリンクは、永久にアクティブのままであるように設定され得る。
ブロック726においてリンクが現在アクティブではない場合、ブロック728においてシステムは、コンテンツを表示しないようにすることができる。ブロック726においてリンクがアクティブである場合、処理はブロック730へと進むことができる。
ブロック730において、システムは、リンクを使用してコンテンツを取得し、コンテンツを復号することができる。コンテンツを取得して復号するための手順は、図3Dに関連して上に説明されている。
ブロック732において、システムは、コンテンツアイテムの全画面または拡大表示を表示することができる。コンテンツアイテムの全画面または拡大表示を表示するためのインターフェースの例は、図1E〜図1Iに関連して説明される。
ブロック734において、システムは、任意選択的に、全画面通知を表示する際にリンクを非アクティブにマークすることができる。これは、例えば、コンテンツのエフェメラル性モデルが、コンテンツが1回のみ閲覧可能であるようなものである場合に、または、コンテンツがアクセスされる時点と時点の合間にはコンテンツがローカルデバイス上に残らないように、コンテンツが要求される度にコンテンツを再ダウンロードすることを受信クライアントに強いるために使用され得る。
ブロック736において、システムは、エフェメラルコンテンツメッセージに対する返信を受信することができる。例えば、ユーザは、全画面提示内で返信オプションを選択し、エフェメラルコンテンツメッセージを含むメッセージに対して返信することなどができる。ブロック738において、システムは、サーバに返信を伝送することができる。次いで、処理は終了し得る。
図7Bは、エフェメラルコンテンツメッセージをランク付けするための、送信クライアントなどのシステムによって実施される例示的なロジック750を描写するフローチャートである。
ブロック752において、システムは、エフェメラルコンテンツメッセージを表示するための命令を受信することができる。例えば、通信アプリケーションのインターフェースをロードするとき、インターフェースの1つまたは複数の部分は、エフェメラルコンテンツメッセージの表示用に設けられ得る。ローカルユーザがアクセス可能な最近のエフェメラルコンテンツメッセージは、ローカルデバイスまたはサーバ上のキューに記憶され得る。インターフェースの部分をロードするとき、システムは、ランク付けロジック750に、キューされたエフェメラルコンテンツメッセージをランク付けするように命令することができる。
システムは、エフェメラルコンテンツメッセージに関連付けられたユーザIDの出力キューまたはリストをセットアップすることができる。UIDは、それらがランク付けされる順に、出力キューまたはリスト内へ置かれてもよい。出力キューまたはリストは、最初は空であり得、エフェメラルコンテンツメッセージに関連付けられたUIDが、エフェメラルコンテンツメッセージが評価されるときにリストに追加され得る。
ブロック754において、システムは、追加のエフェメラルコンテンツメッセージがまだランク付けされないままになっているかどうかを決定することができる。例えば、システムは、サーバによって受信クライアントに伝送された最近のエフェメラルコンテンツメッセージのリストを受信することができる。リストは、既定の時間量内に受信クライアントに伝送された各エフェメラルコンテンツメッセージを含み得るか、または既定の数のエフェメラルコンテンツメッセージを含み得るなどである。ブロック754において、システムは、リスト上のエフェメラルコンテンツメッセージのすべてが評価されているかどうかを決定することができる。
そうでない場合、ブロック756において、システムは、各エフェメラルコンテンツメッセージが評価されるときにシステムがランク付けを実施していなかった場合には、計算された関心スコア(以下に説明されるように)に基づいてエフェメラルコンテンツメッセージをランク付けすることができる。ランク付けされたエフェメラルコンテンツメッセージは、ランク順に出力キューまたはリストに追加され得る。ブロック758において、システムは、ランク付けされた結果を返すことができる。
ブロック754において、エフェメラルコンテンツメッセージが評価のために残っている場合、処理はブロック760へと進むことができる。ブロック760において、システムは、評価されるべき次のエフェメラルコンテンツメッセージを(例えば、サーバまたはローカル入力キューから)取得することができる。
ブロック762において、システムは、評価対象のエフェメラルコンテンツメッセージのリージェンシーを決定することができる。エフェメラルコンテンツメッセージは、タイムスタンプと関連付けられてもよく、システムは、タイムスタンプ以降の経過した時間量を決定することができる。最新性スコアが、経過時間量に基づいて計算されてもよい。
ブロック764において、システムは、エフェメラルコンテンツメッセージの送信者を識別することができる。送信者は、エフェメラルコンテンツメッセージと関連して識別され得る。システムは、システム上の連絡先リスト内の連絡先の各々に関連付けられた閲覧者指標を維持することができ、送信者に対応する指標は、ブロック764において取得され得る。
ブロック766において、システムは、送信者に関連付けられた閲覧者指標を評価することができる。例えば、ブロック768において、システムは、現在のユーザが最近(例えば、既定の時間量内に)送信者からのエフェメラルコンテンツメッセージをレビューしたかどうかを決定することができる。システムは、一番最近レビューしたエフェメラルコンテンツメッセージに基づいて最近のレビュースコアを計算することができる。
ブロック770において、システムは、現在のユーザがレビューしたことのある、送信者からの最近の(または今までの)エフェメラルコンテンツメッセージのパーセンテージまたは割合を決定することができる。システムは、そのパーセンテージまたは割合に基づいてパーセンテージレビュースコアを計算することができる。
ブロック772において、システムは、現在のユーザが、送信者からのエフェメラルコンテンツメッセージを定期的にレビューしていたかどうかを決定することができる。例えば、システムは、ユーザが送信者のエフェメラルコンテンツメッセージをどれくらい頻繁にレビューするかを、ある時間期間にわたる頻度の関数として決定することができる。レビューの定期性に基づいて、定期レビュースコアが計算されてもよい。
ブロック774において、システムは、ブロック762および766において評価された指標に基づいて関心スコアを計算することができる。この指標は、関心スコアに達するために重み付けおよび累積されてもよい。重み付けは、アプリケーションに基づいて変化し得る。
次いで処理はブロック754へと戻ることができ、システムは、追加のエフェメラルコンテンツメッセージがまだ評価されないままになっているかどうかを決定することができる。
通信システム概観
これらの例は、ローカルで、クライアントデバイスにおいて、または遠隔で(例えば、リモートサーバにおいて)、またはそれらの何らかの組み合わせで提供される、通信システムによって実装され得る。図8A〜図8Cは、通信システムの様々な例を描写し、以下により詳細に論じられる。
図8Aは、2人以上のユーザ間の暗号化された通信を促進する例示的な中央集中通信システム800を描写する。中央集中システム800は、全体が単一の中央集中サーバデバイス826内にあるなど、単一のコンピューティングエンティティ内でメッセージングまたは通信サービスの構造および/または動作の一部またはすべてを実装することができる。
通信システム800は、1つまたは複数のコンポーネントを含むソフトウェアアプリケーションを有するコンピュータ実装システムを含み得る。図8Aに示される通信システム800は、特定のトポロジにおいて限定された数の要素を有するが、通信システム800は、代替トポロジにおいてはより多くのまたはより少ない要素を含み得る。
通信サービス800は、概して、メッセージなどのコミュニケーションを、受信、記憶、および伝達するように構成され得る。コミュニケーションは、メディアまたはコンテンツアイテムを含んでもよく、またはそれと関連付けられてもよい。
クライアントデバイス810は、1つまたは複数の受信者ユーザ、ユーザアカウント、または受信クライアントデバイス810と対応付けられている(resolving to)他の識別子に宛てたコミュニケーションを伝送することができる。例示的な実施形態において、クライアントデバイス810の各々およびそれらのそれぞれのクライアント820は、通信サービス800の特定のユーザと関連付けられる。いくつかの実施形態において、クライアントデバイス810は、スマートフォンなどのセルラデバイスであってもよく、クライアントデバイス810の各々に関連付けられた電話番号に基づいて通信サービス800のものと識別され得る。いくつかの実施形態において、各クライアントは、通信サービス800に登録されたユーザアカウントと関連付けられてもよい。一般に、各クライアントは、コミュニケーションの受信のための様々な技術により対処され得る。いくつかの実施形態においては、クライアントデバイス810はセルラデバイスであり得、他の実施形態においては、クライアントデバイス810のうちの1つまたは複数は、パーソナルコンピュータ、タブレットデバイス、任意の他の形態のコンピューティングデバイスであり得る。
クライアント810は、1つまたは複数の入力デバイス812および1つまたは複数の出力デバイス818を含み得る。入力デバイス812は、例えば、マイクロフォン、キーボード、カメラ、電子ペン、タッチスクリーン、ならびに、メッセージデータ、要求、コマンド、ユーザインターフェース対話、選択、および他のタイプの入力を含む、入力を受信するための他のデバイスを含み得る。出力デバイス818は、スピーカ、モニタまたはタッチスクリーンなどのディスプレイデバイス、および通信システム800にインターフェースを提示するための他のデバイスを含み得る。
クライアント810は、ハードドライブ、ソリッドステートドライブ、フラッシュストレージ、リードオンリメモリ、またはランダムアクセスメモリのうちの1つまたはそれらの組み合わせなど、非一時的コンピュータ可読記憶媒体であり得るメモリを含み得る。メモリは、入力814の表現、および/または出力816の表現、ならびに1つまたは複数のアプリケーションであり得る。例えば、メモリは、ユーザがソーシャルネットワーキングサービスと対話することを可能にするメッセージングクライアント820および/またはソーシャルネットワーキングクライアントを記憶することができる。
入力814は、入力デバイス812がキーボードである場合など、テキストであってもよい。代替的に、入力814は、入力デバイス812がマイクロフォンまたはカメラである場合など、オーディオまたはビデオ記録であってもよい。
入力814は、オーディオ記録を、メッセージングシステム800によって処理可能であるテキストへ変換するために、自動音声認識(ASR)ロジックの対象となり得る。ASRロジックは、クライアントデバイス810に位置し得る(オーディオ記録がクライアント810によってローカルで処理され、対応するテキストが通信サーバ826へ伝送されるように)か、または通信サーバ826に遠隔で位置し得る(この場合、オーディオ記録は通信サーバ826に伝送され得、通信サーバ826がオーディオをテキストへと処理し得る)。他の組み合わせもまた可能であり、例えば、入力デバイス812がタッチパッドまたは電子ペンである場合、入力814は、手書きの形態であり得、これは、入力812を処理可能なテキストに変換するために、手書きまたは光学文字認識分析ロジックの対象になり得る。
クライアント810は、インターネットなどのネットワーク824と通信するためのネットワークインターフェース822を備え得る。ネットワークインターフェース822は、ネットワーク824と互換性のある形式で、および/またはネットワーク824と互換性のあるプロトコルを使用して、入力812を伝送することができ、ネットワーク824から対応する出力816を受信することができる。
ネットワークインターフェース822は、ネットワーク824を介して通信サーバ826に通信することができる。メッセージングサーバ826は、メッセージングクライアント間のメッセージを受信、記憶、および転送するように動作可能であり得る。
通信サーバ826は、ネットワークインターフェース822、通信選好828、および通信ロジック830を含み得る。通信選好828は、1つもしくは複数のユーザおよび/またはビデオ通信のための1つまたは複数のプライバシ設定を含み得る。例えば、通信選好828は、本明細書に説明されるロジックについての、デフォルト設定を含む1つまたは複数の設定を含み得る。
通信ロジック830は、上に説明されるようにエフェメラルコンテンツメッセージを生成、処理、および/または表示するためのエフェメラルコンテンツロジック832を含み得る(エフェメラルコンテンツロジック832は、さらに、または代替的に、クライアント810上に提供され得る)。
クライアント810のネットワークインターフェース822および/または通信サーバ826はまた、ネットワーク824を介してソーシャルネットワーキングサーバ836と通信するために使用され得る。ソーシャルネットワーキングサーバ836は、ソーシャルネットワーク内のつながりを規定するソーシャルネットワーキンググラフ838を含み得るか、またはそれと対話し得る。さらに、通信サーバ826は、つながり情報、メッセージング履歴、イベント詳細などをソーシャルネットワークから取得することなど、様々な目的のためにソーシャルネットワーキングサーバ836に接続し得る。
クライアント810のユーザは、ソーシャルネットワーキングサーバ836と、またはそれを介して対話もしくは通信する、個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサードパーティアプリケーション)、またはグループ(例えば、個人またはエンティティの)であってもよい。ソーシャルネットワーキングサーバ836は、オンラインソーシャルネットワークをホストするネットワークアドレス可能コンピューティングシステムであってもよい。ソーシャルネットワーキングサーバ836は、例えば、ユーザプロフィールデータ、概念プロフィールデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関する他の好適なデータなど、ソーシャルネットワーキングデータを生成、記憶、受信、および送信することができる。ソーシャルネットワーキングサーバ836は、ネットワーク環境の他のコンポーネントによって、直接的に、またはネットワーク824を介するかのいずれかでアクセスされ得る。
ソーシャルネットワーキングサーバ836は、例えば適切なプライバシ設定を設定することによって、ユーザが、自らのアクションをソーシャルネットワーキングサーバ836によりログさせること、または他のシステム(例えば、メッセージングサーバ826などのサードパーティシステム)と共有させることについてオプトインまたはオプトアウトすることを可能にする認証サーバ(または他の好適なコンポーネント)を含み得る。ユーザのプライバシ設定は、ユーザに関連付けられたどんな情報がログされ得るか、ユーザに関連付けられた情報がどのようにログされ得るか、ユーザに関連付けられた情報がいつログされ得るか、誰がユーザに関連付けられた情報をログし得るか、ユーザに関連付けられた情報が誰と共有され得るか、およびどんな目的でユーザに関連付けられた情報がログまたは共有され得るかを決定することができる。認証サーバは、ブロッキング、データハッシュ化、匿名化、または必要に応じて他の好適な技術により、ソーシャルネットワーキングサーバ836のユーザの1つまたは複数のプライバシ設定を強化するために使用され得る。
より具体的には、オンラインソーシャルネットワークのコンテンツオブジェクトのうちの1つまたは複数が、プライバシ設定と関連付けられてもよい。オブジェクトのためのプライバシ設定(または「アクセス設定」)は、例えば、オブジェクトと共同して、認証サーバ上のインデックス内など任意の好適な様式で、別の好適な様式で、またはそれらの任意の組み合わせで記憶され得る。オブジェクトのプライバシ設定は、オブジェクト(またはオブジェクトに関連付けられた特定の情報)がオンラインソーシャルネットワークを使用してどのようにアクセス(例えば、閲覧または共有)され得るかを指定することができる。オブジェクトのためのプライバシ設定が、特定のユーザがオブジェクトにアクセスすることを可能にする場合、オブジェクトは、ユーザに対して「可視」であると説明され得る。限定ではないが、例として、オンラインソーシャルネットワークのユーザは、ユーザプロフィールページ上の職歴情報にアクセスすることができるユーザのセットを識別する、ユーザプロフィールページのためのプライバシ設定を指定することができ、このようにして他のユーザをその情報にアクセスすることから除外する。特定の実施形態において、プライバシ設定は、オブジェクトに関連付けられた特定の情報にアクセスすることが許可されるべきではないユーザの「ブロックリスト」を指定することができる。言い換えると、ブロックリストは、オブジェクトが可視ではない1つまたは複数のユーザまたはエンティティを指定することができる。限定ではないが、例として、ユーザは、ユーザに関連付けられたフォトアルバムにアクセスすることができないユーザのセットを指定することができ、このようにしてそれらのユーザをフォトアルバムにアクセスすることから除外する(同時に、場合により、ユーザのセット内にない特定のユーザがフォトアルバムにアクセスすることを可能にする)。
特定の実施形態において、プライバシ設定は、ソーシャルネットワーキンググラフ838の特定の要素を関連付けられてもよい。ノードまたはエッジなどのソーシャルグラフ要素のプライバシ設定は、どのようにしてソーシャルグラフ要素、ソーシャルグラフ要素に関連付けられた情報、またはソーシャルグラフ要素に関連付けられたコンテンツオブジェクトがオンラインソーシャルネットワークを使用してアクセスされ得るかを指定することができる。限定ではないが、例として、特定の写真に対応する特定の概念ノードは、写真が、写真内でタグ付けされたユーザおよびそのユーザの友達によってのみアクセスされ得ることを指定するプライバシ設定を有し得る。特定の実施形態において、プライバシ設定は、ユーザが、自分のアクションをソーシャルネットワーキングサーバ836によってログさせることまたは他のシステムと共有させることについてオプトインまたはオプトアウトすることを可能にし得る。特定の実施形態において、オブジェクトに関連付けられたプライバシ設定は、許可されたアクセスまたはアクセスの否認の任意の好適な粒度を指定することができる。限定ではないが、例として、アクセスまたはアクセスの否認は、特定のユーザ(例えば、自分のみ、自分のルームメイト、および自分の上司)、特定の隔たりの次数以内のユーザ(例えば、友達、または友達の友達)、ユーザグループ(例えば、ゲーミングクラブ、自分の家族)、ユーザネットワーク(例えば、特定の雇用主の従業員、特定の大学の学生または卒業生)、すべてのユーザ(「公開」)、ユーザなし(「非公開」)、サードパーティシステムのユーザ、特定のアプリケーション(例えば、サードパーティアプリケーション、外部ウェブサイト)、他の好適なユーザもしくはエンティティ、またはそれらの任意の組み合わせに対して指定され得る。本開示は、特定のプライバシ設定を特定の様式で使用することについて説明するが、本開示は、任意の好適なプライバシ設定を任意の好適な様式で使用することを企図する。
ユーザ(または他のエンティティ)からの、データストアに記憶された特定のオブジェクトの要求に応答して、ソーシャルネットワーキングサーバ836は、データストアに対するオブジェクトの要求を送信することができる。要求は、要求に関連付けられたユーザを識別することができる。要求されたデータオブジェクトは、認証サーバが、ユーザがオブジェクトに関連付けられたプライバシ設定に基づいてオブジェクトにアクセスする権限を与えられていることを決定する場合に、ユーザ(またはユーザのクライアントシステム810)にのみ送信され得る。要求しているユーザがオブジェクトにアクセスする権限を与えられていない場合、認証サーバは、要求されたオブジェクトがデータストアから取得されることを防ぐことができるか、または要求されたオブジェクトがユーザに送信されることを防ぐことができる。検索クエリという文脈においては、オブジェクトは、クエリを行っているユーザがオブジェクトにアクセスする権限を与えられている場合にのみ検索結果として生成され得る。言い換えると、オブジェクトは、クエリを行っているユーザにとって可視である可視性を有する必要がある。オブジェクトがユーザにとって可視ではない可視性を有する場合、オブジェクトは、検索結果から除外され得る。
いくつかの実施形態において、ターゲティング基準は、様々な目的のためにソーシャルネットワークのユーザを識別するために使用され得る。ユーザを識別して、ターゲティングするために使用されるターゲティング基準は、ソーシャルネットワーキングサーバ836上の明白な述べられたユーザ関心、または、ソーシャルネットワーキングサーバ836上のノード、オブジェクト、エンティティ、ブランド、もしくはページとのユーザの明白なつながりを含み得る。加えて、または代替として、そのようなターゲティング基準は、暗黙のまたは推測されるユーザ関心またはつながり(ユーザの履歴、デモグラフィック、ソーシャルアクティビティもしくは他のアクティビティ、友達のソーシャルアクティビティもしくは他のアクティビティ、サブスクリプション、またはユーザと似た(例えば、共有する関心、つながり、またはイベントに基づいて)他のユーザの先述のいずれかを分析することを含み得る)を含み得る。特定の実施形態は、プラットフォームおよび「いいね(like)」印象データ;コンテクスト信号(例えば、「コカ・コーラについてのページを、今誰が閲覧しているか、または最近閲覧したのは誰か?」);軽いつながり(例えば、「チェックイン」);つながり類似;ファン;抽出されたキーワード;EMU広告;推測広告;係数、親密性、または他のソーシャルグラフ情報;友達の友達つながり;ピンニングまたはブースティング;割引;投票;世帯収入、ソーシャルクラスタまたはグループ;画像または他のメディアで検出された製品;ソーシャルグラフまたはオープングラフエッジタイプ;geo予測;プロフィールまたはページの閲覧;ステータスアップデートまたは他のユーザ投稿(自然言語処理またはキーワード抽出を伴い得る分析);イベント情報;または協調フィルタリングを伴い得る、プラットフォームターゲティングを利用することができる。ユーザを識別しターゲティングすることはまた、必要に応じて、プライバシ設定(ユーザオプトアウトなど)、データハッシュ化、またはデータ匿名化を含意し得る。
図8Aに描写される中央集中実施形態は、ロジックがメッセージングサーバ826内に組み込まれることから、新たなシステムとしてまたは既存のシステムに対するアップグレードとして展開するのによく適している可能性がある。対照的に、図8Bは、優勢な/関連のある参加者を選択し、低減されたサイズのインターフェースを表示するための機能が分散され、メッセージングサーバから遠隔でアクセス可能である、例示的な分散メッセージングシステム850を描写する。分散システム850の例としては、クライアント−サーバアーキテクチャ、3層アーキテクチャ、N層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスター−スレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散システムが挙げられる。
図8Bに描写されるコンポーネントの多くは図8Aのものと同一であり、これらの要素の説明は、簡潔にするためにここでは繰り返されない。中央集中実施形態と分散実施形態との主な違いは、関連するエフェメラルコンテンツロジック832をホストする別個のエフェメラルサーバ852の追加である。エフェメラルサーバ852は、通信サーバ826とは全く異なり得るが、エフェメラルコンテンツロジック832の機能を通信サーバ826に提供するために、直接的またはネットワーク824を介するかのいずれかで通信サーバ826と通信することができる。
図8Bに描写される実施形態は、例えば、既存のメッセージングサーバを置き換えるのが困難であるか、または望ましくないときに、例示的な実施形態が既存のメッセージングシステムと一緒に配備されることを可能にするのに特によく適している可能性がある。加えて、いくつかの場合において、通信サーバ826は、追加のピボット機能の追加を制限するまたは不可能にする限られたリソース(例えば、処理またはメモリリソース)を有し得る。そのような状況では、本明細書に説明される能力は、依然として、別個の通信サーバ852を通じて提供されてもよい。
図8Cは、ソーシャルネットワーキンググラフ838の例を例証する。例示的な実施形態において、ソーシャルネットワーキングサービスは、1つまたは複数のソーシャルグラフ838を、ソーシャルネットワーキングサービスを介したソーシャルグラフデータ構造として1つまたは複数のデータストアに記憶することができる。
ソーシャルグラフ838は、ユーザノード854および概念ノード856などの複数のノードを含み得る。ソーシャルグラフ838は、さらには、ノードを接続するエッジ858を含み得る。ソーシャルグラフ838のノードおよびエッジは、データオブジェクトして、例えば、データストア(ソーシャルグラフデータベースなど)に記憶され得る。そのようなデータストアは、ソーシャルグラフ838のノードまたはエッジの1つまたは複数の検索可能またはクエリ可能なインデックスを含み得る。
ソーシャルグラフ838は、ソーシャルネットワーキングサーバ826、クライアントシステム810、サードパーティシステム、または好適なアプリケーションのための任意の他の認可システムもしくはデバイスによってアクセスされ得る。
ユーザノード854は、ソーシャルネットワーキングシステムのユーザに対応し得る。ユーザは、ソーシャルネットワーキングシステムと、またはそれを介して対話または通信する、個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサードパーティアプリケーション)、またはグループ(例えば、個人またはエンティティの)であってもよい。例示的な実施形態において、ユーザがソーシャルネットワーキングシステムにアカウントを登録するとき、ソーシャルネットワーキングシステムは、ユーザに対応するユーザノード854を作成し、1つまたは複数のデータストアにユーザノード854を記憶することができる。本明細書に説明されるユーザおよびユーザノード854は、適切な場合、登録ユーザおよび登録ユーザに関連付けられたユーザノード854を指し得る。加えて、または代替的に、本明細書に説明されるユーザおよびユーザノード854は、適切な場合、ソーシャルネットワーキングシステムに登録していないユーザを指し得る。特定の実施形態において、ユーザノード854は、ユーザによって提供される情報、またはソーシャルネットワーキングシステムを含む様々なシステムによって生成される情報と関連付けられてもよい。限定ではないが、例として、ユーザは、自分の名前、プロフィール写真、連絡先情報、誕生日、性別、婚姻ステータス、家族ステータス、職業、学歴、嗜好、興味、または他のデモグラフィック情報を提供することができる。特定の実施形態において、ユーザノード854は、ユーザに関連付けられた情報に対応する1つまたは複数のデータオブジェクトと関連付けられてもよい。特定の実施形態において、ユーザノード854は、1つまたは複数のウェブページに対応してもよい。ユーザノード854は、ソーシャルネットワーキングシステム内のユーザについての固有ユーザ識別子と関連付けられてもよい。
特定の実施形態において、概念ノード856は、概念に対応してもよい。限定ではないが、例として、概念は、場所(例えば、映画館、レストラン、ランドマーク、または都市など)、ウェブサイト(例えば、ソーシャルネットワークサービスに関連付けられたウェブサイト、もしくはウェブアプリケーションサーバに関連付けられたサードパーティウェブサイトなど)、エンティティ(例えば、人、ビジネス、グループ、スポーツチーム、または有名人など)、ソーシャルネットワーキングシステム内もしくはウェブアプリケーションサーバなどの外部サーバ上に位置し得るリソース(例えば、オーディオファイル、ビデオファイル、デジタルフォト、テキストファイル、構造化文書、またはアプリケーションなど)、物的財産もしくは知的財産(例えば、彫刻、絵画、映画、ゲーム、楽曲、思想、写真、または著作物など)、ゲーム、アクティビティ、思想もしくは理論、別の好適な概念、または2つ以上のそのような概念に対応してもよい。概念ノード556は、ユーザによって提供される概念の情報、またはソーシャルネットワーキングシステムを含む様々なシステムによって収集される情報と関連付けられてもよい。限定ではないが、例として、概念の情報は、名称もしくはタイトル、1つまたは複数の画像(例えば、本の表紙の画像)、ロケーション(例えば、住所または地理的なロケーション)、ウェブサイト(URLと関連付けられ得る)、連絡先情報(例えば、電話番号または電子メールアドレス)、他の好適な概念情報、またはそのような情報の任意の好適な組み合わせを含み得る。特定の実施形態において、概念ノード856は、概念ノード856に関連付けられた情報に対応する1つまたは複数のデータオブジェクトと関連付けられてもよい。特定の実施形態において、概念ノード856は、1つまたは複数のウェブページに対応してもよい。
特定の実施形態において、ソーシャルグラフ838内のノードは、ウェブページ(「プロフィールページ」と称され得る)を表し得るか、またはウェブページによって表され得る。プロフィールページは、ソーシャルネットワーキングシステムによってホストされ得るか、またはソーシャルネットワーキングシステムにアクセス可能であり得る。プロフィールページはまた、サードパーティサーバに関連付けられたサードパーティウェブサイト上でホストされてもよい。限定ではないが、例として、特定の外部ウェブページに対応するプロフィールページは、特定の外部ウェブページであってもよく、プロフィールページは、特定の概念ノード856に対応してもよい。プロフィールページは、他のユーザのすべてまたは選択されたサブセットによって閲覧可能であってもよい。限定ではないが、例として、ユーザノード854は、対応するユーザが、コンテンツを追加する、発言をする、または別のやり方で自己表現をすることができる対応するユーザプロフィールページを有し得る。ビジネスページは、商業エンティティ用のユーザプロフィールページを含み得る。限定ではないが、別の例として、概念ノード856は、特に概念ノード856に対応する概念に関して、1人または複数のユーザが、コンテンツを追加する、発言をする、または自己表現をすることができる対応する概念プロフィールページを有し得る。
特定の実施形態において、概念ノード856は、サードパーティウェブページ、またはサードパーティシステムによってホストされるリソースを表してもよい。サードパーティウェブページまたはリソースは、他の要素中でも特に、コンテンツ、選択可能なアイコンもしくは他のアイコン、またはアクションもしくはアクティビティを表す他の対話可能オブジェクト(例えば、JavaScript、AJAX、またはPHPコードで実装され得る)を含み得る。限定ではないが、例として、サードパーティウェブページは、「いいね」、「チェックイン」、「食べる」、「お薦め」、または別の好適なアクションもしくはアクティビティなどの選択可能なアイコンを含み得る。サードパーティウェブページを閲覧するユーザは、アイコンのうちの1つ(例えば、「食べる」)を選択して、クライアントシステムに、ユーザのアクションを示すメッセージをソーシャルネットワーキングシステムへ送信させることによって、アクションを実施することができる。メッセージに応答して、ソーシャルネットワーキングシステムは、ユーザに対応するユーザノード854とサードパーティウェブページまたはリソースに対応する概念ノード856との間にエッジ(例えば、「食べる」エッジ)を作成し、エッジ858を1つまたは複数のデータストアに記憶することができる。
特定の実施形態において、ソーシャルグラフ838内の一対のノードは、1つまたは複数のエッジ858によって互いに接続されてもよい。一対のノードを接続するエッジ858は、その一対のノード間の関係を表し得る。特定の実施形態において、エッジ858は、一対のノード間の関係に対応する1つまたは複数のデータオブジェクトまたは属性を含み得るか、またはこれを表し得る。限定ではないが、例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを示し得る。この指示に応答して、ソーシャルネットワーキングシステムは、第2のユーザに「友達申請」を送信することができる。第2のユーザが「友達申請」を承認すると、ソーシャルネットワーキングシステムは、ソーシャルグラフ838において第1のユーザのユーザノード854を第2のユーザのユーザノード854に接続するエッジ858を作成し、エッジ858をソーシャルグラフ情報として1つまたは複数のデータストアに記憶することができる。図8Cの例では、ソーシャルグラフ838は、ユーザ「アマンダ」およびユーザ「ドロシー」のユーザノード854間の友達関係を示すエッジ858を含む。本開示は、特定のユーザノード854を接続する特定の属性を有する特定のエッジ858を説明または例証するが、本開示は、ユーザノード854を接続する任意の好適な属性を有する任意の好適なエッジ858を企図する。限定ではないが、例として、エッジ858は、友人関係、家族関係、ビジネスまたは雇用関係、ファン関係、フォロワー関係、ビジタ関係、サブスクライバ関係、上司/部下の関係、互恵関係、非互恵関係、別の好適なタイプの関係、または2つ以上のそのような関係を表し得る。さらに、本開示は、全体として、ノードを接続されるものとして説明するが、本開示はまた、ユーザまたは概念を接続されるものとして説明する。本明細書において、ユーザまたは概念が接続されているという言及は、適切な場合、それらのユーザまたは概念に対応するノードが、ソーシャルグラフ838内で1つまたは複数のエッジ858によって接続されることを指し得る。
特定の実施形態において、ユーザノード854と概念ノード856との間のエッジ858は、概念ノード856に関連付けられた概念に対して、ユーザノード854に関連付けられたユーザによって実施される特定のアクションまたはアクティビティを表し得る。限定ではないが、例として、図8Cに例証されるように、ユーザは、ある概念について、「いいね」、「出席した」、「再生した」、「聴いた」、「料理した」、「勤務した」、または「見た」とすることができ、それらの各々が、エッジタイプまたはサブタイプに対応し得る。概念ノード856に対応する概念プロフィールページは、例えば、選択可能な「チェックイン」アイコン(例えば、クリック可能な「チェックイン」アイコンなど)または選択可能な「お気に入りに追加」アイコンを含み得る。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャルネットワーキングシステムは、それぞれのアクションに対応するユーザのアクションに応答して、「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではないが、別の例として、ユーザ(ユーザ「カーラ」)は、特定のアプリケーション(オンラインミュージックアプリケーションであるSPOTIFY)を使用して特定の楽曲(「Across the Sea」)を聴き得る。この場合、ソーシャルネットワーキングシステムは、ユーザがその曲を聴いたこと、およびそのアプリケーションを使用したことを示すために、ユーザに対応するユーザノード854と楽曲およびアプリケーションに対応する概念ノード856との間に「聴いた」エッジ858および「使用した」エッジを作成することができる(図8Cに例証されるように)。さらに、ソーシャルネットワーキングシステムは、その特定の楽曲がその特定のアプリケーションによって再生されたことを示すために、楽曲およびアプリケーションに対応する概念ノード856間に「再生した」エッジ858を作成することができる(図8Cに例証されるように)。この場合、「再生した」エッジ858は、外部アプリケーション(SPOTIFY)によって外部オーディオファイル(楽曲「Across the Sea」)に対して実施されたアクションに対応する。本開示は、ユーザノード854および概念ノード856を接続する特定の属性を有する特定のエッジ858を説明するが、本開示は、ユーザノード854および概念ノード856を接続する任意の好適な属性を有する任意の好適なエッジ858を企図する。さらに、本開示は、単一の関係を表す、ユーザノード854と概念ノード856との間のエッジを説明するが、本開示は、1つまたは複数の関係を表す、ユーザノード854と概念ノード856との間のエッジを企図する。限定ではないが、例として、エッジ858は、ユーザが、特定の概念において、いいねをすることおよび使用したことがあることの両方を表してもよい。代替的に、別のエッジ858は、ユーザノード854と概念ノード856との間(図8Cに例証されるように、ユーザ「エドウィン」のユーザノード854と「SPOTIFY」の概念ノード856との間)の関係の各タイプ(または多数の単一の関係)を表し得る。
特定の実施形態において、ソーシャルネットワーキングシステムは、ソーシャルグラフ838内にユーザノード854と概念ノード856との間にエッジ858を作成することができる。限定ではないが、例として、概念プロフィールページを閲覧する(例えば、ウェブブラウザ、またはユーザのクライアントシステムによってホストされる特定用途向けアプリケーションを使用することによってなど)ユーザは、「いいね」アイコンをクリックまたは選択することによって、自分が概念ノード856によって表される概念を好むことを示すことができ、「いいね」アイコンは、ユーザのクライアントシステムに、概念プロフィールページに関連付けられた概念のユーザによるいいねを示すメッセージをソーシャルネットワーキングシステムへ送信させることができる。このメッセージに応答して、ソーシャルネットワーキングシステムは、ユーザと概念ノード856との間の「いいね」エッジ858によって例証されるように、ユーザに関連付けられたユーザノード854と概念ノード856との間にエッジ858を作成することができる。特定の実施形態において、ソーシャルネットワーキングシステムは、エッジ858を1つまたは複数のデータストアに記憶することができる。特定の実施形態において、エッジ858は、特定のユーザアクションに応答して、ソーシャルネットワーキングシステムによって自動的に形成され得る。限定ではないが、例として、第1のユーザが、写真をアップロードする、映画を見る、または楽曲を聴くと、エッジ858が、第1のユーザに対応するユーザノード854とそれらの概念に対応する概念ノード856との間に形成され得る。本開示は、特定のエッジ858を特定の様式で形成することについて説明するが、本開示は、任意の好適なエッジ858を任意の好適な様式で形成することを企図する。
ソーシャルグラフ838は、複数の製品ノードをさらに含み得る。製品ノードは、特定の企業と関連付けられ得る特定の製品を表し得る。企業は、CtoB(Consumer to Business)サービスに製品カタログを提供し得、したがってCtoBサービスは、ソーシャルグラフ838内の製品内の製品の各々を表し得、各製品が異なる製品ノード内にある。製品ノードは、価格情報、説明的情報、製造者情報、在庫情報、および他の関連情報などの製品に関する情報を含み得る。例えば、レストランのメニュー上の品目の各々は、ソーシャルグラフ838内に品目の各々を説明する製品ノードにより表され得る。製品ノードは、エッジによって、製品を提供する企業にリンクされ得る。複数の企業が製品を提供する場合、各企業は、自らの製品提供に関連付けられた異なる製品ノードを有し得るか、または同じ製品ノードに各々リンクし得る。製品ノードは、エッジによって、製品を購入した、評価した、所有する、お薦めした、または閲覧した各ユーザにリンクされ得、このエッジは、関係の性質を説明している(例えば、購入した、評価した、所有する、お薦めした、閲覧した、または他の関係)。製品ノードの各々は、リンクされた小売企業に依って、グラフIDおよび関連小売IDと関連付けられてもよい。したがって、企業から入手可能な製品は、ソーシャルグラフ838内の企業のユーザノードにリンクされた入手可能な製品ノードを取得することによって、ユーザに通信され得る。製品ノードについての情報は、参照された製品に関する情報をカプセル化する製品オブジェクトとして、ソーシャルネットワーキングシステムによって操作され得る。
そのようなものとして、ソーシャルグラフ838は、ソーシャルネットワーキングシステムの2人以上のユーザの、共有される興味、共有される体験、または他の共有されるもしくは共通の属性を推測するために使用され得る。例えば、ソーシャルグラフ838内に表される共通の企業、製品、メディアアイテム、施設、または他のエンティティへのエッジを各々が有する2人以上のユーザは、そのエンティティとの共有される関係を示し得、これは、1人または複数のユーザに対して、メッセージングシステムを含むソーシャルネットワーキングシステムの使用のカスタマイズを提案するために使用され得る。
上に説明される実施形態は、メッセージングアーキテクチャによって実施され得、次に、その例が、図9を参照して説明される。
メッセージングアーキテクチャ
図9は、例示的な実施形態との使用に好適なメッセージングサービス900の様々な機能を実装する複数のサーバの実施形態を例証する。作用および機能の異なる分散が、メッセージングサービス900の様々な実施形態において使用され得ることを理解されたい。
メッセージングサービス900は、ドメイン名フロントエンド902を含み得る。ドメイン名フロントエンド902は、ドメイン名システム(DNS)内のメッセージングサービス900に関連付けられた1つまたは複数のドメイン名に割り当てられ得る。ドメイン名フロントエンド902は、入接続を受信し、様々なメッセージングサービスを提供するサーバへの接続を分散することができる。
メッセージングサービス902は、1つまたは複数のチャットサーバ904を含み得る。チャットサーバ904は、チャットメッセージなどのユーザツーユーザメッセージング更新を受信および伝送するためのフロントエンドサーバを含み得る。入接続は、作業負荷均衡化に基づいてドメイン名フロントエンド902によってチャットサーバ904に割り当てられ得る。
メッセージングサービス900は、バックエンドサーバ908を含み得る。バックエンドサーバ908は、フロントエンドチャットサーバ904のチャット動作の支援において専門タスクを実施することができる。複数の異なるタイプのバックエンドサーバ908が使用されてもよい。異なるバックエンサーバ908に対するタスクのタイプの割り当ては、異なる実施形態においては異なり得ることを理解されたい。いくつかの実施形態において、専用サーバによって提供されるバックエンドサービスのうちのいくつかは、単一のサーバ、または、本明細書に説明される実施形態においては異なるサーバ間で分割される複数のタスクを各々が実施するサーバのセットにおいて組み合わされ得る。同様に、いくつかの実施形態において、本明細書に説明される専用バックエンドサーバのうちのいくつかのタスクは、異なるサーバグループの異なるサーバ間で分割され得る。
メッセージングサービス900は、1つまたは複数のオフラインストレージサーバ910を備え得る。1つまたは複数のオフラインストレージサーバ910は、保留中の現在オフラインのメッセージングクライアントのメッセージングコンテンツを、そのメッセージングクライアントが再接続するときのために、記憶することができる。
メッセージングサービス900は、1つまたは複数のセッションサーバ912を備え得る。1つまたは複数のセッションサーバ912は、接続されたメッセージングクライアントのセッション状態を維持することができる。
メッセージングサービス900は、1つまたは複数のプレゼンスサーバ914を備え得る。1つまたは複数のプレゼンスサーバ914は、メッセージングサービス900のためのプレゼンス情報を維持することができる。プレゼンス情報は、所与のユーザが、オンラインメッセージングクライアントを有し、チャットのために利用可能であるか否かを、オンラインメッセージングクライアントを有するが、現在そこから離れているか否かを、オンラインメッセージングクライアントを有さないのか否かを、および、任意の他のプレゼンス状態を示す、ユーザ特有の情報に対応してもよい。
メッセージングサービス900は、1つまたは複数のプッシュストレージサーバ916を備え得る。1つまたは複数のプッシュストレージサーバ916は、プッシュ要求をキャッシュに格納し、プッシュ要求をメッセージングクライアントに伝送することができる。プッシュ要求は、メッセージングクライアントをウェイクアップするため、メッセージング更新が利用可能であることをメッセージングクライアントに通知するため、およびメッセージングクライアントとのサーバ側主導の対話を別途実施するために使用され得る。
メッセージングサービス900は、1つまたは複数のグループサーバ918を備え得る。1つまたは複数のグループサーバ918は、グループのリストを維持すること、グループにユーザを追加すること、グループからユーザを除去すること、ならびにグループチャットメッセージの受信、キャッシュ、および転送を実施することができる。
メッセージングサービス900は、1つまたは複数のブロックリストサーバ920を備え得る。1つまたは複数のブロックリストサーバ920は、ユーザ特有のブロックリストを維持することができ、このユーザ特有の受信ブロックリストは、各ユーザに対してそのユーザにメッセージを送信することが禁じられている1つまたは複数の他のユーザを示す。代替的または追加的に、1つまたは複数のブロックリストサーバ920は、各ユーザに対してそのユーザがメッセージを伝送することを禁じられている1つまたは複数の他のユーザを示すユーザ特有の送信ブロックリストを維持することができる。受信ブロックリストおよび送信ブロックリストは、例えば、データベース内に、組み合わせて記憶されてもよく、受信ブロックリストおよび送信ブロックリストがブロック情報の同じレポジトリの異なる視点を表していることを理解されたい。
メッセージングサービス900は、1つまたは複数の最終視聴情報サーバ922を備え得る。1つまたは複数の最終視聴情報サーバ922は、最終視聴ロケーション、ステータス、メッセージングクライアント、およびメッセージングサービス900へのユーザの最終視聴接続の他の要素を示す情報を受信、記憶、および維持することができる。
メッセージングサービス900は、1つまたは複数のキーサーバ924を備え得る。1つまたは複数のキーサーバは、公開/秘密キー暗号化通信のための公開キーをホストすることができる。
メッセージングサービス900は、1つまたは複数のプロフィール写真サーバ926を備え得る。1つまたは複数のプロフィール写真サーバ926は、メッセージングサービス900の複数のユーザの取得可能プロフィール写真を記憶し、利用可能にすることができる。
メッセージングサービス900は、1つまたは複数のスパムログサーバ928を備え得る。1つまたは複数のスパムログサーバ928は、既知のスパムおよび疑わしいスパム(例えば、望まないメッセージ、特に宣伝性質のもの)をログすることができる。1つまたは複数のスパムログサーバ928は、メッセージがスパムであるかどうかを決定するため、および、いくつかの実施形態において、疑わしいスパマー(スパムメッセージを送信するユーザ)に対する処罰的処置を実施するために、メッセージを分析するように動作可能であり得る。
メッセージングサービス900は、1つまたは複数の統計サーバ930を備え得る。1つまたは複数の統計サーバは、メッセージングサービス900の動作およびメッセージングサービス900のユーザの挙動に関連する統計情報をコンパイルし、記憶することができる。
メッセージングサービス900は、1つまたは複数のウェブサーバ932を備え得る。1つまたは複数のウェブサーバ932は、ウェブブラウザとのハイパーテキスト転送プロトコル(HTTP)およびハイパーテキスト転送プロトコルセキュア(HTTPS)接続に携わり得る。
メッセージングサービス900は、1つまたは複数のチャットアクティビティ監視サーバ934を備え得る。1つまたは複数のチャットアクティビティ監視サーバ934は、メッセージングサービス900のユーザによる不正挙動または妨害挙動を決定するためにユーザのチャットを監視することができる。1つまたは複数のチャットアクティビティ監視サーバ934は、スパムログサーバ928およびブロックリストサーバ920と協働して作用することができ、1つまたは複数のチャットアクティビティ監視サーバ934が、スパムおよび他の妨害挙動を識別し、スパム情報をスパムログサーバ928に、および適切な場合には、ブロッキング情報をブロックリストサーバ920に提供する。
メッセージングサービス900は、1つまたは複数の同期サーバ936を備え得る。1つまたは複数の同期サーバ936は、メッセージングサービス900内のユーザの連絡先を決定するために、メッセージングシステム500を、携帯電話上のアドレス帳などのメッセージングクライアントからの連絡先情報と同期することができる。
メッセージングサービス900は、1つまたは複数のマルチメディアサーバ938を備え得る。1つまたは複数のマルチメディアサーバは、メッセージングクライアント間で転送中のマルチメディア(例えば、画像、ビデオ、オーディオ)、オフラインエンドポイントのためにキャッシュ格納されたマルチメディアを記憶することができ、マルチメディアのトランスコーディングを実施することができる。
メッセージングサービス900は、1つまたは複数の支払いサーバ940を備え得る。1つまたは複数の支払いサーバ940は、ユーザからの支払いを処理することができる。1つまたは複数の支払いサーバ940は、支払いの実施のために外部サードパーティサーバに接続することができる。
メッセージングサービス900は、1つまたは複数の登録サーバ942を備え得る。1つまたは複数の登録サーバ942は、メッセージングサービス900の新規ユーザを登録することができる。
メッセージングサービス900は、1つまたは複数の音声中継サーバ944を備え得る。1つまたは複数の音声中継サーバ944は、ボイスオーバインターネットプロトコル(VoIP)コールの実施のために、メッセージングクライアント間のVoIP音声通信を中継することができる。
上記の方法は、コンピュータ可読媒体上の命令として、またはコンピューティングアーキテクチャの一部として具現化され得る。図10は、先に説明されるような様々な実施形態を実装するのに好適である例示的なコンピューティングアーキテクチャ1000の実施形態を例証する。1つの実施形態において、コンピューティングアーキテクチャ1000は、コンピュータ1001などの電子デバイスの一部を含み得るか、電子デバイスの一部として実装され得る。実施形態は、この文脈に限定されない。
本出願において使用される場合、用語「システム」および「コンポーネント」は、コンピュータ関連エンティティ、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかを指すことが意図され、その例は、例示的なコンピューティングアーキテクチャ1000によって提供される。例えば、コンポーネントは、限定されるものではないが、プロセッサ上で実行するプロセス、プロセッサ、ハードディスクドライブ、複数のストレージデバイス(光学のものおよび/または磁気ストレージ媒体)、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータであってもよい。例証として、サーバ上で実行するアプリケーションおよびサーバの両方がコンポーネントであってもよい。1つまたは複数のコンポーネントは、実行のプロセスおよび/またはスレッド内に存在してもよく、コンポーネントは、1つのコンピュータ上に局在し得、および/または2つ以上のコンピュータに分散され得る。さらに、コンポーネントは、動作を協調させるために、様々なタイプの通信メディアによって互いに通信可能に結合されてもよい。この協調は、情報の一方向または双方向交換に関与し得る。例えば、コンポーネントは、通信メディアを介して通信される信号の形態で情報を通信することができる。情報は、様々な信号線に割り振られた信号として実装されてもよい。そのような割り振りにおいては、各メッセージは信号である。しかしながら、さらなる実施形態は、データメッセージを採用し得る。そのようなデータメッセージは、様々な接続にわたって送信され得る。例示的な接続としては、パラレルインターフェース、シリアルインターフェース、およびバスインターフェースが挙げられる。
コンピューティングアーキテクチャ1000は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント、電源などの様々な共通コンピューティング要素を含む。しかしながら、実施形態は、コンピューティングアーキテクチャ1000による実装に限定されない。
図10に示されるように、コンピューティングアーキテクチャ1000は、処理ユニット1002、システムメモリ1004、およびシステムバス1006を備える。処理ユニット1002は、限定しないが、AMD(登録商標)、Athlon(登録商標)、Duron(登録商標)、およびOpteron(登録商標)プロセッサ;ARM(登録商標)アプリケーション、埋め込み型かつ安全なプロセッサ;IBM(登録商標)およびMotorola(登録商標)DragonBall(登録商標)およびPowerPC(登録商標)プロセッサ;IBMおよびSony(登録商標)セルプロセッサ;Intel(登録商標)Celeron(登録商標)、Core(2)Duo(登録商標)、Itanium(登録商標)、Pentium(登録商標)、Xeon(登録商標)、およびXScale(登録商標)プロセッサ;ならびに同様のプロセッサを含む、様々な市販のプロセッサのいずれかであってもよい。デュアルマイクロプロセッサ、マルチコアプロセッサ、および他のマルチプロセッサアーキテクチャもまた、処理ユニット1002として採用されてもよい。
システムバス1006は、限定されるものではないが、システムメモリ1004を含む、システムコンポーネントのための、処理ユニット1002へのインターフェースを提供する。システムバス1006は、様々な市販のバスアーキテクチャのいずれかを使用して、メモリバス(メモリコントローラありまたはなしの)、周辺機器用バス、およびローカルバスへさらに相互接続することができる、いくつかのタイプのバス構造のうちのいずれかであってもよい。インターフェースアダプタは、スロットアーキテクチャを介してシステムバス1006に接続することができる。スロットアーキテクチャ例は、限定しないが、アクセラレイティッドグラフィックスポート(AGP:Accelerated Graphics Port)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA:(Extended)Industry Standard Architecture)、マイクロチャネルアーキテクチャ(MCA:Micro Channel Architecture)、NuBus、周辺コンポーネント相互接続(拡張)(PCI(X):Peripheral Component Interconnect (Extended))、PCIエクスプレス、パーソナルコンピュータメモリカード国際協会(PCMCIA:Personal Computer Memory Card International Association)、および同様のものを含み得る。
コンピューティングアーキテクチャ1000は、様々な製造品を備え得るか、または実装し得る。製造品は、ロジックを記憶するためのコンピュータ可読記憶媒体を備え得る。コンピュータ可読記憶媒体の例は、揮発性メモリまたは不揮発性メモリ、取り外し可能または取り外し不可能メモリ、消去可能または消去不可能メモリ、書き込み可能または書き換え可能メモリなどを含む、電子データを記憶することが可能な任意の有形媒体を含み得る。ロジックの例は、ソースコード、コンパイル済みコード、解釈されたコード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、視覚的コード、および同様のものなどの、任意の好適なタイプのコードを使用して実施される実行可能なコンピュータプログラム命令を含み得る。実施形態はまた、本明細書に説明される動作の実施を可能にするために1つまたは複数のプロセッサによって読み出され、実行され得る、非一時的コンピュータ可読媒体内に含まれるか、または非一時的コンピュータ可読媒体上にある命令として少なくとも部分的に実施され得る。
システムメモリ1004は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能なプログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリ、強誘電性ポリマーメモリなどのポリマーメモリ、オボニックメモリ、相変化または強誘電性メモリ、シリコン−酸化物−窒化物−酸化物−シリコン(SONOS)メモリ、磁気または光学カード、独立ディスクの冗長アレイ(RAID:Redundant Array of Independent Disk)ドライブなどのデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD)、および情報を記憶するのに好適な任意の他のタイプの記憶媒体などの、1つまたは複数の高速メモリユニットの形態にある様々なタイプのコンピュータ可読記憶媒体を含み得る。図10に示される例証された実施形態において、システムメモリ1004は、不揮発性メモリ1008および/または揮発性メモリ1010を含み得る。基本入力/出力システム(BIOS)は、不揮発性メモリ1008に記憶され得る。
コンピューティングアーキテクチャ1000は、内部(または外部)ハードディスクドライブ(HDD)1012、取り外し可能な磁気ディスク1016から読み出すため、またはそれに書き込むための磁気フロッピディスクドライブ(FDD)1014、および取り外し可能な光学ディスク1020(例えば、CD−ROMまたはDVD)から読み出すため、またはそれに書き込むための光学ディスクドライブ1018を含む、1つまたは複数の低速メモリユニットの形態にある様々なタイプのコンピュータ可読記憶媒体を含み得る。HDD1012、FDD1014、および光学ディスクドライブ1020は、それぞれHDDインターフェース1022、FDDインターフェース1024、および光学ドライブインターフェース1026によってシステムバス1006に接続され得る。外部ドライブ実装のためのHDDインターフェース1022は、ユニバーサルシリアルバス(USB)およびIEEE694インターフェース技術のうちの少なくとも一方または両方を含み得る。
ドライブおよび関連コンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの揮発性および/または不揮発性ストレージを提供する。例えば、オペレーティングシステム1028、1つまたは複数のアプリケーションプログラム1030、他のプログラムモジュール1032、およびプログラムデータ1034を含む、いくつかのプログラムモジュールが、ドライブおよびメモリユニット1008、1012に記憶されてもよい。1つの実施形態において、1つまたは複数のアプリケーションプログラム1030、他のプログラムモジュール1032、およびプログラムデータ1034は、例えば、メッセージングシステム500の様々なアプリケーションおよび/またはコンポーネントを含み得る。
ユーザは、コマンドおよび情報を、1つまたは複数の有線/ワイヤレス入力デバイス、例えば、キーボード1036およびマウス1038などのポインティングデバイスを通じてコンピュータ1001に入力することができる。他の入力デバイスは、マイクロフォン、赤外線(IR)リモートコントロール、無線周波数(RF)リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックスタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量性、抵抗性など)、トラックボール、トラックパッド、センサ、スタイラス、および同様のものを含み得る。これらの入力デバイスおよび他の入力デバイスは、多くの場合、システムバス1006に結合される入力デバイスインターフェース1040を通じて処理ユニット1002に接続されるが、パラレルポート、IEEE694シリアルポート、ゲームポート、USBポート、IRインターフェースなどの他のインターフェースによって接続されてもよい。
モニタ1042または他のタイプのディスプレイデバイスもまた、ビデオアダプタ1044などのインターフェースを介してシステムバス1006に接続される。モニタ1042は、コンピュータ1001の内部または外部にあってもよい。モニタ1042に加えて、コンピュータは、典型的には、スピーカ、プリンタなどの他の周辺出力デバイスを含む。
コンピュータ1001は、リモートコンピュータ1044などの1つまたは複数のリモートコンピュータへの有線および/またはワイヤレス通信を介した論理接続を使用してネットワーク環境内で動作することができる。リモートコンピュータ1044は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースのエンターテイメント機器、ピアデバイス、または他の共通ネットワークノードであってもよく、また典型的には、コンピュータ1001に関連して説明される要素の多くまたはすべてを含むが、簡潔性のために、メモリ/ストレージデバイス1046のみが例証される。描写される論理接続は、ローカルエリアネットワーク(LAN)1048、および/またはより大きいネットワーク、例えば、広域ネットワーク(WAN)1050への有線/ワイヤレス接続を含む。そのようなLANおよびWANネットワーキング環境は、オフィスや会社内では通常のことであり、イントラネットなどの企業全体のコンピュータネットワークを促進し、このコンピュータネットワークのすべてが、世界通信ネットワーク、例えば、インターネットに接続することができる。
LANネットワーキング環境で使用される場合、コンピュータ1001は、有線および/またはワイヤレス通信ネットワークインターフェースまたはアダプタ1052を通じてLAN1048に接続される。アダプタ1052は、LAN1048への有線および/またはワイヤレス通信を促進することができ、LAN1048もまた、アダプタ1052のワイヤレス機能と通信するために配設されるワイヤレスアクセスポイントを含み得る。
WANネットワーキング環境で使用される場合、コンピュータ1001は、モデム1054を含み得るか、またはWAN1050上の通信サーバに接続されるか、またはインターネットを用いるなど、WAN1050を介した通信を確立するための他の手段を有する。内部または外部の、有線および/またはワイヤレスデバイスであり得るモデム1054は、入力デバイスインターフェース1040を介してシステムバス1006に接続する。ネットワーク環境において、コンピュータ1001に関して描写されるプログラムモジュール、またはその部分は、リモートメモリ/ストレージデバイス1046に記憶されてもよい。示されるネットワーク接続は、例示的であり、コンピュータ間の通信リンクを確立するための他の手段が使用されてもよいことを理解されたい。
コンピュータ1001は、ワイヤレス通信(例えば、IEEE802.13 OTA(Over The Air)変調技術)内に動作可能に配設されるワイヤレスデバイスなど、IEEE802規格ファミリを使用する有線およびワイヤレスデバイスまたはエンティティと通信するように動作可能である。これは、中でも特に、少なくともWi−Fi(またはワイヤレスフィディリティ)、WiMax、およびBluetooth(商標)ワイヤレス技術を含む。したがって、通信は、従来のネットワークのように予め定められた構造であり得るか、または単に、少なくとも2つのデバイス間のアドホック通信であり得る。Wi−Fiネットワークは、安全で信頼性の高い高速ワイヤレス接続を提供するためにIEEE802.13x(a、b、g、nなど)と呼ばれる無線技術を使用する。Wi−Fiネットワークは、コンピュータを、互いに、インターネットに、および有線ネットワーク(IEEE802.3関連の媒体および機能を使用する)に接続するために使用されてもよい。
図11は、先に説明されるような様々な実施形態を実装するのに好適である例示的な通信アーキテクチャ1100を描写するブロック図である。通信アーキテクチャ1100は、送信器、受信器、トランシーバ、無線、ネットワークインターフェース、ベースバンドプロセッサ、アンテナ、増幅器、フィルタ、電源などの様々な一般的な通信要素を含む。しかしながら、実施形態は、通信アーキテクチャ1100による実装に限定されない。
図11に示されるように、通信アーキテクチャ1100は、1つまたは複数のクライアント1102およびサーバ1104を含む。クライアント1102は、クライアントデバイス510を実装し得る。サーバ1104は、サーバデバイス526を実装し得る。クライアント1102およびサーバ1104は、クッキーおよび/または関連文脈情報など、それぞれのクライアント1102およびサーバ1104にローカルな情報を記憶するために採用され得る1つまたは複数のそれぞれのクライアントデータストア1106およびサーバデータストア1108に動作可能に接続される。
クライアント1102およびサーバ1104は、通信フレームワーク1110を使用して互いに情報を通信することができる。通信フレームワーク1110は、任意の周知の通信技術およびプロトコルを実装し得る。通信フレームワーク1110は、パケット交換ネットワーク(例えば、インターネットなどの公衆ネットワーク、企業イントラネットなどのプライベートネットワークなど)、回路交換ネットワーク(例えば、公衆電話交換ネットワーク)、またはパケット交換ネットワークおよび回路交換ネットワークの組み合わせ(好適なゲートウェイおよびトランスレータを用いて)として実装され得る。
通信フレームワーク1110は、通信ネットワークを受容する、通信ネットワークと通信する、および通信ネットワークに接続するように構成される様々なネットワークインターフェースを実装し得る。ネットワークインターフェースは、入力出力インターフェースの特殊な形態と見なされ得る。ネットワークインターフェースは、限定することなく、直接接続、イーサネット(例えば、シック(Thick)、シン(Thin)、ツイストペア10/100/1000BASE T、および同様のもの)、トークンリング、ワイヤレスネットワークインターフェース、セルラネットワークインターフェース、IEEE802.11a−xネットワークインターフェース、IEEE802.16ネットワークインターフェース、IEEE802.20ネットワークインターフェース、および同様のものを含む接続プロトコルを採用し得る。さらに、複数のネットワークインターフェースが、様々な通信ネットワークタイプに関与するために使用されてもよい。例えば、複数のネットワークインターフェースが、ブロードキャスト、マルチキャスト、およびユニキャストネットワークを介した通信を可能にするために採用されてもよい。もし処理要件がより大きい速度および容量を指示する場合、同様に、分散ネットワークコントローラアーキテクチャが、クライアント1102およびサーバ1104によって必要とされる通信可能な帯域幅を、プールするため、負荷平衡するため、および他のやり方で増大するために採用されてもよい。通信ネットワークは、限定することなく、直接相互接続、安全なカスタム接続、プライベートネットワーク(例えば、企業イントラネット)、公衆ネットワーク(例えば、インターネット)、パーソナルエリアネットワーク(PAN:Personal Area Network)、ローカルエリアネットワーク(LAN:Local Area Network)、メトロポリタンエリアネットワーク(MAN:Metropolitan Area Network)、インターネット上のノードとしてのオペレーティングミッション(OMNI:Operating Missions as Nodes on the Internet)、広域ネットワーク(WAN:Wide Area Network)、ワイヤレスネットワーク、セルラネットワーク、および他の通信ネットワークを含む、有線および/またはワイヤレスネットワークのうちの任意の1つまたは組み合わせであってもよい。
図12は、メッセージングシステム500などのマルチキャリアOFDMシステムにおいて使用するためのデバイス1200の実施形態を例証する。デバイス1200は、例えば、メッセージングコンポーネントロジック600、意思決定ロジック700、およびグループ選択ロジック800を参照して説明されるようなソフトウェアコンポーネント1202を実装し得る。デバイス1200はまた、論理回路1204を実装し得る。論理回路1204は、メッセージングシステム500について説明される動作を実施するために物理回路を含み得る。図12に示されるように、デバイス1200は、無線インターフェース1206、ベースバンド回路1208、およびコンピューティングプラットフォーム1210を含み得るが、実施形態はこの設定に限定されない。
デバイス1200は、全体が単一のデバイス内にあるなど、単一のコンピューティングエンティティ内のメッセージングシステム500および/または論理回路1204の構造および/または動作の一部またはすべてを実施することができる。代替的に、デバイス1200は、クライアント−サーバアーキテクチャ、3層アーキテクチャ、N層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスター−スレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散システムなどの分散システムアーキテクチャを使用して、複数のコンピューティングエンティティにわたってメッセージングシステム500および/または論理回路1204の構造および/または動作の部分を分散することができる。実施形態は、この文脈に限定されない。
1つの実施形態において、無線インターフェース1206は、シングルキャリアまたはマルチキャリア変調信号(例えば、相補型符号変調(CCK)および/または直交周波数分割多重(OFDM)シンボルを含む)を伝送および/または受信するために適合されるコンポーネントまたはコンポーネントの組み合わせを含み得るが、実施形態は、任意の特定のOTA(Over The Air)インターフェースまたは変調スキームに限定されない。無線インターフェース1206は、例えば、受信器1212、送信器1214、および/または周波数シンセサイザ1216を含み得る。無線インターフェース1206は、バイアス制御、水晶発振器、および/または1つまたは複数のアンテナ1218を含み得る。別の実施形態において、無線インターフェース1206は、要求に応じて、外部電圧制御発振器(VCO)、表面音響波フィルタ、中間周波数(IF)フィルタ、および/またはRFフィルタを使用してもよい。予想されるRFインターフェース設計の多様性に起因して、その広範な説明は省略される。
ベースバンド回路1208は、受信および/または伝送信号を処理するために無線インターフェース1206と通信することができ、また、例えば、受信信号をダウンコンバートするためのアナログ−デジタル変換器1220、および伝送用に信号をアップコンバートするためのデジタル−アナログ変換器1222を含み得る。さらに、ベースバンド回路1208は、受信/伝送信号それぞれを処理するPHYリンク層のためのベースバンドまたは物理層(PHY)処理回路1224を含み得る。ベースバンド回路1208は、例えば、媒体アクセス制御(MAC)/データリンク層処理のための処理回路1226を含み得る。ベースバンド回路1208は、例えば1つまたは複数のインターフェース1230を介して処理回路1226および/またはコンピューティングプラットフォーム1210と通信するためのメモリコントローラ1228を含み得る。
いくつかの実施形態において、PHY処理回路1224は、バッファメモリなどの追加の回路と併せて、無線フレームなどの通信フレームを構築および/または分解するために、フレーム構築および/または検出モジュールを含み得る。代替的に、または加えて、MAC処理回路1226は、確実にこれらの機能の処理を共有するか、またはPHY処理回路1224とは独立してこれらの処理を実施することができる。いくつかの実施形態において、MACおよびPHY処理は、単一の回路に統合されてもよい。
コンピューティングプラットフォーム1210は、デバイス1200にコンピューティング機能を提供することができる。示されるように、コンピューティングプラットフォーム1210は、処理コンポーネント1232を含み得る。ベースバンド回路1208に加えて、またはベースバンド回路1208の代わりに、デバイス1200は、処理コンポーネント1232を使用して、メッセージングシステム500および論理回路1204の処理動作またはロジックを実行することができる。処理コンポーネント1232(および/またはPHY1224および/またはMAC1226)は、様々なハードウェア要素、ソフトウェア要素、または両方の組み合わせを備え得る。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子(例えば、トランジスタ、抵抗器、キャパシタ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含み得る。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、またはそれらの任意の組み合わせを含み得る。実施形態がハードウェア要素および/またはソフトウェア要素を使用して実装されるかどうかを決定することは、所与の実装形態について所望されるような、所望の計算速度、電力レベル、熱耐性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計制約または性能制約などの任意の数の因子に応じて異なり得る。
コンピューティングプラットフォーム1210は、他のプラットフォームコンポーネント1234をさらに含み得る。他のプラットフォームコンポーネント1234は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント(例えば、デジタルディスプレイ)、電源などの一般的なコンピューティング要素を含む。メモリユニットの例は、限定することなく、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能なプログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリ、強誘電性ポリマーメモリなどのポリマーメモリ、オボニックメモリ、相変化または強誘電性メモリ、シリコン−酸化物−窒化物−酸化物−シリコン(SONOS)メモリ、磁気または光学カード、独立ディスクの冗長アレイ(RAID:Redundant Array of Independent Disk)ドライブなどのデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD)、および情報を記憶するのに好適な任意の他のタイプの記憶媒体などの、1つまたは複数の高速メモリユニットの形態にある様々なタイプのコンピュータ可読およびマシン可読記憶媒体を含み得る。
デバイス1200は、例えば、ウルトラモバイルデバイス、モバイルデバイス、固定デバイス、マシンツーマシン(M2M)デバイス、パーソナルデジタルアシスタント(PDA)、モバイルコンピューティングデバイス、スマートフォン、電話機、デジタル電話機、携帯電話、ユーザ機器、電子書籍リーダ、ハンドセット、一方向ページャ、双方向ページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバ、サーバアレイまたはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワークアプライアンス、ウェブアプライアンス、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、家電製品、プログラマブル家電製品、ゲーム機、テレビ、デジタルテレビ、セットトップボックス、ワイヤレスアクセスポイント、基地局、ノードB、発展型ノードB(eNB)、加入者ステーション、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはそれらの組み合わせであってもよい。したがって、本明細書に説明されるデバイス1200の機能および/または特定の設定は、要求に応じて適宜、デバイス1200の様々な実施形態に含まれ得るか、または省略され得る。いくつかの実施形態において、デバイス1200は、3GPP LTE仕様、および/またはWMANのためのIEEE1402.16規格、および/または本明細書で引用される他の広帯域ワイヤレスネットワークのうちの1つまたは複数に関連したプロトコルおよび周波数に準拠するように設定され得るが、実施形態は、この点に関して限定されない。
デバイス1200の実施形態は、単入力単出力(SISO)アーキテクチャを使用して実装され得る。しかしながら、特定の実装形態は、ビーム形成または空間分割多重アクセス(SDMA)のための適応アンテナ技術を使用する、および/またはMIMO通信技術を使用する、伝送および/または受信のための複数のアンテナ(例えば、アンテナ1218)を含み得る。
デバイス1200のコンポーネントおよび特徴は、ディスクリート回路、特定用途向け集積回路(ASIC)、論理ゲート、および/またはシングルチップアーキテクチャの任意の組み合わせを使用して実装され得る。さらに、デバイス1200の特徴は、マイクロコントローラ、プログラマブル論理アレイ、および/もしくはマイクロプロセッサ、または適切な場合には適宜、先述の任意の組み合わせを使用して実装され得る。本明細書では、ハードウェア、ファームウェア、および/またはソフトウェア要素は、まとめて、または個別に、「ロジック」または「回路」と称され得ることに留意されたい。
図12のブロック図に示される例示的なデバイス1200は、多くの予想される実装形態の1つの機能的な説明例を表し得るということを理解されたい。したがって、添付の図面に描写されるブロック機能の分割、省略、または包含は、これらの機能を実装するためのハードウェアコンポーネント、回路、ソフトウェア、および/または要素が、必ず、実施形態において分割、省略、または包含されることを類推するわけではない。
少なくとも1つのコンピュータ可読記憶媒体1236は、実行されるとき、本明細書に説明されるコンピュータ実装方法のいずれかをシステムに実行させる命令を含み得る。
用語に関する一般的な注釈
いくつかの実施形態は、「1つの実施形態」または「実施形態」という表現、ならびにそれらの派生形を使用して説明され得る。これらの用語は、実施形態に関連して説明される特定の特徴、構造、または特性が、少なくとも1つの実施形態に含まれることを意味する。本明細書内の様々な場所での「1つの実施形態では」という句の登場は、必ずしもすべてが同じ実施形態を指しているわけではない。さらに、別途記載のない限り、上に説明される特徴は、任意の組み合わせで一緒に使用可能であることが理解される。したがって、別個に論じられる任意の特徴は、その特徴が互いに相いれないことが記載されていない限りは、互いに組み合わせて用いられてもよい。
本明細書で使用される表記および専門用語を全体的に参照すると、本明細書における詳細説明は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラムプロシージャの観点で提示され得る。これらの手続き的説明および表現は、当業者によって、他の当業者に自身の研究の内容を最も効果的に伝えるために使用される。
プロシージャは、ここでは、および一般的には、所望の結果をもたらす動作の首尾一貫したシーケンスであると考えられる。これらの動作は、物理的量の物理的操作を必要とするものである。必須ではないが、通常、これらの量は、記憶、転送、結合、比較、および別途操作されることが可能である電気、磁気、または光信号の形態をとる。場合によっては、主に一般的用法の理由から、これらの信号を、ビット、値、要素、シンボル、文字、項、数字、または同様のものと呼ぶことが簡便であることが分かっている。しかしながら、これらの用語および同様の用語のすべては、適切な物理的量と関連付けられるものとし、それらの量に適用される簡便なラベルにすぎないことに留意されたい。
さらに、実施される操作は、多くの場合、追加する、または比較するなどの用語で言及され、人間のオペレータによって実施される知的動作と一般的に関連付けられる。1つまたは複数の実施形態の一部を形成する、本明細書に説明される動作のいずれにおいても、人間のオペレータのそのような能力は必要ではないか、大半の場合は望ましくない。むしろ、動作はマシン動作である。様々な実施形態の動作を実施するための有用なマシンは、汎用デジタルコンピュータまたは同様のデバイスを含む。
いくつかの実施形態は、「結合される」または「接続される」という表現、ならびにそれらの派生形を使用して説明され得る。これらの用語は、必ずしも互いの同義語として意図されない。例えば、いくつかの実施形態は、2つ以上の要素が互いと直接的な物理接触または電気接触状態にあることを示すために、「接続される」および/または「結合される」という用語を使用して説明され得る。しかしながら、「結合される」という用語はまた、2つ以上の要素が、互いと直接的な物理接触状態にないが、それでも依然として互いと協働するか、または対話することを意味し得る。
様々な実施形態はまた、これらの動作を実施するための装置またはシステムに関する。この装置は、必要とされる目的のために特別に構築され得るか、またはそれは、コンピュータに記憶されるコンピュータプログラムによって選択的に有効化または再設定されるような汎用コンピュータを備え得る。本明細書に提示されるプロシージャは、特定のコンピュータまたは他の装置に本質的に関連するものではない。様々な汎用マシンが、本明細書内の教示に従って書かれたプログラムと共に使用され得るか、または様々な汎用マシンは、必要とされる方法ステップを実施するために、より特殊な装置を構築するのに簡便であることを証明し得る。様々なこれらのマシンのための必要とされる構造は、与えられる説明から明らかであるものとする。
本開示の要約書は、読み手が本技術開示の本質を迅速に理解できるようにするために提供されるということが強調される。要約書は、特許請求の範囲または意味を解釈または制限するために用いられないという理解のもとに提出される。加えて、先述の「発明を実施するための形態」において、様々な特徴が、本開示を効率化するという目的のために単一の実施形態内にまとめられていることが分かる。このような開示方法は、特許請求される実施形態が各請求項に明示的に列挙されるものよりも多くの特徴を必要とするという意図を示すものとして解釈されるべきではない。むしろ、以下の請求項が示すように、発明の主題は、単一の開示された実施形態のすべての特徴よりも少ないことにある。したがって、以下の請求項は、各請求項が別個の実施形態として自立した状態で、以後、「発明を実施するための形態」に組み込まれる。添付の請求項において、「including」および「in which」という用語は、それぞれ「comprising」および「wherein」という用語の平易な英語の均等物として使用される。さらに、「第1の」、「第2の」、「第3の」などの用語は、単にラベルとして使用され、それらの対象物に対して数値的要件を課すことは意図されない。
上に説明されていることは、開示されるアーキテクチャの例を含む。当然ながら、コンポーネントおよび/または方法論のすべての考えられる組み合わせを説明することは不可能であるが、当業者は、多くのさらなる組み合わせおよび置き換えが可能であることを認識し得る。したがって、新規のアーキテクチャは、添付の特許請求の範囲の趣旨および範囲内に入るすべてのそのような変更、修正、および変形を包含することが意図される。

Claims (34)

  1. 送信クライアントと受信クライアントとの間のエンドツーエンド暗号化セッションのためのセットアップ情報を受信することと、ここで、前記セットアップ情報が、メッセージコンテンツを復号するための第1の暗号化キーに関する情報を含み、
    前記セットアップ情報を前記受信クライアントに伝送することと、
    エフェメラルコンテンツを含むメッセージを受信することと、ここで、前記エフェメラルコンテンツが、暗号化されたメディアおよび前記メディアを復号するための第2のキーと関連付けられ、
    前記エフェメラルコンテンツを前記受信クライアントに伝送することと
    を含む方法。
  2. 暗号化された前記コンテンツが、前記メディアのサムネイルおよび前記メディアへのリンクを含む、請求項1に記載の方法。
  3. 前記メッセージの対象とする受信者のリストにアクセスすることと、
    前記対象とする受信者のリストをフィルタリングすることとをさらに含み、前記フィルタリングが、
    前記リストからの送信クライアントアカウントに関連付けられた送信ユーザアカウントと対称関係を有さない受信者を削除すること、
    前記送信ユーザアカウントからのメッセージをブロックする受信者を削除すること、または
    メッセージが前記送信ユーザアカウントによってブロックされる受信者を削除すること、のうちの1つまたは複数を含む、請求項1に記載の方法。
  4. 前記受信クライアントから前記メッセージに対する返信を受信することと、
    前記メッセージがブロードキャストの部分として伝送されたことを決定することと、
    前記返信を、前記送信クライアントに関連付けられた送信ユーザアカウントと前記受信クライアントに関連付けられた受信ユーザアカウントとの間の1対1の会話の部分として送信することと、をさらに含む、請求項1に記載の方法。
  5. 前記メッセージが、受信者のグループに伝送され、前記方法は、前記メッセージに対する返信を受信することと、暗号化されたセッションが前記グループのメンバの各ペアの間に存在することを検証することと、前記返信を前記受信者のグループに伝送することと、をさらに含む、請求項1に記載の方法。
  6. 前記メッセージを受信した後に、前記送信クライアントに関連付けられた送信ユーザアカウントと第3のユーザアカウントとの間に同期関係を確立することと、
    前記メッセージを前記第3のユーザに関連付けられた第3のデバイスに伝送しないようにすることと、をさらに含む、請求項1に記載の方法。
  7. 前記エフェメラルコンテンツを含む前記メッセージを受信するサーバは、前記暗号化されたメディアにアクセスすることができない、請求項1に記載の方法。
  8. 1つまたは複数のプロセッサに、送信クライアントと受信クライアントとの間のエンドツーエンド暗号化セッションのためのセットアップ情報を受信させるように設定される命令であって、前記セットアップ情報が、メッセージコンテンツを復号するための第1の暗号化キーに関する情報を含む、命令と、
    1つまたは複数のプロセッサに、前記セットアップ情報を前記受信クライアントに伝送させるように設定される命令と、
    1つまたは複数のプロセッサに、エフェメラルコンテンツ、暗号化されたメディアに関連付けられたステータスアップデート、および前記メディアを復号するための第2のキーを含むメッセージを受信させるように設定される命令と、
    1つまたは複数のプロセッサに、前記ステータスアップデートを前記受信クライアントに伝送させるように設定される命令と
    を記憶する非一時的コンピュータ可読媒体。
  9. 暗号化された前記コンテンツが、前記メディアのサムネイルおよび前記メディアへのリンクを含む、請求項8に記載の媒体。
  10. 前記1つまたは複数のプロセッサに、前記メッセージの対象とする受信者のリストにアクセスさせるように設定される命令と、
    前記1つまたは複数のプロセッサに、前記対象とする受信者のリストをフィルタリングさせるように設定される命令とをさらに記憶し、前記フィルタリングが、
    前記リストからの送信クライアントアカウントに関連付けられた送信ユーザアカウントと対称関係を有さない受信者を削除すること、
    前記送信ユーザアカウントからのメッセージをブロックする受信者を削除すること、または
    メッセージが前記送信ユーザアカウントによってブロックされる受信者を削除すること、のうちの1つまたは複数を含む、請求項8に記載の媒体。
  11. 前記1つまたは複数のプロセッサに、前記受信クライアントから前記メッセージに対する返信を受信させるように設定される命令と、
    前記1つまたは複数のプロセッサに、前記メッセージがブロードキャストの部分として伝送されたことを決定させるように設定される命令と、
    前記1つまたは複数のプロセッサに、前記返信を、前記送信クライアントに関連付けられた送信ユーザアカウントと前記受信クライアントに関連付けられた受信ユーザアカウントとの間の1対1の会話の部分として送信させるように設定される命令と、をさらに記憶する、請求項8に記載の媒体。
  12. 前記ステータスアップデートが、受信者のグループに伝送され、前記媒体は、前記1つまたは複数のプロセッサに、前記メッセージに対する返信を受信させ、暗号化されたセッションが前記グループのメンバの各ペアの間に存在することを検証させ、および前記返信を前記受信者のグループに伝送させるように設定される命令をさらに記憶する、請求項8に記載の媒体。
  13. 前記1つまたは複数のプロセッサに、前記メッセージを受信した後に、前記送信クライアントに関連付けられた送信ユーザアカウントと第3のユーザアカウントとの間の同期関係を確立させるように設定される命令をさらに記憶し、前記1つまたは複数のプロセッサは、前記メッセージを前記第3のユーザに関連付けられた第3のデバイスに伝送しないように設定される、請求項8に記載の媒体。
  14. 前記エフェメラルコンテンツを含む前記メッセージを受信するサーバは、暗号化された前記コンテンツにアクセスすることができない、請求項8に記載の媒体。
  15. 送信クライアントと受信クライアントとの間のエンドツーエンド暗号化セッションのためのセットアップ情報を記憶するように設定される非一時的コンピュータ可読媒体であって、前記セットアップ情報が、メッセージコンテンツを復号するための第1の暗号化キーに関する情報を含む、非一時的コンピュータ可読媒体と、
    前記セットアップ情報を前記受信クライアントに伝送するように設定される、ハードウェア内に少なくとも部分的に実装されるエンドツーエンド暗号化セッションロジックと、
    エフェメラルコンテンツ、暗号化されたメディアに関連付けられたステータスアップデート、および前記メディアを復号するための第2のキーを含むメッセージを受信し、前記メッセージを前記受信クライアントに伝送するように構成される、ハードウェア内に少なくとも部分的に実装されるネットワークインターフェースロジックと
    を備える、装置。
  16. 暗号化された前記コンテンツが、前記メディアのサムネイルおよび前記メディアへのリンクを含む、請求項15に記載の装置。
  17. 前記メッセージの対象とする受信者のリストにアクセスし、前記対象とする受信者のリストをフィルタリングするように設定される、ハードウェア内に少なくとも部分的に実装されるフィルタリングロジックをさらに備え、前記フィルタリングが、
    前記リストからの送信クライアントアカウントに関連付けられた送信ユーザアカウントと対称関係を有さない受信者を削除すること、
    前記送信ユーザアカウントからのメッセージをブロックする受信者を削除すること、または
    メッセージが前記送信ユーザアカウントによってブロックされる受信者を削除すること、のうちの1つまたは複数を含む、請求項15に記載の装置。
  18. 前記メッセージがブロードキャストの部分として伝送されたことを決定するように設定される、ハードウェア内に少なくとも部分的に実装される検証ロジックをさらに備え、前記ネットワークインターフェースロジックが、前記受信クライアントから前記ステータスアップデートに対する返信を受信し、前記返信を、前記送信クライアントに関連付けられた送信ユーザアカウントと前記受信クライアントに関連付けられた受信ユーザアカウントとの間の1対1の会話の部分として送信するようにさらに設定される、請求項15に記載の装置。
  19. 前記メッセージが、受信者のグループに伝送され、前記装置は、暗号化されたセッションが前記グループのメンバの各ペア間に存在することを検証するように設定される、ハードウェア内に少なくとも部分的に実装される検証ロジックをさらに備え、前記ネットワークインターフェースロジックが、前記ステータスアップデートに対する返信を受信し、前記検証ロジックが前記暗号化されたセッションの存在を検証するときに、前記返信を前記受信者のグループに伝送するようにさらに設定される、請求項15に記載の装置。
  20. 前記メッセージを受信した後に、前記送信クライアントに関連付けられた送信ユーザアカウントと第3のユーザアカウントとの間の同期関係を確立するように設定される、ハードウェア内に少なくとも部分的に実装される関係ロジックをさらに備え、1つまたは複数のプロセッサが、前記メッセージを前記第3のユーザに関連付けられた第3のデバイスに伝送しないように設定される、請求項15に記載の装置。
  21. 送信クライアントと受信クライアントとの間のエンドツーエンド暗号化セッションのためのセットアップ情報を受信することと、ここで、前記セットアップ情報が、メッセージコンテンツを復号するための第1の暗号化キーに関する情報を含み、
    前記セットアップ情報を前記受信クライアントに伝送することと、
    エフェメラルコンテンツを含むメッセージを受信することと、ここで、前記エフェメラルコンテンツが、暗号化されたメディアおよび前記メディアを復号するための第2のキーと関連付けられ、
    前記エフェメラルコンテンツを前記受信クライアントに伝送することと
    を含むコンピュータ実装方法。
  22. 暗号化された前記エフェメラルコンテンツが、前記メディアのサムネイルおよび前記メディアへのリンクを含む、請求項21に記載の方法。
  23. 前記メッセージの対象とする受信者のリストにアクセスすることと、
    前記対象とする受信者のリストをフィルタリングすることとをさらに含み、前記フィルタリングが、
    前記リストからの送信クライアントアカウントに関連付けられた送信ユーザアカウントと対称関係を有さない受信者を削除すること、
    前記送信ユーザアカウントからのメッセージをブロックする受信者を削除すること、および/または、
    メッセージが前記送信ユーザアカウントによってブロックされる受信者を削除すること、のうちの1つまた複数を含む、請求項21または22に記載の方法。
  24. 前記受信クライアントから前記メッセージに対する返信を受信することと、
    前記メッセージがブロードキャストの部分として伝送されたことを決定することと、
    前記返信を、前記送信クライアントに関連付けられた送信ユーザアカウントと前記受信クライアントに関連付けられた受信ユーザアカウントとの間の1対1の会話の部分として送信することと、をさらに含む、請求項21から23のいずれか一項に記載の方法。
  25. 前記メッセージが、受信者のグループに伝送され、前記方法は、前記メッセージに対する返信を受信することと、暗号化されたセッションが前記グループのメンバの各ペアの間に存在することを検証することと、前記返信を前記受信者のグループに伝送することと、をさらに含む、請求項21から24のいずれか一項に記載の方法。
  26. 前記メッセージを受信した後に、前記送信クライアントに関連付けられた送信ユーザアカウントと第3のユーザアカウントとの間に同期関係を確立することと、
    前記メッセージを前記第3のユーザに関連付けられた第3のデバイスに伝送しないようにすることと、をさらに含む、請求項21から25のいずれか一項に記載の方法。
  27. 前記エフェメラルコンテンツを含む前記メッセージを受信するサーバは、前記暗号化されたメディアにアクセスすることができない、請求項21から26のいずれか一項に記載の方法。
  28. コンピューティングデバイスの1つまたは複数のプロセッサによって実行されるとき、請求項1から7のいずれか一項に記載の方法のすべてのステップを実行させるように設定される命令を記憶する、非一時的コンピュータ可読媒体。
  29. 1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサのうちの1つまたは複数によって実行されるとき、請求項21から27のいずれか一項に記載のすべてのステップを含む方法を前記1つまたは複数のプロセッサに実行させる命令を記憶する非一時的コンピュータ可読媒体と、を備える装置。
  30. 送信クライアントと受信クライアントとの間のエンドツーエンド暗号化セッションのためのセットアップ情報を記憶するように設定される非一時的コンピュータ可読媒体であって、前記セットアップ情報が、メッセージコンテンツを復号するための第1の暗号化キーに関する情報を含む、非一時的コンピュータ可読媒体と、
    前記セットアップ情報を前記受信クライアントに伝送するように設定される、ハードウェア内に少なくとも部分的に実装されるエンドツーエンド暗号化セッションロジックと、
    エフェメラルコンテンツ、暗号化されたメディアに関連付けられたステータスアップデート、および前記メディアを復号するための第2のキーを含むメッセージを受信し、前記メッセージを前記受信クライアントに伝送するように構成される、ハードウェア内に少なくとも部分的に実装されるネットワークインターフェースロジックと、を備える、請求項29に記載の装置。
  31. 前記メッセージの対象とする受信者のリストにアクセスし、前記対象とする受信者のリストをフィルタリングするように設定される、ハードウェア内に少なくとも部分的に実装されるフィルタリングロジックをさらに備え、前記フィルタリングが、
    前記リストからの送信クライアントアカウントに関連付けられた送信ユーザアカウントと対称関係を有さない受信者を削除すること、
    前記送信ユーザアカウントからのメッセージをブロックする受信者を削除すること、または
    メッセージが前記送信ユーザアカウントによってブロックされる受信者を削除すること、のうちの1つまたは複数を含む、請求項29または30に記載の装置。
  32. 前記メッセージがブロードキャストの部分として伝送されたことを決定するように設定される、ハードウェア内に少なくとも部分的に実装される検証ロジックをさらに備え、ネットワークインターフェースロジックが、前記受信クライアントからステータスアップデートに対する返信を受信し、前記返信を、前記送信クライアントに関連付けられた送信ユーザアカウントと前記受信クライアントに関連付けられた受信ユーザアカウントとの間の1対1の会話の部分として送信するようにさらに設定される、請求項29から31のいずれか一項に記載の装置。
  33. 前記メッセージが、受信者のグループに伝送され、前記装置は、暗号化されたセッションが前記グループのメンバの各ペア間に存在することを検証するように設定される、ハードウェア内に少なくとも部分的に実装される検証ロジックをさらに備え、ネットワークインターフェースロジックが、ステータスアップデートに対する返信を受信し、前記検証ロジックが前記暗号化されたセッションの存在を検証するときに、前記返信を前記受信者のグループに伝送するようにさらに設定される、請求項29から32のいずれか一項に記載の装置。
  34. 前記メッセージを受信した後に、前記送信クライアントに関連付けられた送信ユーザアカウントと第3のユーザアカウントとの間の同期関係を確立するように設定される、ハードウェア内に少なくとも部分的に実装される関係ロジックをさらに備え、前記1つまたは複数のプロセッサが、前記メッセージを前記第3のユーザに関連付けられた第3のデバイスに伝送しないように設定される、請求項29から33のいずれか一項に記載の装置。
JP2019544696A 2017-02-17 2017-09-18 エフェメラルコンテンツメッセージを処理するための方法およびシステム Pending JP2020512724A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022119463A JP2022169529A (ja) 2017-02-17 2022-07-27 エフェメラルコンテンツメッセージを処理するための方法およびシステム

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762460136P 2017-02-17 2017-02-17
US62/460,136 2017-02-17
US15/705,999 US10681202B2 (en) 2017-02-17 2017-09-15 Methods and systems for processing an ephemeral content message
US15/705,999 2017-09-15
PCT/US2017/051997 WO2018151758A1 (en) 2017-02-17 2017-09-18 Methods and systems for processing an ephemeral content message

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022119463A Division JP2022169529A (ja) 2017-02-17 2022-07-27 エフェメラルコンテンツメッセージを処理するための方法およびシステム

Publications (1)

Publication Number Publication Date
JP2020512724A true JP2020512724A (ja) 2020-04-23

Family

ID=63167482

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019544696A Pending JP2020512724A (ja) 2017-02-17 2017-09-18 エフェメラルコンテンツメッセージを処理するための方法およびシステム
JP2022119463A Pending JP2022169529A (ja) 2017-02-17 2022-07-27 エフェメラルコンテンツメッセージを処理するための方法およびシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022119463A Pending JP2022169529A (ja) 2017-02-17 2022-07-27 エフェメラルコンテンツメッセージを処理するための方法およびシステム

Country Status (5)

Country Link
US (6) US10582036B2 (ja)
JP (2) JP2020512724A (ja)
KR (3) KR102427983B1 (ja)
CN (2) CN110521172B (ja)
WO (1) WO2018151758A1 (ja)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015188202A2 (en) * 2014-06-02 2015-12-10 Global Data Sciences Inc. Point-to-point secure data store and communication system and method
US9940637B2 (en) 2015-06-05 2018-04-10 Apple Inc. User interface for loyalty accounts and private label accounts
US11580608B2 (en) 2016-06-12 2023-02-14 Apple Inc. Managing contact information for communication applications
USD828371S1 (en) * 2016-10-20 2018-09-11 Google Llc Display screen or portion thereof with graphical user interface
US10582036B2 (en) * 2017-02-17 2020-03-03 Whatsapp Inc. Methods and systems for generating an ephemeral content message
US11252122B2 (en) * 2017-04-10 2022-02-15 Facebook, Inc. Systems and methods for sharing content
USD937292S1 (en) * 2017-04-19 2021-11-30 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US10382372B1 (en) * 2017-04-27 2019-08-13 Snap Inc. Processing media content based on original context
US10581953B1 (en) * 2017-05-31 2020-03-03 Snap Inc. Real-time content integration based on machine learned selections
US10990635B2 (en) * 2017-06-26 2021-04-27 Facebook, Inc. Systems and methods for ranking ephemeral content associated with a social networking system
US11023429B2 (en) * 2017-07-12 2021-06-01 Facebook, Inc. Methods and systems for associating content with conversation tuples
US11122094B2 (en) 2017-07-28 2021-09-14 Snap Inc. Software application manager for messaging applications
US11323398B1 (en) * 2017-07-31 2022-05-03 Snap Inc. Systems, devices, and methods for progressive attachments
US10754996B2 (en) * 2017-09-15 2020-08-25 Paypal, Inc. Providing privacy protection for data capturing devices
CA3080156A1 (en) * 2017-10-24 2019-05-02 Allen Ivester Package delivery with message management
US10728352B2 (en) * 2017-10-27 2020-07-28 Facebook, Inc. Managing digital forums and networking groups utilizing a group activity indicator
US10873558B2 (en) 2017-12-14 2020-12-22 Facebook, Inc. Systems and methods for sharing content
US11303601B2 (en) 2017-12-14 2022-04-12 Meta Platforms, Inc. Systems and methods for sharing content
US10805367B2 (en) * 2017-12-29 2020-10-13 Facebook, Inc. Systems and methods for sharing content
US10587397B2 (en) * 2018-02-13 2020-03-10 Seagate Technology Llc Storage medium enterprise and block chain enabled communication
US10764221B1 (en) * 2018-03-13 2020-09-01 Facebook, Inc. Systems and methods for sharing content
DK180078B1 (en) 2018-05-07 2020-03-31 Apple Inc. USER INTERFACE FOR AVATAR CREATION
US11431725B2 (en) * 2020-09-23 2022-08-30 BabelWorks AI, Inc. Systems and methods for dynamic network pairings to enable end-to-end communications between electronic devices
US11012403B1 (en) * 2018-09-04 2021-05-18 Facebook, Inc. Storylines: collaborative feedback system
US20200097914A1 (en) * 2018-09-23 2020-03-26 Microsoft Technology Licensing, Llc Contextual User Interface Notifications
US10895964B1 (en) * 2018-09-25 2021-01-19 Snap Inc. Interface to display shared user groups
US10666584B2 (en) * 2018-10-06 2020-05-26 Jiazheng Shi Method and system for protecting messenger identity
CN109361679A (zh) * 2018-11-08 2019-02-19 蓝信移动(北京)科技有限公司 消息监管方法和系统以及密钥服务器
WO2020096087A1 (ko) * 2018-11-09 2020-05-14 라인플러스 주식회사 메시지 그룹 관리를 위한 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
CA3124259A1 (en) * 2018-12-18 2020-06-25 Qaqaq Inc. Asynchronous short video communication platform based on animated still images and audio
US10817317B2 (en) 2019-01-24 2020-10-27 Snap Inc. Interactive informational interface
US10412063B1 (en) 2019-02-05 2019-09-10 Qrypt, Inc. End-to-end double-ratchet encryption with epoch key exchange
US11146675B1 (en) 2019-02-18 2021-10-12 State Farm Mutual Automobile Insurance Company System and user interface having push-to-talk, outbound dialer, and messaging functions with recipients identified using a proxy alias
US11431664B2 (en) 2019-02-18 2022-08-30 State Farm Mutual Automobile Insurance Company Outbound dialer and messaging system and user interface for group messaging
US11082213B2 (en) * 2019-02-28 2021-08-03 General Electric Technology Gmbh Switching authentication and encryption of content between keys based on a key availability assurance value
CN110096665B (zh) * 2019-04-28 2022-03-04 北京字节跳动网络技术有限公司 图片类评论数据的展示方法、装置、设备及介质
KR20230174281A (ko) * 2019-05-06 2023-12-27 애플 인크. 다수의 애플리케이션들과의 아바타 통합
US11405347B1 (en) * 2019-05-31 2022-08-02 Meta Platforms, Inc. Systems and methods for providing game-related content
USD976266S1 (en) 2019-06-18 2023-01-24 Meta Platforms, Inc. Display screen or portion thereof with a graphical user interface
US11206232B2 (en) * 2019-06-18 2021-12-21 Facebook, Inc. Generating and maintaining group messaging threads for ephemeral content
US20200412975A1 (en) * 2019-06-28 2020-12-31 Snap Inc. Content capture with audio input feedback
US11134036B2 (en) 2019-07-05 2021-09-28 Snap Inc. Event planning in a content sharing platform
US11646983B1 (en) 2019-07-16 2023-05-09 Whatsapp Llc Methods and systems for transmitting an image with thumbnail data
US11178079B1 (en) * 2019-07-16 2021-11-16 Whatsapp Llc Methods and systems for transmitting an image with thumbnail data
US11425205B1 (en) * 2019-07-16 2022-08-23 Whatsapp Inc. Methods and systems for transmitting an image in chunks
CN110995775B (zh) * 2019-10-11 2020-12-01 浙江口碑网络技术有限公司 一种业务数据处理方法、装置以及系统
US11106863B1 (en) * 2019-12-30 2021-08-31 Snap Inc. User-specified replacement of terms in messaging
CN111600847A (zh) * 2020-04-22 2020-08-28 维沃移动通信有限公司 信息处理方法及电子设备
US11700225B2 (en) * 2020-04-23 2023-07-11 Snap Inc. Event overlay invite messaging system
JP2021190966A (ja) * 2020-06-04 2021-12-13 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US11356392B2 (en) 2020-06-10 2022-06-07 Snap Inc. Messaging system including an external-resource dock and drawer
US11539647B1 (en) * 2020-06-17 2022-12-27 Meta Platforms, Inc. Message thread media gallery
US11140240B1 (en) * 2020-07-14 2021-10-05 Facebook, Inc. Generating a dynamic dependent client device activity dashboard and managing contact-control privileges via managing client device interfaces
US11115363B1 (en) * 2020-09-02 2021-09-07 Whatsapp Llc Utilizing encrypted ephemeral messages to modify ephemeral message duration settings
CN114244955B (zh) * 2020-09-08 2022-12-30 华为技术有限公司 服务的分享方法、系统、电子设备及计算机可读存储介质
US20220100351A1 (en) * 2020-09-30 2022-03-31 Snap Inc. Media content transmission and management
WO2022178632A1 (en) * 2021-02-25 2022-09-01 9337-0286 Quebec Inc. (Auger Groupe Conseil) Systems and methods for virtual interaction
IT202100006311A1 (it) * 2021-03-18 2022-09-18 Leopizzi Srl Sistema di messaggistica e individuazione di utenti vicini tra loro anche in assenza di connessione internet.
CN112866303B (zh) * 2021-04-25 2021-07-20 武汉中科通达高新技术股份有限公司 一种级联媒体传输链路管理方法及装置
CN113128896B (zh) * 2021-04-29 2023-07-18 重庆文理学院 基于物联网的智慧车间管理系统及方法
US11528601B1 (en) 2021-06-09 2022-12-13 T-Mobile Usa, Inc. Determining and ameliorating wireless telecommunication network functionalities that are impaired when using end-to-end encryption
WO2022272155A1 (en) * 2021-06-25 2022-12-29 Whatsapp, Llc End-to-end encrypted application state sharing
US11973730B2 (en) 2022-06-02 2024-04-30 Snap Inc. External messaging function for an interaction system
US20230421525A1 (en) * 2022-06-22 2023-12-28 Whatsapp Llc Facilitating pausing while recording audio and/or visual messages in social media messaging applications
US20240004517A1 (en) * 2022-06-30 2024-01-04 Snap Inc. Messaging application with conversation filtering
US12015581B1 (en) * 2023-07-13 2024-06-18 Kyndryl, Inc. Selectively exclude recipients from an end-to-end encryption enabled group chat

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120072856A1 (en) * 2010-09-20 2012-03-22 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving an integrated message using portable device
US20160205169A1 (en) * 2015-01-13 2016-07-14 Whatsapp Inc. Techniques for managing a remote web client from an application on a mobile device

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US6331865B1 (en) 1998-10-16 2001-12-18 Softbook Press, Inc. Method and apparatus for electronically distributing and viewing digital contents
FI112903B (fi) 2000-12-05 2004-01-30 Nokia Corp Menetelmä, järjestelmä ja jakosolmu sanomien jakamiseksi
US6938065B2 (en) * 2000-12-12 2005-08-30 Ericsson Inc. System and method for controlling inclusion of email content
GB2370136B (en) * 2001-05-17 2002-11-06 Uzee Ltd Server based document distribution
US7016499B2 (en) * 2001-06-13 2006-03-21 Sun Microsystems, Inc. Secure ephemeral decryptability
JP2004102547A (ja) 2002-09-06 2004-04-02 Nec Corp コミュニケーションシステム、コミュニケーションサーバ、及び、コミュニケーション方法
US7590696B1 (en) * 2002-11-18 2009-09-15 Aol Llc Enhanced buddy list using mobile device identifiers
US7949759B2 (en) 2003-04-02 2011-05-24 AOL, Inc. Degrees of separation for handling communications
US7409545B2 (en) 2003-09-18 2008-08-05 Sun Microsystems, Inc. Ephemeral decryption utilizing binding functions
US7660904B2 (en) 2004-05-11 2010-02-09 Microsoft Corporation Providing keys to share data within an instant messaging session
US7716479B2 (en) * 2005-06-03 2010-05-11 Microsoft Corporation Dynamically resolving recipients to retrieve public keys during send/receive
US20070008108A1 (en) * 2005-07-07 2007-01-11 Schurig Alma K Unsynchronized beacon location system and method
WO2007089274A2 (en) * 2005-07-29 2007-08-09 Cataphora, Inc. An improved method and apparatus for sociological data analysis
FR2902585B1 (fr) * 2006-06-14 2008-09-26 Viaccess Sa Procedes de diffusion et de reception d'un programme multimedia embrouille, tete de reseau, terminal, recepteur et processeur de securite pour ces procedes
US20080183822A1 (en) * 2007-01-25 2008-07-31 Yigang Cai Excluding a group member from receiving an electronic message addressed to a group alias address
US9268735B2 (en) 2008-09-30 2016-02-23 Oracle America, Inc. Loadable and modular conditional access application
US8082115B2 (en) * 2009-11-16 2011-12-20 Nrg Systems, Inc. Data acquisition system for condition-based maintenance
US8433764B2 (en) * 2010-02-09 2013-04-30 Google Inc. Identification of message recipients
US8984051B2 (en) * 2011-07-26 2015-03-17 Salesforce.Com, Inc. Computer implemented methods and apparatus for communicating feed information to one or more recipients
US9641480B2 (en) * 2012-02-05 2017-05-02 Apple Inc. Automated participant account determination for a communication session
US8707454B1 (en) * 2012-07-16 2014-04-22 Wickr Inc. Multi party messaging
US8964947B1 (en) 2013-03-11 2015-02-24 Amazon Technologies, Inc. Approaches for sharing data between electronic devices
US9143906B2 (en) * 2013-03-15 2015-09-22 Google Inc. Premium messaging challenges
US9264463B2 (en) 2013-03-15 2016-02-16 Facebook, Inc. Method and system of managing ephemeral post in a social networking system
KR101495257B1 (ko) 2013-04-18 2015-02-25 주식회사 팬택 단말 아이콘 제어 방법 및 장치
ES2594455T3 (es) * 2013-07-02 2016-12-20 Symborg, S.L. Cepa de Glomus iranicum var. tenuihypharum var. nov y su uso como bioestimulante
US8914752B1 (en) * 2013-08-22 2014-12-16 Snapchat, Inc. Apparatus and method for accelerated display of ephemeral messages
US20150100670A1 (en) 2013-10-04 2015-04-09 International Business Machines Corporation Transporting multi-destination networking traffic by sending repetitive unicast
US9083770B1 (en) * 2013-11-26 2015-07-14 Snapchat, Inc. Method and system for integrating real time communication features in applications
KR20150066129A (ko) 2013-12-06 2015-06-16 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
US8909725B1 (en) 2014-03-07 2014-12-09 Snapchat, Inc. Content delivery network for ephemeral objects
WO2015157720A2 (en) 2014-04-11 2015-10-15 Oscar Tango Papa Llc Methods and apparatus for implementing a communications system secured using one-time pads
US20160042404A1 (en) * 2014-08-05 2016-02-11 Vellum Tech Corporation Ephemeral message communication from a sender to a recipient using a multimedia data routed through a server
US9595031B1 (en) * 2014-08-20 2017-03-14 Square, Inc. Payment via a messaging application
WO2016033333A1 (en) 2014-08-27 2016-03-03 Contentguard Holdings, Inc. Multi-mode protected content wrapper
US10061914B2 (en) 2014-11-14 2018-08-28 Mcafee, Llc Account recovery protocol
US9948625B2 (en) * 2015-01-07 2018-04-17 Cyph, Inc. Encrypted group communication method
US11627639B2 (en) * 2015-01-26 2023-04-11 Ievgen Verzun Methods and apparatus for HyperSecure last mile communication
US9313154B1 (en) 2015-03-25 2016-04-12 Snapchat, Inc. Message queues for rapid re-hosting of client devices
EP3082355A1 (en) 2015-04-17 2016-10-19 Gemalto Sa A method for controlling remotely the permissions and rights of a target secure element
US9432340B1 (en) 2015-05-07 2016-08-30 Bogart Associates System and method for secure end-to-end chat system
EP3101862A1 (en) * 2015-06-02 2016-12-07 Gemalto Sa Method for managing a secure channel between a server and a secure element
US10122774B2 (en) 2015-06-29 2018-11-06 Microsoft Technology Licensing, Llc Ephemeral interaction system
WO2017004466A1 (en) * 2015-06-30 2017-01-05 Visa International Service Association Confidential authentication and provisioning
US10237220B2 (en) 2015-07-24 2019-03-19 Facebook, Inc. Techniques to promote filtered messages based on historical reply rate
US10320794B2 (en) 2015-07-29 2019-06-11 Microsoft Technology Licensing, Llc System for sharing selectively ephemeral content
WO2017024135A1 (en) * 2015-08-05 2017-02-09 Boston Scientific Scimed, Inc. Smart device for bladder mapping
US10419444B2 (en) * 2015-08-24 2019-09-17 Cyberlink Corp. Systems and methods for protecting messages utilizing a hidden restriction mechanism
US10157333B1 (en) * 2015-09-15 2018-12-18 Snap Inc. Systems and methods for content tagging
US10440026B2 (en) 2015-11-24 2019-10-08 Facebook, Inc. Systems and methods for providing public ephemeral media content without requiring subscription
US10623515B2 (en) * 2015-12-01 2020-04-14 Fastly, Inc. Stenographic marking using network addressing
US10949349B2 (en) * 2015-12-01 2021-03-16 Fastly, Inc. Anonymized network addressing in content delivery networks
US9913114B1 (en) * 2015-12-15 2018-03-06 Snap Inc. Simplified message grouping and display
US10129197B2 (en) * 2015-12-31 2018-11-13 Oath Inc. Computerized system and method for modifying a message to apply security features to the message's content
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
US11256768B2 (en) * 2016-08-01 2022-02-22 Facebook, Inc. Systems and methods to manage media content items
US11057196B2 (en) * 2016-09-08 2021-07-06 Hewlett-Packard Development Company, L.P. Establishing shared key data for wireless pairing
US10516749B1 (en) 2016-10-07 2019-12-24 Snap Inc. Mobile device content navigation
CN113206959B (zh) 2016-11-01 2024-01-09 斯纳普公司 用于确定自动包围配置的方法和服务器
US10609554B2 (en) * 2016-11-29 2020-03-31 PlaceIQ, Inc. System and method to collect device location context without the collection of raw, detailed location data at scale
US10341304B1 (en) 2017-01-04 2019-07-02 Snap Inc. Device independent encrypted content access system
US20180219812A1 (en) 2017-02-01 2018-08-02 Damion Delanno Hanson Mobile app messaging platform system
US10582036B2 (en) * 2017-02-17 2020-03-03 Whatsapp Inc. Methods and systems for generating an ephemeral content message
US11157134B2 (en) 2017-07-12 2021-10-26 Facebook, Inc. Interfaces for a messaging inbox
US10375019B2 (en) * 2017-10-06 2019-08-06 Stealthpath, Inc. Methods for internet communication security

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120072856A1 (en) * 2010-09-20 2012-03-22 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving an integrated message using portable device
JP2014501046A (ja) * 2010-09-20 2014-01-16 サムスン エレクトロニクス カンパニー リミテッド 携帯端末機を用いた統合メッセージ送受信方法及び装置
US20160205169A1 (en) * 2015-01-13 2016-07-14 Whatsapp Inc. Techniques for managing a remote web client from an application on a mobile device
JP2018511844A (ja) * 2015-01-13 2018-04-26 ワッツアップ・インコーポレイテッドWhatsapp Inc. モバイル・デバイス上のアプリケーションからリモート・ウェブ・クライアントを扱うための技法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WHATSAPP ENCRYPTION OVERVIEW, JPN6021028916, 17 November 2016 (2016-11-17), pages 1 - 9, ISSN: 0004562132 *

Also Published As

Publication number Publication date
KR102480096B1 (ko) 2022-12-23
KR20220063295A (ko) 2022-05-17
KR20220066181A (ko) 2022-05-23
JP2022169529A (ja) 2022-11-09
US10778831B2 (en) 2020-09-15
KR20190109768A (ko) 2019-09-26
CN114465782A (zh) 2022-05-10
CN110521172B (zh) 2022-02-25
US20180241707A1 (en) 2018-08-23
WO2018151758A1 (en) 2018-08-23
US11882231B1 (en) 2024-01-23
KR102427983B1 (ko) 2022-08-02
KR102396947B1 (ko) 2022-05-13
CN110521172A (zh) 2019-11-29
US11265413B1 (en) 2022-03-01
US10582036B2 (en) 2020-03-03
US11316965B1 (en) 2022-04-26
US20180241705A1 (en) 2018-08-23
US10681202B2 (en) 2020-06-09
US20180241871A1 (en) 2018-08-23

Similar Documents

Publication Publication Date Title
US11882231B1 (en) Methods and systems for processing an ephemeral content message
CN112422291B (zh) 基于零知识环境的社交网络引擎
JP6060310B2 (ja) ソーシャルネットワークを通じて維持される無線データのプライバシー
US11658952B1 (en) Methods and systems for transmitting anonymized information
EP3364330B1 (en) Methods and systems for processing an ephemeral content message
US20180026929A1 (en) Methods and systems for connecting messaging accounts
US20220043559A1 (en) Interfaces for a messaging inbox
US10904481B1 (en) Broadcasting and managing call participation
US20180183748A1 (en) Access Controls for Units of Content in a Messaging Service
JP2020526991A (ja) マルチエージェントメッセージングのための技法
EP4027257A1 (en) Methods and systems for end-to-end encrypted message history exchange
US20230269209A1 (en) Systems and methods for opt-in messaging
US20230367747A1 (en) Methods and systems for associating content with conversation tuples

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220329