KR20210046082A - 외부에서 공유되는 통신 채널들을 생성하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품 - Google Patents

외부에서 공유되는 통신 채널들을 생성하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20210046082A
KR20210046082A KR1020217011092A KR20217011092A KR20210046082A KR 20210046082 A KR20210046082 A KR 20210046082A KR 1020217011092 A KR1020217011092 A KR 1020217011092A KR 20217011092 A KR20217011092 A KR 20217011092A KR 20210046082 A KR20210046082 A KR 20210046082A
Authority
KR
South Korea
Prior art keywords
group
communication channel
shared
message
client devices
Prior art date
Application number
KR1020217011092A
Other languages
English (en)
Other versions
KR102561557B1 (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
Priority claimed from US16/206,578 external-priority patent/US10402371B2/en
Application filed by 슬랙 테크놀로지스, 인크. filed Critical 슬랙 테크놀로지스, 인크.
Priority claimed from PCT/US2019/063852 external-priority patent/WO2020113162A1/en
Publication of KR20210046082A publication Critical patent/KR20210046082A/ko
Application granted granted Critical
Publication of KR102561557B1 publication Critical patent/KR102561557B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1822Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership

Landscapes

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

Abstract

복수의 데이터베이스 샤드들을 갖는 그룹 기반 통신 플랫폼에서 공유되는 통신 채널을 생성하기 위한 컴퓨팅 시스템들, 장치들, 컴퓨터 구현 방법들, 및 컴퓨터 프로그램 제품들이 개시된다. 예시적인 컴퓨터 구현 방법은, 공유되는 통신 채널 식별, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받는 공유되는 통신 채널 샤드를 생성하는 단계를 포함한다. 방법은, 공유되는 통신 채널 속성들의 제1 세트 및 제2 세트에 기초하여 제1 및 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스들을 각각 생성하는 단계를 추가로 포함한다. 방법은, 제1 및 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스들을 제1 그룹 식별과 연관된 제1 클라이언트 디바이스 및 제2 그룹 식별과 연관된 제2 클라이언트 디바이스로 각각 송신하는 단계를 추가로 포함한다.

Description

외부에서 공유되는 통신 채널들을 생성하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품
본 출원은 발명의 명칭이 "METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR GENERATING EXTERNALLY SHARED COMMUNICATION CHANNELS”이고 2019년 6월 12일자로 출원된 미국 특허 출원 제16/438,957호, 및 발명의 명칭이 “METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR GENERATING EXTERNALLY SHARED COMMUNICATION CHANNELS”이고 2018년 11월 30일자로 출원된 미국 특허 출원 제16/206,578호에 대한 우선권을 주장한다. 미국 특허 출원 제16/438,957호는 미국 특허 출원 제16/206,578호의 연속 출원이고, 이는 발명의 명칭이 “METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR GENERATING EXTERNALLY SHARED COMMUNICATION CHANNELS”이고 2017년 11월 17일자로 출원된 미국 특허 출원 제15/816,925호의 부분 연속이고, 이는 발명의 명칭이 “METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR GENERATING EXTERNALLY SHARED COMMUNICATION CHANNELS”이고 2017년 7월 20일자로 출원된 미국 특허 출원 제15/655,634호의 연속이며, 그 내용들은 그들 전체가 본 명세서에 참고로 포함된다.
다양한 시스템들은 외부에서 공유되는 통신 채널들을 생성하도록 구성된다. 출원인은 기존 시스템들과 연관된 많은 결함들 및 문제들을 확인했다. 적용되는 노력, 독창성, 및 혁신성을 통해, 본 개시내용의 실시예들에 따르는 솔루션들을 개발함으로써 이러한 확인된 결함들 및 문제들 중 많은 것들이 해결되었으며, 그들의 많은 예들이 본 명세서에서 상세히 기술된다.
일반적으로, 본 개시내용의 실시예들은 외부에서 공유되는 통신 채널들을 생성하기 위한 방법들, 장치, 시스템들, 컴퓨팅 디바이스들 등을 제공한다.
하나의 예시적인 실시예에서, 그룹 기반 통신 플랫폼에서 공유되는 통신 채널을 생성하기 위한 컴퓨팅 시스템이 제공된다. 그룹 기반 통신 플랫폼은 복수의 데이터베이스 샤드(shard)들을 포함할 수 있다. 컴퓨팅 시스템은, 개시자 그룹 식별과 연관된 제1 클라이언트 디바이스로부터, 개시자 그룹 식별 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 생성 쿼리를 수신하도록 구성된 통신 회로를 포함할 수 있다. 통신 회로는, 타깃 그룹 식별과 연관된 제2 클라이언트 디바이스로, 공유되는 통신 채널 수락 요청을 송신하도록 추가로 구성될 수 있다. 통신 회로는, 공유되는 통신 채널 수락 통지를 수신하도록 추가로 구성될 수 있다. 통신 회로는, 제1 클라이언트 디바이스로, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다. 통신 회로는, 제2 클라이언트 디바이스로, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다. 컴퓨팅 시스템은 통신 회로와 통신하는 데이터베이스 회로를 추가로 포함할 수 있다. 데이터베이스 회로는, 통신 회로로부터, 공유되는 통신 채널 생성 쿼리를 수신하도록 구성될 수 있다. 데이터베이스 회로는 공유되는 통신 채널 샤드를 생성하도록 추가로 구성될 수 있다. 복수의 데이터베이스 샤드들은 공유되는 통신 채널 샤드를 포함할 수 있다. 공유되는 통신 채널 샤드는 공유되는 통신 채널 식별, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받을 수 있다. 데이터베이스 회로는 공유되는 통신 채널 수락 요청을 생성하도록 추가로 구성될 수 있다. 공유되는 통신 채널 수락 요청은 공유되는 통신 채널 식별과 연관될 수 있다. 데이터베이스 회로는, 타깃 그룹 식별과 연관된 제2 클라이언트 디바이스로의 송신을 위한 통신 회로로, 공유되는 통신 채널 수락 요청을 송신하도록 추가로 구성될 수 있다. 데이터베이스 회로는, 통신 회로로부터, 공유되는 통신 채널 수락 통지를 수신하도록 추가로 구성될 수 있다. 공유되는 통신 채널 수락 통지는 공유되는 통신 채널 식별을 타깃 그룹 식별과 연관시키기기 위한 전자적 승인을 포함할 수 있다. 컴퓨팅 시스템은 통신 회로, 데이터베이스 회로, 및 메인 데이터베이스와 통신하는 참조 테이블 생성 회로를 추가로 포함할 수 있다. 메인 데이터베이스는 샤드 참조 테이블을 포함할 수 있다. 참조 테이블 생성 회로는 개시자 그룹 식별, 타깃 그룹 식별, 공유되는 통신 채널 식별, 공유되는 통신 채널 속성들의 제1 세트, 및 공유되는 통신 채널 속성들의 제2 세트에 기초하여 샤드 참조 테이블을 업데이트하도록 구성될 수 있다. 컴퓨팅 시스템은 통신 회로, 데이터베이스 회로, 및 참조 테이블 생성 회로와 통신하는 인터페이스 생성 회로를 더 포함할 수 있다. 인터페이스 생성 회로는 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하도록 구성될 수 있다. 인터페이스 생성 회로는 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하도록 구성될 수 있다. 인터페이스 생성 회로는, 제1 클라이언트 디바이스로의 송신을 위한 통신 회로로, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 구성될 수 있다. 인터페이스 생성 회로는, 제2 클라이언트 디바이스로의 송신을 위한 통신 회로로, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다.
다른 예시적인 실시예에서, 그룹 기반 통신 플랫폼에서 공유되는 통신 채널을 생성하기 위한 컴퓨터 구현 방법이 제공된다. 그룹 기반 통신 플랫폼은 복수의 데이터베이스 샤드(shard)들을 포함할 수 있다. 컴퓨터 구현 방법은, 개시자 그룹 식별과 연관된 제1 클라이언트 디바이스로부터의 통신 회로에 의해, 개시자 그룹 식별 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 생성 쿼리를 수신하는 단계를 포함할 수 있다. 컴퓨터 구현 방법은, 통신 회로와 통신하는 데이터베이스 회로에 의해, 공유되는 통신 채널 샤드를 생성하는 단계를 추가로 포함할 수 있다. 복수의 데이터베이스 샤드들은 공유되는 통신 채널 샤드를 포함할 수 있다. 공유되는 통신 채널 샤드는 공유되는 통신 채널 식별, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받을 수 있다. 컴퓨터 구현 방법은, 데이터베이스 회로에 의해, 공유되는 통신 채널 수락 요청을 생성하는 단계를 추가로 포함할 수 있다. 공유되는 통신 채널 수락 요청은 공유되는 통신 채널 식별과 연관될 수 있다. 컴퓨터 구현 방법은, 타깃 그룹 식별과 연관된 제2 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널 수락 요청을 송신하는 단계를 추가로 포함할 수 있다. 컴퓨터 구현 방법은, 통신 회로에 의해, 공유되는 통신 채널 수락 통지를 수신하는 단계를 추가로 포함할 수 있다. 공유되는 통신 채널 수락 통지는 공유되는 통신 채널 식별을 타깃 그룹 식별과 연관시키기기 위한 전자적 승인을 포함할 수 있다. 컴퓨터 구현 방법은, 통신 회로, 데이터베이스 회로, 및 메인 데이터베이스와 통신하는 참조 테이블 생성 회로에 의해, 개시자 그룹 식별, 타깃 그룹 식별, 공유되는 통신 채널 식별, 공유되는 통신 채널 속성들의 제1 세트, 및 공유되는 통신 채널 속성들의 제2 세트에 기초하여 샤드 참조 테이블을 업데이트하는 단계를 추가로 포함할 수 있다. 메인 데이터베이스는 샤드 참조 테이블을 포함할 수 있다. 컴퓨터 구현 방법은, 통신 회로, 데이터베이스 회로, 및 참조 테이블 생성 회로와 통신하는 인터페이스 생성 회로에 의해, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하는 단계를 추가로 포함할 수 있다. 컴퓨터 구현 방법은, 인터페이스 생성 회로에 의해, 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하는 단계를 추가로 포함할 수 있다. 컴퓨터 구현 방법은, 제1 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하는 단계를 추가로 포함할 수 있다. 컴퓨터 구현 방법은, 제2 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하는 단계를 추가로 포함할 수 있다.
다른 예시적인 실시예에서, 그룹 기반 통신 플랫폼에서 공유되는 통신 채널을 생성하기 위한 컴퓨터 프로그램 제품이 제공된다. 그룹 기반 통신 플랫폼은 복수의 데이터베이스 샤드(shard)들을 포함할 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 실행가능 프로그램 코드 명령어들을 저장하는 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있으며, 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 컴퓨팅 시스템으로 하여금, 개시자 그룹 식별과 연관된 제1 클라이언트 디바이스로부터의 통신 회로에 의해, 타깃 그룹 식별 및 개시자 그룹 식별과 연관된 공유되는 통신 채널 생성 쿼리를 수신하게 한다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 통신 회로와 통신하는 데이터베이스 회로에 의해, 공유되는 통신 채널 샤드를 생성하게 할 수 있다. 복수의 데이터베이스 샤드들은 공유되는 통신 채널 샤드를 포함할 수 있다. 공유되는 통신 채널 샤드는 공유되는 통신 채널 식별, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받을 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 데이터베이스 회로에 의해, 공유되는 통신 채널 수락 요청을 생성하게 할 수 있다. 공유되는 통신 채널 수락 요청은 공유되는 통신 채널 식별과 연관된다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 타깃 그룹 식별과 연관된 제1 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널 수락 요청을 송신하게 할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 통신 회로에 의해, 공유되는 통신 채널 수락 통지를 수신하게 할 수 있다. 공유되는 통신 채널 수락 통지는 공유되는 통신 채널 식별을 타깃 그룹 식별과 연관시키기기 위한 전자적 승인을 포함할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 통신 회로, 데이터베이스 회로, 및 메인 데이터베이스와 통신하는 참조 테이블 생성 회로에 의해, 개시자 그룹 식별, 타깃 그룹 식별, 공유되는 통신 채널 식별, 공유되는 통신 채널 속성들의 제1 세트, 및 공유되는 통신 채널 속성들의 제2 세트에 기초하여 샤드 참조 테이블을 업데이트하게 할 수 있다. 메인 데이터베이스는 샤드 참조 테이블을 포함할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 통신 회로, 데이터베이스 회로, 및 참조 테이블 생성 회로와 통신하는 인터페이스 생성 회로에 의해, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하게 할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 인터페이스 생성 회로에 의해, 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하게 할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 제1 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널을 송신하게 할 수 있다. 컴퓨터 실행가능 프로그램 코드 명령어들은, 컴퓨팅 시스템에 의해 실행될 때, 추가로, 컴퓨팅 시스템으로 하여금, 제2 클라이언트 디바이스로의 통신 회로에 의해, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널을 송신하게 할 수 있다.
전술한 발명의 내용은 본 개시내용의 몇몇 양태들을 예시하는 일부 예시적인 실시예들을 요약할 목적으로만 제공된다. 따라서, 위에서 기술된 실시예들은 단지 예들일 뿐이고, 어떠한 방식으로든 본 개시내용의 범주를 좁히는 것으로 이해되어서는 안 된다는 것이 인식될 것이다. 본 개시내용의 범주는 본 명세서에 요약된, 일부가 아래에서 추가로 기술될 것들 외에도 많은 잠재적인 실시예들을 포괄한다는 것이 인식될 것이다.
일부 예시적인 실시예들이 일반적인 용어들로 이와 같이 기술되었지만, 이제, 본 개시내용의 예시적인 실시예들 및 특징들을 예시하고 반드시 축척대로 그려진 것은 아닌 첨부 도면이 참조될 것이다. 도면에 예시된 컴포넌트들은 본 명세서에서 기술되는 개시내용의 다양한 실시예들 또는 특징들에 존재할 수 있고 또는 존재하지 않을 수 있는 컴포넌트들을 표현한다. 따라서, 본 개시내용의 일부 실시예들 또는 특징들은 본 개시내용의 범주로부터 벗어나지 않으면서 도면에 도시된 것들보다 더 적은 또는 더 많은 컴포넌트들을 포함할 수 있다.
도 1은 본 개시내용의 일부 예시적인 실시예들에 따른 그룹 기반 통신 플랫폼의 예시적인 시스템 아키텍처 다이어그램을 예시한다.
도 2는 본 개시내용의 일부 예시적인 실시예들에 따른 메시지 서버의 예시적인 개략적도를 예시한다.
도 3은 본 개시내용의 일부 예시적인 실시예들에 따른 네트워크 애플리케이션 서버의 예시적인 개략적도를 예시한다.
도 4는 본 개시내용의 일부 예시적인 실시예들에 따른 예시적인 방법을 예시한 예시적인 흐름도를 예시한다.
도 5는 본 개시내용의 일부 예시적인 실시예들에 따른 예시적인 방법을 예시한 예시적인 흐름도를 예시한다.
도 6은 본 개시내용의 일부 예시적인 실시예들에 따른 예시적인 방법을 예시한 예시적인 흐름도를 예시한다.
도 7은 본 개시내용의 일부 예시적인 실시예들에 따른 예시적인 방법을 예시한 예시적인 흐름도를 예시한다.
도 8a, 도 8b, 도 8c, 및 도 8d는 본 개시내용의 일부 예시적인 실시예들에 따른 예시적인 사용자 인터페이스들의 다양한 요소들을 예시한다.
본 개시내용의 다양한 실시예들이 이제 첨부 도면을 참조하여 이하에서 더 충분히 기술되며, 도면에는 개시내용의 모든 실시예들이 아닌 일부가 도시되어 있다. 실제로, 개시내용은 많은 상이한 형태들로 구체화될 수 있으며, 본 명세서에서 설명되는 실시예들로 제한되는 것으로 이해되어서는 안 된다. 오히려, 이들 실시예들이 제공되어, 이에 따라, 이 개시내용은 적용가능한 합법적 요건들을 만족시킬 것이다. 용어 "또는(or)"는 본 명세서에서, 달리 나타내지 않는 한, 대안적 의미 및 결합적 의미 둘 다로 사용될 수 있다. 용어들 "예시적인(illustrative, 및 example)"은 품질 레벨의 표시를 갖지 않는 예들이 되도록 사용된다. 동일한 번호들은 전체에 걸쳐서 동일한 요소들을 지칭한다.
개괄
본 개시내용의 다양한 실시예들은 일반적으로 그룹 기반 통신 플랫폼에서의 외부에서 공유되는 통신 채널들의 생성에 관한 것이다. 그룹 기반 통신 플랫폼은 복수의 클라이언트 디바이스들과 통신하도록, 그리고 복수의 데이터베이스들을 동작시키도록 구성된다. 클라이언트 디바이스들 각각은 그룹 식별과 연관될 수 있는데, 이는 클라이언트 디바이스가 연관되는 그룹 또는 조직을 나타낼 수 있다. 예를 들어, 특정 조직은 그룹 기반 통신 플랫폼에 접속되는 복수의 클라이언트 디바이스들을 가질 수 있고, 그룹 기반 통신 플랫폼은 각각의 클라이언트 디바이스를 그 특정 조직과 연관되는 것으로 식별한다.
그룹 기반 통신 플랫폼은 또한 복수의 데이터베이스 샤드들을 포함하고, 각각의 데이터베이스 샤드는 복수의 그룹 식별과 관련된 데이터를 저장한다. 예를 들어, 데이터베이스 샤드는 특정 조직의 구성원들과 연관되는 전자 통신 데이터를 저장할 수 있는데, 이는 그 특정 조직의 구성원들이 동일한 조직의 다른 구성원들과 실시간으로 데이터를 통신 및 교환할 수 있게 한다. 이러한 예에서, 조직 자체는 데이터베이스 샤드의 소유자이고, 관련된 데이터가 어디에 그리고 어떻게 저장되는지에 대해 제어한다. 이는, 데이터 보유, 언펄링(unfurling), 및 통합 설정들과 같은 많은 기술적 태스크들을 단순화시킨다
그러나, 기존 시스템들 및 접근법들은 그들이 상이한 조직들 사이에서의 데이터 교환 및 통신에 대한 지원을 제공하지 않음에 따라 많은 기술적 제약들 및 제한사항들에 의해 어려움을 겪는데, 이는 각각의 데이터베이스가 단일 조직에 의해서만 소유될 수 있기 때문이다. 예를 들어, 조직 X의 사용자 토니(Tony)가 조직 Y의 다른 사용자 프랭크(Frank)와 (조직 X의 데이터베이스 샤드에 저장된) 데이터를 공유하고자 의도할 때, 토니는 다른 통신 수단을 통해 상기 데이터를 교환해야 할 것인데, 이는 통신 지연들 및 비효율성들을 야기할 수 있다. 데이터가 사실상 분초를 다투고 동적일 수 있기 때문에, 기존 시스템들의 기술적 제한사항들은 데이터 무결성을 손상시키고 네트워크 리소스들을 대폭 감소시킬 수 있다.
게다가, 기존 시스템들은 외부에서 공유되는 통신 채널들에서 사용자 아이덴티티들을 관리하도록 구성되지 않는다. 예를 들어, 토니는 조직 X 및 조직 Z 둘 모두의 구성원일 수 있다. 토니는 조직 X에서의 통신 채널들과 연관되는 아이덴티티("토니-X"), 및 조직 Z에서의 통신 채널들과 연관되는 다른 아이덴티티("토니-Z")를 가질 수 있다. 조직 X 및 조직 Z를 접속시키는 외부에서 공유되는 통신 채널에서, 기존 시스템들은 “토니-X”와 “토니-Z”를 조화시킬 수 없으며, “토니-X”와 “토니-Z”가 두 명의 상이한 개인들이라고 잘못 결정할 수 있다. 기존 시스템들은 토니를 조직 X에서의 구성원으로서, 그러나 조직 Z에서의 게스트 또는 개인으로서 결정할 수 있는데, 이는 데이터 관리에서 충돌들을 생성할 수 있다.
본 개시내용의 다양한 실시예들에 따라 구조화된 시스템들은 기존 시스템들에 의해 직면하는 과제들을 극복한다.
위의 “토니 대 프랭크” 논의로부터 계속하면, 개시내용의 다양한 실시예들에 따라 구조화되는 그룹 기반 통신 플랫폼(예컨대, SLACK®에 의해 제공되는 클라우드 기반 그룹 협력 툴)에서의 토니는 외부에서 공유되는 통신 채널을 통해 프랑크와 실시간으로 데이터를 교환할 수 있다. 다시 말하면, 조직 X와 조직 Y의 구성원들은, 일부 경우들에 있어서는 그들이 동일한 조직에 속한 것처럼, 그리고 다른 경우들에 있어서는 그들이 상이한 조직들에 속한 것처럼, 외부에서 공유되는 통신 채널에서 콘텐츠를 보고 데이터를 공유할 수 있다(예컨대, 아래에서 기술되는 바와 같은 "일방적인 보기(one-sided viewing)"). 네트워크 애플리케이션들 및 다른 소프트웨어 통합들은 외부에서 공유되는 통신 채널에서 계속해서 작동하고, 각각의 조직은 그의 각자의 채널 경험에 적용되는 그 자신의 선호도들을 유지한다.
위의 “토니-X/토니-Z” 논의로부터 계속하면, 개시내용의 다양한 실시예들에 따라 구조화되는 그룹 기반 통신 플랫폼에서, 토니는 토니를 조직 X 및 조직 Y 둘 모두의 구성원으로서 인식하는 통합형 아이덴티티를 할당받는다. 다시 말하면, SLACK®에 의해 제공되는 클라우드 기반 그룹 협력 툴이 별개의 팀들의 구성원들로서 개인들을 식별할 수 있는 아이덴티티들의 결합을 생성할 수 있다.
사용자 경험 관점으로부터, 개시내용의 다양한 실시예들에 따라 구조화된 시스템들은 조직적 생산성 및 효율성을 크게 증진한다. 그들은 또한 (전자 메일과 같은) 다른 형태들의 통신에 대한 필요성을 감소시키며, 팀들 사이의 채널 접속해제들을 제거하면서 상이한 조직들 사이에 더 양호한 협력을 제공한다. 게다가, 그들은 비대칭적 및 커스텀화가능 프라이버시 설정들을 제공하도록 구성되는데, 여기서 2개의 팀들 사이의 외부에서 공유되는 통신 채널은 하나의 팀에 대한 하나의 프라이버시 구성 및 다른 팀에 대한 상이한 구성을 가질 수 있다. 또한, 외부에서 공유되는 통신 채널들은 상이한 조직들 또는 상이한 그룹들로부터 사용자 보유율들을 증가시키는 크로스-네트워크 효과들을 생성할 수 있다.
개발자의 관점으로부터, 개시내용의 다양한 실시예들에 따라 구조화된 시스템들은 보유 설정들의 유연성을 제공하면서 데이터의 (예컨대, 공유되는 통신 채널 속성들, 보기 특권 설정들, 또는 둘 모두에 기초한) 적절한 가시성 및 검색에 대한 지원을 제공한다. 그들은 또한 채널들에 기초하여 팀들뿐 아니라 채널들의 선택적 접속을 가능하게 한다.
일부 실시예들에서, 그룹 기반 통신 플랫폼은 공유되는 통신 채널 속성들(예컨대, 명칭, 목적, 주제), 공유되는 통신 채널 제어부들(예컨대, 액세스 제어부들, 보기 특권 설정들), 및 외부에서 공유되는 통신 채널의 각각의 측부 상에서 상이하도록 구성가능한 공유되는 통신 채널 인터페이스들로 “일방적인 보기”를 제공할 수 있다. 예를 들어, 외부에서 공유되는 통신 채널의 각각의 측부 상의 공유되는 통신 채널 속성들, 제어부들, 및 인터페이스들은 사용자, 관리자, 또는 시스템에 의해 (예컨대, 자동으로 그리고 사용자 상호작용 없이) 구성가능할 수 있다. 예를 들어, 시스템이 외부에서 공유되는 통신 채널에 대한 샤딩을 유지하더라도, 외부에서 공유되는 통신 채널의 속성들, 제어부들, 및 인터페이스들은, 외부에서 공유되는 통신 채널이 공개적일 필요가 있는 제1 조직(예컨대, 외부에서 공유되는 통신 채널 내외로 유동하는 많은 사람들을 갖는 에이전시)이 외부에서 공유되는 통신 채널을 외부에서 공유되는 통신 채널이 개인적일 필요가 있는 제2 조직(예컨대, 개인 문서를 생성하는 회사)과 공유할 수 있도록 각각의 측부 상에서 상이할 수 있다. 일부 경우들에 있어서, 아키텍처상으로 이러한 속성들 및 제어부들은 단일 테이블에 포함될 수 있지만, 조직 또는 팀에 따라 속성들로 분할될 수 있다. 그룹 기반 통신 플랫폼에 의해 제공되는 그러한 "일방적인 보기"는 메시지들, 첨부물들, 및 외부에서 공유되는 통신 채널을 통해 통신되는 콘텐츠가 제1 조직의 구성원들에 대해 "공개적"이 되도록, 그리고 제2 조직의 구성원들에 대해 "개인적"이 되도록 할 수 있게 한다. 예시적인 예에서, 시스템은, 상이한 워크플로우들을 갖는 조직들이 외부에서 공유되는 통신 채널에 대한 상이한 명칭들을 활용할 수 있도록 명칭 주위에 속성들에 걸쳐서 동등한 제어부를 제공할 수 있다. 예를 들어, 외부에서 공유되는 통신 채널은 각각의 조직의 구성원들에 의해 능동적으로 사용되고 있는 상이한 명칭을 가질 수 있다.
하나의 예시적인 예에서, 외부에서 공유되는 통신 채널의 조직 X 단부는 외부에서 공유되는 통신 채널의 조직 Y 측부와는 상이한 인터페이스 및 상이한 속성들 및 제어부들을 가질 수 있다. 다른 예시적인 예에서, 그룹 기반 통신 플랫폼은 조직 X의 구성원이 외부에서 공유되는 통신 채널을 통해 공개적 메시지를 조직 X 및 조직 Y 둘 모두의 구성원들에게 (예컨대, 메시지 서버에 의해 실시간으로) 브로드캐스트하도록 하는 것을 제공한다. 그룹 기반 통신 플랫폼은 조직 Y의 구성원이 외부에서 공유되는 통신 채널을 통해 개인적 메시지를 조직 Y의 구성원들에게 송신하지만 조직 X의 구성원들에게는 송신하지 않도록 하는 것을 추가로 제공한다. 그룹 기반 통신 플랫폼은 (예컨대, 네트워크 애플리케이션 서버에 의해) 메인 데이터베이스에 공개적 메시지 및 개인적 메시지를 저장할 것을, 그리고 조직 X 또는 조직 Y 중 어느 하나의 것의 구성원들이 공개적 메시지를 탐색하고 그에 액세스할 수 있게 하면서 (예컨대, 네트워크 애플리케이션 서버에 의해) 조직 Y의 구성원들만이 개인적 메시지를 탐색하고 그에 액세스할 수 있게 하도록 하는 것을 추가로 제공한다. 예를 들어, 그룹 기반 통신 플랫폼은: 조직 X 또는 조직 Y의 구성원들에 의해 송신된 공개적 메시지를 조직 X의 구성원들 및 조직 Y의 구성원들에게 액세스가능한 공유되는 인덱스로 인덱싱할 수 있고; 조직 X의 구성원에 의해 송신된 개인적 메시지를 조직 X의 구성원들에게는 액세스가능하지만 조직 Y의 구성원들에게는 액세스가능하지 않은 제1 별개의 인덱스로 인덱싱할 수 있고; 조직 Y의 구성원에 의해 송신된 개인적 메시지를 조직 Y의 구성원들에게는 액세스가능하지만 조직 X의 구성원들에게는 액세스가능하지 않은 제2 별개의 인덱스로 인덱싱할 수 있다.
일부 실시예들에서, 그룹 기반 통신 플랫폼은 단일 테이블에서 아키텍처 상으로 외부에서 공유되는 통신 채널의 속성들 및 제어부들을 저장할 수 있지만, 저장된 속성들 및 제어부들을 조직에 따라 속성들 및 제어부들로 분할할 수 있다. 예를 들어, 그룹 기반 통신 플랫폼은 속성으로서 채널의 프라이버시 또는 공공성을 데이터베이스에 저장된 연관성 테이블의 채널 로우(row)에 저장할 수 있다. 공유되는 통신 채널들에 대해, 그룹 기반 통신 플랫폼은 조직에 따라 별개의 연관성 테이블을 생성할 수 있다. 그룹 기반 통신 플랫폼은 공유되는 통신 채널에 대한 모든 정적 정보(예컨대, 사용자에 의해 변경 또는 구성될 수 없는 사실들), 예컨대 공유되는 통신 채널이 언제 생성되었는가, 공유되는 통신 채널이 마지막으로 언제 업데이트되었는가, 공유되는 통신 채널을 누가 만들었는가 등을 채널 로우에 저장할 수 있다. 일부 실시예들에서, 그룹 기반 통신 플랫폼은 조직에 따라(예컨대, 공유되는 통신 채널 내에 있는 2개 이상의 조직들 각각에 따라) 구성가능한 속성들 및 제어부들을 포함하는 공유되는 통신 채널에 대한 별개의 연관성 테이블을 생성할 수 있다. 예를 들어, 그룹 기반 통신 플랫폼은 클라이언트들에 이르기까지 직렬화되는, 그러한 속성들 및 제어부들을 나타내는 데이터를 포함하는 2개 이상의 로우들(예컨대, 공유되는 통신 채널에서 2개 이상의 조직들 각각에 대한 하나의 로우)을 갖는 연관성 테이블을 생성할 수 있다. 그룹 기반 통신 플랫폼은 공유되는 통신 채널에서 각각의 조직에 대한 속성들 및 제어부들에 기초하여 공유되는 통신 채널에 대한 상이한 사용자 인터페이스들을 생성할 수 있다. 일부 경우들에 있어서, 공유되는 통신 채널에서 하나의 조직은 공유되는 통신 채널에서 다른 조직이 상이한 설정들, 속성들, 또는 제어부들을 갖는지의 여부를 모를 것이다.
일부 실시예들에서, 위에서 논의된 “토니 대 프랭크” 논의로부터 계속하면, 외부에서 공유되는 통신 채널의 조직 X 단부는 외부에서 공유되는 통신 채널의 조직 Y 측부와는 상이한 인터페이스 및 상이한 속성들 및 제어부들을 가질 수 있다. 일부 실시예들에서, 그룹 기반 통신 플랫폼은 조직 X의 구성원(예컨대, 토니)이 외부에서 공유되는 통신 채널을 통해 공개적 메시지를 조직 X 및 조직 Y 둘 모두의 구성원들에게 (예컨대, 메시지 서버에 의해 실시간으로) 브로드캐스트하도록 하는 것을 제공한다. 그룹 기반 통신 플랫폼은 조직 Y의 구성원(예컨대, 프랭크)이 외부에서 공유되는 통신 채널을 통해 개인적 메시지를 조직 Y의 구성원들에게 송신하지만 조직 X의 구성원들에게는 송신하지 않도록 하는 것을 추가로 제공한다. 그룹 기반 통신 플랫폼은 (예컨대, 네트워크 애플리케이션 서버에 의해) 메인 데이터베이스에 공개적 메시지 및 개인적 메시지를 저장할 것을, 그리고 조직 X 또는 조직 Y 중 어느 하나의 것의 구성원들이 공개적 메시지를 탐색하고 그에 액세스할 수 있게 하면서 (예컨대, 네트워크 애플리케이션 서버에 의해) 조직 Y의 구성원들만이 개인적 메시지를 탐색하고 그에 액세스할 수 있게 하도록 하는 것을 추가로 제공한다. 예를 들어, 그룹 기반 통신 플랫폼은 토니 및 프랭크가 공개적 메시지를 탐색하고 그에 액세스하는 것을 허용하지만 토니가 아닌 프랭크가 개인적 메시지를 탐색하고 그에 액세스하는 것을 허용할 수 있다.
일부 실시예들에서, 조직 Y가 공유되는 통신 채널을 개인적이 되도록 구성한 경우, 그리고 프랭크가 공유되는 통신 채널의 주제를 변경하는 경우, 본 명세서에서 개시되는 실시간 메시징 서버(예컨대, 메시지 서버(107), 장치(200))는 공유되는 통신 채널에서의 메시지(예컨대, 개인적 일반 메시지)로서 그 변경을 조직 X로가 아닌 조직 Y로만 브로드캐스트하도록 구성될 수 있다. 또한, 본 명세서에서 개시되는 네트워크 애플리케이션 서버(예컨대, 네트워크 애플리케이션 서버(109), 장치(300))는 공유되는 통신 채널에서의 이력(예컨대, 개인적 저장 메시지)으로서 그 변화에 대한 탐색 액세스를 저장하고 조직 X로가 아닌 조직 Y로만 제공하도록 구성될 수 있다. 그 결과, 단 하나의 측부, 즉 조직 Y가 그 정보를 볼 수 있을 것이다.
일부 실시예들에서, 그룹 기반 통신 플랫폼은 비일시적 "단시간(ephemeral)" 메시지들(예컨대, 올바른 그룹 식별과 연관된 클라이언트 디바이스들에 의해서만 보기가능하고 탐색가능한 개인적 일반 메시지들 및 개인적 저장 메시지들)을 제공한다. 그룹 기반 통신 플랫폼은 메시지 서버, 네트워크 애플리케이션 서버, 및 임의의 다른 적합한 컴포넌트들이 다음의 의식과 함께 데이터를 수신, 송신, 저장, 및 검색하도록 하기 위한 기법들을 제공한다: (i) 특정 구성원만이 볼 수 있는 메시지들(예컨대, 구성원이 에러를 초래하는 액션을 수행하는 경우, 그룹 기반 통신 플랫폼은 메시지를 그 구성원으로 직접, 그리고 그 구성원으로만 송신할 수 있음); (ii) 공유되는 통신 채널의 일 측부 상에만 존재하도록(예컨대, 송신되도록, 보이도록, 저장되도록, 탐색되도록, 검색되도록) 구성되는 단시간 메시지들; 및 (iii) 공유되는 통신 채널의 모든 구성원들로 브로드캐스트되는 메시지들.
일부 실시예들에서, 그룹 기반 통신 플랫폼은 저장소(예컨대, 네트워크 애플리케이션 서버)가 공유되는 통신 채널의 일 측부에 대해, 다른 측부에 대해, 또는 양측 측부들 모두에 대해 메시지들을 검색할지의 여부를 결정하도록 하기 위해 메시지들에 주석달기함으로써 전술된 비일시적 "단시간" 메시지들을 생성하는 것을 제공한다. 그룹 기반 통신 플랫폼은 메시지 서버에 의해 주석들을 전자적으로(그리고 사용자 입력 없이) 분석하는 것, 그리고 주석들에 기초하여, 메시지들을 공유되는 통신 채널의 일 측부로 브로드캐스트할지, 다른 측부로 브로드캐스트할지, 또는 양측 측부들 모두로 브로드캐스트할지를 결정하는 것을 제공한다. 따라서, 그룹 기반 통신 플랫폼은 메시지들의 (예컨대, 실시간 메시징 서버에 의한) 실시간 보기뿐 아니라 메시지들의 (예컨대, 네트워크 애플리케이션 서버에 의한) 이력 및 탐색 기반 보기를 제공한다. 예를 들어, 공유되는 통신 채널의 일 측부의 구성원은, 실시간 메시징 서버로부터 실시간으로, 공유되는 통신 채널의 그 측부 상에서만 보기가능한 단시간 메시지를 수신할 수 있다. 후속으로, 구성원은 구성원의 사용자 인터페이스를 리프레시할 수 있다. 이어서, 구성원은 네트워크 애플리케이션 서버로부터 단시간 메시지를 수신할 수 있다(예컨대, 단시간은 지금 실시간 메시징 서버로부터가 아니라 네트워크 애플리케이션 서버를 통해 메인 데이터베이스로부터 오고 있다).
일부 실시예들에서, 그룹 기반 통신 플랫폼은 데이터베이스 샤드들을 포함하는 샤딩 데이터베이스를 제공한다. 일부 실시예들에서, 그룹 기반 통신 플랫폼은 팀에 대해 샤딩할 수 있다. 예를 들어, 그룹 기반 통신 플랫폼은: 제1 데이터베이스 샤드에 하나의 조직의 데이터를; 제2 데이터베이스 샤드에 다른 조직의 데이터를; 그리고 제3 데이터베이스 샤드에 공유되는 통신 채널을 저장할 수 있다. 일부 실시예들에서, 그룹 기반 통신 플랫폼은 허용 홉핑 기법을 이용하여 액세스 제어부를 제공할 수 있다.
일부 실시예들에서, 그룹 기반 통신 플랫폼은 채널에 대해 샤딩할 수 있다. 예를 들어, 액세스 제어부는 어느 조직들이 다수의 상이한 조직들과 연관된 다수의 상이한 채널들을 포함하는 샤드 내의 특정 채널에 액세스할 수 있는지에 맞춰질 수 있다. 하나의 예시적인 예에서, 채널들 A, B, C, D, E, 및 F를 포함하는 샤드가 조직들 X, Y, 및 Z에 의해 공유될 수 있다. 샤드 내의 채널들 A 및 B는 조직 X와 연관될 수 있는데, 여기서 채널 A는 조직 X에 의해서만 액세스가능하고, 채널 B는 조직들 X, Y, 및 Z에 의해서 액세스가능하다. 샤드 내의 채널 C는 조직 Y와 연관될 수 있고, 조직들 Y 및 Z에 의해 액세스가능할 수 있다. 샤드 내의 채널들 D, E, 및 F는 조직 Z와 연관될 수 있으며, 여기서 채널 D는 조직 Z에 의해서만 액세스가능하고, 채널 E는 조직들 Z 및 X에 의해서만 액세스가능하고, 채널 F는 조직들 Z 및 Y에 의해서만 액세스가능하다.
이와 같이, 개시내용의 다양한 실시예들에 따라 구조화된 시스템들은 기존 시스템들에 의해 직면되는 기술적 문제들에 대한 특정적인 기술적 솔루션들을 제공하는데, 이들의 세부사항들이 이하에서 기술된다.
정의들
본 명세서에서 사용되는 바와 같이, 용어들 "데이터", "콘텐츠", "정보", 및 유사 용어들이 본 개시내용의 실시예들에 따라 송신, 수신, 및/또는 저장될 수 있는 데이터를 상호교환가능하게 지칭하는 데 사용될 수 있다. 따라서, 임의의 그러한 용어들의 사용은 본 개시내용의 실시예들의 사상 및 범주를 제한하는 것으로 취해져서는 안 된다. 또한, 본 명세서에서 컴퓨팅 디바이스가 다른 컴퓨팅 디바이스로부터 데이터를 수신하는 것으로 기술되는 경우, 데이터는 다른 컴퓨팅 디바이스로부터 직접적으로 수신될 수 있거나, 예를 들어 하나 이상의 서버, 릴레이, 라우터, 네트워크 액세스 포인트, 기지국, 호스트 등과 같은 하나 이상의 중간 컴퓨팅 디바이스들을 통해 간접적으로 수신될 수 있음이 인식될 것이다. 유사하게, 본 명세서에서 컴퓨팅 디바이스가 다른 컴퓨팅 디바이스로 데이터를 전송하는 것으로 기술되는 경우, 데이터는 다른 컴퓨팅 디바이스로 직접적으로 전송될 수 있거나, 예를 들어 하나 이상의 서버, 릴레이, 라우터, 네트워크 액세스 포인트, 기지국, 호스트 등과 같은 하나 이상의 중간 컴퓨팅 디바이스들을 통해 간접적으로 전송될 수 있음이 인식될 것이다.
용어 "사용자"는 개인, 개인들의 그룹, 사업, 조직 등을 지칭하는 것으로 이해되어야 한다. 사용자들은 클라이언트 디바이스들을 사용하여 그룹 기반 통신 또는 메시징 시스템에 액세스할 수 있다. “그룹 기반”은, 본 명세서에서, 사용자들의 정의된 그룹에 의해서만 액세스가능하도록 충분한 보안성을 갖는 시스템, 채널, 메시지, 또는 가상 환경을 지칭하는 데 사용된다. 그룹은 조직 또는 영리 기업의 것들과 같은 공통 액세스 크리덴셜들에 의해 정의될 수 있다. 액세스는 하나의 그룹 구성원 사용자에 의해 다른 비-구성원 사용자로 송신되는, 합류하라는 입증된 요청 또는 합류하라는 초대에 의해 추가로 가능해질 수 있다. 그룹 식별자들(아래에서 정의됨)은 데이터, 정보, 메시지들 등을 특정 그룹들과 연관시키는 데 사용된다.
용어들 "사용자 프로파일", "사용자 계정", 및 "사용자 계정 세부사항들"은, 예를 들어, 사용자 식별자, 사용자가 액세스를 승인받았던 그룹 기반 통신 채널들과 연관된 하나 이상의 그룹 기반 통신 채널 식별자들, 사용자가 연관되는 그룹들에 대한 하나 이상의 그룹 식별자들, 사용자가 임의의 그룹 기반 통신 채널들의 소유자인지의 여부에 대한 표시, 사용자가 임의의 그룹 기반 통신 채널 제한들을 갖는지의 여부에 대한 표시, 복수의 메시지들, 복수의 이모지들, 복수의 대화들, 복수의 대화 주제들, 아바타, 이메일 어드레스, 실명(예컨대, John Doe), 사용자명(예컨대, jdoe), 패스워드, 실명, 시간 구역, 상태 등을 지칭한다. 사용자 계정 세부사항들은, 예를 들어 사용자의 사용자명 및 패스워드를 포함하는 사용자에 대한 로그인 정보와 같은 사용자 크리덴셜들의 서브세트 지정을 포함할 수 있다.
용어 "클라이언트 디바이스"는 하나 이상의 서버들에 의해 가용해지는 하나 이상의 서비스들에 액세스하도록 구성되는 컴퓨터 하드웨어(들) 및/또는 소프트웨어(들)를 지칭한다. 서버(들)는 종종 다른 컴퓨터 시스템 상에 있고(그러나, 항상 그러한 것은 아님), 이 경우에 클라이언트 디바이스는 네트워크에 의해 서비스에 액세스한다. 클라이언트 디바이스는 그룹 식별과 연관될 수 있는데, 여기서 그룹 식별은 사용자가 속하는 그룹(예컨대, 사용자 그룹)을 제안하는 전자적 표시이다. 클라이언트 디바이스들은 스마트폰들, 태블릿 컴퓨터들, 랩톱 컴퓨터들, 데스크톱 컴퓨터들, 웨어러블 디바이스들, 개인용 컴퓨터들, 기업 컴퓨터들 등을 제한 없이 포함할 수 있다.
용어 “그룹 기반 통신 플랫폼”은, 하나 이상의 클라이언트 디바이스들에 액세스가능하고 데이터베이스들의 동작들과 관련된 복수의 소프트웨어 애플리케이션들에 대한 액세스를 제공하도록 동작가능한 컴퓨팅 디바이스들의 집합을 지칭한다. 일부 예들에서, 그룹 기반 통신 플랫폼은, 소프트웨어 애플리케이션들을 구동하는 하나 이상의 서버들과 통신하여 배치되고 디지털 콘텐츠 아이템들, 애플리케이션 관련 데이터 등을 저장하는 하나 이상의 데이터베이스들에 대한 액세스를 갖는 하나 이상의 중앙집중식 서버들을 형태를 취할 수 있다. 그룹 기반 통신 플랫폼은 또한 클라이언트 보유 설정들 및 다른 컴플라이언스 태양들을 지원할 수 있다. 또한, 그룹 기반 통신 플랫폼은 데이터에 대한 (예컨대, 공유되는 통신 채널 속성들, 보기 특권 설정들, 또는 둘 모두에 기초하여) 적절한 액세스를 승인하고 제3자들이 애플리케이션들 및 봇(bot)들을 구축하여 고객의 워크플로우들과 통합할 수 있게 하는 포괄적인 제3자 개발자 지원을 제공할 수 있다.
용어 “통신 채널”은 시스템들과 시스템들의 부분들 사이의 그리고 그들 간의 데이터 교환을 위해 사용되는 정보 루트 및 연관된 회로를 지칭한다. 예를 들어, 통신 채널은 다양한 클라이언트 디바이스들 사이에 그리고 그들 간에 확립되어, 이러한 클라이언트 디바이스들이 서로의 사이에 그리고 그들 간에 데이터를 통신 및 공유할 수 있게 할 수 있다. 통신 채널 식별이 통신 채널에 할당될 수 있는데, 이는 그 통신 채널의 관련 데이터가 저장되는 데이터베이스 내의 물리적 어드레스를 나타낸다. 통신 채널은 "공개적"일 수 있는데, 이는 임의의 클라이언트 디바이스가 통신 채널을 통해 공유하는 정보에 합류 및 참여할 수 있게 할 수 있다. 통신 채널은 "개인적"일 수 있는데, 이는 통신 채널에서의 데이터 통신을 소정 클라이언트 디바이스들 및/또는 사용자들로 제한할 수 있다.
용어 "그룹 기반 통신 채널 인터페이스"는 그룹의 구성원들에게만 보일 수 있는 채널 구성원들(예컨대, 클라이언트 디바이스들을 사용하여 환경에 액세스하는 입증된 사용자들)에 의해 포스트되는 메시징 통신을 디스플레이하도록 구성되는 가상 통신 환경 또는 피드를 지칭한다. 그룹 기반 통신 채널의 포맷 및 속성들은 그룹 기반 통신 채널의 상이한 구성원들에게 상이하게 나타날 수 있지만; 그룹 기반 통신 채널(즉, 메시징 통신)의 콘텐츠는 그룹 기반 통신 채널의 각각의 구성원에게 디스플레이될 수 있다. 예를 들어, 본 명세서에서 논의된 바와 같은 공개적 보기를 허용하기 위해, 그룹 기반 메시징 통신의 공통 세트가 각자의 그룹 기반 통신 채널의 각각의 구성원에게 디스플레이될 것이고, 따라서, 그룹 기반 통신 채널(즉, 메시징 통신)의 콘텐츠가 그룹 기반 통신 채널의 구성원에 따라 변화하지 않을 것이다. 일부 경우들에 있어서, 본 명세서에서 논의된 바와 같은 일방적 보기를 허용하기 위해, 그룹 기반 메시징 통신의 별개의 세트가 그룹 기반 통신 채널에서 하나의 조직의 각각의 구성원에게 디스플레이될 것이지만, 그룹 기반 통신 채널에서 임의의 다른 조직의 어떠한 구성원에게도 디스플레이되지 않을 것이다.
본 명세서에서 사용되는 바와 같이, 용어들 "메시징 통신" 및 "메시지"는, 클라이언트 디바이스를 사용하여 사용자에 의해 제공되고 그룹 기반 통신 채널 내에서 디스플레이를 위해 구성되는 임의의 전자적으로 생성되는 디지털 콘텐츠 객체를 지칭한다. 메시지 통신은 (클라이언트 디바이스를 사용하여) 사용자에 의해 제공되는 임의의 텍스트, 이미지, 비디오, 오디오, 또는 이들의 조합을 포함할 수 있다. 예를 들어, 사용자는 메시지 콘텐츠들로서 메시징 통신 내에 텍스트뿐 아니라 이미지 및 비디오를 포함하는 메시징 통신을 제공할 수 있다. 그러한 경우에 있어서, 텍스트, 이미지, 및 비디오는 메시징 통신 또는 디지털 콘텐츠 객체를 포함할 것이다. 그룹 기반 통신 시스템의 그룹 기반 통신 채널로 전송 또는 포스트되는 각각의 메시지는 다음을 포함하는 메타데이터를 포함한다: 발신 사용자 식별자, 메시지 식별자, 메시지 콘텐츠들, 그룹 식별자, 및 그룹 기반 통신 채널 식별자. 전술한 식별자들 각각은 ASCII 텍스트, 포인터, 메모리 어드레스 등을 포함할 수 있다.
용어 "일반 메시지"는 일방적 보기 또는 공개적 보기를 위해 공유되는 통신 채널을 통해 메시지 증폭 회로에 의해 증폭되도록 구성된 메시지를 지칭한다. 예를 들어, 제1 그룹 식별을 위한 개인적 보기 특권 설정과 연관된 일반 메시지는 제1 그룹 식별과 연관되는 공유되는 통신 채널에서의 모든 클라이언트 디바이스들로 메시지 증폭기 회로에 의해 증폭되며, 여기서 일반 메시지는 제1 그룹 식별과는 상이한 제2 그룹 식별과 연관되는 공유되는 통신 채널들에서의 임의의 클라이언트 디바이스로 메시지 증폭기 회로에 의해 송신되지 않는다. 다른 예에서, 공개적 보기 특권 설정과 연관된 일반 메시지는 공유되는 증폭 채널에서의 모든 클라이언트 디바이스들로 메시지 증폭기 회로에 의해 증폭될 수 있다.
용어 “저장 메시지”는 데이터베이스 샤드에 저장된 메시지를 지칭한다. 예를 들어, 저장 메시지는 메시지 식별자, 그룹 식별자, 그룹 기반 통신 채널 식별자, 발신 사용자 식별자, 주제들, 응답들, 메시지 콘텐츠들, 첨부물들, 메시지 계층 데이터, 제3자 메타데이터, 대화 프리미티브 데이터, 특권 보기 설정들, 임의의 다른 적합한 데이터, 또는 이들의 임의의 조합과 같은 데이터를 포함할 수 있다. 일부 실시예들에서, 저장 메시지는 보기 특권 설정들의 세트와 연관하여 데이터베이스 샤드에 저장될 수 있다.
용어 "별개의 인덱스"는 (예컨대, 다른 그룹들 및/또는 회사들과 공유되지 않는, 그룹 및/또는 회사와 연관된 별개의 인덱스로) 특정 그룹 식별과 연관된 클라이언트 디바이스들에 대해 개별적으로 인덱싱되고 그들에만 액세스가능한 개인적 메시지들의 인덱스를 지칭한다.
용어 “공유된 인덱스”는 (예컨대, 다른 그룹들 및/또는 회사들과 공유되는, 그룹 및/또는 회사와 연관된 공유된 인덱스로) 함께 인덱싱되는 공개적 메시지들의 인덱스를 지칭한다.
용어들 “그룹 기반 통신 채널 식별자” 또는 “채널 식별자”는 그룹 기반 통신 채널이 식별될 수 있게 하는 데이터의 하나 이상의 아이템들을 지칭한다. 예를 들어, 그룹 기반 통신 채널 식별자는 ASCII 텍스트, 포인터, 메모리 어드레스 등을 포함할 수 있다.
용어들 "그룹 식별자" 또는 "팀 식별자"는 그룹 기반 통신 시스템이 식별될 수 있게 하는 데이터의 하나 이상의 아이템들을 지칭한다. 예를 들어, 그룹 식별자는 ASCII 텍스트, 포인터, 메모리 어드레스 등을 포함할 수 있다.
“발신 사용자 식별자”는 특정 사용자(즉, 특정 사용자와 연관된 클라이언트 디바이스)에 의해 전송되는 메시지들의 집합과 연관된다. 이러한 메시지들은 사용자에 관한 콘텍스트를 결정하기 위해 분석될 수 있다(예컨대, 주제에 대한 사용자의 전문지식 또는 관심은 그러한 메시지들 내에서 주제와 연관되는 주제 또는 키워드들의 언급 빈도에 기초하여 결정될 수 있다).
그룹 기반 통신 시스템 사용자들은 조직 그룹들로 조직되고(예컨대, 각각의 회사의 피고용자들은 별개의 조직 그룹일 수 있음), 각각의 조직 그룹은 사용자들이 할당받을 수 있거나 사용자들이 합류할 수 있는 하나 이상의 그룹 기반 통신 채널들(아래에서 설명됨)을 가질 수 있다(예컨대, 그룹 기반 통신 채널들은 부서들, 사무실과 같은 지리적 위치들, 제품 라인들, 사용자 관심들, 주제들, 이슈들 등을 표현할 수 있다). 그룹 식별자는 메시지에 대한 액세스 제어부를 용이하게 하는 데 사용될 수 있다(예컨대, 탐색 쿼리에 응답한 탐색 결과들의 일부로서 메시지 반환을 갖는 것과 같은, 메시지에 대한 액세스는 자신들의 사용자 프로파일과 연관된 그룹 식별자를 갖는 그러한 사용자들로 제한될 수 있다). 그룹 식별자는 메시지에 대한 콘텍스트를 결정하는 데 사용될 수 있다(예컨대, 조직의 명칭 및/또는 조직에 대한 간단한 설명과 같은, 그룹의 설명이 그룹 식별자와 연관될 수 있다).
그룹 기반 통신 시스템 사용자들은 그룹 기반 통신 채널들에 합류할 수 있다. 일부 그룹 기반 통신 채널들은 그러한 사용자들의 사용자 프로파일과 연관된 조직적 그룹 식별자를 갖는 사용자들(즉, 조직의 구성원들인 사용자들)에게 전역적으로 액세스가능할 수 있다. 일부 그룹 기반 통신 채널들에 대한 액세스는 특정된 그룹들의 구성원들로 제한될 수 있고, 이에 의해, 그룹 기반 통신 채널들은 자신들의 사용자 프로파일과 연관된 특정 그룹 식별자를 갖는 그러한 사용자들에게 액세스가능하다. 그룹 기반 통신 식별자는 메시지에 대한 액세스 제어부를 용이하게 하는 데 사용될 수 있으며(예컨대, 탐색 쿼리에 응답한 탐색 결과들의 일부로서 메시지 반환을 갖는 것과 같은, 메시지에 대한 액세스는 자신들의 사용자 프로파일과 연관된 그룹 기반 통신 채널 식별자를 갖거나 그룹 기반 통신 채널에 합류할 능력을 갖는 그러한 사용자들로 제한될 수 있다) 그룹 기반 통신 채널 식별자는 메시지에 대한 콘텍스트를 결정하는 데 사용될 수 있다(예컨대, 그룹 기반 통신 채널에서 논의된 프로젝트의 설명과 같은 그룹 기반 통신 채널의 설명이 그룹 기반 통신 채널 식별자와 연관될 수 있다).
용어 “개인적 그룹 기반 통신 채널”은 그것이 일반적으로 그룹 기반 통신 시스템의 다른 구성원들에 의해 액세스가능하고/하거나 탐색가능하도록 제한된 액세스를 갖는 그룹 기반 통신 채널을 지칭한다. 예를 들어, 개인적 그룹 기반 통신 채널 에 대한 지식 및 그에 대한 액세스 허용을 갖는 그러한 사용자들 또는 관리자들만이 개인적 그룹 기반 통신 채널의 콘텐츠를 볼 수 있다(예컨대, 개인적 그룹 기반 통신 채널에 대한 그룹 기반 통신 채널 식별자는 사용자가 입증/인증된 후 그들의 사용자 프로파일과 연관된다).
용어 “쿼리”는 데이터베이스와 연관된 요청을 지칭한다. “쿼리”는 하나 이상의 클라이언트 디바이스들 상에서 생성될 수 있고, 그룹 기반 통신 플랫폼으로 송신될 수 있다. 쿼리는 "선택 쿼리"일 수 있는데, 이는 쿼리에 따라 데이터베이스로부터 데이터를 판독가능 포맷으로 추출하는 데 사용된다. 쿼리는 "액션 쿼리"일 수 있는데, 이는 네트워크 데이터베이스에 저장된 데이터에 대한 (삽입, 삭제, 및/또는 업데이트와 같은) 동작들을 요청한다. 예를 들어, “통신 채널 생성 쿼리”는 통신 채널의 생성을 요청하는 액션 쿼리이다.
용어 “샤드”는 개별적으로 액세스 및 관리될 수 있는 데이터의 관련된 개별 아이템들의 집합을 지칭한다. 샤드는 단일 데이터베이스에 저장될 수 있고, 또는 선택적으로, 다수의 데이터베이스들에 걸쳐 분산될 수 있다. 이는 다량의 데이터가 있을 때 특히 유익하다. 하나의 장소에 매우 큰 데이터베이스를 생성 및 유지하는 비용은 지수적으로 증가할 수 있는데, 그 이유는 일부 경우들에 있어서 그 데이터베이스가 더 많은 하이-엔드 컴퓨터들 요구하거나 이들을 사용하여 구현될 수 있기 때문이다. 대조적으로, 데이터베이스 샤드들은 다수의 훨씬 덜 비싼 상품 데이터베이스들에 걸쳐 분산될 수 있다. “샤딩”은 큰 데이터베이스를 분할하여 이를 더 관리하기 쉽게 만드는 것을 지칭한다. 데이터베이스를 샤딩하는 것이 데이터베이스를 공통적으로 아무 것도 공유하지 않는 더 작은 데이터베이스들로 분해하는 것을 수반하기 때문에, 그것은 2개 이상의 데이터베이스 샤드들을 수반하는 통신 채널을 생성하는 데 기술적 어려움들을 야기한다. 데이터베이스는 채널 식별들, 사용자 식별들, 팀 식별들, 또는 데이터베이스 구조 내의 데이터의 임의의 속성을 포함하지만 이로 제한되지 않는 다양한 인자들에 기초하여 "샤딩"될 수 있다. 어느 인자(들)를 사용할지를 결정하기 위해, 시스템은 데이터 분리, (룩업의 목적을 위한) 데이터의 근접도, 및 분산형 시스템에 걸친 액세스의 성능/속도를 고려할 수 있다. 시스템은, 시스템이 일부 경우들에 있어서 그러한 데이터를 검색하도록 요구되거나 설계되는 데이터의 양 및 속도 둘 모두를 고려할 필요가 있을 수 있다.
용어 “참조 테이블”은 다양한 데이터 아이템들 사이에 그리고 그들 간에 참조 접속들의 세트를 지칭한다. 참조 테이블은 테이블 형식의 것일 수 있는데, 이는 "로우들" 및 "컬럼들"을 포함할 수 있다. 각각의 로우는 참조 접속을 표현할 수 있고, 각각의 컬럼은 데이터 아이템을 표현할 수 있다. 데이터 아이템은 그룹 식별, 채널 식별, 네트워크 데이터베이스 내의 물리적 어드레스, 보기 특권 설정 등일 수 있다. 참조 접속은 다양한 데이터 아이템들 사이의 그리고 그들 간의 관계들 및/또는 제약들을 나타낼 수 있다. 예를 들어, 샤드 참조 테이블은 그 통신 채널의 식별에 기초하여 네트워크 데이터베이스 내의 통신 채널 샤드의 물리적 어드레스를 식별할 수 있다. 샤드 참조 테이블은 파라미터들, 예컨대 데이터베이스 샤드 파라미터, 메시지 서버 샤드 파라미터, redis 샤드 파라미터, solr 샤드 파라미터, 팀 메타데이터(예컨대, 데이터 생성, 데이터 보관, 데이터 삭제), 관리자 사용자 데이터, 도메인, 이메일 도메인, 선호도들, 초대들, 크레디트들, 지불 티어, 및 팀이 기업인지의 여부를 나타내는 데이터를 포함할 수 있다.
용어 “이벤트”는 시스템 하드웨어 및/또는 소프트웨어에 대한 기술적 중요성을 갖는 식별가능한 비일시적 발생을 지칭한다. 이벤트는 컴퓨터 시스템에 의해 인식될 수 있는 일부 메시지, 토큰, 카운트, 패턴, 값, 또는 마커를 표현할 수 있다. 애플리케이션은 이벤트에 기초하여 소정 기능들을 수행하도록 트리거될 수 있다. 예를 들어, 그룹 기반 통신 채널에서, 사용자에 의해 전송된 메시지는 이벤트 애플리케이션 프로그래밍 인터페이스(API)를 활용하는 애플리케이션들에 대한 이벤트이다. 이벤트는 사용자 생성형, 예컨대 키스트로크들 또는 마우스 이동들, 또는 시스템 생성형, 예컨대 프로그램 로딩 및 에러들일 수 있다.
용어 “공유되는 통신 채널 속성들”은 공유되는 통신 채널의 하나 이상의 속성들을 지칭한다. 예를 들어, 공유되는 통신 채널 속성들의 세트는 하나 이상의 공유되는 통신 채널 명칭들, 아이콘들(예컨대, 파운드 부호들, 자물쇠 부호들), 제어부들(예컨대, 액세스 제어부들), 설정들(예컨대, 특권 보기 설정들), 임의의 다른 적합한 속성, 및 이들의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 공유되는 통신 채널 샤드는 제1 그룹 식별(예컨대, 개시자 그룹 식별)과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 제2 그룹 식별(예컨대, 타깃 그룹 식별)과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받을 수 있으며, 여기서 공유되는 통신 채널 속성들의 제1 세트 및 공유되는 통신 채널 속성들의 제2 세트는 상이하다. 예를 들어, 제1 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트는 제1 공유되는 통신 채널 명칭을 포함할 수 있고, 제2 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트는 제1 공유되는 통신 채널 명칭과는 상이한 제2 공유되는 통신 채널 명칭을 포함할 수 있다.
용어 “보기 특권 설정”은 일부 콘텐츠의 (예컨대, 클라이언트 디바이스들이 콘텐츠를 볼 수 있는) 보기 특권 설정들을 지칭한다. 예를 들어, 보기 특권 설정은 개인적 보기 특권 설정(예컨대, 하나 이상의 그룹 식별들에 특정적이고 공개적 뷰로부터 은닉됨), 공개적 보기 특권 설정, 임의의 다른 적합한 보기 특권 설정, 또는 이들의 조합일 수 있다(예컨대, 메시지의 콘텐츠들은 공개적 보기 특권 설정과 연관될 수 있는 반면, 메시지에 대한 첨부물들은 개인적 보기 특권 설정과 연관될 수 있다). 일부 실시예들에서, 메시지는 보기 특권 설정들의 세트와 연관될 수 있다. 예를 들어, 메시지는 개인적 보기 특권 설정과 연관된 개인적 메시지일 수 있으며, 여기서 개인적 메시지는 공유되는 통신 채널에서 특정 그룹 식별(예컨대, 메시지를 전송한 클라이언트 디바이스와 연관된 그룹 식별)과 연관되는 클라이언트 디바이스들로만 증폭될 수 있거나(예컨대, 실시간으로 송신됨), 그들로만 송신될 수 있거나, 그들에 의해서만 탐색가능할 수 있거나, 그들에 의해서만 필터링가능할 수 있거나, 그들에게만 보일 수 있거나, 또는 그들에게만 액세스가능할 수 있다. 다른 예에서, 메시지는 공개적 보기 특권 설정과 연관된 공개적 메시지일 수 있으며, 여기서 공개적 메시지는 공유되는 통신 채널에서 모든 클라이언트 디바이스들로 증폭될 수 있거나, 그들로 송신될 수 있거나, 그들에 의해 탐색가능할 수 있거나, 그들에 의해 필터링가능할 수 있거나, 그들에게 보일 수 있거나, 또는 그들에게 액세스가능할 수 있다.
용어 “일방적 보기” 및 유사한 용어들은 공유되는 통신 채널에서 특정 그룹 식별(또는, 일부 경우들에 있어서, 2개 이상의 그룹 식별들)과 연관되는 클라이언트 디바이스들로만 증폭될 수 있거나(예컨대, 실시간으로 송신됨), 그들로만 송신될 수 있거나, 그들에 의해서만 탐색가능할 수 있거나, 그들에 의해서만 필터링가능할 수 있거나, 그들에게만 보일 수 있거나, 또는 그들에게만 액세스가능할 수 있는 개인적 보기 특권 보기와 연관된 데이터, 정보, 메시지들, 콘텐츠, 및 첨부물들을 지칭한다.
용어 "세트"는 0개 이상의 요소들의 집합을 지칭한다.
예시적인 시스템 아키텍처
본 개시내용의 방법들, 장치들, 및 컴퓨터 프로그램 제품들이 다양한 디바이스들 중 임의의 것에 의해 구현될 수 있다. 예를 들어, 예시적인 실시예의 방법, 장치, 및 컴퓨터 프로그램 제품은 하나 이상의 클라이언트 디바이스들과 같은 하나 이상의 디바이스들과 통신하도록 구성된, 서버 또는 다른 네트워크 엔티티와 같은 네트워크 디바이스에 의해 구현될 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스는 개인용 컴퓨터 또는 컴퓨터 워크스테이션과 같은 고정된 컴퓨팅 디바이스들을 포함할 수 있다. 또한, 추가로, 예시적인 실시예들은 휴대용 정보단말기(portable digital assistant, PDA), 모바일 전화기, 스마트폰, 랩톱 컴퓨터, 태블릿 컴퓨터, 웨어러블 디바이스, 또는 전술된 디바이스들의 임의의 조합과 같은 다양한 모바일 디바이스들 중 임의의 것에 의해 구현될 수 있다.
도 1은 본 개시내용의 실시예들이 동작할 수 있는 예시적인 컴퓨팅 시스템(100)을 예시한다. 사용자들은 클라이언트 디바이스들(101A 내지 101N)을 사용하여 통신 네트워크(103)를 통해 그룹 기반 통신 플랫폼(105)에 액세스할 수 있다.
통신 네트워크(103)는, 예를 들어 유선 또는 무선 근거리통신망(local area network, LAN), 개인 통신망(personal area network, PAN), 광역 종합통신망(metropolitan area network, MAN), 광역망(wide area network, WAN) 등뿐 아니라 (예컨대, 네트워크 라우터 등과 같은) 임의의 하드웨어, 소프트웨어, 및/또는 펌웨어를 포함하는 임의의 유선 또는 무선 통신 네트워크를 포함할 수 있다. 예를 들어, 통신 네트워크(103)는 셀룰러 전화기, 802.11, 802.16, 802.20, 및/또는 WiMax 네트워크를 포함할 수 있다. 또한, 통신 네트워크(103)는 공중 통신망, 예컨대 인터넷, 개인 통신망, 예컨대 인트라넷, 또는 이들의 조합들을 포함할 수 있고, TCP/IP 기반 네트워킹 프로토콜들을 포함하지만 이들로 제한되지 않는, 지금 가용하거나 나중에 개발되는 다양한 네트워킹 프로토콜들을 활용할 수 있다. 예를 들어, 네트워킹 프로토콜은 그룹 기반 통신 시스템의 필요성들에 맞도록 커스텀화될 수 있다. 일부 실시예들에서, 프로토콜은 웹소켓 채널(Websocket channel)을 통해 전송된 JSON 객체들의 고객 프로토콜이다. 일부 실시예들에서, 프로토콜은 RPC를 통한 JSON, REST/HTTP를 통한 JSON 등이다.
그룹 기반 통신 플랫폼(105)은 메시지 서버(107) 및 네트워크 애플리케이션 서버(109)를 포함할 수 있다. 네트워크 애플리케이션 서버(109)는 메인 데이터베이스(111) 및 하나 이상의 데이터베이스 샤드들(113A 내지 113N)과 통신할 수 있다.
메시지 서버(107)는 본 명세서에서 기술되는 바와 같은 하나 이상의 회로들, 컴퓨터들, 또는 컴퓨팅 시스템들과 같은 컴퓨터 또는 컴퓨터들로서 구현될 수 있다. 메시지 서버(107)는 통신 네트워크(103)를 통해 클라이언트 디바이스들(101A 내지 101N)을 포함하지만 이들로 제한되지 않는 다양한 소스들로부터 전자적 데이터를 수신하는 것을 제공할 수 있다. 예를 들어, 메시지 서버(107)는 클라이언트 디바이스들(101A 내지 101N)에 의해 제공된 전자적 메시지들을 수신하도록 그리고 이들을 프로세싱하도록 동작가능할 수 있다. 메시지 서버(107)는 또한 클라이언트 디바이스들(101A 내지 101N)로의 전자적 메시지들의 송신 및 증폭을 용이하게 할 수 있다.
유사하게, 네트워크 애플리케이션 서버(109)는 본 명세서에서 기술되는 바와 같이 하나 이상의 회로들, 컴퓨터들, 또는 컴퓨팅 시스템들로서 구현될 수 있다. 네트워크 애플리케이션 서버(109)는 통신 네트워크(103)를 통해 클라이언트 디바이스들(101A 내지 101N)을 포함하지만 이들로 제한되지 않는 다양한 소스들로부터 전자적 데이터를 수신하는 것을 제공할 수 있다. 예를 들어, 네트워크 애플리케이션 서버(109)는 클라이언트 디바이스들(101A 내지 101N)에 의해 제공된 전자적 메시지들을 수신 및 프로세싱하도록 동작가능할 수 있다. 네트워크 애플리케이션 서버(109)는, 또한, 메인 데이터베이스(111) 및/또는 하나 이상의 데이터베이스 샤드들(113A 내지 113N)에 관하여 클라이언트 디바이스들(101A 내지 101N) 및/또는 메시지 서버(107)에 의해 제공된 네트워크 데이터베이스 쿼리들을 수신 및 프로세싱하도록 동작가능할 수 있다. 네트워크 애플리케이션 서버(109)는 사용자 인터페이스들의 생성을 추가로 용이하게 할 수 있다.
클라이언트 디바이스들(101A 내지 101N)은 위에 정의된 바와 같은 임의의 컴퓨팅 디바이스일 수 있다. 클라이언트 디바이스들(101A 내지 101N)로부터의 메시지 서버(107) 및 네트워크 애플리케이션 서버(109)에 의해 수신된 전자적 데이터는 다양한 형태들로 그리고 다양한 방법들을 통해 제공될 수 있다.
일부 실시예들에서, 클라이언트 디바이스들(101A 내지 101N) 중 하나 이상은 스마트폰들 또는 태블릿들과 같은 모바일 디바이스들이다. 하나 이상의 클라이언트 디바이스들은 메시지 서버(107) 및/또는 네트워크 애플리케이션 서버(109)와 상호작용하기 위해 "앱"을 실행시킬 수 있다. 그러한 앱들은, 전형적으로, 스마트폰들 또는 태블릿들과 같은 모바일 디바이스들 상에서 실행되도록 설계된다. 예를 들어, Apple Inc.의 iOS®, Google Inc.의 Android®, 또는 Microsoft Inc.의 Windows 10 Mobile®. 과 같은 모바일 디바이스 운영 체제들 상에서 실행되는 앱이 제공될 수 있다. 이러한 플랫폼들은, 전형적으로, 애들이 서로와, 그리고 모바일 디바이스들의 특정 하드웨어 및 소프트웨어와 통신할 수 있게 하는 프레임워크들을 제공한다. 예를 들어, 위에서 각각 지명된 모바일 운영 체제들은 위치 서비스 회로, 유선 및 무선 네트워크 인터페이스, 사용자 콘택트, 및 다른 애플리케이션과 상호작용하기 위한 프레임워크들을 제공한다. 앱 외부에서 실행되는 하드웨어 및 소프트웨어 모듈들과 통신하는 것은, 전형적으로, 모바일 디바이스 운영 체제에 의해 제공된 애플리케이션 프로그래밍 인터페이스(API)들을 통해 제공된다.
일부 실시예들에서, 클라이언트 디바이스들(101A 내지 101N)은 웹 브라우저를 통해 메시지 서버(107) 및/또는 네트워크 애플리케이션 서버(109)와 상호작용할 수 있다. 클라이언트 디바이스들(101A 내지 101N)은, 또한, 메시지 서버(107) 및/또는 네트워크 애플리케이션 서버(109)와 상호작용하도록 설계된 다양한 하드웨어 또는 펌웨어를 포함할 수 있다.
일부 실시예들에서, 데이터베이스 샤드들(113A 내지 113N)은 네트워크 결합 스토리지(network attached storage, NAS) 디바이스 또는 디바이스들과 같은 데이터 저장 디바이스로서, 또는 별개의 데이터베이스 서버 또는 서버들로서 구현될 수 있다. 데이터베이스 샤드들(113A 내지 113N)은 네트워크 애플리케이션 서버(109)에 의해 액세스 및 저장된 정보를 포함한다. 예를 들어, 데이터베이스 샤드들(113A 내지 113N)은 사용자 프로파일들, 사용자 특권 정보, 전자적 파일들, 복수의 그룹 기반 통신 채널들 간에 조직되는 메시징 통신 등을 제한 없이 포함할 수 있다.
일부 실시예들에서, 메인 데이터베이스 샤드들(111)은 네트워크 결합 스토리지(NAS) 디바이스 또는 디바이스들과 같은 데이터 저장 디바이스로서, 또는 별개의 데이터베이스 서버 또는 서버들로서 구현될 수 있다. 메인 데이터베이스(111)는 네트워크 애플리케이션 서버(109)에 의해 액세스 및 저장된 정보를 포함한다. 예를 들어, 메인 데이터베이스(111)는 샤드 참조 테이블을 제한 없이 포함할 수 있다.
그룹 기반 통신 플랫폼(105)의 일부 실시예들에서, 메시지 또는 메시징 통신은 클라이언트 디바이스(101A 내지 101N)로부터 그룹 기반 통신 플랫폼(105)으로 전송될 수 있다. 다양한 구현예들에서, 메시지들은 클라이언트 디바이스들(101A 내지 101N) 중 하나에 의해 통신 네트워크(103)를 통해 직접적으로 그룹 기반 통신 플랫폼(105)으로 전송될 수 있다. 메시지들은 메시지 서버 등과 같은 매개체를 통해 그룹 기반 통신 플랫폼(105)으로 전송될 수 있다. 예를 들어, 클라이언트 디바이스(101A 내지 101N)는 클라이언트 애플리케이션(예컨대, 그룹 기반 통신 앱)을 실행시키고 있는 데스크톱, 랩톱, 태블릿, 스마트폰 등일 수 있다. 일 구현예에서, 메시지는 메시지 식별자, 발신 사용자 식별자, 그룹 식별자, 그룹 기반 통신 채널 식별자, 공유되는 통신 채널 속성들(예컨대, 제1 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 제2 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트), 메시지 콘텐츠들(예컨대, 텍스트, 이모지들, 이미지들, 링크들), 첨부물들(예컨대, 파일들), 메시지 계층 데이터(예컨대, 메시지는 다른 메시지에 대한 답신일 수 있음), 제3자 메타데이터 등과 같은 데이터를 포함할 수 있다. 일 구현예에서, 클라이언트 디바이스들(101A 내지 101N)은, 아래에서 제공되는 바와 같이, 실질적으로, "XML(eXtensible Markup Language)" 포맷 데이터를 포함하는 "HTTP(S)((Secure) Hypertext Transfer Protocol)" POST 메시지의 형태로 다음의 예시적인 개인적 메시지를 제공할 수 있다:
POST /authrequest.php HTTP/1.1
호스트: www.server.com
콘텐츠 유형: 애플리케이션/XML
콘텐츠 길이: 667
<?XML version = "1.0" encoding = "UTF-8"?>
<auth_request>
<timestamp>2020-12-31 23:59:59</timestamp>
<user_accounts_details>
<user_account_credentials>
<user_name>ID_user_1</user_name>
<password>abc123</password>
//OPTIONAL <cookie>cookieID</cookie>
//OPTIONAL <digital_cert_link>www.mydigitalcertificate.com/ JohnDoeDaDoeDoe@gmail.com/mycertifcate.dc</digital_cert_link>
//OPTIONAL <digital_certificate>_DATA_</digital_certificate>
</user_account_credentials>
</user_accounts_details>
<client_details> //iOS Client with App and Webkit
//클라이언트 소스들의 예시적인 변형들을 보여주기 위해
//여러 개의 클라이언트 세부사항 섹션들이 제공되지만,
//추가 메시지들은 공간을 절약하기 위해 오로지
// 하나만을 포함할 것이라는 것에 유의해야 한다
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53</user_agent_string>
<client_product_type>iPhone6,1</client_product_type>
<client_serial_number>DNXXX1X1XXXX</client_serial_number>
<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>
<client_OS>iOS</client_OS>
<client_OS_version>7.1.1</client_OS_version>
<client_app_type>app with webkit</client_app_type>
<app_installed_flag>true</app_installed_flag>
<app_name>MSM.app</app_name>
<app_version>1.0 </app_version>
<app_webkit_name>Mobile Safari</client_webkit_name>
<client_version>537.51.2</client_version>
</client_details>
<client_details> //iOS Client with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53</user_agent_string>
<client_product_type>iPhone6,1</client_product_type>
<client_serial_number>DNXXX1X1XXXX</client_serial_number>
<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>
<client_OS>iOS</client_OS>
<client_OS_version>7.1.1</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>9537.53</client_version>
</client_details>
<client_details> //Android Client with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Nexus S Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30</user_agent_string>
<client_product_type>Nexus S</client_product_type>
<client_serial_number>YXXXXXXXXZ</client_serial_number>
<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID>
<client_OS>Android</client_OS>
<client_OS_version>4.0.4</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>534.30</client_version>
</client_details>
<client_details> //Mac Desktop with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14</user_agent_string>
<client_product_type>MacPro5,1</client_product_type>
<client_serial_number>YXXXXXXXXZ</client_serial_number>
<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID>
<client_OS>Mac OS X</client_OS>
<client_OS_version>10.9.3</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>537.75.14</client_version>
</client_details>
<message>
<message_identifier>ID_message_10</message_identifier>
<team_identifier>ID_team_1</team_identifier>
<channel_identifier>ID_channel_1</channel_identifier>
<contents>That is an interesting invention. I have attached a copy our patent policy.</contents>
<attachments>patent_policy.pdf</attachments>
<viewing_privilege_settings>private</viewing_privilege_settings>
</message>
</auth_request>
그룹 기반 통신 플랫폼(105)은 하나 이상의 데이터베이스 샤드들(113A 내지 113N)에서 메시지 인덱싱 및 저장을 용이하게 하기 위해 수신된 메시지에 기초하여 저장 메시지를 생성할 수 있는 적어도 하나의 메시지 서버(107)를 포함한다. 일 구현예에서, 저장 메시지는 메시지 식별자, 그룹 식별자, 그룹 기반 통신 채널 식별자, 발신 사용자 식별자, 주제들, 응답들, 메시지 콘텐츠들, 첨부물들, 메시지 계층 데이터, 제3자 메타데이터, 대화 프리미티브 데이터 등과 같은 데이터를 포함할 수 있다. 예를 들어, 그룹 기반 통신 서버(106)는, 아래에서 제공되는 바와 같이, 실질적으로, XML 포맷 데이터를 포함하는 HTTP(S) POST 메시지의 형태로, 다음의 예시적인 개인적 저장 메시지를 제공할 수 있다:
POST /storage_message.php HTTP/1.1
호스트: www.server.com
콘텐츠 유형: 애플리케이션/XML
콘텐츠 길이: 667
<?XML version = "1.0" encoding = "UTF-8"?>
<storage_message>
<message_identifier>ID_message_10</message_identifier>
<team_identifier>ID_team_1</team_identifier>
<channel_identifier>ID_channel_1</channel_identifier>
<sending_user_identifier>ID_user_1</sending_user_identifier>
<topics>
<topic>inventions</topic>
<topic>patents</topic>
<topic>policies</topic>
</topics>
<responses>
<response>liked by ID_user_2</response>
<response>starred by ID_user_3</response>
</responses>
<contents>That is an interesting invention. I have attached a copy our patent policy.</contents>
<attachments>patent_policy.pdf</attachments>
<viewing_privilege_settings>private</viewing_privilege_settings>
<conversation_primitive>
conversation includes messages: ID_message_8, ID_message_9, ID_message_10,
ID_message_11, ID_message_12
</conversation_primitive>
</storage_message>
일부 실시예들에서, 위에서 정의된 바와 같은 그룹 식별자는 메시지와 연관될 수 있다. 일부 실시예들에서, 위에서 정의된 바와 같은 그룹 기반 통신 채널 식별자는 메시지와 연관될 수 있다.
일부 실시예들에서, 위에서 정의된 바와 같은 발신 사용자 식별자는 메시지와 연관될 수 있다. 일 구현예에서, 메시지는 메시지를 전송한 사용자의 발신 사용자 식별자를 결정하기 위해 (예컨대, PHP 커맨드들을 사용하여) 파싱될 수 있다.
일부 실시예들에서, 응답들을 나타내는 데이터는 메시지와 연관될 수 있다. 예를 들어, 다른 사용자들에 의한 메시지에 대한 응답들은 리액션들(예컨대, 메시지와 연관된 이모지의 선택, 메시지와 연관된 “라이크(like)” 버튼의 선택), 메시지에 임베드된 하이퍼링크 상에서 클릭하기, 메시지에 대응하기(예컨대, 메시지에 응답하여 메시지를 그룹 기반 통신 채널에 포스트하기), 메시지와 연관된 파일을 다운로드하기, 하나의 그룹 기반 통신 채널로부터의 메시지를 다른 그룹 기반 통신 채널에 공유하기, 메시지를 피닝(pin)하기, 메시지에 별표 표시하기 등을 포함할 수 있다. 일 구현예에서, 다른 사용자들에 의한 메시지에 대한 응답들에 관한 데이터는 메시지에 포함될 수 있고, 메시지는 응답들을 결정하기 위해 (예컨대, PHP 커맨드들을 사용하여) 파싱될 수 있다. 다른 구현예에서, 메시지에 대한 응답들에 관한 데이터는 데이터베이스로부터 검색될 수 있다. 예를 들어, 메시지에 대한 응답들에 관한 데이터는 다음과 유사한 MySQL 데이터베이스 커맨드를 통해 검색될 수 있다:
messageResponses를 선택
MSM_Message로부터
여기서 messageID = ID_message_10이다.
예를 들어, 메시지에 대한 응답들에 관한 데이터는 메시지에 대한 콘텍스트(예컨대, 일부 사용자의 관점으로부터 메시지에 대한 소셜 스코어)를 결정하는 데 사용될 수 있다. 다른 예에서, 메시지에 대한 응답들에 관한 데이터는 사용자에 관한 콘텍스트를 결정하기 위해 분석될 수 있다(예컨대, 주제에서 사용자의 전문지식은 주제에 관한 사용자의 메시지에 대한 응답들에 기초하여 결정될 수 있다).
일부 실시예들에서, 첨부물들은 메시지에 포함될 수 있다. 첨부물들이 있는 경우, 파일들이 메시지와 연관될 수 있다. 일 구현예에서, 메시지는 첨부물들의 파일명들을 결정하기 위해 (예컨대, PHP 커맨드들을 사용하여) 파싱될 수 있다. 예를 들어, 파일 콘텐츠들은 메시지에 대한 콘텍스트를 결정하기 위해 분석될 수 있다(예컨대, 특허 정책 문서는 메시지가 주제 "특허들"과 관련됨을 나타낼 수 있다).
일부 실시예들에서, 제3자 메타데이터는 메시지와 연관될 수 있다. 예를 들어, 제3자 메타데이터는 회사, 그룹, 그룹 기반 통신 채널 등에 특정적인 사용자 또는 메시지에 관한 추가 콘텍스트를 제공할 수 있다. 일 구현예에서, 메시지는 제3자 메타데이터를 결정하기 위해 (예컨대, PHP 커맨드들을 사용하여) 파싱될 수 있다. 예를 들어, 제3자 메타데이터는 메시지를 전송한 사용자가 그룹 기반 통신 채널의 인가받은 대표인지의 여부를 나타낼 수 있다(예컨대, 인가받은 대표는 그룹 기반 통신 채널에서 의문들에 응답하도록 회사에 의해 인가될 수 있다).
실시예들에서, 대화 프리미티브는 메시지와 연관될 수 있다. 일 구현예에서, 대화 프리미티브는 메시지들을 분석하고/하거나 인덱싱하고/하거나 저장하고/하거나 등등을 하는 데 사용되는 요소이다. 예를 들어, 메시지는 자체로 분석될 수 있고, 그 자신의 대화 프리미티브를 형성할 수 있다. 다른 예에서, 메시지는 대화를 이루는 다른 메시지들과 함께 분석될 수 있고, 대화를 이루는 메시지들은 대화 프리미티브를 형성할 수 있다. 일 구현예에서, 대화 프리미티브는 메시지, 특정된 수(예컨대, 2개)의 선행 메시지들, 및 특정된 수(예컨대, 2개)의 후행 메시지들로서 결정될 수 있다. 다른 구현예에서, 대화 프리미티브는 메시지 및 다른 메시지들에서(예컨대, 채널에서) 논의된 주제들 및/또는 이러한 메시지들의 근접도(예컨대, 메시지 발송 순서 근접도, 메시지 발송 시간 근접도)의 분석에 기초하여 결정될 수 있다.
실시예들에서, 위에서 기술된 바와 같이 결정된 다양한 메타데이터, 및/또는 메시지의 콘텐츠들은 (예컨대, 대화 프리미티브를 사용하여) 메시지를 인덱싱하여, 탐색의 다양한 패싯(facet)들(즉, 메시지 서버(107)로부터의 결과들을 반환하는 탐색 쿼리들)을 용이하게 하는 데 사용될 수 있다. 일 구현예에서, 저장 메시지는 그룹 기반 통신 서버(106)로부터 전송되어, 메시지 서버(107)에의 인덱싱을 용이하게 할 수 있다. 다른 구현예에서, 메시지와 연관된 메타데이터가 결정될 수 있고, 메시지는 메시지 서버(107)에 인덱싱될 수 있다. 일 구현예에서, 메시지는 (예컨대, 다른 그룹들 및/또는 회사들과 공유되지 않는 그룹 및/또는 회사와 연관된 별개의 인덱스에서) 회사 또는 그룹의 메시지들이 개별적으로 인덱싱될 수 있도록 인덱싱될 수 있다. 일 구현예에서, (예컨대, 보안 목적을 위해 데이터 격리를 용이하게 하기 위해) 메시지들이 별개의 분산형 저장소에서 인덱싱될 수 있다.
메시지와 연관된 첨부물들이 있는 경우, 연관된 파일들의 파일 콘텐츠들은 메시지 서버(107)에 그러한 파일들을 인덱싱하여 탐색을 용이하게 하는 데 사용될 수 있다. 일 실시예에서, 파일들은 회사 또는 그룹의 파일들이 별개의 분산형 저장소에서 인덱싱되도록 인덱싱될 수 있다.
하나 이상의 클라이언트 디바이스들(101A 내지 101N) 및 그룹 기반 통신 플랫폼(105) 간의 전자적 정보 교환의 일례가 아래에서 기술된다.
하나 이상의 클라이언트 디바이스들(101A 내지 101N)은 데이터베이스 샤드들(113A 내지 113N)과 연관된 하나 이상의 공유되는 통신 채널 생성 쿼리들을 생성하도록 구성된다. “토니 대 프랭크” 논의로부터 계속하면, 토니는 클라이언트 디바이스(101A)(조직 X와 연관된 그룹 식별을 가짐)를 사용하여 공유되는 통신 채널 생성 쿼리를 생성하여, 프랭크의 클라이언트 디바이스(101B)(조직 Y와 연관된 그룹 식별을 가짐)와의 외부에서 공유되는 통신 채널의 생성을 요청할 수 있다. 조직 X 및 조직 Y는 각각 데이터베이스 샤드들(113A 내지 113N)의 별개의 샤드와 연관된다. 공유되는 통신 채널 생성 쿼리는 통신 네트워크(103)를 통해 그룹 기반 통신 플랫폼(105)으로 송신될 수 있다.
클라이언트 디바이스들(101A 내지 101N)로부터 하나 이상의 공유되는 통신 채널 생성 쿼리들을 수신할 시, 그룹 기반 통신 플랫폼(105)은 네트워크 애플리케이션 서버(109)를 활용하여, 하나 이상의 공유되는 통신 채널 생성 쿼리들에 기초하여 하나 이상의 데이터베이스 샤드들을 생성할 수 있다. 네트워크 애플리케이션 서버(109)는 공유되는 통신 채널 식별을 하나 이상의 생성된 데이터베이스 샤드들 각각에 추가로 할당할 수 있다. 이전 예로부터 계속하면, 네트워크 애플리케이션 서버(109)는 클라이언트 디바이스(101A)를 통해 토니에 의해 제공된 공유되는 통신 채널 생성 쿼리에 기초하여 데이터베이스 샤드(113N)를 생성할 수 있고, 공유되는 통신 채널 식별을 데이터베이스 샤드(113N)와 연관시킬 수 있다.
하나 이상의 공유되는 통신 채널 생성 쿼리들에 기초하여 하나 이상의 데이터베이스 샤드들을 생성한 후, 그룹 기반 통신 플랫폼(105)은 하나 이상의 공유되는 통신 채널 수락 요청들을 하나 이상의 클라이언트 디바이스들(101A 내지 101N)로 송신할 수 있다. 이전 예로부터 계속하면, 그룹 기반 통신 플랫폼(105)은 공유되는 통신 채널 수락 요청을 클라이언트 디바이스(101B)(프랭크)로 송신할 수 있는데, 이는 클라이언트 디바이스(101A)(토니)에 의해 제공된 공유되는 통신 채널 생성 쿼리에 나타내진다.
공유되는 통신 채널 수락 요청을 수신할 시, 하나 이상의 클라이언트 디바이스들(101A 내지 101N)은 하나 이상의 전자적 승인들을 생성할 수 있고, 이러한 전자적 승인들을 그룹 기반 통신 플랫폼(105)으로 송신할 수 있다. 이전 예로부터 계속하면, 프랭크는, 클라이언트 디바이스(101B)를 통해, 공유되는 통신 채널 수락 요청에 응답하여 전자적 승인을 생성할 수 있다. 전자적 승인은 토니에 의해 제공된 공유되는 통신 채널 생성 쿼리의 프랭크의 수락을 나타낼 수 있다. 클라이언트 디바이스(101)는 그룹 기반 통신 플랫폼(105)으로 전자적 승인을 추가로 송신할 수 있다.
하나 이상의 클라이언트 디바이스들(101A 내지 101N)로부터 하나 이상의 전자적 승인들을 수신할 시, 그룹 기반 통신 플랫폼(105)은 메인 데이터베이스(111)에 저장된 샤드 참조 테이블을 통해 하나 이상의 채널 식별들을 하나 이상의 클라이언트 디바이스들(101A 내지 101N)과 연관시킨다. 이전 예로부터 계속하면, 클라이언트 디바이스(101B)로부터 전자적 승인을 수신할 시, 그룹 기반 통신 플랫폼(105)은 조직 X 식별, 조직 Y 식별, 및 새롭게 생성된 데이터베이스 샤드, 예컨대 데이터베이스 샤드(113N)에 기초하여 메인 데이터베이스(111)에 저장된 샤드 참조 테이블을 추가로 업데이트할 수 있다.
공유되는 통신 채널 샤드를 생성하고 샤드 참조 테이블을 업데이트함으로써, 본 개시내용은 아이덴티티 통합 이슈를 해결하는 것과 같은, 기존 시스템들을 넘는 많은 기술적 이점들을 제공한다. 위의 “토니-X/토니-Z”예로부터 계속하면, 본 개시내용에 기초하여 생성된, 조직 X와 조직 Z 사이의 외부에서 공유되는 통신 채널은 2개의 별개의 조직에서 토니의 2개의 아이덴티티들 토니-X 및 토니-Z를 조화시킬 수 있다. 샤드 참조 테이블을 업데이트하는 동안, 본 개시내용의 실시예들에 따라 구조화된 시스템들은, 예를 들어 각각의 조직과 연관된 데이터를 탐색 및 비교함으로써, 중복 사용자 아이덴티티들을 식별할 수 있다. 토니-X 및 토니-Y가 동일한 개인과 연관된다고 결정할 시에, 본 개시내용의 실시예들에 따라 구조화된 시스템들은 공유되는 통신 채널 샤드에서 통합 아이덴티티를 토니에 할당한다. 한편, 기존 시스템들은, 아이덴티티 통합 이슈를 해결할 수 없는데, 이는 그들이 공유되는 통신 채널 샤드를 생성하고/하거나 샤드 참조 테이블을 업데이트하지 못하기 때문이다.
그룹 기반 통신 플랫폼(105)은 하나 이상의 생성된 데이터베이스 샤드들에 대한 하나 이상의 인터페이스들을 추가로 생성할 수 있고, 하나 이상의 인터페이스들을 클라이언트 디바이스들(101A 내지 101N)로 송신할 수 있다. 이전 예로부터 계속하면, 그룹 기반 통신 플랫폼(105)은 데이터베이스 샤드(113N)에 대한 사용자 인터페이스를 생성할 수 있고, 사용자 인터페이스를 클라이언트 디바이스들(101A, 101B)로 송신할 수 있다. 일부 실시예들에서, 그룹 기반 통신 플랫폼(105)은 (예컨대, 공유되는 통신 채널 속성들, 보기 특권 설정들, 또는 둘 모두에 기초하여): 적절한 데이터/인터페이스만을 클라이언트 디바이스들(101A, 101B)로 전송할 수 있거나; 데이터를 클라이언트 디바이스들(101A, 101B)로 전송하기 전에 검색 및 캐싱할 수 있거나; 클라이언트 디바이스들(101A, 101B) 상의 입들의 일부로서 사용될 수 있는 인터페이스 프로그램을 컴파일할 수 있거나; 또는 임의의 다른 적합한 동작 또는 본 명세서에서 기술되는 동작들의 조합을 수행할 수 있다.
일부 실시예들에서, 메인 데이터베이스(111)에 저장된 참조 테이블은 그룹 식별과 데이터베이스 샤드들(113A 내지 113N) 중의 데이터베이스 샤드 사이의 참조 접속들을 나타낼 수 있다. 이전 예로부터 계속하면, 클라이언트 디바이스들(101A, 101C)은 둘 모두가 조직 X 식별과 연관될 수 있고, 샤드 참조 테이블은 클라이언트 디바이스들(101A, 101B) 사이의 통신과 관련된 데이터가 데이터베이스 샤드(113A)에 저장됨을 나타낼 수 있다.
일부 실시예들에서, 그룹 기반 통신 플랫폼(105)이 하나 이상의 클라이언트 디바이스들(101A 내지 101N)로부터 하나 이상의 전자적 승인들을 수신할 때, 그룹 기반 통신 플랫폼(105)은 새로운 참조 접속을 생성함으로써 메인 데이터베이스(111)에 저장된 샤드 참조 테이블을 업데이트할 수 있다. 예를 들어, 조직 X와 조직 Y 사이에 공유되는 통신 채널을 생성하기 위해 전자적 승인을 수신한 후, 그룹 기반 통신 플랫폼(105)은 샤드 참조 테이블을 업데이트하여, 조직 X 식별, 조직 Y 식별, 및 새롭게 생성된 데이터베이스 샤드의 식별 사이의 참조 접속을 나타낼 수 있다.
일부 실시예들에서, 그룹 기반 통신 플랫폼(105)은 외부에서 공유되는 통신 채널 내의 하나 이상의 클라이언트 디바이스들(101A 내지 101N)로부터 수신된 전자적 메시지들을, 메시지 서버(107)를 사용하여 동일한 채널 내의 다른 클라이언트 디바이스들로 증폭할 수 있다. 예를 들어, 메시지 서버(107)는 외부에서 공유되는 통신 채널과 연관하여 클라이언트 디바이스(101A)로부터 전자적 메시지를 수신할 수 있다. 메시지 서버(107)는 네트워크 애플리케이션 서버(109)에 쿼리할 수 있고, 이는, 이어서, 메인 데이터베이스(111)에 저장된 샤드 참조 테이블에 기초하여 외부에서 공유되는 통신 채널과 연관된 하나 이상의 클라이언트 디바이스들을 식별한다. 메시지 서버(107)는 전자적 메시지를 각각의 식별된 클라이언트 디바이스로 추가로 송신할 수 있다.
일부 실시예들에 대한 기초로서, 예시적인 컴퓨팅 시스템(100)은 그룹 기반 통신 플랫폼(105)에 공유되는 통신 채널을 생성하는 것을 제공할 수 있다. 그룹 기반 통신 플랫폼(105)은 메시지 서버(107)(예컨대, 실시간 메시지 서버), 네트워크 애플리케이션 서버(109), 복수의 데이터베이스 샤드들(113A 내지 113N), 및 메인 데이터베이스(111)를 포함할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 개시자 그룹 식별과 연관된 제1 클라이언트 디바이스(101A)로부터 통신 네트워크(103)를 통해 그룹 기반 통신 플랫폼(105)에 의해, 개시자 그룹 식별 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 생성 쿼리를 수신하는 것을 제공할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 네트워크 애플리케이션 서버(109)에 의해, 공유되는 통신 채널 샤드(예컨대, 데이터베이스 샤드(113N))를 생성하는 것을 추가로 제공할 수 있다. 복수의 데이터베이스 샤드들(113A 내지 113N)은 공유되는 통신 채널 샤드를 포함할 수 있다. 공유되는 통신 채널 샤드는 공유되는 통신 채널 식별, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트를 (예컨대, 그룹 기반 통신 플랫폼(105), 네트워크 애플리케이션 서버(109), 또는 둘 모두에 의해) 할당받을 수 있다. 예시적인 컴퓨팅 시스템(100)은, 네트워크 애플리케이션 서버(109)에 의해, 공유되는 통신 채널 수락 요청을 생성하는 것을 추가로 제공할 수 있다. 공유되는 통신 채널 수락 요청은 공유되는 통신 채널 식별과 연관될 수 있다. 예시적인 컴퓨팅 시스템(100)은, 타깃 그룹 식별과 연관된 제2 클라이언트 디바이스(101B)로 통신 네트워크(103)를 통해 그룹 기반 통신 플랫폼(105)에 의해, 공유되는 통신 채널 수락 요청을 송신하는 것을 추가로 제공할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 클라이언트 디바이스들(101A 내지 101N) 중 하나로부터 통신 네트워크(103)를 통해 그룹 기반 통신 플랫폼(105)에 의해, 공유되는 통신 채널 수락 통지를 수신하는 것을 추가로 제공할 수 있다. 공유되는 통신 채널 수락 통지는 공유되는 통신 채널 식별을 타깃 그룹 식별과 연관시키기기 위한 전자적 승인을 포함할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 네트워크 애플리케이션 서버(109)에 의해, 개시자 그룹 식별, 타깃 그룹 식별, 공유되는 통신 채널 식별, 공유되는 통신 채널 속성들의 제1 세트, 및 공유되는 통신 채널 속성들의 제2 세트에 기초하여 메인 데이터베이스(111)에 저장된 샤드 참조 테이블을 업데이트하는 것을 추가로 제공할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 네트워크 애플리케이션 서버(109)에 의해, 공유되는 통신 채널 샤드 및 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트에 기초하여 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하는 것을 추가로 제공할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 네트워크 애플리케이션 서버(109)에 의해, 공유되는 통신 채널 샤드 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트에 기초하여 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하는 것을 추가로 제공할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 제1 클라이언트 디바이스(101A)로 통신 네트워크(103)를 통해 그룹 기반 통신 플랫폼(105)에 의해, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하는 것을 추가로 제공할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 제2 클라이언트 디바이스(101B)로 통신 네트워크(103)를 통해 그룹 기반 통신 플랫폼(105)에 의해, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하는 것을 추가로 제공할 수 있다.
일부 실시예들에서, 복수의 데이터베이스 샤드들(113A 내지 113N)은 개시자 그룹 식별과 연관된 제1 데이터베이스 샤드(113A)를 포함할 수 있다. 복수의 데이터베이스 샤드들은 타깃 그룹 식별과 연관된 제2 데이터베이스 샤드(113B)를 추가로 포함할 수 있다. 메인 데이터베이스(111)에 저장된 샤드 참조 테이블은 개시자 그룹 식별과 제1 데이터베이스 샤드(113A) 사이의 제1 참조 접속을 포함할 수 있다. 샤드 참조 테이블은 타깃 그룹 식별과 제2 데이터베이스 샤드(113B) 사이의 제2 참조 접속을 추가로 포함할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 개시자 그룹 식별에 기초하여 네트워크 애플리케이션 서버(109)에 의해, 샤드 참조 테이블에서 제1 참조 접속을 식별하는 것을 추가로 제공할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 타깃 그룹 식별에 기초하여 네트워크 애플리케이션 서버(109)에 의해, 샤드 참조 테이블에서 제2 참조 접속을 식별하는 것을 추가로 제공할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 네트워크 애플리케이션 서버(109)에 의해, 공유되는 통신 채널 식별, 공유되는 통신 채널 샤드(예컨대, 데이터베이스 샤드(113N)), 제1 참조 접속, 및 제2 참조 접속 사이의 제3 참조 접속을 생성하는 것을 추가로 제공할 수 있다. 예시적인 컴퓨팅 시스템(100)은, 네트워크 애플리케이션 서버(109)에 의해, 제3 참조 접속을 포함하기 위해 메인 데이터베이스(111)에 저장된 샤드 참조 테이블을 업데이트하는 것을 추가로 제공할 수 있다.
일부 실시예들에서, 예시적인 컴퓨팅 시스템(100)은 클라이언트 디바이스들(101A 내지 101N)로부터 수신된 메시지들에 기초하여 일반 메시지들, 저장 메시지들, 또는 둘 모두를 생성하는 것을 추가로 제공할 수 있다. 하나의 예시적인 예에서, 클라이언트 디바이스(101A) 및 클라이언트 디바이스(101B)는 제1 그룹 식별 및 공유되는 통신 채널 식별과 연관될 수 있는 반면, 클라이언트 디바이스(101C)(도시되지 않음) 및 클라이언트 디바이스(101D)(도시되지 않음)는 제2 그룹 식별 및 공유되는 통신 채널 식별과 연관될 수 있다. 그룹 기반 통신 플랫폼(105)은, 클라이언트 디바이스(101A)로부터 공유되는 통신 채널을 통해 실시간으로, 제1 개인적 보기 특권 설정을 포함하는 보기 특권 설정들의 제1 세트와 연관된 제1 메시지(예컨대, 개인적 메시지)를 수신할 수 있다. 그룹 기반 통신 플랫폼(105)은, 메시지 서버(107)에 의해 실시간으로, 수신된 제1 메시지, 및 제1 개인적 보기 특권 설정을 포함하는 보기 특권 설정들의 제1 세트에 기초하여 제1 일반 메시지(예컨대, 개인적 일반 메시지)를 생성할 수 있다. 그룹 기반 통신 플랫폼(105)은, 메시지 서버(107)에 의해 실시간으로, 제1 일반 메시지를, 제1 그룹 식별과 연관된 다른 클라이언트 디바이스들로 송신할 수 있으며(예컨대, 제1 일반 메시지는 클라이언트 디바이스(101B)로 송신됨), 여기서 제1 일반 메시지는 제2 그룹 식별과 연관된 어떠한 클라이언트 디바이스로도 송신되지 않는다(예컨대, 제1 일반 메시지는 클라이언트 디바이스(101C) 또는 클라이언트 디바이스(101D)로 송신되지 않음). 일부 경우들에 있어서, 제1 일반 메시지는 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 제1 그룹 식별과 연관된 임의의 클라이언트 디바이스에게 보일 수 있으며(예컨대, 제1 일반 메시지는 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 클라이언트 디바이스(101A) 및 클라이언트 디바이스(101B)에게 보일 수 있음), 여기서 제1 일반 메시지는 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 제2 그룹 식별과 연관된 어떠한 클라이언트 디바이스에게도 보일 수 없다(예컨대, 제1 일반 메시지는 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 클라이언트 디바이스(101C) 또는 클라이언트 디바이스(101D)에게 보일 수 없음).
일부 실시예들에서, 그룹 기반 통신 플랫폼(105)은, 네트워크 애플리케이션 서버(109)에 의해, 수신된 제1 메시지, 및 제1 개인적 보기 특권 설정을 포함하는 보기 특권 설정들의 제1 세트에 기초하여 제1 저장 메시지(예컨대, 개인적 저장 메시지)를 생성할 수 있다. 그룹 기반 통신 플랫폼(105)은, 제1 데이터베이스 샤드(113A)에서 네트워크 애플리케이션 서버(109)에 의해, 보기 특권 설정들의 제1 세트와 연관하여 제1 저장 메시지를 저장할 수 있다. 그룹 기반 통신 플랫폼(105)은, 네트워크 애플리케이션 서버(109)에 의해, 제1 그룹 식별과 연관된 제1 별개의 인덱스로 제1 저장 메시지를 인덱싱할 수 있으며, 여기서 제1 별개의 인덱스는 제1 그룹 식별과 연관된 임의의 클라이언트 디바이스에 액세스가능하고(예컨대, 제1 별개의 인덱스는 클라이언트 디바이스(101A) 및 클라이언트 디바이스(101B)에 액세스가능함), 제1 별개의 인덱스는 제2 그룹 식별과 연관된 어떠한 클라이언트 디바이스에도 액세스가능하지 않다(예컨대, 제1 별개의 인덱스는 클라이언트 디바이스(101C) 또는 클라이언트 디바이스(101D)에 액세스가능하지 않음). 일부 경우들에 있어서, 제1 저장 메시지는 제1 그룹 식별과 연관된 임의의 클라이언트 디바이스에 의해 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능하며(예컨대, 제1 저장 메시지는 클라이언트 디바이스(101A) 및 클라이언트 디바이스(101B)에 의해 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능함), 여기서 제1 저장 메시지는 인터페이스에서 제2 그룹 식별과 연관된 어떠한 클라이언트 디바이스에 의해서도 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널에서 탐색가능하지 않다(예컨대, 제1 저장 메시지는 클라이언트 디바이스(101C) 또는 클라이언트 디바이스(101D)에 의해 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능하지 않음).
이전 예시적인 예로부터 계속하는 다른 예시적인 예에서, 그룹 기반 통신 플랫폼(105)은, 클라이언트 디바이스(101B)로부터 공유되는 통신 채널을 통해 실시간으로, 제1 공개적 보기 특권 설정을 포함하는 보기 특권 설정들의 제2 세트와 연관된 제2 메시지(예컨대, 공개적 메시지)를 수신할 수 있다. 그룹 기반 통신 플랫폼(105)은, 메시지 서버(107)에 의해 실시간으로, 수신된 제2 메시지, 및 제1 공개적 보기 특권 설정을 포함하는 보기 특권 설정들의 제2 세트에 기초하여 제2 일반 메시지(예컨대, 공개적 일반 메시지)를 생성할 수 있다. 그룹 기반 통신 플랫폼(105)은, 메시지 서버(107)에 의해 실시간으로, 제2 일반 메시지를 공유되는 통신 채널 식별과 연관된 다른 클라이언트 디바이스들로 송신할 수 있다(예컨대, 제1 일반 메시지는 클라이언트 디바이스(101B), 클라이언트 디바이스(101C), 및 클라이언트 디바이스(101D)로 송신됨). 일부 경우들에 있어서, 제2 일반 메시지는 공유되는 통신 채널 식별과 연관된 임의의 클라이언트 디바이스에게 보일 수 있다(예컨대, 제2 일반 메시지는 클라이언트 디바이스(101A), 클라이언트 디바이스(101B), 클라이언트 디바이스(101C), 및 클라이언트 디바이스(101D)에게 보일 수 있음). 예를 들어, 제2 일반 메시지는 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 제1 그룹 식별과 연관된 임의의 클라이언트 디바이스에게 보일 수 있고(예컨대, 제2 일반 메시지는 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 클라이언트 디바이스(101A) 및 클라이언트 디바이스(101B)에게 보일 수 있음), 제2 일반 메시지는 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에게 보일 수 있다(예컨대, 제2 일반 메시지는 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 클라이언트 디바이스(101C) 또는 클라이언트 디바이스(101D)에게 보일 수 없음).
그룹 기반 통신 플랫폼(105)은, 네트워크 애플리케이션 서버(109)에 의해, 수신된 제2 메시지, 및 제1 공개적 보기 특권 설정을 포함하는 보기 특권 설정들의 제2 세트에 기초하여 제2 저장 메시지(예컨대, 공개적 저장 메시지)를 생성할 수 있다. 그룹 기반 통신 플랫폼(105)은, 제1 데이터베이스 샤드(113A)에서 네트워크 애플리케이션 서버(109)에 의해, 보기 특권 설정들의 제1 세트와 연관하여 제1 저장 메시지를 저장할 수 있다. 그룹 기반 통신 플랫폼(105)은, 네트워크 애플리케이션 서버(109)에 의해, 제1 그룹 식별 및 제2 그룹 식별과 연관된 공유되는 인덱스로 제2 저장 메시지를 인덱싱할 수 있으며, 여기서 공유되는 인덱스는 제1 그룹 식별 또는 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에 액세스가능하다(예컨대, 공유되는 인덱스는 클라이언트 디바이스(101A), 클라이언트 디바이스(101B), 클라이언트 디바이스(101C), 및 클라이언트 디바이스(101D)에 액세스가능함). 일부 경우들에 있어서, 제2 저장 메시지는 제1 그룹 식별 또는 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에 의해 탐색가능하다(예컨대, 제2 저장 메시지는 클라이언트 디바이스(101A), 클라이언트 디바이스(101B), 클라이언트 디바이스(101C), 및 클라이언트 디바이스(101D)에 의해 탐색가능함). 예를 들어, 제2 저장 메시지는 제1 그룹 식별과 연관된 임의의 클라이언트 디바이스에 의해 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능하고(예컨대, 제2 저장 메시지는 클라이언트 디바이스(101A) 및 클라이언트 디바이스(101B)에 의해 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능함), 제2 저장 메시지는 인터페이스에서 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에 의해 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널에서 탐색가능하지 않다(예컨대, 제2 저장 메시지는 클라이언트 디바이스(101C) 또는 클라이언트 디바이스(101D)에 의해 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능하지 않음).
이전 예시적인 예들로부터 계속하는 또는 다른 예시적인 예에서, 그룹 기반 통신 플랫폼(105)은, 클라이언트 디바이스(101C)로부터 공유되는 통신 채널을 통해 실시간으로, 제2 개인적 보기 특권 설정을 포함하는 보기 특권 설정들의 제3 세트와 연관된 제3 메시지(예컨대, 개인적 메시지)를 수신할 수 있다. 그룹 기반 통신 플랫폼(105)은, 메시지 서버(107)에 의해 실시간으로, 수신된 제3 메시지, 및 제2 개인적 보기 특권 설정을 포함하는 보기 특권 설정들의 제3 세트에 기초하여 제3 일반 메시지(예컨대, 개인적 일반 메시지)를 생성할 수 있다. 그룹 기반 통신 플랫폼(105)은, 메시지 서버(107)에 의해 실시간으로, 제3 일반 메시지를, 제2 그룹 식별과 연관된 다른 클라이언트 디바이스들로 송신할 수 있으며(예컨대, 제3 일반 메시지는 클라이언트 디바이스(101D)로 송신됨), 여기서 제3 일반 메시지는 제1 그룹 식별과 연관된 어떠한 클라이언트 디바이스로도 송신되지 않는다(예컨대, 제3 일반 메시지는 클라이언트 디바이스(101A) 또는 클라이언트 디바이스(101B)로 송신되지 않음). 일부 경우들에 있어서, 제3 일반 메시지는 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에게 보일 수 있으며(예컨대, 제3 일반 메시지는 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 클라이언트 디바이스(101C) 및 클라이언트 디바이스(101D)에게 보일 수 있음), 여기서 제3 일반 메시지는 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 제1 그룹 식별과 연관된 어떠한 클라이언트 디바이스에게도 보일 수 없다(예컨대, 제3 일반 메시지는 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 클라이언트 디바이스(101A) 또는 클라이언트 디바이스(101B)에게 보일 수 없음).
그룹 기반 통신 플랫폼(105)은, 네트워크 애플리케이션 서버(109)에 의해, 수신된 제3 메시지, 및 제3 개인적 보기 특권 설정을 포함하는 보기 특권 설정들의 제3 세트에 기초하여 제3 저장 메시지(예컨대, 개인적 저장 메시지)를 생성할 수 있다. 그룹 기반 통신 플랫폼(105)은, 제2 데이터베이스 샤드(113B)에서 네트워크 애플리케이션 서버(109)에 의해, 보기 특권 설정들의 제3 세트와 연관하여 제3 저장 메시지를 저장할 수 있다. 그룹 기반 통신 플랫폼(105)은, 네트워크 애플리케이션 서버(109)에 의해, 제2 그룹 식별과 연관된 제2 별개의 인덱스로 제3 저장 메시지를 인덱싱할 수 있으며, 여기서 제2 별개의 인덱스는 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에 액세스가능하고(예컨대, 제2 별개의 인덱스는 클라이언트 디바이스(101C) 및 클라이언트 디바이스(101D)에 액세스가능함), 제2 별개의 인덱스는 제1 그룹 식별과 연관된 어떠한 클라이언트 디바이스에도 액세스가능하지 않다(예컨대, 제2 별개의 인덱스는 클라이언트 디바이스(101A) 또는 클라이언트 디바이스(101B)에 액세스가능하지 않음). 일부 경우들에 있어서, 제3 저장 메시지는 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에 의해 탐색가능할 수 있으며(예컨대, 제3 저장 메시지는 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 클라이언트 디바이스(101C) 및 클라이언트 디바이스(101D)에 의해 탐색가능함), 여기서 제3 저장 메시지는 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 제1 그룹 식별과 연관된 어떠한 클라이언트 디바이스에 의해서도 탐색가능하지 않다(예컨대, 제3 저장 메시지는 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 클라이언트 디바이스(101A) 또는 클라이언트 디바이스(101B)에 의해 탐색가능하지 않음).
이전 예시적인 예들로부터 계속하는 또는 다른 예시적인 예에서, 그룹 기반 통신 플랫폼(105)은, 클라이언트 디바이스(101D)로부터 공유되는 통신 채널을 통해 실시간으로, 제2 공개적 보기 특권 설정을 포함하는 보기 특권 설정들의 제4 세트와 연관된 제4 메시지(예컨대, 공개적 메시지)를 수신할 수 있다. 그룹 기반 통신 플랫폼(105)은, 메시지 서버(107)에 의해 실시간으로, 수신된 제4 메시지, 및 제2 공개적 보기 특권 설정을 포함하는 보기 특권 설정들의 제4 세트에 기초하여 제4 일반 메시지(예컨대, 공개적 일반 메시지)를 생성할 수 있다. 그룹 기반 통신 플랫폼(105)은, 메시지 서버(107)에 의해 실시간으로, 제4 일반 메시지를 공유되는 통신 채널 식별과 연관된 다른 클라이언트 디바이스로 송신할 수 있다(예컨대, 제4 일반 메시지는 클라이언트 디바이스(101A), 클라이언트 디바이스(101B), 및 클라이언트 디바이스(101C)로 송신됨). 일부 경우들에 있어서, 제4 일반 메시지는 공유되는 통신 채널 식별과 연관된 임의의 클라이언트 디바이스에게 보일 수 있다(예컨대, 제4 일반 메시지는 클라이언트 디바이스(101A), 클라이언트 디바이스(101B), 클라이언트 디바이스(101C), 및 클라이언트 디바이스(101D)에게 보일 수 있음). 예를 들어, 제4 일반 메시지는 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 제1 그룹 식별과 연관된 임의의 클라이언트 디바이스에게 보일 수 있고(예컨대, 제4 일반 메시지는 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 클라이언트 디바이스(101A) 및 클라이언트 디바이스(101B)에게 보일 수 있음), 제4 일반 메시지는 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에게 보일 수 있다(예컨대, 제4 일반 메시지는 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 클라이언트 디바이스(101C) 또는 클라이언트 디바이스(101D)에게 보일 수 없음).
그룹 기반 통신 플랫폼(105)은, 네트워크 애플리케이션 서버(109)에 의해, 수신된 제4 메시지, 및 제2 공개적 보기 특권 설정을 포함하는 보기 특권 설정들의 제4 세트에 기초하여 제4 저장 메시지(예컨대, 공개적 저장 메시지)를 생성할 수 있다. 그룹 기반 통신 플랫폼(105)은, 제2 데이터베이스 샤드(113B)에서 네트워크 애플리케이션 서버(109)에 의해, 보기 특권 설정들의 제4 세트와 연관하여 제4 저장 메시지를 저장할 수 있다. 그룹 기반 통신 플랫폼(105)은, 네트워크 애플리케이션 서버(109)에 의해, 제1 그룹 식별 및 제2 그룹 식별과 연관된 공유되는 인덱스로 제4 저장 메시지를 인덱싱할 수 있으며, 여기서 공유되는 인덱스는 제1 그룹 식별 또는 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에 액세스가능하다(예컨대, 공유되는 인덱스는 클라이언트 디바이스(101A), 클라이언트 디바이스(101B), 클라이언트 디바이스(101C), 및 클라이언트 디바이스(101D)에 액세스가능함). 일부 경우들에 있어서, 제4 저장 메시지는 제1 그룹 식별 또는 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에 의해 탐색가능하다(예컨대, 제4 저장 메시지는 클라이언트 디바이스(101A), 클라이언트 디바이스(101B), 클라이언트 디바이스(101C), 및 클라이언트 디바이스(101D)에 의해 탐색가능함). 예를 들어, 제4 저장 메시지는 제1 그룹 식별과 연관된 임의의 클라이언트 디바이스에 의해 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능하고(예컨대, 제4 저장 메시지는 클라이언트 디바이스(101A) 및 클라이언트 디바이스(101B)에 의해 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능함), 제4 저장 메시지는 인터페이스에서 제2 그룹 식별과 연관된 임의의 클라이언트 디바이스에 의해 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널에서 탐색가능하지 않다(예컨대, 제4 저장 메시지는 클라이언트 디바이스(101C) 또는 클라이언트 디바이스(101D)에 의해 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스에서 탐색가능하지 않음).
위에 언급된 전자적 정보 교환은 기존 시스템들을 넘는 다양한 기술적 이점들을 제공한다. 예를 들어, 그것은 통신 네트워크(103)로 디스패치된 메시지들의 과중한 부담 없이 데이터의 정보 검색 및 발송을 허용한다. 또한, 데이터의 강건성은, 통신 네트워크(103)의 구성에 기초한 발송 속도와 함께, 메시지 서버(107) 또는 네트워크 애플리케이션 서버(109) 중 어느 하나를 활용하라는 옵션을 그룹 기반 통신 플랫폼(105)에 제공한다. 또한, 그것은, 아래에서 추가로 논의되는 바와 같이, 외부 애플리케이션들(그룹 기반 통신 플랫폼(105)을 위해 개발됨)이 웹소켓 또는 RPC API들(이들은 메시지 서버(107) 또는 네트워크 애플리케이션 서버(109)를 추가로 사용할 수 있음))을 사용하여 메시지들을 방출하도록 하는 옵션을 제공한다.
본 개시내용의 실시예들을 구현하기 위한 예시적인 장치
메시지 서버(107)는 도 2에 도시된 장치(200)와 같은 하나 이상의 컴퓨팅 시스템들에 의해 구현될 수 있다. 장치(200)는 프로세서(202), 메모리(204), 입력/출력 회로(206), 통신 회로(208), 및 메시지 증폭기 회로(210)를 포함할 수 있다. 장치(200)는 도 1과 관련하여 전술되고 도 4 내지 도 7과 관련하여 후술되는 동작들을 실행시키도록 구성될 수 있다. 이러한 컴포넌트들(202 내지 210)이 기능 제한사항들과 관련하여 기술되지만, 특정 구현예들이 특정 하드웨어의 사용을 반드시 포함한다는 것이 이해되어야 한다. 또한, 이러한 컴포넌트들(202 내지 210) 중 소정의 컴포넌트들이 유사한 또는 공통 하드웨어를 포함할 수 있다는 것이 이해되어야 한다. 예를 들어, 회로들의 2개의 세트들 둘 모두는 동일한 프로세서, 네트워크 인터페이스, 저장 매체 등의 사용을 레버리징하여 그들의 연관된 기능들을 수행하여, 회로들의 각각의 세트에 대해 복제 하드웨어가 요구되지 않게 할 수 있다.
일부 실시예들에서, 프로세서(202)(및/또는 프로세서를 보조하거나 달리 그와 연관된 코-프로세서 또는 임의의 다른 프로세싱 회로)는 장치의 컴포넌트들 사이에 정보를 전달하기 위한 버스를 통해 메모리(204)와 통신할 수 있다. 메모리(204)는 비일시적이고, 예를 들어, 하나 이상의 휘발성 및/또는 비휘발성 메모리들을 포함할 수 있다. 다시 말하면, 예를 들어, 메모리(204)는 전자적 저장 디바이스(예컨대, 컴퓨터 판독가능 저장 매체)일 수 있다. 메모리(204)는 장치가 본 개시내용의 예시적인 실시예들에 따라 다양한 기능들을 수행할 수 있게 하기 위한 정보, 데이터, 콘텐츠, 애플리케이션들, 명령어들 등을 저장하도록 구성될 수 있다.
프로세서(202)는 다수의 상이한 방식들로 구현될 수 있고, 예를 들어, 독립적으로 수행하도록 구성된 하나 이상의 프로세싱 디바이스들을 포함할 수 있다. 일부 실시예들에서, 프로세서(202)는 명령어들, 파이프라이닝, 및/또는 멀티스레딩의 독립적인 실행을 가능하게 하기 위해 버스를 통해 나란히 구성되는 하나 이상의 프로세서들을 포함할 수 있다. 용어 "프로세싱 회로"는 단일 코어 프로세서, 멀티-코어 프로세서, 장치 내부의 다수의 프로세서들, 및/또는 원격 또는 "클라우드" 프로세서들을 포함하는 것으로 이해될 수 있다.
일부 실시예들에서, 프로세서(202)는 메모리(204)에 저장되거나 달리 프로세서(202)에 액세스가능한 명령어들을 실행시키도록 구성될 수 있다. 일부 실시예들에서, 프로세서(202)는 하드-코딩된 기능들을 실행하도록 구성될 수 있다. 이와 같이, 하드웨어 또는 소프트웨어 방법들에 의해 구성되든, 또는 이들의 조합에 의해 구성되든, 프로세서(202)는, 이에 따라 구성되는 동안 본 개시내용의 실시예에 따라 동작들을 수행할 수 있는 엔티티(예컨대, 회로에서 물리적으로 구현됨)를 표현할 수 있다. 대안으로, 다른 예로서, 프로세서(202)가 소프트웨어 명령어들의 실행으로서 구현될 때, 명령어들은, 특히, 명령어들이 실행될 때 본 명세서에 기술된 알고리즘들 및/또는 동작들을 수행하도록 프로세서(202)를 구성할 수 있다.
일부 실시예들에서, 장치(200)는, 이어서, 프로세서(202)와 통신하여, 사용자에게 출력을 제공하고, 일부 실시예들에서, 사용자 입력의 표시를 수신할 수 있는 입력/출력 회로(206)를 포함할 수 있다. 입력/출력 회로(206)는 사용자 인터페이스를 포함할 수 있고, 디스플레이를 포함할 수 있고, 공유되는 통신 채널의 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스(예컨대, 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스, 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스), 웹 사용자 인터페이스, 모바일 애플리케이션, 클라이언트 디바이스, 키오스크 등을 포함할 수 있다. 일부 실시예들에서, 입력/출력 회로(206)는, 또한, 키보드, 마우스, 조이스틱, 터치스크린, 터치 영역들, 소프트 키들, 마이크로폰, 스피커, 또는 다른 입력/출력 메커니즘들을 포함할 수 있다. 프로세서 및/또는 프로세서를 포함하는 사용자 인터페이스 회로는 프로세서에 액세스가능한 메모리(예컨대, 메모리(204) 등) 상에 저장된 컴퓨터 프로그램 명령어들(예컨대, 소프트웨어 및/또는 펌웨어)을 통해 하나 이상의 사용자 인터페이스 요소들의 하나 이상의 기능들을 제어하도록 구성될 수 있다.
통신 회로(208)는 네트워크 및/또는 장치(200)와 통신하는 임의의 다른 디바이스, 회로, 또는 모듈로부터/로 데이터를 수신하고/하거나 송신하도록 구성되는 하드웨어 또는 하드웨어와 소프트웨어의 조합 중 어느 하나로 구현되는 디바이스 또는 회로와 같은 임의의 수단일 수 있다. 이와 관련하여, 통신 회로(208)는, 예를 들어 유선 또는 무선 통신 네트워크와의 통신을 가능하게 하기 위한 네트워크 인터페이스를 포함할 수 있다. 예를 들어, 통신 회로(208)는 네트워크를 통한 통신을 가능하게 하는 데 적합한 하나 이상의 네트워크 인터페이스 카드들, 안테나들, 버스들, 스위치들, 라우터들, 모뎀들, 및 지원 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 추가로 또는 대안으로, 통신 회로(208)는 안테나/안테나들과 상호작용하여 안테나/안테나들을 통한 신호들의 송신을 야기하거나 안테나/안테나들을 통해 수신되는 신호들의 수신을 처리하기 위한 회로를 포함할 수 있다.
메시지 증폭기 회로(210)는 데이터베이스 샤드(들)에 기초하여 하나 이상의 클라이언트 디바이스들로부터 수신된 전자적 메시지들 및 연관된 메타데이터를 복사하고 다른 클라이언트 디바이스들로 증폭하도록(예컨대, 하나 이상의 회로들 또는 디바이스들로 송신하도록; 브로드캐스트하도록; 멀티캐스트하도록; 유니캐스트하도록) 구성된 하드웨어를 포함한다. 메시지 증폭기 회로(210)는 프로세서(202)와 같은 프로세싱 회로를 활용하여 이러한 액션들을 수행할 수 있다. 그러나, 일부 실시예들에서, 메시지 증폭기 회로(210)는 별개의 프로세서, 특별히 구성된 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA), 또는 본 명세서에서 기술되는 기능들을 수행하기 위한 주문형 반도체(Application Specific Integrated Circuit, ASIC)를 포함할 수 있다. 메시지 증폭기 회로(210)는 이러한 계획된 기능들을 구현하기 위한 하드웨어 또는 소프트웨어 중 어느 하나에 의해 구성된 장치의 하드웨어 컴포넌트들을 사용하여 구현될 수 있다.
또한, 본 명세서에서 논의된 정보의 전부 또는 일부가 장치(200)의 하나 이상의 컴포넌트들에 의해 수신되고/되거나 생성되고/되거나 유지되는 데이터에 기초할 수 있다는 것에 유의한다. 일부 실시예들에서, (원격 클라우드 컴퓨팅 및/또는 데이터 저장 시스템과 같은) 하나 이상의 외부 시스템들은 또한 본 명세서에서 논의되는 기능의 적어도 일부를 제공하도록 레버리징될 수 있다.
네트워크 애플리케이션 서버(109)는 도 3에 도시된 장치(300)와 같은 하나 이상의 컴퓨팅 시스템들에 의해 구현될 수 있다. 장치(300)는 프로세서(301), 메모리(303), 입력/출력 회로(305), 통신 회로(307), 데이터베이스 회로(309), 인터페이스 생성 회로(311), 및 참조 테이블 생성 회로(313)를 포함할 수 있다. 장치(300)는 도 1과 관련하여 전술되고 도 4 내지 도 7과 관련하여 후술되는 동작들을 실행시키도록 구성될 수 있다. 이러한 컴포넌트들(301 내지 313)이 기능 제한사항들과 관련하여 기술되지만, 특정 구현예들이 특정 하드웨어의 사용을 반드시 포함한다는 것이 이해되어야 한다. 또한, 이러한 컴포넌트들(301 내지 313) 중 소정의 컴포넌트들이 유사한 또는 공통 하드웨어를 포함할 수 있다는 것이 이해되어야 한다. 예를 들어, 회로들의 2개의 세트들 둘 모두는 동일한 프로세서, 네트워크 인터페이스, 저장 매체 등의 사용을 레버리징하여 그들의 연관된 기능들을 수행하여, 회로들의 각각의 세트에 대해 복제 하드웨어가 요구되지 않게 할 수 있다.
일부 실시예들에서, 프로세서(301)(및/또는 프로세서를 보조하거나 달리 그와 연관된 코-프로세서 또는 임의의 다른 프로세싱 회로)는 장치의 컴포넌트들 사이에 정보를 전달하기 위한 버스를 통해 메모리(303)와 통신할 수 있다. 메모리(303)는 비일시적이고, 예를 들어, 하나 이상의 휘발성 및/또는 비휘발성 메모리들을 포함할 수 있다. 다시 말하면, 예를 들어, 메모리(303)는 전자적 저장 디바이스(예컨대, 컴퓨터 판독가능 저장 매체)일 수 있다. 메모리(303)는 장치(300)가 본 개시내용의 예시적인 실시예들에 따라 다양한 기능들을 수행할 수 있게 하기 위한 정보, 데이터, 콘텐츠, 애플리케이션들, 명령어들 등을 저장하도록 구성될 수 있다.
프로세서(301)는 다수의 상이한 방식들로 구현될 수 있고, 예를 들어, 독립적으로 수행하도록 구성된 하나 이상의 프로세싱 디바이스들을 포함할 수 있다. 일부 실시예들에서, 프로세서(301)는 명령어들, 파이프라이닝, 및/또는 멀티스레딩의 독립적인 실행을 가능하게 하기 위해 버스를 통해 나란히 구성되는 하나 이상의 프로세서들을 포함할 수 있다.
일부 실시예들에서, 프로세서(301)는 메모리(303)에 저장되거나 달리 프로세서(301)에 액세스가능한 명령어들을 실행시키도록 구성될 수 있다. 일부 실시예들에서, 프로세서(301)는 하드-코딩된 기능들을 실행하도록 구성될 수 있다. 이와 같이, 하드웨어 또는 소프트웨어 방법들에 의해 구성되든, 또는 이들의 조합에 의해 구성되든, 프로세서(301)는, 이에 따라 구성되는 동안 본 개시내용의 실시예에 따라 동작들을 수행할 수 있는 엔티티(예컨대, 회로에서 물리적으로 구현됨)를 표현할 수 있다. 대안으로, 다른 예로서, 프로세서(301)가 소프트웨어 명령어들의 실행으로서 구현될 때, 명령어들은, 특히, 명령어들이 실행될 때 본 명세서에 기술된 알고리즘들 및/또는 동작들을 수행하도록 프로세서(301)를 구성할 수 있다.
일부 실시예들에서, 장치(300)는, 이어서, 프로세서(301)와 통신하여, 사용자에게 출력을 제공하고, 일부 실시예들에서, 사용자 입력의 표시를 수신할 수 있는 입력/출력 회로(305)를 포함할 수 있다. 입력/출력 회로(305)는 사용자 인터페이스를 포함할 수 있고, 디스플레이를 포함할 수 있고, 공유되는 통신 채널의 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스(예컨대, 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스, 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스), 웹 사용자 인터페이스, 모바일 애플리케이션, 클라이언트 디바이스, 키오스크 등을 포함할 수 있다. 일부 실시예들에서, 입력/출력 회로(305)는, 또한, 키보드, 마우스, 조이스틱, 터치스크린, 터치 영역들, 소프트 키들, 마이크로폰, 스피커, 또는 다른 입력/출력 메커니즘들을 포함할 수 있다.
통신 회로(307)는 네트워크 및/또는 장치(300)와 통신하는 임의의 다른 디바이스, 회로, 또는 모듈로부터/로 데이터를 수신하고/하거나 송신하도록 구성되는 하드웨어 또는 하드웨어와 소프트웨어의 조합 중 어느 하나로 구현되는 디바이스 또는 회로와 같은 임의의 수단일 수 있다. 이와 관련하여, 통신 회로(307)는, 예를 들어 유선 또는 무선 통신 네트워크와의 통신을 가능하게 하기 위한 네트워크 인터페이스를 포함할 수 있다. 예를 들어, 통신 회로(307)는 네트워크를 통한 통신을 가능하게 하는 데 적합한 하나 이상의 네트워크 인터페이스 카드들, 안테나들, 버스들, 스위치들, 라우터들, 모뎀들, 및 지원 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 추가로 또는 대안으로, 통신 회로(307)는 안테나/안테나들과 상호작용하여 안테나/안테나들을 통한 신호들의 송신을 야기하거나 안테나/안테나들을 통해 수신되는 신호들의 수신을 처리하기 위한 회로를 포함할 수 있다.
일부 실시예들에서, 통신 회로(307), 통신 회로(208), 또는 둘 모두는, 개시자 그룹 식별과 연관된 제1 클라이언트 디바이스로부터, 개시자 그룹 식별 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 생성 쿼리를 수신하도록 구성될 수 있다. 통신 회로(307), 통신 회로(208), 또는 둘 모두는, 타깃 그룹 식별과 연관된 제2 클라이언트 디바이스로, 공유되는 통신 채널 수락 요청을 송신하도록 추가로 구성될 수 있다. 통신 회로(307), 통신 회로(208), 또는 둘 모두는, 공유되는 통신 채널 수락 통지를 수신하도록 추가로 구성될 수 있다. 통신 회로(307), 통신 회로(208), 또는 둘 모두는, 제1 클라이언트 디바이스로, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다. 통신 회로(307), 통신 회로(208), 또는 둘 모두는, 제2 클라이언트 디바이스로, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다. 통신 회로(307), 통신 회로(208), 또는 둘 모두는, 개시자 그룹 식별과 연관된 제3 클라이언트 디바이스로부터 공유되는 통신 채널을 통해, 보기 특권 설정들의 세트와 연관된 메시지를 수신하도록 추가로 구성될 수 있다. 통신 회로(307), 통신 회로(208), 또는 둘 모두는, 타깃 그룹 식별과 연관된 제4 클라이언트 디바이스로부터 공유되는 통신 채널을 통해, 보기 특권 설정들의 제2 세트와 연관된 제2 메시지를 수신하도록 추가로 구성될 수 있다. 통신 회로(307), 통신 회로(208), 또는 둘 모두는, 개시자 그룹 식별과 연관된 제3 클라이언트 디바이스로부터 공유되는 통신 채널을 통해, 보기 특권 설정들의 세트와 연관된 메시지를 수신하도록 추가로 구성될 수 있다.
데이터베이스 회로(309)는 데이터베이스 샤드들(113A 내지 113N) 및 메인 데이터베이스(111)를 포함하는, 하나 이상의 네트워크 데이터베이스들을 관리하도록 구성된 하드웨어를 포함한다. 데이터베이스 회로(309)는 프로세서(301)와 같은 프로세싱 회로를 활용하여 이러한 액션들을 수행할 수 있다. 데이터베이스 회로(309)는 데이터를 인터페이스 생성 회로(311) 및 참조 테이블 생성 회로(313)로 송신할 수 있다. 일부 실시예들에서, 전송된 데이터는 하나 이상의 데이터베이스 샤드들(113A 내지 113N)과 연관될 수 있다.
일부 실시예들에서, 데이터베이스 회로(309)는 별개의 프로세서, 특별히 구성된 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA), 또는 주문형 반도체(Application Specific Integrated Circuit, ASIC)를 포함할 수 있다. 일부 구현예들에서, 후술되는 참조 테이블 생성 회로(313) 및 인터페이스 생성 회로(311)는 데이터베이스 회로(309)에 속하는 서브회로들일 수 있다. 데이터베이스 회로(309)는 본 명세서에서 기술되는 기능들을 구현하기 위해 하드웨어 또는 소프트웨어 중 어느 하나에 의해 구성된 장치의 하드웨어 컴포넌트들을 사용하여 구현될 수 있다.
일부 실시예들에서, 데이터베이스 회로(309)는, 통신 회로(307)로부터, 공유되는 통신 채널 생성 쿼리를 수신하도록 구성될 수 있다. 데이터베이스 회로(309)는 공유되는 통신 채널 샤드를 생성하도록 추가로 구성될 수 있다. 복수의 데이터베이스 샤드들은 공유되는 통신 채널 샤드를 포함할 수 있다. 공유되는 통신 채널 샤드는 공유되는 통신 채널 식별, 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트, 및 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트를 할당받을 수 있다. 데이터베이스 회로(309)는 공유되는 통신 채널 수락 요청을 생성하도록 추가로 구성될 수 있다. 공유되는 통신 채널 수락 요청은 공유되는 통신 채널 식별과 연관될 수 있다. 데이터베이스 회로(309)는, 타깃 그룹 식별과 연관된 제2 클라이언트 디바이스로의 송신을 위한 통신 회로(307)로, 공유되는 통신 채널 수락 요청을 송신하도록 추가로 구성될 수 있다. 데이터베이스 회로(309)는, 통신 회로(307)로부터, 공유되는 통신 채널 수락 통지를 수신하도록 추가로 구성될 수 있다. 공유되는 통신 채널 수락 통지는 공유되는 통신 채널 식별을 타깃 그룹 식별과 연관시키기기 위한 전자적 승인을 포함할 수 있다.
일부 실시예들에서, 데이터베이스 회로(309)는 통신 회로(307)로부터 보기 특권 설정들의 세트와 연관된 메시지를 수신하도록 추가로 구성될 수 있다. 데이터베이스 회로(309)는 수신된 메시지 및 보기 특권 설정들의 세트에 기초하여 저장 메시지를 생성하도록 추가로 구성될 수 있다. 데이터베이스 회로(309)는 제1 데이터베이스 샤드에 보기 특권 설정들의 세트와 연관하여 저장 메시지를 저장하도록 추가로 구성될 수 있다. 보기 특권 설정들의 세트가 개인적 보기 특권 설정을 포함하는 실시예들에서, 데이터베이스 회로(309)는 개시자 그룹 식별과 연관된 별개의 인덱스로 저장 메시지를 인덱싱하도록 추가로 구성될 수 있으며, 여기서 별개의 인덱스는 개시자 그룹 식별과 연관된 어떠한 클라이언트 디바이에도 액세스가능하지 않고, 별개의 인덱스는 타깃 그룹 식별과 연관된 어떠한 클라이언트 디바이스에도 액세스가능하지 않다. 보기 특권 설정들의 세트가 공개적 보기 특권 설정을 포함하는 실시예들에서, 데이터베이스 회로(309)는 개시자 그룹 식별 및 타깃 그룹 식별과 연관된 공유되는 인덱스로 저장 메시지를 인덱싱하도록 추가로 구성될 수 있으며, 여기서 공유되는 인덱스는 제1 클라이언트 디바이스 및 제2 클라이언트 디바이스에 액세스가능하다.
참조 테이블 생성 회로(313)는 메인 데이터베이스(111)에 샤드 참조 테이블 스토어를 생성 및 업데이트하도록 구성된 하드웨어를 포함한다. 참조 테이블 생성 회로(313)는 프로세서(301)와 같은 프로세싱 회로를 활용하여 이러한 액션들을 수행할 수 있다. 그러나, 일부 실시예들에서, 참조 테이블 생성 회로(313)는 별개의 프로세서, 특별히 구성된 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA), 또는 본 명세서에서 기술되는 기능들을 수행하기 위한 주문형 반도체(Application Specific Integrated Circuit, ASIC)를 포함할 수 있다. 참조 테이블 생성 회로(313)는 이러한 계획된 기능들을 구현하기 위한 하드웨어 또는 소프트웨어 중 어느 하나에 의해 구성된 장치의 하드웨어 컴포넌트들을 사용하여 구현될 수 있다.
일부 실시예들에서, 참조 테이블 생성 회로(313)는 개시자 그룹 식별, 타깃 그룹 식별, 공유되는 통신 채널 식별, 공유되는 통신 채널 속성들의 제1 세트, 및 공유되는 통신 채널 속성들의 제2 세트에 기초하여 샤드 참조 테이블을 업데이트하도록 구성될 수 있다. 참조 테이블 생성 회로(313)는 개시자 그룹 식별에 기초하여 샤드 참조 테이블에서 제1 참조 접속을 식별하도록 추가로 구성될 수 있다. 참조 테이블 생성 회로(313)는 타깃 그룹 식별에 기초하여 샤드 참조 테이블에서 제2 참조 접속을 식별하도록 추가로 구성될 수 있다. 참조 테이블 생성 회로(313)는 공유되는 통신 채널 식별, 공유되는 통신 채널 샤드, 제1 참조 접속, 및 제2 참조 접속 사이의 제3 참조 접속을 생성하도록 추가로 구성될 수 있다. 참조 테이블 생성 회로(313)는 제3 참조 접속을 포함하기 위해 샤드 참조 테이블을 업데이트하도록 추가로 구성될 수 있다.
인터페이스 생성 회로(311)는 클라이언트 디바이스들(101A 내지 101N)에 대한 통신 채널 인터페이스들을 생성하도록 구성된 하드웨어를 포함한다. 인터페이스 생성 회로(311)는 프로세서(301)와 같은 프로세싱 회로를 활용하여 이러한 액션들을 수행할 수 있다. 그러나, 일부 실시예들에서, 인터페이스 생성 회로(311)는 별개의 프로세서, 특별히 구성된 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA), 또는 본 명세서에서 기술되는 기능들을 수행하기 위한 주문형 반도체(Application Specific Integrated Circuit, ASIC)를 포함할 수 있다. 인터페이스 생성 회로(311)는 이러한 계획된 기능들을 구현하기 위한 하드웨어 또는 소프트웨어 중 어느 하나에 의해 구성된 장치의 하드웨어 컴포넌트들을 사용하여 구현될 수 있다.
일부 실시예들에서, 인터페이스 생성 회로(311)는 개시자 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제1 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하도록 구성될 수 있다. 인터페이스 생성 회로(311)는 타깃 그룹 식별과 연관된 공유되는 통신 채널 속성들의 제2 세트 및 공유되는 통신 채널 샤드에 기초하여 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 생성하도록 추가로 구성될 수 있다. 인터페이스 생성 회로(311)는, 제1 클라이언트 디바이스로의 송신을 위한 통신 회로(307)로, 공유되는 통신 채널의 제1 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다. 인터페이스 생성 회로(311)는, 제2 클라이언트 디바이스로의 송신을 위한 통신 회로(307)로, 공유되는 통신 채널의 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스를 송신하도록 추가로 구성될 수 있다. 일부 실시예들에서, 인터페이스 생성 회로(311)에 의해 생성 및 송신된 제1 및 제2 외부에서 공유되는 그룹 기반 공유되는 통신 채널 인터페이스들은 본 명세서에 기술되는 바와 같은 "일방적 보기"를 제공할 수 있다.
일부 실시예들에서, 장치(300)의 통신 회로(307)는 보기 특권 설정들의 제1 세트와 연관된 제1 메시지를 장치(200)의 통신 회로(208)로 송신하도록 구성될 수 있다. 메시지 증폭기 회로(210)는 통신 회로(208)로부터 보기 특권 설정들의 제1 세트와 연관된 제1 메시지를 수신하도록 구성될 수 있다. 메시지 증폭기 회로(210)는 수신된 제1 메시지 및 보기 특권 설정들의 제1 세트에 기초하여 제1 일반 메시지를 생성하도록 추가로 구성될 수 있다. 메시지 증폭기 회로(210)는, 보기 특권 설정들의 제1 세트에 기초하여, 공유되는 통신 채널을 통해 제1 일반 메시지를 제1 복수의 클라이언트 디바이스들로 송신하도록 추가로 구성될 수 있다. 보기 특권 설정들의 제1 세트가 제1 개인적 보기 특권 설정을 포함하는 일부 실시예들에서, 메시지 증폭기 회로(210)는 공유되는 통신 채널을 통해 제1 일반 메시지를 개시자 그룹 식별과 연관된 제1 복수의 클라이언트 디바이스들로 송신하도록 추가로 구성될 수 있으며, 여기서 제1 일반 메시지는 메시지 증폭기 회로(210)에 의해 타깃 그룹 식별과 연관된 어떠한 클라이언트 디바이스에도 송신되지 않는다. 보기 특권 설정들의 제1 세트가 제1 공개적 보기 특권 설정을 포함하는 일부 실시예들에서, 메시지 증폭기 회로(210)는 공유되는 통신 채널을 통해 제1 일반 메시지를 개시자 그룹 식별과 연관된 하나 이상의 클라이언트 디바이스들 및 타깃 그룹 식별과 연관된 하나 이상의 클라이언트 디바이스들로 송신하도록 추가로 구성될 수 있다.
일부 실시예들에서, 장치(300)의 통신 회로(307)는 보기 특권 설정들의 제2 세트와 연관된 제2 메시지를 장치(200)의 통신 회로(208)로 송신하도록 구성될 수 있다. 메시지 증폭기 회로(210)는 통신 회로로부터 보기 특권 설정들의 제2 세트와 연관된 제2 메시지를 수신하도록 추가로 구성될 수 있다. 메시지 증폭기 회로(210)는 수신된 제2 메시지 및 보기 특권 설정들의 제2 세트에 기초하여 제2 일반 메시지를 생성하도록 추가로 구성될 수 있다. 메시지 증폭기 회로(210)는, 보기 특권 설정들의 제2 세트에 기초하여, 공유되는 통신 채널을 통해 제2 일반 메시지를 제2 복수의 클라이언트 디바이스들로 송신하도록 추가로 구성될 수 있다. 보기 특권 설정들의 제2 세트가 제2 개인적 보기 특권 설정을 포함하는 일부 실시예들에서, 메시지 증폭기 회로(210)는 공유되는 통신 채널을 통해 제2 일반 메시지를 타깃 그룹 식별과 연관된 제2 복수의 클라이언트 디바이스들로 송신하도록 추가로 구성될 수 있으며, 여기서 제2 일반 메시지는 메시지 증폭기 회로(210)에 의해 개시자 그룹 식별과 연관된 어떠한 클라이언트 디바이스에도 송신되지 않는다. 보기 특권 설정들의 제2 세트가 제2 공개적 보기 특권 설정을 포함하는 일부 실시예들에서, 메시지 증폭기 회로(210)는 공유되는 통신 채널을 통해 제2 일반 메시지를 개시자 그룹 식별과 연관된 하나 이상의 클라이언트 디바이스들 및 타깃 그룹 식별과 연관된 하나 이상의 클라이언트 디바이스들로 송신하도록 추가로 구성될 수 있다.
또한, 본 명세서에서 논의된 정보의 전부 또는 일부가 장치(300)의 하나 이상의 컴포넌트들에 의해 수신되고/되거나 생성되고/되거나 유지되는 데이터에 기초할 수 있다는 것에 유의한다. 일부 실시예들에서, (원격 클라우드 컴퓨팅 및/또는 데이터 저장 시스템과 같은) 하나 이상의 외부 시스템들은 또한 본 명세서에서 논의되는 기능의 적어도 일부를 제공하도록 레버리징될 수 있다.
용어 "회로"는 하드웨어, 및 일부 실시예들에서 하드웨어를 구성하기 위한 소프트웨어를 포함하는 것으로 널리 이해되어야 한다. 따라서, 장치의 컴포넌트들에 대해, 본 명세서에서 사용되는 바와 같은 용어 "회로"는 본 명세서에서 기술되는 바와 같은 특정 회로와 연관된 기능들을 수행하도록 구성된 특정 하드웨어를 포함하는 것으로 이해되어야 한다. 예를 들어, 일부 실시예들에서, "회로"는 프로세싱 회로, 저장 미디어, 네트워크 인터페이스, 입력/출력 디바이스 등을 포함할 수 있다. 일부 실시예들에서, 장치(200)의 다른 요소들은 특정 회로의 기능을 제공하거나 보완할 수 있다. 예를 들어, 프로세서(202)는 프로세싱 기능을 제공할 수 있고, 메모리(204)는 저장 기능을 제공할 수 있고, 통신 회로(208)는 네트워크 인터페이스 기능을 제공할 수 있고, 등등이다. 유사하게, 장치(300)의 다른 요소들은 특정 회로의 기능을 제공하거나 보완할 수 있다. 예를 들어, 프로세서(301)는 프로세싱 기능을 제공할 수 있고, 메모리(303)는 저장 기능을 제공할 수 있고, 통신 회로(307)는 네트워크 인터페이스 기능을 제공할 수 있고, 등등이다.
인식되는 바와 같이, 임의의 그러한 컴퓨터 프로그램 명령어들 및/또는 다른 유형의 코드는 컴퓨터, 프로세서, 또는 다른 프로그래밍가능 장치의 회로 상으로 로딩되어 머신을 생성함으로써, 머신 상에서 코드를 실행하는 컴퓨터, 프로세서 또는 다른 프로그래밍가능 회로가 본 명세서에 기술된 것들을 포함하는 다양한 기능들을 구현하기 위한 수단을 생성하게 할 수 있다.
전술된 바와 같이, 그리고 이러한 개시내용에 기초하여 인식되는 바와 같이, 본 개시내용의 실시예들은 방법들, 모바일 디바이스들, 백엔드 네트워크 디바이스들 등으로서 구성될 수 있다. 따라서, 실시예들은, 하드웨어 또는 소프트웨어와 하드웨어의 임의의 조합을 전체적으로 포함할 수 있다. 또한, 실시예들은 저장 매체에서 구현되는 컴퓨터 판독가능 프로그램 명령어들(예컨대, 컴퓨터 소프트웨어)을 갖는 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체 상의 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 비일시적 하드 디스크들, CD-ROM들, 플래시 메모리, 광학 저장 디바이스들, 또는 자기 저장 디바이스들을 포함한 임의의 적합한 컴퓨터 판독가능 저장 매체가 활용될 수 있다.
외부에서 공유되는 통신 채널들을 생성하기 위한 예시적인 데이터 흐름들
도 4, 도 5, 도 6, 및 도 7은 공유되는 통신 채널 생성 쿼리의 개시자 및 타깃이 그룹의 관리자인지의 여부에 기초하여 외부에서 공유되는 통신 채널을 생성함에 있어서 하나 이상의 클라이언트 디바이스들(101A 내지 101N)과 그룹 기반 통신 플랫폼(105) 사이의 다양한 상호작용들을 예시한다.
용어 “관리자”는, 통신 채널을 관리하고 다양한 유지보수 태스크들에 관하여 다른 가입자들 대신에 결정을 행하기 위한 권한을 갖는 통신 채널의 가입자를 지칭한다. 예를 들어, 그룹 관리자는 "공개적" 또는 "개인적" 중 어느 하나로서 통신 채널을 설정하기 위한 권한을 가질 수 있다. 다른 예로서, 외부에서 공유되는 통신 채널을 생성하라는 요청을 수신할 때, 그룹 관리자만이 그룹 대신에 요청을 수락하기 위한 권한을 갖는다. 일부 실시예들에서, 시스템은 사용자와 연관된 데이터 상의 플래그를 사용하여 사용자가 그룹의 구성원인지의 여부를 나타낸다.
이제 도 4를 참조하면, 프로세스(400)는 그룹 A의 비관리자가 그룹 B의 비관리자를 타깃으로 하는 공유되는 통신 채널을 생성하라는 요청을 제출할 때 외부에서 공유되는 통신 채널을 생성하는 예시적인 프로세스를 예시한다.
프로세스(400)는 단계(402)에서 시작되며, 여기서 그룹 A의 비관리자는 외부에서 공유되는 통신 채널을 생성하라는 요청을 제출한다. 시스템은 그룹 A의 비관리자에 대한 초대를 자동으로 생성하고, 단계(404)에서 그룹 B의 비관리자와 초대를 공유한다. 여기서, 개인은 외부에서 공유되는 통신 채널을 생성하라는 요청의 전자적 표시이다. 예를 들어, 초대는 요청의 세부사항들을 포함하는 웹페이지에 링크하는 URL(Uniform Resource Locator)의 형태를 취할 수 있다. 일부 실시예들에서, URL 링크는 URL 링크가 송신된 이후에 미리결정된 시간 양이 경과한 후에 만료할 수 있다. 예를 들어, 사용자는 송신 24시간 후에 만료하도록 URL을 설정할 수 있다.
그룹 B의 비관리자는 단계(406)에서 초대를 수신한다. 단계(408)에서, 그룹 B의 비관리자는 채널을 추가할지의 여부에 대해 초기 결정을 행한다. 그룹 B의 비관리자가 채널을 추가하지 않기로 결정하는 경우, 그룹 A의 비관리자는 단계(410)에서 요청이 거절되었다는 전자적 표시를 수신한다.
그룹 B의 비관리자가 채널을 추가하기로 결정하는 경우, 시스템은 단계(412) 및 단계(414)에서 외부에서 공유되는 통신 채널을 생성하라는 요청을 그룹 A의 관리자 및 그룹 B의 관리자에 각각 자동으로 포워딩한다. 그룹 A의 관리자가 단계(416)에서 요청을 승인하지 않는 경우, 그룹 A 및 그룹 B의 비관리자들은 단계(420)에서 요청이 거절되었다는 전자적 표시들을 수신한다. 유사하게, 그룹 B의 관리자가 단계(418)에서 요청을 승인하지 않는 경우, 그룹 A 및 그룹 B의 비관리자들은 단계(420)에서 요청이 거절되었다는 전자적 표시들을 수신한다.
그룹 A의 관리자 및 그룹 B의 관리자 둘 모두가 요청을 승인할 때, 시스템은 단계(422)에서 외부에서 공유되는 통신 채널의 생성으로 진행한다.
이제 도 5를 참조하면, 프로세스(500)는 그룹 A의 비관리자가 그룹 B의 관리자를 타깃으로 하는 공유되는 통신 채널을 생성하라는 요청을 제출할 때 외부에서 공유되는 통신 채널을 생성하는 예시적인 프로세스를 예시한다.
프로세스(500)는 단계(501)에서 시작되며, 여기서 그룹 A의 비관리자는 외부에서 공유되는 통신 채널을 생성하라는 요청을 제출한다. 시스템은 그룹 A의 비관리자에 대한 초대를 자동으로 생성하고, 단계(503)에서 그룹 B의 관리자와 초대를 공유한다.
그룹 B의 관리자와 초대를 공유할 시, 시스템은 단계(505)에서 승인을 위한 요청을 자동으로 생성한다. 이어서, 그룹 B의 관리자는 단계507)에서 외부에서 공유되는 통신 채널을 생성하라는 요청을 승인할지의 여부를 결정한다. 그룹 B의 관리자가 요청을 승인하지 않는 경우, 그룹 A의 비관리자는 단계(509)에서 요청이 거절되었다는 전자적 표시를 수신한다.
그룹 B의 관리자가 요청을 승인하는 경우, 시스템은 단계(511)에서 요청을 그룹 A의 관리자에게 자동으로 포워딩한다. 그룹 A의 관리자가 단계(513)에서 요청을 승인하지 않는 경우, 그룹 B의 관리자 및 비관리자 둘 모두는 단계(515)에서 요청이 거절되었다는 전자적 표시들을 수신한다.
그룹 A의 관리자가 단계(513)에서 요청을 승인하는 경우, 시스템은 단계(517)에서 외부에서 공유되는 통신 채널의 생성으로 진행한다.
이제 도 6을 참조하면, 프로세스(600)는 그룹 A의 관리자가 그룹 B의 비관리자를 타깃으로 하는 공유되는 통신 채널을 생성하라는 요청을 제출할 때 외부에서 공유되는 통신 채널을 생성하는 예시적인 프로세스를 예시한다.
프로세스(600)는 단계(602)에서 시작되며, 여기서 그룹 A의 관리자는 외부에서 공유되는 통신 채널을 생성하라는 요청을 제출한다. 시스템은 그룹 A의 관리자에 대한 초대를 자동으로 생성하고, 단계(604)에서 그룹 B의 비관리자와 초대를 공유한다.
그룹 B의 비관리자는 단계(606)에서 초대를 수신한다. 단계(608)에서, 그룹 B의 비관리자는 채널을 추가할지의 여부에 대해 초기 결정을 행한다. 그룹 B의 비관리자가 채널을 추가하지 않기로 결정하는 경우, 그룹 A의 관리자는 단계(610)에서 요청이 거절되었다는 전자적 표시를 수신한다.
그룹 B의 비관리자가 채널을 추가하기로 결정하는 경우, 시스템은 단계(612) 및 단계(614)에서 외부에서 공유되는 통신 채널을 생성하라는 요청을 그룹 A의 관리자 및 그룹 B의 관리자에 각각 자동으로 포워딩한다. 그룹 A의 관리자가 단계(616)에서 요청을 승인하지 않는 경우, 그룹 B의 비관리자들은 단계(620)에서 요청이 거절되었다는 전자적 표시를 수신한다. 유사하게, 그룹 B의 관리자가 단계(618)에서 요청을 승인하지 않는 경우, 그룹 B의 비관리자는 단계(620)에서 요청이 거절되었다는 전자적 표시를 수신한다.
그룹 A의 관리자 및 그룹 B의 관리자 둘 모두가 요청을 승인할 때, 시스템은 단계(622)에서 외부에서 공유되는 통신 채널의 생성으로 진행한다.
이제 도 7을 참조하면, 프로세스(700)는 그룹 A의 관리자가 그룹 B의 관리자를 타깃으로 하는 공유되는 통신 채널을 생성하라는 요청을 제출할 때 외부에서 공유되는 통신 채널을 생성하는 예시적인 프로세스를 예시한다.
프로세스(700)는 단계(701)에서 시작되며, 여기서 그룹 A의 관리자는 외부에서 공유되는 통신 채널을 생성하라는 요청을 제출한다. 시스템은 그룹 A의 관리자에 대한 초대를 자동으로 생성하고, 단계(703)에서 그룹 B의 관리자와 초대를 공유한다.
그룹 B의 관리자와 초대를 공유할 시, 시스템은 단계(705)에서 승인을 위한 요청을 자동으로 생성한다. 이어서, 그룹 B의 관리자는 단계707)에서 외부에서 공유되는 통신 채널을 생성하라는 요청을 승인할지의 여부를 결정한다. 그룹 B의 관리자가 요청을 승인하지 않는 경우, 그룹 A의 관리자는 단계(709)에서 요청이 거절되었다는 전자적 표시를 수신한다.
그룹 B의 관리자가 요청을 승인하는 경우, 시스템은 단계(711)에서 요청을 그룹 A의 관리자에게 자동으로 포워딩한다. 그룹 A의 관리자가 단계(713)에서 요청을 승인하지 않는 경우, 그룹 B의 관리자는 단계(715)에서 요청이 거절되었다는 전자적 표시를 수신한다. 그룹 A의 관리자가 요청을 승인하는 경우, 시스템은 단계(717)에서 외부에서 공유되는 통신 채널의 생성으로 진행한다.
외부에서 공유되는 통신 채널들에 대한 예시적인 구현
도 8a, 도 8b, 도 8c, 및 도 8d는 본 개시내용의 일부 실시예들에 따른 예시적인 통신 채널 인터페이스들의 다양한 요소들을 예시한다.
이제 도 8a를 참조하면, 예시적인 통신 채널 인터페이스(800A)가 도시되어 있다. 통신 채널 인터페이스(800A)는 사용자명 박스(802)를 포함하여, 통신 채널 인터페이스(800A)와 연관된 현재 사용자 계정을 나타낸다.
통신 채널 인터페이스(800A)는 또한 채널 목록 패널(pane)을 또한 포함할 수 있는데, 이는 외부에서 공유되는 통신 채널 목록 서브패널(804)을 포함할 수 있다. 외부에서 공유되는 통신 채널 목록 서브패널(804)은 사용자가, 사용자가 가입한 모든 외부에서 공유되는 통신 채널들을 빠르고 쉽게 내비게이팅할 수 있게 한다. 예를 들어, 도 8a에 도시된 바와 같이, 사용자 토니는 외부에서 공유되는 통신 채널들 C1, C2, C3, 및 C4에 가입했는데, 이는 각각의 채널명의 우측에 중첩되는 사각형 심볼로 나타내진다. 각각의 그룹은 외부에서 공유되는 통신 채널 목록 서브패널(804) 내의 외부에서 공유되는 통신 채널의 명칭에 대한 그의 선호도를 설정할 수 있다.
통신 채널 인터페이스(800A)의 채널 목록 패널은 내부에서 공유되는 통신 채널 목록 서브패널(806)을 추가로 포함할 수 있는데, 이는 사용자가 가입한 모든 내부에서 공유되는 통신 채널들을 열거한다. 외부에서 공유되는 통신 채널 목록 서브패널(804)에서 열거된 것들과는 대조적으로, 내부에서 공유되는 통신 채널 목록 서브패널(806) 내의 모든 채널들은 동일한 그룹 또는 조직 내의 다른 사용자들과 공유된다.
외부에서 공유되는 통신 채널 목록 서브패널(804) 또는 내부에서 공유되는 통신 채널 목록 서브패널(806)은 개인적 채널 또는 공개적 채널일 수 있다. 채널의 상태는 채널명의 좌측에 아이콘으로 나타내질 수 있다. 예를 들어, 도 8a의 내부에서 공유되는 통신 채널 목록 서브패널(806)에서 나타낸 바와 같이, 채널들 C5 및 C6 각각은 그의 명칭 옆에 파운드 부호를 갖는데, 이는 그들이 공개적 채널들임을 나타내고; 채널 C7 및 C8 각각은 그의 명칭 옆에 자물쇠 부호를 갖는데, 이는 그들이 개인적 채널들임을 나타낸다.
통신 채널 인터페이스(800A)는 채널 제목 박스(810) 및 직접 메시지 패널(808)을 추가로 포함한다. 직접 메시지 패널(808)은 사용자와 동일한 채널을 공유하는 모든 구성원들을 열거한다. 예를 들어, 도 9a의 직접 메시지 패널(808)에서 나타낸 바와 같이, 사용자는 사용자와 동일한 채널 C1을 공유하는 베스(Beth) 또는 칼(Carl)에게 직접 메시지를 전송할 수 있다. 직접 메시지 패널(808)과 관련하여, 통신 채널 인터페이스(800A)는 그룹의 구성원 디렉토리와 같은 정보를 디스플레이할 수 있는 플렉스패널(816)을 추가로 포함할 수 있다. 구성원 디렉토리는 플렉스패널(816)을 통해 브라우징가능, 탐색가능, 및 필터링가능할 수 있다.
일부 실시예들에서, 구성원 디렉토리의 디스플레이는 보유 설정들에 기초하여 결정될 수 있다. 보유 설정은 어느 애플리케이션들이 채널 상에 설치되는지, 어느 특징부들이 채널에 대해 인에이블되는지, 그리고 채널을 제어하도록 허용되는 사용자들에 관한 다른 선호도들을 추가로 결정할 수 있다.
추가로, 통신 채널 인터페이스(800A)는 텍스트, 이미지들, 및 통신 채널과 연관된 다른 이력 데이터를 디스플레이하는 채널 메시징 패널(812)을 포함한다. 일부 실시예들에서, 이력 데이터는, 예컨대 사용자가 채널에 합류하거나 채널을 떠날 때, 애플리케이션이 설치되거나 채널로부터 제거될 대, 멤버십에 대한 변경들을 포함할 수 있다.
일부 실시예들에서, 채널 메시징 패널(812) 내의 일부 콘텐츠의 보기 특권 설정들(즉, 이러한 콘텐츠들을 볼 수 있는 누군가)은 사용자에게 특정적일 수 있고, 공개적 뷰로부터 은닉될 수 있다. 예를 들어, 사용자가 커맨드를 사용하여 애플리케이션 또는 봇과 개인적으로 상호작용할 때, 그러한 활동들은 공개적 뷰로부터 은닉될 수 있다. 사용자는 또한 대중에 의해 그러한 활동들을 보기가능하게 만들도록 선택할 수 있다.
일부 실시예들에서, 보기 특권 설정들은 팀 및/또는 팀 상에 설치된 애플리케이션들에 특정적일 수 있다. 예를 들어, 조직 X로부터의 토니가 커맨드를 사용하기를 원할 때, 커맨드 메뉴는 조직 X 상에 설치된 애플리케이션들로부터의 커맨드들만을 보여줄 것이다.
사용자는 채널 입력 박스(814)를 사용하여 통신 채널에 기여할 수 있는데, 이는 채널 메시징 패널(812)에 디스플레이될 것이다. 채널 입력 박스(814)는 자동완성 기능을 제공할 수 있는데, 이는 채널 입력 박스(814)에 사용자 유형들로서 사용자명, 채널명, 및 다른 정보를 자동으로 인식한다. 일부 실시예들에서, 자동완성 봇은, 또한, 애플리케이션들 및 다른 봇들의 명칭들을 인식하여 채널과 추가로 상호작용할 수 있다. 채널 입력 박스(814)는, 또한, 사용자가 외부에서 공유되는 통신 채널 내에 있을 때 메시지 입력 경고들을 제공하여, 사용자에게 그 또는 그녀가 기여했던 임의의 정보가 다른 그룹 또는 조직의 구성원들에 의해 보일 수 있음을 경보할 수 있다. 이제 도 8b를 참조하면, 예시적인 사용자 아이콘(800B)이 도시되어 있다. 사용자 아이콘(800B)은 사용자 아바타(801) 및 그룹 아이콘(803)을 포함할 수 있다. 사용자 아바타(801)는 사용자의 아이덴티티를 나타낼 수 있고, 그룹 아이콘(803)은 사용자가 연관되는 그룹을 나타낼 수 있다. 일부 실시예들에서, 사용자 아바타(801)는 4px 라운드형 코너들을 갖는 72 px x 72 px의 크기를 가질 수 있다. 그룹 아이콘(803)은 4 px 라운드형 코너들, 1 px 내부 경계, 및 3 px 외부 경계를 갖는 22 px x 22 px의 크기를 가질 수 있다.
이제 도 8c를 참조하면, 예시적인 통신 채널 인터페이스(800C)가 도시되어 있다. 통신 채널 인터페이스(800C)는 그룹 구성원 프로파일 카드(818)를 포함할 수 있는데, 이는 그룹 구성원의 프로파일 사진(820), 그룹 식별 박스(822), 및 기능 버튼들(824)을 추가로 포함할 수 있다. 그룹 식별 박스(822)는 그룹 구성원이 연관되는 그룹의 명칭과 같은 정보를 포함할 수 있다. 기능 버튼들(824)은 직접 메시지를 그룹 구성원으로 전송하는 것과 같은 다양한 기능들을 사용자가 수행할 수 있게 할 수 있다.
이제 도 8d를 참조하면, 사용자 인터페이스(800D)는 그룹 구성원과의 직접 메시징을 위한 예시적인 인터페이스를 예시한다. 사용자 인터페이스(800D)는 구성원 이름 박스(810')를 포함할 수 있는데, 이는 사용자가 직접 메시징하고 있는 그룹 구성원의 이름을 나타낸다. 통신 패널(812')은 사용자와 그룹 구성원 사이의 직접 메시징 이력을 보여준다. 사용자 인터페이스(800D)는 직접 메시지 프로파일 패널(826)을 추가로 포함할 수 있는데, 이는 사용자 정보 섹션(828) 및 관련 정보 섹션(830)을 포함할 수 있다. 직접 메시지 프로파일 패널(826)은 사용자가 직접 메시징하고 있는 그룹 구성원에 관한 기본 정보를 사용자가 빠르고 쉽게 인식할 수 있게 한다.
본 개시내용의 실시예들을 구현하기 위한 예시적인 애플리케이션 프로그래밍 인터페이스(API) 설계
일부 실시예들에서, 본 개시내용의 실시예들에 따라 구조화된 시스템들은 애플리케이션들 및 봇들의 구성가능성을 외부에서 공유되는 통신 채널에서 인에이블시키는 애플리케이션 프로그래밍 인터페이스(API)들을 제공할 수 있다.
기존 시스템들은 기술적 제한사항들에 의해 어려움을 겪는다. 예를 들어, 일부 기존 시스템들은 외부에서 공유되는 통신 채널 내의 구성원 팀들을 롤업하지 못하는 반면, 다른 것들은 그룹 기반 통신 채널들이 동일한 샤드 상에 저장되지 않는 사용자들에게 이벤트들을 방출하지 못한다.
본 개시내용의 다양한 실시예들은 기존 시스템들을 넘는 기술적 개선들을 제공한다. 전술된 바와 같이, 공유되는 통신 채널 샤드는 외부에서 공유되는 통신 채널에 관련된 데이터를 저장하도록 생성될 수 있다. 본 개시내용의 일부 실시예들에서, 이벤트 가입 테이블(예컨대, “event_subscriptions_types”)은 공유되는 통신 채널 샤드에 저장될 수 있다. 이벤트 가입 테이블은 외부에서 공유되는 통신 채널 내의 구성원들로 이벤트들을 방출할지의 여부에 관한 정보를 저장한다. 위에서 확인된 기술적 어려움들을 해결하기 위해, 이벤트 가입 테이블은 “resource_id” 컬럼 및 “resource_type” 컬럼을 포함하도록 업데이트될 수 있다. “resource_id” 컬럼은 리소스의 식별(예컨대, 이벤트)을 저장하고, “resource_type” 컬럼은 리소스의 유형(예컨대, 이벤트가 그룹 기반 통신 채널들이 상이한 샤드들 상에 저장되는 팀들에 의해 가입되는지의 여부)을 식별한다. 이러한 2개의 컬럼들을 활용함으로서, 본 개시내용의 실시예들은 그룹 기반 통신 채널 상에 설치된 애플리케이션들에 대한 통합된 이벤트 등록 정보를 어디에 그리고 어떻게 저장할 지의 이슈들을 해결한다. “토니 대 프랭크” 예로부터 계속하면, 외부에서 공유되는 통신 채널은 “resource_type” 컬럼 및 “resource_id” 컬럼을 활용하여, 조직 X 및/또는 조직 Y가 특정 리소스에 가입되어 있는지의 여부에 관한 정보(즉, 이벤트)를 저장할 수 있다.
아래의 프로그래밍 코드는 “resource_type” 및 “resource_id” 컬럼들을 포함하도록 “event_subscriptions_types” 테이블의 변경을 제공한다:
ALTER TABLE event_subscriptions_types ADD COLUMN resource_type varchar(25) NOT NULL AFTER team_id
ALTER TABLE event_subscriptions_types ADD COLUMN resource_id bigint(20) UNSIGNED NOT NULL AFTER resource_type
ALTER TABLE event_subscriptions_types ADD COLUMN ext_team_id bigint(20) UNSIGNED NOT NULL AFTER team_id
ALTER TABLE event_subscriptions_types DROP PRIMARY KEY, ADD PRIMARY KEY event_subscription_id, team_id, event_type, resource_type, resource_id)
본 개시내용의 일부 실시예들에서, “channel_id” 컬럼 및 “event_subscription_id” 컬럼은 “event_subscriptions_types” 테이블에 추가될 수 있다. “channel_id” 컬럼은 그룹 기반 통신 채널을 식별하고, “event_subscription_id”는 각각의 그룹 기반 통신 채널이 가입되는 이벤트들을 식별한다. "토니 대 프랭크" 예로부터 계속하면, “channel_id” 컬럼 및 “event_subscription_id” 컬럼은 조직 X 및 조직 Y 각각이 어떤 이벤트들에 가입했는지에 관한 정보를 저장한다.
또한, 본 개시내용의 일부 실시예들은, 또한, “event_subscriptions_ext_shared”와 같은, 공유되는 통신 채널 샤드에 새로운 테이블을 생성하여, 각각의 팀에 대한 이벤트 가입 정보를 개별적으로 저장할 수 있다. 아래의 프로그래밍 코드는 “event_subscriptions_ext_shared” 테이블의 생성을 제공한다.
CREATE TABLE 'event_subscriptions_ext_shared' (
'subscription_team_id' bigint(20) UNSIGNED NOT NULL,
'channel_id' bigint(20) UNSIGNED NOT NULL,
'api_app_id' bigint(20) UNSIGNED NOT NULL,
'event_type' varchar(255) NOT NULL
PRIMARY KEY ('subscription_t_team_id', 'channel_id', 'event_type')
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
추가 구현 세부사항들
예시적인 프로세싱 시스템들이 도 2 및 도 3에서 기술되었지만, 본 명세서에서 기술되는 주제 및 기능 동작들의 구현들은 다른 유형들의 디지털 전자 회로에서, 또는 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어에서, 또는 이들 중 하나 이상의 것들의 조합들에서 구현될 수 있다.
본 명세서에서 기술되는 주제 및 동작들의 실시예들은 디지털 전자 회로에서, 또는 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어에서, 또는 이들 중 하나 이상의 것들의 조합들에서 구현될 수 있다. 본 명세서에서 기술되는 주제의 실시예들은 정보/데이터 프로세싱 장치에 의한 실행을 위해, 또는 그의 동작을 제어하기 위해, 컴퓨터 판독가능 저장 매체 상에 인코딩된 하나 이상의 컴퓨터 프로그램들, 즉 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현될 수 있다. 대안으로, 또는 추가로, 프로그램 명령어들은, 정보/데이터 프로세싱 장치에 의한 실행을 위한 적합한 수신기 장치로의 송신을 위해 정보/데이터를 인코딩하도록 생성되는 인공적으로 생성된 전파되는 신호, 예컨대 기계적 생성된 전기적, 광학적, 또는 전자기적 신호 상에 인코딩될 수 있다. 컴퓨터 판독가능 저장 매체는, 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기재, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 것의 조합일 수 있거나 이들에 포함될 수 있다. 더욱이, 컴퓨터 판독가능 저장 매체가 전파되는 신호가 아닌 한편, 컴퓨터 판독가능 저장 매체는 인공적으로 생성된 전파되는 신호에서 인코딩되는 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 컴퓨터 판독가능 저장 매체는, 또한, 하나 이상의 별개의 물리적 컴포넌트들 또는 매체들(예컨대, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)일 수 있거나 이들에 포함될 수 있다.
본 명세서에서 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들 상에 저장되거나 다른 소스들로부터 수신된 정보/데이터에 대해 정보/데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
용어 "데이터 프로세싱 장치"는, 예로서, 프로그래밍가능 프로세서, 컴퓨터, 시스템-온-칩, 또는 전술한 사항의 다수의 것들 또는 이들의 조합들을 포함한, 데이터를 프로세싱하기 위한 모든 종류들의 장치, 디바이스들, 및 머신들을 포괄한다. 장치는, 특수 목적 논리 회로, 예컨대 FPGA(field programmable gate array) 또는 ASIC(Application Specific Integrated Circuit)를 포함할 수 있다. 장치는, 또한, 하드웨어에 더하여, 당해 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예컨대 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임 환경, 가상 머신, 또는 이들 중 하나 이상의 것들의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산형 컴퓨팅 및 그리드 컴퓨팅 인프라구조들과 같은 다양한 상이한 컴퓨팅 모델 인프라구조들을 실현할 수 있다.
컴퓨터 프로그램(본 명세서에서 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드로도 지칭됨)은, 컴파일 또는 해석 언어들, 선언 또는 절차 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 그것은 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체, 또는 컴퓨팅 환경에서의 사용에 적합한 다른 유닛으로서를 포함한, 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있지만, 그러할 필요는 없다. 프로그램은, 다른 프로그램들 또는 정보/데이터를 보유하는 파일의 일부분(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)에, 당해 프로그램에 전용되는 단일 파일에, 또는 다수의 조정된 파일들(예컨대, 하나 이상의 모듈들, 서브프로그램들, 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 상에서, 또는 하나의 사이트에 위치되거나 다수의 사이트들에 걸쳐서 분산되고 통신 네트워크에 의해 상호접속되는 다수의 컴퓨터들 상에서 실행되도록 배치될 수 있다.
본 명세서에서 기술된 프로세스들 및 논리 흐름들은 입력 정보/데이터 상에서 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래밍가능 프로세서들에 의해 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리, 랜덤 액세스 메모리, 또는 둘 모두로부터 명령어들 및 정보/데이터를 수신할 것이다. 일부 경우들에 있어서, 컴퓨터는 명령어들에 따라 액션들을 수행하기 위한 프로세서, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들을 포함할 수 있다. 일반적으로, 컴퓨터는, 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예컨대 자기, 자기-광학 디스크, 또는 광학 디스크들을 포함할 것이고, 또는 그들로부터 정보/데이터를 수신하거나 그들로 정보/데이터를 전달하거나 둘 모두를 하도록 동작가능하게 커플링될 것이다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요가 없다. 컴퓨터 프로그램 명령어들 및 정보/데이터를 저장하는 데 적합한 디바이스들은, 예로서 반도체 모바일 디바이스들, 예컨대 EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대 내부 하드디스크들, 예컨대 내부 하드 디스크들 또는 탈착가능 디스크들; 자기-광학 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는, 비휘발성 메모리, 매체들, 및 메모리 디바이스들의 모든 형태들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그에 포함될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예들은, 사용자가 컴퓨터에 입력을 제공할 수 있게 하는, 정보/데이터를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예컨대 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터, 및 키보드 및 포인팅 디바이스, 예컨대 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들은 마찬가지로 사용자와의 상호작용을 제공하는 데 사용될 수 있는데; 예를 들어 사용자에게 제공되는 피드백은 임의의 형태의 센서 피드백, 예컨대 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 음향, 스피치, 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서들을 전송하고 그로부터 문서들을 수신함으로써; 예를 들어 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상에서 웹 페이지들을 웹 브라우저로 전송함으로써, 사용자와 상호작용할 수 있다.
본 명세서에서 기술된 주제의 실시예들은, 예컨대 정보/데이터 서버로서, 백엔드 컴포넌트를 포함하거나, 미들웨어 컴포넌트, 예컨대 애플리케이션 서버를 포함하거나, 프론트엔드 컴포넌트, 예컨대 사용자가 본 명세서에서 기술되는 주제의 구현과 상호작용할 수 있게 하는 웹 브라우저 또는 그래픽 사용자 인터페이스를 갖는 클라이언트 디바이스를 포함하거나, 하나 이상의 그러한 백엔드, 미들웨어, 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 정보/데이터 통신, 예컨대 컴퓨터 네트워크에 의해 상호접속될 수 있다. 통신 네트워크들의 예들은 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예컨대, 인터넷), 및 피어-투-피어 네트워크들(예컨대, 애드혹(ad hoc) 피어-투-피어 네트워크들)을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격이고, 전형적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각자의 컴퓨터들 상에서 실행되고 서로에 대한 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다. 일부 실시예들에서, 서버는 (예컨대, 클라이언트 디바이스와 상호작용하는 사용자에게 정보/데이터를 디스플레이하고 그로부터 사용자 입력을 수신할 목적으로) 정보/데이터(예컨대, HTML 페이지)를 클라이언트 디바이스로 송신한다. 클라이언트 디바이스에서 생성된 정보/데이터(예컨대, 사용자 상호작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.
본 명세서가 많은 특정 구현 세부사항들을 포함하지만, 이들은 임의의 실시예들 또는 청구될 수 있는 것의 범주에 대한 제한사항으로 해석되어서는 안 되고, 오히려, 특정 실시예들에 특정적인 특징들의 설명으로서 해석되어야 한다. 별개의 실시예들의 콘텍스트에서 본 명세서에서 기술되는 소정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 콘텍스트에서 기술되는 다양한 특징들이 또한 다수의 실시예들에서 개별적으로 또는 임의의 적합한 서브조합으로 구현될 수 있다. 더욱이, 특징들이 소정 조합들에서 작용하는 것으로서 기술되고 이와 같이 심지어 초기에 주장될 수 있지만, 주장되는 조합으로부터의 하나 이상의 특징들은 일부 경우들에 있어서 조합으로부터 삭제될 수 있고, 주장되는 조합은 서브조합 또는 서브조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 도면에서 특정 순서로 묘사되어 있지만, 이는, 달리 기술되지 않는 한, 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되어야 하는 것을 요구하는 것, 또는 모든 예시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 소정 환경들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 전술된 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 필요로 하는 것으로 이해되어서는 안 되고, 기술된 프로그램 컴포넌트들 및 시스템들이 일반적으로 단일 소프트웨어 제품에서 함께 통합되거나 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되어야 한다.
이와 같이, 주제의 특정 실시예들이 기술되었다. 다른 실시예들이 다음의 청구범위의 범주 내에 있다. 일부 경우들에 있어서, 청구범위에서 인용되는 액션들은 상이한 순서로 수행될 수 있고, 여전히, 바람직한 결과들을 달성할 수 있다. 또한, 첨부 도면에 묘사된 프로세스들은, 달리 기술되지 않는 한, 바람직한 결과들을 달성하기 위해, 반드시, 도시된 특정 순서 또는 순차적인 순서를 요구하지는 않는다. 소정 구현예들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다.
결론
본 명세서에 개시된 원리들에 따른 다양한 실시예들이 도시되고 위에서 기술되었지만, 본 개시내용의 교시로부터 벗어나지 않고서 당업자에 의해 이들의 수정들이 이루어질 수 있다. 본 명세서에서 기술되는 실시예들은 대표적인 것일 뿐이며, 제한하는 것으로 의도되지 않는다. 많은 변형들, 조합들, 및 수정들이 가능하고, 개시내용의 범주 내에 있다. 실시예들)의 특징들을 조합, 통합, 및/또는 생략하는 것으로부터 생성된 대안의 실시예들이 또한 개시내용의 범주 내에 있다. 따라서, 보호의 범주는 위에 제시된 설명에 의해 제한되는 것이 아니라 다음에 오는 청구범위에 의해 정의되며, 그 범주는 청구범위의 주제의 모든 등가물들을 포함한다. 각각의 그리고 모든 청구항은 추가 개시내용으로서 명세서 내에 통합되고, 청구항들은 본 개시내용의 실시예(들)이다. 더욱이, 위에서 설명된 임의의 이점들 및 특징들은 특정 실시예들에 관한 것일 수 있지만, 그러한 주장되는 청구항들의 적용을, 위의 이점들 중 임의의 것 또는 모두를 달성하거나 위의 특징들 중 임의의 것 또는 모두를 갖는 프로세스들 및 구조들로 제한하지 않을 것이다.
또한, 본 명세서에서 사용되는 섹션 제목들은 37 C.F.R. §1.77 하의 제안들과의 일치를 위해 또는 달리 조직적 신호들을 제공하기 위해 제공된다. 이러한 제목들은 이러한 개시내용으로부터 발표될 수 있는 임의의 청구항들에서 제시되는 개시내용을 제한하거나 특징화하지 않을 것이다. 예를 들어, "배경기술"에서의 기술의 설명은 소정 기술이 본 개시내용 중 임의의 개시내용에 대한 종래 기술이라는 시인으로서 이해되어서는 안 된다. 어느 것도 청구되는 청구항들에서 설명되는 개시내용의 제한하는 특성으로 간주되어야 하는 "발명의 내용"이 아니다. 더욱이, 본 개시내용에서 단수형의 "개시내용" 또는 "실시예"에 대한 임의의 언급은 본 개시내용에서 신규성의 단일 포인트만이 있음을 주장하는 데 사용되어서는 안 된다. 본 개시내용의 다수의 실시예들은 본 개시내용으로부터 주장되는 다수의 청구항들의 제한에 따라 설명될 수 있고, 그러한 청구항들은 그에 따라 개시내용, 및 이에 의해 보호되는 그들의 등가물들을 정의한다. 모든 경우들에 있어서, 청구범위의 범주는 본 개시내용에 비추어 그들 자신의 장점들에 대해 고려될 것이지만, 본 명세서에서 설명되는 제목들에 의해 제약되어서는 안 된다.
또한, 다양한 실시예들에서 별개 또는 개별로서 설명 및 예시된 기법들, 시스템들, 서브시스템들, 및 방법들은 본 개시내용의 범주로부터 벗어나지 않고서 다른 시스템들, 모듈들, 기법들, 또는 방법들과 조합 또는 통합될 수 있다. 서로 커플링되거나 통신하는 것으로 도시 또는 논의된 다른 디바이스들 또는 컴포넌트들은, 전기적으로든, 기계적으로든, 또는 다른 방식으로든, 일부 중간 디바이스 또는 컴포넌트를 통해 간접적으로 커플링될 수 있다. 변경들, 치환들, 및 변형들의 다른 예들은 당업자에 의해 확인가능하고, 본 명세서에 개시된 범주로부터 벗어나지 않고서 행해질 수 있다.
본 개시내용의 많은 수정들 및 다른 실시예들은 이러한 실시예들이 전술한 설명들 및 연관된 도면들에서 제시된 교시들의 이익을 갖는 것에 관련된 당업자에게 생각날 것이다. 도면들이 본 명세서에서 설명되는 장치 및 시스템들의 소정 컴포넌트들만을 보여주지만, 다양한 다른 컴포넌트들이 본 명세서에 개시된 그룹 기반 통신 플랫폼과 함께 사용될 수 있다는 것이 이해된다. 따라서, 개시내용은 개시된 특정 실시예들로 제한되어서는 안 되고, 수정들 및 다른 실시예들이 첨부된 청구범위의 범주 내에 포함되는 것으로 의도된다는 것이 이해되어야 한다. 예를 들어, 다양한 요소들 또는 컴포넌트들이 다른 시스템에서 조합, 재배열, 또는 통합될 수 있고, 또는 소정 특징들이 생략되거나 구현되지 않을 수 있다. 더욱이, 위에 설명된 임의의 방법에서의 단계들은 반드시, 첨부한 도면에 묘사된 순서로 발생하지는 않을 수도 있고, 일부 경우들에 있어서, 묘사된 단계들 중 하나 이상은 실질적으로 동시에 발생할 수 있고, 또는 추가 단계들이 수반될 수 있다. 특정 용어들이 본 명세서에서 채용되어 있지만, 그들은 제한의 목적을 위해서가 아니라 일반적 및 설명적 관점에서 사용된다.

Claims (36)

  1. 그룹 기반 통신 플랫폼을 위한 적어도 하나의 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하기 위한 컴퓨팅 시스템에 있어서, 상기 컴퓨팅 시스템은:
    그룹 기반 통신 채널 식별자와 연관된 메시지 통신을 수신하도록 - 상기 그룹 기반 통신 채널 식별자가 제1 그룹 식별 및 제2 그룹 식별과 연관되고, 클라이언트 디바이스들의 제1 그룹이 상기 제1 그룹 식별과 연관되고, 클라이언트 디바이스들의 제2 그룹이 상기 제2 그룹 식별과 연관됨 -; 그리고
    상기 그룹 기반 통신 채널 식별자와 연관된 상기 메시지 통신을 포함하는 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하도록 - 상기 공유 그룹 기반 통신 채널 인터페이스는 제1 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 렌더링되고, 상기 공유 그룹 기반 통신 채널 인터페이스는 제2 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트들의 제2 그룹에 렌더링됨 - 구성된 회로들을 포함하는, 컴퓨팅 시스템.
  2. 제1항에 있어서,
    상기 메시지 통신은 보기 특권 설정 세트와 연관되는, 컴퓨팅 시스템.
  3. 제2항에 있어서,
    상기 메시지 통신은 상기 제1 공유 통신 채널 특성 세트 및 상기 보기 특권 설정 세트에 적어도 부분적으로 기초하여 상기 제1 클라이언트 디바이스들의 그룹에 렌더링되고, 상기 메시지 통신은 상기 제2 공유 통신 채널 특성 세트 및 상기 보기 특권 설정 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 렌더링되는, 컴퓨팅 시스템.
  4. 제2항에 있어서,
    상기 메시지 통신은 상기 클라이언트 디바이스들의 제1 클라이언트 디바이스로부터 수신되고, 상기 보기 특권 설정 세트는 개인적 보기 특권 설정을 포함하는, 컴퓨팅 시스템.
  5. 제4항에 있어서,
    상기 컴퓨팅 시스템은, 추가로:
    상기 개인적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 야기하도록, 그리고
    상기 개인적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 배제하도록 구성되는, 컴퓨팅 시스템.
  6. 제2항에 있어서,
    상기 메시지 통신은 상기 클라이언트 디바이스들의 제1 클라이언트 디바이스로부터 수신되고, 상기 보기 특권 설정 세트는 공개적 보기 특권 설정을 포함하는, 컴퓨팅 시스템.
  7. 제6항에 있어서,
    상기 컴퓨팅 시스템은, 추가로:
    상기 공개적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 야기하도록, 그리고
    상기 공개적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 야기하도록 구성되는, 컴퓨팅 시스템.
  8. 제1항에 있어서,
    상기 컴퓨팅 시스템은, 추가로:
    상기 제1 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 대한 제1 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하도록; 그리고
    상기 제2 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 대한 제2 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하도록 구성되는, 컴퓨팅 시스템.
  9. 제1항에 있어서,
    상기 메시지 통신은 상기 제1 그룹의 클라이언트 디바이스들 중 제1 클라이언트 디바이스로부터 수신되고, 상기 그룹 기반 통신 플랫폼은 데이터베이스 샤드(database shard)들의 세트를 포함하고, 상기 데이터베이스 샤드들의 세트는 상기 제1 그룹 식별과 연관된 제1 데이터베이스 샤드를 포함하고, 상기 컴퓨팅 시스템은, 추가로:
    상기 메시지 통신 및 상기 메시지 통신과 연관된 보기 특권 설정에 기초하여 저장 메시지를 생성하도록; 그리고
    상기 저장 메시지를 상기 제1 데이터베이스 샤드에 저장하도록 구성되는, 컴퓨팅 시스템.
  10. 제9항에 있어서,
    상기 보기 특권 설정 세트는 개인적 보기 특권 설정을 포함하고, 상기 회로들은 추가로, 상기 제1 그룹 식별과 연관된 개별 인덱스로 상기 저장 메시지를 인덱싱하도록 구성되는, 컴퓨팅 시스템.
  11. 제9항에 있어서,
    상기 보기 특권 설정 세트는 공개적 보기 특권 설정을 포함하고, 상기 회로들은 추가로, 상기 제1 그룹 식별 및 상기 제2 그룹 식별과 연관된 공유 인덱스로 상기 저장 메시지를 인덱싱하도록 구성되는, 컴퓨팅 시스템.
  12. 그룹 기반 통신 플랫폼을 위한 적어도 하나의 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하기 위한 컴퓨터 구현 방법에 있어서:
    그룹 기반 통신 채널 식별자와 연관된 메시지 통신을 수신하는 단계 - 상기 그룹 기반 통신 채널 식별자가 제1 그룹 식별 및 제2 그룹 식별과 연관되고, 클라이언트 디바이스들의 제1 그룹이 상기 제1 그룹 식별과 연관되고, 클라이언트 디바이스들의 제2 그룹이 상기 제2 그룹 식별과 연관됨 -; 및
    상기 그룹 기반 통신 채널 식별자와 연관된 상기 메시지 통신을 포함하는 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하는 단계 - 상기 공유 그룹 기반 통신 채널 인터페이스는 제1 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 렌더링되고, 상기 공유 그룹 기반 통신 채널 인터페이스는 제2 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트들의 제2 그룹에 렌더링됨 - 를 포함하는, 컴퓨터 구현 방법.
  13. 제12항에 있어서,
    상기 메시지 통신은 보기 특권 설정 세트와 연관되는, 컴퓨터 구현 방법.
  14. 제13항에 있어서,
    상기 메시지 통신은 상기 제1 공유 통신 채널 특성 세트 및 상기 보기 특권 설정 세트에 적어도 부분적으로 기초하여 상기 제1 클라이언트 디바이스들의 그룹에 렌더링되고, 상기 메시지 통신은 상기 제2 공유 통신 채널 특성 세트 및 상기 보기 특권 설정 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 렌더링되는, 컴퓨터 구현 방법.
  15. 제13항에 있어서,
    상기 메시지 통신은 상기 클라이언트 디바이스들의 제1 클라이언트 디바이스로부터 수신되고, 상기 보기 특권 설정 세트는 개인적 보기 특권 설정을 포함하는, 컴퓨터 구현 방법.
  16. 제15항에 있어서, 추가로:
    상기 개인적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 야기하는 단계, 및
    상기 개인적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 배제하는 단계를 포함하는, 컴퓨터 구현 방법.
  17. 제13항에 있어서,
    상기 메시지 통신은 상기 클라이언트 디바이스들의 제1 클라이언트 디바이스로부터 수신되고, 상기 보기 특권 설정 세트는 공개적 보기 특권 설정을 포함하는, 컴퓨터 구현 방법.
  18. 제17항에 있어서, 추가로:
    상기 공개적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 야기하는 단계, 및
    상기 공개적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 야기하는 단계를 포함하는, 컴퓨터 구현 방법.
  19. 제12항에 있어서, 추가로:
    상기 제1 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 대한 제1 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하는 단계; 및
    상기 제2 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 대한 제2 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하는 단계를 포함하는, 컴퓨터 구현 방법.
  20. 제12항에 있어서,
    상기 메시지 통신은 상기 제1 그룹의 클라이언트 디바이스들 중 제1 클라이언트 디바이스로부터 수신되고, 상기 그룹 기반 통신 플랫폼은 데이터베이스 샤드(database shard)들의 세트를 포함하고, 상기 데이터베이스 샤드들의 세트는 상기 제1 그룹 식별과 연관된 제1 데이터베이스 샤드를 포함하고, 상기 컴퓨터 구현 방법은, 추가로:
    상기 메시지 통신 및 상기 메시지 통신과 연관된 보기 특권 설정에 기초하여 저장 메시지를 생성하는 단계; 및
    상기 저장 메시지를 상기 제1 데이터베이스 샤드에 저장하는 단계를 포함하는, 컴퓨터 구현 방법.
  21. 제20항에 있어서,
    상기 보기 특권 설정 세트는 개인적 보기 특권 설정을 포함하고, 상기 컴퓨터 구현 방법은 추가로, 상기 제1 그룹 식별과 연관된 개별 인덱스로 상기 저장 메시지를 인덱싱하는 단계를 포함하는, 컴퓨터 구현 방법.
  22. 제20항에 있어서,
    상기 보기 특권 설정 세트는 공개적 보기 특권 설정을 포함하고, 상기 컴퓨터 구현 방법은 추가로, 상기 제1 그룹 식별 및 상기 제2 그룹 식별과 연관된 공유 인덱스로 상기 저장 메시지를 인덱싱하는 단계를 포함하는, 컴퓨터 구현 방법.
  23. 그룹 기반 통신 플랫폼을 위한 적어도 하나의 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하기 위한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은 컴퓨터 실행가능한 프로그램 코드 명령어들을 저장하는 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 상기 컴퓨터 실행가능한 프로그램 코드 명령어들은, 컴퓨팅 시스템의 프로세싱 회로에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금:
    그룹 기반 통신 채널 식별자와 연관된 메시지 통신을 수신하게 하고 - 상기 그룹 기반 통신 채널 식별자가 제1 그룹 식별 및 제2 그룹 식별과 연관되고, 클라이언트 디바이스들의 제1 그룹이 상기 제1 그룹 식별과 연관되고, 클라이언트 디바이스들의 제2 그룹이 상기 제2 그룹 식별과 연관됨 -;
    상기 그룹 기반 통신 채널 식별자와 연관된 상기 메시지 통신을 포함하는 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하게 하는 - 상기 공유 그룹 기반 통신 채널 인터페이스는 제1 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 렌더링되고, 상기 공유 그룹 기반 통신 채널 인터페이스는 제2 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트들의 제2 그룹에 렌더링됨 -, 컴퓨터 프로그램 제품.
  24. 제23항에 있어서,
    상기 메시지 통신은 보기 특권 설정 세트와 연관되는, 컴퓨터 프로그램 제품.
  25. 제24항에 있어서,
    상기 메시지 통신은 상기 제1 공유 통신 채널 특성 세트 및 상기 보기 특권 설정 세트에 적어도 부분적으로 기초하여 상기 제1 클라이언트 디바이스들의 그룹에 렌더링되고, 상기 메시지 통신은 상기 제2 공유 통신 채널 특성 세트 및 상기 보기 특권 설정 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 렌더링되는, 컴퓨터 프로그램 제품.
  26. 제24항에 있어서,
    상기 메시지 통신은 상기 클라이언트 디바이스들의 제1 클라이언트 디바이스로부터 수신되고, 상기 보기 특권 설정 세트는 개인적 보기 특권 설정을 포함하는, 컴퓨터 프로그램 제품.
  27. 제26항에 있어서,
    상기 컴퓨터 실행가능한 프로그램 코드 명령어들은, 상기 컴퓨팅 시스템의 상기 프로세싱 회로에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금:
    상기 개인적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 야기하게 하고,
    상기 개인적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 배제하게 하는, 컴퓨터 프로그램 제품.
  28. 제24항에 있어서,
    상기 메시지 통신은 상기 클라이언트 디바이스들의 제1 클라이언트 디바이스로부터 수신되고, 상기 보기 특권 설정 세트는 공개적 보기 특권 설정을 포함하는, 컴퓨터 프로그램 제품.
  29. 제28항에 있어서,
    상기 컴퓨터 실행가능한 프로그램 코드 명령어들은, 상기 컴퓨팅 시스템의 상기 프로세싱 회로에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금:
    상기 공개적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 야기하게 하고,
    상기 공개적 보기 특권 설정에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 대한 상기 공유 그룹 기반 통신 채널 인터페이스에서 상기 메시지 통신의 렌더링을 야기하게 하는, 컴퓨터 프로그램 제품.
  30. 제23항에 있어서,
    상기 컴퓨터 실행가능한 프로그램 코드 명령어들은, 상기 컴퓨팅 시스템의 상기 프로세싱 회로에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금:
    상기 제1 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제1 그룹에 대한 제1 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하게 하고;
    상기 제2 공유 통신 채널 특성 세트에 적어도 부분적으로 기초하여 상기 클라이언트 디바이스들의 제2 그룹에 대한 제2 공유 그룹 기반 통신 채널 인터페이스의 렌더링을 야기하게 하는, 컴퓨터 프로그램 제품.
  31. 제23항에 있어서,
    상기 메시지 통신은 상기 제1 그룹의 클라이언트 디바이스들 중 제1 클라이언트 디바이스로부터 수신되고, 상기 그룹 기반 통신 플랫폼은 데이터베이스 샤드(database shard)들의 세트를 포함하고, 상기 데이터베이스 샤드들의 세트는 상기 제1 그룹 식별과 연관된 제1 데이터베이스 샤드를 포함하고, 상기 컴퓨터 실행가능한 프로그램 코드 명령어들은, 상기 컴퓨팅 시스템의 상기 프로세싱 회로에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금:
    상기 메시지 통신 및 상기 메시지 통신과 연관된 보기 특권 설정에 기초하여 저장 메시지를 생성하게 하고;
    상기 저장 메시지를 상기 제1 데이터베이스 샤드에 저장하게 하는, 컴퓨터 프로그램 제품.
  32. 제31항에 있어서,
    상기 보기 특퀀 설정 세트는 개인적 보기 특권 설정을 포함하고, 상기 컴퓨터 실행가능한 프로그램 코드 명령어들은, 상기 컴퓨팅 시스템의 상기 프로세싱 회로에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금, 상기 제1 그룹 식별과 연관된 별개의 인덱스로 상기 저장 메시지를 인덱싱하게 하는, 컴퓨터 프로그램 제품.
  33. 제31항에 있어서,
    상기 보기 특퀀 설정 세트는 공개적 보기 특권 설정을 포함하고, 상기 컴퓨터 실행가능한 프로그램 코드 명령어들은, 상기 컴퓨팅 시스템의 상기 프로세싱 회로에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금, 상기 제1 그룹 식별 및 상기 제2 그룹 식별과 연관된 공유 인덱스로 상기 저장 메시지를 인덱싱하게 하는, 컴퓨터 프로그램 제품.
  34. 제1항에 있어서,
    상기 제2 그룹 식별은 상기 제1 그룹 식별과는 상이하고, 상기 제2 공유 통신 채널 특성 세트는 상기 제1 공유 통신 채널 특성 세트와는 상이한, 컴퓨팅 시스템.
  35. 제12항에 있어서,
    상기 제2 그룹 식별은 상기 제1 그룹 식별과는 상이하고, 상기 제2 공유 통신 채널 특성 세트는 상기 제1 공유 통신 채널 특성 세트와는 상이한, 컴퓨터 구현 방법.
  36. 제23항에 있어서,
    상기 제2 그룹 식별은 상기 제1 그룹 식별과는 상이하고, 상기 제2 공유 통신 채널 특성 세트는 상기 제1 공유 통신 채널 특성 세트와는 상이한, 컴퓨터 프로그램 제품.
KR1020217011092A 2018-11-30 2019-11-29 외부에서 공유되는 통신 채널들을 생성하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품 KR102561557B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/206,578 US10402371B2 (en) 2017-07-20 2018-11-30 Method, apparatus and computer program product for generating externally shared communication channels
US16/206,578 2018-11-30
US16/438,957 2019-06-12
US16/438,957 US11586584B2 (en) 2017-07-20 2019-06-12 Method, apparatus and computer program product for generating externally shared communication channels
PCT/US2019/063852 WO2020113162A1 (en) 2018-11-30 2019-11-29 Method, apparatus and computer program product for generating externally shared communication channels

Publications (2)

Publication Number Publication Date
KR20210046082A true KR20210046082A (ko) 2021-04-27
KR102561557B1 KR102561557B1 (ko) 2023-08-01

Family

ID=75589262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217011092A KR102561557B1 (ko) 2018-11-30 2019-11-29 외부에서 공유되는 통신 채널들을 생성하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품

Country Status (2)

Country Link
KR (1) KR102561557B1 (ko)
CN (1) CN112740622B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114244793B (zh) * 2021-11-30 2023-11-24 泰康保险集团股份有限公司 信息处理方法、装置、设备及存储介质
CN114189488B (zh) * 2021-12-09 2023-10-03 青岛聚看云科技有限公司 一种消息共享方法及服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160255089A1 (en) * 2015-02-26 2016-09-01 Smart Social Media, Inc. Methods of enabling inter-organizational and public social collaboration
US20170041280A1 (en) * 2014-04-23 2017-02-09 Remote Media, Llc Smart Routing Synchronization System and Methods for Socializing a Synthetic Rebroadcast and Group Stream

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3644580B2 (ja) * 1999-03-19 2005-04-27 富士通株式会社 表示制御方法及び装置
CN1849000A (zh) * 2005-04-14 2006-10-18 华为技术有限公司 一种cdma系统中集群通信方法
US20120246228A1 (en) * 2011-03-21 2012-09-27 Microsoft Corporation Sharing channels
US10616782B2 (en) * 2012-03-29 2020-04-07 Mgage, Llc Cross-channel user tracking systems, methods and devices
CN103856903B (zh) * 2012-12-03 2018-07-06 中兴通讯股份有限公司 一种集群接入网、终端设备和加入集群组的方法
US9691291B2 (en) * 2015-03-16 2017-06-27 Scriyb LLC System and method for providing group learning via computerized student group assignments conducted based on student attributes and student-variable-related criteria
US9712466B2 (en) * 2015-11-10 2017-07-18 Wrinkl, Inc. Integrating actionable objects into an on-line chat communications platform
GB201517437D0 (en) * 2015-10-02 2015-11-18 Pekama Ltd An access control system and method
US10567311B2 (en) * 2016-04-29 2020-02-18 Salesforce.Com, Inc. Publisher and share action integration in a user interface for automated messaging
US10693922B2 (en) * 2016-07-25 2020-06-23 Salesforce.Com, Inc. Multi-channel customer engagement platform
US10997557B2 (en) * 2016-10-14 2021-05-04 Slack Technologies, Inc. Method, apparatus, and computer program product for authorizing and authenticating user communication within an enterprise group-based communication platform
US10498548B2 (en) * 2017-05-19 2019-12-03 Slack Technologies, Inc. Method, apparatus, and computer program product for a scalable group-based communication system with a reduced client memory footprint requirement

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170041280A1 (en) * 2014-04-23 2017-02-09 Remote Media, Llc Smart Routing Synchronization System and Methods for Socializing a Synthetic Rebroadcast and Group Stream
US20160255089A1 (en) * 2015-02-26 2016-09-01 Smart Social Media, Inc. Methods of enabling inter-organizational and public social collaboration

Also Published As

Publication number Publication date
CN112740622A (zh) 2021-04-30
CN112740622B (zh) 2023-01-31
KR102561557B1 (ko) 2023-08-01

Similar Documents

Publication Publication Date Title
US11223493B2 (en) Method, apparatus and computer program product for generating externally shared communication channels
US11586584B2 (en) Method, apparatus and computer program product for generating externally shared communication channels
US11269833B2 (en) Data storage architecture for an enterprise communication system
US11848936B2 (en) Method, apparatus, and computer program product for selectively granting permissions to group-based objects in a group-based communication system
US11341093B2 (en) Method, apparatus and computer program product for generating externally shared communication channels
US11271891B2 (en) Methods and apparatuses for managing external approval provisioning and external messaging communication requests in a group-based communication system
CN118104218A (zh) 通信平台上的集成工作空间
US20210311620A1 (en) Organization of channel labels associated with a plurality of group-based communication channels in a communication platform
US11863640B2 (en) System, method, and apparatus for generating a third-party resource usage map in a group based communication system
KR102561557B1 (ko) 외부에서 공유되는 통신 채널들을 생성하기 위한 방법, 장치, 및 컴퓨터 프로그램 제품
AU2021101081B4 (en) Method, apparatus and computer program product for generating externally shared communication channels
JP7376553B2 (ja) グループベース通信システムにおいてプッシュベース通信コネクションが存在しない場合の最小のインタフェース機能の維持
WO2020113162A1 (en) Method, apparatus and computer program product for generating externally shared communication channels

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant