KR102396947B1 - 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들 - Google Patents

임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들 Download PDF

Info

Publication number
KR102396947B1
KR102396947B1 KR1020197026199A KR20197026199A KR102396947B1 KR 102396947 B1 KR102396947 B1 KR 102396947B1 KR 1020197026199 A KR1020197026199 A KR 1020197026199A KR 20197026199 A KR20197026199 A KR 20197026199A KR 102396947 B1 KR102396947 B1 KR 102396947B1
Authority
KR
South Korea
Prior art keywords
message
user
content
media
client
Prior art date
Application number
KR1020197026199A
Other languages
English (en)
Other versions
KR20190109768A (ko
Inventor
랜달 사라파
유진 푸크스맨
브라이언 액톤
얀 쿰
마이클 비. 도나휴
에렌 앤드류 크렛
Original Assignee
왓츠앱, 엘엘씨.
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 왓츠앱, 엘엘씨. filed Critical 왓츠앱, 엘엘씨.
Priority to KR1020227014991A priority Critical patent/KR102427983B1/ko
Priority to KR1020227015384A priority patent/KR102480096B1/ko
Publication of KR20190109768A publication Critical patent/KR20190109768A/ko
Application granted granted Critical
Publication of KR102396947B1 publication Critical patent/KR102396947B1/ko

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/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/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
    • 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
    • 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
    • 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/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
    • 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 키를 변경할 수 있다.

Description

임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들
본 출원은 2017년 9월 15일자로 제출되고 발명의 명칭이 "Methods and Systems for Processing an Ephemeral Content Message"인 미국 특허 출원 제15/705,999호에 대한 우선권을 주장하고, 2017년 2월 17일자로 제출되고 발명의 명칭이 "Methods and Systems for Processing an Ephemeral Content Message"인 미국 가 출원 제62/460,136호에 대한 우선권을 주장한다. 상기 언급된 출원들에 대한 내용은 본원에 참조로 포함된다.
통신 서비스들, 메시징 서비스들 및 소셜 네트워킹 서비스들과 같은 일부 서비스들은 사용자로 하여금 다른 사용자들과 메시지들을 교환하는 것을 허용한다. 업데이트 메시지들과 같은 일부 메시지들은 발신 사용자(예를 들어, 발신 사용자의 연락처 또는 일반 대중)로부터 통신을 볼 수 있는 서비스의 사용자들에게 브로드 캐스트될 수 있다.
예시적인 실시예들은 임시 컨텐츠 메시지들을 통해 임시 컨텐츠를 생성, 처리, 및 디스플레이하기 위한 기술들에 관한 것이다. 임시 컨텐츠 메시지들은 예를 들어, 임시 컨텐츠가 포함된 메시지들일 수 있다. 임시 컨텐츠는 오직 제한된 기간 동안만 또는 제한된 조건 하에서만 액세스할 수 있도록 구성된 컨텐츠를 포함한다. 임시 컨텐츠가 만료될 때, 컨텐츠는 삭제될 수 있거나 액세스할 수 없게 된다.
임시 컨텐츠와 관련하여 설명되었지만, 설명된 필터링 및 순위 기술들과 같은, 본원에 설명된 일부 기술들은 임시 또는 비-임시 컨텐츠와 관련하여 사용될 수 있다.
임시 컨텐츠 메시지들과 관련하여, 현재 메시징 기술들에는 여러 가지 문제들이 있다. 예를 들어, 종래의 메시지에 포함시키기 위해 컨텐츠가 선택되거나 생성되는 방식은 지나치게 복잡할 수 있다; 컨텐츠의 유형에 따라, 그리고 컨텐츠가 생성되는 방식에 따라, 사용자는 다른 방식들로 통신 서비스의 다른 사용자에게 컨텐츠를 전송하도록 입력할 수 있다. 일 예시에서, 사용자는 그림-기반 메시지와 다른 방식으로 텍스트-기반 메시지를 생성할 수 있다. 카테고리 내에서도 진입 지점들이 다를 수 있다. 다른 예시에서, 사용자는 이전에 캡처된 사진을 선택할 때 하나의 방식으로, 메시지에 대한 새로운 사진을 캡처하고자 할 때 다른 방식으로 사진-기반 메시지를 생성할 수 있다.
일부 통신 시스템들은 또한 사용자들이 컨텐츠를 포함한 메시지에 응답하는 것을 허용할 수 있다. 응답이 구현될 수 있는 한 가지 방법은 응답을 다수의 사용자들 사이의 기존 대화에 첨부하거나 임시 컨텐츠에 응답하여 지정된 사용자들의 그룹을 갖는 새로운 대화를 시작하는 것이다. 그러나, 응답 사용자는 원본 메시지가 전송된 전체 수신자 리스트에 대해 특권이 없을 수 있으므로, 이러한 기술들은 초기 메시지 송신을 수신하지 않은 추가 사용자들에게 응답들이 전송되도록 할 수 있다. 그러한 행동은 원본 컨텐츠-기반 메시지를 전송하는 사람의 관점에서 바람직하지 않을 수 있고, 그 이유는 그 사람이 메시지에서 특정 사람들을 제외하거나 메시지를 잘-정의된 그룹으로 제한하기를 원할 수 있기 때문이다.
또한, 컨텐츠-기반 메시지들이 사용자들에게 브로드캐스트되는 방식으로 인해, 프라이버시를 유지하기가 어려울 수 있다. 예를 들어, 컨텐츠-기반 메시지가 브로드캐스트되면, 컨텐츠-기반 메시지는 전형적으로 브로드캐스팅을 처리하기 위해 중간 서버에 송신된다. 바람직하게는(프라이버시의 관점에서), 컨텐츠-기반 메시지의 발신자 및 수신자만이 메시지의 컨텐츠를 검사할 수 있을 것이다. 그러나, 브로드캐스트 메시지가 수신 클라이언트들로의 송신을 위해 서버로 전송될 때, 브로드캐스트 서버가 발신 사용자가 차단으로부터 안전하기를 원하는 정보를 공개하지 않고 메시지를 전송하는 것을 허용하기에 충분한 정보를 브로드캐스트 서버에 제공하는 것이 어려울 수 있다.
또한, 통신 시스템은 스팸 또는 원치 않는 메시지들을 줄이기 위해 다른 접근법들을 취할 수 있다. 예를 들어, 소셜 네트워크에서, 임시 컨텐츠는 발신 사용자(예를 들어, 발신 사용자의 친구들)와 정의된 관계를 갖는 사용자들에게 전송될 수 있다. 그러나, 모든 메시징 서비스들 또는 소셜 네트워킹 서비스들은 관계들 또는 우정의 개념을 통합하는 것은 아니다. 예를 들어, 간단한 메시지 서비스(SMS: Simple Message Service) 기반 시스템, 또는 다른 유형의 연락처-기반 메시징 서비스는, 사용자가 수신자의 전화 번호를 기반으로 임의의 다른 수신자에게 메시지를 전송하는 것을 허용할 수 있다. 이러한 예시들에서, 사용자들 간에 정의된 관계가 존재하지 않을 수 있다.
정의된 관계들을 포함하는 시스템에서, 시스템은 사용자들이 관계가 있는 경우에만 사용자들이 서로 통신하는 것을 (또는 선호되는 형식으로 서로 통신하는 것을) 허용함으로써 스팸 통신을 피할 수 있다. 예를 들어, 한 사람은 자신의 친구들의 컨텐츠-기반 메시지들만 볼 수 있다. 정의된 우정 개념에 의존하지 않는 통신 시스템에서는 이것은 가능하지 않을 수 있다.
임시 컨텐츠 기능들을 제공하는 통신 시스템들의 또 다른 문제는 그러한 시스템들의 인터페이스들이 혼란스러워 질 수 있고, 다른 유형의 메시지들에서 임시 컨텐츠 메시지들을 식별하기가 어렵다는 것이다. 예를 들어, 사용자들이 게시물들을 제출하는 것을 허용하는 통신 시스템에서, 임시 컨텐츠가 게시물들 사이에 디스플레이될 수 있다. 유사하게, 메시징-기반 시스템에서, 임시 컨텐츠는 메시지들 사이에 디스플레이될 수 있다. 그러나, 임시 컨텐츠가 일반적으로 게시물들이나 메시지들과 비교하여 다른 종류의 정보를 전달하는 데 사용되므로 그들의 연락처의 임시 컨텐츠를 확인하려는 사용자는 그들의 연락처의 임시 컨텐츠를 보기 위해 많은 수의 게시물들이나 메시지들을 살펴보기를 원하지 않을 수 있다.
유사하게, 임시 컨텐츠가 메시지들과 혼합될 때, 임시 컨텐츠를 디스플레이하기 위한 하나의 간단한 기술은 각 개별 메시지/임시 컨텐츠의 단위가 수신된 순서대로 메시지들 사이에 배치하는 것이다. 연대순으로 메시지를 작성하는 것이 의미가 있을 수 있지만, 사용자들은 다른 사람들(예를 들어, 일반 지인이 아닌 가족이나 가까운 친구)과 비교하여 특정 임시 컨텐츠에 더 관심이 있는 경우가 많다. 따라서, 임시 컨텐츠의 순전히 연대순은 임시 컨텐츠의 특히 유용한 디스플레이를 생성하지 않을 수 있다.
또한, 임시 컨텐츠 메시지가 미디어(예를 들어, 사진, 비디오 등)를 포함하는 경우, 수신 사용자가 종단 간 암호화를 유지하면서 미디어에 액세스할 수 있게 하는 것이 어려울 수 있다. 또한, 임시 컨텐츠 메시지들은 비교적 많은 사람들에게 브로드캐스트될 수 있다. 일부 임시 모델들에서, 임시 컨텐츠는 상이한 수신자들에 따라 다른 시간에 만료될 수 있다. 임시 컨텐츠가 아직 만료되지 않은 일부 사용자들이 임시 컨텐츠를 사용하는 것이 어려울 수 있고, 임시 컨텐츠가 만료된 다른 사용자들이 컨텐츠를 사용할 수 없게 만들 수 있다.
임시 컨텐츠를 제공하는 통신 시스템들에서 발생할 수 있는 또 다른 문제는 이전에 송신된 임시 컨텐츠에 대한 프라이버시를 유지 관리하는 문제이다. 일부 시스템들에서, 사용자들은 다른 사용자들에 대한 업데이트들을 수신하는 동작을 수행한다. 예를 들어, 소셜 네트워킹 서비스에서, 한 사용자는 사용자의 상태들을 보기 위해 다른 사용자와 친구가 될 수 있거나, 사용자를 팔로우할 수 있다. 이러한 구성은 팔로우 모델(follow model)이라고 지칭된다.
팔로우 모델에서, 새로운 사용자에 의해 팔로우되기 전에 발신 사용자가 제출한 임시 컨텐츠는 새로운 사용자가 발신 사용자를 팔로우할 때 새로운 사용자에게 보일 수 있다. 즉, 두 명의 사용자들이 연결되기 전에 전송된 임시 컨텐츠는 연결이 이루어진 후 보일 수 있다. 이러한 동작은 그들의 이전 임시 컨텐츠를 새로운 팔로워들로부터 비공개로 유지하기를 원할 수 있는 일부 사용자들에게 바람직하지 않을 수 있다.
팔로우 모델은 또한 임시 컨텐츠 메시지들의 종단 간 암호화를 유지하는 데 문제를 야기할 수 있다. 임시 컨텐츠 메시지들을 암호화하는 데 사용되는 많은 매개 변수들(예를 들어, 메시지 키)은 메시지가 전송될 때 결정되므로, 임시 컨텐츠 메시지를 나중에 새로운 팔로워들이 사용할 수 있게 되면 강력한 암호화를 유지하는 것이 가능하지 않을 수 있다. 암호화가 유지되려면, 통신 시스템의 오버헤드에 추가하여 새로운 암호화 세션들이 사후에 생성될 필요가 있을 수 있다.
이들 및 다른 문제들을 해결하기 위해, 예시적인 실시예들은 통신 또는 메시징 서비스를 위해 임시 컨텐츠 메시지들을 전송하기 위한 새로운 기술들을 제공한다.
컨텐츠(예를 들어, 임시 컨텐츠)를 포함하는 메시지를 초기에 생성하고 이전에 전송된 임시 컨텐츠 메시지들에 응답하기 위해 간소화된 진입 지점들이 제공된다. 초기 진입 지점들은 컨텐츠 유형이나 컨텐츠가 원래 생성된 방식에 관계없이 명확하게 정의된 제한된 수의 사용 사례에 중점을 둔다.
미디어가 초기에 캡처되는 방식에 관계없이 두 가지 명확하고 간소화된 사용 사례를 통해 임시 컨텐츠 메시지 기능에 대한 초기 진입이 제공될 수 있다. 시스템은 사용자에게 임시 컨텐츠 메시지에서 미디어를 공유하거나 대화 또는 채팅과 같은 비-임시 컨텐츠 메시지에서 미디어를 공유하는 옵션을 사용자에게 제공할 수 있다. 따라서, 생성된 미디어 유형에 기초하여 적절한 진입 지점을 식별하는 문제가 완화된다. 사진 및 GIF, 비디오, 날씨 보고서, 뉴스, 텍스트, 태그, PTT 또는 음성 메시지 등과 같은 이미지들을 포함하는 다양한 유형의 미디어들이 임시 컨텐츠로 사용될 수 있다.
임시 컨텐츠는 종단 간 암호화를 유지하기 위해 메시지로서 전송될 수 있다. 본원에 설명된 다양한 양상들은 메시지로서 임시 컨텐츠의 캡슐화를 용이하게 하고, 효율적이지만 여전히 발신 사용자의 프라이버시를 보존하는 방식으로 메시지와 관련하여 미디어를 공유하기 위한 기술들을 더 제공한다.
사용자가 임시 컨텐츠에 응답할 때, 상기 응답은 발신하는 사용자와 응답하는 사용자 사이의 일대일 채팅을 트리거할 수 있다. 따라서, 원래의 발신 사용자의 프라이버시가 유지된다. 대안으로, 임시 컨텐츠는 (사용자의 전체 연락처 리스트 대신) 그룹으로 초기에 전송될 수 있고, 응답들은 그룹으로 다시 전송될 수 있다. 이러한 실시예는 발신 사용자가 임시 컨텐츠 메시지를 공유하기로 선택한 원래의 그룹 멤버들만이 대화에 포함되기 때문에 발신 사용자의 프라이버시를 계속 유지한다. 그룹 통신을 용이하게하기 위해, 서버는 그룹의 멤버십을 검사하고 그룹의 각 멤버 사이에 암호화된 세션이 존재하는지 확인할 수 있다.
전술한 실시예들과 관련하여 사용될 수 있는 추가 실시예들은 통신 네트워크를 통해 임시 컨텐츠 메시지를 전송하기 위한 절차에 관한 것이다.
초기에, 발신 클라이언트는 임시 컨텐츠의 가능한 수신자(예를 들어, 사용자의 연락처 리스트, 또는 선택된 그룹)와 종단 간 암호화 세션을 확립할 수 있고, 초기 설정 동안 제 1 키를 제공할 수 있다. 클라이언트는 암호화된 세션을 사용하여 서버를 통해 수신자들에게 메시지를 전송한다. 메시지는 미디어 아이템의 썸네일 및 미디어 아이템에 대한 링크 또는 포인터일 수 있는 암호화된 컨텐츠를 포함하고, 미디어 아이템을 해독하기 위한 제 2 키를 포함한다.
수신자는 제 1 키를 사용하여 컨텐츠를 해독하고, 메시지에서 제 2 키를 검색하고, 제 2 키를 사용하여 암호화된 컨텐츠를 해독한다. 서버(또는 외부 사용자)가 암호화된 세션의 초기 설정 동안 전송된 제 1 키를 갖지 않기 때문에, 서버(또는 외부 사용자)는 메시지의 암호화된 부분을 검색할 수 없다(그러므로, 서버 또는 외부 사용자는 컨텐츠를 해독하는 제 2 키를 검색할 수 없다).
서버는 발신 사용자로부터 의도된 수신자 리스트를 수신하고, 스팸 또는 원치 않는 메시지들을 줄이기 위해 리스트를 필터링할 수 있다. 예를 들어, 서버는 발신자와 대칭 관계가 없는 사용자들, 또는 발신자가 차단하거나 발신자에 의해 차단된 임의의 사용자들을 필터링한다. 서버는 대칭을 기반으로 잠재적인 수신자를 필터링하므로, 원치 않는 메시지들을 줄이기 위해 우정 개념이나 사용자 간에 정의된 관계가 필요하지 않다.
발신 클라이언트는 수신자 리스트가 클라이언트의 관점에서 변경될 때마다 제 2 키를 순환시킬 수 있다. 이 결정은 임시 컨텐츠가 전송될 때 이루어지고; 일부 실시예들에서, 새로운 대칭 관계가 생성될 때 (예를 들어, 발신자의 연락처 리스트의 사용자가 임시 컨텐츠의 송신 이후 그들 자신의 연락처 리스트에 발신자를 추가할 때) 임시 컨텐츠는 재전송되지 않는다.
임시 컨텐츠가 발신자에 의해 잠재적인 수신자들에게 보내지고, 새로운 연락처는 이전의 임시 컨텐츠를 검색하거나 액세스하지 않기 때문에, 예시적인 실시예들은 전술한 팔로우 모델보다는 임시 컨텐츠를 공유하는 지시된 모델을 구현할 수 있다. 따라서, 발신 사용자들은 그들의 임시 컨텐츠를 보는 사람과 시기를 더 잘 제어할 수 있다.
전술한 실시예들과 관련하여 사용될 수 있는 추가 실시예들은 임시 컨텐츠를 디스플레이하고 상호 작용하는 기술들에 관한 것이다.
임시 컨텐츠가 (암호화를 유지하기 위해) 메시지로서 송신되지만, 메시지는 임시 컨텐츠로 지정하는 플래그로 태그될 수 있다. 수신자 클라이언트는 플래그가 있을 때 메시지 내용을 일반 메시지 대신 임시 컨텐츠로 표시하는 것을 알고 있다.
컨텐츠의 비영리성은 미디어 아이템의 썸네일 및 서버에 저장된 미디어 아이템에 대한 링크 또는 포인터로 임시 컨텐츠 메시지를 패키징함으로써 구현될 수 있다. 임시 컨텐츠가 만료되면 (예를 들어, 24시간 후, 1 또는 2회 본 후, 등) 썸네일은 메시징 기록에 남아 있지만, 링크는 비활성화될 수 있다. 링크가 활성화되어있는 동안, 사용자는 임시 컨텐츠의 전체 화면 프리젠테이션으로 가기 위해 링크를 선택할 수 있다.
다른 미디어 유형들은 전체 화면 프리젠테이션들의 다른 유형들과 연관될 수 있다. 예를 들어, 위치 업데이트는 태그된 위치를 나타내는 지도 데이터를 갖는 이미지를 가져올 수 있다.
임시 컨텐츠가 만료되면, 링크가 비활성화될 수 있다. 비활성 링크에 액세스하려는 사용자는 미디어 아이템에 액세스하지 못할 수 있다. 그럼에도 불구하고, 미디어 아이템은 계속 서버에 상주하며 링크가 활성 상태인 사용자들을 계속 사용할 수 있다. 따라서, 다른 시간에 다른 사용자들에 대해 링크가 비활성화될 수 있다.
임시 컨텐츠는 비-임시 컨텐츠와 비교하여 별도의 탭에서 UI에 제공될 수 있다. 다른 사용자들로부터 디스플레이된 임시 컨텐츠는 관심 점수에 기초하여 순위가 매겨지고 순위가 매겨진 순서로 디스플레이될 수 있다. 관심 점수는 다음을 기반으로 계산될 수 있다, 예를 들어: (1) 임시 컨텐츠를 이전에 누가 본 적이 있는지; (2) 본 특정 사용자로부터의 임시 컨텐츠의 비율; (3) 임시 컨텐츠를 정기적으로 본 사람(예를 들어, 매일/매주/매달); (4) 어떤 임시 컨텐츠가 최근인지; 등. 임시 컨텐츠는 별도의 탭(들)에 순위가 매겨진 순서대로 디스플레이될 수 있다. 따라서, 임시 컨텐츠는 메시지들 또는 게시물들과 혼합될 필요가 없고, 혼잡하거나 뒤죽박죽된 디스플레이의 문제가 해결될 수 있다. 또한, 순위는 사용자가 관심이 적을 수 있는 임시 컨텐츠를 분류할 필요 없이 사용자가 흥미롭거나 우선 순위가 높은 임시 컨텐츠를 신속하게 찾는 것을 허용할 수 있다.
이 간략한 요약은 아래에서 더 자세히 논의되는 개념에 대한 비 제한적인 소개로 사용되도록 의도된다. 그러나, 추가의 예시적인 실시예들을 논의하기 전에, 데이터 프라이버시에 대한 간단한 메모가 먼저 제공된다. 프라이버시 설정 및 인증에 대한 자세한 설명은 다음 도면들과 관련하여 설명될 것이다.
데이터 프라이버시에 대한 참고 사항
본 명세서에 기술된 일부 실시예들은 하나 이상의 사용자들에 의해 자발적으로 제공되는 정보를 포함할 수 있는 훈련 데이터 또는 메트릭들을 사용한다. 이러한 실시예들에서, 데이터 프라이버시는 다수의 방식들로 보호될 수 있다.
예를 들어, 사용자 데이터가 수집되거나 사용되기 전에 사용자가 임의의 데이터 수집에 참여(opt in)해야 할 수도 있다. 또한, 사용자는 임의의 데이터 수집을 거부(opt out)할 수 있는 기회를 제공받을 수 있다. 데이터 수집에 참여하기 전에, 사용자는 데이터가 사용될 방법, 데이터가 보존될 기간, 및 데이터를 공개로부터 보호하기 위한 보호 장치(safeguards)에 대한 설명을 제공받을 수 있다.
데이터가 수집된 사용자를 식별하는 모든 정보가 데이터에서 제거되거나 연결 해제될 수 있다. 임의의 식별 정보가 유지될 필요가 있는 경우 (예를 들어, 규제 요건을 충족시키기 위해), 사용자는 식별 정보의 수집, 식별 정보의 용도, 및 식별 정보가 유지되는 시간에 대해 통보받을 수 있다. 사용자를 구체적으로 식별하는 정보는 제거될 수 있고, 예를 들어 일반적인 식별 번호 또는 다른 비-특이적 식별 형태로 대체될 수 있다.
수집되고 나면, 데이터는 데이터에 대한 무단 액세스를 방지하기 위한 보호 장치를 포함하는 안전한 데이터 저장 위치에 저장될 수 있다. 데이터는 암호화된 형식으로 저장될 수 있다. 식별 정보 및/또는 비-식별 정보는 미리 결정된 시간 후에 데이터 저장소부터 제거될 수 있다.
특정 프라이버시 보호 기술들이 예시의 목적으로 본원에 설명되었지만, 당업자는 프라이버시가 다른 방식으로도 보호됨을 인식할 것이다. 데이터 프라이버시에 관한 추가 세부 사항은 네트워크 실시예들을 설명하는 섹션에서 아래에서 논의된다.
사용자의 프라이버시 조건이 충족되면, 예시적인 실시예들은 다른 가능성 중에서도, 소셜 네트워크 또는 모바일 장치에서의 메시징을 포함하는 다양한 메시징 시스템들에 (예를 들어, 메시징 클라이언트 애플리케이션 또는 단문 메시지 서비스를 통해) 전개될 수 있다. 메시징 시스템에서 동기 비디오 대화에 참여하기 위한 예시적인 로직 및 프로세스들의 개요가 다음에 제공된다.
이해를 돕기 위해, 기본 구현에 대한 자세한 설명이 설명되기 전에 일련의 예제가 먼저 제공된다. 이들 예시들은 단지 예시적인 것으로 의도되며 본 발명은 도시된 실시예들에 제한되지 않음에 유의한다.
예시적인 인터페이스들
이제 도면들을 참조하면, 유사한 참조번호들은 전체적으로 유사한 요소들을 나타내도록 사용된다. 하기의 상세한 설명에서는 설명의 목적상, 많은 구체적인 세부사항들이 그에 대한 완전한 이해를 제공하기 위해 제시된다. 그러나, 신규한 실시예들은 이런 구체적인 세부사항 없이 실행될 수 있다. 다른 예들에서, 널리 알려진 구조들 및 장치들은 그에 대한 설명을 용이하게 하기 위해 블록 다이어그램 형태로 도시된다. 의도는 청구되는 발명의 대상과 일관되는 모든 수정물, 균등물, 및 대안물을 포괄하려는 것이다. 도면들 및 첨부된 설명에서, 지시어들 "a", "b", 및 "c"(그리고 유사한 지시어들)은 임의의 양의 정수를 표현하는 변수들인 것으로 도된다. 따라서, 예를 들어, 구현에서 a=5라고 설정하면, 컴포넌트들(122-1 내지 122-a)로 도시되는 컴포넌트들(122)의 전체 세트는 컴포넌트들(122-1, 122-2, 122-3, 122-4 및 122-5)을 포함할 수 있다. 실시예들이 이러한 문맥으로 제한되지 않는다.
도 1a는 메시징 애플리케이션을 위한 예시적인 인터페이스를 도시한 도면.
도 1b는 임시 컨텐츠를 공유하기 위한 예시적인 인터페이스를 도시한 도면.
도 1c는 공유될 임시 컨텐츠를 캡처하기 위한 예시적인 인터페이스를 도시한 도면.
도 1d는 임시 컨텐츠를 공유한 후 도 1b의 인터페이스를 도시한 도면.
도 1e는 임시 컨텐츠의 수신자들을 선택하기 위한 예시적인 인터페이스를 도시한 도면.
도 1f는 사용자들이 공유된 임시 컨텐츠를 수신하는지를 결정하기 위해 프라이버시 설정들을 변경하기 위한 예시적인 인터페이스를 도시한 도면.
도 1g는 메시징 서비스에서 대화에서 임시 컨텐츠를 보기 위한 예시적인 인터페이스를 도시한 도면.
도 1h는 이미지 또는 비디오를 포함하는 임시 컨텐츠의 확대 버전을 디스플레이하는 예시적인 인터페이스를 도시한 도면.
도 1i는 이미지 또는 비디오를 포함하는 임시 컨텐츠에 응답하기 위한 예시적인 인터페이스를 도시한 도면.
도 1j는 임시 컨텐츠에 대한 응답을 포함하는 대화를 디스플레이하기 위한 예시적인 인터페이스를 도시한 도면.
도 1k는 대화 내에서 임시 컨텐츠를 공유하기 위한 예시적인 인터페이스를 도시한 도면.
도 1l은 대화 내에서 공유될 컨텐츠를 선택하기 위한 예시적인 컨텐츠를 도시한 도면.
도 1m은 오디오 기록을 포함하는 임시 컨텐츠의 확대 버전을 디스플레이하는 예시적인 인터페이스를 도시한 도면.
도 1n은 위치를 포함한 임시 컨텐츠의 확대 버전을 디스플레이하는 예시적인 인터페이스를 도시한 도면.
도 1o는 날씨 보고를 포함하는 임시 컨텐츠의 확대 버전을 디스플레이하는 예시적인 인터페이스를 도시한 도면.
도 1p는 뉴스 아이템을 포함하는 임시 컨텐츠의 확대 버전을 디스플레이하는 예시적인 인터페이스를 도시한 도면.
도 2는 임시 컨텐츠 메시지에 종단 간 암호화를 적용하기에 적합한 예시적인 시스템을 도시한 도면.
도 3a는 클라이언트 데이터베이스를 나타내는 예시적인 데이터 구조를 도시한 도면.
도 3b는 세션 설정 정보를 포함하는 메시지를 나타내는 예시적인 데이터 구조를 도시한 도면.
도 3c는 세션 설정이 발생한 후 메시지를 나타내는 예시적인 데이터 구조를 도시한 도면.
도 3d는 종단 간 암호화된 통신 시스템에서 미디어 파일들을 교환하기 위해 네트워크에서 전송되는 예시적인 메시지들을 도시한 도면.
도 3e는 예시적인 임시 컨텐츠 메시지를 도시한 도면.
도 3f는 대칭 및 비대칭 관계를 갖는 예시적인 연락처 리스트들을 도시한 도면.
도 4는 예시적인 실시예에 따른 정보 교환을 도시하는 예시적인 데이터 흐름도.
도 5a는 임시 컨텐츠 메시지를 생성하기 위한 예시적인 발신-클라이언트 측 로직을 도시하는 흐름도.
도 5b는 컨텐츠 공유 인터페이스로 입력하기 위한 요청을 처리하기 위한 예시적인 발신-클라이언트 측 로직을 도시한 흐름도.
도 6a는 임시 컨텐츠 메시지의 송신을 처리하기 위한 예시적인 서버-측 로직을 도시한 흐름도.
도 6b는 연락처 리스트를 필터링하기 위한 예시적인 서버-측 로직을 도시한 흐름도.
도 7a는 임시 컨텐츠 메시지를 디스플레이하기 위한 예시적인 수신-클라이언트 측 로직을 도시한 흐름도.
도 7b는 임시 컨텐츠의 순위를 매기기 위한 예시적인 수신-클라이언트 측 로직을 도시한 흐름도.
도 8a는 예시적인 중앙 집중식 통신 서비스를 포함하는 시스템의 개요를 제공하는 블록도;
도 8b는 예시적인 배포된 통신 서비스를 포함하는 시스템의 개요를 제공하는 블록도;
도 8c는 상세하게는 도 8a 및 도 8b의 소셜 네트워킹 그래프를 도시한 도면;
도 9는 메시징 서비스에 대한 시스템의 예시를 도시한 블록도;
도 10은 예시적인 실시예들과 함께 사용하기에 적합한 예시적인 컴퓨팅 장치를 나타내는 블록도;
도 11은 예시적인 통신 아키텍처를 도시하는 도면; 및
도 12는 예시적인 멀티캐리어 통신 장치를 도시하는 블록도.
도 1a는 통신 애플리케이션을 위한 예시적인 인터페이스(100)를 도시한다. 통신 애플리케이션은 사용자가 메시지 및 임시 컨텐츠와 같은 통신을 다른 통신 서비스 사용자와 교환하는 것을 허용할 수 있다. 인터페이스는 대화/채팅으로 구성된 메시지들을 디스플레이할 수 있다.
대화 또는 채팅은 대화 또는 채팅을 식별하는 대화 식별자와 연관될 수 있다. 대화 식별자는 또한 대화에 참여하는 참가자 그룹과 연관될 수 있다.
사용자는 인터페이스(100)를 사용하여 메시지를 전송함으로써 대화/채팅에 기여할 수 있다. 예를 들어, 인터페이스(100)는 새로운 메시지를 작성하기 위한 구성 표시자를 포함할 수 있다. 새로운 메시지를 작성할 때, 사용자가 새로운 메시지를 기존 대화에 타겟팅하고 및/또는 수신자 세트를 지정하는 것을 허용하는 인터페이스가 제공될 수 있다. 지정된 수신자 집합이 대화가 이미 존재하는 수신자 집합에 해당하는 경우, 메시지는 기존 대화에 타겟팅될 수 있다. 그렇지 않다면, 새로운 대화가 지정된 수신자들 간에 생성될 수 있다. 메시지는 식별된 대화의 대화 ID로 태그될 수 있다.
인터페이스(100)는 최근 대화 및 대화에 관한 정보(예를 들어, 참가자, 가장 최신 메시지의 스니펫(snippet), 가장 최신 메시지의 시간 및 발신자 등)를 디스플레이할 수 있다.
인터페이스(100)는 통신의 기능이 액세스되는 것을 허용하는 메뉴 또는 상호 작용 가능한 요소들을 포함할 수 있다. 예를 들어, 예시적인 인터페이스(100)는 카메라 인터페이스가 사진 또는 비디오를 캡처하기 위해 액세스되는 것을 허용하는 카메라 아이콘(102)를 포함한다. 인터페이스(100)는 또한 생성되고 및/또는 보이게 되는 것을 허용하는 임시 컨텐츠 아이콘(104)을 포함한다. 이러한 요소들은 예시적이고, 다른 실시예들에서, 요소들의 다른 유형들이 제공될 수 있다. 예를 들어, 카메라 아이콘(102)에 추가하여 또는 대신에, 다른 유형의 미디어를 생성, 액세스 또는 선택하기 위해 하나 이상의 미디어 아이콘들이 제공될 수 있다.
도 1b는 임시 컨텐츠 아이콘(104)의 선택을 수신할 때 디스플레이되는 예시적인 임시 컨텐츠 인터페이스(106)를 도시한다. 임시 컨텐츠 인터페이스(106)는 통신 서비스의 사용자들에 의해 공유되는 임시 컨텐츠와 상호 작용하기 위한 위치를 제공할 수 있고, 이는 다른 유형의 컨텐츠(예를 들어, 비-임시 메시지, 게시물 등)를 보기 위한 인터페이스들과 구별된다.
임시 컨텐츠 인터페이스는 새로운 임시 컨텐츠가 생성되거나 선택되는 것을 허용하는 상호 작용 가능한 요소(108)를 포함할 수 있다. 상호 작용 가능한 요소(108)를 선택하면, 애플리케이션은 컨텐츠를 생성 또는 선택하기 위한 인터페이스를 디스플레이할 수 있다. 예를 들어, 상호 작용 가능한 요소(108)를 선택하면, 도 1c에 도시된 바와 같이 새로운 사진 또는 비디오 컨텐츠를 생성하기 위해, 카메라 인터페이스가 디스플레이되도록 할 수 있다. 대안으로 또는 추가로, 상호 작용 가능한 요소(108)를 선택하면, 도 1l에 도시된 메뉴와 유사한 메뉴가 디스플레이되도록 할 수 있고, 도 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)는 사용자 Jane으로부터 6개의 임시 컨텐츠 아이템이 현재 이용 가능하다는 것을 나타낸다. 한편, 표시기(116-2)는 사용자 Joe로부터 2개의 임시 컨텐츠 아이템이 현재 이용 가능하다는 것을 나타낸다. 디스플레이된 썸네일(114-i)은 식별된 사용자로부터 이용 가능한 가장-최신의 컨텐츠 아이템에 대응할 수 있다.
비록 인터페이스(106)의 단일 부분 만이 도 1b에 도시된 예에서 다른 사용자의 임시 컨텐츠에 전용되어 있지만. 일부 실시예들에서 임시 컨텐츠는 다수의 상이한 탭들 또는 부분들로 디스플레이될 수 있다. 예를 들어, 제 1 부분은 통신 서비스가 사용자에게 관심이 있을 것으로 결정되는 중요한 임시 컨텐츠 또는 임시 컨텐츠에 전용될 수 있다. 이러한 부분은 미리 결정된 수의 높은 등급의 임시 컨텐츠 아이템을 포함할 수 있고, 이는 아래에보다 상세히 설명되는 바와 같이 관심 점수에 따라 순위가 매겨질 수 있다. 제 2 부분은 임시 컨텐츠 아이템들의 순위가 어떻게 결정되는지에 관계없이, 미리 정해진 수의 최근 수신된 임시 컨텐츠 아이템들과 같은 최근의 임시 컨텐츠 아이템들에 전용될 수 있다.
위에서 언급한 바와 같이, 상호 작용가능한 요소(108)를 선택하면, 임시 컨텐츠를 생성하기 위한 인터페이스가 디스플레이될 수 있다. 그러한 인터페이스(118)의 일 예시가 도 1c에 도시된다.
예시적인 인터페이스(118)는 사용자가 사진 또는 비디오를 캡처하는 것을 허용한다(예시적인 실시예들이 사진 또는 비디오를 캡처하는 것으로 제한되지 않을지라도, 이전에 캡처된 사진 또는 비디오를 공유하거나 다른 유형의 미디어를 생성 또는 선택하는 것과 관련될 수 있다). 인터페이스(118)는 또한 사용자가 임의의 인터페이스에서 카메라 아이콘(102)을 선택할 때 디스플레이될 수 있다.
인터페이스(118)가 임시 컨텐츠 인터페이스(106)를 통해 입력될 때, 컨텐츠가 임시 미디어로서 캡처되고 있음을 나타내는 표시기(120)가 디스플레이될 수 있다. 표시기(120)와의 상호 작용은 새로운 컨텐츠를 캡처하지 않고 인터페이스로 하여금 임시 컨텐츠 인터페이스(106)로 리턴할 수 있도록 한다. 다른 한편으로, 인터페이스(118)가 카메라 아이콘(102)을 통해 입력될 때, 캡처된 컨텐츠는 비-임시적 일 수 있고 (및/또는 추후에 임시적으로 이루어질 수 있음); 따라서, 이 경우 표시기(120)가 도시되지 않을 수 있다.
인터페이스(118)는 캡처 버튼(124)과 상호 작용할 때 캡처될 미디어(예를 들어, 카메라로부터의 라이브 미리보기)를 디스플레이하는 미리보기 부분(122)을 포함할 수 있다. 캡처 버튼(124)의 선택을 수신하면, 미리보기 창(122)에 디스플레이된 미디어가 캡처될 수 있다. 일부 실시예들에서, 캡처 버튼(124)은 다기능 캡처 버튼일 수 있다. 그러한 실시예들에서, 캡처 버튼(124)과 하나의 방식으로 (예컨대, 탭) 상호 작용하는 것은 사진과 같은 한 유형의 미디어가 캡처되도록 할 수 있는 반면, 캡처 버튼(124)과 다른 방식으로 (예를 들어, 지속된 홀드) 상호 작용하는 것은 비디오와 같은 다른 유형의 미디어가 캡처되도록 할 수 있다. 인터페이스(118)는 또한 캡처 유형들 (예를 들어, 사진 대 오디오 대 비디오) 사이에서 선택하기 위한 다양한 아이콘들을 포함하거나 대안으로 포함할 수 있다.
인터페이스(118)는 미디어에 텍스트 캡션을 추가하기 위한 캡션 바(126) 및 미디어를 조작하기 위한 제어부들(128)을 포함할 수 있다. 예를 들어, 캡처되는 미디어가 사진인 경우, 사진에 이미지, 텍스트 또는 그림을 추가하기 위한 도구뿐만 아니라 사진 편집 도구가 제공될 수 있다.
미디어가 캡처, 조작 및/또는 캡션(captioned)되면, 사용자는 최종 요소(130)와 상호 작용하여 미디어를 임시 컨텐츠로 마무리하고 임시 컨텐츠 메시지를 통해 임시 컨텐츠를 공유할 수 있다. 일부 실시예들에서, 최종 요소(finalize element)와 상호 작용하는 것은 미디어가 발신 사용자의 프라이버시 설정에 의해 정의된 바와 같이 임시 컨텐츠로서 일련의 수신자에게 전송되게 한다(도 1f 참조).
컨텐츠가 공유되고 나면, 애플리케이션은 도 1d에 도시된 바와 같이 임시 컨텐츠 인터페이스(106)로 리턴할 수 있다. 이 경우에서, 인터페이스의 제 1 부분은 사용자가 최근에 임시 컨텐츠를 공유한 것을 나타내도록 업데이트될 수 있다. 예를 들어, 최근에 공유된 컨텐츠의 썸네일(114-3)은 제 1 부분에서 상호 작용 가능한 요소(108)를 대신할 수 있다. 대안으로, 컨텐츠가 이전에 공유되었다면, 썸네일(114-3)은 가장 최근에 공유된 컨텐츠를 나타내도록 업데이트될 수 있다.
일부 실시예들에서, 미디어를 캡처하고 선택하는 것은 (예를 들어, 도 1c에서 수행된 바와 같이) 도 1e에 도시된 바와 같이 공유 인터페이스(132)가 디스플레이 되도록 할 수 있다. 공유 인터페이스(132)는 발신 사용자가 미디어를 임시 컨텐츠로서 발신자의 연락처 리스트에서 선택된 사용자들의 그룹에 전송하는 것을 허용하는 제 1 부분(134)을 포함할 수 있다. 사용자들의 그룹은 하기에 기술되는 바와 같이 사용자의 프라이버시 설정들을 통해 구성될 수 있다.
공유 인터페이스(132)는 사용자가 자주 접촉하는 당사자들과 미디어를 공유하는 것을 허용하는 제 2 부분(136)을 제공할 수 있다. 당사자들은 개별 사용자 또는 사용자 그룹을 포함할 수 있고, 이들은 사용자가 미리 결정된 시간 기간 (예를 들어, 지난주, 월 등) 동안 가장 자주 통신한 개인 또는 그룹에 기초하여 선택될 수 있다. 제 3 부분(138)은 마찬가지로 사용자가 사용자와 최근에 통신한 개인 또는 그룹(예를 들어, 사용자가 참여한 n개의 가장 최근의 통신 스레드(threads))과 미디어를 공유하는 것을 허용할 수 있다.
선택 요소들(140-i)은 미디어가 공유될 수 있는 각각의 잠재적 개체와 관련하여 제공될 수 있다. 선택 요소들(140-i)을 선택할 때, 선택 요소들은 개체가 포함되도록 선택되었음을 나타내도록 업데이트될 수 있다. 사용자는 컨텐츠를 수신하기 위해 다수의 상이한 엔티티들을 선택할 수 있다.
미디어가 제 2 부분(136) 또는 제 3 부분(138)에서 엔티티들과 공유될 때, 미디어는 비-임시적 컨텐츠로서 공유될 수 있고, 선택에 대응하는 대화에 추가될 수 있다. 대안으로, 발신 사용자의 설정들에 따라서, 컨텐츠는 임시 컨텐츠로서 선택된 대화들로 공유될 수 있다.
일부 실시예들에서, 미디어가 제 2 부분(136) 또는 제 3 부분(138)에서 엔티티들과 공유될 때, 지정된 수신자들에 대한 대응하는 임시 컨텐츠 메시지들은 그룹 메시지들로 간주될 수 있고, 임시 컨텐츠 메시지들에 대한 응답들은 각각의 수신자들과 적절히 그룹 대화에 추가될 수 있다. 그러한 메시지는 플래그 되거나 그룹 메시지로 지정될 수 있다. 반면에, 미디어가 인터페이스의 제 1 부분(134)을 사용하는 엔티티들과 공유되면, 대응하는 임시 컨텐츠 메시지는 브로드캐스트로 간주될 수 있고, 임시 컨텐츠 메시지에 대한 응답들은 발신자와 응답자 사이의 일대일 대화에 추가될 수 있다. 메시지는 플래그되거나 브로드캐스트로서 지정될 수 있다.
인터페이스(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) 중 하나가 제거될 수 있고, 디스플레이가 업데이트될 수 있다(예를 들어, 나머지 상태 바들(150)의 크기를 조정 및/또는 중심을 맞추기 위해).
또한 선택적으로, 인터페이스(148)와의 상호 작용은 디스플레이된 임시 컨텐츠를 수동으로 진행시킬 수 있다(예를 들어, 다음 이용 가능한 임시 컨텐츠 아이템으로 이동). 예를 들어, 인터페이스(148)는 탭 또는 스와이프와 같은 상호 작용을 등록하여 컨텐츠가 진행하도록 할 수 있다.
시스템은 인터페이스(148)에서 주어진 발신 사용자에 대한 가장 최근의 임시 컨텐츠 아이템을 초기에 디스플레이할 수 있다. 자동 또는 수동으로 전진하는 경우, 디스플레이되는 다음 임시 컨텐츠 아이템은 동일한 발신 사용자로부터 이용 가능한 다음의 가장 최근의 임시 컨텐츠 아이템에 대응할 수 있다. 주어진 발신 사용자에 대한 마지막 이용 가능한 임시 컨텐츠 아이템이 디스플레이되면, 시스템은 다음 발신 사용자에 대한 가장 최근의 임시 컨텐츠 아이템을 디스플레이할 수 있다(예를 들어, 본원에 기술된 랭킹 로직에 의해 결정된 바와 같은 다음으로 가장 높은 순위의 사용자 또는 다음으로 가장 높은 순위의 임시 컨텐츠 아이템을 전송한 사용자).
전체 화면 프리젠테이션은 또한 임시 컨텐츠에 응답하기 위한 옵션(152)을 제공할 수 있다. 이 예에서, 옵션(152)과의 상호 작용은 도 1i에 도시된 바와 같이 응답 인터페이스가 디스플레이되도록 할 수 있다.
응답 인터페이스에서, (예를 들어) 키보드 또는 다른 입력 장치를 통해 입력된 대로 응답 미리보기를 도시하는 미리보기 바(154)가 디스플레이될 수 있다. 선택적으로, 미디어 요소(156)는 미디어(예를 들어, 사진, 비디오, 오디오, 위치 등)로 임시 컨텐츠에 응답하기 위해 제공될 수 있다. 응답이 마무리될 때, 사용자는 최종 요소(158)와 상호 작용하여 응답을 전송할 수 있다.
임시 컨텐츠에 응답하는 다른 수단은 (예를 들어, 대화 인터페이스(144)에서 또는 임시 컨텐츠 인터페이스(106)에서 임시 컨텐츠에 응답하기 위한 옵션을 선택함으로써) 또한 응답이 생성되는 것을 허용할 수 있다.
일부 실시예들에 따르면, 브로드캐스트 임시 컨텐츠 메시지에 대한 응답은 임시 컨텐츠 메시지의 원래의 발신자와 응답을 생성하는 수신자 사이의 일대일 대화로서 추가될 수 있다(임시 컨텐츠가 원래대로 선택된 그룹에 또는 브로드캐스트로서 전송된 경우에도). 이러한 사용자들 간에 대화가 현재 존재하지 않는다면, 새로운 대화가 생성될 수 있다. 대화는 임시 컨텐츠 메시지가 발신자로부터 수신자에게 송신될 때 설정된 암호화 세션에 의존할 수 있다.
예를 들어, 현재 사용자가 수신된 임시 컨텐츠 메시지(146)에 응답 한 후, 도 1j는 도 1g의 대화 인터페이스(144)를 도시한다. 응답(160)은 임시 컨텐츠 메시지(146)에 추가될 수 있다. 일부 실시예들에서, 임시 컨텐츠 메시지(146)가 원래 수신자들의 그룹과 공유된 경우에도(도 1g의 예에서와 같이), 컨텐츠의 원래 발신자 또는 응답자만이 응답(160)을 볼 수 있다.
대안으로, 응답(160)은 그룹 대화에서 별도의 메시지로서 나타날 수 있고, 그룹의 모든 멤버들에게 보여질 수 있다.
임시 컨텐츠의 원래 발신자 및 임시 컨텐츠에 응답한 사용자는 대안으로 또는 추가로 그룹 대화와 별개인 별도의 대화 인터페이스(144)에서 별도의 일대일 대화로 원본 메시지(146) 및 응답(160)을 볼 수 있다.
대안으로, 또는 카메라 인터페이스 또는 임시 컨텐츠 인터페이스를 통해 임시 컨텐츠를 공유하는 것 외에도, 임시 컨텐츠는 도 1k에 도시된 바와 같이 대화 인터페이스(144) 내에서 공유될 수 있다. 이 예에서, 선택 가능한 요소(162)는 인터페이스(144)의 컨텐츠 생성 부분에 제공될 수 있다. 도 1l에 도시된 바와 같이, 선택 가능한 요소(162)를 선택하는 것은 메뉴(164)가 디스플레이 되도록 할 수 있다. 메뉴는 미디어의 다양한 유형들이 선택되거나 생성되도록 허용하는 일련의 메뉴 옵션들(166-i)을 포함할 수 있다.
예를 들어, 이 예에서 제 1 메뉴 옵션(166-1)은 카메라 인터페이스가 디스플레이되도록 할 수 있다. 제 2 메뉴 옵션(166-2)은 사용자의 사진 앨범 및/또는 비디오 라이브러리를 열어 기존의 컨텐츠가 임시 미디어로 공유하기 위해 선택되도록 허용할 수 있다. 제 3 옵션(166-3)은 사용자가 공유를 위해 로컬 또는 원격 스토어로부터 문서를 선택하는 것을 허용하는 미리보기 창을 열 수 있다. 제 4 옵션(166-4)은 사용자가 그들의 위치(또는 선택된 위치의 위치 태그)를 공유하는 것을 허용할 수 있다. 제 5 옵션(166-5)은 사용자가 그들의 연락처 리스트로부터 연락처를 공유하는 것을 허용할 수 있다.
다른 옵션들이 또한 또는 대안으로 제공될 수 있다. 예를 들어, 날씨 옵션은 날씨 보고서가 컨텐츠 아이템으로서 생성되거나 선택되는 것을 허용할 수 있고; 텍스트를 생성하거나 선택하기 위한 텍스트 옵션이 제공될 수 있고; 오디오 컨텐츠를 생성하거나 선택하기 위한 오디오 컨텐츠 옵션이 제공될 수 있고; 뉴스 기사를 생성하거나 선택하기 위한 뉴스 컨텐츠 옵션이 제공될 수 있고; 하이퍼 링크 옵션은 다른 가능성들 중에서도 하이퍼 링크를 생성하거나 선택하기 위해 제공될 수 있다.
메뉴(164)에서 옵션들(166-i) 중 하나를 선택하는 것은 디스플레이가 적절한 캡처 및 선택 툴들로 변경하는 디스플레이를 변경할 수 있다. 예를 들어, 사용자가 오디오 컨텐츠 옵션을 선택하면, 디스플레이는 사용자가 저장된 오디오 레코딩 및/또는 오디오 레코딩 인터페이스 중에서 선택하는 것을 허용하도록 변경될 수 있다. 사용자가 하이퍼링크 컨텐츠 옵션을 선택하면, 디스플레이는 사용자의 저장된 즐겨찾기 웹 사이트 리스트를 디스플레이하도록 (예를 들어, 웹 브라우저 애플리케이션으로부터 검색), 및/또는 자원 위치 지정자(URL: uniform resource locator)를 입력하기 위한 텍스트 입력 바를 제공하도록 변경될 수 있다. 유사하게, 사용자가 위치 컨텐츠 옵션을 선택하면, 디스플레이는 저장된 즐겨찾기 위치들 (예를 들어, 맵핑 애플리케이션으로부터 검색된) 및/또는 새로운 위치를 입력하기 위한 검색 바 리스트를 디스플레이하도록 변경될 수 있다.
일부 실시예들에서, 옵션들(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) 사이에 종단 간 암호화를 제공할 수 있다. 본원에 기술된 일부 실시예들은 그룹 메시지들 및 브로드캐스트들을 송신하기 위해 서버-측 팬 아웃을 이용한다. 서버-측 팬 아웃 절차에서, 발신 클라이언트(202)는 메시지의 단일 사본을 서버(204)에 전송한 다음, 도 2에 도시된 바와 같이 메시지의 사본을 적절한 수신자 클라이언트(212-i)에 송신한다.
클라이언트들(202, 212)과 서버들(204) 사이의 모든 통신은 별도의 암호화된 채널 내에 계층화될 수 있다. 종단 간 지원 클라이언트는 예를 들어, 장시간 대화식 연결을 위해 Curve25519를 갖는 Noise Pipes, AES_GCM(Advanced Encryption Standard Galois/Counter Mode), 및 Noise Protocol Framework로부터의 SHA256(Secure Hash Algorithm 256)을 사용할 수 있다. 암호화된 채널을 설정하기 위한 파라미터들은 서버(204)에서 클라이언트 데이터베이스(206)에 저장될 수 있다.
이러한 구성은 다음을 포함하는 몇 가지 바람직한 특성들을 제공한다: 빠르고 가벼운 연결 및 재개; 무단 네트워크 관찰자로부터 메타데이터를 숨기기 위한 메타데이터의 암호화; 연결하는 사용자의 신원에 관한 정보는 공개되지 않음; 및 클라이언트 인증 시크릿들이 서버(204)에 저장되지 않음. 클라이언트들은 Curve25519 키 쌍을 사용하여 자신을 인증할 수 있으므로, 서버는 클라이언트의 공개 인증 키만 저장한다. 서버의 사용자 데이터베이스(206)가 언젠가 손상되면, 개인 인증 자격 증명이 공개되지 않을 것이다.
암호화된 방식으로 미디어 및/또는 첨부 파일들을 송신하기 위해, 통신 시스템은 또한 블로브 스토어(blob store)(210)를 호스팅하는 블로브 서버(208)를 포함할 수 있다. 컨텐츠(특히 임시 컨텐츠 메시지를 전송하는 것과 관련하여)를 전송하기 위한 블로브 스토어(210)의 사용은 아래에서 더 상세히 설명된다.
예시적인 암호화 프로토콜 및 데이터 구조들
이 섹션에서는 종단 간 암호화에 사용하기에 적합한 예시적인 암호화 프로토콜 및 데이터 구조들을 설명한다. 특정 예시들과 관련하여 본 명세서에서 실시예들이 예시적으로 설명되었지만, 본 발명은 설명된 예시들에 제한되지 않는다. 본 명세서에 설명된 일부 양상들은 임의의 유형의 통신 시스템 또는 암호화 프로토콜과 함께 사용될 수 있는 반면, 다른 것들은 종단 간 암호화된 통신 시스템들과 관련하여 바람직하게 이용될 수 있다.
예시적인 실시예들과 함께 사용하기에 적합한 암호화 프로토콜의 예시는 캘리포니아 샌프란시스코의 Open Whisper Systems에 의해 설계된 신호 프로토콜이다. 예시적인 실시예들은 또한 익명 키 합의 프로토콜 타원 곡선 디피-헬만(ECDH: Elliptic Curve Diffie-Hellman)을 이용할 수 있다. 그럼에도 불구하고, 다른 암호화 프로토콜 및 키 합의 프로토콜이 또한 예시적인 실시예들과 함께 사용하기에 적합할 수 있다.
유리하게도, 종단 간 암호화 프로토콜들은 제 3자(및 심지어 통신 서비스 자체)가 서비스에 의해 송신된 메시지들에 대한 평문 액세스를 갖지 못하게 할 수 있다. 사용자의 장치의 암호화 키들이 물리적으로 손상되어도, 그들은 이전에 송신된 메시지들을 해독하기 위해 시간을 거슬러 올라가기 위해 사용될 수 없다.
종단 간 암호화를 사용하기 위해, 사용자는 초기에 통신 서비스에 등록할 수 있다. 사용자의 등록 정보는 도 3a에 도시된 바와 같이 클라이언트 데이터베이스(206)에 저장될 수 있다. 각각의 사용자는 사용자 계정에 할당된 식별자에 의해 색인화된 엔트리(302-i)와 연관될 수 있다.
등록시, 등록 사용자와 연관된 통신 서비스의 애플리케이션은 공개 신원 키(304), 그 서명을 갖는 공개 서명된 사전 키(306), 및 공개 일회성 사전 키들(310-i)의 집단(batch)을 중간 서버(204)에 송신할 수 있다.
일 실시예에서, 신원 키(304)는 애플리케이션이 클라이언트 장치에 설치될 때 생성된 장기간 Curve25519 키 쌍일 수 있다. 서명된 사전 키(306)는 설치시 생성되고 식별 키에 의해 서명된 중간 기간 Curve25519 키 쌍일 수 있다. 서명된 사전 키(306)는 주기적으로 회전될 수 있다. 일회성 사전 키들(310-i)은 일 회 사용을 위한 Curve25519 키 쌍들의 큐(queue)(308)일 수 있고, 설치시 생성되고 필요에 따라 보충될 수 있다.
서버(204)는 사용자의 식별자(302-i)와 연관된 이들 공개 키들(304, 306, 310-i)을 저장할 수 있다. 예시적인 실시예들에 따라서, 서버(204)는 클라이언트의 개인 키들 중 어느 것에도 액세스할 수 없다.
공개 키들(304, 306, 310-i) 외에도, 서버(204)는 사용자 계정의 연락처들과 관련된 하나 이상의 연락처 사용자 식별자들(314-i)을 포함하는 연락처 리스트(312)를 저장할 수 있다. 연락처 리스트(312)의 연락처들은 사용자의 모바일 장치상의 연락처 리스트일 수 있거나, 이들로부터 도출될 수 있다. 연락처 리스트(312)의 일부 엔트리들은 하나 이상의 플래그들과 관련될 수 있다. 이러한 플래그의 일례는 차단된 사용자 플래그이고, 이는 각각의 연락처 사용자 식별자(314-i)와 연관된 사용자가 엔트리(302-i)와 연관된 사용자 계정에 의해 차단되었음을 나타낸다. 사용자 계정이 차단되면, 차단된 사용자의 메시지들이 차단한 사용자에게 배달되지 않는다.
일부 실시예들에서, 중간 서버(204)는 연락처 리스트(312)를 저장하지 않을 수 있지만, 대신에 후술하는 필터링 기능을 제공하기 위해 자신의 연락처 리스트에 대해 잠재적인 수신자 클라이언트들을 조회할 수 있다.
클라이언트 데이터베이스(206)로부터의 정보는 종단 간 암호화된 세션을 개시하는데 사용될 수 있고; 세션 정보를 이용하여, 세션이 종료되거나 만료될 때까지 종단 간 암호화된 메시지들이 교환될 수 있다. 세션이 설정되면, 클라이언트들은 기존 세션 상태가 유실될 때까지 서로 새로운 세션을 다시 작성할 필요가 없다(예를 들어, 앱 재설치 또는 기기 변경과 같은 외부 이벤트를 통해). 도 3b는 종단 간 암호화된 세션을 설정하기 위해 적합한 예시적인 메시지(316)를 도시한다.
세션을 설정하기 위해, 세션을 개시하는 클라이언트("개시자")는 수신자를 위해 공개 신원 키(304), 공개 서명된 사전 키(306), 및 단일 공개 일회성 사전 키(310-i)를 요청할 수 있다.
이에 응답하여, 서버(204)는 요청된 공개 키 값들을 리턴할 수 있다. 일회성 사전 키(310-i)는 한 번만 사용되므로, 요청된 이후 서버 스토어에서 제거된다. 개시자는 수신자의 신원 키(304)를 Irecipient로, 서명된 사전 키(306)를 Srecipient로, 및 일회성 사전 키(310-i)를 Orecipient로 저장할 수 있다.
그 후, 개시자는 임시 Curve25519 키 쌍을 Einitiator(318)로 생성할 수 있다. 개시자는 자체 신원 키(304)를 Iinitiator(320)로서 로드할 수 있다. 개시자는 마스터 시크릿(master secret)을 다음과 같이 계산할 수 있다:
식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: HMAC-based key derivation function)를 사용하여 마스터 시크릿에서 루트 키와 체인 키를 생성할 수 있다. 루트 키는 체인 키들을 생성하는 데 사용되는 32 바이트 값일 수 있다. 체인 키는 메시지 키들을 생성하는 데 사용되는 32 바이트 값일 수 있다. 메시지 키는 메시지 컨텐츠를 암호화하는 데 사용되는 80 바이트 값일 수 있다. 메시지 키에서, 32 바이트는 고급 암호화 표준-256(AES-256: Advanced Encryption Standard-256) 키를 위해 사용될 수 있고, 32 바이트는 HMAC 안전한 해시 알고리즘-256(HMAC-SHA56: HMAC Secure Hash Algorithm-256) 키를 위해 사용될 수 있고, 16 바이트는 초기화 벡터(Ⅳ: initialization vector)를 위해 사용될 수 있다.
장기간 암호화 세션을 구축한 후, 개시자는 수신자가 오프라인인 경우에도 수신자에게 즉시 메시지들(316)을 전송하기 시작할 수 있다. 수신자가 응답할 때까지, 개시자는 수신자가 해당 세션을 구축하는 데 필요한 정보(전송된 모든 메시지들의 헤더에)를 포함할 수 있다. 이것은 개시자의 Einitiator(318) 및 Iinitiator(320)를 포함한다. 선택적으로, 메시지는 또한 도 3c와 관련하여 설명된 바와 같이, 공개 키(322) 및 암호화된 컨텐츠(324)를 포함할 수 있다.
수신자가 세션 설정 정보를 포함하는 메시지(316)를 수신하면, 수신자는 자신의 개인 키들 및 들어오는 메시지의 헤더에 광고된 공개 키들을 사용하여 대응하는 마스터 시크릿을 계산할 수 있다. 수신자는 개시자에 의해 사용된 일회성 사전 키(310-i)를 삭제한다. 개시자는 HKDF를 사용하여 마스터 시크릿에서 대응하는 루트 키와 체인키들을 파생시킬 수 있다.
세션이 설정되면, 클라이언트들은 암호화를 위해 CBC(Cipher Block Chaining) 모드에서 AES256을 사용하고 인증을 위해 HMAC-SHA256을 사용하여 메시지 키로 보호된 메시지들을 교환할 수 있다.
메시지 키는 송신된 각 메시지에 대해 변경될 수 있고, 메시지가 전송되거나 수신된 후 메시지를 암호화하는데 사용된 메시지 키가 세션 상태로부터 재구성될 수 없도록 임시적이다.
메시지 키는 전송된 모든 메시지와 함께 앞으로 전달하는 발신자의 체인 키에서 파생될 수 있다. 또한, 새로운 ECDH 합의는 각 메시지 왕복마다 새로운 체인 키를 만들기 위해 수행된다. 이는 즉각적인 해시 래칫과 왕복 DH(Diffie-Hellman) 래칫의 결합을 통해 순방향 보안을 제공한다.
발신자에 의해 새로운 메시지 키가 필요로 될 때마다, 메시지 키는 다음과 같이 계산될 수 있다:
식 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)
예시적인 실시예들에 따라서, 체인은 한 사용자로부터 메시지들을 발신하는 데만 사용되므로, 메시지 키들은 재사용되지 않는다. 메시지 키들과 체인 키들이 계산되는 방식으로 인해, 메시지들이 지연되어 순서대로 도착하지 않거나 문제들을 야기하지 않고 완전히 손실될 수 있다.
종단 간 암호화가 또한 도 3d에 도시된 바와 같이 미디어 및 다른 첨부 파일들을 송신하는 데 사용될 수 있다. 메시지(328)를 발신하는 발신 클라이언트(202)는 임시 32 바이트 AES256 키(336) 및 임시 32 바이트 HMAC-SHA256 키(338)를 생성할 수 있다. 발신자는 CBC 모드에서 AES256 키를 사용하여 첨부물(330)을 랜덤 IV로 암호화한 다음, HMAC-SHA256을 사용하여 암호문의 메시지 인증 코드(MAC)(332)를 추가할 수 있다. 이후, 발신 클라이언트(202)는 암호화된 첨부물(330)을 블로브로서 블로브 스토어(210)에 업로드할 수 있다.
이후, 발신 클라이언트(202)는 정상적인 암호화된 메시지(334)를 수신 클라이언트(212)에 송신할 수 있다. 메시지(334)는 상술된 바와 같이 공개 키(322)를 사용하여 보안될 수 있다. 메시지(334)의 컨텐츠(324)는 암호화 키(336), HMAC 키(338), 암호화된 블로브의 SHA256 해시(340), 블로브 스토어 내의 블로브에 대한 포인터(342)를 포함할 수 있다.
수신 클라이언트(212)는 컨텐츠(324)를 해독하고 포인터(342)의 위치에 저장된 블로브에 대한 요청(344)을 송신할 수 있다. 암호화된 블로브(346)를 수신한 후, 수신 클라이언트는 블로브의 SHA256 해시를 계산하고 해시가 메시지(334)의 해시(340)와 일치하는지 검증할 수 있고, MAC(332)를 검증할 수 있고, 평문을 해독할 수 있다.
미디어를 교환하기 위한 전술한 절차는 또한 도 3e에 도시된 바와 같이 임시 컨텐츠 메시지와 관련하여 컨텐츠를 교환하기 위해 사용될 수 있다. 임시 컨텐츠 생성 프로세스의 일부로서, 사용자는 임시 컨텐츠 메시지와 관련하여 공유될 미디어를 선택할 수 있고, 전술한 프로세스를 사용하여 미디어를 블로브 스토어(210)에 업로드 할 수 있다. 이후, 발신 클라이언트(202)는 수신 클라이언트들(212-i)로의 송신을 위해 임시 컨텐츠 메시지(348)를 중간 서버(204)에 송신할 수 있다.
임시 컨텐츠 메시지(348)는 전술한 다른 유형의 메시지들과 관련하여 설명된 바와 같이, 공개 키(322)에 의해 보안된 암호화된 컨텐츠(324)를 포함할 수 있다. 선택적으로, 메시지(348)는 수신자 리스트(350)를 더 포함할 수 있다. 수신자 리스트는 발신 클라이언트(202)에서 선택된 수신자 리스트일 수 있다. 예를 들어, 브로드캐스트 시나리오에서, 발신 클라이언트(202)는 전체 연락처 리스트를 수신자 리스트에 자동으로 추가할 수 있다. 일부 실시예들에서, 서버(204)가 발신 클라이언트의 연락처 리스트를 저장하는 경우, 발신 사용자가 메시지를 브로드캐스트로서 전송하기를 원할 때 수신자 리스트(350)는 브로드캐스트 플래그로 대체될 수 있다. 서버(204)는 브로드캐스트 플래그를 서버에 의해 저장된 연락처 리스트의 연락처들 각각에 대한 임시 컨텐츠 메시지를 송신하기 위한 명령으로서 해석할 수 있다(이후에 논의되는 바와 같이 필터링에 따름). 발신 사용자가 임시 컨텐츠 메시지를 수신하기 위해 수신자들의 그룹을 선택하면, 이후 수신자 리스트(350)는 그룹의 선택된 멤버들을 포함할 수 있다.
서버-측 팬 아웃을 사용하는 예시적인 실시예들에서, 서버는 도 3e에 도시된 바와 같이 임시 컨텐츠 메시지(348)를 수신할 수 있고, 메시지가 팬 아웃될 후보들을 결정하기 위해 수신자 리스트(350)를 사용할 수 있다. 그 후, 서버는, 수신자들이 임시 컨텐츠 메시지가 전송된 다른 사용자 리스트를 수신하지 않기 위해 메시지로부터 수신자 리스트(350)를 제거할 수 있다.
암호화된 컨텐츠(324)는 메시지(348)의 컨텐츠(324)를 공유된 임시 컨텐츠를 나타내는 것으로 지정하는 임시 컨텐츠 플래그(352)를 포함할 수 있다. 종단 간 암호화를 유지하기 위해 임시 컨텐츠가 메시지들의 형태로 전송될 수 있지만, 임시 컨텐츠 플래그(352)의 존재는 수신 클라이언트(212)에게 메시지(348)가 대화에서 정상적인 메시지가 아닌 임시 컨텐츠 메시지로서 처리되고 디스플레이되어야한다는 것을 나타낼 수 있다.
컨텐츠(324)는 또한 썸네일(354)을 포함할 수 있다. 썸네일(354)은 덜 상세하고, 해상도가 낮고, 컨텐츠의 제한된 부분을 나타내는 등의 업로드된 컨텐츠의 버전을 나타낼 수 있다. 대안으로 또는 추가로, 썸네일(354)은 컨텐츠의 상징적인 표현일 수 있다. 상징적인 표현은 컨텐츠의 상이한 유형들에 따라 다를 수 있다 - 예를 들어, 오디오 레코딩을 포함하는 컨텐츠는 플레이 버튼의 뮤직 노트를 디스플레이하는 아이콘에 의해 나타날 수 있는 반면, 위치 태그는 지도 핀 또는 지구를 디스플레이하는 아이콘에 의해 표현될 수 있다. 상징적인 표현 대신, 썸네일(354)은 미디어 타입에 대한 플래그 또는 설명을 포함할 수 있어서, 미디어 타입에 대응하는 수신 클라이언트 상에 로컬로 저장된 상징적인 표현이 선택되어 사용될 수 있다.
컨텐츠(324)는 썸네일(354)에 대응하는 컨텐츠 아이템이 블로브 스토어(210)로부터 검색되는 것을 허용하는 미디어 메시지 컨텐츠(356)를 더 포함할 수 있다. 예를 들어, 미디어 메시지 컨텐츠(356)는 도 3d의 미디어 메시지(334), 특히 암호화 키(336) 및 포인터(342) 또는 블로브 스토어(210)의 컨텐츠에 대한 링크와 관련하여 상술된 아이템들을 포함할 수 있다.
위에서 언급한 바와 같이, 암호화 키(336)는 블로브 스토어(210)에 저장된 미디어를 암호화하는 데 사용된다. 임시 컨텐츠 메시지를 전송할 때, 발신 클라이언트(202)는 암호화 키(336)로 미디어를 암호화한 다음, 임시 컨텐츠 메시지(348)의 일부로서 암호화 키(336)를 송신할 수 있다. 임시 컨텐츠 메시지(348)가 다수의 수신자들에게 팬 아웃 될 때, 각각은 동일한 암호화 키(336)의 사본을 가질 것이고, 따라서 블로브 스토어에서 동일한 암호화된 블로브(346)에 액세스할 수 있다. 따라서, 첨부물의 여러 사본들(예를 들어, 각 수신 사용자마다 하나씩)은 개별적으로 암호화되고 블로브 스토어에 업로드될 필요가 없다. 또한, 발신 클라이언트(202)로부터 더 적은 네트워크 메시지들이 송신될 필요가 있고, 개별 수신 클라이언트(212)에 할당된 각각의 암호화 키(336)마다 하나씩 별도의 메시지를 송신할 필요가 없다.
발신 클라이언트의 관점에서 임시 컨텐츠의 수신자들이 변경되면, (공유된 컨텐츠 아이템이 이전에 전송된 것과 동일한 미디어인 경우에도) 새로운 수신자 리스트에 대해 새로운 암호화 키(336)가 생성될 수 있다. 다시 말하면, 암호화 키(336)는 새로운 수신자들을 임시 컨텐츠 메시지 또는 다른 수신자 리스트를 갖는 새로운 임시 컨텐츠 메시지들에 추가하기 위해 재사용되지 않는다. 이 프라이버시 모델은 암호화 강도를 유지하고 사용자가 임시 컨텐츠 메시지에서 미디어 객체의 위치를 어떻게든지 찾을 수 있는 경우, 사용자가 암호화 키(336)를 배포한 원래의 송신에 포함되지 않으면 사용자가 그 미디어 객체에 액세스할 수 없도록 보장한다. 따라서, 미디어 객체에 대한 액세스가 보다 효과적으로 보안될 수 있다.
서버가 특정 수신자 클라이언트들에게만 보이는 방식으로 메시지(348)에서 자체적으로 암호화되는 암호화 키(336)에 액세스할 수 없기 때문에, 서버는 블로 브 스토어(210)에 업로드된 미디어를 해독할 수 없다.
전술한 바와 같이, 임시 컨텐츠 메시지들(및 다른 유형의 메시지들)은 브로드캐스트 또는 그룹 메시지들을 위해 서버(204)로부터 팬 아웃 될 수 있다. 다시 말해서, 사용자들의 그룹에 메시지를 전송하고자하는 클라이언트는 단일 메시지를 서버(204)에 송신할 수 있고, 이후 서버(204)에 의해 n개의 다른 그룹 멤버들 (또는 n개의 다른 브로드캐스트 수신자들)에게 n번 배포된다.
일부 실시예들은 대안으로 클라이언트-측 팬 아웃 절차와 관련하여 사용될 수 있고, 여기서 클라이언트는 n개의 다른 그룹 멤버들 또는 브로드캐스트 수신자들에게 단일 메시지를 n번의 다른 횟수에 송신한다. 클라이언트 측 팬 아웃과 비교하여 서버-측 팬 아웃을 선호하는 한 가지 이유는 효율성이다: 서버 측 팬 아웃 절차에서, 클라이언트는 클라이언트 팬 아웃 절차에서 전송되어야하는 n개의 메시지들과 대조적으로 단일 메시지만을 서버에 송신할 필요가 있다. 또한, 서버 측 팬 아웃은 서버(204)가 본 명세서에 설명된 필터링 절차와 같은 네트워크 효율을 개선하고 메시징 스팸을 감소시키기 위한 절차들을 구현하는 것을 허용한다. 쌍으로 암호화된 세션들을 개발하기 위해 위에서 설명된 절차들은 그룹들 또는 브로드캐스트 수신자들에게 전송된 대부분의 메시지들에 대해 효율적인 서버-측 팬 아웃을 달성한다.
효율적인 그룹 메시징이 신호 메시징 프로토콜의 발신자 키 구성요소를 사용하여 달성될 수 있다. 더 구체적으로, 그룹 멤버가 그룹에 메시지를 처음으로 보낼 때, 발신자는 랜덤 32 바이트 체 인 키와 랜덤 Curve25519 서명 키 키 쌍을 생성할 수 있다. 발신자는 서명 키의 32 바이트 체인 키와 공개 키를 발신자 키 메시지로 결합할 수 있다. 발신자는 상술된 쌍 메시징 프로토콜(pairwise messaging protocol)을 사용하여 그룹의 각 멤버에 대한 발신자 키를 개별적으로 암호화할 수 있다.
그룹에 대한 모든 후속 메시지들에 대해, 발신자는 체인 키에서 메시지 키를 파생하고 체인 키를 업데이트할 수 있다. 발신자는 CBC 모드에서 AES256을 사용하여 메시지를 암호화하고 서명 키를 사용하여 암호문에 서명할 수 있다. 발신자는 단일 암호문 메시지를 서버로 전송할 수 있고, 서버-측 팬 아웃을 모든 그룹 수신자들에게 수행한다. 메시지 발신자의 체인 키의 래칫(ratchet)은 순방향 비밀을 제공한다. 그룹 구성원이 떠날 때마다, 모든 그룹 참가자들이 그들의 발신자 키를 지우고 다시 시작한다.
서버 측 팬 아웃의 한 가지 장점은 서버(204)가 스팸을 줄이기 위해 수신된 임시 컨텐츠 메시지에 대해 필터링을 수행할 수 있다는 것이다. 예를 들어, 서버(204)는 발신 클라이언트(202)로부터 브로드캐스트 임시 컨텐츠 메시지를 수신할 수 있고, 발신 클라이언트(202)와 연관된 사용자 계정과 대칭 관계를 갖는 사용자 계정들에만 임시 컨텐츠 메시지를 전달할 수 있다. 관계 대칭의 예가 도 3f에 도시된다.
도 3f는 다양한 사용자들의 연락처 리스트(312-i)를 도시한다. 각각의 연락처 리스트(312-i)는 하나 이상의 연락처들(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 사용자의 ID(314-2)를 포함하고, 제 2 사용자의 연락처 리스트(312-2)는 제 1 사용자의 ID(314-1)를 포함하기 때문에, 제 1 사용자와 제 2 사용자는 대칭 관계를 갖는다고 한다. 이러한 관계는 예를 들어, 제 1 사용자와 제 2 사용자가 모두 그들의 모바일 장치들의 연락처 리스트에 서로 나열된 경우에 발생할 수 있다.
제 3 사용자의 연락처 리스트(312-3)는 제 2 사용자의 ID(314-2) 및 제 4 사용자의 ID(314-4)를 포함하지만, 제 1 사용자의 ID(314-1)를 포함하지 않는다. 제 1 사용자의 연락처 리스트(312-1)는 제 3 사용자의 ID(314-3)를 포함하지만, 제 3 사용자의 연락처 리스트(312-3)는 제 1 사용자의 ID(314-1)를 포함하지 않기 때문에, 제 1 사용자와 제 3 사용자 사이의 관계가 비대칭이라고 한다. 발신 사용자의 연락처 리스트가 잠재적인 수신자를 포함하지만 수신자의 연락처 리스트가 발신 사용자를 포함하지 않는 이러한 조건은 본 명세서에서 순방향 비대칭으로 지칭된다.
제 4 사용자의 연락처 리스트(312-4)는 제 1 사용자의 ID(314-1), 제 2 사용자의 ID(314-2), 및 제 3 사용자의 ID(314-3)를 포함한다. 제 4 사용자의 연락처 리스트(312-4)는 제 1 사용자의 ID(314-1)를 포함하지만 제 1 사용자의 연락처 리스트(312-1)는 제 4 사용자의 ID(314-4)를 포함하지 않기 때문에, 제 1 사용자와 제 4 사용자 사이의 관계도 비대칭이다. 발신 사용자의 연락처 리스트가 잠재적인 수신자를 포함하지 않지만 수신자의 연락처 리스트가 발신 사용자를 포함하는 그러한 조건은 본 명세서에서 역 비대칭으로 지칭된다.
예시적인 실시예들에 따르면, 서버(204)가 발신 클라이언트(202)에 의해 브로드캐스트 될(또는 그룹으로 전송될) 임시 컨텐츠 메시지(또는 임의의 유형의 메시지)를 수신할 때, 서버(204)는 발신 사용자의 연락처 리스트를 검색할 수 있고, 이 리스트를 브로드캐스트의 잠재적인 수신자들의 초기 후보 리스트로서 사용할 수 있다. 후보 리스트 내의 각각의 사용자 ID에 대해, 그 사용자의 연락처 리스트가 검색되고 검토되어 발신 사용자가 수신자의 연락처 리스트에 존재하는지를 결정할 수 있다. 발신자와 잠재적 수신자 간의 관계가 대칭인 경우, 수신자들은 후보자 리스트에 남아있을 수 있다. 관계가 비대칭이면(예를 들어, 잠재적 수신자의 연락처 리스트가 발신 사용자를 포함하지 않으면), 이후 잠재적인 수신자가 후보자 리스트에서 필터링될 수 있다. 이러한 절차는 스팸을 줄이는데 도움이 될 수 있다 - 예를 들어, 이 필터링은 스패머가 승인되지 않은 수신자들을 그들 자신의 연락처 리스트에 추가한 다음 해당 수신자들에게 메시지를 브로드캐스트하지 못하게 한다.
임시 컨텐츠 메시지를 수신한 사람에 대한 결정은 임시 컨텐츠 메시지가 전송될 때 이루어질 수 있다. 따라서, 임시 컨텐츠 메시지가 전송된 후 관계가 대칭이 되면, 원래 필터링된 수신자들은 임시 컨텐츠 메시지를 수신하지 않을 것이다. 예를 들어, 도 3f에 도시된 예시에서, 제 1 사용자가 임시 컨텐츠 메시지를 전송 한 후, 제 3 사용자가 제 1 사용자의 ID(314-1)를 그의 연락처 리스트(312-3)에 추가하면(따라서, 제 1 사용자와 제 3 사용자 사이의 관계를 대칭으로 만든다), 관계가 대칭이 된 후에 임시 컨텐츠 메시지가 제 3 사용자에게 전송되지 않는다. 유사하게, 제 1 사용자가 임시 컨텐츠 메시지를 전송한 후, 제 1 사용자가 제 4 사용자의 ID(314-4)를 제 1 사용자의 연락처 리스트(312-1)에 추가하면, 관계가 대칭이 된 후에 임시 컨텐츠 메시지가 제 4 사용자에게 전송되지 않는다. 두 경우 모두, 제 1 사용자에 의해 전송된 미래의 임시 컨텐츠 메시지들은 이제 대칭적인 관계의 특성으로 인해 제 3 사용자 및 제 4 사용자에게 가시화된다.
그러나, 일부 실시예들에서, 순방향 비대칭으로 인해 후보자 리스트에서 원래 필터링된 수신자들은, 관계가 나중에 대칭이 되면 이전의 임시 컨텐츠 메시지를 수신할 수 있다. 역 비대칭 관계를 대칭 관계로 변경하는 것은 그러한 새로운 전송을 야기하지 않을 수 있다. 그러한 실시예들은 발신 사용자의 프라이버시를 보존하는 것을 돕는다. 순방향 비대칭의 경우, 발신 사용자는 임시 컨텐츠 메시지 브로드캐스트를 수신할 사용자들을 고려할 기회를 가지고 있다. 비대칭이 순방향 이었기 때문에, 제 1 사용자는 비대칭 수신자가 임시 컨텐츠 메시지를 수신할 수 있다는 것을 적어도 알고 있었다(수신자가 제 1 사용자의 연락처 리스트(312-1)에 있기 때문에).
반면에, 역 비대칭의 경우, 제 1 사용자는 제 1 사용자의 연락처 리스트(312-1)에 잠재적인 수신자를 포함하지 않았으므로, 임시 컨텐츠 메시지 브로드캐스트가 수신자에게 전송될 수 있다고 고려하지 않았다. 그러므로, 비대칭 관계가 나중에 대칭이 되면, 새로운 수신자는 이전의 임시 컨텐츠 메시지들을 자동으로 수신해서는 안 된다. 제 1 사용자가 새로운 수신자가 이전의 임시 컨텐츠 메시지들을 수신하기를 원하는 경우, 이후 사용자는 모든, 일부 또는 개별의 임시 컨텐츠 메시지들을 수신자에게 전달하는 옵션을 제공받을 수 있다.
또 다른 실시예들에서, 다른 사용자와의 대칭을 확립하는 것은 원래 비대칭이 순방향인지 역방향인지에 관계없이 이전의 임시 컨텐츠 메시지들이 다른 사용자에게 보이게 야기할 수 있다.
예시적인 실시예들의 이러한 양상들 및 다른 양상들은 도 4에 도시된 데이터 흐름도와 관련하여 다음에 설명된다.
예시적인 정보 교환
도 4는 예시적인 실시예에 따른 발신 클라이언트, 중간 서버, 블로브 서버, 수신 클라이언트, 및 제 3 클라이언트 사이의 정보 교환을 도시하는 예시적인 데이터 흐름도이다.
발신 클라이언트는 통신 서비스로 계정을 처음 생성할 때 하나 이상의 계정 생성 메시지들(402)을 전송할 수 있다. 계정 생성 메시지들(402)은 서비스에 가입하고 서비스의 응용 프로그램을 처음 설치한 결과로 전송될 수 있다. 사용자가 새 장치에 처음 로그인하거나 그들의 하드웨어 또는 소프트웨어 등을 업데이트할 때 추가의 유사한 메시지들이 전송될 수 있다. 계정 생성 메시지들(402)은 자동으로 생성된 정보 및/또는 발신 클라이언트의 사용자로부터의 정보를 포함할 수 있다. 계정 생성 메시지들(402)은 서버의 클라이언트 데이터베이스(206)를 채우는 데 사용될 수 있다.
유사하게, 수신 클라이언트는 통신 서비스로 계정을 생성할 수 있고, 따라서 계정 생성 메시지들(404)을 중간 서버로 전송할 수 있다.
발신 클라이언트가 수신 클라이언트와 통신하기를 원하는 경우, 발신 클라이언트는 전술한 바와 같이 세션 생성 요청(406)을 중간 서버에 전송하여 수신 클라이언트의 공개 키들을 요청한다. 서버는 세션 데이터(408)(예를 들어, 수신자의 공개 신원키, 서명된 사전 키, 및 일회성 사전 키를 포함)로 응답한다.
이 절차(세션 생성 메시지들(406) 및 세션 데이터 메시지들(408)을 서버와 교환하는 것)는 각각의 발신자-수신자 쌍마다 수행될 수 있다. 발신자가 수신자에게 처음 연락할 때 (또는 세션이 이전에 만료된 후 처음으로 수신자에게 연락할 때) 수행될 수 있다. 또한, 발신자가 대칭 관계를 갖고 암호화된 세션이 이전에 설정되지 않은 발신자의 주소록에서 각 수신자에 대해 발신자가 브로드캐스트 임시 컨텐츠 메시지와 같은 브로드캐스트 메시지를 전송할 때 수행될 수 있다.
발신 클라이언트가 미디어(410)와 같은 컨텐츠를 포함하는 임시 컨텐츠 메시지를 전송하고자 할 때, 발신 클라이언트는 도 3d와 관련하여 위에서 논의된 바와 같이 미디어(410)를 블로브 서버에 업로드할 수 있다. 그 후, 발신 클라이언트는 임시 컨텐츠 메시지(412)를 서버에 전송할 수 있다. 서버는 본원에 설명된 바와 같이 필터링을 수행할 수 있고, 발신 사용자의 연락처 리스트에서 어느 수신자가 임시 컨텐츠 메시지(412)를 수신할 것인지를 결정할 수 있다. 그 후, 서버는 각각의 임시 컨텐츠 메시지들(414)을 필터링된 리스트의 각 수신자에게 전송할 수 있다.
위에서 언급한 바와 같이, 임시 컨텐츠 메시지는 썸네일 및 블로브 스토어의 미디어에 대한 링크를 포함할 수 있다. 링크를 활성화할 때(예를 들어, 썸네일의 표현을 클릭하거나 상호작용함으로써), 수신 클라이언트는 미디어 요청(416)을 생성하여 블로브 스토어로부터 미디어를 요청할 수 있다. 블로브 스토어는 도 3d와 관련하여 위에서 설명된 바와 같이 미디어 응답(420)으로 미디어 요청에 응답할 수 있다. 따라서, 미디어는 수신 클라이언트로 다운로드 될 수 있다.
일부 실시예들에서, 링크는 임시적일 수 있다. 예를 들어, 링크는 미리 결정된 시간 기간(예를 들어, 24시간) 동안 또는 미리 결정된 수의 뷰들(예를 들어, 한 번의 사용, 두 번의 사용 등) 동안 유효할 수 있다. 이와 같이, 수신 클라이언트는 블로브 서버로부터 미디어를 검색하지만, 전체 화면 디스플레이를 제시한 후에 미디어를 삭제하도록 구성될 수 있다. 일부 실시예들에서, 예를 들어, 링크가 미리 결정된 시간 기간 후에 만료될 때, 수신 클라이언트는 미리 결정된 시간 기간 후에 로컬 스토어로부터 미디어를 삭제하고 동시에 링크를 비활성으로 표시하여 링크가 다시 미디어를 검색하는데 사용될 수 없도록 구성될 수 있다. 다른 실시예들에서, 예를 들어, 미리 정해진 수의 뷰들 후에 링크가 만료될 때, 수신 클라이언트는 전체 화면 뷰가 미리 정해진 횟수만큼 제시된 후에 로컬 스토어로부터 미디어를 삭제하고 동시에 링크를 비활성으로 표시하여 링크가 다시 미디어를 검색하는 데 사용될 수 없도록 구성될 수 있다. 또 다른 실시예들에서, 수신 클라이언트는 검색된 미디어를 임시 스토어에 저장하고 전체 화면 뷰가 제시된 후에 매번 미디어를 삭제하도록 구성될 수 있다. 그러한 실시예들에서, 링크는 특정 기간 동안 (예를 들어, 미리 정해진 수의 뷰들 또는 미리 정해진 시간 동안) 활성 상태로 유지될 수 있고, 이 기간 동안 미디어를 검색하는데 사용될 수 있다. 링크는 기간이 종료된 후에 비활성화될 수 있고, 이 시점에서 링크는 블로브 스토어에서 미디어를 검색하는 데 사용되지 않을 수 있다.
블로브 스토어에 미디어를 원격으로 저장하고 특정 조건에서 비활성화될 수 있는 미디어에 대한 링크를 제공함으로써, 일부 또는 모든 링크들이 만료되기 시작한 후에도 미디어는 스토어에 남아있을 수 있다. 예를 들어, 링크들이 한 번 보기 후에 만료되도록 구성된 경우, 다른 수신 사용자들은 다른 시간에 전체 화면 프리젠테이션을 볼 수 있다. 미디어는 블로브 서버에 남아있을 수 있고 (예를 들어, 모든 링크들이 만료될 때까지) 비활성 링크들을 가진 사용자들은 단순히 미디어에 접근할 수 없다. 한 편, 비활성화 링크들을 갖는 사용자들은 그들의 링크들이 만료할 때 까지, 블로브 스토어를 통해 미디어에 액세스할 수 있도록 계속할 수 있다.
위에서 언급한 바와 같이, 사용자들은 임시 컨텐츠 메시지들에 응답할 수 있다. 예를 들어, 수신 클라이언트는 중간 서버에 응답(422)을 제출할 수 있다. 중간 서버는 적절한 대화 또는 스레드에 대한 응답을 (대화가 참가자들에 의해 고유하게 정의될 수 있는) 할당할 수 있다. 이를 위해, 중간 서버는 응답을 (예를 들어) 스레드 또는 대화 식별자와 연관시킬 수 있다. 대화에 응답을 할당한 후, 서버는 (최소한) 응답(424)을 발신 사용자에게 전송할 수 있다.
예시적인 실시예들에 따르면, 원본 임시 컨텐츠 메시지가 브로드캐스트로서 전송될 때, 발신 사용자의 임시 컨텐츠 메시지에 대한 수신 사용자에 의한 응답이 발신 사용자와 수신 사용자 사이의 일대일 대화에 할당될 수 있다. 임시 컨텐츠 메시지가 그룹으로 전송된 경우, 그 후 응답들은 일대일로 전송될 수 있거나 그룹과 관련된 대화에 할당될 수 있다. 응답을 그룹 대화에 할당할 때, 서버는 각 쌍 또는 그룹의 멤버들 사이에 쌍으로 암호화된 세션들이 존재하는지 확인할 수 있다. 그러한 세션들이 존재하지 않으면, 응답은 수신 사용자와 발신자 사이의 일대일 대화로 전송될 수 있다. 임시 컨텐츠 메시지(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)의 단계들은 사용자가 통신 서비스에 초기에 등록할 때, 및/또는 사용자가 새로운 장치에 사인(sign in)할 때, 새로운 장치에 통신 서비스의 소프트웨어를 설치하거나, 기존 소프트웨어 또는 하드웨어 등을 업데이트하는 등의 경우에 수행될 수 있다.
블록(504)에서, 시스템은 선택적으로 하나 이상의 다른 사용자들과 암호화된 통신 세션을 개시할 수 있다. 시스템은 메시지들을 전송하고 도 3b와 관련하여 기술된 것과 유사한 동작들을 수행할 수 있다. 블록(504)의 단계들은 사용자가 현재 암호화된 세션이 존재하지 않는 사용자와 통신을 시도할 때, 사용자가 통신 소프트웨어를 업데이트 할 때, 수행될 수 있다.
블록(506)에서, 시스템은 통신 서비스의 임시 컨텐츠 메시지 기능에 진입할 수 있다. 임시 컨텐츠 메시지 엔트리의 예시는 도 5b와 관련하여 더 상세히 설명된다. 임시 컨텐츠 메시지 엔트리의 부분으로서, 컨텐츠는 임시 컨텐츠 메시지에 대해 선택될 수 있고, 임시 컨텐츠 메시지가 생성될 수 있다.
블록(508)에서, 시스템은 선택적으로 임시 컨텐츠 메시지에 대한 수신자들의 그룹의 선택을 수신할 수 있다. 사용자가 발신 클라이언트의 연락처 리스트 중에서 수신자들을 선택하는 것응 허용하는 인터페이스가 제공될 수 있다. 선택된 수신자 리스트는 블록(514)에서 생성된 임시 컨텐츠 메시지에 로드될 수 있다. 특정 수신자들이 선택되지 않으면, 임시 컨텐츠 메시지는 발신 클라이언트의 연락처 리스트의 각 멤버로의 전송을 위해 플래그될 수 있다. 연락처 리스트는 블록(514)에서 생성된 임시 컨텐츠 메시지로 로드될 수 있다.
블록(510)에서, 시스템은 블록(508)에서 식별된 임의의 잠재적인 수신자들과의 암호화된 통신 세션을 선택적으로 개시할 수 있고, 블록(504)에서 세션이 이전에 개시되지 않는다.
블록(512)에서, 시스템은 블록(506)에서 선택된 컨텐츠를 암호화하고, 암호화된 컨텐츠를 미디어 서버에 업로드 할 수 있다. 이를 위해, 시스템은 메시지들을 생성하고 도 3d와 관련하여 설명된 것과 유사한 동작들을 수행할 수 있다.
블록(514)에서, 시스템은 임시 컨텐츠를 포함하는 메시지를 생성할 수 있다. 컨텐츠들은 메시지가 임시 컨텐츠 메시지임을 나타내는 임시 컨텐츠 플래그를 포함할 수 있다. 컨텐츠들은 이전에 기술된 바와 같이 암호화될 수 있고, 메시지를 해독하기 위한 공개 키 및 블록(508)에서 생성된 수신자 리스트로 패키징될 수 있다.
블록(516)에서, 시스템은 블록(514)에서 생성된 메시지를 중간 서버로 전송할 수 있다. 서버는 메시지를 수신할 수 있고, 수신자 리스트를 제거할 수 있고, 메시지를 리스트 내의 수신자들에게 팬 아웃 할 수 있다.
블록(518)에서, 시스템은 서버로부터 임시 컨텐츠 메시지에 대한 응답을 수신할 수 있다. 응답은 대화 ID 및 하나 이상의 참가자들과 연관될 수 있다. 블록(520)에서, 시스템은 대화 ID와 연관된 기존 대화를 식별하거나, 대화 ID를 갖고 하나 이상의 참가자들을 포함하는 새로운 대화를 생성할 수 있다. 원본 임시 컨텐츠 메시지는 대화에 메시지로서 포함될 수 있고, 블록(518)에서 수신된 응답은 대화에 추가될 수 있다. 그 후, 처리가 종료될 수 있다.
도 5b는 컨텐츠 공유 인터페이스로의 입력에 대한 요청을 처리하기 위해 발신 클라이언트와 같은 시스템에 의해 수행되는 예시적인 로직(550)을 나타내는 흐름도이다.
블록(552)에서, 시스템은 도 1a에 도시된 인터페이스와 같은 통신 애플리케이션에 인터페이스를 제공할 수 있다. 인터페이스는 임시 컨텐츠 인터페이스를 디스플레이하기 위한 임시 컨텐츠 아이콘을 포함할 수 있다. 블록(554)에서, 시스템은 예를 들어, 임시 컨텐츠 아이콘과의 상호 작용을 등록함으로써 임시 컨텐츠 인터페이스에 액세스하는 명령을 수신할 수 있다.
블록(554)에서 명령을 수신하는 것에 응답하여, 블록(556)에서 시스템은 도 1b에 도시된 인터페이스와 같은 임시 컨텐츠 인터페이스를 디스플레이할 수 있고, 인터페이스에서 임시 컨텐츠 상호작용 가능한 요소의 선택을 수신할 수 있다.
블록(558)에서, 시스템은 컨텐츠 공유 선택을 수신한 것에 응답하여 컨텐츠 선택/생성 인터페이스를 제공할 수 있다. 컨텐츠 선택/생성 인터페이스는 공유할 기존 컨텐츠를 선택하거나 새로운 컨텐츠를 생성하기 위한 하나 이상의 옵션들을 제공할 수 있다. 이러한 인터페이스들의 예시들이 도 1c 및 도 1l에 도시된다.
블록(560)에서, 시스템은 컨텐츠 인터페이스를 통해 공유하기 위한 컨텐츠를 수신할 수 있다. 컨텐츠는 인터페이스에서 선택될 수 있고, 인터페이스를 통해 생성될 수 있다. 그 후, 처리가 종료될 수 있다.
도 6a는 임시 컨텐츠 메시지의 전송을 처리하기 위해 중간 서버와 같은 시스템에 의해 수행되는 예시적인 로직(600)을 도시하는 흐름도이다.
블록(602)에서, 시스템은 클라이언트로부터 계정 설정 요청을 수신할 수 있고, 블록(604)에서 계정 설정을 수행할 수 있다. 시스템은 블록(606)에서 암호화 세션을 개시하라는 요청을 수신할 수 있고, 블록(608)에서 암호화 세션을 개시할 수 있다. 이들 블록들은 일반적으로 도 5a의 블록들(502 내지 504)과 관련하여 설명된 클라이언트 측 단계들에 대응하고, 간결성을 위해 추가 논의는 본원에서 생략된다.
블록(610)에서, 시스템은 발신 클라이언트로부터 임시 컨텐츠 메시지를 수신할 수 있다. 임시 컨텐츠 메시지는 메시지로서 수신될 수 있고, 일부 실시예들에서, 발신 클라이언트로부터 수신된 다른 (비-임시적 컨텐츠) 메시지들과 구별되지 않을 수 있다. 다른 실시예들에서, 메시지는 서버에 액세스 가능한 메시지의 일부에 임시 컨텐츠를 포함하는 것으로 플래그될 수 있고, 서버는 메시지를 임시 컨텐츠 메시지로 식별하고 지정된 임시-컨텐츠 특정 처리를 수행할 수 있다.
블록(612)에서, 시스템은 메시지로부터 수신자 리스트를 검색할 수 있다. 수신자 리스트가 존재하지 않으면(예를 들어, 메시지의 수신자 리스트에 지정된 미리 결정된 위치가 비어 있으면), 그 후 시스템은 메시지가 발신 사용자로부터 발신 사용자의 연락처 리스트의 각 연락처들로 브로드캐스트되는 것으로 의도된다는 것을 가정할 수 있다.
블록(614)에서, 시스템은 원치 않은 메시지들을 감소하도록 연락처 리스트를 필터링할 수 있다. 블록(614)은 도 6b와 관련하여 더 상세히 기술된다.
블록(616)에서, 시스템은 필터링된 리스트의 수신자들에게 원본 메시지를 팬 아웃 할 수 있다. 전송된 메시지들은 블록(612)에서 식별된 수신자 리스트를 생략할 수 있지만, 그렇지 않으면 원본 메시지에 포함된 컨텐츠 및 해독 키들을 포함할 수 있다.
블록(618)에서, 시스템은 하나 이상의 수신자들로부터 블록(616)에서 메시지가 전송된 수신자들에게 임시 컨텐츠 메시지에 대한 응답을 수신할 수 있다. 원본 메시지가 그룹 메시지 또는 브로드캐스트로 전송되었는지 여부에 따라서, 시스템은 다른 유형의 대화들에 대한 응답들을 할당할 수 있다. 따라서, 블록(620)에서, 시스템은 원본 임시 컨텐츠 메시지가 브로드캐스트 메시지인지 그룹 메시지인지 여부를 결정할 수 있다. 원본 메시지가 수신자들을 지정하지 않았거나 발신 사용자의 연락처 리스트에 있는 모든 수신자들을 지정했거나, 그렇지 않으면 브로드캐스트 메시지로 플래그되면, 그 후 시스템은 원본 임시 컨텐츠 메시지가 브로드캐스트의 일부로 전송된 것으로 결정할 수 있다. 반면에, 원본 메시지가 발신자의 전체 연락처 리스트 보다 적은 수의 수신자들을 지정했거나 수신자들을 식별하기 위해 그룹 대화에 대화 ID를 지정했거나, 그렇지 않고 그룹 메시지로 플래그되면, 그 후 시스템은 원본 임시 컨텐츠 메시지가 그룹 메시지의 일부로서 전송되었다고 결정할 수 있다.
임시 컨텐츠 메시지가 브로드캐스트로서 전송되었다면, 그 후 블록(622)에서 시스템은 원래 발신자와 응답 수신자 사이의 일대일 대화에 대한 응답을 할당할 수 있다. 시스템은 각 사용자와 관련된 활성 대화 리스트를 유지할 수 있고, 이 두 사용자들 사이에 일대일 대화가 이미 있는지 결정하기 위해 리스트를 검사할 수 있다. 그렇다면, 기존 대화의 대화 ID가 검색될 수 있고, 응답은 대화 ID와 연관될 수 있다(원본 임시 컨텐츠 메시지는 대화 ID와 연관될 수 있다). 그렇지 않다면, 새로운 대화 ID가 생성되어 두 사용자들과 연관될 수 있다. 응답 및 원본 메시지는 새로운 대화 ID와 연관될 수 있다.
원본 임시 컨텐츠 메시지가 그룹 메시지로서 전송되었다면, 그 후, 블록(624)에서 시스템은 그룹의 각 사용자 쌍이 암호화된 세션과 연관되어 있는지 확인할 수 있다. 이 블록은 그룹 메시지들의 보안을 보장하기 위해 사용될 수 있다. 임시 컨텐츠의 원래 발신자와 임시 컨텐츠의 각 수신자들 사이에 쌍으로 암호화된 세션들이 존재할 가능성이 있지만(도 5a의 블록들(504 및/또는 510)에서 수행됨), 수신자들이 서로 쌍으로 암호화된 세션들을 가지고 있다고 가정할 필요는 없다. 필요하다면, 시스템은 쌍으로 암호화된 세션들을 갖지 않는 임의의 수신자들의 쌍 사이에서 암호화된 세션들을 개시할 수 있다.
그 후, 처리는 블록(626)으로 진행할 수 있고, 여기서 시스템은 응답을 그룹 대화에 할당한다. 시스템은 상기-설명된 대화 리스트를 조사하여 이들 발신자와 수신자들 사이에 그룹 대화가 이미 존재하는지 여부를 결정할 수 있다. 그렇다면, 기존 대화의 대화 ID가 검색될 수 있고, 응답은 대화 ID와 연관될 수 있다(원본 임시 컨텐츠 메시지는 대화 ID와 연관될 수 있다). 그렇지 않다면, 새로운 대화 ID가 생성되어 참가자들과 연관될 수 있다. 응답 및 원본 메시지는 새로운 대화 ID와 연관될 수 있다.
블록(628)에서, 시스템은 블록(622) 또는 블록(626)에서 식별된 대화의 일부로서 응답을 전송할 수 있다. 그 후, 처리가 종료될 수 있다.
도 6b는 임시 컨텐츠 메시지를 수신할 때 연락처 리스트를 필터링하기 위해 중간 서버와 같은 시스템에 의해 수행되는 예시적인 로직(650)을 도시하는 흐름도이다. 임시 컨텐츠 메시지는 브로드캐스트, 또는 지정된 수신자들의 그룹으로 전송될 수 있다.
블록(652)에서, 시스템은 임시 컨텐츠 메시지의 의도된 수신자 리스트에 액세스할 수 있다. 브로드캐스트의 경우, 의도된 수신자들의 초기 리스트는 발신 사용자의 연락처 리스트일 수 있다. 지정된 수신자들의 그룹(예를 들어, 대화 참가자들, 선택된 그룹 등)의 경우, 발신 클라이언트는 리스트를 제공하거나, 대화 또는 스레드 ID를 제공하거나(대화 참여자들이 파생될 수 있음), 일부 다른 방법으로 수신자들을 지정할 수 있다. 일부 실시예들에서, 발신 클라이언트는 또한 브로드캐스트의 이벤트에서 수신자들의 그룹을 지정할 수 있다. 어느 경우이든, 발신 클라이언트는 의도된 수신자 리스트를 임시 컨텐츠 메시지에 첨부할 수 있다.
블록(654)에서, 시스템은 더 이상의 잠재적인 수신자들이 처리될 것인지를 결정할 수 있다. 그렇지 않다면, 그 후 처리는 블록(655)으로 진행할 수 있고, 시스템은 필터링된 수신자 리스트를 메시지의 수신자들의 최종 리스트로 리턴할 수 있다.
블록(654)에서, 시스템이 더 많은 잠재적인 수신자들이 처리될 것으로 결정하면, 그 후 처리는 블록(658)으로 처리할 수 있고, 발신 사용자의 연락처 리스트에서 다음의 잠재적인 수신자가 검토를 위해 선택될 수 있다.
블록(660)에서, 시스템은 선택된 의도된 수신자가 발신자에 의해 차단되었는지를 결정할 수 있다. 예를 들어, 시스템은 발신 사용자의 연락처 리스트에 액세스하여 선택된 의도된 수신자와 관련된 엔트리가 차단된 플래그와 연관되는지를 결정할 수 있다. 그렇다면(즉, 선택된 의도된 수신자가 발신자에 의해 차단됨), 그 후 처리는 블록(662)으로 진행할 수 있고, 선택된 의도된 수신자는 메시지가 전송될 수신자 리스트로부터 제거될 수 있다. 그 후, 처리는 블록(654)으로 리턴할 수 있고, 시스템은 추가 잠재적인 수신자들이 평가를 위해 남아 있는지를 결정할 수 있다.
그렇지 않다면(즉, 선택된 의도된 수신자가 발신자에 의해 차단되지 않음), 그 후, 처리는 블록(664)으로 진행할 수 있다.
블록(664)에서, 시스템은 선택된 의도된 수신자의 연락처 리스트에 액세스할 수 있다. 예를 들어, 시스템은 클라이언트 데이터베이스(206)에 액세스할 수 있고, 선택된 의도된 수신자의 사용자 ID를 기반으로 룩업을 수행할 수 있다. 시스템은 선택된 의도된 수신자와 관련된 연락처 리스트(312)에 액세스할 수 있고, 발신 사용자에 대한 연락서 UID들(314-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)에서, 시스템은 임시 컨텐츠 메시지로서 메시지를 처리할 수 있다. 시스템은 메시지의 내용을 분석하여 미디어의 썸네일(또는 사용될 로컬에 저장된 썸네일을 지정하는 표시기) 및 블로브 스토어에 저장된 미디어에 대한 링크를 검색할 수 있다.
시스템은 임시 컨텐츠 메시지가 순위가 매겨진 순서로 디스플레이될 수 있도록 블록(720)에서 임시 컨텐츠 메시지의 순위를 결정할 수 있다. 블록(720)은 도 7b와 관련하여 더 상세히 설명된다.
블록(722)에서, 시스템은 하나 이상의 임시 컨텐츠 탭들 또는 임시 컨텐츠 메시지들 전용 인터페이스의 일부에 썸네일을 디스플레이할 수 있다. 이러한 인터페이스의 예는 도 1b 및 도 1d와 관련하여 기술된다. 블록(720)에서 수행된 처리의 일부로서, 시스템은 임시 컨텐츠 메시지와 관련된 관심 점수(interest score)를 계산할 수 있다. 최근의 임시 컨텐츠 메시지들(예를 들어, 미리 결정된 기간 내에) 및/또는 미리 정해진 수의 임시 컨텐츠 메시지들은 관심 점수에 기초하여 순위가 매겨져 디스플레이될 수 있다.
블록(724)에서, 시스템은 썸네일의 선택을 수신할 수 있다. 선택은 임시 컨텐츠 메시지 전용 인터페이스의 부분, 대화 메시지 등에서 수신될 수 있다.
블록(726)에서, 시스템은 링크가 현재 활성화되어 있는지를 결정할 수 있다. 예를 들어, 링크는 미리 결정된 시간 후에 또는 컨텐츠가 미리 결정된 횟수만큼 보이게 된 후에 비활성으로 설정될 수 있다. 링크가 활성화되는 조건들은 링크의 일부로 또는 기타 임시 컨텐츠 메시지에 지정될 수 있다. 조건들이 지정되지 않으면, 시스템이 기본 조건들을 적용하거나 링크가 영구적으로 활성 상태로 유지되도록 설정될 수 있다.
링크가 블록(726)에서 현재 활성화되어 있지 않으면, 이후 블록(728)에서 시스템은 컨텐츠를 디스플레이하는 것을 억제할 수 있다. 링크가 블록(726)에서 활성화되면, 이후 처리는 블록(730)으로 진행할 수 있다.
블록(730)에서, 시스템은 링크를 사용하여 컨텐츠를 검색할 수 있고 상기 컨텐츠를 해독할 수 있다. 컨텐츠를 검색하고 해독하는 절차는 도 3d와 관련하여 상술되었다.
블록(732)에서, 시스템은 컨텐츠 아이템의 전체-화면 또는 확대된 표현을 디스플레이할 수 있다. 컨텐츠 아이템의 전체-화면 또는 확대된 표현을 디스플레이 하기 위한 인터페이스들의 예들이 도 1e 내지 도 1i와 관련하여 기술된다.
블록(734)에서, 시스템은 선택적으로 전체-화면 통지를 디스플레이할 때 링크를 비활성으로 표시할 수 있다. 예를 들어, 이것은 컨텐츠에 대한 임시 모델이 컨텐츠가 한 번만 볼 수 있거나, 컨텐츠가 요청될 때마다 수신 클라이언트가 컨텐츠를 다시 다운로드하게 하도록 강요하는 경우에 사용되어, 컨텐츠가 액세스되는 시간 사이에 컨텐츠가 로컬 장치에 남아있지 않도록 할 수 있다.
블록(736)에서, 시스템은 임시 컨텐츠 메시지에 대한 응답을 수신할 수 있다. 예를 들어, 사용자는 전체-화면 프리젠테이션에서 응답 옵션을 선택하고, 임시 컨텐츠 메시지 등을 포함하는 메시지에 응답할 수 있다. 블록(738)에서, 시스템은 서버에 대한 응답을 전송할 수 있다. 이후 처리가 종료될 수 있다.
도 7b는 임시 컨텐츠 메시지들의 순위를 매기기 위해 발신 클라이언트와 같은 시스템에 의해 수행되는 예시적인 로직(750)을 도시하는 흐름도이다.
블록(752)에서, 시스템은 임시 컨텐츠 메시지들을 디스플레이하기 위한 명령을 수신할 수 있다. 예를 들어, 통신 애플리케이션의 인터페이스를 로딩할 때, 하나 이상의 인터페이스 부분들은 임시 컨텐츠 메시지들을 디스플레이하기 위해 전용될 수 있다. 로컬 사용자가 액세스할 수 있는 최근의 임시 컨텐츠 메시지들은 로컬 장치 또는 서버의 큐에 저장될 수 있다. 인터페이스의 부분(들)을 로딩할 때, 시스템은 랭킹 로직(750)에게 큐된 임시 컨텐츠 메시지들(queued ephemeral content messages)의 순위를 매기도록 지시할 수 있다.
시스템은 임시 컨텐츠 메시지들과 연관된 출력 큐(output queue) 또는 사용자 ID 리스트를 설정할 수 있다. UID들은 순위가 매겨진 순서대로 출력 큐 또는 리스트에 배치될 수 있다. 출력 큐 또는 리스트는 초기에 비어있을 수 있고, 임시 컨텐츠 메시지들이 평가될 때 임시 컨텐츠 메시지들과 관련된 UID들이 리스트에 추가될 수 있다.
블록(754)에서, 시스템은 추가 임시 컨텐츠 메시지들이 순위가 유지되는지 여부를 결정할 수 있다. 예를 들어, 시스템은 서버에 의해 수신 클라이언트에게 전송된 최근의 임시 컨텐츠 메시지 리스트를 수신할 수 있다. 리스트는 미리 결정된 시간 내에 수신 클라이언트에게 전송되는 각각의 임시 컨텐츠 메시지를 포함할 수 있거나, 미리 정해진 수의 임시 컨텐츠 메시지들 등을 포함할 수 있다. 블록(754)에서, 시스템은 리스트 상의 모든 임시 컨텐츠 메시지들이 평가되었는지 여부를 결정할 수 있다.
그렇지 않으면, 이후 블록(756)에서, 각 임시 컨텐츠 메시지가 평가될 때 시스템이 순위를 매기는 것을 수행하지 않은 경우, 시스템은 계산된 관심 점수들(이하 설명되는)에 기초하여 임시 컨텐츠 메시지들의 순위를 매길 수 있다. 순위가 매겨진 임시 컨텐츠 메시지들은 순위가 매겨진 순서대로 출력 큐 또는 리스트에 추가될 수 있다. 블록(758)에서, 시스템은 순위가 매겨진 결과들을 리턴할 수 있다.
블록(754)에서 평가를 위해 임시 컨텐츠 메시지가 남아 있으면, 이후 처리가 블록(760)으로 진행할 수 있다. 블록(760)에서, 시스템은 평가될 다음 임시 컨텐츠 메시지를 검색할 수 있다(예를 들어, 서버 또는 로컬 입력 큐로부터).
블록(762)에서, 시스템은 평가 중인 임시 컨텐츠 메시지의 리젠시(regency)를 결정할 수 있다. 임시 컨텐츠 메시지는 타임 스탬프와 관련될 수 있고, 시스템은 타임 스탬프 이후 경과된 시간의 양을 결정할 수 있다. 리젠시 점수는 경과된 시간의 양에 기초하여 계산될 수 있다.
블록(764)에서, 시스템은 임시 컨텐츠 메시지의 발신자를 식별할 수 있다. 발신자는 임시 컨텐츠 메시지와 관련하여 식별될 수 있다. 시스템은 시스템상의 연락처 리스트에서 각각의 연락처들과 관련된 시청률 메트릭을 유지할 수 있고, 발신자에 대응하는 메트릭들은 블록(764)에서 검색될 수 있다.
블록(766)에서, 시스템은 발신자와 관련된 시청률 메트릭들을 평가할 수 있다. 예를 들어, 블록(768)에서, 시스템은 현재 사용자가 최근에 (예를 들어, 미리 결정된 시간 내에) 발신자로부터 임시 컨텐츠 메시지를 검토했는지 여부를 결정할 수 있다. 시스템은 가장 최근에 검토된 임시 컨텐츠 메시지에 기초하여 최근 검토 점수를 계산할 수 있다.
블록(770)에서, 시스템은 현재 사용자가 검토한 발신자로부터 최근 (또는 항상) 임시 컨텐츠 메시지들의 백분율 또는 비율을 결정할 수 있다. 시스템은 백분율 또는 비율에 기초하여 검토된 백분율을 계산할 수 있다.
블록(772)에서, 시스템은 현재 사용자가 발신자로부터 임시 컨텐츠 메시지들을 정기적으로 검토했는지 여부를 결정할 수 있다. 예를 들어, 시스템은 사용자가 일정 기간 동안 얼마나 자주 발신자의 임시 컨텐츠 메시지들을 빈도의 함수로서 검토하는지를 결정할 수 있다. 검토의 규칙성에 기초하여, 규칙적인 검토 점수가 계산될 수 있다.
블록(774)에서, 시스템은 블록들(762 및 766)에서 평가된 메트릭들에 기초하여 관심 점수를 계산할 수 있다. 메트릭들은 관심 점수에 도달하기 위해 가중되고 누적될 수 있다. 가중치들은 애플리케이션에 기초하여 다를 수 있다.
이후, 처리는 블록(754)으로 리턴될 수 있고, 시스템은 추가 임시 컨텐츠 메시지들이 계속 평가되어야 하는지를 결정할 수 있다.
통신 시스템 개요
이들 예시들은 로컬로, 클라이언트 장치에서, 또는 원격으로(예를 들어, 원격 서버에서), 또는 이들의 일부 조합으로 제공되는 통신 시스템에 의해 구현될 수 있다. 도 8a 내지 도 8c는 통신 시스템들의 다양한 예들을 도시하고, 이후에 더 상세히 설명된다.
도 8a는 둘 이상의 사용자들 간의 암호화된 통신을 용이하게 하는 예시적인 중앙 집중식 통신 시스템(800)을 도시한다. 중앙 집중식 통신 시스템(800)은 전적으로 단일 중앙 집중식 서버 장치(826) 내에서와 같이 단일 컴퓨팅 엔티티에서 메시징 또는 통신 서비스의 구조 및/또는 동작들의 일부 또는 전부를 구현할 수 있다.
통신 시스템(800)은 하나 이상의 구성요소들을 포함하는 소프트웨어 애플리케이션들을 갖는 컴퓨터-구현 시스템을 포함할 수 있다. 비록 도 8a에 도시된 통신 시스템(800)은 특정 토폴로지에서 제한된 수의 요소들을 갖지만, 통신 시스템(800)은 대체 토폴로지들에서 더 많거나 적은 요소들을 포함할 수 있다.
통신 서비스(800)는 일반적으로 메시지들과 같은 통신들을 수신, 저장 및 전달하도록 구성될 수 있다. 통신은 미디어 또는 컨텐츠 아이템들을 포함하거나 이와 관련될 수 있다.
클라이언트 장치(810)는 하나 이상의 수신자 사용자들, 사용자 계정들, 또는 클라이언트 장치(810)를 수신하는 것으로 해석되는 다른 식별자들로 어드레스된 통신들을 전송할 수 있다. 예시적인 실시예들에서, 각각의 클라이언트 장치들(810) 및 그들의 각각의 클라이언트들(820)은 통신 서비스(800)의 특정 사용자 또는 사용자들과 관련된다. 일부 실시예들에서, 클라이언트 장치들(810)은 스마트폰들과 같은 셀룰러 장치들일 수 있고, 클라이언트 장치들(810) 각각과 관련된 전화 번호에 기초하여 통신 서비스(800)에 식별될 수 있다. 일부 실시예들에서, 각 클라이언트는 통신 서비스(800)에 등록된 사용자 계정과 연관될 수 있다. 일반적으로, 각 클라이언트는 통신의 수신을 위한 다양한 기술들을 통해 어드레스될 수 있다. 일부 실시예들에서 클라이언트 장치들(810)이 셀룰러 장치들일 수 있지만, 다른 실시예들에서 클라이언트 장치들(810) 중 하나 이상은 개인용 컴퓨터들, 태블릿 장치들, 임의의 다른 형태의 컴퓨팅 장치일 수 있다.
클라이언트(810)는 하나 이상의 입력 장치들(812)과 하나 이상의 출력 장치들(818)을 포함할 수 있다. 입력 장치들(812)은 예를 들어, 마이크, 키보드, 카메라, 전자 펜, 터치 스크린, 및 메시지 데이터, 요청, 명령, 사용자 인터페이스 상호 작용, 선택 및 다른 유형의 입력을 포함하는 입력을 수신하기 위한 다른 장치들을 포함할 수 있다. 출력 장치들(818)은 스피커, 모니터 또는 터치 스크린과 같은 디스플레이 장치, 및 통신 시스템(800)에 인터페이스를 제공하기 위한 다른 장치들을 포함할 수 있다.
클라이언트(810)는 하드 드라이브, 솔리드 스테이트 드라이브, 플래시 스토어, 판독 전용 메모리 또는 랜덤 액세스 메모리 중 하나 또는 이들의 조합과 같은 비 일시적 컴퓨터 판독 가능 저장 매체일 수 있는 메모리를 포함할 수 있다. 메모리는 하나 이상의 애플리케이션뿐만 아니라 입력(814) 및/또는 출력(816)의 표현일 수 있다. 예를 들어, 메모리는 메시징 클라이언트(820) 및/또는 사용자가 소셜 네트워킹 서비스와 상호 작용하는 것을 허용하는 소셜 네트워킹 클라이언트를 저장할 수 있다.
입력(814)은 입력 장치(812)가 키보드인 경우와 같이 텍스트일 수 있다. 대안으로 입력(814)은 입력 장치(812)가 마이크로폰 또는 카메라인 경우와 같이 오디오 또는 비디오 기록일 수 있다.
입력(814)은 오디오 녹음을 메시징 시스템(800)에 의해 처리 가능한 텍스트로 변환하기 위해 자동 음성 인식(ASR) 로직을 받을 수 있다. ASR 로직은 (오디오 기록이 클라이언트(810)에 의해 국부적으로 처리되고 대응하는 텍스트가 통신 서버(826)로 전송되도록) 클라이언트 장치(810)에 위치할 수 있거나, 통신 서버(826)에 원격으로 위치할 수 있다(이 경우, 오디오 기록은 통신 서버(826)로 전송될 수 있고, 통신 서버(826)는 오디오를 텍스트로 처리할 수 있다). 예를 들어, 입력 장치(812)가 터치 패드 또는 전자 팬인 경우, 다른 조합들이 또한 가능하고, 입력(814)은 필기 형태일 수 있고, 입력(812)을 처리 가능한 텍스트로 변환하기 위해 필기 또는 광학 문자 인식 분석 로직을 받을 수 있다.
클라이언트(810)는 인터넷과 같은 네트워크(824)와 통신하기 위한 네트워크 인터페이스(822)를 제공받을 수 있다. 네트워크 인터페이스(822)는 네트워크(824)와 호환 가능한 프로토콜을 사용하여 및/또는 포맷으로 입력(812)을 전송할 수 있고, 네트워크(824)로부터 대응하는 출력(816)을 수신할 수 있다.
네트워크 인터페이스(822)는 네트워크(824)를 통해 통신 서버(826)와 통신할 수 있다. 메시징 서버(826)는 메시징 클라이언트들 사이에서 메시지들을 수신, 저장 및 전달하도록 동작할 수 있다.
통신 서버(826)는 네트워크 인터페이스(822), 통신 선호도(828) 및 통신 로직(830)을 포함할 수 있다. 통신 선호도(828)는 하나 이상의 사용자 및/또는 비디오 통신을 위한 하나 이상의 프라이버시 설정들을 포함할 수 있다. 예를 들어, 통신 선호도(828)는 본 명세서에 설명된 로직에 대한 디폴트 설정들을 포함하는 하나 이상의 설정들을 포함할 수 있다.
통신 로직(830)은 전술 한 바와 같이 임시 컨텐츠 메시지들을 생성, 처리 및/또는 디스플레이하기 위한 임시 컨텐츠 로직(832)을 포함할 수 있다(임시 컨텐츠 로직(832)은 또한 또는 대안으로 클라이언트들(810)에 제공될 수 있다).
클라이언트(810) 및/또는 통신 서버(826)의 네트워크 인터페이스(822)는 또한 소셜 네트워킹 서버(836)와 네트워크(824)를 통해 통신하는데 사용될 수 있다. 소셜 네트워킹 서버(836)는 소셜 네트워크에서 연결을 정의하는 소셜 네트워킹 그래프(838)를 포함하거나 상호 작용할 수 있다. 또한, 통신 서버(826)는 소셜 네트워크로부터 연결 정보, 메시징 이력, 이벤트 세부 사항 등을 검색하는 것과 같은 다양한 목적을 위해 소셜 네트워킹 서버(836)에 연결할 수 있다.
클라이언트(810)의 사용자는 개인(인간 사용자), 엔티티(예를 들어, 기업체, 사업, 또는 타사 애플리케이션), 또는 소셜 네트워킹 서버(836)와 상호 작용하거나 통신하는 그룹(예를 들어, 개인 또는 단체의)일 수 있다. 소셜 네트워킹 서버(836)는 온라인 소셜 네트워크를 호스팅하는 네트워크 주소 지정 가능 컴퓨팅 시스템일 수 있다. 소셜 네트워킹 서버(836)는 예를 들어, 사용자 프로필 데이터, 컨셉 프로필 데이터, 소셜 그래프 정보, 또는 온라인 소셜 네트워크와 관련된 다른 적절한 데이터와 같은 소셜 네트워킹 데이터를 생성, 저장, 수신 및 발신할 수 있다. 소셜 네트워킹 서버(836)는 네트워크 환경의 다른 구성요소들에 의해 직접 또는 네트워크(824)를 통해 액세스될 수 있다.
소셜 네트워킹 서버(836)는 사용자들이 예를 들어 적절한 프라이버시 설정을 설정함으로써 소셜 네트워킹 서버(836)에 의해 기록되거나 다른 시스템들(예를 들어, 메시징 서버(826)와 같은 제 3자 시스템들)과 공유되는 그들의 행동을 선택하거나 거부하는 것을 허용하는 인증 서버(또는 다른 적절한 구성요소(들))를 포함할 수 있다. 사용자의 프라이버시 설정은 사용자와 관련된 정보가 기록될 수 있는 것, 사용자와 관련된 정보가 기록될 수 있는 방법, 사용자와 관련된 정보가 기록될 수 있는 시기, 사용자와 관련된 정보를 기록할 수 있는 사람, 사용자와 관련된 정보를 공유할 수 있는 사람, 및 어떤 목적들로 사용자와 관련된 정보가 기록되거나 공유되는지를 결정할 수 있다. 인증 서버들은 차단, 데이터 해싱, 익명화 또는 적절한 기타 적합한 기술들을 통해 소셜 네트워킹 서버(836)의 사용자들의 하나 이상의 프라이버시 설정을 시행하기 위해 사용될 수 있다.
보다 구체적으로, 온라인 소셜 네트워크의 하나 이상의 컨텐츠 객체들은 프라이버시 설정과 연관될 수 있다. 객체에 대한 프라이버시 설정들 (또는 "액세스 설정들")은, 예를 들어 객체와 관련하여, 인증 서버상의 인덱스에, 다른 적합한 방식으로, 또는 이들의 임의의 조합과 같은 임의의 적절한 방식으로 저장될 수 있다. 객체의 프라이버시 설정은 온라인 소셜 네트워크를 사용하여 객체(또는 객체와 관련된 특정 정보)가 어떻게 액세스(예를 들어, 보거나 공유)될 수 있는지를 특정할 수 있다. 객체에 대한 프라이버시 설정들이 특정 사용자가 그 객체에 액세스할 수 있게 하는 경우, 객체는 그 사용자에 대해 "보이는(visible)"것으로 설명될 수 있다. 예로서 제한 없이, 온라인 소셜 네트워크의 사용자는 사용자 프로필 페이지에 대한 프라이버시 설정을 특정하여 사용자 프로필 페이지의 작업 경험 정보에 액세스할 수 있는 사용자들의 세트를 식별할 수 있고, 따라서 다른 사용자들이 정보에 액세스하지 못하게 한다. 특정 실시예들에서, 프라이버시 설정들은 객체와 관련된 특정 정보에 액세스할 수 없는 사용자들의 "차단 리스트"를 특정할 수 있다. 다시 말해서, 차단된 리스트는 객체가 보이지 않는 하나 이상의 사용자들 또는 엔티티들을 지정할 수 있다. 예로서 제한 없이, 사용자는 사용자와 관련된 사진 앨범에 액세스할 수 없는 사용자들의 세트를 특정할 수 있고, 따라서 사용자들이 사진 앨범에 액세스하는 것을 배제할 수 있다(사용자들의 집합 내에 없는 특정 사용자들이 사진 앨범에 액세스하는 것을 또한 가능하게 허용하는 반면).
특정 실시예들에서, 프라이버시 설정들은 소셜 네트워킹 그래프(838)의 특정 요소들과 관련될 수 있다. 노드 또는 에지와 같은 소셜 그래프 요소의 프라이버시 설정들은 소셜 그래프 요소, 소셜 그래프 요소와 관련된 정보, 또는 소셜 그래프 요소와 관련된 컨텐츠 객체들이 온라인 소셜 네트워크를 사용하여 액세스될 수 있는 방법을 특정할 수 있다. 예로서 제한 없이, 특정 사진에 대응하는 특정 개념 노드는 사진에 태그된 사용자들 및 그들의 친구들에 의해서만 사진에 액세스 될 수 있도록 특정하는 프라이버시 설정을 가질 수 있다. 특정 실시예들에서, 프라이버시 설정들은 사용자들이 소셜 네트워킹 서버(836)에 의해 기록되거나 다른 시스템들과 공유되는 그들의 행동들을 선택하거나 거부하는 것을 허용할 수 있다. 특정 실시예들에서, 객체와 관련된 프라이버시 설정들은 허용된 액세스 또는 액세스 거부의 임의의 적절한 세분성을 특정할 수 있다. 예로서 제한 없이, 액세스 또는 액세스 거부는 특정 사용자들(예를 들어, 나, 나의 룸메이트, 및 나의 상사만), 특정 분리 수준 내의 사용자들(예를 들어, 친구들, 또는 친구의 친구들), 사용자 그룹들(예를 들어, 게임 클럽, 나의 가족), 사용자 네트워크들(예를 들어, 특정 고용주들의 직원들, 특정 대학의 학생들 또는 동창), 모든 사용자들("대중"), 사용자들 없음("개인"), 타사 시스템들의 사용자들, 특정 애플리케이션들(예를 들어, 타사 애플리케이션들, 외부 웹사이트들), 다른 적합한 사용자들 또는 엔티티들 또는 이들의 임의의 조합에 대해 특정될 수 있다. 본 개시는 특정 방식으로 특정 프라이버시 설정들을 사용하는 것을 설명하지만, 본 개시는 임의의 적절한 방식으로 임의의 적절한 프라이버시 설정들을 사용하는 것을 고려한다.
데이터 스토어에 저장된 특정 객체에 대한 사용자(또는 다른 엔티티)로부터의 요청에 응답하여, 소셜 네트워킹 서버(836)는 객체에 대한 데이터 스토어에 요청을 전송할 수 있다. 상기 요청은 요청과 연관된 사용자를 식별할 수 있다. 인증 서버가 사용자가 객체와 관련된 프라이버시 설정들에 기초하여 객체에 액세스할 권한이 있다고 결정하면, 요청된 데이터 객체는 사용자(또는 사용자의 클라이언트 시스템(810))에게만 전송될 수 있다. 요청하는 사용자가 객체 액세스하는 권한이 없는 경우, 인증 서버는 요청된 객체가 데이터 스토어에서 검색되지 못하게 하거나 요청된 객체가 사용자에게 전송되지 못하게 할 수 있다. 검색 질의 컨텍스트에서, 질의하는 사용자가 객체에 액세스할 수 있는 권한이 있는 경우에만 객체가 검색 결과로 생성될 수 있다. 다시 말하면, 객체는 조회 사용자에게 표시되는 가시성을 가져야한다. 객체가 사용자에게 보이지 않는 가시성을 갖는 경우, 객체는 검색 결과에서 제외될 수 있다.
일부 실시예들에서, 타겟팅 기준은 다양한 목적들을 위해 소셜 네트워크의 사용자들을 식별하기 위해 사용될 수 있다. 사용자들을 식별하고 타겟팅하는데 사용되는 타겟팅 기준(Targeting criteria)은 소셜 네트워킹 서버(836)에서 명시적으로 진술된 사용자 관심사 또는 소셜 네트워킹 서버(836)의 노드, 객체, 엔티티, 브랜드 또는 페이지와 사용자의 명시적인 연결을 포함할 수 있다. 추가로 또는 대안으로, 이런 타겟팅 기준은 ((예를 들어, 공유된 관심사, 연결관계 또는 이벤트를 기초로) 사용자의 이력, 데모그래픽(demographic), 소셜 활동이나 다른 활동들, 친구의 소셜 활동이나 다른 활동들, 구독 또는 사용자와 유사한 다른 사용자들의 임의의 전술한 것들을 분석하는 것을 포함할 수 있는) 암시적이거나 추론된 사용자 관심사 또는 연결관계들을 포함할 수 있다. 특정 실시예들은 플랫폼 또는 "좋아요" 노출 데이터; 컨텍스트형 신호들(예를 들어, "COCA-COLA에 대한 페이지를 누가 지금 열람중이거나 최근 열람했는가"); 가벼운 연결들(예를 들어, "체크인"); 연결 유사형태(connection lookalikes); 팬; 추출된 키워드; EMU 광고; 추론적 광고; 계수; 친밀감; 또는 다른 소셜 그래프 정보; 친구의 친구 연결; 피닝 또는 부스팅; elf 폴; 가계 소득; 소셜 클러스터 또는 그룹; 이미지나 다른 미디어에서 탐지된 제품; 소셜이나 오픈-그래프 에지 타입; 지오-예측; 프로필이나 페이지의 뷰; 상태 업데이트 또는 다른 사용자 게시물(그 분석은 자연어 처리 또는 키워드 추출을 포함할 수 있음); 이벤트 정보; 또는 공동 필터링을 포함할 수 있는 플랫폼 타겟팅을 이용할 수 있다. 또한, 사용자의 식별 및 타겟팅은 적절한 경우 개인정보 설정(가령, 사용자 제외 조치(opt-outs)), 데이터 해싱(data hashing) 또는 데이터 익명화를 포함할 수 있다.
도 8a에 도시된 중앙 집중 실시예는 논리가 메시징 서버(826)에 통합되기 때문에 새로운 시스템으로서 또는 기존 시스템으로의 업그레이드로서의 배치에 매우 적합할 수 있다. 대조적으로, 도 8b는 지배적/관련 참가자들을 선택하고 축소된 크기의 인터페이스를 표시하기 위한 기능이 메시징 서버로부터 분산되어 원격으로 접근가능한 예시적인 분산 메시징 시스템(850)을 도시한다. 분산 시스템(850)의 예들은 클라이언트-서버 아키텍처, 3-계층 아키텍처, N-계층 아키텍처, 긴밀하게 결합된 또는 클러스터된 아키텍처, 피어-투-피어 아키텍처, 마스터-슬레이브(master-slave) 아키텍처, 공유된 데이터베이스 아키텍처 및 기타 유형의 분산 시스템들을 포함한다.
도 8b에 도시된 많은 구성요소들은 도 8a에 도시된 것들과 동일하고, 이들 요소들에 대한 설명은 간결성을 위해 본원에 반복되지 않는다. 중앙 집중식 실시예와 분산형 실시예 사이의 주요 차이점은 관련 임시 콘텐츠 로직(832)을 호스팅하는 별도의 임시 서버(852)의 추가이다. 임시 서버(852)는 통신 서버(826)와 구별될 수 있지만, 임시 컨텐츠 로직(832)의 기능을 통신 서버(826)에 제공하기 위해 직접 또는 네트워크(824)를 통해 통신 서버(826)와 통신할 수 있다.
도 8b에 도시된 실시예는 예를 들어, 기존 메시징 서버를 교체하는 것이 어렵거나 바람직하지 않은 경우, 예시적인 실시예들이 기존 메시징 시스템들과 함께 배치되도록 하는데 특히 적합할 수 있다. 부가적으로, 일부 경우들에서, 통신 서버(826)는 추가적인 피봇 기능의 추가를 제한하거나 배제하는 제한된 자원들(예를 들어, 프로세싱 또는 메모리 자원)을 가질 수 있다. 이러한 상황들에서, 본원에 기술된 기능들은 여전히 통신 서버(852)를 통해 제공될 수 있다.
도 8c는 소셜 네트워킹 그래프(838)의 예시를 도시한다. 예시적인 실시예들에서, 소셜 네트워킹 서비스는 소셜 네트워킹 서비스를 통해 소셜 그래프 데이터 구조로서 하나 이상의 데이터 스토어들에 하나 이상의 소셜 그래프들(838)을 저장할 수 있다.
소셜 그래프(838)는 사용자 노드(854) 및 컨셉 노드(856)와 같은 다수의 노드 및 노드를 포함할 수 있다. 소셜 그래프(838)는 또한 노드들을 연결하는 에지들(858)을 포함할 수 있다. 소셜 그래프(838)의 노드 및 에지는 예컨대 데이터 스토어(가령, 소셜-그래프 데이터베이스)에 데이터 객체로서 저장될 수 있다. 이런 데이터 스토어는 소셜 그래프(838)의 노드 또는 에지의 하나 이상의 검색가능하거나 질의가능한 인덱스를 포함할 수 있다.
소셜 그래프(838)는 소셜-네트워킹 서버(826), 클라이언트 시스템(810), 제3자 시스템, 또는 적합한 애플리케이션들을 위한 임의의 다른 승인된 시스템 또는 장치에 의해 접근될 수 있다.
사용자 노드(854)는 소셜 네트워킹 시스템의 사용자에 해당할 수 있다. 사용자는 개인(사람인 사용자), 엔티티(예컨대, 기업, 사업체 또는 제3자 애플리케이션) 또는 소셜 네트워킹 시스템과 상호작용하거나 소셜 네트워킹 시스템에서 통신하는 (예컨대, 개인 또는 엔티티들의) 그룹일 수 있다. 예시적인 실시예들에서, 사용자가 소셜 네트워킹 시스템에서 계정을 등록하면, 소셜 네트워킹 시스템은 사용자에 해당하는 사용자 노드(854)를 생성할 수 있고, 하나 이상의 데이터 스토어에 사용자 노드(854)를 저장할 수 있다. 적절한 경우, 본 명세서에 기술되는 사용자들 및 사용자 노드들(854)은 등록 사용자들 및 등록 사용자들과 관련된 사용자 노드들(854)을 말할 수 있다. 추가로 또는 대안으로, 본 명세서에 기술되는 사용자들 및 사용자 노드들(854)은 적절한 경우 소셜 네트워킹 시스템에 등록되지 않은 사용자들을 말할 수 있다. 특정 실시예들에서, 사용자 노드(854)는 사용자가 제공한 정보 또는 소셜 네트워킹 시스템을 포함하는 다양한 시스템이 수집한 정보와 관련될 수 있다. 예로서 제한 없이, 사용자는 그들의 이름, 프로필 사진, 연락 정보, 생일, 성별, 혼인 여부, 가족 관계, 직장, 학력, 기호, 관심사 또는 다른 데모그래픽 정보(depographic)를 제공할 수 있다. 특정 실시예들에서, 사용자 노드(854)는 사용자와 관련된 정보에 해당하는 하나 이상의 데이터 객체들과 관련될 수 있다. 특정 실시예들에서, 사용자 노드(854)는 하나 이상의 웹페이지에 해당할 수 있다. 사용자 노드(854)는 소셜 네트워킹 시스템에서 사용자에 대한 고유의 사용자 식별자와 연관될 수 있다.
특정 실시예들에서, 컨셉 노드(856)는 컨셉에 해당할 수 있다. 예로서 제한 없이, 컨셉은 장소(가령, 예컨대, 영화관, 레스토랑, 명소 또는 도시); 웹사이트(가령, 예컨대, 소셜 네트워크 서비스와 관련된 웹사이트 또는 웹-애플리케이션 서버와 관련된 제3자 웹사이트); 엔티티(가령, 예컨대, 사람, 사업체, 그룹, 스포츠 팀 또는 유명인사); 소셜 네트워킹 시스템 또는 가령 웹-애플리케이션 서버와 같은 외부 서버에 위치할 수 있는 자원(가령, 예컨대, 오디오 파일, 비디오 파일, 디지털 사진, 텍스트 파일, 구조화된 문서 또는 애플리케이션); 물적 재산권 또는 지적 재산권(가령, 예컨대, 조각품, 미술품, 영화, 게임, 노래, 아이디어, 사진 또는 저서); 게임; 활동; 아이디어나 이론; 또 다른 적절한 컨셉; 또는 2 이상의 이런 컨셉들에 해당할 수 있다. 컨셉 노드(556)는 사용자에 의해 제공된 컨셉의 정보 또는 소셜 네트워킹 시스템을 포함하는 다양한 시스템들에 의해 수집된 정보와 관련될 수 있다. 예로서 제한 없이, 컨셉의 정보는 이름이나 제목; 하나 이상의 이미지(예컨대, 책의 커버 페이지의 이미지); 위치(예컨대, 주소 또는 지리적 위치); (URL과 관련될 수 있는) 웹사이트; 연락 정보(예컨대, 전화번호 또는 이메일 주소); 다른 적절한 컨셉 정보; 또는 이런 정보의 임의의 적절한 조합을 포함할 수 있다. 특정 실시예들에서, 각각의 컨셉 노드(856)는 컨셉 노드(856)와 관련된 정보에 해당하는 하나 이상의 데이터 객체와 관련될 수 있다. 특정 실시예들에서, 각각의 컨셉 노드(856)는 하나 이상의 웹페이지들에 해당할 수 있다.
특정 실시예들에서, 소셜 그래프(838)에서 노드는 ("프로필 페이지"라고 할 수 있는) 웹페이지를 표현하거나, 그 웹페이지로 표현될 수 있다. 프로필 페이지는 소셜 네트워킹 시스템에 의해 호스트될 수 있거나, 접근될 수 있다. 또한, 프로필 페이지는 제 3자 서버와 관련된 제 3자 웹사이트에 호스트될 수 있다. 예로서 제한 없이, 특정한 외부 웹페이지에 해당하는 프로필 페이지는 특정한 외부 웹페이지일 수 있고, 프로필 페이지는 특정 컨셉 노드(856)에 해당할 수 있다. 프로필 페이지는 모든 또는 선택된 서브세트의 다른 사용자들에 의해 열람될 수 있다. 예로서 제한 없이, 사용자 노드(854)는 해당 사용자가 컨텐츠를 추가할 수 있고, 선언을 할 수 있으며, 그렇지 않으면 그들 자신을 표현할 수 있는 해당 사용자 프로필-페이지를 가질 수 있다. 비즈니스 페이지는 상업 엔티티에 대한 사용자 프로필 페이지를 포함할 수 있다. 또 다른 예로서 제한 없이, 컨셉 노드(856)는 특히 컨셉 노드(856)에 해당하는 컨셉과 관련하여 하나 이상의 사용자들이 컨텐츠를 추가할 수 있거나, 선언을 할 수 있거나, 그들 자신을 표현할 수 있는 해당 컨셉-프로필 페이지를 가질 수 있다.
특정 실시예들에서, 컨셉 노드(856)는 제 3자 시스템에 의해 호스팅된 제 3자 웹페이지 또는 자원을 표현할 수 있다. 제 3자 웹페이지 또는 자원은 다른 요소들 중에서 행위 또는 활동을 표현하는 (예컨대, JavaScript, AJAX 또는 PHP 코드로 구현될 수 있는) 컨텐츠, 선택가능하거나 다른 아이콘 또는 다른 상호작용가능한 객체를 포함할 수 있다. 예로서 제한 없이, 제 3자 웹페이지는 가령 "좋아요", "체크인", "식사하기(eat)", "추천하기" 또는 다른 적절한 행위나 활동과 같은 선택가능한 아이콘을 포함할 수 있다. 제 3자 웹페이지를 열람하는 사용자는 아이콘들 중 하나(예컨대, "식사하기")를 선택하여 행위를 수행할 수 있고, 클라이언트 시스템이 사용자의 행위를 표시하는 메시지를 소셜 네트워킹 시스템에 송신하게 할 수 있다. 그 메시지에 응답하여, 소셜 네트워킹 시스템은 사용자에 해당하는 사용자 노드(854)와 제 3자 웹페이지 또는 자원에 해당하는 컨셉 노드(856) 사이의 에지(예컨대, "식사하기-타입" 에지)를 생성할 수 있고, 하나 이상의 데이터 스토어에 에지(858)를 저장할 수 있다.
특정 실시예들에서, 소셜 그래프(838)에서 노드 쌍은 하나 이상의 에지(858)에 의해 서로 연결될 수 있다. 노드 쌍을 연결하는 에지(858)는 노드 쌍 사이의 관계를 표현할 수 있다. 특정 실시예들에서, 에지(858)는 노드 쌍 사이의 관계에 해당하는 하나 이상의 데이터 객체나 속성을 포함하거나 표현할 수 있다. 예로서 제한 없이, 제 1 사용자는 제 2 사용자가 제 1 사용자의 "친구"라고 표시할 수 있다. 이런 표시에 응답하여, 소셜 네트워킹 시스템은 "친구 요청"을 제 2 사용자에게 송신할 수 있다. 제 2 사용자가 "친구 요청"을 확인하면, 소셜 네트워킹 시스템은 소셜 그래프(838)에서 제 1 사용자의 사용자 노드(854)와 제 2 사용자의 사용자 노드(854)를 연결하는 에지(858)를 생성할 수 있고, 하나 이상의 데이터 스토어에 소셜-그래프 정보로서 에지(858)를 저장할 수 있다. 도 8c의 예에서, 소셜 그래프(838)는 사용자 "Amanda"와 사용자 "Dorothy"의 사용자 노드(854)들 사이의 친구 관계를 표시하는 에지(858)를 포함한다. 본 명세서가 특정 사용자 노드(854)를 연결하는 특정 속성을 가진 특정 에지(858)를 기술하거나 도시하지만, 본 명세서는 사용자 노드(854)를 연결하는 임의의 적절한 속성을 가진 임의의 적절한 에지(858)를 고려한다. 예로서 제한 없이, 에지(858)는 친구관계, 가족관계, 사업이나 고용 관계, 팬 관계, 팔로워 관계, 방문자 관계, 구독자 관계, 상위/하위 관계, 호혜 관계, 비-상호 관계, 또 다른 적절한 타입의 관계 또는 2 이상의 이런 관계들을 표현할 수 있다. 게다가, 본 명세서는 일반적으로 노드들이 연결되는 것을 기술하지만, 본 명세서는 또한 사용자 또는 컨셉이 연결되는 것을 기술한다. 본 명세서에서, 사용자 또는 컨셉이 연결되는 것에 대한 언급은 적절한 경우 이들 사용자 또는 컨셉에 해당하는 노드가 하나 이상의 에지(858)에 의해 소셜 그래프(838)에서 연결되는 것을 말할 수 있다.
특정 실시예들에서, 사용자 노드(854)와 컨셉 노드(856) 사이의 에지(858)는 컨셉 노드(856)와 관련된 컨셉에 대해 사용자 노드(854)의 사용자가 수행한 특정 행위 또는 활동을 표현할 수 있다. 예로서 제한 없이, 도 8c에 도시된 바와 같이, 사용자는 컨셉을 "좋아요(like)", "참여했음(attended)", "실행했음(played)", "청취했음(listened)", "요리했음(cooked)", "근무했음(worked at)", 또는 "시청했음(watched)"을 할 수 있고, 이들 각각은 에지 타입이나 서브타입에 해당할 수 있다. 컨셉 노드(856)에 해당하는 컨셉-프로필 페이지는 예컨대 선택가능한 "체크인" 아이콘(가령, 예컨대, 클릭가능한 "체크인" 아이콘) 또는 선택가능한 "즐겨찾기에 추가(add to favorites)" 아이콘을 포함할 수 있다. 마찬가지로, 사용자가 이런 아이콘을 클릭한 후, 소셜 네트워킹 시스템은 각각의 행위에 해당하는 사용자의 행위에 응답하여 "즐겨찾기" 에지 또는 "체크인" 에지를 생성할 수 있다. 또 다른 예로서 제한 없이, 사용자(사용자 "Caela")는 특정 애플리케이션(온라인 음악 애플리케이션인 SPOTIFY)을 사용하여 특정 노래("Across the Sea")를 들을 수 있다. 이 경우, 소셜 네트워킹 시스템은 사용자에 해당하는 사용자 노드(854)와 노래 및 애플리케이션에 해당하는 컨셉 노드(856) 사이에 "청취했음(listened)" 에지(858) 및 "사용했음(used)" 에지(도 8c에 도시)를 생성하여, 사용자가 그 노래를 들었고 그 애플리케이션을 사용했음을 표시할 수 있다. 게다가, 소셜 네트워킹 시스템은 노래와 애플리케이션에 해당하는 컨셉 노드(856) 사이에서 "실행했음(played)" 에지(858)(도 8c에 도시)를 생성하여 특정 노래가 특정 애플리케이션에 의해 실행되었음을 표시할 수 있다. 이 경우, "실행했음(played)" 에지(858)는 외부 오디오 파일(노래 "Across the Sea")에 대해 외부 애플리케이션(SPOTIFY)이 수행한 행위에 해당한다. 본 명세서는 사용자 노드(854)와 컨셉 노드(856)를 연결하는 특정 속성을 가진 특정 에지(858)를 기술하지만, 본 명세서는 사용자 노드(854)와 컨셉 노드(856)를 연결하는 임의의 적절한 속성을 가진 임의의 적절한 에지(858)를 고려한다. 게다가, 본 명세서는 단일의 관계를 표현하는 사용자 노드(854)와 컨셉 노드(856) 사이의 에지를 기술하지만, 본 명세서는 하나 이상의 관계를 표현하는 사용자 노드(854)와 컨셉 노드(856) 사이의 에지를 고려한다. 예로서 제한 없이, 에지(858)는 사용자가 특정 컨셉에서 좋아요 하고 사용했음을 모두 표현할 수 있다. 대안으로, 또 다른 에지(858)는 사용자 노드(854)와 컨셉 노드(856) 사이(도 8c에 도시된 바와 같이, 사용자 "Edwin"에 대한 사용자 노드(854)와 "SPOTIFY"에 대한 컨셉 노드(856) 사이)의 각 타입의 관계(또는 다수의 단일 관계)를 표현할 수 있다.
특정 실시예들에서, 소셜 네트워킹 시스템은 소셜 그래프(838)에서 사용자 노드(854)와 컨셉 노드(856) 사이의 에지(858)를 생성할 수 있다. 예로서 제한 없이, (가령, 예컨대, 사용자의 클라이언트 시스템에 의해 호스팅되는 웹 브라우저 또는 특수목적 애플리케이션을 사용하여) 사용자가 컨셉-프로필 페이지를 열람하는 것은 사용자가 "좋아요" 아이콘을 클릭하거나 선택하여 컨셉 노드(856)가 표현한 컨셉을 좋아함을 나타낼 수 있는데, "좋아요" 아이콘은 사용자의 클라이언트 시스템이 컨셉-프로필 페이지와 관련된 컨셉을 사용자가 좋아요 했다고 표시한 메시지를 소셜 네트워킹 시스템에 송신하게 할 수 있다. 그 메시지에 응답하여, 소셜 네트워킹 시스템은 사용자와 컨셉 노드(856) 사이의 "좋아요" 에지(858)로 도시된 바와 같이 사용자와 관련된 사용자 노드(854)와 컨셉 노드(856) 사이의 에지(858)를 생성할 수 있다. 특정 실시예들에서, 소셜 네트워킹 시스템은 하나 이상의 데이터 스토어에 에지(858)를 저장할 수 있다. 특정 실시예들에서, 에지(858)는 특정 사용자 행위에 응답하여 소셜 네트워킹 시스템에 의해 자동 형성될 수 있다. 예로서 제한 없이, 제 1 사용자가 사진을 업로드하거나, 영화를 시청하거나, 노래를 듣는다면, 에지(858)는 제 1 사용자에 해당하는 사용자 노드(854)와 이런 컨셉에 해당하는 컨셉 노드(856) 사이에 형성될 수 있다. 본 명세서는 특정 방식으로 특정 에지(858)를 형성하는 것을 기술하지만, 본 명세서는 임의의 적절한 방식으로 임의의 적절한 에지(858)를 형성하는 것을 고려한다.
소셜 그래프(838)는 복수의 제품 노드들을 더 포함할 수 있다. 제품 노드들은 특정 비즈니스들과 연관될 수 있는 특정 제품들을 나타낼 수 있다. 비즈니스는 소비자-대-비즈니스 서비스에 제품 카탈로그를 제공할 수 있고, 따라서 소비자-대-비즈니스 서비스는 소셜 그래프(838)에서 제품 내의 각 제품들을 나타낼 수 있고 각 제품은 별개의 제품 노드에 있다. 제품 노드는 가격 정보, 설명 정보, 제조업체 정보, 가용성 정보, 및 기타 관련 정보와 같은 제품과 관련된 정보를 포함할 수 있다. 예를 들어, 식당 메뉴에 있는 각 아이템은 소셜 그래프(838) 내에 각 아이템을 설명하는 제품 노드와 함께 표현될 수 있다. 제품 노드는 에지에 의해 제품을 제공하는 비즈니스에 연결될 수 있다. 여러 비즈니스가 제품을 제공하는 경우, 각 비즈니스는 제품 제공과 관련된 별개의 제품 노드를 가질 수 있거나 각각 동일한 제품 노드에 링크될 수 있다. 제품 노드는 에지에 의해 제품을 구매, 평가, 소유, 추천 또는 조회한 각 사용자에게 연결될 수 있고, 에지는 관계(예를 들어, 구매, 평가, 소유, 권장, 조회 또는 다른 관계)의 특성을 설명한다. 각각의 제품 노드들은 연결된 판매자 사업에 의해 그래프 id 및 연관된 판매자 id와 연관될 수 있다. 따라서, 비즈니스로부터 이용 가능한 제품들은 소셜 그래프(838) 내에서 비즈니스를 위해 사용자 노드에 링크된 이용 가능한 제품 노드들을 검색함으로써 사용자에게 전달 될 수 있다. 제품 노드에 대한 정보는 참조된 제품에 관한 정보를 캡슐화하는 제품 객체로서 소셜 네트워킹 시스템에 의해 조작될 수 있다.
이와 같이, 소셜 그래프(838)는 소셜 네트워킹 시스템의 둘 이상의 사용자들의 공유된 관심사, 공유된 경험 또는 다른 공유된 또는 공통의 속성들을 추론하기 위해 사용될 수 있다. 예를 들어, 소셜 그래프(838)에 표현된 공통 비즈니스, 제품, 미디어 아이템, 기관 또는 다른 엔티티에 각각 에지를 갖는 둘 이상의 사용자는 해당 엔티티와의 공유된 관계를 나타낼 수 있고, 이는 한 명 이상의 사용자들을 위한 메시징 시스템을 포함한 소셜 네트워킹 시스템의 사용의 맞춤화를 제안하기 위해 사용될 수 있다.
상술된 실시예들은 메시징 구조에 의해 수행될 수 있고, 그 예는 도 9를 참조하여 다음에 기술된다.
메시징 아키텍처
도 9는 예시적인 실시예들로 사용하기 위해 적합한 메시징 서비스(900)의 다양한 기능들을 구현하는 복수의 서버들의 일 실시예를 도시한다. 상이한 작업 및 기능들의 분배가 메시징 서비스(900)의 다양한 실시예들에서 사용될 수 있다는 것이 이해될 것이다.
메시징 서비스(900)는 도메인 네임 프론트 엔드(902)를 포함할 수 있다. 도메인 네임 프론트 엔드(902)는 도메인 네임 시스템(DNS: domain name system)의 메시징 서비스(900)와 연관된 하나 이상의 도메인 네임들에 할당될 수 있다. 도메인 네임 프론트 엔드(902)는 들어오는 연결들을 수신하고 다양한 메시징 서비스들을 제공하는 서버들에 연결들을 분산시킬 수 있다.
메시징 서비스(902)는 하나 이상의 채팅 서버들(904)을 포함할 수 있다. 채팅 서버들(904)은 채팅 메시지들과 같은 사용자-대-사용자 메시징 업데이트들을 수신 및 송신하기 위한 프론트-엔드 서버들을 포함할 수 있다. 수신 연결들은 부하 균형에 기반하여 도메인 네임 프론트 엔드(902)에 의해 채팅 서버들(904)에 할당될 수 있다.
메시징 서비스(902)는 백엔드 서버들(908)을 포함할 수 있다. 백엔드 서버들(908)은 프론트 엔드 채팅 서버들(904)의 채팅 동작들의 지원에서 특별한 작업들을 수행할 수 있다. 복수의 상이한 타입들의 백엔드 서버들(908)이 사용될 수 있다. 상이한 백엔드 서버들(908)에 작업들의 타입들의 할당은 상이한 실시예들에서 다를 수 있음이 이해될 것이다. 일부 실시예들에서, 전용 서버들에 의해 제공되는 일부 백엔드 서비스들은 단일 서버 또는 각각 본원에 서술되는 실시예에서 상이한 서버들간에 분할되는 복수의 작업들을 수행하는 서버들의 세트에 결합될 수 있다. 유사하게, 일부 실시예들에서, 본원에 서술되는 전용 백엔드 서버들 중 일부의 작업들은 상이한 서버 그룹들의 상이한 서버들 간에 분할될 수 있다.
메시징 서비스(900)는 하나 이상의 오프라인 스토리지 서버들(910)을 포함할 수 있다. 하나 이상의 오프라인 스토리지 서버들(910)은 메시징 클라이언트들이 다시 연결될 때 현재 오프라인 메시징 클라이언트들에 대한 메시징 컨텐츠를 보류 상태로 저장할 수 있다.
메시징 서비스(900)는 하나 이상의 세션 서버들(912)을 포함할 수 있다. 하나 이상의 세션 서버들(912)은 연결된 메시징 클라이언트들의 세션 상태를 유지할 수 있다.
메시징 서비스(900)는 하나 이상의 프리젠스 서버들(914)을 포함할 수 있다. 하나 이상의 프리젠스 서버들(914)은 메시징 서비스(900)를 위한 프리젠스 정보를 유지할 수 있다. 프리젠스 정보는 주어진 사용자가 온라인 메시징 클라이언트를 가지고 채팅을 위해 사용가능한지 여부, 온라인 메시징 클라이언트를 가지지만 현재 부재중인지, 온라인 메시징 클라이어트를 가지지 않는지, 및 임의의 다른 프리젠스 상태를 가리키는 사용자 고유 정보에 대응할 수 있다.
메시징 서비스(900)는 하나 이상의 푸시 스토리지 서버들(916)을 포함할 수 있다. 하나 이상의 푸시 스토리지 서버들(916)은 푸시 요청을 캐시하고 메시징 클라이언트들에 푸시 요청을 전송할 수 있다. 푸시 요청은 메시징 클라이언트를 깨우고, 메시징 클라이언트에게 메시징 업데이트가 사용가능하다고 알리고, 메시징 클라이언트와 서버측 기반 상호작용을 다르게 수행하는데 사용될 수 있다.
메시징 서비스(900)는 하나 이상의 그룹 서버들(918)을 포함할 수 있다. 하나 이상의 그룹 서버들(916)은 그룹 리스트를 유지하고, 사용자를 그룹에 추가하고, 그룹에서 사용자를 제거하고, 그룹 채팅 메시지의 수신, 캐시, 전달을 수행할 수 있다.
메시징 서비스(900)는 하나 이상의 블록 리스트 서버들(920)을 포함할 수 있다. 하나 이상의 블록 리스트 서버들(920)은 사용자 고유 블록 리스트를 유지하고, 사용자 고유 수신 블록 리스트는 각 사용자에 대하여 그 사용자에게 메시지 전송이 금지된 하나 이상의 다른 사용자를 가리킨다. 대안으로 또는 추가로, 하나 이상의 블록 리스트 서버들(920)은 각 사용자에 대하여 그 사용자가 메시지를 전송하는 것이 금지된 하나 이상의 다른 사용자를 가리키는 사용자 고유 발신 블록 리스트를 유지할 수 있다. 수신 블록 리스트 및 발신 블록 리스트는 예컨대, 데이터베이스에, 블록 정보의 동일한 스토어의 상이한 관점을 나타내는 수신 블록 리스트 및 발신 블록 리스트과 조합되어 저장될 수 있음이 인식될 것이다.
메시징 서비스(900)는 하나 이상의 마지막 사용 정보 서버(922)를 포함할 수 있다. 하나 이상의 마지막 사용 정보 서버(922)는 마지막 사용 위치, 상태, 메시징 클라이언트 및 메시징 서비스(900)와 사용자의 마지막 사용 연결의 다른 요소를 수신, 저장 및 유지할 수 있다.
메시징 서비스(900)는 하나 이상의 키 서버(924)를 포함할 수 있다. 하나 이상의 키 서버는 공개/개인 키 암호화 통신을 위한 공개 키를 호스팅할 수 있다.
메시징 서비스(900)는 하나 이상의 프로필 사진 서버(926)를 포함할 수 있다. 하나 이상의 프로필 사진 서버(926)는 메시징 서비스(900)의 복수의 사용자를 위한 검색 프로필 사진을 저장하고 사용 가능하게 만들 수 있다.
메시징 서비스(900)는 하나 이상의 스팸 로깅 서버들(928)을 포함할 수 있다. 하나 이상의 스팸 로깅 서버들(928)은 알려진 및 의심되는 스팸(예컨대, 원치 않는 메시지, 특히 홍보 성격의 것)을 로그할 수 있다. 하나 이상의 스팸 로깅 서버들(928)은 메시지를 분석하여 스팸인지 여부를 결정하고, 일부 실시예들에서, 의심되는 스패머(스팸 메시지를 송신하는 사용자)에 대한 징계 조치를 수행하도록 동작할 수 있다.
메시징 서비스(900)는 하나 이상의 통계 서버들(930)을 포함할 수 있다. 하나 이상의 통계 서버들은 메시징 서비스(900)의 동작 및 메시징 서비스(900)의 사용자들의 행동에 관한 통계 정보를 편집 및 저장할 수 있다.
메시징 서비스(900)는 하나 이상의 웹 서버들(932)을 포함할 수 있다. 하나 이상의 웹 서버들(932)은 웹 브라우저와 HTTP(hypertext transport protocol) 및 HTTPS(hypertext transport protocol secure) 연결에 관여할 수 있다.
메시징 서비스(900)는 하나 이상의 채팅 활동 모니터링 서버(934)를 포함할 수 있다. 하나 이상의 채팅 활동 모니터링 서버(934)는 사용자의 채팅을 모니터링하여 메시징 서비스(900)의 사용자의 인증되지 않거나 방해되는 행동을 결정할 수 있다. 하나 이상의 채팅 활동 모니터링 서버(934)는 스팸 로깅 서버(928) 및 블록 리스트 서버(920)와 협업하여 동작할 수 있는데, 하나 이상의 채팅 활동 모니터링 서버(934)는 스팸이나 다른 방해되는 행동을 식별하고 스팸 정보를 스팸 로깅 서버(928)에 및 적절한 경우, 블록 정보를 블록 리스트 서버(920)에 제공한다.
메시징 서비스(900)는 하나 이상의 싱크 서버(936)를 포함할 수 있다. 하나 이상의 싱크 서버들(936)은 메시징 시스템(500)을 메시징 클라이언트로부터의 연락처 정보, 예컨대 휴대 전화의 주소록과 동기화하여 메시징 서비스(900)의 사용자를 위한 연락처를 결정할 수 있다.
메시징 서비스(900)는 하나 이상의 멀티미디어 서버들(938)을 포함할 수 있다. 하나 이상의 멀티미디어 서버들은 메시징 클라이언트들간 이동중인 멀티미디어(예컨대, 이미지, 비디오, 오디오), 오프라인 종단점을 위해 캐시된 멀티미디어를 저장할 수 있고, 멀티미디어의 변환을 수행할 수 있다.
메시징 서비스(900)는 하나 이상의 결제 서버들(940)을 포함할 수 있다. 하나 이상의 결제 서버들(940)은 사용자들로부터의 결제들을 처리할 수 있다. 하나 이상의 결제 서버들(940)은 결제 수행을 위해 외부 제 3자 서버들에 접속할 수 있다.
메시징 서비스(900)는 하나 이상의 등록 서버들(942)을 포함할 수 있다. 하나 이상의 등록 서버들(942)은 메시징 서비스(900)의 새로운 사용자들을 등록할 수 있다.
메시징 서비스(900)는 하나 이상의 음성 중계 서버들(944)을 포함할 수 있다. 하나 이상의 음성 중계 서버들(944)은 VoIP 호출의 수행을 위해 메시징 클라이언트들간의 VoIP(voice-over-internet-protocol) 음성 통신을 중계할 수 있다.
상술된 방법들은 컴퓨터 판독 가능한 매체 상의 명령들로서 또는 컴퓨팅 구조의 일부로서 구현될 수 있다. 도 10은 이전에 설명된 다양한 실시예들을 구현하기 위해 적합한 예시적인 컴퓨팅 구조(1000)의 일 실시예를 도시한다. 일 실시예에서, 컴퓨팅 구조(1000)는 컴퓨터(1001)와 같은 전자 장치를 포함할 수 있거나 일부로서 구현될 수 있다. 실시예들이 이와 같은 문맥으로 제한되는 것은 아니다.
본 출원에서 사용되는 바와 같이, "시스템" 및 "구성요소"란 용어들은 컴퓨터-관련 엔티티, 어느 하나의 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 실행중의 소프트웨어, 예시적인 컴퓨팅 구조(1000)에 의해 제공되는 예들을 일컫는 것으로 의도된다. 예를 들어, 구성요소는 프로세서에서 실행하는 프로세스, 프로세서, 하드 디스크 드라이브, (광학 및/또는 자기 저장매체의) 다수의 저장 드라이브, 객체, 실행가능한 것들, 실행의 스레드(thread), 프로그램 및/또는 컴퓨터일 수 있으나 이에 제한되는 것은 아니다. 예로서, 서버에서 실행하는 애플리케이션과 서버 모두는 구성요소일 수 있다. 하나 이상의 구성요소들은 프로세스 및/또는 실행의 스레드 내에 상주할 수 있고, 구성요소는 하나의 컴퓨터에 로컬화될 수 있고/있거나 2개 이상의 컴퓨터들 사이에 분산될 수 있다. 게다가, 구성요소들은 동작들을 편성하도록 다양한 타입의 통신 미디어에 의해 서로 통신 가능하게 연결될 수 있다. 편성(coordination)은 정보의 단방향이나 양방향 교환을 포함할 수 있다. 예를 들어, 구성요소들은 통신 미디어를 통해 통신되는 신호들의 형태로 정보를 통신할 수 있다. 정보는 다양한 신호 라인들에 할당된 신호들로서 구현될 수 있다. 이런 할당들에서, 각 메시지는 신호이다. 그러나, 추가의 실시예들이 대안으로 데이터 메시지들을 이용할 수 있다. 이런 데이터 메시지들은 다양한 연결들을 통해 전송될 수 있다. 예시적인 연결들은 병렬 인터페이스들, 직렬 인터페이스들 및 버스 인터페이스들을 포함한다.
컴퓨팅 구조(1000)는 가령 하나 이상의 프로세서들, 멀티-코어 프로세서들, 코-프로세서들(co-processors), 메모리 유닛들, 칩셋들, 컨트롤러들, 주변기기들, 인터페이스들, 오실레이터들, 타이밍 장치들, 비디오 카드들, 오디오 카드들, 멀티미디어 입력/출력(I/O) 구성요소들, 전원들 등과 같이 다양한 공통의 컴퓨팅 요소들을 포함한다. 그러나, 실시예들은 컴퓨팅 구조(1000)에 의한 구현으로 국한되지 않는다.
도 10에 도시된 바와 같이, 컴퓨팅 구조(1000)는 프로세싱 유닛(1002), 시스템 메모리(1004) 및 시스템 버스(1006)를 포함한다. 프로세싱 유닛(1002)은 AMD® Athlon®, Duron® 및 Opteron® 프로세서들; ARM® 애플리케이션, 임베디드 및 보안 프로세서들; IBM® 및 Motorola® DragonBall® 및 PowerPC® 프로세서들; IBM 및 Sony® Cell 프로세서들; 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 Express, PCMCIA(Personal Computer Memory Card International Association) 등을 포함할 수 있다.
컴퓨팅 구조(1000)는 다양한 제조 물품을 포함하거나 구현할 수 있다. 제조 물품은 로직을 저장하는 컴퓨터-판독가능한 저장매체를 포함할 수 있다. 컴퓨터-판독가능한 저장 매체의 예는 전자 데이터를 저장할 수 있고, 휘발성 메모리 또는 비-휘발성 메모리, 제거가능하거나 제거불가능한 메모리, 삭제가능하거나 삭제불가능한 메모리, 쓰기가능하거나 다시쓰기가 가능한 메모리 등을 포함하는 임의의 실체적 매체를 포함할 수 있다. 논리의 예들은 임의의 적절한 타입의 코드, 가령 소스 코드, 컴파일된 코드, 해석된 코드, 실행가능한 코드, 정적 코드, 동적 코드, 객체-지향 코드, 시각적 코드 등을 사용하여 구현되는 실행가능한 컴퓨터 프로그램 명령어를 포함할 수 있다. 또한, 실시예들은 본원에 기술되는 동작들의 수행을 가능하게 하는 하나 이상의 프로세서에 의해 판독되고 실행될 수 있는, 비-일시적 컴퓨터-판독가능한 매체에 포함되는 명령어로서 적어도 부분적으로 구현될 수 있다.
시스템 메모리(1004)는 하나 이상의 고속 메모리 유닛들, 가령 ROM(read-only memory), RAM(random-access memory), DRAM(dynamic RAM), DDRAM(Double-Data-Rate DRAM), SDRAM(synchronous DRAM), SRAM(static RAM), PROM(programmable ROM), EPROM(erasable programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 메모리, 강유전성 폴리머 메모리와 같은 폴리머 메모리, 오보닉 메모리, 위상 변화 또는 강유전성 메모리, SONOS(silicon-oxide-nitride-oxide-silicon) 메모리, 자성 또는 광학 카드, RAID(Redundant Array of Independent Disk) 드라이브와 같은 장치들의 어레이, 솔리드 스테이트 메모리 장치(예를 들어, USB 메모리, SSD(solid state drive)), 및 정보를 저장하기에 적절한 임의의 다른 타입의 저장 매체와 같은 형태인 다양한 타입의 컴퓨터-판독가능한 저장 매체를 포함할 수 있다. 도 10에 도시되는 예시의 실시예에서, 시스템 메모리(1004)는 비-휘발성 메모리(1008) 및/또는 휘발성 메모리(1010)를 포함할 수 있다. BIOS(basic input/output system)는 비-휘발성 메모리(1008)에 저장될 수 있다.
컴퓨팅 구조(1000)는 내부(또는 외부) 하드디스크 드라이브(HDD)(1012), 착탈식 자기 디스크(1016)로부터 판독하거나 자기 디스크에 기록하는 자기 플로피 디스크 드라이브(FDD)(1014) 및 착탈식 광학 디스크(1020)로부터 판독하거나 광학 디스크에 기록하는 광학 디스크 드라이브(1018)(예를 들어, CD-ROM 또는 DVD)를 포함하는 하나 이상의 저속 메모리 유닛들의 형태의 다양한 타입의 컴퓨터-판독가능한 저장매체를 포함할 수 있다. HDD(1012), FDD(1014) 및 광학 디스크 드라이브(1020)는 HDD 인터페이스(1022), FDD 인터페이스(1024) 및 광학 드라이브 인터페이스(1026)에 의해 각각 시스템 버스(1006)와 연결될 수 있다. 외부 드라이브 구현을 위한 HDD 인터페이스(1022)는 범용 시리얼 버스(USB) 및 IEEE 694 인터페이스 기술들 중 적어도 하나 또는 양자 모두를 포함할 수 있다.
드라이브 및 관련 컴퓨터-판독가능한 매체는 휘발성 및/또는 비휘발성 데이터 저장, 데이터 구조, 컴퓨터-실행가능한 명령어 등을 제공한다. 예를 들어, 다수의 프로그램 모듈들은 운영 시스템(1028), 하나 이상의 애플리케이션 프로그램(1030), 다른 프로그램 모듈(1032) 및 프로그램 데이터(1034)를 포함하는 드라이브 및 메모리 유닛(1008, 1012)에 저장될 수 있다. 일 실시예에서, 하나 이상의 애플리케이션 프로그램들(1030), 다른 프로그램 모듈들(1032), 및 프로그램 데이터(1034)는 예를 들어, 메시징 시스템(500)의 다양한 애플리케이션들 및/또는 구성요소들을 포함할 수 있다.
사용자는 예를 들어, 키보드(1036) 및 마우스(1038)와 같은 포인팅 장치와 같은 하나 이상의 유선/무선 입력 장치들을 통해 명령 및 정보를 컴퓨터(1001)로 입력할 수 있다. 다른 입력 장치들은 마이크, 적외선(IR) 리모컨, 무선-주파수(RF) 리모컨, 게임 패드, 스타일러스 펜, 카드 판독기, 동글(dongle), 지문 판독기, 장갑, 그래픽 태블릿, 조이스틱, 키보드, 망막 판독기, 터치 스크린(예를 들어, 용량성, 저항성 등), 트랙볼, 트랙 패드, 센서, 스타일러스 등을 포함할 수 있다. 이런 입력 장치 및 다른 입력 장치는 흔히 시스템 버스(1006)와 연결되는 입력 장치 인터페이스(1040)를 통해 프로세싱 유닛(1002)과 연결되지만, 가령 병렬 포트, IEEE 694 직렬 포트, 게임 포트, USB 포트, IR 인터페이스 등과 같이 다른 인터페이스들로 연결될 수 있다.
또한, 모니터(1042) 또는 다른 타입의 디스플레이 장치는 가령 비디오 어댑터(1044)와 같은 인터페이스를 통해 시스템 버스(1006)와 연결된다. 모니터(1042)는 컴퓨터(1001)의 내부 또는 외부에 있을 수 있다. 모니터(1042) 이외에, 컴퓨터는 가령 스피커, 프린터 등과 같은 다른 주변의 출력 장치들을 일반적으로 포함한다.
컴퓨터(1001)는 가령 원격 컴퓨터(1044)와 같은 하나 이상의 원격 컴퓨터로의 유선 및/또는 무선 통신을 통한 논리적 연결을 사용하여 네트워크형 환경에서 동작할 수 있다. 원격 컴퓨터(1044)는 워크스테이션, 서버 컴퓨터, 라우터, 개인용 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 엔터테인먼트 가전, 피어 장치 또는 다른 공통의 네트워크 노드일 수 있고, 간결함을 위해 단지 하나의 메모리/저장 장치(1046)만이 도시되지만, 일반적으로 컴퓨터(1001)에 대하여 기술되는 많은 구성요소 또는 모든 구성요소를 포함한다. 도시되는 논리적 연결은 근거리 네트워크(LAN)(1048)로의 유선/무선 연결 및/또는 예를 들어 광역 네트워크(WAN)(1050)와 같은 더 큰 네트워크를 포함한다. 이런 LAN 및 WAN 네트워킹 환경은 사무실과 회사에서 매우 흔하고, 가령 인트라넷과 같은 기업-광역 컴퓨터 네트워크를 용이하게 하는데 이들 모두는 예를 들어 인터넷과 같은 글로벌 통신 네트워크와 연결할 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1001)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1052)를 통해 LAN(1048)과 연결된다. 어댑터(1052)는 LAN(1048)으로의 유선 및/또는 무선 통신을 용이하게 할 수 있고, 이것은 또한 어댑터(1052)의 무선 기능과 통신하기 위해 그곳에 배치되는 무선 액세스 포인트를 포함할 수 있다.
WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1001)는 모뎀(1054)을 포함할 수 있거나, WAN(1050)에서 통신 서버와 연결되거나, 가령 인터넷과 같이 WAN(1050)을 통해 통신을 확립하기 위한 다른 수단을 가진다. 내부 또는 외부 및 유선 및/또는 무선 장치일 수 있는 모뎀(1054)은 입력 장치 인터페이스(1040)를 통해 시스템 버스(1006)와 연결한다. 네트워크형 환경에서, 컴퓨터(1001)에 대해 묘사되는 프로그램 모듈들 또는 이들의 부분들은 원격 메모리/저장 장치(1046)에 저장될 수 있다. 도시된 네트워크 연결은 예시적이고 컴퓨터들 사이의 통신 링크를 확립하는 다른 수단이 사용될 수 있음이 이해될 것이다.
컴퓨터(1001)는 가령 무선 통신(예를 들어, 오버-더-에어(over-the-air) 변조 기술의 IEEE 802.13)에서 동작가능하게 배치되는 무선 장치와 같이 IEEE 802 표준 패밀리를 사용하여 유선 및 무선 장치 또는 엔티티와 통신하도록 동작 가능하다. 이는 적어도 다른 것들 중에서 Wi-Fi(또는 Wireless Fidelity), WiMax 및 BluetoothTM 무선 기술 등을 포함한다. 따라서, 통신은 종래의 네트워크 또는 적어도 두 개의 장치 사이의 간단한 애드 혹(ad hoc) 통신의 기정의된 구조일 수 있다. Wi-Fi 네트워크는 IEEE 802.13x(a, b, g, n 등)라고 하는 무선 기술을 사용하여 보안의, 신뢰성 있는, 신속한 무선 연결을 제공한다. Wi-Fi 네트워크는 (IEEE 802.3-관련 미디어 및 기능을 사용하여) 서로, 인터넷으로 그리고 유선 네트워크들로 컴퓨터들을 연결하는데 사용될 수 있다.
도 11은 상술한 바와 같이 다양한 실시예들을 구현하는데 적절한 예시적인 통신 아키텍처//(1100)를 도시하는 블록도이다. 통신 아키텍처(1100)는 가령 송신기, 수신기, 송수신기, 라디오, 네트워크 인터페이스, 기저대역 프로세서, 안테나, 증폭기, 필터, 전원 등과 같이 다양한 공통의 통신 구성요소들을 포함한다. 그러나, 실시예들이 통신 아키텍처(1100)에 의한 구현으로 국한되는 것은 아니다.
도 11에 도시된 바와 같이, 통신 아키텍처(1100)는 하나 이상의 클라이언트(1102) 및 서버(1104)를 포함한다. 클라이언트(1102)는 클라이언트 장치(510)를 구현할 수 있다. 서버들(1104)은 서버 장치들(526)을 구현할 수 있다. 클라이언트들(1102) 및 서버들(1104)은 가령 쿠키 및/또는 관련 컨텍스트형 정보와 같이 각각의 클라이언트(1102) 및 서버(1104)에 대한 정보 로컬을 저장하는데 이용될 수 있는 하나 이상의 각각의 클라이언트 데이터 스토어(1106) 및 서버 데이터 스토어(1108)와 동작가능하게 연결된다.
클라이언트(1102) 및 서버(1104)는 통신 프레임워크(1110)를 사용하여 서로 간에 정보를 통신할 수 있다. 통신 프레임워크(1110)는 임의의 잘 알려진 통신 기술 및 프로토콜을 구현할 수 있다. 통신 프레임워크(1110)는 패킷-교환형 네트워크(예를 들어, 인터넷과 같은 공중 네트워크, 기업 인트라넷과 같은 사적 네트워크 등), 회로-교환형 네트워크(예를 들어, 공중 교환 전화망) 또는 (적절한 게이트웨이와 변환기를 가진) 패킷-교환형 네트워크와 회로-교환형 네트워크의 조합으로서 구현될 수 있다.
통신 프레임워크(1110)는 통신 네트워크를 수락, 통신 및 연결하도록 배열되는 다양한 네트워크 인터페이스를 구현할 수 있다. 네트워크 인터페이스는 특수화된 형태의 입출력 인터페이스로 간주될 수 있다. 네트워크 인터페이스는 제한 없이 직접 연결, 이더넷(예를 들어, thick, thin, twisted pair 10/100/1000 Base T 등), 토큰 링, 무선 네트워크 인터페이스, 셀룰러 네트워크 인터페이스, IEEE 802.11a-x 네트워크 인터페이스, IEEE 802.16 네트워크 인터페이스, IEEE 802.20 네트워크 인터페이스 등을 포함하는 연결 프로토콜을 이용할 수 있다. 게다가, 다수의 네트워크 인터페이스는 다양한 통신 네트워크 타입과 연계하는데 사용될 수 있다. 예를 들어, 다수의 네트워크 인터페이스는 브로드캐스트, 멀티캐스트 및 유니캐스트 네트워크를 통한 통신을 가능하게 하는데 이용될 수 있다. 프로세싱 조건이 높은 속도와 성능을 요구하면, 분산형 네트워크 컨트롤러 구조는 마찬가지로 클라이언트(1102) 및 서버(1104)에 의해 요구되는 통신 대역폭을 풀링(pool), 부하 균형(load balance) 및 증가하는데 이용될 수 있다. 통신 네트워크는 제한 없이 직접형 상호연결, 보안형 커스텀 연결, 사적 네트워크(예를 들어, 기업 인트라넷), 공중 네트워크(예를 들어, 인터넷), 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 대도시 네트워크(MAN), OMNI(Operating Missions as Nodes on the Internet), 광역 네트워크(WAN), 무선 네트워크, 셀룰러 네트워크 및 다른 통신 네트워크들을 포함하는 임의의 하나 및 유선 및/또는 무선 네트워크의 조합일 수 있다.
도 12는 메시징 시스템(500)과 같은 멀티캐리어 OFDM 시스템에서 사용되기 위한 장치(1200)의 실시예를 도시한다. 장치(1200)는 예를 들어, 메시징 구성요소 로직(600), 의도 결정 로직(700), 및 그룹 선택 로직(800)을 참조하여 기술되는 것과 같은 소프트웨어 구성요소(1202)를 구현할 수 있다. 장치(1200)는 또한 로직 회로(1204)를 구현할 수 있다. 로직 회로(1204)는 메시징 시스템(500)에 대해 기술된 동작들을 수행하는 물리적인 회로들을 포함할 수 있다. 도 12에 도시되는 것처럼, 장치(1200)는 라디오 인터페이스(1206), 베이스밴드 회로부(1208) 및 컴퓨팅 플랫폼(1210)을 포함할 수 있으나, 실시예들은 이러한 구성으로 제한되지는 않는다.
장치(1200)는 가령 전적으로 단일 장치 내에서와 같이 단일 컴퓨팅 엔티티에서 메시징 시스템(500) 및/또는 로직 회로(1204)에 대한 구조 및/또는 동작의 일부 또는 전부를 구현할 수 있다. 대안으로, 장치(1200)는, 분산형 시스템 구조, 가령 클라이언트-서버 아키텍처, 3-계층 아키텍처(3-tier architecture), N-계층 아키텍처, 긴밀하게 결합된 또는 클러스터된 아키텍처, 피어-투-피어(peer-to-peer) 아키텍처, 마스터-슬레이브(master-slave) 아키텍처, 공유된 데이터베이스 아키텍처 및 다른 타입의 분산형 시스템을 사용하여 다수의 컴퓨팅 엔티티들에 걸쳐 메시징 시스템(500) 및/또는 로직 회로(1204)의 아키텍처 및/또는 동작의 부분들을 분산할 수 있다. 실시예들이 이와같은 문맥으로 제한되는 것은 아니다.
일 실시예에서, 실시예들은 임의의 특정 오버-더-에어 인터페이스나 변조 방식으로 제한되지는 않지만, 라디오 인터페이스(1206)는 단일 캐리어 또는 다중-캐리어 변조 신호(예를 들어, CCK(complementary code keying) 및/또는 OFDM(orthogonal frequency division multiplexing) 심볼들을 포함함)를 전송 및/또는 수신하도록 구성되는 구성요소들의 조합 또는 하나의 구성요소를 포함할 수 있다. 라디오 인터페이스(1206)는 예를 들어, 수신기(1212), 송신기(1214) 및/또는 주파수 합성기(1216)를 포함할 수 있다. 라디오 인터페이스(1206)는 바이어스 컨트롤, 크리스탈 발진기 및/또는 하나 이상의 안테나(1218)를 포함할 수 있다. 다른 실시예로, 라디오 인터페이스(1206)는 소정의 외부 전압-제어 발진기(voltage-controlled oscillators; VCOs), 표면 음파 필터(surface acoustic wave filter), 중간 주파수(IF) 필터 및/또는 RF 필터를 사용할 수 있다. 잠재적인 RF 인터페이스 디자인의 다양성으로 인해, 광범위한 설명은 생략된다.
베이스밴드 회로부(1208)는 신호를 수신 및/또는 전송하는 것을 프로세싱하기 위한 라디오 인터페이스(1206)와 통신할 수 있고, 예를 들어 수신된 신호를 하향 변환하기 위한 아날로그-디지털 컨버터(1220) 및 신호를 전송을 위해 상향 변환하기 위한 디지털-아날로그 컨버터(1222)를 포함할 수 있다. 또한, 베이스밴드 회로부(1208)는 각각의 수신/전송 신호를 프로세싱하는 PHY 링크 계층을 위한 베이스밴드 또는 물리 계층(PHY) 프로세싱 회로(1224)를 포함할 수 있다. 베이스밴드 회로부(1208)는 예를 들어, 매체 액세스 컨트롤(MAC)/데이터 링크 계층 프로세싱을 위한 프로세싱 회로(1226)를 포함할 수 있다. 베이스밴드 회로부(1208)는 예를 들어, 하나 이상의 인터페이스(1230)를 통해 프로세싱 회로(1226) 및/또는 컴퓨팅 플랫폼(1210)과 통신하기 위한 메모리 컨트롤러(1228)를 포함할 수 있다.
일부 실시예들에서, PHY 프로세싱 회로(1224)는 통신 프레임, 가령 라디오 프레임을 구성 및/또는 해체하기 위해 가령 버퍼 메모리와 같은 추가 회로부와 조합되는 프레임 구성 및/또는 감지 모듈을 포함할 수 있다. 대안으로 또는 추가로, MAC 프로세싱 회로(1226)는 특정 이러한 기능들의 프로세싱을 공유하거나 PHY 프로세싱 회로(1224)와는 독립적으로 이러한 프로세스를 수행할 수 있다. 일부 실시예들에서, MAC 및 PHY 프로세싱은 단일 회로로 통합될 수 있다.
컴퓨팅 플랫폼(1210)은 장치(1200)를 위한 컴퓨팅 기능을 제공할 수 있다. 도시되는 것처럼, 컴퓨팅 플랫폼(1210)은 프로세싱 구성요소(1232)를 포함할 수 있다. 베이스밴드 회로부(1208)에 추가로 또는 대안으로, 장치(1200)는 프로세싱 구성요소(1232)를 사용하여 메시징 시스템(500) 및 로직 회로(1204)에 대한 동작 또는 로직을 프로세싱하는 것을 실행할 수 있다. 프로세싱 구성요소(1232)(및/또는 PHY(1224) 및/또는 MAC(1226))는 다양한 하드웨어 요소, 소프트웨어 요소 또는 둘 모두의 조합을 포함할 수 있다. 하드웨어 요소의 예들은 장치들, 로직 장치들, 구성요소들, 프로세서들, 마이크로프로세서들, 회로들, 프로세서 회로들, 회로 요소들(예를 들어, 트랜지스터, 저항, 커패시터, 인덕터 등), 집적회로들, ASIC(application specific integrated circuits), PLD(programmable logic devices), DSP(digital signal processors), FPGA(field programmable gate array), 메모리 유닛들, 로직 게이트들, 레지스터들, 반도체 장치, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어 요소의 예는 소프트웨어 구성요소, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 소프트웨어 개발 프로그램, 기계 프로그램, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 방법, 절차, 소프트웨어 인터페이스, API(application program interfaces), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 단어, 값, 심볼, 또는 이들의 임의의 조합을 포함할 수 있다. 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 사용하여 구현되는지 여부를 판정하는 것은 주어진 구현예를 위해 원하는 바에 따른 임의의 수의 요인들, 가령 소정의 계산 속도, 전력 레벨, 내열성, 프로세싱 사이클 예산, 입력 데이터 속도, 출력 데이터 속도, 메모리 자원, 데이터 버스 속도 및 다른 디자인 또는 성능 제약에 따라 다양할 수 있다.
컴퓨팅 플랫폼(1210)은 다른 플랫폼 구성요소들(1234)을 더 포함할 수 있다. 다른 플랫폼 구성요소들(1234)은 가령 하나 이상의 프로세서, 멀티-코어 프로세서, 코-프로세서(co-processors), 메모리 유닛, 칩셋, 컨트롤러, 주변기기, 인터페이스, 오실레이터, 타이밍 장치, 비디오 카드, 오디오 카드, 멀티미디어 입력/출력(I/O) 구성요소(예를 들어, 디지털 디스플레이들), 전원 등과 같은 공통의 컴퓨팅 요소들을 포함한다. 메모리 유닛들의 예들은 제한 없이, 하나 이상의 고속 메모리 유닛의 형태인 다양한 타입의 컴퓨터 판독가능 및 기계 판독가능한 저장 매체, 가령 ROM(read-only memory), RAM(random-access memory), DRAM(dynamic RAM), DDRAM(Double-Data-Rate DRAM), SDRAM(synchronous DRAM), SRAM(static RAM), PROM(programmable ROM), EPROM(erasable programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 메모리, 강유전성 폴리머 메모리와 같은 폴리머 메모리, 오보닉 메모리, 상 변화 또는 강유전성 메모리, SONOS(silicon-oxide-nitride-oxide-silicon) 메모리, 자성 또는 광학 카드, RAID(Redundant Array of Independent Disks) 드라이브들과 같은 장치들의 어레이, 솔리드 스테이트 메모리 장치(예를 들어, USB 메모리, SSD(solid state drives)) 및 정보를 저장하기에 적절한 임의의 다른 타입의 저장 매체를 포함할 수 있다.
장치(1200)는 예를 들어, 울트라-모바일 장치, 모바일 장치, 고정형 장치, M2M(machine-to-machine) 장치, PDA(personal digital assistant), 모바일 컴퓨팅 장치, 스마트폰, 전화, 디지털 전화, 셀룰러 전화, 사용자 장비, eBook 판독기, 핸드셋, 단방향 호출기, 쌍방향 호출기, 메시징 장치, 컴퓨터, 개인용 컴퓨터(PC), 데스크톱 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 넷북 컴퓨터, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 서버, 서버 어레이 또는 서버 팜, 웹 서버, 네트워크 서버, 인터넷 서버, 워크 스테이션, 미니-컴퓨터, 메인 프레임 컴퓨터, 슈퍼컴퓨터, 네트워크 어플라이언스, 웹 어플라이언스, 분산형 컴퓨팅 시스템, 멀티프로세서 시스템, 프로세서-기반 시스템, 소비자 가전, 프로그램가능한 소비자 가전, 게임 장치, 텔레비전, 디지털 텔레비전, 셋톱 박스, 무선 액세스 포인트, 기지국, 노드 B, eNB(evolved node B), 가입자 스테이션, 모바일 가입자 센터, 라디오 네트워크 컨트롤러, 라우터, 허브, 게이트웨이, 브리지, 스위치, 기계 또는 이들의 조합일 수 있다. 따라서, 본 명세서에 기술된 장치(1200)의 기능 및/또는 특정 구성은 적절하게 원하는 바에 따라 장치(1200)의 다양한 실시예들에서 포함되거나 생략될 수 있다. 일부 실시예들에서, 장치(1200)는 본 명세서에서 인용하는 3GPP LTE 규격 및/또는 WMANs에 대한 IEEE 1402.16 표준 및/또는 다른 브로드밴드 무선 네트워크 중 하나 이상과 연관되는 프로토콜 및 주파수와 호환되도록 구성될 수 있으나, 실시예들은 이러한 관점으로 제한되지는 않는다.
장치(1200)의 실시예들은 SISO(single input single output) 구조를 사용하여 구현될 수 있다. 하지만, 특정 구현들은 빔형성 또는 공간 분할 다중 액세스(spatial division multiple access; SDMA)를 위한 적응형 안테나 기술을 사용 및/또는 MIMO 통신 기술을 사용하여 전송 및/또는 수신을 하기 위한 다수의 안테나들(예를 들어, 안테나(1218))를 포함할 수 있다.
장치(1200)의 구성요소들 및 특징부는 별개의 회로부, ASICs(application specific integrated circuits), 로직 게이트 및/또는 단일 칩 구조의 임의의 조합을 사용하여 구현될 수 있다. 추가로, 장치(1200)의 특징부는 마이크로컨트롤러, 프로그램가능한 로직 어레이 및/또는 마이크로프로세서나 적절한 경우 전술한 것들의 임의의 조합을 사용하여 구현될 수 있다. 하드웨어, 펌웨어 및/또는 소프트웨어 요소는 본 명세서에서 "로직" 또는 "회로"라고 전체적으로 또는 개별적으로 지칭될 수 있음을 유의해야 한다.
도 12의 블록도에 도시된 예시적인 장치(1200)는 다수의 잠재적인 구현예의 하나의 기능적으로 설명된 예시를 표현할 수 있다. 따라서, 첨부되는 도면에 도시된 블록 기능의 분할, 생략 또는 포함은 이러한 기능을 구현하기 위한 하드웨어 구성요소, 회로, 소프트웨어 및/또는 요소가 실시예들에서 필수적으로 분할, 생략 또는 포함되어야 하는 것으로 추론되지 않는다.
적어도 하나의 컴퓨터 판독가능한 저장 매체(1236)는 실행시 시스템으로 하여금 본원에 기술된 임의의 컴퓨터-구현 방법들을 수행하게 하는 명령어들을 포함할 수 있다.
용어에 관한 일반 사항
일부의 실시예들은 "일실시예(one embodiment)" 또는 "하나의 실시예(an embodiment)"의 표현 및 그 파생어들을 사용하여 기술될 수 있다. 이들 용어는 그 실시예와 함께 기술되는 특정한 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함됨을 의미한다. 본 명세서의 곳곳에서 "일실시예로"라는 문구의 형태는 반드시 동일한 실시예를 일컫는 모든 것이 아니다. 또한, 달리 언급되지 않는 한, 전술한 특징은 임의의 조합으로 함께 사용될 수 있는 것으로 인식된다. 따라서, 개별적으로 논의된 특징들은 서로 호환되지 않는 것으로 언급되지 않는 한, 서로 조합하여 사용될 수 있다.
본원에서 사용되는 표기법 및 명명법을 일반적으로 참조하여, 본 명세서의 상세한 설명은 컴퓨터 또는 컴퓨터의 네트워크에서 실행되는 프로그램 절차의 관점에서 제시될 수 있다. 이런 절차적 설명 및 표현은 당업자가 해당 기술분야의 다른 사람들에게 그 발명의 요지를 가장 효과적으로 전달하는데 사용된다.
절차는 본 명세서에서 일반적으로 소정의 결과로 이어지는 일관성 있는 일련의 동작들이라고 이해된다. 이러한 동작들은 물리량의 물리적 조작을 요구하는 동작들이다. 보통, 반드시 그런 것은 아니지만, 이런 물리량은 저장되고, 전달되며, 결합되고, 비교되며, 그렇지 않으면 조작될 수 있는 전기적 신호, 자기적 신호 또는 광학적 신호의 형태를 취한다. 원칙상 공통의 사용을 이유로 이런 신호를 비트, 값, 요소, 심볼, 문자, 용어, 숫자 등으로 일컫는 것이 때때로 간편하다고 판명되었다. 하지만, 이러한 것들 전부와 그와 유사한 용어들은, 적절한 물리적 수량과 연관되는 것이며, 이러한 수량들에 적용되는 편리한 라벨임을 유의해야 한다.
게다가, 수행되는 조작은 사람 운영자가 수행한 정신적인 동작과 통상 관련되는 가령 추가하기 또는 비교하기와 같은 용어들로 흔히 일컬어질 수 있다. 사람 운영자의 이런 능력이 하나 이상의 실시예들의 일부를 형성하는 본 명세서에 기술되는 임의의 동작에서 대부분의 경우 반드시 필요하거나 바람직한 것은 아니다. 그 대신, 동작들은 기계 동작들이다. 다양한 실시예들의 동작들을 수행하기 위한 유용한 기계는 범용의 디지털 컴퓨터 또는 유사한 장치들을 포함한다.
일부 실시예들은 표현 "결합된(coupled)" 및 "연결된"을 그들의 파생어들과 함께 사용하여 기술될 수 있다. 이들 용어는 서로에 대해 반드시 동의어로 의도되는 것은 아니다. 예를 들어, 일부 실시예들은 두 개 이상의 요소들이 서로에 대해 직접적인 물리적이거나 전기적으로 접촉함을 표시하기 위해 "연결되는(connected)" 및/또는 "결합되는(coupled)"의 용어를 사용하여 기술될 수 있다. 그러나, "결합되는(coupled)"이란 용어는 또한 두 개 이상의 요소들이 서로 직접 접촉하지는 않지만 여전히 함께 동작하거나 서로 상호작용함을 의미할 수 있다.
또한, 다양한 실시예들은 이런 동작들을 수행하기 위한 장치 또는 시스템에 관한 것이다. 이런 장치는 요구되는 목적으로 특수하게 구성될 수 있거나, 컴퓨터에 저장되는 컴퓨터 프로그램에 의해 선택적으로 활성되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 본 명세서에서 제시되는 절차가 본래로 특정 컴퓨터 또는 다른 장치에 관한 것은 아니다. 다양한 범용 기계는 본 명세서에 시사된 것에 따라 작성되는 프로그램으로 사용될 수 있거나, 요구되는 방법 단계들을 수행하도록 더 특수화된 장치를 구성하는 것이 간편하다고 판명될 수 있다. 다양한 이러한 기계들을 위해 요구되는 구조는 주어진 설명으로부터 나타날 것이다.
독자(reader)가 기술적 개시의 성질을 신속히 파악할 수 있게 하도록 본 개시의 요약이 제공됨이 강조된다. 이런 요약의 제시가 청구항들의 범위 또는 의미를 해석하거나 제한하는데 사용되지 않는다고 이해될 것이다. 또한, 상술한 상세한 설명에서, 본 명세서를 간소화하기 위해 다양한 특징들이 하나의 실시예에서 함께 그룹화됨을 알 수 있다. 본 개시의 이런 방법은 청구된 실시예들이 각 청구항에 명확히 기재되는 것보다 더 많은 특징들을 필요로 한다는 의도를 반영하는 것으로 해석되는 것은 아니다. 그 대신, 하기의 청구항들이 반영하는 바와 같이, 발명의 주제는 개시된 하나의 실시예의 모든 특징 미만 내에 있다. 따라서, 하기의 청구항들은 본 명세서에서 상세한 설명에 통합되며, 각 청구항은 개별 실시예로서 그 자체를 기초로 한다. 첨부된 청구항들에서, "포함하는(including)" 및 "여기서(in which)"란 용어는 각각의 "포함하는(comprising)" 및 "그 점에서(wherein)"이란 용어와 평이한 영어로 동등하게 각각 사용된다. 게다가, "제1의(first)", "제2의(second)", "제3의(third)" 등의 용어는 단지 라벨로 사용되며, 그 객체에 대해 수치적 요건을 부여하려는 의도는 아니다.
상술한 내용들은 본 발명의 개시된 구조의 예들을 포함한다. 물론, 컴포넌트들 및/또는 방법론들의 모든 구상가능한 조합을 기술하는 것은 불가능하지만, 당업자는 많은 추가의 조합과 치환이 가능함을 인식할 수 있다. 따라서, 새로운 구조는 첨부되는 청구항들의 사상 및 범위 내에 포함되는 이러한 모든 변경, 수정, 및 변형을 포괄하는 것으로 의도된다.

Claims (34)

  1. 방법에 있어서:
    발신 클라이언트와 수신 클라이언트 사이에 종단 간 암호화된 세션(end-to-end encrypted session)을 위한 설정 정보를 수신하는 단계로서, 상기 설정 정보는 메시지 컨텐츠를 해독하기 위한 제 1 암호화 키에 관한 정보를 포함하는, 상기 설정 정보를 수신하는 단계;
    상기 설정 정보를 상기 수신 클라이언트에 송신하는 단계로서, 상기 수신 클라이언트는 임시 컨텐츠를 포함하는 메시지의 복수의 수신자들 중 하나이고, 상기 임시 컨텐츠는 암호화된 미디어와 상기 미디어를 해독하기 위한 제 2 키에 포함되고, 상기 임시 컨텐츠는 상기 미디어의 썸네일 및 상기 미디어에 대한 링크를 포함하고, 상기 미디어에 대한 상기 링크는 미리 정해진 기간 또는 미리 정해진 수의 뷰들 동안 상기 수신 클라이언트가 원격으로 접근 가능한 고품질 버전의 상기 미디어에 링크하고 그 후에는 비활성화되도록 구성되고, 상기 고품질 버전의 상기 미디어에 대한 접근 가능성은 상기 메시지의 상기 복수의 수신자들 각각에 대해 별도로 결정되는, 상기 설정 정보를 상기 수신 클라이언트에 송신하는 단계; 및
    상기 임시 컨텐츠를 상기 수신 클라이언트에 송신하는 단계를 포함하는, 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 메시지의 의도된 수신자들의 리스트에 액세스하는 단계;
    상기 의도된 수신자들의 리스트를 필터링하는 단계를 더 포함하고,
    상기 필터링하는 단계는:
    상기 리스트로부터 발신 클라이언트 계정과 관련된 발신 사용자 계정과 대칭 관계를 갖지 않는 수신자들을 제거하는 단계,
    상기 발신 사용자 계정으로부터 메시지들을 차단하는 수신자들을 제거하는 단계, 또는
    메시지들이 상기 발신 사용자 계정에 의해 차단된 수신자들을 제거하는 단계 중 하나 이상을 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 수신 클라이언트로부터 상기 메시지에 대한 응답을 수신하는 단계;
    상기 메시지가 브로드캐스트의 일부로서 송신되었다고 결정하는 단계; 및
    상기 발신 클라이언트와 관련된 발신 사용자 계정과 상기 수신 클라이언트와 관련된 수신 사용자 계정 사이의 일대일 대화의 일부로서 상기 응답을 전송하는 단계를 더 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 메시지는 수신자들의 그룹에 송신되고,
    상기 메시지에 대한 응답을 수신하는 단계, 상기 그룹의 각 멤버들의 쌍 사이에 암호화된 세션이 존재하는지 확인하는 단계, 및 상기 수신자들의 그룹에 상기 응답을 송신하는 단계를 더 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 메시지를 수신한 후, 상기 발신 클라이언트와 관련된 발신 사용자 계정과 제 3 사용자 계정 사이에 동기 관계(synchronous relationship)를 확립하는 단계; 및
    상기 메시지를 상기 제 3 사용자와 관련된 제 3 장치에 송신하는 것을 억제하는 단계를 더 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 임시 컨텐츠를 포함하는 상기 메시지를 수신하는 서버는 상기 암호화된 미디어에 액세스할 수 없는, 방법.
  8. 비-일시적 컴퓨터-판독 가능 매체에 있어서:
    하나 이상의 프로세서들이 발신 클라이언트와 수신 클라이언트 사이의 종단 간 암호화된 세션을 위한 설정 정보를 수신하게 하도록 구성된 명령어들로서, 상기 수신 클라이언트는 임시 컨텐츠를 포함하는 메시지의 복수의 수신자들 중 하나이고, 상기 설정 정보는 메시지 컨텐츠를 해독하기 위한 제 1 암호화 키에 관한 정보를 포함하는, 상기 설정 정보를 수신하게 하도록 구성된 명령어들;
    하나 이상의 프로세서들이 상기 설정 정보를 상기 수신 클라이언트에 송신하게 하도록 구성된 명령어들;
    하나 이상의 프로세서들이 상기 메시지를 수신하게 하도록 구성된 명령어들로서, 상태 업데이트는 암호화된 미디어와 상기 미디어를 해독하기 위한 제 2 키에 포함되고, 상기 임시 컨텐츠는 상기 미디어의 썸네일 및 상기 미디어에 대한 링크를 포함하고, 상기 미디어에 대한 상기 링크는 미리 정해진 기간 또는 미리 정해진 수의 뷰들 동안 상기 수신 클라이언트가 원격으로 접근 가능한 고품질 버전의 상기 미디어에 링크하고 그 후에는 비활성화되도록 구성되고, 상기 고품질 버전의 상기 미디어에 대한 접근 가능성은 상기 메시지의 상기 복수의 수신자들 각각에 대해 별도로 결정되는, 상기 메시지를 수신하게 하도록 구성된 명령어들; 및
    하나 이상의 프로세서들이 상기 상태 업데이트를 상기 수신 클라이언트에 송신하게 하도록 구성된 명령어들을 저장하는, 비-일시적 컴퓨터-판독 가능 매체.
  9. 삭제
  10. 제 8 항에 있어서,
    상기 하나 이상의 프로세서들이 상기 메시지의 의도된 수신자들의 리스트에 액세스하게 하도록 구성된 명령어들; 및
    상기 하나 이상의 프로세서들이 상기 의도된 수신자들의 리스트를 필터링하게 하도록 구성된 명령어들을 더 저장하고,
    상기 필터링은:
    상기 리스트로부터 발신 클라이언트 계정과 관련된 발신 사용자 계정과 대칭 관계를 갖지 않는 수신자들을 제거하는 것,
    상기 발신 사용자 계정으로부터 메시지들을 차단하는 수신자들을 제거하는 것, 또는
    메시지들이 상기 발신 사용자 계정에 의해 차단된 수신자들을 제거하는 것 중 하나 이상을 포함하는, 비-일시적 컴퓨터-판독 가능 매체.
  11. 제 8 항에 있어서,
    상기 하나 이상의 프로세서들이 상기 수신 클라이언트로부터 상기 메시지에 대한 응답을 수신하게 하도록 구성된 명령어들;
    상기 하나 이상의 프로세서들이 상기 메시지가 브로드캐스트의 일부로서 송신되었다고 결정하게 하도록 구성된 명령어들; 및
    상기 하나 이상의 프로세서들이 상기 발신 클라이언트와 관련된 발신 사용자 계정과 상기 수신 클라이언트와 관련된 수신 사용자 계정 사이의 일대의 대화의 일부로서 상기 응답을 전송하게 하도록 구성된 명령어들을 더 저장하는, 비-일시적 컴퓨터-판독 가능 매체.
  12. 제 8 항에 있어서,
    상기 상태 업데이트는 수신자들의 그룹에 송신되고,
    상기 하나 이상의 프로세서들이 상기 메시지에 대한 응답을 수신하고, 상기 그룹의 각 멤버들의 쌍 사이에 암호화된 세션이 존재하는지 확인하고, 상기 수신자들의 그룹에 상기 응답을 송신하게 하도록 구성된 명령어들을 더 저장하는, 비-일시적 컴퓨터-판독 가능 매체.
  13. 제 8 항에 있어서,
    상기 하나 이상의 프로세서들이 상기 메시지를 수신한 후 상기 발신 클라이언트와 관련된 발신 사용자 계정과 제 3 사용자 계정 사이에 동기 관계를 확립하게 하도록 구성된 명령어들을 더 저장하고, 상기 하나 이상의 프로세서들은 상기 메시지를 상기 제 3 사용자와 관련된 제 3 장치에 송신하는 것을 억제하게 하도록 구성된, 비-일시적 컴퓨터-판독 가능 매체.
  14. 제 8 항에 있어서,
    상기 임시 컨텐츠를 포함하는 상기 메시지를 수신하는 서버는 상기 암호화된 컨텐츠에 액세스할 수 없는, 비-일시적 컴퓨터-판독 가능 매체.
  15. 장치에 있어서:
    발신 클라이언트와 수신 클라이언트 사이의 종단 간 암호화된 세션을 위한 설정 정보를 저장하도록 구성된 비-일시적 컴퓨터-판독 가능한 매체로서, 상기 설정 정보는 메시지 컨텐츠를 해독하기 위한 제 1 암호화 키에 관한 정보를 포함하는, 상기 비-일시적 컴퓨터-판독 가능한 매체;
    적어도 부분적으로 하드웨어에서 구현되고, 상기 설정 정보를 상기 수신 클라이언트에 송신하도록 구성된 종단 간 암호화 세션 로직으로서, 상기 수신 클라이언트는 임시 컨텐츠를 포함하는 메시지의 복수의 수신자들 중 하나인, 종단 간 암호화 세션 로직; 및
    적어도 부분적으로 하드웨어에서 구현되고, 상기 메시지를 수신하고, 상기 메시지를 상기 수신 클라이언트에 송신하도록 구성된 네트워크 인터페이스 로직으로서, 상태 업데이트는 암호화된 미디어와 상기 미디어를 해독하기 위한 제 2 키에 포함되고, 상기 임시 컨텐츠는 상기 미디어의 썸네일 및 상기 미디어에 대한 링크를 포함하고, 상기 미디어에 대한 상기 링크는 미리 정해진 기간 또는 미리 정해진 수의 뷰들 동안 상기 수신 클라이언트가 원격으로 접근 가능한 고품질 버전의 상기 미디어에 링크하고 그 후에는 비활성화되도록 구성되고, 상기 고품질 버전의 상기 미디어에 대한 접근 가능성은 상기 메시지의 상기 복수의 수신자들 각각에 대해 별도로 결정되는, 상기 네트워크 인터페이스 로직을 포함하는, 장치.
  16. 삭제
  17. 제 15 항에 있어서,
    적어도 부분적으로 하드웨어에서 구현되고, 상기 메시지의 의도된 수신자들의 리스트에 액세스하고 상기 의도된 수신자들의 리스트를 필터링하도록 구성된 필터링 로직을 더 포함하고,
    상기 필터링은:
    상기 리스트로부터 발신 클라이언트 계정과 관련된 발신 사용자 계정과 대칭 관계를 갖지 않는 수신자들을 제거하는 것,
    상기 발신 사용자 계정으로부터 메시지들을 차단하는 수신자들을 제거하는 것, 또는
    메시지들이 상기 발신 사용자 계정에 의해 차단된 수신자들을 제거하는 것 중 하나 이상을 포함하는, 장치.
  18. 제 15 항에 있어서,
    적어도 부분적으로 하드웨어에서 구현되고, 상기 메시지가 브로드캐스트의 일부로서 송신되었다고 결정하도록 구성된 확인 로직을 더 포함하고, 상기 네트워크 인터페이스 로직은 상기 수신 클라이언트로부터 상기 상태 업데이트에 대한 응답을 수신하고, 상기 발신 클라이언트와 관련된 발신 사용자 계정과 상기 수신 클라이언트와 관련된 수신 사용자 계정 사이의 일대일 대화의 일부로서 상기 응답을 전송하도록 더 구성되는, 장치.
  19. 제 15 항에 있어서,
    상기 메시지는 수신자들의 그룹에 전송되고, 적어도 부분적으로 하드웨어에서 구현되고, 상기 그룹의 각 멤버들의 쌍 사이에 암호화된 세션이 존재하는지 확인하도록 구성된 확인 로직을 더 포함하고, 상기 네트워크 인터페이스 로직은 상기 상태 업데이트에 대한 응답을 수신하고, 상기 확인 로직이 상기 암호화된 세션의 존재를 확인할 때 상기 수신자들의 그룹에 상기 응답을 송신하도록 더 구성되는, 장치.
  20. 제 15 항에 있어서,
    적어도 부분적으로 하드웨어에서 구현되고, 상기 메시지를 수신한 후 상기 발신 클라이언트와 관련된 발신 사용자 계정과 제 3 사용자 계정 사이에 동기 관계를 확립하게 하도록 구성된 관계 로직을 더 포함하고, 하나 이상의 프로세서들은 상기 메시지를 상기 제 3 사용자와 관련된 제 3 장치에 송신하는 것을 억제하게 하도록 구성된, 장치.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
KR1020197026199A 2017-02-17 2017-09-18 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들 KR102396947B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020227014991A KR102427983B1 (ko) 2017-02-17 2017-09-18 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들
KR1020227015384A KR102480096B1 (ko) 2017-02-17 2017-09-18 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들

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 (2)

Application Number Title Priority Date Filing Date
KR1020227014991A Division KR102427983B1 (ko) 2017-02-17 2017-09-18 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들
KR1020227015384A Division KR102480096B1 (ko) 2017-02-17 2017-09-18 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들

Publications (2)

Publication Number Publication Date
KR20190109768A KR20190109768A (ko) 2019-09-26
KR102396947B1 true KR102396947B1 (ko) 2022-05-13

Family

ID=63167482

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227015384A KR102480096B1 (ko) 2017-02-17 2017-09-18 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들
KR1020197026199A KR102396947B1 (ko) 2017-02-17 2017-09-18 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들
KR1020227014991A KR102427983B1 (ko) 2017-02-17 2017-09-18 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227015384A KR102480096B1 (ko) 2017-02-17 2017-09-18 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227014991A KR102427983B1 (ko) 2017-02-17 2017-09-18 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들

Country Status (5)

Country Link
US (6) US10582036B2 (ko)
JP (2) JP2020512724A (ko)
KR (3) KR102480096B1 (ko)
CN (2) CN114465782A (ko)
WO (1) WO2018151758A1 (ko)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10439999B2 (en) * 2014-06-02 2019-10-08 Michael T. Mantzke 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
US10742587B2 (en) * 2017-04-10 2020-08-11 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
US11328247B2 (en) * 2017-10-24 2022-05-10 Emotional Commerce, Llc 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
US11303601B2 (en) 2017-12-14 2022-04-12 Meta Platforms, Inc. Systems and methods for sharing content
US10873558B2 (en) 2017-12-14 2020-12-22 Facebook, 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
DK201870374A1 (en) 2018-05-07 2019-12-04 Apple Inc. AVATAR CREATION USER INTERFACE
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
US20200097913A1 (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 蓝信移动(北京)科技有限公司 消息监管方法和系统以及密钥服务器
KR102601687B1 (ko) * 2018-11-09 2023-11-13 라인플러스 주식회사 메시지 그룹 관리를 위한 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
WO2020124228A1 (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 北京字节跳动网络技术有限公司 图片类评论数据的展示方法、装置、设备及介质
CN113535047A (zh) * 2019-05-06 2021-10-22 苹果公司 头像与多个应用程序的集成
US11405347B1 (en) * 2019-05-31 2022-08-02 Meta Platforms, Inc. Systems and methods for providing game-related content
US11206232B2 (en) * 2019-06-18 2021-12-21 Facebook, Inc. Generating and maintaining group messaging threads for ephemeral content
USD976266S1 (en) 2019-06-18 2023-01-24 Meta Platforms, Inc. Display screen or portion thereof with a graphical user interface
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
EP4298785A1 (en) * 2021-02-25 2024-01-03 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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066175A1 (en) * 2003-09-18 2005-03-24 Perlman Radia J. Ephemeral decryption utilizing blinding functions
US20100082831A1 (en) * 2008-09-30 2010-04-01 Sun Microsystems, Inc. Loadable and modular conditional access application
US20150100670A1 (en) * 2013-10-04 2015-04-09 International Business Machines Corporation Transporting multi-destination networking traffic by sending repetitive unicast

Family Cites Families (65)

* 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
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
EP1910976A4 (en) 2005-07-29 2013-08-21 Ernst & Young U S Llp METHOD AND APPARATUS FOR PROVIDING A UNIFIED DRAFTING SYSTEM
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
EP2502174B1 (en) * 2009-11-16 2018-06-13 Simmonds Precision Products, Inc. Data acquisition system for condition-based maintenance
US8433764B2 (en) * 2010-02-09 2013-04-30 Google Inc. Identification of message recipients
KR101701151B1 (ko) * 2010-09-20 2017-02-02 삼성전자주식회사 휴대 단말기를 이용한 통합 메시지 송수신 방법 및 장치
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
US9300621B2 (en) * 2012-02-05 2016-03-29 Apple Inc. Communication history aggregation and presentation
US9285981B1 (en) * 2012-07-16 2016-03-15 Wickr Inc. Discouraging screen capture
US8964947B1 (en) 2013-03-11 2015-02-24 Amazon Technologies, Inc. Approaches for sharing data between electronic devices
US9264463B2 (en) 2013-03-15 2016-02-16 Facebook, Inc. Method and system of managing ephemeral post in a social networking system
US9143906B2 (en) 2013-03-15 2015-09-22 Google Inc. Premium messaging challenges
KR101495257B1 (ko) 2013-04-18 2015-02-25 주식회사 팬택 단말 아이콘 제어 방법 및 장치
DK2820953T3 (en) 2013-07-02 2015-12-07 Symborg S L Glomus iranicum var. tenuihypharum var. November strain and its use as a biostimulant
US8914752B1 (en) 2013-08-22 2014-12-16 Snapchat, Inc. Apparatus and method for accelerated display of ephemeral messages
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
US20170033925A1 (en) 2014-04-11 2017-02-02 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
US9773232B1 (en) * 2014-08-20 2017-09-26 Square, Inc. Payment without account creation
WO2016033356A1 (en) 2014-08-27 2016-03-03 Contentguard Holdings, Inc. Method, apparatus, and media for creating social media channels
US10061914B2 (en) 2014-11-14 2018-08-28 Mcafee, Llc Account recovery protocol
US9954837B2 (en) * 2015-01-07 2018-04-24 Cyph, Inc. Method of multi-factor authenication during encrypted communications
US9992258B2 (en) 2015-01-13 2018-06-05 Whatsapp Inc. Techniques for managing a remote web client from an application on a mobile device
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
CA2990651A1 (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
EP3331446A1 (en) * 2015-08-05 2018-06-13 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
US20180034757A1 (en) 2016-08-01 2018-02-01 Facebook, Inc. Systems and methods to manage media content items
WO2018048411A1 (en) * 2016-09-08 2018-03-15 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
KR20220156101A (ko) 2016-11-01 2022-11-24 스냅 인코포레이티드 고속 비디오 캡처 및 센서 조절
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066175A1 (en) * 2003-09-18 2005-03-24 Perlman Radia J. Ephemeral decryption utilizing blinding functions
US20100082831A1 (en) * 2008-09-30 2010-04-01 Sun Microsystems, Inc. Loadable and modular conditional access application
US20150100670A1 (en) * 2013-10-04 2015-04-09 International Business Machines Corporation Transporting multi-destination networking traffic by sending repetitive unicast

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102396947B1 (ko) 임시 컨텐츠 메시지를 처리하기 위한 방법들 및 시스템들
US11700256B1 (en) Techniques for group message thread link administration
EP3364330B1 (en) Methods and systems for processing an ephemeral content message
US11616747B1 (en) Systems and methods for multi-agent messaging
US10904481B1 (en) Broadcasting and managing call participation
US11637795B1 (en) Techniques for templated messages
EP4027257A1 (en) Methods and systems for end-to-end encrypted message history exchange
US20230269209A1 (en) Systems and methods for opt-in messaging
EP3382624A1 (en) Techniques for templated messages

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant